* 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
wip/yesman
Eelco Dolstra 21 years ago
parent 7fa3a3f2fa
commit 94dbdc53b2
  1. 12
      build/httpd-build.sh
  2. 12
      build/openssl-build.sh
  3. 16
      build/subversion-build.sh
  4. 10
      fixdescriptors/aterm-2.0.fix
  5. 12
      fixdescriptors/atk-1.2.0.fix
  6. 10
      fixdescriptors/glib-2.2.1.fix
  7. 12
      fixdescriptors/gnet-1.1.8.fix
  8. 16
      fixdescriptors/gtk+-2.2.1.fix
  9. 20
      fixdescriptors/gtkspell-2.0.2.fix
  10. 10
      fixdescriptors/httpd-2.0.45.fix
  11. 8
      fixdescriptors/openssl-0.9.7b.fix
  12. 24
      fixdescriptors/pan-0.13.95.fix
  13. 12
      fixdescriptors/pango-1.2.1.fix
  14. 8
      fixdescriptors/pkgconfig-0.15.0.fix
  15. 8
      fixdescriptors/pspell-.12.2.fix
  16. 16
      fixdescriptors/subversion-0.21.0.fix
  17. 24
      fixdescriptors/system.fix

@ -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

@ -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

@ -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

@ -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"))
]
)

@ -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"))
]
)

@ -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"))
]
)

@ -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"))
]
)

@ -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"))
]
)

@ -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"))
]
)

@ -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"))
]
)

@ -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"))
]
)

@ -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"))
]
)

@ -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"))
]
)

@ -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"))
]
)

@ -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"))
]
)

@ -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"))
]
)

@ -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"))
]
)

Loading…
Cancel
Save