Commit Graph

4453 Commits

Author SHA1 Message Date
Daniël de Kok
e2309df85e pythonPackages.pipBuildHook: do not build in an isolated environment
When a PEP 517 project file is present, pip will not install
prerequisites in `site-packages`:

https://pip.pypa.io/en/stable/reference/pip/#pep-517-and-518-support

For the shell hook, this has the consequence that the generated
temporary directory that is added to PYTHONPATH does not contain
`site.py`. As a result, Python does not discover the Python
module. Thus when a user executes nix-shell in a project, they cannot
import the project's Python module.

This change adds the `--no-build-isolation` option to pip when
creating the editable environment, to correctly generate `site.py`,
even when a `pyproject.toml` is present.
2020-06-06 10:05:26 +02:00
Frederik Rietdijk
1c68570ab2 Merge staging-next into staging 2020-06-05 19:42:16 +02:00
Frederik Rietdijk
43f71029cc Merge master into staging-next 2020-06-05 19:40:53 +02:00
Frederik Rietdijk
913bee36ed python3Minimal: override python38, not python3
This avoids an infinite recursion, accidentally introduced in b7ff746540.
2020-06-05 16:46:40 +02:00
Frederik Rietdijk
a337c44db6 python3Minimal: disable optimizations
No point for the bootstrapping.
2020-06-04 20:53:31 +02:00
Frederik Rietdijk
bcf03e8cd2 Revert "cpython: Optimize dynamic symbol tables, for a 6% speedup."
ofborg does not like fetching patches when the derivation is used during bootstrapping.

This reverts commit 480c8d1991.
2020-06-04 20:36:31 +02:00
Frederik Rietdijk
a2be64bf13
Merge pull request #84072 from gnprice/python-build
cpython: Use optimizations, for a 25% speedup.
2020-06-04 18:31:07 +02:00
volth
d89c58a012 perl: 5.30.2 -> 5.30.3 2020-06-04 18:14:24 +02:00
Frederik Rietdijk
b7ff746540 python3: now points to python38
Note this also means python3Minimal is now also Python 3.8.

This reverts commit eb1369670b and adds more.
2020-06-04 18:08:29 +02:00
Luflosi
2379e36124 python39: fix build on macOS
Basically the same changes as in 81d15948cc but for python3.9 instead of python3.8.
2020-06-04 17:11:29 +02:00
Frederik Rietdijk
36d9eeb9c7 Merge staging-next into staging 2020-05-29 17:06:01 +02:00
Frederik Rietdijk
c7d25a5db6 Merge master into staging-next 2020-05-29 17:05:38 +02:00
talyz
bfdc832aef
php.buildEnv: Let enabled extensions to pass through by default
If only extraConfig is specified in buildEnv, keep the currently
enabled extensions active. Brought up in #89011.
2020-05-29 00:32:12 +02:00
Frederik Rietdijk
362d88c2b1 Merge staging-next into staging 2020-05-27 15:27:28 +02:00
Frederik Rietdijk
1b7204ab3c Merge master into staging-next 2020-05-27 15:26:50 +02:00
Frederik Rietdijk
0367fa630d python38: 3.8.2 -> 3.8.3 2020-05-27 12:10:25 +02:00
Ryan Mulligan
f1d9510c99
Merge pull request #88761 from r-ryantm/auto-update/rakudo
rakudo: 2020.05 -> 2020.05.1
2020-05-25 07:50:52 -07:00
Jan Tojnar
f8ac6112b5
Merge pull request #84994 from r-ryantm/auto-update/spidermonkey 2020-05-25 15:22:42 +02:00
R. RyanTM
926e43c1c4 rakudo: 2020.05 -> 2020.05.1 2020-05-24 09:02:40 +00:00
Frederik Rietdijk
f17001afd8 Python: fix virtualenv with Python 2 2020-05-24 10:43:24 +02:00
Frederik Rietdijk
98bcf5d8da Python tests: fix use of is_virtualenv
Too many tests set it.
2020-05-24 10:43:24 +02:00
Frederik Rietdijk
c778596f56 Merge master into staging-next 2020-05-24 10:03:22 +02:00
Frederik Rietdijk
2de446e0b8 python.tests: also test virtualenv
Test whether creating a virtualenv functions.
2020-05-23 18:15:45 +02:00
adisbladis
203f382a4a
pypy: Remove bootstrap python from closure 2020-05-23 11:47:11 +01:00
Frederik Rietdijk
b34551384a Merge master into staging-next 2020-05-23 10:24:52 +02:00
Benjamin Andresen
47d4a68bb1 babashka: 0.0.94 -> 0.0.97 2020-05-21 00:10:29 +02:00
R. RyanTM
754562f855 janet: 1.8.1 -> 1.9.1 2020-05-19 08:05:24 +00:00
Jan Tojnar
7f40cfd97b
Merge branch 'master' into staging-next 2020-05-18 21:09:27 +02:00
Mario Rodas
033267eb93
Merge pull request #87921 from ggreif/wasmtime
wasmtime: 0.15.0 -> 0.16.0
2020-05-16 17:33:30 -05:00
Elis Hirwing
726cbe0d40
Merge pull request #87907 from etu/php74-update
php74: 7.4.4 -> 7.4.6
2020-05-16 14:27:44 +02:00
Elis Hirwing
a779efcaa0
php74: 7.4.5 -> 7.4.6
Changelog: https://www.php.net/ChangeLog-7.php#7.4.6
2020-05-16 13:23:23 +02:00
Jon
15b3d9d277
python3Packages.venvShellHook: add postVenvCreation (#87850)
* python3Packages.venvShellHook: add postVenvCreation

* python: docs: add postVenvCreation explaination
2020-05-16 09:34:11 +02:00
Gabor Greif
d89ae377d4 wasmtime-0.16.0: re-enable tests on Darwin
The issue https://github.com/bytecodealliance/wasmtime/issues/1556
appears to be fixed.
2020-05-16 04:56:26 +02:00
Gabor Greif
b39717abff wasmtime: 0.15.0 -> 0.16.0 2020-05-16 04:42:02 +02:00
Elis Hirwing
52d2e99182
php74: 7.4.4 -> 7.4.5
Changelog: https://www.php.net/ChangeLog-7.php#7.4.5
2020-05-15 22:10:03 +02:00
Frederik Rietdijk
92a26320e7 Merge master into staging-next 2020-05-14 09:25:25 +02:00
Colin L Rice
d6162dab50
go-modules: Update files to use vendorSha256 2020-05-14 07:22:21 +01:00
Greg Price
480c8d1991 cpython: Optimize dynamic symbol tables, for a 6% speedup.
I took a close look at how Debian builds the Python interpreter,
because I noticed it ran substantially faster than the one in nixpkgs
and I was curious why.

One thing that I found made a material difference in performance was
this pair of linker flags (passed to the compiler):

    -Wl,-O1 -Wl,-Bsymbolic-functions

In other words, effectively the linker gets passed the flags:

    -O1 -Bsymbolic-functions

Doing the same thing in nixpkgs turns out to make the interpreter
run about 6% faster, which is quite a big win for such an easy
change.  So, let's apply it.

---

I had not known there was a `-O1` flag for the *linker*!
But indeed there is.

These flags are unrelated to "link-time optimization" (LTO), despite
the latter's name.  LTO means doing classic compiler optimizations
on the actual code, at the linking step when it becomes possible to
do them with cross-object-file information.  These two flags, by
contrast, cause the linker to make certain optimizations within the
scope of its job as the linker.

Documentation is here, though sparse:
  https://sourceware.org/binutils/docs-2.31/ld/Options.html

The meaning of -O1 was explained in more detail in this LWN article:
  https://lwn.net/Articles/192624/
Apparently it makes the resulting symbol table use a bigger hash
table, so the load factor is smaller and lookups are faster.  Cool.

As for -Bsymbolic-functions, the documentation indicates that it's a
way of saving lookups through the symbol table entirely.  There can
apparently be situations where it changes the behavior of a program,
specifically if the program relies on linker tricks to provide
customization features:
  https://bugs.launchpad.net/ubuntu/+source/xfe/+bug/644645
  https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=637184#35
But I'm pretty sure CPython doesn't permit that kind of trick: you
don't load a shared object that tries to redefine some symbol found
in the interpreter core.

The stronger reason I'm confident using -Bsymbolic-functions is
safe, though, is empirical.  Both Debian and Ubuntu have been
shipping a Python built this way since forever -- it was introduced
for the Python 2.4 and 2.5 in Ubuntu "hardy", and Debian "lenny",
released in 2008 and 2009.  In those 12 years they haven't seen a
need to drop this flag; and I've been unable to locate any reports
of trouble related to it, either on the Web in general or on the
Debian bug tracker.  (There are reports of a handful of other
programs breaking with it, but not Python/CPython.)  So that seems
like about as thorough testing as one could hope for.

---

As for the performance impact: I ran CPython upstream's preferred
benchmark suite, "pyperformance", in the same way as described in
the previous commit.  On top of that commit's change, the results
across the 60 benchmarks in the suite are:

The median is 6% faster.

The middle half (aka interquartile range) is from 4% to 8% faster.

Out of 60 benchmarks, 3 come out slower, by 1-4%.  At the other end,
5 are at least 10% faster, and one is 17% faster.

So, that's quite a material speedup!  I don't know how big the
effect of these flags is for other software; but certainly CPython
tends to do plenty of dynamic linking, as that's how it loads
extension modules, which are ubiquitous in the stdlib as well as
popular third-party libraries.  So perhaps that helps explain why
optimizing the dynamic linker has such an impact.
2020-05-13 21:24:30 -07:00
Greg Price
52c04b0347 cpython: Use autoreconfHook to rebuild configure script.
In particular this will let us use patches that apply to configure.ac.
2020-05-13 21:23:48 -07:00
Michael Raskin
b2f83be34d
Merge pull request #87546 from FireyFly/pkgs/j/avx-flag
j: add avxSupport option
2020-05-13 23:31:25 +00:00
Jonas Höglund
20235a89f8 j: add avxSupport option 2020-05-14 00:51:13 +02:00
Mario Rodas
6a16787d26
Merge pull request #87649 from filalex77/wasmer-0.17.0
wasmer: 0.16.2 -> 0.17.0
2020-05-13 00:58:59 -05:00
Oleksii Filonenko
e2a5709d9c wasmer: 0.16.2 -> 0.17.0 2020-05-12 08:01:43 +00:00
Greg Price
f8a8243bd3 cpython: Use --enable-optimizations, for a 16% speedup.
Without this flag, the configure script prints a warning at the end,
like this (reformatted):

  If you want a release build with all stable optimizations active
  (PGO, etc), please run ./configure --enable-optimizations

We're doing a build to distribute to people for day-to-day use,
doing things other than developing the Python interpreter.  So
that's certainly a release build -- we're the target audience for
this recommendation.

---

And, trying it out, upstream isn't kidding!  I ran the standard
benchmark suite that the CPython developers use for performance
work, "pyperformance".  Following its usage instructions:
  https://pyperformance.readthedocs.io/usage.html
I ran the whole suite, like so:

  $ nix-shell -p ./result."$variant" --run '
      cd $(mktemp -d); python -m venv venv; . venv/bin/activate
      pip install pyperformance
      pyperformance run -o ~/tmp/result.'"$variant"'.json
    '

and then examined the results with commands like:

  $ python -m pyperf compare_to --table -G \
      ~/tmp/result.{$before,$after}.json

Across all the benchmarks in the suite, the median speedup was 16%.
(Meaning 1.16x faster; 14% less time).

The middle half of them ranged from a 13% to a 22% speedup.

Each of the 60 benchmarks in the suite got faster, by speedups
ranging from 3% to 53%.

---

One reason this isn't just the default to begin with is that, until
recently, it made the build a lot slower.  What it does is turn on
profile-guided optimization, which means first build for profiling,
then run some task to get a profile, then build again using the
profile.  And, short of further customization, the task it would use
would be nearly the full test suite, which includes a lot of
expensive and slow tests, and can easily take half an hour to run.

Happily, in 2019 an upstream developer did the work to carefully
select a more appropriate set of tests to use for the profile:
  https://github.com/python/cpython/commit/4e16a4a31
  https://bugs.python.org/issue36044
This suite takes just 2 minutes to run.  And the resulting final
build is actually slightly faster than with the much longer suite,
at least as measured by those standard "pyperformance" benchmarks.
That work went into the 3.8 release, but the same list works great
if used on older releases too.

So, start passing that --enable-optimizations flag; and backport
that good-for-PGO set of tests, so that we use it on all releases.
2020-05-11 23:37:04 -07:00
Jörg Thalheim
fa44d3ad71
Merge pull request #86593 from bandresen/babashka_versionbump
babashka: 0.0.89 -> 0.0.94
2020-05-12 00:00:39 +01:00
Benjamin Andresen
cb9b1167e3 babashka: 0.0.89 -> 0.0.94 2020-05-11 22:57:49 +02:00
Jonathan Ringer
884436b254 pythonPackages.pytestCheckHook: disable setuptoolsCheckPhase 2020-05-11 22:12:08 +02:00
Frederik Rietdijk
a0b4e664c0 Merge staging-next into staging 2020-05-11 22:09:27 +02:00
Frederik Rietdijk
4ddd080d19 Merge staging-next into staging 2020-05-10 09:45:44 +02:00
talyz
9f09253e52
php.buildPecl: Allow PECLs to depend on other PECLs
Some PECLs depend on other PECLs and, like internal PHP extension
dependencies, need to be loaded in the correct order. This makes this
possible by adding the argument "peclDeps" to buildPecl, which adds
the extension to buildInputs and is treated the same way as
internalDeps when the extension config is generated.
2020-05-09 23:38:21 +02:00
adisbladis
2e69f8977d
Merge pull request #87138 from lukegb/fix-php
php: correctly set outputsToInstall after withExtensions.
2020-05-09 15:40:35 +02:00
Jörg Thalheim
887295fd2d
treewide: remove the-kenny from maintainers
@the-kenny did a good job in the past and is set as maintainer in many package,
however since 2017-2018 he stopped contributing. To create less confusion
in pull requests when people try to request his feedback, I removed him as
maintainer from all packages.
2020-05-09 10:28:57 +01:00
Josef Kemetmüller
3818cd9049 python: Fix creating RPMs from Python packages
This should enable (manual) building of RPMs from python projects using
the `python setup.py bdist_rpm` command on systems where `rpmbuild` is
not located in `/usr/bin/`. (e.g. NixOS)
The discovery of the rpmbuild command was fixed upstream in Python 3.8,
so this commit backports the relevant patch to our currently supported
Python 3 versions.

Fixes: #85204
2020-05-09 11:15:28 +02:00
Izorkin
4b93708b31 ruby: fix soname tag 2020-05-08 09:36:01 +03:00
R. RyanTM
9be92a964a mujs: 1.0.6 -> 1.0.7 2020-05-06 23:22:01 -07:00
Luke Granger-Brown
c13df548a3 php: override outputsToInstall when using withExtensions
At the moment, using .withExtensions on a PHP derivation will
produce something which can't be used inside an
environment.systemPackages array, because outputsToInstall refers
to an output which doesn't exist on the final derivation.

Instead, override it back to just containing the single output
"out".
2020-05-06 21:44:27 +01:00
Stig Palmquist
cc1a17145e
rakudo: 2020.02.1 -> 2020.05
dependencies:
moarvm: 2020.02.1 -> 2020.05
nqp: 2020.02.1 -> 2020.05
2020-05-06 15:20:57 +02:00
Jörg Thalheim
f1eef414d1
Merge pull request #80655 from hlolli/release/fix-lumo 2020-05-06 07:42:32 +01:00
cw
e506284193 elixir_1_10: 1.10.2 -> 1.10.3 2020-05-05 20:13:31 +02:00
Mario Rodas
746d4d184a
Merge pull request #86932 from r-ryantm/auto-update/joker
joker: 0.15.0 -> 0.15.3
2020-05-05 08:02:04 -05:00
R. RyanTM
28bea11385 joker: 0.15.0 -> 0.15.3 2020-05-05 12:18:09 +00:00
R. RyanTM
e337e01dde groovy: 3.0.2 -> 3.0.3 2020-05-05 11:27:26 +00:00
hlolli
a8a2337c15
lumo 1.10.1: fix missing npm dependency 2020-05-04 22:17:10 +02:00
tckmn
7493a7eb91
jelly: init at 0.1.31 (#82178) 2020-05-04 18:31:03 +05:30
Ryan Mulligan
64c0e5f7c3
Merge pull request #86762 from r-ryantm/auto-update/zef
zef: 0.8.3 -> 0.8.4
2020-05-04 05:54:49 -07:00
R. RyanTM
5f96bbf67b zef: 0.8.3 -> 0.8.4 2020-05-04 11:31:05 +00:00
Jörg Thalheim
0f52291a51
Merge pull request #85602 from nomeata/joachim/bumpwasmtime 2020-05-04 11:19:55 +01:00
Joachim Breitner
11894914e4 Disable test suite on darwin
no regression over `master` where the test suite didn’t run at all
2020-05-04 10:19:25 +02:00
Pavol Rusnak
7b0167204d treewide: use https for nixos.org and hydra.nixos.org
tarballs.nixos.org is omitted from the change because urls from there
are always hashed and checked
2020-05-03 22:14:21 -07:00
Mario Rodas
eafd5b4d1b
racket: 7.6 -> 7.7 2020-05-03 04:20:00 -05:00
Pavol Rusnak
420124adf8 python: remove isPy33, isPy34 2020-05-04 18:49:45 -07:00
Joachim Breitner
566cd87dee wasmtime : 0.12.0 -> 0.15.0
and enable tests again, now that upstream fixed stuff.
2020-05-02 19:40:23 +02:00
Daiderd Jordan
727d9317fb
bats: fixup readlink reference
Using `readlink -f` requires coreutils, on platforms like darwin where
this isn't the GNU variant by default it would fail outide of a
nix-shell.
2020-05-02 11:46:37 +02:00
R. RyanTM
a0aae69936 bats: 1.1.0 -> 1.2.0 2020-05-02 02:31:25 +00:00
Nathan van Doorn
229cdf3d99 metamath: 0.181 -> 0.182
Also includes a fix to the makefile that lets the autoconf stuff Just Work(tm)
2020-05-01 09:22:33 +02:00
Vladimír Čunát
b9f359b167
Merge #85483: luajit*: bump to 2020-03-20, GC64 mode switch 2020-05-01 08:27:38 +02:00
Jesse Wattenbarger
5f26d13f37
hy: 0.17.0 -> 0.18.0 (#84661)
Co-Authored-By: Jon <jonringer@users.noreply.github.com>
2020-04-29 22:19:15 +01:00
Elis Hirwing
6d5b0b13f3
php: Set maintainer team as maintainers
Also passthrough the meta of the package to have description,
homepage, license, maintainers and other metadata passed through to
the commonly used attribute.
2020-04-29 20:11:40 +02:00
Elis Hirwing
27b9b7b3af
Merge pull request #85026 from talyz/php_buildenv_override
php.buildEnv: Make the exported php package overridable, improve handling of currently enabled extensions, etc
2020-04-29 19:57:37 +02:00
Elis Hirwing
410c38f317
Revert "PHP maintainer team" 2020-04-29 19:56:37 +02:00
Elis Hirwing
3b21abb3d3
Merge pull request #85575 from etu/php-maintainer-team
PHP maintainer team
2020-04-29 19:56:03 +02:00
talyz
2535cdfe91
php: Unify the usage of the php package in php-packages.nix
Instead of using two different php packages in php-packages.nix, one
wrapper and one unwrapped, simply use the wrapper and use its
"unwrapped" attribute when necessary. Also, get rid of the packages
and extensions attributes from the base package, since they're no
longer needed.
2020-04-29 13:59:29 +02:00
talyz
5cad1b4aff
php: Get rid of the phpXXbase attributes, update docs
Since the introduction of php.unwrapped there's no real need for the
phpXXbase attributes, so let's remove them to lessen potential
confusion and clutter. Also update the docs to make it clear how to
get hold of an unwrapped PHP if needed.
2020-04-29 13:45:48 +02:00
talyz
3bfd4e864f
php: Add passthru.tests 2020-04-29 13:45:07 +02:00
talyz
ef990961bc
php.buildEnv: Provide the unwrapped php package in php.unwrapped
This is useful if you need to access the dev output of the unwrapped
derivation.
2020-04-29 13:44:20 +02:00
talyz
c3d5d92f4a
php.buildEnv: Add phpIni attribute for easy access to the php.ini 2020-04-29 12:12:59 +02:00
Eric Dallo
5e4fe400c0
dart: 2.7.1 -> 2.7.2 (stable) + 2.8.0-dev.10.0 -> 2.9.0-4.0.dev (dev) 2020-04-28 09:56:30 -03:00
Jörg Thalheim
bd282ba93d
Merge pull request #84350 from bandresen/babashka_0.0.78->0.0.79
babashka: 0.0.78 -> 0.0.89
2020-04-27 16:15:32 +01:00
Luka Blaskovic
b67cbe5a2d luajit_2_0, luajit_2_1: bump to 2020-03-20, GC64 mode switch 2020-04-27 07:42:21 +00:00
talyz
d61040716e
php.buildEnv: Automatically include extension dependencies
Some extensions depend on other extensions. Previously, these had to
be added manually to the list of included extensions, or we got a
cryptic error message pointing to strings-with-deps.nix, which wasn't
very helpful. This makes sure all required extensions are included in
the set from which textClosureList chooses its snippets.
2020-04-26 16:43:29 +02:00
talyz
72636bc2f6
php: Get rid of all config.php parameters
Since all options controlled by the config.php parameters can now be
overridden directly, there's no reason to keep them around.
2020-04-26 16:43:23 +02:00
talyz
2ba7926959
php.buildEnv: Provide a list of currently enabled extensions
Rework withExtensions / buildEnv to handle currently enabled
extensions better and make them compatible with override. They now
accept a function with the named arguments enabled and all, where
enabled is a list of currently enabled extensions and all is the set
of all extensions. This gives us several nice properties:

 - You always get the right version of the list of currently enabled
   extensions

 - Invocations chain

 - It works well with overridden PHP packages - you always get the
   correct versions of extensions

As a contrived example of what's possible, you can add ImageMagick,
then override the version and disable fpm, then disable cgi, and
lastly remove the zip extension like this:

{ pkgs ? (import <nixpkgs>) {} }:
with pkgs;

let
  phpWithImagick = php74.withExtensions ({ all, enabled }: enabled ++ [ all.imagick ]);

  phpWithImagickWithoutFpm743 = phpWithImagick.override {
    version = "7.4.3";
    sha256 = "wVF7pJV4+y3MZMc6Ptx21PxQfEp6xjmYFYTMfTtMbRQ=";
    fpmSupport = false;
  };

  phpWithImagickWithoutFpmZip743 = phpWithImagickWithoutFpm743.withExtensions (
    { enabled, all }:
      lib.filter (e: e != all.zip) enabled);

  phpWithImagickWithoutFpmZipCgi743 = phpWithImagickWithoutFpmZip743.override {
    cgiSupport = false;
  };
in
  phpWithImagickWithoutFpmZipCgi743
2020-04-26 16:43:05 +02:00
Benjamin Andresen
f6ee88f41e babashka: increase java heap space max to 4500
3g has very long build times and also doesn't build 100% of the time
it's also the new default since:
7fc33dcb21
2020-04-26 13:17:52 +02:00
Frederik Rietdijk
6f873e98f4 Python integration tests: disable for older python 3 versions
because the package that is used as part of the test does not support
older versions.
2020-04-25 07:59:37 +02:00
Frederik Rietdijk
71171b3225 Python tests: test venv from a nix env with Python 3.8
This test was disabled because it did not function yet, however,
apparently it does with 3.8.
2020-04-25 07:59:37 +02:00
Benjamin Andresen
a7f59a5946 babashka: utf8 + nativeBuildinputs fix
utf8: see borkdude/babashka/issues/359
nativeBuildinputs: this PR's review
2020-04-24 19:47:49 +02:00
Benjamin Andresen
07f69d4e37 babashka: 0.0.78 -> 0.0.89 2020-04-24 19:47:33 +02:00
talyz
abedfadd73
php.buildEnv: Respect override
Make buildEnv take earlier overridden values into account by
forwarding all arguments (a merge of generic's arguments, all previous
arguments and the current arguments) to the next invocation of
buildEnv.
2020-04-24 18:48:29 +02:00
talyz
dde5f5f899
php: Make all arguments to a PHP build overridable
Make all arguments to a PHP build overridable; i.e, both configuration
flags, such as valgrindSupport, and packages, such as valgrind:

php.override { valgrindSupport = false; valgrind = valgrind-light; }

This applies to packages built by generic and buildEnv/withExtensions;
i.e, it works with both phpXX and phpXXBase packages.

The following changes were also made to facilitate this:

 - generic and generic' are merged into one function

 - generic now takes all required arguments for a complete build and
   is meant to be called by callPackage

 - The main function called from all-packages.nix no longer takes all
   required arguments for a complete build - all arguments passed to it
   are however forwarded to the individual builds, thus default
   arguments can still be overridden from all-packages.nix
2020-04-24 18:41:53 +02:00
talyz
a463261415
php.buildEnv: Make the exported php package overridable
This implements the override pattern for builds done with buildEnv, so
that we can, for example, write

php.override { fpmSupport = false; }

and get a PHP package with the default extensions enabled, but PHP
compiled without fpm support.
2020-04-24 13:05:37 +02:00
Keshav Kini
7fb25b93a4 acl2: 8.2 -> 8.3 2020-04-23 17:15:41 -07:00
Elis Hirwing
d3605d66ed
php: Set maintainer team as maintainers
Also passthrough the meta of the package to have description,
homepage, license, maintainers and other metadata passed through to
the commonly used attribute.
2020-04-22 06:47:58 +02:00
Frederik Rietdijk
23be4a8b4d Merge master into staging-next 2020-04-21 19:59:56 +02:00
Frederik Rietdijk
cf1a68360e python2: 2.7.17 -> 2.7.18 2020-04-21 11:21:39 +02:00
Matthew Bauer
ff2f2644f8 blas,lapack: use isILP64 instead of is64bit
This is a better name since we have multiple 64-bit things that could
be referred to.

LP64  : integer=32, long=64, pointer=64
ILP64 : integer=64, long=64, pointer=64
2020-04-20 16:02:43 -05:00
Michael Raskin
916aa568a2
Merge pull request #85547 from AshyIsMe/j901
j: 807 -> 901
2020-04-20 00:57:34 +00:00
Aaron Ash
0c454c46f4 j: 807 -> 901
Upgrade j to 901.
Uses the newer build scripts in the make2 directory in the jsource repo.
2020-04-20 06:27:20 +10:00
Matthew Bauer
a2d9f58433
Merge pull request #85512 from ggreif/wasmtime
wasmtime-0.12.0: fix cargoSha256
2020-04-18 22:03:24 -05:00
Gabor Greif
94d88d3b70 wasmtime-0.12.0: fix cargoSha256 2020-04-18 21:30:29 +02:00
Vladimír Čunát
d96487b9ca
Merge branch 'master' into staging-next
Hydra nixpkgs: ?compare=1582510
2020-04-18 07:42:26 +02:00
Matthew Bauer
1c8aba8334 treewide: use blas and lapack
This makes packages use lapack and blas, which can wrap different
BLAS/LAPACK implementations.

treewide: cleanup from blas/lapack changes

A few issues in the original treewide:

- can’t assume blas64 is a bool
- unused commented code
2020-04-17 16:24:09 -05:00
Florian Klink
357be5c66c
Merge pull request #85385 from takikawa/racket-enable-useprefix
racket: use --enable-useprefix configure flag.
2020-04-17 13:17:00 +02:00
Maximilian Bosch
cd5bc89cca
evcxr: 0.5.0 -> 0.5.1
582ce09f21/RELEASE_NOTES.md (version-051)
2020-04-17 00:28:12 +02:00
Asumu Takikawa
b271255ede racket: use --enable-useprefix configure flag.
This is to fix a regression in upstream Racket packaging, the upstream
bug tracking this is here:

  https://github.com/racket/racket/issues/3046

When the bug is fixed this workaround will be unnecessary.
2020-04-16 09:49:21 -07:00
Jan Tojnar
3d8e436917
Merge branch 'master' into staging-next 2020-04-16 10:09:43 +02:00
Joachim Breitner
acc5a9c55f wasmtime: Do not prefix version with v
it seems that this breaks the use of `nix-env -i wasmtime`
2020-04-14 20:23:48 +02:00
Jan Tojnar
a04625379a
Merge branch 'master' into staging-next 2020-04-13 18:50:35 +02:00
R. RyanTM
d744f0f3d7 supercollider: 3.10.4 -> 3.11.0 2020-04-13 00:42:34 -07:00
Gabriel Gonzalez
9f2dd99705 Upate buildDhallPackage to use default version of Dhall
Now that the default version is sufficiently new we don't need to
pin the Dhall version any longer in `buildDhallPackage`
2020-04-11 09:07:58 -07:00
R. RyanTM
7b6ebea667 spidermonkey_68: 68.4.2 -> 68.7.0 2020-04-11 13:01:38 +00:00
Michael Reilly
84cf00f980
treewide: Per RFC45, remove all unquoted URLs 2020-04-10 17:54:53 +01:00
Jan Tojnar
1ab03c3a76
Merge branch 'master' into staging-next 2020-04-10 12:12:56 +02:00
talyz
472d5c187b
php.buildEnv: Don't inherit dev from the original php
mkDerivation uses the dev output in buildInputs if it exits, hence the
php-with-extensions package was never built or put into the path of
packages dependent on it during build. With this fix, the php packages
built with buildEnv or withExtensions don't have any dev outputs;
packages which need the dev output can refer to the phpXXbase packages
instead.
2020-04-08 15:13:07 +02:00
R. RyanTM
d6d2007e7c groovy: 3.0.0 -> 3.0.2 2020-04-07 12:24:19 -07:00
Maximilian Bosch
de083945f2
Merge pull request #84389 from etu/php-updates
php: 7.2.28 -> 7.2.29, 7.3.15 -> 7.3.16, 7.4.3 -> 7.4.4
2020-04-06 17:48:18 +02:00
Frederik Rietdijk
2420184727 Merge staging into staging-next 2020-04-06 08:54:28 +02:00
Mario Rodas
1c7b7c8fee
Merge pull request #84404 from r-ryantm/auto-update/jruby
jruby: 9.2.11.0 -> 9.2.11.1
2020-04-05 19:56:56 -05:00
Mario Rodas
6fca9ab047
Merge pull request #84403 from r-ryantm/auto-update/joker
joker: 0.14.2 -> 0.15.0
2020-04-05 19:55:55 -05:00
R. RyanTM
84c2b8324d jruby: 9.2.11.0 -> 9.2.11.1 2020-04-05 22:06:39 +00:00
R. RyanTM
89840eb7ae joker: 0.14.2 -> 0.15.0 2020-04-05 22:01:56 +00:00
Elis Hirwing
8272ebe961
php72: 7.2.28 -> 7.2.29
Changelog: https://www.php.net/ChangeLog-7.php#7.2.29
2020-04-05 22:22:40 +02:00
Elis Hirwing
1118080dc0
php73: 7.3.15 -> 7.3.16
Changelog: https://www.php.net/ChangeLog-7.php#7.3.16
2020-04-05 22:22:26 +02:00
Elis Hirwing
faf79b6384
php74: 7.4.3 -> 7.4.4
Changelog: https://www.php.net/ChangeLog-7.php#7.4.4
2020-04-05 22:05:16 +02:00
Elis Hirwing
3b6539896b
Merge pull request #83896 from etu/slim-down-default-php-v3
PHP: Make the default package more sane [v3]
2020-04-05 20:00:03 +02:00
Benjamin Hipple
0454fae7ca
Merge pull request #84130 from OmnipotentEntity/rfc45-part2
treewide: quoted urls for RFC45, only the rebuilds
2020-04-05 11:15:20 -04:00
talyz
ca8b8a26e9
php: Add enabledExtensions attribute to PHP derivations
This provides a means to build a PHP package based on a list of
extensions from another.

For example, to generate a package with all default extensions
enabled, except opcache, but with ImageMagick:

php.withExtensions (e:
  (lib.filter (e: e != php.extensions.opcache) php.enabledExtensions)
  ++ [ e.imagick ])
2020-04-05 16:46:38 +02:00
talyz
b4d289a7ae
php: Add missing hash extension to php < 7.4 2020-04-05 16:45:53 +02:00
talyz
1345e5b763
php: Add withExtensions as a simpler alternative to buildEnv 2020-04-05 16:45:47 +02:00
talyz
4ff523f691
php: Simplify php-packages import, rename exts -> extensions 2020-04-05 16:45:41 +02:00
Elis Hirwing
1b69056e46
php: passthru .dev output as well 2020-04-05 16:45:23 +02:00
Elis Hirwing
a2099156ec
php: split php.packages to php.packages and php.extensions
So now we have only packages for human interaction in php.packages and
only extensions in php.extensions. With this php.packages.exts have
been merged into the same attribute set as all the other extensions to
make it flat and nice.

The nextcloud module have been updated to reflect this change as well
as the documentation.
2020-04-05 16:45:17 +02:00
Elis Hirwing
0dc95728ba
nixos/php: Move the pcre tests to the php test attribute 2020-04-05 16:44:59 +02:00
talyz
716fd0e2f5
php.buildEnv: Put the extraConfig snippet after extensions
Make sure all the extensions are loaded first, then read the custom
config where possible.
2020-04-05 16:44:31 +02:00
Elis Hirwing
82cd2fbbf4
php: Wrap the programs and provide an environment variable instead of a flag 2020-04-05 16:44:25 +02:00
talyz
90dcab948c
php.packages: Use derivations for internalDeps in mkExtension
Make mkExtension put headers in the dev output and use them, instead of
a different part of the current source tree, when referring to another
extension by using internalDeps.

This means external extensions can be built against the internal ones.
2020-04-05 16:44:01 +02:00
talyz
b1106a1851
phpPackages: Move phpPackages to php.packages
This means php packages can now refer to other php packages by looking
them up in the php.packages attribute and gets rid of the internal
recursive set previously defined in php-packages.nix. This also means
that in applications where previously both the php package and the
corresponding version of the phpPackages package set had to be
specified, the php package will now suffice.

This also adds the phpWithExtensions parameter to the
php-packages.nix, which can be used by extensions that need a fully
featured PHP executable.
2020-04-05 16:43:50 +02:00
Michael Reilly
e20f308b8e treewide: quoted urls for RFC45, only the rebuilds 2020-04-05 10:17:15 -04:00
volth
5bea90df81 perl: 5.30.1 -> 5.30.2 2020-04-05 13:17:42 +02:00
Frederik Rietdijk
866c5aa090 Merge master into staging-next 2020-04-05 08:33:39 +02:00
AndersonTorres
78cd46512c babashka: 0.0.71 -> 0.0.78 2020-04-04 18:34:09 -03:00
Frederik Rietdijk
92124ed660 Merge master into staging-next 2020-04-03 21:54:40 +02:00
talyz
8924a7de3d
php: Make buildEnv recursive + take extension deps into account
A slight rewrite of buildEnv which:

1. Makes buildEnv recursively add itself to its output, so that it can
   be accessed from any php derivation.

2. Orders the extension text strings according to their internalDeps
   attribute - dependencies have to be put before dependants in the
   php.ini or they will fail to load due to missing symbols.
2020-04-03 10:11:15 +02:00
talyz
282337799b
php: Build an even slimmer base
This moves yet more extensions from the base build to
phpPackages.ext. Some of the extensions are a bit quirky and need
patching for this to work, most notably mysqlnd and opcache.

Two new parameters are introduced for mkExtension - internalDeps and
postPhpize. internalDeps is used to specify which other internal
extensions the current extension depends on, in order to provide them
at build time. postPhpize is for when patches and quirks need to be
applied after running phpize.

Patch notes:

- For opcache, older versions of PHP have a bug where header files are
  included in the wrong order.

- For mysqlnd, the config.h is never included, so we include it in the
  main header file, mysqlnd.h. Also, the configure script doesn't add
  the necessary library link flags, so we add them to the variable
  configure should have added them to.
2020-04-03 10:11:13 +02:00
Ryan Mulligan
b0a65d5953
Merge pull request #83981 from r-ryantm/auto-update/janet
janet: 1.7.0 -> 1.8.1
2020-04-01 15:25:53 -07:00
R. RyanTM
86aa3630a7 janet: 1.7.0 -> 1.8.1 2020-04-01 13:24:36 +00:00
Mario Rodas
3ab49aac64 ruby: remove ruby_2_4 patchset 2020-04-01 12:22:14 +00:00
Mario Rodas
a7f1e9f1ef ruby_2_7: 2.7.0 -> 2.7.1
Changelog: https://www.ruby-lang.org/en/news/2020/03/31/ruby-2-7-1-released/
2020-04-01 12:22:14 +00:00
Mario Rodas
b312ecf34e ruby_2_6: 2.6.5 -> 2.6.6
Changelog: https://www.ruby-lang.org/en/news/2020/03/31/ruby-2-6-6-released/
2020-04-01 12:22:14 +00:00
Mario Rodas
99b09d6b8f ruby_2_5: 2.5.7 -> 2.5.8
Changelog: https://www.ruby-lang.org/en/news/2020/03/31/ruby-2-5-8-released/
2020-04-01 12:22:14 +00:00
Mario Rodas
dd24a2f2a0 ruby: update RVM patchsets 2020-04-01 12:22:14 +00:00
Elis Hirwing
96a5e0c928
php: init phpXYbase packages and make the default php extended by default
Also, add opcache to default extensions since it significantly
increases PHP's performance and is by default enabled on Debian based
distributions. Not having it enabled by default results in a puzzling
performance loss for anyone attempting to migrate from Debian/Ubuntu
to NixOS who is unaware of this. Therefore, enable it by default. /talyz
2020-03-31 22:06:45 +02:00
Jan Tojnar
3e0f4e202f
Merge branch 'master' into staging-next 2020-03-31 21:32:15 +02:00
Greg Price
9d8831c8fe cpython: Drop unrecognized --with-threads configure flag.
The ./configure script prints a warning when passed this flag,
starting with 3.7:

  configure: WARNING: unrecognized options: --with-threads

The reason is that there's no longer such a thing as a build
without threads.

Eliminate the warning, by only passing the flag on the older releases
that accept it.

Upstream change and discussion:
  https://github.com/python/cpython/commit/a6a4dc816
  https://bugs.python.org/issue31370
2020-03-30 22:56:48 -07:00
Frederik Rietdijk
c392d70518 pkgsStatic.python3: fix build 2020-03-30 17:06:38 +02:00
Elis Hirwing
9404daf91c
php: Make a slimmer php as default 2020-03-29 11:06:58 +02:00
Vladimír Čunát
804477b875
Merge #75430: erlangR22: 22.1.7 -> 22.3 2020-03-29 08:41:36 +02:00
Frederik Rietdijk
a36be028f5 Merge staging-next into staging 2020-03-28 21:15:15 +01:00
Jörg Thalheim
774ddebd87
Merge pull request #83472 from Mic92/propragate-darwin-go
Propragate darwin go
2020-03-28 06:57:59 +00:00
Stig Palmquist
62831e1023 rakudo: 2020.02 -> 2020.02.1
dependencies:
moarvm: 2020.02 -> 2020.02.1
nqp: 2020.02 -> 2020.02.1
2020-03-27 02:00:17 -07:00
Jonathan Ringer
279438e7f8 python: add use-pkgs-prefix option to update script 2020-03-27 01:47:30 -07:00
Jörg Thalheim
066db11215
Revert "Merge pull request #83099 from marsam/fix-buildGoModule-packages-darwin"
This reverts commit 4e6bf03504, reversing
changes made to afd997aab6.

Instead we propagate those frameworks from the compiler again
2020-03-27 07:33:21 +00:00
Vladimír Čunát
a533068c3e
Merge #82728: racket: enable building on aarch64 2020-03-24 11:59:03 +01:00
Tor Hedin Brønner
4ee2aac075
spidermonkey_68: init at 68.4.2
mostly copied over

- now uses python3

https://mail.gnome.org/archives/distributor-list/2020-February/msg00000.html
2020-03-24 07:06:55 +01:00
Jan Tojnar
986fbf4799
Merge branch 'staging-next' into staging 2020-03-24 01:51:55 +01:00
Michael Raskin
db4ccddb35
Merge pull request #83185 from idontgetoutmuch/octave-for-macos
Build octave on macos
2020-03-23 08:17:27 +00:00
Dominic Steinitz
6d196e8c92 Build octave on macos 2020-03-23 06:31:11 +00:00
Orivej Desh
1b89aa3f7a Merge branch 'master' into staging 2020-03-23 00:53:16 +00:00
Mario Rodas
618075428b joker: fix build on darwin 2020-03-21 05:29:00 -05:00
Jonathan Ringer
a9c994ad0b python: add pythonNamespacesHook 2020-03-18 12:20:51 -07:00
Mario Rodas
ef35625322
Merge pull request #79920 from r-ryantm/auto-update/groovy
groovy: 2.5.9 -> 3.0.0
2020-03-17 08:28:38 -05:00
cw
98f6a60460 erlangR22: 22.1.7 -> 22.3 2020-03-17 06:54:06 +01:00
Benno Fünfstück
ef3175bcfa racket: enable building on aarch64 2020-03-16 15:23:31 +01:00
Elis Hirwing
f1dfb6e0f5
php: get rid of with lib; used on entire file 2020-03-15 18:04:57 +01:00
Elis Hirwing
6100ac4ab2
php: remove unsupported options
- mcrypt was removed in 7.2
 - mhash was integrated into hash in 7.0
2020-03-15 18:04:25 +01:00
Elis Hirwing
da3384a25d
php: Re-indent main derivation 2020-03-15 10:27:37 +01:00
Frederik Rietdijk
7447fff95a
Fix sys.prefix in case of a Nix env
The prefix will now be correct in case of Nix env.

Note, however, that creating a venv from a Nix env still does not function. This does not seem to be possible
with the current approach either, because venv will copy or symlink our Python wrapper. In case it symlinks
(the default) it won't see a pyvenv.cfg. If it is copied I think it should function but it does not...
2020-03-14 21:39:32 +00:00
adisbladis
753122388d
Python: Add integration test verifying NIX_PYTHONPATH with Mypy 2020-03-14 21:39:32 +00:00
adisbladis
05571d3059
Python Add test for NIX_PYTHONPREFIX 2020-03-14 21:39:31 +00:00
adisbladis
d88a7735d2
Python: introduce NIX_PYTHONPREFIX in order to set site.PREFIXES
This is needed in case of `python.buildEnv` to make sure site.PREFIXES
does not only point to the unwrapped executable prefix.

--------------------------------------------------------------------------------

This PR is a story where your valiant hero sets out on a very simple adventure but ends up having to slay dragons, starts questioning his own sanity and finally manages to gain enough knowledge to slay the evil dragon and finally win the proverbial price.

It all started out on sunny spring day with trying to tackle the Nixops plugin infrastructure and make that nice enough to work with.

Our story begins in the shanty town of [NixOps-AWS](https://github.com/nixos/nixops-aws) where [mypy](http://mypy-lang.org/) type checking has not yet been seen.

As our deuteragonist (@grahamc) has made great strides in the capital city of [NixOps](https://github.com/nixos/nixops) our hero wanted to bring this out into the land and let the people rejoice in reliability and a wonderful development experience.

The plugin work itself was straight forward and our hero quickly slayed the first small dragon, at this point things felt good and our hero thought he was going to reach the town of NixOps-AWS very quickly.

But alas! Mypy did not want to go, it said:
`Cannot find implementation or library stub for module named 'nixops'`

Our hero felt a small sliver of life escape from his body. Things were not going to be so easy.

After some frustration our hero discovered there was a [rule of the land of Python](https://www.python.org/dev/peps/pep-0561/) that governed the import of types into the kingdom, more specificaly a very special document (file) called `py.typed`.
Things were looking good.

But no, what the law said did not seem to match reality. How could things be so?

After some frustrating debugging our valiant hero thought to himself "Hmm, I wonder if this is simply a Nix idiosyncrasy", and it turns out indeed it was.
Things that were working in the blessed way of the land of Python (inside a `virtualenv`) were not working the way they were from his home town of Nix (`nix-shell` + `python.withPackages`).

After even more frustrating attempts at reading the mypy documentation and trying to understand how things were supposed to work our hero started questioning his sanity.
This is where things started to get truly interesting.

Our hero started to use a number of powerful weapons, both forged in the land of Python (pdb) & by the mages of UNIX (printf-style-debugging & strace).

After first trying to slay the dragon simply by `strace` and a keen eye our hero did not spot any weak points.
Time to break out a more powerful sword (`pdb`) which also did not divulge any secrets about what was wrong.

Our hero went back to the `strace` output and after a fair bit of thought and analysis a pattern started to emerge. Mypy was looking in the wrong place (i.e. not in in the environment created by `python.withPackages` but in the interpreter store path) and our princess was in another castle!

Our hero went to the pub full of old grumpy men giving out the inner workings of the open source universe (Github) and acquired a copy of Mypy.
He littered the code with print statements & break points.
After a fierce battle full of blood, sweat & tears he ended up in 20f7f2dd71/mypy/sitepkgs.py and realised that everything came down to the Python `site` module and more specifically https://docs.python.org/3.7/library/site.html#site.getsitepackages which in turn relies on https://docs.python.org/3.7/library/site.html#site.PREFIXES .

Our hero created a copy of the environment created by `python.withPackages` and manually modified it to confirm his findings, and it turned out it was indeed the case.
Our hero had damaged the dragon and it was time for a celebration.

He went out and acquired some mead which he ingested while he typed up his story and waited for the dragon to finally die (the commit caused a mass-rebuild, I had to wait for my repro).

In the end all was good in [NixOps-AWS](https://github.com/nixos/nixops-aws)-town and type checks could run. (PR for that incoming tomorrow).
2020-03-14 21:39:31 +00:00
Frederik Rietdijk
13e7a3e112 Python: introduce tests for interpreters
This adds tests to the passthru of all Python interpreters.
2020-03-14 15:05:37 +01:00
Frederik Rietdijk
dbf125d286 Python: introduce tests for interpreters
This adds tests to the passthru of all Python interpreters.
2020-03-14 15:01:30 +01:00
Graham Christensen
39aac70d74 pythonMinimal: don't include site-customise
Experimenting with patching the site-customize file causes mass
rebuilds for no reason.
2020-03-14 15:02:51 +01:00
Frederik Rietdijk
0c13b0d7d3 Merge staging-next into staging 2020-03-14 14:34:59 +01:00
Nathan van Doorn
dd938aa157 metamath: 0.180 -> 0.181 2020-03-14 03:24:44 +00:00
John Ericson
84497cabd1 Merge remote-tracking branch 'upstream/master' into staging 2020-03-13 17:39:11 -04:00
Maximilian Bosch
37b590dc45
wasmer: 0.13.0 -> 0.16.2 2020-03-12 19:06:47 +01:00
Frederik Rietdijk
21f47e641b Merge staging-next into staging 2020-03-12 12:00:40 +01:00
Frederik Rietdijk
31855d74a3 python3: 3.7.6 -> 3.7.7 2020-03-12 12:00:26 +01:00
Lancelot SIX
605640b294 guile: 2.2.6 -> 2.2.7
See https://lists.gnu.org/archive/html/info-gnu/2020-03/msg00004.html
for release information
2020-03-11 23:56:38 +00:00
Elis Hirwing
5bf47ab9bb
php72: 7.2.27 -> 7.2.28
Changelog: https://www.php.net/ChangeLog-7.php#7.2.28
2020-03-11 20:13:56 +01:00