Commit Graph

1828 Commits (release-18.03-flake)

Author SHA1 Message Date
Robert Helgesson c04fbec77c
lib.types: fix loaOf behavior for long lists
Assigning a list of 10 or more elements to an option having the type
`loaOf a` produces a configuration value that is not honoring the
order of the original list. This commit fixes this and a related issue
arising when 10 or more lists are merged into this type of option.

(cherry picked from commit 08e8701673a84b800e0960c50f78793a23e635ba)
2018-05-13 10:02:22 +02:00
John Ericson 2d867df5b4 Merge branch 'fix-gcc-with-float' into release-18.03 2018-05-12 15:21:52 -04:00
John Ericson f2004e6287 lib: Fix float handling for Aarch32
Forgot to adjust default so abi with explicit float attr would be used.
2018-05-12 15:18:31 -04:00
John Ericson 6f40d18d44 prebuilt android cc: Edit wrapper to pass the right -m flags for armv7a
(cherry picked from commit 827ef0914089e1a2bba140b49e1311eff28cc156)
2018-05-12 15:16:16 -04:00
John Ericson c674fa8eac
Merge pull request #40386 from obsidiansystems/lib-android-platforms
lib: Add 32-bit Android platforms
2018-05-11 19:01:31 -04:00
John Ericson e3f6c6d18d lib: Add 32-bit Android platforms 2018-05-11 18:41:55 -04:00
John Ericson 62ccc2324f
Merge pull request #40379 from obsidiansystems/lib-platform-sort
lib/systems: Sort platforms, and space CPUs
2018-05-11 17:10:55 -04:00
John Ericson 341794a4b9 lib/systems: Sort platforms, and space CPUs 2018-05-11 15:02:18 -04:00
John Ericson ad1af29791
Merge pull request #40307 from obsidiansystems/lib-float-for-18.03
lib: Simplify float handling
2018-05-11 01:23:18 -04:00
John Ericson 1fe81a4bcd lib: Clean up float/fpu options
ARM ABIs now have a float field. This is used as a fallback to lessen
our use of `platform.gcc.float`. I didn't know what the MIPs convention
is so I kept using `platform.gcc.float` in that case.
2018-05-10 18:02:00 -04:00
John Ericson 45cd6090d9
Merge pull request #40272 from obsidiansystems/lib-platform-simplify-18.03
treewide: Get rid of `*Platform.arch`
2018-05-10 01:54:17 -04:00
John Ericson a02be2bd85 treewide: Get rid of `*Platform.arch`
Use `parsed.cpu.name` or `platform.gcc.arch` instead.
2018-05-10 01:37:31 -04:00
John Ericson c7be9f247a
Merge pull request #40269 from obsidiansystems/uclibc-18.03
Uclibc 18.03
2018-05-10 00:47:43 -04:00
John Ericson f063a860d6 xbursttools: Cleanup slightly 2018-05-09 23:40:13 -04:00
John Ericson e42a7a5c0b lib/systems: Add uClibc just like MUSL 2018-05-09 23:39:23 -04:00
John Ericson 4009b08110
Merge pull request #40262 from obsidiansystems/more-arm
lib/systems: Parse more arm cpu types
2018-05-09 20:05:16 -04:00
John Ericson 3fa0ba9177 lib/systems: Parse more arm cpu types 2018-05-09 18:57:39 -04:00
John Ericson 2cbb138147 Merge remote-tracking branch 'upstream/release-18.03' into aarch32-for-18.03 2018-04-25 16:00:44 -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 ba52ae50488de85a9cf60a3a04f1c9ca7122ec74)
2018-04-25 15:50:41 -04:00
John Ericson ac3d9c3d13 Merge remote-tracking branch 'upstream/release-18.03' into meta-check-18.03 2018-04-04 15:28:17 -04:00
John Ericson 6afaa74826 lib: Add `lib.platforms.windows`
(cherry picked from commit d9a1800239620425ef3608487f87002b1a4d1437)
2018-04-04 15:27:37 -04:00
John Ericson 7ca53e2a73 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 3c8ae01a45196759cd01de639f0d200fdfcb6d77)
2018-04-04 15:27:37 -04:00
Franz Pletz 4d9d3cbfeb
lib/modules: fix typo
(cherry picked from commit e6f4614e8582e0ea11995a6756b7f25abbc391cc)
2018-03-28 07:28:03 +02: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 88c04a8b6b6714a61c8a28ec8bbd5ecf580ed2c7)
2018-03-20 12:35:20 -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 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 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
Michael Raskin f43ea6e7ff
Merge pull request #36275 from oxij/lib/maintainers-list
lib: rename maintainers-list.nix into maintainers/maintainer-list.nix
(cherry picked from commit 1bd790d613d28d40e5ac999639602768b39d74b3)
The intention is to reduce conflicts during maintenance.
2018-03-07 13:30:19 +01:00
Jörg Thalheim 4fb6f7b83d
Merge pull request #36250 from sengaya/add-ansible-lint
ansible-lint: init at 3.4.20
(cherry picked from commit 07bc1ddacebcc9587e6f4d7e05d27350e6cf23e3)
2018-03-07 13:30:17 +01:00
Graham Christensen 5e8bdb8972
maintainers: remove null fields 2018-03-05 11:14:35 -05:00
Jörg Thalheim 73774ef8f9
Merge pull request #36168 from ryantm/majorminor
a single version attribute for expressions previously using "majorVersion"
2018-03-04 20:06:48 +00:00
Ryan Mulligan a9d0778cd4 lib: add versions library 2018-03-04 06:28:34 -08:00
Graham Christensen f7da7fa0c3 Revert "Revert "Convert maintainer file entries to attributes, add github handles"" 2018-03-04 05:13:19 +01:00
Graham Christensen b9f1a76f30 Revert "Convert maintainer file entries to attributes, add github handles"
This reverts commit aa47bac04f.
2018-03-03 22:34:17 -05:00
Graham Christensen 52963931cd Revert "lib/maintainers: correct wrong (clashing) github handles"
This reverts commit 8e4c39adeb.
2018-03-03 22:34:17 -05:00
Graham Christensen 43217601b0 Revert "lib/maintainers: add new maintainers before maintainers merge"
This reverts commit aecebe8280.
2018-03-03 22:34:17 -05:00
Graham Christensen 3e55c5d1f7 Revert "lib/maintainers: rename file to maintainers-list.nix"
This reverts commit 24684008df.
2018-03-03 22:34:17 -05:00
Profpatsch 24684008df lib/maintainers: rename file to maintainers-list.nix
Based on a request by @oxij:
“Can we also rename this file to `maintainers/maintainers-list.nix` while we at
this? Motivation: much saner `git log ./lib`.”
2018-03-04 03:26:44 +01:00
Profpatsch aecebe8280 lib/maintainers: add new maintainers before maintainers merge
Add new maintainers that were added before merging the new `maintainers.nix`
file format.
2018-03-04 03:26:44 +01:00
Profpatsch 8e4c39adeb lib/maintainers: correct wrong (clashing) github handles
Corrected every handle that had no commits to nixpkgs, manually researched the
correct handles by looking at maintained packages & blames/history on Github.
2018-03-04 03:26:44 +01:00
Profpatsch aa47bac04f Convert maintainer file entries to attributes, add github handles
Based on https://github.com/NixOS/nixpkgs/pull/34842, the
nix-instantiate output was pretty-printed and the validity of the github handles
manually verified, by automatically checking whether the user handles exist on
github (https://github.com/userhandle, status 200 or 404).
Each handle under 5 characters was manually checked (because the collision
probability with non-maintainer accounts is high), each missing entry was
manually researched.

The script used is kept in `maintainers/scripts` as an example of how to work
with the mainainers list through nix’ JSON interface.
2018-03-04 03:26:44 +01:00
Jörg Thalheim fe2acc2b2c
Merge pull request #36215 from xnaveira/py-junos-eznc
Py junos eznc
2018-03-03 17:35:58 +00:00
Vladimír Čunát 7b2cf5b12e
lib.addPassthru: removed as scheduled 2018-03-03 17:57:38 +01:00
Andrey Golovizin cc2aa6f358 pythonPackages.pymetar: add myself as maintainer 2018-03-02 16:46:36 +01:00
Xavier Naveira 284c6a5990 pythonPackages.scp: init at 0.10.2 2018-03-02 15:24:00 +01:00
timor 7e54a70960 maintainers: add myself 2018-03-01 23:54:04 +01:00
Erik Arvstedt f9f360883b untrunc: init at 2018.01.13 2018-03-01 20:30:48 +01:00
babariviere 6967498370 fix LD_PRELOAD error for bear 2018-03-01 18:14:24 +01:00
lejonet 565f22d27a nixos/ceph: init module (#35299)
All 5 daemon types can be enabled and configured through the module and the module both creates the ceph.conf required but also creates and enables specific services for each daemon, based on the systemd service files that upstream provides.
2018-03-01 11:47:13 +00:00
John Ericson 2482e2858e prebuilt android tools: Init using SDK
Expose as an option for the cross stdenv.
2018-02-27 14:15:39 -05:00