I currently do not have much time to work on nixpkgs. Remove
myself as a maintainer from a bunch of packages to avoid that
people are waiting on me for a review.
The default value of INSTALLFLAGS is "-m 555 -s", -s being the option
to run the "strip" program on the installed files. When
cross-compiling, we don't have a strip program (we have
"${stdenv.cc.targetPrefix}strip"), so install fails.
The simplest fix for this is to just remove -s from INSTALLFLAGS,
since stdenv will automatically strip all installed binaries at the
end anyway.
* git-chglog: 0.9.1 -> 0.14.2
* added homepage and using buildFlagsArray instead buildPhase
* battop: init a version v0.2.4
battop is an interactive viewer, similar to top, htop and other *top utilities, but about the batteries installed in your notebook.
* fix name in mantainers list
* some fixes
- remove unused imports
- formatting
- remove defaults options
- enable checks
* short description
The reason for this change is explained in the long comment I added.
Here's a simple example of the problem:
let
pkgs = import <nixpkgs> { crossSystem.system = "aarch64-linux"; };
in
pkgs.callPackage ({ stdenv, s6-rc }: stdenv.mkDerivation {
name = "s6-rc-compiled";
nativeBuildInputs = [ s6-rc ];
buildCommand = ''
mkdir in
s6-rc-compile $out in
'';
}) {}
We're cross compiling for aarch64 here, so we'd expect the scripts
generated by this derivation to be things we could run on aarch64.
But when I build this on my x86_64 machine, without this change
applied, $out/servicedirs/s6rc-oneshot-runner/run gets generated full
of references to x86_64 non-cross store paths for execline, s6, and
s6-rc.
With this change applied, the scripts generated by the above
expression now refer to the cross-compiled aarch64 store paths for
execline, s6, and s6-rc.