* Cleaned up the semantics of Fix expressions.

* 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
This commit is contained in:
Eelco Dolstra 2003-04-25 15:33:50 +00:00
parent 7fa3a3f2fa
commit 94dbdc53b2
17 changed files with 146 additions and 84 deletions

12
build/httpd-build.sh Executable file
View file

@ -0,0 +1,12 @@
#! /bin/sh
export PATH=/bin:/usr/bin
top=`pwd`
tar xvfz $src || exit 1
cd httpd-* || exit 1
./configure --prefix=$top --enable-ssl --with-ssl=$ssl --enable-mods-shared=all || exit 1
make || exit 1
make install || exit 1
cd $top || exit 1
rm -rf httpd-* || exit 1

12
build/openssl-build.sh Executable file
View file

@ -0,0 +1,12 @@
#! /bin/sh
export PATH=/bin:/usr/bin
top=`pwd`
tar xvfz $src || exit 1
cd openssl-* || exit 1
./config --prefix=$top || exit 1
make || exit 1
make install || exit 1
cd $top || exit 1
rm -rf openssl-* || exit 1

View file

@ -5,10 +5,22 @@ export PATH=/bin:/usr/bin
export LDFLAGS=-s
top=`pwd`
if test $httpsClient; then
extraflags="--with-ssl --with-libs=$ssl $extraflags"
fi
if test $httpServer; then
extraflags="--with-apxs=$httpd/bin/apxs --with-apr=$httpd --with-apr-util=$httpd $extraflags"
extrainst="APACHE_LIBEXECDIR=$top/modules $extrainst"
fi
echo "extra flags: $extraflags"
tar xvfz $src || exit 1
cd subversion-* || exit 1
./configure --prefix=$top --with-ssl || exit 1
./configure --prefix=$top $extraflags || exit 1
make || exit 1
make install || exit 1
make install $extrainst || exit 1
cd $top || exit 1
rm -rf subversion-* || exit 1

View file

@ -1,10 +1,10 @@
Descr(
[ Bind("pkgId", Str("aterm-2.0"))
, Bind("releaseId", Str("1"))
[ Bind("pkgId", "aterm-2.0")
, Bind("releaseId", "1")
, Bind("createGCC", Bool(True))
, Bind("createGCC", True)
, Bind("src", File(Url("http://www.cwi.nl/projects/MetaEnv/aterm/aterm-2.0.tar.gz")))
, Bind("build", File(Local("../build/aterm-build.sh")))
, Bind("src", Source(Url("http://www.cwi.nl/projects/MetaEnv/aterm/aterm-2.0.tar.gz")))
, Bind("build", Source("../build/aterm-build.sh"))
]
)

View file

@ -1,11 +1,11 @@
Descr(
[ Bind("pkgId", Str("atk-1.2.0"))
, Bind("releaseId", Str("1"))
[ Bind("pkgId", "atk-1.2.0")
, Bind("releaseId", "1")
, Bind("pkgconfig", Pkg(Fix("./pkgconfig-0.15.0.fix")))
, Bind("glib", Pkg(Fix("./glib-2.2.1.fix")))
, Bind("pkgconfig", Fix("./pkgconfig-0.15.0.fix"))
, Bind("glib", Fix("./glib-2.2.1.fix"))
, Bind("src", File(Url("ftp://ftp.gtk.org/pub/gtk/v2.2/atk-1.2.0.tar.bz2")))
, Bind("build", File(Local("../build/atk-build.sh")))
, Bind("src", Source(Url("ftp://ftp.gtk.org/pub/gtk/v2.2/atk-1.2.0.tar.bz2")))
, Bind("build", Source("../build/atk-build.sh"))
]
)

View file

@ -1,10 +1,10 @@
Descr(
[ Bind("pkgId", Str("glib-2.2.1"))
, Bind("releaseId", Str("1"))
[ Bind("pkgId", "glib-2.2.1")
, Bind("releaseId", "1")
, Bind("pkgconfig", Pkg(Fix("./pkgconfig-0.15.0.fix")))
, Bind("pkgconfig", Fix("./pkgconfig-0.15.0.fix"))
, Bind("src", File(Url("ftp://ftp.gtk.org/pub/gtk/v2.2/glib-2.2.1.tar.bz2")))
, Bind("build", File(Local("../build/glib-build.sh")))
, Bind("src", Source(Url("ftp://ftp.gtk.org/pub/gtk/v2.2/glib-2.2.1.tar.bz2")))
, Bind("build", Source("../build/glib-build.sh"))
]
)

View file

@ -1,11 +1,11 @@
Descr(
[ Bind("pkgId", Str("gnet-1.1.8"))
, Bind("releaseId", Str("1"))
[ Bind("pkgId", "gnet-1.1.8")
, Bind("releaseId", "1")
, Bind("pkgconfig", Pkg(Fix("./pkgconfig-0.15.0.fix")))
, Bind("glib", Pkg(Fix("./glib-2.2.1.fix")))
, Bind("pkgconfig", Fix("./pkgconfig-0.15.0.fix"))
, Bind("glib", Fix("./glib-2.2.1.fix"))
, Bind("src", File(Url("http://www.gnetlibrary.org/src/gnet-1.1.8.tar.gz")))
, Bind("build", File(Local("../build/gnet-build.sh")))
, Bind("src", Source(Url("http://www.gnetlibrary.org/src/gnet-1.1.8.tar.gz")))
, Bind("build", Source("../build/gnet-build.sh"))
]
)

View file

@ -1,13 +1,13 @@
Descr(
[ Bind("pkgId", Str("gtk+-2.2.1"))
, Bind("releaseId", Str("1"))
[ Bind("pkgId", "gtk+-2.2.1")
, Bind("releaseId", "1")
, Bind("pkgconfig", Pkg(Fix("./pkgconfig-0.15.0.fix")))
, Bind("glib", Pkg(Fix("./glib-2.2.1.fix")))
, Bind("atk", Pkg(Fix("./atk-1.2.0.fix")))
, Bind("pango", Pkg(Fix("./pango-1.2.1.fix")))
, Bind("pkgconfig", Fix("./pkgconfig-0.15.0.fix"))
, Bind("glib", Fix("./glib-2.2.1.fix"))
, Bind("atk", Fix("./atk-1.2.0.fix"))
, Bind("pango", Fix("./pango-1.2.1.fix"))
, Bind("src", File(Url("ftp://ftp.gtk.org/pub/gtk/v2.2/gtk+-2.2.1.tar.bz2")))
, Bind("build", File(Local("../build/gtk+-build.sh")))
, Bind("src", Source(Url("ftp://ftp.gtk.org/pub/gtk/v2.2/gtk+-2.2.1.tar.bz2")))
, Bind("build", Source("../build/gtk+-build.sh"))
]
)

View file

@ -1,15 +1,15 @@
Descr(
[ Bind("pkgId", Str("gtkspell-2.0.2"))
, Bind("releaseId", Str("1"))
[ Bind("pkgId", "gtkspell-2.0.2")
, Bind("releaseId", "1")
, Bind("pkgconfig", Pkg(Fix("./pkgconfig-0.15.0.fix")))
, Bind("glib", Pkg(Fix("./glib-2.2.1.fix")))
, Bind("atk", Pkg(Fix("./atk-1.2.0.fix")))
, Bind("pango", Pkg(Fix("./pango-1.2.1.fix")))
, Bind("gtk", Pkg(Fix("./gtk+-2.2.1.fix")))
, Bind("pspell", Pkg(Fix("./pspell-.12.2.fix")))
, Bind("pkgconfig", Fix("./pkgconfig-0.15.0.fix"))
, Bind("glib", Fix("./glib-2.2.1.fix"))
, Bind("atk", Fix("./atk-1.2.0.fix"))
, Bind("pango", Fix("./pango-1.2.1.fix"))
, Bind("gtk", Fix("./gtk+-2.2.1.fix"))
, Bind("pspell", Fix("./pspell-.12.2.fix"))
, Bind("src", File(Url("http://pan.rebelbase.com/download/extras/gtkspell/SOURCES/gtkspell-2.0.2.tar.gz")))
, Bind("build", File(Local("../build/gtkspell-build.sh")))
, Bind("src", Source(Url("http://pan.rebelbase.com/download/extras/gtkspell/SOURCES/gtkspell-2.0.2.tar.gz")))
, Bind("build", Source("../build/gtkspell-build.sh"))
]
)

View file

@ -0,0 +1,10 @@
Descr(
[ Bind("pkgId", "httpd-2.0.45")
, Bind("releaseId", "1")
, Bind("ssl", Fix("./openssl-0.9.7b.fix"))
, Bind("src", Source(Url("http://apache.cs.uu.nl/dist/httpd/httpd-2.0.45.tar.gz")))
, Bind("build", Source("../build/httpd-build.sh"))
]
)

View file

@ -0,0 +1,8 @@
Descr(
[ Bind("pkgId", "openssl-0.9.7b")
, Bind("releaseId", "1")
, Bind("src", Source(Url("http://www.openssl.org/source/openssl-0.9.7b.tar.gz")))
, Bind("build", Source("../build/openssl-build.sh"))
]
)

View file

@ -1,17 +1,17 @@
Descr(
[ Bind("pkgId", Str("pan-0.13.95"))
, Bind("releaseId", Str("2"))
[ Bind("pkgId", "pan-0.13.95")
, Bind("releaseId", "2")
, Bind("pkgconfig", Pkg(Fix("./pkgconfig-0.15.0.fix")))
, Bind("glib", Pkg(Fix("./glib-2.2.1.fix")))
, Bind("atk", Pkg(Fix("./atk-1.2.0.fix")))
, Bind("pango", Pkg(Fix("./pango-1.2.1.fix")))
, Bind("gtk", Pkg(Fix("./gtk+-2.2.1.fix")))
, Bind("gnet", Pkg(Fix("./gnet-1.1.8.fix")))
, Bind("pspell", Pkg(Fix("./pspell-.12.2.fix")))
, Bind("gtkspell", Pkg(Fix("./gtkspell-2.0.2.fix")))
, Bind("pkgconfig", Fix("./pkgconfig-0.15.0.fix"))
, Bind("glib", Fix("./glib-2.2.1.fix"))
, Bind("atk", Fix("./atk-1.2.0.fix"))
, Bind("pango", Fix("./pango-1.2.1.fix"))
, Bind("gtk", Fix("./gtk+-2.2.1.fix"))
, Bind("gnet", Fix("./gnet-1.1.8.fix"))
, Bind("pspell", Fix("./pspell-.12.2.fix"))
, Bind("gtkspell", Fix("./gtkspell-2.0.2.fix"))
, Bind("src", File(Url("http://pan.rebelbase.com/download/releases/0.13.95/SOURCE/pan-0.13.95.tar.bz2")))
, Bind("build", File(Local("../build/pan-build-2.sh")))
, Bind("src", Source(Url("http://pan.rebelbase.com/download/releases/0.13.95/SOURCE/pan-0.13.95.tar.bz2")))
, Bind("build", Source("../build/pan-build-2.sh"))
]
)

View file

@ -1,11 +1,11 @@
Descr(
[ Bind("pkgId", Str("pango-1.2.1"))
, Bind("releaseId", Str("1"))
[ Bind("pkgId", "pango-1.2.1")
, Bind("releaseId", "1")
, Bind("pkgconfig", Pkg(Fix("./pkgconfig-0.15.0.fix")))
, Bind("glib", Pkg(Fix("./glib-2.2.1.fix")))
, Bind("pkgconfig", Fix("./pkgconfig-0.15.0.fix"))
, Bind("glib", Fix("./glib-2.2.1.fix"))
, Bind("src", File(Url("ftp://ftp.gtk.org/pub/gtk/v2.2/pango-1.2.1.tar.bz2")))
, Bind("build", File(Local("../build/pango-build.sh")))
, Bind("src", Source(Url("ftp://ftp.gtk.org/pub/gtk/v2.2/pango-1.2.1.tar.bz2")))
, Bind("build", Source("../build/pango-build.sh"))
]
)

View file

@ -1,8 +1,8 @@
Descr(
[ Bind("pkgId", Str("pkgconfig-0.15.0"))
, Bind("releaseId", Str("1"))
[ Bind("pkgId", "pkgconfig-0.15.0")
, Bind("releaseId", "1")
, Bind("src", File(Url("http://www.freedesktop.org/software/pkgconfig/releases/pkgconfig-0.15.0.tar.gz")))
, Bind("build", File(Local("../build/pkgconfig-build.sh")))
, Bind("src", Source(Url("http://www.freedesktop.org/software/pkgconfig/releases/pkgconfig-0.15.0.tar.gz")))
, Bind("build", Source("../build/pkgconfig-build.sh"))
]
)

View file

@ -1,8 +1,8 @@
Descr(
[ Bind("pkgId", Str("pspell-.12.2"))
, Bind("releaseId", Str("1"))
[ Bind("pkgId", "pspell-.12.2")
, Bind("releaseId", "1")
, Bind("src", File(Url("http://unc.dl.sourceforge.net/sourceforge/pspell/pspell-.12.2.tar.gz")))
, Bind("build", File(Local("../build/pspell-build.sh")))
, Bind("src", Source(Url("http://unc.dl.sourceforge.net/sourceforge/pspell/pspell-.12.2.tar.gz")))
, Bind("build", Source("../build/pspell-build.sh"))
]
)

View file

@ -1,8 +1,16 @@
Descr(
[ Bind("pkgId", Str("subversion-0.21.0"))
, Bind("releaseId", Str("1"))
[ Bind("pkgId", "subversion-0.21.0")
, Bind("releaseId", "1")
, Bind("src", File(Url("http://subversion.tigris.org/files/documents/15/3712/subversion-0.21.0.tar.gz")))
, Bind("build", File(Local("../build/subversion-build.sh")))
, Bind("httpsClient", Bool(True))
, Bind("httpServer", Bool(True))
, Bind("httpsServer", Bool(True))
, Bind("ssl", If(Var("httpsClient"), Fix("./openssl-0.9.7b.fix"), ""))
, Bind("httpd", If(Var("httpServer"), Fix("./httpd-2.0.45.fix"), ""))
, Bind("src", Source(Url("http://subversion.tigris.org/files/documents/15/3712/subversion-0.21.0.tar.gz")))
, Bind("build", Source("../build/subversion-build.sh"))
]
)

View file

@ -2,18 +2,18 @@ Descr(
[ Bind("pkgId", Str("system"))
, Bind("releaseId", Str("2"))
, Bind("actATerm", Pkg(Fix("./aterm-2.0.fix")))
, Bind("actPkgConfig", Pkg(Fix("./pkgconfig-0.15.0.fix")))
, Bind("actGlib", Pkg(Fix("./glib-2.2.1.fix")))
, Bind("actAtk", Pkg(Fix("./atk-1.2.0.fix")))
, Bind("actPango", Pkg(Fix("./pango-1.2.1.fix")))
, Bind("actGtk", Pkg(Fix("./gtk+-2.2.1.fix")))
, Bind("actGnet", Pkg(Fix("./gnet-1.1.8.fix")))
, Bind("actPspell", Pkg(Fix("./pspell-.12.2.fix")))
, Bind("actGtkspell", Pkg(Fix("./gtkspell-2.0.2.fix")))
, Bind("actPan", Pkg(Fix("./pan-0.13.95.fix")))
, Bind("actSubversion", Pkg(Fix("./subversion-0.21.0.fix")))
, Bind("actATerm", Fix("./aterm-2.0.fix"))
, Bind("actPkgConfig", Fix("./pkgconfig-0.15.0.fix"))
, Bind("actGlib", Fix("./glib-2.2.1.fix"))
, Bind("actAtk", Fix("./atk-1.2.0.fix"))
, Bind("actPango", Fix("./pango-1.2.1.fix"))
, Bind("actGtk", Fix("./gtk+-2.2.1.fix"))
, Bind("actGnet", Fix("./gnet-1.1.8.fix"))
, Bind("actPspell", Fix("./pspell-.12.2.fix"))
, Bind("actGtkspell", Fix("./gtkspell-2.0.2.fix"))
, Bind("actPan", Fix("./pan-0.13.95.fix"))
, Bind("actSubversion", Fix("./subversion-0.21.0.fix"))
, Bind("build", File(Local("../../scripts/nix-populate")))
, Bind("build", Source("../../scripts/nix-populate"))
]
)