Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

lib: Fix #30902 on 18.03 #37337

Merged
merged 22 commits into from
Apr 6, 2018

Commits on Mar 12, 2018

  1. qtbase: Fix x86_64-conditional logic

    Now works with cross and old and new meta checks alike.
    Ericson2314 committed Mar 12, 2018
    Configuration menu
    Copy the full SHA
    dde80d7 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    eeb8419 View commit details
    Browse the repository at this point in the history
  3. treewide: Make shouldUsePackages copypasta use meta.available

    The old way depended on old list-of-strings `meta.platforms`, and was
    not good for cross.
    Ericson2314 committed Mar 12, 2018
    Configuration menu
    Copy the full SHA
    79d8353 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    59c656a View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    94cbd14 View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    c208ca6 View commit details
    Browse the repository at this point in the history
  7. Configuration menu
    Copy the full SHA
    b152dcf View commit details
    Browse the repository at this point in the history
  8. Configuration menu
    Copy the full SHA
    2d1d83d View commit details
    Browse the repository at this point in the history

Commits on Mar 14, 2018

  1. treewide: get rid of platforms.allBut

    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.
    Ericson2314 committed Mar 14, 2018
    Configuration menu
    Copy the full SHA
    f79f80d View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    4c52e34 View commit details
    Browse the repository at this point in the history

Commits on Mar 15, 2018

  1. lib, stdenv: Check meta.platforms against host platform and be open…

    … world
    
    First, we need check against the host platform, not the build platform.
    That's simple enough.
    
    Second, we move away from exahustive finite case analysis (i.e.
    exhaustively listing all platforms the package builds on). That only
    work in a closed-world setting, where we know all platforms we might
    build one. But with cross compilation, we may be building for arbitrary
    platforms, So we need fancier filters. This is the closed world to open
    world change.
    
    The solution is instead of having a list of systems (strings in the form
    "foo-bar"), we have a list of of systems or "patterns", i.e. attributes
    that partially match the output of the parsers in `lib.systems.parse`.
    The "check meta" logic treats the systems strings as an exact whitelist
    just as before, but treats the patterns as a fuzzy whitelist,
    intersecting the actual `hostPlatform` with the pattern and then
    checking for equality. (This is done using `matchAttrs`).
    
    The default convenience lists for `meta.platforms` are now changed to be
    lists of patterns (usually a single pattern) in
    `lib/systems/for-meta.nix` for maximum flexibility under this new
    system.
    
    Fixes NixOS#30902
    Ericson2314 committed Mar 15, 2018
    Configuration menu
    Copy the full SHA
    c26252a View commit details
    Browse the repository at this point in the history
  2. release-lib: Adapt to work with new meta.platforms

    `packagePlatforms` now filters `supportedSystems` with the new-style
    `meta.platforms`, rather than just plopping it in as is.
    Ericson2314 committed Mar 15, 2018
    Configuration menu
    Copy the full SHA
    eae19f3 View commit details
    Browse the repository at this point in the history

Commits on Mar 19, 2018

  1. lib: Factor in tiny bit of meta.platform checking

    I need it in stdenv and release-lib, so that seems motivation enough.
    Ericson2314 committed Mar 19, 2018
    Configuration menu
    Copy the full SHA
    e547bd0 View commit details
    Browse the repository at this point in the history

Commits on Mar 20, 2018

  1. release-lib: Filter supportedSystems with meta.platforms-style patt…

    …erns
    
    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.
    Ericson2314 committed Mar 20, 2018
    Configuration menu
    Copy the full SHA
    192f414 View commit details
    Browse the repository at this point in the history
  2. lib: Messed up or operator precedence

    Github broke oddly on my previous PR, so I tested and merged by hand.
    Otherwise ofborg would have caught this.
    Ericson2314 committed Mar 20, 2018
    Configuration menu
    Copy the full SHA
    ec2aff0 View commit details
    Browse the repository at this point in the history
  3. lib: Make platform predicates greppable

    Should have commited on here and on merged master to begin with, but I
    didn't, so instead I cherry-pick.
    
    (cherry picked from commit 88c04a8)
    Ericson2314 committed Mar 20, 2018
    Configuration menu
    Copy the full SHA
    175d4ab View commit details
    Browse the repository at this point in the history

Commits on Apr 4, 2018

  1. lib: Make platforms.all actually match all platforms

    Otherwise obscure cross-compilations are hampered. `all` breaks all but
    the initial derivation (which we can't even write yet) in an open world
    setting however, so we really shouldn't have it.
    
    (cherry picked from commit 3c8ae01)
    Ericson2314 committed Apr 4, 2018
    Configuration menu
    Copy the full SHA
    7ca53e2 View commit details
    Browse the repository at this point in the history
  2. lib: Add lib.platforms.windows

    (cherry picked from commit d9a1800)
    Ericson2314 committed Apr 4, 2018
    Configuration menu
    Copy the full SHA
    6afaa74 View commit details
    Browse the repository at this point in the history
  3. libatomic_ops: Allow Building on Windows too

    (cherry picked from commit e49c14c)
    Ericson2314 committed Apr 4, 2018
    Configuration menu
    Copy the full SHA
    3edb2b8 View commit details
    Browse the repository at this point in the history
  4. haskell-generic-builder: Default to window + unix platforms,

    Since GHC is a cross compiler, it's perfectly possible to make haskell
    binaries on platforms without GHCs. `windows ++ unix` seems good enough
    for now.
    
    Also don't default `hydraPlatforms` to `platforms`. The former must be a
    list of systems (strings), but the latter is a list of systems or
    patterns.
    
    (cherry picked from commit 65e24f2)
    Ericson2314 committed Apr 4, 2018
    Configuration menu
    Copy the full SHA
    e7cc454 View commit details
    Browse the repository at this point in the history
  5. top-level: Move comma for stylistic consistency

    (cherry picked from commit abf2760)
    Ericson2314 committed Apr 4, 2018
    Configuration menu
    Copy the full SHA
    df52863 View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    ac3d9c3 View commit details
    Browse the repository at this point in the history