Pyside requires several tools that do not provide Python modules. They
therefore do not need to be build Python-version dependent and so we
move them out of `python-packages.nix`.
Furthermore, shiboken needs libxml2 and libxslt libraries but not their
Python bindings.
The default installation path for QPA plugins is appended to
QT_QPA_PLATFORM_PLUGIN_PATH, making it unnecessary to wrap some applications and
preventing applications from loading platform plugins from the wrong Qt version.
this silence annoying warnings happens in nixos-rebuild
activating the configuration...
setting up /etc...
syswrite() is deprecated on :utf8 handles at /nix/store/d51apm4c8mr5hiwh134vdkzgivf4hrl7-perl-File-Slurp-9999.19/lib/perl5/site_perl/5.24.1/File/Slurp.pm line 506.
syswrite() is deprecated on :utf8 handles at /nix/store/d51apm4c8mr5hiwh134vdkzgivf4hrl7-perl-File-Slurp-9999.19/lib/perl5/site_perl/5.24.1/File/Slurp.pm line 506.
...
syswrite() is deprecated on :utf8 handles at /nix/store/d51apm4c8mr5hiwh134vdkzgivf4hrl7-perl-File-Slurp-9999.19/lib/perl5/site_perl/5.24.1/File/Slurp.pm line 506.
setting up tmpfiles
`stack setup` should not be called inside `nix-build` because
that makes stack download a GHC instead of using nix's one
(the one provided `generic-stack-builder.nix` as the `ghc` argument),
which will not work.
Further evidence for this is that the `stack --nix` support
intentionally uses `--system-ghc` for the same purpose.
In configured builds other tools tries to call meson by directly
passing meson tools directly to python. Since they were shell scripts
due wrapping this failed
See previous commit for what was done to `binutils` to make this
possible.
There were some uses of `forcedNativePackages` added. The
combination of overrides with that attribute is highly spooky: it's
often important that if an overridden package comes from it, the
replaced arguments for that package come from it. Long term this
package set and all the spookiness should be gone and irrelevant:
"Move along, nothing to see here!"
No hashes should be changed with this commit
We want code such as `(pkg.override {}).overrideScope (self: super: {})` to
work. This didn't work before, since `override` will call the original package
again, and the attribute `overideScope`, which `callPackageWithScope` added,
wasn't added again. The fix for this is to modify the package function itself
to include the `callPackageWithScope` attribute, so it'll be re-added whenever
the function is overriden for with arguments.
There is a small problem here though: since callPackage uses some magic
(`builtins.functionArgs`) to determine the auto-arguments of a function, we
can't just write `callPackageWith scope drvScope`, since
`builtins.functionArgs drvScope` will be `{}`. To fix this, we implement our own
`callPackageWith`.
Fixes https://github.com/NixOS/nixpkgs/issues/7953.
Closes https://github.com/NixOS/nixpkgs/pull/9336.
(this is reapplying 6b1957d17a, which got
lost in a merge)
Including apple_sdk.sdk is generally a recipe for a bad time on LLVM 3.8
and above, since you end up with bad headers in the wrong place that hurt
the new libc++ in 3.8 and above. In this case, qt only wanted the super-
generic SDK for CUPS headers, which we can just depend on directly now.
stdenv.cross is a silly attribute that needs to go leaving the well-defined hostPlatform and targetPlatform. This PR doesn't remove it, but changes its definition: before it tracked the target platform which is sometimes more useful for compilers, and now it tracks the host platform which is more useful for everything else. Most usages are libraries, falling in the "everything else" category, so changing the definition makes sense to appease the majority. The few compiler (gcc in particular) uses that exist I remove to use targetPlatform --- preserving correctness and becoming more explicit in the process.
I would also update the documentation aside mentioning stdenv.cross as deprecated, but the definition given actually erroneously assumes this PR is already merged!
The previous commit redefines `stdenv.cross` for the sake of normal
libaries, the most common use-case of that attribute. Some compilers
however relied on the old definition so we have them use
`targetPlatform` instead. This special casing is fine because we
eventually want to remove `stdenv.cross` and use either `hostPlatform`
or `targetPlatform` instead.
This reverts commit 9f86136cef.
Rust is nowadays required for building Firefox, so the channel updates
are blocked on this.
(It also builds fine for me.)
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.