[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
branch nix deleted (was 0dccab9f41)
From: |
guix-commits |
Subject: |
branch nix deleted (was 0dccab9f41) |
Date: |
Mon, 18 Sep 2023 16:46:53 -0400 (EDT) |
civodul pushed a change to branch nix
in repository guix.
was 0dccab9f41 Typo
This change permanently discards the following revisions:
discard 0dccab9f41 Typo
discard 2cd28517b1 Preserve supplementary groups of build users
discard 6e38685ef6 GC: Handle ENOSPC creating/moving to the trash directory
discard 5e0a9ae2e2 Use posix_fallocate to create /nix/var/nix/db/reserved
discard 4e5ab98d6d Make /nix/var/nix/db/reserved bigger
discard 60bda60fc0 Export outputPaths function
discard 5dfea34048 Use std::vector::data()
discard 2459458bc8 Allow substitutes for builds that have preferLocalBuild set
discard e531520ddc Don't let unprivileged users repair paths
discard 715478fe09 Add a ‘verifyStore’ RPC
discard 64a998ebcb Revert /nix/store permission back to 01775
discard 44f1b1851c Chroot builds: Provide world-readable /nix/store
discard b6ecbd266f addToStore(): Take explicit name argument
discard 1f595ba474 Tighten permissions on chroot directories
discard ba5888bccd Fix typos: s/the the/the/
discard 67af480244 Use chroots for all derivations
discard 638f3675e1 Use pivot_root in addition to chroot when possible
discard 8ab23f2924 Simplify parseHash32
discard 70c3d2f176 Simplify printHash32
discard 7a7a15877f Doh^2
discard 8c94a864d8 Doh
discard 35605c4407 Set /nix/store permission to 1737
discard 0b9c4a8b80 libutil: Limit readLink() error to only overflows.
discard 0fed5fde65 libutil: Improve errmsg on readLink size mismatch.
discard 7dfd3f5c8f Pedantry
discard 45a145c8b2 Explicitly include required C headers
discard 66d086cc26 Better error message
discard b499d2efbf Silence some warnings on GCC 4.9
discard 159b7103a7 Shut up a Valgrind warning
discard 7930b2cb76 Fix some memory leaks
discard 5c84e4950d Ensure we're writing to stderr in the builder
discard ccade8c120 Get rid of unnecessary "interrupted by the user" message
with -vvv
discard 8d9a0be278 Remove tabs
discard 1f8456ff13 Use PR_SET_PDEATHSIG to ensure child cleanup
discard 909f1260e2 Rename 'initChild' to 'runChild'.
discard 3bfa70b796 Don't wait for PID -1
discard 5241aec531 Build derivations in a more predictable order
discard 9f355738e1 Don't create unnecessary substitution goals for derivations
discard 554eaf5e8c Disable vacuuming the DB after garbage collection
discard 4eb62b5230 nix-daemon: Call exit(), not _exit()
discard f160a30d56 Clean up temp roots in a more C++ way
discard a64744477d Fix message
discard b73de6e49b Don't use ADDR_LIMIT_3GB
discard e0825bd36b Make ~DerivationGoal more reliable
discard 86b9e6d457 nix-store --gc: Don't warn about missing manifests directory
discard 1129a982c4 Improve error message if the daemon worker fails to start
discard bed17f40fc Fix build on gcc < 4.7
discard ee8601cac4 Improved error message when encountering unsupported file
types
discard c2b65dd197 Remove some duplicate code
discard c957422835 createDirs(): Handle ‘path’ being a symlink
discard 6092a48603 nix-daemon: Close unnecessary fd
discard e74390a16f Remove bogus comment
discard e63c8aaa05 On Linux, disable address space randomization
discard 55939b1a4b Settings: Add bool get()
discard 6621195e48 Add an 'optimiseStore' remote procedure call.
discard 3bb89c3a31 Add disallowedReferences / disallowedRequisites
discard abd9d61e62 Introduce allowedRequisites feature
discard 8c766e48d5 fix disappearing bash arguments
discard d4e7c195fa Make hook shutdown more reliable
discard ea837e470f Doh
discard 790271559c Reduce verbosity
discard 3f6d4f63ec Propagate remote timeouts properly
discard aa98ba5067 Use regular file GC roots if possible
discard 5fe5ff7780 Remove unnecessary call to addTempRoot()
discard 1820845c44 Doh
discard e9070bf422 Move some options out of globals
discard 3190951563 Refactor
discard f530ee6f35 Add option ‘build-extra-chroot-dirs’
discard 75f746f018 Get rid of "killing <pid>" message for unused build hooks
discard 42c6246f67 Remove ugly hack for detecting build environment setup
errors
discard b732ffd28d Call commonChildInit() before doing chroot init
discard c51374c128 Eliminate redundant copy
discard 666c9b7108 findRoots(): Prevent a call to lstat()
discard 82d463d9ca Make readDirectory() return inode / file type
discard a98fa2d9e2 Allow regular files as GC roots
discard 4ab4b0c109 Remove some dead code
discard 1cffdf5847 nix-daemon: Less verbosity
discard bb07dfe96f nix-daemon: Simplify stderr handling
discard 766481d606 Merge commit 'fdee1ced43fb495d612a29e955141cdf6b9a95ba'
into nix
discard c69944c511 Merge commit '8e9140cfdef9dbd1eb61e4c75c91d452ab5e4a74'
into nix
discard a1dd396cc0 Merge commit '8d5f472f2c49c79a0d3ae2e506f4d4d76224b328'
into nix
discard 0a751260ae nix: Adjust code for Guix.
discard d4e18b05e0 Keep only libstore, nix-daemon, and related stuff.
discard fdee1ced43 startProcess: Make writing error messages from the child
more robust
discard 5989966ed3 Remove dead code
discard ee3c5d7916 Revert old useBuildHook behaviour
discard 2e77bd70fa Better fix for strcasecmp on Darwin
discard f609eec71a Bump
discard 8ddffe7aac Ugly hack to fix building on old Darwin
discard 049c0eb49c nix-daemon: Add trusted-users and allowed-users options
discard 0c730887c4 nix-daemon: Show name of connecting user
discard 77c972c898 nix-daemon: Only print connection info if we have
SO_PEERCRED
discard 8f72e702a1 nix-daemon: Fix compat with older clients
discard 2304a7dd21 Get rid of a compiler warning
discard 985f1595fe Be more strict about file names in NARs
discard 276a40b31f Handle case collisions on case-insensitive systems
discard bb65460feb Make dev-shell script work on Darwin
discard de8be7c3e0 Install systemd and Upstart stuff only on Linux
discard 048be62484 Pass *_proxy vars to bootstrap fetchurl
discard a2c85b2ef8 Manual: Typo
discard 5bcb982711 Remove cruft
discard fa13d3f4f3 build-remote.pl: Fix building multiple output derivations
discard b2e0293f02 build-remote.pl: Don't keep a shell process around
discard a00a98548e build-remote.pl: Fix build log
discard 838138c5c4 Fix test
discard a5c6347ff0 build-remote.pl: Use ‘nix-store --serve’ on the remote side
discard b8f24f2535 Fix closure size display
discard e196eecbe6 Allow $NIX_BUILD_HOOK to be relative to Nix libexec
directory
discard d0eb970fb4 Fix broken Pid constructor
discard edbfe2232e Replace message "importing path <...>" with "exporting path
<...>"
discard 42d91b079c Fix use of sysread
discard 7bb632b024 nix-copy-closure -s: Do substitutions via ‘nix-store
--serve’
discard 7c3a5090bf nix-copy-closure: Fix --dry-run
discard 43b64f5038 Remove tabs
discard 8e9140cfde Refactoring: Move all fork handling into a higher-order
function
discard 1114c7bd57 nix-copy-closure: Restore compression and the progress
viewer
discard 7911e4c27a Remove maybeVfork
discard 04170d06bf nix-copy-closure: Fix race condition
discard 2c3a8f787b Fix security hole in ‘nix-store --serve’
discard 66dbc0fdee Add a test for the SSH substituter
discard 0e5d0c1543 Fix compilation error on some versions of GCC
discard beac05c206 Don't build on Ubuntu 10.10
discard beaf3e90af Add builtin function ‘fromJSON’
discard e82951fe23 Manual: html -> xhtml
discard e477f0e938 Style fix
discard 858b8f9760 Add `--json` argument to `nix-instantiate`
discard 8504e7d604 allow-arbitrary-code-during-evaluation ->
allow-unsafe-native-code-during-evaluation
discard d7be6d45d9 Merge branch 'shlevy-import-native'
discard d62f46e500 Only add the importNative primop if the
allow-arbitrary-code-during-evaluation option is true (default false)
discard 5cd022d6c0 Add importNative primop
discard 9d0709e8c4 Don't use member initialisers
discard 48495f67ed Fix bogus warnings about dumping large paths
discard 0960d674d4 Drop ImportError and FindError
discard 718f20da6d findFile: Realise the context of the path attributes
discard a8fb575c98 Share code between scopedImport and import
discard 61c464f252 Add autoloads, make code more concise & idiomatic
discard ee7fe64c0a == operator: Ignore string context
discard b1beed97a0 Report daemon OOM better
discard 829af22759 Print a warning when loading a large path into memory
discard 3c6b8a5215 nix-env -qa --json: Generate valid JSON even if there are
invalid meta attrs
discard ceed819284 Fix test
discard becc2b0167 Sort nixPath attributes
discard 54a34119f3 Use std::unordered_set
discard a457d5ad4d nix-build: --add-root also takes 1 parameter
discard b1d39d4765 dev-shell is a bash script, not sh
discard 8ea9fd7aa6 Rephrase @ operator description
discard d8c061e044 Remove ExprBuiltin
discard 62a6eeb1f3 Make the Nix search path declarative
discard 39d72640c2 Ensure that -I flags get included in nixPath
discard a8edf185a9 Add constant ‘nixPath’
discard c273c15cb1 Add primop ‘scopedImport’
discard f0fdbd0897 Shut up some signedness warnings
discard 0321ef9bb2 Ugly hack to allow --argstr values starting with a dash
discard 3064a82156 Disable parallel.sh test
discard 9f9080e2c0 nix-store -l: Fetch build logs from the Internet
discard eac5841970 Provide a more useful error message when a dynamic attr
lookup fails
discard 8d5f472f2c lvlInfo -> lvlTalkative
discard 84813af5b9 nix-store --optimise: Remove bogus statistics
discard 690adeb03d Remove tab
discard a1b66f316e Merge branch 'master' of github.com:wmertens/nix
discard 3b9ea8452f Shortcut store files before lstat
discard d73ffc552f Use the inodes given by readdir directly
discard e384e7b387 Remove redundant code
discard e974f20c98 Preload linked hashes to speed up lookups
discard 36662eb562 Prepare nix-mode to be uploaded to marmalade
discard 95501c4dee nix-instantiate --eval: Apply auto-arguments if the result
is a function
discard a55e77ae10 fix typo
discard a84f503d86 Shortcut already-hardlinked files
discard aa9b1cf48e Really fix the RPM builds
discard 2c4affbaa8 Fix RPM build
discard 93506e60d2 Add ubuntu 14.04
discard 40250f23a0 Don't install Upstart job on Fedora
discard 6dd1087396 Fix Debian tests
discard a8c31d5011 Simplify multi-user installation instructions
discard 696f960dee Set up directories and permissions for multi-user install
automatically
discard 20668b1363 Install an Upstart service
discard de4cdd0d47 Set build-max-jobs to the number of available cores by
default
discard ada3e3fa15 When running as root, use build users by default
discard eeffdb74dc doc fix: swap 'import' and 'export'
discard 31fe55bb8e trunk -> master
discard 700c678c2e nix-env: Minor change to '--delete-generations Nd' semantics
discard fb5d76b89e Fix test evaluation
discard a1917208c0 Bump date
discard 742933116f Bump version to 1.8
discard 924e19341a Don't barf when installing as root
discard b0a09a6f32 Add docbook icons to the distribution
discard dfa2f77d2e If a .drv cannot be parsed, show its path
discard e0a947cde6 Simplify quick start section
discard d23931f3a4 Remove redundant stuff
discard 4846005741 Update installation instructions
discard 2b6c8ef401 nix-shell --pure: Keep the user's $PAGER
discard 76cbf55a6d Ensure that systemd units to into lib, not lib64
discard 89f9232813 Update release notes
discard 84d6936371 Install systemd units
discard 8e5fbf4d73 Show position info in attribute selection errors
discard 4c5faad994 Show position info in Boolean operations
discard bd9b1d97b4 Show position info in string concatenation / addition errors
discard 8160f794e7 derivation: Don't require certain function arguments
discard a5fe730940 forceString: Show position info
discard 27b44b8cf7 forceAttrs: Show position info
discard 96b695ccab forceList: Show position info
discard b62d36963c forceInt: Show position info
discard c28de6d96e Pass position information to primop calls
discard 8b31ffd10d Remove unnecessary quotes around file names
discard b72c8d2e5b Include position info in function application
discard 3f8e1f5682 Update release notes
discard 1f19fdbd45 Document that we require a C++11 compiler
discard ae6b631dc4 Fix compile errors on Illumos
discard daa16cca11 Sync with make-rules repo
discard 7191a7394a Support Illumos
discard f0de86357c Tweak error message
discard e7720aa10a Make sure /dev/pts/ptmx is world-writable
discard ac6ceea764 Fix potential segfault
discard 034b6f6062 nix-collect-garbage: Add --delete-older-than option
discard 7ef7597f71 nix-env: Add support for --delete-generations 15d
discard 59c9019685 Fix nix-shell for derivation with multiple outputs
discard 1c2550a2ae boost::shared_ptr -> std::shared_ptr
discard 9becaa041f Drop pointless #include
discard acb8facbbc Fix potential segfault in waitForInput()
discard 90dc50b07c restoreSIGPIPE(): Fill in sa_mask
discard 49009573bc Don't interpret strings as format strings
discard 24cb65efc3 Make /dev/kvm optional
discard 3fc056927c Fix tabs
discard 51800e06de Allow recovery from isValidPath RPCs with an invalid path
discard f93e97517e Fix -j and other flags when using the daemon
discard 77e2cc6c8e nix-build: Fix --cores flag
discard fb8d8f5428 Remove unnecessary null pointer checks
discard 006f24c7fa Document nix-env -q --json
discard d435e46daa Generate release notes again
discard e9934bb5ad Update release notes for 1.7
discard 25386e5edc Fix passing meta attribute to buildenv.nix
discard 92a848f674 Fix typos
discard 2f2a20ed18 Document null dynamic attrs
discard 049a379ec6 The expr of AttrNames/DynamicAttrDefs is always an
ExprConcatStrings
discard 908e9ce259 If a dynamic attribute name evaluates to null, remove it
from the set
discard 2caab81660 Revert "Make ifs and asserts tail-recursive"
discard f7e077ad27 Install missing Boost headers
discard d6a45f6bdb Don't set an absolute soname
discard a376762848 Add support for making relocatable packages using $ORIGIN
discard 3a86888fd7 Typo
discard 4eac3b2471 Add a variable GLOBAL_CXXFLAGS_PCH for use by precompiled
headers
discard 4e7e498ff9 Add variable GLOBAL_COMMON_DEPS
discard 1017bd68ea Set up a private /dev/pts in the chroot
discard 3fd01b171a Set up a minimal /dev in chroots
discard c9f6232304 Correctly detect infinite recursion in function application
discard 29cde917fe Fix deadlock in SubstitutionGoal
discard 7c7707638a Doh
discard 7880973827 Test trace and addErrorContext
discard 5ad263c26b Test some more primops
discard 3d0a9ec825 Test executables in NARs
discard 91f25f0510 And another one
discard 432328cc55 Remove another unused function
discard 509993e598 Remove unused function
discard d58ceae022 Test nix-env --switch-generation
discard 7bbc68fdff Test nix-env --set
discard a0806389e9 Test the -b and -s flags of nix-store -q
discard a9c4a98770 Test ~/.nix-defexpr
discard 045d3b2ed7 Test nix-store --switch-profile and more daemon actions
discard fac6f8aac0 Test nix-store -q --roots
discard 84143c4bd8 Test nix-store -l
discard 19437785eb Test nix-store --optimise
discard fdff3a7eae Add a test for nix-store --dump-db / --load-db
discard 506d86394d Installer: Handle Darwin
discard 6b9cd59a41 nix-store -r: Respect --add-root for non-derivations
discard 7f74513b4e Also provide an option for setting the curl connection
timeout
discard 00d761016a Respect $NIX_CONNECT_TIMEOUT properly
discard d761009e3c Add ~/.nix-profile/sbin to $PATH
discard f14ef84a51 Warn about missing -I paths
discard 733214144a Document dynamic attributes
discard 42eb4afd7a Simplify getting use-ssh-substituter from untrusted users
discard bf4a577a58 Fix broken patch
discard 8a02fdc38e use USER environmental variable if getting user id by
getpwuid is failed in perl scripts: download-from-binary-cache.pl and
nix-channel
discard dcaea042fc Only start download-via-ssh if it's enabled
discard df5de9dfd7 Add use-ssh-substituter setting.
discard 36b90e72d7 nix-shell: Add --packages flag
discard a897b58373 nix-instantiate: Allow --dry-run as a synonym for
--readonly-mode
discard e1cf40fa95 nix-instantiate: Rename --eval-only to --eval, --parse-only
to --parse
discard c31836008e nix-instantiate: Add a flag --expr / -E to read expressions
from the command line
discard e707a8a526 Move manpages around
discard 73f74ebba0 nix-shell: Don't leave a temporary directory in /tmp behind
discard a7e70518b8 lexer-tab.o and parser-tab.o require each other's headers
discard 70a558e202 Update ignores
discard 7bef965d6f Make it work on GNU Make > 3.81 again
discard 79f699edca More GNU Make 3.81 compatibility
discard 8129cf33d9 Slight simplification
discard 1aa19b24b2 Add a flag ‘--check’ to verify build determinism
discard 4ec626a286 Test nix-store --verify-path and --repair-path
discard 99f14c2584 Don't build on Debian 6.0
discard b6def5b542 Make --repair work on Darwin
discard dfbcb7c403 Refactoring
discard 71adb090f0 When using a build hook, only copy missing paths
discard 69fe6c58fa Move some code around
discard 1da6ae4f99 nix-store --gc --max-freed: Support a unit specifier
discard 00d30496ca Heuristically detect if a build may have failed due to a
full disk
discard e81d38c02b nix-shell: Execute shellHook if it exists
discard 832377bbd6 Add a test for repairing paths
discard 581a160c11 Add a function for looking up programs in $PATH
discard a9d99ab55f download-via-ssh: Use readStorePath
discard 4db572062c download-via-ssh: Show where we're downloading from
discard dba33d4018 Minor style fixes
discard 61fd494d76 Merge remote-tracking branch 'shlevy/ssh-substituter'
discard f67f52751f Indendation fix
discard 62eb9eb76d Remove relic of old code
discard 7438f0bc2b error messages start in lowercase
discard 2246aa77d2 Remove using declarations from download-via-ssh
discard f9fc6acbf4 Document current meaning of preferLocalBuild
discard a35c6eb4a2 Support setting CFLAGS and CXXFLAGS for libraries/programs
discard 1f841c9d50 Force use of Bash
discard 57386c9bae Binary tarball: Automatically create /nix
discard c89d6b9b63 nix-store --serve: Use a versioned protocol
discard 38c3beac1a Move StoreApi::serve into opServe
discard 1614603165 Pass in params by const ref
discard 78d979567f Clarify comment
discard c5839752b9 Binary tarball: Automatically fetch the Nixpkgs channel
discard b632153ebd nix-shell: Use shell.nix as the default expression if it
exists
discard 64e23d0a38 Add download-via-ssh substituter
discard 5671188eb2 nix-store --serve: Flush out after every loop
discard 73874629ef nix-store --serve: Use dump instead of export
discard 188f96500b nix-store --serve: Don't fail if asked for info about
non-valid path
discard 9488447594 nix-store --serve: Don't loop forever
discard 3a38d0f356 Add the nix-store --serve command
discard 84a8b5e9af nix-instantiate --eval-only --read-write-mode: Don't depend
on ordering
discard e4058fab64 Rename --no-readonly-mode --read-write-mode
discard 0c3e8a616e nix-instantiate: Add a --no-readonly-mode flag
discard 0432bc52ea Fix the RPM build
discard 7fab23e237 Install header files
discard 764d90597a Merge commit 'a210c995cdd9279ed4137ec5d2e4cc928cb36097'
discard a210c995cd Support DESTDIR
discard 97f8e9bc76 Remove dead code
discard 2a469ad31d Set a maintainer address
discard 1f94ec3924 Clean up a test warning
discard 20d0598928 Drop dependency on ‘expr’
discard 4161fce472 Create the target directory of libraries and programs
discard 80b691316c Fix version in nix.spec
discard 4ee6001f95 GNU Make 3.81 compatibility
discard 0da82efa5d GNU Make 3.81 compatibility
discard 143224f7cd Add nix.spec to the distribution
discard d210cdc435 Fix assertion failure in ‘nix-store --load-db’
discard 73a775f3b7 Merge commit '8468806552d6730abec6431c42b5b0e897c0222c'
discard 8468806552 Add a basic README
discard d6582c04c1 Give a friendly error message if the DB directory is not
writable
discard 2f9bb5c7e7 Merge branch 'make'
discard 6dca72006a Only run "git ls-files" when doing "make check"
discard 2a97f7b039 Fix logging test
discard 965218a62a Remove obsolete file
discard b6465ae5d3 Merge commit '28dc4883356a50f2805a3e3c819a541c44a4ff0a'
into make
discard 762ef464f8 Fix the nix-profile test
discard 28dc488335 installcheck: Don't depend on install
discard 844d83352c More "make dist" fixes
discard 74ca70da3a Add 'mk/' from commit
'1eff3ad37fdb9dcf9f8528fdacea0ebf0e79d545'
discard 6ef32bddc1 Fix "make dist"
discard 1eff3ad37f Add missing file
discard 6f8aa145d4 Improve "make dist"
discard 0c6d62cf27 Remove Automakefiles
discard 16e7d69209 Update Makefile variable names
discard ec1738589a Make variable names more regular
discard 35107038f7 Support adding "make help" text
discard f324b49ea1 Change dependency file names from foo.dep to .foo.o.dep
discard ac8c2ef1aa Build/install manual
discard 4271927c5b Add support for installing man-pages
discard e0234dfddc Rename Makefile -> local.mk
discard 4a2ec9c659 Install nix-worker symlink
discard c5ba081333 nix-shell: Add --impure flag
discard 79dee4283d nix-shell: Preserve the TZ variable of the user
discard 7fdee6e136 nix-build: Refactor
discard 5311b2b250 Clang doesn't know the "-z defs" flag
discard 94f9c14d52 Fix some clang warnings
discard a26307b281 Fix build
discard 625ffd441d Ugly hack to fix building with clang
discard 68cde53c47 Fix building against Bison 3.0.2
discard 81628a6ccc Merge branch 'master' into make
discard 5ef8508a92 Remove unused type
discard c8fff6a77f Fix evaluation
discard 0e2ca26818 nix.spec: Remove "make check" since it's a no-op
discard 0f2f44bb0f Build Fedora 20 RPMs
discard bf0ad8aabc nix-profile.sh: Add the Nixpkgs channel to $NIX_PATH
discard f5e5793cd2 Bare dynamic attrs: Match interpolation semantics
discard f9913f4422 Allow "bare" dynamic attrs
discard e640d67144 Document nulls
discard f1357059a4 nix-shell: Don't set NIX_INDENT_MAKE
discard ea59f39326 nix-shell: Set $IN_NIX_SHELL before evaluating
discard ca73c0102f Nicer Make output
discard e991ab942b Add support for building shared libraries on Mac OS X
discard b1db599dd0 Generate schema.sql.hh
discard cf918b889b Handle systems where "echo -n" doesn't work
discard 70d8e8fdde Declare template_files as a simply expanded variable
discard 814a73227f Remove duplicate elements from *_SOURCES
discard b4c684e0f9 Update Makefiles
discard 568b1b0a8a Remove mk subdirectory in preparation for "git subtree"
discard 55c9a40613 Move stuff to top-level
discard f4013b6189 Fix signed-binary-caches test
discard ea38e39a20 Test whether Nix correctly checks the hash of downloaded
NARs
discard 11cb4bfb25 Fix checking of NAR hashes
discard 0fdf4da0e9 Support cryptographically signed binary caches
discard 405434e084 Revert "nix-shell: Set $IN_NIX_SHELL before evaluation"
discard 7a61c88dbb Merge branch 'dynamic-attrs-no-sugar' of
github.com:shlevy/nix
discard 485f4740ee wording
discard fe23e28f12 Disable FreeBSD tests for now
discard 4252b5a645 Disable the tail call test
discard cd49fe4f9b Don't use any syntactic sugar for dynamic attrs
discard 6f3a51809a Fold dynamic binds handling into addAttr
discard 18fefacf7d Dynamic attrs
discard 136f2f7046 Add the ExprBuiltin Expr type to the AST
discard 5ba5993470 nix-shell --pure: Don't clear IN_NIX_SHELL
discard b352fe2775 Revert "Scan /proc/<pid>/cmdline for GC roots"
discard 8931bf7168 Doh
discard f1e5dedb61 perl: Call loadConfFile() in doInit to avoid screwing
sqlite journal mode.
discard 7d203faff6 nix-env --set-flag: Barf if a selector doesn't match any
installed package
discard 194e3374b8 Scan /proc/<pid>/cmdline for GC roots
discard 769f662165 nix-shell: Don't warn about the lack of a GC root
discard 0c1198cf08 nix-shell: Set $IN_NIX_SHELL before evaluation
discard 65a6452240 nix-shell: Handle --option correctly
discard 259086de84 Add support for building JARs from Java sources
discard 99ed25accf Add a function for doing recursive wildcard searches
discard 7b0d8fb23d nix-shell --pure: Keep $TERM
discard 088552b319 Set default installation paths
discard e81b82a2cf make dryclean: Sort names
discard a630635d7f No longer interpret $(..._SOURCES) relative to $(..._DIR)
discard 4da8046513 Don't include all *.dep files
discard 034bbcafaf Add 'make help'
discard 45131da736 Get rid of whitespace in $(d)
discard c34f3c5ba4 Handle *.cpp extension
discard dfcc64f556 Only provide 'make dist' if PACKAGE_NAME is set
discard 3560f52cc4 dryclean: Show what actual files would be deleted
discard 49a385096e Initial commit (imported from the Nix repo)
discard e36229d27f Bump language version for new storePath feature
discard 22d665019a builtins.storePath: Try to substitute the path if it is not
yet valid
discard a6add93d73 Garbage collector: Release locks on temporary root files
discard c5b8fe3151 Print a trace message if a build fails due to the platform
being unknown
discard bf8b66adcf Add missing file
discard f3cf0436b5 Install bsdiff and bspatch in $(libexecdir)/nix
discard 0202ce6b94 Add support for ‘make installcheck’
discard 9285f0aa2b Add a Makefile for the Perl stuff
discard 8f08046606 Expand configure variables before writing config.status
discard 7ce0e05ad8 Rename Makefile.new -> Makefile
discard 962551a071 Add a Makefile for the scripts directory
discard 1a1d8b073a Add a Makefile for bsdiff
discard 784feb6839 Let ‘make clean’ delete instantiated template files
discard cac06ed0a4 Remove obsolete setting of $CC_FOR_BUILD
discard b225ccb654 Add config.guess, config.sub and install-sh
discard 0c504a756c Don't install Libtool
discard 2cc591c7b5 Don't instantiate Automake makefiles
discard 79b7c596a9 Use create-dir for installing dynamic libraries
discard ed0a8dd71a Add a function for instantiating Autoconf *.in files
discard f980755766 Split Makefile.lib into several *.mk files
discard e9b6397d2f Add a rule for creating directories
discard 4315acb8c0 Add a generic rule for installing files
discard c7547cff19 Install into $(libdir) instead of $(pkglibdir)
discard 2bd0fcc966 Use libnix as a prefix for all Nix libraries
discard f267ff16b4 Allow libraries to set an actual name different from the
symbolic name
discard abb5bd66de Add Makefile for nix-log2xml
discard 07c87a8e9e Consistent naming
discard c1f3a1a89b Disallow undefined symbols in dynamic libraries by default
discard 5a1114ecdb Drop the dependency on libgc in libmain
discard 06a8ac96e7 Initialise Boehm GC only once
discard 90dfb37f14 Allow (dynamic) libraries to depend on other libraries
discard 14772783e6 Support installation of dynamically linked programs
discard 611868a909 Implement basic ‘make install’
discard d1b3ca0b4a Improve building dynamic libraries
discard 6dd74b48f8 Support building dynamic libraries
discard 9b11a8bfbc Fix building without Boehm GC
discard 812b5a30ec Add a Makefile variable for enabling debug info
discard ea2f7df5fa Introduce variables GLOBAL_CFLAGS and GLOBAL_CXXFLAGS
discard 6b5f89f2cf Drop the dependency on Automake
discard 754c05ed6c Rename $(here) to $(d) for brevity, and remove trailing
slash
discard 9a14d5e2f3 Automatically regenerate Makefile.config
discard ffdc85fc8a Respect configure flags
discard 62e35cc3a8 Add ‘make dist’ support
discard eff6c4b791 Add missing #include
discard e0a108b203 Remove unnecessary line
discard eaf903f993 Clean more aggressively
discard 1474ecfe42 Generate the parser and the lexer
discard bc96c4518e Automatically emit make rules for header files
discard b8e9efc476 New non-recursive, plain Make-based build system
discard 709cbe4e76 Include <cstring> for memset
discard d4a76ff0e4 Bump version number
discard 30b986908e Check meta values and warn about bad ones
discard 0f24400d90 Generalise meta attributes
discard 990126cde0 Shorter error message
discard af94a70ba6 Drop support for user environment manifests in ATerm format
discard 245e26408f nix-env -q: Add a --json flag
discard 5fea98111b Refactor JSON output
discard 77c13cdf56 Add a toJSON primop
discard 285df765b9 Add a primop unsafeGetAttrPos to return the position of an
attribute
discard fc33fd86b7 Add a symbol __curPos that expands to the current source
location
discard 90b5e69284 Support quoted attribute names in -A
discard a478e8a7bb Remove nix-setuid-helper
discard 89e6781cc5 Make function calls show up in stack traces again
discard 2bcb384e95 Add a test to check that tail calls run in bounded stack
space
discard c897bac549 Make function calls tail-recursive
discard 273322c773 Make ifs and asserts tail-recursive
discard 4badd7ed17 Get rid of an intermediary on the stack
discard 8d6418d46e Fix building without a garbage collector
discard dec2f19502 Fix a segfault in genericClosure
discard 6123144933 Drop Cygwin and Solaris builds
discard 1dacd427cd Update release notes, set version for 1.6.1 release
discard ea6bf0c21f Slightly optimize listToAttrs
discard 36e67ff16b Undocument obsolete form of "let"
discard fba17a9043 Doc fix
discard 2d9bb56e55 Fix segfault on Darwin
discard 5bc41d78ff Rename "attribute sets" to "sets"
discard 9e4bb20455 Manual: Fix broken URLs
discard dc341811d6 Add rpm_fedora19i386 to the release-critical builds
discard 69befd33a9 Remove unnecessary call to forceStringNoCtx
discard a5684e09d3 Document typeOf
discard 411a3461dc Add a test of the type primops
discard 05d02f798f Add a typeOf primop
discard 6da92d96ae Document NIX_SHOW_STATS and NIX_COUNT_CALLS
discard 543d8a5942 Don't require NIX_SHOW_STATS for NIX_COUNT_CALLS
discard fe95650487 Memoize evalFile() lookups under both the original and
resolved name
discard 3139481822 Add an aggregate job
discard c086183843 For auto roots, show the intermediate link
discard 4f4a14453a Don't set $PS1 in non-interactive shells
discard 4ea034a5c5 nix-shell: Play nicely with non-interactive shells
discard 792fd51f41 Fold two stack trace messages in derivations
discard f440558acc Don't show <nix/derivation.nix> in stack traces
discard bb659bad81 Nix 1.6.1 release notes
discard f6a8e7f4c2 Fix test
discard b08f4b0da9 Test string semantics a bit more
discard d7625b5c2d two typos
discard b8034e5581 Ensure proper type checking/coercion of "${expr}"
discard 9d8a80375d Add a test for type correctness of antiquotes
discard d6a7aa8f48 Revert the behaviour of antiquoted paths to pre-Nix 1.6
discard b8571d68c4 Add a regression test for correct path antiquotation
behavior
discard a737f51fd9 Retry all SQLite operations
discard ff02f5336c Fix a race in registerFailedPath()
discard 4bd5282573 Convenience macros for retrying a SQLite transaction
discard bce14d0f61 Don't wrap read-only queries in a transaction
discard 7cdefdbe73 Print a distinct warning for SQLITE_PROTOCOL
discard d05bf04444 Treat SQLITE_PROTOCOL as SQLITE_BUSY
discard c1994fecf9 nix-shell: Fix bash completion
discard 672c3acc71 Adjust to the NixOS/Nixpkgs merge
discard 7bdb85453d printStats(): Print the size of the symbol table in bytes
discard 9deb822180 Deduplicate filenames in Pos
discard b1e3b1a4ac Treat undefined variable errors consistently
discard 6b47de580f Show the exact position of undefined variables
discard a5e0f64db3 Remove some unused functions
discard 221a2daf34 Merge VarRef into ExprVar
discard 176c666f36 Don't show calls to primops in stack traces
discard c945f015de Fix segfault in nix-repl / hydra-eval-jobs
discard 28e0742966 Report OOM errors better
discard a5fb4b5b7c Fix typo
discard faaae44f2e build-remote.pl: Don't use substituters on the remote
discard f53574ebd6 RestoreSink: Slightly reduce the number of concurrent FDs
discard d5529f5b85 Version was called 1.6, not 1.6.0
discard b072fc04a7 Bump version number
discard fecad91b67 Update release notes
discard 0220da3e10 Remove stray debug line
discard 936f9d45ba Don't apply the CPU affinity hack to nix-shell (and other
Perl programs)
discard 4b83830d0c typo
discard 5904262640 nix-shell: Support a .drv as argument
discard 2c1ecf8e81 nix-env -i: Add a flag ‘--remove-all’ / ‘-r’
discard 88c07341a6 nix-env: Use wildcard match by default
discard 07a08bddf0 nix-env: Load files in ~/.nix-defexpr on demand
discard c57ed84e28 Check for name collisions in the input Nix expressions
discard ef4f5ba85e Work on Values instead of Exprs
discard 06bb2d95b4 Reformat
discard 6f809194d7 Get rid of the parse tree cache
discard 57d18df7d0 Add some support code for nix-repl
discard 92077b4547 Get rid of a signedness warning
discard 33972629d7 Fix whitespace
discard ac1b754138 Lower xz compression level
discard c28dfc0305 Manual: Make '' a bit clearer
discard e9b92169a5 Fix manual error
discard ecd830b3b9 Update the release notes
discard 6ec8dab06a Adda test for build-max-log-size
discard b29d3f4aee Only show trace messages when tracing is enabled
discard efe4289464 Add an option to limit the log output of builders
discard afc6c1bad6 Simplify inherited attribute handling
discard 6cd6ce5608 Fix nix-shell command
discard 34bb806f74 Fix typos, especially those that end up in the Nix manual
discard c6c024ca6f Fix personality switching from x86_64 to i686
discard 03eaef3d7a Manual: Don't use actual hashes of Nix dependencies
discard b3110a15e9 Fix corrupt PNG
discard 25a108bb9c Hack to clean up tests/test-tmp
discard d308aeaf53 Store Nix integers as longs
discard 297b762513 Turn on -Wall
discard 46222bbc43 Typo
discard 58204a3c39 corepkgs/nar.nix: Prefer local builds
discard 3fb7ae0586 Respect MINSIGSTKSZ when allocating an alternative stack
discard 161a2ccf7a Fix build on non-Linux
discard a583a2bc59 Run the daemon worker on the same CPU as the client
discard 263d668222 Set the default GCC optimisation level to -O3
discard fd7d979c79 Remove obsolete reference to ATerms
discard 46ffcce0c3 In the profiler output, show function names (if available)
discard 8e74c0bfd1 Let the ordering operators also work on strings
discard 3d77b28eac Add comparison operators ‘<’, ‘<=’, ‘>’ and ‘>=’
discard 47701677e8 Add integer ‘-’, ‘*’ and ‘/’ operators
discard 5d147e125c Add a unary integer negation operator
discard 159e621d1a Overload the ‘+’ operator to support integer addition
discard 511455965e nix-shell: Don't disable Automake dependency tracking
discard 7df4ef983e Test the delayed with a bit more
discard 0a470fc345 Make Env smaller
discard 8ae6d55db1 Don't use NULL
discard e068f49f7d Avoid thunks when a fromWith var can be looked up without
evaluation
discard 20866a7031 Delay evaulation of `with` attrs until a variable lookup
needs them
discard 70e68e0ec6 Detect stack overflows
discard e87d1a63bd killUser: Don't let the child kill itself on Apple
discard 7cf539c728 buildenv: remove special treatment of python files
discard 7b09e9f2c4 Add hacking notes plus a script for running nix-shell
discard 15e5ac8039 nix-shell: Set $IN_NIX_SHELL
discard 48858ad5ca nix-shell: Set some environment variables also set by
build.cc
discard 2bc5de8635 Rename ‘nix-build --run-env’ to ‘nix-shell’
discard dc5f2e7da6 nix-build --run-env: Add a ‘--pure’ flag
discard a4921b8ceb Revert "build-remote.pl: Enforce timeouts locally"
discard 16591eb3cc Allow bind-mounting regular files into the chroot
discard c3f5413e80 Fix syntax error in unpack-channel
discard aeb810b01e Garbage collector: Don't follow symlinks arbitrarily
discard 25a00cae5b Add gzip support for channel unpacking
discard 620d57f036 doc: typo
discard 6fcc290619 build-remote.pl: Move "building ..." message to a better
place
discard ed09d0c0a4 nix-build --run-env: Always use Bash
discard 656390062a nix-build --run-env: Source $stdenv/setup in the
interactive shell
discard 212e96f39c Leave `HAVE_HUP_NOTIFICATION' undefined on GNU/Hurd.
discard b584a42e3d Manual: auto-optimise-store is disabled by default
discard 5116214343 Add support for uncompressed NARs in binary caches
discard 7986711632 copy-from-other-stores.pl: Respect $NIX_BIN_DIR
discard 1917d750a0 copy-from-other-stores.pl: Report downloaded size as 0
discard 7ccd946407 Don't set $preferLocalBuild and $requiredSystemFeatures in
builders
discard 5558652709 Don't substitute derivations that have preferLocalBuild set
discard 1906cce6fc Increase SQLite's auto-checkpoint interval
discard 9b11165aec Disable the copy-from-other-stores substituter
discard 22144afa8d Don't keep "disabled" substituters running
discard 2b29e4b852 Bump version
discard 6016bcd30e Update release notes for Nix 1.5.3
discard 1b6ee8f4c7 Allow hard links between the outputs of a derivation
discard cd49ee0897 Fix a security bug in hash rewriting
discard 1e2c7c04b1 Fix assertion failure in canonicalisePathMetaData() after
hash rewriting
discard 6cc2a8f8ed computeFSClosure: Only process the missing/corrupt paths
discard bfee9a2581 Typo
discard f9ff67e948 In repair mode, update the hash of rebuilt paths
discard 6b05f688ee nix-daemon: Trust options like binary-caches when the
client is root
discard 5c06e5297d download-from-binary-cache.pl: Respect $NIX_CONNECT_TIMEOUT
discard 24a356bf71 Replace $NIX_DEBUG_SUBST with an option ‘debug-subst’
discard 24e063efdc download-from-binary-cache.pl: Show if we're waiting for a
URL
discard ca70fba0bf Remove obsolete EOF checks
discard 5959c591a0 Process stderr from substituters while doing have/info
queries
discard c5f9d0d080 Buffer reads from the substituter
discard 75e12b8e66 download-from-binary-cache.pl: Fix race condition
discard f0576d6775 Update the default binary cache URL to cache.nixos.org
discard ff08306746 download-from-binary-cache.pl: Treat a 403 error as a 404
discard bc2e43f3c8 build-remote.pl: Remove meaningless signing when importing
the output paths
discard 039d5a023f .bashrc -> .profile
discard b09b87321c nix-store --export: Export paths in topologically sorted
order
discard 107505e13a build-remote.pl: Copy all outputs in one operation
discard 72d8209548 build-remote.pl: Indicate if remote machine is refusing
builds
discard 18a48d80a0 Show function names in error messages
discard 1b3a03f161 Show which function argument was unexpected
discard 229567293c Shut up a compiler warning
discard a4cb62ac25 download-from-binary-cache.pl: Get rid of an uninitialized
value warning
discard 31a551a60f Bump version
discard 6e85d1b5ba Bump release date
discard 3a0cc43ac8 build-remote.pl: Properly close the SSH connection between
attempts
discard be0b9dda31 build-remote.pl: Pass /dev/null as SSH's stdin
discard 78206f06ec build-remote.pl: Allow a machine to refuse a build
discard 2ee9da9e22 In trace messages, don't print the output path
discard 6eba05613a Communicate build timeouts to Hydra
discard 7a03cbf09d build-remote.pl: Create one process fewer on the remote side
discard 69b8f9980f build-remote.pl: Enforce timeouts locally
discard e93acab852 Build Fedora 18 RPMs
discard 806970349b Update release date
discard ea019e9a26 Add option ‘extra-binary-caches’
discard cc837e2458 Build Debian 7.0 debs
discard 28034bfa49 Build Ubuntu 13.04 debs
discard 93f4fa8a15 Update release notes
discard c51b6a893c nix-copy-closure: Show a proper error message if no host
name is given
discard e6c44d166a Fixing the pv position regarding compression
discard 7391533ea5 Fixing the pv reference; I didn't mean to change it
discard 5cc2fc46ec Adding ETA support to the --show-progress in
nix-copy-closure
discard 3628b61ce0 Nix 1.5.2 release notes
discard 470553bd05 Don't let stderr writes in substituters cause a deadlock
discard 4ddd077bfa find-runtime-roots.pl: Don't hardcode /nix/store
discard 0374d94437 addAdditionalRoots(): Check each path only once
discard 00f698eb8b find-runtime-roots.pl: Search process environments for roots
discard 938092a213 find-runtime-roots.pl: Use Nix::Utils::readFile
discard 772b70952f Fix --timeout
discard f9974f856e Show that --timeout doesn't work if the build produces log
output
discard 6955d41f2b nix-build: Respect --timeout
discard 934cf2d1f4 Nix daemon: respect build timeout from the client
discard 08d96ffad0 Fix --fallback with the binary cache substituter
discard a9b4e26b5c Test whether --fallback works if NARS have disappeared from
the binary cache
discard c642441beb Test NAR info caching
discard 05420e7883 Manual: Add a missing step to the build instructions
discard 258897c265 Complain if /homeless-shelter exists
discard 239841787b Fix evaluation of the VM tests
discard cc63db1dd5 makeStoreWritable: Ask forgiveness, not permission
discard 2c9cf50746 makeStoreWritable: Use statvfs instead of
/proc/self/mountinfo to find out if /nix/store is a read-only bind mount
discard c3fc60d936 Fix evaluation
discard f72ed36025 Bump version number
discard 78d777ca15 Remove the "system" jobset input
discard a68ebf8e37 Require Bison 2.6
discard 804709706c Fix building against Bison 2.6
discard c56bc3d81c Make sure that thunks are restored properly if an exception
occurs
discard 4b07476848 Prevent config.h from being clobbered
discard bdd4646338 Revert "Prevent config.h from being clobbered"
discard e73d9e9488 Fix annoying Perl 5.16 warnings
discard 28bba8c44f Prevent config.h from being clobbered
discard 8057a192e3 Handle systems without lutimes() or lchown()
discard 9fa1bee575 Update release notes
discard f45c731cd7 Handle symlinks properly
discard 88936411bc Bump version number
discard 0111ba98ea Handle hard links to other files in the output
discard b008674e46 Refactoring: Split off the non-recursive
canonicalisePathMetaData()
discard 826dc0d07d Remove outdated file
discard 97c6009c47 Bump version number
discard ca9c02dff1 Update release notes
discard 5526a282b5 Security: Don't allow builders to change permissions on
files they don't own
discard dadf7a5b46 build-remote: Use the --quiet flag
discard 3e067ac11c Add `Settings::nixDaemonSocketFile'.
discard 5ea138dc4b Enable chroot support on old glibc versions.
discard 79a3ba7fa3 Document ‘hashString’
discard 5f18cd2e84 Make "${./path} ..." evaluate to a string, not a path
discard 52172607cf Rename "hash" to "hashString" and handle SHA-1
discard 01a5ea9914 experimental/hash
discard 8add116acd Nix::Store::derivationFromPath: Return derivation outputs
discard d6143801fd Support the colonies
discard 9842077cb2 Improve -I description
discard 5e9c3da412 Only warn about SQLite being busy once
discard 99ed558a93 Correctly handle missing logs
discard 1943b60ad8 Fix the VM tests
discard 96fbbbde55 build-remote.pl: Don't keep build logs on the build slave
discard d6fd6d8aff corepkgs/fetchurl: Enable making the downloaded file
executable
discard 536c85ea49 Store build logs in /nix/var/log/nix/drvs/<XX>
discard 66fa9e6a4d Bump version number to 1.4
discard e42df686f3 Delete a left-over trash directory before doing a GC
discard 92926be2fe Fix "0 store paths deleted" message
discard b424d29d1b Open the database after removing immutable bits
discard 3007f57377 Remove tabs
discard def5160b61 Clear any immutable bits in the Nix store
discard 0a4e90395c Urgggh
discard f12492c66d Manual: Fix "nix-store --export" example
discard aebea2e489 Reinstate the http://nixos.org/binary-cache default for the
binary-caches setting
discard 649bb60617 Use sysconfdir=/etc
discard 42d6f640c1 Update release notes
discard 299141ecbd If a substitute closure is incomplete, build dependencies,
then retry the substituter
discard 1b3a78a459 Automatically fall back if the references of a substitute
are not substitutable
discard 82248abd8f Add a test for incomplete closures in the binary cache
discard 12f9129f60 nix-build: Support talking to old daemons
discard b7629778ef Allow mounting a path in a different location in the chroot
discard 68dcbb187e download-from-binary-cache: Use the channels of the calling
user rather than root
discard 5ee7d8fbab Typo fix
discard 2754a07ead nix-store -q --roots: Respect the
gc-keep-outputs/gc-keep-derivations settings
discard 06f62defe6 Yet another rewrite of the garbage collector
discard 9c29a2ed35 Give a better error message if writeFile fails due to
permission issues
discard e775d4d84f If gc-keep-derivations is set, only keep the actual deriver
discard fbf0b2fa45 Kill the build hook rather than shutting it down cleanly
discard 228ea7c2f9 Revert brain fart
discard cc511fd65b Check for potential infinite select() loops when building
discard a9045c727f fix use-after-free bug in mkString(Value&, Symbol&)
discard 9fa12fc201 Allow setting the profile location using $NIX_PROFILE
discard 3ad53e43c8 Debian package: Add dependency on libwww-curl-perl
discard 772778c0ec On SQLITE_BUSY, wait a random amount of time
discard e087bfef5f Bump version number
discard a6ce6d9e7c Fix manual generation
discard 8cc19ed089 Set a long SQLite timeout in the binary cache substituter
discard 52edef3495 Fix RPM build
discard 8d100dbef1 Add a dependency on xz-utils
discard 5c487761c4 Add a dependency on xz
discard 3631dc6b2f Typo
discard aa61bc7472 Fix RPM build
discard 0f96966a44 Add release date
discard 566afa1e9c Support xz compression of nixexprs.tar in channels
discard 444b03a36f Produce an xz-compressed tarball
discard d5a01d0f9d Build Debs for Ubuntu 12.10
discard a7b4aaa2c3 Updated release notes
discard 3100b29fc5 Tiny optimisation in the filter primop
discard 094a08f839 Document new primops
discard 4387d19359 nix-channel --update needs bzip2
discard 24d5875514 Document multiple output support
discard b215b23e9e Test priorities
discard 56d29dcd62 buildenv.pl: Create symlinks in priority order
discard 2d5e8e267b Add a test for ‘nix-env --set-flag active ...’
discard 5ad89398d1 nix-env: Install all outputs of a derivation
discard 21c2d8d102 Test the ‘--prebuilt-only’ flag
discard d62fc71b85 Fix the ‘--prebuilt-only’ flag
discard 4bb4d5479a Whitespace
discard 8eed07cda4 nix-env -q --out-path: Support multiple outputs
discard 6c98e6a5de Optionally ignore null-valued derivation attributes
discard 8b8ee53bc7 Add builtin constants ‘langVersion’ and ‘nixVersion’
discard 5943f41b8b queryMissing(): Handle partially valid derivations
discard 08964d7328 Undo accidental debug change
discard 69c88f5028 Fix the multiple-outputs test
discard 408a7bfac1 nix-instantiate: Fix read-only evaluation
discard 8d8d47abd2 Only substitute wanted outputs of a derivation
discard 46a369ad95 Make "nix-build -A <derivation>.<output>" do the right thing
discard a3d6585c5a nix-copy-closure: Add flag ‘--use-substitutes’
discard 9de6bc5d05 nix-store -r: Add ‘--ignore-unknown’ flag
discard bf3725da2a nix-store -r: Don't quietly ignore missing paths
discard 17dc306aa3 Revert "prim_toPath: Actually make the string a path"
discard f794465ca8 Disable use of vfork()
discard 8541d27fce Don't use std::cerr in a few places
discard 3acc8adcad Add some debug code
discard ea89df2b76 Use vfork() instead of fork() if available
discard 48c19c4633 Remove definition of non-existant function
discard 198dbe7fa1 Remove some redundant close() calls
discard 10dcee99ed Remove the quickExit function
discard 4c9e3fa641 Remove a Darwin hack that should no longer be needed
discard 182e15b661 Manual: Don't use a store path in our closure
discard 88164325fa Fix a segfault when auto-calling a "a@{...}" function
discard f581ce0b0c Don't start copy-from-other-stores if $NIX_OTHER_STORES is
unset
discard 91ef4d9a81 Remove unnecessary call to closeMostFDs()
discard a9a8baaccb Use a shorter Nixpkgs channel URL
discard c31ebc50aa Update release notes
discard e28b683324 download-from-binary-cache: Try next cache if downloading a
NAR fails
discard bbc107ef1e Process binary caches in order of priority
discard 3a95e1a17c Update nix-push manpage and document the binary cache format
discard 82951e5582 nix-push: Handle pushing a symlink
discard 620e92e880 Add an option ‘use-binary-caches’
discard df27db712d Fix "Not an ARRAY reference" error
discard d0fc615af6 canonicalizePathMetaData: Fall-back to utimes if lutimes
fails due to ENOSYS
discard 4c34d384e6 If hashes do not match, print them in base-32 for
SHA-1/SHA-256
discard a28b4445a4 nix-prefetch-url: Improve option handling
discard 2980d1fba9 prim_toPath: Actually make the string a path
discard dde6486eab nix-push: Add a flag ‘--manifest-path’ to write the
manifest to another directory
discard c8daeba303 nix-push: Add ‘--link’ flag
discard 167e36a5c3 nix-push: Only generate and copy a NAR if it doesn't
already exist
discard ac238d619c Typo
discard 600daf972f download-from-binary-cache: Remove duplicate entries in
trustedURLs
discard e345182055 Shorten the names of temporary build directories
discard ecedd9c50c Out-of-tree building of perl modules.
discard 70f75be199 getDerivation(): Don't always quietly ignore assertion
failure
discard ad328bea15 XML writer: flush after newlines
discard bfaa5635de Manual: Don't use a store path that actually exists
discard 904f50412c nix-store --verify: Continue on errors
discard 90b8a34f82 Fix regular expression
discard d1de836938 Fix the tarball build
discard f766e146f4 Fix the test
discard e35d6f78dc Rename nix-worker to nix-daemon
discard 522ecab9b8 Drop support for running nix-worker in "slave" mode
discard 7586095504 Remove bin2c
discard a562d544d8 When ‘--help’ is given, just run ‘man’ to show the manual
page
discard 9c41c66c5b Document ‘--repair’
discard 2bbc4a214e nix-env: Support ‘--repair’ flag
discard 2e90a5a2a7 nix-build: Support ‘--repair’ flag
discard 0a7084567f Add a ‘--repair’ flag to nix-instantiate
discard a807edfae8 Handle repairing paths that are in build-chroot-dirs
discard a3f205b249 When repairing a derivation, check and repair the entire
output closure
discard 2001895f3d Add a --repair flag to ‘nix-store -r’ to repair derivation
outputs
discard cf46f19444 nix-store -r: Get rid of an unnecessary call to
buildPaths/ensurePaths
discard 8e3a7bd712 nix-store --verify: Add an option ‘--repair’ to repair all
missing/corrupt paths
discard 9958bd6992 Add operation ‘nix-store --repair-path’
discard e666e1156f Handle octal escapes in /proc/self/mountinfo
discard f406288cc7 Print a more descriptive error message if setting up the
build environment fails
discard 95c74eae26 Allow dashes in identifiers
discard f46612be96 Add "on Linux" qualifier
discard d534f137f0 Make the store writable before creating /nix/store/.links
discard 0f358ca5b6 Document that Nix requires GNU Make
discard cb6651e878 Update release notes
discard e464b0247d Merge branch 'readonly-store'
discard 28bf183d2d Include <sys/types.h> for off_t
discard c1f91570b3 Style fix
discard 20582e9ae3 Support xz compression in the download-using-manifests
substituter
discard b9c2b4d5b4 Remove setting of the immutable bit
discard b9124a5c33 Support having /nix/store as a read-only bind mount
discard 76e88871b2 Templatise tokenizeString()
discard 00092b2d35 Keep build directory if not all expected outputs were
produced
discard b674665765 Test whether GNU tar understands --warning=no-timestamp
discard 09eb230900 Fix test
discard 983220bcd4 nix-collect-garbage: Support --dry-run
discard 9fd9dedf12 nix-env --delete-generations: Support --dry-run flag
discard 1bda006b74 Add a test for nix-profile.sh
discard aac14222f5 nix-profile.sh: Revert to single-user version
discard 54fe8e0773 Remove double Fedora release suffix
discard 47ae3ce2ca Put a time-to-live on negative binary cache lookups
discard e03a8a1c92 Doh
discard 8fbe96cb31 RemoteStore::connectToDaemon(): Set close-on-exec flag
discard e6e495649c Vacuum the SQLite DB after running the garbage collector
discard 2923b55f9d Delete paths in a component in topologically sorted order
discard 31114ec3a5 Fix the store optimisation test
discard c845c0ccad nix-channel: Add option to force fetching of manifests
discard b14717ab90 Delete manifests in "nix-channel --remove" or when a binary
cache is available
discard 6c4ac29917 Disable auto store optimisation for now
discard e56f71edaf In startBuilder(), only print the new paths we're building
discard 4fca02077c Handle gc-keep-outputs and gc-keep-derivations both enabled
discard 479e9172b3 Build hook: Pass the timeout to the remote builder
discard 4ba47205c6 Fix test failure on Darwin
discard 6762424e24 Compatibility fix for WWW::Curl < 4.14
discard d4c3b6327f Don't put results symlinks in the tests directory
discard 1f7901ec3b Test hash rewriting
discard 5e2ffd0b8a Fix "non-zero padding" error
discard 8cf672091e Support building a derivation if some outputs are already
valid (non-chroot case)
discard 9dbda2b3fe Remove debug line
discard a2785b7391 Support building a derivation if some outputs are already
valid
discard 295027f533 Include config.h before any other header
discard d3004c78d9 Don't use -warning=no-timestamp unless we have GNU tar
discard 360056e174 Document importing from a directory in the import
documentation
discard f7b650d234 Make "nix-instantiate -" interruptible
discard 15e1b2c223 Merge branch 'no-manifests'
discard 9e2fc6951c Disable the binary cache substituter by default for now
discard cfd968dd94 Fix stupid type error in calling std::max
discard f3077fd88d Add libwww-curl-perl to the Debian/Ubuntu images
discard cc8641815b Add WWW::Curl to the RPM dependencies
discard 2688fb73f1 Add perl-WWW-Curl to the RPM image
discard 8207359227 Whitespace
discard 8b8fe6139e Drop dependency on List::MoreUtils
discard babe54bf97 Add missing file
discard e94806d030 Merge branch 'master' into no-manifests
discard a9e6752bbd Include the output name in the GC root link
discard 4aa1e5c554 Receive reserveSpace before calling startWork()
discard d950cfe70b Check if MS_PRIVATE is defined
discard 56e30e161c In the chroot, make all mounted filesystems private
discard f0eab0636b Don't bind-mount /proc since we mount our own
discard 862c4c5ec5 Fix 1755 permission on temporary directories left behind by
‘-K’
discard 767101824a Avoid concatenating lists of one string
discard e5c589d271 Don't allocate empty lists
discard 3e89ef597c Optimise concatenating a list to an empty list
discard 9c2d63084b Add a primop ‘elemAt’ to get an element from a list
discard 198d0338be Add a primop ‘concatLists’
discard b9e5b908ed Provide an efficient implementation of ‘elem’
discard 4ccd48ce24 Add a "filter" primop
discard 62f72eb9e1 Add some more evaluations stats
discard e82767910c Add some basic profiling support to the evaluator
discard 325d1cfebf Don't warn about maximum link count exceeded on 0-byte files
discard d025142f52 Handle amount of disk space saved by hard linking being
negative
discard b6c989b801 Fix race condition when two processes create a hard link to
a file in .links
discard 108e14bb18 Fix race condition when two processes create the same link
in /nix/store/.links
discard 6763084ae5 Count bytes freed deleting unused links
discard 01d56c1eec Drop the block count in the garbage collector
discard 967d066d8e nix-store --gc: Make ‘--max-freed 0’ do the right thing
discard 1df702d347 removeUnusedLinks(): Print stats on disk space saved by
hard linking
discard 9c2decaa19 Merge branch 'master' into no-manifests
discard 5170c5691a nix-channel: Use binary caches advertised by channels
discard 79bba3782c Doh
discard ca94b38371 nix-env: Ignore manifest.nix when recursing into
~/.nix-defexpr
discard 46f852cda0 Use a GNU tar flag to shut up warnings about implausibly
old timestamp
discard afa7e01878 Inline unpack-channel.sh
discard 234ce610e0 Doh
discard 7b10562370 Make ‘nix-store --optimise’ interruptible
discard 8a25d787d7 download-from-binary-cache: Remove duplicate URLs
discard c770a2422a Report substituter errors to clients of the Nix daemon
discard 4d1b64f118 Allow daemon users to override ‘binary-caches’
discard eb7849e3a2 Prevent an injection attack in passing untrusted options to
substituters
discard 90d9c58d4d Pass all --option flags to the daemon
discard 89a8207029 Add an option ‘build-fallback’ (equivalent to the
--fallback flag)
discard 157170059d Manual: Remove reference to non-existent -I option
discard 97421eb5ec Refactor settings processing
discard d50d7a2874 Whitespace
discard 9cd63d2244 Do some validation of URLs
discard f3eb29c653 Fix the test
discard 9de6d10d11 Get rid of $NIX_BINARY_CACHES
discard ab42bf1dab nix-install-package: Support binary caches
discard d059bf48e4 Pass configuration settings to the substituters
discard f9613da180 Remove unused variables
discard 6183cf2f19 Fix whitespace
discard f15083c10a Document the --option flag
discard 66a3ac6a56 Allow a binary cache to declare that it doesn't support
"nix-env -qas"
discard 6ecf4f13f6 Use "set -x" in the tests to see where a test fails
discard e6ab52cdd1 Test "nix-env -qas" with the binary cache substituter
discard 73acb8b836 Let build.cc verify the expected hash of a substituter's
output
discard fbf59d95f6 Remove more tabs
discard 3a8f841612 download-using-manifests: Don't use nix-prefetch-url
discard b4ea83249b Remove trailing whitespace / tabs
discard 7f8e805c8e download-from-binary-cache: Only use the default cache for
/nix/store
discard 67c6f3eded nix-push: Support generating a manifest again
discard 50395b71a9 Fix the substituter tests
discard e3ce54ccee nix-push: Remove the upload feature
discard 609586a16d Add a test for the binary cache substituter
discard 7861260a5f Clear NIX_STORE when running the tests
discard 7892ad15ab download-from-binary-cache: Support file://
discard dbce685e91 Add some .gitignore entries
discard 8c79100839 Merge branch 'master' into no-manifests
discard 3a4623afbb Set permissions on temporary build directories to 0700
discard 2605f4f4e6 nix-profile.sh: Don't set NIX_REMOTE on single user
installations
discard 477b0fbeca Subscribe to the Nixpkgs rather than NixOS channel
discard f5954e2d94 prim_import: When importing .drvs, allocate the
intermediate attrset on the heap just in case it escapes the stack frame.
discard 1ef2d5765b Turn tests back on
discard b1112bbef1 import: If the path is a valid .drv file, parse it and
generate a derivation attrset.
discard 566a30c007 Disable tests temporarily
discard e98c029717 Handle platforms that don't support linking to a symlink
discard fd63c8bfcd Unlink the right file
discard 0f65793f94 Add a test for Nix store optimisation
discard 680ab6f83d Garbage collect unused links in /nix/store/.links
discard 6193105710 Automatically optimise the Nix store when a new path is
added
discard 564fb7d9fa optimiseStore(): Use a content-addressed file store in
/nix/store/.links
discard ed59bf7a18 nix-build: Support the ‘-’ argument to build an expression
from stdin
discard 6852289c46 Use lutimes() if available to canonicalise the timestamp of
symlinks
discard 1832ab71db Bump version
discard 98193bb440 Remove RPM builds that don't evaluate
discard b7fd2c2822 Use "#pragma once" to prevent repeated header file inclusion
discard 58337e0e61 Set release date
discard aa115e22df download-from-binary-cache: Print correct URL
discard fe241ece29 Merge branch 'master' into no-manifests
discard ccc52adfb2 Add function queryPathFromHashPart()
discard 220818f758 queryPathInfo(): return hash in base-32 if desired
discard a6f348599c Print some debug output
discard 3a9fdf2747 Return an exit code of 100 for cached failed builds
discard 1217204c81 Remove dead code
discard 51d71ad3d7 Manual: Don't claim we support Cygwin
discard 6c01fb4d68 Update Nix 1.1 release notes
discard 53b24f3518 Allow disabling log compression
discard a7a43adb79 builtins.storePath: resolve symlinks
discard 04559a0d45 Merge branch 'master' of github.com:NixOS/nix into
no-manifests
discard e4d6bcb6cd Update release notes
discard f2bdc87595 Update the other substituters
discard 15c15da482 Add some missing --version switches
discard d287b62b64 Set the User-Agent header to "Nix/<version>"
discard b74d92755d download-from-binary-cache: Use HEAD requests if possible
discard 09a6321aeb Replace hasSubstitutes() with querySubstitutablePaths()
discard 58ef4d9a95 Add a function queryValidPaths()
discard 667d5f1936 Rename queryValidPaths() to queryAllValidPaths()
discard eb3036da87 Implement querySubstitutablePathInfos() in the daemon
discard 6586414bc7 nix-env: Determine which paths have substitutes in parallel
discard 5ee8944155 Cleanup
discard eae802459d Pass --insecure to curl so that https works
discard 2dd3117c27 Inline fetchurl.sh
discard 51f9f9924b Add a test for the fetchurl function
discard 035aa11403 Remove obsolete comment
discard a2865f6b3d corepkgs/fetchurl: Build locally and outside of the chroot
discard 53f52c2111 corepkgs/fetchurl: the 'system' argument can be optional
discard 543bf742c9 corepkgs: distribute fetchurl files
discard f863673a90 corepkgs/fetchurl: Call the shell directly instead of using
the shebang
discard a994eb92a4 corepkgs/fetchurl.sh: Use config.nix's curl
discard 9d94a28bed The fetchurl builder is now fetchurl.sh
discard fd2630e1f7 Remove old fetchurl makefile
discard 6450f5699f Move fetchurl files out of their subdirectory
discard 40c01ec467 corepkgs/config.nix.in: We'll need curl
discard c4df747267 Resurrect old corepkgs fetchurl
discard 27f0c34390 Really fix RPM builds
discard ae72be1b8b Add WWW::Curl as a dependency
discard a560124cdf Fix RPM builds
discard 087dee6e1b Get rid of nix.conf.example
discard 5755a5c354 Install a nix.conf manpage
discard 099125435f download-from-binary-cache: add nix.conf options
discard 98a423b75a prim_import(): prefetch substitute info in parallel using
queryMissing()
discard 425cc612ad build.cc: Don't use hasSubstitute()
discard 400e556b34 Cleanup
discard 11800e6198 download-from-binary-cache: parallelise fetching of NAR
info files
discard cd94665f38 download-from-binary-cache: use WWW::Curl
discard ae60643c15 download-from-binary-cache: do negative NAR info caching
discard 89380c03e9 download-from-binary-cache: in queries, preferred cached
info
discard 2a8e5c8b11 download-from-binary-cache: strip trailing / from URLs
discard d694c599e2 download-from-binary-cache: cache binary cache info in a
SQLite DB
discard 8319b1ab9f download-from-binary-cache: Verify NAR hashes
discard cf49472d60 nix-push: Always generate base-32 hashes
discard 6ec7460af1 Binary caches: use a better key
discard 6b1e671ac6 Fix xz compression
discard 440adfbdd1 Add an environment variable $NIX_BINARY_CACHES specifying
URLs of binary caches
discard f4190c38ba Allow both bzip2 and xz compression
discard 000132cbd1 nix-push: Don't pollute the current directory with result
symlink
discard 37f7098464 First attempt at the manifest-less substituter
discard 91b8814f0d Doh
discard 4911a10a4e Use XZ compression in binary caches
discard 49cd7387ad nix-push: create a manifest-less binary cache
discard 1aba0bf0fa nix-store -r: do substitutions in parallel
discard 42f5a2fc29 Mount an empty /dev/shm tmpfs in the chroot
discard 3ee208516f Check the return code of the clone() call
discard 1db38ae81b When using chroots, use a private PID namespace
discard 5489086456 Use a private UTS namespace to provide a deterministic
host/domain name to builders
discard 8da6772ed4 Update release notes
discard 723a68c826 Improve error message
discard 7ffa523fd1 In chroot builds, use a private SysV IPC namespace
discard df716c98d2 In chroot builds, use a private network namespace
discard 2f3f413e91 Support socket-based, on-demand activation of the Nix
daemon with systemd
discard 02fb6323e0 Add Emacs to the disk image
discard 221626e715 fixes to nix-worker systemd service descriptor: - remove
commented-out lines - register the file for distribution in Makefile.am
discard a7ed1f67ee On systems with SystemD, install the service descriptor for
nix-worker, and enable and start it
discard 8922346305 Major spec update: - Fix license field - Split into
subpackages - Update build dependencies - Configure users and groups for
multi-user mode - Fix installation location of Perl modules
discard 6a214f3e06 Update nix profile: - incorporate NixOS's configuration so
that nix is usable by normal users - install as a data file, not a program file
discard d0308073c3 - only enable deprecated spec sections when building on
systems with older RPM versions - move tests to dedicated %check section - use
standard build macros
discard e545a7f9a8 - replace %define with %global
discard f5398d374b Compress build logs on the fly using bzip2
discard 881beb170d "nix-store -l": support compressed logs
discard 4bc4da331a Reserve some disk space for the garbage collector
discard 2c26985835 Add option ‘build-keep-log’ to enable/disable writing of
build logs
discard 8058dab26e Clean up the installation section; document the generic
binary tarballs
discard 0301525e6c Fix owner/group in tar invocation
discard 6814b1dfa1 Generate binary tarballs for installing Nix
discard 591aab7e21 Remove $FONTCONFIG_FILE hack from nix-profile.sh
discard e071f87dc5 Add an experimental nix-make file
discard cac9eb39fe Bump version number
discard dfc6a43b72 Fix the install check
discard 587b408210 Set release date
discard 8a08813d6c Manual updates
discard 2b00e6990c CSS tweaks
discard 58d1de08d9 Use perl.libPrefix to (hopefully) fix the Cygwin build
discard 37fa47908b Build Ubuntu 12.04 packages
discard 4d383f57f4 Document "nix-build --run-env"
discard 4f7bab7db1 Support building with the Perl XS bindings disabled
discard 6a7b24a3f2 Document "nix-store --add"
discard cda1fd8ec8 Remove an obsolete hack
discard 663c06e8cd Disable building in chroot for Nix's corepkgs
discard cb1248d208 Document some nix-store subcommands
discard 7a213ffc69 Document $NIX_PATH / -I
discard a58efdb69b Update the release notes
discard 0c4c8f7a9d Remove obsolete files (moved to release tree)
discard afa7b8a479 nix-channel --update: allow updating only the specified
channels
discard 147f10157f Now *really* prevent accumulation of old manifests
discard 464089365e Fix some 32-bit builds
discard c6acb219f9 Drop the Perl-specific CFLAGS
discard 56c82f3d9d Don't build for old Debian/Ubuntu releases that don't have
a sufficiently new SQLite
discard 373e875ac2 Don't build for old Fedora releases that don't have a
sufficiently new SQLite
discard d03a295192 Require SQLite >= 3.6.19
discard e060c99447 Use mkpath instead of make_path
discard e19fb7ebed Do "make installcheck" for RPM builds
discard e145ac30e3 Do "make installcheck" for Debian builds
discard db5b86ef13 * Add an option ‘build-use-substitutes’, which can be set
to ‘false’ to disable use of substitutes; i.e., force building from source.
Fixes Nix/221.
discard 59a26360c7 Support mandatory system features in the build hook
discard 82ae0e688c Update the documentation of build-remote.pl
discard 46cdc6ad51 Handle EPERM when creating a hard link for the chroot
discard c722193a91 Don't use the build hook for unpacking channels
discard 6de5d53416 Fix a warning in the build hook about $progressViewer
discard 6387830c3b Merge pull request #2 from viric/master
discard 259c6d3fbb Fix URL set by nix-channel
discard 9cd3ff1059 nix-instantiate: default to "default.nix" if no arguments
are given
discard 8745fade03 Added utility command ‘nix-instantiate --find-file’ to look
up a file in Nix's search path
discard 8cf1719e3e Hack to prevent accumulation of old manifests
discard 1132dd27ea Fix obscure race condition in GC root creation
discard 154aa7f71a Set a few more close-on-exec flags
discard 31e34fcf93 Close almost all file descriptors in the builder
discard 0b5107c016 If the (redirected) channel URL contains a version number,
use it
discard 1d0bafb74d Follow redirects early to ensure consistency between the
manifest and the tarball
discard ca3d9f8b31 Urgh, modified the wrong file...
discard ef902274fd Remove unnecessary "system" argument
discard e855c7e2c9 nix-channel improvements
discard 969a14599d If "pv" is available at compile time, hard-code its path
discard 34a85c5405 nix-copy-closure: Move the progressViewer directly adjacent
to the ssh call so that network progress is what's measured
discard 055e803851 Add the '--show-progress' flag to nix-copy-closure
discard 00c98a6bef Use Bison 2.5
discard 209927bb27 Unconfuse Rob
discard 1fb30e6d50 Handle the case where $SHELL is not set
discard 8f6146a7bc Merge pull request #5 from shlevy/doc-fix
discard 242a99c95a Nix is on github now
discard 533250a4a3 Fix building from the tarball
discard 831c7aa410 Documentation fix
discard 5863987bba Include environment variables in the manpages
discard 998b977ede Include common options in the manpages using some XInclude
hackery
discard d49ef039dd Update affiliation
discard 5a6d50998d Add a missing DocBook source file to the tarball
discard f2467eb6a0 On Linux, pretend we're building on Linux 2.6
discard 3b859ead37 nix-generate-patches: Optionally write new patches to
$NIX_ALL_PATCHES
discard 34ea91b259 Include --keep-going in --help
discard 0837348049 Follow redirects when checking for the existence of
MANIFEST.bz2
discard b8fb0ce563 Update "nix-build --help"
discard 5144abe5b6 Add an option "--exclude" to filter dependencies in
"nix-build --run-env"
discard 3e94ffffd6 Allow the command executed by "nix-build --run-env" to be
overriden with --command
discard 446b827bae Mac OS X fix
discard 480dda0e42 Delete non-directory valid paths right away
discard 117670be57 Make the garbage collector more concurrent
discard 8be1979f1a Remove the --max-links GC option
discard 85799bf89e Fixing the default of sync-before-registering
discard 25de80e2b6 Adding a nix option to sync before registering a path, for
non-ext* filesystems.
discard 19d9762ad5 nix-store --clear-failed-paths: Clear derivation outputs
discard cb79e91ec3 Fix the coverage build
discard 457dd55962 Fix the Deb builds
discard 4b83483142 Fix the RPM
discard 7f38087f35 Add a command "nix-build --run-env" to reproduce the
environment of a derivation
discard ea402a255f Replace "make check" with "make installcheck"
discard 4b23900ff1 Fix the optional dependency on OpenSSL
discard b006a31d52 Drop the externals directory
discard 2e0322efd1 Clean up when building from a working tree
discard bd50c01972 Ensure that Perl processes delete their entry in the
temproots directory
discard b461721f17 Fix tests
discard 005d1e4ccb Update bzip2 dependency
discard 605b16cd7b Fix compilation on FreeBSD
discard d645633643 nix-copy-closure: don't print copied path on stdout
discard 35355fc1fc Set the close-on-exec flag on file descriptors
discard 7b22bec252 Don't leak a file descriptor in commonChildInit()
discard 1d487dc6a6 nix-worker: put the pid of the caller in argv[1]
discard 2b4964f319 Restore progress indication during nix-copy-closure
discard 56042a120a build-remote.pl: don't wait forever for the upload lock
discard 8afd28a922 Remove dependency on sqlite3_table_column_metadata
discard 1c94524458 Fix an uninitialised variable
discard 6fe13e6aba Fix chroots builds
discard bd013b6f98 On Linux, make the Nix store really read-only by using the
immutable bit
discard 5e57047d87 Fix a broken guard around utime()
discard 58ac7a17a4 Don't use deletePath() to delete a single file
discard e9fc91df45 Fix error message
discard d5a5a83ad4 Use data() instead of c_str() where appropriate
discard ec2827f5fc Update .gitignore
discard 4055a3b19c Remove empty ChangeLog file
discard fb95455c02 Set the versionSuffix to include the Git shortrev
discard 67444f5e54 * Build Nix for the latest Fedora and Ubuntu releases (and
drop some old ones).
discard f491ae97d4 * Inline some functions and get rid of the indirection
through EvalState::eval(). This gives a 12% speedup on ‘nix-instantiate
/etc/nixos/nixos/ -A system --readonly-mode’ (from 1.01s to 0.89s).
discard 2bda12ef3b * Print elapsed evaluation time.
discard ce86a9a0ae * nix-channel: fail if we don't have write permission to
the manifests directory. Previously in this situation we did add the Nix
expressions from the channel to allow installation from source, but this
doesn't work for binary-only channels and leads to confusing error messages.
discard baa0501cc1 * Fix importing a derivation. This gave a segfault.
discard 4c9fdd2cd6 * Add a test for importing derivations.
discard 330df4b4db * Allow comparisons between derivations by comparing the
outPath attributes.
discard 18047d4625 * Add some debug output to print the derivation name once
it's known. This makes it easier to pinpoint the source of a crash.
discard 126c7317bc * Add a test case for comparing derivations.
discard ddd0ce534a * Don't distribute Store.cc, it's generated automatically
by xsubpp.
discard 02f1363e19 * Pass the appropriate flags to GCC when building the Perl
bindings. Without these, Nix fails on 32-bit Linux with Perl 5.14, with a
rather unhelpful error message:
discard 4e624849b6 * Added a command ‘nix-store --print-env $drvpath’ that
prints out the environment of the given derivation in a format that can be
sourced by the shell, e.g.
discard 2a3f4110c5 * nix-build: put the temporary derivation symlink in a
temporary directory rather than the current directory. * nix-build:
--drv-link now implies --add-drv-link.
discard 7ae763e16b * ‘-module’ causes the generated library to have an .so
extension on Mac OS X instead of .dylib, so don't do that.
discard 6245f0d529 tests: Run `download-using-manifests' via libtool so that
dlopening works.
discard c5d9ccd810 perl: Build libNixStore.la with `-module'.
discard f86fca9b70 * Figure out the extension of dynamic libraries; don't
hard-code .so.
discard 9fe24c5a0d * Don't create thunks for simple constants (integers,
strings, paths) and allocate them only once. * Move Value and related
functions into value.hh.
discard d4e6b9f2d6 * Doh!
discard a7366a764a * Add a -I flag to the Perl bindings to nix-build and some
other 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.
discard b52966e821 * Remove dead code.
discard 35f2a6ba82 * Don't use dynamic_cast, it's very slow. "nix-instantiate
/etc/nixos/nixos -A system" spent about 10% of its time in dynamic_cast.
discard adaf64a99b * Merge the multiple-outputs-sandbox branch (svn merge
--reintegrate ^/nix/branches/multiple-outputs-sandbox). Multiple output
support still isn't complete, but it wasn't complete in the trunk either, so
it doesn't hurt.
discard 9936da6b54 * Check whether the outputName attribute works.
discard 9d43a02382 * Let --disable-gc work.
discard a0477a458f * currentOutput -> outputName. "current" implies some
temporal aspect.
discard b79b85ad76 * Export the original input attributes of the derivation in
‘drvAttrs’. This will simplify the implementation of functions such as
‘overrideDerivation’ in Nixpkgs, which need to filter out any added
attributes such as outPath.
discard 83647f4ef1 * Simplify the implementation of "derivation" a bit: lift
out the common attribution so that they're evaluated only once, etc. Note
that the default output is now the first element of the "outputs" attribute,
rather than the first element of the sorted list of outputs. This seems more
user-friendly.
discard 71f3c46cf6 * Drop the inefficient "Path" suffix in output attribute
names.
discard 921111d197 * Move the implementation of the ‘derivation’ primop into a
separate file.
discard 6c31232e14 * Sync with the trunk.
discard 502d94048a * Ignore missing manifest symlinks.
discard 63227d434c * FreeBSD tar defaults to the tape device instead of stdout.
discard 9b7df1ef00 * Forgot to add.
discard 39d45a6b09 * Add a test for nix-channel. * Refactor the nix-channel
unpacker a bit.
discard dadbb51d96 * Use Nix::Config.
discard 48cea0d01e * Refactoring: Get rid of a few subdirectories in
corepkgs/, and some other simplifications. * Use <nix/...> to locate the
corepkgs. This allows them to be overriden through $NIX_PATH. * Use bash's
pipefail option in the NAR builder so that we don't need to create a
temporary file.
discard 93e71e6ab6 * Follow our own coding conventions.
discard f2d65c9c80 * Remove a redundant dot (Nicolas Pierron).
discard 93b56acb2d * Support multiple outputs in nix-store (specifically the
‘--query’ and ‘--realise’ actions).
discard a71d02440b * Oops.
discard 6f5e3326ce * Move topoSortPaths() out of gc.cc.
discard b1004f40f7 * Reject a build if there is a cycle among the outputs.
This is necessary because existing code assumes that the references graph is
acyclic.
discard ed11b17b2e * Fix doc error.
discard 254b3399ba * Sync with the trunk.
discard 8c42a8c8ff * Make sure that lock files are cleaned up properly when
building through the build hook.
discard 524fa8a4f1 * Oops.
discard b33da599c5 * In the garbage collector, delete invalid paths before
deleting unreachable paths. This matters when using --max-freed etc.:
unreachable paths could become reachable again, so it's nicer to keep them if
there is "real" garbage to be deleted. Also, don't use readDirectory() but
read the Nix store and delete invalid paths in parallel. This reduces GC
latency on very large Nix stores.
discard 58d974336c * Drop unnecessary call to canonPath() (nixStore is already
canonical).
discard 66c99b0cf5 * ‘--disable-shared’ is no longer supported. Fortunately
it's not needed for the coverage analysis.
discard 2aac7cd021 * Another case of lock file permissions being too liberal.
discard 4d728bc3e6 * Security: make sure the lock files used by
build-remote.pl are not readable to other users. Otherwise, any user can
open the lock file for reading and lock it, thus DoSing the remote build
mechanism.
discard 69d6f0936a * Use a lock to ensure that only one build-remote instance
can copy a closure to a given machine at the same time. This prevents the
case where multiple instances try to copy the same missing store path to
the target machine, which is very wasteful.
discard 5679041132 * The ‘foo.drvPath’ feature was already broken in read-only
mode. Since it's rarely used and fixing it is too much work right now, just
document it.
discard f8e54b7874 Make the reference cycle in the cyclic outputs test indirect
discard b4cee3f816 Revert previous commit
discard f3c88f297d Detect and reject mutually-referential outputs
discard b19a0f63db * Simplify the context handling logic.
discard 4be5a2c096 * Add a test for unsafeDiscardOutputDependency. Not really
related to multiple outputs, but good to have anyway.
discard 179409b911 * Add a test for referring to another derivation's
‘drvPath’. This currently fails in read-only mode.
discard 3877619888 * Add some accidentally committed files.
discard edd9359beb * Doing a GC after building a derivation with cyclic
outputs currently segfaults.
discard 1f3b0ede7d * Add a (currently failing) test that checks whether
mutually recursive outputs are properly rejected. * Add a (also failing) test
for "nix-build -A <output-name>".
discard 46e42c92c1 * Refactor a bit so that more tests can be added.
discard b5363810bb * Fix the build.
discard 194d21f9f6 * Sync with the trunk.
discard 273b288a7e * importPath() -> importPaths(). Because of buffering of
the input stream it's now necessary for the daemon to process the entire
sequence of exported paths, rather than letting the client do it.
discard 8d3dfa2c17 * Avoid expensive conversions from char arrays to STL
strings.
discard e0bd307802 * Make the import operation through the daemon much more
efficient (way fewer roundtrips) by allowing the client to send data in
bigger chunks. * Some refactoring.
discard 78598d06f0 * Clean up exception handling.
discard 5a1b9ed0aa * Refactoring: move sink/source buffering into separate
classes. * Buffer the HashSink. This speeds up hashing a bit because it
prevents lots of calls to the hash update functions (e.g. nix-hash went from
9.3s to 8.7s of user time on the closure of my /var/run/current-system).
discard a67b8ae224 * Typo.
discard a3e0656cbb * Buffer reads in FdSource. Together with write buffering,
this significantly cuts down the number of syscalls (e.g., for "nix-store
-qR /var/run/current-system" via the daemon, it reduced the number of
syscalls in the client from 29134 to 4766 and in the daemon from 44266 to
20666).
discard 3a48282b06 * Buffer writes in FdSink. This significantly reduces the
number of system calls / context switches when dumping a NAR and in the
worker protocol.
discard 893cac1402 * Remove the terminate handler, which was only really
needed because of Berkeley DB (see r8632).
discard 23bf700196 * Oops, the daemon test wasn't actually using the daemon.
discard c8c0380744 * Remove unnecessary quotes. showPaths() already adds
quotes.
discard 000160f5b9 * In ‘nix-store --verify --check-contents’, repair missing
hashes rather than complain about them.
discard 3964d95abf * nix-prefetch-url: rewritten in Perl.
discard 92d6a5ed73 * Add some more functions to the Perl bindings.
discard 49f59dceca * Move parseHash16or32 into libutil, and use in nix-hash.
discard b12b21825c * Allow '<nixexpr>' syntax to be used in nix-instantiate,
nix-build and nix-env, e.g.,
discard 23c38a04cc * Slight improvement.
discard 24f863d86b * When doing "nix-store --add-fixed" without "--recursive"
via the Nix daemon (which is an error), print a nicer error message than
"Connection reset by peer" or "broken pipe". * In the daemon, log errors that
occur during request parameter processing.
discard be9be4c147 doc/manual/nix-env.xml: fixed "nix-env -qaA" typo
discard 3c7ec8fc1b doc/manual/nix-env.xml: stripped trailing whitespace
discard f35c4351e5 * Don't require a specific Perl version.
discard 4d0407ba08 * Fix make check.
discard 1749a7b0ae * download-using-manifests: use the Perl bindings.
discard b1eb8f4249 * Get rid of some superfluous error messages if a
substituter fails. * Say "fetch" instead of "substitute".
discard 216440b3ff * For consistency with "nix-store -q --hash", produce
hashes in base-32. (This affects Hydra manifests.)
discard 1df120cb05 * Get rid of the shell in ssh calls.
discard 784083176a * Fix race.
discard f3bc98b001
discard 10e2b2b79e * Document the --include-outputs option.
discard d5ac78e0d6 * Add bzip2 and xz support to nix-copy-closure.
discard 5bbd693cae * Add an API function exportPaths() that provides the
functionality of ‘nix-store --export’. * Add a Perl module that provides the
functionality of ‘nix-copy-closure --to’. This is used by build-remote.pl so
it no longer needs to start a separate nix-copy-closure process. Also, it
uses the Perl API to do the export, so it doesn't need to start a separate
nix-store process either. As a result, nix-copy-closure and build-remote.pl
should no longer fail on [...]
discard ab20af3e6f * build-remote.pl: drop a hard-coded reference to
/nix/etc/nix.
discard 993fa94fb4 * Move initialisation of variables like nixConfDir from
libmain to libstore so that the Perl bindings can use it as well. It's vital
that the Perl bindings use the configuration file, because otherwise
nix-copy-closure will fail with a ‘database locked’ message if the value of
‘use-sqlite-wal’ is changed from the default.
discard 4e1ea17052 nix: add /etc/hosts with localhost entry to chroot builds.
discard 4de3e2a0db * Doh.
discard 23e933b3b3 * Put back the "sys_name" variable which got removed
somewhere. This broke building on Cygwin and Solaris.
discard a6abade8e8 * Escape the [ and ] characters in the sed call, otherwise
autoconf will eat them.
discard 964399c079 * "sed" on FreeBSD doesn't know the "+" operator.
discard b92f76374f * In the platform, canonicalise "amd64" to "x86_64".
FreeBSD 8.2's uname reports amd64. * Drop the FreeBSD version number, e.g.
"i686-freebsd" instead of "i686-freebsd8.2".
discard 42164d6de4 configure: Change i*86 to i686 as has always been done.
discard 45ec69cbdf configure: Rely on `AC_CANONICAL_HOST' to determine the Nix
system name.
discard f8e609c341 * nix-pull: update the Nix manifest cache if necessary.
Also, don't read the manifest just to check the version and print the number
of paths. This makes nix-pull very fast for the cached cache (speeding up
nixos-rebuild without the ‘--no-pull’ or ‘--fast’ options).
discard d7d7910ba4 * Don't decompress the manifests in /nix/var/nix/manifest.
This saves disk space, and, since they're typically only decompressed once
(to fill the manifest cache), doesn't make things slower.
discard 63ee5e4d2a * Remove obsolete line.
discard a5952405d2 * Re-use prepared statements across insertions into the
manifest cache DB. This speeds up creating the cache from 16.1s to 7.9s on
my system.
discard c0b706213d * Boldly make SQLite WAL mode the default again. Hopefully
the intermittent problems are gone by now. WAL mode is preferrable because
it does way fewer fsyncs.
discard 3c3107da86 There's no need to mess with drvPath at all
discard 2ab29be70c Fix faulty reversion of my changes to
unsafeDiscardOutputDependency
discard ca0d47a70c Respect all outputs passed to the derivation, not just the
last one
discard 24b65937e1 Remove the unused sCurrentOutput symbol
discard 3522730316 Embed output name into the context of the *OutPath
attributes and extract it for input derivations
discard 46876ff203 Fix stupid typo in multiple outputs test
discard af2e53fd48 Include all outputs of derivations in the closure of
explicitly-passed derivation paths
discard 981edeab7b The 'insert output between = signs' approach was not helpful
discard f883afa1a1 The nixinstantiate and nixstore env vars are no longer set
in common.sh
discard 2721e9f56f Merge from trunk
discard a6a3f3a8c2 * Fix race condition in the test.
discard fa69ff5726 * Fix the broken reference to bunzip2 in the channel unpack
script.
discard daed9aeac5
discard d7b87bebe3 * The Nix configuration file is usually /etc/nix/nix.conf.
discard 325b5a8aee * Fix permission on /nix/store in the manual for multi-user
installs (reported by Silvio Frischknecht).
discard a12095d3be * In printValueAsXML, handle the case where a "type"
attribute is not a string. This happens in the NixOS option system. * Remove
a bogus comparison of a unsigned integer with -1.
discard 00b41e46ed * Print a consistent message.
discard f186a9141e * nix-copy-closure: support ‘--dry-run’ and
‘--include-outputs’.
discard 6761757428 * Use the Store API bindings in nix-copy-closure.
discard d43a148204 * Add a test for nix-copy-closure.
discard 2492914fbc * Move the remote building test from the NixOS tree to the
Nix tree.
discard c362e4d718 * Move SSH.pm.
discard 7d314b8c95 * Work around a race condition starting the Nix daemon.
discard 5193db048e * Set svn:ignore.
discard a2a317eb0b * Distribute GeneratePatches.pm.
discard 5090c34ee1 * Set the executable bit on scripts.
discard 8af7d766f0 * Refactoring: remove unnecessary variables from the tests.
discard cd6d02c366
discard 6fcdbcac20 * Install NixManifest.pm, NixConfig.pm and
GeneratePatches.pm under the Nix:: namespace.
discard 659c427caa * Hopefully perl-devel contains the required headers
(untested).
discard 73fe6871c4 * Include the Nix Perl bindings in Nix itself. This will
allow the bindings to be used in Nix's own Perl scripts.
discard bffe35aced Update gitignore
discard 6c38cc9025 Ignore everything created during build
discard 55481c44d4 * Don't assume that we want a shared Nix store.
discard e81c09edbf Remove the current output metadata from the string for
unsaveDiscardOutputDependency
discard bf50d6ad32 Add information about which output is active to drvPath's
context
discard ffa038f66d Add an sCurrentOutput member to EvalState
discard f3e410d4bf Add a currentOutput attribute to derivations keep track of
which output is active
discard 8f28a3ba25 Add a test for multiple outputs
discard c172d16b00 First attempt at the output-as-derivation semantics
discard 0b34e57eb8 Create a branch for me to play around with finishing off
the multiple outputs implementation
discard 13114daa3e * Ouch. A store upgrade could cause a substituter to be
triggered, causing a deadlock.
discard 281e3ed059 bootstrap: Simplify & make more robust.
discard e6cb3d0a0d * Added a command ‘nix-store --verify-paths PATHS’ to check
whether the contents of any of the given store paths have been modified.
E.g.
discard 82710f96f7 * Add some -f flags, never hurts.
discard 93227ff65c * Eliminate all uses of the global variable ‘store’ from
libstore. This should also fix:
discard 5bcdc7e351 * Update the cleanup script.
discard a95ba4cdd9 * Use last_insert_id instead of sqlite_last_insert_rowid,
which you're not really supposed to use according to the DBD::SQLite docs,
and fails on some systems (e.g. http://hydra.nixos.org/build/1246662).
discard da18b11b05 * On FreeBSD, ‘touch’ is not in the test $PATH, so don't
use it.
discard 76e0029f7a * Add perl-DBD-SQLite as a dependency of the RPM builds.
discard d374be551d * Add DBD-SQLite as a dependency to the Debian/Ubuntu
builds. * Drop some old Fedora/Debian/Ubuntu releases.
discard 2d663b502d * Cache the result of file evaluation (i.e, memoize
evalFile()). This prevents files from being evaluated and stored as values
multiple times. For instance, evaluation of the ‘system’ attribute in NixOS
causes ‘nixpkgs/pkgs/lib/lists.nix’ to be evaluated 2019 times.
discard 510033e783 * Handle <path> syntax.
discard 9d091ee99a * Handle the case where the search path element is a
regular file.
discard 00a724ebc6 * Remove a debug statement.
discard 07340b8be7 * Add the Nix corepkgs to the end of the search path. This
makes it possible for other Nix expressions to use corepkgs (mostly useful
for the buildenv function).
discard c7101dac0b * Allow redirections in search path entries. E.g. if you
have a directory
discard 1578b2261d * Add lang/dir* to the distribution.
discard 1ecc97b6bd * Add a Nix expression search path feature. Paths between
angle brackets, e.g.
discard 54945a2950 * Refactoring: move parseExprFromFile() and
parseExprFromString() into the EvalState class.
discard c8606664ab * Don't allow derivations with fixed and non-fixed outputs.
discard b2027f70d9 * Fix a huuuuge security hole in the Nix daemon. It didn't
check that derivations added to the store by clients have "correct" output
paths (meaning that the output paths are computed by hashing the derivation
according to a certain algorithm). This means that a malicious user could
craft a special .drv file to build *any* desired path in the store with any
desired contents (so long as the path doesn't already exist). Then the
attacker just needs to wait [...]
discard d2bfe1b071 * Added a test that make sure that users cannot register
specially-crafted derivations that produce output paths belonging to other
derivations. This could be used to inject malware into the store.
discard 4bdb51e621 * Refactoring.
discard 0243eea4b9 * Create a symlink to /nix/var/nix/manifests in
/nix/var/nix/gcroots if it doesn't exist.
discard d329c3ea9d * Support multiple outputs. A derivation can declare
multiple outputs by setting the ‘outputs’ attribute. For example:
discard d9a5959139 * Show the default for --with-store-dir (Nix/211).
discard d5d4dcd4c9 * Allow attribute names to be strings. Based on the
allow-arbitrary-strinsg-in-names patch by Marc Weber.
discard e649f3168b * Fix concurrency issues in download-using-manifests'
handling of the SQLite manifest cache. The DBI AutoCommit feature caused
every process to have an active transaction at all times, which could
indefinitely block processes wanting to update the manifest cache.
discard 0a623a10c7 * Allow a default value in attribute selection by writing
discard 2b9e29b1c8 * Change the right-hand side of the ‘.’ operator from an
attribute to an attribute path. This is a refactoring to support default
values.
discard 5580f3817c * Test case.
discard 5637037802 * In the ‘?’ operator, allow attribute paths. For
instance, you can write ‘attrs ? a.b’ to test whether ‘attrs’ has an
attribute ‘a’ containing an attribute ‘b’. This is more convenient than
‘attrs ? a && attrs.a ? b’.
discard 34f4b91820
discard 1ea6e06445 doc: Fix typo.
discard 5c9e9f732d Add support for the `build-timeout' and `--timeout' options.
discard 9c99aa2620
discard e4d8148585
discard 4891b21f34 * Use SQLite 3.7.6.2.
discard d94cb02bfe * nix-install-package: unset NIX_REMOTE because
$NIX_MANIFESTS_DIR doesn't work when building through the Nix daemon. This
also ensures an error message when the user doesn't have sufficient
privileges to do nix-pull.
discard 8c69dac8a1 * Handle error messages from the Nix worker containing the
`%' character. (Nix/216)
discard 4ba6afaf48 * `nix-env -ub' (`--prebuilt-only') didn't really work
because it checked too soon whether substitutes are available. That is, it
did so for every available package, rather than those matching installed
packages. This was very slow and subject to assertion failures. So do the
check much later. Idem for `nix-env -qab' and `nix-env -ib'.
discard 412914d004 * Read manifests directly into the database, rather than
first reading them into memory. This brings memory use down to (more or
less) O(1). For instance, on my test case, the maximum resident size of
download-using-manifests while filling the DB went from 142 MiB to 11 MiB.
discard 08c8971498 * Lock the database during updates.
discard b2c11b9ed0
discard 3cbf680f5d * configure: detect whether DBD::SQLite is present. If
necessary the location to DBI and DBD::SQLite can be passed with --with-dbi
and --with-dbd-sqlite.
discard 83252b4ca9 * Subtle bug: if you import File::stat in one module, it
affects other modules as well. So use symbolic field names everywhere (which
is nicer anyway).
discard b1882c3ef7 * Create $manifestDir if it doesn't exist.
discard 5591fcc529 * Cache the manifests in /nix/var/nix/manifests in a SQLite
database. This significantly speeds up the download-using-manifests
substituter, especially if manifests are very large. For instance, one
"nix-build -A geeqie" operation that updated four packages using binary
patches went from 18.5s to 1.6s. It also significantly reduces memory use.
discard 1e7e4f21ba * Remove the localPaths feature in manifests since it's no
longer used and redundant anyway.
discard 0423d0692a * Print a better error message.
discard 48bdbbf070 * Fix a bug in the documentation (reported by Olexiy
Buyanskyy, Nix/215).
discard 802c2651c8
discard e945b52a31 * nix-push: handle the case where the hash is not set in
the DB.
discard c3cee5395b * Build for Ubuntu 10.04.
discard 8fcaf3e9c6 make nix-mode provide 'nix-mode
discard 538b7caab0 * Don't allocate a big initial GC address space on machines
with 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.
discard 5a6b039802 * Don't call GC_expand_hp unless we're actually using the
garbage collector.
discard f1462c208b Use $BDW_GC_LIBS instead of a custom variable.
discard 1876ab764f * A better fix. $boehmgc isn't set anywhere, we should use
the flags returned by pkg-config.
discard dfc4117e90 * The GC library can't be found on Solaris
(http://hydra.nixos.org/build/890714), so don't build with GC support for now.
discard d159ea1b7e * Urgh, FreeBSD doesn't have a "seq" command.
discard 3087b3f751 * Obsolete.
discard eb94581d39 * Remove obsolete directory.
discard 7bba67c401 * Remove obsolete file.
discard d0eda1f3e9 * Merged the SQLite branch.
discard 543988572e * Sync with the trunk.
discard c0340eec5a
discard 0304fda3cf * Propagate the CC setting.
discard aeae0beba4 * Clang compatibility fix. Clang actually checks template
definitions when they are defined
discard 3854fc9b42 Remove useless <config.h> inclusion from public header.
discard 9db190eb31 * builtins.substring: if "start" is beyond the end of the
string, return the empty string.
discard d6c8b995c5 * In Hydra manifests the Size field is missing, so don't
rely on it. This caused a lot of "Use of uninitialized value" warnings from
Perl.
discard c931a7aec5 * Do a short sleep after SQLITE_BUSY.
discard b1eb252172 * Propagate the "100" exit status for failed builds through
the Nix daemon.
discard eac93d6efe * Use the right `make'.
discard a0be433fec * Disable X11 forwarding, it's not needed.
discard f1a6b97639 * nix-copy-closure: make sure that the shell doesn't do
globbing of `+' and `?' in filenames. This is very slow if /nix/store is
very large. (This is a quick hack - a cleaner solution would be to bypass
the shell entirely.)
discard 3dd02580e3 * I forgot to catch SQLiteBusy in registerValidPaths(). So
registerValidPaths() now handles busy errors and registerValidPath() is
simply a wrapper around it.
discard d787285af9 * nix-instantiate: return exit status 100 to denote a
permanent build failure. The build hook can use this to distinguish between
transient and permanent failures on the remote side.
discard 5833243c92 * Create /nix/var/nix/db if it's missing.
discard 100becf8d1 * createDirs(path): if path already exists, make sure it's
a directory. * Provide a C++ wrapper around lstat().
discard d7ca6f44eb * Update some comments.
discard 542fc69062 * When doing a query (e.g. `nix-store -r --dry-run'), don't
make a lot of expensive calls to `nix-store --check-validity'.
discard 4d57776813 * Use SQLite 3.7.4.
discard e4720b1a79 * Ignore the result of sqlite3_reset().
discard 7d0444e244 * Bad things happen when a filehandle has the same name as
a module.
discard 8062d3af30 * `nix-store --verify --check-contents': don't hold the
global GC lock while checking the contents, since this operation can take a
very long time to finish. Also, fill in missing narSize fields in the DB
while doing this.
discard de79d23f76 * Retry a transaction if SQLite returns SQLITE_BUSY. This
can happen even with a very long busy timeout, because SQLITE_BUSY is also
returned to resolve deadlocks. This should get rid of random "database is
locked" errors. This is kind of hard to test though. * Fix a horrible bug in
deleteFromStore(): deletePathWrapped() should be called after committing the
transaction, not before, because the commit might not succeed.
discard 365f3028dd * Use CamelCase for the Perl modules.
discard f42a505ab7 * Add a script `nix-generate-patches'. * Fix the binary
patching test.
discard 77f7a6d591 * Quick hack around one of the pathological cases in bsdiff
(namely, when there is a long region of 0s). On one 86 MiB case, this cut
patch generation time from 44m to 2m.
discard d3bba0c2d8 * Move the patch generator into a module.
discard 9737a7eba0 * Don't generate patches if the system type differs.
discard bd48fd97f6 * Impose a configurable time limit on patch generation.
This is necessary because bsdiff has some pathological worst-case behaviour,
e.g. O(n^2) on files consisting only of 0s.
discard 703e5a2ce2 * Sync with the trunk.
discard 812fae424e * DrvInfo contains pointers to expressions, so DrvInfos
should be traced by the garbage collector. Otherwise "nix-env -u" can crash
randomly.
discard d92ccbf1ac * Test whether sequences of patches work.
discard 1a211d812f * Oops.
discard a4f0365b2d * When checking whether a patch is applicable, for
efficiency, use `nix-store -q --hash' to get the hash of the base path rather
than `nix-hash'. However, only do this for estimating the size of a
download, not for the actual substitution, because sometimes the contents of
store paths are modified (which they shouldn't, of course).
discard 3d38a49840 * In the download size indication, take binary patches into
account. Hopefully this doesn't slow things down too much.
discard f69626ed3e
discard a07c68f05e * Finally, a test for the binary patch functionality.
discard bf658f016f * Test that download sizes are shown correctly.
discard 1e24cbaba3 * Fix the test.
discard bdf089f463 * Before a build, show the disk space that the downloaded
store paths will approximately require.
discard 06699d4219 * Store the NAR size in the manifest.
discard 5693b8a7e2 * nix-push: no need to compute the NAR hash, since the Nix
database already has it (`nix-store -q --hash').
discard e60c962fb8 * Add an operation `nix-store -q --size'.
discard 1db6259076 * Implement RemoteStore::queryPathInfo().
discard a3883cbd28 * Store the size of a store path in the database (to be
precise, the size of the NAR serialisation of the path, i.e., `nix-store
--dump PATH'). This is useful for Hydra.
discard fb9368b5a0 * Sync with the trunk.
discard 4aced7f8d0 * Merge the GC branch.
discard 26def5392f * Document Boehm GC support.
discard 3d71c8013e * Use pkgconfig to locate the Boehm GC (as suggested by
Ludo), if --enable-gc is given.
discard 14fbf85380 * Set libgc's initial heap size to 384 MiB to prevent
garbage collection in most cases (and therefore its performance overhead).
discard 0c4828ea05 * new(UseGC) is inexplicably slower than GC_MALLOC, so
prefer the latter.
discard e11e6fb1c6 * Handle out of memory condition.
discard 8a788e38ac * Install config.h.
discard 11ccd44e95 * We need Bison 2.4 now.
discard 43535499f3 * When allocating an attribute set, reserve enough space
for all elements. This prevents the vector from having to resize itself.
discard e0b7fb8f27 * Keep attribute sets in sorted order to speed up attribute
lookups. * Simplify the representation of attributes in the AST. * Change the
behaviour of listToAttrs() in case of duplicate names.
discard 2dc6d50941 * Don't create thunks for variable lookups (if possible).
This significantly reduces the number of values allocated (e.g. from 8.7m
to 4.9m for the Bittorrent test).
discard 0b305c534f * Store attribute sets as a vector instead of a map (i.e. a
red-black tree). This saves a lot of memory. The vector should be sorted so
that names can be looked up using binary search, but this is not the case
yet. (Surprisingly, looking up attributes using linear search doesn't have a
big impact on performance.)
discard a247d20604 * Fix compiling without Boehm. * Fix the stats.
discard 02934b1200 * Regression test for listToAttr's behaviour if an
attribute name occurs multiple times.
discard b2ba62170c * Optimise string constants by putting them in the symbol
table.
discard 8ac06726b9 * Make Value smaller by not storing redundant PrimOp info.
* Clear pointers in Values after overwriting them to make sure that no
objects are kept alive unnecessarily.
discard 3f66cfb96b * Remove allocValues().
discard 4dee289550 * In environments, store pointers to values rather than
values. This improves GC effectiveness a bit more (because a live value
doesn't keep other values in the environment plus the parent environments
alive), and removes the need for copy nodes.
discard cf7e645a48 * Regression test for __overrides.
discard 41c45a9b31 * Store Value nodes outside of attribute sets. I.e., Attr
now stores a pointer to a Value, rather than the Value directly. This
improves the effectiveness of garbage collection a lot: if the Value is
stored inside the set directly, then any live pointer to the Value causes all
other attributes in the set to be live as well.
discard 64c3325b0b * Make building against the Boehm GC a configure option.
discard 76feaf016a * Keep some more stats.
discard e879a0371b * Use the Boehm garbage collector to reclaim unused memory
in the Nix expression evaluator.
discard b0c11cda7e * Evaluator garbage collection branch.
discard 64fd29855a * Wrap deleteFromStore() in a transaction. Otherwise there
might be a race with other processes that add new referrers to a path,
resulting in the garbage collector crashing with "foreign key constraint
failed". (Nix/4) * Make --gc --print-dead etc. interruptible.
discard 8dadcede65 nix manual: fix 'install' -> 'uninstall' in garbage
collection section of introduction
discard 7119d38287 * In the referrers test, lower the nesting depth from 2500
to 1000 to prevent hitting a stack overflow bug in the garbage collector.
discard 705868a8a9 * Make sure that config.h is included before the system
headers, because it defines _FILE_OFFSET_BITS. Without this, on
OpenSolaris the system headers define it to be 32, and then the 32-bit stat()
ends up being called with a 64-bit "struct stat", or vice versa.
discard 95f4f2cf61 * If std::tr1::unordered_set is unavailable, use std::set.
discard 36a23e86b6 * "type -P" isn't portable.
discard bfa6ee7d91 * Don't use SSH's `-tt' flag because it doesn't seem to
work on OpenSolaris when using connection sharing. Instead have the remote
side check for disconnection and kill the process group when that happens.
discard 71dfe4b90b * Sync with the trunk.
discard 450837bcc8 * In printMsg(), ignore failing writes to stderr if we're
in an exception handler, otherwise throw an exception. We need to ignore
write errors in exception handlers to ensure that cleanup code runs to
completion if the other side of stderr has been closed unexpectedly.
discard 4aa9245083 * Hack needed for GCC 4.3.2 on OpenSolaris.
discard 923736df38 * Doh. Remove debug message.
discard e4907411c2 * Only do "pragma journal_mode = ..." if the current
journal mode differs from the desired mode. There is an open SQLite ticket
`Executing "PRAGMA journal_mode" may delete journal file while it is in use.'
discard bf0dde9597 * Always print hook output on stderr, even if
--no-build-output is set. * In the build hook, print a trace message to allow
Hydra to pick up the name of the remote machine used for the build.
discard e2e168f7c2 `nix-store --verify' improvements: * If a path has
disappeared, check its referrers first, and don't try to invalidate paths
that have valid referrers. Otherwise we get a foreign key constraint
violation. * Read the whole Nix store directory instead of statting each valid
path, which is slower. * Acquire the global GC lock.
discard 80e722278c * When using the build hook, distinguish between the stderr
of the hook script proper, and the stdout/stderr of the builder. Only the
latter should be saved in /nix/var/log/nix/drvs. * Allow the verbosity to be
set through an option. * Added a flag --quiet to lower the verbosity level.
discard 20acd43c25 * Disable the GC reachability check for now (when creating
new roots), as it's hopelessly inefficient.
discard 766f708418 * Experimental feature: allow a derivation to tell the
build hook that it requires a certain feature on the build machine, e.g.
discard df50916e46 * Oops - "null" was displayed as "true".
discard e41ecbf730
discard e437b08250 * Made the build hook mechanism more efficient. Rather
than starting the hook every time we want to ask whether we can run a remote
build (which can be very often), we now reuse a hook process for answering
those queries until it accepts a build. So if there are N derivations to be
built, at most N hooks will be started.
discard 1a396f3789 * Don't call "cat".
discard 95deba581d * In the build hook, temporarily register the derivation
and its output as GC roots. This prevents a race if the garbage collector
is running during the build.
discard 1e5f5ea2e9 * Correctly handle SSH failing to establish a connection.
Because this didn't work right, the build hook wouldn't fall back to using
other machines of the desired type.
discard 034f608e00 * Don't complain if the stored hash of a path is zero
(unknown).
discard f58f51f380 * Handle the unlikely case where a derivation has no
dependencies at all.
discard 955d11aae7 * Sync with the trunk.
discard c67eccc26d * nix-build: pass --cores.
discard 2c8e070e5d * Bump the version number.
discard ed133e6e64 * rpmBuild already includes the disk image in the output
name.
discard 2de17f4edc * Update date.
discard 86f65edf4e * Document --cores in the manual.
discard b75e1043a3 * Typo.
discard 8ec6594d6d * Remove the "tarball" jobset argument.
discard 12721a3a9a * Nix 0.16 release notes.
discard 5fb824e896 * Urgh, this was supposed to go in the trunk...
discard 5c5ab2bc12 * Don't link against pthreads. This was added way back in
r211 because Berkeley DB needed it on some platforms, but we don't use BDB
anymore.
discard 6846ed8b44 * Make --cores work when building through the Nix daemon.
discard 5f9aad44ca * nix-build: recognise --cores.
discard d7875d1648 * Use SQLite 3.7.0.1.
discard 587dc8aa00 * Sync with the trunk.
discard fd9c77dfc7 * Use SQLite 3.7.0's write-ahead logging (WAL mode). This
is a lot 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:
discard 750be19ae8 * Remove "auto" and "guess" as synonyms for 0 in the
handling of build-cores and --cores. They're superfluous and just complicate
the parsing.
discard 7f893b7a43 * Allow derivations to hint that they should not be built
remotely using the build hook mechanism, by setting the derivation attribute
"preferLocalBuild" to true. This has a few use cases:
discard 315d8fbd75 * Set the default system filter to "*". This ensures that
(for instance) "nix-env -i wine" works on x86_64-linux, even though Wine is
built on i686-linux. In the event that there are multiple matching
derivations, prefer those built for the current system.
discard 6d6200f37a * Optimisation in the // operator: if one of the sets is
empty, return the other set.
discard 7af6a2fd71 * intersectAttrs: optimise for the case where the second
set is larger than the first set. (That's usually the case with callPackage.)
discard 532d766c27 * Don't barf if the source NAR for a patch has disappeared.
discard 7e043d28a6 src/bsdiff-4.3/Makefile.am: include the 'compat-include'
directory in distribution tarballs
discard 60b632b173 tests/build-hook.hook.sh: prefer more portable `...` syntax
over $(...) for running sub-shells
discard a0d29040f7 Revert "configure.ac: make flex and bison required programs"
discard af09fe12dd Fix build of bsdiff-4.3 on machines that don't have
<err.h>, such as Solaris.
discard d63375d529 configure.ac: Incredibly enough, tr(1) on Solaris doesn't
understand A-Z syntax for ranges.
discard 4c21c016c5 configure.ac: make flex and bison required programs
discard bcec46057c src/libutil/util.cc: include <limit.h> to ensure that
PATH_MAX is defined
discard a17071fef1 Include <cstring> to ensure that strcpy(), strlen(), and
memset() are declared.
discard 560ab22f7d * Ignore packages that don't have a version. * Work on a
manifest instead of a channel directory.
discard 8b7f8b56f1 Added support for passing an (impure) NIX_BUILD_CORES
variable to build expressions.
discard 87ef5907e9 * Sync.
discard 819548d92f * Pass `--fallback' to the remote build to ignore failing
substituters.
discard 3e5e0faf9c * Okay, putting a lock on the temporary directory used by
importPath() doesn't work because the garbage collector doesn't actually look
at locks. So r22253 was stupid. Use addTempRoot() instead. Also, locking
the temporary directory in exportPath() was silly because it isn't even in
the store.
discard bf87cc44b4 * Sync with the trunk.
discard b57189174f * In importPath() and exportPath(), lock the temporary
directory to prevent it from being deleted by the garbage collector.
discard f16fe2af8d * builtins.toXML: propagate the string context. This is a
regression from the old ATerm-based evaluator.
discard d1f6c0cbe3 * Replacing ValidPath rows doesn't work because it causes a
constraint violation of the Refs table. So don't do that.
discard 07ca66cf24 * Applied a patch from David Brown to prevent `nix-store
--optimise' from failing on rename() on BtrFS.
discard 1ab67cf437
discard 89865da76d * Turn build errors during evaluation into EvalErrors.
discard a443c7573b * Hack to allow derivations to disable chroot builds by
setting the attribute "__noChroot = true" (requested by Rob).
discard 8bcdd36f10 Add XML output to `nix-store'.
discard da52f8bea0 Comment out dead code in `nix-store'.
discard 7343e6c8ae * Remove an accidentally committed debug statement.
discard b92a2e5cc2 * Sync with the trunk.
discard 93cd5a4a13 * The << operator on values should be const.
discard 32539e41d5 * Sync with trunk.
discard b2235d81d1 * Restore the __overrides feature that was lost somewhere
in the fast-eval branch.
discard aa45027818 * Sync with the trunk.
discard 8032f26ca0 * Merged the `fast-eval' branch.
discard bd25ac2260 * Print attributes in sorted order.
discard 81a4b4e49b * Implemented tryEval, the last missing primop in the
fast-eval branch. Also added a test for tryEval.
discard 1a8eb6e3ec
discard 83dfa89870 * Sync with the trunk.
discard 01e58adce0 * Store position info for inherited attributes.
discard 83d7b89660 * Updated addErrorContext.
discard e2d5e40f4f * Keep track of the source positions of attributes.
discard 84ce7ac76f * Store attribute positions in the AST and report duplicate
attribute errors with position info. * For all positions, use the position of
the first character of the first token, rather than the last character of the
first token plus one.
discard 4750065ada buildenv: Special-case Python's `site.py' and `site.pyc'.
discard a0e3b84fac * Revert r15436. This was a workaround for a bug in btrfs
which seems to have been fixed now.
discard f92c9a0ac5 * Allow unprivileged users to do `nix-store
--clear-failed-paths' and `nix-store --query-failed-paths'.
discard 4bab25a28d buildenv: Special-case Python's `easy-install.pth' files.
discard 7fa338f4ba * Don't use smart quotes where normal ASCII quotes are
intended. Actually, don't use quotes at all. (Reported by Howard B. Golden.)
discard c82782f9a5
discard c778ed1768 * Fix the copy-from-other-stores substituter.
discard ef337f7089
discard 6199f9b93e * Added a command `nix-store --clear-failed-paths <PATHS>'
to clear the "failed" status of the given store paths. The special value `*'
clears all failed paths.
discard 2398af13c5 * Add an command `nix-store --query-failed-paths' to list
the cached failed paths (when using the `build-cache-failure' option).
discard d77331d32f Fixing a typo in the nix-store manual, that could confuse a
bit too much (--delete/--gc)
discard 2be6118f4c * Don't need the test program anymore.
discard 0bc468f195 * Simplify the implementation of `with'. This gives a 7%
speedup in evaluating the NixOS system configuration.
discard ee0384fb96
discard ebade9ff8b * Check for duplicate attribute names / function arguments.
`make check' now succeeds :-) * An attribute set such as `{ foo = { enable =
true; }; foo.port = 23; }' now parses. It was previously rejected, but I'm
too lazy to implement the check. (The only reason to reject it is that the
reverse, `{ foo.port = 23; foo = { enable = true; }; }', is rejected, which
is kind of ugly.)
discard 2d7636529f * String equality tests should take the context into
account. All the evaluation test cases now succeed.
discard 6bbfe95e30 * Don't use an ostringstream in unparseDerivation(),
because it's slow. A `nix-env -qa --drv-path \*' on Nixpkgs was spending 40%
of its time in unparseDerivation() because of this (now 11%).
discard 7148df7971 * Update the expected test output (no longer an ATerm).
discard 6f0f16497a * Fix the interpretation of ''\<character> in indented
strings.
discard cae4efdca3 * Because --parse-only no longer produces an ATerm, don't
check the output. Whether it parses at all should be enough.
discard 0777448ca6 * Fixed builtins.genericClosure.
discard fe2d869e04 * Store user environment manifests as a Nix expression in
$out/manifest.nix rather than as an ATerm.
discard d66ea83a76 * Sync with the trunk.
discard f3b8833a48 * Drop the dependency on the ATerm library.
discard efc7a579e8 * Don't use the ATerm library for parsing/printing .drv
files.
discard 55b5ddd3ca * Added parsing of manifests in ATerm format.
discard b7ff69eb7c * Refactoring: move the user environment stuff into its own
module.
discard 5c31995bb8 * Updated some more primops.
discard 8bb0210fea * _combineChannels shouldn't be an integer.
discard 8ca4a001cb * Improve sharing a bit.
discard 497e4ad126 * Remove some redundant tests.
discard 02c1dac909 * In an nested `with' where the inner with is a variable
(`with ...; with someVar; ...'), the contents of the variable would be
clobbered. (The attributes in the outer `with' were added to the variable.)
discard 04c4bd3624 * Store lists as lists of pointers to values rather than as
lists of values. This improves sharing and gives another speed up.
Evaluation of the NixOS system attribute is now almost 7 times faster than
the old evaluator.
discard e41b5828db * Better stats.
discard d39d3c6264 * Implemented inherit.
discard 267dc693d2 * Fix builtins.
discard 81de12bc8f * Refactoring: move variable uses to a separate class.
discard 110d155778 * Implemented withs.
discard 9985230c00 * After parsing, compute level/displacement pairs for each
variable use site, allowing environments to be stores as vectors of values
rather than maps. This should speed up evaluation and reduce the number of
allocations.
discard 816dd3f061 * Remove more obsolete code.
discard 011b5da0f4 * Get nix-env to compile again.
discard 85d13c8f93 * Change the semantics of "with" so that inner "withs" take
precedence, i.e. `with {x=1;}; with {x=2;}; x' evaluates to 2'. This has a
simpler implementation and seems more natural. There doesn't seem to be any
code in Nixpkgs or NixOS that relies on the old behaviour.
discard 816f9c0f6f * Use std::tr1::unordered_set instead of std::set for the
symbol table. This gives a 10% speed increase on `nix-instantiate
/etc/nixos/nixos -A system --readonly-mode'.
discard 7d47498b5e * Evaluate lets directly (i.e. without desugaring to `rec {
attrs...; <let-body> = e; }.<let-body>). This prevents the unnecessary
allocation of an attribute set.
discard ac1e8f40d4 * Use a symbol table to represent identifiers and attribute
names efficiently. The symbol table ensures that there is only one copy of
each symbol, thus allowing symbols to be compared efficiently using a pointer
equality test.
discard 10e8b1fd15 * Finished the ATerm-less parser.
discard 0d272fca79 * Remove some obsolete functions.
discard d4f0b0fc6c * Indented strings.
discard a60317f20f * More missing constructs.
discard 4d6ad5be17 * Don't use ATerms for the abstract syntax trees anymore.
Not finished yet.
discard ed711f73bc * Don't use ATerms to represent integers in the lexer.
discard db90b88e65 * Hack to support builderDefs expressions.
discard 4e49002576 * Doh.
discard c3f228f296
discard aac5fcfbb5 Re-add `drvPath' and `outPath' attributes to <derivation>
XML nodes.
discard f3dc7ab877 * Keep more statistics about stack space usage. * Reduce
stack space usage.
discard b7b3dd55f9 * Remove a lot of dead code.
discard 7e048eddf5 * Fix blackholing. If evaluation fails due to an assertion
failure, then the blackhole has to be removed to ensure that repeated
evaluation of the same value gives an assertion failure again rather than an
"infinite recursion" error.
discard af2a372bb0 * Update autoCallFunction() and findAlongAttrPath().
discard 9a64454faa * expr-to-xml -> value-to-xml.
discard fc92244ba8 * Implemented the primops necessary for generating the
NixOS manual.
discard a353aef0b1 * In eval(), don't use the target value `v' as a temporary.
Overwriting `v' breaks when the expression evaluation to an assertion
failure or throw.
discard a5ece7d016 * Removed the `~' operator.
discard c172274e17 * Quick hack to make coerceToString work more or less
correctly on nested lists. `nix-instantiate' can now evaluate the NixOS
system derivation attribute correctly (in 2.1s on my laptop vs. 6.2s for
the trunk).
discard 7b851915bf * Improve sharing.
discard 95cc417d76 * Functions are incomparable.
discard 71f026292b * Make `derivation' lazy again for performance. It also
turns out that there are some places in Nixpkgs (php_configurable /
composableDerivation, it seems) that call `derivation' with incorrect
arguments (namely, the `name' attribute missing) but get away with it because
of laziness.
discard dc31305b38 * Fixed the trace primop and path comparison. * Removed
exprToString and stringToExpr because there is no ATerm representation to
work on anymore (and exposing the internals of the evaluator like this is not
a good idea anyway).
discard 979f163615 * Handle string contexts. `nix-instantiate' can now
correctly compute the `firefoxWrapper' attribute in Nixpkgs, and it's about 3
times faster than the trunk :-)
discard d8cd3115d8 * Get nix-env to compile.
discard 55e207b2dc * Cache parse trees to prevent repeated parsing of imported
Nix expressions.
discard 3d94be61ea * Implemented derivations.
discard 5187678913
discard f061086a93 * Fix the broken test for listToAttrs.
discard 09381cccff Make source location info in the XML output optional.
discard 13c2adc897 * Implemented `rec { inherit ...; }'.
discard 4c53ca2692 * Compare nulls.
discard 471419d1fa Add source location information to the XML output.
discard eb07a4f1ee Escape `>' signs in the XML output.
discard 7f19e03c65 * More primops.
discard 47df476daa * More operators / primops.
discard c9170be2bd * More primops.
discard c3aa615a5f * More primops.
discard 5b72d8a749 * Implemented `map'.
discard d78a05ab40 * Make `import' work.
discard 31428c3a06 * Started integrating the new evaluator.
discard 52090d2418
discard e3f32ac5af
discard 807a67bc74
discard 392811eb8f * Strings.
discard d96cdcea6b
discard 3d2b835f30 * Implemented multi-argument primops.
discard 45d822f29c * Primops (not yet finished).
discard cad8726b2c * Implemented the `==' and `!=' operators. These now use a
deep equality test, so they also work for (finite) attribute sets and lists.
discard 8da118e4d0 * Measure stack usage.
discard c2ba4313fb * Implemented lists.
discard 25eedf085d * Quick and dirty implementation of `with'. `with e1; e2'
is basically desugared to `let <with> = e1; e2', and `lookupVar' looks in
each <with> in the environment chain for an attribute with the specified name.
discard 3c9f8fc9b6 * Don't convert variable names to strings.
discard f450384ded * Implement blackholing.
discard ef8bd919fc * Implement `...' and default function arguments.
discard 8a10360c91 * Simplify @-patterns: only `{attrs}@name' or
`name@{attrs}' are now allowed. So `name1@name2', `{attrs1}@{attrs2}' and so
on are now no longer legal. This is no big loss because they were not useful
anyway.
discard 7482349fe8 * Implemented attribute set pattern matches.
discard 0fd3648d34 * Store values in environments.
discard b70bd8fe56 * Reduce the number of value allocations in eval() by
moving responsibility for allocation of the result to the caller.
discard d31c59eb17 * Plain lambdas.
discard e8f7978274
discard 0910ae9568 * Start of an evaluator that uses call-by-need (with thunk
updating) instead of (memoised) call-by-name.
discard 90039e0863 * Branch for experimenting with faster / less memory-hungry
Nix expression evaluation.
discard 71be50cc25 * Doh.
discard 3bfd3a4e95 * Test "with as; with bs;" since nobody knows what its
semantics is.
discard f71ea9c911 * Use SQLite 3.6.23.
discard 141294ff38 * Clean up error messages in killUser().
discard 74299c1cfb * Bump version number.
discard c4cfb392d3
discard 8e3d98eb41 * Release notes for Nix 0.15.
discard f0c473c5f7 * Fix building on Cygwin
(http://hydra.nixos.org/build/325071).
discard fe1b8781ae * Fix a broken link (reported by Peter Koppstein).
discard 741b7577c1 Merge r20344 & r20346.
discard 2fb0df83e9 Uh. somehow a Makefile tab got in as spaces. Fixing.
discard 13cce8ec45 Making 'bin2c' to be built with the compiler for the local
system. I copied the configure.ac code about CC_FOR_BUILD from libX11.
discard e020d80e4e * Sync with the trunk.
discard 05e15049a5 Show the build user's group in /etc/group in chroots.
discard 070057c1b9 * Sync with the trunk.
discard c752c9f41a Fix thinko in r20547.
discard 2e8eaca573 Clear supplementary groups of `nixbld' in /etc/passwd in
chroots.
discard 03afc34805 * Simplify.
discard 1a65142ec4 * Remove a debug statement.
discard 4c356acd04 * In `nix-store --export', abort if the contents of a path
has changed. This prevents corrupt paths from spreading to other machines.
Note that checking the hash is cheap because we're hashing anyway (because
of the --sign feature).
discard 44f6e6de77 * Set `gc-keep-outputs' or `gc-keep-derivations' to false
with `--delete --ignore-liveness'.
discard 2e4ef03aa3 * Increase the sqlite timeout.
discard 05fbf61f0e * nix-prefetch-url depends on sed (see
http://hydra.nixos.org/build/311170).
discard 04791840f4 * Emit warning='1' or error='1' attributes for lines marked
as warnings or errors with \e[w or \e[e.
discard bc6f7fc139 * Remove some unused functions.
discard fb6e223ddc * Synced with the trunk.
discard 5ff87c982e
discard e14e2399ed * Prevent a potential memory corruption problem if an ATerm
garbage collection happens during fixAttrs().
discard 158aa89317 * Ensure that `make install' works without a prior `make'.
discard 56af8e86e3 * Protect the `true', `false' and `__overrides' constants.
Without an ATprotect call, these could be garbage collected, leading to
weird crashes or wrong results.
discard 3f9e647ae8 * checkInterrupt() shouldn't be called from a destructor.
discard d8c5745c41 * Support static builds.
discard e07d7284a2 * Fix DESTDIR builds.
discard 5414b3b2db * Remove the --enable-static-nix flag.
discard 594eaddd11 * When using the included sqlite/aterm libraries, build
with --enable-shared. * In libutil/libstore/libexpr etc., link against sqlite
and aterm. * Some more header file hygiene.
discard 966ffb29a7 * Update the Valgrind suppressions for ATerm 2.5.
discard 24035b98b1 * Implement RemoteStore::queryValidPaths().
discard e42401ee7b * Implement RemoteStore::queryDerivationOutputs().
discard af565c348a * Support read-only access to the database.
discard e33f67ff0b * Refactor the upgrade / database initialisation logic a
bit.
discard 84a4dd5ff0 * Don't use fdatasync since it doesn't work on Snow
Leopard. * Don't refer to config.h in util.hh, because config.h is not
installed (http://hydra.nixos.org/build/303053).
discard cfe742cfc5 * A function to query just the database id of a valid path.
discard 6baa2a2f5e
discard 9fd85c94de * Use `truncate' journal mode, which should be a bit faster.
discard fefd467539 * `helpText' is now zero-terminated.
discard 21b134b4e5
discard a3c63d0d6c * Disable fsync() in SQLite if the fsync-metadata option is
set to false. * Change the default for `fsync-metadata' to true. * Disable
`fsync-metadata' in `make check'.
discard 90b6352d0a * Do registerValidPaths() in one transaction, which is much
faster. E.g. it cuts the runtime of the referrers test from 50s to 23s.
discard fae0427324 * ADDITIONAL_NETWORK_LIBS -> LIBS.
discard fa6a4fcb11 * Add ${sqlite_lib} everywhere. Just adding it in
`libstore' doesn't work on x86_64 when sqlite is compiled statically.
discard 5954eadf67 * Remove the fdatasync check since it's no longer needed.
discard bb82310dba * Set the path to sqlite3 properly.
discard 69d9df7fe6 * Don't fork so much.
discard 462bd50aef * Use normal (rather than full) synchronous mode, which I
gather from the description at http://www.sqlite.org/atomiccommit.html should
be safe enough.
discard 8520de4720 * Include the sqlite tarball in the Nix tarball.
discard dc6d1ec67e
discard 63b09c5e41
discard 0efc986ba1 * Sync with the trunk.
discard b4e6d98fc3 * configure: flag --with-sqlite.
discard 7db2831d3a * Use ATerm 2.5.
discard 5ccb6f64f4 * Run ATerm's `make check'.
discard 2b20318b0e
discard 9cda616949 * The database needs a trigger to get rid of
self-references to prevent a foreign key constraint violation on the Refs
table when deleting a path.
discard c4d388add4 * Get derivation outputs from the database instead of the
.drv file, which requires more I/O.
discard 103cfee056 * Revert r19650 (implement gc-keep-outputs by looking for
derivations with the same name as the output) and instead use the
DerivationOutputs table in the database, which is the correct way to to do
things.
discard 299ff64812 * Put the derivation outputs in the database. This is
useful for the garbage collector.
discard 1930570ad9 * Foreign key support in SQLite is not a persistent
setting, so enable it at startup. * Implement negative caching. Now `make
check' passes.
discard 9c9a88e9e2 * Implement more stuff.
discard 762cee72cc * Implement registerValidPath().
discard 268f9aaf28 * Implemented queryValidPaths() and verifyStore().
discard 836e5b6f57 * Implemented queryReferrers().
discard 77cb9e3fb1 * Implement queryPathInfo().
discard 885e22b16e * Implement isValidPath().
discard cfb09e0fad * Automatically abort transactions if they go out of scope
without committing.
discard e0305bb7a8 * Some wrapper objects to ensure that SQLite objects are
properly destroyed.
discard a053d2d8e5 * Add the deriver to the ValidPaths table. In principle we
could now store all the derivers of a path efficiently. But that opens a big
can of worms with respect to garbage collector semantics.
discard dbddac0fe9 * Assign an integer id to every row in the ValidPaths table
in order to make the Refs table more space-efficient. For instance, this
reduces the size of the database on my laptop from 93 MiB to 18 MiB. (It was
72 MiB with the old schema on an ext3 disk with a 1 KiB block size.)
discard c1a07f9445 * Convert the Nix database to SQLite.
discard eaaa13ce47 * Experimental branch for using SQLite to store the Nix
database.
discard 68e55cd9da * Since Hydra now escapes `+', `=' and `?' to %NN in URIs,
nix-prefetch-url should unescape them, because `%' is not a valid character
in store path names.
discard 3b3e1025c3 * Typo. Reported by Peter Koppstein.
discard 20186a4079 Don't rely on `PATH_MAX' on GNU.
discard d0bf4adb1f Add `.gitignore'.
discard e08dbff9a8 * Fix a broken link (reported by Bjorn Buckwalter).
discard e1e91a3731 * Bump.
discard 817f4f7908 * Grmbl. Timing-sensitive tests are evil.
discard f36b7e7579
discard 719cebcac2 * "Fix" incorrect help message.
discard 443673620d * Don't use ssh's -f flag since it leads to lots of
lingering ssh processes.
discard 7ec5a65925 * Doh! The scope of $slotLock should extend to the end of
the script, because otherwise the lock will be released at the end of the
while loop.
discard c9b2d80bcd * Typo.
discard 3cfe65e516 * Doh! Calling `system' in an END block causes the exit
status in $? to be changed to 0.
discard e51a276907 * Remove the `cat' calls when not using --gzip.
discard 408913bbaf * Revert r19796 for now.
discard 4e17be7981 * Revert r19797, and use a simpler solution: just don't
monitor build hooks for silence. It's unnecessary because the remote
nix-store command is already monitoring the real build.
discard f859a8d3c3 * While waiting for a lock, print a sign of life every 5
minutes. This prevents remote builders from being killed by the
`max-silent-time' inactivity monitor while they are waiting for a long
garbage collection to finish. This happens fairly often in the Hydra build
farm.
discard c45de33c67 * Respect @sysconfdir@.
discard d0c32dc135 * In the build hook, if connecting to a machine fails, try
the other machines of the right type (if available). This makes the build
farm more robust to failures.
discard f56a039775 * Use SSH connection sharing in the remote build script. *
Removed the Cygwin password hack since the problem is apparently fixed in
Visual Studio.
discard bc1e478db1 * nix-copy-closure: start only one SSH connection to the
server, or recycle an already existing connection (using OpenSSH's
connection sharing feature).
discard 4d8a85b8f5 * Updated the release notes.
discard 3ce5f07793 * Ugly hack to make `nix-channel' work on Cygwin.
discard e839802720 * Don't do a chdir to $tmpDir. It's not necessary, and
Windows doesn't support deleting the current directory.
discard 4bbbe25802 * Remove most Cygwin-specific code. Cygwin 1.7 implements
advisory POSIX locks, and simulates Unix-style file deletion semantics
sufficiently. Note that this means that Nix won't work on Cygwin 1.5 anymore.
discard 2723d9b56e * If fdatasync() isn't available, use fsync().
discard 07ffdc2862 * Added an option "fsync-metadata" to fsync() changes to
/nix/var/nix/db. * Removed the function writeStringToFile since it does
(almost) the same thing as writeFile.
discard ad529fb89f * Don't consider a store path valid if its info file exists
but is zero bytes long. That makes Nix more robust in case of crashes
(especially on ext4).
discard fdcaf37361 * Made `nix-store -qR --include-outputs' much faster if
there are multiple paths specified on the command line (from O(n * m) to O(n
+ m), where n is the number of arguments and m is the size of the closure).
discard 50e34891f0 * Disable gzip compression in build-remote.pl because it
puts too much load on the Hydra build farm (where it's unnecessary anyway
because it has a fast connection to the build machines). In any case,
compression can be enabled by using the `-C' option to ssh.
discard 5388944e8d * Make the garbage collector do the right thing when
`gc-keep-outputs' is enabled by not depending on the deriver.
discard f0c0277970 * On startup, set the default SIGCHLD handler. This is so
that Nix works correctly in weird environments where the SIGCHLD handler is
set to "ignore".
discard ef92a14bfe * Include config.h before the C library headers, because it
defines _FILE_OFFSET_BITS=64. Without it, functions like stat() fail on
large file sizes. This happened with a Nix store on squashfs:
discard 945d8218fb * Build correctly against newer ATerm releases. Fixes
"error: 'union' tag used in naming 'struct _ATerm'".
discard d8a5dc02fc * Build on Fedora 12.
discard 3a78af1e24 * Release notes.
discard 7ca9972636 * When doing a nix-pull, remove old manifests downloaded
from the same URL. This prevents lots of old cruft accumulating in
/nix/var/nix/manifests.
discard c4c84d1edb * nix-build: be less verbose.
discard bcd6cdf0d8 * Give a better error message when trying to build
something and readOnlyMode is set.
discard 13618b191e * Grrr.
discard aa5a768720 * GCC 4.4 is stricter about the EOF macro
(http://hydra.nixos.org/build/156340).
discard 9b8fda796b * Templatise getIntArg / string2Int.
discard 8022015552 * In the garbage collector, don't count files with a link
count > 1 in the "bytes/blocks freed" statistics.
discard f9e766db98 * Randomise the order in which we delete entries to make
the collector less biased towards deleting paths that come alphabetically
first (e.g. /nix/store/000...). This matters when using --max-freed etc.
discard ca50c83fbb
discard 3d55f1eb57 * A command `nix-store --query --roots <paths>' to find the
garbage collector roots that point (directly or indirectly) to the given
paths.
discard ae6bf87273 * `nix-store --gc --print-roots': also print the path of
the actual root symlink, not just its target. E.g.:
discard c364d5d1e3 * Made the garbage collector a lot faster. It no longer
computes the complete set of live and dead paths before starting the actual
deletion, but determines liveness on demand. I.e. for any path in the store,
it first tries to delete all the referrers, and then the path itself. This
means that the collector can start deleting paths almost immediately.
discard 4f7e5f5810 * Don't create /nix/var/nix/gcroots/{tmp,channels}, since
they don't seem to be used anymore.
discard 8824d60fe5 * Remove the --use-atime / --max-atime garbage collector
flags. Many (Linux) machines no longer maintain the atime because it's too
expensive, and on the machines where --use-atime is useful (like the
buildfarm), reading the atimes on the entire Nix store takes way too much
time to make it practical.
discard 997db91e07 * Don't pass -K. It should really inherit the setting of
the calling Nix though.
discard 3392d32e8b * In nix-pull/nix-channel, create the manifests directory
if it doesn't exist. The Debian packages don't include the manifests
directory, so nix-channel would silently skip doing a nix-pull, resulting in
everything being built from source. Thanks to Juan Pedro Bolívar Puente.
discard 327a232c85 * Remove support for old (before Nix 0.12pre12020)
databases.
discard c60d796f04 * Version bump.
discard e8bad77c7c
discard 7680904839 * Build on Karmic.
discard 58f3338bfa * The Nix .deb package depends on curl.
discard 268d90a03e * Various updates.
discard 1ff8758f76 * Manual updates.
discard 8520542071 * When building in a chroot, make a copy of a file if
hard-linking fails. This is likely to happen after a `nix-store --optimise',
because some files may have 32000 links (NIX-111).
discard 6b9f6b0222 * Remove a prototype for a function that no longer exists.
discard deb342fb08 * builtins.trace: in the common case that the value is a
string, then show the string, not the ATerm, so we get `trace: bla' instead
of `trace: Str("bla",[])'.
discard 437077c39d * Added a primop unsafeDiscardOutputDependency needed by
Disnix to pass derivation paths to a builder without actually building them.
discard 6f7d7bc1de * Give a useful error message when an evaluation error
occurs while trying to upgrade a package.
discard 53a4981fa2 Added optional parameter which adds -lnsl -lsocket to make
the Nix package manager work on OpenSolaris
discard 18f0ff003d configure.ac: use AC_SYS_LARGEFILE to determine how to
enable 64-bit file size support
discard 96f1517831 * Support platforms that don't have O_ASYNC (e.g.
OpenSolaris apparently).
discard 1a8f8fd86f * OpenSolaris compatibility.
discard 0f79ad47c5
discard c7057fc1f2 * And some more.
discard 193f59e077 * Fix a build failure on Fedora 11. rename() needs
<stdio.h>.
discard 0ae2be5692
discard 1332dd1ed3 * tryEval shouldn't catch all exceptions of type Error,
since not all of them leave the evaluator in a continuable state. Also, it
should be less chatty.
discard 63a17d4bd5 * Don't build against BDB on Cygwin, it's been broken for
unknown reasons for a while (e.g. http://hydra.nixos.org/build/79164).
discard 676e07902e * Darwin hack.
discard 64e89980e8 * Create some state directories automatically as a
convenience.
discard 48b58617e9 * include wait.h for WEXITSTATUS
discard 51ad64cc07 * Use xmllint (>= 2.7.4) for RelaxNG validation instead of
Jing.
discard df05a759e4 * In "make init-state", ignore errors creating /nix/store.
Hack to get the Debian VM builds to work (where /nix/store is a mount point
containing the store of the host).
discard d3de71efc9
discard e1df4ef73c
discard 86408b3f47 * build-remote.pl: Pick machines in a round-robin order,
rather than giving jobs to the first machine until it hits its job limit,
then the second machine and so on. This should improve utilisation of the
Hydra build farm a lot. Also take an optional speed factor into account to
cause fast machines to be preferred over slower machines with a similar load.
discard 57e0d73c77 * build-remote.pl: allow the system type to be a
comma-separated list of system types. Don't treat the x86_64-linux system
type specially.
discard 0dbd4638e0 * Two primops: builtins.intersectAttrs and
builtins.functionArgs. intersectAttrs returns the (right-biased) intersection
between two attribute sets, e.g. every attribute from the second set that
also exists in the first. functionArgs returns the set of attributes
expected by a function.
discard 3bca8931e8 Adding tryEval builtin. It allows to catch presence of
errors in an expression.
discard 5e9a4e5101
discard 9b46d1ae6f
discard 20b6f94b65 * nix-build: pass the --show-trace flag.
discard d413612029 * Remove the redundant <sections> around refentries.
discard 1f169f43b3 * Leave out the collaborators / revision history page.
discard 5e2e2f10ef
discard c6890d6b5c * Replace newlines in table output with spaces.
discard 749dd97a54 * Support integers and lists of strings in meta fields.
This is useful for fields like meta.maintainers, meta.priority (which can be
a proper integer now) and even meta.license (if there are multiple licenses).
discard f2c3fc5191 * Don't show trace information by default (`--show-trace'
to enable). NixOS evaluation errors in particular look intimidating and
generally aren't very useful. Ideally the builtins.throw messages should be
self-contained.
discard a2fc3a53ba * Highlight URLs containing "=" properly.
discard d53603c928 * Attributes names in attrsets can contain dots now.
discard 14bc3ce3d6 * Canonicalise timestamps in the Nix store to 1 (1970-01-01
00:00:01 UTC) rather than 0 (00:00:00). 1 is a better choice because some
programs use 0 as a special value. For instance, the Template Toolkit uses a
timestamp of 0 to denote the non-existence of a file, so it barfs on files in
the Nix store (see template-toolkit-nix-store.patch in Nixpkgs). Similarly,
Maya 2008 fails to load script directories with a timestamp of 0 and can't be
patched becau [...]
discard f24cf5d303 * nix-build: if nix-instantiate or nix-store fails due to a
signal (e.g. out of memory or a segfault), print an error message.
Otherwise the user doesn't see anything.
discard c6cb792d48
discard a64bbe049e * Change the scoping of "inherit (e) ..." in recs so that
the attributes of the rec are in scope of `e'. This is useful in
expressions such as
discard d407d572fd * Some syntactic sugar for attribute sets: allow {x.y.z =
...;} as a shorthand for {x = {y = {z = ...;};};}. This is especially useful
for NixOS configuration files, e.g.
discard e42975490f * Check for duplicate attributes in fixAttrs, rather than
doing a separate traversal after parsing. Likewise, check for duplicate
pattern variables right away.
discard 50d11b90ca * Allow unsafe (unspecified) comparisons between attrsets
unless NIX_NO_UNSAFE_EQ is set, for now.
discard c34e6d71bc * Disallow equality tests between attribute sets. This was
always broken, but now the evaluator checks for it to prevent Nix
expressions from relying on undefined behaviour. Equality tests are
implemented using a shallow pointer equality test between ATerms. However,
because attribute sets are lazy and contain position information, this can
give false positives. For instance, previously
discard 9536ba19d4
discard 83bd320b39 * Build a PDF version of the manual in the tarball job
(it's not included in the tarball though).
discard f751c2966b * Don't have a bugs section in the manual. Bugs should be
kept in the bug tracker.
discard 404996ca1f * Produce the manual in the tarball job.
discard 7660e2a068 * Remove a right recursion that causes the parser to barf
on very long lists. The comment about ATreverse requiring unbounded stack
space was unfounded anyway.
discard 52a9ba96f5 * Include the version file.
discard 6a5599fd01 * Typo.
discard 098cb9d233 Add an ftruncate call paired with fallocate to play safe
with some FSes (namely, BtrFS fallocate sets file size to allocated size, i.e.
multiple of block size)
discard c710fe540e * Machines of type x86_64-linux can do i686-linux builds.
discard d5eab2fc82 * Use foreach in a lot of places.
discard 8f1bf28505 * nix-store --verify: don't bail out if a referenced path
is missing. (It can't fix it though.)
discard 4e646b0ddb * Fix a few "comparison is always false/true due to limited
range of data type" warnings on 64-bit platforms. The one in parser.y is
likely to be a real bug.
discard 0460ea4c39 * Cleanup.
discard dfb863f333 * Don't cache transient build hook problems.
discard 435a93b5d8 * Remove references to __XXX primops.
discard 8b2a01a8c2 * Release notes.
discard 50cb6f9782 * Debian packages: use /etc, not /usr/etc.
discard 351bf658f9 * Do a substitution even if --max-jobs == 0.
discard cff2b2a13a * Doh!
discard 160a60d663
discard 805144b705 * Make the poll interval configurable.
discard 096affb55b * Update the mtime on the lock file to make it easy to see
when a slot was last used.
discard cbc1f57b48 * Undocument the "system" option. No sane person would use
it :-)
discard 7377195297 * With `--max-jobs 0', print a nicer error message than
"Assertion `!awake.empty()' failed."
discard 737423a89c * Use polling to wait for a remote build slot when using a
build hook (that is, call the build hook with a certain interval until it
accepts the build). * build-remote.pl was totally broken: for all system types
other than the local system type, it would send all builds to the *first*
machine of the appropriate type.
discard 47706e3924 * nix-copy-closure: compute the closure in one call to
nix-store, which is much faster.
discard 6e946c8e72 * Scan for references and compute the SHA-256 hash of the
output in one pass. This halves the amount of I/O.
discard c7152c8f97 * Don't use the non-standard __gnu_cxx::stdio_filebuf class.
discard 3a2bbe7f8a * Simplify communication with the hook a bit (don't use
file descriptors 3/4, just use stdin/stderr).
discard 7fb548aa26 * Clean up the output a bit.
discard f54e800366 * The `fixedOutput' variable didn't get initialised when
using a build hook, causing negative caching to fail randomly.
discard 38f98b3282 * Argh, stupid timing sensitive tests...
discard e23a7a8b7b * Debian 5.0, Ubuntu 8.10 builds.
discard cb85bc396e * Create /nix/store if it doesn't exist.
discard 61686926d1 * A job for creating a fully statically linked binary
tarball.
discard 9856efc7b0 * Support doing a fully static build. Statically linked
Nix binaries will be useful as a fallback on platforms for which there are no
RPMs/Debs available.
discard 5dd8fb2069 * Don't use ULLONG_MAX in maxFreed - use 0 to mean "no
limit". 18446744073709551615ULL breaks on GCC 3.3.6 (`integer constant is
too large for "long" type').
discard 92f525ecf4 * Negative caching, i.e. caching of build failures.
Disabled by default. This is mostly useful for Hydra.
discard 7024a1ef07 * Removed the locking.sh test; it's redundant because of
the extended parallel.sh test. Also, don't call multiple nix-builds in
parallel, since they can race creating .nix-build-tmp-derivation.
discard 8146a0c731 * Use bash in the tests.
discard a046858a22 * Doh.
discard 12c8c64efa
discard 7aedcf9460 * Make this test a bit more robust. It's still timing
dependent though.
discard 3a87163b24 * Shut up a GCC warning.
discard cacff1be88 * No longer block while waiting for a lock on a store path.
Instead poll for it (i.e. if we can't acquire the lock, then let the main
select() loop wait for at most a few seconds and then try again). This
improves parallelism: if two nix-store processes are both trying to build a
path at the same time, the second one shouldn't block; it should first see if
it can build other goals. Also, it prevents the deadlocks that have been
occuring in Hydra lately, [...]
discard 58969fa2bf * Refactoring.
discard d7b2d11255 * Test case (currently fails): multiple Nix builds
shouldn't block waiting on the same lock when there are other builds that can
be done.
discard 7a57b2920b * Better error message when nix-store --import is applied
to garbage (previously it would likely say "implementation cannot deal with >
32-bit integers").
discard 77d272623f * NAR archives: handle files larger than 2^32 bytes.
Previously it would just silently store only (fileSize % 2^32) bytes. * Use
posix_fallocate if available when unpacking archives. * Provide a better error
message when trying to unpack something that isn't a NAR archive.
discard 7e05b8b75e * Future proofing: assume we can read manifests up to
version 10 (which should therefore be backwards compatible).
discard b88460bcbc * Disregard the Hash field in manifests.
discard 2897286487 * Unify exportReferencesGraph and
exportBuildReferencesGraph, and make sure that it works as expected when you
pass it a derivation. That is, we have to make sure that all build-time
dependencies are built, and that they are all in the input closure (otherwise
remote builds might fail, for example). This is ensured at instantiation
time by adding all derivations and their sources to inputDrvs and inputSrcs.
discard e530e0a350 * Improve the test.
discard 9485ec31ea * Better cleanup after tests.
discard 13df3915ef * Missing file.
discard c183ee5c79 * Acquire the locks on the output paths before trying to
run the build hook. This fixes a problem with log files being partially or
completely filled with 0's because another nix-store process truncates the
log file. It should also be more efficient.
discard 1dcf208f56 * Clean up some tests (use nix-build where appropriate).
discard 93b6926054 * Regression test for exportBuildReferencesGraph. It
currently fails.
discard 51e7e32c3b * Refactoring: renamed *.nix.in to *.nix.
discard 2d5114452d * Regression test for the `exportReferencesGraph'
derivation attribute.
discard 33ecb42991 * Cleanup.
discard be88248add * Make the version available to release.nix.
discard a96cac0d18
discard d4753c944f
discard 0e6f604178 * Install some headers in the right location.
discard 7f254706b0 * Allow the channel to declare a name for itself.
discard 1273d355ac * nix-install-package: don't pollute /nix/var/nix/manifests.
discard d4ca5c3952 * Use the regular progress bar; the hash bar isn't very
useful when the size of the download isn't known in advance.
discard fd2e14b3c8 * nix-build: support --option.
discard 60cb7de336 * Allow options from the Nix config file to be overriden
from the command line (e.g. "--option build-use-chroot true").
discard 8ab6bc5a49 * nix-channel: use nix-build.
discard f052c10eed * Check the manifest version.
discard a7cee528c5 * Handle base-16 hashes in manifests.
discard 041717eda3 * download-using-manifests: don't check the cryptographic
hash of downloaded files; rather, check the hash of the unpacked store path.
discard 621093cb1c Replace wrong (w.r.t. PATH) sed call with in-shell
substitution
discard 824b154ce8 * Release output locks as soon as possible, not when the
destructor of the DerivationGoal runs. Otherwise, if a goal is a top-level
goal, then the lock won't be released until nix-store finishes. With
--keep-going and lots of top-level goals, it's possible to run out of file
descriptors (this happened sometimes in the build farm for Nixpkgs). Also,
for failed derivation, it won't be possible to build it again until the lock
is released.
discard 2ef579d1aa documentation for previous commit
discard 1407a1ec99 added primop functions __isBool, __isString, __isInt
discard 1bb0f1e84b * Build hook: compress the transferred data.
discard b682fae9d9 * Build hooks: use nix-store --import. This prevents a
redundant scan for runtime dependencies (i.e. the local machine shouldn't do
a scan that the remote machine has already done). Also pipe directly into
`nix-store --import': don't use a temporary file.
discard 6f8c96d123 vim syntax: support for indented strings ('' .. '')
discard 110606d470 Add the "addErrorContext" builtin to add more information
in the stack trace.
discard 061141e632 * Make it compile on Debian 4.0 (which doesn't define
PER_LINUX32_3GB in sys/personality.h).
discard 019176137f * When using a build hook, distinguish between transient
failures (e.g. an SSH connection problem) and permanent failures (i.e. the
builder failed). This matters to Hydra (it wants to know whether it makes
sense to retry a build).
discard 4ce692df88
discard c504d90c11 * Support i686-linux builds directly on x86_64-linux Nix
installations. This is implemented using the personality() syscall, which
causes uname to return "i686" in child processes.
discard 8e39d9bdb3 * Make Nix build with Bison 2.4.
discard 28355dafcf * Removed reference to losser.st-lab.cs.uu.nl, which is RIP
after 9 years of loyal service :-)
discard 8fce03e0ad * nix-store --verify: repair bad hash fields in the
metadata file.
discard 60ec75048a * Pass --use-atime / --max-atime to the daemon.
discard 6f6bb1fdea * Delete the chroot if it already exists (e.g. left over
from an interrupted build).
discard 92cb7c4dfe * Put chroots in the Nix store. This ensures that we can
create hard links to the inputs.
discard 0008b0006d * Simplify deleting .lock files in /nix/store: just don't
delete them if they belong a path that's currently being built. This gets
rid of some Cygwin-specific code.
discard ac36c6cd44 * Some hackery to make "make check" succeed on Cygwin.
discard 2b70a8e7c9 * Detect whether unshare() is available.
discard 9122dcecbb * We can't use string objects in signal handlers because
they might allocate memory, which is verboten in signal handlers. This
caused random failures in the test suite on Mac OS X (triggered by the
spurious SIGPOLL signals on Mac OS X, which should also be fixed).
discard 6776a52bb3 * Use a PathSet for the chroot directories so that we don't
accidentally bind-mount a directory twice.
discard d86bd22d24 * Define _GNU_SOURCE. Hopefully this fixes the build on
Debian 4.0 (http://hydra.nixos.org/nixlog/384/1).
discard ac5478eb52 * Don't provide the whole Nix store in the chroot, but only
the closure of the inputs. This really enforces that there can't be any
undeclared dependencies on paths in the store. This is done by creating a
fake Nix store and creating bind-mounts or hard-links in the fake store for
all paths in the closure. After the build, the build output is moved from
the fake store to the real store. TODO: the chroot has to be on the same
filesystem as the Nix store [...]
discard 652817046b * Revert r13150: now that we use private namespaces for the
chroot, we don't have to put the chroot in /nix/var/nix/chroots anymore.
They're back in /tmp now.
discard 5a569509b4 * Provide a minimal /etc/passwd in the chroot to keep some
builders happy.
discard 7c54f1603f * Do chroot builds in a private namespace. This means that
all the bind-mounts we do are only visible to the builder process and its
children. So accidentally doing "rm -rf" on the chroot directory won't wipe
out /nix/store and other bind-mounted directories anymore. Also, the
bind-mounts in the private namespace disappear automatically when the builder
exits.
discard 07cdfb09fb * Open the connection to the daemon lazily (on demand) so
that read-only operations (like nix-env -qa) work properly when the daemon
isn't running.
discard a0766eca27 * Build on Debian 4.0 (GCC 4.1.1).
discard cd16d5dc3d * Doh.
discard 5b949241a5 * Build some 64-bit RPMs/Debs.
discard 67958f21df * Be sure to clean up the daemon if the test fails.
discard d91dc086bb
discard 9ac3f5df9c * Propagate --max-silent-time to remote machines.
discard bcfe98acff * Prefer building on a remote machine over a local machine.
This makes more sense for the build farm, otherwise every nix-store
invocation will lead to at least one local build. Will come up with a better
solution later...
discard 9850262a72 * Build RPMs, Debs, coverage analysis.
discard 909fbb9de1 * When using build hooks, for any nix-store -r build
operation, it is necessary that at least one build hook doesn't return
"postpone", otherwise nix-store will barf ("waiting for a build slot, yet
there are no running children"). So inform the build hook when this is the
case, so that it can start a build even when that would exceed the maximum
load on a machine.
discard 5dfba0b4db * Force allocation of a pseudo-terminal to clean up the
remote nix-store process when the connection is interrupted.
discard 9ccdb80de3 * Don't ignore errors from writing to stderr. That way,
when nix-store -r (or some other operation) is started via ssh, it will at
least have a chance of terminating quickly when the connection is killed.
Right now it just runs to completion, because it never notices that stderr is
no longer connected to anything. Of course it would be better if sshd would
just send a SIGHUP, but it doesn't
(https://bugzilla.mindrot.org/show_bug.cgi?id=396).
discard 9fd9c4c635 * Support multiple system types per remote machine, e.g. a
machine list like
discard 63b8f09d8d
discard f8713e1287 * Dirty hack to make nix-push work properly on derivations:
the derivation should be a source rather than a derivation dependency of
the call to the NAR derivation. Otherwise the derivation (and all its
dependencies) will be built as a side-effect, which may not even succeed.
discard 82ae85de27 * addToStore() in nix-worker: don't write the NAR dump
received from the client to a temporary directory, as that is highly
inefficient.
discard 5eaf644c99 * A simple API for parsing NAR archives.
discard cdee317419 * Backwards compatibility.
discard d95b68fde3
discard ff762fb499 * Pass HashType values instead of strings.
discard 1307b22223 * Made addToStore() a lot more efficient: it no longer
reads the path being copied 3 times in the worst case. It doesn't run in
constant space, but it didn't do that anyway.
discard 64519cfd65 * Unify the treatment of sources copied to the store, and
recursive SHA-256 outputs of fixed-output derivations. I.e. they now produce
the same store path:
discard 09bc0c502c * Install the release notes.
discard 5d4eb9dd07 * Moved the build farm job for building Nix to the Nix tree.
discard 0c478d2f4d * Ignore carriage returns.
discard 5024bde8f4 * Handle prematurely ended logfiles, i.e. make sure we emit
enough close tags.
discard 2ab09a55cf * Bump the version number.
discard 6bbff48079
discard b8eb32f4d2 * Urgh.
discard bba87589cc
discard f3e2e6076a
discard 53cca4a445
discard 4213b8d8ec * Urgh.
discard eb86b6f5a5
discard 3d2035ea86 * Blindly doing a replacement of occurences of $bindir
(when running the tests) is a bad idea when $bindir = /usr and some programs
(like perl) live there. Fortunately it doesn't seem to be needed anymore.
discard 285d26374a * Don't set the prefix to /nix by default, rather use the
Autoconf default of /usr/local. However, localstatedir and storedir are set
to /nix/var/nix and /nix/store respectively unless they're explicitly
overriden.
discard a55113411f * Nix daemon: reload the configuration file after forking
(NIX-100).
discard c202523e53
discard aab530e971 * Primop builtins.storePath for declaring a store path as a
dependency. `storePath /nix/store/bla' gives exactly the same result as
`toPath /nix/store/bla', except that the former includes /nix/store/bla in
the dependency context of the string.
discard 60564410ef * Patterns.
discard 2668a43388
discard 63ccd72496 * Updated the manual.
discard e13da525a7 * Files in the info directory starting with "." are
temporary files and don't indicate path validity.
discard 5d250ad1ea * nix-store --dump-db: be more streamy.
discard 7509d70f9d * Documented some of the sharing mechanisms.
discard 2369b122d1 * Install documentation in $(docdir) (i.e. share/doc/nix).
discard 6c2c771af7 * Removed obsolete option.
discard 07d3a38726 * Remove references to Berkeley DB, including most of the
troubleshooting section. W00t.
discard f5325d292d * Release notes.
discard fa791116a3 * Get rid of nix-pack-closure / nix-unpack-closure, they're
redundant.
discard 3f4ed681c2 * Prevent zombies. Previous the SIGCHLD handler only
reaped one zombie at a time, so if multiple children died before the handler
got to run, some of them would not be cleaned up.
discard 6fedb7aa0f * Restore SIGPIPE to SIG_DFL when running the builder.
This prevents subtle and often hard-to-reproduce bugs where programs in pipes
either barf with a "Broken pipe" message or not, depending on the exact
timing conditions. This particularly happened in GNU M4 (and Bison, which
uses M4).
discard a519bb0635 * Some somewhat ad hoc mechanism to allow the build farm to
monitor build progress.
discard 96598e7b06 * Pass the --no-build-output flag to the daemon.
discard 4166b11a53 * Add /dev/pts to the default nix.conf.
discard 2b7c839b4e * Typo.
discard 709b55ee02 * Put the chroots under /nix/var/nix/chroots to reduce the
risk of disasters involving `rm -rf' on bind mounts. Will try the
definitive fix (per-process mounts, apparently possible via the CLONE_NEWNS
flag in clone()) some other time.
discard c98ea254dc libstore: Always mount `/dev/pts' individually.
discard 9d6d50269b * Bug fix for building on some old installations
(contributed by Pjotr).
discard fa61ee70ee * Fix `--from-profile'.
discard f32fef1b07 * GC option `--max-atime' that specifies an upper limit to
the last accessed time of paths that may be deleted. Anything more recently
used won't be deleted. The time is specified in time_t, e.g. seconds since
1970-01-01 00:00:00 UTC; use `date +%s' to convert to time_t from the command
line.
discard 4af2fdba6d * Typo.
discard c987061aa4 * Some refactoring. Better output with `-v' for
--use-atime.
discard 77afd97a99 * nix-store --gc / --delete: show how many store paths were
deleted.
discard 7ab68961e4 * Garbage collector: added an option `--use-atime' to
delete paths in order of ascending last access time. This is useful in
conjunction with --max-freed or --max-links to prefer deleting non-recently
used garbage, which is good (especially in the build farm) since garbage
may become live again.
discard 2b2aa8a820 * Doh.
discard 7933cdc6dc * When writing the user environment manifest, filter out
non-string attributes from the meta attribute. Not doing so caused nix-env
to barf on the "psi" package, which has a meta.function attribute, the
textual serialisation of which causes a gigantic string to be produced --- so
big that it causes nix-env to run out of memory.
discard 0f0dbe8c0c * Extend the ATerm suppressions to 64-bit.
discard 311c222f47
discard 2a01d06da6 Added nix-http-export.cgi to extra distributed scripts; so
it can be installed from releases, not only from SVN.
discard 7718b19389 * Explicitly set PWD to prevent problems with chroot
builds. In particular, dietlibc cannot figure out the cwd because the inode
of the current directory doesn't appear in .. (because getdents returns the
inode of the mount point).
discard 9cc0da8453 * Create a /tmp with 1777 permission in the chroot. Some
builders need a writable /tmp (they don't respect $TMPDIR).
discard 99dc3e613a * Require that __overrides is defined as a non-recursive
attribute (which means it can only be defined via "inherit"), otherwise we
get scoping bugs, since __overrides can't be recursive (or at least, it
would be hard).
discard d06be428f6 * Disable chroot builds for fixed-output derivations so
that we don't need /etc in the chroot (in particular, /etc/resolv.conf for
fetchurl). Not having /etc/resolv.conf in the chroot is a good thing, since
we don't want normal derivations to download files.
discard abec1c0004 * Evaluate attributes in sorted order for better
determinism.
discard c4f1c2114b * Minor simplification.
discard 49829da8b4 * Doh.
discard b428adc267 * Strip off the `.nix' suffix from the attribute name for
files in ~/.nix-defexpr, otherwise the attribute cannot be selected with the
`-A' option. Useful if you want to stick a Nix expression directly in
~/.nix-defexpr.
discard cc826dc03e * Simplify the Valgrind suppressions using wildcards.
discard 51e2dda58c * Some more ATerm Valgrind suppressions.
discard b7ff182b6e Fixing an obvious typo in override code. I do not know
whether it works correctly after the change, but at least it ca nbe compiled
now.
discard ca07f3e370 * Another experimental feature: a way to truly override
attributes in a rec. This will be very useful to allow end-user
customisation of all-packages.nix, for instance globally overriding GCC or
some other dependency. The // operator doesn't cut it: you could replace the
"gcc" attribute, but all other attributes would continue to reference the
original value due to the substitution semantics of rec.
discard 9279174dde * Added an experimental feature suggested by Andres:
ellipses ("...") in attribute set pattern matches. This allows defining a
function that takes *at least* the listed attributes, while ignoring
additional attributes. For instance,
discard db4f4a8425 * Backward compatibility check to prevent nixos-rebuild
from barfing when upgrading Nix.
discard 1b962fc720 * @-patterns as in Haskell. For instance, in a function
definition
discard e818838412 * "pattern" non-terminal.
discard efe4b690ae * Refactoring: combine functions that take an attribute set
and functions that take a single argument (plain lambdas) into one AST node
(Function) that contains a Pattern node describing the arguments. Current
patterns are single lazy arguments (VarPat) and matching against an attribute
set (AttrsPat).
discard c03b729319 * Increase the sleep periods a bit to make the test less
likely to fail on slow machines. Of course it would be better if this test
wasn't timing dependent...
discard 5664b6d7ba * Removed the "valid values" feature. Nobody uses it
anyway.
discard b455c4c45c Updates to nix-reduce-build
discard 72f3ea7358 * Moved some stuff to the Nixpkgs manual. * Updated the
release notes.
discard 98b07466fb * Better error checking of the data from the substituters.
discard 339c142009 * Use optimistic profile locking for nix-env operations
like `-i' and `-u'. Instead of acquiring an exclusive lock on the profile
for the entire duration of the operation, we just perform the operation
optimistically (without an exclusive lock), and check at the end whether the
profile changed while we were busy (i.e., the symlink target changed). If
so, the operation is restarted. Restarting is generally cheap, since the
build results are still in the N [...]
discard a87b5256e2 * Fix the tests.
discard 001b3f06ec * `nix-env --set': support --dry-run.
discard 7592f48c83 * nix-build: `--dry-run' flag.
discard a1d310b6b5 * `nix-store --realise': print what paths will be
built/downloaded, just like nix-env. * `nix-store --realise': --dry-run
option.
discard 42043953c3 * Doh.
discard 5adbb0aabe * build.cc: only use a substituter if it returns info for a
path.
discard 5b1052663a * Always show what paths we're going to build/download (as
in --dry-run). Maybe there should be an option to turn this on/off?
discard c4f98941ed * nix-env --dry-run: show the total size of the substituter
downloads.
discard 03427e76f1 * querySubstitutablePathInfo: work properly when run via
the daemon. * --dry-run: print the paths that we don't know how to
build/substitute.
discard b3c26180e3 Updates to nix-reduce-build: only realize fixed derivations
if user asks so, or only use substituters. Oh, and add possibility to use : for
things like /etc/nixos/nixpkgs:-A:gnused
discard 3c92ea399d * Make nix-env --dry-run print the paths to be substituted
correctly again. (After the previous substituter mechanism refactoring I
didn't update the code that obtains the references of substitutable paths.)
This required some refactoring: the substituter programs are now kept running
and receive/respond to info requests via stdin/stdout.
discard fc691e1cbd * Print a better error message when a non-derivation
attribute set is coerced to a string.
discard 096198d11f * A quick hack to make nix-prefetch-url support mirror://
URLs. It requires that $NIXPKGS_ALL points at a Nixpkgs tree.
discard 660244f65f * Make sure that copy-from-other-stores.pl is built.
discard e139d7fc68 * Fix the tests.
discard 989176c56e * Allow read-only access to the store (e.g., non-root users
on NixOS can do operations like "nix-store -qR <path>" even without the Nix
daemon).
discard 8bc591a6f0 * Use the copy-from-other-stores substituter by default.
Of course, it only does something if $NIX_OTHER_STORES (not really a good
name...) is set. * Do globbing on the elements of $NIX_OTHER_STORES. E.g. you
could set it to /mnts/*/nix or something. * Install substituters in
libexec/nix/substituters.
discard 15f39aba8c * Quick prototype of a substituter that copies paths from
other Nix stores (typically remote Nix stores mounted via e.g. NFS, or the
Nix store on the NixOS installation CD). Example use:
discard 7cd88b1dec * Generalised the dependencyClosure primop to
builtins.genericClosure, which is hopefully more useful. * New primops:
length, mul, div.
discard d567baabbd * Export the nix-env derivation name parsing and version
comparison logic through the `parseDrvName' and `compareVersions' primops.
This will allow expressions to easily check whether some dependency is a
specific needed version or falls in some version range. See
tests/lang/eval-okay-versions.nix for examples.
discard b3b0b2a29e * `make ext-clean': remove the bzip2 build.
discard 6c8641a542
discard 5af84139a8 * --max-freed: support values >= 4 GB.
discard d3aa183beb * Garbage collector: option `--max-freed' to stop after at
least N bytes have been freed, `--max-links' to stop when the Nix store
directory has fewer than N hard links (the latter being important for very
large Nix stores on filesystems with a 32000 subdirectories limit).
discard a8f3b02092 * `nix-store --optimise': handle files with >= 32000 hard
links. (There can easily be more than 32000 occurrences of the empty file.)
discard a72709afd8 * Some refactoring: put the GC options / results in
separate structs. * The garbage collector now also prints the number of blocks
freed.
discard 934c58aa38 * Use bzip2 1.0.5.
discard ee8f15930d * Test instrumentation.
discard f351834f77 * nix-worker: clean up the temporary root for the worker
processes in /nix/var/nix/temproots.
discard 94fd46fa1c * Note.
discard 955b8841cd Also trying to build derivers in case we cannot get
substituters
discard 18e27629d3 Added local best-effort builds (i.e. one failure does not
ruin all packages you would like to see built)
discard 826b271d9a * Garbage collector: don't do a complete topological sort
of the Nix store under the reference relation, since that means that the
garbage collector will need a long time to start deleting paths. Instead just
delete the referrers of a path first.
discard 30c9f909b2 * Print some progress info during the early GC stages.
discard 194c66eeeb Stupid error in script
discard f903d86740 OK, I will believe that fix does no worse..
discard ce85b55cf0 Updated help text
discard 4532e4b90d Added verbosity for nix-reduce-build
discard 2818b7cee6 * Updated some URLs.
discard 997b95a4af * Fixed compatibility with old versions of "wc" that print
whitespace before the count.
discard b0e92f6d47 * Merged the no-bdb branch (-r10900:HEAD
https://svn.nixos.org/repos/nix/nix/branches/no-bdb).
discard 4ed01ed791 * Updated some URLs (did this a long time ago but forgot to
commit...).
discard c41a3ec3a9 First attempt to update Nix SDF grammar to match the actual
bison grammar
discard bd955e15e1 * GCC 4.3.0 (Fedora 9) compatibility fixes. Reported by
Gour and Armijn Hemel.
discard 9819bb20da Added support for file:// archive (.nar.gz) repositories to
nix-reduce-build. /tmp/nix-export created by nix-http-export.cgi is OK.
discard b4bc8b7616 --proxy=proxy:3128
discard b1e321d6ce Added http alternative transport for nix-reduce-build
discard 658816ddc9 * Make really sure that we use bash. The line
discard 72034ab35d * sockaddr_un doesn't allow path names of more than 108
characters. This isn't usually a problem, except that it causes tests to fail
when performed in a directory with a very long path name. So chdir to the
socket directory and use a relative path name.
discard f8985d195e * Fix for NIX-101 (should use an absolute path for call to
nix-hash).
discard 329025253d * Use /tmp/nix-build-<drvpath>-<counter> instead of
/tmp/nix-<pid>-<counter> for temporary build directories. This increases
purity a bit: many packages store the temporary build path in their output,
causing (generally unimportant) binary differences.
discard 5bb08db55b * Updated URL.
discard 98968fbb63 * Disable the don't-run-as-root sanity check because it
breaks RPM builds (which are done as root...).
discard 2f1e2cf632 * Note that the SDF grammar isn't used.
discard f106868110 * Cleanup.
discard f789ea1d09 * A transaction is unnecessary since the path cannot be
garbage-collected (it's a temporary root).
discard d7caac3e81 * Don't install nix-reduce-build by default yet please, I
first want to understand better what it does...
discard 11d512e7a8 Added nix-reduce-build. You point it to some path you want
to build and it fetches whatever it can from specified computers via
nix-copy-closure. NOTE: You do want to set up RSA keys or ssh-agent or
something... You really do want it. It will run separate ssh instances insane
number of times.
discard 0a84137c45 * checkVarDefs: don't check in closed terms, which don't
have undefined variables by definition. This matters for the
implementation of "with", which does a call to checkVarDefs to see if the
body of the with has no undefined variables. (It can't be checked at parse
time because you don't know which variables are in the "with" attribute set.)
If we check closed terms, then we check not just the with body but also the
substituted terms, which are typica [...]
discard 0ed89c569f * Fix the parsing of
discard 4066f450c2 * Doh.
discard e7bdde981f * Regression test.
discard 66c51dc215 * nix-store --dump-db / --load-db to dump/load the Nix DB.
* nix-store --register-validity: option to supply the content hash of each
path. * Removed compatibility with Nix <= 0.7 stores.
discard 5b5a3af983 Probably fixed __exprToString
discard 5eb5c23447 Fixed exportBuildReferenceGraph
discard 7d0f6aed59 * New primop `unsafeDiscardStringContext' to get rid of
string contexts. Needed to prevent unnecessary dependencies when building
the NixOS manual.
discard 895c953817 * Bumped the version number to 0.12.
discard d4117859d6
discard e0ca671491 * More documentation.
discard 6bdecfacbb * Documented a bunch of nix-store commands.
discard 454f571f87
discard 4c82983010
discard f60aa2aa21
discard dedd62dd0c * More release notes.
discard b5ddcf58ad * Fix the hashDerivationModulo test. I should really
investigate *why* the test failed...
discard 59707975a3 * Documented indented string literals. * Release notes.
discard de012e76e2 * Don't use "store expression", it's obsolete.
discard 2196cb67c5 Added a way to include derivation with its outputs and
dependencies - exportBuildReferenceGraph
discard df303666bc * Use strsignal if available to give better error messages
for builders that fail due to a signal.
discard 1e90b4189d * Another insane Mac OS X 10.5 compatibility hack.
discard 485d71c54a * Mac OS X 10.5 compatibility: `echo -n foo' suddenly
prints `-n foo' instead of `foo' without a newline (with /bin/sh, not
/bin/bash, even though /bin/sh is also bash...). So use printf instead.
discard 30e4653783 * Mac OS X 10.5 compatibility.
discard 4ff1335b2e small udpate
discard 3a2833daff corrected --help message for nix-store a bit
discard 764b0115d5 Very basic nix vim syntax highlighting
discard b42ef9c054 * Syntax to escape '', ${.
discard d4950f207f * component -> package.
discard 6d6c68c0d2 * Added a new kind of multi-line string literal delimited
by two single quotes. Example (from NixOS):
discard 633518628f * nix-env -e: support uninstalling by path, so that one can
say
discard 12d0a1eb75 * Troubleshooting entry about running out of locks.
discard 06f95dd07c * New primop `readFile' to get the contents of a file as a
string.
discard c370755583 * Flag `--no-build-hook' to disable distributed builds. *
queryDeriver in daemon mode: don't barf if the other side returns an empty
string (which means there is no deriver).
discard c05783ad67 * nix-store --import: add a flag --require-signature.
discard 6784b14241 * nix-build: pass --argstr to nix-instantiate.
discard ca210d2a58 * Doh!
discard 149e273023 * Don't need gc.hh.
discard bfec245efa * Add build-remote.pl to the Nix distribution.
discard 6fc60e2060 Added possibility to specify garbage collection levels for
store paths; so packages can share intermediate results of compilation and GC
will collect it automatically while never touching tarballs, for example.
discard 5b74a59570 * nix-prefetch-url: don't fail if
/tmp/nix-prefetch-url-<pid> exists, instead use a counter just like we do for
temporary build directories.
discard 5f8a203b55 * A rule to make a PDF version of the manual.
discard 1511aa11ce * Documented some of the more obscure derivation attributes
(including fixed-output derivations).
discard fa44e401a8 * Documented multi-user Nix.
discard e007b50eb7
discard bfea7b1f35 * Make the `--prebuilt-only' / `-b' option work not just
for queries but installations/upgrades as well. So `nix-env -ub \*' will
upgrade only those packages for which a substitute is available (or to be
precise, it will upgrade each package to the highest version for which a
substitute is available).
discard 0b95603595 * Depend on bash instead of sh (since we use a few
bashisms).
discard 42d80d1170 * On FreeBSD, sys/mount.h needs sys/param.h.
discard d91cd30563 * Detect whether chroot / bind-mount support is available.
discard dc6f373842 * Delete the chroot directory automatically. * Removed some
debug messages.
discard 9397cd30c8 * Support for doing builds in a chroot under Linux. The
builder is executed in a chroot that contains just the Nix store, the
temporary build directory, and a configurable set of additional directories
(/dev and /proc by default). This allows a bit more purity enforcement:
hidden build-time dependencies on directories such as /usr or
/nix/var/nix/profiles are no longer possible. As an added benefit,
accidental network downloads (cf. NIXPKGS-52) are preve [...]
discard 0b4ed64d29 * "trace" primop: write the trace to standard error.
discard cd08fb3fde
discard d423968ba1 * Improved introduction (actually copied mostly from the
homepage).
discard 612b3e8fa3 * Document the new primops in Nix 0.11.
discard 35ac16e75e * Move list of built-in functions to a separate file.
discard 1db187ff69
discard f90d85107e
discard f8ed2e64a5
discard f529a3be8a Added comment telling about setup-hook and
propagatedBuildInputs
discard 14e47e9c2c * Doh.
discard d04291cfab * Doh! Don't change the permissions on /nix/store.
discard 315183f194 * nix-store --optimise: flag "--dry-run" to just query what
the disk savings would be.
discard a8629de827 * New command `nix-store --optimise' to reduce Nix store
disk space usage by finding identical files in the store and hard-linking
them to each other. It typically reduces the size of the store by
something like 25-35%. This is what the optimise-store.pl script did, but
the new command is faster and more correct (it's safe wrt garbage collection
and concurrent builds).
discard 27a0662828 * listToAttrs: the list now should consist of {name, value}
attribute sets instead of {attr, value}. "name" is better than "attr"
because the *combination* of the two forms the attribute.
discard 8a9fe6c11c * Manpage for nix-copy-closure.
discard 27f57c9018 * Ignore dangling symlinks in ~/.nix-defexpr.
discard f3441e6122 * Pass various options to the worker so that flags like -K
or -j work in multi-user Nix (NIX-72). * Client/worker: exchange a protocol
version number for future compatibility.
discard 26f981c2e5 * Remove garbage.
discard c8ea8a09b8 * nix-env -qa: make the "-A" flag do the expected thing,
namely follow the given attribute path (just as -A does with other option)
(NIX-83). So you can now say
discard 055608227f * nix-env: allow ~/.nix-defexpr to be a directory. If it
is, then the Nix expressions in that directory are combined into an attribute
set {file1 = import file1; file2 = import file2; ...}, i.e. each Nix
expression is an attribute with the file name as the attribute name. Also
recurses into directories.
discard 3339f85447 * Test the impureEnvVars feature.
discard 9441550acb * nix-push / generate-patches: bzip the manifest.
discard 7b20c0ed4b explanation what happens when passing true / false and null
values to derivation builders added
discard 0d65fc08e2 * Create the Nix daemon socket in a separate directory
(/nix/var/nix/daemon-socket). This allows access to the Nix daemon to be
restricted by setting the mode/ownership on that directory as desired, e.g.
discard cb1c1004cd * When there are multiple substituters, make sure to
release the lock on the output path after trying each. Otherwise the
pathIsLockedByMe() test gets confused.
discard c970b28ba0 * Fix a race condition with parallel builds where multiple
fixed-output derivations or substitutions try to build the same store path
at the same time. Locking generally catches this, but not between multiple
goals in the same process. This happened especially often (actually, only)
in the build farm with fetchurl downloads of the same file being executed on
multiple machines and then copied back to the main machine where they would
clobber each other ( [...]
discard bc0429b1cd * Doh! Broken test.
discard e0d7e47862 * PathLocks::lockPaths: don't allow reacquiring a lock we
already hold.
discard 455a7b9577 * Test case to show that parallel builds of different
fixed-output derivations that produce the same output path don't work
properly wrt locking. This happens a lot in the build farm when fetchurl
derivations downloading the same file on different platforms are executed in
parallel and then copied back to the main machine.
discard 7d5836b34d * nix-channel: supports users who don't have write
permission to the manifests directory. In that case, we don't do a nix-pull,
so the user gets pure source deployment.
discard 2629998e91 primop functions listToAttrs (+test), __isAttrs, __trace
added new configuration style proposal in lib/default-unstable.nix
discard dbc0170ed9 * Show errors in nix-prefetch-url.
discard 5c793ad03e * Hopefully this fixes the test on FreeBSD.
discard ffa1c61cd5 * Fix the tests.
discard a7e1a51fdf * A test for the nix-worker.
discard 550ba9ebb4 * Fix the tests.
discard 3757ee589f * Bump the Nix database schema version number; delete the
substitutes table.
discard 59afc1a15c * Backwards compatibility.
discard 9e975458b4 * Get rid of the substitutes database table (NIX-47).
Instead, if we need any info on substitutable paths, we just call the
substituters (such as download-using-manifests.pl) directly. This means that
it's no longer necessary for nix-pull to register substitutes or for
nix-channel to clear them, which makes those operations much faster (NIX-95).
Also, we don't have to worry about keeping nix-pull manifests (in
/nix/var/nix/manifests) and the database in [...]
discard 4695f4edd6 * nix-pull: support bzipped manifests: when doing a
nix-pull on $url, try $url.bz2 first.
discard 911bc01454 * Enable nix-prefetch-url caching in nix-channel.
discard 5e52df18fe * Don't rely on /dev/stdin.
discard c5e934dcc9 * nix-pull: using nix-prefetch-url (so that we get caching
for free), and store the manifests in the Nix store. (So now
/nix/var/nix/manifests/ just contains symlinks to the store and is searched
for GC roots.)
discard f881f7a017 * nix-prefetch-url: support caching. If the environment
variable NIX_DOWNLOAD_CACHE is set, then nix-prefetch-url will store the hash
and timestamp of downloaded files in the directory $NIX_DOWNLOAD_CACHE.
This allows it to figure out if the file is still in the Nix store.
discard ef240bc0d5 * Use the new patched version of the aterm library.
discard d71cc503a6 * Don't allocate input files on the stack.
discard 4cad125e08 * Optionally warn about packages that give an assertion
failure.
discard 6da6fbfbe9 * Properly keep packages during upgrades.
discard 6d1a1191b0 * Support queryDeriver() in multi-user installations.
discard 9d9e1c5c41 * Distribute bzip2 1.0.4.
discard 9bff7ad728 * Check against creation of GC roots in the store. Those
roots don't work, because findRoots() stops when it encounters a symlink to
the store. And of course the store is supposed to be read-only.
discard f3ebd03bb1 * Remove debug statement.
discard 40b6f06f09 change default NIX_HASH_ALGO
discard b47da5ea21
discard bddc83a148 * New builtin function "isFunction". You're not supposed
to use it ;-) * Channels: fix channels that are plain lists of derivations
(like strategoxt-unstable) instead of functions (like nixpkgs-unstable).
This fixes the error message "error: the left-hand side of the function call
is neither a function nor a primop (built-in operation) but a list".
discard ca00aa1171 * Allow empty argument lists in function definitions (e.g.,
`{}: bla'). Also allow trailing commas (`{x, y,}: ...') as a unintented
consequence. Hopefully the reduce/reduce conflict won't cause any problems.
discard 7046c35843 * Typo (reported by Marc Weber).
discard e5da9c8803 * Create the database directory if it doesn't exist.
discard 30beeb27a9 * Set the right priorities when recovering from a directory
collision.
discard 34d4c9388b
discard 93aefd9fc0 * Give unpacked channels more sensible names than 0, 1, ...
They now get the basename of the channel URL (e.g., nixpkgs-unstable). The
top-level Nix expression of the channel is now an attribute set, the
attributes of which are the individual channels (e.g., {nixpkgs_unstable =
...; strategoxt_unstable = ...}). This makes attribute paths ("nix-env -qaA"
and "nix-env -iA") more sensible, e.g., "nix-env -iA
nixpkgs_unstable.subversion".
discard a9d15d4f43 * nix-env -i: instead of breaking package ties by version,
break them by priority and version install. That is, if there are multiple
packages with the same name, then pick the package with the highest priority,
and only use the version if there are multiple packages with the same
priority.
discard cbfac2fdcc * Set a terminate() handler to ensure that we leave the BDB
environment cleanly even when an exception is thrown from a destructor. We
still crash, but we don't take all other Nix processes with us.
discard 644946feed * Make --verify more interruptable.
discard bd1f66453a * `nix-env -q --xml --meta' to show all meta attributes.
discard e20f0da22c * Doh.
discard 89c1d2b202 * Package flag "keep" that prevents a package from being
removed from a user environment by an install or upgrade action. This is
particularly useful if you have a version installed that you don't want to
upgrade (e.g., because the newer versions are broken). Example:
discard a46db5d013 * Package conflict resolution through priority levels. If
there is a user environment collission between two packages due to
overlapping file names, then a package with a higher priority will overwrite
the symlinks of a package with a lower priority. E.g.,
discard 3d05166086 * Allow conflicting packages to be kept in a user
environment, and allow switching between them (NIX-80).
discard b7f0f65c19 * nix-env -q now has a flag --prebuilt-only (-b<) that
causes nix-env to show only those derivations whose output is already in the
Nix store or that can be substituted (i.e., downloaded from somewhere). In
other words, it shows the packages that can be installed “quickly”, i.e.,
don’t need to be built from source.
discard 5dc05b76ab * Updated dependency information.
discard 5f2492eaec * New primop "throw <string>" to throw an error. This is
like abort, only thrown errors are caught by the top-level derivation
evaluation in nix-env -qa / -i.
discard 0a8eeea9d8 * Remove a warning.
discard 2716f9bc5f * It seems that svnversion prints a carriage return on
Cygwin, so we get a invalid #define VERSION. Use "svnversion -n" to leave
out the newline. Fix provided by Marc Weber.
discard ae7990cc88 * Work around a bug in Apple's GCC preprocessor.
discard 4caca58ff7 * Make the maximum patch size configurable.
discard 17b506c0c7 * Handle ECONNRESET from the client. Also, don't abort()
if there are unexpected conditions in the SIGPOLL handler, since that messes
up the Berkeley DB environment (which a client must never be able to
trigger).
discard efd31139df * Forgot a @bindir@.
discard d303b389a9 * `nix-copy-closure --from': copy from a remote machine
instead of to a remote machine.
discard 7edd2e2cd2 * Refactoring.
discard f3584ff535 * Fix URL/description.
discard 803cb6e3b9 * Override the setuid helper using NIX_SETUID_HELPER.
discard a8ea4cbcc8 * Scan /proc/sys/kernel/modprobe for roots to prevent the
kernel modules for the running kernel from being garbage-collected. Idem
for /proc/sys/kernel/fbsplash.
discard 8ab229ddf2 * Terminate build hooks and substitutes with a TERM signal,
not a KILL signal. This is necessary because those processes may have joined
the BDB environment, so they have to be given a chance to clean up. (NIX-85)
discard b2b6cf3fc8 * Undocumented option `gc-check-reachability' to allow
reachability checking to be turned off on machines with way too many roots.
discard eb2dd4815c * Remove old generations in all directories under
/nix/var/nix/profiles, not just in that directory itself. (NixOS puts
profiles in /nix/var/nix/profiles/per-user.)
discard 917e06bf63 * Delete the output paths before invoking the build hook.
discard df0283ae86 * Get rid of those stupid --login tricks, it's the
responsibility of the remote system to make sure that Nix is in the $PATH.
discard 30394a4f3f * sh -> bash.
discard db1973d012 * Look for the openssl program at compile time. If not
found, call openssl through $PATH at runtime.
discard b4a040e52b * Don't check the signature unless we have to.
discard 2ea3bebc23 * Doh! The deriver can be empty.
discard 044b6482c1 * Greatly reduced the amount of stack space used by the Nix
expression evaluator. This was important because the NixOS expressions
started to hit 2 MB default stack size on Linux.
discard adce01a8d0 * When NIX_SHOW_STATS=1, show the amount of stack space
consumed by the Nix expression evaluator.
discard 363e307fd3 * Error message to stdout.
discard ddde8e2f32 * Handle EINTR in select().
discard 27bb0ac7d2 * /man -> /share/man
discard fa2be32034 * nix-copy-closure: force a login shell on the remote
machine to make sure that nix-store is in the PATH. * nix-copy-closure:
option --gzip to compress data.
discard 4c5e6d1a2f * nix-copy-closure: option --sign. * nix-copy-closure: set
SSH options through NIX_SSHOPTS..
discard 024a8ed382 * New command `nix-copy-closure' to copy a closure to a Nix
store on another machine through ssh. E.g.,
discard 7f6161ab3a * Flush cout to show progress.
discard 0db450024d * Export/import many paths in one go.
discard 9da367b7d5 * `nix-store -qR' and friends: print the paths sorted
topologically under the references relation. This is useful for commands
that want to copy paths to another Nix store in the right order.
discard 881feb9698 * Flag `--print-invalid' in `nix-store --check-validity' to
print out which paths specified on the command line are invalid (i.e., don't
barf when encountering an invalid path, just print it). This is useful for
build-remote.pl to figure out which paths need to be copied to a remote
machine. (Currently we use rsync, but that's rather inefficient.)
discard 65f195f4c7 * Check that the file containing the secret key is secret.
discard bdadb98de8 * `nix-store --import' now also works in remote mode. The
worker always requires a signature on the archive. This is to ensure that
unprivileged users cannot add Trojan horses to the Nix store.
discard 0f5da8a83c * Support exportPath() in remote mode.
discard dc7d594776 * importPath(): set the deriver. * exportPath(): lock the
path, use a transaction.
discard 43c4d18c6a * `nix-store --import': import an archive created by
`nix-store --export' into the Nix store, and optionally check the
cryptographic signatures against /nix/etc/nix/signing-key.pub. (TODO: verify
against a set of public keys.)
discard 46e0919ced * `nix-store --export --sign': sign the Nix archive using
the RSA key in /nix/etc/nix/signing-key.sec
discard 6c9fdb17fb * Don't use $SHELL.
discard b824a1daee * Start of `nix-store --export' operation for serialising a
store path. This is like `nix-store --dump', only it also dumps the
meta-information of the store path (references, deriver). Will add a
`--sign' flag later to add a cryptographic signature, which we will use for
exchanging store paths between build farm machines in a secure manner.
discard 3390c1be76 * Temporary notes on how we're going to use OpenSSL.
discard 8181a1c3bb * Close the file - just in case.
discard 46605fb4f5 * Fix 64-bit compiler warnings.
discard 52d03276dd * Compatibility with docbook5-xsl.
discard 451dbf687f * nix-env now maintains meta info (from the `meta'
derivation attribute) about installed packages in user environments. Thus,
an operation like `nix-env -q --description' shows useful information not
only on available packages but also on installed packages.
discard f52de527c7 * Doh!
discard b618fa6eb6 * computeStorePathForText: take the references into account
when computing the store path (NIX-77). This is an important security
property in multi-user Nix stores.
discard c558b1583c * Don't capitalise the primop functions.
discard 18e6096105 * Organise primops.cc a bit better.
discard 7349bd0176 New primitives: * `sub' to subtract two numbers. *
`stringLength' to get the length of a string. * `substring' to get a substring
of a string. These should be enough to allow most string operations to be
expressed.
discard 7dedbd896a * filterSource: pass strings to the predicate function
instead of paths. Paths can have unexpected semantics.
discard 84a84afb0e * Nasty: Glibc clears the TMPDIR environment variable in
setuid programs, so if a builder uses TMPDIR, then it will fail when
executed through nix-setuid-helper. In fact Glibc clears a whole bunch of
variables (see sysdeps/generic/unsecvars.h in the Glibc sources), but only
TMPDIR should matter in practice. As a workaround, we reinitialise TMPDIR
from NIX_BUILD_TOP.
discard fac63d6416 * exportReferencesGraph: work on paths within store paths
as well.
discard bae75ca5a1 * New kind of manifest object: "localPath", which denotes
that a store path can be created by copying it from another location in the
file system. This is useful in the NixOS installation.
discard 36d9258c0d * Successors have been gone for ages.
discard 7bc30e1ca8 * nix-prefetch-url: change the default hash to SHA-256 (in
base-32).
discard 71ceb1c161 * Handle multiple indirect symlinks when loading a Nix
expression.
discard e4b0666f8e * builtins.filterSource: pass the type of the file
("regular", "directory", "symlink") as the second argument to the filter
predicate.
discard 63f3ce6d9a * `nix-store --verify': revive checking the referrers
table. This is important to get garbage collection to work if there is any
inconsistency in the database (because the referrer table is used to
determine whether it is safe to delete a path). * `nix-store --verify': show
some progress.
discard 8f67b35886 * Make the garbage collector more resilient to certain
consistency errors: in-use paths now cause a warning, not a fatal error.
discard 8659edc098 * Don't forget the .flags files.
discard e418976107 * Option --argstr for passing string arguments easily.
(NIX-75)
discard 4e329f173f * Doh.
discard afe23b5f38 * nix-pack-closure: store the top-level store paths in the
closure. * nix-unpack-closure: extract the top-level paths from the closure and
print them on stdout. This allows them to be installed, e.g., "nix-env -i
$(nix-unpack-closure)". (NIX-64)
discard f25f900045 * Allow multiple --attr / -A arguments in nix-build /
nix-instantiate (NIX-74).
discard 215505bb46 * Removed chroot support.
discard f23dcdd603 * Canonicalise ASTs in `nix-instantiate --eval': remove
position info, sort attribute sets.
discard 05879db628 * Memoize strict evaluation.
discard 5011588459 * printTermAsXML: treat derivations specially; emit an
element <derivation outPath=... drvPath=...> attrs </derivation>. Only emit
the attributes of any specific derivation only. This prevents
exponententially large XML output due to the absense of sharing.
discard 792878af91 * Make printing an expression as XML interruptible.
discard 11158028be * Cleanup.
discard 1b7840b949
discard 69c8b5b8a7 * Install generate-patches into libexec.
discard 1f3722bd4a * Reject patches that are larger than a certain fraction of
the full archive (currently 60%). Large patches aren't very economical.
discard 50bdec410a * Huge speedup in patch propagation (20 minutes or so to 3
seconds).
discard 4c63f9fe04 * Another great success.
discard 57969b95b3 * Testing 1 2 3.
discard cafaceb707 * Handle weird cases when the server redirects us while
setting a cookie.
discard 1073b1780a * Remove debug message.
discard a3e6415ba8 * New primop builtins.filterSource, which can be used to
filter files from a source directory. All files for which a predicate
function returns true are copied to the store. Typical example is to leave
out the .svn directory:
discard b438d37558 * In dumpPath(): pass a function object that allows files
to be selectively in/excluded from the dump.
discard 3130f1f0fa * Push.
discard 7ace29dae7 * New operation `nix-env --set' which sets a user
environment to a single derivation specified by the argument. This is useful
when we want to have a profile for a single derivation, such as a server
configuration. Then we can just say (e.g.)
discard 1a7e88bbd9 * New built-in function `builtins.attrNames' that returns
the names of the attributes in an attribute set.
discard 5e6699188f
discard b17677462c * Use lchown() instead of chown() in
canonicalisePathMetaData(). This matters when running as root, since then we
don't use the setuid helper (which already used lchown()).
discard 5f681988f2 * Use deletePathWrapped() in more places.
discard fa33303146 * Goal cancellation inside the waitForInput() loop needs to
be handled very carefully, since it can invalidate iterators into the
`children' map.
discard 06c4929958 * Some refactoring. * Throw more exceptions as BuildErrors
instead of Errors. This matters when --keep-going is turned on. (A
BuildError is caught and terminates the goal in question, an Error terminates
the program.)
discard 9dbfe242e3 * Kill a build if it has gone for more than a certain
number of seconds without producing output on stdout or stderr (NIX-65).
This timeout can be specified using the `--max-silent-time' option or the
`build-max-silent-time' configuration setting. The default is infinity (0).
discard d3fe6ab024 * Also for convenience, change the ownership of the build
output even in case of failure.
discard 096194ab29 * Remove ancient terminology.
discard 6833e8bbe8 * When keeping the temporary build directory (-K), change
the owner back to the Nix account.
discard e24d0201c2 * Doh!
discard 2819eb36a4 * Be less verbose.
discard 4ca01065c3 * Rename all those main.cc files.
discard d03f0d4117 * Check for lchown.
discard c3286ec020 * Don't count on the Pid deconstructor to kill the child
process, since if we're running a build user in non-root mode, we can't. Let
the setuid helper do it.
discard a82d80ddeb * Move setuidCleanup() to libutil.
discard f76fdb6d42 * If not running as root, let the setuid helper kill the
build user's processes before and after the build.
discard ec23ecc64d * In the garbage collector, if deleting a path fails, try
to fix its ownership, then try again.
discard a0a43c3206 * When not running as root, call the setuid helper to
change the ownership of the build result after the build.
discard 6a07ff1ec0 * Change the ownership of store paths to the Nix account
before deleting them using the setuid helper.
discard 7d8cf316ee * Pass the actual build user to the setuid helper.
discard a45c498e4e * If Nix is not running as root, call the setuid helper to
start the builder under the desired build user.
discard 813a7c65c9 * Sanity check.
discard 6a8e60913a * Move killUser() to libutil so that the setuid helper can
use it.
discard 79875c5e42 * Change the ownership of the current directory to the
build user.
discard 62ab131412 * Verify that the desired target user is in the build users
group (as specified in the setuid config file).
discard f07ac41656 * Check that the caller is allowed to call the setuid
helper. The allowed uid is specified in a configuration file in
/etc/nix-setuid.conf.
discard 173d328351 * Urgh.
discard ef281b93c2 * Fix the safety check.
discard a14d491f09 * Oops.
discard 6e5ec1029a * Get rid of `build-users'. We'll just take all the
members of `build-users-group'. This makes configuration easier: you can
just add users in /etc/group.
discard 751f6d2157 * nix-setuid-helper: allow running programs under a
different uid.
discard 9f0efa6611 * Start of the setuid helper (the program that performs the
operations that have to be done as root: running builders under different
uids, changing ownership of build results, and deleting paths in the store
with the wrong ownership).
discard 2b558843a2 * Be less chatty.
discard 44cad9630f * Urgh. Do setgid() before setuid(), because the semantics
of setgid() changes completely depending on whether you're root...
discard 6f0d050324 * Tricky: child processes should not send data to the
client since that might mess up the protocol. And besides, the socket file
descriptor is probably closed.
discard 4c1c37d0b6 * FreeBSD returns ESRCH when there are no processes to kill.
discard 8d1854c3f1 * Oops! In daemon mode, we can't run as root either if
build-users is empty.
discard 99655245ae * Use an explicit handler for SIGCHLD, since SIG_IGN
doesn't do the right thing on FreeBSD 4 (it leaves zombies).
discard 62b0497c0f * Better message.
discard c808e6252f * Ugly hack to handle spurious SIGPOLLs.
discard fd4a9db91f * Some renaming.
discard fc1c20d11b * Redundant.
discard a9c4f66cfb * Allow unprivileged users to run the garbage collector and
to do `nix-store --delete'. But unprivileged users are not allowed to
ignore liveness. * `nix-store --delete --ignore-liveness': ignore the runtime
roots as well.
discard 29cf434a35 * The determination of the root set should be made by the
privileged process, so forward the operation. * Spam the user about GC
misconfigurations (NIX-71). * findRoots: skip all roots that are unreadable -
the warnings with which we spam the user should be enough.
discard 8623256f48 * findRoots: return a map from the symlink (outside of the
store) to the store path (inside the store).
discard d27a73b1a9 * In addPermRoot, check that the root that we just
registered can be found by the garbage collector. This addresses NIX-71 and
is a particular concern in multi-user stores.
discard 74033a844f * Add indirect root registration to the protocol so that
unprivileged processes can register indirect roots. Of course, there is
still the problem that the garbage collector can only read the targets of
the indirect roots when it's running as root...
discard 0d40f6d7bb * Not every OS knows about SIGPOLL.
discard 7751160e9f * Don't redirect stderr.
discard 40c3529909 * Handle exceptions and stderr for all protocol functions.
* SIGIO -> SIGPOLL (POSIX calls it that). * Use sigaction instead of signal to
register the SIGPOLL handler. Sigaction is better defined, and a handler
registered with signal appears not to interrupt fcntl(..., F_SETLKW, ...),
which is bad.
discard 0130ef88ea * Daemon mode (`nix-worker --daemon'). Clients connect to
the server via the Unix domain socket in /nix/var/nix/daemon.socket. The
server forks a worker process per connection. * readString(): use the heap, not
the stack. * Some protocol fixes.
discard 4740baf3a6 * When NIX_REMOTE=daemon, connect to
/nix/var/nix/daemon.socket instead of forking a worker.
discard f5f0cf423f * Refactoring.
discard 052b6fb149 * Pass the verbosity level to the worker.
discard 1e16d20655 * Install the worker in bindir, not libexecdir. * Allow the
worker path to be overriden through the NIX_WORKER environment variable.
discard 9322b399f3 * Doh.
discard f4279bcde0 * Don't run setuid root when build-users is empty. * Send
startup errors to the client.
discard 35247c4c9f * Removed `build-allow-root'. * Added `build-users-group',
the group under which builds are to be performed. * Check that /nix/store has
1775 permission and is owner by the build-users-group.
discard 84d6459bd5 * Use setreuid if setresuid is not available.
discard a9f9241054 * Handle a subtle race condition: the client closing the
socket between the last worker read/write and the enabling of the signal
handler.
discard 3ed9e4ad9b * Some hardcore magic to handle asynchronous client
disconnects. The problem is that when we kill the client while the worker is
building, and the builder is not writing anything to stderr, then the worker
never notice that the socket is closed on the other side, so it just
continues indefinitely. The solution is to catch SIGIO, which is sent when
the far side of the socket closes, and simulate an normal interruption. Of
course, SIGIO is also sent every t [...]
discard 4251f94b32 * Use a Unix domain socket instead of pipes.
discard 8c76df93e6 * Better error message if the worker doesn't start.
discard 363f40022f * Pid::kill() should be interruptable.
discard 7951c3c546 * Some hackery to propagate the worker's stderr and
exceptions to the client.
discard 714fa24cfb * Run the worker in a separate session to prevent terminal
signals from interfering.
discard e25fad691a * Move addTempRoot() to the store API, and add another
function syncWithGC() to allow clients to register GC roots without needing
write access to the global roots directory or the GC lock.
discard 30bf547f4f * Doh.
discard 536595b072 * Remove most of the old setuid code. * Much simpler setuid
code for the worker in slave mode.
discard 9c9cdb06d0 * Remove SwitchToOriginalUser, we're not going to need it
anymore.
discard 626f8ee42f * Clear NIX_REMOTE in the tests.
discard 8ba5d32769 * Remove queryPathHash(). * Help for nix-worker.
discard fcd9900d74 * Replace read-only calls to addTextToStore.
discard a824d58b56 * Merge addToStore and addToStoreFixed. * addToStore now
adds unconditionally, it doesn't use readOnlyMode. Read-only operation is up
to the caller (who can call computeStorePathForPath).
discard ceb982a1be * Right name.
discard b0d8e05be1 * More operations. * addToStore() and friends: don't do a
round-trip to the worker if we're only interested in the path (i.e., in
read-only mode).
discard 0565b5f2b3 * More remote operations. * Added new operation
hasSubstitutes(), which is more efficient than querySubstitutes().size() > 0.
discard aac547a8b3 * Doh.
discard 0263279071 * More operations.
discard a711689368 * First remote operation: isValidPath().
discard 765bdfe542 * When NIX_REMOTE is set to "slave", fork off nix-worker in
slave mode. Presumably nix-worker would be setuid to the Nix store user.
The worker performs all operations on the Nix store and database, so the
caller can be completely unprivileged.
discard 40b3f64b55 * Skeleton of the privileged worker program. * Some
refactoring: put the NAR archive integer/string serialisation code in a
separate file so it can be reused by the worker protocol implementation.
discard 9adc074dc3 * Oops.
discard 9cf1948993 * Skeleton of remote store implementation.
discard 6ecb840fd1 * Put building in the store API.
discard e2ef5e07fd * Refactoring. There is now an abstract interface class
StoreAPI containing functions that operate on the Nix store. One
implementation is LocalStore, which operates on the Nix store directly. The
next step, to enable secure multi-user Nix, is to create a different
implementation RemoteStore that talks to a privileged daemon process that
uses LocalStore to perform the actual operations.
discard 5f0b9de6d8 * Benchmarking Unix domain sockets.
discard fe15f991e3 * Troubleshooting information on fixing a b0rked Berkeley
DB database.
discard 80b742dd52 * Don't spam.
discard 92417600a1 * Example script to set permissions for setuid operation.
discard 71e867c5f5 * Remove --enable-setuid, --with-nix-user and
--with-nix-group. Rather, setuid support is now always compiled in (at least
on platforms that have the setresuid system call, e.g., Linux and FreeBSD),
but it must enabled by chowning/chmodding the Nix binaries.
discard c6a97e3b74 * Doh! Path sizes need to be computed recursively of
course. (NIX-70)
discard a76efaeb3f * Dead files.
discard d941186289 * Show more progress.
discard 0541ddc7e3 * Turn off synchronisation between C and C++ I/O functions.
This gives a huge speedup in operations that read or write from standard
input/output. (So libstdc++'s I/O isn't that bad, you just have to call
std::ios::sync_with_stdio(false).) For instance, `nix-store
--register-substitutes' went from 1.4 seconds to 0.1 seconds on a certain
input. Another victory for Valgrind.
discard 471749ca7e * Grrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr...
discard 17d18b1a9c * Doh!
discard 0ddaee756e * Doh.
discard bce9ff7ece * Use the patched ATerm library.
discard 745e354b19 * Push.
discard f459a5bb3a * Remove the undocumented `noscan' feature. It's no longer
necessary now that reference scanning is sufficiently streamy.
discard e2a70b7ec0 * Magic attribute `exportReferencesGraph' that allows the
references graph to be passed to a builder. This attribute should be a list
of pairs [name1 path1 name2 path2 ...]. The references graph of each
`pathN' will be stored in a text file `nameN' in the temporary build
directory. The text files have the format used by `nix-store
--register-validity'. However, the deriver fields are left empty.
discard e40d4a5604 * Option `--reregister' in `nix-store --register-validity'.
We need this in the NixOS installer (or in the buildfarm) to ensure that the
cryptographic hash of the path contents still matches the actual contents.
discard e790404318 * Don't use the result of `uname -p' on x86_64 as it gives
wacky results on some machines. (NIX-69)
discard 983c5e3fce * Fix the locking patch for Berkeley DB 4.5.
discard 7e85a2af5f * Fix importing of derivation outputs.
discard b3f916995a * Oops, `nix-build --no-out-link' was broken.
discard 005eecfc4d * Release notes.
discard 8478cd260f * readFile: don't overflow the stack on large files.
discard 8d17265ac4 * Don't use EPSV.
discard ae6fb27f18 * `nix-store --read-log / -l PATH' shows the build log of
PATH, if available. For instance,
discard 99b0ea7c67 * Typo reported by Arie Middelkoop. * Left out close-quote
in example.
discard dd300fb48d * Some better error messages.
discard 1d694eef4c * Require Perl 5.8.0 or newer. I mean, it *is* more than
four years old...
discard 7a4497d98c * Checks for allowedReferences and some other features. *
Use nix-build in a test.
discard 17f4883bfe * Better message.
discard 9bd93f7606 * toFile: maintain the references.
discard b3d3700e11 * nix-build: check the exit status of `nix-store -r'.
discard 6a67556f71 * Special derivation attribute `allowedReferences' that
causes Nix to check that the references of the output of a derivation are in
the specified set. For instance,
discard daa8f85fcd * Backwards compatibility hack for user environments made
by Nix <= 0.10.
discard 24737f279e * Backwards compatibility with old user environment
manifests.
discard 4bd5cdb90b * Print out the offending path.
discard 58ff6939f4 * An awful backwards compatibility hack.
discard 3059df0f1e * baseNameOf: paths don't have to be absolute.
discard 822dba2210 * Maintain the references for the user environment properly.
discard dfc042a0c1 * Another test.
discard 9e30694f98 * Fix the tests wrt the AST changes, i.e., Str(s) -> Str(s,
[]), and the semantic changes.
discard be1961c9f8 * toPath: should be the identity on paths.
discard cba913c521 * dirOf: return a path if the argument is a path.
discard cf705eaf78 * toString: don't copy paths. So toString can be used to
pass non-store paths to a builder.
discard 7de5fe2fc2 * Do the path check on the normal form.
discard 46b631b6c4 * Don't generate an empty drvPath attribute in the manifest.
discard d7efd76394 * Big cleanup of the semantics of paths, strings, contexts,
string concatenation and string coercion. This was a big mess (see e.g.
NIX-67). Contexts are now folded into strings, so that they don't cause
evaluation errors when they're not expected. The semantics of paths has been
clarified (see nixexpr-ast.def). toString() and coerceToString() have been
merged.
discard 4c9aa821b9 * Fix version.
discard 142863a89d * Use Berkeley DB 4.5.
discard 37c8a664f3 * A helpful message.
discard e4af398681 * Don't crash when upgrading the Berkeley DB environment.
discard 2a535689fe * Reduce the maximum archive size for patch generation to
100 MB to prevent trashing on nix.cs.uu.nl.
discard 7d4567f2cc * Removed URIs from the evaluator (NIX-66). They are now
just another kind of notation for strings.
discard b4e012ab4d * Merge 0.10.1 release notes.
discard 0c4c5c2020 * Quick hack to fix NIX-67: evaluation result differing if
the Nix expression resides in the store.
discard bd0c40e1e9 * `import': unwrap the context. Necessary to make `import
(x + y)' work, where x is a store path.
discard 7bada48b36 * Bumped the version number to 0.11.
discard e1cc84259c * Too lazy to document nix-push --copy.
discard b3fc016061 * Translate Unicode quote characters to ASCII equivalents
when generating NEWS.txt.
discard 3815d2d463 * Typos etc. * Set the release date.
discard beee18de88 * Document nix-store --delete.
discard eff573f563 * Work around a weird bug in the manpage generation.
discard 9e08f5efe1 * Documented nix-store --dump / --restore.
discard 8791ffbc88 * Documented new nix-env options.
discard 99ef620c8c * Documented nix-instantiate --xml, --strict. * Added an
example to the nix-build section.
discard 8396b59286 * Documented --attr / -A.
discard 5d769de8a3 * Document --arg.
discard 6f2bfd92b6 * Manual.
discard d98f750fd8 * tmpnam() -> File::Temp::tempdir().
discard 34427a7b43 * Weird.
discard a3fd53b9eb * Style tweak.
discard 59ef0aaf3f * Strings.
discard 407c9fd520 * Explanation of toXML example.
discard 0ef3bd3c37 * Use GIF callouts instead of PNG since the GIFs have
transparency.
discard 4a7ece698b
discard bd4f1b4bb8 * Style tweaks.
discard 96fa456a0a * An example of using toXML to pass structured information
to a builder and generate a Jetty configuration file with XSLT.
discard 5fd44654db * toXML: propagate the context to allow derivations to be
used in the argument.
discard 3837fb233c * Document the built-in functions.
discard d20c3011a0 * toFile: added an additional argument to specify the store
path suffix, e.g., `builtins.toFile "builder.sh" "..."'. * toFile: handle
references to other files correctly.
discard 84e6c43e85 * Documented nix-hash.
discard cfe35ca0e0 * Manual.
discard 853252ac66 * Document the new let.
discard ac19b333b3 * Finally, a real "let" syntax: `let x = ...; ... z = ...;
in ...'.
discard 7581cfdee4 * Hack for Bison 2.3 compatability.
discard f316b6c1a9 * Manual updates (especially how nix-build makes testing
packages much easier; no longer need a helper expression).
discard 91a01e6fcf * Manual.
discard 88d422567e * One-click installs.
discard 0212feeed6 * Document nix-install-package and the nixpkg file format.
discard 070e07ed5a * Manual.
discard 30c7db85d8 * Manual updates, some style improvements.
discard e2eed05224 * Manual updates. * Documented nix-{pack,unpack}-closure.
discard 4ad6fb7ea3 * Fix setuid builds.
discard 015ac7c7da * Release notes.
discard a9a6356ffc * Release notes.
discard e47d42536f * Release notes.
discard 5ca45d085e * Use "propagated-user-env-packages", not
"propagated-build-inputs" for packages that should be propagated to the user
environment.
discard 02f2335712 * Propagated packages now have lower priority; they are
symlinked *after* the packages that have been explicitly installed, and
collisions are ignored.
discard 3632019b73 * Quick hack to let nix-install-package set the package
name properly (e.g., "java-front-0.9pre15899" instead of "java-front";
particularly important when doing upgrades later on).
discard d43565c3e8 * In `nix-channel --update', skip manifests that assume a
Nix store at a different location than the user's. This makes channels
usable as a source deployment mechanism for people who install Nix under
non-standard prefixes. (NIX-57)
discard 68ae953d8a * Clean up calls to system().
discard 76c9710091 * Use builtins.toPath.
discard e347033f71 * The result of a concatenation with a derivation on the
left-hand side should be a path, I guess. * Handle paths that are in the
store but not direct children of the store directory. * Ugh, hack to prevent
double context wrapping.
discard 0e705391db * Primop `toPath' to convert a string to a path. * Primop
`pathExists' to check for path existence.
discard e47e0c2dbe * Builtin function `getEnv' for getting environment
variables.
discard df8873e14a * lessThan primitive for integer comparison.
discard 2ab4bc44c7 * Builtin function `add' to add integers. * Put common test
functions in tests/lang/lib.nix.
discard d315210612 * Added a builtin function `isList' to test whether a value
is a list. With this primitive, a list-flattening function can be implemented
(NIX-55, example is in tests/lang/eval-okay-flatten.nix).
discard c02a44183f * Builtin functions `head' and `tail' to return the head
and tail of list. Useful for lots of things, such as implementing a fold
function (see NIX-30, example is in tests/lang/eval-okay-list.nix).
discard 8a1ab709a4 * New builtin functions builtins.{hasAttr, getAttr} to
check for attribute existence and to return an attribute from an attribute
set, respectively. Example: `hasAttr "foo" {foo = 1;}'. They differ from
the `?' and `.' operators in that the attribute name is an arbitrary
expression. (NIX-61)
discard 666babbbfa * Use a bounded amount of memory in scanForReferences() by
not reading regular files into memory all at once.
discard 385c6f8737 * Supply the 64-bit ATerm patch, but don't apply it (since
that requires rerunning Autoconf/Automake). Interested users should do
that themselves.
discard d22d7565f3 * Don't allocate the buffer twice.
discard b43aeadbc9 * Don't allocate more than SIZE_MAX bytes.
discard 4cab35d1a6 * Build with -D_FILE_OFFSET_BITS=64 to support files >=
2^31 bytes (NIX-22).
discard 25df501704 * GC options in nix-store --help (NIX-15).
discard 0bd5eb71a0 * `nix-install-package --url': install from a URL (NIX-12).
* `nix-install-package --help' (NIX-9). * `nix-install-package
--non-interactive': don't prompt or pause. * Tests for nix-install-package. *
Security fixes: filter the values obtained from the nixpkg.
discard 4e91d8621f * Fix comment.
discard ee5040421f * Try konsole and gnome-terminal in addition to xterm.
discard 1bdc152931 * Shut up a warning.
discard 1b804f88e4 * Absolute path to rm (NIX-51). * Don't hardcore /nix/bin
and /nix/store.
discard 0623359fbc * Print a better error message for wrong hashes (NIX-49).
discard 22d13d6ec2 * Check for patch (NIX-59).
discard 947e645789 * Hide warnings about a missing "lsof" (NIX-54).
discard a060adf165 * Use paths, not strings, when calling the function that
generates NARs. Fixes the impurity of nix-push (NIX-21). * Better help.
discard 7dd342e482 * Doh.
discard ee6cf99660 * Doh! Of course we have to take execute permission into
account. * Restore the mtime on modified directories.
discard 6dbed1bf38 * `optimise-store.pl' reduces disk space consumption by
hard-linking all identitical files in the Nix store to each other.
(Previously it only computed the size that would be saved by doing so.)
discard 07cec27848 * Cleanups.
discard 9488ae7357 * `show-duplication.pl', a small utility that shows the
amount of package duplication present in (e.g.) a profile. It shows the
number of instances of each package in a closure, along with the size in
bytes of each instance as well as the "waste" (the difference between the sum
of the sizes of all instances and the average size).
discard e0afaf1857 * Wow, that bug has been there since r764.
discard 86cbd93ec1 * nix-env --switch-generation / --list-generations /
--delete-generations: lock the profile to prevent (extremely unlikely) race
conditions.
discard 5c38c863bd * Fix a huge gaping hole in nix-env w.r.t. the garbage
collector. Nix-env failed to call addPermRoot(), which is necessary to safely
add a new root. So if nix-env started after and finished before the
garbage collector, the user environment (plus all other new stuff) it built
might be garbage collected, leading to a dangling symlink chain in
~/.nix-profile...
discard f00bc4c94c * "Too many links" error.
discard 01d169f817 * Support `++'. * More follow restrictions on layout.
discard feb63da431 * Remove debug message.
discard a04a65d7a5 * Release notes.
discard 2e210b2387 * Convenience option `nix-collect-garbage -d'
(--delete-old): removes old generations of *all* profiles in
/nix/var/nix/profiles, then runs the garbage collector. Quick way to get rid
of all old stuff. Of course, one cannot roll back to earlier points in time
after this.
discard 89ac8db74f * Package the include directory.
discard a89a201598 * Missing #include.
discard fc195519b5 * Sone missing #includes.
discard bafc1690fc * Move setuid stuff to libutil. * Install libexpr header
files.
discard e5a6c09b12 * Install header files in /nix/include/nix.
discard 4be5443882 * Remove unnecessary inclusions of aterm2.h.
discard 2382a729e0 * Don't need extern "C".
discard e3ce954582 * Compile the lexer as C++ code. Remove all the redundant
C/C++ marshalling code.
discard 75068e7d75 * Use a proper namespace. * Optimise header file usage a
bit. * Compile the parser as C++.
discard aab8812732 * Store the Nix libraries in ${libdir}/nix instead of
${libdir}.
discard 7974aae81c * New primop: builtins.toFile, which writes a string into
the store and returns its path. This can be used to (for instance) write
builders inside a Nix expression, e.g.,
discard de90fdf908 * Allow "$" in strings as long as they are not followed by
"{". (Too bad flex doesn't have lexical restrictions, the current solution
isn't quite right...)
discard c9586b6c3f * Fix race condition in the test.
discard c25f688e23 * Doh! Doh! Doh!
discard 354d58b3d7 * Better error checking.
discard f93f7b75be * Okay, that's a bit harder than expected.
discard dce1afdc67 * TDD: == should do a deep equality test, i.e., it should
strictly evaluate its arguments.
discard 3151bdea55 * Uninitialised variable.
discard 547b119f25 * Support singleton values and nested lists again in
`args', but print a warning.
discard 2132d9ddeb * Fix the ~ operator.
discard 1f6616dabf * Backwards compatibility test for ~.
discard 1ec9f55741 * In toString, deal with nested lists properly (i.e.,
flatten them).
discard 1fca76870b * Removed processBinding, instead we now apply toString to
all derivation attributes to flatten them into strings. This is possible
since string can nowadays be wrapped in contexts that describe the
derivations/sources referenced by the evaluation of the string.
discard 8a6080eb14 * Refactoring.
discard 4b66cebe7b * Remove those storePath attribute sets, we don't need 'em.
discard e5678b3435 * Map "ppc" to "powerpc" so that Linux on PowerPC will be
reported as "powerpc-linux".
discard e64c4f5742 * Doh! (NIX-58)
discard bf738f0070 * Honour DESTDIR so that bzip2/bunzip2 get installed in the
right location when building RPMs (fixes NIX-58).
discard 3e8dccf6ab * Escape newlines in XML attributes to prevent them from
being normalised away.
discard 215ec2ddc6 * New primop __toXML (or builtins.toXML) to convert an
expression to an XML representation stored in a string. This should be
useful to pass structured information to builders.
discard f793caf936 * Refactoring.
discard da25d80152 * Strict evaluation and XML printing of lists.
discard 943ab38a0d * Refactoring: move strictEval to libexpr.
discard f41297fdce * Allow --arg in nix-env as well, example:
discard 9638f3f393 * Pass the autoArgs to findAlongAttrPath so that
"nix-instantiate foo.nix -A attr --arg name value" will work if (name, value)
is needed in the evaluation leading up to "attr".
discard b19cebc513 * Quotes.
discard 38f18aa6d4 * New primop: abort "error message".
discard 4a053bfdfd * A new primop `builtins', which returns an attribute set
containing all the primops. This allows Nix expressions to test for new
primops and take appropriate action if they're not available. For instance,
rather than calling a primop `foo' directly, they could say `if builtins ?
foo then builtins.foo ... else ...'.
discard 68515b5a96 * Release notes.
discard 561a07f51d * Revert unintentional commit.
discard 93d9797eda * Urgh (see NIX-56).
discard 1a9a1f2768 * Convert to DocBook 5. * Use Jing for RelaxNG validation,
xmllint seems buggy.
discard cc0505f033 * Distribute *.exp.xml.
discard 4874fd2d9a * Test for `nix-instantiate --eval-only --xml'.
discard 24e234a2fa * Print attributes in sorted order, rather than the
arbitrary order produced by ATermMap. Necessary for testing. * `--strict'
should also work on stdin.
discard 22ba63df16 * More XML output. `--strict' to strictly evaluate
attribute sets and so on. * Removed `--print-args', it's subsumed by
`--eval-only --xml'.
discard 18e4ac0fc6 * `nix-instantiate --{eval|parse}-only --xml': print an XML
representation instead of an ATerm. * Indent XML output.
discard fe101fa785 * Meh.
discard 2670642733 * Handle carriage returns. Fixes NIX-53.
discard bfe19b3c37 * A test for NIX-53.
discard 3e5b68068b On cygwin, disable the check that the output is not group
or world writable. File permissions on Cygwin are rather complex, and in this
case this check introduced a problem with build jobs invoke from outside of
Cygwin (MSYS). It seemed almost impossible to fix the permissions of the
directory, so for now this safety check is disabled on Cygwin.
discard 7455fd8835 * Put the value in an attribute.
discard 4250b641d8 * `nix-store --gc --print-dead': print the total size of
the store objects that would be freed.
discard 92f7dfa5b7 * Don't assume that paths returned by the runtime root
finder are valid.
discard d19b6521fc * New configuration setting `build-max-jobs' which sets the
default for the `-j' flag (i.e., the maximum number of jobs to execute in
parallel). Useful on multi-processor machines.
discard 3e239a37ff * file:/ -> file://
discard f1aa71a92f * Fix the help message wrt --attr.
discard a18d02e0b0 * Print a warning that the subpath operator (~) is
deprecated.
discard c0bfcbdd45 rework the --target flag. If this flag is used, a URI
should be given. Default values are not changed.
discard a0607be7f4 * Workaround for a bug (?) in GCC 2.95.
discard 5a6b45e252 * In nar.nix, path -> storePath, otherwise we get a
collision between environment variable names on Cygwin (where they are case
insensitive).
discard a61129c48c add coreutils to the default PATH for this scripts, so we
know for sure we have tools like rm, mkdir, and so on
discard f1947cce93 prevent doing recursive chroots, by unsetting NIX_ROOT in
the scripts.
discard 1854f84e83 * Fix a few warnings.
discard dcff8cdb76 * Weird issue on Cygwin with the include file order.
discard f4a502a09a * Use old-school pipe opens; the new style is Perl >= 5.8.0.
discard 981eff065b * Remove the dependency on `date', use strftime instead.
discard 339e6f0e1d * `nix-env -q --xml': show query result in XML format for
easier automated processing.
discard 0e267e2625 * `nix-instantiate --print-args': produce XML output so
that the result can be used more easily by scripts.
discard 4750f6c5ed * Simple class for writing XML files.
discard fcb784051f urgh...for some weird reason this one-liner was not in svn.
PEBKAC!
discard a29b64a231 * Better error checking.
discard 4fde308ec0 add a flag --target, so we can override the URL in the
MANIFEST file. This is only for local copies (so file:///)
discard 601a8eab79 * Ugh. Darwin's chmod insists that flags come before the
mode specification.
discard 6ac237e242 * Show some progress.
discard 4661282fde * `nix-instantiate ... --arg NAME VALUE': allow arguments
to be passed to functions from the command line. * nix-build: started
removing backticks.
discard c11839d7b2 * `nix-instantiate --print-args': print out the valid
values for functions arguments that have a domain.
discard ca2238cf81 * Refactoring: get the selection path stuff out of
getDerivations() and put it into a separate function findAlongAttrPath().
discard 2317d8f671 * `nix-instantiate --print-args' prints out the arguments
of a top-level function.
discard 0e6dc72a7a * Applied rbroek's patch from the branch at
https://svn.cs.uu.nl:12443/repos/trace/buildfarm-control/trunk/ext/nix/, with
some modifications. This allows `nix-env -qa' to show the attribute path
that can be used to unambiguously install a package using `nix-env -i -A'.
Example:
discard b11aeb2c4b * Doh.
discard 5744dd5480 * Support the --attr / -A flag in nix-env as well. So now
we can do, e.g.,
discard 7a3a5d1608 * When there is a domain check, we have to evaluate the
argument. Can't be lazy!
discard f4c5531d92 * New language feature: domain checks, which check whether
a function argument has a valid value, i.e., is in a certain domain. E.g.,
discard 88acffa20a * `touch' might not be in $PATH.
discard b545c669a0 * Tests for domain checks.
discard 57751fdb55 * Refactoring to support domain checks.
discard 9c3099d328 * Purify `make check'.
discard 7adaa6d446 * Test for runtime root finding.
discard dcded7da47 * Don't try to do DNS lookups.
discard a4273156c4 * Use $(libexecdir) to find find-runtime-roots.pl.
discard 410760c5ab * Doh.
discard ee2cf45d76 * Use debug().
discard eca30e12e1 * svn:ignore.
discard c15f544356 * Call find-runtime-roots.pl from the garbage collector to
prevent running applications etc. from being garbage collected.
discard ebcccbd358 * Added a tool to find additional roots for the garbage
collector, such as open files, current directories, mmaped files, etc. This
is inherently unportable, but it's easy to adapt this script to other
platforms. Currently we call `lsof' and try to read various bits in
/proc/NNN.
discard 88e54153dc * Add a precise test for hashDerivatioModulo.
discard 4f3725b167 * Better error messages (especially wrt types).
discard e10b830251 * Doh! Of couse we cannot memoize across scopes.
discard 2b4b0658fa * This expression has an undefined variable which isn't
detected, so evaluation fails:
discard d51aede4af * Allow the canonical system name to be specified at
runtime in the Nix config file.
discard a945fb7905 * `nix-env --upgrade --eq': only upgrade if the old version
is equal to the new version. This is actually useful.
discard f4a3a280db * Apply the ATerm aliasing patch so that Nix works
correctly with gcc 4.1.x.
discard dbf6d7e783 * Concurrent GC on Cygwin.
discard cc51f9c539 * Oops.
discard 5bb3444032 * _exit() doesn't seem to work right on Cygwin.
discard b35735d8b2 * On Windows we cannot delete open (lock) files, so we
delete lock files after we've closed them. Since this only succeeds if the
lock is no longer opened by any process, the token trick used on Unix is
not necessary.
discard 0e783e5579 * Write messages to stderr in a slightly more atomic way.
Useful when there are several parallel processes.
discard d7f40357e3 * Skip this test on Cygwin, too slow (and doesn't test
anything Cygwin-specific).
discard c937b73622 * Show when we're blocked waiting for a lock.
discard 588cb0eade * In `nix-env -i|-u|-e', lock the profile to prevent races
between concurrent nix-env operations on the same profile. Fixes NIX-7.
discard 49de87132f * Removed.
discard 48e4a3231b
discard b454977909 * Fix for a problem with BSD's group ownership semantics
when the user is not in the "wheel" group.
discard 3a68622dda * Oops.
discard 370af25eff * Fix for a locking bug in Berkeley DB on Cygwin.
discard 23960e92df * Minor cleanup.
discard 2d456fc35a * On Cygwin, set the system type to i686-cygwin, and
disable dynamic linking.
discard bb84984f3f * svn:ignore.
discard 50fe85f016 * For fixed-output derivations, pass the environment
variables listed in the attribute variable `impureEnvVars' from the caller to
the builder.
discard 04cf72287b * This may be useful in the future.
discard 1390ce4142 * Not all platforms have sys/select.h.
discard b1c63dc362 * Don't use badTerm, it gives awful error messages.
discard c7d9397fc9 * Handle $PATHs with spaces.
discard 58b4198ed8 * Disable the concurrent garbage collector on Cygwin for
now.
discard d764409d97 * Some Cygwin fixes.
discard b5988004d6 * Support for srcdir != builddir (NIX-41).
discard 9d72bf8835 * 64-bit compatibility fixes (for problems revealed by
building on an Athlon 64 running 64-bit SUSE). A patched ATerm library is
required to run Nix succesfully.
discard e3c07782d1 * Remove old manifests in `nix-channel --update'.
discard c54287eafe * GCC 2.95 compatibility.
discard 8b5aa91aa7
discard 5cabd47394 * Allow function argument default values to refer to other
arguments of the function. Implements NIX-45.
discard 310e605995 * Show evaluation stats when NIX_SHOW_STATS=1.
discard 0832956089 * Use the new ATermMap.
discard 9840368cad * Iterators.
discard 6980544467 * Keep some statistics about memory allocation.
discard b803fb95cb * Maintain the count field properly.
discard db0d865ec4 * New ATermMap, seems more-or-less finished.
discard 052cefe1bd * Started hacking on a ATermTable replacement, since
ATermTable uses gigantic amounts of memory --- 65536 bytes per table at least
--- which makes it unsuitable for representing short-lived substitution
tables and attribute sets.
discard d300b4383d * Optimise null-ary term builders. Also declare all term
builder functions as pure, which might improve performance a bit.
discard 68174bdc7d * Use a linked list of substitutions. This reduces the
amount of copying.
discard c791e94aee * Removed a bunch of ATreverses.
discard b52e711910 * Huge reduction in memory use (2/3 or so on large nix-env
-qas operations): share ATermMaps between DrvInfos.
discard 11ae2d1e7a * Memory reduction: replaced expensive calls to
ATmakeApplList by ATmakeApplArray, and got rid of ATreverse in substitute().
discard dc719e6ba5 * Some preliminaries towards NIX-45.
discard ae55e79541 * More tests.
discard dca43ef795 * Tests for NIX-45.
discard 7276e194ee * Disallow unescaped $ in string literals.
discard 0064599a27 * String interpolation. Expressions like
discard 6cecad2be0 * Allow string concatenations involving derivations, e.g.,
discard cce31b739c * svn:ignore
discard 6fca1b82ae * Change this to LGPL to keep the government happy.
discard de8f2d061c * Install only the header file and libraries from Berkeley
DB.
discard e18c93169c * Create libexec.
discard 0748331b70 * Typo.
discard 03162f8f47 * Unless --with-bzip2 is specified, use a copy of bzip2 in
the externals directory. This is in particular useful because though most
systems have bzip2/bunzip2, they don't always have libbz2, which we need for
bsdiff/bspatch.
discard ef2d4a2da9 * Print a more useful stack trace when an error occurs deep
in the derivation dependency graph.
discard b69e469328 * In `nix-env', look for derivations inside attribute sets
that have the `recurseForDerivations' attribute set to `true'.
discard 49ce8b57dd * Hm.
discard 20675feeab * Update copyright.
discard 05bb644890 * Allow the resulting symlink of nix-build to be named,
e.g.,
discard fdea084c36 * Allow `make check' to work in directories that have
symlink components.
discard 37d1b1cafd * `nix-env -qa --description' shows human-readable
descriptions of packages (provided that they have a `meta.description'
attribute). E.g.,
discard a33fb2d287 * Oops.
discard 2b3b6c9b34 * In theory, this should reduce the number of ATermMap
re-allocations.
discard 4ada6db1fc * `nix-env -q' now accepts arguments that allow specific
derivations to be queried, e.g., `nix-env -qa firefox'. This does require
the argument '*' to be passed if one wants information about all
derivations, so the old `nix-env -qa' now is `nix-env -qa "*"'.
discard 9811815429 * Write messages to stderr, not stdout.
discard 18c321308d * Ugh, printHash() was very inefficient because it used
ostringstreams. Around 11% of execution time was spent here (now it's 0.5%).
discard b90c00e63f * Regression: semantics of the result of getDerivation()
changed.
discard 922697c8b2 * Big speedup (factor > 2.5) in all nix-env operations that
do actual instantiation, e.g. "nix-env -i" and "nix-env -qas" (but not
"nix-env -qa"). It turns out that many redundant calls to addToStore(path)
were made, which reads and hashes the entire path. For instance, the bash
bootstrap binary in Nixpkgs would be read and hashed many times. As a result
nix-env would spend around 92% of its time in the function sha256_block
(according to callgrind). So [...]
discard 6dca5c9099 * When obtaining derivations from Nix expressions, ignore
all expressions that cause an assertion failure (like `assert system ==
"i686-linux"'). This allows all-packages.nix in Nixpkgs to be used on all
platforms, even if some Nix expressions don't work on all platforms.
discard 9088dee9e2 * Some refactoring of the exception handling code so that
we can catch Nix expression assertion failures.
discard fa72ae1e9c * GCC 4.1 compatibility.
discard c8bfb11b34 * `nix-env (-i|-u) --dry-run' now shows exactly which
missing paths will be built or substituted.
discard 7ba1fd2029 * Regularise help text a bit.
discard 120f00c04f * More online help.
discard 2d54312f87 * Rewrote nix-build in Perl, since sh is just too limited
(turns out that arrays are a bash extension, so it didn't work on FreeBSD).
Also fixes NIX-8 (readlink(1) dependency).
discard 78d84f5631 * Tests for fixed-output derivations (and attribute
selection, incidentally).
discard 2167bf6b72 * Tests to prevent a repeat of the parseHash32 debacle.
discard 70dee0f8ca * Flags `--to-base32' and `--to-base16' to convert between
hex and base-32 hashes.
discard e136532800 * Ouch, parseHash32 was completely broken. All digits >= 4
were parsed as 4.
discard 74166f2f44 * db.hh shouldn't depend on the Berkeley DB headers.
discard 1bdceb421f * Doh!
discard d822bf32e4 * Close the database before the destructor runs.
discard fa95f4be3f * More test coverage.
discard 80b5c71684 * Doh!
discard e3daee919d * Test `nix-store -q --binding'.
discard ea9c35d3cc * Test `nix-store --add' and `nix-store -q --hash'.
discard 30d051ff14 * New suppressions.
discard b6780b9e10 * Uninitialised variable. Fixes the --delete test.
discard b602d2dfdf * Wrong delete. Thanks valgrind.
discard b90787290d * TDD! Woohoo!
discard 089c41a0c2 * Oops!
discard ca0b23c831 * Test the nix-store --gc subflags.
discard 5cb6c42088 * Test nix-build. This also tests indirect roots.
discard 8cd646b6af * Clear the substitutes prior to running the test.
discard e48bd8c8b5 * Add a test for nix-log2xml.
discard 458820df6c * Generate valid HTML.
discard 6b8bb8d74a * Remove dead code.
discard 84c4631221 * Simplification.
discard a4c63c6e8e * Make it easy to run individual tests from the command
line.
discard 85793fa438 * Remove debug statement.
discard e2f16b9cae * A script to remove from a manifest those patches whose
base or target no longer applies to any available release. This is a
partial fix for NIX-34 (when producing linear patch sequences between
releases, the number of patches grows without bound).
discard 5168f9bb00 * Canonicalise manifests a bit by sorting them.
discard 9d3bee50ad * Aha!
discard 17f39049cf * WTF?
discard 43fa1c20e7 * Separate the cache reading code.
discard 928cce5922 * Directory for nix.cs.uu.nl manifest / cache maintenance
scripts.
discard fcec32a2c5 * Use right directories for NAR files and patches. * Print
errors to STDERR.
discard f0d6318dd1 * More tests.
discard ddb78dfc3d * Check whether "nix-store -q --graph" generates a valid
dot graph. * Test "nix-store -q --tree" as well.
discard 46f0cb0869 * In "nix-env -i", print a warning if there are multiple
derivations with the same name *and* version number, and pick the first one
(this means that the order in which channels appear in ~/.nix-channels
matters). E.g.:
discard 7a3e715980 * Fix for NIX-31: "nix-env -i foo" installing all
derivations named foo. Now it will only install the one with the highest
version number.
discard 58fc420b36 * And another test.
discard 4ddd5ff39c * Regression test for NIX-31.
discard 889ef564fd * Fix the infamous NIX-17: nix-env -i prints misleading
messages ("installing `foo'" followed by "uninstalling `foo'").
discard 345a95afe9 * Allow the size of the GC reserved file to be specified in
nix.conf through the new `gc-reserved-space' option.
discard 651ab439cf * A simple hack to fix NIX-18: the garbage collector cannot
run when the disk is full (because to delete something from the Nix store, we
need a Berkeley DB transaction, which takes up disk space). Under normal
operation, we make sure that there exists a file /nix/var/nix/db/reserved of
1 MB. When running the garbage collector, we delete that file before we open
the Berkeley DB environment.
discard d6f586d0ea * Optional switch "--with-openssl=<PATH>" to use OpenSSL's
implementations of MD5, SHA-1 and SHA-256. The main benefit is that we get
assembler-optimised implementations of MD5 and SHA-1 (though not SHA-256 (at
least on x86), unfortunately). OpenSSL's SHA-1 implementation on Intel is
twice as fast as ours.
discard e8475bbd5b * Use a union.
discard 2d2e28d02c * Override YYMALLOC and YYFREE so that we can call
AT[un]protectMemory on the Bison parse stack. Otherwise, a garbage collect
during parsing could lead to a crash.
discard 0ca0a4da9f * Valgrind suppressions for the ATerm library. The ATerm
library uses a conservative garbage collector that scans the stack and parts
of the heap for pointers to ATerms. This scan can touch uninitialised
memory, which is harmless. Use:
discard da0a6b6499 * Doh.
discard 982399bb14 * Enable the --attr in nix-build as well (and add -A as an
alias). Example:
discard c6120352b3 * In nix-instantiate, allow us to specify a "path" to the
derivation(s) we're interested, e.g.,
discard b505f9eaf5 * Document that nix-instantiate can read from stdin.
discard 9e51abc7dc * Make --parse-only work when *not* reading from stdin.
discard f848a45739 * Cleanup: use the code shared with nix-env.
discard 4eb637c799 * When querying all derivations, filter out syntactically
equal derivations.
discard 8688e83194 * When evaluating, automatically call functions with
default arguments.
discard f8aadf14c3 * Test-driven development, woohoo! nix-env should work on
functions, provided that all arguments have defaults.
discard 287d0ef41c * Oops, fix breakage.
discard e771e59178 * Tests for nix-env, finally!
discard 39f50db731 * Refactoring: move derivation evaluation to libexpr.
discard 4db4b61380 * Don't install nix.conf (so it won't be overriden when you
upgrade an RPM).
discard 81de538e46 * Use setsid instead of setpgrp in child processes. This
not only creates a new process group but also a new session. New sessions
have no controlling tty, so child processes like ssh cannot open /dev/tty
(which is bad).
discard b90daaaf6c * When killing a build hook, kill the entire process group
(as intended). This ensures that any ssh child processes to remote
machines are also killed, and thus the Nix process on the remote machine also
exits. Without this, the remote Nix process will continue until it exists or
until its stdout buffer gets full and it locks up. (Partially fixes NIX-35.)
discard 6e2eaaec96 * Print a better error message when writing the patched
file (e.g., "No space left on device" instead of "Success"). Reported by
Karina Olmos.
discard d9d6ff9f8e * Doh.
discard 8291f6d968 * bsdiff updated to 4.3. This makes Nix depend on libbz2.
discard 9e4ffc43a2 * The "S" bit should be based on the output path, not the
derivation path.
discard 3eba483692 * Use Berkeley DB 4.4.20.
discard 151f10dbc7 * Add @bindir@.
discard 83424eb71b * Don't force a build of derivations.
discard db2275cb99 * Oops, the "I" bit in "nix-env -qas" was broken. Reported
by Nicolae Vintila.
discard 1029716a8a * Don't show cycles, they're not very useful.
discard e4d4969ae9 * New tools nix-pack-closure and nix-unpack-closure. These
provide a useful way to transfer the closure of a store path to another
machine.
discard 5b527901ae * dirOf: return "/", not "", for paths in the root
directory. Fixes NIX-26.
discard 04be39734f * Resolve all symlink components in the location of the
temporary build directory (TMPDIR, i.e., /tmp). Fixes NIX-26.
discard 0f8d3c871b * More GCC 2.95 compatibility.
discard 52d20ef124 * Hack around a GCC 2.95 bug.
discard 1440419b45 * GCC 2.95 compatibility.
discard 1d2460ee5d * Documentation fixes.
discard f96d2dea26 * Added a flag `--ignore-liveness' to `nix-store --delete'.
It deletes a path even if it is reachable from a root. However, it won't
delete a path that still has referrers (since that would violate store
invariants).
discard 4b9e7f59ca * Revived the old "nix-store --delete" operation that
deletes the specified paths from the Nix store. However, this operation is
safe: it refuses to delete anything that the garbage collector wouldn't
delete.
discard 3c5619c7e4 * Begin release notes.
discard 530b27df1e * `nix-store --gc' prints out the number of bytes freed on
stdout (even when it is interrupted by a signal).
discard 5144f750c4 * Typo.
discard b1eed6b586 * Split the database upgrade into multiple transactions to
prevent Berkeley DB from running out of locks.
discard 11a8dc76d6 * Doh!
discard ab5c6bb3a3 * Change `referer' to `referrer' throughout. In
particular, the nix-store query options `--referer' and `--referer-closure'
have been changed to `--referrer' and `--referrer-closure' (but the old
ones are still accepted for compatibility).
discard d87549c1c7 * Automatically delete the old referers table.
discard 8463f27d8c * Fix NIX-23: quadratic complexity in maintaining the
referers mapping. The referer table is replaced by a referrer table (note
spelling fix) that stores each referrer separately. That is, instead of
having
discard 18bbcb1214 * Add a test to demonstrate the quadratic complexity of
referrer (de)registration, in particular garbage collection (NIX-23).
discard a33b561a6b * Use Berkeley DB 4.4's process registry feature to recover
from crashed Nix instances, and toss out our own recovery code.
discard eb268a7f95 * Apply the patch.
discard dfffd92568 * A patch to make the DB_REGISTER feature work when debug
info is not on.
discard 760264bffe * Require Berkeley DB 4.4. * Checkpoint after an upgrade.
discard dc528128cc * FreeBSD compatibility fix.
discard 44409f52c1 * "Fix" the test, since we cannot feasibly support the
intended semantics.
discard b7f008fc35 * Did something useful while waiting at IAD: reference
scanning is now much faster.
discard 9311ab76a5 * Install signal handlers for SIGTERM and SIGHUP. This
ensures that Nix is properly shut down when it receives those signals. In
particular this ensures that killing the garbage collector doesn't cause a
subsequent database recovery.
discard 5bf939885a * Memoise checkVarDefs since internally produced terms
(i.e., not the result of parsing) can have very heavy sharing, causing
exponential complexity if we naively recurse into them. ATerms are graphs,
not trees!
discard 1f285cf556 * Scoping bug in `with'.
discard 221c79013f * Turn off build hooks in nix-push because of an impurity
(NIX-21).
discard f0856fd905 * Repair the referers table from the references table.
discard 92d599c6a7 * Prevent uids from being used for more than one build
simultaneously. We do this using exclusive locks on uid files in
/nix/var/nix/userpool, e.g., /nix/var/nix/userpool/123 for uid 123.
discard e932c40f8e * Oops. Fixed-output derivations were broken.
discard 1b43fbd8e4 * Oops, that should be Berkeley DB 4.3. Reported by Gerco
Ballintijn.
discard 13b089c890 * Also kill all processes of the build user after the
build. This is critical to prevent certain kinds of 0wnage.
discard f1b3a418fa * Before starting a build under some uid, kill all current
processes running under that uid.
discard 439823ae80 * Check that the build result is owned by the build user,
and that nobody else has write permission to the build result. This catches
most hack attempts.
discard 7ef574e5d0 * Don't use FIFOs to make Nix create the output path on
behalf of the builder. Instead, require that the Nix store has sticky
permission (S_ISVTX); everyone can created files in the Nix store, but they
cannot delete, rename or modify files created by others.
discard 32282abcea * Beginning of secure multi-user Nix stores. If Nix is
started as root (or setuid root), then builds will be performed under one of
the users listed in the `build-users' configuration variables. This is to
make it impossible to influence build results externally, allowing locally
built derivations to be shared safely between users (see ASE-2005 paper).
discard 15ff877438 add @coreutils@ to correctly use coreutils to create a
profile. This is needed for NixOS, where we might not know our PATH in advance.
discard 0f133ae8d2 * Use ATerm 2.4.2.
discard dfbf520ec2 * Swap the system and version comparion columns.
discard 62412c5874 * Document `nix-env --compare-versions'.
discard cec2be64f3 * Only colorise if we are attached to a terminal.
discard b87b9c0d1f * New query option: `--compare-versions' or `-c' to compare
installed versions to available versions, or vice versa.
discard 0e0041b2b6 * Update NEWS in the root directory properly.
discard 0e38578433 * log2xml -> nix-log2xml.
discard d47e03fccd * Install the XSL stylesheets for log to html conversion.
discard ed4de220d2 * Use "source" instead of ".".
discard ebfe57166d * Lets not go wild with templates.
discard 4578a490ce * Parse multi-valued options.
discard fbedf6056e * Merge release notes.
discard 607a2f01e6 * Remove other uses of IPC::Open2.
discard 95304172a5 * Don't use IPC::Open2, it has a subtle race bug on Mac OS
X 10.4. If the parent runs before the child, it closes some pipe file
descriptors which causes the child to fail due to a bad file descriptor. So
we just use the normal open() function instead.
discard a864aca44c * This doesn't parse for now.
discard 8d06842a76 * Configuration options for trusted local builds.
discard 89cd0f57b1 * Use -all_load on Mac OS X.
discard ef9e2c8e73 * Typo.
discard 25d217684b * Use a statically linked ATerm library and build it at
-O1, since higher optimisation levels cause statically linked libraries to
barf.
discard f4fe3bd5b1 * Bump the version number to 0.10.
discard db1a4227a3 * Updated release notes.
discard c28b8eb699 * svn:ignores. * Add missing file to dist.
discard 6f044ab39c * svn:ignore.
discard d34fa9a6cc * Remove dead file.
discard 846b53bde4 * Set the current directory to something well-defined.
Might help in setuid installations.
discard 5c0770ac84 * Include the release notes in the manual.
discard 1b62c2eba3 * Force release notes in ASCII, not UTF-8.
discard d1d0271996 * Check for w3m.
discard 7f384d9c1b * Use a proper temporary directory.
discard 896c0b92f3 * This is not a GNU project :-P
discard 5818e8eeaf * Remove dead code.
discard 025086edea * Release notes in Docbook; ASCII release notes (i.e., the
`NEWS' file) is now generated from that using `w3m' and some XSL hackery.
discard ed1db42915 * List concatenation must be right-associative for
efficiency.
discard deb75bb414 * Remove debugging code.
discard 116e939d57 * More debugging.
discard 55b84357a1 * Debugging.
discard cf2bb91ec8 * Missing #include.
discard 699073c337 * Release notes.
discard cb44aa03b8 * Use aterm 2.4.
discard 2bcd65ecf6 * `nix-env -e' corrupts memory due to incorrect use of
iterators. Reported by Rob Vermaas.
discard e1a6fb7870 * `dependencyClosure' now allows a search path, e.g.,
discard 08c53923db * A primitive operation `dependencyClosure' to do automatic
dependency determination (e.g., finding the header files dependencies of a C
file) in Nix low-level builds automatically.
discard 714b7256cd * Cleanup; sync with thesis.
discard 0399365675 * nix-hash: option `--truncate' to truncate the hash to 160
bits. Hmm, kind of ad hoc ;-)
discard 2fd22c6360 * Add .libs to svn:ignore. Commit 3500 ;-)
discard c680f835c9 * Escape ASCII characters < 32 to Unicode FFFD (REPLACEMENT
CHARACTER) so that we don't produce un-wellformed XML.
discard f450c8ea2f * Oops. XSL stylesheet to mark errors.
discard 800a6ff845 * Mark error lines in red, and expand subtrees containing
errors automatically.
discard 78c72bf10e * channels -> channels-v3, catamaran -> nix.cs.uu.nl.
discard 991a130b1e * Added a list concatenation operator: [1 2 3] ++ [4 5
6] => [1 2 3 4 5 6]
discard e6899794ae * Add $prefix/lib to the RPM.
discard 33efb52e02 * Hack to get around the libtool wrapper script around
nix-store not working when PATH is unset.
discard 3fae65d4cc * Adhockery.
discard 4c20a08293 * Build dynamic libraries.
discard 1a67154d41 * Release notes.
discard 0f827cc607 * Prevent repeated wrapping of closed terms
(closed(closed(closed(...)))) since this reduces performance by producing
bigger terms and killing caching (which incidentally also prevents useful
infinite recursion detection).
discard 2135e7c041 * Wat cleanups.
discard 6f82a78de7 * Define paths using regexps, as is done in the Flex
definition.
discard 6f91f02f75 * Make the rejects a bit more compact. * Add lexical
restrictions for keywords.
discard 9590009a74 * Fix ambiguity.
discard f797cb5855 * Revive and update the SDF grammar for Nix expressions.
discard a5ceb5bc0b * nix-build: default to `./default.nix' if no paths are
specified. So when using Nix as a build tool, you can just say `nix-build'
and it will build the top-level derivation defined in `default.nix'.
discard d4879b4dfe * Add curl to the RPM dependencies. Should fix NIX-11.
discard 22d3587f3b * In nix-instantiate, at top-level, call functions that
have arguments with default values automatically. I.e., e -> e {}.
discard 928a7c06dc * Don't create patches for archives >= 150 MB because
bsdiff can't handle it. It crashed on the 234 MB tetex archive. Probably we
will never be able to handle archives of that size on 32-bit machines
(because bsdiff does everything in memory requiring max(17*n,9*n+m)+O(1)
bytes, so the address space simply isn't there).
discard 040140dd1c * Added a primop `removeAttrs' to remove attributes from a
set, e.g., `removeAttrs attrs ["x", "y"]' returns the set `attrs' with the
attributes named `x' and `y' removed. It is not an error for the named
attributes to be missing from the input set.
discard 109cde6706 * Ignore (with a warning) invalid garbage collector roots.
discard c09e47c68f * Some svn:ignores.
discard 8be1db899e * Another typo.
discard cbc8d083ac * Make unpacking of patch sequences much faster by not
doing redundant unpacking and repacking of intermediate paths.
discard 456f3251d2 * Typo.
discard 9ec7e58aa4 * Handle store path arguments in `nix-env -i' correctly
again.
discard bfe4875a5e * Use Berkeley DB 4.3.38.
discard 8f57634c14 * Automatically upgrade the Berkeley DB environment if
necessary.
discard 88dea78cdf * Crazy: don't use real hashes of real components in
examples, since they cause Nix builds to have unnecessary retained
dependences (e.g., on Subversion).
discard edd145d2fb * Lazily compute the derivation and output paths of
derivations. This makes most query and installation operations much faster
(e.g., `nix-env -qa' on the current Nixpkgs is about 10 times faster).
discard 426593162e * ATermMap needs an assignment operator, otherwise we are
screwed.
discard 77557a6f06 Commit 3000!
discard 6057b51835 * Don't try to register GC roots in read-only mode.
discard 6c88d67780 * Build .tar.bz2 files in `make dist'.
discard d8cda7c3dc * Mac OS X (and POSIX) doesn't have readlink.
discard 52a2f41320 * Include some required header files.
discard 26fd28432d * FreeBSD 4.x doesn't have stdint.h, use inttypes.h instead
(which is also part of ISO C).
discard 5dea0622d1 * Idem (constness fix). * `compare' in GCC 2.95 is broken.
discard 4a266e35d4 * GCC 2.95 compatibility fix in constness; strangely, I
think this should not have worked at all.
discard d7b3cdbd91 * GCC 2.95 compatibility. Prevents internal compiler error
in member template friends.
discard ae6d9033a1 * The eof() state isn't guaranteed to be set non-lazily.
GCC 2.95 compatibility fix.
discard d8a31da1ea * Use `$(MAKE)' instead of `make' for systems where `make'
isn't GNU make (such as FreeBSD).
discard 36fb29f8f0 * Merge remaining stuff from the nix-make branch. * Add
support for the creation of shared libraries to `compileC', `link', and
`makeLibrary'. * Enable the ATerm library to be made into a shared library.
discard 02f2da0142 * Merging from nix-make branch: - Add __currentTime
primitive (dangerous!). - Allow imports of derivations.
discard 6842bc9ac4 * Be quiet when untarring a channel file.
discard f913283570 * Remove redundant message.
discard 9f3601a36c * Argh! The patch downloader was broken due to the
renaming of the `--isvalid' flag in nix-store.
discard f3660b1c8c * Garbage collector fix: allow deletion of paths that have
invalid (but substitutable) referers.
discard d5219a351a * Damn. Disable the USE heuristic for now, since the
deriver in the database isn't always in the manifest (so the reference graph
cannot be reconstructed fully).
discard 1d86790910 * Bump the version number to 0.9.
discard bc5e26dcda * Mark date.
discard cab7816b56 * Slightly nicer message.
discard 82d771f6e6 * Manual updates.
discard c9c58dba55 * Primop `__currentSystem' to return the current platform
identifier.
discard b4b51c9f93 * NEWS.
discard fb45b0f548 * Document nix-channel.
discard c702dfca3f * nix-store: `--substitute' -> `--register-substitutes'.
discard 8b70f138e0 * Lots of manual updates, in particular the new `nix-store
--query' options were documented, as well as the Nix configuration file.
discard 4271385a73 * Make `nix-store --query --tree' work on non-derivations
(i.e., on any store path).
discard 90905634ed * Doh.
discard b9d8ecbc6a * More doc updates.
discard 7d876f8fa7 * Get rid of fetchurl, we don't need it anymore.
discard 10c429c757 * If store paths are specified as sources in Nix
expressions, don't copy them, but use them directly.
discard f9848d4f31 * Support base-32 hash representations.
discard c815aff21b * `nix-store --add-fixed' to preload the outputs of
fixed-output derivations. This is mostly to simplify the implementation of
nix-prefetch-{url, svn}, which now work properly in setuid installations.
discard 57d023a184 * More manual updates.
discard f1ae10b992 * Build hook documentation. * nix-store options.
discard 806b91f104 * GC docs.
discard 128c174295 * Manual updates.
discard 229252941a * Some GC documentation.
discard 6c8cf567b8 * Use `--nonet' flag.
discard 31e140d70b * I said it couldn't be done. I was wrong.
discard 4a83c12c5d * Added a glossary to the manual.
discard 6f788880b6 * Re-enable dot graph generation.
discard 298dd487bb * When finding live paths, the deriver need not be valid.
discard ebe342c9c1 * Better error checking.
discard 7eaf038763 * `nix-store --verify': repair bad referer mappings.
discard c6178f0b03 * Create missing log and temproots directories
automatically (reported by Rob).
discard d1487d9015 * This is a better location to keep the blacklist, since it
can evolve separately from Nix or Nixpkgs.
discard 009752ca70 * Blacklist Firefox 1.0.1.
discard cff6bc06df * Fix endianness bug.
discard 590e5a0d65 * Add a test for base-32 encoding of hashes since it seems
to be broken on Mac OS X.
discard 0df9f08078 * Export the references graph to the build hook.
discard 3f236f01ae * `nix-store --register-validity': allow a path to refer to
a path listed later in the list of new valid paths.
discard a04c62e0c4 * Canonicalise path meta-data in `nix-store
--register-validity'.
discard f20f081560 * nix-store: `--isvalid' -> `--check-validity',
`--validpath' -> `--register-validity'. * `nix-store --register-validity':
read arguments from stdin, and allow the references and deriver to be set.
discard a1e00bf6aa * Remove non-POSIX flag.
discard ab75a50ba4 * Fink compatibility.
discard 7272c3f817 * Ignore hash conflicts in gc-releases.pl.
discard 67eff20906 * Manual updates.
discard ad3121a52d * Documented common environment variables.
discard f982df3cd7 * Update the user environments figure to show multiple
profiles and users. * Change to base-32 hashes.
discard afc3a7b79b * Automake 1.9 compatibility.
discard 693ff4f6bf * Some more updates.
discard 62dbfbc45b * Remove Docbook EBNF dependency.
discard e301334696 * XInclude all the way.
discard b376565b86 * Manual updates.
discard bacd3a6cfa * Purify all corepkgs builders.
discard e52ae1c0ff * Use SHA-256 for nix-push.
discard 155c91b335 * Upgrade information.
discard 5675d5f488 * Idem.
discard 6fb5f7e532 * Pass `--base32' unless using MD5.
discard c757d16c8c * Bug in clearSubstitutes().
discard bb2e53699f * Parse new hash format properly.
discard 5863f24722 * Print SHA-1 hashes in base-32 by default.
discard bd333b939c * Prefix hash algorithm in patch generator too.
discard 8eff18cd43 * Set NAR name to content hash; previous nix-push names
were not unique. * Drop `hashAlgo' attribute in manifests; prefix hashes with
the hash algorithm instead.
discard 1562dfe9ba * Script to garbage collect nix-push directories. It
prints out all file names in the directory not included in any of the
manifests specified on the command line.
discard 012b812698 * Preliminary NEWS for 0.8.
discard 536f324177 * nix-install-package: install outPath, not drvPath, for
now. * nix-prefecth-url: print out in base-16.
discard 08df443618 * Check for duplicate attributes and formal parameters in
Nix expressions.
discard 97c93526da * In the checker, do traversals of the dependency graph
explicitly. A conditional expression in the blacklist can specify when to
continue/stop a traversal. For example, in
discard bfbc55cbc6 * Use XML::LibXML.
discard 543d7a41dc * Automatically add propagated build inputs to user
environments. Maybe this is a bad idea.
discard 9a7f95882c * Basic blacklist checker. Each element in a user
environment is checked against every item in a blacklist.
discard 4bbdcfbb45 * Don't use fork() in copyPath(), but a string buffer.
discard 9e6bca8765 * Channel fix.
discard 86cb3cc554 * Increase Berkeley DB limits a bit more. * Maintain the
cleanup invariant in clearSubstitutes().
discard 0107fba48e * Concept for a simple blacklist.
discard 07b4399fb6 * `nix-store -q --hash' to quickly query the hash of the
contents of a store path (which is stored in the database).
discard 9e50e648a4 * Doh!
discard 8d364e5baa * Add missing file to dist.
discard db322a47ff * Use a weighted use heuristic to disambiguate between
multiple occurances of a component. If the shortest path distance between a
component P and Q in the referers graph is D, then the contribution of Q to
the use of P is 1 / R^D, where R >= 1, typically 2. This expresses that
distant indirect uses are less important than nearby uses.
discard 2c4302dd7a * Added a disambiguation heuristic: if two components have
the same name but differ to much in sice (by more than a factor of 3), then
never generate a patch.
discard 8376fff151 * Add a version number to manifests.
discard 8d3c346559 * Pause if errors occur.
discard 6bafeafb88 * nix-install-package: Use the new (trivial) package format
generated by the build farm. See e.g.,
http://catamaran.labs.cs.uu.nl/dist/nixpkgs-0.8/nixpkgs-0.7pre2302/; the user
can click on packages, and they will be installed (assuming the
`application/nix-package' MIME type has been associated with
`nix-install-package').
discard 3259ae5811 * Properly specify the hash algorithm in the manifests, and
read it too. * Change the default hash for nix-prefetch-url back to md5,
since that's what we use in Nixpkgs (for now; a birthday attack is rather
unlikely there).
discard 95e870a113 * (Unnecessary) refactoring.
discard bfaf83a0fd * When multiple derivations are specified in `nix-store
-r', don't continue building when one fails unless `--keep-going' is
specified. * When `--keep-going' is specified, print out the set of failing
derivations at the end (otherwise it can be hard to find out which failed).
discard 3a2c3f0cf2 * Support for fixed-output hashes over directory trees
(i.e., over the NAR dump of the path).
discard eda2c3c253 * Compatibility hack so that Nixpkgs can continue to do
hash checking in `fetchurl' in Nix <= 0.7, but doesn't in Nix 0.8.
discard 3c1630131e * Subtle bug in the builder: if a subgoal that is
instantiated multiple times is also a top-level goal, then the second and
later instantiations would never be created because there would be a stable
pointer to the first one that would keep it alive in the WeakGoalMap. * Some
tracing code for debugging this kind of problem.
discard 398463a72a * `make check' fix.
discard e0181f56be * `nix-store -q --tree' shows a tree representing the
dependency graph of the given derivation. Useful for getting a quick
overview of how something was built. E.g., to find out how the `baffle'
program in your user environment was built, you can do
discard 74ab0695b5 * Compatibility hack with older user environments.
discard 8a3a96dd5b * Switch to the calling user context for some more
operations in a setuid installation.
discard 88273f9574 * Put build logs in $prefix/var/nix/log/drvs/.
discard fb5dae8694 * Fix nix-channel. * Add `--help' flag; fixes NIX-5. * Add
`--remove' flag; fixes NIX-6. * Add `--list' flag.
discard 202d5bbda5 * Compatibility with older GCCs.
discard e17910cfb5 * And yet another installation source: the ability to copy
user environment elements from one user environment to another, e.g.,
discard 0083562f75 * Fix broken GC test.
discard 8992fce3da * It is now possible to add store derivations or paths
directly to a user environment, e.g.,
discard e446d342b7 * Added an installation source `--from-expression' (or
`-E') to install derivations from a Nix expression specified on the command
line. This is particularly useful for disambiguation if there are multiple
derivations with the same name. For instance, in Nixpkgs, to install the
Firefox wrapper rather than the plain Firefox component:
discard 0cb016c209 * Refactoring. Hope this doesn't break the semantics of
`-u' ;-)
discard a04a5de8f7 * Implement the `gc-keep-derivations' global configuretion
flag.
discard 6a8ef36fe6 * Global configuration option `env-keep-derivations' to
store pointer to derivations in user environments. Nice for developers
(since it prevents build-time-only dependencies from being GC'ed, in
conjunction with `gc-keep-outputs'). Turned off by default.
discard b0aba6ec2a * Don't keep the derivation symlink when creating profile
generations.
discard 32429142cd * Type error in constructor call (caught by GCC 3.3, but
not 3.4!).
discard 20ce2642fc * Refactoring to support different installation sources in
nix-env. * Set the references for the user environment manifest properly. *
Don't copy the manifest (this was accidental). * Don't store derivation paths
in the manifest (maybe this should be made optional). This cleans up the
semantics of nix-env, which were weird. * Hash on the output paths of
activated components, not on derivation paths. This is because we don't know
the derivation path of already [...]
discard 80870d9291 * Input sources should be in the set of all referenceable
paths too.
discard 3a99616968 * Commit more often to prevent out-of-memory errors.
discard 98df735b51 * Propagate the deriver of a path through the substitute
mechanism. * Removed some dead code (successor stuff) from nix-push. * Updated
terminology in the tests (store expr -> drv path). * Check that the deriver is
set properly in the tests.
discard 582e01c06f * Automatically upgrade <= 0.7 Nix stores to the new schema
(so that existing user environments continue to work). * `nix-store
--verify': detect incomplete closures.
discard c547439843 * Subflag in `--verify': `nix-store --verify
--check-contents' checks that the contents of store paths has not changed by
comparing hashes of their current contents to the hashes stored in the
database.
discard 3d74274b37 * Updated `nix-store --verify' to the new schema.
discard 60feff82cf * Set umask to prevent permission problems.
discard 48ebe4527e * Better error reporting in readmanifest. * Use force flag
in `mv' to prevent silly interactive questions (this happens with shared Nix
stores).
discard fbc434ee4c * `nix-store -qb' to query derivation environment bindings.
Useful for finding build-time dependencies (possibly after a build). E.g.,
discard 450c358e20 * Maintain a database table (`derivers') that maps output
paths to the derivation that produced them. * `nix-store -qd PATH' prints out
the derivation that produced a path.
discard a37338815d * A GC setting `gc-keep-outputs' to specify whether output
paths of derivations should be kept.
discard 2e6bf723e4 * Added a global configuration file
(/nix/etc/nix/nix.conf). It contains options for the garbage collector right
now, but other stuff can be added here later.
discard 9f6835c282 * Remove debug code.
discard c3981d81f6 * Make check fixes.
discard 65b6c8ab4c * Move root finding from `nix-collect-garbage' to
`nix-store --gc'. This was necessary becase root finding must be done after
acquisition of the global GC lock.
discard 630ae0c9d7 * nix-build: use an indirection scheme to make it easier
for users to get rid of GC roots. Nix-build places a symlink `result' in the
current directory. Previously, removing that symlink would not remove the
store path being linked to as a GC root. Now, the GC root created by
nix-build is actually a symlink in `/nix/var/nix/gcroots/auto' to `result'.
So if that symlink is removed the GC root automatically becomes invalid
(since it can no longer be res [...]
discard dcc37c236c * nix-store, nix-instantiate: added an option `--add-root'
to immediately add the result as a permanent GC root. This is the only way
to prevent a race with the garbage collector. For instance, the old style
discard a6b65fd5e1 * Get rid of hardcoded paths.
discard 06b4424286 * Add missing files to dist. * Fix GC and substitute bugs
related to self-references. Add a regression test.
discard 32fa82a56a * Acquire a global GC lock to prevent new temporary root
files from being created after the garbage collector has read the temproots
directory. This blocks the creation of new processes, but the garbage
collector could periodically release the GC lock to allow them to run.
discard 89c9bc11ab * Add a test for a more subtle race: a process starting
after the temporary root files have been read but creating outputs before the
store directory has been read.
discard 207bdcbe86 * Automatically remove temporary root files.
discard 252c9c91ab * Topologically sort paths under the references relation to
ensure that they are deleted in an order that maintains the closure
invariant. * Presence of a path in a temporary roots file does not imply that
all paths in its closure are also present, so add the closure.
discard 33c5d23b81 * Don't delete active lock files.
discard 1328aa3307 * Start of concurrent garbage collection. Processes write
temporary roots to a per-process temporary file in /nix/var/nix/temproots
while holding a write lock on that file. The garbage collector acquires read
locks on all those files, thus blocking further progress in other Nix
processes, and reads the sets of temporary roots.
discard a7668411a1 * Add a test to check whether concurrent garbage collection
(i.e., running the collector while builds are in progress) works correctly.
The test currently fails.
discard 22cfdfa246 * Use NIX_STORE environment variable to locate the store
(in addition to NIX_STORE_DIR) so that Nix invocations in builders in `make
check' work correctly if the store doesn't exist.
discard 9ab0bc9395 * Another horrible `make check' hack.
discard 0ea8b6993a * Only invalidate paths when they are in fact valid.
discard ac2f665853 * Set execute permission.
discard a85d1849af * Missing dependency; only a problem when building from
Subversion.
discard e5c16c9582 * Add missing substitutes files to dist. * Add a garbage
collector test.
discard 8a3eef22e3 * Fix deadlock.
discard c60a4943ba * Update referers mappings when updating/clearing the
references mapping. * Do things in the right order in invalidatePath().
discard 4e37548a1e * Remove deleted files from EXTRA_DIST (again).
discard c505702265 * Fix and simplify the garbage collector (it's still not
concurrent, though). In particular it's now much easier to register a GC
root. Just place a symlink to whatever store path it is that you want to
keep in /nix/var/nix/gcroots.
discard 59682e6188 * Make lock removal safe by signalling to blocked processes
that the lock they are waiting on has become stale (we do this by writing a
meaningless token to the unlinked file).
discard a24b78e9f1 * Maintain the references/referers relation also for
derivations. This simplifies garbage collection and `nix-store --query
--requisites' since we no longer need to treat derivations specially.
discard 2a2756b856 * Simplification: registerSubstitutes ->
registerSubstitute. We no longer need the former since there we no longer
have the substitutes-rev table (which triggered a O(n^2) cost in updating
them).
discard a9340fa672 * Remove removed files from EXTRA_DIST.
discard 498f4915cc * Re-enable all tests.
discard 066da4ab85 * Really fix the substitute mechanism, i.e., ensure the
closure invariant by registering references through the manifest. * Added a
test for nix-pull.
discard c6290e42bc * Fix the `--fallback' switch. * Fix the substitutes tests.
discard 581fc47783 * Fix the build hook mechanism; pass the pointer graph to
the hook.
discard 52bf9b86bb * In nix-store: added query `--referers-closure' that
returns the closure of the referers relation rather than the references
relation, i.e., the set of all paths that directly or indirectly refer to the
given path. Note that contrary to the references closure this set is not
fixed; it can change as paths are added to or removed from the store.
discard 80faa2f98a * In nix-store: change `--build' back to `--realise'. Also
brought back the query flag `--force-realise'. * Fixed some of the tests.
discard 6a0a2d5593 * Terminology fixes.
discard 6bb5efadec * Ensure that derivation names and sources don't end in
`.drv'.
discard 05f0430de1 * Another change to low-level derivations. The last one
this year, I promise :-) This allows derivations to specify on *what* output
paths of input derivations they are dependent. This helps to prevent
unnecessary downloads. For instance, a build might be dependent on the
`devel' and `lib' outputs of some library component, but not the `docs'
output.
discard 6ff48e77f6 * Set the Perl search path properly (reported by Roy van
den Broek).
discard e0f4e587c3 * Nix-store queries `--references' and `referers' to query
the pointer graph. That is, `nix-store --query --references PATH' shows the
set of paths referenced by PATH, and `nix-store --query --referers PATH'
shows the set of paths referencing PATH.
discard 96de272b48 * Renamed `normalise.cc' -> `build.cc', `storeexprs.cc' ->
`derivations.cc', etc. * Store the SHA-256 content hash of store paths in the
database after they have been built/added. This is so that we can check
whether the store has been messed with (a la `rpm --verify'). * When
registering path validity, verify that the closure property holds.
discard ef5f254a55 * `nix-store --build' now builds its arguments in parallel
instead of sequentially (within the limits set by `--jobs'). This should
greatly improve the utilisation of the build farm when doing Nixpkgs builds.
discard 06c77bf7a8 * Change extension `.store' to `.drv'. * Re-enable
`nix-store --query --requisites'.
discard 863dcff6c5 * Started removing closure store expressions, i.e., the
explicit representation of closures as ATerms in the Nix store. Instead, the
file system pointer graph is now stored in the Nix database. This has many
advantages:
discard e9762e2d10 * Support arities > 6.
discard 6d493751c3 * Get --readonly-mode to work again.
discard 32aac8748a * Actually check that the result of fixed-output
derivations matches the specified hash.
discard f3dc231250 * Removed the `id' attribute hack.
discard d58a11e019 * Shorten SHA-256 hashes used in store path name generation
to 160 bits, then encode them in a radix-32 representation (using digits
and letters except e, o, u, and t). This produces store paths like
/nix/store/4i0zb0z7f88mwghjirkz702a71dcfivn-aterm-2.3.1. The nice thing
about this is that the hash part of the file name is still 32 characters, as
before with MD5.
discard 9530cc3170 * Start move towards SHA-256 hashes instead of MD5. * Start
cleaning up unique store path generation (they weren't always unique; in
particular the suffix ("-aterm-2.2", "-builder.sh") was not part of the hash,
therefore changes to the suffix would cause multiple store objects with the
same hash).
discard a7b94e87d7 * Missing file.
discard 9ee88bb2f2 * Use absolute paths.
discard 63791eb05b * Add SHA-256. * Tests for the various hashes.
discard 37b51a9aa6 * Removed some dead code.
discard 7e8961f720 * Added SHA-1 support. `nix-hash' now has an option
`--type sha1' to select SHA-1 hashing.
discard 73992371a3 * Refactoring to support SHA-1.
discard d46b4262dc * Bump version number to 0.8.
discard b17e7cf979 * Script to remove patches from manifests.
discard 0bc41f632b * Print out less garbage.
discard 7d75616f2c * NEWS and manual update for release 0.7.
discard 6af4a5a71f * Prototype store optimiser. It searched the Nix store for
identical files and hard-links them to each other to save disk space.
discard a03397be4c * Cygwin compatibility.
discard f28ea27d83 * Remove old stuff.
discard c53898cb65 * If a patch already exists, it must still be included in
the manifest.
discard 35b76a81c4 * More instrumentation (statistics go to
/nix/var/log/nix/downloads).
discard 3745cecc6a * Fix handling of chained patches: don't skip patches if
intermediate paths are missing, etc.
discard 581bcb986f * Some logging for evaluation.
discard 6270aa727d * Propagate patches from the source distribution to the
destination distribution insofar they are applicable.
discard 4f07ebc67e * Integrated bsdiff/bspatch 4.2 (from
http://www.daemonology.net/bsdiff/bsdiff-4.2.tar.gz) into the source tree.
The license is a bit peculiar, but it does allow verbatim copying, which is
what we do here (i.e., so don't make any changes to the sources).
discard 54d8f08588 * Reject patches larger than the full archives they produce.
discard 2fdb27e7f2 * Atomic file replacement is good.
discard e1e9c036f9 * A utility to generate patches between releases based on
their manifests.
discard 77fc1c6c5c * Use aterm 2.3.1.
discard 9022cf9adf * A small utility to add the Size and NarHash fields to old
manifests.
discard 4bf58d5379 * Added a function to write manifests.
discard 3d1b2101cc * Place manifests in /nix/var/nix/manifests. * Use the new
patch downloader.
discard 7eed57e784 * Sync with changed substitute mechanism. * Accept the
NarHash line. * Clear substitutes in `nix-channel --update'.
discard 96c3d8a615 * I love test sets.
discard 8b9697e575 * An operation `nix-store --clear-substitutes' to remove
all registered substitute mappings.
discard fa9259f5f5 * Simplify the substitute mechanism: - Drop the store
expression. So now a substitute is just a command-line invocation (a
program name + arguments). If you register a substitute you are
responsible for registering the expression that built it (if any) as a root
of the garbage collector. - Drop the substitutes-rev DB table.
discard 015beb7cd0 * Typo: genericBuilder -> genericBuild.
discard 4d25b0b0bb * Fix nix-pull.
discard f4041cc175 * Commit old changed to bdiff.sh - but bdiff.sh is obsolete.
discard 77970f8daf * Remove `prebuilts.conf' file, it's not like anybody was
using it. * Add /nix/var/nix/manifests directory.
discard e3b051aeeb * Include the size of the bzipped archive (necessary for
computing the cheapest download path), as well as the hash of the contents of
the path (necessary for checking patch applicability).
discard 862f4c154e * Patch deployment. `download.pl' (intended to be used in
the substitute mechanism) creates a store path by downloading full NAR
archives and/or patches specified in the available manifests.
discard dca48aed34 * Allow an optional hash to be provided. This prevents
redundant fetches.
discard 71926ee188 * Print out statistics comparing our performance to bzip2.
discard 13f77276d1 * utime() follows symlinks, so don't change the mtime if
the file is a symlink.
discard eee6fe478e * Proof-of-concept for binary patch deployment.
discard f17553a212 * Remove debug statement.
discard 4115d8d8ce * Canonicalise metadata of all files in store paths (set
the mtime to 0, set the mode to either 444 or 555, set the group to the
default).
discard 5d5318c2ff * Bump version number to 0.7.
discard 9f8964a062 * More manual fixes.
discard 0b79a12082 * Manual fixes.
discard 54c7a870d5 * Document --delete-generations and other nix-env options.
discard c2b0d6b02f * Document --eval-only and --parse-only options in
nix-instantiate.
discard 32c7326850 * Typos.
discard 92ee003dc9 * Fix broken format string.
discard d6db574ec1 * Check exit status of pipe elements.
discard b8aaef5e4e * Documented the standard environment, including the
generic builder.
discard 2c3b29c5ca * Everything you always wanted to know about functions and
derivations but were afraid to ask.
discard ea6581b691 * Drop the grammar appendix.
discard 09e7f06818 * Put something in here.
discard 1bac7a10e6 * Operators, comments.
discard 55b35d6d77 * Lets, inheritance, assertions.
discard 0b1ee4802b * Typo fix.
discard 5f0300d18c * Generic builders.
discard 3e9d2038b4 * Start of language reference.
discard 6ca9c7f0a9 * Finished GNU Hello walkthrough.
discard 8b934694f2 * Manual: writing Nix expressions.
discard feb3ceaee0 * Better error messages.
discard cb7ccb528b * string2ATerm -> overloaded toATerm.
discard 4cbd845aa4 * Don't propagate our CFLAGS to the ATerm library since it
breaks at -O2.
discard 5f2c5a306c * chapter -> appendix.
discard 0913f5a615 * Section about channels.
discard ee5dcfade2 * Section about garbage collection.
discard cbe8de592d * Profiles section.
discard b05a596d61 * Document setuid Nix installs.
discard 0d80d237c5 * Add figures to `make install' / `make dist'.
discard 2aa1f4717b * Fix `File exists' errors if the `result' symlink exists
but is dangling.
discard f8ac8d1ec8 * Began adding build farm docs.
discard a69534fc21 * Drop ATmake / ATMatcher also in handling store
expressions.
discard ed09821859 * Use `atdiff' instead of `cmp' for checking test output. *
Don't use local file names in tests since they will produce different parse
trees depending on the current directory.
discard 3277c9432a * Bug fix in parsing of /* ... */ comments; due to longest
match regexp there could be only one such comment per file.
discard 463e2817c5 * Remove ancient Fix tests. * Add automated Nix expression
language tests.
discard f09618b63a * Turn on read-only mode in queries. This prevents
redundant store I/O.
discard c7bea941b0 * Oops, I did it again.
discard 210ab0296d * Add file to `make dist'.
discard c52dda95a6 * Bug: check that term is an application.
discard 5fe9222b36 * Don't use ATmake / ATmatch anymore, nor the ATMatcher
class. Instead we generate data bindings (build and match functions) for
the constructors specified in `constructors.def'. In particular this removes
the conversions between AFuns and strings, and Nix expression evaluation now
seems 3 to 4 times faster.
discard eb8284ddaa * Evaluate argument to `import'.
discard 033d7c6593 * Doh!
discard 9fa07b376d * String/path concatenation operator (`+').
discard ee401afad8 * Mode `--parse-only' to parse the input (on stdin, `-'),
and print out the AST as an ATerm. * Mode `--eval-only' to parse and evaluate
the input, and print the resulting normal form as an ATerm.
discard 37d7abd694 * New language feature: with expressions.
discard f4d44a0026 * Allow certain operations to succeed even if we don't have
write permission to the Nix store or database. E.g., `nix-env -qa' will
work, but `nix-env -qas' won't (the latter needs DB access). The option
`--readonly-mode' forces this mode; otherwise, it's only activated when the
database cannot be opened.
discard 3ade3e7721 * Revert r1594 - it didn't solve the problem. Instead add
svn-revision to distributions, which should fix it.
discard 2248becfd3 * Make sure that the prerelease version is included in
`--version'.
discard 50b9caac14 * Updated NEWS for the upcoming 0.6 release.
discard 2155c0a673 * Register channels as roots of the garbage collector (in
$(localstatedir)/nix/gcroots/channels). * In setuid installations, create
gcroots/tmp and gcroots/channels group-writable.
discard 88888160d2 * Fix nix-prefetch-url in setuid Nix installations.
discard 99da51d4de * Show error messages from curl.
discard 2cd590d96c * Instead of — use the actual Unicode character. By
the way, to edit the manual, you should have something like
discard 692204e0c5 * Rewrite of package management stuff.
discard d830b2c1df * In `nix-env -q', sort derivations by name *without* case
sensitivity.
discard febd8bed1b * Split overview chapter into a chapter on package
management and a chapter on writing Nix expressions.
discard 98c69e5172 * Unindent.
discard 371c57d8a7 * Updated the quick start section. Use channels instead of
downloading Nix expressions and calling nix-pull. This is so user-friendly
that even a Mac user can do it! :-)
discard 2b20701f78 * Better introduction. * Set notes in a different color
than warnings.
discard 1317242780 * Make store objects created by substitutes read-only.
discard 995d08208e * prevent collision on log directory
discard b357284a32 * Fallback didn't work for subderivations of an
unnormalised the main derivation, since NormalisationGoal would first run a
NormalisationGoal on the subderivation (a no-op, since in a situation where
we need fallback the successor is known), and then runs a RealisationGoal on
the normal form, which then cannot do a fallback because it doesn't know the
derivation expression for which it is a normal form.
discard dcc433de47 * Operation `--delete-generations' to delete generations of
a profile. Arguments are either generation number, or `old' to delete all
non-current generations. Typical use:
discard c16be6ac92 * Remove write permission from store objects after they
have been added to the store. Bug reported by Martin.
discard 47f87072ad * A very dirty hack to make setuid installations a bit
nicer to use. 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 [...]
discard 5396304c73 * Use setre[ug]id() instead of setres[ug]id(), since the
former is more common than the latter (which exists only on Linux and
FreeBSD). We don't really care about dropping the saved IDs since there
apparently is no way to quiry them in any case, so it can't influence the
build (unlike the effective IDs which are checked by Perl for instance).
discard e043fc7d0b * Set the umask to known value (0022). This is important
in a setuid installation, since the calling user may have a more fascist
umask (say, 0077), which would cause the store objects built by Nix to be
unreadable to anyone other than the Nix user.
discard 550d960586 * Hack for perl(readmanifest) dependency.
discard 17c8252fc9 * Spec file options to create the Nix user and group in the
RPM pre-install script. By default this is turned off; you should edit the
spec file to enable it.
discard fb28cfc86d * Add some variability to RPM spec files: allow setuid
options to be set on the rpmbuild command line.
discard 5c443b6550 * Main the `substitutes-rev' table again, but now in a way
that doesn't take \Theta(n^2) space/time complexity.
discard c25f2883b1 * Quadruple the Berkeley DB locking limits to get rid of
out of memory errors while running `nix-store --verify'.
discard fe122c5a15 * Removed nrWaitees field. It was redundant with
waitees.size() and could get out of sync if multiple input derivations mapped
to the same closure expression (since waitees is a set).
discard eb233e728f * `--min-age' flag in nix-store and nix-collect-garbage to
only delete unreachable paths that haven't been used for N hours. For
instance, `nix-collect-garbage --min-age 168' only deletes paths that haven't
been accessed in the last week.
discard fdec72c6cc * `nix-collect-garbage' now actually performs a garbage
collection, it doesn't just print the set of paths that should be deleted.
So there is no more need to pipe the result into `nix-store --delete'
(which doesn't even exist anymore).
discard 818047881e * Put the garbage collector in nix-store: operation `--gc',
suboperations `--print-live', `--print-dead', and `--delete'. The roots
are not determined by nix-store; they are read from standard input. This is
to make it easy to customise what the roots are.
discard 9994c1dd9f * Validate derivation names. In particular don't allow
spaces. * Drop support for the outPath attribute in derivations.
discard 8f58733ef1 * The gid should also match.
discard 1c90fabccc * Unbreak programs that are not setuid (such as nix-hash).
discard e77fbe0fa2 * On systems that have the setresuid() and setresgid()
system calls to set the real uid and gid to the effective uid and gid, the
Nix binaries can be installed as owned by the Nix user and group instead of
root, so no root involvement of any kind is necessary.
discard 2d35116c13 * Setuid support for sharing a Nix installation between
multiple users.
discard 8f1dcdfc0a * Make sure that no build hook is set by default in the
tests. * Don't use `seq' - some primitive, obsolete operating systems
(Darwin) don't have it.
discard 1eddee59f2 * The default verbosity level of all Nix commands is now
lvlInfo. * Builder output is written to standard error by default. * The
option `-B' is gone. * The option `-Q' suppresses builder output.
discard 937ce0cd21 * Flag `--no-link' suppresses symlinking to the output
path. * Handle multiple derivations correctly.
discard 966bd9d19f * WTF? More canonical system name problems ("athlon-linux"
instead of "i686-linux").
discard 62fe5c4a22 * The predecessor of a successor need not be present. This
in particular happens on distributed builds or when using push/pull.
discard ae1a1efa41 * Clean up the temporary directory for hook communication
(and don't print out incorrect "build failed" messages).
discard d8989b1fb4 * Every real language has a `map' function.
discard bbfdd64741 * Allow primops with more that 1 arguments.
discard e3a50f7e25 * Creating a file nix-support/no-scan in the output path of
a 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).
discard 18ebd7b030 * Doh!
discard 5373aed1a8 * Use ATerm 2.2. * Include bootstrap.sh in dist.
discard 16c8b4c8e5 * A script to generate the Auto* stuff.
discard e8a95108c0 * Nix-build places a symlink `result' in the current
directory to the store object just built.
discard 9bf7a5f516 * Don't pass `--with-system'.
discard 39eaecbc98 * Slightly better heuristic for picking the canonical
system type. Now SuSE and Red Hat should yield the same type (`i686-linux').
Mac OS X should now give `powerpc-darwin' (i.e., the version number is
gone).
discard 064a36cb54 * Hardcode the system id to be `i686-linux'.
discard c1a18f543e * Fixed format string error.
discard 056cd1d3b7 * Don't go into a (sometimes infinite) loop calling the
build hook.
discard 638ce339a5 * Nix-instantiate now accepts sets of derivations (just
like nix-env).
discard 292d6468ec * Nix-env operations now by default filter out any
derivations for system types other than the current system. I.e., `nix-env
-i' won't install derivations for other system types, and `nix-env -q'
won't show them. The flag `--system-filter SYSTEM' can be used to override
the system type used for filtering (but not for building!). The value `*'
can be used not to filter anything.
discard 8f6254e823 * Align the columns in the output of `nix-env -q'.
discard 593bc23d8b * Allow the system attribute of derivations to be queried
in `nix-env -q'. * Queries can now be combined, e.g., `nix-env -q --status
--system'.
discard b584253af4 * Include some missing headers.
discard f5d5ffe536 * Write build logs to disk again.
discard 00aadf478b * Use ATerm 2.1.
discard 151e61fa5a * By default, `nix-env -i' now deletes previously installed
derivations with names matching the derivations being installed. The option
`--preserve-installed / -P' overrides this behaviour.
discard 4d2946c516 * In a realisation goal, check the result of the
corresponding normalisation goal.
discard 24286e15c9 * `nix-env -u' now allows a specific version to be
specified when upgrading.
discard 2746a879e2 * Typo.
discard 91dc023665 * Added a switch `--fallback'. From the manual:
discard b113edeab7 * A flag `--keep-going / -k' to keep building goals if one
fails, as much as possible. (This is similar to GNU Make's `-k' flag.)
discard e4883211f9 * Don't throw an exception when a build fails. Just
terminate the goal and allow the problem to be handled elsewhere (e.g., at
top-level).
discard 795d9f8b08 * Obsolete.
discard a29c8ac51c * Add a test to check that when we cannot realise a closure
expression, we should invalidate it and go back to the derivation for which
it is a successor.
discard ec32627621 * Multiple and/or failing substitutes now work.
discard 8052aef486 * A test for multiple and/or failing substitutes.
discard 66c7f34759 * Arghhhhhh
discard 05a5362d63 * Some more diagnostics changes.
discard d051cd40e1 * Nix-instantiate can return multiple store expressions.
discard 3093af58a7 * A utility script `nix-build' that builds Nix expressions
and prints their output paths (and only that) on standard output.
discard b302e5f63b * We don't really need this here.
discard 83ae1723da * Well, it's better than printf.
discard 72bc9a522f * Started making Nix's diagnostic messages a bit more
useful.
discard 5e2cf44a4d * Put WEXITSTATUS stuff somewhere else.
discard 84007a0958 * Reduce gratuitous cut & pasting.
discard c9fbd2dfd5 * Wrapper class around pids.
discard 155d7c8dfa * Substitutes should occupy a build slot.
discard c4cb6ea2bc * Refactoring.
discard 88fb4f6e53 * Missing files added to `make dist'.
discard 2db9748221 * Remove debug output.
discard 37ee6cef99 * Adapted nix-pull to use the new substitute mechanism.
discard 3f3a3ae87b * Acquire a lock on the output path when running a
substitute. Also delete obstructing invalid paths.
discard 72c857f0eb * Ugh, nasty Heisenbug due to an uninitialiased variable.
The bug only caused a crash if the program was *not* invoked with a high
verbosity level.
discard be1a917beb * Remove obstructing invalid store paths add[Text]ToStore().
discard daf0a923c7 * Wrap calls to registerSubstitute() in a single
transaction to improve throughput. * Don't build the `substitute-rev' table
for now, since it caused Theta(N^2) time and log file consumption when adding
N substitutes. Maybe we can do without it.
discard 15c60ca1b6 * Disable calls to fsync() since Berkeley DB's
DB_TXN_WRITE_NOSYNC flag doesn't seem to work as advertised.
discard 112ee89501 * Re-enable support for substitutes in the normaliser.
discard bafb2357d1 * README for the Emacs mode (written a while ago, but
forgot to commit).
discard 85ae781765 * Refactoring.
discard 23bb902d1f * Re-enable build hooks.
discard 41ec982f31 * Big refactoring. Move to a much more explicitly state
machine based approach. This makes it much easier to add extra complexity in
the normaliser / realiser (e.g., build hooks, substitutes).
discard 3454c685ee * This is also useful.
discard 6ba26f27c3 * Shared (garbage collecting) pointers. Copied from Boost.
discard 0b70231b9d * Refactoring.
discard 1bc6afefac * Cleanup.
discard e8411948ff * A Nix mode for Emacs.
discard 5e4a2272bf * Drain the output of the build hook to show error
messages. Ugly hack.
discard 19479899fb * Don't set the rpath here --- it's not portable.
discard 1d08093b48 * Go back to the old way of generating the system name, and
allow it to be specified in configure (using `--with-system=SYSTEM').
discard 8e9fd57ef9 * setpgrp() is not POSIX (and on Mac OS X it's different
than on Linux), so use setpgid().
discard ace8872706 * execl() requires a terminating 0. * When a fast build
wakes up a goal, try to start that goal in the same iteration of the
startBuild() loop of run(). Otherwise no job might be started until the next
job terminates.
discard 4fc00cbec1 * Distributed builds and load balancing now seem to work
pretty well. (Though the `build-remote.pl' script has a gigantic race
condition).
discard 2fa3304933 * Set the executable bit.
discard 25db622454 * Load balancing. `build-remote.pl' will only execute up
to a per-machine maximum number of parallel jobs on a remote machine.
discard 3426d19547 * Perform all tests.
discard a8306cb98f * The build hooks used to implement distributed builds can
now be run in parallel. Hooks are more efficient: locks on output paths are
only acquired when the hook says that it is willing to accept a build job.
Hooks now work in two phases. First, they should first tell Nix whether they
are willing to accept a job. Nix guarantuees that no two hooks will ever be
in the first phase at the same time (this simplifies the implementation of
hooks, since they d [...]
discard 5087c8f645 * Use `-j0'.
discard efa5fa1a91 * A switch `-j NUMBER' to set the maximum number of
parallel jobs (0 = no limit). * Add missing file to distribution.
discard 1f48aa0be7 * Broken test.
discard aa5a5084e4 * Pass to the build hook all sorts of information useful
for distributing a build action to another machine. In particular, the
paths in the input closures, the output paths, and successor mapping for
sub-derivations.
discard 8c0b42f857 * An quick and dirty hack to support distributed builds.
discard c8d3882cdc * True parallel builds. Nix can now run as many build jobs
in parallel as possible (similar to GNU Make's `-j' switch). This is
useful on SMP systems, but it is especially useful for doing builds on
multiple machines. The idea is that a large derivation is initiated on one
master machine, which then distributes sub-derivations to any number of slave
machines. This should not happen synchronously or in lock-step, so the
master must be capable of dealin [...]
discard aea436503e * Ignore interrupt signals while handling an exception. *
Ignore EINTR in reads and writes.
discard a9858c9f26 * A test to verify that Nix executes build jobs in
parallel, if possible.
discard f044ccf702 * 1000th revision! * A test to verify that locking of
output paths (caused by concurrent invocations of Nix) works correctly.
discard a7bbe73971 * Another test.
discard ef093aac8f * Grrr. TESTS are not included in EXTRA_DIST.
discard 256eeab711 * Allow the location of the store etc. to be specified
using environment variables. * Started adding some automatic tests. * Do a
`make check' when building RPMs.
discard fd927c5d25 * Bump the version number.
discard 22371cbd3f * Fixed URL.
discard bcce9c1ff5 * Only add `-preRELEASE' to the version if STABLE != 1. *
Documented release procedures.
discard d4779abc04 * Pass SYSTEM through config.h, and allow spaces.
discard 759c953196 * Look for GC roots in @localstatedir@/nix/gcroots.
discard d7238bc84e * Don't create $(localstatedir)/nix/profiles if
--disable-init-state is specified.
discard b6df68c942 * Dist error.
discard 21655a70f5 * Channels. These allow you to stay current with an
evolving set of Nix expressions.
discard f79e9c2d22 * Do initialise state (the DB etc.) when doing a `make
install', unless `--disable-init-state' is passed to configure.
discard 8e459d919d * Recurse into attribute sets and lists when getting
derivations from an expression.
discard 7cce0c34e1 * Allow extra parameters to be passed to Curl through the
`CURL_FLAGS' environment variable. This is useful for passing authentication
information (it won't show up in `ps'). Hacky - nix-push should abstract
over the use of Curl.
discard 2c5a8bf49f * Use @storedir@, not @prefix@/store.
discard b275f2ed3b * `*.gcroot' files can now containing multiple roots.
discard a4d2b22c8c * Be stricter in verifying store paths.
discard 87bf541f23 * Documented the primops.
discard b0c9baf1b5 * EBNF grammar for the Nix expression language.
discard 153429520a * Distributed the wrong file.
discard 2be8ac48bb * Make the creation of user environments much faster and
more storage efficient by creating only a single symlink to entire directory
trees unless a collission occurs.
discard bf3863b546 * Fail if prerequisites are missing.
discard 03f1d1ecb5 * Switched from wget to curl. * Made the dependencies on
bzip2 and the shell explicit.
discard 59b94ee18a * When something goes wrong in the evaluation of a Nix
expression, print a nice backtrace of the stack, rather than vomiting a
gigantic (and useless) aterm on the screen. Example:
discard a520b1cbc3 * Print a more useful error message in case of an invalid
derivation binding.
discard c4ac2a164a * The recent change in nixpkgs of calling
`stdenv.mkDerivation' instead of `derivation' triggered a huge slowdown in
the Nix expression evaluator. Total execution time of `nix-env -qa' went up
by a factor of 60 or so.
discard df101d6fca * Specify Perl as a dependency for the RPM.
discard ac4d39f9db * Added an operator `?' to test for attribute existence,
e.g., `attrs ? x' yields true iff `attrs' has an attribute named `x'.
discard f958bcdf1f * Added an operator `~' to select paths within a
derivation. E.g.,
discard db3e644c1c * Added plain lambdas, e.g., `let { id = x: x; const = x:
y: x; }'. `bla:' is now no longer parsed as a URL.
discard f8cd904e05 * Disallow the Nix store or any of its parents from being
symlinks. 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 somewh [...]
discard f0f7a9f299 * Do not close a nesting level twice after close() has been
called explicitly on a Nest object.
discard 7823db2137 * Some more nesting.
discard 777e13b94b * Nix now has three different formats for the log
information it writes to stderr:
discard 79bb0008ec * `null' is a normal form.
discard e6253b58cd * Escape codes to force line breaks to be ignored.
discard 3f3c4cce5a * Added an extra escape code to signal "unimportant"
messages. If a tree only has unimportant messages, it is collapsed by the
default. * Also added an optional integer argument to the escape code for
opening a nesting level to indicate lack of importance. If set, the tree is
collapsed by default.
discard 84c617966b * Collapsable trees.
discard c2fc2c13c9 * Use unordered lists, which is more sensible semantically
for representing tree structures.
discard a784fd5792 * Don't use tables. Konqueror likes this much better.
discard 8ce3dd4887 * Display the popup directly over the abbreviation.
discard 8330c8202a * A simpler way of implementing the store reference popups,
thanks to Martin and CSS guru Martijn Vermaat.
discard b5539e7a30 * Store paths are now abbreviated in the generated HTML
file. Hovering over the abbreviated path will reveal the full path. This
probably only works in Mozilla.
discard 9d2669d218 * Added a utility that can be used to produce nice HTML
pages from Nix build logs. The program `log2xml' converts a Nix build log
(read from standard input) into XML file that can then be converted to
XHTML by the `log2html.xsl' stylesheet. The CSS stylesheet `logfile.css' is
necessary to make it look good.
discard beda10f5a2 * Make perl a dependency of Nix.
discard a5619f1dff * Set the NIX_STORE and NIX_BUILD_TOP environment variables
in builders to point to the store and the temporary build directory,
respectively. Useful for purity checking. * Also set TEMPDIR, TMPDIR, TEMP,
and TEMP to NIX_BUILD_TOP to make sure that tools in the builder store
temporary files in the right location.
discard 7f0ed370da * Use $(storedir) instead of $(prefix)/store.
discard dbf547645d * Resolve an ambiguity between ifs and attribute selection,
e.g., `if b then x else y.z'.
discard 86b7efbdbe * Don't build ATerm library if we don't need to.
discard 0dfdafdf6d * Allow linking against an external Berkeley DB / ATerm
library.
discard f34de12140 * Allow the location of the store to be specified
(--with-store-dir). * Do not create stuff in localstatedir when doing `make
install' (since we may not have write access). In general, installation of
constant code/data should be separate from the initialisation of mutable
state.
discard fbc48a469c * Inherited attributes in recursive attribute sets are in
scope of the non-inherited attributes.
discard 76c0e85929 * The environment variable NIX_ROOT can now be set to
execute Nix in a chroot() environment. * A operation `--validpath' to
register path validity. Useful for bootstrapping in a pure Nix environment.
* Safety checks: ensure that files involved in store operations are in the
store.
discard 6f5a5ea5ea * Regression fix: realise substitutes and detect cycles.
discard 1ad9d11247 * Only include predecessors that are themselves being
pushed. Otherwise the substitute mechanism can break in subtle ways.
discard 00fe1a506f * When creating a new generation, also make the normal form
of the derivation (i.e., the closure store expression) a root of the
garbage collector. This ensures that running `nix-collect-garbage
--no-successors' is safe.
discard 92e832348d * Lots of manual stuff. Reference pages for most Nix
commands. * nix-pull now requires the full url to the manifest, i.e.,
`/MANIFEST/' is no longer automatically appended. * nix-prefetch-url works
again.
discard 6551b36790 * Print what generation we are switching to; honour
--dry-run flag.
discard 0616b7feea * Documented the most important nix-env flags.
discard 618aa69b01 * In `--upgrade': added flags `--lt', `--leq', `--always'
to specify whether we want to upgrade if the current version is less than the
available version (default), when it is less or equal, or always.
discard 06a75a7e0c * A command `--switch-generation' to switch to a specific
generation of the current profile, e.g.,
discard b8675aee54 * In `--list-generations', show what the current generation
is.
discard 73ab2ed4fd * A command `--list-generations' to show all generations
for a profile.
discard 7c0fa4474f * More refactoring.
discard 7abf9911d9 * Refactoring.
discard 49bafe1faf * Use the profile pointed to by ~/.nix-profile if no
--profile argument is specified.
discard 66e94d3275 * Improvements to profiles. Generations are now
per-profile, e.g.,
discard d445da7a7b * Extended the `inherit' syntax to optionally select
attributes from other attribute sets, rather than the current scope. E.g.,
discard 9d25466b34 * An attribute set update operator (//). E.g.,
discard 6d46e647ba * Fixed the old envpkgs filename.
discard 9b44480612 * Use a map to lookup primops. * Various performance
improvements in the evaluator. * Do not link against unused (and missing!)
libraries (-lsglr, etc.).
discard c4f7ae4aa5 * Verify that all variables in a Nix expression are defined.
discard 1c9c0a5a46 * Added syntactic sugar to the construction of attribute
sets to `inherit' variables from the surrounding lexical scope.
discard d9f30fe7c7 * Sort `nix-env -q' output by derivation name. *
`--version' flag for all commands. * Manual updates.
discard 47c003cb59 * Doh!
discard 619f20775d * Parser numbers again. * Include missing files in
distributions.
discard c625718513 * Detect flex and bison; updated the manual.
discard c5baaafae6 * Replaced the SDF parser by a substantially faster
Bison/Flex parser (roughly 80x faster).
discard abd1878b26 * Optimised the SDF grammar.
discard 3648d1c732 * Explicitly compute the release name.
discard cdb50886f4 * Typos.
discard 3c4bc7276a * Added a note about adding /nix/etc/profile.d/nix.sh to
the profile.
discard 4f72b408a5 Typos and url losser -> catamaran
discard 840551ebdb * Extra bit `S' in `--query --status' output: show whether
there are any substitutes for the derivation.
discard 1109ea0680 * Fixed a subtle uninitialised variable bug in ATermMaps
copied from ATermMaps. Found thanks to Valgrind!
discard 47f19b6293 * Absolutise the specified path in `--import' and
`--profile'.
discard 4db7ef3fcc * Fixed URL.
discard 3778586b2a * Nix Quick Start guide.
discard 8baf50f108 * Manual updates. * Updated the README. Now it just refers
to the manual.
discard 699989b216 * Ignore exit code from strip.
discard 3a4a4aaa88 * Strip binaries in RPMs.
discard f899e8ce4d * Test whether the symlink, not its target, exists.
discard b1c5f3c10d * Doh! Edited `readmanifest.pm' instead of
`readmanifest.pm.in'.
discard 291030b900 * Remove debug message.
discard 447089a5f6 * Catch SIGINT to terminate cleanly when the user tries to
interrupt Nix. This is to prevent Berkeley DB from becoming wedged.
discard 08719c6c97 * Obsolete.
discard 55e11bc0d3 * In `nix-env --query --status', determine the `I' bit by
looking at the output path of a derivation, not the path of its store
expression. This ensures that changes that affect the path of the store
expression but not the output path, do not affect the `installed' state of a
derivation.
discard 9a404e45c9 * Synchronous `nix-pull' with `nix-push'. * Use curl
instead of wget.
discard 16f9b133ec * Improved `nix-push': it now uses HTTP PUT (instead of
rsync) to copy files. Target location is no longer hard-coded; it accepts a
number of URLs on the command line.
discard ff9af107d3 * Option `-B' to always show the output of builders,
regardless of verbosity level.
discard 3495d153b3 * Periodically checkpoint the log.
discard 698e880c9f * Tricky: make sure that the accessor count is not reset to
0 if recovery fails.
discard 23fbc72f5d * Print error messages, not debug messages.
discard 4c4fe7a114 * Changed the extension for store expressions from ".nix"
to ".store" (following the Usenix paper).
discard 46a71c857c * Option `--force-realise' in `nix-store --query'.
discard 30b31a8f61 * Start of nix-env reference. * Some CSS tweaks.
discard b594215531 * Manual updates.
discard 5346536b62 * Include version number in manual.
discard 7959354379 * Upgraded to Berkeley DB 4.2.52. The main advantage of
4.2 is that it automatically removes log files when they are no longer needed.
discard abe8c8c2aa * Include images/ in distribution.
discard 1ff986d51a * book -> manual
discard 2f0b93904b * Install images.
discard 4a373a3e9a * Implemented Eelco V.'s `nix-env -I' command to specify
the default path of the Nix expression to be used with the import, upgrade,
and query commands. For instance,
discard f83c5e3e5f * Implemented Eelco V.'s `-p' command to switch profiles.
It switches the symlink ~/.nix-userenv to the given argument (which defaults
to .../links/current). /etc/profile.d/nix-profile creates this symlink if
it doesn't exist yet. Example use:
discard 0e68af0ce3 * RPM sucks.
discard 9ff3657095 * Generate RPM spec file.
discard 0e09cc12c0 * Add $prefix/store to the RPM. * Allow extra flags to be
passed to RPM.
discard 94175e978a * RPM spec file. * Respect DESTDIR variable.
discard 68f2fadb78 * nix-pull requires libexecdir to be substituted.
discard 392b7e0f8e * Fixed a bug in the upgrade operation.
discard 833f2fc92d * GCC 2.95 compatibility.
discard cf0287c09e * Upgrade operation in `nix-env'. For instance, you can say
discard f3c9783846 * Version numbers can be omitted in install/uninstall.
E.g.,
discard a81b621202 * `-u' -> `-e'. * `--link' / `-l' flag to specify the
switch symlink to use (by default, /nix/var/nix/links/current).
discard 0a753e182a * Oops.
discard df7a718786 * Man pages in sections.
discard 397c8ba898 * Missing semicolons.
discard 528f1d1867 * Bug fix: parallel builds of the same derivation failed
due to lock file removal.
discard 06c5a7075d * Refactoring: put the manifest-reading code in a separate
file.
discard cff6fd22eb * Allow successors that don't exist but have a substitute.
* Integrity: check in successor / substitute registration whether the target
path exists or has a substitute.
discard feaab52203 * Fix for too long command lines when calling `nix-store
--register-[substitutes|successors].
discard 00d4f907e1 * Get rid of the icons in warnings etc.
discard 31fd72ee17 * Epigraph ;-)
discard 16d971bce7 * A nice stylesheet for the manual.
discard 0d3a1a8582 * Add missing files to `make dist'.
discard 0c804c6775 * Regression fix: query flags (e.g., "-qsf") were broken.
discard a3ca74a1c3 * Bug fix in nix-push.
discard 078e20885e * Help text for all (non-script) programs, so no more:
discard 905d5b91fa * Manual fixes (thanks to Merijn).
discard 83ffd4f282 * Fix `make check'.
discard 5d2b424804 * Use a system name that does not include the OS
manufacturer (i.e., "i686-linux" instead of "i686-suse-linux").
discard dc05f29cf6 * Manual updates.
discard 7b0e29b4dc * Overview of nix-env. Recommended reading. :-)
discard 62d9b31d0a * Updates.
discard f6a30ab264 * Updates.
discard 2a4bac5459 * Refactoring. * Convert tabs to spaces.
discard bd0ce1a4be * Minor fix.
discard 80f8c38384 * Typo fix.
discard c38ba181ed * Configure flags to specify the location of the DocBook
DTD / stylesheets.
discard 4da9316c8f * Use svn-revision to construct package version.
discard 6d5877ea12 * Use --nonet flag to prevent fetching of DTD.
discard 12e805cfb0 * Don't hardcode the path to the DocBook DTD/stylesheets.
discard ba73f94b3b * Another fix.
discard 66c115ef5f * More `make dist' fixes.
discard c3ee8c9166 * `make dist' fix.
discard 6e8c19714a * Allow integer bindings in derivations.
discard d1d87badf6 * Bug fix. Hmm, I thought I'd fixed this before :-|
discard 604c45e960 * Autoconf sucks.
discard e7ea52d3b3 * One-click installation :-)
discard b857267893 * Allow the top-level expression to be a derivation. *
Hack: `nix-env -i *' installs all available derivations.
discard 496934a99c * Fix nix-pull.
discard c9cb1fa21f * Bug fix in path invalidation. * More consistency checks.
discard 60e86b124f * Get rid of tab characters.
discard af7e6fe22e * Don't use a hard-coded path.
discard 9486dda115 * Fix nix-push.
discard ab0bc4999a * Maintain integrity of the substitute and successor
mappings when deleting a path in the store. * Allow absolute paths in Nix
expressions. * Get nix-prefetch-url to work again. * Various other fixes.
discard 40d9eb14df * Fix the garbage collector.
discard 7a02d95418 * Remove lock files after building.
discard 06208d1d86 * Uninstallation.
discard 2e9042bd1e * Uninstall command (doesn't work yet).
discard e0b5a492f5 * Installation: add the previously installed packages.
Switch to the new configuration. * Status queries.
discard 9898746ef3 * nix-env: a tool to manage user environments. * Replace
all directory reading code by a generic readDirectory() function.
discard fd7ac09f10 * Refactoring (step 2).
discard ac68840e79 * Refactoring: put the Nix expression evaluator in its own
library so that it can be used by multiple programs.
discard 2be8b5917a * Use `sdftable -s' to get warnings about the grammar. *
Several bug fixes in the grammar. * Allow one-line comments (#... and //...) to
end in EOF.
discard 38946e1378 * Forgot this one.
discard dfc9c64ead * "Fix expression" -> "Nix expression". * More refactoring.
discard b1117ef29d * nix -> nix-store, fix -> nix-instantiate.
discard ce92d1bf14 * "Nix expression" -> "store expression". * More
refactoring.
discard 9f0f020929 * libnix -> libstore.
discard 8798fae304 * Source tree refactoring.
discard 45610ae675 * An forward non-random access input iterator class for
ATermLists.
discard 3e5a019a07 * Some utility functions for working with ATerms.
discard 06ae269c7c * Do not filter when parsing. This is much faster. * Add
some rejections and lexical restrictions to the grammar to make this work.
discard 15801c88fa * Turned the msg() and debug() functions into macros, since
they turned out to be a huge performance bottleneck (the text to printed
would always be evaluated, even when it was above the verbosity level). This
reduces fix-ng execution time by over 50%.
discard d2e3a132fe * Pass CFLAGS to the subpackages.
discard 90e26d392c * Allow null in derivation bindings.
discard cfaea07444 * `null' is a nullary primop.
discard 569e7940f8 * Allow `+' in path names.
discard fa18f1f184 * Assertions. * Logical operators (!, &&, ||, ->).
discard e17e95a828 * Print a shared textual ATerm if the term if very large.
Due to substitutions, Fix terms are very large when printed as trees (in
memory, they are quite compact due to sharing).
discard 80bb477cc4 * Default function arguments.
discard 0690c1c9c0 * Work around problems with the ATerm library.
discard ff31324278 * Ignore options passed to the aterm library.
discard e2655aa332 * Shorter list syntax ([a b c] instead of [a, b, c]).
discard ad0976f8d5 * Grammar changes. Attributes in attribute sets are now
delimited with semicolons instead of comma's. Final semicolon in the set is
optional.
discard 40986312bb * Boolean constants.
discard adf9a45469 * Primops: baseNameOf, toString.
discard c8268ca991 * Fast builds.
discard 7de1b2a698 * Print the exit code of the builder.
discard 1610444671 * Conditions, string equality.
discard 1b4184ccbb * Let syntax.
discard a2a9bacd82 * Filter the substitution list when descending into a
recursive attribute set.
discard 449411e511 * Typo fix.
discard 9210d4d530 * Working evaluator. * Mutually recursive attribute sets. *
Print evaluator efficiency statistics.
discard f1c1a3c97f * Allow empty attribute (argument) sets.
discard 7db08cc924 * Use SGparseString() instead of SGparseFile() because the
latter is buggy. It fails to clear an internal variable (SG_textIndex)
between invocations, so it can be called only once during a program execution.
discard 403cb9327f * Factor out evaluation into a separate file.
discard 9f8f39aa3c * Clean up the imploded parse tree. Quotes around strings
are removed, paths are absolutised relative to the path containing the
expression we just parsed, and integer literals are converted to actual
integers.
discard e537844f4e * Bottomup rewrite function.
discard 442b09ea33 * Don't use a search path.
discard 933b3f677d * Attribute selection operator.
discard b95a3dc45b * Basic grammar and parser for the Fix language. We use
libsglr and friends to do the parsing. The parse table is embedded in the
Fix executable using bin2c, which converts an arbitrary file into a C
character array.
discard 4d728f6a36 * Forked new version of Fix.
discard f31661a3b5 * Add sdf2-bundle to externals.
discard 7102455cba * Don't cache the manifest.
discard 92eea8fc4e * Fix a race condition in addTextToStore().
discard c4e7d324b8 * Use writeFull().
discard 9d95aafe8c * Ad hoc per-package logging. When Nix performs a
derivation, it now writes stdout/stderr of the builder to
${prefix}/var/log/nix/x, where x is the file name of the derivation
expression, e.g.,
discard 143427f90b * Dead code removal.
discard 4a8948b7a6 * Some wrapper classes to ensure that file descriptors /
directory handles are closed when they go out of scope.
discard c62433751d * Finished refactoring the tree.
discard 53e376d836 * Refactored the source tree.
discard 0eab306466 * NarPath -> NarName.
discard a0a7a4e087 * Remove some debug output.
discard 0791282b2f * Substitutes and nix-pull now work again. * Fixed a
segfault caused by the buffering of stderr. * Fix now allows the specification
of the full output path. This should be used with great care, since it
by-passes the normal hash generation. * Incremented the version number to 0.4
(prerelease).
discard ab5e8767fa * Get nix-push to work again. * Fixed svn:ignore on
externals/.
discard c78bf11524 * Enable buffering of stderr in C++.
discard f7c7aad135 * Upgraded to Berkeley DB 4.1.25 and do not synchronously
flush the log on commit. This means that there is a small change that some
transactions may be rolled back in case of a system crash, but this should
not be a problem (it merely might cause some expression realisations to be
rolled back), and it vastly improves performance.
discard 181aa3dc41 * Don't sort the result of `--query --list'.
discard ebff82222c * Refactoring: move all database manipulation into
store.cc. * Removed `--query --generators'.
discard 5fc7127643 * Keep sources (derivation expression) by default,
`--no-source' to override.
discard c190f051ac * Automatically recover the database in case of a crash.
discard 1d61e473c8 * New query `nix --query --predecessors' to print the
predecessors of a Nix expression.
discard 0abe185688 * `nix --verify': check and repair reverse mapping for
successors.
discard d3d5e77810 * Reverse mappings for the successor and substitute
mappings.
discard 1eb4da156c * Performance improvement: don't register already
registered terms, thus greatly reducing the number of db transactions.
discard 08b7319f5b * Follow successors by default (use `--no-successors' to
override).
discard 6409c215e5 * Fixed nix-switch.
discard 6baa2c4420 * Get rid of identifiers since they are redundant now.
This greatly simplifies stuff.
discard b9f4942bd2 * string -> Path.
discard 5d4171f7fb * Synchronise terminology with the ICSE paper (e.g., slice
-> closure, fstate -> Nix expression). * Fix src/test.cc.
discard 563afb7fcc * Use passive FTP in wget.
discard e78f753aa8 * Include the right files in a distribution.
discard 4193d62e08 * Nix now respects $TMPDIR for the creation of temporary
build directories. * Retry creation of a temporary directory (with a different
name) in the case of EEXIST.
discard 6d478597c7 * Argggg...
discard 9fb94f4f2f * Forgot a file.
discard 9ba2397ea9 * Added missing files to `make dist'.
discard 41730f5779 * Put the SVN revision number in the version string.
discard 1c7d6bf5fc * Removed references to char_traits so that boost/format
also works on GCC 2.95.
discard d930a9bc5a * Added some missing #includes.
discard 803a924b77 * Make nicer dot graphs. Also show the inner structure of
slices.
discard c0bbed0959 * Factored out dot graph generation into a separate file.
discard 0d2bc68681 * Do not show the output of the builder unless the
verbosity is at least at debug level (-vvv). The output is still appended to
the build log in /nix/var/log/nix.
discard 25304af72e * Set a path.
discard b018517314 * Do not try to remove write permission from symlinks,
since chmod() follows symlinks. (Note that the permissions on symlinks are
ignored anyway.)
discard c4f1f49574 * nix-push generated invalid (old-style) slices. * nar.sh
needs a path.
discard 31be53cd0a * Fix the atrocious (exponential? factorial?) time
complexity in `nix --query --requisites'.
discard 920193beb1 * Don't continue when the call to nix fails.
discard a88144215c * Remove write permission from output paths after they have
been built. * Point $HOME to a non-existing path when building to prevent
certain tools (such as wget) from falling back on /etc/passwd to locate the
home directory (which we don't want them to look at since it's not declared
as an input).
discard 56b98c3857 * Some work on the introduction.
discard 956801fcc2 * Use maps and sets in the FState data type. This ensures
normalisation of slices and derivations w.r.t. order of paths, slice
elements, etc.
discard 624c48260f * Change the abstract syntax of slices. It used to be that
ids were used as keys to reference slice elements, e.g.,
discard 710175e6a0 * Bumped the version number to 0.3.
discard ed0db2e0d8 * Fixed a serious bug in the computation of slices.
Sometimes the slices would not be properly closed under the path reference
relation.
discard 1472cc4825 * Pipe /dev/null into stdin.
discard 2de8504791 * Delete the temporary directories of failed builds by
default, and an option `--keep-failed' to override this behaviour.
discard 31e4aa6439 * Allow lists in package bindings, e.g.,
discard ebbb6ce578 * Most shells initialise PATH to some default
(/bin:/usr/bin:...) when PATH is not set. We don't want this, so fill it in
with some dummy value.
discard c32e01eab2 * Revision 300! * Put `@' in front of echo's in the
Makefile.
discard 08f9cfe267 * No longer automatically download Berkeley DB / ATerm.
discard 96c7b98bf0 * Argument support in Fix. Arguments can be passed through
the builder using the `args' binding:
discard 555347744d * Derivation expressions now can specify arguments to be
passed to the builder. Note that this unfortunately causes all Fix-computed
hashes to change.
discard e374dbf89b * A script `nix-prefetch-url' to fetch a URL, place it in
the Nix store, and print its hash.
discard 01e30360d4 * Don't use a temporary file.
discard 163db7367f * Fix can now read expressions from stdin (by saying `fix
-').
discard 161aab582b * Use a catalog when calling xsltproc.
discard a24cb19361 * Use xmllint instead of nsgmls to validate the manual.
discard 9ee3b7a37a * Function application test cases.
discard dc0ef2ca98 * Detect infinite loops using blackholing.
discard 2e16ff22ac * Fix man page.
discard 5cde23f869 * Function() takes a list of formals.
discard 0a2de7f543 * Lam -> Function. Doh!
discard 95b49f8044 * Manual updates.
discard 68022552d2 * Put the pre-built manual and man pages in the tar
distribution.
discard c34a153ae5 * Documented the `--query' operation.
discard b4f88d0ec3 * Split the book.xml into several xml files.
discard 469f1eba56 * Documented some Nix operations.
discard e405ca506e * Generate man pages from the manual.
discard c602930e08 * deletePath(): some operating systems (e.g., Mac OS X)
don't like it when we delete entries from a directory while we are reading
it. So read the directory into memory, then delete its contents.
discard 4b7b0bd12c * Started on the introduction.
discard 74867e72f2 * Start of manual; installation instructions.
discard f8035d06f2 * Allow a name to be given to a system configuration
through `--name NAME'. E.g., on the losser Subversion server, I do
`nix-switch --name svn $(fix ...)' to atomically upgrade the server (the SVN
server uses the Apache and Subversion installations in
/nix/var/nix/links/svn).
discard 9ad39df282 * `==' is not a valid operator.
discard d551062ec4 * Scan for wget and use the full path in fetchurl.sh. * Use
nix-hash (not md5sum) in fetchurl.sh.
discard 236eb59293 * Allow locks on paths to be acquired recursively (that is,
if the process is already holding a lock on a path, it may acquire the lock
again without blocking or failing). (This might be dangerous, not sure).
Necessary for fast builds to work.
discard 720f06e3b0 * A flag `--flat' to just compute the MD5 checksum of the
contents of a regular file. I.e., `nix-hash --flat' is equivalent to the
coreutils `md5sum' command (which doesn't exist on all systems).
discard 37483672d4 * App -> Call. * Allow booleans in package environment
bindings (True maps to "1", False maps to "").
discard d34b4d4f28 * Conditionals.
discard b9c9b461ea * Made nix-push much faster.
discard 4ce652640b * Cache result of fstatePaths(). TODO: do this in
fstore.cc.
discard fd30f52cfc * Made nix-pull much faster by performing all Fix
instantiations at the same time.
discard 17f05dba77 * Allow the top-level expression to be a list of
expressions that normalise to Nix expression.
discard d6b6b2d3a8 * Delete obstructed paths prior to building.
discard d2e963f7a3 * Path locking in addToStore() and expandPath().
discard c95b4ad290 * In normaliseFState(), wrap registration of the output
paths and the normal form in a single transaction to ensure that if we crash,
either everything is registered or nothing is. This is for recoverability:
unregistered paths in the store can be deleted arbitrarily, while registered
paths can only be deleted by running the garbage collector.
discard d99d04e644 * Defensive programming against POSIX locking idiocy. *
Simplified realiseSlice().
discard 545145cd58 * normaliseFState() now locks all output paths prior to
building, thus ensuring that simultaneous invocations of Nix don't clobber
each other's builds.
discard 9df93f30bd * Don't use substitutes in addToStore().
discard 06434072e7 * Put the database verifier in a transaction.
discard 06d3d7355d * Enclose most operations that update the database in
transactions.
discard 177a7782ae * Use a more reasonable log file size (256 KB instead of 10
MB). * Checkpoint on exit.
discard 4a013962bd * Started using Berkeley DB environments. This is
necessary for transaction support (but we don't actually use transactions
yet).
discard 758bd4673a * Set execute bit.
discard 9f4c19276d * Basic makefile.
discard 26ff1cdf89 * A better test case for Nix race conditions.
discard 64c617e984 * Directories for the manual.
discard 2ac02440dc * Test cases for races.
discard aaee69cfde * INSTALL_DATA -> INSTALL_PROGRAM to ensure that the
execute bit remains set.
discard 83075304e5 * Don't make the builder executable.
discard 1cb030736e * Bug: Fix does not allow empty names, so don't generate
them.
discard a01629894d * Use `--query --requisites' and include successors when
pushing. Don't use `--query --generators' anymore.
discard 40f32ae00a * Typo: if -> elsif.
discard 8846465934 * Get garbage collection and cache population to work
*properly*. Renamed `fstateRefs' to `fstateRequisites'. The semantics of
this function is that it returns a list of all paths necessary to realise a
given expression. For a derive expression, this is the union of requisites
of the inputs; for a slice expression, it is the path of each element in the
slice. Also included are the paths of the expressions themselves.
Optionally, one can also include the [...]
discard dc14a3de46 * Nicer dot graphs.
discard 79ba0431db * `fstateRefs' now works on derive expressions as well.
TODO: make this more efficient. * A flag `-n' in 'nix --query' to normalise
the argument. Default is not to normalise.
discard 5acb45446e * Let `nix --install' print out the id of the normal form.
* Some minor refactoring.
discard ce5fd1cc12 * Do not set LD_LIBRARY_PATH; it breaks many things. E.g.,
SuSE's ssh dynamically links against libdb4 (?!), due to LD_LIBRARY_PATH it
picks up our libdb4 instead of SuSE's libdb4, but our libdb4 uses another
glibc so loading barfs.
discard dec8fbc52b * Check for the pthread library (db4 needs it on some
platforms).
discard 949c4fa1a8 * `nix --help'. * `nix --query --graph' to print a dot
dependency graph of derive expressions.
discard f21b341957 * Fix message.
discard 5d7a20dac3 * Prevent spurious rebuilds of db/aterm.
discard 0a0c1fcb4d * The `-v' flag no longer takes an argument; it should be
repeated instead (e.g., `-vvvv' for lots of output). Default is to only
print error messages.
discard 3b521bb1bd * Do sync the database, since not doing so caused database
changes not to reach the disk at all. Looks like a bug.
discard 1a7468a57a * Debug levels. Use `--verbose / -v LEVEL' to display only
messages up to the given verbosity levels. These currently are:
discard b75719b984 * Don't sync the database on close. This was killing
performance. (Of course, the real problem is that we open the database for
*every* operation; we should only open it once. And we should use
transactions.)
discard 39ce70025b * Incorporated Berkeley DB and ATerm into the source tree.
* `make dist'.
discard 9202570f8c * libdb_cxx-4 -> libdb_cxx
discard e877c69d78 * Substitutes now should produce a path with the same id as
they are substituting for (obvious, really).
discard df648c4967 * `nix --query --expansion' (`-qe') to get any path with
content corresponding to the given id.
discard d84931ee56 * Changed nix-pull to match nix-push.
discard c7bdb76fe4 * Syntax fixes. * When pushing, put the hash in the file
name so that the client can verify (proof-carrying file names?).
discard d5ee6f8700 * In `--query --generators', print out paths, not ids.
(There should really be a switch for this).
discard 2616e6a6f3 * Check for errors.
discard 9f4ad99e92 * Canonicalise path.
discard 249988a787 * Allow the output/expression id to be forced to a certain
value; this potentially dangerous feature enables better sharing for those
paths for which the content is known in advance (e.g., because a content hash
is given). * Fast builds: if we can expand all output paths of a derive
expression, we don't have to build.
discard 49231fbe41 * Changes to the command line syntax of Nix. * A function
to find all Nix expressions whose output ids are completely contained in some
set. Useful for uploading relevant Nix expressions to a shared cache.
discard 401452e57a * Memoize the evaluation of Fix expressions to speed up
computation.
discard 7984cfc7c1 * Argh, another short-write problem. Added wrappers around
read()/write() to fix this once and for all.
discard 667a6afb9d * Remove accidentally added file.
discard 6f1a0f948d * Refactorings.
discard ab350eafd2 * Generate nar.sh, fetchurl.sh.
discard b3fc38bf6a * For debugging: `nix --verify' to check the consistency of
the database and store.
discard 71cc3ceae5 * Preserve the executable bit.
discard 54664b6fb7 * The write() system call can write less than the requested
number of bytes, e.g., in case of a signal like SIGSTOP. This caused `nix
--dump' to fail sometimes.
discard 335aa1c35d * Doh!
discard 6822fd7bf4 * Bug fix: slices are transitive, so if we detect that an
input path is referenced in an output paths, we also have to add all ids
referenced by that input path. * Better debug assertions to catch these sorts
of errors.
discard 9d56ca219f * Substitute fixes.
discard b9ecadee6e * Fix the -qr query.
discard c11bbcfd26 * Fix self-referential outputs. * Fix -qp query.
discard d41d085b77 * Get Fix and Nix to work again.
discard 7b3f44e05b * The new normaliser now passes the unit tests.
discard f5b6fa5256 * Basic work on allowing derive expressions to build
multiple paths. This is not entirely trivial since this introduces the
possibility of mutual recursion. * Made normal forms self-contained. * Use
unique ids, not content hashes, for content referencing.
discard 8898e86b4f * Get the garbage collector to work again.
discard 3509299aca * After building, scan for actual file system references as
opposed to declared references. This prunes the reference graph, thus
allowing better garbage collection and more efficient derivate distribution.
discard 135b7d54db * Don't check for staleness by default.
discard e6363b05ae * Pass $(prefix) and other variables through -D..., not
through config.h, to prevent silly Autoconf problems.
discard 9c620e4afa * Generate the scripts so that we can substitute the prefix
etc. correctly. * Fixed nix-switch.
discard 5304a1eb3a * Fetchurl: check md5 checksum.
discard 73b163c1a1 * Fix a bug that caused Fix not to be deterministic (due to
addToStore returning different paths if the hash of the path to be added was
already available in the store under a different name).
discard c834a5c597 * Fix handling of pipes (read(2) may not return the
required number of bytes in one call).
discard 822c072cfa * Compress Nix archives when pushing them.
discard 9bcc31c941 * Working derivate sharing.
discard 81304a6bb5 * Convert tabs to spaces.
discard e5fbf58041 * A command to register successor fstate expressions.
discard 8511571f65 * Performance enhancement.
discard 1d1c3691d2 * The policy-free derivate sharing now *almost* works. :-)
For any hash for which no local expansion is available, Nix can execute a
`substitute' which should produce a path with such a hash.
discard d072485d28 * Get `nix-push' working again. It now uses Nix/Fix to
create Nix archives (using the package in corepkgs/nar). * queryPathByHash ->
expandHash, and it takes an argument specifying the target path (which may be
empty). * Install the core Fix packages in $prefix/share/fix. TODO: bootstrap
Nix and install Nix as a Fix package.
discard 5d4b90b689 * Actually go through the search directories when looking
for files.
discard 089b436175 * Deleted the sys directory.
discard b96239c657 * Moved the fetchutl package to corepkgs.
discard 9ebd78144a * Added a directory for standard Fix descriptors.
discard 6011bd0da2 * Outline of the new scheme for derivate distribution.
discard 2b95a9dc05 * When computing the set of paths referenced by an
expression, also include the paths of the subterms.
discard 9a99dc736d * Canonicalise paths so that Fix produces identical Nix
expressions for identical inputs.
discard cab3f4977a * A path canonicaliser that doesn't depend on the existence
of paths (i.e., it doesn't use realpath(3), which is broken in any case).
Therefore it doesn't resolve symlinks.
discard 333f4963de * The output of a Derive() node is not a referenced path.
discard 40274c1f4f * A command to query the paths referenced by an fstate
expression. * Use a temporary directory for build actions.
discard a279137327 * Get `--dump' and `--delete' to work again.
discard 85a913a3e7 * Renamed `id' -> `name' to remove the implication of
uniqueness.
discard 0b38b43bab * deletePath() now removes the path from the hash2paths
mapping.
discard ab644ad10b * BaseName() primitive for the generation of more sensible
names (especially in fetchurl.fix).
discard a5a90f501e * Get rid of the `netsources' database. * Rename the `refs'
database to `hash2paths'.
discard be96c2189c * `--realise' -> `--install'.
discard 5895c160c4 * Make dbRefs a mapping from Hash to [Path].
discard 609a224848 * Fixed `make check' as well.
discard 224c585aba * Refactoring on the file names.
discard 7952a8053c * A utility `nix-hash' to compute Nix path hashes.
discard bfa5d77211 * Bug fix: properly check result of open().
discard 82e3d8fafe * Got Fix working again.
discard f826e432aa * Refactoring: move initialisation and argument parsing
into a shared file.
discard 01b34fe584 * Cleanup.
discard 207ff2caf0 * Caching of expression successors.
discard 40b5936691 * Realisation of Derive(...) expressions.
discard 3da9687854 * Realisation of File(...) expressions.
discard bb03c45ca0 * Added the Boost format library which provides a safe
printf replacement.
discard d4c3edfaba * Normalisation.
discard 3ec5252582 * Improved syntax and semantics for Nix expressions.
discard 2b07b0e7eb * Minor cleanups.
discard 692b562342 * `nix --delete' command.
discard c0cbaef4be * `nix --restore' command.
discard 5f5cab0ac7 * A function to restore from a Nix archive. * addValue()
can now import any dumpable FS object.
discard 85effedca3 * Flags to indicate how values are specified on the command
line (--hash, --file, --name).
discard 5079ccb455 * Move most of Nix into a library (libnix.a). * Run `test'
on `make check'.
discard 1849aa2a72 * Refactoring: move dump function into archive.cc.
discard 38e12df631 * `nix --dump' command.
discard aeaffec785 * Dump symlinks.
discard 94cf1f86bb * Lambdas, applications, substitutions.
discard bc57eb3c8a * Set CPLUS_INCLUDE_PATH as well as C_INCLUDE_PATH.
Otherwise g++ won't see header files under Nix control.
discard fab7b128b9 * Automake sucks.
discard 34fcf5fa0c * Started integrating the new evaluation model into Nix. *
Cleaned up command-line syntax.
discard 7a96da3627 * Test for expression dereferencing.
discard 6656993f83 * Derefencing of hashed expressions.
discard a7ab242fb4 * Simplify the evaluator.
discard c739e20585 * Argument processing.
discard 727beb798a * Canonicalization: when hashing directories, sort the
directory entries by name.
discard 2f04e7102e * Path hashing.
discard a09e66da5a * Description of path hashing algorithm.
discard 822794001c * Started implementing the new evaluation model. * Lots of
refactorings. * Unit tests.
discard b9f09b3268 * AST for Nix expressions.
discard 21fe717ce2 * Refactoring: hash class.
discard f66055fa1e * Set umask to 0022 on startup.
discard 5908663f42 * Send log output to stderr.
discard d1f5fd7216 * Log the output of builders to $prefix/var/log/nix.
discard 64582f54be * Open the database read-only when enumerating tables.
discard 383297e0e8 * Don't set MANPATH. It's not necessary.
discard 84e235eae8 * Set MANPATH and PKG_CONFIG_PATH.
discard 5e01b220b3 * Fix the rsync destination.
discard 4d21cda0cd * Fix for big-endian platforms: check for endianness in MD5
computations. This is done at runtime, which is inefficient, but I can't be
bothered to write an Autoconf test right now.
discard 9efad76595 * FreeBSD / ISO C++ compatibility fixes.
discard d8bdf5b06e * Removed some debug code that prevented packages from
building.
discard a9f2928ed6 * Moved the package descriptors and build scripts out of
the Nix tree.
discard 8b930a0c94 * Some refactoring.
discard f8d91f20e6 * Nix can now fetch prebuilts (and other files) from the
network, iff a mapping from the hash to a url has been registered through
`nix regurl'.
discard 13176d74cc * Updated Fix descriptors to reflect the new Fix abstract
syntax.
discard 7dd91d3779 * Prebuilt package sharing. We allow transparent binary
deployment by sharing package directories (i.e., the result of building a Nix
descriptor).
discard 0ef4b6d0f8 * Cleaned up the semantics of Fix expressions.
discard d6d930a975 * Bug fix: deleting the old links didn't work properly.
discard fcc5ae151b * Remove build directory from a package directory after
building it.
discard 76205df09c * Removed old Nix descriptors.
discard 243370bc52 * nix-switch now removes the link to the previously
activated system package as a root of the garbage collector, unless `--keep'
is specified.
discard 24b3d0759e * File removed.
discard 9713e8577f * getpkg, delpkg, and so on now accept multiple arguments.
discard 49e0d743d7 * Fix descriptors for Pan and its dependencies.
discard f546e0cda4 * Fix descriptor for Subversion 0.21.0.
discard 6faa154c89 * Add "... || exit 1" to every command to catch failure.
discard e59c3246b9 * Redirect stdout to stderr when executing the build script.
discard f7526febe4 * A garbage collector for installed packages.
nix-collect-garbage doesn't actually delete any packages, it just prints
their descriptor hashes. So we can do
discard 30a6122f80 * When we activate a descriptor in nix-switch, remember its
hash. This allows us to find out all `live' packages on the system by doing
discard b762f4df7f * In `fix --instantiate', only print out the hashes of the
Nix descriptors generated out of Fix descriptors specified on the command
line. This allows us to say:
discard aa8fda4b54 * We no longer use nix-populate standalone, rather we use
it as a build action for `system' packages (like system.fix) that have
dependencies on all packages we want to activate.
discard f56b7312b2 * Descriptor importing in Fix.
discard cc6eafb3d0 * FreeBSD / gcc 2.95 compatibility fixes. * A script to
generate prebuilt registration scripts.
discard f7ef88df1f * Added some installation instructions to the readme.
discard 0d2b24cdd1 * `Fix' is a high-level descriptor instantiator for Nix.
It replaces nix-instantiate.
discard 814b256da4 * Better installation: make directories, create database. *
Fixed the register script.
discard 2eea8832f0 * The latest version of Pan.
discard 1447cf35bd * Delete source after building.
discard 136c00e881 * Autoconf / Automake configuration and building.
discard ab723e341a * Minor refactoring: use iterators to process arguments.
discard c68dca5dac * Script to register pre-built packages.
discard 5bc26fb73f * Importing and exporting of pre-built packages.
discard 383f9bb0f1 * Use ATerms for Nix descriptors.
discard ced20f187e * Nix descriptor for Subversion.
discard 31f177ef0a * Check for collissions.
discard 278ea4097e * Don't fork in `nix run'.
discard f915f77349 * Allow arguments to be passed to programs in `nix run'.
discard 0f40a560ca * Added a script nix-activate which builds a list of
"activated" packages (i.e., the packages that should appear in the user's
$PATH, and so on). Based on this list, the script nix-populate creates a
hierarchy of symlinks to the relevant files in those packages (e.g., for
pkg/bin and pkg/lib).
discard 3f1a1457e9 * Integrate hash into instantiated descriptor file names. *
Use MD5::Digest.
discard 73c53935d0 * For efficiency: md5 integrated into nix. * Command `nix
ensure' which is like `nix getpkg' except that if the has refers to a run
action it will just ensure that the imports are there. * Command `nix
closure' to print out the closure of the set of descriptors under the import
relation, starting at a set of roots. This can be used for garbage collection
(e.g., given a list of `activated' packages, we can delete all packages not
reachable from those). * Com [...]
discard eeab86e0ac * Typo fix.
discard 2dc84e5569 * Descriptors now have a "system" field specifying the
platform that the build or run action should be perfomed on. This ensures
that descriptors have different hashes on different platforms.
discard 9d2f128252 * Refactoring.
discard 8d682ba551 * A descriptor for running the Pan newsreader. * Added
descriptors for gtkspell and its support package pspell. Gtkspell is an
optional dependency of Pan, so we should add the ability to nix-instantiate
to instantiate variants of a package based on a selection of features.
discard 20d165c344 * A command to run programs in Nix packages, that is, to
execute a run action. Run actions are described by uniquely hashed
descriptors, just like build actions. Therefore run actions can have
dependencies, but these need not be the same as the build time dependencies
(e.g., at runtime we can link against a different version of a dynamic
library). Example:
discard 800d8e950f * Added a command to list installed packages.
discard 2e59698b78 * Added a command to verify the consistency of the database.
discard fa51d6fcd9 * Forgot to commit this one.
discard e582ee67cd * Fetch sources from the network.
discard 88d257b17f * Renamed dist -> build.
discard 4c43711810 * Descriptor templates for the Pan newsreader and all its
dependencies.
discard cadc3852e4 * nix-instantiate now instantiantes the closure of the set
of descriptor templates under the import relation. I.e., we can now say:
discard f7a98e081d * Various updates.
discard b3594e9eaf * A script to instantiate package descriptors from
templates.
discard 8999f923ea * Improved Nix. Resources (package descriptors and other
source files) are now referenced using their cryptographic hashes.
discard 18ebf518de * Converted to C++.
discard 75d788b0f2 * Initial version of nix.
discard 841fcbd047 * And a trunk to go along with that.
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- branch nix deleted (was 0dccab9f41),
guix-commits <=