This reverts commit 9f86136cefbd3e050b96a307346278fe9ad8a5bf.
Rust is nowadays required for building Firefox, so the channel updates
are blocked on this.
(It also builds fine for me.)
- `ccWrapperFun` can be used in a few more places instead of
duplicating its definition.
- `ccWrapper` parameter on `wrapCC` is always substituted with
`ccWrapperFun` so just get rid of that parameter.
This change fixes several defects in the way `wrapGAppsHook` selected
the executable to wrap.
Previously, it would wrap any top-level files in the target `/bin` and
`/libexec` directories, including directories and non-executable
files. In addition, it failed to wrap files in subdirectories.
Now, it uses `find` to iterate over these directory hierarchies,
selecting only executable files for wrapping.
The new version needs TZ configured to a value other than "UTC" for the test
suite to succeed. Otherwise, an assumption in "reg-tests-1d.R" won't hold that
expects
d <- as.POSIXlt("2016-12-06"); d$zone <- 1; format(d)
to throw an error about an invalid time zone.
Split outputs mean that the "include" folder from PHP gets placed into a
"dev" derivation. However php-config is not aware of this, which means
that compiling extensions with phpize fails with an error about being
unable to find header files (see #24357, #24420). This fixes that by:
1. passing the `--includedir` flag to `configure` so that `php-config`
gives the correct paths.
2. moving the `phpize` and `php-config` scripts and man pages to the
dev derivation, to prevent cylic references.
3. ensuring that the `configure` script arguments are stripped from
all binaries, including `php-embed`, to prevent cyclic references.
In the wrapper scripts, both OCAMLPATH and CAML_LD_LIBRARY_PATH where
being created with a trailing literal $OCAMLPATH, rather than the
expanded version. Thus if, for example, ocamlPackages.core was present
in OCAMLPATH prior to running utop, the wrapper script would set the
variable to $utop_dependencies:'$OCAMLPATH', and when using utop to
open Core.Std, the following error was reported:
findlib: [WARNING] cannot read directory $OCAMLPATH: No such file
or directory
This patch fixes the quoting issue, and further refactors the build to
use standard wrapProgram helper, and uses an "inner derivation" to
re-use the setupHook machinery of buildOCaml and findlib instead of
manually specifying the OCAMLPATH required for utop along with
transitive dependencies.
This changes much of the make-disk-image.nix logic (and thus most NixOS
image building) to use LKL to set up the target directory structure rather
than a Linux VM. The only work we still do in a VM is less IO-heavy stuff
that while still time-consuming, is less of the overall load. The goal is
to kill more of that stuff, but that will require deeper changes to NixOS
activation scripts and switch-to-configuration.pl, and I don't want to
bite off too much at once.