works on Red Hat Linux, i.e. that is based on glibc version 2.5.
Furthermore, this patch fixes a number of gcc 4.3.3 build errors in glibc 2.5
that occur on both x86 and x86_64. The older version of this library is still
useful for running Nix on a Red Hat host. Newer version of glibc fail to detect
the kernel's capabilities correctly (due to mad patches applied to the kernel
by Red Hat).
The individual changes are:
* Re-activated glibc 2.5 in all-packages.nix.
* Fix incomplete header search path in bootstrap tools.
Gcc-wrapper sets "-B<prefix>" to tell the compiler about its installation
root. Unfortunately, the setting doesn't add $gcc/lib/gcc/*/*/include-fixed
to the search path. That directory is required, however, because it contains
the system-specific "limits.h" file, and the glibc 2.5 builds tries to find
that file via #include_next.
* Support intrinsic functions like __signbit() or atof() correctly to avoid
compile-time conflicts.
* Switch to NPTL. Linuxthreads is no longer supported.
* Added a meta attribute to glibc package.
* Updated nixUnstable to version 0.13pre15614 from trunk. The previous version
failed regression tests.
* Fix more strict type checking in binutils since 2.18.50.0.3.
Without this patch, the build failed on x86, saying:
../sysdeps/i386/fpu/ftestexcept.c: Assembler messages:
../sysdeps/i386/fpu/ftestexcept.c:33: Error: suffix or operands invalid for `fnstsw'
svn path=/nixpkgs/branches/stdenv-updates/; revision=16037
* Added dsymutil to gcc wrapper env on darwin
* turned off make check for gnugrep on darwin
* added --enable-bsd=libs configure flag for gnugrep on darwin
svn path=/nixpkgs/trunk/; revision=16014
in the Nix expression evaluator (namely that comparison of attribute
sets works properly).
* Removed some redundant parentheses in builder-defs.
svn path=/nixpkgs/trunk/; revision=15551
modules for the initial ramdisk if there were no additional kernel
module packages (such as the NVIDIA driver or AUFS), leading to a
kernel panic in the initrd. This was because in that case modprobe
would print paths referring to the kernel path rather than the
module aggregation path, and then `sed "s^$kernel^$out^"' would
silently fail. Fixed.
* Also, use depmod here rather than doing sed hackery on modules.dep.
* Also, `allowMissing' was broken (missing "$" before the variable
name).
svn path=/nixpkgs/trunk/; revision=15394
builders. These are redundant now.
* Inlined some trivial builders.
* Removed a few explicit setup-hook creations. This is done
automatically now if setupHook is set.
* Deleted the initscripts package. NixOS doesn't use it anymore.
svn path=/nixpkgs/branches/stdenv-updates/; revision=15276
* setup.sh: removed some obsolete features, specifically some that
were only used by the old build farm.
* addToSearchPath: removed some parameters that weren't used
anywhere.
svn path=/nixpkgs/branches/stdenv-updates/; revision=15136
otherwise aclocal barfs. Updated the builder to use makeWrapper
* Made Automake 1.10 the default.
* Fixed `make check' in Automake by turning off indented logging in
Make (there is a flag for that now).
* Disabled the `make check' in Automake by default because it takes a
REALLY long time (e.g. more than 2 hours on Cygwin, 50 minutes on
Darwin, 25 minutes on Linux) which is a lot for a package that
otherwise takes 10 seconds to build. We can add a Hydra job with
doCheck enabled to do regression testing.
* make-wrapper: allow --run commands to add additional flags to the
invocation of the wrapped program. An example is the aclocal
wrapper: it adds additional -I ... flags.
* make-wrapper: call the wrapped program .foo-wrapped instead of
.wrapped-foo to make it easier to tell programs apart in `ps'
output.
svn path=/nixpkgs/branches/stdenv-updates/; revision=14885
* Added a function binaryTarball to do a DESTDIR build into
/usr/local. Useful for making statically linked binaries. However,
it may be better to do this in a VM (since if you do it in a Nix
build environment, you can still end up with a lot of Nix
dependencies in your binaries, even if you do static linking).
svn path=/nixpkgs/trunk/; revision=14726
instead of "gcc-4.3.3". This fixed the long-standing annoyance that
you can't distinguish the two in (say) nix-store -qR.
* On x86_64-linux, put $out/lib64 in the RPATH in addition to
$out/lib, because some packages (in particular GCC) put libraries in
$out/lib64 and ended up linking against the wrong library.
* Strip $out/lib64.
* Removed g77_42 because it's exactly the same as gfortran.
svn path=/nixpkgs/branches/stdenv-updates/; revision=14708
"*.tar.bz2 *.tar.gz" and there are no *.tar.gz files. Maybe we
should turn this on in stdenv (nullglob just seems like the right
thing to do in general).
svn path=/nixpkgs/trunk/; revision=14606
of Hydra builds more distinct (e.g. "patchelf-build-0.5pre1234"
instead of just "patchelf-build"). If the version isn't known,
append at least the revision.
* Propagate the release name of the source tarball to Nix builds.
Useful to provide sensible package names in channels.
svn path=/nixpkgs/trunk/; revision=14294
* Create some device nodes in the RPM/Deb disk images, since modern
distributions may not provide any device nodes (they're all
generated by udev).
svn path=/nixpkgs/trunk/; revision=14293
image, otherwise the post-installs script of the "passwd" package
will fail because /etc/login.defs is missing. This also fixes the
Ubuntu 8.10 image generation, woohoo!
svn path=/nixpkgs/trunk/; revision=14217
* Put the Glibc linker flags in front of the GCC linker flags. Needed
for the stdenv-linux bootstrap.
svn path=/nixpkgs/branches/stdenv-updates/; revision=13940
should fix previous problems with GCC 4.3 in compiling C++ code
where e.g. <cassert> has to appear before <assert.h> in the search
path due to the former's use of #include_next. The previous "fix"
broke compilation of C code by placing the C++ include directory
before the Glibc include directory (which would barf on
e.g. <complex.h>, which appears in both).
svn path=/nixpkgs/branches/stdenv-updates/; revision=13806
* checkinstall: get rid of the RUNPATH in the LD_PRELOAD library so
that it works with native Glibc (e.g. in VM builds).
* debBuild: use our own checkinstall. In particular this allows us to
build Debs on x86_64.
svn path=/nixpkgs/trunk/; revision=13608
we run into trouble on Fedora 10 (RPM 4.6), where the default is no
longer /usr/src/something but $HOME/something.
svn path=/nixpkgs/trunk/; revision=13466
by Pjotr Prins a while back. This could also be used to generate
RPMs for packages that don't have a spec-file.
* Added checkinstall to Nixpkgs. However we don't use our own build
yet because with it "make install" segfaults in a Debian VM, while
the pre-built binary does work.
svn path=/nixpkgs/trunk/; revision=13400
(e.g. making source tarballs, doing coverage analysis) to the
Nixpkgs tree. This makes it easier to run build farm jobs locally
since you don't need to check out the "release" tree separately.
Also it means one less input to declare for build farm jobs.
* Removed succeedOnFailure and separate logging of phases. Hydra
doesn't need that.
svn path=/nixpkgs/trunk/; revision=13388
* Updated Debian 4.0 to r4a. Dropped the revision ("r3", "r4a") from
the attribute name since Debian doesn't seem to keep old revisions
available anyway.
svn path=/nixpkgs/trunk/; revision=12849
for userspace networking / Samba again.
* vmtools: use KVM 74 and Linux 2.6.26, and use virtio for networking
/ disk access.
svn path=/nixpkgs/trunk/; revision=12768
fetchurl instantiations, instead of passing the mirrors to fetchurl
instantiations via environment variables. This makes the resulting
store derivations (.drv files) much smaller, which in turn makes
nix-env/nix-instantiate faster (4.8 -> 4.2 seconds on nix-env -qa
--out-path).
svn path=/nixpkgs/trunk/; revision=12695
* An attribute `stdenv_32bit' that returns a stdenv capable of
building 32-bit binaries.
* grub: build on x86_64-linux.
svn path=/nixpkgs/trunk/; revision=12211
libstdc++ headers in the header search path, otherwise libstdc++'s
use of #include_next to include Glibc headers breaks.
svn path=/nixpkgs/trunk/; revision=12195
* rss-glx: fixed the build.
* Removed the OpenGL wrapper stuff, it's no longer needed (thanks to
the RUNPATH you just need to put the appropriate libGL.so in the
LD_LIBRARY_PATH).
svn path=/nixpkgs/trunk/; revision=12093
image (i.e., it can contain any OS that obeys the interface
documented in the comment). See `testFreeBSD' for an example that
performs a build of the ATerm library on FreeBSD 7.0. This will be
used in the build farm to perform builds for platforms for which we
cannot synthesize VM images automatically.
svn path=/nixpkgs/trunk/; revision=11753
* In addition to the `diskImages' set, there now is a `diskImageFuns'
set that holds functions to build a disk image for a specific
distribution, given a list of names of top-level packages that
should be included in the image. This makes it easier to customise
an image (e.g. if you want to build an RPM in an image with some
very specific dependencies that aren't in the default image).
* Added Fedora 6.
svn path=/nixpkgs/trunk/; revision=11513
expression for a Debian closure automatically (so that we don't have
to remember to regenerate those files ourselves). The `import
<derivation>' feature generally shouldn't be used in Nixpkgs, but
since it's only used in the buildfarm it should be fine.
svn path=/nixpkgs/trunk/; revision=11512
from the "primary.xml.gz" file of Fedora and OpenSUSE distributions.
Analogous to the Deb closure generator.
* Image for Fedora 8.
svn path=/nixpkgs/trunk/; revision=11510
- fetchdarcs_2pre added
- flapjax added
- no longer used : annotatedDerivations
- added bleeding edge repos with a tiny nix repository manager which dowloads and
updates repostiries, then creates tar.gz dist files which are used by bleeding_edge_source
(darcs tested only by now)
- added experimental my_environment with example
svn path=/nixpkgs/trunk/; revision=10974
- fetchdarcs_2pre added
- flapjax added
- no longer used : annotatedDerivations
- added bleeding edge repos with a tiny nix repository manager which dowloads and
updates repostiries, then creates tar.gz dist files which are used by bleeding_edge_source
(darcs tested only by now)
- added experimental my_environment with example
svn path=/nixpkgs/branches/stdenv-updates/; revision=10973
merge cleanly right away (kde-4, kernel stuff) so it should be
merged later. But the stdenv stuff is all there.
svn path=/nixpkgs/branches/stdenv-updates-merge/; revision=10793
This is so that the Unison wrapper can be generated with
makeWrapper.
* Use makeWrapper as a buildInput everywhere.
* Updated BitTorrent, cvs2svn.
svn path=/nixpkgs/trunk/; revision=10213
a wrapper script. E.g.
wrapProgram $out/bin/prog --set FOO bar
will create a wrapper around "prog" so that the environment variable
FOO is set to bar. The original program is renamed to
$out/bin/.wrapped-prog.
* Function makeSetupHook to convert a script into a setup hook which
can be included in buildInputs. This makes it easier to use scripts
like makeWrapper.
* Added Bazaar, yet another distributed version management system.
svn path=/nixpkgs/trunk/; revision=10211
mirror:// sites through environment variables, e.g.
NIX_MIRRORS_gnu="ftp://ftp.nluug.nl/pub/gnu/ ftp://ftp.gnu.org/pub/gnu/"
or
NIX_MIRRORS_sourceforge="http://surfnet.dl.sourceforge.net/sourceforge/"
svn path=/nixpkgs/trunk/; revision=9302
fetchurl {
url = http://heanet.dl.sourceforge.net/sourceforge/zapping/zapping-0.9.6.tar.bz2;
md5 = "8306775c6a11de4d72345b5eee970ea6";
};
you can write
fetchurl {
url = mirror://sourceforge/zapping/zapping-0.9.6.tar.bz2;
md5 = "8306775c6a11de4d72345b5eee970ea6";
};
which causes fetchurl to try the SourceForge mirrors listed in the
`sourceforge' attribute in build-support/fetchurl/mirrors.nix.
(They're currently tried in sequence, and the lists of mirrors are
not configurable yet.)
The syntax for mirror URLs is mirror://site/path/to/file, where
`site' is currently one of `sourceforge', `gnu' (mirrors of
ftp://ftp.gnu.org/pub/gnu) and `kernel' (mirrors of
http://www.all.kernel.org/pub/).
svn path=/nixpkgs/trunk/; revision=9197
fetching a file with hash HASH of type TYPE, we first try to
download <base-url>/<type>/<hash>, where <base-url> is one of a list
of mirrors. For instance, given
src = fetchurl {
url = http://releases.mozilla.org/pub/mozilla.org/firefox/releases/2.0.0.6/source/firefox-2.0.0.6-source.tar.bz2;
sha1 = "eb72f55e4a8bf08e8c6ef227c0ade3d068ba1082";
};
and the mirror list [http://nix.cs.uu.nl/dist/tarballs], we first
try to download
eb72f55e4a
and if that fails, we use the original URL.
The list of mirrors is not yet user-configurable.
* `fetchurl' now also accepts an argument `urls' instead of `url' for
a list of alternative download locations, which fetchurl will try in
sequence.
svn path=/nixpkgs/trunk/; revision=9190
can be installed in a user environment without conflict. This is
useful if you need gcov (which isn't symlinked in the GCC wrapper).
svn path=/nixpkgs/trunk/; revision=8809
to the gcc invocation.
If we pass a flag like -Wl, then gcc will call the linker unless it
can figure out that it has to do something else (e.g., because of a
"-c" flag). So if no non-flag arguments are given, don't pass any
linker flags. This catches cases like "gcc" (should just print
"gcc: no input files") and "gcc -v" (should print the version).
svn path=/nixpkgs/trunk/; revision=8644
* Removed substitute, it's part of the generic builder now.
* stdenv-initial (Linux): use the real generic builder script. This
does require that sed is in the path of the builder of the initial
stdenv.
svn path=/nixpkgs/trunk/; revision=7498
* If the environment variable buildCommand is set, then eval that
instead of doing the build phases. This is used by the runCommand
function in all-packages.nix to allow one-lines like
foo = runCommand "foo" {} "mkdir $out; echo foo > $out/foo";
svn path=/nixpkgs/trunk/; revision=7298
`@var@' in the file `src', writing the result to $out, where `var'
is any environment variable starting with a lowercase character.
Example:
genericSubstituter {
src = ./file;
foo = "bla";
shell = bash + "/bin/sh";
};
will replace `@foo@' with `bla' and `@shell@' with
`/nix/store/...-bash-.../bin/sh'.
svn path=/nixpkgs/trunk/; revision=6928
we use the GCC wrapper in a user environment, the wrong assembler
will be called. This is not usually a problem, but sometimes it is
(e.g., when using G++ 4.1.1 with binutils 2.16 or so).
svn path=/nixpkgs/trunk/; revision=6862
Glibc. This is useful when building GCC.
* gcc-wrapper: the dynamic linker has a different name on x86_64 and
powerpc.
* gcc-wrapper: "glibc" -> "libc", because someday we might support
different C libraries.
* gcc: don't do a multilib build (e.g., 32-bit support on x86_64),
don't need it.
* gcc: merge in support for static builds.
* gcc: various simplifications in the compiler/linker flags, hope they
work.
svn path=/nixpkgs/trunk/; revision=6823
contains arbitrary information about a package, like this:
meta = {
homepage = "http://gcc.gnu.org/";
license = "GPL/LGPL";
description = "GNU Compiler Collection, 4.0.x";
};
The "meta" attribute is not passed to the actual derivation
operation, so it's not a dependency --- changes to "meta" attributes
don't trigger a recompilation.
Now we have to standardise some useful attributes ;-)
svn path=/nixpkgs/branches/usability/; revision=5024
Even though you could just inherit binutils it is conceptually cleaner (I
think) to make these tools available here.
svn path=/nixpkgs/trunk/; revision=4967
* added an experimental fetchdarcs function, based on fetchsvn
(there are no expressions yet that use this function)
svn path=/nixpkgs/trunk/; revision=4615
in /usr/lib/libGL.so.1 (which will typically load a driver in
/usr/X11R6/lib/modules/dri). This has been tested on a i915
graphics card; it should work with most open source X.org drivers.
For NVidia's proprietary drivers (which we cannot build ourselves
anyway), some more symlinks are necessary; I'll add those later.
So to get hardware-accelerated Quake 3, do:
$ nix-env -p /nix/var/nix/profiles/opengl -i xorg-sys-opengl
$ nix-env -i quake3-demo
$ quake3
svn path=/nixpkgs/trunk/; revision=4613
allow the OpenGL implementation to be overriden through the
OPENGL_DRIVER environment variable. If it is not set, we use the
implementation installed in the profile
/nix/var/nix/profiles/opengl, allowing easy late binding by the
user, e.g.,
$ nix-env -p /nix/var/nix/profiles/opengl -i nvidia-sys-opengl
might install the NVidia OpenGL implementation.
The code that does this is not specific to Quake 3: it has been
factored out into build-support/opengl/mesa-switch.sh. Presumably
any application that requires hardware-accelerated OpenGL needs it.
* Add the Quake 3 demo to the cache.
svn path=/nixpkgs/trunk/; revision=4612
server's certificate. This is perfectly safe: we don't care whether
the server is being spoofed --- only the cryptographic hash of the
output matters.
svn path=/nixpkgs/trunk/; revision=4377
right thing. This is necessary to make libtool detect g++
properly. (Fixes the `libtool: compile: unable to infer tagged
configuration' error on FreeBSD when building Berkeley DB 4.4.)
svn path=/nixpkgs/trunk/; revision=4370
* Use the system Perl on all non-i686-linux platforms.
* Don't build Python support in libxml2 on most platforms.
svn path=/nixpkgs/trunk/; revision=3019
`*.dll.config' files corresponding to CLR assemblies. I.e., the
full path to native libraries is included in the maps. In effect
this allows us to set the equivalent of an RPATH for assemblies.
* gtk-sharp: use the DLL fixer. It's not perfect yet: I still have to
set the LD_LIBRARY_PATH for monodoc to include the gtk-sharp lib
directory itself, so that it can find the `*sharpglue.so' files.
This seems to be gtk-sharp's fault; it doesn't have an entry for
those libraries in its DLL maps.
svn path=/nixpkgs/trunk/; revision=2330
this contains mostly Armijn's pure stdenv-linux.
* After unpacking the statically linked GCC, patch all store paths to
/nix/store/ffffffffffffffffffffffffffffffff. Ugly hack to prevent
undeclared references but it works.
* We don't need Glib's dynamic libraries in the first bootstrap stage;
delete them. Actually the downloaded Glibc binary is only needed
for building Glibc, since GCC needs a C compiler to build some
programs in `configure'. So static linking is fine for that. Maybe
it would be better to patch `configure' so that we don't need a
pre-built Glibc at all.
* Set the svn:executable property on `cp' and `patchelf'.
* In Glibc, revert to LinuxThreads. Maybe NPTL will work, but TLS
support is a problem.
* Delete most Glibc patches; they're no longer needed since the branch
updated it to 20050110.
* Some cleanups.
svn path=/nixpkgs/trunk/; revision=2258
files easier. Examples:
substitute inputFile outputFile \
--replace "@bindir@" "$out/bin" \
--replace "@gcc@" "$GCC/bin/gcc"
substitute inputFile outputFile --subst-var out
(this is sugar for --replace "@out@" "$out")
substituteInPlace file --replace a b
(input and output are both `file'; the execute bit is preserved)
svn path=/nixpkgs/trunk/; revision=2239
the tree being fetched from a Subversion repository. The revision
number is now optional (and defaults to HEAD).
This makes `fetchsvn' more pure. First, a URL/revision tuple does
not uniquely identify a file resource, since the repository itself
might change. Second, `svn:external' attributes can cause arbitrary
resources to be exported.
A script `nix-prefetch-svn' has been provided to determine the hash
of a URL.
svn path=/nixpkgs/trunk/; revision=938