Commit Graph

131002 Commits

Author SHA1 Message Date
John Ericson
e42a7a5c0b lib/systems: Add uClibc just like MUSL 2018-05-09 23:39:23 -04:00
John Ericson
3fa0ba9177 lib/systems: Parse more arm cpu types 2018-05-09 18:57:39 -04:00
John Ericson
302c4c5f2d stdenv: Put back isArm, with deprecation notice.
This was always meant to be deprecated rather than removed.
2018-05-07 20:14:52 -04:00
John Ericson
b9acfb4ecf treewide: isArm -> isAarch32
Following legacy packing conventions, `isArm` was defined just for
32-bit ARM instruction set. This is confusing to non packagers though,
because Aarch64 is an ARM instruction set.

The official ARM overview for ARMv8[1] is surprisingly not confusing,
given the overall state of affairs for ARM naming conventions, and
offers us a solution. It divides the nomenclature into three levels:

```
ISA:             ARMv8   {-A, -R, -M}
                 /    \
Mode:     Aarch32     Aarch64
             |         /   \
Encoding:   A64      A32   T32
```

At the top is the overall v8 instruction set archicture. Second are the
two modes, defined by bitwidth but differing in other semantics too, and
buttom are the encodings, (hopefully?) isomorphic if they encode the
same mode.

The 32 bit encodings are mostly backwards compatible with previous
non-Thumb and Thumb encodings, and if so we can pun the mode names to
instead mean "sets of compatable or isomorphic encodings", and then
voilà we have nice names for 32-bit and 64-bit arm instruction sets
which do not use the word ARM so as to not confused either laymen or
experienced ARM packages.

[1]: https://developer.arm.com/products/architecture/a-profile

(cherry picked from commit ba52ae5048)
2018-04-25 15:50:41 -04:00
John Ericson
1a72330ab0 cc-wrapper: Utilize patched cctools ld for more robust macOS Sierra hack
Also fix numberous bugs, such as:

 - Not getting confused on more flags taking file arguments.

 - Ensuring children reexport their children, but the original
   binary/library doesn't.

 - Not spawning children when it turns out we just dynamically link
   under the threshold but our total number of inputs exceeeds it.

 - Children were always named `libunnamed-*`, when that name was
   supposed to be the last resort only.

ld-wrapper's own RPATH check hardcodes `.so`, but darwin uses `.dylib`
*and* (in practice due to lousy build systems) `.so`. We don't care
however because we never inject `--rpath` like that in practice on
Darwin. Hopefully someday we won't on linux either.
2018-04-13 13:17:03 -04:00
John Ericson
1001311280 cctools: Add alternative source for sierra hack
Source master rebase of my [PR #34].

Eventually, we might consider doing something for GNU binutils too, in
order that we switch (the normal) ld-wrapper to always use this to
leverage ld to resolve libraries, rather than faking it in bash.

[PR #34]: https://github.com/tpoechtrager/cctools-port/pull/34
2018-04-12 19:16:51 -04:00
John Ericson
01e1722e8f cctools: Make assert meta.broken instead
This more politely expresses the same thing
2018-04-12 19:15:47 -04:00
John Ericson
175d4ab1db 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 88c04a8b6b)
2018-03-20 12:35:20 -04:00
John Ericson
ec2aff0be6 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.
2018-03-19 22:25:49 -04:00
John Ericson
192f4144b2 release-lib: Filter supportedSystems with meta.platforms-style patterns
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.
2018-03-19 21:32:28 -04:00
John Ericson
e547bd0dc4 lib: Factor in tiny bit of meta.platform checking
I need it in stdenv and release-lib, so that seems motivation enough.
2018-03-19 19:29:16 -04:00
John Ericson
eae19f3c28 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.
2018-03-15 00:44:38 -04:00
John Ericson
c26252af3e 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 #30902
2018-03-15 00:44:34 -04:00
John Ericson
4c52e34ca6 stdenv: Clean up check meta args 2018-03-14 18:58:07 -04:00
John Ericson
f79f80dbf2 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.
2018-03-14 18:44:42 -04:00
John Ericson
2d1d83d836 pond: Simplify platform logic 2018-03-12 18:55:42 -04:00
John Ericson
b152dcf852 pharo: Tighten source and simplify meta.platforms 2018-03-12 18:55:41 -04:00
John Ericson
c208ca6387 robo3t: Simplify meta.platforms and don't refer to glibc directly 2018-03-12 18:55:41 -04:00
John Ericson
94cbd14120 nethack: Fix platform logic 2018-03-12 18:55:41 -04:00
John Ericson
59c656a421 dvdisaster: Fix sse2 logic for cross and improved meta.platforms 2018-03-12 18:55:41 -04:00
John Ericson
79d8353b5e treewide: Make shouldUsePackages copypasta use meta.available
The old way depended on old list-of-strings `meta.platforms`, and was
not good for cross.
2018-03-12 18:55:41 -04:00
John Ericson
eeb8419c6a ceph: Fix --with-file-aio logic for new meta.platforms and cross 2018-03-12 18:55:41 -04:00
John Ericson
dde80d705e qtbase: Fix x86_64-conditional logic
Now works with cross and old and new meta checks alike.
2018-03-12 18:55:41 -04:00
zimbatm
1bc5bf4beb
Merge pull request #36283 from aneeshusa/fix-vagrant-2.0.2
Fix vagrant 2.0.2
2018-03-05 18:03:02 +00:00
Frederik Rietdijk
8bcdb39a27
Merge pull request #27678 from volth/restore-bridge-slaves-dynamically-added-by-libvirt
nixos/networking-scripted: restore bridge slaves dynamically added by…
2018-03-05 17:31:22 +00:00
Franz Pletz
4ff4ef51b7
pythonPackages.wsproto: init at 0.11.0 2018-03-05 18:06:30 +01:00
Franz Pletz
92cbfd8555
pythonPackages.h11: init at 0.7.0 2018-03-05 18:06:29 +01:00
Franz Pletz
cda1e6c21b
urbanterror: 4.3.2 -> 4.3.3 for CVE-2017-6903 2018-03-05 18:06:29 +01:00
Franz Pletz
1a0f84d0b8
wireshark: 2.4.4 -> 2.4.5 2018-03-05 18:06:29 +01:00
Franz Pletz
d21e682dde
virtmanager: 1.5.0 -> 1.5.1 2018-03-05 18:06:29 +01:00
Graham Christensen
bc6e650e94
Merge pull request #36347 from grahamc/fix-null-fields
maintainers: remove null fields
2018-03-05 11:53:06 -05:00
Tim Steinbach
1d1275ef8b
linux: 4.16-rc3 -> 4.16-rc4 2018-03-05 11:30:23 -05:00
Graham Christensen
5e8bdb8972
maintainers: remove null fields 2018-03-05 11:14:35 -05:00
Dino Dai Zovi
ddf13e6646 nixos/initrd-network: add udhcpc.extraArgs option (#36305)
This can be used to fix issues where udhcpc times out before
acquiring a lease. For example of these issues, see:

https://bugs.alpinelinux.org/issues/3105#note-8

Signed-off-by: Dino A. Dai Zovi <ddz@theta44.org>
2018-03-05 15:53:59 +00:00
Peter Simons
18055971cb hackage: update database snapshot to latest version 2018-03-05 16:45:07 +01:00
Peter Simons
6568cbc1bb hackage-packages.nix: automatic Haskell package set update
This update was generated by hackage2nix v2.8.2-8-g0aa23ac from Hackage revision
4caf6826b1.
2018-03-05 16:45:01 +01:00
Peter Simons
ff45358a3c LTS Haskell 10.8 2018-03-05 16:44:23 +01:00
Peter Simons
3d8694ee2d ghcjs: mark build broken 2018-03-05 16:44:23 +01:00
Peter Simons
1b0c67259e haskell: cosmetic changes to the generic builder 2018-03-05 16:44:23 +01:00
Franz Pletz
830ccafedc
youtubeDL: 2018.02.22 -> 2018.03.03 2018-03-05 15:55:55 +01:00
Franz Pletz
ee6394bbba
sslh: 1.19 -> 1.19c 2018-03-05 15:55:39 +01:00
Franz Pletz
ad52dee190
mpd: 0.20.15 -> 0.20.18 2018-03-05 15:49:26 +01:00
Franz Pletz
94db63f5d4
nginxMainline: 1.13.8 -> 1.13.9 2018-03-05 15:49:07 +01:00
Franz Pletz
e406460533
mbedtls: 2.6.1 -> 2.7.1 2018-03-05 15:48:54 +01:00
Franz Pletz
48bd537814
batman-adv: 2017.4 -> 2018.0 2018-03-05 15:43:42 +01:00
lewo
91280690af
Merge pull request #36337 from sifmelcara/add/powerlines
powerline-go: init at 1.8.2
2018-03-05 15:06:44 +01:00
Vladimír Čunát
71f899c2c3
Merge #34461: mesa -> libGL* rename
This will just bit rot otherwise.  Almost nothing gets rebuilt.
2018-03-05 14:59:40 +01:00
Jörg Thalheim
9b7d93edc9
Merge pull request #36307 from Mic92/keepassxc
keepassxc: enable ssh agent sockets
2018-03-05 13:54:59 +00:00
Vladimír Čunát
04c31a5de1
libGL rename: fallout after a week on master
and a few nitpicks.
2018-03-05 14:53:38 +01:00
Vladimír Čunát
565bd805e6
Merge branch 'master' 2018-03-05 14:53:27 +01:00