Commit graph

4260 commits

Author SHA1 Message Date
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
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
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