Age | Commit message (Collapse) | Author | Files | Lines |
|
|
|
treewide: Get rid of -dumpmachine in favor of static info
|
|
|
|
Add a simple hook that makes sure blas and lapack are linked to the
right place.
|
|
This is based on previous work for switching between BLAS and LAPACK
implementation in Debian[1] and Gentoo[2]. The goal is to have one way
to depend on the BLAS/LAPACK libraries that all packages must use. The
attrs “blas” and “lapack” are used to represent a wrapped BLAS/LAPACK
provider. Derivations that don’t care how BLAS and LAPACK are
implemented can just use blas and lapack directly. If you do care what
you get (perhaps for some CPP), you should verify that blas and lapack
match what you expect with an assertion.
The “blas” package collides with the old “blas” reference
implementation. This has been renamed to “blas-reference”. In
addition, “lapack-reference” is also included, corresponding to
“liblapack” from Netlib.org.
Currently, there are 3 providers of the BLAS and LAPACK interfaces:
- lapack-reference: the BLAS/LAPACK implementation maintained by netlib.org
- OpenBLAS: an optimized version of BLAS and LAPACK
- MKL: Intel’s unfree but highly optimized BLAS/LAPACK implementation
By default, the above implementations all use the “LP64” BLAS and
LAPACK ABI. This corresponds to “openblasCompat” and is the safest way
to use BLAS/LAPACK. You may received some benefits from “ILP64” or
8-byte integer BLAS at the expense of breaking compatibility with some
packages.
This can be switched at build time with an override like:
import <nixpkgs> {
config.allowUnfree = true;
overlays = [(self: super: {
lapack = super.lapack.override {
lapackProvider = super.lapack-reference;
};
blas = super.blas.override {
blasProvider = super.lapack-reference;
};
})];
}
or, switched at runtime via LD_LIBRARY_PATH like:
$ LD_LIBRARY_PATH=$(nix-build -E '(with import <nixpkgs> {}).lapack.override { lapackProvider = pkgs.mkl; is64bit = true; })')/lib:$(nix-build -E '(with import <nixpkgs> {}).blas.override { blasProvider = pkgs.mkl; is64bit = true; })')/lib ./your-blas-linked-binary
By default, we use OpenBLAS LP64 also known in Nixpkgs as
openblasCompat.
[1]: https://wiki.debian.org/DebianScience/LinearAlgebraLibraries
[2]: https://wiki.gentoo.org/wiki/Blas-lapack-switch
|
|
|
|
buildRustCrate: support proc-macro in default prelude
|
|
buildRustCrate: Allow version specific dependency renaming + parameter doc
|
|
|
|
build-bazel-package: fix linkopt flags
|
|
These values were incorrect. We need to use NIX_LDFLAGS, not
NIX_LD_FLAGS. Also need to prefix all flags with -Wl, for GCC to
accept it.
|
|
|
|
|
|
I know, heretic, but...
I also know that this is not perfect but it is a good start, I think. It
would be nice if this were part of the automatic "nixdoc" function
reference. I'd like guidance if this should be part of the rust section
or something else.
|
|
PHP: Make the default package more sane [v3]
|
|
Introduce the internalDeps attribute used by mkExtension, to refer to
internal php extensions built by mkExtension.
|
|
|
|
releaseTools: no-op expression cleanup
|
|
|
|
This change fixes byte compilation of, e.g., Helm without breaking
builds using, e.g., `trivialBuild`.
See https://github.com/NixOS/nixpkgs/pull/82604#issuecomment-607201755
|
|
Unbreak os prober test
|
|
|
|
|
|
"Application" is deprecated, "Other" is invalid, there are no generic
categories, and the Categories fields is optional per the spec.
Fixes the defaults after #75729.
|
|
makeDesktopItem: add desktop file validation
|
|
Most of the skaware packages already build just fine with pkgsStatic,
however the wrapper scripts for execline and stdnotify-wrapper needed
the `-lskarlib` argument to go at the end.
`utmps` and `nsss` still fail with this error:
```
exec ./tools/install.sh -D -m 600 utmps-utmpd /bin/utmps-utmpd
/build/utmps-0.0.3.1/tools/install.sh: line 48: can't create /bin/utmps-utmpd.tmp.479: Permission denied
make: *** [Makefile:121: /bin/utmps-utmpd] Error 1
```
|
|
|
|
This reverts commit a50653295df5e2565b4a6a316923f9e939f1945b.
The reasons cited were “debugging”, in which case
you can just add the attribute to `buildSkawarePackage`
and “customizing”, which is still possible with
a normal `overrideDerivation`.
The patch removed `outputs` for some reason
(possible oversight), so building nsss failed.
Plus lots of complexity (e.g. don’t forget to add new
arguments to `removeAttrs` otherwise there’s a bug now).
|
|
referenced packets were removed from the mirrors
Fixes #77396 #80041
|
|
This will improve cross-compiling support by forcing
users to specify buildInputs/nativeBuildInputs correctly.
|
|
|
|
...and remove superfluous dependency files (*.d).
...and copy dSYM directories on Mac OS when in release=false mode.
|
|
|
|
As it turns out Darwin does most of the things differently then "normal"
systems. They are using a different shared library extension and require
an obscure commandline parameter that has to be added to every build
system out there. That issue seems to be with clang on Darwin as on
Linux that flag isn't required to build the very same tests (when using
clang).
After adjusting these two details the tests are running fine on the
darwin box that I was able to obtain.
|
|
buildRustCrate: don't sort link flags
|
|
|
|
This is a slight readability boost, I think.
|
|
whitespace"
|
|
fetchzip, fetchgit: cleanup handling of optional features and whitespace
|
|
Linkage order is significant and sorting can result in link errors.
|
|
|
|
|
|
|
|
No functional change, was just reading through these and cleaning/sanitizing
them a bit while I'm here.
|
|
|
|
buildRustCrate: only link build deps into build script
|
|
Misc fixes for armv6 bare metal cross
|
|
We have now migrated every single Rust package in NixPkgs! This deletes the
legacy fetcher, which is now unused.
Resolves #79975
|
|
Lumping it in with the target platform libraries was incorrect, and
caused eval failures when gcc couldn't be built for the target platform.
|
|
- Add packages installed in a sub-directory of site-lisp, such as
mu4e, to EMACSLOADPATH.
- Add ELPA packages to EMACSLOADPATH.
- Add each package only once to EMACSLOADPATH. Before, each package
would typically be added twice for each transitive dependency
leading to a huge variable for a package having many dependencies.
Fixed #78680
|