about summary refs log tree commit diff
path: root/src/libutil
AgeCommit message (Collapse)AuthorFilesLines
2004-11-08 * Fix broken format string.Eelco Dolstra1-1/+1
2004-11-03 * string2ATerm -> overloaded toATerm.Eelco Dolstra2-0/+17
2004-10-29 * Drop ATmake / ATMatcher also in handling store expressions.Eelco Dolstra4-204/+0
2004-09-10 * Operation `--delete-generations' to delete generations of aEelco Dolstra2-0/+12
profile. Arguments are either generation number, or `old' to delete all non-current generations. Typical use: $ nix-env --delete-generations old $ nix-collect-garbage * istringstream -> string2Int.
2004-09-09 * A very dirty hack to make setuid installations a bit nicer to use.Eelco Dolstra1-0/+10
Previously there was the problem that all files read by nix-env etc. should be reachable and readable by the Nix user. So for instance building a Nix expression in your home directory meant that the home directory should have at least g+x or o+x permission so that the Nix user could reach the Nix expression. Now we just switch back to the original user just prior to reading sources and the like. The places where this happens are somewhat arbitrary, however. Any scope that has a live SwitchToOriginalUser object in it is executed as the original user. * Back out r1385. setreuid() sets the saved uid to the new real/effective uid, which prevents us from switching back to the original uid. setresuid() doesn't have this problem (although the manpage has a bug: specifying -1 for the saved uid doesn't leave it unchanged; an explicit value must be specified).
2004-08-18 * The default verbosity level of all Nix commands is now lvlInfo.Eelco Dolstra1-1/+1
* Builder output is written to standard error by default. * The option `-B' is gone. * The option `-Q' suppresses builder output. The result of this is that most Nix invocations shouldn't need any flags w.r.t. logging.
2004-08-04 * Creating a file nix-support/no-scan in the output path of aEelco Dolstra1-1/+1
derivation disables scanning for dependencies. Use at your own risk. This is a quick hack to speed up UML image generation (image are very big, say 1 GB). It would be better if the scanner were faster, and didn't read the whole file into memory.
2004-06-25 * A flag `--keep-going / -k' to keep building goals if one fails, asEelco Dolstra1-9/+8
much as possible. (This is similar to GNU Make's `-k' flag.) * Refactoring to implement this: previously we just bombed out when a build failed, but now we have to clean up. In particular this means that goals must be freed quickly --- they shouldn't hang around until the worker exits. So the worker now maintains weak pointers in order not to prevent garbage collection. * Documented the `-k' and `-j' flags.
2004-06-22 * Some more diagnostics changes.Eelco Dolstra1-2/+2
2004-06-22 * Put WEXITSTATUS stuff somewhere else.Eelco Dolstra2-0/+8
2004-06-22 * Wrapper class around pids.Eelco Dolstra2-0/+125
2004-06-22 * Refactoring.Eelco Dolstra2-0/+18
2004-06-20 * Refactoring.Eelco Dolstra2-0/+50
2004-06-15 * Refactoring.Eelco Dolstra2-1/+39
2004-05-12 * An quick and dirty hack to support distributed builds.Eelco Dolstra2-2/+11
2004-05-11 * Ignore interrupt signals while handling an exception.Eelco Dolstra1-4/+15
* Ignore EINTR in reads and writes.
2004-04-23 * Pass SYSTEM through config.h, and allow spaces.Eelco Dolstra2-1/+3
2004-03-27 * Disallow the Nix store or any of its parents from being symlinks.Eelco Dolstra1-5/+8
This is because the contents of these symlinks are not incorporated into the hashes of derivations, and could therefore cause a mismatch between the build system and the target system. E.g., if `/nix/store' is a symlink to `/data/nix/store', then a builder could expand this path and store the result. If on the target system `/nix/store' is not a symlink, or is a symlink that points somewhere else, we have a dangling pointer. The trigger for this change is that gcc 3.3.3 does exactly that (it applies realpath() to some files, such as libraries, which causes our impurity checker to bail out.) An annoying side-effect of this change is that it makes it harder to move the Nix store to a different file system. On Linux, bind mounts can be used instead of symlink for this purpose (e.g., `mount -o bind /data/nix/store /nix/store').
2004-03-27 * Do not close a nesting level twice after close() has beenEelco Dolstra1-0/+1
called explicitly on a Nest object.
2004-03-22 * Some more nesting.Eelco Dolstra2-10/+27
2004-03-22 * Nix now has three different formats for the log information itEelco Dolstra2-6/+34
writes to stderr: - `pretty': the old nested style (default) - `escapes': uses escape codes to indicate nesting and message level; can be processed using `log2xml' - `flat': just plain text, no nesting These can be set using `--log-type TYPE' or the NIX_LOG_TYPE environment variable.
2004-02-16 * Allow linking against an external Berkeley DB / ATerm library.Eelco Dolstra1-2/+2
2004-02-06 * Use the profile pointed to by ~/.nix-profile if no --profileEelco Dolstra1-1/+1
argument is specified.
2004-01-15 * Catch SIGINT to terminate cleanly when the user tries to interruptEelco Dolstra3-0/+36
Nix. This is to prevent Berkeley DB from becoming wedged. Unfortunately it is not possible to throw C++ exceptions from a signal handler. In fact, you can't do much of anything except change variables of type `volatile sig_atomic_t'. So we set an interrupt flag in the signal handler and check it at various strategic locations in the code (by calling checkInterrupt()). Since this is unlikely to cover all cases (e.g., (semi-)infinite loops), sometimes SIGTERM may now be required to kill Nix.
2004-01-05 * Implemented Eelco V.'s `nix-env -I' command to specify the defaultEelco Dolstra3-4/+19
path of the Nix expression to be used with the import, upgrade, and query commands. For instance, $ nix-env -I ~/nixpkgs/pkgs/system/i686-linux.nix $ nix-env --query --available [aka -qa] sylpheed-0.9.7 bison-1.875 pango-1.2.5 subversion-0.35.1 ... $ nix-env -i sylpheed $ nix-env -u subversion There can be only one default at a time. * If the path to a Nix expression is a symlink, follow the symlink prior to resolving relative path references in the expression.
2003-12-22 * Upgrade operation in `nix-env'. For instance, you can sayEelco Dolstra1-1/+2
nix-env -u foo.nix strategoxt to replace the installed `strategoxt' derivation with the one from `foo.nix', if the latter has a higher version number. This is a no-op if `strategoxt' is not installed. Wildcards are also accepted, so nix-env -u foo.nix '*' will replace any installed derivation with newer versions from `foo.nix', if available. The notion of "version number" is somewhat ad hoc, but should be useful in most cases, as evidenced by the following unit tests for the version comparator: TEST("1.0", "2.3", -1); TEST("2.1", "2.3", -1); TEST("2.3", "2.3", 0); TEST("2.5", "2.3", 1); TEST("3.1", "2.3", 1); TEST("2.3.1", "2.3", 1); TEST("2.3.1", "2.3a", 1); TEST("2.3pre1", "2.3", -1); TEST("2.3pre3", "2.3pre12", -1); TEST("2.3a", "2.3c", -1); TEST("2.3pre1", "2.3c", -1); TEST("2.3pre1", "2.3q", -1); (-1 = less, 0 = equal, 1 = greater) * A new verbosity level `lvlInfo', between `lvlError' and `lvlTalkative'. This is the default for `nix-env', so without any `-v' flags users should get useful output, e.g., $ nix-env -u foo.nix strategoxt upgrading `strategoxt-0.9.2' to `strategoxt-0.9.3'
2003-12-01 * Fix `make check'.Eelco Dolstra1-1/+1
2003-12-01 * Use a system name that does not include the OS manufacturer (i.e.,Eelco Dolstra1-1/+1
"i686-linux" instead of "i686-suse-linux").
2003-11-25 * More `make dist' fixes.Eelco Dolstra1-3/+2
2003-11-25 * Allow integer bindings in derivations.Eelco Dolstra2-1/+17
2003-11-22 * Fix the garbage collector.Eelco Dolstra2-0/+16
2003-11-19 * nix-env: a tool to manage user environments.Eelco Dolstra3-37/+33
* Replace all directory reading code by a generic readDirectory() function.
2003-11-18 * "Nix expression" -> "store expression".Eelco Dolstra2-0/+18
* More refactoring.
2003-11-18 * Source tree refactoring.Eelco Dolstra12-0/+1904