summary refs log tree commit diff
path: root/pkgs/top-level/release-lib.nix
Commit message (Collapse)AuthorAge
* release-lib: Fix `pkgsFor`John Ericson2018-11-05
|
* release-lib: Fallback on uncached rather than error for unknown crossSystemJohn Ericson2018-11-01
| | | | | The `ensureUnaffected` the tests purposefully use an absurd crossSystem. Also sheevaplug and pogoplug share the same config.
* release-lib: Cache cross nixpkgs evals tooJohn Ericson2018-11-01
| | | | | This will help with release-cross.nix eval time. It also allowed me to share code between the cross and native helpers.
* lib: Messed up `or` operator precedenceJohn Ericson2018-03-19
| | | | | Github broke oddly on my previous PR, so I tested and merged by hand. Otherwise ofborg would have caught this.
* release-lib: Filter supportedSystems with `meta.platforms`-style patternsJohn Ericson2018-03-19
| | | | | | | | | | | | | Instead of intersecting system strings, we filter with the sort of patterns used in `meta.platforms`. Indicating this change `forTheseSystems` has been renamed to `forMatchingSystems`, since the given list is now patterns to match, and not the systems themselves. [Just as with `meta.platforms`, systems strings are also supported for backwards compatibility.] This is more flexible, and makes the `forMatchingSystems` and packagePlatforms` cases more analogous.
* lib: Factor in tiny bit of `meta.platform` checkingJohn Ericson2018-03-19
| | | | I need it in stdenv and release-lib, so that seems motivation enough.
* release-lib: Adapt to work with new meta.platformsJohn Ericson2018-03-15
| | | | | `packagePlatforms` now filters `supportedSystems` with the new-style `meta.platforms`, rather than just plopping it in as is.
* treewide: get rid of platforms.allButJohn Ericson2018-03-14
| | | | | | | Negative reasoning like `allBut` is a bad idea with an open world of platforms. Concretely, if we add a new, quite different sort of platform, existing packages with `allBut` will claim they work on it even though they probably won't.
* nixos/release.nix: Move forAllSystems to release-libTuomas Tynkkynen2018-01-16
| | | | | There's already a similar forTheseSystems in release-lib, so be more consistent.
* release-lib: forAllSupportedSystems -> forTheseSystemsTuomas Tynkkynen2018-01-16
| | | | | I'm going to move forAllSystems from nixos/release.nix, and these functions sound too similar while doing different things.
* pkgs/release-lib: evaluate nixpkgs on armv6l and armv7l (#32641)Ben Wolsieffer2017-12-31
|
* nixpkgs release: Fix Darwin-only jobsTuomas Tynkkynen2017-08-12
| | | | | | | | | | | | | | | | Currently the logic of generating nixpkgs Hydra jobs is to walk through the pkgs evaluated for system = "x86_64-linux", collect any derivations and their meta.platforms values. However, that doesn't work for packages whose meta.platforms doesn't include x86_64-linux, as just evaluating their meta attribute raises an error so they get skipped completely. As a less-intrusive fix (i.e. anything than rewriting the current package enumeration logic), allow passing `config.allowUnsupportedSystem = true` to permit evaluating packages regardless of their platform and use that in the package listing phase. Fixes #25200
* Merge pull request #24610 from Ericson2314/platform-normalizationJohn Ericson2017-04-17
|\ | | | | Platform normalization
| * lib: Fix system parsing, and use for doubles listsJohn Ericson2017-04-17
| | | | | | | | | | | | | | The old hard-coded lists are now used to test system parsing. In the process, make an `assertTrue` in release lib for eval tests; also use it in release-cross
| * top-level: Less indirection for lib in release*.nixJohn Ericson2017-04-17
| |
* | release(-lib).nix: add nixpkgsArgs parameterBjørn Forsman2017-04-11
|/ | | | | | | | This allows customizing the nixpkgs arguments by the caller. My use case is creating a personal nixpkgs channel containing some unfree packages. The default is still to not build unfree packages, so for nixpkgs this is no functional change.
* nixpkgs: add aarch64-linux to release-libFranz Pletz2017-03-08
| | | | cc #23638
* top-level: no more need to expose `splicedPackages`John Ericson2017-01-25
| | | | | This was just done temporarily on the last cross-overhauling PR for testing purposes.
* top-level: Introduce `buildPackages` for resolving build-time depsJohn Ericson2017-01-24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | [N.B., this package also applies to the commits that follow it in the same PR.] In most cases, buildPackages = pkgs so things work just as before. For cross compiling, however, buildPackages is resolved as the previous bootstrapping stage. This allows us to avoid the mkDerivation hacks cross compiling currently uses today. To avoid a massive refactor, callPackage will splice together both package sets. Again to avoid churn, it uses the old `nativeDrv` vs `crossDrv` to do so. So now, whether cross compiling or not, packages with get a `nativeDrv` and `crossDrv`---in the non-cross-compiling case they are simply the same derivation. This is good because it reduces the divergence between the cross and non-cross dataflow. See `pkgs/top-level/splice.nix` for a comment along the lines of the preceding paragraph, and the code that does this splicing. Also, `forceNativeDrv` is replaced with `forceNativePackages`. The latter resolves `pkgs` unless the host platform is different from the build platform, in which case it resolves to `buildPackages`. Note that the target platform is not important here---it will not prevent `forcedNativePackages` from resolving to `pkgs`. -------- Temporarily, we make preserve some dubious decisions in the name of preserving hashes: Most importantly, we don't distinguish between "host" and "target" in the autoconf sense. This leads to the proliferation of *Cross derivations currently used. What we ought to is resolve native deps of the cross "build packages" (build = host != target) package set against the "vanilla packages" (build = host = target) package set. Instead, "build packages" uses itself, with (informally) target != build in all cases. This is wrong because it violates the "sliding window" principle of bootstrapping stages that shifting the platform triple of one stage to the left coincides with the next stage's platform triple. Only because we don't explicitly distinguish between "host" and "target" does it appear that the "sliding window" principle is preserved--indeed it is over the reductionary "platform double" of just "build" and "host/target". Additionally, we build libc, libgcc, etc in the same stage as the compilers themselves, which is wrong because they are used at runtime, not build time. Fixing this is somewhat subtle, and the solution and problem will be better explained in the commit that does fix it. Commits after this will solve both these issues, at the expense of breaking cross hashes. Native hashes won't be broken, thankfully. -------- Did the temporary ugliness pan out? Of the packages that currently build in `release-cross.nix`, the only ones that have their hash changed are `*.gcc.crossDrv` and `bootstrapTools.*.coreutilsMinimal`. In both cases I think it doesn't matter. 1. GCC when doing a `build = host = target = foreign` build (maximally cross), still defines environment variables like `CPATH`[1] with packages. This seems assuredly wrong because whether gcc dynamically links those, or the programs built by gcc dynamically link those---I have no idea which case is reality---they should be foreign. Therefore, in all likelihood, I just made the gcc less broken. 2. Coreutils (ab)used the old cross-compiling infrastructure to depend on a native version of itself. When coreutils was overwritten to be built with fewer features, the native version it used would also be overwritten because the binding was tight. Now it uses the much looser `BuildPackages.coreutils` which is just fine as a richer build dep doesn't cause any problems and avoids a rebuild. So, in conclusion I'd say the conservatism payed off. Onward to actually raking the muck in the next PR! [1]: https://gcc.gnu.org/onlinedocs/gcc/Environment-Variables.html
* release-cross: Factor out system filteringJohn Ericson2016-12-27
|
* release-cross: Use the same genAttrs logic for `testOnCross` as `testOn`John Ericson2016-12-27
| | | | | Eventually we'll want to test cross-compiling *from* various platforms. For now, its good to be consistent.
* Build all derivations at least for 64bit LinuxDomen Kožar2016-11-28
|
* release-lib: Remove unused allowTexliveBuilds optionTuomas Tynkkynen2016-09-11
| | | | | This is dead code since the old monolithic TeXLive was dropped in da421bc75f98c1b19f214a3b6b7cda07dc4c088b.
* Replace `./../*` with `../*` in Nix expressions (#16414)John Ericson2016-06-22
|
* Replace references to all-packages.nix, by references to the top-level of ↵Nicolas B. Pierron2016-03-13
| | | | nixpkgs repository.
* copy-tarballs.pl: Revive extracting all tarballs from release.nixEelco Dolstra2015-12-16
|
* release-lib.nix: set inHydra anyways, it might be useful some dayPeter Simons2015-07-17
|
* release-lib: rename config option "inHydra" to "allowTexliveBuilds"Peter Simons2015-07-17
| | | | | | Also, take the value of that attribute as an argument to the module so that Hydra maintainers who don't mind building TexLive have a chance to do so.
* Don't build texLive in HydraEelco Dolstra2015-06-25
| | | | It's way too big (texlive-core-2014 alone is > 1.5 GB).
* cygwin: stdenvFlorian Friesdorf2015-05-28
|
* Rename scrubDrv -> hydraJob and make it more effectiveEelco Dolstra2015-03-20
| | | | | | | | | It now strictly evaluates all remaining attributes, preventing unevaluated thunks that cannot be garbage-collected. It's also applied to all jobs in Nixpkgs' release.nix. This reduces hydra-eval-jobs' memory consumption on the 14.12 release-combined jobset from 5.1 GB to 2.0 GB.
* release-lib: SimplifyEelco Dolstra2015-03-20
|
* release-lib.nix: Style cleanupEelco Dolstra2015-03-20
|
* TweakEelco Dolstra2015-01-06
|
* Remove scheduling prioritiesEelco Dolstra2015-01-06
| | | | This was only used for stdenv and is pretty obsolete now.
* release-lib: add option to use another package setNikolay Amiantov2014-11-14
|
* release: do not process broken packages, we induce they don't have platforms ↵Luca Bruno2014-09-03
| | | | at all
* Only show/build a package on the platforms listed in meta.platformsEelco Dolstra2013-11-05
| | | | | | | | | | | | | | | | | | The function ‘mkDerivation’ now checks whether the current platform type is included in a package's meta.platform field. If not, it throws an exception: $ nix-build -A linux --argstr system x86_64-darwin error: user-thrown exception: the package ‘linux-3.10.15’ is not supported on ‘x86_64-darwin’ These packages also no longer show up in ‘nix-env -qa’ output. This means, for instance, that the number of packages shown on x86_64-freebsd has dropped from 9268 to 4764. Since meta.platforms was also used to prevent Hydra from building some packages, there now is a new attribute meta.hydraPlatforms listing the platforms on which Hydra should build the package (which defaults to meta.platforms).
* mercurial: Update to 2.6.1Eelco Dolstra2013-05-15
| | | | | Also, set a default for web.cacerts so that the system certificates on NixOS are used.
* release-lib.nix: Make the set of supported platforms an argumentEelco Dolstra2013-03-26
|
* Add an "unstable" aggregate to replace the "unstable" viewEelco Dolstra2013-03-26
| | | | Views are obsolete, aggregates are the declarative replacement.
* Only return Hydra jobs for supported platformsEelco Dolstra2013-03-26
|
* Make Nixpkgs jobs uniqueEelco Dolstra2013-03-26
| | | | | | | | | | That is, there are now distinct jobs like ‘coreutils.x86_64-linux’ and ‘coreutils.x86_64-darwin’, rather than a single job ‘coreutils’ with multiple builds. This means that testing a job is simpler: $ nix-build pkgs/top-level/release.nix -A coreutils.x86_64-linux See https://github.com/NixOS/hydra/issues/60 for the motivation.
* Merge remote-tracking branch 'upstream/master' into stdenv-updatesRickard Nilsson2013-01-20
|\
| * Add config option ‘allowUnfree’Eelco Dolstra2013-01-17
| | | | | | | | | | | | | | | | If set to false, mkDerivation will throw an exception if a package has an unfree license. ‘release-lib.nix’ uses this to enforce that we don't build unfree packages as part of the Nixpkgs channel. Since this is set through Nixpkgs' ‘config’ argument, it's more finegrained than $HYDRA_DISALLOW_UNFREE.
* | Rename hostDrv -> crossDrv, buildDrv -> nativeDrvEelco Dolstra2012-12-28
|/ | | | | | This is for consistency with terminology in stdenv (and the terms "hostDrv" and "buildDrv" are not very intuitive, even if they're consistent with GNU terminology).
* Remove support for the obsolete powerpc-darwin and i686-darwin platformsEelco Dolstra2012-11-29
|
* * Add x86_64-freebsd to release-lib.nixEelco Dolstra2012-03-08
| | | | svn path=/nixpkgs/trunk/; revision=32886
* * Change the priority of trunk builds back.Eelco Dolstra2012-03-06
| | | | svn path=/nixpkgs/trunk/; revision=32823
* Updating from trunkLluís Batlle i Rossell2010-08-07
|\ | | | | | | svn path=/nixpkgs/branches/stdenv-updates/; revision=23027