This commit splits the `buildPythonPackage` into multiple setup hooks.
Generally, Python packages are built from source to wheels using `setuptools`.
The wheels are then installed with `pip`. Tests were often called with
`python setup.py test` but this is less common nowadays. Most projects
now use a different entry point for running tests, typically `pytest`
or `nosetests`.
Since the wheel format was introduced more tools were built to generate these,
e.g. `flit`. Since PEP 517 is provisionally accepted, defining a build-system
independent format (`pyproject.toml`), `pip` can now use that format to
execute the correct build-system.
In the past I've added support for PEP 517 (`pyproject`) to the Python
builder, resulting in a now rather large builder. Furthermore, it was not possible
to reuse components elsewhere. Therefore, the builder is now split into multiple
setup hooks.
The `setuptoolsCheckHook` is included now by default but in time it should
be removed from `buildPythonPackage` to make it easier to use another hook
(curently one has to pass in `dontUseSetuptoolsCheck`).
- Lua packages now consistently use LUA_PATH/LUA_CPATH rather than a mix
of those and NIX_LUA_PATH/NIX_LUA_CPATH
- Lua libraries are now consistently only added to the search path
variables if:
1) The library actually has a corresponding directory to search
2) The library is not already present in the search path
This should help prevent the search paths from growing overly large
- Fixed bugs in some path helpers
- Changed the affected shell script indentation to 2 spaces; nixpkgs
shell scripts are inconsistently split between 2 and 4 space
indentation, but 2 matches better with the Nix expressions, so IMO it
makes more sense
We don’t want cpython picking up /Library/Frameworks and
/System/Library/Frameworks which contains Tcl.framework. Instead it
should use the one provided by Nix. this would not be an issue if
sandboxing was enabled, but unfortunately that has its own issues.
Fixes#66647
There ver very many conflicts, basically all due to
name -> pname+version. Fortunately, almost everything was auto-resolved
by kdiff3, and for now I just fixed up a couple evaluation problems,
as verified by the tarball job. There might be some fallback to these
conflicts, but I believe it should be minimal.
Hydra nixpkgs: ?compare=1538299
Per https://www.php.net/manual/en/intro.mhash.php, mhash extension
is obsolete, so disabling it here. (Also it doesn't cross-compile)
**Warning**: This could be a breaking change for some packages that
are very old and rely on this extension, maintainer discretion is
advised.
This builds Python without optional dependencies.
We can't just use python3.override, as things like
python3Minimal.withPackages would pass the wrong python derivation into
these modules.
Stop hardcoding 10.10 as the platform when building. Instead we'll use
$MACOSX_DEPLOYMENT_TARGET so erlang doesn't have to be updated again the
next time that's changed.
This is essentially the same as done in
65f2b0a2a3.
For spidermonkey_38 I set --enable-posix-nspr-emulation, as it would
otherwise complain about a wrong NSPR version and that trick seemed to
be successful in spidermonkey_60 anyway.
The `cargoSha256` hashes across the sourcetree had to be altered after
the last `cargo-vendor` bump. Also ensured that `cc` is available in
`$PATH` to avoid startup errors in the REPL.
Turns out fixing this only in importlib is not sufficient and we
need to backport CPython part of the fix too.
This patch is based on https://hg.python.org/cpython/rev/c16063765d3a
but because the code around is different there are some changes (C-strings
instead of Python objects etc.)
With this patch Tensorflow builds successfully on many-core machine.
This commit adds a Nix-specific module that recursively adds paths that
are on `NIX_PYTHONPATH` to `sys.path`. In order to process possible
`.pth` files `site.addsitedir` is used.
The paths listed in `PYTHONPATH` are added to `sys.path` afterwards, but
they will be added before the entries we add here and thus take
precedence.
The reason for adding support for this environment variable is that we
can set it in a wrapper without breaking support for `PYTHONPATH`.
Updates jdk dependency from 8 to 11. Clojure 1.10.0 added support for
jdk11, and was released with a new develper tool: REBL
(https://github.com/cognitect-labs/REBL-distro). REBL depends on javafx,
currently only supported on Nix by jdk11 (see #63574)
PHP 7.1 is currently on life support, as in only recieving security related patches.
This will only continue until: 2019-12-01
This date are in the middle of the 19.09 lifecycle. So it would be
nice to not have it in the 19.09 stable release. Dropping it now would
also result in less maintanance in updating them.
The death dates can be seen on following links:
- https://endoflife.date/php
- https://php.net/supported-versions.php
- https://en.wikipedia.org/wiki/PHP#Release_history
This is python bug https://bugs.python.org/issue13146. Fixed since
python 3.4. It makes pyc creation atomic, preventing a race condition.
The patch has been rebased on our deterministic build patch.
It wasn't backported to python 2.7 because there was a complaint about
changed semantics. Since files are now created in a temporary directory
and then moved, symlinks will be overridden. See
https://bugs.python.org/issue17222.
That is an edge-case however. Ubuntu and debian have backported the fix
in 2013 already, making it mainstream enough for us to adopt.
`"lua" + lua.luaversion + "-"` resolves to "lua51-" for both Lua
5.1 and LuaJIT packages. With this, LuaJIT packages instead get
`lua.name + "-"`, which currently resolves to "luajit-2.1.0-beta3-".
This makes it easy to distinguish the two in store paths etc.
https://software-lab.de/doc/httpGate.html
httpGate is a central element of the PicoLisp application server
architecture. Its purpose is to perform the following tasks:
* Provide a single application entry port (e.g. 80 or 443).
* Allow PicoLisp applications to run as non-root.
* Start application servers on demand.
* Handle HTTPS/SSL communication.
This is in preparation for adding Erlang/OTP 22 which no longer has a
`configure.in` and fails to build with the current
`generic-builder.nix`, but it should work for all supported, previous
versions of Erlang (R18–R21) as well.
Fixes#62775
Currently, trying to use help results in something like this:
```
: (help 'db)
========================================
w3m: Can't exec
=======================================
```
By including `w3m` as an input, the behaviour changes to:
```
: (help 'db)
========================================
(db 'sym 'cls ['hook] 'any ['sym 'any ..]) -> sym | NIL
Returns a database object of class cls, where the values for the sym arguments
correspond to the any arguments. If a matching object cannot be found, NIL is
returned. sym, cls and hook should specify a tree for cls or one of its
superclasses. See also aux, collect, request, fetch, init and step.
========================================
-> db
```
Summary of main changes:
- Now makes use of luarocks dependency resolution (builds will fail if
rockspec dependencies are unmet)
- Renamed argument `external_deps` -> `exernalDeps` and add
functionality to handle external dependencies that are multiple-output
derivations
- Added an `extraVariables` argument for appending to the contents of
luarocks config `variables` table
- The `rockspecFilename` argument default is now actually used
- The `disabled` argument can now be overriden with a less-restrictive
check, as it now just sets `meta.broken` instead of throwing an error
during eval
- The `doCheck` argument is now actually honored if set to `true`
A recent upgrade of cargo-vendor changed its output slightly, which
broke all cargoSha256 hashes in nixpkgs.
See https://github.com/NixOS/nixpkgs/issues/60668 for more information.
Since then, a few hashes have been fixed in master by hand, but there
were a lot still to do, so I did all of the ones left over with some
scripts I wrote.
The one hash I wasn’t able to update was habitat's, because it’s
currently broken and the build doesn’t get far enough to produce a
hash anyway.