The file is an example makefile for developing bash plugins, and
contains stuff like:
````
example: example.o
$(SHOBJ_LD) $(SHOBJ_LDFLAGS) $(SHOBJ_XLDFLAGS) -o $@ example.o $(SHOBJ_LIBS)
````
So no package is really going to depend on that, and it's making the
.dev output keep a reference to the bootstrap tools. Just nuke it.
Because if you don't, the configure script assumes that your getcwd()
function is broken. Which then makes bash use it's own getcwd()
implementation, which doesn't work if the path to the current directory
contains bind mounts in its paths. This shows up as:
shell-init: error retrieving current directory: getcwd: cannot access parent directories: Bad file descriptor
... and fails the aarch64 glibc build with sandboxes enabled.
Sigh.
- there were many easy merge conflicts
- cc-wrapper needed nontrivial changes
Many other problems might've been created by interaction of the branches,
but stdenv and a few other packages build fine now.
Parallel building randomly fails because bash's Makefiles at some
point do a recursive make invocation to build a file "version.h":
../version.h: ../config.h ../Makefile Makefile
-( cd ${BUILD_DIR} && ${MAKE} ${MFLAGS} version.h )
As a result, both the parent and the child can end up building
version.h at the same time. This causes the build to fail with
mv: cannot stat `newversion.h': No such file or directory
http://hydra.nixos.org/build/3853249
Including the bash-completion package in bash itself sounded like a good idea
at the time, but it wasn't. After having actually integrated completion support
into NixOS, it has become obvious that this property isn't required at all.
Keeping bash-completion separate from bash works just fine. Anyone who wants
completion support can just install that package.
svn path=/nixpkgs/trunk/; revision=29467
Add the command-line completion library to the "interactive" version of
bash. That code is *not* active by default. To enable it, run
| . ${bash}/etc/bash_completion
in your ~/.bashrc. If you prefer to build bashInteractive without that
feature, use the following override in ~/.nixpkgs/config.nix to disable it:
| {
| packageOverrides = pkgs:
| {
| bashInteractive = pkgs.bashInteractive.override {
| bashCompletion = null;
| };
| };
| }
svn path=/nixpkgs/trunk/; revision=29244
linking path), and with this achieved bash being cross-compilable.
I fixed the few expressions involved in bash building, so they have well stated
native and non-native inputs.
I also tried to cross-build guile, and with this I found a problem in the
actual cross-gcc: it calls the binutils ld, instead of the ld wrapper. This
way, the programs/shared_libraries don't get the proper -rpath.
svn path=/nixpkgs/branches/stdenv-updates/; revision=18497
This comes from:
svn diff ^/nixpkgs/trunk/@18255 ^/nixpkgs/branches/stdenv-updates/ > diff
patch -p0 < diff
and then adding into svn all files new from the patch.
trunk@18255 comes from the last time I updated stdenv-updates from trunk.
svn path=/nixpkgs/stdenv-updates2/; revision=18272
Changed the built-in default $PATH to /no-such-path. (This also
applies to the "standard utilities path" used by "command -p", so
that doesn't work anymore, but it didn't work anyway on NixOS and
nobody uses it.) Include the startup files for non-interactive
login shells. Use bashrc when started from ssh.
svn path=/nixpkgs/trunk/; revision=12365
* Make builders unexecutable by removing the hash-bang line and
execute permission.
* Convert calls to `derivation' to `mkDerivation'.
* Remove `system' and `stdenv' attributes from calls to
`mkDerivation'. These transformations were all done automatically,
so it is quite possible I broke stuff.
* Put the `mkDerivation' function in stdenv/generic.
svn path=/nixpkgs/trunk/; revision=874
builders for typical Autoconf-style to be much shorten, e.g.,
. $stdenv/setup
genericBuild
The generic builder does lots of stuff automatically:
- Unpacks source archives specified by $src or $srcs (it knows about
gzip, bzip2, tar, zip, and unpacked source trees).
- Determines the source tree.
- Applies patches specified by $patches.
- Fixes libtool not to search for libraries in /lib etc.
- Runs `configure'.
- Runs `make'.
- Runs `make install'.
- Strips debug information from static libraries.
- Writes nested log information (in the format accepted by
`log2xml').
There are also lots of hooks and variables to customise the generic
builder. See `stdenv/generic/docs.txt'.
* Adapted the base packages (i.e., the ones used by stdenv) to use the
generic builder.
* We now use `curl' instead of `wget' to download files in `fetchurl'.
* Neither `curl' nor `wget' are part of stdenv. We shouldn't
encourage people to download stuff in builders (impure!).
* Updated some packages.
* `buildinputs' is now `buildInputs' (but the old name also works).
* `findInputs' in the setup script now prevents inputs from being
processed multiple times (which could happen, e.g., if an input was
a propagated input of several other inputs; this caused the size
variables like $PATH to blow up exponentially in the worst case).
* Patched GNU Make to write nested log information in the format
accepted by `log2xml'. Also, prior to writing the build command,
Make now writes a line `building X' to indicate what is being
built. This is unfortunately often obscured by the gigantic tool
invocations in many Makefiles. The actual build commands are marked
`unimportant' so that they don't clutter pages generated by
`log2html'.
svn path=/nixpkgs/trunk/; revision=845