uboot: (firmwareOdroidC2/C4) don't invoke patch tool, use patches = [] instead
https://github.com/NixOS/nixpkgs/blob/master/pkgs/stdenv/generic/setup.sh#L948 this can do it nicely. Signed-off-by: Anton Arapov <anton@deadbeef.mx>
This commit is contained in:
commit
56de2bcd43
30691 changed files with 3076956 additions and 0 deletions
40
pkgs/top-level/agda-packages.nix
Normal file
40
pkgs/top-level/agda-packages.nix
Normal file
|
|
@ -0,0 +1,40 @@
|
|||
{ pkgs, lib, callPackage, newScope, Agda }:
|
||||
|
||||
let
|
||||
mkAgdaPackages = Agda: lib.makeScope newScope (mkAgdaPackages' Agda);
|
||||
mkAgdaPackages' = Agda: self: let
|
||||
callPackage = self.callPackage;
|
||||
inherit (callPackage ../build-support/agda {
|
||||
inherit Agda self;
|
||||
inherit (pkgs.haskellPackages) ghcWithPackages;
|
||||
}) withPackages mkDerivation;
|
||||
in {
|
||||
inherit mkDerivation;
|
||||
|
||||
lib = lib.extend (final: prev: import ../build-support/agda/lib.nix { lib = prev; });
|
||||
|
||||
agda = withPackages [] // {
|
||||
inherit withPackages;
|
||||
passthru.tests.allPackages = withPackages (lib.filter (pkg: self.lib.isUnbrokenAgdaPackage pkg) (lib.attrValues self));
|
||||
};
|
||||
|
||||
standard-library = callPackage ../development/libraries/agda/standard-library {
|
||||
inherit (pkgs.haskellPackages) ghcWithPackages;
|
||||
};
|
||||
|
||||
iowa-stdlib = callPackage ../development/libraries/agda/iowa-stdlib { };
|
||||
|
||||
agda-prelude = callPackage ../development/libraries/agda/agda-prelude { };
|
||||
|
||||
agda-categories = callPackage ../development/libraries/agda/agda-categories { };
|
||||
|
||||
cubical = callPackage ../development/libraries/agda/cubical { };
|
||||
|
||||
functional-linear-algebra = callPackage
|
||||
../development/libraries/agda/functional-linear-algebra { };
|
||||
|
||||
generic = callPackage ../development/libraries/agda/generic { };
|
||||
|
||||
agdarsec = callPackage ../development/libraries/agda/agdarsec { };
|
||||
};
|
||||
in mkAgdaPackages Agda
|
||||
1649
pkgs/top-level/aliases.nix
Normal file
1649
pkgs/top-level/aliases.nix
Normal file
File diff suppressed because it is too large
Load diff
35441
pkgs/top-level/all-packages.nix
Normal file
35441
pkgs/top-level/all-packages.nix
Normal file
File diff suppressed because it is too large
Load diff
129
pkgs/top-level/beam-packages.nix
Normal file
129
pkgs/top-level/beam-packages.nix
Normal file
|
|
@ -0,0 +1,129 @@
|
|||
{ beam, callPackage, wxGTK30, buildPackages, stdenv
|
||||
, wxSupport ? true
|
||||
, systemdSupport ? stdenv.isLinux
|
||||
}:
|
||||
|
||||
with beam; {
|
||||
lib = callPackage ../development/beam-modules/lib.nix { };
|
||||
|
||||
# R24 is the default version.
|
||||
# The main switch to change default Erlang version.
|
||||
defaultVersion = "erlangR24";
|
||||
|
||||
# Each
|
||||
interpreters = with beam.interpreters; {
|
||||
|
||||
erlang = beam.interpreters.${defaultVersion};
|
||||
erlang_odbc = beam.interpreters."${defaultVersion}_odbc";
|
||||
erlang_javac = beam.interpreters."${defaultVersion}_javac";
|
||||
erlang_odbc_javac = beam.interpreters."${defaultVersion}_odbc_javac";
|
||||
|
||||
# Standard Erlang versions, using the generic builder.
|
||||
|
||||
# R25
|
||||
erlangR25 = lib.callErlang ../development/interpreters/erlang/R25.nix {
|
||||
wxGTK = wxGTK30;
|
||||
parallelBuild = true;
|
||||
autoconf = buildPackages.autoconf269;
|
||||
inherit wxSupport systemdSupport;
|
||||
};
|
||||
erlangR25_odbc = erlangR25.override { odbcSupport = true; };
|
||||
erlangR25_javac = erlangR25.override { javacSupport = true; };
|
||||
erlangR25_odbc_javac = erlangR25.override {
|
||||
javacSupport = true;
|
||||
odbcSupport = true;
|
||||
};
|
||||
|
||||
# R24
|
||||
erlangR24 = lib.callErlang ../development/interpreters/erlang/R24.nix {
|
||||
wxGTK = wxGTK30;
|
||||
# Can be enabled since the bug has been fixed in https://github.com/erlang/otp/pull/2508
|
||||
parallelBuild = true;
|
||||
autoconf = buildPackages.autoconf269;
|
||||
inherit wxSupport systemdSupport;
|
||||
};
|
||||
erlangR24_odbc = erlangR24.override { odbcSupport = true; };
|
||||
erlangR24_javac = erlangR24.override { javacSupport = true; };
|
||||
erlangR24_odbc_javac = erlangR24.override {
|
||||
javacSupport = true;
|
||||
odbcSupport = true;
|
||||
};
|
||||
|
||||
# R23
|
||||
erlangR23 = lib.callErlang ../development/interpreters/erlang/R23.nix {
|
||||
wxGTK = wxGTK30;
|
||||
# Can be enabled since the bug has been fixed in https://github.com/erlang/otp/pull/2508
|
||||
parallelBuild = true;
|
||||
autoconf = buildPackages.autoconf269;
|
||||
inherit wxSupport systemdSupport;
|
||||
};
|
||||
erlangR23_odbc = erlangR23.override { odbcSupport = true; };
|
||||
erlangR23_javac = erlangR23.override { javacSupport = true; };
|
||||
erlangR23_odbc_javac = erlangR23.override {
|
||||
javacSupport = true;
|
||||
odbcSupport = true;
|
||||
};
|
||||
|
||||
# R22
|
||||
erlangR22 = lib.callErlang ../development/interpreters/erlang/R22.nix {
|
||||
wxGTK = wxGTK30;
|
||||
# Can be enabled since the bug has been fixed in https://github.com/erlang/otp/pull/2508
|
||||
parallelBuild = true;
|
||||
autoconf = buildPackages.autoconf269;
|
||||
inherit wxSupport systemdSupport;
|
||||
};
|
||||
erlangR22_odbc = erlangR22.override { odbcSupport = true; };
|
||||
erlangR22_javac = erlangR22.override { javacSupport = true; };
|
||||
erlangR22_odbc_javac = erlangR22.override {
|
||||
javacSupport = true;
|
||||
odbcSupport = true;
|
||||
};
|
||||
|
||||
# R21
|
||||
erlangR21 = lib.callErlang ../development/interpreters/erlang/R21.nix {
|
||||
wxGTK = wxGTK30;
|
||||
autoconf = buildPackages.autoconf269;
|
||||
inherit wxSupport systemdSupport;
|
||||
};
|
||||
erlangR21_odbc = erlangR21.override { odbcSupport = true; };
|
||||
erlangR21_javac = erlangR21.override { javacSupport = true; };
|
||||
erlangR21_odbc_javac = erlangR21.override {
|
||||
javacSupport = true;
|
||||
odbcSupport = true;
|
||||
};
|
||||
|
||||
# Basho fork, using custom builder.
|
||||
erlang_basho_R16B02 =
|
||||
lib.callErlang ../development/interpreters/erlang/R16B02-basho.nix {
|
||||
autoconf = buildPackages.autoconf269;
|
||||
inherit wxSupport;
|
||||
};
|
||||
erlang_basho_R16B02_odbc =
|
||||
erlang_basho_R16B02.override { odbcSupport = true; };
|
||||
|
||||
# Other Beam languages. These are built with `beam.interpreters.erlang`. To
|
||||
# access for example elixir built with different version of Erlang, use
|
||||
# `beam.packages.erlangR24.elixir`.
|
||||
inherit (packages.erlang)
|
||||
elixir elixir_1_13 elixir_1_12 elixir_1_11 elixir_1_10 elixir_1_9 elixir_ls;
|
||||
|
||||
inherit (packages.erlang) lfe lfe_1_3;
|
||||
};
|
||||
|
||||
# Helper function to generate package set with a specific Erlang version.
|
||||
packagesWith = erlang:
|
||||
callPackage ../development/beam-modules { inherit erlang; };
|
||||
|
||||
# Each field in this tuple represents all Beam packages in nixpkgs built with
|
||||
# appropriate Erlang/OTP version.
|
||||
packages = {
|
||||
# Packages built with default Erlang version.
|
||||
erlang = packages.${defaultVersion};
|
||||
|
||||
erlangR25 = packagesWith interpreters.erlangR25;
|
||||
erlangR24 = packagesWith interpreters.erlangR24;
|
||||
erlangR23 = packagesWith interpreters.erlangR23;
|
||||
erlangR22 = packagesWith interpreters.erlangR22;
|
||||
erlangR21 = packagesWith interpreters.erlangR21;
|
||||
};
|
||||
}
|
||||
146
pkgs/top-level/config.nix
Normal file
146
pkgs/top-level/config.nix
Normal file
|
|
@ -0,0 +1,146 @@
|
|||
# This file defines the structure of the `config` nixpkgs option.
|
||||
|
||||
{ config, lib, ... }:
|
||||
|
||||
with lib;
|
||||
|
||||
let
|
||||
|
||||
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 <literal>config</literal> contains an unrecognized attribute.";
|
||||
default = false;
|
||||
};
|
||||
|
||||
doCheckByDefault = mkMassRebuild {
|
||||
feature = "run <literal>checkPhase</literal> by default";
|
||||
};
|
||||
|
||||
strictDepsByDefault = mkMassRebuild {
|
||||
feature = "set <literal>strictDeps</literal> to true by default";
|
||||
};
|
||||
|
||||
enableParallelBuildingByDefault = mkMassRebuild {
|
||||
feature = "set <literal>enableParallelBuilding</literal> to true by default";
|
||||
};
|
||||
|
||||
contentAddressedByDefault = mkMassRebuild {
|
||||
feature = "set <literal>__contentAddressed</literal> 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 compatibity, 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 <link xlink:href="https://nixos.org/manual/nixpkgs/stable/#sec-allow-unfree">Installing unfree packages</link> 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 <link xlink:href="https://nixos.org/manual/nixpkgs/stable/#sec-allow-broken">Installing broken packages</link> 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 <link xlink:href="https://nixos.org/manual/nixpkgs/stable/#sec-allow-unsupported-system">Installing packages on unsupported systems</link> in the NixOS manual.
|
||||
'';
|
||||
};
|
||||
|
||||
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
|
||||
<link xlink:href="https://github.com/NixOS/nixpkgs/blob/master/pkgs/stdenv/generic/check-meta.nix">/pkgs/stdenv/generic/check-meta.nix</link>.
|
||||
|
||||
This is not a stable interface; warnings may be added, changed
|
||||
or removed without prior notice.
|
||||
'';
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
in {
|
||||
|
||||
freeformType =
|
||||
let t = lib.types.lazyAttrsOf lib.types.raw;
|
||||
in t // {
|
||||
merge = loc: defs:
|
||||
let r = t.merge loc defs;
|
||||
in r // { _undeclared = r; };
|
||||
};
|
||||
|
||||
inherit options;
|
||||
|
||||
config = {
|
||||
warnings = lib.optionals config.warnUndeclaredOptions (
|
||||
lib.mapAttrsToList (k: v: "undeclared Nixpkgs option set: config.${k}") config._undeclared or {}
|
||||
);
|
||||
};
|
||||
|
||||
}
|
||||
169
pkgs/top-level/coq-packages.nix
Normal file
169
pkgs/top-level/coq-packages.nix
Normal file
|
|
@ -0,0 +1,169 @@
|
|||
{ lib, stdenv, fetchzip
|
||||
, callPackage, newScope, recurseIntoAttrs, ocamlPackages_4_05, ocamlPackages_4_09
|
||||
, ocamlPackages_4_10, ocamlPackages_4_12, fetchpatch, makeWrapper, coq2html
|
||||
}@args:
|
||||
let lib = import ../build-support/coq/extra-lib.nix {inherit (args) lib;}; in
|
||||
let
|
||||
mkCoqPackages' = self: coq:
|
||||
let callPackage = self.callPackage; in {
|
||||
inherit coq lib;
|
||||
coqPackages = self;
|
||||
|
||||
metaFetch = import ../build-support/coq/meta-fetch/default.nix
|
||||
{inherit lib stdenv fetchzip; };
|
||||
mkCoqDerivation = callPackage ../build-support/coq {};
|
||||
|
||||
contribs = recurseIntoAttrs
|
||||
(callPackage ../development/coq-modules/contribs {});
|
||||
|
||||
aac-tactics = callPackage ../development/coq-modules/aac-tactics {};
|
||||
addition-chains = callPackage ../development/coq-modules/addition-chains {};
|
||||
autosubst = callPackage ../development/coq-modules/autosubst {};
|
||||
bignums = if lib.versionAtLeast coq.coq-version "8.6"
|
||||
then callPackage ../development/coq-modules/bignums {}
|
||||
else null;
|
||||
category-theory = callPackage ../development/coq-modules/category-theory { };
|
||||
ceres = callPackage ../development/coq-modules/ceres {};
|
||||
Cheerios = callPackage ../development/coq-modules/Cheerios {};
|
||||
CoLoR = callPackage ../development/coq-modules/CoLoR {};
|
||||
compcert = callPackage ../development/coq-modules/compcert {
|
||||
inherit fetchpatch makeWrapper coq2html lib stdenv;
|
||||
};
|
||||
coq-bits = callPackage ../development/coq-modules/coq-bits {};
|
||||
coq-elpi = callPackage ../development/coq-modules/coq-elpi {};
|
||||
coq-ext-lib = callPackage ../development/coq-modules/coq-ext-lib {};
|
||||
coq-haskell = callPackage ../development/coq-modules/coq-haskell { };
|
||||
coq-record-update = callPackage ../development/coq-modules/coq-record-update { };
|
||||
coqeal = callPackage ../development/coq-modules/coqeal {};
|
||||
coqhammer = callPackage ../development/coq-modules/coqhammer {};
|
||||
coqprime = callPackage ../development/coq-modules/coqprime {};
|
||||
coqtail-math = callPackage ../development/coq-modules/coqtail-math {};
|
||||
coquelicot = callPackage ../development/coq-modules/coquelicot {};
|
||||
corn = callPackage ../development/coq-modules/corn {};
|
||||
deriving = callPackage ../development/coq-modules/deriving {};
|
||||
dpdgraph = callPackage ../development/coq-modules/dpdgraph {};
|
||||
equations = callPackage ../development/coq-modules/equations { };
|
||||
extructures = callPackage ../development/coq-modules/extructures { };
|
||||
fiat_HEAD = callPackage ../development/coq-modules/fiat/HEAD.nix {};
|
||||
flocq = callPackage ../development/coq-modules/flocq {};
|
||||
fourcolor = callPackage ../development/coq-modules/fourcolor {};
|
||||
gaia = callPackage ../development/coq-modules/gaia {};
|
||||
gaia-hydras = callPackage ../development/coq-modules/gaia-hydras {};
|
||||
gappalib = callPackage ../development/coq-modules/gappalib {};
|
||||
goedel = callPackage ../development/coq-modules/goedel {};
|
||||
graph-theory = callPackage ../development/coq-modules/graph-theory {};
|
||||
heq = callPackage ../development/coq-modules/heq {};
|
||||
hierarchy-builder = callPackage ../development/coq-modules/hierarchy-builder {};
|
||||
HoTT = callPackage ../development/coq-modules/HoTT {};
|
||||
hydra-battles = callPackage ../development/coq-modules/hydra-battles {};
|
||||
interval = callPackage ../development/coq-modules/interval {};
|
||||
InfSeqExt = callPackage ../development/coq-modules/InfSeqExt {};
|
||||
iris = callPackage ../development/coq-modules/iris {};
|
||||
itauto = callPackage ../development/coq-modules/itauto { };
|
||||
ITree = callPackage ../development/coq-modules/ITree { };
|
||||
LibHyps = callPackage ../development/coq-modules/LibHyps {};
|
||||
ltac2 = callPackage ../development/coq-modules/ltac2 {};
|
||||
math-classes = callPackage ../development/coq-modules/math-classes { };
|
||||
mathcomp = callPackage ../development/coq-modules/mathcomp {};
|
||||
ssreflect = self.mathcomp.ssreflect;
|
||||
mathcomp-ssreflect = self.mathcomp.ssreflect;
|
||||
mathcomp-fingroup = self.mathcomp.fingroup;
|
||||
mathcomp-algebra = self.mathcomp.algebra;
|
||||
mathcomp-solvable = self.mathcomp.solvable;
|
||||
mathcomp-field = self.mathcomp.field;
|
||||
mathcomp-character = self.mathcomp.character;
|
||||
mathcomp-abel = callPackage ../development/coq-modules/mathcomp-abel {};
|
||||
mathcomp-analysis = callPackage ../development/coq-modules/mathcomp-analysis {};
|
||||
mathcomp-finmap = callPackage ../development/coq-modules/mathcomp-finmap {};
|
||||
mathcomp-bigenough = callPackage ../development/coq-modules/mathcomp-bigenough {};
|
||||
mathcomp-real-closed = callPackage ../development/coq-modules/mathcomp-real-closed {};
|
||||
mathcomp-word = callPackage ../development/coq-modules/mathcomp-word {};
|
||||
mathcomp-zify = callPackage ../development/coq-modules/mathcomp-zify {};
|
||||
mathcomp-tarjan = callPackage ../development/coq-modules/mathcomp-tarjan {};
|
||||
metacoq = callPackage ../development/coq-modules/metacoq { };
|
||||
metalib = callPackage ../development/coq-modules/metalib { };
|
||||
multinomials = callPackage ../development/coq-modules/multinomials {};
|
||||
odd-order = callPackage ../development/coq-modules/odd-order { };
|
||||
paco = callPackage ../development/coq-modules/paco {};
|
||||
paramcoq = callPackage ../development/coq-modules/paramcoq {};
|
||||
parsec = callPackage ../development/coq-modules/parsec {};
|
||||
pocklington = callPackage ../development/coq-modules/pocklington {};
|
||||
QuickChick = callPackage ../development/coq-modules/QuickChick {};
|
||||
reglang = callPackage ../development/coq-modules/reglang {};
|
||||
relation-algebra = callPackage ../development/coq-modules/relation-algebra {};
|
||||
semantics = callPackage ../development/coq-modules/semantics {};
|
||||
serapi = callPackage ../development/coq-modules/serapi {};
|
||||
simple-io = callPackage ../development/coq-modules/simple-io { };
|
||||
smpl = callPackage ../development/coq-modules/smpl { };
|
||||
smtcoq = callPackage ../development/coq-modules/smtcoq { };
|
||||
stdpp = callPackage ../development/coq-modules/stdpp { };
|
||||
StructTact = callPackage ../development/coq-modules/StructTact {};
|
||||
tlc = callPackage ../development/coq-modules/tlc {};
|
||||
topology = callPackage ../development/coq-modules/topology {};
|
||||
trakt = callPackage ../development/coq-modules/trakt {};
|
||||
Velisarios = callPackage ../development/coq-modules/Velisarios {};
|
||||
Verdi = callPackage ../development/coq-modules/Verdi {};
|
||||
VST = callPackage ../development/coq-modules/VST {};
|
||||
zorns-lemma = callPackage ../development/coq-modules/zorns-lemma {};
|
||||
filterPackages = doesFilter: if doesFilter then filterCoqPackages self else self;
|
||||
};
|
||||
|
||||
filterCoqPackages = set:
|
||||
lib.listToAttrs (
|
||||
lib.concatMap (name: let v = set.${name} or null; in
|
||||
lib.optional (! v.meta.coqFilter or false)
|
||||
(lib.nameValuePair name (
|
||||
if lib.isAttrs v && v.recurseForDerivations or false
|
||||
then filterCoqPackages v
|
||||
else v))
|
||||
) (lib.attrNames set)
|
||||
);
|
||||
mkCoq = version: callPackage ../applications/science/logic/coq {
|
||||
inherit version
|
||||
ocamlPackages_4_05
|
||||
ocamlPackages_4_09
|
||||
ocamlPackages_4_10
|
||||
ocamlPackages_4_12
|
||||
;
|
||||
};
|
||||
in rec {
|
||||
|
||||
/* The function `mkCoqPackages` takes as input a derivation for Coq and produces
|
||||
* a set of libraries built with that specific Coq. More libraries are known to
|
||||
* this function than what is compatible with that version of Coq. Therefore,
|
||||
* libraries that are not known to be compatible are removed (filtered out) from
|
||||
* the resulting set. For meta-programming purposes (inpecting the derivations
|
||||
* rather than building the libraries) this filtering can be disabled by setting
|
||||
* a `dontFilter` attribute into the Coq derivation.
|
||||
*/
|
||||
mkCoqPackages = coq:
|
||||
let self = lib.makeScope newScope (lib.flip mkCoqPackages' coq); in
|
||||
self.filterPackages (! coq.dontFilter or false);
|
||||
|
||||
coq_8_5 = mkCoq "8.5";
|
||||
coq_8_6 = mkCoq "8.6";
|
||||
coq_8_7 = mkCoq "8.7";
|
||||
coq_8_8 = mkCoq "8.8";
|
||||
coq_8_9 = mkCoq "8.9";
|
||||
coq_8_10 = mkCoq "8.10";
|
||||
coq_8_11 = mkCoq "8.11";
|
||||
coq_8_12 = mkCoq "8.12";
|
||||
coq_8_13 = mkCoq "8.13";
|
||||
coq_8_14 = mkCoq "8.14";
|
||||
coq_8_15 = mkCoq "8.15";
|
||||
|
||||
coqPackages_8_5 = mkCoqPackages coq_8_5;
|
||||
coqPackages_8_6 = mkCoqPackages coq_8_6;
|
||||
coqPackages_8_7 = mkCoqPackages coq_8_7;
|
||||
coqPackages_8_8 = mkCoqPackages coq_8_8;
|
||||
coqPackages_8_9 = mkCoqPackages coq_8_9;
|
||||
coqPackages_8_10 = mkCoqPackages coq_8_10;
|
||||
coqPackages_8_11 = mkCoqPackages coq_8_11;
|
||||
coqPackages_8_12 = mkCoqPackages coq_8_12;
|
||||
coqPackages_8_13 = mkCoqPackages coq_8_13;
|
||||
coqPackages_8_14 = mkCoqPackages coq_8_14;
|
||||
coqPackages_8_15 = mkCoqPackages coq_8_15;
|
||||
coqPackages = recurseIntoAttrs coqPackages_8_15;
|
||||
coq = coqPackages.coq;
|
||||
|
||||
}
|
||||
94
pkgs/top-level/cubocore-packages.nix
Normal file
94
pkgs/top-level/cubocore-packages.nix
Normal file
|
|
@ -0,0 +1,94 @@
|
|||
{ newScope, lxqt, lib, libsForQt5 }:
|
||||
|
||||
let
|
||||
packages = self: with self; {
|
||||
|
||||
# Libs
|
||||
libcprime = libsForQt5.callPackage ../applications/misc/cubocore-packages/libcprime { };
|
||||
|
||||
libcsys = libsForQt5.callPackage ../applications/misc/cubocore-packages/libcsys { };
|
||||
|
||||
# Apps
|
||||
coreaction = libsForQt5.callPackage ../applications/misc/cubocore-packages/coreaction {
|
||||
inherit libcprime libcsys;
|
||||
};
|
||||
|
||||
corearchiver = libsForQt5.callPackage ../applications/misc/cubocore-packages/corearchiver {
|
||||
inherit libcprime libcsys;
|
||||
};
|
||||
|
||||
corefm = libsForQt5.callPackage ../applications/misc/cubocore-packages/corefm {
|
||||
inherit libcprime libcsys;
|
||||
};
|
||||
|
||||
coregarage = libsForQt5.callPackage ../applications/misc/cubocore-packages/coregarage {
|
||||
inherit libcprime libcsys;
|
||||
};
|
||||
|
||||
corehunt = libsForQt5.callPackage ../applications/misc/cubocore-packages/corehunt {
|
||||
inherit libcprime libcsys;
|
||||
};
|
||||
|
||||
coreimage = libsForQt5.callPackage ../applications/misc/cubocore-packages/coreimage {
|
||||
inherit libcprime libcsys;
|
||||
};
|
||||
|
||||
coreinfo = libsForQt5.callPackage ../applications/misc/cubocore-packages/coreinfo {
|
||||
inherit libcprime libcsys;
|
||||
};
|
||||
|
||||
corekeyboard = libsForQt5.callPackage ../applications/misc/cubocore-packages/corekeyboard {
|
||||
inherit libcprime libcsys;
|
||||
};
|
||||
|
||||
corepad = libsForQt5.callPackage ../applications/misc/cubocore-packages/corepad {
|
||||
inherit libcprime libcsys;
|
||||
};
|
||||
|
||||
corepaint = libsForQt5.callPackage ../applications/misc/cubocore-packages/corepaint {
|
||||
inherit libcprime libcsys;
|
||||
};
|
||||
|
||||
corepdf = libsForQt5.callPackage ../applications/misc/cubocore-packages/corepdf {
|
||||
inherit libcprime libcsys;
|
||||
};
|
||||
|
||||
corepins = libsForQt5.callPackage ../applications/misc/cubocore-packages/corepins {
|
||||
inherit libcprime libcsys;
|
||||
};
|
||||
|
||||
corerenamer = libsForQt5.callPackage ../applications/misc/cubocore-packages/corerenamer {
|
||||
inherit libcprime libcsys;
|
||||
};
|
||||
|
||||
coreshot = libsForQt5.callPackage ../applications/misc/cubocore-packages/coreshot {
|
||||
inherit libcprime libcsys;
|
||||
};
|
||||
|
||||
corestats = libsForQt5.callPackage ../applications/misc/cubocore-packages/corestats {
|
||||
inherit libcprime libcsys;
|
||||
};
|
||||
|
||||
corestuff = libsForQt5.callPackage ../applications/misc/cubocore-packages/corestuff {
|
||||
inherit libcprime libcsys;
|
||||
};
|
||||
|
||||
coreterminal = libsForQt5.callPackage ../applications/misc/cubocore-packages/coreterminal {
|
||||
inherit (lxqt) qtermwidget;
|
||||
inherit libcprime libcsys;
|
||||
};
|
||||
|
||||
coretime = libsForQt5.callPackage ../applications/misc/cubocore-packages/coretime {
|
||||
inherit libcprime libcsys;
|
||||
};
|
||||
|
||||
coretoppings = libsForQt5.callPackage ../applications/misc/cubocore-packages/coretoppings {
|
||||
inherit libcprime libcsys;
|
||||
};
|
||||
|
||||
coreuniverse = libsForQt5.callPackage ../applications/misc/cubocore-packages/coreuniverse {
|
||||
inherit libcprime libcsys;
|
||||
};
|
||||
};
|
||||
in
|
||||
lib.makeScope newScope packages
|
||||
72
pkgs/top-level/cuda-packages.nix
Normal file
72
pkgs/top-level/cuda-packages.nix
Normal file
|
|
@ -0,0 +1,72 @@
|
|||
{ lib
|
||||
, pkgs
|
||||
, cudaVersion
|
||||
}:
|
||||
|
||||
with lib;
|
||||
|
||||
let
|
||||
|
||||
scope = makeScope pkgs.newScope (final: {
|
||||
# Here we put package set configuration and utility functions.
|
||||
inherit cudaVersion;
|
||||
cudaMajorVersion = versions.major final.cudaVersion;
|
||||
cudaMajorMinorVersion = lib.versions.majorMinor final.cudaVersion;
|
||||
inherit lib pkgs;
|
||||
|
||||
addBuildInputs = drv: buildInputs: drv.overrideAttrs (oldAttrs: {
|
||||
buildInputs = (oldAttrs.buildInputs or []) ++ buildInputs;
|
||||
});
|
||||
});
|
||||
|
||||
cutensorExtension = final: prev: let
|
||||
### CuTensor
|
||||
|
||||
buildCuTensorPackage = final.callPackage ../development/libraries/science/math/cutensor/generic.nix;
|
||||
|
||||
cuTensorVersions = {
|
||||
"1.2.2.5" = {
|
||||
hash = "sha256-lU7iK4DWuC/U3s1Ct/rq2Gr3w4F2U7RYYgpmF05bibY=";
|
||||
};
|
||||
"1.3.1.3" = {
|
||||
hash = "sha256-mNlVnabB2IC3HnYY0mb06RLqQzDxN9ePGVeBy3hkBC8=";
|
||||
};
|
||||
};
|
||||
|
||||
inherit (final) cudaMajorMinorVersion cudaMajorVersion;
|
||||
|
||||
cutensor = buildCuTensorPackage rec {
|
||||
version = if cudaMajorMinorVersion == "10.1" then "1.2.2.5" else "1.3.1.3";
|
||||
inherit (cuTensorVersions.${version}) hash;
|
||||
# This can go into generic.nix
|
||||
libPath = "lib/${if cudaMajorVersion == "10" then cudaMajorMinorVersion else cudaMajorVersion}";
|
||||
};
|
||||
in { inherit cutensor; };
|
||||
|
||||
extraPackagesExtension = final: prev: {
|
||||
|
||||
nccl = final.callPackage ../development/libraries/science/math/nccl { };
|
||||
|
||||
autoAddOpenGLRunpathHook = final.callPackage ( { makeSetupHook, addOpenGLRunpath }:
|
||||
makeSetupHook {
|
||||
name = "auto-add-opengl-runpath-hook";
|
||||
deps = [
|
||||
addOpenGLRunpath
|
||||
];
|
||||
} ../development/compilers/cudatoolkit/auto-add-opengl-runpath-hook.sh
|
||||
) {};
|
||||
|
||||
};
|
||||
|
||||
composedExtension = composeManyExtensions [
|
||||
extraPackagesExtension
|
||||
(import ../development/compilers/cudatoolkit/extension.nix)
|
||||
(import ../development/compilers/cudatoolkit/redist/extension.nix)
|
||||
(import ../development/compilers/cudatoolkit/redist/overrides.nix)
|
||||
(import ../development/libraries/science/math/cudnn/extension.nix)
|
||||
(import ../test/cuda/cuda-samples/extension.nix)
|
||||
(import ../test/cuda/cuda-library-samples/extension.nix)
|
||||
cutensorExtension
|
||||
];
|
||||
|
||||
in (scope.overrideScope' composedExtension)
|
||||
202
pkgs/top-level/darwin-packages.nix
Normal file
202
pkgs/top-level/darwin-packages.nix
Normal file
|
|
@ -0,0 +1,202 @@
|
|||
{ lib
|
||||
, buildPackages, pkgs, targetPackages
|
||||
, pkgsBuildBuild, pkgsBuildHost, pkgsBuildTarget, pkgsHostHost, pkgsTargetTarget
|
||||
, stdenv, splicePackages, newScope
|
||||
, preLibcCrossHeaders
|
||||
}:
|
||||
|
||||
let
|
||||
otherSplices = {
|
||||
selfBuildBuild = pkgsBuildBuild.darwin;
|
||||
selfBuildHost = pkgsBuildHost.darwin;
|
||||
selfBuildTarget = pkgsBuildTarget.darwin;
|
||||
selfHostHost = pkgsHostHost.darwin;
|
||||
selfTargetTarget = pkgsTargetTarget.darwin or {}; # might be missing
|
||||
};
|
||||
|
||||
# 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 + "-");
|
||||
in
|
||||
|
||||
lib.makeScopeWithSplicing splicePackages newScope otherSplices (_: {}) (spliced: spliced.apple_sdk.frameworks) (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 ../os-specific/darwin/apple-source-releases { } self;
|
||||
|
||||
impure-cmds = pkgs.callPackage ../os-specific/darwin/impure-cmds { };
|
||||
|
||||
# macOS 10.12 SDK
|
||||
apple_sdk_10_12 = pkgs.callPackage ../os-specific/darwin/apple-sdk {
|
||||
inherit (buildPackages.darwin) print-reexports;
|
||||
inherit (self) darwin-stubs;
|
||||
};
|
||||
|
||||
# macOS 11.0 SDK
|
||||
apple_sdk_11_0 = pkgs.callPackage ../os-specific/darwin/apple-sdk-11.0 { };
|
||||
|
||||
# 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: if attrs ? "${n}" then [(lib.nameValuePair n attrs."${n}")] else []) 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;
|
||||
|
||||
stdenvNoCF = stdenv.override {
|
||||
extraBuildInputs = [];
|
||||
};
|
||||
|
||||
binutils-unwrapped = callPackage ../os-specific/darwin/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;
|
||||
};
|
||||
|
||||
binutilsNoLibc = pkgs.wrapBintoolsWith {
|
||||
libc = preLibcCrossHeaders;
|
||||
bintools = self.binutils-unwrapped;
|
||||
};
|
||||
|
||||
cctools = callPackage ../os-specific/darwin/cctools/port.nix {
|
||||
stdenv = if stdenv.isDarwin then stdenv else pkgs.libcxxStdenv;
|
||||
};
|
||||
|
||||
# TODO: remove alias.
|
||||
cf-private = self.apple_sdk.frameworks.CoreFoundation;
|
||||
|
||||
DarwinTools = callPackage ../os-specific/darwin/DarwinTools { };
|
||||
|
||||
darwin-stubs = callPackage ../os-specific/darwin/darwin-stubs { };
|
||||
|
||||
print-reexports = callPackage ../os-specific/darwin/print-reexports { };
|
||||
|
||||
rewrite-tbd = callPackage ../os-specific/darwin/rewrite-tbd { };
|
||||
|
||||
checkReexportsHook = pkgs.makeSetupHook {
|
||||
deps = [ pkgs.darwin.print-reexports ];
|
||||
} ../os-specific/darwin/print-reexports/setup-hook.sh;
|
||||
|
||||
sigtool = callPackage ../os-specific/darwin/sigtool { };
|
||||
|
||||
postLinkSignHook = pkgs.writeTextFile {
|
||||
name = "post-link-sign-hook";
|
||||
executable = true;
|
||||
|
||||
text = ''
|
||||
CODESIGN_ALLOCATE=${targetPrefix}codesign_allocate \
|
||||
${self.sigtool}/bin/codesign -f -s - "$linkerOutput"
|
||||
'';
|
||||
};
|
||||
|
||||
signingUtils = callPackage ../os-specific/darwin/signing-utils { };
|
||||
|
||||
autoSignDarwinBinariesHook = pkgs.makeSetupHook {
|
||||
deps = [ self.signingUtils ];
|
||||
} ../os-specific/darwin/signing-utils/auto-sign-hook.sh;
|
||||
|
||||
maloader = callPackage ../os-specific/darwin/maloader {
|
||||
};
|
||||
|
||||
insert_dylib = callPackage ../os-specific/darwin/insert_dylib { };
|
||||
|
||||
iosSdkPkgs = callPackage ../os-specific/darwin/xcode/sdk-pkgs.nix {
|
||||
buildIosSdk = buildPackages.darwin.iosSdkPkgs.sdk;
|
||||
targetIosSdkPkgs = targetPackages.darwin.iosSdkPkgs;
|
||||
inherit (pkgs.llvmPackages) clang-unwrapped;
|
||||
};
|
||||
|
||||
iproute2mac = callPackage ../os-specific/darwin/iproute2mac { };
|
||||
|
||||
libobjc = self.objc4;
|
||||
|
||||
lsusb = callPackage ../os-specific/darwin/lsusb { };
|
||||
|
||||
moltenvk = callPackage ../os-specific/darwin/moltenvk { };
|
||||
|
||||
opencflite = callPackage ../os-specific/darwin/opencflite { };
|
||||
|
||||
stubs = pkgs.callPackages ../os-specific/darwin/stubs { };
|
||||
|
||||
trash = callPackage ../os-specific/darwin/trash { };
|
||||
|
||||
xattr = pkgs.python3Packages.callPackage ../os-specific/darwin/xattr { };
|
||||
|
||||
inherit (pkgs.callPackages ../os-specific/darwin/xcode { })
|
||||
xcode_8_1 xcode_8_2
|
||||
xcode_9_1 xcode_9_2 xcode_9_4 xcode_9_4_1
|
||||
xcode_10_2 xcode_10_2_1 xcode_10_3
|
||||
xcode_11
|
||||
xcode;
|
||||
|
||||
CoreSymbolication = callPackage ../os-specific/darwin/CoreSymbolication { };
|
||||
|
||||
# TODO: make swift-corefoundation build with apple_sdk_11_0.Libsystem
|
||||
CF = if useAppleSDKLibs
|
||||
then
|
||||
# This attribute (CF) is included in extraBuildInputs in the stdenv. This
|
||||
# is typically the open source project. When a project refers to
|
||||
# "CoreFoundation" it has an extra setup hook to force impure system
|
||||
# CoreFoundation into the link step.
|
||||
#
|
||||
# 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;
|
||||
})
|
||||
else callPackage ../os-specific/darwin/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 ../os-specific/darwin/swift-corelibs/libdispatch.nix { };
|
||||
|
||||
darling = callPackage ../os-specific/darwin/darling/default.nix { };
|
||||
|
||||
libtapi = callPackage ../os-specific/darwin/libtapi {};
|
||||
|
||||
ios-deploy = callPackage ../os-specific/darwin/ios-deploy {};
|
||||
|
||||
discrete-scroll = callPackage ../os-specific/darwin/discrete-scroll { };
|
||||
|
||||
})
|
||||
131
pkgs/top-level/default.nix
Normal file
131
pkgs/top-level/default.nix
Normal file
|
|
@ -0,0 +1,131 @@
|
|||
/* 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
|
||||
|
||||
, # 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
|
||||
lib = import ../../lib;
|
||||
|
||||
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.
|
||||
crossSystem =
|
||||
if crossSystem0 == null || crossSystem0 == args.localSystem
|
||||
then localSystem
|
||||
else lib.systems.elaborate crossSystem0;
|
||||
|
||||
# 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;
|
||||
})
|
||||
];
|
||||
};
|
||||
|
||||
# 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
|
||||
49
pkgs/top-level/dhall-packages.nix
Normal file
49
pkgs/top-level/dhall-packages.nix
Normal file
|
|
@ -0,0 +1,49 @@
|
|||
{ lib
|
||||
, newScope
|
||||
, overrides ? (self: super: {})
|
||||
}:
|
||||
|
||||
let
|
||||
packages = self:
|
||||
let
|
||||
callPackage = newScope self;
|
||||
|
||||
buildDhallPackage =
|
||||
callPackage ../development/interpreters/dhall/build-dhall-package.nix { };
|
||||
|
||||
buildDhallGitHubPackage =
|
||||
callPackage ../development/interpreters/dhall/build-dhall-github-package.nix { };
|
||||
|
||||
buildDhallDirectoryPackage =
|
||||
callPackage ../development/interpreters/dhall/build-dhall-directory-package.nix { };
|
||||
|
||||
buildDhallUrl =
|
||||
callPackage ../development/interpreters/dhall/build-dhall-url.nix { };
|
||||
|
||||
generateDhallDirectoryPackage =
|
||||
callPackage ../development/interpreters/dhall/generate-dhall-directory-package.nix { };
|
||||
|
||||
in
|
||||
{ inherit
|
||||
callPackage
|
||||
buildDhallPackage
|
||||
buildDhallGitHubPackage
|
||||
buildDhallDirectoryPackage
|
||||
buildDhallUrl
|
||||
generateDhallDirectoryPackage
|
||||
;
|
||||
|
||||
lib = import ../development/dhall-modules/lib.nix { inherit lib; };
|
||||
|
||||
dhall-grafana =
|
||||
callPackage ../development/dhall-modules/dhall-grafana.nix { };
|
||||
|
||||
dhall-kubernetes =
|
||||
callPackage ../development/dhall-modules/dhall-kubernetes.nix { };
|
||||
|
||||
Prelude =
|
||||
callPackage ../development/dhall-modules/Prelude.nix { };
|
||||
};
|
||||
|
||||
in
|
||||
lib.fix' (lib.extends overrides packages)
|
||||
315
pkgs/top-level/dotnet-packages.nix
Normal file
315
pkgs/top-level/dotnet-packages.nix
Normal file
|
|
@ -0,0 +1,315 @@
|
|||
{ stdenv
|
||||
, lib
|
||||
, pkgs
|
||||
, buildDotnetPackage
|
||||
, fetchurl
|
||||
, fetchFromGitHub
|
||||
, fetchNuGet
|
||||
, glib
|
||||
, mono
|
||||
, overrides ? {}
|
||||
}:
|
||||
|
||||
let self = dotnetPackages // overrides; dotnetPackages = with self; {
|
||||
|
||||
# BINARY PACKAGES
|
||||
|
||||
NUnit3 = fetchNuGet {
|
||||
pname = "NUnit";
|
||||
version = "3.0.1";
|
||||
sha256 = "1g3j3kvg9vrapb1vjgq65nvn1vg7bzm66w7yjnaip1iww1yn1b0p";
|
||||
outputFiles = [ "lib/*" ];
|
||||
};
|
||||
|
||||
NUnit2 = fetchNuGet {
|
||||
pname = "NUnit";
|
||||
version = "2.6.4";
|
||||
sha256 = "1acwsm7p93b1hzfb83ia33145x0w6fvdsfjm9xflsisljxpdx35y";
|
||||
outputFiles = [ "lib/*" ];
|
||||
};
|
||||
|
||||
NUnit = NUnit2;
|
||||
|
||||
NUnitConsole = fetchNuGet {
|
||||
pname = "NUnit.Console";
|
||||
version = "3.0.1";
|
||||
sha256 = "154bqwm2n95syv8nwd67qh8qsv0b0h5zap60sk64z3kd3a9ffi5p";
|
||||
outputFiles = [ "tools/*" ];
|
||||
};
|
||||
|
||||
MaxMindDb = fetchNuGet {
|
||||
pname = "MaxMind.Db";
|
||||
version = "1.1.0.0";
|
||||
sha256 = "0lixl76f7k3ldiqzg94zh13gn82w5mm5dx72y97fcqvp8g6nj3ds";
|
||||
outputFiles = [ "lib/*" ];
|
||||
};
|
||||
|
||||
MaxMindGeoIP2 = fetchNuGet {
|
||||
pname = "MaxMind.GeoIP2";
|
||||
version = "2.3.1";
|
||||
sha256 = "1s44dvjnmj1aimbrgkmpj6h5dn1w6acgqjch1axc76yz6hwknqgf";
|
||||
outputFiles = [ "lib/*" ];
|
||||
};
|
||||
|
||||
SharpZipLib = fetchNuGet {
|
||||
pname = "SharpZipLib";
|
||||
version = "0.86.0";
|
||||
sha256 = "01w2038gckfnq31pncrlgm7d0c939pwr1x4jj5450vcqpd4c41jr";
|
||||
outputFiles = [ "lib/*" ];
|
||||
};
|
||||
|
||||
StyleCopMSBuild = fetchNuGet {
|
||||
pname = "StyleCop.MSBuild";
|
||||
version = "4.7.49.0";
|
||||
sha256 = "0rpfyvcggm881ynvgr17kbx5hvj7ivlms0bmskmb2zyjlpddx036";
|
||||
outputFiles = [ "tools/*" ];
|
||||
};
|
||||
|
||||
StyleCopPlusMSBuild = fetchNuGet {
|
||||
pname = "StyleCopPlus.MSBuild";
|
||||
version = "4.7.49.5";
|
||||
sha256 = "1hv4lfxw72aql8siyqc4n954vzdz8p6jx9f2wrgzz0jy1k98x2mr";
|
||||
outputFiles = [ "tools/*" ];
|
||||
};
|
||||
|
||||
RestSharp = fetchNuGet {
|
||||
pname = "RestSharp";
|
||||
version = "105.2.3";
|
||||
sha256 = "1br48124ppz80x92m84sfyil1gn23hxg2ml9i9hsd0lp86vlaa1m";
|
||||
outputFiles = [ "lib/*" ];
|
||||
};
|
||||
|
||||
SharpFont = fetchNuGet {
|
||||
pname = "SharpFont";
|
||||
version = "4.0.1";
|
||||
sha256 = "1yd3cm4ww0hw2k3aymf792hp6skyg8qn491m2a3fhkzvsl8z7vs8";
|
||||
outputFiles = [ "lib/*" "config/*" ];
|
||||
};
|
||||
|
||||
SmartIrc4net = fetchNuGet {
|
||||
pname = "SmartIrc4net";
|
||||
version = "0.4.5.1";
|
||||
sha256 = "1d531sj39fvwmj2wgplqfify301y3cwp7kwr9ai5hgrq81jmjn2b";
|
||||
outputFiles = [ "lib/*" ];
|
||||
};
|
||||
|
||||
FuzzyLogicLibrary = fetchNuGet {
|
||||
pname = "FuzzyLogicLibrary";
|
||||
version = "1.2.0";
|
||||
sha256 = "0x518i8d3rw9n51xwawa4sywvqd722adj7kpcgcm63r66s950r5l";
|
||||
outputFiles = [ "bin/*" ];
|
||||
};
|
||||
|
||||
OpenNAT = fetchNuGet {
|
||||
pname = "Open.NAT";
|
||||
version = "2.1.0";
|
||||
sha256 = "1jyd30fwycdwx5ck96zhp2xf20yz0sp7g3pjbqhmay4kd322mfwk";
|
||||
outputFiles = [ "lib/*" ];
|
||||
};
|
||||
|
||||
MonoNat = fetchNuGet {
|
||||
pname = "Mono.Nat";
|
||||
version = "1.2.24";
|
||||
sha256 = "0vfkach11kkcd9rcqz3s38m70d5spyb21gl99iqnkljxj5555wjs";
|
||||
outputFiles = [ "lib/*" ];
|
||||
};
|
||||
|
||||
NUnitRunners = fetchNuGet {
|
||||
pname = "NUnit.Runners";
|
||||
version = "2.6.4";
|
||||
sha256 = "11nmi7vikn9idz8qcad9z7f73arsh5rw18fc1sri9ywz77mpm1s4";
|
||||
outputFiles = [ "tools/*" ];
|
||||
preInstall = "mv -v tools/lib/* tools && rmdir -v tools/lib";
|
||||
};
|
||||
|
||||
# SOURCE PACKAGES
|
||||
|
||||
Boogie = buildDotnetPackage rec {
|
||||
pname = "Boogie";
|
||||
version = "2.4.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "boogie-org";
|
||||
repo = "boogie";
|
||||
rev = "v${version}";
|
||||
sha256 = "13f6ifkh6gpy4bvx5zhgwmk3wd5rfxzl9wxwfhcj1c90fdrhwh1b";
|
||||
};
|
||||
|
||||
# emulate `nuget restore Source/Boogie.sln`
|
||||
# which installs in $srcdir/Source/packages
|
||||
preBuild = ''
|
||||
mkdir -p Source/packages/NUnit.2.6.3
|
||||
ln -sn ${dotnetPackages.NUnit}/lib/dotnet/NUnit Source/packages/NUnit.2.6.3/lib
|
||||
'';
|
||||
|
||||
buildInputs = [
|
||||
dotnetPackages.NUnit
|
||||
dotnetPackages.NUnitRunners
|
||||
];
|
||||
|
||||
xBuildFiles = [ "Source/Boogie.sln" ];
|
||||
|
||||
outputFiles = [ "Binaries/*" ];
|
||||
|
||||
postInstall = ''
|
||||
mkdir -pv "$out/lib/dotnet/${pname}"
|
||||
ln -sv "${pkgs.z3}/bin/z3" "$out/lib/dotnet/${pname}/z3.exe"
|
||||
|
||||
# so that this derivation can be used as a vim plugin to install syntax highlighting
|
||||
vimdir=$out/share/vim-plugins/boogie
|
||||
install -Dt $vimdir/syntax/ Util/vim/syntax/boogie.vim
|
||||
mkdir $vimdir/ftdetect
|
||||
echo 'au BufRead,BufNewFile *.bpl set filetype=boogie' > $vimdir/ftdetect/bpl.vim
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
description = "An intermediate verification language";
|
||||
homepage = "https://github.com/boogie-org/boogie";
|
||||
longDescription = ''
|
||||
Boogie is an intermediate verification language (IVL), intended as a
|
||||
layer on which to build program verifiers for other languages.
|
||||
|
||||
This derivation may be used as a vim plugin to provide syntax highlighting.
|
||||
'';
|
||||
license = licenses.mspl;
|
||||
maintainers = [ maintainers.taktoa ];
|
||||
platforms = with platforms; (linux ++ darwin);
|
||||
};
|
||||
};
|
||||
|
||||
Dafny = let
|
||||
z3 = pkgs.z3.overrideAttrs (oldAttrs: rec {
|
||||
version = "4.8.4";
|
||||
name = "z3-${version}";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "Z3Prover";
|
||||
repo = "z3";
|
||||
rev = "z3-${version}";
|
||||
sha256 = "014igqm5vwswz0yhz0cdxsj3a6dh7i79hvhgc3jmmmz3z0xm1gyn";
|
||||
};
|
||||
});
|
||||
self' = pkgs.dotnetPackages.override ({
|
||||
pkgs = pkgs // { inherit z3; };
|
||||
});
|
||||
Boogie = assert self'.Boogie.version == "2.4.1"; self'.Boogie;
|
||||
in buildDotnetPackage rec {
|
||||
pname = "Dafny";
|
||||
version = "2.3.0";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://github.com/Microsoft/dafny/archive/v${version}.tar.gz";
|
||||
sha256 = "0s6ihx32kda7400lvdrq60l46c11nki8b6kalir2g4ic508f6ypa";
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
sed -i \
|
||||
-e 's/ Visible="False"//' \
|
||||
-e "s/Exists(\$(CodeContractsInstallDir))/Exists('\$(CodeContractsInstallDir)')/" \
|
||||
Source/*/*.csproj
|
||||
'';
|
||||
|
||||
preBuild = ''
|
||||
ln -s ${z3} Binaries/z3
|
||||
'';
|
||||
|
||||
buildInputs = [ Boogie ];
|
||||
|
||||
xBuildFiles = [ "Source/Dafny.sln" ];
|
||||
xBuildFlags = [ "/p:Configuration=Checked" "/p:Platform=Any CPU" "/t:Rebuild" ];
|
||||
|
||||
outputFiles = [ "Binaries/*" ];
|
||||
|
||||
# Do not wrap the z3 executable, only dafny-related ones.
|
||||
exeFiles = [ "Dafny*.exe" ];
|
||||
|
||||
# Dafny needs mono in its path.
|
||||
makeWrapperArgs = "--set PATH ${mono}/bin";
|
||||
|
||||
# Boogie as an input is not enough. Boogie libraries need to be at the same
|
||||
# place as Dafny ones. Same for "*.dll.mdb". No idea why or how to fix.
|
||||
postFixup = ''
|
||||
for lib in ${Boogie}/lib/dotnet/${Boogie.pname}/*.dll{,.mdb}; do
|
||||
ln -s $lib $out/lib/dotnet/${pname}/
|
||||
done
|
||||
# We generate our own executable scripts
|
||||
rm -f $out/lib/dotnet/${pname}/dafny{,-server}
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
description = "A programming language with built-in specification constructs";
|
||||
homepage = "https://research.microsoft.com/dafny";
|
||||
maintainers = with maintainers; [ layus ];
|
||||
license = licenses.mit;
|
||||
platforms = with platforms; (linux ++ darwin);
|
||||
};
|
||||
};
|
||||
|
||||
MonoAddins = buildDotnetPackage rec {
|
||||
pname = "Mono.Addins";
|
||||
version = "1.2";
|
||||
|
||||
xBuildFiles = [
|
||||
"Mono.Addins/Mono.Addins.csproj"
|
||||
"Mono.Addins.Setup/Mono.Addins.Setup.csproj"
|
||||
"Mono.Addins.Gui/Mono.Addins.Gui.csproj"
|
||||
"Mono.Addins.CecilReflector/Mono.Addins.CecilReflector.csproj"
|
||||
];
|
||||
outputFiles = [ "bin/*" ];
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "mono";
|
||||
repo = "mono-addins";
|
||||
rev = "mono-addins-${version}";
|
||||
sha256 = "1hnn0a2qsjcjprsxas424bzvhsdwy0yc2jj5xbp698c0m9kfk24y";
|
||||
};
|
||||
|
||||
buildInputs = [ pkgs.gtk-sharp-2_0 ];
|
||||
|
||||
meta = {
|
||||
description = "A generic framework for creating extensible applications";
|
||||
homepage = "https://www.mono-project.com/Mono.Addins";
|
||||
longDescription = ''
|
||||
A generic framework for creating extensible applications,
|
||||
and for creating libraries which extend those applications.
|
||||
'';
|
||||
license = lib.licenses.mit;
|
||||
};
|
||||
};
|
||||
|
||||
NewtonsoftJson = fetchNuGet {
|
||||
pname = "Newtonsoft.Json";
|
||||
version = "11.0.2";
|
||||
sha256 = "07na27n4mlw77f3hg5jpayzxll7f4gyna6x7k9cybmxpbs6l77k7";
|
||||
outputFiles = [ "*" ];
|
||||
};
|
||||
|
||||
Nuget = buildDotnetPackage rec {
|
||||
pname = "Nuget";
|
||||
version = "5.6.0.6489";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "mono";
|
||||
repo = "linux-packaging-nuget";
|
||||
rev = "upstream/${version}.bin";
|
||||
sha256 = "sha256-71vjM7a+F0DNTY+dML3UBSkrVyXv/k5rdl7iXBKSpNM=";
|
||||
};
|
||||
|
||||
# configurePhase breaks the binary and results in
|
||||
# `File does not contain a valid CIL image.`
|
||||
dontConfigure = true;
|
||||
dontBuild = true;
|
||||
dontPlacateNuget = true;
|
||||
|
||||
outputFiles = [ "*" ];
|
||||
exeFiles = [ "nuget.exe" ];
|
||||
};
|
||||
|
||||
Paket = fetchNuGet {
|
||||
pname = "Paket";
|
||||
version = "5.179.1";
|
||||
sha256 = "11rzna03i145qj08hwrynya548fwk8xzxmg65swyaf19jd7gzg82";
|
||||
outputFiles = [ "*" ];
|
||||
};
|
||||
|
||||
}; in self
|
||||
101
pkgs/top-level/emacs-packages.nix
Normal file
101
pkgs/top-level/emacs-packages.nix
Normal file
|
|
@ -0,0 +1,101 @@
|
|||
# package.el-based emacs packages
|
||||
|
||||
## FOR USERS
|
||||
#
|
||||
# Recommended: simply use `emacsWithPackages` with the packages you want.
|
||||
#
|
||||
# Alternative: use `emacs`, install everything to a system or user profile
|
||||
# and then add this at the start your `init.el`:
|
||||
/*
|
||||
(require 'package)
|
||||
|
||||
;; optional. makes unpure packages archives unavailable
|
||||
(setq package-archives nil)
|
||||
|
||||
;; optional. use this if you install emacs packages to the system profile
|
||||
(add-to-list 'package-directory-list "/run/current-system/sw/share/emacs/site-lisp/elpa")
|
||||
|
||||
;; optional. use this if you install emacs packages to user profiles (with nix-env)
|
||||
(add-to-list 'package-directory-list "~/.nix-profile/share/emacs/site-lisp/elpa")
|
||||
|
||||
(package-initialize)
|
||||
*/
|
||||
|
||||
{ pkgs'
|
||||
, emacs'
|
||||
, makeScope
|
||||
, makeOverridable
|
||||
, dontRecurseIntoAttrs
|
||||
}:
|
||||
|
||||
let
|
||||
|
||||
mkElpaPackages = { pkgs, lib }: import ../applications/editors/emacs/elisp-packages/elpa-packages.nix {
|
||||
inherit (pkgs) stdenv texinfo writeText gcc pkgs buildPackages;
|
||||
inherit lib;
|
||||
};
|
||||
|
||||
mkNongnuPackages = { pkgs, lib }: import ../applications/editors/emacs/elisp-packages/nongnu-packages.nix {
|
||||
inherit (pkgs) buildPackages;
|
||||
inherit lib;
|
||||
};
|
||||
|
||||
# Contains both melpa stable & unstable
|
||||
melpaGeneric = { pkgs, lib }: import ../applications/editors/emacs/elisp-packages/melpa-packages.nix {
|
||||
inherit lib pkgs;
|
||||
};
|
||||
|
||||
mkManualPackages = { pkgs, lib }: import ../applications/editors/emacs/elisp-packages/manual-packages.nix {
|
||||
inherit lib pkgs;
|
||||
};
|
||||
|
||||
emacsWithPackages = { pkgs, lib }: import ../build-support/emacs/wrapper.nix {
|
||||
inherit (pkgs) makeWrapper runCommand gcc;
|
||||
inherit (pkgs.xorg) lndir;
|
||||
inherit lib;
|
||||
};
|
||||
|
||||
in makeScope pkgs'.newScope (self: makeOverridable ({
|
||||
pkgs ? pkgs'
|
||||
, lib ? pkgs.lib
|
||||
, elpaPackages ? mkElpaPackages { inherit pkgs lib; } self
|
||||
, nongnuPackages ? mkNongnuPackages { inherit pkgs lib; } self
|
||||
, melpaStablePackages ? melpaGeneric { inherit pkgs lib; } "stable" self
|
||||
, melpaPackages ? melpaGeneric { inherit pkgs lib; } "unstable" self
|
||||
, manualPackages ? mkManualPackages { inherit pkgs lib; } self
|
||||
}: ({}
|
||||
// elpaPackages // { inherit elpaPackages; }
|
||||
// nongnuPackages // { inherit nongnuPackages; }
|
||||
// melpaStablePackages // { inherit melpaStablePackages; }
|
||||
// melpaPackages // { inherit melpaPackages; }
|
||||
// manualPackages // { inherit manualPackages; }
|
||||
// {
|
||||
|
||||
# Propagate overriden scope
|
||||
emacs = emacs'.overrideAttrs(old: {
|
||||
passthru = (old.passthru or {}) // {
|
||||
pkgs = dontRecurseIntoAttrs self;
|
||||
};
|
||||
});
|
||||
|
||||
trivialBuild = pkgs.callPackage ../build-support/emacs/trivial.nix {
|
||||
inherit (self) emacs;
|
||||
};
|
||||
|
||||
melpaBuild = pkgs.callPackage ../build-support/emacs/melpa.nix {
|
||||
inherit (self) emacs;
|
||||
};
|
||||
|
||||
emacsWithPackages = emacsWithPackages { inherit pkgs lib; } self;
|
||||
withPackages = emacsWithPackages { inherit pkgs lib; } self;
|
||||
|
||||
} // {
|
||||
|
||||
# Package specific priority overrides goes here
|
||||
|
||||
# Telega uploads packages incompatible with stable tdlib to melpa
|
||||
# Prefer the one from melpa stable
|
||||
inherit (melpaStablePackages) telega;
|
||||
|
||||
})
|
||||
) {})
|
||||
183
pkgs/top-level/emscripten-packages.nix
Normal file
183
pkgs/top-level/emscripten-packages.nix
Normal file
|
|
@ -0,0 +1,183 @@
|
|||
{ pkgs }:
|
||||
|
||||
with pkgs;
|
||||
|
||||
# emscripten toolchain abstraction for nix
|
||||
# https://github.com/NixOS/nixpkgs/pull/16208
|
||||
|
||||
rec {
|
||||
json_c = (pkgs.json_c.override {
|
||||
stdenv = pkgs.emscriptenStdenv;
|
||||
}).overrideDerivation
|
||||
(old: {
|
||||
nativeBuildInputs = [ pkg-config cmake ];
|
||||
propagatedBuildInputs = [ zlib ];
|
||||
configurePhase = ''
|
||||
HOME=$TMPDIR
|
||||
mkdir -p .emscriptencache
|
||||
export EM_CACHE=$(pwd)/.emscriptencache
|
||||
emcmake cmake . $cmakeFlags -DCMAKE_INSTALL_PREFIX=$out -DCMAKE_INSTALL_INCLUDEDIR=$dev/include
|
||||
'';
|
||||
checkPhase = ''
|
||||
echo "================= testing json_c using node ================="
|
||||
|
||||
echo "Compiling a custom test"
|
||||
set -x
|
||||
emcc -O2 -s EMULATE_FUNCTION_POINTER_CASTS=1 tests/test1.c \
|
||||
`pkg-config zlib --cflags` \
|
||||
`pkg-config zlib --libs` \
|
||||
-I . \
|
||||
libjson-c.a \
|
||||
-o ./test1.js
|
||||
|
||||
echo "Using node to execute the test which basically outputs an error on stderr which we grep for"
|
||||
${pkgs.nodejs}/bin/node ./test1.js
|
||||
|
||||
set +x
|
||||
if [ $? -ne 0 ]; then
|
||||
echo "test1.js execution failed -> unit test failed, please fix"
|
||||
exit 1;
|
||||
else
|
||||
echo "test1.js execution seems to work! very good."
|
||||
fi
|
||||
echo "================= /testing json_c using node ================="
|
||||
'';
|
||||
});
|
||||
|
||||
libxml2 = (pkgs.libxml2.override {
|
||||
stdenv = emscriptenStdenv;
|
||||
pythonSupport = false;
|
||||
}).overrideDerivation
|
||||
(old: {
|
||||
propagatedBuildInputs = [ zlib ];
|
||||
buildInputs = old.buildInputs ++ [ pkg-config ];
|
||||
|
||||
# just override it with nothing so it does not fail
|
||||
autoreconfPhase = "echo autoreconfPhase not used...";
|
||||
configurePhase = ''
|
||||
HOME=$TMPDIR
|
||||
mkdir -p .emscriptencache
|
||||
export EM_CACHE=$(pwd)/.emscriptencache
|
||||
emconfigure ./configure --prefix=$out --without-python
|
||||
'';
|
||||
checkPhase = ''
|
||||
echo "================= testing libxml2 using node ================="
|
||||
|
||||
echo "Compiling a custom test"
|
||||
set -x
|
||||
emcc -O2 -s EMULATE_FUNCTION_POINTER_CASTS=1 xmllint.o \
|
||||
./.libs/libxml2.a `pkg-config zlib --cflags` `pkg-config zlib --libs` -o ./xmllint.test.js \
|
||||
--embed-file ./test/xmlid/id_err1.xml
|
||||
|
||||
echo "Using node to execute the test which basically outputs an error on stderr which we grep for"
|
||||
${pkgs.nodejs}/bin/node ./xmllint.test.js --noout test/xmlid/id_err1.xml 2>&1 | grep 0bar
|
||||
|
||||
set +x
|
||||
if [ $? -ne 0 ]; then
|
||||
echo "xmllint unit test failed, please fix this package"
|
||||
exit 1;
|
||||
else
|
||||
echo "since there is no stupid text containing 'foo xml:id' it seems to work! very good."
|
||||
fi
|
||||
echo "================= /testing libxml2 using node ================="
|
||||
'';
|
||||
});
|
||||
|
||||
xmlmirror = pkgs.buildEmscriptenPackage rec {
|
||||
pname = "xmlmirror";
|
||||
version = "unstable-2016-06-05";
|
||||
|
||||
buildInputs = [ pkg-config libtool gnumake libxml2 nodejs openjdk json_c ];
|
||||
nativeBuildInputs = [ pkg-config zlib autoconf automake ];
|
||||
|
||||
src = pkgs.fetchgit {
|
||||
url = "https://gitlab.com/odfplugfest/xmlmirror.git";
|
||||
rev = "4fd7e86f7c9526b8f4c1733e5c8b45175860a8fd";
|
||||
sha256 = "1jasdqnbdnb83wbcnyrp32f36w3xwhwp0wq8lwwmhqagxrij1r4b";
|
||||
};
|
||||
|
||||
configurePhase = ''
|
||||
rm -f fastXmlLint.js*
|
||||
# a fix for ERROR:root:For asm.js, TOTAL_MEMORY must be a multiple of 16MB, was 234217728
|
||||
# https://gitlab.com/odfplugfest/xmlmirror/issues/8
|
||||
sed -e "s/TOTAL_MEMORY=234217728/TOTAL_MEMORY=268435456/g" -i Makefile.emEnv
|
||||
# https://github.com/kripken/emscripten/issues/6344
|
||||
# https://gitlab.com/odfplugfest/xmlmirror/issues/9
|
||||
sed -e "s/\$(JSONC_LDFLAGS) \$(ZLIB_LDFLAGS) \$(LIBXML20_LDFLAGS)/\$(JSONC_LDFLAGS) \$(LIBXML20_LDFLAGS) \$(ZLIB_LDFLAGS) /g" -i Makefile.emEnv
|
||||
# https://gitlab.com/odfplugfest/xmlmirror/issues/11
|
||||
sed -e "s/-o fastXmlLint.js/-s EXTRA_EXPORTED_RUNTIME_METHODS='[\"ccall\", \"cwrap\"]' -o fastXmlLint.js/g" -i Makefile.emEnv
|
||||
mkdir -p .emscriptencache
|
||||
export EM_CACHE=$(pwd)/.emscriptencache
|
||||
'';
|
||||
|
||||
buildPhase = ''
|
||||
HOME=$TMPDIR
|
||||
make -f Makefile.emEnv
|
||||
'';
|
||||
|
||||
outputs = [ "out" "doc" ];
|
||||
|
||||
installPhase = ''
|
||||
mkdir -p $out/share
|
||||
mkdir -p $doc/share/${pname}
|
||||
|
||||
cp Demo* $out/share
|
||||
cp -R codemirror-5.12 $out/share
|
||||
cp fastXmlLint.js* $out/share
|
||||
cp *.xsd $out/share
|
||||
cp *.js $out/share
|
||||
cp *.xhtml $out/share
|
||||
cp *.html $out/share
|
||||
cp *.json $out/share
|
||||
cp *.rng $out/share
|
||||
cp README.md $doc/share/${pname}
|
||||
'';
|
||||
checkPhase = ''
|
||||
'';
|
||||
};
|
||||
|
||||
zlib = (pkgs.zlib.override {
|
||||
stdenv = pkgs.emscriptenStdenv;
|
||||
}).overrideDerivation
|
||||
(old: {
|
||||
buildInputs = old.buildInputs ++ [ pkg-config ];
|
||||
# we need to reset this setting!
|
||||
NIX_CFLAGS_COMPILE="";
|
||||
dontStrip = true;
|
||||
outputs = [ "out" ];
|
||||
buildPhase = ''
|
||||
emmake make
|
||||
'';
|
||||
installPhase = ''
|
||||
emmake make install
|
||||
'';
|
||||
checkPhase = ''
|
||||
echo "================= testing zlib using node ================="
|
||||
|
||||
echo "Compiling a custom test"
|
||||
set -x
|
||||
emcc -O2 -s EMULATE_FUNCTION_POINTER_CASTS=1 test/example.c -DZ_SOLO \
|
||||
-L. libz.a -I . -o example.js
|
||||
|
||||
echo "Using node to execute the test"
|
||||
${pkgs.nodejs}/bin/node ./example.js
|
||||
|
||||
set +x
|
||||
if [ $? -ne 0 ]; then
|
||||
echo "test failed for some reason"
|
||||
exit 1;
|
||||
else
|
||||
echo "it seems to work! very good."
|
||||
fi
|
||||
echo "================= /testing zlib using node ================="
|
||||
'';
|
||||
|
||||
postPatch = pkgs.lib.optionalString pkgs.stdenv.isDarwin ''
|
||||
substituteInPlace configure \
|
||||
--replace '/usr/bin/libtool' 'ar' \
|
||||
--replace 'AR="libtool"' 'AR="ar"' \
|
||||
--replace 'ARFLAGS="-o"' 'ARFLAGS="-r"'
|
||||
'';
|
||||
});
|
||||
|
||||
}
|
||||
54
pkgs/top-level/gnuradio-packages.nix
Normal file
54
pkgs/top-level/gnuradio-packages.nix
Normal file
|
|
@ -0,0 +1,54 @@
|
|||
{ lib
|
||||
, stdenv
|
||||
, newScope
|
||||
, gnuradio # unwrapped gnuradio
|
||||
}:
|
||||
|
||||
lib.makeScope newScope ( self:
|
||||
|
||||
let
|
||||
# Modeled after qt's
|
||||
mkDerivationWith = import ../development/gnuradio-modules/mkDerivation.nix {
|
||||
inherit lib;
|
||||
unwrapped = gnuradio;
|
||||
};
|
||||
mkDerivation = mkDerivationWith stdenv.mkDerivation;
|
||||
|
||||
callPackage = self.newScope ({
|
||||
inherit (gnuradio)
|
||||
# Packages that are potentially overriden and used as deps here.
|
||||
boost
|
||||
volk
|
||||
;
|
||||
inherit mkDerivationWith mkDerivation;
|
||||
} // lib.optionalAttrs (gnuradio.hasFeature "gr-uhd") {
|
||||
inherit (gnuradio) uhd;
|
||||
} // (if (lib.versionAtLeast gnuradio.versionAttr.major "3.10") then {
|
||||
inherit (gnuradio) spdlog;
|
||||
} else {
|
||||
inherit (gnuradio) log4cpp;
|
||||
}));
|
||||
in {
|
||||
|
||||
inherit callPackage mkDerivation mkDerivationWith;
|
||||
|
||||
### Packages
|
||||
|
||||
inherit gnuradio;
|
||||
inherit (gnuradio) python;
|
||||
|
||||
osmosdr = callPackage ../development/gnuradio-modules/osmosdr/default.nix { };
|
||||
|
||||
ais = callPackage ../development/gnuradio-modules/ais/default.nix { };
|
||||
|
||||
grnet = callPackage ../development/gnuradio-modules/grnet/default.nix { };
|
||||
|
||||
gsm = callPackage ../development/gnuradio-modules/gsm/default.nix { };
|
||||
|
||||
nacl = callPackage ../development/gnuradio-modules/nacl/default.nix { };
|
||||
|
||||
rds = callPackage ../development/gnuradio-modules/rds/default.nix { };
|
||||
|
||||
limesdr = callPackage ../development/gnuradio-modules/limesdr/default.nix { };
|
||||
|
||||
})
|
||||
283
pkgs/top-level/haskell-packages.nix
Normal file
283
pkgs/top-level/haskell-packages.nix
Normal file
|
|
@ -0,0 +1,283 @@
|
|||
{ buildPackages, pkgsBuildTarget, pkgs, newScope, stdenv }:
|
||||
|
||||
let
|
||||
# These are attributes in compiler and packages that don't support integer-simple.
|
||||
integerSimpleExcludes = [
|
||||
"ghc865Binary"
|
||||
"ghc8102Binary"
|
||||
"ghc8102BinaryMinimal"
|
||||
"ghc8107Binary"
|
||||
"ghc8107BinaryMinimal"
|
||||
"ghcjs"
|
||||
"ghcjs810"
|
||||
"integer-simple"
|
||||
"native-bignum"
|
||||
"ghc902"
|
||||
"ghc923"
|
||||
"ghcHEAD"
|
||||
];
|
||||
|
||||
nativeBignumIncludes = [
|
||||
"ghc902"
|
||||
"ghc923"
|
||||
"ghcHEAD"
|
||||
];
|
||||
|
||||
haskellLibUncomposable = import ../development/haskell-modules/lib {
|
||||
inherit (pkgs) lib;
|
||||
inherit pkgs;
|
||||
};
|
||||
|
||||
callPackage = newScope {
|
||||
haskellLib = haskellLibUncomposable.compose;
|
||||
overrides = pkgs.haskell.packageOverrides;
|
||||
};
|
||||
|
||||
bootstrapPackageSet = self: super: {
|
||||
mkDerivation = drv: super.mkDerivation (drv // {
|
||||
doCheck = false;
|
||||
doHaddock = false;
|
||||
enableExecutableProfiling = false;
|
||||
enableLibraryProfiling = false;
|
||||
enableSharedExecutables = false;
|
||||
enableSharedLibraries = false;
|
||||
});
|
||||
};
|
||||
|
||||
# Use this rather than `rec { ... }` below for sake of overlays.
|
||||
inherit (pkgs.haskell) compiler packages;
|
||||
|
||||
in {
|
||||
lib = haskellLibUncomposable;
|
||||
|
||||
package-list = callPackage ../development/haskell-modules/package-list.nix {};
|
||||
|
||||
compiler = {
|
||||
|
||||
ghc865Binary = callPackage ../development/compilers/ghc/8.6.5-binary.nix {
|
||||
llvmPackages = pkgs.llvmPackages_6;
|
||||
};
|
||||
|
||||
ghc8102Binary = callPackage ../development/compilers/ghc/8.10.2-binary.nix {
|
||||
llvmPackages = pkgs.llvmPackages_9;
|
||||
};
|
||||
|
||||
ghc8102BinaryMinimal = callPackage ../development/compilers/ghc/8.10.2-binary.nix {
|
||||
llvmPackages = pkgs.llvmPackages_9;
|
||||
minimal = true;
|
||||
};
|
||||
|
||||
ghc8107Binary = callPackage ../development/compilers/ghc/8.10.7-binary.nix {
|
||||
llvmPackages = pkgs.llvmPackages_12;
|
||||
};
|
||||
|
||||
ghc8107BinaryMinimal = callPackage ../development/compilers/ghc/8.10.7-binary.nix {
|
||||
llvmPackages = pkgs.llvmPackages_12;
|
||||
minimal = true;
|
||||
};
|
||||
|
||||
ghc884 = callPackage ../development/compilers/ghc/8.8.4.nix {
|
||||
bootPkgs =
|
||||
# aarch64 ghc865Binary gets SEGVs due to haskell#15449 or similar
|
||||
# 8.10.2 is needed as using 8.10.7 is broken due to RTS-incompatibilities
|
||||
if stdenv.isAarch64 then
|
||||
packages.ghc8102BinaryMinimal
|
||||
# Musl bindists do not exist for ghc 8.6.5, so we use 8.10.* for them
|
||||
else if stdenv.hostPlatform.isMusl then
|
||||
packages.ghc8102Binary
|
||||
else
|
||||
packages.ghc865Binary;
|
||||
inherit (buildPackages.python3Packages) sphinx;
|
||||
buildTargetLlvmPackages = pkgsBuildTarget.llvmPackages_7;
|
||||
llvmPackages = pkgs.llvmPackages_7;
|
||||
};
|
||||
ghc8107 = callPackage ../development/compilers/ghc/8.10.7.nix {
|
||||
bootPkgs =
|
||||
# aarch64 ghc865Binary gets SEGVs due to haskell#15449 or similar
|
||||
# the oldest ghc with aarch64-darwin support is 8.10.5
|
||||
# Musl bindists do not exist for ghc 8.6.5, so we use 8.10.* for them
|
||||
if stdenv.isAarch64 || stdenv.isAarch32 then
|
||||
packages.ghc8107BinaryMinimal
|
||||
else
|
||||
packages.ghc8107Binary;
|
||||
inherit (buildPackages.python3Packages) sphinx;
|
||||
# Need to use apple's patched xattr until
|
||||
# https://github.com/xattr/xattr/issues/44 and
|
||||
# https://github.com/xattr/xattr/issues/55 are solved.
|
||||
inherit (buildPackages.darwin) xattr autoSignDarwinBinariesHook;
|
||||
buildTargetLlvmPackages = pkgsBuildTarget.llvmPackages_12;
|
||||
llvmPackages = pkgs.llvmPackages_12;
|
||||
};
|
||||
ghc902 = callPackage ../development/compilers/ghc/9.0.2.nix {
|
||||
bootPkgs =
|
||||
# aarch64 ghc8107Binary exceeds max output size on hydra
|
||||
# the oldest ghc with aarch64-darwin support is 8.10.5
|
||||
if stdenv.isAarch64 || stdenv.isAarch32 then
|
||||
packages.ghc8107BinaryMinimal
|
||||
else
|
||||
packages.ghc8107Binary;
|
||||
inherit (buildPackages.python3Packages) sphinx;
|
||||
inherit (buildPackages.darwin) autoSignDarwinBinariesHook xattr;
|
||||
buildTargetLlvmPackages = pkgsBuildTarget.llvmPackages_12;
|
||||
llvmPackages = pkgs.llvmPackages_12;
|
||||
};
|
||||
ghc923 = callPackage ../development/compilers/ghc/9.2.3.nix {
|
||||
bootPkgs =
|
||||
# aarch64 ghc8107Binary exceeds max output size on hydra
|
||||
if stdenv.isAarch64 || stdenv.isAarch32 then
|
||||
packages.ghc8107BinaryMinimal
|
||||
else
|
||||
packages.ghc8107Binary;
|
||||
inherit (buildPackages.python3Packages) sphinx;
|
||||
# Need to use apple's patched xattr until
|
||||
# https://github.com/xattr/xattr/issues/44 and
|
||||
# https://github.com/xattr/xattr/issues/55 are solved.
|
||||
inherit (buildPackages.darwin) xattr autoSignDarwinBinariesHook;
|
||||
buildTargetLlvmPackages = pkgsBuildTarget.llvmPackages_12;
|
||||
llvmPackages = pkgs.llvmPackages_12;
|
||||
};
|
||||
ghcHEAD = callPackage ../development/compilers/ghc/head.nix {
|
||||
bootPkgs = packages.ghc8107Binary;
|
||||
inherit (buildPackages.python3Packages) sphinx;
|
||||
# Need to use apple's patched xattr until
|
||||
# https://github.com/xattr/xattr/issues/44 and
|
||||
# https://github.com/xattr/xattr/issues/55 are solved.
|
||||
inherit (buildPackages.darwin) xattr autoSignDarwinBinariesHook;
|
||||
buildTargetLlvmPackages = pkgsBuildTarget.llvmPackages_12;
|
||||
llvmPackages = pkgs.llvmPackages_12;
|
||||
libffi = pkgs.libffi;
|
||||
};
|
||||
|
||||
ghcjs = compiler.ghcjs810;
|
||||
ghcjs810 = callPackage ../development/compilers/ghcjs/8.10 {
|
||||
bootPkgs = packages.ghc8107;
|
||||
ghcjsSrcJson = ../development/compilers/ghcjs/8.10/git.json;
|
||||
stage0 = ../development/compilers/ghcjs/8.10/stage0.nix;
|
||||
};
|
||||
|
||||
# The integer-simple attribute set contains all the GHC compilers
|
||||
# build with integer-simple instead of integer-gmp.
|
||||
integer-simple = let
|
||||
integerSimpleGhcNames = pkgs.lib.filter
|
||||
(name: ! builtins.elem name integerSimpleExcludes)
|
||||
(pkgs.lib.attrNames compiler);
|
||||
in pkgs.recurseIntoAttrs (pkgs.lib.genAttrs
|
||||
integerSimpleGhcNames
|
||||
(name: compiler.${name}.override { enableIntegerSimple = true; }));
|
||||
|
||||
# Starting from GHC 9, integer-{simple,gmp} is replaced by ghc-bignum
|
||||
# with "native" and "gmp" backends.
|
||||
native-bignum = let
|
||||
nativeBignumGhcNames = pkgs.lib.filter
|
||||
(name: builtins.elem name nativeBignumIncludes)
|
||||
(pkgs.lib.attrNames compiler);
|
||||
in pkgs.recurseIntoAttrs (pkgs.lib.genAttrs
|
||||
nativeBignumGhcNames
|
||||
(name: compiler.${name}.override { enableNativeBignum = true; }));
|
||||
};
|
||||
|
||||
# Default overrides that are applied to all package sets.
|
||||
packageOverrides = self : super : {};
|
||||
|
||||
# Always get compilers from `buildPackages`
|
||||
packages = let bh = buildPackages.haskell; in {
|
||||
|
||||
ghc865Binary = callPackage ../development/haskell-modules {
|
||||
buildHaskellPackages = bh.packages.ghc865Binary;
|
||||
ghc = bh.compiler.ghc865Binary;
|
||||
compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-8.6.x.nix { };
|
||||
packageSetConfig = bootstrapPackageSet;
|
||||
};
|
||||
ghc8102Binary = callPackage ../development/haskell-modules {
|
||||
buildHaskellPackages = bh.packages.ghc8102Binary;
|
||||
ghc = bh.compiler.ghc8102Binary;
|
||||
compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-8.10.x.nix { };
|
||||
packageSetConfig = bootstrapPackageSet;
|
||||
};
|
||||
ghc8102BinaryMinimal = callPackage ../development/haskell-modules {
|
||||
buildHaskellPackages = bh.packages.ghc8102BinaryMinimal;
|
||||
ghc = bh.compiler.ghc8102BinaryMinimal;
|
||||
compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-8.10.x.nix { };
|
||||
packageSetConfig = bootstrapPackageSet;
|
||||
};
|
||||
ghc8107Binary = callPackage ../development/haskell-modules {
|
||||
buildHaskellPackages = bh.packages.ghc8107Binary;
|
||||
ghc = bh.compiler.ghc8107Binary;
|
||||
compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-8.10.x.nix { };
|
||||
packageSetConfig = bootstrapPackageSet;
|
||||
};
|
||||
ghc8107BinaryMinimal = callPackage ../development/haskell-modules {
|
||||
buildHaskellPackages = bh.packages.ghc8107BinaryMinimal;
|
||||
ghc = bh.compiler.ghc8107BinaryMinimal;
|
||||
compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-8.10.x.nix { };
|
||||
packageSetConfig = bootstrapPackageSet;
|
||||
};
|
||||
ghc884 = callPackage ../development/haskell-modules {
|
||||
buildHaskellPackages = bh.packages.ghc884;
|
||||
ghc = bh.compiler.ghc884;
|
||||
compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-8.8.x.nix { };
|
||||
};
|
||||
ghc8107 = callPackage ../development/haskell-modules {
|
||||
buildHaskellPackages = bh.packages.ghc8107;
|
||||
ghc = bh.compiler.ghc8107;
|
||||
compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-8.10.x.nix { };
|
||||
};
|
||||
ghc902 = callPackage ../development/haskell-modules {
|
||||
buildHaskellPackages = bh.packages.ghc902;
|
||||
ghc = bh.compiler.ghc902;
|
||||
compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-9.0.x.nix { };
|
||||
};
|
||||
ghc923 = callPackage ../development/haskell-modules {
|
||||
buildHaskellPackages = bh.packages.ghc923;
|
||||
ghc = bh.compiler.ghc923;
|
||||
compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-9.2.x.nix { };
|
||||
};
|
||||
ghcHEAD = callPackage ../development/haskell-modules {
|
||||
buildHaskellPackages = bh.packages.ghcHEAD;
|
||||
ghc = bh.compiler.ghcHEAD;
|
||||
compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-head.nix { };
|
||||
};
|
||||
|
||||
ghcjs = packages.ghcjs810;
|
||||
ghcjs810 = callPackage ../development/haskell-modules rec {
|
||||
buildHaskellPackages = ghc.bootPkgs;
|
||||
ghc = bh.compiler.ghcjs810;
|
||||
compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-8.10.x.nix { };
|
||||
packageSetConfig = callPackage ../development/haskell-modules/configuration-ghcjs.nix { };
|
||||
};
|
||||
|
||||
# The integer-simple attribute set contains package sets for all the GHC compilers
|
||||
# using integer-simple instead of integer-gmp.
|
||||
integer-simple =
|
||||
let
|
||||
integerSimpleGhcNames = pkgs.lib.filter
|
||||
(name: ! builtins.elem name integerSimpleExcludes)
|
||||
(pkgs.lib.attrNames packages);
|
||||
in
|
||||
pkgs.lib.genAttrs integerSimpleGhcNames
|
||||
(name:
|
||||
packages.${name}.override (oldAttrs: {
|
||||
ghc = bh.compiler.integer-simple.${name};
|
||||
buildHaskellPackages = bh.packages.integer-simple.${name};
|
||||
overrides =
|
||||
pkgs.lib.composeExtensions
|
||||
(oldAttrs.overrides or (_: _: {}))
|
||||
(_: _: { integer-simple = null; });
|
||||
})
|
||||
);
|
||||
|
||||
native-bignum =
|
||||
let
|
||||
nativeBignumGhcNames = pkgs.lib.filter
|
||||
(name: builtins.elem name nativeBignumIncludes)
|
||||
(pkgs.lib.attrNames compiler);
|
||||
in
|
||||
pkgs.lib.genAttrs nativeBignumGhcNames
|
||||
(name:
|
||||
packages.${name}.override {
|
||||
ghc = bh.compiler.native-bignum.${name};
|
||||
buildHaskellPackages = bh.packages.native-bignum.${name};
|
||||
}
|
||||
);
|
||||
};
|
||||
}
|
||||
119
pkgs/top-level/haxe-packages.nix
Normal file
119
pkgs/top-level/haxe-packages.nix
Normal file
|
|
@ -0,0 +1,119 @@
|
|||
{ stdenv, lib, fetchzip, fetchFromGitHub, haxe, neko, jdk, mono }:
|
||||
|
||||
let
|
||||
self = haxePackages;
|
||||
haxePackages = with self; {
|
||||
|
||||
withCommas = lib.replaceChars ["."] [","];
|
||||
|
||||
# simulate "haxelib dev $libname ."
|
||||
simulateHaxelibDev = libname: ''
|
||||
devrepo=$(mktemp -d)
|
||||
mkdir -p "$devrepo/${withCommas libname}"
|
||||
echo $(pwd) > "$devrepo/${withCommas libname}/.dev"
|
||||
export HAXELIB_PATH="$HAXELIB_PATH:$devrepo"
|
||||
'';
|
||||
|
||||
installLibHaxe = { libname, version, files ? "*" }: ''
|
||||
mkdir -p "$out/lib/haxe/${withCommas libname}/${withCommas version}"
|
||||
echo -n "${version}" > $out/lib/haxe/${withCommas libname}/.current
|
||||
cp -dpR ${files} "$out/lib/haxe/${withCommas libname}/${withCommas version}/"
|
||||
'';
|
||||
|
||||
buildHaxeLib = {
|
||||
libname,
|
||||
version,
|
||||
sha256,
|
||||
meta,
|
||||
...
|
||||
} @ attrs:
|
||||
stdenv.mkDerivation (attrs // {
|
||||
name = "${libname}-${version}";
|
||||
|
||||
buildInputs = (attrs.buildInputs or []) ++ [ haxe neko ]; # for setup-hook.sh to work
|
||||
src = fetchzip rec {
|
||||
name = "${libname}-${version}";
|
||||
url = "http://lib.haxe.org/files/3.0/${withCommas name}.zip";
|
||||
inherit sha256;
|
||||
stripRoot = false;
|
||||
};
|
||||
|
||||
installPhase = attrs.installPhase or ''
|
||||
runHook preInstall
|
||||
(
|
||||
if [ $(ls $src | wc -l) == 1 ]; then
|
||||
cd $src/* || cd $src
|
||||
else
|
||||
cd $src
|
||||
fi
|
||||
${installLibHaxe { inherit libname version; }}
|
||||
)
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
meta = {
|
||||
homepage = "http://lib.haxe.org/p/${libname}";
|
||||
license = lib.licenses.bsd2;
|
||||
platforms = lib.platforms.all;
|
||||
description = throw "please write meta.description";
|
||||
} // attrs.meta;
|
||||
});
|
||||
|
||||
hxcpp = buildHaxeLib rec {
|
||||
libname = "hxcpp";
|
||||
version = "4.1.15";
|
||||
sha256 = "1ybxcvwi4655563fjjgy6xv5c78grjxzadmi3l1ghds48k1rh50p";
|
||||
postFixup = ''
|
||||
for f in $out/lib/haxe/${withCommas libname}/${withCommas version}/{,project/libs/nekoapi/}bin/Linux{,64}/*; do
|
||||
chmod +w "$f"
|
||||
patchelf --set-interpreter $(cat $NIX_CC/nix-support/dynamic-linker) "$f" || true
|
||||
patchelf --set-rpath ${ lib.makeLibraryPath [ stdenv.cc.cc ] } "$f" || true
|
||||
done
|
||||
'';
|
||||
meta.description = "Runtime support library for the Haxe C++ backend";
|
||||
};
|
||||
|
||||
hxjava = buildHaxeLib {
|
||||
libname = "hxjava";
|
||||
version = "3.2.0";
|
||||
sha256 = "1vgd7qvsdxlscl3wmrrfi5ipldmr4xlsiwnj46jz7n6izff5261z";
|
||||
meta.description = "Support library for the Java backend of the Haxe compiler";
|
||||
propagatedBuildInputs = [ jdk ];
|
||||
};
|
||||
|
||||
hxcs = buildHaxeLib {
|
||||
libname = "hxcs";
|
||||
version = "3.4.0";
|
||||
sha256 = "0f5vgp2kqnpsbbkn2wdxmjf7xkl0qhk9lgl9kb8d5wdy89nac6q6";
|
||||
meta.description = "Support library for the C# backend of the Haxe compiler";
|
||||
propagatedBuildInputs = [ mono ];
|
||||
};
|
||||
|
||||
hxnodejs_4 = buildHaxeLib {
|
||||
libname = "hxnodejs";
|
||||
version = "4.0.9";
|
||||
sha256 = "0b7ck48nsxs88sy4fhhr0x1bc8h2ja732zzgdaqzxnh3nir0bajm";
|
||||
meta.description = "Extern definitions for node.js 4.x";
|
||||
};
|
||||
|
||||
hxnodejs_6 = let
|
||||
libname = "hxnodejs";
|
||||
version = "6.9.0";
|
||||
in stdenv.mkDerivation {
|
||||
name = "${libname}-${version}";
|
||||
src = fetchFromGitHub {
|
||||
owner = "HaxeFoundation";
|
||||
repo = "hxnodejs";
|
||||
rev = "cf80c6a";
|
||||
sha256 = "0mdiacr5b2m8jrlgyd2d3vp1fha69lcfb67x4ix7l7zfi8g460gs";
|
||||
};
|
||||
installPhase = installLibHaxe { inherit libname version; };
|
||||
meta = {
|
||||
homepage = "http://lib.haxe.org/p/${libname}";
|
||||
license = lib.licenses.bsd2;
|
||||
platforms = lib.platforms.all;
|
||||
description = "Extern definitions for node.js 6.9";
|
||||
};
|
||||
};
|
||||
};
|
||||
in self
|
||||
84
pkgs/top-level/impure.nix
Normal file
84
pkgs/top-level/impure.nix
Normal file
|
|
@ -0,0 +1,84 @@
|
|||
/* 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 <nixpkgs-overlays>) "";
|
||||
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 || 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;
|
||||
})
|
||||
490
pkgs/top-level/java-packages.nix
Normal file
490
pkgs/top-level/java-packages.nix
Normal file
|
|
@ -0,0 +1,490 @@
|
|||
{ pkgs }:
|
||||
|
||||
with pkgs;
|
||||
|
||||
let
|
||||
mavenbuild = callPackage ../development/java-modules/build-maven-package.nix { };
|
||||
fetchMaven = callPackage ../development/java-modules/m2install.nix { };
|
||||
|
||||
openjfx11 = callPackage ../development/compilers/openjdk/openjfx/11.nix { };
|
||||
openjfx15 = callPackage ../development/compilers/openjdk/openjfx/15.nix { };
|
||||
openjfx17 = callPackage ../development/compilers/openjdk/openjfx/17.nix { };
|
||||
|
||||
mavenfod = callPackage ../development/java-modules/maven-fod.nix { };
|
||||
|
||||
in {
|
||||
inherit mavenbuild mavenfod fetchMaven openjfx11 openjfx15 openjfx17;
|
||||
|
||||
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 lib; };
|
||||
package-darwin = import path-darwin { inherit lib; };
|
||||
package = if stdenv.isLinux
|
||||
then package-linux
|
||||
else package-darwin;
|
||||
in rec {
|
||||
inherit package-linux package-darwin;
|
||||
|
||||
jdk-hotspot = callPackage package.jdk-hotspot {};
|
||||
jre-hotspot = callPackage package.jre-hotspot {};
|
||||
jdk-openj9 = callPackage package.jdk-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 adoptopenjdk.jdk-hotspot.meta.available
|
||||
then 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 openjdk // {
|
||||
headless = openjdk.override { headless = true; };
|
||||
};
|
||||
|
||||
openjdkDarwinMissing = version:
|
||||
abort "OpenJDK ${builtins.toString version} is currently not supported on Darwin by nixpkgs.";
|
||||
|
||||
in rec {
|
||||
|
||||
adoptopenjdk-8 = mkAdoptopenjdk
|
||||
../development/compilers/adoptopenjdk-bin/jdk8-linux.nix
|
||||
../development/compilers/adoptopenjdk-bin/jdk8-darwin.nix;
|
||||
|
||||
adoptopenjdk-11 = mkAdoptopenjdk
|
||||
../development/compilers/adoptopenjdk-bin/jdk11-linux.nix
|
||||
../development/compilers/adoptopenjdk-bin/jdk11-darwin.nix;
|
||||
|
||||
adoptopenjdk-13 = mkAdoptopenjdk
|
||||
../development/compilers/adoptopenjdk-bin/jdk13-linux.nix
|
||||
../development/compilers/adoptopenjdk-bin/jdk13-darwin.nix;
|
||||
|
||||
adoptopenjdk-14 = mkAdoptopenjdk
|
||||
../development/compilers/adoptopenjdk-bin/jdk14-linux.nix
|
||||
../development/compilers/adoptopenjdk-bin/jdk14-darwin.nix;
|
||||
|
||||
adoptopenjdk-15 = mkAdoptopenjdk
|
||||
../development/compilers/adoptopenjdk-bin/jdk15-linux.nix
|
||||
../development/compilers/adoptopenjdk-bin/jdk15-darwin.nix;
|
||||
|
||||
adoptopenjdk-16 = mkAdoptopenjdk
|
||||
../development/compilers/adoptopenjdk-bin/jdk16-linux.nix
|
||||
../development/compilers/adoptopenjdk-bin/jdk16-darwin.nix;
|
||||
|
||||
openjdk8-bootstrap = mkBootstrap adoptopenjdk-8
|
||||
../development/compilers/openjdk/bootstrap.nix
|
||||
{ version = "8"; };
|
||||
|
||||
openjdk11-bootstrap = mkBootstrap adoptopenjdk-11
|
||||
../development/compilers/openjdk/bootstrap.nix
|
||||
{ version = "10"; };
|
||||
|
||||
openjdk13-bootstrap = mkBootstrap adoptopenjdk-13
|
||||
../development/compilers/openjdk/12.nix
|
||||
(bootstrapArgs // {
|
||||
/* build segfaults with gcc9 or newer, so use gcc8 like Debian does */
|
||||
stdenv = gcc8Stdenv;
|
||||
});
|
||||
|
||||
openjdk14-bootstrap = mkBootstrap adoptopenjdk-14
|
||||
../development/compilers/openjdk/13.nix
|
||||
(bootstrapArgs // {
|
||||
inherit openjdk13-bootstrap;
|
||||
});
|
||||
|
||||
openjdk15-bootstrap = mkBootstrap adoptopenjdk-15
|
||||
../development/compilers/openjdk/14.nix
|
||||
(bootstrapArgs // {
|
||||
inherit openjdk14-bootstrap;
|
||||
});
|
||||
|
||||
openjdk16-bootstrap = mkBootstrap adoptopenjdk-16
|
||||
../development/compilers/openjdk/15.nix
|
||||
(bootstrapArgs // {
|
||||
inherit openjdk15-bootstrap;
|
||||
});
|
||||
|
||||
openjdk17-bootstrap = mkBootstrap adoptopenjdk-16
|
||||
../development/compilers/openjdk/16.nix
|
||||
(bootstrapArgs // {
|
||||
inherit openjdk16-bootstrap;
|
||||
});
|
||||
|
||||
openjdk8 = mkOpenjdk
|
||||
../development/compilers/openjdk/8.nix
|
||||
../development/compilers/openjdk/darwin/8.nix
|
||||
{ };
|
||||
|
||||
openjdk11 = mkOpenjdk
|
||||
../development/compilers/openjdk/11.nix
|
||||
../development/compilers/openjdk/darwin/11.nix
|
||||
{ openjfx = openjfx11; };
|
||||
|
||||
openjdk12 = mkOpenjdkLinuxOnly ../development/compilers/openjdk/12.nix {
|
||||
/* build segfaults with gcc9 or newer, so use gcc8 like Debian does */
|
||||
stdenv = gcc8Stdenv;
|
||||
openjfx = openjfx11;
|
||||
};
|
||||
|
||||
openjdk13 = mkOpenjdkLinuxOnly ../development/compilers/openjdk/13.nix {
|
||||
inherit openjdk13-bootstrap;
|
||||
openjfx = openjfx11;
|
||||
};
|
||||
|
||||
openjdk14 = mkOpenjdkLinuxOnly ../development/compilers/openjdk/14.nix {
|
||||
inherit openjdk14-bootstrap;
|
||||
openjfx = openjfx11;
|
||||
};
|
||||
|
||||
openjdk15 = mkOpenjdkLinuxOnly ../development/compilers/openjdk/15.nix {
|
||||
inherit openjdk15-bootstrap;
|
||||
openjfx = openjfx15;
|
||||
};
|
||||
|
||||
openjdk16 = mkOpenjdk
|
||||
../development/compilers/openjdk/16.nix
|
||||
../development/compilers/openjdk/darwin/16.nix
|
||||
{
|
||||
inherit openjdk16-bootstrap;
|
||||
openjfx = openjfx15;
|
||||
};
|
||||
|
||||
openjdk17 = mkOpenjdk
|
||||
../development/compilers/openjdk/17.nix
|
||||
../development/compilers/openjdk/darwin/17.nix
|
||||
{
|
||||
inherit openjdk17-bootstrap;
|
||||
openjfx = openjfx17;
|
||||
};
|
||||
};
|
||||
|
||||
mavenPlugins = recurseIntoAttrs (callPackage ../development/java-modules/mavenPlugins.nix { });
|
||||
|
||||
inherit (callPackage ../development/java-modules/eclipse/aether-util.nix { inherit fetchMaven; })
|
||||
aetherUtil_0_9_0_M2;
|
||||
|
||||
inherit (callPackage ../development/java-modules/apache/ant.nix { inherit fetchMaven; })
|
||||
ant_1_8_2;
|
||||
|
||||
inherit (callPackage ../development/java-modules/apache/ant-launcher.nix { inherit fetchMaven; })
|
||||
antLauncher_1_8_2;
|
||||
|
||||
inherit (callPackage ../development/java-modules/beanshell/bsh.nix { inherit fetchMaven; })
|
||||
bsh_2_0_b4;
|
||||
|
||||
inherit (callPackage ../development/java-modules/classworlds/classworlds.nix { inherit fetchMaven; })
|
||||
classworlds_1_1_alpha2
|
||||
classworlds_1_1;
|
||||
|
||||
inherit (callPackage ../development/java-modules/apache/commons-cli.nix { inherit fetchMaven; })
|
||||
commonsCli_1_0
|
||||
commonsCli_1_2;
|
||||
|
||||
inherit (callPackage ../development/java-modules/apache/commons-io.nix { inherit fetchMaven; })
|
||||
commonsIo_2_1;
|
||||
|
||||
inherit (callPackage ../development/java-modules/apache/commons-lang.nix { inherit fetchMaven; })
|
||||
commonsLang_2_1
|
||||
commonsLang_2_3
|
||||
commonsLang_2_6;
|
||||
|
||||
inherit (callPackage ../development/java-modules/apache/commons-lang3.nix { inherit fetchMaven; })
|
||||
commonsLang3_3_1;
|
||||
|
||||
inherit (callPackage ../development/java-modules/apache/commons-logging-api.nix { inherit fetchMaven; })
|
||||
commonsLoggingApi_1_1;
|
||||
|
||||
inherit (callPackage ../development/java-modules/findbugs/jsr305.nix { inherit fetchMaven; })
|
||||
findbugsJsr305_2_0_1;
|
||||
|
||||
inherit (callPackage ../development/java-modules/google/collections.nix { inherit fetchMaven; })
|
||||
googleCollections_1_0;
|
||||
|
||||
inherit (callPackage ../development/java-modules/hamcrest/all.nix { inherit fetchMaven; })
|
||||
hamcrestAll_1_3;
|
||||
|
||||
inherit (callPackage ../development/java-modules/hamcrest/core.nix { inherit fetchMaven; })
|
||||
hamcrestCore_1_3;
|
||||
|
||||
inherit (callPackage ../development/java-modules/junit { inherit mavenbuild fetchMaven; })
|
||||
junit_3_8_1
|
||||
junit_3_8_2
|
||||
junit_4_12;
|
||||
|
||||
inherit (callPackage ../development/java-modules/jogl { })
|
||||
jogl_2_3_2;
|
||||
|
||||
inherit (callPackage ../development/java-modules/log4j { inherit fetchMaven; })
|
||||
log4j_1_2_12;
|
||||
|
||||
inherit (callPackage ../development/java-modules/maven/archiver.nix { inherit fetchMaven; })
|
||||
mavenArchiver_2_5;
|
||||
|
||||
inherit (callPackage ../development/java-modules/maven/artifact.nix { inherit fetchMaven; })
|
||||
mavenArtifact_2_0_1
|
||||
mavenArtifact_2_0_6
|
||||
mavenArtifact_2_0_8
|
||||
mavenArtifact_2_0_9
|
||||
mavenArtifact_2_2_1
|
||||
mavenArtifact_3_0_3;
|
||||
|
||||
inherit (callPackage ../development/java-modules/maven/artifact-manager.nix { inherit fetchMaven; })
|
||||
mavenArtifactManager_2_0_1
|
||||
mavenArtifactManager_2_0_6
|
||||
mavenArtifactManager_2_0_9
|
||||
mavenArtifactManager_2_2_1;
|
||||
|
||||
inherit (callPackage ../development/java-modules/maven/common-artifact-filters.nix { inherit fetchMaven; })
|
||||
mavenCommonArtifactFilters_1_2
|
||||
mavenCommonArtifactFilters_1_3
|
||||
mavenCommonArtifactFilters_1_4;
|
||||
|
||||
inherit (callPackage ../development/java-modules/maven/compiler-plugin.nix { inherit fetchMaven; })
|
||||
mavenCompiler_3_2;
|
||||
|
||||
inherit (callPackage ../development/java-modules/maven/core.nix { inherit fetchMaven; })
|
||||
mavenCore_2_0_1
|
||||
mavenCore_2_0_6
|
||||
mavenCore_2_0_9
|
||||
mavenCore_2_2_1;
|
||||
|
||||
inherit (callPackage ../development/java-modules/maven/dependency-tree.nix { inherit fetchMaven; })
|
||||
mavenDependencyTree_2_1;
|
||||
|
||||
inherit (callPackage ../development/java-modules/maven/doxia-sink-api.nix { inherit fetchMaven; })
|
||||
mavenDoxiaSinkApi_1_0_alpha6
|
||||
mavenDoxiaSinkApi_1_0_alpha7
|
||||
mavenDoxiaSinkApi_1_0_alpha10;
|
||||
|
||||
inherit (callPackage ../development/java-modules/maven/enforcer.nix { inherit fetchMaven; })
|
||||
mavenEnforcerApi_1_3_1
|
||||
mavenEnforcerRules_1_3_1;
|
||||
|
||||
inherit (callPackage ../development/java-modules/maven/error-diagnostics.nix { inherit fetchMaven; })
|
||||
mavenErrorDiagnostics_2_0_1
|
||||
mavenErrorDiagnostics_2_0_6
|
||||
mavenErrorDiagnostics_2_0_9
|
||||
mavenErrorDiagnostics_2_2_1;
|
||||
|
||||
inherit (callPackage ../development/java-modules/maven/filtering.nix { inherit fetchMaven; })
|
||||
mavenFiltering_1_1;
|
||||
|
||||
inherit (callPackage ../development/java-modules/maven-hello { inherit mavenbuild; })
|
||||
mavenHello_1_0
|
||||
mavenHello_1_1;
|
||||
|
||||
inherit (callPackage ../development/java-modules/maven/model.nix { inherit fetchMaven; })
|
||||
mavenModel_2_0_1
|
||||
mavenModel_2_0_6
|
||||
mavenModel_2_0_9
|
||||
mavenModel_2_2_1
|
||||
mavenModel_3_0_3;
|
||||
|
||||
inherit (callPackage ../development/java-modules/maven/monitor.nix { inherit fetchMaven; })
|
||||
mavenMonitor_2_0_1
|
||||
mavenMonitor_2_0_6
|
||||
mavenMonitor_2_0_9
|
||||
mavenMonitor_2_2_1;
|
||||
|
||||
inherit (callPackage ../development/java-modules/maven/plugin-annotations.nix { inherit fetchMaven; })
|
||||
mavenPluginAnnotations_3_1
|
||||
mavenPluginAnnotations_3_2;
|
||||
|
||||
inherit (callPackage ../development/java-modules/maven/plugin-api.nix { inherit fetchMaven; })
|
||||
mavenPluginApi_2_0_1
|
||||
mavenPluginApi_2_0_6
|
||||
mavenPluginApi_2_0_9
|
||||
mavenPluginApi_2_2_1
|
||||
mavenPluginApi_3_0_3;
|
||||
|
||||
inherit (callPackage ../development/java-modules/maven/plugin-descriptor.nix { inherit fetchMaven; })
|
||||
mavenPluginDescriptor_2_0_1
|
||||
mavenPluginDescriptor_2_0_6
|
||||
mavenPluginDescriptor_2_0_9
|
||||
mavenPluginDescriptor_2_2_1;
|
||||
|
||||
inherit (callPackage ../development/java-modules/maven/plugin-parameter-documenter.nix { inherit fetchMaven; })
|
||||
mavenPluginParameterDocumenter_2_0_1
|
||||
mavenPluginParameterDocumenter_2_0_6
|
||||
mavenPluginParameterDocumenter_2_0_9
|
||||
mavenPluginParameterDocumenter_2_2_1;
|
||||
|
||||
inherit (callPackage ../development/java-modules/maven/plugin-registry.nix { inherit fetchMaven; })
|
||||
mavenPluginRegistry_2_0_1
|
||||
mavenPluginRegistry_2_0_6
|
||||
mavenPluginRegistry_2_0_9
|
||||
mavenPluginRegistry_2_2_1;
|
||||
|
||||
inherit (callPackage ../development/java-modules/maven/plugin-testing-harness.nix { inherit fetchMaven; })
|
||||
mavenPluginTestingHarness_1_1;
|
||||
|
||||
inherit (callPackage ../development/java-modules/maven/profile.nix { inherit fetchMaven; })
|
||||
mavenProfile_2_0_1
|
||||
mavenProfile_2_0_6
|
||||
mavenProfile_2_0_9
|
||||
mavenProfile_2_2_1;
|
||||
|
||||
inherit (callPackage ../development/java-modules/maven/project.nix { inherit fetchMaven; })
|
||||
mavenProject_2_0_1
|
||||
mavenProject_2_0_6
|
||||
mavenProject_2_0_8
|
||||
mavenProject_2_0_9
|
||||
mavenProject_2_2_1;
|
||||
|
||||
inherit (callPackage ../development/java-modules/maven/reporting-api.nix { inherit fetchMaven; })
|
||||
mavenReportingApi_2_0_1
|
||||
mavenReportingApi_2_0_6
|
||||
mavenReportingApi_2_0_9
|
||||
mavenReportingApi_2_2_1;
|
||||
|
||||
inherit (callPackage ../development/java-modules/maven/repository-metadata.nix { inherit fetchMaven; })
|
||||
mavenRepositoryMetadata_2_0_1
|
||||
mavenRepositoryMetadata_2_0_6
|
||||
mavenRepositoryMetadata_2_0_9
|
||||
mavenRepositoryMetadata_2_2_1;
|
||||
|
||||
inherit (callPackage ../development/java-modules/maven/settings.nix { inherit fetchMaven; })
|
||||
mavenSettings_2_0_1
|
||||
mavenSettings_2_0_6
|
||||
mavenSettings_2_0_9
|
||||
mavenSettings_2_2_1;
|
||||
|
||||
inherit (callPackage ../development/java-modules/maven/shared-incremental.nix { inherit fetchMaven; })
|
||||
mavenSharedIncremental_1_1;
|
||||
|
||||
inherit (callPackage ../development/java-modules/maven/shared-utils.nix { inherit fetchMaven; })
|
||||
mavenSharedUtils_0_1;
|
||||
|
||||
inherit (callPackage ../development/java-modules/maven/surefire-api.nix { inherit fetchMaven; })
|
||||
mavenSurefireApi_2_12_4
|
||||
mavenSurefireApi_2_17;
|
||||
|
||||
inherit (callPackage ../development/java-modules/maven/surefire-booter.nix { inherit fetchMaven; })
|
||||
mavenSurefireBooter_2_12_4
|
||||
mavenSurefireBooter_2_17;
|
||||
|
||||
inherit (callPackage ../development/java-modules/maven/surefire-common.nix { inherit fetchMaven; })
|
||||
mavenSurefireCommon_2_12_4
|
||||
mavenSurefireCommon_2_17;
|
||||
|
||||
inherit (callPackage ../development/java-modules/maven/surefire-junit4.nix { inherit fetchMaven; })
|
||||
mavenSurefireJunit4_2_12_4;
|
||||
|
||||
inherit (callPackage ../development/java-modules/maven/toolchain.nix { inherit fetchMaven; })
|
||||
mavenToolchain_1_0
|
||||
mavenToolchain_2_0_9
|
||||
mavenToolchain_2_2_1;
|
||||
|
||||
inherit (callPackage ../development/java-modules/mojo/animal-sniffer.nix { inherit fetchMaven; })
|
||||
mojoAnimalSniffer_1_11;
|
||||
|
||||
inherit (callPackage ../development/java-modules/mojo/java-boot-classpath-detector.nix { inherit fetchMaven; })
|
||||
mojoJavaBootClasspathDetector_1_11;
|
||||
|
||||
inherit (callPackage ../development/java-modules/ow2/asm-all.nix { inherit fetchMaven; })
|
||||
ow2AsmAll_4_0;
|
||||
|
||||
inherit (callPackage ../development/java-modules/plexus/archiver.nix { inherit fetchMaven; })
|
||||
plexusArchiver_1_0_alpha7
|
||||
plexusArchiver_2_1;
|
||||
|
||||
inherit (callPackage ../development/java-modules/plexus/build-api.nix { inherit fetchMaven; })
|
||||
plexusBuildApi_0_0_4;
|
||||
|
||||
inherit (callPackage ../development/java-modules/plexus/classworlds.nix { inherit fetchMaven; })
|
||||
plexusClassworlds_2_2_2
|
||||
plexusClassworlds_2_4;
|
||||
|
||||
inherit (callPackage ../development/java-modules/plexus/compiler-api.nix { inherit fetchMaven; })
|
||||
plexusCompilerApi_2_2
|
||||
plexusCompilerApi_2_4;
|
||||
|
||||
inherit (callPackage ../development/java-modules/plexus/compiler-javac.nix { inherit fetchMaven; })
|
||||
plexusCompilerJavac_2_2
|
||||
plexusCompilerJavac_2_4;
|
||||
|
||||
inherit (callPackage ../development/java-modules/plexus/compiler-manager.nix { inherit fetchMaven; })
|
||||
plexusCompilerManager_2_2
|
||||
plexusCompilerManager_2_4;
|
||||
|
||||
inherit (callPackage ../development/java-modules/plexus/component-annotations.nix { inherit fetchMaven; })
|
||||
plexusComponentAnnotations_1_5_5;
|
||||
|
||||
inherit (callPackage ../development/java-modules/plexus/container-default.nix { inherit fetchMaven; })
|
||||
plexusContainerDefault_1_0_alpha9
|
||||
plexusContainerDefault_1_0_alpha9_stable1
|
||||
plexusContainerDefault_1_5_5;
|
||||
|
||||
inherit (callPackage ../development/java-modules/plexus/digest.nix { inherit fetchMaven; })
|
||||
plexusDigest_1_0;
|
||||
|
||||
inherit (callPackage ../development/java-modules/plexus/i18n.nix { inherit fetchMaven; })
|
||||
plexusI18n_1_0_beta6;
|
||||
|
||||
inherit (callPackage ../development/java-modules/plexus/interactivity-api.nix { inherit fetchMaven; })
|
||||
plexusInteractivityApi_1_0_alpha4;
|
||||
|
||||
inherit (callPackage ../development/java-modules/plexus/interpolation.nix { inherit fetchMaven; })
|
||||
plexusInterpolation_1_11
|
||||
plexusInterpolation_1_12
|
||||
plexusInterpolation_1_13
|
||||
plexusInterpolation_1_15;
|
||||
|
||||
inherit (callPackage ../development/java-modules/plexus/io.nix { inherit fetchMaven; })
|
||||
plexusIo_2_0_2;
|
||||
|
||||
inherit (callPackage ../development/java-modules/plexus/utils.nix { inherit fetchMaven; })
|
||||
plexusUtils_1_0_4
|
||||
plexusUtils_1_0_5
|
||||
plexusUtils_1_1
|
||||
plexusUtils_1_4_1
|
||||
plexusUtils_1_4_5
|
||||
plexusUtils_1_4_9
|
||||
plexusUtils_1_5_1
|
||||
plexusUtils_1_5_5
|
||||
plexusUtils_1_5_6
|
||||
plexusUtils_1_5_8
|
||||
plexusUtils_1_5_15
|
||||
plexusUtils_2_0_5
|
||||
plexusUtils_2_0_6
|
||||
plexusUtils_3_0
|
||||
plexusUtils_3_0_5
|
||||
plexusUtils_3_0_8;
|
||||
|
||||
inherit (callPackage ../development/java-modules/sisu/guice.nix { inherit fetchMaven; })
|
||||
sisuGuice_2_9_4;
|
||||
|
||||
inherit (callPackage ../development/java-modules/sisu/inject-bean.nix { inherit fetchMaven; })
|
||||
sisuInjectBean_2_1_1;
|
||||
|
||||
inherit (callPackage ../development/java-modules/sisu/inject-plexus.nix { inherit fetchMaven; })
|
||||
sisuInjectPlexus_2_1_1;
|
||||
|
||||
inherit (callPackage ../development/java-modules/apache/xbean-reflect.nix { inherit fetchMaven; })
|
||||
xbeanReflect_3_4;
|
||||
|
||||
inherit (callPackage ../development/java-modules/xerces/impl.nix { inherit fetchMaven; })
|
||||
xercesImpl_2_8_0;
|
||||
|
||||
inherit (callPackage ../development/java-modules/xml-apis { inherit fetchMaven; })
|
||||
xmlApis_1_3_03;
|
||||
}
|
||||
160
pkgs/top-level/kodi-packages.nix
Normal file
160
pkgs/top-level/kodi-packages.nix
Normal file
|
|
@ -0,0 +1,160 @@
|
|||
{ config, lib, newScope, kodi, libretro }:
|
||||
|
||||
with lib;
|
||||
|
||||
let
|
||||
inherit (libretro) genesis-plus-gx mgba snes9x;
|
||||
in
|
||||
|
||||
let self = rec {
|
||||
|
||||
addonDir = "/share/kodi/addons";
|
||||
rel = "Matrix";
|
||||
|
||||
callPackage = newScope self;
|
||||
|
||||
inherit kodi;
|
||||
|
||||
# Convert derivation to a kodi module. Stolen from ../../../top-level/python-packages.nix
|
||||
toKodiAddon = drv: drv.overrideAttrs (oldAttrs: {
|
||||
# Use passthru in order to prevent rebuilds when possible.
|
||||
passthru = (oldAttrs.passthru or {}) // {
|
||||
kodiAddonFor = kodi;
|
||||
requiredKodiAddons = requiredKodiAddons drv.propagatedBuildInputs;
|
||||
};
|
||||
});
|
||||
|
||||
# Check whether a derivation provides a Kodi addon.
|
||||
hasKodiAddon = drv: drv ? kodiAddonFor && drv.kodiAddonFor == kodi;
|
||||
|
||||
# Get list of required Kodi addons given a list of derivations.
|
||||
requiredKodiAddons = drvs:
|
||||
let
|
||||
modules = filter hasKodiAddon drvs;
|
||||
in
|
||||
unique (modules ++ concatLists (catAttrs "requiredKodiAddons" modules));
|
||||
|
||||
# package update scripts
|
||||
|
||||
addonUpdateScript = callPackage ../applications/video/kodi/addons/addon-update-script { };
|
||||
|
||||
# package builders
|
||||
|
||||
buildKodiAddon = callPackage ../applications/video/kodi/build-kodi-addon.nix { };
|
||||
|
||||
buildKodiBinaryAddon = callPackage ../applications/video/kodi/build-kodi-binary-addon.nix { };
|
||||
|
||||
# regular packages
|
||||
|
||||
kodi-platform = callPackage ../applications/video/kodi/addons/kodi-platform { };
|
||||
|
||||
# addon packages
|
||||
|
||||
a4ksubtitles = callPackage ../applications/video/kodi/addons/a4ksubtitles { };
|
||||
|
||||
arteplussept = callPackage ../applications/video/kodi/addons/arteplussept { };
|
||||
|
||||
controller-topology-project = callPackage ../applications/video/kodi/addons/controller-topology-project { };
|
||||
|
||||
iagl = callPackage ../applications/video/kodi/addons/iagl { };
|
||||
|
||||
libretro = callPackage ../applications/video/kodi/addons/libretro { };
|
||||
|
||||
libretro-genplus = callPackage ../applications/video/kodi/addons/libretro-genplus { inherit genesis-plus-gx; };
|
||||
|
||||
libretro-mgba = callPackage ../applications/video/kodi/addons/libretro-mgba { inherit mgba; };
|
||||
|
||||
libretro-snes9x = callPackage ../applications/video/kodi/addons/libretro-snes9x { inherit snes9x; };
|
||||
|
||||
jellyfin = callPackage ../applications/video/kodi/addons/jellyfin { };
|
||||
|
||||
joystick = callPackage ../applications/video/kodi/addons/joystick { };
|
||||
|
||||
keymap = callPackage ../applications/video/kodi/addons/keymap { };
|
||||
|
||||
netflix = callPackage ../applications/video/kodi/addons/netflix { };
|
||||
|
||||
orftvthek = callPackage ../applications/video/kodi/addons/orftvthek { };
|
||||
|
||||
svtplay = callPackage ../applications/video/kodi/addons/svtplay { };
|
||||
|
||||
steam-controller = callPackage ../applications/video/kodi/addons/steam-controller { };
|
||||
|
||||
steam-launcher = callPackage ../applications/video/kodi/addons/steam-launcher { };
|
||||
|
||||
steam-library = callPackage ../applications/video/kodi/addons/steam-library { };
|
||||
|
||||
pdfreader = callPackage ../applications/video/kodi/addons/pdfreader { };
|
||||
|
||||
pvr-hts = callPackage ../applications/video/kodi/addons/pvr-hts { };
|
||||
|
||||
pvr-hdhomerun = callPackage ../applications/video/kodi/addons/pvr-hdhomerun { };
|
||||
|
||||
pvr-iptvsimple = callPackage ../applications/video/kodi/addons/pvr-iptvsimple { };
|
||||
|
||||
osmc-skin = callPackage ../applications/video/kodi/addons/osmc-skin { };
|
||||
|
||||
vfs-sftp = callPackage ../applications/video/kodi/addons/vfs-sftp { };
|
||||
|
||||
vfs-libarchive = callPackage ../applications/video/kodi/addons/vfs-libarchive { };
|
||||
|
||||
youtube = callPackage ../applications/video/kodi/addons/youtube { };
|
||||
|
||||
# addon packages (dependencies)
|
||||
|
||||
archive_tool = callPackage ../applications/video/kodi/addons/archive_tool { };
|
||||
|
||||
certifi = callPackage ../applications/video/kodi/addons/certifi { };
|
||||
|
||||
chardet = callPackage ../applications/video/kodi/addons/chardet { };
|
||||
|
||||
dateutil = callPackage ../applications/video/kodi/addons/dateutil { };
|
||||
|
||||
defusedxml = callPackage ../applications/video/kodi/addons/defusedxml { };
|
||||
|
||||
future = callPackage ../applications/video/kodi/addons/future { };
|
||||
|
||||
idna = callPackage ../applications/video/kodi/addons/idna { };
|
||||
|
||||
inputstream-adaptive = callPackage ../applications/video/kodi/addons/inputstream-adaptive { };
|
||||
|
||||
inputstream-ffmpegdirect = callPackage ../applications/video/kodi/addons/inputstream-ffmpegdirect { };
|
||||
|
||||
inputstream-rtmp = callPackage ../applications/video/kodi/addons/inputstream-rtmp { };
|
||||
|
||||
inputstreamhelper = callPackage ../applications/video/kodi/addons/inputstreamhelper { };
|
||||
|
||||
kodi-six = callPackage ../applications/video/kodi/addons/kodi-six { };
|
||||
|
||||
myconnpy = callPackage ../applications/video/kodi/addons/myconnpy { };
|
||||
|
||||
requests = callPackage ../applications/video/kodi/addons/requests { };
|
||||
|
||||
requests-cache = callPackage ../applications/video/kodi/addons/requests-cache { };
|
||||
|
||||
routing = callPackage ../applications/video/kodi/addons/routing { };
|
||||
|
||||
signals = callPackage ../applications/video/kodi/addons/signals { };
|
||||
|
||||
simplejson = callPackage ../applications/video/kodi/addons/simplejson { };
|
||||
|
||||
six = callPackage ../applications/video/kodi/addons/six { };
|
||||
|
||||
urllib3 = callPackage ../applications/video/kodi/addons/urllib3 { };
|
||||
|
||||
websocket = callPackage ../applications/video/kodi/addons/websocket { };
|
||||
|
||||
xbmcswift2 = callPackage ../applications/video/kodi/addons/xbmcswift2 { };
|
||||
|
||||
typing_extensions = callPackage ../applications/video/kodi/addons/typing_extensions { };
|
||||
|
||||
arrow = callPackage ../applications/video/kodi/addons/arrow { };
|
||||
|
||||
trakt-module = callPackage ../applications/video/kodi/addons/trakt-module { };
|
||||
|
||||
trakt = callPackage ../applications/video/kodi/addons/trakt { };
|
||||
}; in self // lib.optionalAttrs config.allowAliases {
|
||||
# deprecated or renamed packages
|
||||
|
||||
controllers = throw "kodi.packages.controllers has been replaced with kodi.packages.controller-topology-project - a package which contains a large number of controller profiles." { };
|
||||
}
|
||||
611
pkgs/top-level/linux-kernels.nix
Normal file
611
pkgs/top-level/linux-kernels.nix
Normal file
|
|
@ -0,0 +1,611 @@
|
|||
{ pkgs
|
||||
, linuxKernel
|
||||
, config
|
||||
, buildPackages
|
||||
, callPackage
|
||||
, makeOverridable
|
||||
, recurseIntoAttrs
|
||||
, dontRecurseIntoAttrs
|
||||
, stdenv
|
||||
, stdenvNoCC
|
||||
, newScope
|
||||
, lib
|
||||
, fetchurl
|
||||
, gcc10Stdenv
|
||||
}:
|
||||
|
||||
# When adding a kernel:
|
||||
# - Update packageAliases.linux_latest to the latest version
|
||||
# - Update the rev in ../os-specific/linux/kernel/linux-libre.nix to the latest one.
|
||||
# - Update linux_latest_hardened when the patches become available
|
||||
|
||||
with linuxKernel;
|
||||
|
||||
let
|
||||
deblobKernel = kernel: callPackage ../os-specific/linux/kernel/linux-libre.nix {
|
||||
linux = kernel;
|
||||
};
|
||||
|
||||
# Hardened Linux
|
||||
hardenedKernelFor = kernel': overrides:
|
||||
let
|
||||
kernel = kernel'.override overrides;
|
||||
version = kernelPatches.hardened.${kernel.meta.branch}.version;
|
||||
major = lib.versions.major version;
|
||||
sha256 = kernelPatches.hardened.${kernel.meta.branch}.sha256;
|
||||
modDirVersion' = builtins.replaceStrings [ kernel.version ] [ version ] kernel.modDirVersion;
|
||||
in kernel.override {
|
||||
structuredExtraConfig = import ../os-specific/linux/kernel/hardened/config.nix {
|
||||
inherit lib version;
|
||||
};
|
||||
argsOverride = {
|
||||
inherit version;
|
||||
src = fetchurl {
|
||||
url = "mirror://kernel/linux/kernel/v${major}.x/linux-${version}.tar.xz";
|
||||
inherit sha256;
|
||||
};
|
||||
};
|
||||
kernelPatches = kernel.kernelPatches ++ [
|
||||
kernelPatches.hardened.${kernel.meta.branch}
|
||||
];
|
||||
modDirVersionArg = modDirVersion' + (kernelPatches.hardened.${kernel.meta.branch}).extra;
|
||||
isHardened = true;
|
||||
};
|
||||
in {
|
||||
kernelPatches = callPackage ../os-specific/linux/kernel/patches.nix { };
|
||||
|
||||
kernels = recurseIntoAttrs (lib.makeExtensible (self: with self;
|
||||
let callPackage = newScope self; in {
|
||||
|
||||
linux_mptcp_95 = callPackage ../os-specific/linux/kernel/linux-mptcp-95.nix {
|
||||
kernelPatches = linux_4_19.kernelPatches;
|
||||
};
|
||||
|
||||
linux_rpi1 = callPackage ../os-specific/linux/kernel/linux-rpi.nix {
|
||||
kernelPatches = with kernelPatches; [
|
||||
bridge_stp_helper
|
||||
request_key_helper
|
||||
];
|
||||
rpiVersion = 1;
|
||||
};
|
||||
|
||||
linux_rpi2 = callPackage ../os-specific/linux/kernel/linux-rpi.nix {
|
||||
kernelPatches = with kernelPatches; [
|
||||
bridge_stp_helper
|
||||
request_key_helper
|
||||
];
|
||||
rpiVersion = 2;
|
||||
};
|
||||
|
||||
linux_rpi3 = callPackage ../os-specific/linux/kernel/linux-rpi.nix {
|
||||
kernelPatches = with kernelPatches; [
|
||||
bridge_stp_helper
|
||||
request_key_helper
|
||||
];
|
||||
rpiVersion = 3;
|
||||
};
|
||||
|
||||
linux_rpi4 = callPackage ../os-specific/linux/kernel/linux-rpi.nix {
|
||||
kernelPatches = with kernelPatches; [
|
||||
bridge_stp_helper
|
||||
request_key_helper
|
||||
];
|
||||
rpiVersion = 4;
|
||||
};
|
||||
|
||||
linux_4_4 = throw "linux 4.4 was removed because it reached its end of life upstream";
|
||||
|
||||
linux_4_9 = callPackage ../os-specific/linux/kernel/linux-4.9.nix {
|
||||
kernelPatches =
|
||||
[ kernelPatches.bridge_stp_helper
|
||||
kernelPatches.request_key_helper_updated
|
||||
kernelPatches.cpu-cgroup-v2."4.9"
|
||||
kernelPatches.modinst_arg_list_too_long
|
||||
];
|
||||
};
|
||||
|
||||
linux_4_14 = callPackage ../os-specific/linux/kernel/linux-4.14.nix {
|
||||
kernelPatches =
|
||||
[ kernelPatches.bridge_stp_helper
|
||||
kernelPatches.request_key_helper
|
||||
# See pkgs/os-specific/linux/kernel/cpu-cgroup-v2-patches/README.md
|
||||
# when adding a new linux version
|
||||
kernelPatches.cpu-cgroup-v2."4.11"
|
||||
kernelPatches.modinst_arg_list_too_long
|
||||
];
|
||||
};
|
||||
|
||||
linux_4_19 = callPackage ../os-specific/linux/kernel/linux-4.19.nix {
|
||||
kernelPatches =
|
||||
[ kernelPatches.bridge_stp_helper
|
||||
kernelPatches.request_key_helper
|
||||
kernelPatches.modinst_arg_list_too_long
|
||||
];
|
||||
};
|
||||
|
||||
linux_5_4 = callPackage ../os-specific/linux/kernel/linux-5.4.nix {
|
||||
kernelPatches = [
|
||||
kernelPatches.bridge_stp_helper
|
||||
kernelPatches.request_key_helper
|
||||
kernelPatches.rtl8761b_support
|
||||
];
|
||||
};
|
||||
|
||||
linux_rt_5_4 = callPackage ../os-specific/linux/kernel/linux-rt-5.4.nix {
|
||||
kernelPatches = [
|
||||
kernelPatches.bridge_stp_helper
|
||||
kernelPatches.request_key_helper
|
||||
];
|
||||
};
|
||||
|
||||
linux_5_10 = callPackage ../os-specific/linux/kernel/linux-5.10.nix {
|
||||
kernelPatches = [
|
||||
kernelPatches.bridge_stp_helper
|
||||
kernelPatches.request_key_helper
|
||||
];
|
||||
};
|
||||
|
||||
linux_rt_5_10 = callPackage ../os-specific/linux/kernel/linux-rt-5.10.nix {
|
||||
kernelPatches = [
|
||||
kernelPatches.bridge_stp_helper
|
||||
kernelPatches.request_key_helper
|
||||
kernelPatches.export-rt-sched-migrate
|
||||
];
|
||||
};
|
||||
|
||||
linux_5_15 = callPackage ../os-specific/linux/kernel/linux-5.15.nix {
|
||||
kernelPatches = [
|
||||
kernelPatches.bridge_stp_helper
|
||||
kernelPatches.request_key_helper
|
||||
];
|
||||
};
|
||||
|
||||
linux_5_16 = throw "linux 5.16 was removed because it has reached its end of life upstream";
|
||||
|
||||
linux_5_17 = callPackage ../os-specific/linux/kernel/linux-5.17.nix {
|
||||
kernelPatches = [
|
||||
kernelPatches.bridge_stp_helper
|
||||
kernelPatches.request_key_helper
|
||||
];
|
||||
};
|
||||
|
||||
linux_5_18 = callPackage ../os-specific/linux/kernel/linux-5.18.nix {
|
||||
kernelPatches = [
|
||||
kernelPatches.bridge_stp_helper
|
||||
kernelPatches.request_key_helper
|
||||
];
|
||||
};
|
||||
|
||||
linux_testing = let
|
||||
testing = callPackage ../os-specific/linux/kernel/linux-testing.nix {
|
||||
kernelPatches = [
|
||||
kernelPatches.bridge_stp_helper
|
||||
kernelPatches.request_key_helper
|
||||
];
|
||||
};
|
||||
latest = packageAliases.linux_latest.kernel;
|
||||
in if latest.kernelAtLeast testing.baseVersion
|
||||
then latest
|
||||
else testing;
|
||||
|
||||
linux_testing_bcachefs = callPackage ../os-specific/linux/kernel/linux-testing-bcachefs.nix rec {
|
||||
kernel = linux_5_17;
|
||||
kernelPatches = kernel.kernelPatches;
|
||||
};
|
||||
|
||||
linux_hardkernel_4_14 = callPackage ../os-specific/linux/kernel/linux-hardkernel-4.14.nix {
|
||||
kernelPatches = [
|
||||
kernelPatches.bridge_stp_helper
|
||||
kernelPatches.request_key_helper
|
||||
kernelPatches.modinst_arg_list_too_long
|
||||
];
|
||||
};
|
||||
|
||||
linux_zen = callPackage ../os-specific/linux/kernel/linux-zen.nix {
|
||||
kernelPatches = [
|
||||
kernelPatches.bridge_stp_helper
|
||||
kernelPatches.request_key_helper
|
||||
];
|
||||
};
|
||||
|
||||
linux_lqx = callPackage ../os-specific/linux/kernel/linux-lqx.nix {
|
||||
kernelPatches = [
|
||||
kernelPatches.bridge_stp_helper
|
||||
kernelPatches.request_key_helper
|
||||
];
|
||||
};
|
||||
|
||||
# This contains both the STABLE and EDGE variants of the XanMod kernel
|
||||
xanmodKernels = callPackage ../os-specific/linux/kernel/xanmod-kernels.nix;
|
||||
|
||||
linux_xanmod = (xanmodKernels {
|
||||
kernelPatches = [
|
||||
kernelPatches.bridge_stp_helper
|
||||
kernelPatches.request_key_helper
|
||||
];
|
||||
}).stable;
|
||||
|
||||
linux_xanmod_latest = (xanmodKernels {
|
||||
kernelPatches = [
|
||||
kernelPatches.bridge_stp_helper
|
||||
kernelPatches.request_key_helper
|
||||
];
|
||||
}).edge;
|
||||
|
||||
linux_libre = deblobKernel packageAliases.linux_default.kernel;
|
||||
|
||||
linux_latest_libre = deblobKernel packageAliases.linux_latest.kernel;
|
||||
|
||||
linux_hardened = hardenedKernelFor packageAliases.linux_default.kernel { };
|
||||
|
||||
linux_4_14_hardened = hardenedKernelFor kernels.linux_4_14 { };
|
||||
linux_4_19_hardened = hardenedKernelFor kernels.linux_4_19 { };
|
||||
linux_5_4_hardened = hardenedKernelFor kernels.linux_5_4 { };
|
||||
linux_5_10_hardened = hardenedKernelFor kernels.linux_5_10 { };
|
||||
linux_5_15_hardened = hardenedKernelFor kernels.linux_5_15 { };
|
||||
linux_5_17_hardened = hardenedKernelFor kernels.linux_5_17 { };
|
||||
|
||||
}));
|
||||
/* Linux kernel modules are inherently tied to a specific kernel. So
|
||||
rather than provide specific instances of those packages for a
|
||||
specific kernel, we have a function that builds those packages
|
||||
for a specific kernel. This function can then be called for
|
||||
whatever kernel you're using. */
|
||||
|
||||
packagesFor = kernel_: lib.makeExtensible (self: with self;
|
||||
let callPackage = newScope self; in {
|
||||
inherit callPackage;
|
||||
kernel = kernel_;
|
||||
inherit (kernel) stdenv; # in particular, use the same compiler by default
|
||||
|
||||
# to help determine module compatibility
|
||||
inherit (kernel) isZen isHardened isLibre;
|
||||
inherit (kernel) kernelOlder kernelAtLeast;
|
||||
# Obsolete aliases (these packages do not depend on the kernel).
|
||||
inherit (pkgs) odp-dpdk pktgen; # added 2018-05
|
||||
inherit (pkgs) bcc bpftrace; # added 2021-12
|
||||
|
||||
acpi_call = callPackage ../os-specific/linux/acpi-call {};
|
||||
|
||||
akvcam = callPackage ../os-specific/linux/akvcam { };
|
||||
|
||||
amdgpu-pro = callPackage ../os-specific/linux/amdgpu-pro {
|
||||
libffi = pkgs.libffi.overrideAttrs (orig: rec {
|
||||
version = "3.3";
|
||||
src = fetchurl {
|
||||
url = "https://github.com/libffi/libffi/releases/download/v${version}/${orig.pname}-${version}.tar.gz";
|
||||
sha256 = "0mi0cpf8aa40ljjmzxb7im6dbj45bb0kllcd09xgmp834y9agyvj";
|
||||
};
|
||||
});
|
||||
};
|
||||
|
||||
apfs = callPackage ../os-specific/linux/apfs { };
|
||||
|
||||
batman_adv = callPackage ../os-specific/linux/batman-adv {};
|
||||
|
||||
bbswitch = callPackage ../os-specific/linux/bbswitch {};
|
||||
|
||||
chipsec = callPackage ../tools/security/chipsec {
|
||||
inherit kernel;
|
||||
withDriver = true;
|
||||
};
|
||||
|
||||
cryptodev = callPackage ../os-specific/linux/cryptodev { };
|
||||
|
||||
cpupower = callPackage ../os-specific/linux/cpupower { };
|
||||
|
||||
ddcci-driver = callPackage ../os-specific/linux/ddcci { };
|
||||
|
||||
dddvb = callPackage ../os-specific/linux/dddvb { };
|
||||
|
||||
digimend = callPackage ../os-specific/linux/digimend { };
|
||||
|
||||
dpdk-kmods = callPackage ../os-specific/linux/dpdk-kmods { };
|
||||
|
||||
dpdk = pkgs.dpdk.override { inherit kernel; };
|
||||
|
||||
exfat-nofuse = callPackage ../os-specific/linux/exfat { };
|
||||
|
||||
evdi = callPackage ../os-specific/linux/evdi { };
|
||||
|
||||
fwts-efi-runtime = callPackage ../os-specific/linux/fwts/module.nix { };
|
||||
|
||||
gcadapter-oc-kmod = callPackage ../os-specific/linux/gcadapter-oc-kmod { };
|
||||
hid-nintendo = callPackage ../os-specific/linux/hid-nintendo { };
|
||||
|
||||
hyperv-daemons = callPackage ../os-specific/linux/hyperv-daemons { };
|
||||
|
||||
e1000e = if lib.versionOlder kernel.version "4.10" then callPackage ../os-specific/linux/e1000e {} else null;
|
||||
|
||||
intel-speed-select = if lib.versionAtLeast kernel.version "5.3" then callPackage ../os-specific/linux/intel-speed-select { } else null;
|
||||
|
||||
ixgbevf = callPackage ../os-specific/linux/ixgbevf {};
|
||||
|
||||
it87 = callPackage ../os-specific/linux/it87 {};
|
||||
|
||||
asus-ec-sensors = callPackage ../os-specific/linux/asus-ec-sensors {};
|
||||
|
||||
asus-wmi-sensors = callPackage ../os-specific/linux/asus-wmi-sensors {};
|
||||
|
||||
ena = callPackage ../os-specific/linux/ena {};
|
||||
|
||||
kvdo = callPackage ../os-specific/linux/kvdo {};
|
||||
|
||||
liquidtux = callPackage ../os-specific/linux/liquidtux {};
|
||||
|
||||
v4l2loopback = callPackage ../os-specific/linux/v4l2loopback { };
|
||||
|
||||
lttng-modules = callPackage ../os-specific/linux/lttng-modules { };
|
||||
|
||||
broadcom_sta = callPackage ../os-specific/linux/broadcom-sta { };
|
||||
|
||||
tbs = callPackage ../os-specific/linux/tbs { };
|
||||
|
||||
mbp2018-bridge-drv = callPackage ../os-specific/linux/mbp-modules/mbp2018-bridge-drv { };
|
||||
|
||||
new-lg4ff = callPackage ../os-specific/linux/new-lg4ff { };
|
||||
|
||||
nvidiabl = callPackage ../os-specific/linux/nvidiabl { };
|
||||
|
||||
nvidiaPackages = dontRecurseIntoAttrs (lib.makeExtensible (_: callPackage ../os-specific/linux/nvidia-x11 { }));
|
||||
|
||||
nvidia_x11_legacy340 = nvidiaPackages.legacy_340;
|
||||
nvidia_x11_legacy390 = nvidiaPackages.legacy_390;
|
||||
nvidia_x11_legacy470 = nvidiaPackages.legacy_470;
|
||||
nvidia_x11_beta = nvidiaPackages.beta;
|
||||
nvidia_x11_vulkan_beta = nvidiaPackages.vulkan_beta;
|
||||
nvidia_x11 = nvidiaPackages.stable;
|
||||
|
||||
openrazer = callPackage ../os-specific/linux/openrazer/driver.nix { };
|
||||
|
||||
ply = callPackage ../os-specific/linux/ply { };
|
||||
|
||||
r8125 = callPackage ../os-specific/linux/r8125 { };
|
||||
|
||||
r8168 = callPackage ../os-specific/linux/r8168 { };
|
||||
|
||||
rtl8188eus-aircrack = callPackage ../os-specific/linux/rtl8188eus-aircrack { };
|
||||
|
||||
rtl8192eu = callPackage ../os-specific/linux/rtl8192eu { };
|
||||
|
||||
rtl8189es = callPackage ../os-specific/linux/rtl8189es { };
|
||||
|
||||
rtl8723bs = callPackage ../os-specific/linux/rtl8723bs { };
|
||||
|
||||
rtl8812au = callPackage ../os-specific/linux/rtl8812au { };
|
||||
|
||||
rtl8814au = callPackage ../os-specific/linux/rtl8814au { };
|
||||
|
||||
rtl88xxau-aircrack = callPackage ../os-specific/linux/rtl88xxau-aircrack {};
|
||||
|
||||
rtl8821au = callPackage ../os-specific/linux/rtl8821au { };
|
||||
|
||||
rtl8821ce = callPackage ../os-specific/linux/rtl8821ce { };
|
||||
|
||||
rtl88x2bu = callPackage ../os-specific/linux/rtl88x2bu { };
|
||||
|
||||
rtl8821cu = callPackage ../os-specific/linux/rtl8821cu { };
|
||||
|
||||
rtw88 = callPackage ../os-specific/linux/rtw88 { };
|
||||
rtlwifi_new = rtw88;
|
||||
|
||||
rtw89 = if lib.versionOlder kernel.version "5.16" then callPackage ../os-specific/linux/rtw89 { } else null;
|
||||
|
||||
openafs_1_8 = callPackage ../servers/openafs/1.8/module.nix { };
|
||||
openafs_1_9 = callPackage ../servers/openafs/1.9/module.nix { };
|
||||
# Current stable release; don't backport release updates!
|
||||
openafs = openafs_1_8;
|
||||
|
||||
facetimehd = callPackage ../os-specific/linux/facetimehd { };
|
||||
|
||||
tuxedo-keyboard = if lib.versionAtLeast kernel.version "4.14" then callPackage ../os-specific/linux/tuxedo-keyboard { } else null;
|
||||
|
||||
jool = callPackage ../os-specific/linux/jool { };
|
||||
|
||||
kvmfr = callPackage ../os-specific/linux/kvmfr { };
|
||||
|
||||
mba6x_bl = callPackage ../os-specific/linux/mba6x_bl { };
|
||||
|
||||
mwprocapture = callPackage ../os-specific/linux/mwprocapture { };
|
||||
|
||||
mxu11x0 = callPackage ../os-specific/linux/mxu11x0 { };
|
||||
|
||||
# compiles but has to be integrated into the kernel somehow
|
||||
# Let's have it uncommented and finish it..
|
||||
ndiswrapper = callPackage ../os-specific/linux/ndiswrapper { };
|
||||
|
||||
netatop = callPackage ../os-specific/linux/netatop { };
|
||||
|
||||
oci-seccomp-bpf-hook = if lib.versionAtLeast kernel.version "5.4" then callPackage ../os-specific/linux/oci-seccomp-bpf-hook { } else null;
|
||||
|
||||
perf = callPackage ../os-specific/linux/kernel/perf.nix { };
|
||||
|
||||
phc-intel = if lib.versionAtLeast kernel.version "4.10" then callPackage ../os-specific/linux/phc-intel { } else null;
|
||||
|
||||
# Disable for kernels 4.15 and above due to compatibility issues
|
||||
prl-tools = if lib.versionOlder kernel.version "4.15" then callPackage ../os-specific/linux/prl-tools { } else null;
|
||||
|
||||
sch_cake = callPackage ../os-specific/linux/sch_cake { };
|
||||
|
||||
isgx = callPackage ../os-specific/linux/isgx { };
|
||||
|
||||
rr-zen_workaround = callPackage ../development/tools/analysis/rr/zen_workaround.nix { };
|
||||
|
||||
sysdig = callPackage ../os-specific/linux/sysdig {};
|
||||
|
||||
systemtap = callPackage ../development/tools/profiling/systemtap { };
|
||||
|
||||
system76 = callPackage ../os-specific/linux/system76 { };
|
||||
|
||||
system76-acpi = callPackage ../os-specific/linux/system76-acpi { };
|
||||
|
||||
system76-power = callPackage ../os-specific/linux/system76-power { };
|
||||
|
||||
system76-io = callPackage ../os-specific/linux/system76-io { };
|
||||
|
||||
tmon = callPackage ../os-specific/linux/tmon { };
|
||||
|
||||
tp_smapi = callPackage ../os-specific/linux/tp_smapi { };
|
||||
|
||||
turbostat = callPackage ../os-specific/linux/turbostat { };
|
||||
|
||||
usbip = callPackage ../os-specific/linux/usbip { };
|
||||
|
||||
v86d = callPackage ../os-specific/linux/v86d { };
|
||||
|
||||
veikk-linux-driver = callPackage ../os-specific/linux/veikk-linux-driver { };
|
||||
vendor-reset = callPackage ../os-specific/linux/vendor-reset { };
|
||||
|
||||
vhba = callPackage ../applications/emulators/cdemu/vhba.nix { };
|
||||
|
||||
virtio_vmmci = callPackage ../os-specific/linux/virtio_vmmci { };
|
||||
|
||||
virtualbox = callPackage ../os-specific/linux/virtualbox {
|
||||
virtualbox = pkgs.virtualboxHardened;
|
||||
};
|
||||
|
||||
virtualboxGuestAdditions = callPackage ../applications/virtualization/virtualbox/guest-additions {
|
||||
virtualbox = pkgs.virtualboxHardened;
|
||||
};
|
||||
|
||||
vm-tools = callPackage ../os-specific/linux/vm-tools { };
|
||||
|
||||
vmm_clock = callPackage ../os-specific/linux/vmm_clock { };
|
||||
|
||||
vmware = callPackage ../os-specific/linux/vmware { };
|
||||
|
||||
wireguard = if lib.versionOlder kernel.version "5.6" then callPackage ../os-specific/linux/wireguard { } else null;
|
||||
|
||||
x86_energy_perf_policy = callPackage ../os-specific/linux/x86_energy_perf_policy { };
|
||||
|
||||
xmm7360-pci = callPackage ../os-specific/linux/xmm7360-pci { };
|
||||
|
||||
xone = if lib.versionAtLeast kernel.version "5.4" then callPackage ../os-specific/linux/xone { } else null;
|
||||
|
||||
xpadneo = callPackage ../os-specific/linux/xpadneo { };
|
||||
|
||||
zenpower = callPackage ../os-specific/linux/zenpower { };
|
||||
|
||||
inherit (callPackage ../os-specific/linux/zfs {
|
||||
configFile = "kernel";
|
||||
inherit pkgs kernel;
|
||||
}) zfsStable zfsUnstable;
|
||||
zfs = zfsStable;
|
||||
|
||||
can-isotp = callPackage ../os-specific/linux/can-isotp { };
|
||||
|
||||
} // lib.optionalAttrs config.allowAliases {
|
||||
ati_drivers_x11 = throw "ati drivers are no longer supported by any kernel >=4.1"; # added 2021-05-18;
|
||||
});
|
||||
|
||||
hardenedPackagesFor = kernel: overrides: packagesFor (hardenedKernelFor kernel overrides);
|
||||
|
||||
vanillaPackages = {
|
||||
# recurse to build modules for the kernels
|
||||
linux_4_4 = throw "linux 4.4 was removed because it reached its end of life upstream"; # Added 2022-02-11
|
||||
linux_4_9 = recurseIntoAttrs (packagesFor kernels.linux_4_9);
|
||||
linux_4_14 = recurseIntoAttrs (packagesFor kernels.linux_4_14);
|
||||
linux_4_19 = recurseIntoAttrs (packagesFor kernels.linux_4_19);
|
||||
linux_5_4 = recurseIntoAttrs (packagesFor kernels.linux_5_4);
|
||||
linux_5_10 = recurseIntoAttrs (packagesFor kernels.linux_5_10);
|
||||
linux_5_15 = recurseIntoAttrs (packagesFor kernels.linux_5_15);
|
||||
linux_5_16 = throw "linux 5.16 was removed because it reached its end of life upstream"; # Added 2022-04-23
|
||||
linux_5_17 = recurseIntoAttrs (packagesFor kernels.linux_5_17);
|
||||
linux_5_18 = recurseIntoAttrs (packagesFor kernels.linux_5_18);
|
||||
};
|
||||
|
||||
rtPackages = {
|
||||
# realtime kernel packages
|
||||
linux_rt_5_4 = packagesFor kernels.linux_rt_5_4;
|
||||
linux_rt_5_10 = packagesFor kernels.linux_rt_5_10;
|
||||
};
|
||||
|
||||
rpiPackages = {
|
||||
linux_rpi1 = packagesFor kernels.linux_rpi1;
|
||||
linux_rpi2 = packagesFor kernels.linux_rpi2;
|
||||
linux_rpi3 = packagesFor kernels.linux_rpi3;
|
||||
linux_rpi4 = packagesFor kernels.linux_rpi4;
|
||||
};
|
||||
|
||||
packages = recurseIntoAttrs (vanillaPackages // rtPackages // rpiPackages // {
|
||||
linux_mptcp_95 = packagesFor kernels.linux_mptcp_95;
|
||||
|
||||
# Intentionally lacks recurseIntoAttrs, as -rc kernels will quite likely break out-of-tree modules and cause failed Hydra builds.
|
||||
linux_testing = packagesFor kernels.linux_testing;
|
||||
linux_testing_bcachefs = recurseIntoAttrs (packagesFor kernels.linux_testing_bcachefs);
|
||||
|
||||
linux_hardened = recurseIntoAttrs (hardenedPackagesFor packageAliases.linux_default.kernel { });
|
||||
|
||||
linux_4_14_hardened = recurseIntoAttrs (hardenedPackagesFor kernels.linux_4_14 {
|
||||
stdenv = gcc10Stdenv;
|
||||
buildPackages = buildPackages // { stdenv = buildPackages.gcc10Stdenv; };
|
||||
});
|
||||
linux_4_19_hardened = recurseIntoAttrs (hardenedPackagesFor kernels.linux_4_19 {
|
||||
stdenv = gcc10Stdenv;
|
||||
buildPackages = buildPackages // { stdenv = buildPackages.gcc10Stdenv; };
|
||||
});
|
||||
linux_5_4_hardened = recurseIntoAttrs (hardenedPackagesFor kernels.linux_5_4 {
|
||||
stdenv = gcc10Stdenv;
|
||||
buildPackages = buildPackages // { stdenv = buildPackages.gcc10Stdenv; };
|
||||
});
|
||||
linux_5_10_hardened = recurseIntoAttrs (hardenedPackagesFor kernels.linux_5_10 { });
|
||||
linux_5_15_hardened = recurseIntoAttrs (hardenedPackagesFor kernels.linux_5_15 { });
|
||||
linux_5_17_hardened = recurseIntoAttrs (hardenedPackagesFor kernels.linux_5_17 { });
|
||||
|
||||
linux_zen = recurseIntoAttrs (packagesFor kernels.linux_zen);
|
||||
linux_lqx = recurseIntoAttrs (packagesFor kernels.linux_lqx);
|
||||
linux_xanmod = recurseIntoAttrs (packagesFor kernels.linux_xanmod);
|
||||
linux_xanmod_latest = recurseIntoAttrs (packagesFor kernels.linux_xanmod_latest);
|
||||
|
||||
hardkernel_4_14 = recurseIntoAttrs (packagesFor kernels.linux_hardkernel_4_14);
|
||||
|
||||
linux_libre = recurseIntoAttrs (packagesFor kernels.linux_libre);
|
||||
|
||||
linux_latest_libre = recurseIntoAttrs (packagesFor kernels.linux_latest_libre);
|
||||
});
|
||||
|
||||
packageAliases = {
|
||||
linux_default = if stdenv.hostPlatform.isi686 then packages.linux_5_10 else packages.linux_5_15;
|
||||
# Update this when adding the newest kernel major version!
|
||||
linux_latest = packages.linux_5_18;
|
||||
linux_mptcp = packages.linux_mptcp_95;
|
||||
linux_rt_default = packages.linux_rt_5_4;
|
||||
linux_rt_latest = packages.linux_rt_5_10;
|
||||
linux_hardkernel_latest = packages.hardkernel_4_14;
|
||||
};
|
||||
|
||||
manualConfig = makeOverridable (callPackage ../os-specific/linux/kernel/manual-config.nix {});
|
||||
|
||||
customPackage = { version, src, configfile, allowImportFromDerivation ? true }:
|
||||
recurseIntoAttrs (packagesFor (manualConfig {
|
||||
inherit version src configfile lib stdenv allowImportFromDerivation;
|
||||
}));
|
||||
|
||||
# Derive one of the default .config files
|
||||
linuxConfig = {
|
||||
src,
|
||||
version ? (builtins.parseDrvName src.name).version,
|
||||
makeTarget ? "defconfig",
|
||||
name ? "kernel.config",
|
||||
}: stdenvNoCC.mkDerivation {
|
||||
inherit name src;
|
||||
depsBuildBuild = [ buildPackages.stdenv.cc ]
|
||||
++ lib.optionals (lib.versionAtLeast version "4.16") [ buildPackages.bison buildPackages.flex ];
|
||||
postPatch = ''
|
||||
patchShebangs scripts/
|
||||
'';
|
||||
buildPhase = ''
|
||||
set -x
|
||||
make \
|
||||
ARCH=${stdenv.hostPlatform.linuxArch} \
|
||||
HOSTCC=${buildPackages.stdenv.cc.targetPrefix}gcc \
|
||||
${makeTarget}
|
||||
'';
|
||||
installPhase = ''
|
||||
cp .config $out
|
||||
'';
|
||||
};
|
||||
|
||||
buildLinux = attrs: callPackage ../os-specific/linux/kernel/generic.nix attrs;
|
||||
|
||||
}
|
||||
136
pkgs/top-level/lua-packages.nix
Normal file
136
pkgs/top-level/lua-packages.nix
Normal file
|
|
@ -0,0 +1,136 @@
|
|||
/* This file defines the composition for Lua packages. It has
|
||||
been factored out of all-packages.nix because there are many of
|
||||
them. Also, because most Nix expressions for Lua 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 must code as the function itself. */
|
||||
|
||||
{ fetchurl, stdenv, lua, unzip, pkg-config
|
||||
, pcre, oniguruma, gnulib, tre, glibc, sqlite, openssl, expat
|
||||
, autoreconfHook, gnum4
|
||||
, postgresql, cyrus_sasl
|
||||
, fetchFromGitHub, which, writeText
|
||||
, pkgs
|
||||
, lib
|
||||
}@args:
|
||||
|
||||
let
|
||||
packages = ( self:
|
||||
|
||||
let
|
||||
callPackage = pkgs.newScope self;
|
||||
|
||||
buildLuaApplication = args: buildLuarocksPackage ({namePrefix="";} // args );
|
||||
|
||||
buildLuarocksPackage = lib.makeOverridable(callPackage ../development/interpreters/lua-5/build-lua-package.nix {
|
||||
inherit lua;
|
||||
inherit (pkgs) lib;
|
||||
inherit (luaLib) toLuaModule;
|
||||
});
|
||||
|
||||
luaLib = import ../development/lua-modules/lib.nix {
|
||||
inherit (pkgs) lib;
|
||||
inherit pkgs lua;
|
||||
};
|
||||
|
||||
#define build lua package function
|
||||
buildLuaPackage = callPackage ../development/lua-modules/generic {
|
||||
inherit writeText;
|
||||
};
|
||||
|
||||
getPath = drv: pathListForVersion:
|
||||
lib.concatMapStringsSep ";" (path: "${drv}/${path}") pathListForVersion;
|
||||
|
||||
in
|
||||
{
|
||||
# helper functions for dealing with LUA_PATH and LUA_CPATH
|
||||
lib = luaLib;
|
||||
|
||||
getLuaPath = drv: getPath drv luaLib.luaPathList;
|
||||
getLuaCPath = drv: getPath drv luaLib.luaCPathList;
|
||||
|
||||
inherit (callPackage ../development/interpreters/lua-5/hooks { inherit (args) lib;})
|
||||
lua-setup-hook;
|
||||
|
||||
inherit lua callPackage;
|
||||
inherit buildLuaPackage buildLuarocksPackage buildLuaApplication;
|
||||
inherit (luaLib) luaOlder luaAtLeast isLua51 isLua52 isLua53 isLuaJIT
|
||||
requiredLuaModules toLuaModule hasLuaModule;
|
||||
|
||||
# wraps programs in $out/bin with valid LUA_PATH/LUA_CPATH
|
||||
wrapLua = callPackage ../development/interpreters/lua-5/wrap-lua.nix {
|
||||
inherit lua lib;
|
||||
inherit (pkgs) makeSetupHook makeWrapper;
|
||||
};
|
||||
|
||||
luarocks = callPackage ../development/tools/misc/luarocks/default.nix {
|
||||
inherit lua lib;
|
||||
};
|
||||
|
||||
# a fork of luarocks used to generate nix lua derivations from rockspecs
|
||||
luarocks-nix = callPackage ../development/tools/misc/luarocks/luarocks-nix.nix { };
|
||||
|
||||
luxio = buildLuaPackage {
|
||||
pname = "luxio";
|
||||
version = "13";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://git.gitano.org.uk/luxio.git/snapshot/luxio-luxio-13.tar.bz2";
|
||||
sha256 = "1hvwslc25q7k82rxk461zr1a2041nxg7sn3sw3w0y5jxf0giz2pz";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ which pkg-config ];
|
||||
|
||||
postPatch = ''
|
||||
patchShebangs .
|
||||
'';
|
||||
|
||||
preBuild = ''
|
||||
makeFlagsArray=(
|
||||
INST_LIBDIR="$out/lib/lua/${lua.luaversion}"
|
||||
INST_LUADIR="$out/share/lua/${lua.luaversion}"
|
||||
LUA_BINDIR="$out/bin"
|
||||
INSTALL=install
|
||||
);
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
broken = stdenv.isDarwin;
|
||||
description = "Lightweight UNIX I/O and POSIX binding for Lua";
|
||||
homepage = "https://www.gitano.org.uk/luxio/";
|
||||
license = licenses.mit;
|
||||
maintainers = with maintainers; [ richardipsum ];
|
||||
platforms = platforms.unix;
|
||||
};
|
||||
};
|
||||
|
||||
vicious = luaLib.toLuaModule( stdenv.mkDerivation rec {
|
||||
pname = "vicious";
|
||||
version = "2.5.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "vicious-widgets";
|
||||
repo = "vicious";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-geu/g/dFAVxtY1BuJYpZoVtFS/oL66NFnqiLAnJELtI=";
|
||||
};
|
||||
|
||||
buildInputs = [ lua ];
|
||||
|
||||
installPhase = ''
|
||||
mkdir -p $out/lib/lua/${lua.luaversion}/
|
||||
cp -r . $out/lib/lua/${lua.luaversion}/vicious/
|
||||
printf "package.path = '$out/lib/lua/${lua.luaversion}/?/init.lua;' .. package.path\nreturn require((...) .. '.init')\n" > $out/lib/lua/${lua.luaversion}/vicious.lua
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
description = "A modular widget library for the awesome window manager";
|
||||
homepage = "https://vicious.rtfd.io";
|
||||
license = licenses.gpl2Plus;
|
||||
maintainers = with maintainers; [ makefu mic92 McSinyx ];
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
});
|
||||
|
||||
});
|
||||
in packages
|
||||
86
pkgs/top-level/make-tarball.nix
Normal file
86
pkgs/top-level/make-tarball.nix
Normal file
|
|
@ -0,0 +1,86 @@
|
|||
/* Hydra job to build a tarball for Nixpkgs from a Git checkout. It
|
||||
also builds the documentation and tests whether the Nix expressions
|
||||
evaluate correctly. */
|
||||
|
||||
{ nixpkgs
|
||||
, officialRelease
|
||||
, supportedSystems
|
||||
, pkgs ? import nixpkgs.outPath {}
|
||||
, nix ? pkgs.nix
|
||||
, lib-tests ? import ../../lib/tests/release.nix { inherit pkgs; }
|
||||
}:
|
||||
|
||||
pkgs.releaseTools.sourceTarball {
|
||||
name = "nixpkgs-tarball";
|
||||
src = nixpkgs;
|
||||
|
||||
inherit officialRelease;
|
||||
version = pkgs.lib.fileContents ../../.version;
|
||||
versionSuffix = "pre${
|
||||
if nixpkgs ? lastModified
|
||||
then builtins.substring 0 8 (nixpkgs.lastModifiedDate or nixpkgs.lastModified)
|
||||
else toString nixpkgs.revCount}.${nixpkgs.shortRev or "dirty"}";
|
||||
|
||||
buildInputs = with pkgs; [ nix.out jq lib-tests brotli ];
|
||||
|
||||
configurePhase = ''
|
||||
eval "$preConfigure"
|
||||
releaseName=nixpkgs-$VERSION$VERSION_SUFFIX
|
||||
echo -n $VERSION_SUFFIX > .version-suffix
|
||||
echo -n ${nixpkgs.rev or nixpkgs.shortRev or "dirty"} > .git-revision
|
||||
echo "release name is $releaseName"
|
||||
echo "git-revision is $(cat .git-revision)"
|
||||
'';
|
||||
|
||||
nixpkgs-basic-release-checks = import ./nixpkgs-basic-release-checks.nix
|
||||
{ inherit nix pkgs nixpkgs supportedSystems; };
|
||||
|
||||
dontBuild = false;
|
||||
|
||||
doCheck = true;
|
||||
|
||||
checkPhase = ''
|
||||
set -o pipefail
|
||||
|
||||
export NIX_STATE_DIR=$TMPDIR
|
||||
export NIX_PATH=nixpkgs=$TMPDIR/barf.nix
|
||||
opts=(--option build-users-group "")
|
||||
nix-store --init
|
||||
|
||||
header "checking eval-release.nix"
|
||||
nix-instantiate --eval --strict --show-trace ./maintainers/scripts/eval-release.nix > /dev/null
|
||||
|
||||
header "checking find-tarballs.nix"
|
||||
nix-instantiate --readonly-mode --eval --strict --show-trace --json \
|
||||
./maintainers/scripts/find-tarballs.nix \
|
||||
--arg expr 'import ./maintainers/scripts/all-tarballs.nix' > $TMPDIR/tarballs.json
|
||||
nrUrls=$(jq -r '.[].url' < $TMPDIR/tarballs.json | wc -l)
|
||||
echo "found $nrUrls URLs"
|
||||
if [ "$nrUrls" -lt 10000 ]; then
|
||||
echo "suspiciously low number of URLs"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
header "generating packages.json"
|
||||
mkdir -p $out/nix-support
|
||||
echo -n '{"version":2,"packages":' > tmp
|
||||
nix-env -f . -I nixpkgs=$src -qa --meta --json --arg config 'import ${./packages-config.nix}' "''${opts[@]}" >> tmp
|
||||
echo -n '}' >> tmp
|
||||
packages=$out/packages.json.br
|
||||
< tmp sed "s|$(pwd)/||g" | jq -c | brotli -9 > $packages
|
||||
rm tmp
|
||||
|
||||
echo "file json-br $packages" >> $out/nix-support/hydra-build-products
|
||||
'';
|
||||
|
||||
distPhase = ''
|
||||
mkdir -p $out/tarballs
|
||||
mkdir ../$releaseName
|
||||
cp -prd . ../$releaseName
|
||||
(cd .. && tar cfa $out/tarballs/$releaseName.tar.xz $releaseName) || false
|
||||
'';
|
||||
|
||||
meta = {
|
||||
maintainers = [ pkgs.lib.maintainers.all ];
|
||||
};
|
||||
}
|
||||
79
pkgs/top-level/metrics.nix
Normal file
79
pkgs/top-level/metrics.nix
Normal file
|
|
@ -0,0 +1,79 @@
|
|||
{ nixpkgs, pkgs }:
|
||||
|
||||
with pkgs;
|
||||
|
||||
runCommand "nixpkgs-metrics"
|
||||
{ nativeBuildInputs = with pkgs.lib; map getBin [ nix time jq ];
|
||||
# see https://github.com/NixOS/nixpkgs/issues/52436
|
||||
#requiredSystemFeatures = [ "benchmark" ]; # dedicated `t2a` machine, by @vcunat
|
||||
}
|
||||
''
|
||||
export NIX_STORE_DIR=$TMPDIR/store
|
||||
export NIX_STATE_DIR=$TMPDIR/state
|
||||
export NIX_PAGER=
|
||||
nix-store --init
|
||||
|
||||
mkdir -p $out/nix-support
|
||||
touch $out/nix-support/hydra-build-products
|
||||
|
||||
run() {
|
||||
local name="$1"
|
||||
shift
|
||||
|
||||
echo "running $@"
|
||||
|
||||
case "$name" in
|
||||
# Redirect stdout to /dev/null to avoid hitting "Output Limit
|
||||
# Exceeded" on Hydra.
|
||||
nix-env.qaDrv|nix-env.qaDrvAggressive)
|
||||
NIX_SHOW_STATS=1 NIX_SHOW_STATS_PATH=stats-nix time -o stats-time "$@" >/dev/null ;;
|
||||
*)
|
||||
NIX_SHOW_STATS=1 NIX_SHOW_STATS_PATH=stats-nix time -o stats-time "$@" ;;
|
||||
esac
|
||||
|
||||
cat stats-nix; echo; cat stats-time; echo
|
||||
|
||||
x=$(jq '.cpuTime' < stats-nix)
|
||||
[[ -n $x ]] || exit 1
|
||||
echo "$name.time $x s" >> $out/nix-support/hydra-metrics
|
||||
|
||||
x=$(sed -e 's/.* \([0-9]\+\)maxresident.*/\1/ ; t ; d' < stats-time)
|
||||
[[ -n $x ]] || exit 1
|
||||
echo "$name.maxresident $x KiB" >> $out/nix-support/hydra-metrics
|
||||
|
||||
# nix-2.2 also outputs .symbols.bytes but that wasn't summed originally
|
||||
# https://github.com/NixOS/nix/pull/2392/files#diff-8e6ba8c21672fc1a5f6f606e1e101c74L1762
|
||||
x=$(jq '[.envs,.list,.values,.sets] | map(.bytes) | add' < stats-nix)
|
||||
[[ -n $x ]] || exit 1
|
||||
echo "$name.allocations $x B" >> $out/nix-support/hydra-metrics
|
||||
|
||||
x=$(jq '.values.number' < stats-nix)
|
||||
[[ -n $x ]] || exit 1
|
||||
echo "$name.values $x" >> $out/nix-support/hydra-metrics
|
||||
}
|
||||
|
||||
run nixos.smallContainer nix-instantiate --dry-run ${nixpkgs}/nixos/release.nix \
|
||||
-A closures.smallContainer.x86_64-linux --show-trace
|
||||
run nixos.kde nix-instantiate --dry-run ${nixpkgs}/nixos/release.nix \
|
||||
-A closures.kde.x86_64-linux --show-trace
|
||||
run nixos.lapp nix-instantiate --dry-run ${nixpkgs}/nixos/release.nix \
|
||||
-A closures.lapp.x86_64-linux --show-trace
|
||||
run nix-env.qa nix-env -f ${nixpkgs} -qa
|
||||
run nix-env.qaDrv nix-env -f ${nixpkgs} -qa --drv-path --meta --xml
|
||||
|
||||
# It's slightly unclear which of the set to track: qaCount, qaCountDrv, qaCountBroken.
|
||||
num=$(nix-env -f ${nixpkgs} -qa | wc -l)
|
||||
echo "nix-env.qaCount $num" >> $out/nix-support/hydra-metrics
|
||||
qaCountDrv=$(nix-env -f ${nixpkgs} -qa --drv-path | wc -l)
|
||||
num=$((num - $qaCountDrv))
|
||||
echo "nix-env.qaCountBroken $num" >> $out/nix-support/hydra-metrics
|
||||
|
||||
# TODO: this has been ignored for some time
|
||||
# GC Warning: Bad initial heap size 128k - ignoring it.
|
||||
#export GC_INITIAL_HEAP_SIZE=128k
|
||||
run nix-env.qaAggressive nix-env -f ${nixpkgs} -qa
|
||||
run nix-env.qaDrvAggressive nix-env -f ${nixpkgs} -qa --drv-path --meta --xml
|
||||
|
||||
lines=$(find ${nixpkgs} -name "*.nix" -type f | xargs cat | wc -l)
|
||||
echo "loc $lines" >> $out/nix-support/hydra-metrics
|
||||
''
|
||||
92
pkgs/top-level/nim-packages.nix
Normal file
92
pkgs/top-level/nim-packages.nix
Normal file
|
|
@ -0,0 +1,92 @@
|
|||
{ lib, pkgs, stdenv, newScope, nim, fetchFromGitHub }:
|
||||
|
||||
lib.makeScope newScope (self:
|
||||
let callPackage = self.callPackage;
|
||||
in {
|
||||
inherit nim;
|
||||
nim_builder = callPackage ../development/nim-packages/nim_builder { };
|
||||
buildNimPackage =
|
||||
callPackage ../development/nim-packages/build-nim-package { };
|
||||
fetchNimble = callPackage ../development/nim-packages/fetch-nimble { };
|
||||
|
||||
astpatternmatching =
|
||||
callPackage ../development/nim-packages/astpatternmatching { };
|
||||
|
||||
bumpy = callPackage ../development/nim-packages/bumpy { };
|
||||
|
||||
chroma = callPackage ../development/nim-packages/chroma { };
|
||||
|
||||
c2nim = callPackage ../development/nim-packages/c2nim { };
|
||||
|
||||
docopt = callPackage ../development/nim-packages/docopt { };
|
||||
|
||||
flatty = callPackage ../development/nim-packages/flatty { };
|
||||
|
||||
frosty = callPackage ../development/nim-packages/frosty { };
|
||||
|
||||
hts-nim = callPackage ../development/nim-packages/hts-nim { };
|
||||
|
||||
jester = callPackage ../development/nim-packages/jester { };
|
||||
|
||||
jsonschema = callPackage ../development/nim-packages/jsonschema { };
|
||||
|
||||
jsony = callPackage ../development/nim-packages/jsony { };
|
||||
|
||||
karax = callPackage ../development/nim-packages/karax { };
|
||||
|
||||
lscolors = callPackage ../development/nim-packages/lscolors { };
|
||||
|
||||
markdown = callPackage ../development/nim-packages/markdown { };
|
||||
|
||||
nimcrypto = callPackage ../development/nim-packages/nimcrypto { };
|
||||
|
||||
nimbox = callPackage ../development/nim-packages/nimbox { };
|
||||
|
||||
nimsimd = callPackage ../development/nim-packages/nimsimd { };
|
||||
|
||||
noise = callPackage ../development/nim-packages/noise { };
|
||||
|
||||
packedjson = callPackage ../development/nim-packages/packedjson { };
|
||||
|
||||
pixie = callPackage ../development/nim-packages/pixie { };
|
||||
|
||||
redis = callPackage ../development/nim-packages/redis { };
|
||||
|
||||
redpool = callPackage ../development/nim-packages/redpool { };
|
||||
|
||||
regex = callPackage ../development/nim-packages/regex { };
|
||||
|
||||
rocksdb = callPackage ../development/nim-packages/rocksdb {
|
||||
inherit (pkgs) rocksdb;
|
||||
};
|
||||
|
||||
sass = callPackage ../development/nim-packages/sass { };
|
||||
|
||||
sdl2 = callPackage ../development/nim-packages/sdl2 { };
|
||||
|
||||
segmentation = callPackage ../development/nim-packages/segmentation { };
|
||||
|
||||
snappy =
|
||||
callPackage ../development/nim-packages/snappy { inherit (pkgs) snappy; };
|
||||
|
||||
spry = callPackage ../development/nim-packages/spry { };
|
||||
|
||||
spryvm = callPackage ../development/nim-packages/spryvm { };
|
||||
|
||||
stew = callPackage ../development/nim-packages/stew { };
|
||||
|
||||
supersnappy = callPackage ../development/nim-packages/supersnappy { };
|
||||
|
||||
tempfile = callPackage ../development/nim-packages/tempfile { };
|
||||
|
||||
ui = callPackage ../development/nim-packages/ui { inherit (pkgs) libui; };
|
||||
|
||||
unicodedb = callPackage ../development/nim-packages/unicodedb { };
|
||||
|
||||
unicodeplus = callPackage ../development/nim-packages/unicodeplus { };
|
||||
|
||||
vmath = callPackage ../development/nim-packages/vmath { };
|
||||
|
||||
zippy = callPackage ../development/nim-packages/zippy { };
|
||||
|
||||
})
|
||||
84
pkgs/top-level/nixpkgs-basic-release-checks.nix
Normal file
84
pkgs/top-level/nixpkgs-basic-release-checks.nix
Normal file
|
|
@ -0,0 +1,84 @@
|
|||
{ supportedSystems, nixpkgs, pkgs, nix }:
|
||||
|
||||
pkgs.runCommand "nixpkgs-release-checks" { src = nixpkgs; buildInputs = [nix]; } ''
|
||||
set -o pipefail
|
||||
|
||||
export NIX_STORE_DIR=$TMPDIR/store
|
||||
export NIX_STATE_DIR=$TMPDIR/state
|
||||
export NIX_PATH=nixpkgs=$TMPDIR/barf.nix
|
||||
opts=(--option build-users-group "")
|
||||
nix-store --init
|
||||
|
||||
echo 'abort "Illegal use of <nixpkgs> in Nixpkgs."' > $TMPDIR/barf.nix
|
||||
|
||||
# Make sure that Nixpkgs does not use <nixpkgs>.
|
||||
badFiles=$(find $src/pkgs -type f -name '*.nix' -print | xargs grep -l '^[^#]*<nixpkgs\/' || true)
|
||||
if [[ -n $badFiles ]]; then
|
||||
echo "Nixpkgs is not allowed to use <nixpkgs> to refer to itself."
|
||||
echo "The offending files: $badFiles"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
src2=$TMPDIR/foo
|
||||
cp -rd $src $src2
|
||||
|
||||
# Check that all-packages.nix evaluates on a number of platforms without any warnings.
|
||||
for platform in ${pkgs.lib.concatStringsSep " " supportedSystems}; do
|
||||
header "checking Nixpkgs on $platform"
|
||||
|
||||
# To get a call trace; see https://nixos.org/manual/nixpkgs/stable/#function-library-lib.trivial.warn
|
||||
# Relies on impure eval
|
||||
export NIX_ABORT_ON_WARN=true
|
||||
|
||||
set +e
|
||||
(
|
||||
set -x
|
||||
nix-env -f $src \
|
||||
--show-trace --argstr system "$platform" \
|
||||
--arg config '{ allowAliases = false; }' \
|
||||
--option experimental-features 'no-url-literals' \
|
||||
-qa --drv-path --system-filter \* --system \
|
||||
"''${opts[@]}" 2> eval-warnings.log > packages1
|
||||
)
|
||||
rc=$?
|
||||
set -e
|
||||
if [ "$rc" != "0" ]; then
|
||||
cat eval-warnings.log
|
||||
exit $rc
|
||||
fi
|
||||
|
||||
s1=$(sha1sum packages1 | cut -c1-40)
|
||||
echo $s1
|
||||
|
||||
nix-env -f $src2 \
|
||||
--show-trace --argstr system "$platform" \
|
||||
--arg config '{ allowAliases = false; }' \
|
||||
--option experimental-features 'no-url-literals' \
|
||||
-qa --drv-path --system-filter \* --system \
|
||||
"''${opts[@]}" > packages2
|
||||
|
||||
s2=$(sha1sum packages2 | cut -c1-40)
|
||||
|
||||
if [[ $s1 != $s2 ]]; then
|
||||
echo "Nixpkgs evaluation depends on Nixpkgs path"
|
||||
diff packages1 packages2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Catch any trace calls not caught by NIX_ABORT_ON_WARN (lib.warn)
|
||||
if [ -s eval-warnings.log ]; then
|
||||
echo "Nixpkgs on $platform evaluated with warnings, aborting"
|
||||
exit 1
|
||||
fi
|
||||
rm eval-warnings.log
|
||||
|
||||
nix-env -f $src \
|
||||
--show-trace --argstr system "$platform" \
|
||||
--arg config '{ allowAliases = false; }' \
|
||||
--option experimental-features 'no-url-literals' \
|
||||
-qa --drv-path --system-filter \* --system --meta --xml \
|
||||
"''${opts[@]}" > /dev/null
|
||||
done
|
||||
|
||||
touch $out
|
||||
''
|
||||
1601
pkgs/top-level/ocaml-packages.nix
Normal file
1601
pkgs/top-level/ocaml-packages.nix
Normal file
File diff suppressed because it is too large
Load diff
220
pkgs/top-level/octave-packages.nix
Normal file
220
pkgs/top-level/octave-packages.nix
Normal file
|
|
@ -0,0 +1,220 @@
|
|||
# This file contains the GNU Octave add-on packages set.
|
||||
# Each attribute is an Octave library.
|
||||
# Expressions for the Octave libraries are supposed to be in `pkgs/development/octave-modules/<name>/default.nix`.
|
||||
|
||||
# When contributing a new package, if that package has a dependency on another
|
||||
# octave package, then you DO NOT need to explicitly list it as such when
|
||||
# performing the callPackage. It will be passed implicitly.
|
||||
# In addition, try to use the same dependencies as the ones octave needs, which
|
||||
# should ensure greater compatibility between Octave itself and its packages.
|
||||
|
||||
# Like python-packages.nix, packages from top-level.nix are not in the scope
|
||||
# of the `callPackage` used for packages here. So, when we do need packages
|
||||
# from outside, we can `inherit` them from `pkgs`.
|
||||
{ pkgs
|
||||
, lib
|
||||
, stdenv
|
||||
, fetchurl
|
||||
, newScope
|
||||
, octave
|
||||
}:
|
||||
|
||||
with lib;
|
||||
|
||||
makeScope newScope (self:
|
||||
let
|
||||
inherit (octave) blas lapack gfortran python texinfo gnuplot;
|
||||
|
||||
callPackage = self.callPackage;
|
||||
|
||||
buildOctavePackage = callPackage ../development/interpreters/octave/build-octave-package.nix {
|
||||
inherit lib stdenv;
|
||||
inherit octave;
|
||||
inherit computeRequiredOctavePackages;
|
||||
};
|
||||
|
||||
wrapOctave = callPackage ../development/interpreters/octave/wrap-octave.nix {
|
||||
inherit octave;
|
||||
inherit (pkgs) makeSetupHook makeWrapper;
|
||||
};
|
||||
|
||||
# Given a list of required Octave package derivations, get a list of
|
||||
# ALL required Octave packages needed for the ones specified to run.
|
||||
computeRequiredOctavePackages = drvs: let
|
||||
# Check whether a derivation is an octave package
|
||||
hasOctavePackage = drv: drv?isOctavePackage;
|
||||
packages = filter hasOctavePackage drvs;
|
||||
in unique (packages ++ concatLists (catAttrs "requiredOctavePackages" packages));
|
||||
|
||||
in {
|
||||
|
||||
inherit callPackage buildOctavePackage computeRequiredOctavePackages;
|
||||
|
||||
inherit (callPackage ../development/interpreters/octave/hooks { })
|
||||
writeRequiredOctavePackagesHook;
|
||||
|
||||
arduino = callPackage ../development/octave-modules/arduino {
|
||||
inherit (pkgs) arduino-core-unwrapped;
|
||||
};
|
||||
|
||||
audio = callPackage ../development/octave-modules/audio { };
|
||||
|
||||
bim = callPackage ../development/octave-modules/bim { };
|
||||
|
||||
bsltl = callPackage ../development/octave-modules/bsltl { };
|
||||
|
||||
cgi = callPackage ../development/octave-modules/cgi { };
|
||||
|
||||
communications = callPackage ../development/octave-modules/communications { };
|
||||
|
||||
control = callPackage ../development/octave-modules/control { };
|
||||
|
||||
data-smoothing = callPackage ../development/octave-modules/data-smoothing { };
|
||||
|
||||
database = callPackage ../development/octave-modules/database { };
|
||||
|
||||
dataframe = callPackage ../development/octave-modules/dataframe { };
|
||||
|
||||
dicom = callPackage ../development/octave-modules/dicom { };
|
||||
|
||||
divand = callPackage ../development/octave-modules/divand { };
|
||||
|
||||
doctest = callPackage ../development/octave-modules/doctest { };
|
||||
|
||||
econometrics = callPackage ../development/octave-modules/econometrics { };
|
||||
|
||||
fem-fenics = callPackage ../development/octave-modules/fem-fenics {
|
||||
# PLACEHOLDER until KarlJoad gets dolfin packaged.
|
||||
dolfin = null;
|
||||
ffc = null;
|
||||
};
|
||||
|
||||
fits = callPackage ../development/octave-modules/fits { };
|
||||
|
||||
financial = callPackage ../development/octave-modules/financial { };
|
||||
|
||||
fpl = callPackage ../development/octave-modules/fpl { };
|
||||
|
||||
fuzzy-logic-toolkit = callPackage ../development/octave-modules/fuzzy-logic-toolkit { };
|
||||
|
||||
ga = callPackage ../development/octave-modules/ga { };
|
||||
|
||||
general = callPackage ../development/octave-modules/general {
|
||||
nettle = pkgs.nettle;
|
||||
};
|
||||
|
||||
generate_html = callPackage ../development/octave-modules/generate_html { };
|
||||
|
||||
geometry = callPackage ../development/octave-modules/geometry { };
|
||||
|
||||
gsl = callPackage ../development/octave-modules/gsl {
|
||||
inherit (pkgs) gsl;
|
||||
};
|
||||
|
||||
image = callPackage ../development/octave-modules/image { };
|
||||
|
||||
image-acquisition = callPackage ../development/octave-modules/image-acquisition { };
|
||||
|
||||
instrument-control = callPackage ../development/octave-modules/instrument-control { };
|
||||
|
||||
io = callPackage ../development/octave-modules/io {
|
||||
inherit (octave) enableJava;
|
||||
};
|
||||
|
||||
interval = callPackage ../development/octave-modules/interval { };
|
||||
|
||||
level-set = callPackage ../development/octave-modules/level-set { };
|
||||
|
||||
linear-algebra = callPackage ../development/octave-modules/linear-algebra { };
|
||||
|
||||
lssa = callPackage ../development/octave-modules/lssa { };
|
||||
|
||||
ltfat = callPackage ../development/octave-modules/ltfat {
|
||||
inherit (octave) fftw fftwSinglePrec portaudio jdk;
|
||||
inherit (pkgs) fftwFloat fftwLongDouble;
|
||||
};
|
||||
|
||||
mapping = callPackage ../development/octave-modules/mapping { };
|
||||
|
||||
matgeom = callPackage ../development/octave-modules/matgeom { };
|
||||
|
||||
miscellaneous = callPackage ../development/octave-modules/miscellaneous { };
|
||||
|
||||
msh = callPackage ../development/octave-modules/msh {
|
||||
# PLACEHOLDER until KarlJoad gets dolfin packaged.
|
||||
dolfin = null;
|
||||
};
|
||||
|
||||
mvn = callPackage ../development/octave-modules/mvn { };
|
||||
|
||||
nan = callPackage ../development/octave-modules/nan { };
|
||||
|
||||
ncarray = callPackage ../development/octave-modules/ncarray { };
|
||||
|
||||
netcdf = callPackage ../development/octave-modules/netcdf {
|
||||
inherit (pkgs) netcdf;
|
||||
};
|
||||
|
||||
nurbs = callPackage ../development/octave-modules/nurbs { };
|
||||
|
||||
ocl = callPackage ../development/octave-modules/ocl { };
|
||||
|
||||
octclip = callPackage ../development/octave-modules/octclip { };
|
||||
|
||||
octproj = callPackage ../development/octave-modules/octproj { };
|
||||
|
||||
optics = callPackage ../development/octave-modules/optics { };
|
||||
|
||||
optim = callPackage ../development/octave-modules/optim { };
|
||||
|
||||
optiminterp = callPackage ../development/octave-modules/optiminterp { };
|
||||
|
||||
parallel = callPackage ../development/octave-modules/parallel { };
|
||||
|
||||
quaternion = callPackage ../development/octave-modules/quaternion { };
|
||||
|
||||
queueing = callPackage ../development/octave-modules/queueing { };
|
||||
|
||||
signal = callPackage ../development/octave-modules/signal { };
|
||||
|
||||
sockets = callPackage ../development/octave-modules/sockets { };
|
||||
|
||||
sparsersb = callPackage ../development/octave-modules/sparsersb { };
|
||||
|
||||
stk = callPackage ../development/octave-modules/stk { };
|
||||
|
||||
splines = callPackage ../development/octave-modules/splines { };
|
||||
|
||||
statistics = callPackage ../development/octave-modules/statistics { };
|
||||
|
||||
strings = callPackage ../development/octave-modules/strings { };
|
||||
|
||||
struct = callPackage ../development/octave-modules/struct { };
|
||||
|
||||
symbolic = callPackage ../development/octave-modules/symbolic {
|
||||
inherit (octave) python;
|
||||
};
|
||||
|
||||
tisean = callPackage ../development/octave-modules/tisean { };
|
||||
|
||||
tsa = callPackage ../development/octave-modules/tsa { };
|
||||
|
||||
vibes = callPackage ../development/octave-modules/vibes {
|
||||
vibes = null;
|
||||
# TODO: Need to package vibes:
|
||||
# https://github.com/ENSTABretagneRobotics/VIBES
|
||||
};
|
||||
|
||||
video = callPackage ../development/octave-modules/video { };
|
||||
|
||||
vrml = callPackage ../development/octave-modules/vrml {
|
||||
freewrl = null;
|
||||
};
|
||||
|
||||
windows = callPackage ../development/octave-modules/windows { };
|
||||
|
||||
zeromq = callPackage ../development/octave-modules/zeromq {
|
||||
inherit (pkgs) zeromq autoreconfHook;
|
||||
};
|
||||
|
||||
})
|
||||
52
pkgs/top-level/packages-config.nix
Normal file
52
pkgs/top-level/packages-config.nix
Normal file
|
|
@ -0,0 +1,52 @@
|
|||
# Used in the generation of package search database.
|
||||
{
|
||||
# Ensures no aliases are in the results.
|
||||
allowAliases = false;
|
||||
|
||||
# Enable recursion into attribute sets that nix-env normally doesn't look into
|
||||
# so that we can get a more complete picture of the available packages for the
|
||||
# purposes of the index.
|
||||
packageOverrides = super: with super; lib.mapAttrs (_: set: recurseIntoAttrs set) {
|
||||
inherit (super)
|
||||
apacheHttpdPackages
|
||||
atomPackages
|
||||
fdbPackages
|
||||
fusePackages
|
||||
gns3Packages
|
||||
idrisPackages
|
||||
nodePackages
|
||||
nodePackages_latest
|
||||
platformioPackages
|
||||
quicklispPackagesClisp
|
||||
quicklispPackagesSBCL
|
||||
rPackages
|
||||
roundcubePlugins
|
||||
sconsPackages
|
||||
sourceHanPackages
|
||||
steamPackages
|
||||
ut2004Packages
|
||||
zabbix40
|
||||
zabbix50
|
||||
zeroadPackages
|
||||
;
|
||||
|
||||
haskellPackages = super.haskellPackages // {
|
||||
# mesos, which this depends on, has been removed from nixpkgs. We are keeping
|
||||
# the error message for now, so users will get an error message they can make
|
||||
# sense of, but need to work around it here.
|
||||
# TODO(@sternenseemann): remove this after branch-off of 22.05, along with the
|
||||
# override in configuration-nix.nix
|
||||
hs-mesos = null;
|
||||
};
|
||||
|
||||
# Make sure haskell.compiler is included, so alternative GHC versions show up,
|
||||
# but don't add haskell.packages.* since they contain the same packages (at
|
||||
# least by name) as haskellPackages.
|
||||
haskell = super.haskell // {
|
||||
compiler = recurseIntoAttrs super.haskell.compiler;
|
||||
};
|
||||
|
||||
# This is an alias which we disallow by default; explicitly allow it
|
||||
emacs28Packages = emacs28.pkgs;
|
||||
};
|
||||
}
|
||||
25757
pkgs/top-level/perl-packages.nix
Normal file
25757
pkgs/top-level/perl-packages.nix
Normal file
File diff suppressed because it is too large
Load diff
620
pkgs/top-level/php-packages.nix
Normal file
620
pkgs/top-level/php-packages.nix
Normal file
|
|
@ -0,0 +1,620 @@
|
|||
{ stdenv
|
||||
, lib
|
||||
, pkgs
|
||||
, fetchgit
|
||||
, phpPackage
|
||||
, autoconf
|
||||
, pkg-config
|
||||
, aspell
|
||||
, bzip2
|
||||
, curl
|
||||
, cyrus_sasl
|
||||
, enchant1
|
||||
, fetchpatch
|
||||
, freetds
|
||||
, freetype
|
||||
, gd
|
||||
, gettext
|
||||
, gmp
|
||||
, html-tidy
|
||||
, icu64
|
||||
, libXpm
|
||||
, libffi
|
||||
, libiconv
|
||||
, libjpeg
|
||||
, libpng
|
||||
, libsodium
|
||||
, libwebp
|
||||
, libxml2
|
||||
, libxslt
|
||||
, libzip
|
||||
, net-snmp
|
||||
, oniguruma
|
||||
, openldap
|
||||
, openssl
|
||||
, pam
|
||||
, pcre2
|
||||
, postgresql
|
||||
, re2c
|
||||
, readline
|
||||
, rsync
|
||||
, sqlite
|
||||
, unixODBC
|
||||
, uwimap
|
||||
, valgrind
|
||||
, zlib
|
||||
}:
|
||||
|
||||
lib.makeScope pkgs.newScope (self: with self; {
|
||||
buildPecl = import ../build-support/build-pecl.nix {
|
||||
php = php.unwrapped;
|
||||
inherit lib;
|
||||
inherit (pkgs) stdenv autoreconfHook fetchurl re2c;
|
||||
};
|
||||
|
||||
# Wrap mkDerivation to prepend pname with "php-" to make names consistent
|
||||
# with how buildPecl does it and make the file easier to overview.
|
||||
mkDerivation = { pname, ... }@args: pkgs.stdenv.mkDerivation (args // {
|
||||
pname = "php-${pname}";
|
||||
});
|
||||
|
||||
# Function to build an extension which is shipped as part of the php
|
||||
# source, based on the php version.
|
||||
#
|
||||
# Name passed is the name of the extension and is automatically used
|
||||
# to add the configureFlag "--enable-${name}", which can be overriden.
|
||||
#
|
||||
# Build inputs is used for extra deps that may be needed. And zendExtension
|
||||
# will mark the extension as a zend extension or not.
|
||||
mkExtension =
|
||||
{ name
|
||||
, configureFlags ? [ "--enable-${name}" ]
|
||||
, internalDeps ? [ ]
|
||||
, postPhpize ? ""
|
||||
, buildInputs ? [ ]
|
||||
, zendExtension ? false
|
||||
, doCheck ? true
|
||||
, ...
|
||||
}@args: stdenv.mkDerivation ((builtins.removeAttrs args [ "name" ]) // {
|
||||
pname = "php-${name}";
|
||||
extensionName = name;
|
||||
|
||||
outputs = [ "out" "dev" ];
|
||||
|
||||
inherit (php.unwrapped) version src;
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
nativeBuildInputs = [
|
||||
php.unwrapped
|
||||
autoconf
|
||||
pkg-config
|
||||
re2c
|
||||
];
|
||||
|
||||
inherit configureFlags internalDeps buildInputs zendExtension doCheck;
|
||||
|
||||
preConfigurePhases = [
|
||||
"cdToExtensionRootPhase"
|
||||
];
|
||||
|
||||
cdToExtensionRootPhase = ''
|
||||
# Go to extension source root.
|
||||
cd "ext/${name}"
|
||||
'';
|
||||
|
||||
preConfigure = ''
|
||||
nullglobRestore=$(shopt -p nullglob)
|
||||
shopt -u nullglob # To make ?-globbing work
|
||||
|
||||
# Some extensions have a config0.m4 or config9.m4
|
||||
if [ -f config?.m4 ]; then
|
||||
mv config?.m4 config.m4
|
||||
fi
|
||||
|
||||
$nullglobRestore
|
||||
|
||||
phpize
|
||||
${postPhpize}
|
||||
|
||||
${lib.concatMapStringsSep
|
||||
"\n"
|
||||
(dep: "mkdir -p ext; ln -s ${dep.dev}/include ext/${dep.extensionName}")
|
||||
internalDeps
|
||||
}
|
||||
'';
|
||||
|
||||
checkPhase = ''
|
||||
runHook preCheck
|
||||
|
||||
NO_INTERACTON=yes SKIP_PERF_SENSITIVE=yes make test
|
||||
|
||||
runHook postCheck
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
|
||||
mkdir -p $out/lib/php/extensions
|
||||
cp modules/${name}.so $out/lib/php/extensions/${name}.so
|
||||
mkdir -p $dev/include
|
||||
${rsync}/bin/rsync -r --filter="+ */" \
|
||||
--filter="+ *.h" \
|
||||
--filter="- *" \
|
||||
--prune-empty-dirs \
|
||||
. $dev/include/
|
||||
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
meta = {
|
||||
description = "PHP upstream extension: ${name}";
|
||||
inherit (php.meta) maintainers homepage license;
|
||||
};
|
||||
});
|
||||
|
||||
php = phpPackage;
|
||||
|
||||
# This is a set of interactive tools based on PHP.
|
||||
tools = {
|
||||
box = callPackage ../development/php-packages/box { };
|
||||
|
||||
composer = callPackage ../development/php-packages/composer { };
|
||||
|
||||
deployer = callPackage ../development/php-packages/deployer { };
|
||||
|
||||
grumphp = callPackage ../development/php-packages/grumphp { };
|
||||
|
||||
phing = callPackage ../development/php-packages/phing { };
|
||||
|
||||
phive = callPackage ../development/php-packages/phive { };
|
||||
|
||||
php-cs-fixer = callPackage ../development/php-packages/php-cs-fixer { };
|
||||
|
||||
php-parallel-lint = callPackage ../development/php-packages/php-parallel-lint { };
|
||||
|
||||
phpcbf = callPackage ../development/php-packages/phpcbf { };
|
||||
|
||||
phpcs = callPackage ../development/php-packages/phpcs { };
|
||||
|
||||
phpmd = callPackage ../development/php-packages/phpmd { };
|
||||
|
||||
phpstan = callPackage ../development/php-packages/phpstan { };
|
||||
|
||||
psalm = callPackage ../development/php-packages/psalm { };
|
||||
|
||||
psysh = callPackage ../development/php-packages/psysh { };
|
||||
};
|
||||
|
||||
|
||||
|
||||
# This is a set of PHP extensions meant to be used in php.buildEnv
|
||||
# or php.withExtensions to extend the functionality of the PHP
|
||||
# interpreter.
|
||||
extensions = {
|
||||
amqp = callPackage ../development/php-packages/amqp { };
|
||||
|
||||
apcu = callPackage ../development/php-packages/apcu { };
|
||||
|
||||
apcu_bc = callPackage ../development/php-packages/apcu_bc { };
|
||||
|
||||
ast = callPackage ../development/php-packages/ast { };
|
||||
|
||||
blackfire = pkgs.callPackage ../development/tools/misc/blackfire/php-probe.nix { inherit php; };
|
||||
|
||||
couchbase = callPackage ../development/php-packages/couchbase { };
|
||||
|
||||
datadog_trace = callPackage ../development/php-packages/datadog_trace { };
|
||||
|
||||
ds = callPackage ../development/php-packages/ds { };
|
||||
|
||||
event = callPackage ../development/php-packages/event { };
|
||||
|
||||
gnupg = callPackage ../development/php-packages/gnupg { };
|
||||
|
||||
grpc = callPackage ../development/php-packages/grpc { };
|
||||
|
||||
igbinary = callPackage ../development/php-packages/igbinary { };
|
||||
|
||||
imagick = callPackage ../development/php-packages/imagick { };
|
||||
|
||||
mailparse = callPackage ../development/php-packages/mailparse { };
|
||||
|
||||
maxminddb = callPackage ../development/php-packages/maxminddb { };
|
||||
|
||||
memcached = callPackage ../development/php-packages/memcached { };
|
||||
|
||||
mongodb = callPackage ../development/php-packages/mongodb { };
|
||||
|
||||
oci8 = callPackage ../development/php-packages/oci8 ({
|
||||
version = "2.2.0";
|
||||
sha256 = "0jhivxj1nkkza4h23z33y7xhffii60d7dr51h1czjk10qywl7pyd";
|
||||
} // lib.optionalAttrs (lib.versionAtLeast php.version "8.0") {
|
||||
version = "3.0.1";
|
||||
sha256 = "108ds92620dih5768z19hi0jxfa7wfg5hdvyyvpapir87c0ap914";
|
||||
});
|
||||
|
||||
openswoole = callPackage ../development/php-packages/openswoole { };
|
||||
|
||||
pdlib = callPackage ../development/php-packages/pdlib { };
|
||||
|
||||
pcov = callPackage ../development/php-packages/pcov { };
|
||||
|
||||
pdo_oci = buildPecl rec {
|
||||
inherit (php.unwrapped) src version;
|
||||
|
||||
pname = "pdo_oci";
|
||||
sourceRoot = "php-${version}/ext/pdo_oci";
|
||||
|
||||
buildInputs = [ pkgs.oracle-instantclient ];
|
||||
configureFlags = [ "--with-pdo-oci=instantclient,${pkgs.oracle-instantclient.lib}/lib" ];
|
||||
|
||||
internalDeps = [ php.extensions.pdo ];
|
||||
|
||||
postPatch = ''
|
||||
sed -i -e 's|OCISDKMANINC=`.*$|OCISDKMANINC="${pkgs.oracle-instantclient.dev}/include"|' config.m4
|
||||
'';
|
||||
|
||||
meta.maintainers = lib.teams.php.members;
|
||||
};
|
||||
|
||||
pdo_sqlsrv = callPackage ../development/php-packages/pdo_sqlsrv { };
|
||||
|
||||
php_excel = callPackage ../development/php-packages/php_excel { };
|
||||
|
||||
pinba = callPackage ../development/php-packages/pinba { };
|
||||
|
||||
protobuf = callPackage ../development/php-packages/protobuf { };
|
||||
|
||||
rdkafka = callPackage ../development/php-packages/rdkafka { };
|
||||
|
||||
redis = callPackage ../development/php-packages/redis { };
|
||||
|
||||
smbclient = callPackage ../development/php-packages/smbclient { };
|
||||
|
||||
snuffleupagus = callPackage ../development/php-packages/snuffleupagus { };
|
||||
|
||||
sqlsrv = callPackage ../development/php-packages/sqlsrv { };
|
||||
|
||||
swoole = callPackage ../development/php-packages/swoole { };
|
||||
|
||||
xdebug = callPackage ../development/php-packages/xdebug { };
|
||||
|
||||
yaml = callPackage ../development/php-packages/yaml { };
|
||||
} // (
|
||||
let
|
||||
# This list contains build instructions for different modules that one may
|
||||
# want to build.
|
||||
#
|
||||
# These will be passed as arguments to mkExtension above.
|
||||
extensionData = [
|
||||
{ name = "bcmath"; }
|
||||
{ name = "bz2"; buildInputs = [ bzip2 ]; configureFlags = [ "--with-bz2=${bzip2.dev}" ]; }
|
||||
{ name = "calendar"; }
|
||||
{ name = "ctype"; }
|
||||
{
|
||||
name = "curl";
|
||||
buildInputs = [ curl ];
|
||||
configureFlags = [ "--with-curl=${curl.dev}" ];
|
||||
doCheck = false;
|
||||
}
|
||||
{ name = "dba"; }
|
||||
{
|
||||
name = "dom";
|
||||
buildInputs = [ libxml2 ];
|
||||
configureFlags = [
|
||||
"--enable-dom"
|
||||
];
|
||||
}
|
||||
{
|
||||
name = "enchant";
|
||||
buildInputs = [ enchant1 ];
|
||||
configureFlags = [ "--with-enchant=${enchant1}" ];
|
||||
# enchant1 doesn't build on darwin.
|
||||
enable = (!stdenv.isDarwin);
|
||||
doCheck = false;
|
||||
}
|
||||
{ name = "exif"; doCheck = false; }
|
||||
{ name = "ffi"; buildInputs = [ libffi ]; }
|
||||
{ name = "fileinfo"; buildInputs = [ pcre2 ]; }
|
||||
{ name = "filter"; buildInputs = [ pcre2 ]; }
|
||||
{ name = "ftp"; buildInputs = [ openssl ]; }
|
||||
{
|
||||
name = "gd";
|
||||
buildInputs = [ zlib gd ];
|
||||
configureFlags = [
|
||||
"--enable-gd"
|
||||
"--with-external-gd=${gd.dev}"
|
||||
"--enable-gd-jis-conv"
|
||||
];
|
||||
doCheck = false;
|
||||
}
|
||||
{
|
||||
name = "gettext";
|
||||
buildInputs = [ gettext ];
|
||||
postPhpize = ''substituteInPlace configure --replace 'as_fn_error $? "Cannot locate header file libintl.h" "$LINENO" 5' ':' '';
|
||||
configureFlags = [ "--with-gettext=${gettext}" ];
|
||||
}
|
||||
{
|
||||
name = "gmp";
|
||||
buildInputs = [ gmp ];
|
||||
configureFlags = [ "--with-gmp=${gmp.dev}" ];
|
||||
}
|
||||
{
|
||||
name = "iconv";
|
||||
configureFlags = [
|
||||
"--with-iconv${lib.optionalString stdenv.isDarwin "=${libiconv}"}"
|
||||
];
|
||||
patches = lib.optionals (lib.versionOlder php.version "8.0") [
|
||||
# Header path defaults to FHS location, preventing the configure script from detecting errno support.
|
||||
(fetchpatch {
|
||||
url = "https://github.com/fossar/nix-phps/raw/263861a8c9bdafd7abe44db6db4ef0179643680c/pkgs/iconv-header-path.patch";
|
||||
sha256 = "7GHnEUu+hcsQ4h3itDwk6p46ZKfib9JZ2XpWlXrdn6E=";
|
||||
})
|
||||
];
|
||||
doCheck = false;
|
||||
}
|
||||
{
|
||||
name = "imap";
|
||||
buildInputs = [ uwimap openssl pam pcre2 ];
|
||||
configureFlags = [ "--with-imap=${uwimap}" "--with-imap-ssl" ];
|
||||
# uwimap doesn't build on darwin.
|
||||
enable = (!stdenv.isDarwin);
|
||||
}
|
||||
{
|
||||
name = "intl";
|
||||
buildInputs = [ icu64 ];
|
||||
}
|
||||
{ name = "json"; enable = lib.versionOlder php.version "8.0"; }
|
||||
{
|
||||
name = "ldap";
|
||||
buildInputs = [ openldap cyrus_sasl ];
|
||||
configureFlags = [
|
||||
"--with-ldap"
|
||||
"LDAP_DIR=${openldap.dev}"
|
||||
"LDAP_INCDIR=${openldap.dev}/include"
|
||||
"LDAP_LIBDIR=${openldap.out}/lib"
|
||||
] ++ lib.optionals stdenv.isLinux [
|
||||
"--with-ldap-sasl=${cyrus_sasl.dev}"
|
||||
];
|
||||
doCheck = false;
|
||||
}
|
||||
{
|
||||
name = "mbstring";
|
||||
buildInputs = [ oniguruma ] ++ lib.optionals (lib.versionAtLeast php.version "8.0") [
|
||||
pcre2
|
||||
];
|
||||
doCheck = false;
|
||||
}
|
||||
{
|
||||
name = "mysqli";
|
||||
internalDeps = [ php.extensions.mysqlnd ];
|
||||
configureFlags = [ "--with-mysqli=mysqlnd" "--with-mysql-sock=/run/mysqld/mysqld.sock" ];
|
||||
doCheck = false;
|
||||
}
|
||||
{
|
||||
name = "mysqlnd";
|
||||
buildInputs = [ zlib openssl ];
|
||||
# The configure script doesn't correctly add library link
|
||||
# flags, so we add them to the variable used by the Makefile
|
||||
# when linking.
|
||||
MYSQLND_SHARED_LIBADD = "-lssl -lcrypto";
|
||||
# The configure script builds a config.h which is never
|
||||
# included. Let's include it in the main header file
|
||||
# included by all .c-files.
|
||||
patches = [
|
||||
(pkgs.writeText "mysqlnd_config.patch" ''
|
||||
--- a/ext/mysqlnd/mysqlnd.h
|
||||
+++ b/ext/mysqlnd/mysqlnd.h
|
||||
@@ -1,3 +1,6 @@
|
||||
+#ifdef HAVE_CONFIG_H
|
||||
+#include "config.h"
|
||||
+#endif
|
||||
/*
|
||||
+----------------------------------------------------------------------+
|
||||
| Copyright (c) The PHP Group |
|
||||
'')
|
||||
];
|
||||
}
|
||||
# oci8 (7.4, 7.3, 7.2)
|
||||
# odbc (7.4, 7.3, 7.2)
|
||||
{
|
||||
name = "opcache";
|
||||
buildInputs = [ pcre2 ] ++ lib.optionals (!stdenv.isDarwin && lib.versionAtLeast php.version "8.0") [
|
||||
valgrind.dev
|
||||
];
|
||||
zendExtension = true;
|
||||
# Tests launch the builtin webserver.
|
||||
__darwinAllowLocalNetworking = true;
|
||||
}
|
||||
{
|
||||
name = "openssl";
|
||||
buildInputs = [ openssl ];
|
||||
configureFlags = [ "--with-openssl" ];
|
||||
doCheck = false;
|
||||
}
|
||||
{ name = "pcntl"; }
|
||||
{ name = "pdo"; doCheck = false; }
|
||||
{
|
||||
name = "pdo_dblib";
|
||||
internalDeps = [ php.extensions.pdo ];
|
||||
configureFlags = [ "--with-pdo-dblib=${freetds}" ];
|
||||
# Doesn't seem to work on darwin.
|
||||
enable = (!stdenv.isDarwin);
|
||||
doCheck = false;
|
||||
}
|
||||
# pdo_firebird (7.4, 7.3, 7.2)
|
||||
{
|
||||
name = "pdo_mysql";
|
||||
internalDeps = with php.extensions; [ pdo mysqlnd ];
|
||||
configureFlags = [ "--with-pdo-mysql=mysqlnd" "PHP_MYSQL_SOCK=/run/mysqld/mysqld.sock" ];
|
||||
doCheck = false;
|
||||
}
|
||||
# pdo_oci (7.4, 7.3, 7.2)
|
||||
{
|
||||
name = "pdo_odbc";
|
||||
internalDeps = [ php.extensions.pdo ];
|
||||
configureFlags = [ "--with-pdo-odbc=unixODBC,${unixODBC}" ];
|
||||
doCheck = false;
|
||||
}
|
||||
{
|
||||
name = "pdo_pgsql";
|
||||
internalDeps = [ php.extensions.pdo ];
|
||||
configureFlags = [ "--with-pdo-pgsql=${postgresql}" ];
|
||||
doCheck = false;
|
||||
}
|
||||
{
|
||||
name = "pdo_sqlite";
|
||||
internalDeps = [ php.extensions.pdo ];
|
||||
buildInputs = [ sqlite ];
|
||||
configureFlags = [ "--with-pdo-sqlite=${sqlite.dev}" ];
|
||||
doCheck = false;
|
||||
}
|
||||
{
|
||||
name = "pgsql";
|
||||
buildInputs = [ pcre2 ];
|
||||
configureFlags = [ "--with-pgsql=${postgresql}" ];
|
||||
doCheck = false;
|
||||
}
|
||||
{ name = "posix"; doCheck = false; }
|
||||
{ name = "pspell"; configureFlags = [ "--with-pspell=${aspell}" ]; }
|
||||
{
|
||||
name = "readline";
|
||||
buildInputs = [
|
||||
readline
|
||||
];
|
||||
configureFlags = [
|
||||
"--with-readline=${readline.dev}"
|
||||
];
|
||||
postPatch = ''
|
||||
# Fix `--with-readline` option not being available.
|
||||
# `PHP_ALWAYS_SHARED` generated by phpize enables all options
|
||||
# without the possibility to override them. But when `--with-libedit`
|
||||
# is enabled, `--with-readline` is not registered.
|
||||
echo '
|
||||
AC_DEFUN([PHP_ALWAYS_SHARED],[
|
||||
test "[$]$1" != "no" && ext_shared=yes
|
||||
])dnl
|
||||
' | cat - ext/readline/config.m4 > ext/readline/config.m4.tmp
|
||||
mv ext/readline/config.m4{.tmp,}
|
||||
'';
|
||||
doCheck = false;
|
||||
}
|
||||
{ name = "session"; doCheck = lib.versionOlder php.version "8.0"; }
|
||||
{ name = "shmop"; }
|
||||
{
|
||||
name = "simplexml";
|
||||
buildInputs = [ libxml2 pcre2 ];
|
||||
configureFlags = [
|
||||
"--enable-simplexml"
|
||||
];
|
||||
}
|
||||
{
|
||||
name = "snmp";
|
||||
buildInputs = [ net-snmp openssl ];
|
||||
configureFlags = [ "--with-snmp" ];
|
||||
# net-snmp doesn't build on darwin.
|
||||
enable = (!stdenv.isDarwin);
|
||||
doCheck = false;
|
||||
}
|
||||
{
|
||||
name = "soap";
|
||||
buildInputs = [ libxml2 ];
|
||||
configureFlags = [
|
||||
"--enable-soap"
|
||||
];
|
||||
doCheck = false;
|
||||
}
|
||||
{
|
||||
name = "sockets";
|
||||
doCheck = false;
|
||||
}
|
||||
{ name = "sodium"; buildInputs = [ libsodium ]; }
|
||||
{ name = "sqlite3"; buildInputs = [ sqlite ]; }
|
||||
{ name = "sysvmsg"; }
|
||||
{ name = "sysvsem"; }
|
||||
{ name = "sysvshm"; }
|
||||
{ name = "tidy"; configureFlags = [ "--with-tidy=${html-tidy}" ]; doCheck = false; }
|
||||
{
|
||||
name = "tokenizer";
|
||||
patches = lib.optional (lib.versionAtLeast php.version "8.1")
|
||||
../development/interpreters/php/fix-tokenizer-php81.patch;
|
||||
}
|
||||
{
|
||||
name = "xml";
|
||||
buildInputs = [ libxml2 ];
|
||||
configureFlags = [
|
||||
"--enable-xml"
|
||||
];
|
||||
doCheck = false;
|
||||
}
|
||||
{
|
||||
name = "xmlreader";
|
||||
buildInputs = [ libxml2 ];
|
||||
internalDeps = [ php.extensions.dom ];
|
||||
NIX_CFLAGS_COMPILE = [ "-I../.." "-DHAVE_DOM" ];
|
||||
doCheck = false;
|
||||
configureFlags = [
|
||||
"--enable-xmlreader"
|
||||
];
|
||||
}
|
||||
{
|
||||
name = "xmlrpc";
|
||||
buildInputs = [ libxml2 libiconv ];
|
||||
# xmlrpc was unbundled in 8.0 https://php.watch/versions/8.0/xmlrpc
|
||||
enable = lib.versionOlder php.version "8.0";
|
||||
configureFlags = [
|
||||
"--with-xmlrpc"
|
||||
];
|
||||
}
|
||||
{
|
||||
name = "xmlwriter";
|
||||
buildInputs = [ libxml2 ];
|
||||
configureFlags = [
|
||||
"--enable-xmlwriter"
|
||||
];
|
||||
}
|
||||
{
|
||||
name = "xsl";
|
||||
buildInputs = [ libxslt libxml2 ];
|
||||
doCheck = lib.versionOlder php.version "8.0";
|
||||
configureFlags = [ "--with-xsl=${libxslt.dev}" ];
|
||||
}
|
||||
{ name = "zend_test"; }
|
||||
{
|
||||
name = "zip";
|
||||
buildInputs = [ libzip pcre2 ];
|
||||
configureFlags = [
|
||||
"--with-zip"
|
||||
];
|
||||
doCheck = false;
|
||||
}
|
||||
{
|
||||
name = "zlib";
|
||||
buildInputs = [ zlib ];
|
||||
configureFlags = [
|
||||
"--with-zlib"
|
||||
];
|
||||
}
|
||||
];
|
||||
|
||||
# Convert the list of attrs:
|
||||
# [ { name = <name>; ... } ... ]
|
||||
# to a list of
|
||||
# [ { name = <name>; value = <extension drv>; } ... ]
|
||||
#
|
||||
# which we later use listToAttrs to make all attrs available by name.
|
||||
#
|
||||
# Also filter out extensions based on the enable property.
|
||||
namedExtensions = builtins.map
|
||||
(drv: {
|
||||
name = drv.name;
|
||||
value = mkExtension drv;
|
||||
})
|
||||
(builtins.filter (i: i.enable or true) extensionData);
|
||||
|
||||
# Produce the final attribute set of all extensions defined.
|
||||
in
|
||||
builtins.listToAttrs namedExtensions
|
||||
);
|
||||
})
|
||||
174
pkgs/top-level/python-aliases.nix
Normal file
174
pkgs/top-level/python-aliases.nix
Normal file
|
|
@ -0,0 +1,174 @@
|
|||
lib: self: super:
|
||||
|
||||
with self;
|
||||
|
||||
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
|
||||
# python-packages.nix.
|
||||
checkInPkgs = n: alias: if builtins.hasAttr n super
|
||||
then throw "Alias ${n} is still in python-packages.nix"
|
||||
else alias;
|
||||
|
||||
mapAliases = aliases:
|
||||
lib.mapAttrs (n: alias: removeDistribute
|
||||
(removeRecurseForDerivations
|
||||
(checkInPkgs n alias)))
|
||||
aliases;
|
||||
in
|
||||
|
||||
### Deprecated aliases - for backward compatibility
|
||||
|
||||
mapAliases ({
|
||||
aioh2 = throw "aioh2 has been removed because it is abandoned and broken."; # Added 2022-03-30
|
||||
ansible-base = throw "ansible-base has been removed, because it is end of life"; # added 2022-03-30
|
||||
anyjson = throw "anyjson has been removed, it was using setuptools 2to3 translation feature, which has been removed in setuptools 58"; # added 2022-01-18
|
||||
argon2_cffi = argon2-cffi; # added 2022-05-09
|
||||
asyncio-nats-client = nats-py; # added 2022-02-08
|
||||
Babel = babel; # added 2022-05-06
|
||||
bitcoin-price-api = throw "bitcoin-price-api has been removed, it was using setuptools 2to3 translation feautre, which has been removed in setuptools 58"; # added 2022-02-15
|
||||
blockdiagcontrib-cisco = throw "blockdiagcontrib-cisco is not compatible with blockdiag 2.0.0 and has been removed."; # added 2020-11-29
|
||||
bt_proximity = bt-proximity; # added 2021-07-02
|
||||
carrot = throw "carrot has been removed, as its development was discontinued in 2012"; # added 2022-01-18
|
||||
class-registry = phx-class-registry; # added 2021-10-05
|
||||
ConfigArgParse = configargparse; # added 2021-03-18
|
||||
cozy = throw "cozy was removed because it was not actually https://pypi.org/project/Cozy/."; # added 2022-01-14
|
||||
cryptography_vectors = "cryptography_vectors is no longer exposed in python*Packages because it is used for testing cryptography only."; # Added 2022-03-23
|
||||
dask-xgboost = throw "dask-xgboost was removed because its features are available in xgboost"; # added 2022-05-24
|
||||
dateutil = python-dateutil; # added 2021-07-03
|
||||
demjson = throw "demjson has been removed, it was using setuptools 2to3 translation feature, which has been removed in setuptools 58"; # added 2022-01-18
|
||||
detox = throw "detox is no longer maintained, and was broken since may 2019"; # added 2020-07-04
|
||||
dftfit = throw "dftfit dependency lammps-cython no longer builds"; # added 2021-07-04
|
||||
diff_cover = diff-cover; # added 2021-07-02
|
||||
discogs_client = discogs-client; # added 2021-07-02
|
||||
djangorestframework-jwt = drf-jwt; # added 2021-07-20
|
||||
django_2 = throw "Django 2 has reached it's projected EOL in 2022/04 and has therefore been removed."; # added 2022-03-05
|
||||
django_appconf = django-appconf; # added 2022-03-03
|
||||
django_environ = django-environ; # added 2021-12-25
|
||||
django_extensions = django-extensions; # added 2022-01-09
|
||||
django_guardian = django-guardian; # added 2022-05-19
|
||||
django_modelcluster = django-modelcluster; # added 2022-04-02
|
||||
django_polymorphic = django-polymorphic; # added 2022-05-24
|
||||
django_redis = django-redis; # added 2021-10-11
|
||||
django_taggit = django-taggit; # added 2021-10-11
|
||||
dns = dnspython; # added 2017-12-10
|
||||
dogpile_cache = dogpile-cache; # added 2021-10-28
|
||||
dogpile-core = throw "dogpile-core is no longer maintained, use dogpile-cache instead"; # added 2021-11-20
|
||||
eebrightbox = throw "eebrightbox is unmaintained upstream and has therefore been removed"; # added 2022-02-03
|
||||
fake_factory = throw "fake_factory has been removed because it is unused and deprecated by upstream since 2016."; # added 2022-05-30
|
||||
faulthandler = throw "faulthandler is built into ${python.executable}"; # added 2021-07-12
|
||||
flask_testing = flask-testing; # added 2022-04-25
|
||||
flask_wtf = flask-wtf; # added 2022-05-24
|
||||
garminconnect-ha = garminconnect; # added 2022-02-05
|
||||
gitdb2 = throw "gitdb2 has been deprecated, use gitdb instead."; # added 2020-03-14
|
||||
glances = throw "glances has moved to pkgs.glances"; # added 2020-20-28
|
||||
google_api_python_client = google-api-python-client; # added 2021-03-19
|
||||
googleapis_common_protos = googleapis-common-protos; # added 2021-03-19
|
||||
grpc_google_iam_v1 = grpc-google-iam-v1; # added 2021-08-21
|
||||
ha-av = throw "ha-av was removed, because it is no longer maintained"; # added 2022-04-06
|
||||
HAP-python = hap-python; # added 2021-06-01
|
||||
hbmqtt = throw "hbmqtt was removed because it is no longer maintained"; # added 2021-11-07
|
||||
hdlparse = throw "hdlparse has been removed, it was using setuptools 2to3 translation feature, which has been removed in setuptools 58"; # added 2022-01-18
|
||||
hyperkitty = throw "Please use pkgs.mailmanPackages.hyperkitty"; # added 2022-04-29
|
||||
IMAPClient = imapclient; # added 2021-10-28
|
||||
jupyter_client = jupyter-client; # added 2021-10-15
|
||||
Keras = keras; # added 2021-11-25
|
||||
lammps-cython = throw "lammps-cython no longer builds and is unmaintained"; # added 2021-07-04
|
||||
loo-py = loopy; # added 2022-05-03
|
||||
Markups = markups; # added 2022-02-14
|
||||
MechanicalSoup = mechanicalsoup; # added 2021-06-01
|
||||
memcached = python-memcached; # added 2022-05-06
|
||||
mailman = throw "Please use pkgs.mailman"; # added 2022-04-29
|
||||
mailman-hyperkitty = throw "Please use pkgs.mailmanPackages.mailman-hyperkitty"; # added 2022-04-29
|
||||
mailman-web = throw "Please use pkgs.mailman-web"; # added 2022-04-29
|
||||
net2grid = gridnet; # add 2022-04-22
|
||||
nose-cover3 = throw "nose-cover3 has been removed, it was using setuptools 2to3 translation feature, which has been removed in setuptools 58"; # added 2022-02-16
|
||||
pam = python-pam; # added 2020-09-07.
|
||||
PasteDeploy = pastedeploy; # added 2021-10-07
|
||||
pathpy = path; # added 2022-04-12
|
||||
pdfminer = pdfminer-six; # added 2022-05-25
|
||||
pep257 = pydocstyle; # added 2022-04-12
|
||||
poster3 = throw "poster3 is unmaintained and source is no longer available"; # added 2023-05-29
|
||||
postorius = throw "Please use pkgs.mailmanPackages.postorius"; # added 2022-04-29
|
||||
powerlineMemSegment = powerline-mem-segment; # added 2021-10-08
|
||||
privacyidea = throw "privacyidea has been renamed to pkgs.privacyidea"; # added 2021-06-20
|
||||
prometheus_client = prometheus-client; # added 2021-06-10
|
||||
prompt_toolkit = prompt-toolkit; # added 2021-07-22
|
||||
pur = throw "pur has been renamed to pkgs.pur"; # added 2021-11-08
|
||||
pydrive = throw "pydrive is broken and deprecated and has been replaced with pydrive2."; # added 2022-06-01
|
||||
pyGtkGlade = throw "Glade support for pygtk has been removed"; # added 2022-01-15
|
||||
pycallgraph = throw "pycallgraph has been removed, it was using setuptools 2to3 translation feature, which has been removed in setuptools 58"; # added 2022-01-18
|
||||
pyialarmxr = pyialarmxr-homeassistant; # added 2022-06-07
|
||||
pylibgen = throw "pylibgen is unmaintained upstreamed, and removed from nixpkgs"; # added 2020-06-20
|
||||
pymc3 = pymc; # added 2022-06-05, module was rename starting with 4.0.0
|
||||
pymssql = throw "pymssql has been abandoned upstream."; # added 2020-05-04
|
||||
pyreadability = readability-lxml; # added 2022-05-24
|
||||
pysmart-smartx = pysmart; # added 2021-10-22
|
||||
pyspotify = throw "pyspotify has been removed because Spotify stopped supporting libspotify"; # added 2022-05-29
|
||||
pytest_6 = pytest; # added 2022-02-10
|
||||
pytestcov = pytest-cov; # added 2021-01-04
|
||||
pytest-pep8 = pytestpep8; # added 2021-01-04
|
||||
pytest-pep257 = throw "pytest-pep257 was removed, as the pep257 package was migrated into pycodestyle"; # added 2022-04-12
|
||||
pytest-pythonpath = throw "pytest-pythonpath is obsolete as of pytest 7.0.0 and has been removed"; # added 2022-03-09
|
||||
pytestpep8 = throw "pytestpep8 was removed because it is abandoned and no longer compatible with pytest v6.0"; # added 2020-12-10
|
||||
pytestquickcheck = pytest-quickcheck; # added 2021-07-20
|
||||
pytestrunner = pytest-runner; # added 2021-01-04
|
||||
python-igraph = igraph; # added 2021-11-11
|
||||
python-lz4 = lz4; # added 2018-06-01
|
||||
python_magic = python-magic; # added 2022-05-07
|
||||
python_mimeparse = python-mimeparse; # added 2021-10-31
|
||||
python-subunit = subunit; # added 2021-09-10
|
||||
pytest_xdist = pytest-xdist; # added 2021-01-04
|
||||
python_simple_hipchat = python-simple-hipchat; # added 2021-07-21
|
||||
pytwitchapi = twitchapi; # added 2022-03-07
|
||||
qasm2image = throw "qasm2image is no longer maintained (since November 2018), and is not compatible with the latest pythonPackages.qiskit versions."; # added 2020-12-09
|
||||
qiskit-aqua = throw "qiskit-aqua has been removed due to deprecation, with its functionality moved to different qiskit packages";
|
||||
rdflib-jsonld = throw "rdflib-jsonld is not compatible with rdflib 6"; # added 2021-11-05
|
||||
repeated_test = throw "repeated_test is no longer maintained"; # added 2022-01-11
|
||||
requests_oauthlib = requests-oauthlib; # added 2022-02-12
|
||||
requests_toolbelt = requests-toolbelt; # added 2017-09-26
|
||||
roboschool = throw "roboschool is deprecated in favor of PyBullet and has been removed"; # added 2022-01-15
|
||||
ROPGadget = ropgadget; # added 2021-07-06
|
||||
rotate-backups = throw "rotate-backups was removed in favor of the top-level rotate-backups"; # added 2021-07-01
|
||||
ruamel_base = ruamel-base; # added 2021-11-01
|
||||
ruamel_yaml = ruamel-yaml; # added 2021-11-01
|
||||
ruamel_yaml_clib = ruamel-yaml-clib; # added 2021-11-01
|
||||
sapi-python-client = kbcstorage; # added 2022-04-20
|
||||
scikitlearn = scikit-learn; # added 2021-07-21
|
||||
selectors34 = throw "selectors34 has been removed: functionality provided by Python itself; archived by upstream."; # added 2021-06-10
|
||||
setuptools_scm = setuptools-scm; # added 2021-06-03
|
||||
sharkiqpy = sharkiq; # added 2022-05-21
|
||||
smart_open = smart-open; # added 2021-03-14
|
||||
smmap2 = throw "smmap2 has been deprecated, use smmap instead."; # added 2020-03-14
|
||||
SPARQLWrapper = sparqlwrapper;
|
||||
sphinxcontrib_plantuml = sphinxcontrib-plantuml; # added 2021-08-02
|
||||
sqlalchemy_migrate = sqlalchemy-migrate; # added 2021-10-28
|
||||
SQLAlchemy-ImageAttach = throw "sqlalchemy-imageattach has been removed as it is incompatible with sqlalchemy 1.4 and unmaintained"; # added 2022-04-23
|
||||
tensorflow-bin_2 = tensorflow-bin; # added 2021-11-25
|
||||
tensorflow-build_2 = tensorflow-build; # added 2021-11-25
|
||||
tensorflow-estimator_2 = tensorflow-estimator; # added 2021-11-25
|
||||
tensorflow-tensorboard = tensorboard; # added 2022-03-06
|
||||
tensorflow-tensorboard_2 = tensorflow-tensorboard; # added 2021-11-25
|
||||
tvnamer = throw "tvnamer was moved to pkgs.tvnamer"; # added 2021-07-05
|
||||
types-cryptography = throw "types-cryptography has been removed because it is obsolete since cryptography version 3.4.4."; # added 2022-05-30
|
||||
types-paramiko = throw "types-paramiko has been removed because it was unused."; # added 2022-05-30
|
||||
WazeRouteCalculator = wazeroutecalculator; # added 2021-09-29
|
||||
webapp2 = throw "webapp2 is unmaintained since 2012"; # added 2022-05-29
|
||||
websocket_client = websocket-client; # added 2021-06-15
|
||||
xenomapper = throw "xenomapper was moved to pkgs.xenomapper"; # added 2021-12-31
|
||||
zc-buildout221 = zc-buildout; # added 2021-07-21
|
||||
zc_buildout_nix = throw "zc_buildout_nix was pinned to a version no longer compatible with other modules";
|
||||
})
|
||||
11590
pkgs/top-level/python-packages.nix
Normal file
11590
pkgs/top-level/python-packages.nix
Normal file
File diff suppressed because it is too large
Load diff
147
pkgs/top-level/python2-packages.nix
Normal file
147
pkgs/top-level/python2-packages.nix
Normal file
|
|
@ -0,0 +1,147 @@
|
|||
# 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; {
|
||||
|
||||
bootstrapped-pip = callPackage ../development/python2-modules/bootstrapped-pip { };
|
||||
|
||||
boto3 = callPackage ../development/python2-modules/boto3 {};
|
||||
|
||||
botocore = callPackage ../development/python2-modules/botocore {};
|
||||
|
||||
certifi = callPackage ../development/python2-modules/certifi { };
|
||||
|
||||
chardet = callPackage ../development/python2-modules/chardet { };
|
||||
|
||||
cheetah = callPackage ../development/python2-modules/cheetah { };
|
||||
|
||||
configparser = callPackage ../development/python2-modules/configparser { };
|
||||
|
||||
construct = callPackage ../development/python2-modules/construct { };
|
||||
|
||||
contextlib2 = callPackage ../development/python2-modules/contextlib2 { };
|
||||
|
||||
coverage = callPackage ../development/python2-modules/coverage { };
|
||||
|
||||
enum = callPackage ../development/python2-modules/enum { };
|
||||
|
||||
filelock = callPackage ../development/python2-modules/filelock { };
|
||||
|
||||
futures = callPackage ../development/python2-modules/futures { };
|
||||
|
||||
google-apputils = callPackage ../development/python2-modules/google-apputils { };
|
||||
|
||||
gtkme = callPackage ../development/python2-modules/gtkme { };
|
||||
|
||||
httpretty = callPackage ../development/python2-modules/httpretty { };
|
||||
|
||||
hypothesis = callPackage ../development/python2-modules/hypothesis { };
|
||||
|
||||
idna = callPackage ../development/python2-modules/idna { };
|
||||
|
||||
importlib-metadata = callPackage ../development/python2-modules/importlib-metadata { };
|
||||
|
||||
jinja2 = callPackage ../development/python2-modules/jinja2 { };
|
||||
|
||||
marisa = callPackage ../development/python2-modules/marisa {
|
||||
inherit (pkgs) marisa;
|
||||
};
|
||||
|
||||
markdown = callPackage ../development/python2-modules/markdown { };
|
||||
|
||||
markupsafe = callPackage ../development/python2-modules/markupsafe { };
|
||||
|
||||
mock = callPackage ../development/python2-modules/mock { };
|
||||
|
||||
more-itertools = callPackage ../development/python2-modules/more-itertools { };
|
||||
|
||||
mutagen = callPackage ../development/python2-modules/mutagen { };
|
||||
|
||||
numpy = callPackage ../development/python2-modules/numpy { };
|
||||
|
||||
packaging = callPackage ../development/python2-modules/packaging { };
|
||||
|
||||
pillow = callPackage ../development/python2-modules/pillow {
|
||||
inherit (pkgs) freetype libjpeg zlib libtiff libwebp tcl lcms2 tk;
|
||||
inherit (pkgs.xorg) libX11;
|
||||
};
|
||||
|
||||
pip = callPackage ../development/python2-modules/pip { };
|
||||
|
||||
pluggy = callPackage ../development/python2-modules/pluggy { };
|
||||
|
||||
prettytable = callPackage ../development/python2-modules/prettytable { };
|
||||
|
||||
protobuf = callPackage ../development/python2-modules/protobuf {
|
||||
disabled = isPyPy;
|
||||
protobuf = pkgs.protobuf3_17; # last version compatible with Python 2
|
||||
};
|
||||
|
||||
pycairo = callPackage ../development/python2-modules/pycairo {
|
||||
inherit (pkgs.buildPackages) meson;
|
||||
};
|
||||
|
||||
pygments = callPackage ../development/python2-modules/Pygments { };
|
||||
|
||||
pygobject3 = callPackage ../development/python2-modules/pygobject {
|
||||
inherit (pkgs) meson;
|
||||
};
|
||||
|
||||
pygtk = callPackage ../development/python2-modules/pygtk { };
|
||||
|
||||
pyparsing = callPackage ../development/python2-modules/pyparsing { };
|
||||
|
||||
pyroma = callPackage ../development/python2-modules/pyroma { };
|
||||
|
||||
pysqlite = callPackage ../development/python2-modules/pysqlite { };
|
||||
|
||||
pytest = pytest_4;
|
||||
|
||||
pytest_4 = callPackage
|
||||
../development/python2-modules/pytest {
|
||||
# hypothesis tests require pytest that causes dependency cycle
|
||||
hypothesis = self.hypothesis.override {
|
||||
doCheck = false;
|
||||
};
|
||||
};
|
||||
|
||||
pytest-runner = callPackage ../development/python2-modules/pytest-runner { };
|
||||
|
||||
pytest-xdist = callPackage ../development/python2-modules/pytest-xdist { };
|
||||
|
||||
pyyaml = callPackage ../development/python2-modules/pyyaml { };
|
||||
|
||||
qpid-python = callPackage ../development/python2-modules/qpid-python { };
|
||||
|
||||
recoll = disabled super.recoll;
|
||||
|
||||
rivet = disabled super.rivet;
|
||||
|
||||
rpm = disabled super.rpm;
|
||||
|
||||
s3transfer = callPackage ../development/python2-modules/s3transfer { };
|
||||
|
||||
scandir = callPackage ../development/python2-modules/scandir { };
|
||||
|
||||
sequoia = disabled super.sequoia;
|
||||
|
||||
setuptools = callPackage ../development/python2-modules/setuptools { };
|
||||
|
||||
setuptools-scm = callPackage ../development/python2-modules/setuptools-scm { };
|
||||
|
||||
sphinxcontrib-websupport = callPackage ../development/python2-modules/sphinxcontrib-websupport { };
|
||||
|
||||
sphinx = callPackage ../development/python2-modules/sphinx { };
|
||||
|
||||
TurboCheetah = callPackage ../development/python2-modules/TurboCheetah { };
|
||||
|
||||
typing = callPackage ../development/python2-modules/typing { };
|
||||
|
||||
zeek = disabled super.zeek;
|
||||
|
||||
zipp = callPackage ../development/python2-modules/zipp { };
|
||||
|
||||
}
|
||||
239
pkgs/top-level/qt5-packages.nix
Normal file
239
pkgs/top-level/qt5-packages.nix
Normal file
|
|
@ -0,0 +1,239 @@
|
|||
|
||||
# Qt packages set.
|
||||
#
|
||||
# Attributes in this file are packages requiring Qt and will be made available
|
||||
# for every Qt version. Qt applications are called from `all-packages.nix` via
|
||||
# this file.
|
||||
|
||||
|
||||
{ lib
|
||||
, pkgs
|
||||
, qt5
|
||||
}:
|
||||
|
||||
(lib.makeScope pkgs.newScope ( self:
|
||||
|
||||
let
|
||||
libsForQt5 = self;
|
||||
callPackage = self.callPackage;
|
||||
|
||||
kdeFrameworks = let
|
||||
mkFrameworks = import ../development/libraries/kde-frameworks;
|
||||
attrs = {
|
||||
inherit libsForQt5;
|
||||
inherit (pkgs) lib fetchurl;
|
||||
};
|
||||
in (lib.makeOverridable mkFrameworks attrs);
|
||||
|
||||
plasma5 = let
|
||||
mkPlasma5 = import ../desktops/plasma-5;
|
||||
attrs = {
|
||||
inherit libsForQt5;
|
||||
inherit (pkgs) config lib fetchurl;
|
||||
gconf = pkgs.gnome2.GConf;
|
||||
inherit (pkgs) gsettings-desktop-schemas;
|
||||
};
|
||||
in (lib.makeOverridable mkPlasma5 attrs);
|
||||
|
||||
kdeGear = let
|
||||
mkGear = import ../applications/kde;
|
||||
attrs = {
|
||||
inherit libsForQt5;
|
||||
inherit (pkgs) lib fetchurl;
|
||||
};
|
||||
in (lib.makeOverridable mkGear attrs);
|
||||
|
||||
plasmaMobileGear = let
|
||||
mkPlamoGear = import ../applications/plasma-mobile;
|
||||
attrs = {
|
||||
inherit libsForQt5;
|
||||
inherit (pkgs) lib fetchurl;
|
||||
};
|
||||
in (lib.makeOverridable mkPlamoGear attrs);
|
||||
|
||||
mauiPackages = let
|
||||
mkMaui = import ../applications/maui;
|
||||
attrs = {
|
||||
inherit libsForQt5;
|
||||
inherit (pkgs) lib fetchurl;
|
||||
};
|
||||
in (lib.makeOverridable mkMaui attrs);
|
||||
|
||||
in (kdeFrameworks // plasmaMobileGear // plasma5 // plasma5.thirdParty // kdeGear // mauiPackages // qt5 // {
|
||||
|
||||
inherit kdeFrameworks plasmaMobileGear plasma5 kdeGear mauiPackages qt5;
|
||||
|
||||
# Alias for backwards compatibility. Added 2021-05-07.
|
||||
kdeApplications = kdeGear;
|
||||
|
||||
### LIBRARIES
|
||||
|
||||
accounts-qt = callPackage ../development/libraries/accounts-qt { };
|
||||
|
||||
alkimia = callPackage ../development/libraries/alkimia { };
|
||||
|
||||
applet-window-buttons = callPackage ../development/libraries/applet-window-buttons { };
|
||||
|
||||
appstream-qt = callPackage ../development/libraries/appstream/qt.nix { };
|
||||
|
||||
dxflib = callPackage ../development/libraries/dxflib {};
|
||||
|
||||
drumstick = callPackage ../development/libraries/drumstick { };
|
||||
|
||||
fcitx-qt5 = callPackage ../tools/inputmethods/fcitx/fcitx-qt5.nix { };
|
||||
|
||||
fcitx5-qt = callPackage ../tools/inputmethods/fcitx5/fcitx5-qt.nix { };
|
||||
|
||||
qgpgme = callPackage ../development/libraries/gpgme { };
|
||||
|
||||
grantlee = callPackage ../development/libraries/grantlee/5 { };
|
||||
|
||||
qtcurve = callPackage ../data/themes/qtcurve {};
|
||||
|
||||
herqq = callPackage ../development/libraries/herqq { };
|
||||
|
||||
kdb = callPackage ../development/libraries/kdb { };
|
||||
|
||||
kde2-decoration = callPackage ../data/themes/kde2 { };
|
||||
|
||||
kcolorpicker = callPackage ../development/libraries/kcolorpicker { };
|
||||
|
||||
kdiagram = callPackage ../development/libraries/kdiagram { };
|
||||
|
||||
kdsoap = callPackage ../development/libraries/kdsoap { };
|
||||
|
||||
kf5gpgmepp = callPackage ../development/libraries/kf5gpgmepp { };
|
||||
|
||||
kirigami-addons = libsForQt5.callPackage ../development/libraries/kirigami-addons { };
|
||||
|
||||
kimageannotator = callPackage ../development/libraries/kimageannotator { };
|
||||
|
||||
kproperty = callPackage ../development/libraries/kproperty { };
|
||||
|
||||
kpeoplevcard = callPackage ../development/libraries/kpeoplevcard { };
|
||||
|
||||
kreport = callPackage ../development/libraries/kreport { };
|
||||
|
||||
kquickimageedit = callPackage ../development/libraries/kquickimageedit { };
|
||||
|
||||
kweathercore = libsForQt5.callPackage ../development/libraries/kweathercore { };
|
||||
|
||||
ldutils = callPackage ../development/libraries/ldutils { };
|
||||
|
||||
libcommuni = callPackage ../development/libraries/libcommuni { };
|
||||
|
||||
libdbusmenu = callPackage ../development/libraries/libdbusmenu-qt/qt-5.5.nix { };
|
||||
|
||||
liblastfm = callPackage ../development/libraries/liblastfm { };
|
||||
|
||||
libopenshot = callPackage ../applications/video/openshot-qt/libopenshot.nix { };
|
||||
|
||||
packagekit-qt = callPackage ../tools/package-management/packagekit/qt.nix { };
|
||||
|
||||
libopenshot-audio = callPackage ../applications/video/openshot-qt/libopenshot-audio.nix {
|
||||
inherit (pkgs.darwin.apple_sdk.frameworks) AGL Cocoa Foundation;
|
||||
};
|
||||
|
||||
libqglviewer = callPackage ../development/libraries/libqglviewer {
|
||||
inherit (pkgs.darwin.apple_sdk.frameworks) AGL;
|
||||
};
|
||||
|
||||
libqofono = callPackage ../development/libraries/libqofono { };
|
||||
|
||||
libqtav = callPackage ../development/libraries/libqtav { };
|
||||
|
||||
libqaccessibilityclient = callPackage ../development/libraries/libqaccessibilityclient { };
|
||||
|
||||
kpmcore = callPackage ../development/libraries/kpmcore { };
|
||||
|
||||
mapbox-gl-native = libsForQt5.callPackage ../development/libraries/mapbox-gl-native { };
|
||||
|
||||
mapbox-gl-qml = libsForQt5.callPackage ../development/libraries/mapbox-gl-qml { };
|
||||
|
||||
maplibre-gl-native = callPackage ../development/libraries/maplibre-gl-native { };
|
||||
|
||||
mlt = callPackage ../development/libraries/mlt/qt-5.nix { };
|
||||
|
||||
phonon = callPackage ../development/libraries/phonon { };
|
||||
|
||||
phonon-backend-gstreamer = callPackage ../development/libraries/phonon/backends/gstreamer.nix { };
|
||||
|
||||
phonon-backend-vlc = callPackage ../development/libraries/phonon/backends/vlc.nix { };
|
||||
|
||||
plasma-wayland-protocols = callPackage ../development/libraries/plasma-wayland-protocols { };
|
||||
|
||||
polkit-qt = callPackage ../development/libraries/polkit-qt-1 { };
|
||||
|
||||
poppler = callPackage ../development/libraries/poppler {
|
||||
lcms = pkgs.lcms2;
|
||||
qt5Support = true;
|
||||
suffix = "qt5";
|
||||
};
|
||||
|
||||
pulseaudio-qt = callPackage ../development/libraries/pulseaudio-qt { };
|
||||
|
||||
qca-qt5 = callPackage ../development/libraries/qca-qt5 { };
|
||||
|
||||
# Until macOS SDK allows for Qt 5.15, darwin is limited to 2.3.2
|
||||
qca-qt5_2_3_2 = callPackage ../development/libraries/qca-qt5/2.3.2.nix { };
|
||||
|
||||
qcoro = callPackage ../development/libraries/qcoro { };
|
||||
|
||||
qcsxcad = callPackage ../development/libraries/science/electronics/qcsxcad { };
|
||||
|
||||
qjson = callPackage ../development/libraries/qjson { };
|
||||
|
||||
qmltermwidget = callPackage ../development/libraries/qmltermwidget {
|
||||
inherit (pkgs.darwin.apple_sdk.libs) utmp;
|
||||
};
|
||||
|
||||
qmlbox2d = callPackage ../development/libraries/qmlbox2d { };
|
||||
|
||||
qoauth = callPackage ../development/libraries/qoauth { };
|
||||
|
||||
qscintilla = callPackage ../development/libraries/qscintilla { };
|
||||
|
||||
qt5ct = callPackage ../tools/misc/qt5ct { };
|
||||
|
||||
qtfeedback = callPackage ../development/libraries/qtfeedback { };
|
||||
|
||||
qtforkawesome = callPackage ../development/libraries/qtforkawesome { };
|
||||
|
||||
qtutilities = callPackage ../development/libraries/qtutilities { };
|
||||
|
||||
qtinstaller = callPackage ../development/libraries/qtinstaller { };
|
||||
|
||||
qtkeychain = callPackage ../development/libraries/qtkeychain {
|
||||
inherit (pkgs.darwin.apple_sdk.frameworks) CoreFoundation Security;
|
||||
};
|
||||
|
||||
qtmpris = callPackage ../development/libraries/qtmpris { };
|
||||
|
||||
qtpbfimageplugin = callPackage ../development/libraries/qtpbfimageplugin { };
|
||||
|
||||
qtstyleplugins = callPackage ../development/libraries/qtstyleplugins { };
|
||||
|
||||
qtstyleplugin-kvantum = callPackage ../development/libraries/qtstyleplugin-kvantum { };
|
||||
|
||||
quazip = callPackage ../development/libraries/quazip { };
|
||||
|
||||
qwt = callPackage ../development/libraries/qwt/default.nix { };
|
||||
|
||||
qwt6_1 = callPackage ../development/libraries/qwt/6_1.nix { };
|
||||
|
||||
soqt = callPackage ../development/libraries/soqt { };
|
||||
|
||||
telepathy = callPackage ../development/libraries/telepathy/qt { };
|
||||
|
||||
qtwebkit-plugins = callPackage ../development/libraries/qtwebkit-plugins { };
|
||||
|
||||
# Not a library, but we do want it to be built for every qt version there
|
||||
# is, to allow users to choose the right build if needed.
|
||||
sddm = callPackage ../applications/display-managers/sddm { };
|
||||
|
||||
signond = callPackage ../development/libraries/signond {};
|
||||
|
||||
soundkonverter = callPackage ../applications/audio/soundkonverter {};
|
||||
|
||||
yuview = callPackage ../applications/video/yuview { };
|
||||
})))
|
||||
23
pkgs/top-level/qt6-packages.nix
Normal file
23
pkgs/top-level/qt6-packages.nix
Normal file
|
|
@ -0,0 +1,23 @@
|
|||
# Qt packages set.
|
||||
#
|
||||
# Attributes in this file are packages requiring Qt and will be made available
|
||||
# for every Qt version. Qt applications are called from `all-packages.nix` via
|
||||
# this file.
|
||||
|
||||
{ lib
|
||||
, pkgs
|
||||
, qt6
|
||||
}:
|
||||
|
||||
(lib.makeScope pkgs.newScope ( self:
|
||||
|
||||
let
|
||||
libsForQt6 = self;
|
||||
callPackage = self.callPackage;
|
||||
in
|
||||
|
||||
(qt6 // {
|
||||
# LIBRARIES
|
||||
|
||||
quazip = callPackage ../development/libraries/quazip { };
|
||||
})))
|
||||
91
pkgs/top-level/release-alternatives.nix
Normal file
91
pkgs/top-level/release-alternatives.nix
Normal file
|
|
@ -0,0 +1,91 @@
|
|||
{ pkgsFun ? import ../..
|
||||
, lib ? import ../../lib
|
||||
, supportedSystems ? ["x86_64-linux"]
|
||||
, allowUnfree ? false }:
|
||||
|
||||
let
|
||||
|
||||
# called BLAS here, but also tests LAPACK
|
||||
blasUsers = [
|
||||
# "julia_07" "julia_10" "julia_11" "julia_13" "octave" "octaveFull"
|
||||
"fflas-ffpack" "linbox" "R" "ipopt" "hpl" "rspamd" "octopus"
|
||||
"superlu" "suitesparse_5_3" "suitesparse_4_4"
|
||||
"suitesparse_4_2" "scs" "scalapack" "petsc" "cholmod-extra"
|
||||
"arpack" "qrupdate" "libcint" "iml" "globalarrays" "arrayfire" "armadillo"
|
||||
"xfitter" "lammps" "plink-ng" "quantum-espresso" "siesta"
|
||||
"siesta-mpi" "shogun" "calculix" "csdp" "getdp" "giac" "gmsh" "jags"
|
||||
"lammps" "lammps-mpi"
|
||||
|
||||
# requires openblas
|
||||
# "caffe" "mxnet" "flint" "sage" "sageWithDoc"
|
||||
|
||||
# broken
|
||||
# "gnss-sdr" "octave-jit" "openmodelica" "torch"
|
||||
|
||||
# subpackages
|
||||
["pythonPackages" "numpy"] ["pythonPackages" "prox-tv"] ["pythonPackages" "scs"]
|
||||
["pythonPackages" "pysparse"] ["pythonPackages" "cvxopt"]
|
||||
# ["pythonPackages" "fenics"]
|
||||
["rPackages" "slfm"] ["rPackages" "SamplerCompare"]
|
||||
# ["rPackages" "EMCluster"]
|
||||
# ["ocamlPackages" "lacaml"]
|
||||
# ["ocamlPackages" "owl"]
|
||||
["haskellPackages" "bindings-levmar"]
|
||||
] ++ lib.optionals allowUnfree [ "magma" ];
|
||||
blas64Users = [
|
||||
"rspamd" "sundials" "suitesparse_5_3" "suitesparse_4_4"
|
||||
"suitesparse_4_2" "petsc" "cholmod-extra"
|
||||
"arpack" "qrupdate" "iml" "globalarrays" "arrayfire"
|
||||
"lammps" "plink-ng" "quantum-espresso"
|
||||
"calculix" "csdp" "getdp" "jags"
|
||||
"lammps" "lammps-mpi"
|
||||
# ["ocamlPackages" "lacaml"]
|
||||
["haskellPackages" "bindings-levmar"]
|
||||
] ++ lib.optionals allowUnfree [ "magma" ];
|
||||
blasProviders = system: [ "openblasCompat" "lapack-reference" "openblas" ]
|
||||
++ lib.optionals (allowUnfree && system.isx86) ["mkl" "mkl64"];
|
||||
|
||||
blas64Providers = [ "mkl64" "openblas"];
|
||||
|
||||
mapListToAttrs = xs: f: builtins.listToAttrs (map (name: {
|
||||
name = if builtins.isList name
|
||||
then builtins.elemAt name (builtins.length name - 1)
|
||||
else name;
|
||||
value = f name;
|
||||
}) xs);
|
||||
|
||||
in
|
||||
|
||||
{
|
||||
blas = mapListToAttrs supportedSystems (system': let system = lib.systems.elaborate { system = system'; };
|
||||
in mapListToAttrs (blasProviders system) (provider: let
|
||||
isILP64 = builtins.elem provider (["mkl64"] ++ lib.optional system.is64bit "openblas");
|
||||
pkgs = pkgsFun {
|
||||
config = { inherit allowUnfree; };
|
||||
system = system';
|
||||
overlays = [(self: super: {
|
||||
lapack = super.lapack.override {
|
||||
lapackProvider = if provider == "mkl64"
|
||||
then super.mkl
|
||||
else builtins.getAttr provider super;
|
||||
inherit isILP64;
|
||||
};
|
||||
blas = super.blas.override {
|
||||
blasProvider = if provider == "mkl64"
|
||||
then super.mkl
|
||||
else builtins.getAttr provider super;
|
||||
inherit isILP64;
|
||||
};
|
||||
})];
|
||||
};
|
||||
in mapListToAttrs (if builtins.elem provider blas64Providers
|
||||
then blas64Users else blasUsers)
|
||||
(attr: if builtins.isList attr
|
||||
then lib.getAttrFromPath attr pkgs
|
||||
else builtins.getAttr attr pkgs)
|
||||
|
||||
// { recurseForDerivations = true; })
|
||||
// { recurseForDerivations = true; })
|
||||
// { recurseForDerivations = true; };
|
||||
recurseForDerivations = true;
|
||||
}
|
||||
215
pkgs/top-level/release-cross.nix
Normal file
215
pkgs/top-level/release-cross.nix
Normal file
|
|
@ -0,0 +1,215 @@
|
|||
/* This file defines some basic smoke tests for cross compilation.
|
||||
*/
|
||||
|
||||
{ # The platforms *from* which we cross compile.
|
||||
supportedSystems ? [ "x86_64-linux" "x86_64-darwin" "aarch64-linux" ]
|
||||
, # Strip most of attributes when evaluating to spare memory usage
|
||||
scrubJobs ? true
|
||||
, # Attributes passed to nixpkgs. Don't build packages marked as unfree.
|
||||
nixpkgsArgs ? { config = { allowUnfree = false; inHydra = true; }; }
|
||||
}:
|
||||
|
||||
with import ./release-lib.nix { inherit supportedSystems scrubJobs nixpkgsArgs; };
|
||||
|
||||
let
|
||||
nativePlatforms = all;
|
||||
|
||||
embedded = {
|
||||
buildPackages.binutils = nativePlatforms;
|
||||
buildPackages.gcc = nativePlatforms;
|
||||
libcCross = nativePlatforms;
|
||||
};
|
||||
|
||||
common = {
|
||||
buildPackages.binutils = nativePlatforms;
|
||||
gmp = nativePlatforms;
|
||||
libcCross = nativePlatforms;
|
||||
nix = nativePlatforms;
|
||||
nixUnstable = nativePlatforms;
|
||||
mesa = nativePlatforms;
|
||||
};
|
||||
|
||||
gnuCommon = lib.recursiveUpdate common {
|
||||
buildPackages.gcc = nativePlatforms;
|
||||
coreutils = nativePlatforms;
|
||||
haskell.packages.ghcHEAD.hello = nativePlatforms;
|
||||
haskellPackages.hello = nativePlatforms;
|
||||
};
|
||||
|
||||
linuxCommon = lib.recursiveUpdate gnuCommon {
|
||||
buildPackages.gdb = nativePlatforms;
|
||||
|
||||
bison = nativePlatforms;
|
||||
busybox = nativePlatforms;
|
||||
dropbear = nativePlatforms;
|
||||
ed = nativePlatforms;
|
||||
ncurses = nativePlatforms;
|
||||
patch = nativePlatforms;
|
||||
};
|
||||
|
||||
windowsCommon = lib.recursiveUpdate gnuCommon {
|
||||
boehmgc = nativePlatforms;
|
||||
guile_1_8 = nativePlatforms;
|
||||
libffi = nativePlatforms;
|
||||
libtool = nativePlatforms;
|
||||
libunistring = nativePlatforms;
|
||||
windows.wxMSW = nativePlatforms;
|
||||
windows.mingw_w64_pthreads = nativePlatforms;
|
||||
};
|
||||
|
||||
wasiCommon = {
|
||||
gmp = nativePlatforms;
|
||||
boehmgc = nativePlatforms;
|
||||
hello = nativePlatforms;
|
||||
zlib = nativePlatforms;
|
||||
};
|
||||
|
||||
darwinCommon = {
|
||||
buildPackages.binutils = darwin;
|
||||
};
|
||||
|
||||
rpiCommon = linuxCommon // {
|
||||
vim = nativePlatforms;
|
||||
unzip = nativePlatforms;
|
||||
ddrescue = nativePlatforms;
|
||||
lynx = nativePlatforms;
|
||||
patchelf = nativePlatforms;
|
||||
buildPackages.binutils = nativePlatforms;
|
||||
mpg123 = nativePlatforms;
|
||||
};
|
||||
in
|
||||
|
||||
{
|
||||
# These derivations from a cross package set's `buildPackages` should be
|
||||
# identical to their vanilla equivalents --- none of these package should
|
||||
# observe the target platform which is the only difference between those
|
||||
# package sets.
|
||||
ensureUnaffected = let
|
||||
# Absurd values are fine here, as we are not building anything. In fact,
|
||||
# there probably a good idea to try to be "more parametric" --- i.e. avoid
|
||||
# any special casing.
|
||||
crossSystem = {
|
||||
config = "mips64el-apple-windows-gnu";
|
||||
libc = "glibc";
|
||||
};
|
||||
|
||||
# Converting to a string (drv path) before checking equality is probably a
|
||||
# good idea lest there be some irrelevant pass-through debug attrs that
|
||||
# cause false negatives.
|
||||
testEqualOne = path: system: let
|
||||
f = path: crossSystem: system: builtins.toString (lib.getAttrFromPath path (pkgsForCross crossSystem system));
|
||||
in assertTrue (
|
||||
f path null system
|
||||
==
|
||||
f (["buildPackages"] ++ path) crossSystem system
|
||||
);
|
||||
|
||||
testEqual = path: systems: forMatchingSystems systems (testEqualOne path);
|
||||
|
||||
mapTestEqual = lib.mapAttrsRecursive testEqual;
|
||||
|
||||
in mapTestEqual {
|
||||
boehmgc = nativePlatforms;
|
||||
libffi = nativePlatforms;
|
||||
libiconv = nativePlatforms;
|
||||
libtool = nativePlatforms;
|
||||
zlib = nativePlatforms;
|
||||
readline = nativePlatforms;
|
||||
libxml2 = nativePlatforms;
|
||||
guile = nativePlatforms;
|
||||
};
|
||||
|
||||
crossIphone64 = mapTestOnCross lib.systems.examples.iphone64 darwinCommon;
|
||||
|
||||
crossIphone32 = mapTestOnCross lib.systems.examples.iphone32 darwinCommon;
|
||||
|
||||
/* Test some cross builds to the Sheevaplug */
|
||||
crossSheevaplugLinux = mapTestOnCross lib.systems.examples.sheevaplug (linuxCommon // {
|
||||
ubootSheevaplug = nativePlatforms;
|
||||
});
|
||||
|
||||
/* Test some cross builds on 32 bit mingw-w64 */
|
||||
crossMingw32 = mapTestOnCross lib.systems.examples.mingw32 windowsCommon;
|
||||
|
||||
/* Test some cross builds on 64 bit mingw-w64 */
|
||||
crossMingwW64 = mapTestOnCross lib.systems.examples.mingwW64 windowsCommon;
|
||||
|
||||
/* Linux on mipsel */
|
||||
fuloongminipc = mapTestOnCross lib.systems.examples.fuloongminipc linuxCommon;
|
||||
ben-nanonote = mapTestOnCross lib.systems.examples.ben-nanonote linuxCommon;
|
||||
|
||||
/* Javacript */
|
||||
ghcjs = mapTestOnCross lib.systems.examples.ghcjs {
|
||||
haskell.packages.ghcjs.hello = nativePlatforms;
|
||||
};
|
||||
|
||||
/* Linux on Raspberrypi */
|
||||
rpi = mapTestOnCross lib.systems.examples.raspberryPi rpiCommon;
|
||||
rpi-musl = mapTestOnCross lib.systems.examples.muslpi rpiCommon;
|
||||
|
||||
/* Linux on the Remarkable */
|
||||
remarkable1 = mapTestOnCross lib.systems.examples.remarkable1 linuxCommon;
|
||||
remarkable2 = mapTestOnCross lib.systems.examples.remarkable2 linuxCommon;
|
||||
|
||||
/* Linux on armv7l-hf */
|
||||
armv7l-hf = mapTestOnCross lib.systems.examples.armv7l-hf-multiplatform linuxCommon;
|
||||
|
||||
pogoplug4 = mapTestOnCross lib.systems.examples.pogoplug4 linuxCommon;
|
||||
|
||||
/* Linux on aarch64 */
|
||||
aarch64 = mapTestOnCross lib.systems.examples.aarch64-multiplatform linuxCommon;
|
||||
aarch64-musl = mapTestOnCross lib.systems.examples.aarch64-multiplatform-musl linuxCommon;
|
||||
|
||||
/* Linux on RISCV */
|
||||
riscv64 = mapTestOnCross lib.systems.examples.riscv64 linuxCommon;
|
||||
riscv32 = mapTestOnCross lib.systems.examples.riscv32 linuxCommon;
|
||||
|
||||
m68k = mapTestOnCross lib.systems.examples.m68k linuxCommon;
|
||||
s390x = mapTestOnCross lib.systems.examples.s390x linuxCommon;
|
||||
|
||||
/* (Cross-compiled) Linux on x86 */
|
||||
x86_64-musl = mapTestOnCross lib.systems.examples.musl64 linuxCommon;
|
||||
x86_64-gnu = mapTestOnCross lib.systems.examples.gnu64 linuxCommon;
|
||||
i686-musl = mapTestOnCross lib.systems.examples.musl32 linuxCommon;
|
||||
i686-gnu = mapTestOnCross lib.systems.examples.gnu32 linuxCommon;
|
||||
|
||||
ppc64le = mapTestOnCross lib.systems.examples.powernv linuxCommon;
|
||||
ppc64le-musl = mapTestOnCross lib.systems.examples.musl-power linuxCommon;
|
||||
|
||||
android64 = mapTestOnCross lib.systems.examples.aarch64-android-prebuilt linuxCommon;
|
||||
android32 = mapTestOnCross lib.systems.examples.armv7a-android-prebuilt linuxCommon;
|
||||
|
||||
wasi32 = mapTestOnCross lib.systems.examples.wasi32 wasiCommon;
|
||||
|
||||
msp430 = mapTestOnCross lib.systems.examples.msp430 embedded;
|
||||
mmix = mapTestOnCross lib.systems.examples.mmix embedded;
|
||||
vc4 = mapTestOnCross lib.systems.examples.vc4 embedded;
|
||||
or1k = mapTestOnCross lib.systems.examples.or1k embedded;
|
||||
avr = mapTestOnCross lib.systems.examples.avr embedded;
|
||||
arm-embedded = mapTestOnCross lib.systems.examples.arm-embedded embedded;
|
||||
armhf-embedded = mapTestOnCross lib.systems.examples.armhf-embedded embedded;
|
||||
aarch64-embedded = mapTestOnCross lib.systems.examples.aarch64-embedded embedded;
|
||||
aarch64be-embedded = mapTestOnCross lib.systems.examples.aarch64be-embedded embedded;
|
||||
powerpc-embedded = mapTestOnCross lib.systems.examples.ppc-embedded embedded;
|
||||
powerpcle-embedded = mapTestOnCross lib.systems.examples.ppcle-embedded embedded;
|
||||
i686-embedded = mapTestOnCross lib.systems.examples.i686-embedded embedded;
|
||||
x86_64-embedded = mapTestOnCross lib.systems.examples.x86_64-embedded embedded;
|
||||
riscv64-embedded = mapTestOnCross lib.systems.examples.riscv64-embedded embedded;
|
||||
riscv32-embedded = mapTestOnCross lib.systems.examples.riscv32-embedded embedded;
|
||||
rx-embedded = mapTestOnCross lib.systems.examples.rx-embedded embedded;
|
||||
|
||||
x86_64-netbsd = mapTestOnCross lib.systems.examples.x86_64-netbsd common;
|
||||
|
||||
# we test `embedded` instead of `linuxCommon` because very few packages
|
||||
# successfully cross-compile to Redox so far
|
||||
x86_64-redox = mapTestOnCross lib.systems.examples.x86_64-unknown-redox embedded;
|
||||
|
||||
/* Cross-built bootstrap tools for every supported platform */
|
||||
bootstrapTools = let
|
||||
tools = import ../stdenv/linux/make-bootstrap-tools-cross.nix { system = "x86_64-linux"; };
|
||||
maintainers = [ lib.maintainers.dezgeg ];
|
||||
mkBootstrapToolsJob = drv:
|
||||
assert lib.elem drv.system supportedSystems;
|
||||
hydraJob' (lib.addMetaAttrs { inherit maintainers; } drv);
|
||||
in lib.mapAttrsRecursiveCond (as: !lib.isDerivation as) (name: mkBootstrapToolsJob) tools;
|
||||
}
|
||||
55
pkgs/top-level/release-cuda.nix
Normal file
55
pkgs/top-level/release-cuda.nix
Normal file
|
|
@ -0,0 +1,55 @@
|
|||
/*
|
||||
Test CUDA packages.
|
||||
|
||||
This release file will not be tested on hydra.nixos.org
|
||||
because it requires unfree software.
|
||||
|
||||
Test for example like this:
|
||||
|
||||
$ hydra-eval-jobs pkgs/top-level/release-cuda.nix --option restrict-eval false -I foo=. --arg nixpkgs '{ outPath = ./.; revCount = 0; shortRev = "aabbcc"; }'
|
||||
|
||||
*/
|
||||
|
||||
{ # The platforms for which we build Nixpkgs.
|
||||
supportedSystems ? [
|
||||
"x86_64-linux"
|
||||
]
|
||||
, # Attributes passed to nixpkgs.
|
||||
nixpkgsArgs ? { config = { allowUnfree = true; inHydra = true; }; }
|
||||
}:
|
||||
|
||||
with import ./release-lib.nix {inherit supportedSystems nixpkgsArgs; };
|
||||
with lib;
|
||||
|
||||
let
|
||||
# Package sets to evaluate
|
||||
packageSets = [
|
||||
"cudaPackages_10_0"
|
||||
"cudaPackages_10_1"
|
||||
"cudaPackages_10_2"
|
||||
"cudaPackages_10"
|
||||
"cudaPackages_11_0"
|
||||
"cudaPackages_11_1"
|
||||
"cudaPackages_11_2"
|
||||
"cudaPackages_11_3"
|
||||
"cudaPackages_11_4"
|
||||
"cudaPackages_11_5"
|
||||
"cudaPackages_11_6"
|
||||
"cudaPackages_11"
|
||||
"cudaPackages"
|
||||
];
|
||||
|
||||
evalPackageSet = pset: mapTestOn { ${pset} = packagePlatforms pkgs.${pset}; };
|
||||
|
||||
jobs = (mapTestOn ({
|
||||
# Packages to evaluate
|
||||
python3.pkgs.caffeWithCuda = linux;
|
||||
python3.pkgs.jaxlibWithCuda = linux;
|
||||
python3.pkgs.libgpuarray = linux;
|
||||
python3.pkgs.tensorflowWithCuda = linux;
|
||||
python3.pkgs.pyrealsense2WithCuda = linux;
|
||||
python3.pkgs.pytorchWithCuda = linux;
|
||||
python3.pkgs.jaxlib = linux;
|
||||
}) // (genAttrs packageSets evalPackageSet));
|
||||
|
||||
in jobs
|
||||
485
pkgs/top-level/release-haskell.nix
Normal file
485
pkgs/top-level/release-haskell.nix
Normal file
|
|
@ -0,0 +1,485 @@
|
|||
/*
|
||||
This is the Hydra jobset for the `haskell-updates` branch in Nixpkgs.
|
||||
You can see the status of this jobset at
|
||||
https://hydra.nixos.org/jobset/nixpkgs/haskell-updates.
|
||||
|
||||
To debug this expression you can use `hydra-eval-jobs` from
|
||||
`pkgs.hydra_unstable` which prints the jobset description
|
||||
to `stdout`:
|
||||
|
||||
$ hydra-eval-jobs -I . pkgs/top-level/release-haskell.nix
|
||||
*/
|
||||
{ supportedSystems ? [ "x86_64-linux" "x86_64-darwin" "aarch64-linux" ] }:
|
||||
|
||||
let
|
||||
|
||||
releaseLib = import ./release-lib.nix {
|
||||
inherit supportedSystems;
|
||||
};
|
||||
|
||||
inherit (releaseLib)
|
||||
lib
|
||||
mapTestOn
|
||||
packagePlatforms
|
||||
pkgs
|
||||
;
|
||||
|
||||
# Helper function which traverses a (nested) set
|
||||
# of derivations produced by mapTestOn and flattens
|
||||
# it to a list of derivations suitable to be passed
|
||||
# to `releaseTools.aggregate` as constituents.
|
||||
# Removes all non derivations from the input jobList.
|
||||
#
|
||||
# accumulateDerivations :: [ Either Derivation AttrSet ] -> [ Derivation ]
|
||||
#
|
||||
# > accumulateDerivations [ drv1 "string" { foo = drv2; bar = { baz = drv3; }; } ]
|
||||
# [ drv1 drv2 drv3 ]
|
||||
accumulateDerivations = jobList:
|
||||
lib.concatMap (
|
||||
attrs:
|
||||
if lib.isDerivation attrs
|
||||
then [ attrs ]
|
||||
else if lib.isAttrs attrs
|
||||
then accumulateDerivations (lib.attrValues attrs)
|
||||
else []
|
||||
) jobList;
|
||||
|
||||
# names of all subsets of `pkgs.haskell.packages`
|
||||
compilerNames = lib.mapAttrs (name: _: name) pkgs.haskell.packages;
|
||||
|
||||
# list of all compilers to test specific packages on
|
||||
released = with compilerNames; [
|
||||
ghc884
|
||||
ghc8107
|
||||
ghc902
|
||||
ghc923
|
||||
];
|
||||
|
||||
# packagePlatforms applied to `haskell.packages.*`
|
||||
compilerPlatforms = lib.mapAttrs
|
||||
(_: v: packagePlatforms v)
|
||||
pkgs.haskell.packages;
|
||||
|
||||
# This function lets you specify specific packages
|
||||
# which are to be tested on a list of specific GHC
|
||||
# versions and returns a job set for all specified
|
||||
# combinations. See `jobs` below for an example.
|
||||
versionedCompilerJobs = config: mapTestOn {
|
||||
haskell.packages =
|
||||
(lib.mapAttrs (
|
||||
ghc: jobs:
|
||||
lib.filterAttrs (
|
||||
jobName: platforms:
|
||||
lib.elem ghc (config."${jobName}" or [])
|
||||
) jobs
|
||||
) compilerPlatforms);
|
||||
};
|
||||
|
||||
# hydra jobs for `pkgs` of which we import a subset of
|
||||
pkgsPlatforms = packagePlatforms pkgs;
|
||||
|
||||
# names of packages in an attribute set that are maintained
|
||||
maintainedPkgNames = set: builtins.attrNames
|
||||
(lib.filterAttrs (
|
||||
_: v: builtins.length (v.meta.maintainers or []) > 0
|
||||
) set);
|
||||
|
||||
recursiveUpdateMany = builtins.foldl' lib.recursiveUpdate {};
|
||||
|
||||
# Remove multiple elements from a list at once.
|
||||
#
|
||||
# removeMany
|
||||
# :: [a] -- list of elements to remove
|
||||
# -> [a] -- list of elements from which to remove
|
||||
# -> [a]
|
||||
#
|
||||
# > removeMany ["aarch64-linux" "x86_64-darwin"] ["aarch64-linux" "x86_64-darwin" "x86_64-linux"]
|
||||
# ["x86_64-linux"]
|
||||
removeMany = itemsToRemove: list: lib.foldr lib.remove list itemsToRemove;
|
||||
|
||||
# Recursively remove platforms from the values in an attribute set.
|
||||
#
|
||||
# removePlatforms
|
||||
# :: [String]
|
||||
# -> AttrSet
|
||||
# -> AttrSet
|
||||
#
|
||||
# > attrSet = {
|
||||
# foo = ["aarch64-linux" "x86_64-darwin" "x86_64-linux"];
|
||||
# bar.baz = ["aarch64-linux" "x86_64-linux"];
|
||||
# bar.quux = ["aarch64-linux" "x86_64-darwin"];
|
||||
# }
|
||||
# > removePlatforms ["aarch64-linux" "x86_64-darwin"] attrSet
|
||||
# {
|
||||
# foo = ["x86_64-linux"];
|
||||
# bar = {
|
||||
# baz = ["x86_64-linux"];
|
||||
# quux = [];
|
||||
# };
|
||||
# }
|
||||
removePlatforms = platformsToRemove: packageSet:
|
||||
lib.mapAttrsRecursive
|
||||
(_: val:
|
||||
if lib.isList val
|
||||
then removeMany platformsToRemove val
|
||||
else val
|
||||
)
|
||||
packageSet;
|
||||
|
||||
jobs = recursiveUpdateMany [
|
||||
(mapTestOn {
|
||||
haskellPackages = packagePlatforms pkgs.haskellPackages;
|
||||
haskell.compiler = packagePlatforms pkgs.haskell.compiler // (lib.genAttrs [
|
||||
"ghcjs"
|
||||
"ghcjs810"
|
||||
] (ghcjsName: {
|
||||
# We can't build ghcjs itself, since it exceeds 3GB (Hydra's output limit) due
|
||||
# to the size of its bundled libs. We can however save users a bit of compile
|
||||
# time by building the bootstrap ghcjs on Hydra. For this reason, we overwrite
|
||||
# the ghcjs attributes in haskell.compiler with a reference to the bootstrap
|
||||
# ghcjs attribute in their bootstrap package set (exposed via passthru) which
|
||||
# would otherwise be ignored by Hydra.
|
||||
bootGhcjs = (packagePlatforms pkgs.haskell.compiler.${ghcjsName}.passthru).bootGhcjs;
|
||||
}));
|
||||
|
||||
tests.haskell = packagePlatforms pkgs.tests.haskell;
|
||||
|
||||
nixosTests = {
|
||||
inherit (packagePlatforms pkgs.nixosTests)
|
||||
agda
|
||||
xmonad
|
||||
xmonad-xdg-autostart
|
||||
;
|
||||
};
|
||||
|
||||
agdaPackages = packagePlatforms pkgs.agdaPackages;
|
||||
|
||||
# top-level packages that depend on haskellPackages
|
||||
inherit (pkgsPlatforms)
|
||||
agda
|
||||
arion
|
||||
bench
|
||||
bustle
|
||||
blucontrol
|
||||
cabal-install
|
||||
cabal2nix
|
||||
cachix
|
||||
carp
|
||||
cedille
|
||||
client-ip-echo
|
||||
darcs
|
||||
dconf2nix
|
||||
dhall
|
||||
dhall-bash
|
||||
dhall-docs
|
||||
dhall-lsp-server
|
||||
dhall-json
|
||||
dhall-nix
|
||||
diagrams-builder
|
||||
elm2nix
|
||||
fffuu
|
||||
futhark
|
||||
ghcid
|
||||
git-annex
|
||||
git-brunch
|
||||
gitit
|
||||
glirc
|
||||
hadolint
|
||||
haskell-ci
|
||||
haskell-language-server
|
||||
hasura-graphql-engine
|
||||
hci
|
||||
hercules-ci-agent
|
||||
hinit
|
||||
hedgewars
|
||||
hledger
|
||||
hledger-check-fancyassertions
|
||||
hledger-iadd
|
||||
hledger-interest
|
||||
hledger-ui
|
||||
hledger-web
|
||||
hlint
|
||||
hpack
|
||||
# hyper-haskell # depends on electron-10.4.7 which is marked as insecure
|
||||
hyper-haskell-server-with-packages
|
||||
icepeak
|
||||
idris
|
||||
ihaskell
|
||||
jacinda
|
||||
jl
|
||||
koka
|
||||
krank
|
||||
lambdabot
|
||||
lhs2tex
|
||||
madlang
|
||||
matterhorn
|
||||
mueval
|
||||
naproche
|
||||
neuron-notes
|
||||
niv
|
||||
nix-delegate
|
||||
nix-deploy
|
||||
nix-diff
|
||||
nix-linter
|
||||
nix-output-monitor
|
||||
nix-script
|
||||
nix-tree
|
||||
nixfmt
|
||||
nota
|
||||
nvfetcher
|
||||
ormolu
|
||||
pandoc
|
||||
pakcs
|
||||
petrinizer
|
||||
place-cursor-at
|
||||
pinboard-notes-backup
|
||||
pretty-simple
|
||||
shake
|
||||
shellcheck
|
||||
sourceAndTags
|
||||
spacecookie
|
||||
spago
|
||||
splot
|
||||
stack
|
||||
stack2nix
|
||||
stutter
|
||||
stylish-haskell
|
||||
taffybar
|
||||
tamarin-prover
|
||||
taskell
|
||||
termonad-with-packages
|
||||
tldr-hs
|
||||
tweet-hs
|
||||
update-nix-fetchgit
|
||||
uusi
|
||||
uqm
|
||||
uuagc
|
||||
vaultenv
|
||||
wstunnel
|
||||
xmobar
|
||||
xmonad-with-packages
|
||||
yi
|
||||
zsh-git-prompt
|
||||
;
|
||||
|
||||
# Members of the elmPackages set that are Haskell derivations
|
||||
elmPackages = {
|
||||
inherit (pkgsPlatforms.elmPackages)
|
||||
elm
|
||||
elm-format
|
||||
elm-instrument
|
||||
elmi-to-json
|
||||
;
|
||||
};
|
||||
|
||||
# GHCs linked to musl.
|
||||
pkgsMusl.haskell.compiler = lib.recursiveUpdate
|
||||
(packagePlatforms pkgs.pkgsMusl.haskell.compiler)
|
||||
{
|
||||
# remove musl ghc865Binary since it is known to be broken and
|
||||
# causes an evaluation error on darwin.
|
||||
# TODO: remove ghc865Binary altogether and use ghc8102Binary
|
||||
ghc865Binary = {};
|
||||
|
||||
ghcjs = {};
|
||||
ghcjs810 = {};
|
||||
|
||||
# Can't be built with musl, see meta.broken comment in the drv
|
||||
integer-simple.ghc884 = {};
|
||||
};
|
||||
|
||||
# Get some cache going for MUSL-enabled GHC.
|
||||
pkgsMusl.haskellPackages =
|
||||
removePlatforms
|
||||
[
|
||||
# pkgsMusl is compiled natively with musl. It is not
|
||||
# cross-compiled (unlike pkgsStatic). We can only
|
||||
# natively bootstrap GHC with musl on x86_64-linux because
|
||||
# upstream doesn't provide a musl bindist for aarch64.
|
||||
"aarch64-linux"
|
||||
|
||||
# musl only supports linux, not darwin.
|
||||
"x86_64-darwin"
|
||||
]
|
||||
{
|
||||
inherit (packagePlatforms pkgs.pkgsMusl.haskellPackages)
|
||||
hello
|
||||
lens
|
||||
random
|
||||
;
|
||||
};
|
||||
|
||||
# Test some statically linked packages to catch regressions
|
||||
# and get some cache going for static compilation with GHC.
|
||||
# Use integer-simple to avoid GMP linking problems (LGPL)
|
||||
pkgsStatic =
|
||||
removePlatforms
|
||||
[
|
||||
"aarch64-linux" # times out on Hydra
|
||||
"x86_64-darwin" # TODO: reenable when static libiconv works on darwin
|
||||
] {
|
||||
haskellPackages = {
|
||||
inherit (packagePlatforms pkgs.pkgsStatic.haskellPackages)
|
||||
hello
|
||||
lens
|
||||
random
|
||||
QuickCheck
|
||||
cabal2nix
|
||||
xhtml # isn't bundled for cross
|
||||
;
|
||||
};
|
||||
|
||||
haskell.packages.native-bignum.ghc923 = {
|
||||
inherit (packagePlatforms pkgs.pkgsStatic.haskell.packages.native-bignum.ghc923)
|
||||
hello
|
||||
lens
|
||||
random
|
||||
QuickCheck
|
||||
cabal2nix
|
||||
xhtml # isn't bundled for cross
|
||||
;
|
||||
};
|
||||
};
|
||||
})
|
||||
(versionedCompilerJobs {
|
||||
# Packages which should be checked on more than the
|
||||
# default GHC version. This list can be used to test
|
||||
# the state of the package set with newer compilers
|
||||
# and to confirm that critical packages for the
|
||||
# package sets (like Cabal, jailbreak-cabal) are
|
||||
# working as expected.
|
||||
cabal-install = released;
|
||||
Cabal_3_6_3_0 = released;
|
||||
cabal2nix = released;
|
||||
cabal2nix-unstable = released;
|
||||
funcmp = released;
|
||||
haskell-language-server = released;
|
||||
hoogle = released;
|
||||
hlint = released;
|
||||
hsdns = released;
|
||||
jailbreak-cabal = released;
|
||||
language-nix = released;
|
||||
nix-paths = released;
|
||||
titlecase = released;
|
||||
ghc-api-compat = [
|
||||
compilerNames.ghc884
|
||||
compilerNames.ghc8107
|
||||
compilerNames.ghc902
|
||||
];
|
||||
ghc-bignum = [
|
||||
compilerNames.ghc884
|
||||
compilerNames.ghc8107
|
||||
];
|
||||
ghc-lib = released;
|
||||
ghc-lib-parser = released;
|
||||
ghc-lib-parser-ex = released;
|
||||
spectacle = [
|
||||
compilerNames.ghc8107
|
||||
];
|
||||
weeder = [
|
||||
compilerNames.ghc8107
|
||||
compilerNames.ghc902
|
||||
compilerNames.ghc923
|
||||
];
|
||||
purescript = [
|
||||
compilerNames.ghc8107
|
||||
];
|
||||
purescript-cst = [
|
||||
compilerNames.ghc8107
|
||||
];
|
||||
purescript-ast = [
|
||||
compilerNames.ghc8107
|
||||
];
|
||||
})
|
||||
{
|
||||
mergeable = pkgs.releaseTools.aggregate {
|
||||
name = "haskell-updates-mergeable";
|
||||
meta = {
|
||||
description = ''
|
||||
Critical haskell packages that should work at all times,
|
||||
serves as minimum requirement for an update merge
|
||||
'';
|
||||
maintainers = lib.teams.haskell.members;
|
||||
};
|
||||
constituents = accumulateDerivations [
|
||||
# haskell specific tests
|
||||
jobs.tests.haskell
|
||||
# important top-level packages
|
||||
jobs.cabal-install
|
||||
jobs.cabal2nix
|
||||
jobs.cachix
|
||||
jobs.darcs
|
||||
jobs.haskell-language-server
|
||||
jobs.hledger
|
||||
jobs.hledger-ui
|
||||
jobs.hpack
|
||||
jobs.niv
|
||||
jobs.pandoc
|
||||
jobs.stack
|
||||
jobs.stylish-haskell
|
||||
# important haskell (library) packages
|
||||
jobs.haskellPackages.cabal-plan
|
||||
jobs.haskellPackages.distribution-nixpkgs
|
||||
jobs.haskellPackages.hackage-db
|
||||
jobs.haskellPackages.xmonad
|
||||
jobs.haskellPackages.xmonad-contrib
|
||||
# haskell packages maintained by @peti
|
||||
# imported from the old hydra jobset
|
||||
jobs.haskellPackages.hopenssl
|
||||
jobs.haskellPackages.hsemail
|
||||
jobs.haskellPackages.hsyslog
|
||||
];
|
||||
};
|
||||
maintained = pkgs.releaseTools.aggregate {
|
||||
name = "maintained-haskell-packages";
|
||||
meta = {
|
||||
description = "Aggregate jobset of all haskell packages with a maintainer";
|
||||
maintainers = lib.teams.haskell.members;
|
||||
};
|
||||
constituents = accumulateDerivations
|
||||
(builtins.map
|
||||
(name: jobs.haskellPackages."${name}")
|
||||
(maintainedPkgNames pkgs.haskellPackages));
|
||||
};
|
||||
|
||||
muslGHCs = pkgs.releaseTools.aggregate {
|
||||
name = "haskell-pkgsMusl-ghcs";
|
||||
meta = {
|
||||
description = "GHCs built with musl";
|
||||
maintainers = with lib.maintainers; [
|
||||
nh2
|
||||
];
|
||||
};
|
||||
constituents = accumulateDerivations [
|
||||
jobs.pkgsMusl.haskell.compiler.ghc8102Binary
|
||||
jobs.pkgsMusl.haskell.compiler.ghc8107Binary
|
||||
jobs.pkgsMusl.haskell.compiler.ghc884
|
||||
jobs.pkgsMusl.haskell.compiler.ghc8107
|
||||
jobs.pkgsMusl.haskell.compiler.ghc902
|
||||
jobs.pkgsMusl.haskell.compiler.ghc923
|
||||
jobs.pkgsMusl.haskell.compiler.ghcHEAD
|
||||
jobs.pkgsMusl.haskell.compiler.integer-simple.ghc8107
|
||||
jobs.pkgsMusl.haskell.compiler.native-bignum.ghc902
|
||||
jobs.pkgsMusl.haskell.compiler.native-bignum.ghc923
|
||||
jobs.pkgsMusl.haskell.compiler.native-bignum.ghcHEAD
|
||||
];
|
||||
};
|
||||
|
||||
staticHaskellPackages = pkgs.releaseTools.aggregate {
|
||||
name = "static-haskell-packages";
|
||||
meta = {
|
||||
description = "Static haskell builds using the pkgsStatic infrastructure";
|
||||
maintainers = [
|
||||
lib.maintainers.sternenseemann
|
||||
lib.maintainers.rnhmjoj
|
||||
];
|
||||
};
|
||||
constituents = accumulateDerivations [
|
||||
jobs.pkgsStatic.haskellPackages
|
||||
jobs.pkgsStatic.haskell.packages.native-bignum.ghc923
|
||||
];
|
||||
};
|
||||
}
|
||||
];
|
||||
|
||||
in jobs
|
||||
160
pkgs/top-level/release-lib.nix
Normal file
160
pkgs/top-level/release-lib.nix
Normal file
|
|
@ -0,0 +1,160 @@
|
|||
{ supportedSystems
|
||||
, packageSet ? (import ../..)
|
||||
, scrubJobs ? true
|
||||
, # Attributes passed to nixpkgs. Don't build packages marked as unfree.
|
||||
nixpkgsArgs ? { config = { allowUnfree = false; inHydra = true; }; }
|
||||
}:
|
||||
|
||||
let
|
||||
lib = import ../../lib;
|
||||
in with lib;
|
||||
|
||||
rec {
|
||||
|
||||
pkgs = packageSet (lib.recursiveUpdate { system = "x86_64-linux"; config.allowUnsupportedSystem = true; } nixpkgsArgs);
|
||||
inherit lib;
|
||||
|
||||
|
||||
hydraJob' = if scrubJobs then hydraJob else id;
|
||||
|
||||
|
||||
/* !!! Hack: poor man's memoisation function. Necessary to prevent
|
||||
Nixpkgs from being evaluated again and again for every
|
||||
job/platform pair. */
|
||||
mkPkgsFor = crossSystem: let
|
||||
packageSet' = args: packageSet (args // { inherit crossSystem; } // nixpkgsArgs);
|
||||
|
||||
pkgs_x86_64_linux = packageSet' { system = "x86_64-linux"; };
|
||||
pkgs_i686_linux = packageSet' { system = "i686-linux"; };
|
||||
pkgs_aarch64_linux = packageSet' { system = "aarch64-linux"; };
|
||||
pkgs_aarch64_darwin = packageSet' { system = "aarch64-darwin"; };
|
||||
pkgs_armv6l_linux = packageSet' { system = "armv6l-linux"; };
|
||||
pkgs_armv7l_linux = packageSet' { system = "armv7l-linux"; };
|
||||
pkgs_x86_64_darwin = packageSet' { system = "x86_64-darwin"; };
|
||||
pkgs_x86_64_freebsd = packageSet' { system = "x86_64-freebsd"; };
|
||||
pkgs_i686_freebsd = packageSet' { system = "i686-freebsd"; };
|
||||
pkgs_i686_cygwin = packageSet' { system = "i686-cygwin"; };
|
||||
pkgs_x86_64_cygwin = packageSet' { system = "x86_64-cygwin"; };
|
||||
|
||||
in system:
|
||||
if system == "x86_64-linux" then pkgs_x86_64_linux
|
||||
else if system == "i686-linux" then pkgs_i686_linux
|
||||
else if system == "aarch64-linux" then pkgs_aarch64_linux
|
||||
else if system == "aarch64-darwin" then pkgs_aarch64_darwin
|
||||
else if system == "armv6l-linux" then pkgs_armv6l_linux
|
||||
else if system == "armv7l-linux" then pkgs_armv7l_linux
|
||||
else if system == "x86_64-darwin" then pkgs_x86_64_darwin
|
||||
else if system == "x86_64-freebsd" then pkgs_x86_64_freebsd
|
||||
else if system == "i686-freebsd" then pkgs_i686_freebsd
|
||||
else if system == "i686-cygwin" then pkgs_i686_cygwin
|
||||
else if system == "x86_64-cygwin" then pkgs_x86_64_cygwin
|
||||
else abort "unsupported system type: ${system}";
|
||||
|
||||
pkgsFor = pkgsForCross null;
|
||||
|
||||
|
||||
# More poor man's memoisation
|
||||
pkgsForCross = let
|
||||
examplesByConfig = lib.flip lib.mapAttrs'
|
||||
lib.systems.examples
|
||||
(_: crossSystem: nameValuePair crossSystem.config {
|
||||
inherit crossSystem;
|
||||
pkgsFor = mkPkgsFor crossSystem;
|
||||
});
|
||||
native = mkPkgsFor null;
|
||||
in crossSystem: let
|
||||
candidate = examplesByConfig.${crossSystem.config} or null;
|
||||
in if crossSystem == null
|
||||
then native
|
||||
else if candidate != null && lib.matchAttrs crossSystem candidate.crossSystem
|
||||
then candidate.pkgsFor
|
||||
else mkPkgsFor crossSystem; # uncached fallback
|
||||
|
||||
|
||||
# Given a list of 'meta.platforms'-style patterns, return the sublist of
|
||||
# `supportedSystems` containing systems that matches at least one of the given
|
||||
# patterns.
|
||||
#
|
||||
# This is written in a funny way so that we only elaborate the systems once.
|
||||
supportedMatches = let
|
||||
supportedPlatforms = map
|
||||
(system: lib.systems.elaborate { inherit system; })
|
||||
supportedSystems;
|
||||
in metaPatterns: let
|
||||
anyMatch = platform:
|
||||
lib.any (lib.meta.platformMatch platform) metaPatterns;
|
||||
matchingPlatforms = lib.filter anyMatch supportedPlatforms;
|
||||
in map ({ system, ...}: system) matchingPlatforms;
|
||||
|
||||
|
||||
assertTrue = bool:
|
||||
if bool
|
||||
then pkgs.runCommand "evaluated-to-true" {} "touch $out"
|
||||
else pkgs.runCommand "evaluated-to-false" {} "false";
|
||||
|
||||
|
||||
/* The working or failing mails for cross builds will be sent only to
|
||||
the following maintainers, as most package maintainers will not be
|
||||
interested in the result of cross building a package. */
|
||||
crossMaintainers = [ maintainers.viric ];
|
||||
|
||||
|
||||
# Generate attributes for all supported systems.
|
||||
forAllSystems = genAttrs supportedSystems;
|
||||
|
||||
|
||||
# Generate attributes for all systems matching at least one of the given
|
||||
# patterns
|
||||
forMatchingSystems = metaPatterns: genAttrs (supportedMatches metaPatterns);
|
||||
|
||||
|
||||
/* Build a package on the given set of platforms. The function `f'
|
||||
is called for each supported platform with Nixpkgs for that
|
||||
platform as an argument . We return an attribute set containing
|
||||
a derivation for each supported platform, i.e. ‘{ x86_64-linux =
|
||||
f pkgs_x86_64_linux; i686-linux = f pkgs_i686_linux; ... }’. */
|
||||
testOn = testOnCross null;
|
||||
|
||||
|
||||
/* Similar to the testOn function, but with an additional
|
||||
'crossSystem' parameter for packageSet', defining the target
|
||||
platform for cross builds. */
|
||||
testOnCross = crossSystem: metaPatterns: f: forMatchingSystems metaPatterns
|
||||
(system: hydraJob' (f (pkgsForCross crossSystem system)));
|
||||
|
||||
|
||||
/* Given a nested set where the leaf nodes are lists of platforms,
|
||||
map each leaf node to `testOn [platforms...] (pkgs:
|
||||
pkgs.<attrPath>)'. */
|
||||
mapTestOn = _mapTestOnHelper id null;
|
||||
|
||||
|
||||
_mapTestOnHelper = f: crossSystem: mapAttrsRecursive
|
||||
(path: metaPatterns: testOnCross crossSystem metaPatterns
|
||||
(pkgs: f (getAttrFromPath path pkgs)));
|
||||
|
||||
|
||||
/* Similar to the testOn function, but with an additional 'crossSystem'
|
||||
* parameter for packageSet', defining the target platform for cross builds,
|
||||
* and triggering the build of the host derivation. */
|
||||
mapTestOnCross = _mapTestOnHelper
|
||||
(addMetaAttrs { maintainers = crossMaintainers; });
|
||||
|
||||
|
||||
/* Recursively map a (nested) set of derivations to an isomorphic
|
||||
set of meta.platforms values. */
|
||||
packagePlatforms = mapAttrs (name: value:
|
||||
if isDerivation value then
|
||||
value.meta.hydraPlatforms
|
||||
or (value.meta.platforms or [ "x86_64-linux" ])
|
||||
else if value.recurseForDerivations or false || value.recurseForRelease or false then
|
||||
packagePlatforms value
|
||||
else
|
||||
[]
|
||||
);
|
||||
|
||||
|
||||
/* Common platform groups on which to test packages. */
|
||||
inherit (platforms) unix linux darwin cygwin all mesaPlatforms;
|
||||
|
||||
}
|
||||
48
pkgs/top-level/release-python.nix
Normal file
48
pkgs/top-level/release-python.nix
Normal file
|
|
@ -0,0 +1,48 @@
|
|||
/*
|
||||
test for example like this
|
||||
$ hydra-eval-jobs pkgs/top-level/release-python.nix
|
||||
*/
|
||||
|
||||
{ # The platforms for which we build Nixpkgs.
|
||||
supportedSystems ? [
|
||||
"aarch64-linux"
|
||||
"x86_64-linux"
|
||||
]
|
||||
, # Attributes passed to nixpkgs. Don't build packages marked as unfree.
|
||||
nixpkgsArgs ? { config = { allowUnfree = false; inHydra = true; }; }
|
||||
}:
|
||||
|
||||
with import ./release-lib.nix {inherit supportedSystems nixpkgsArgs; };
|
||||
with lib;
|
||||
|
||||
let
|
||||
packagePython = mapAttrs (name: value:
|
||||
let res = builtins.tryEval (
|
||||
if isDerivation value then
|
||||
value.meta.isBuildPythonPackage or []
|
||||
else if value.recurseForDerivations or false || value.recurseForRelease or false then
|
||||
packagePython value
|
||||
else
|
||||
[]);
|
||||
in if res.success then res.value else []
|
||||
);
|
||||
|
||||
jobs = {
|
||||
lib-tests = import ../../lib/tests/release.nix { inherit pkgs; };
|
||||
pkgs-lib-tests = import ../pkgs-lib/tests { inherit pkgs; };
|
||||
|
||||
tested = pkgs.releaseTools.aggregate {
|
||||
name = "python-tested";
|
||||
meta.description = "Release-critical packages from the python package sets";
|
||||
constituents = [
|
||||
jobs.remarshal.x86_64-linux # Used in pkgs.formats helper
|
||||
jobs.python39Packages.buildcatrust.x86_64-linux # Used in pkgs.cacert
|
||||
jobs.python39Packages.colorama.x86_64-linux # Used in nixos test-driver
|
||||
jobs.python39Packages.ptpython.x86_64-linux # Used in nixos test-driver
|
||||
jobs.python39Packages.requests.x86_64-linux # Almost ubiquous package
|
||||
jobs.python39Packages.sphinx.x86_64-linux # Document creation for many packages
|
||||
];
|
||||
};
|
||||
|
||||
} // (mapTestOn (packagePython pkgs));
|
||||
in jobs
|
||||
13
pkgs/top-level/release-r.nix
Normal file
13
pkgs/top-level/release-r.nix
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
/*
|
||||
This is the Hydra jobset for the `r-updates` branch in Nixpkgs.
|
||||
The jobset can be tested by:
|
||||
|
||||
$ hydra-eval-jobs -I . pkgs/top-level/release-r.nix
|
||||
*/
|
||||
{ supportedSystems ? [ "x86_64-linux" "aarch64-linux" ] }:
|
||||
|
||||
with import ./release-lib.nix { inherit supportedSystems; };
|
||||
|
||||
mapTestOn {
|
||||
rPackages = packagePlatforms pkgs.rPackages;
|
||||
}
|
||||
154
pkgs/top-level/release-small.nix
Normal file
154
pkgs/top-level/release-small.nix
Normal file
|
|
@ -0,0 +1,154 @@
|
|||
/* A small release file, with few packages to be built. The aim is to reduce
|
||||
the load on Hydra when testing the `stdenv-updates' branch. */
|
||||
|
||||
{ nixpkgs ? { outPath = (import ../../lib).cleanSource ../..; revCount = 1234; shortRev = "abcdef"; }
|
||||
, supportedSystems ? [ "x86_64-linux" "x86_64-darwin" ]
|
||||
, # Attributes passed to nixpkgs. Don't build packages marked as unfree.
|
||||
nixpkgsArgs ? { config = { allowUnfree = false; inHydra = true; }; }
|
||||
}:
|
||||
|
||||
with import ./release-lib.nix { inherit supportedSystems nixpkgsArgs; };
|
||||
|
||||
{
|
||||
|
||||
tarball = import ./make-tarball.nix {
|
||||
inherit nixpkgs supportedSystems;
|
||||
officialRelease = false;
|
||||
};
|
||||
|
||||
} // (mapTestOn ({
|
||||
|
||||
aspell = all;
|
||||
at = linux;
|
||||
autoconf = all;
|
||||
automake = all;
|
||||
avahi = unix; # Cygwin builds fail
|
||||
bash = all;
|
||||
bashInteractive = all;
|
||||
bc = all;
|
||||
binutils = linux;
|
||||
bind = linux;
|
||||
bsdiff = all;
|
||||
bzip2 = all;
|
||||
cmake = all;
|
||||
coreutils = all;
|
||||
cpio = all;
|
||||
cron = linux;
|
||||
cups = linux;
|
||||
dbus = linux;
|
||||
dhcp = linux;
|
||||
diffutils = all;
|
||||
e2fsprogs = linux;
|
||||
emacs = linux;
|
||||
file = all;
|
||||
findutils = all;
|
||||
flex = all;
|
||||
gcc = all;
|
||||
glibc = linux;
|
||||
glibcLocales = linux;
|
||||
gnugrep = all;
|
||||
gnum4 = all;
|
||||
gnumake = all;
|
||||
gnupatch = all;
|
||||
gnupg = linux;
|
||||
gnuplot = unix; # Cygwin builds fail
|
||||
gnused = all;
|
||||
gnutar = all;
|
||||
gnutls = linux;
|
||||
grub = linux;
|
||||
grub2 = linux;
|
||||
guile = linux; # tests fail on Cygwin
|
||||
gzip = all;
|
||||
hddtemp = linux;
|
||||
hdparm = linux;
|
||||
hello = all;
|
||||
host = linux;
|
||||
iana-etc = linux;
|
||||
icewm = linux;
|
||||
idutils = all;
|
||||
inetutils = linux;
|
||||
iputils = linux;
|
||||
kvm = linux;
|
||||
qemu = linux;
|
||||
qemu_kvm = linux;
|
||||
lapack-reference = linux;
|
||||
less = all;
|
||||
lftp = all;
|
||||
libtool = all;
|
||||
libtool_2 = all;
|
||||
libxml2 = all;
|
||||
libxslt = all;
|
||||
lout = linux;
|
||||
lsh = linux;
|
||||
lsof = linux;
|
||||
ltrace = linux;
|
||||
lvm2 = linux;
|
||||
lynx = linux;
|
||||
xz = linux;
|
||||
man = linux;
|
||||
man-pages = linux;
|
||||
mc = all;
|
||||
mdadm = linux;
|
||||
mesa = mesaPlatforms;
|
||||
mingetty = linux;
|
||||
mktemp = all;
|
||||
monotone = linux;
|
||||
mutt = linux;
|
||||
mysql = linux;
|
||||
# netcat broken on darwin
|
||||
netcat = linux;
|
||||
nfs-utils = linux;
|
||||
nix = all;
|
||||
nixUnstable = all;
|
||||
nss_ldap = linux;
|
||||
nssmdns = linux;
|
||||
ntfs3g = linux;
|
||||
ntp = linux;
|
||||
openssh = linux;
|
||||
openssl = all;
|
||||
pan = linux;
|
||||
pciutils = linux;
|
||||
pdf2xml = all;
|
||||
perl = all;
|
||||
pkg-config = all;
|
||||
pmccabe = linux;
|
||||
procps = linux;
|
||||
python3 = unix; # Cygwin builds fail
|
||||
readline = all;
|
||||
rlwrap = all;
|
||||
rpcbind = linux;
|
||||
rsync = linux;
|
||||
screen = linux ++ darwin;
|
||||
scrot = linux;
|
||||
sdparm = linux;
|
||||
smartmontools = all;
|
||||
sqlite = unix; # Cygwin builds fail
|
||||
squid = linux;
|
||||
msmtp = linux;
|
||||
stdenv = all;
|
||||
strace = linux;
|
||||
su = linux;
|
||||
sudo = linux;
|
||||
sysklogd = linux;
|
||||
syslinux = ["i686-linux"];
|
||||
tcl = linux;
|
||||
tcpdump = linux;
|
||||
texinfo = all;
|
||||
time = linux;
|
||||
tinycc = linux;
|
||||
udev = linux;
|
||||
unzip = all;
|
||||
usbutils = linux;
|
||||
util-linux = linux;
|
||||
util-linuxMinimal = linux;
|
||||
w3m = all;
|
||||
webkitgtk = linux;
|
||||
wget = all;
|
||||
which = all;
|
||||
wirelesstools = linux;
|
||||
wpa_supplicant = linux;
|
||||
xfsprogs = linux;
|
||||
xkeyboard_config = linux;
|
||||
zip = all;
|
||||
|
||||
} ))
|
||||
221
pkgs/top-level/release.nix
Normal file
221
pkgs/top-level/release.nix
Normal file
|
|
@ -0,0 +1,221 @@
|
|||
/* This file defines the builds that constitute the Nixpkgs.
|
||||
Everything defined here ends up in the Nixpkgs channel. Individual
|
||||
jobs can be tested by running:
|
||||
|
||||
$ nix-build pkgs/top-level/release.nix -A <jobname>.<system>
|
||||
|
||||
e.g.
|
||||
|
||||
$ nix-build pkgs/top-level/release.nix -A coreutils.x86_64-linux
|
||||
*/
|
||||
{ nixpkgs ? { outPath = (import ../../lib).cleanSource ../..; revCount = 1234; shortRev = "abcdef"; revision = "0000000000000000000000000000000000000000"; }
|
||||
, officialRelease ? false
|
||||
# The platforms for which we build Nixpkgs.
|
||||
, supportedSystems ? [ "x86_64-linux" "x86_64-darwin" "aarch64-linux" ]
|
||||
, limitedSupportedSystems ? [ "i686-linux" ]
|
||||
# Strip most of attributes when evaluating to spare memory usage
|
||||
, scrubJobs ? true
|
||||
# Attributes passed to nixpkgs. Don't build packages marked as unfree.
|
||||
, nixpkgsArgs ? { config = { allowUnfree = false; inHydra = true; }; }
|
||||
}:
|
||||
|
||||
with import ./release-lib.nix { inherit supportedSystems scrubJobs nixpkgsArgs; };
|
||||
|
||||
let
|
||||
|
||||
systemsWithAnySupport = supportedSystems ++ limitedSupportedSystems;
|
||||
|
||||
supportDarwin = lib.genAttrs [
|
||||
"x86_64"
|
||||
"aarch64"
|
||||
] (arch: builtins.elem "${arch}-darwin" systemsWithAnySupport);
|
||||
|
||||
jobs =
|
||||
{ tarball = import ./make-tarball.nix { inherit pkgs nixpkgs officialRelease supportedSystems; };
|
||||
|
||||
metrics = import ./metrics.nix { inherit pkgs nixpkgs; };
|
||||
|
||||
manual = import ../../doc { inherit pkgs nixpkgs; };
|
||||
lib-tests = import ../../lib/tests/release.nix { inherit pkgs; };
|
||||
pkgs-lib-tests = import ../pkgs-lib/tests { inherit pkgs; };
|
||||
|
||||
darwin-tested = if supportDarwin.x86_64 then pkgs.releaseTools.aggregate
|
||||
{ name = "nixpkgs-darwin-${jobs.tarball.version}";
|
||||
meta.description = "Release-critical builds for the Nixpkgs darwin channel";
|
||||
constituents =
|
||||
[ jobs.tarball
|
||||
jobs.cabal2nix.x86_64-darwin
|
||||
jobs.ghc.x86_64-darwin
|
||||
jobs.git.x86_64-darwin
|
||||
jobs.go.x86_64-darwin
|
||||
jobs.mariadb.x86_64-darwin
|
||||
jobs.nix.x86_64-darwin
|
||||
jobs.nixpkgs-review.x86_64-darwin
|
||||
jobs.nix-info.x86_64-darwin
|
||||
jobs.nix-info-tested.x86_64-darwin
|
||||
jobs.openssh.x86_64-darwin
|
||||
jobs.openssl.x86_64-darwin
|
||||
jobs.pandoc.x86_64-darwin
|
||||
jobs.postgresql.x86_64-darwin
|
||||
jobs.python3.x86_64-darwin
|
||||
jobs.ruby.x86_64-darwin
|
||||
jobs.rustc.x86_64-darwin
|
||||
# blocking ofBorg CI 2020-02-28
|
||||
# jobs.stack.x86_64-darwin
|
||||
jobs.stdenv.x86_64-darwin
|
||||
jobs.vim.x86_64-darwin
|
||||
jobs.cachix.x86_64-darwin
|
||||
|
||||
# UI apps
|
||||
# jobs.firefox-unwrapped.x86_64-darwin
|
||||
jobs.qt5.qtmultimedia.x86_64-darwin
|
||||
jobs.inkscape.x86_64-darwin
|
||||
jobs.gimp.x86_64-darwin
|
||||
jobs.emacs.x86_64-darwin
|
||||
jobs.wireshark.x86_64-darwin
|
||||
jobs.transmission-gtk.x86_64-darwin
|
||||
|
||||
# Tests
|
||||
/*
|
||||
jobs.tests.cc-wrapper.x86_64-darwin
|
||||
jobs.tests.cc-wrapper-clang.x86_64-darwin
|
||||
jobs.tests.cc-wrapper-libcxx.x86_64-darwin
|
||||
jobs.tests.stdenv-inputs.x86_64-darwin
|
||||
jobs.tests.macOSSierraShared.x86_64-darwin
|
||||
jobs.tests.patch-shebangs.x86_64-darwin
|
||||
*/
|
||||
];
|
||||
} else null;
|
||||
|
||||
unstable = pkgs.releaseTools.aggregate
|
||||
{ name = "nixpkgs-${jobs.tarball.version}";
|
||||
meta.description = "Release-critical builds for the Nixpkgs unstable channel";
|
||||
constituents =
|
||||
[ jobs.tarball
|
||||
jobs.metrics
|
||||
jobs.manual
|
||||
jobs.lib-tests
|
||||
jobs.pkgs-lib-tests
|
||||
jobs.stdenv.x86_64-linux
|
||||
jobs.cargo.x86_64-linux
|
||||
jobs.go.x86_64-linux
|
||||
jobs.linux.x86_64-linux
|
||||
jobs.pandoc.x86_64-linux
|
||||
jobs.python3.x86_64-linux
|
||||
# Needed by contributors to test PRs (by inclusion of the PR template)
|
||||
jobs.nixpkgs-review.x86_64-linux
|
||||
# Needed for support
|
||||
jobs.nix-info.x86_64-linux
|
||||
jobs.nix-info-tested.x86_64-linux
|
||||
# Ensure that X11/GTK are in order.
|
||||
jobs.firefox-unwrapped.x86_64-linux
|
||||
jobs.cachix.x86_64-linux
|
||||
|
||||
/*
|
||||
jobs.tests.cc-wrapper.x86_64-linux
|
||||
jobs.tests.cc-wrapper-gcc7.x86_64-linux
|
||||
jobs.tests.cc-wrapper-gcc8.x86_64-linux
|
||||
|
||||
# broken see issue #40038
|
||||
|
||||
jobs.tests.cc-wrapper-clang.x86_64-linux
|
||||
jobs.tests.cc-wrapper-libcxx.x86_64-linux
|
||||
jobs.tests.cc-wrapper-clang-5.x86_64-linux
|
||||
jobs.tests.cc-wrapper-libcxx-5.x86_64-linux
|
||||
jobs.tests.cc-wrapper-clang-6.x86_64-linux
|
||||
jobs.tests.cc-wrapper-libcxx-6.x86_64-linux
|
||||
jobs.tests.cc-multilib-gcc.x86_64-linux
|
||||
jobs.tests.cc-multilib-clang.x86_64-linux
|
||||
jobs.tests.stdenv-inputs.x86_64-linux
|
||||
jobs.tests.patch-shebangs.x86_64-linux
|
||||
*/
|
||||
]
|
||||
++ lib.collect lib.isDerivation jobs.stdenvBootstrapTools
|
||||
++ lib.optionals supportDarwin.x86_64 [
|
||||
jobs.stdenv.x86_64-darwin
|
||||
jobs.cargo.x86_64-darwin
|
||||
jobs.cachix.x86_64-darwin
|
||||
jobs.go.x86_64-darwin
|
||||
jobs.python3.x86_64-darwin
|
||||
jobs.nixpkgs-review.x86_64-darwin
|
||||
jobs.nix-info.x86_64-darwin
|
||||
jobs.nix-info-tested.x86_64-darwin
|
||||
jobs.git.x86_64-darwin
|
||||
jobs.mariadb.x86_64-darwin
|
||||
jobs.vim.x86_64-darwin
|
||||
jobs.inkscape.x86_64-darwin
|
||||
jobs.qt5.qtmultimedia.x86_64-darwin
|
||||
/*
|
||||
jobs.tests.cc-wrapper.x86_64-darwin
|
||||
jobs.tests.cc-wrapper-gcc7.x86_64-darwin
|
||||
# jobs.tests.cc-wrapper-gcc8.x86_64-darwin
|
||||
jobs.tests.cc-wrapper-clang.x86_64-darwin
|
||||
jobs.tests.cc-wrapper-libcxx.x86_64-darwin
|
||||
jobs.tests.cc-wrapper-clang-5.x86_64-darwin
|
||||
jobs.tests.cc-wrapper-libcxx-6.x86_64-darwin
|
||||
jobs.tests.cc-wrapper-clang-6.x86_64-darwin
|
||||
jobs.tests.cc-wrapper-libcxx-6.x86_64-darwin
|
||||
jobs.tests.stdenv-inputs.x86_64-darwin
|
||||
jobs.tests.macOSSierraShared.x86_64-darwin
|
||||
jobs.tests.patch-shebangs.x86_64-darwin
|
||||
*/
|
||||
];
|
||||
};
|
||||
|
||||
stdenvBootstrapTools = with lib;
|
||||
genAttrs systemsWithAnySupport
|
||||
(system: {
|
||||
inherit
|
||||
(import ../stdenv/linux/make-bootstrap-tools.nix {
|
||||
localSystem = { inherit system; };
|
||||
})
|
||||
dist test;
|
||||
})
|
||||
# darwin is special in this
|
||||
// optionalAttrs supportDarwin.x86_64 {
|
||||
x86_64-darwin =
|
||||
let
|
||||
bootstrap = import ../stdenv/darwin/make-bootstrap-tools.nix { system = "x86_64-darwin"; };
|
||||
in {
|
||||
# Lightweight distribution and test
|
||||
inherit (bootstrap) dist test;
|
||||
# Test a full stdenv bootstrap from the bootstrap tools definition
|
||||
inherit (bootstrap.test-pkgs) stdenv;
|
||||
};
|
||||
} // optionalAttrs supportDarwin.aarch64 {
|
||||
# Cross compiled bootstrap tools
|
||||
aarch64-darwin =
|
||||
let
|
||||
bootstrap = import ../stdenv/darwin/make-bootstrap-tools.nix { system = "x86_64-darwin"; crossSystem = "aarch64-darwin"; };
|
||||
in {
|
||||
# Distribution only for now
|
||||
inherit (bootstrap) dist;
|
||||
};
|
||||
};
|
||||
|
||||
} // (mapTestOn ((packagePlatforms pkgs) // {
|
||||
haskell.compiler = packagePlatforms pkgs.haskell.compiler;
|
||||
haskellPackages = packagePlatforms pkgs.haskellPackages;
|
||||
idrisPackages = packagePlatforms pkgs.idrisPackages;
|
||||
agdaPackages = packagePlatforms pkgs.agdaPackages;
|
||||
|
||||
pkgsLLVM.stdenv = [ "x86_64-linux" "aarch64-linux" ];
|
||||
pkgsMusl.stdenv = [ "x86_64-linux" "aarch64-linux" ];
|
||||
pkgsStatic.stdenv = [ "x86_64-linux" "aarch64-linux" ];
|
||||
|
||||
tests = packagePlatforms pkgs.tests;
|
||||
|
||||
# Language packages disabled in https://github.com/NixOS/nixpkgs/commit/ccd1029f58a3bb9eca32d81bf3f33cb4be25cc66
|
||||
|
||||
#emacsPackages = packagePlatforms pkgs.emacsPackages;
|
||||
#rPackages = packagePlatforms pkgs.rPackages;
|
||||
ocamlPackages = { };
|
||||
perlPackages = { };
|
||||
|
||||
darwin = packagePlatforms pkgs.darwin // {
|
||||
cf-private = {};
|
||||
xcode = {};
|
||||
};
|
||||
} ));
|
||||
|
||||
in jobs
|
||||
3132
pkgs/top-level/ruby-packages.nix
Normal file
3132
pkgs/top-level/ruby-packages.nix
Normal file
File diff suppressed because it is too large
Load diff
137
pkgs/top-level/splice.nix
Normal file
137
pkgs/top-level/splice.nix
Normal file
|
|
@ -0,0 +1,137 @@
|
|||
# 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
|
||||
# `nativeDrv` field for the build-time version, and `crossDrv` field for the
|
||||
# run-time version.
|
||||
#
|
||||
# We could have used any names we want for the disambiguated versions, but
|
||||
# `crossDrv` and `nativeDrv` were somewhat similarly used for the old
|
||||
# cross-compiling infrastructure. The names are mostly invisible as
|
||||
# `mkDerivation` knows how to pull out the right ones for `buildDepends` and
|
||||
# friends, but a few packages use them directly, so it seemed efficient (to
|
||||
# @Ericson2314) to reuse those names, at least initially, to minimize breakage.
|
||||
#
|
||||
# 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
|
||||
# TODO(@Ericson2314): Stop using old names after transition period
|
||||
// (lib.optionalAttrs (pkgsBuildHost ? ${name}) { nativeDrv = valueBuildHost; })
|
||||
// (lib.optionalAttrs (pkgsHostTarget ? ${name}) { crossDrv = valueHostTarget; })
|
||||
// {
|
||||
__spliced =
|
||||
(lib.optionalAttrs (pkgsBuildBuild ? ${name}) { buildBuild = valueBuildBuild; })
|
||||
// (lib.optionalAttrs (pkgsBuildTarget ? ${name}) { buildTarget = valueBuildTarget; })
|
||||
// (lib.optionalAttrs (pkgsHostHost ? ${name}) { hostHost = valueHostHost; })
|
||||
// (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);
|
||||
|
||||
# Haskell package sets need this because they reimplement their own
|
||||
# `newScope`.
|
||||
__splicedPackages = splicedPackages // { recurseForDerivations = false; };
|
||||
}
|
||||
284
pkgs/top-level/stage.nix
Normal file
284
pkgs/top-level/stage.nix
Normal file
|
|
@ -0,0 +1,284 @@
|
|||
/* 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`. */
|
||||
|
||||
|
||||
{ ## 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;
|
||||
# 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.nix {
|
||||
inherit lib;
|
||||
inherit (self) runtimeShell stdenv stdenvNoCC;
|
||||
inherit (self.pkgsBuildHost) shellcheck;
|
||||
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;
|
||||
};
|
||||
|
||||
# The old identifiers for cross-compiling. These should eventually be removed,
|
||||
# and the packages that rely on them refactored accordingly.
|
||||
platformCompat = self: super: let
|
||||
inherit (super.stdenv) buildPlatform hostPlatform targetPlatform;
|
||||
in {
|
||||
inherit buildPlatform hostPlatform targetPlatform;
|
||||
};
|
||||
|
||||
splice = self: super: import ./splice.nix lib self (adjacentPackages != null);
|
||||
|
||||
allPackages = self: super:
|
||||
let res = import ./all-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);
|
||||
|
||||
# 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.<system> 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.
|
||||
pkgsMusl = if stdenv.hostPlatform.isLinux 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 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.";
|
||||
|
||||
# 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;
|
||||
} // lib.optionalAttrs stdenv.hostPlatform.isLinux {
|
||||
crossSystem = {
|
||||
isStatic = true;
|
||||
parsed = makeMuslParsedPlatform stdenv.hostPlatform.parsed;
|
||||
} // lib.optionalAttrs (stdenv.hostPlatform.system == "powerpc64-linux") {
|
||||
gcc.abi = "elfv2";
|
||||
};
|
||||
});
|
||||
};
|
||||
|
||||
# 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
|
||||
platformCompat
|
||||
stdenvAdapters
|
||||
trivialBuilders
|
||||
splice
|
||||
allPackages
|
||||
otherPackageSets
|
||||
aliases
|
||||
configOverrides
|
||||
] ++ overlays ++ [
|
||||
stdenvOverrides ]);
|
||||
|
||||
in
|
||||
# Return the complete set of packages.
|
||||
lib.fix toFix
|
||||
196
pkgs/top-level/unixtools.nix
Normal file
196
pkgs/top-level/unixtools.nix
Normal file
|
|
@ -0,0 +1,196 @@
|
|||
{ pkgs, buildEnv, runCommand, lib, stdenv }:
|
||||
|
||||
# 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.
|
||||
|
||||
with lib;
|
||||
|
||||
let
|
||||
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 = lib.platforms.${stdenv.hostPlatform.parsed.kernel.name} or lib.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.netbsd.column;
|
||||
};
|
||||
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
|
||||
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.netbsd.locale;
|
||||
};
|
||||
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 ../os-specific/linux/procps-ng {};
|
||||
};
|
||||
write = {
|
||||
linux = pkgs.util-linux;
|
||||
darwin = pkgs.darwin.basic_cmds;
|
||||
};
|
||||
xxd = {
|
||||
linux = pkgs.vim;
|
||||
darwin = pkgs.vim;
|
||||
};
|
||||
};
|
||||
|
||||
makeCompat = pname: paths:
|
||||
buildEnv {
|
||||
name = "${pname}-${version}";
|
||||
inherit paths;
|
||||
};
|
||||
|
||||
# Compatibility derivations
|
||||
# Provided for old usage of these commands.
|
||||
compat = with bins; lib.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
|
||||
60
pkgs/top-level/wine-packages.nix
Normal file
60
pkgs/top-level/wine-packages.nix
Normal file
|
|
@ -0,0 +1,60 @@
|
|||
{ stdenv, config, callPackage, wineBuild }:
|
||||
|
||||
rec {
|
||||
fonts = callPackage ../applications/emulators/wine/fonts.nix {};
|
||||
minimal = callPackage ../applications/emulators/wine {
|
||||
wineRelease = config.wine.release or "stable";
|
||||
inherit wineBuild;
|
||||
};
|
||||
|
||||
base = minimal.override {
|
||||
gettextSupport = true;
|
||||
fontconfigSupport = stdenv.isLinux;
|
||||
alsaSupport = stdenv.isLinux;
|
||||
openglSupport = true;
|
||||
# Works on Darwin but disabled by default to prevent Hydra build failures due to MoltenVK.
|
||||
vulkanSupport = stdenv.isLinux;
|
||||
tlsSupport = true;
|
||||
cupsSupport = true;
|
||||
dbusSupport = stdenv.isLinux;
|
||||
cairoSupport = stdenv.isLinux;
|
||||
cursesSupport = true;
|
||||
saneSupport = stdenv.isLinux;
|
||||
pulseaudioSupport = config.pulseaudio or stdenv.isLinux;
|
||||
udevSupport = stdenv.isLinux;
|
||||
xineramaSupport = stdenv.isLinux;
|
||||
sdlSupport = true;
|
||||
mingwSupport = true;
|
||||
usbSupport = true;
|
||||
};
|
||||
|
||||
full = base.override {
|
||||
gtkSupport = stdenv.isLinux;
|
||||
gstreamerSupport = true;
|
||||
openalSupport = true;
|
||||
openclSupport = true;
|
||||
odbcSupport = true;
|
||||
netapiSupport = stdenv.isLinux;
|
||||
vaSupport = stdenv.isLinux;
|
||||
pcapSupport = true;
|
||||
v4lSupport = stdenv.isLinux;
|
||||
gphoto2Support = true;
|
||||
krb5Support = true;
|
||||
ldapSupport = true;
|
||||
# Works on Darwin but disabled by default to prevent Hydra build failures due to MoltenVK.
|
||||
vkd3dSupport = stdenv.isLinux;
|
||||
embedInstallers = true;
|
||||
};
|
||||
|
||||
stable = base.override { wineRelease = "stable"; };
|
||||
stableFull = full.override { wineRelease = "stable"; };
|
||||
|
||||
unstable = base.override { wineRelease = "unstable"; };
|
||||
unstableFull = full.override { wineRelease = "unstable"; };
|
||||
|
||||
staging = base.override { wineRelease = "staging"; };
|
||||
stagingFull = full.override { wineRelease = "staging"; };
|
||||
|
||||
wayland = base.override { wineRelease = "wayland"; };
|
||||
waylandFull = full.override { wineRelease = "wayland"; };
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue