* A solution to the library abstraction problem (i.e., if
package X needs library Y, and library Y needs library Z,
then we do not (generally) want to declare Z as a input to X
since that would break abstraction). This was not possible
under the old Nix.
svn path=/nixpkgs/trunk/; revision=150
The problem of transitive imports needs to be adressed, though, as
evidenced by, e.g., the descriptor for pan. That is, if C depends
on library B, and B depends on library A, then C also depends on
library A. However, this breaks modularity: C should not have to
declare a dependency on A explicitly.
The solution is to have B re-export A, e.g., by creating symlinks
from B to the files in A.
svn path=/nixpkgs/trunk/; revision=68
* Conditionals and variables in Fix expressions. This allows, e.g.,
Descr(
[ Bind("pkgId", "subversion-0.21.0")
, Bind("httpsClient", Bool(True))
, Bind("httpServer", Bool(True))
, Bind("ssl", If(Var("httpsClient"), Fix("./openssl-0.9.7b.fix"), ""))
, Bind("httpd", If(Var("httpServer"), Fix("./httpd-2.0.45.fix"), ""))
...
])
which introduces domain feature variables httpsClient and httpServer
(i.e., whether Subversion is built with https client and webdav
server support); the values of the variables influences package
dependencies and the build scripts.
The next step is to allow that packages can express constraints on
each other. E.g., StrategoXT is dependent on an ATerm library with
the "gcc" variant enabled. In fact, this may cause several
Nix instantiations to be created from a single Fix descriptor. If
possible, Fix should try to find the least set of instantiations
that obeys the constraints.
svn path=/nix/trunk/test/; revision=53
build action for `system' packages (like system.fix) that have
dependencies on all packages we want to activate.
So the command sequence to switch to a new activation configuration
of the system would be:
$ fix -i .../fixdescriptors/system.fix
...
system.fix -> 89cf4713b37cc66989304abeb9ea189f
$ nix-switch 89cf4713b37cc66989304abeb9ea189f
* A nix-profile.sh script that can be included in .bashrc.
svn path=/nix/trunk/test/; revision=39
the build or run action should be perfomed on. This ensures that
descriptors have different hashes on different platforms.
svn path=/nix/trunk/test/; revision=18
* 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.
svn path=/nix/trunk/test/; revision=16
files) are now referenced using their cryptographic hashes.
This ensures that if two package descriptors have the same contents,
then they describe the same package. This property is not as
trivial as it sounds: generally import relations cause this property
not to hold w.r.t. temporality. But since imports also use hashes
to reference other packages, equality follows by induction.
svn path=/nix/trunk/pkg/; revision=5