aboutsummaryrefslogtreecommitdiff
path: root/configure.ac
AgeCommit message (Collapse)Author
2012-09-14Test whether GNU tar understands --warning=no-timestampEelco Dolstra
http://hydra.nixos.org/build/3031618
2012-08-27WhitespaceEelco Dolstra
2012-08-01Use a GNU tar flag to shut up warnings about implausibly old timestampEelco Dolstra
2012-07-26Merge branch 'master' into no-manifestsEelco Dolstra
2012-07-23Handle platforms that don't support linking to a symlinkEelco Dolstra
E.g. Darwin doesn't allow this.
2012-07-23Use lutimes() if available to canonicalise the timestamp of symlinksEelco Dolstra
Also use utimes() instead of utime() if lutimes() is not available.
2012-07-09Add WWW::Curl as a dependencyEelco Dolstra
2012-06-29Use XZ compression in binary cachesEelco Dolstra
XZ compresses significantly better than bzip2. Here are the compression ratios and execution times (using 4 cores in parallel) on my /var/run/current-system (3.1 GiB): bzip2: total compressed size 849.56 MiB, 30.8% [2m08] xz -6: total compressed size 641.84 MiB, 23.4% [6m53] xz -7: total compressed size 621.82 MiB, 22.6% [7m19] xz -8: total compressed size 599.33 MiB, 21.8% [7m18] xz -9: total compressed size 588.18 MiB, 21.4% [7m40] Note that compression takes much longer. More importantly, however, decompression is much faster: bzip2: 1m47.274s xz -6: 0m55.446s xz -7: 0m54.119s xz -8: 0m52.388s xz -9: 0m51.842s The only downside to using -9 is that decompression takes a fair amount (~65 MB) of memory.
2012-05-10Support building with the Perl XS bindings disabledEelco Dolstra
Since the Perl bindings require shared libraries, this is required on platforms such as Cygwin where we do a static build.
2012-05-04Require SQLite >= 3.6.19Eelco Dolstra
Nix needs SQLite's foreign key constraint feature, which was introduced in 3.6.19. Without it, the database won't be cleaned up correctly when paths are deleted. See e.g. http://hydra.nixos.org/build/2494142.
2012-04-13If "pv" is available at compile time, hard-code its pathEelco Dolstra
2012-03-19Fix the optional dependency on OpenSSLEelco Dolstra
http://hydra.nixos.org/build/2306540
2012-03-18Drop the externals directoryEelco Dolstra
Nix now requires SQLite and bzip2 to be pre-installed. SQLite is detected using pkg-config. We required DBD::SQLite anyway, so depending on SQLite is not a big problem. The --with-bzip2, --with-openssl and --with-sqlite flags are gone.
2012-02-15On Linux, make the Nix store really read-only by using the immutable bitEelco Dolstra
I was bitten one time too many by Python modifying the Nix store by creating *.pyc files when run as root. On Linux, we can prevent this by setting the immutable bit on files and directories (as in ‘chattr +i’). This isn't supported by all filesystems, so it's not an error if setting the bit fails. The immutable bit is cleared by the garbage collector before deleting a path. The only tricky aspect is in optimiseStore(), since it's forbidden to create hard links to an immutable file. Thus optimiseStore() temporarily clears the immutable bit before creating the link.
2012-01-11* Figure out the extension of dynamic libraries; don't hard-code .so.Eelco Dolstra
2012-01-05* Add a -I flag to the Perl bindings to nix-build and some otherEelco Dolstra
scripts. * Include the version and architecture in the -I flag so that there is at least a chance that a Nix binary built for one Perl version will run on another version.
2012-01-04* Let --disable-gc work.Eelco Dolstra
2012-01-03* Add a test for nix-channel.Eelco Dolstra
* Refactor the nix-channel unpacker a bit.
2011-11-21* Doh.Eelco Dolstra
2011-11-21* Put back the "sys_name" variable which got removed somewhere. ThisEelco Dolstra
broke building on Cygwin and Solaris.
2011-11-21* Escape the [ and ] characters in the sed call, otherwise autoconfEelco Dolstra
will eat them.
2011-11-20* "sed" on FreeBSD doesn't know the "+" operator.Eelco Dolstra
2011-11-18* In the platform, canonicalise "amd64" to "x86_64". FreeBSD 8.2'sEelco Dolstra
uname reports amd64. * Drop the FreeBSD version number, e.g. "i686-freebsd" instead of "i686-freebsd8.2".
2011-11-16configure: Change i*86 to i686 as has always been done.Ludovic Courtès
2011-11-16configure: Rely on `AC_CANONICAL_HOST' to determine the Nix system name.Ludovic Courtès
This should be more robust and also plays better with cross-compilation---it uses the host name, instead of using the build name.
2011-11-07* Boldly make SQLite WAL mode the default again. Hopefully theEelco Dolstra
intermittent problems are gone by now. WAL mode is preferrable because it does way fewer fsyncs.
2011-10-10* Install NixManifest.pm, NixConfig.pm and GeneratePatches.pm underEelco Dolstra
the Nix:: namespace.
2011-10-10* Include the Nix Perl bindings in Nix itself. This will allow theEelco Dolstra
bindings to be used in Nix's own Perl scripts. The only downside is that Perl XS and Automake/libtool don't really like each other, so building is a bit tricky.
2011-07-13* Show the default for --with-store-dir (Nix/211).Eelco Dolstra
2011-07-04(no commit message)Eelco Dolstra
2011-06-27(no commit message)Eelco Dolstra
2011-06-27(no commit message)Eelco Dolstra
2011-05-03* Use SQLite 3.7.6.2.Eelco Dolstra
2011-04-11* configure: detect whether DBD::SQLite is present. If necessary theEelco Dolstra
location to DBI and DBD::SQLite can be passed with --with-dbi and --with-dbd-sqlite.
2011-02-10* Don't allocate a big initial GC address space on machines withEelco Dolstra
little RAM. Even if the memory isn't actually used, it can cause problems with the overcommit heuristics in the kernel. So use a VM space of 25% of RAM, up to 384 MB.
2011-02-09Use $BDW_GC_LIBS instead of a custom variable.Ludovic Courtès
2011-02-09* A better fix. $boehmgc isn't set anywhere, we should use the flagsEelco Dolstra
returned by pkg-config.
2011-02-08(no commit message)Eelco Dolstra
2010-12-17* Do a short sleep after SQLITE_BUSY.Eelco Dolstra
2010-12-10* Use SQLite 3.7.4.Eelco Dolstra
2010-11-16* Sync with the trunk.Eelco Dolstra
2010-10-29* Use pkgconfig to locate the Boehm GC (as suggested by Ludo), ifEelco Dolstra
--enable-gc is given.
2010-10-22* Make building against the Boehm GC a configure option.Eelco Dolstra
2010-10-04* If std::tr1::unordered_set is unavailable, use std::set.Eelco Dolstra
2010-08-27(no commit message)Eelco Dolstra
2010-08-12* Urgh, this was supposed to go in the trunk...Eelco Dolstra
2010-08-12* Don't link against pthreads. This was added way back in r211Eelco Dolstra
because Berkeley DB needed it on some platforms, but we don't use BDB anymore. On FreeBSD, if you link against pthreads, then the main thread gets a 2 MB stack which cannot be overriden (it ignores "ulimit -s"): http://www.mail-archive.com/freebsd-hackers@freebsd.org/msg62445.html This is not enough for Nix. For instance, the garbage collector can fail if there is a pathologically deep chain of references (http://hydra.nixos.org/build/556199). 2 MB is also not enough for many Nix expressions. Arguably the garbage collector shouldn't use recursion, because in NixOS unprivileged users can DOS the garbage collector by creating a sufficiently deeply nested chain of references. But getting rid of recursion is a bit harder.
2010-08-06* Use SQLite 3.7.0.1.Eelco Dolstra
2010-08-04* Sync with the trunk.Eelco Dolstra
2010-08-04* Use SQLite 3.7.0's write-ahead logging (WAL mode). This is a lotEelco Dolstra
faster than the old mode when fsyncs are enabled, because it only performs an fsync() when doing a checkpoint, rather than at every commit. Some timings for doing a "nix-instantiate /etc/nixos/nixos -A system" after modifying the stdenv setup script: 42.5s - SQLite 3.6.23 with truncate mode and fsync 3.4s - SQLite 3.6.23 with truncate mode and no fsync 32.1s - SQLite 3.7.0 with truncate mode and fsync 16.8s - SQLite 3.7.0 with WAL mode and fsync, auto-checkpoint every 1000 pages 8.3s - SQLite 3.7.0 with WAL mode and fsync, auto-checkpoint every 8192 pages 1.7s - SQLite 3.7.0 with WAL mode and no fsync The default is now to use WAL mode with fsyncs. Because WAL doesn't work on remote filesystems such as NFS (as it uses shared memory), truncate mode can be re-enabled by setting the "use-sqlite-wal" option to false.