Commit graph

4612 commits

Author SHA1 Message Date
Eelco Dolstra b92bd0f001 * Don't use i686-linux.nix.
svn path=/nixpkgs/trunk/; revision=5046
2006-03-15 21:35:18 +00:00
Eelco Dolstra 439e93640e * Removed readlink.
svn path=/nixpkgs/trunk/; revision=5040
2006-03-15 10:32:40 +00:00
Eelco Dolstra baec8f5b38 * stdenv.mkDerivation now takes an optional attribute "meta" that
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
2006-03-10 16:12:46 +00:00
Armijn Hemel bdf35869f6 make sure we can find things like mips-linux-ar, mips-linux-strip, and so on.
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
2006-03-02 18:03:20 +00:00
Andres Löh 70c36821c6 * updated darcs to 1.0.5, added curl dependency
* added an experimental fetchdarcs function, based on fetchsvn
  (there are no expressions yet that use this function)

svn path=/nixpkgs/trunk/; revision=4615
2006-01-30 11:18:38 +00:00
Eelco Dolstra 410f21887a * A quick hack to get accelerated OpenGL working: just use the driver
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
2006-01-28 01:13:31 +00:00
Eelco Dolstra 7f74c406c4 * In Quake 3, by default use Mesa as the OpenGL implementation. But
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
2006-01-28 00:41:16 +00:00
Eelco Dolstra 07687a8514 * Pipe the "p" character into Subversion to force it to accept the
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
2005-12-15 17:21:20 +00:00
Eelco Dolstra 51c111cb2e * Use a restrictive umask to prevent permission problems.
svn path=/nixpkgs/trunk/; revision=4374
2005-12-15 17:00:56 +00:00
Eelco Dolstra ded942b341 * Make sure that `gcc -v' (i.e., with no other arguments) does the
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
2005-12-15 13:37:36 +00:00
Eelco Dolstra 82e678362f * "." -> "source".
svn path=/nixpkgs/trunk/; revision=4335
2005-12-05 14:11:09 +00:00
Armijn Hemel 508cd3a3e8 add a wrapper for cross compilers, which makes the correct link to the cross compiler. Only works for "gcc", haven't tried for g++ and the others
svn path=/nixpkgs/trunk/; revision=4317
2005-11-29 01:40:33 +00:00
Eelco Dolstra 6f8e9bc2f6 * Make the grep call optional.
svn path=/nixpkgs/trunk/; revision=3330
2005-07-13 09:07:54 +00:00
Eelco Dolstra a85877edaf * r3317 was wrong: grep should be applied to gcc's stderr, not stdout.
svn path=/nixpkgs/trunk/; revision=3329
2005-07-13 08:45:57 +00:00
Eelco Dolstra 620d5b9d4a * Make gcc work properly again in nix-env installations (e.g., when
used outside of builders).

svn path=/nixpkgs/trunk/; revision=3317
2005-07-12 14:02:36 +00:00
Eelco Dolstra b691c30aa7 * Remove FreeBSD gcc wrapper.
svn path=/nixpkgs/trunk/; revision=3187
2005-06-17 09:25:16 +00:00
Eelco Dolstra 9cc0ac9090 * Merge r3019.
svn path=/nixpkgs/trunk/; revision=3186
2005-06-17 09:23:15 +00:00
Eelco Dolstra 0217d8b204 * Add a simple standard environment for FreeBSD.
* 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
2005-05-10 12:59:28 +00:00
Eelco Dolstra 71ea4dbb8c * Fix for *non*-suid installations.
svn path=/nixpkgs/trunk/; revision=2546
2005-04-12 13:48:36 +00:00
Eelco Dolstra df2a7e5168 * F-spot: work properly if an incompatible Mono is in the PATH.
svn path=/nixpkgs/trunk/; revision=2392
2005-03-13 20:43:04 +00:00
Eelco Dolstra 6b25f34d77 * Allow variables to be set to a specific value.
svn path=/nixpkgs/trunk/; revision=2359
2005-03-09 19:07:23 +00:00
Eelco Dolstra 9efa069a65 * Added a tool `mono-dll-fixer' to absolutise the DLL maps in the
`*.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
2005-03-03 17:19:58 +00:00
Eelco Dolstra ba20e223f1 * Use a hash over the entire SVN exported tree.
svn path=/nixpkgs/trunk/; revision=2279
2005-02-22 21:15:13 +00:00
Eelco Dolstra fa88e75c45 * Use fixed-output hashes in fetchsvn.
* In nix-prefetch-svn, support setuid installations where the user has
  no write access to the Nix store.

svn path=/nixpkgs/trunk/; revision=2275
2005-02-22 16:27:28 +00:00
Eelco Dolstra 44a1f60787 * md5' -> id' in compatibility mode.
svn path=/nixpkgs/trunk/; revision=2273
2005-02-22 15:34:58 +00:00
Eelco Dolstra 4eba4a211e * Check the hash, but only on Nix <= 0.7.
svn path=/nixpkgs/trunk/; revision=2272
2005-02-22 15:23:56 +00:00
Eelco Dolstra 2e0380b7a0 * Use the generic substituter in the generation of stdenv and gcc-wrapper.
svn path=/nixpkgs/trunk/; revision=2269
2005-02-22 14:32:56 +00:00
Eelco Dolstra ecd2596677 * Do the generic sed thing for Glibc.
* Remove debug stuff from ld-wrapper.

svn path=/nixpkgs/trunk/; revision=2261
2005-02-21 17:57:53 +00:00
Eelco Dolstra e6744d0f89 * Merge diff between trunk/pkgs@1646 and branches/nixos-pkgs@2256;
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
2005-02-21 16:03:34 +00:00
Eelco Dolstra cdaecff49f * Use Nix 0.8-style fixed outputs.
svn path=/nixpkgs/trunk/; revision=2257
2005-02-21 15:52:37 +00:00
Eelco Dolstra eeff1fcdd1 * More wrapper generation features. The Firefox wrapper generator is
now just 3 lines.

svn path=/nixpkgs/trunk/; revision=2243
2005-02-16 11:38:52 +00:00
Eelco Dolstra 3bf404a3f2 * Let the Mozilla plugins announce where in their output the actual
plugins are, rather then requiring certain fixed directories.

svn path=/nixpkgs/trunk/; revision=2242
2005-02-16 11:24:40 +00:00
Eelco Dolstra b930967805 * A utility function for the automatic generation of wrapper scripts.
svn path=/nixpkgs/trunk/; revision=2241
2005-02-16 11:13:18 +00:00
Eelco Dolstra cbdd91f2a6 * Some utility functions to make performing substitutions in text
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
2005-02-15 17:44:03 +00:00
Armijn Hemel 4b16211201 use new kernel headers
svn path=/nixpkgs/branches/nixos-pkgs/; revision=2053
2005-01-18 13:16:42 +00:00
Eelco Dolstra 60e7948db1 * Allow a known hash to be specified.
svn path=/nixpkgs/trunk/; revision=1892
2004-12-17 11:04:18 +00:00
Eelco Dolstra 2a3f5188b5 * Option to print out the path, analogous to nix-prefetch-url.
svn path=/nixpkgs/trunk/; revision=1890
2004-12-17 10:40:00 +00:00
Armijn Hemel aad382248f add modified gcc-wrapper
svn path=/nixpkgs/branches/nixos-pkgs/; revision=1793
2004-11-22 16:36:27 +00:00
Eelco Dolstra 5808ac7148 * Renamed Martin's linker derivation to `make-symlinks'.
* Propagate name automatically.

svn path=/nixpkgs/trunk/; revision=1409
2004-09-16 12:38:10 +00:00
Eelco Dolstra 2bf90b3fbf * gcc-wrapper: inherit gcc's name by default.
* gcc: upgraded to 3.4.1.

  Zie je wel, Martin, gcc is niet eng :-)

svn path=/nixpkgs/trunk/; revision=1128
2004-07-05 12:00:19 +00:00
Eelco Dolstra 5c847a370a * fetchsvn' now requires the MD5 hash (as computed by nix-hash') of
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
2004-04-14 10:55:33 +00:00
Eelco Dolstra 9c55897afc * Accept relative paths such as -I ..' (-I..' was already being
accepted).

svn path=/nixpkgs/trunk/; revision=924
2004-04-07 14:15:54 +00:00
Eelco Dolstra beaff0a892 * Ensure that when building gcc, libstdc++ is linked against the
libgcc of the gcc being built, not the gcc building it.
* Only include a directory in the rpath of an executable/library if it
  is actually used.  Before, the `/lib' directory of every build input
  was added to the rpath, causing many unnecessary retained
  dependencies.  For instance, Perl has a `/lib' directory, but most
  applications whose build process uses Perl don't actually link
  against Perl.  (Also added a test for this.)
* After building glibc, remove glibcbug, to prevent a retained
  dependency on gcc.
* Add a newline after `building X' in GNU Make.

svn path=/nixpkgs/trunk/; revision=911
2004-04-04 22:02:41 +00:00
Eelco Dolstra 1550034ac4 * Various bug fixes in setup.sh and ld-wrapper.sh.
svn path=/nixpkgs/trunk/; revision=909
2004-04-02 17:49:44 +00:00
Eelco Dolstra 7bf54b734e * Follow redirects.
svn path=/nixpkgs/trunk/; revision=899
2004-04-01 19:10:37 +00:00
Eelco Dolstra ab7af4709a * Add `--fail' to curl invocation to catch errors.
svn path=/nixpkgs/trunk/; revision=889
2004-04-01 12:23:02 +00:00
Eelco Dolstra 01a1658c6b * Finally we have a working stdenvLinux again.
On the downside, the build process of stdenvLinux builds gcc 9 times
  (3 x 3 bootstrap stages).  That's a bit excessive.

svn path=/nixpkgs/trunk/; revision=880
2004-03-30 12:46:52 +00:00
Eelco Dolstra 8ed9ea8b51 * Use a Nix shell for gcc-wrapper and ld-wrapper.
svn path=/nixpkgs/trunk/; revision=875
2004-03-29 17:34:00 +00:00
Eelco Dolstra 12ae5363ea * Remove trivial builders.
* 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
2004-03-29 17:23:01 +00:00
Eelco Dolstra 4df6ec860c * Typo fix.
svn path=/nixpkgs/trunk/; revision=850
2004-03-27 15:44:05 +00:00
Eelco Dolstra 5941f66f0e * The stdenv setup script now defines a generic builder that allows
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
2004-03-19 16:53:04 +00:00
Eelco Dolstra 0fd59fd7a4 * Re-enabled purity checking: it should work now. First we only
checked whether absolute paths passed to gcc/ld refer to the store,
  which is wrong: they can also refer to the build tree
  (/tmp/nix-...).

* Less static composition in the construction of stdenv-nix-linux:
  gcc-wrapper and generic are now passed in as arguments, rather then
  referenced by relative path.  This makes it easier to hack on a
  specific stage of the bootstrap process (before, a change to, e.g.,
  generic/setup.sh would cause all bootstrap stages to be redone).

svn path=/nixpkgs/trunk/; revision=833
2004-03-12 11:12:18 +00:00
Eelco Dolstra de13527000 * Finally got stdenv-nix-linux working again. Still not perfect,
though.
* libxml2: upgrade to latest.
* octavefront/rna: keep debug info.

svn path=/nixpkgs/trunk/; revision=830
2004-03-11 17:26:14 +00:00
Eelco Dolstra b8b4f9ce4b * Reject inputs outside of the store in ld if NIX_ENFORCE_PURITY is
set.
* Various bug fixes.

svn path=/nixpkgs/trunk/; revision=824
2004-03-09 17:08:41 +00:00
Eelco Dolstra 5c5db47443 * Set a flag to indicate whether we're doing a native build.
svn path=/nixpkgs/trunk/; revision=821
2004-03-09 10:36:45 +00:00
Eelco Dolstra 946a2d4a48 * gcc-wrapper now filters out -L and -I flags referring to paths
outside the store (in pure builds).

svn path=/nixpkgs/trunk/; revision=817
2004-03-08 18:29:08 +00:00
Eelco Dolstra ce50734cf0 * Started reorganising stdenv:
- gcc/ld-wrappers have been factored out into a separate
    derivation.  This allows a working gcc to be installed in the user
    environment.  (Previously the Nix gcc didn't work because it
    needed a whole bunch of flags to point to glibc.)
    
  - Better modularity: packages can specify hooks into the setup
    scripts.  For instance, setup no longer knows about the
    PKG_CONFIG_PATH variable; pkgconfig can set it up instead.

  - gcc not longer depends on binutils.  This simplifies the bootstrap
    process.

svn path=/nixpkgs/trunk/; revision=816
2004-03-08 16:02:46 +00:00
Martin Bravenboer 067726f3e2 * Added the j2sdk of Sun for Linux. Downloading this thing is
a big problem, so I decided to require to user to get the
          file and put it in some location in the file system. wget
          doesn't seem to accept the file scheme however, so I had to
          move the copying into the builder itself. The builder checks
          the md5 hash of the downloaded file. Maybe having a separate
          'fetchfile' would be useful to make a file in the outside
          world pure. I tried to add this to build-support, but this
          obviously did not work. I still committed it. Just remove it
          if you think that it sucks.

svn path=/nixpkgs/trunk/; revision=716
2004-01-24 23:46:00 +00:00
Eelco Dolstra 38bc744a0b * Use md5sum instead of nix-hash.
svn path=/nixpkgs/trunk/; revision=584
2003-12-21 16:00:17 +00:00
Eelco Dolstra 003ce6c40d * A function to fetch sources from a Subversion repository.
svn path=/nixpkgs/trunk/; revision=544
2003-11-25 17:38:48 +00:00
Eelco Dolstra 026ff9466a * Rename .fix -> .nix.
svn path=/nixpkgs/trunk/; revision=511
2003-11-18 12:12:56 +00:00
Eelco Dolstra 48c3faca51 * Renamed pkgs-ng to pkgs.
svn path=/nixpkgs/trunk/; revision=502
2003-11-14 09:59:13 +00:00