diff --git a/src/fix.cc b/src/fix.cc index 0d3ae9bff..052c1d4c9 100644 --- a/src/fix.cc +++ b/src/fix.cc @@ -16,6 +16,9 @@ static string nixDescriptorDir; static string nixSourcesDir; +static bool verbose = false; + + /* Mapping of Fix file names to the hashes of the resulting Nix descriptors. */ typedef map DescriptorMap; @@ -23,10 +26,6 @@ typedef map DescriptorMap; /* Forward declarations. */ -string instantiateDescriptor(string filename, - DescriptorMap & done); - - void registerFile(string filename) { int res = system(("nix regfile " + filename).c_str()); @@ -74,80 +73,137 @@ string fetchURL(string url) } -/* Term evaluation functions. */ - -string evaluateStr(ATerm e) +Error badTerm(const string & msg, ATerm e) { - char * s; - if (ATmatch(e, "", &s)) - return s; - else throw Error("invalid string expression"); + char * s = ATwriteToString(e); + return Error(msg + ", in `" + s + "'"); } -ATerm evaluateBool(ATerm e) -{ - if (ATmatch(e, "True") || ATmatch(e, "False")) - return e; - else throw Error("invalid boolean expression"); -} - - -string evaluateFile(ATerm e, string dir) -{ - char * s; - ATerm t; - if (ATmatch(e, "", &s)) { - checkHash(s); - return s; - } else if (ATmatch(e, "Url()", &t)) { - string url = evaluateStr(t); - string filename = fetchURL(url); - registerFile(filename); - return hashFile(filename); - } else if (ATmatch(e, "Local()", &t)) { - string filename = absPath(evaluateStr(t), dir); /* !!! */ - string cmd = "cp -p " + filename + " " + nixSourcesDir; - int res = system(cmd.c_str()); - if (WEXITSTATUS(res) != 0) - throw Error("cannot copy " + filename); - registerFile(nixSourcesDir + "/" + baseNameOf(filename)); - return hashFile(filename); - } else throw Error("invalid file expression"); -} - - -string evaluatePkg(ATerm e, string dir, DescriptorMap & done) -{ - char * s; - ATerm t; - if (ATmatch(e, "", &s)) { - checkHash(s); - return s; - } else if (ATmatch(e, "Fix()", &t)) { - string filename = absPath(evaluateStr(t), dir); /* !!! */ - return instantiateDescriptor(filename, done); - } else throw Error("invalid pkg expression"); -} - - -ATerm evaluate(ATerm e, string dir, DescriptorMap & done) -{ - ATerm t; - if (ATmatch(e, "Str()", &t)) - return ATmake("Str()", evaluateStr(t).c_str()); - else if (ATmatch(e, "Bool()", &t)) - return ATmake("Bool()", evaluateBool(t)); - else if (ATmatch(e, "File()", &t)) - return ATmake("File()", evaluateFile(t, dir).c_str()); - else if (ATmatch(e, "Pkg()", &t)) - return ATmake("Pkg()", evaluatePkg(t, dir, done).c_str()); - else throw Error("invalid expression type"); -} - +/* Term evaluation. */ typedef map BindingsMap; +struct EvalContext +{ + string dir; + DescriptorMap * done; + BindingsMap * vars; +}; + + +ATerm evaluate(ATerm e, EvalContext ctx); +string instantiateDescriptor(string filename, EvalContext ctx); + + +string evaluateStr(ATerm e, EvalContext ctx) +{ + e = evaluate(e, ctx); + char * s; + if (ATmatch(e, "Str()", &s)) + return s; + else throw badTerm("string value expected", e); +} + + +bool evaluateBool(ATerm e, EvalContext ctx) +{ + e = evaluate(e, ctx); + if (ATmatch(e, "Bool(True)")) + return true; + else if (ATmatch(e, "Bool(False)")) + return false; + else throw badTerm("boolean value expected", e); +} + + +ATerm evaluate(ATerm e, EvalContext ctx) +{ + char * s; + ATerm e2; + ATerm eCond, eTrue, eFalse; + + /* Check for normal forms first. */ + + if (ATmatch(e, "Str()", &s) || + ATmatch(e, "Bool(True)") || ATmatch(e, "Bool(False)")) + return e; + + else if ( + ATmatch(e, "Pkg()", &s) || + ATmatch(e, "File()", &s)) + { + checkHash(s); + return e; + } + + /* Short-hands. */ + + else if (ATmatch(e, "", &s)) + return ATmake("Str()", s); + + else if (ATmatch(e, "True", &s)) + return ATmake("Bool(True)", s); + + else if (ATmatch(e, "False", &s)) + return ATmake("Bool(False)", s); + + /* Functions. */ + + /* `Var' looks up a variable. */ + else if (ATmatch(e, "Var()", &s)) { + string name(s); + ATerm e2 = (*ctx.vars)[name]; + if (!e2) throw Error("undefined variable " + name); + return evaluate(e2, ctx); /* !!! update binding */ + } + + /* `Fix' recursively instantiates a Fix descriptor, returning the + hash of the generated Nix descriptor. */ + else if (ATmatch(e, "Fix()", &e2)) { + string filename = absPath(evaluateStr(e2, ctx), ctx.dir); /* !!! */ + return ATmake("Pkg()", + instantiateDescriptor(filename, ctx).c_str()); + } + + /* `Source' copies the specified file to nixSourcesDir, registers + it with Nix, and returns the hash of the file. */ + else if (ATmatch(e, "Source()", &e2)) { + string source = absPath(evaluateStr(e2, ctx), ctx.dir); /* !!! */ + string target = nixSourcesDir + "/" + baseNameOf(source); + + // Don't copy if filename is already in nixSourcesDir. + if (source != target) { + if (verbose) + cerr << "copying source " << source << endl; + string cmd = "cp -p " + source + " " + target; + int res = system(cmd.c_str()); + if (WEXITSTATUS(res) != 0) + throw Error("cannot copy " + source + " to " + target); + } + + registerFile(target); + return ATmake("File()", hashFile(target).c_str()); + } + + /* `Url' fetches a file from the network, caching it in + nixSourcesDir and returning the file name. */ + else if (ATmatch(e, "Url()", &e2)) { + string url = evaluateStr(e2, ctx); + if (verbose) + cerr << "fetching " << url << endl; + string filename = fetchURL(url); + return ATmake("Str()", filename.c_str()); + } + + /* `If' provides conditional evaluation. */ + else if (ATmatch(e, "If(, , )", + &eCond, &eTrue, &eFalse)) + return evaluate(evaluateBool(eCond, ctx) ? eTrue : eFalse, ctx); + + else throw badTerm("invalid expression", e); +} + string getStringFromMap(BindingsMap & bindingsMap, const string & name) @@ -164,15 +220,14 @@ string getStringFromMap(BindingsMap & bindingsMap, /* Instantiate a Fix descriptors into a Nix descriptor, recursively instantiating referenced descriptors as well. */ -string instantiateDescriptor(string filename, - DescriptorMap & done) +string instantiateDescriptor(string filename, EvalContext ctx) { /* Already done? */ - DescriptorMap::iterator isInMap = done.find(filename); - if (isInMap != done.end()) return isInMap->second; + DescriptorMap::iterator isInMap = ctx.done->find(filename); + if (isInMap != ctx.done->end()) return isInMap->second; /* No. */ - string dir = dirOf(filename); + ctx.dir = dirOf(filename); /* Read the Fix descriptor as an ATerm. */ ATerm inTerm = ATreadFromNamedFile(filename.c_str()); @@ -184,6 +239,7 @@ string instantiateDescriptor(string filename, /* Iterate over the bindings and evaluate them to normal form. */ BindingsMap bindingsMap; /* the normal forms */ + ctx.vars = &bindingsMap; char * cname; ATerm value; @@ -191,7 +247,7 @@ string instantiateDescriptor(string filename, &cname, &value, &bindings)) { string name(cname); - ATerm e = evaluate(value, dir, done); + ATerm e = evaluate(value, ctx); bindingsMap[name] = e; } @@ -229,7 +285,10 @@ string instantiateDescriptor(string filename, /* Register it with Nix. */ registerFile(outFilename); - done[filename] = outHash; + if (verbose) + cerr << "instantiated " << outHash << " from " << filename << endl; + + (*ctx.done)[filename] = outHash; return outHash; } @@ -239,11 +298,14 @@ void instantiateDescriptors(Strings filenames) { DescriptorMap done; + EvalContext ctx; + ctx.done = &done; + for (Strings::iterator it = filenames.begin(); it != filenames.end(); it++) { string filename = absPath(*it); - cout << instantiateDescriptor(filename, done) << endl; + cout << instantiateDescriptor(filename, ctx) << endl; } } @@ -274,7 +336,9 @@ void run(Strings::iterator argCur, Strings::iterator argEnd) if (arg == "-h" || arg == "--help") { printUsage(); return; - } if (arg == "--instantiate" || arg == "-i") { + } else if (arg == "-v" || arg == "--verbose") { + verbose = true; + } else if (arg == "--instantiate" || arg == "-i") { command = cmdInstantiate; } else if (arg[0] == '-') throw UsageError("invalid option `" + arg + "'"); diff --git a/test/build/httpd-build.sh b/test/build/httpd-build.sh new file mode 100755 index 000000000..a5b43d744 --- /dev/null +++ b/test/build/httpd-build.sh @@ -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 diff --git a/test/build/openssl-build.sh b/test/build/openssl-build.sh new file mode 100755 index 000000000..23437a37b --- /dev/null +++ b/test/build/openssl-build.sh @@ -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 diff --git a/test/build/subversion-build.sh b/test/build/subversion-build.sh index cc1eba214..3d1922c98 100755 --- a/test/build/subversion-build.sh +++ b/test/build/subversion-build.sh @@ -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 diff --git a/test/fixdescriptors/aterm-2.0.fix b/test/fixdescriptors/aterm-2.0.fix index 17e90ca8b..8b1ba8560 100644 --- a/test/fixdescriptors/aterm-2.0.fix +++ b/test/fixdescriptors/aterm-2.0.fix @@ -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")) ] ) diff --git a/test/fixdescriptors/atk-1.2.0.fix b/test/fixdescriptors/atk-1.2.0.fix index 74e560327..ab302a5ed 100644 --- a/test/fixdescriptors/atk-1.2.0.fix +++ b/test/fixdescriptors/atk-1.2.0.fix @@ -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")) ] ) diff --git a/test/fixdescriptors/glib-2.2.1.fix b/test/fixdescriptors/glib-2.2.1.fix index 2585c7ffb..86a266707 100644 --- a/test/fixdescriptors/glib-2.2.1.fix +++ b/test/fixdescriptors/glib-2.2.1.fix @@ -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")) ] ) diff --git a/test/fixdescriptors/gnet-1.1.8.fix b/test/fixdescriptors/gnet-1.1.8.fix index 34d9d10cd..526c2e865 100644 --- a/test/fixdescriptors/gnet-1.1.8.fix +++ b/test/fixdescriptors/gnet-1.1.8.fix @@ -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")) ] ) diff --git a/test/fixdescriptors/gtk+-2.2.1.fix b/test/fixdescriptors/gtk+-2.2.1.fix index 6793cac45..7fc3da2d7 100644 --- a/test/fixdescriptors/gtk+-2.2.1.fix +++ b/test/fixdescriptors/gtk+-2.2.1.fix @@ -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")) ] ) diff --git a/test/fixdescriptors/gtkspell-2.0.2.fix b/test/fixdescriptors/gtkspell-2.0.2.fix index e6d614f64..3cb0b0bf1 100644 --- a/test/fixdescriptors/gtkspell-2.0.2.fix +++ b/test/fixdescriptors/gtkspell-2.0.2.fix @@ -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")) ] ) diff --git a/test/fixdescriptors/httpd-2.0.45.fix b/test/fixdescriptors/httpd-2.0.45.fix new file mode 100644 index 000000000..bb8365b45 --- /dev/null +++ b/test/fixdescriptors/httpd-2.0.45.fix @@ -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")) + ] +) diff --git a/test/fixdescriptors/openssl-0.9.7b.fix b/test/fixdescriptors/openssl-0.9.7b.fix new file mode 100644 index 000000000..a0df665e5 --- /dev/null +++ b/test/fixdescriptors/openssl-0.9.7b.fix @@ -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")) + ] +) diff --git a/test/fixdescriptors/pan-0.13.95.fix b/test/fixdescriptors/pan-0.13.95.fix index 3a32756b6..c9e5b9ab6 100644 --- a/test/fixdescriptors/pan-0.13.95.fix +++ b/test/fixdescriptors/pan-0.13.95.fix @@ -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")) ] ) diff --git a/test/fixdescriptors/pango-1.2.1.fix b/test/fixdescriptors/pango-1.2.1.fix index 7ee2486a6..419c4f690 100644 --- a/test/fixdescriptors/pango-1.2.1.fix +++ b/test/fixdescriptors/pango-1.2.1.fix @@ -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")) ] ) diff --git a/test/fixdescriptors/pkgconfig-0.15.0.fix b/test/fixdescriptors/pkgconfig-0.15.0.fix index 27f32aba6..28fe34a4b 100644 --- a/test/fixdescriptors/pkgconfig-0.15.0.fix +++ b/test/fixdescriptors/pkgconfig-0.15.0.fix @@ -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")) ] ) diff --git a/test/fixdescriptors/pspell-.12.2.fix b/test/fixdescriptors/pspell-.12.2.fix index f19600c25..617414079 100644 --- a/test/fixdescriptors/pspell-.12.2.fix +++ b/test/fixdescriptors/pspell-.12.2.fix @@ -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")) ] ) diff --git a/test/fixdescriptors/subversion-0.21.0.fix b/test/fixdescriptors/subversion-0.21.0.fix index 90d9d8d42..dfe1f2482 100644 --- a/test/fixdescriptors/subversion-0.21.0.fix +++ b/test/fixdescriptors/subversion-0.21.0.fix @@ -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")) ] ) diff --git a/test/fixdescriptors/system.fix b/test/fixdescriptors/system.fix index 62d4eae40..5e9f497d1 100644 --- a/test/fixdescriptors/system.fix +++ b/test/fixdescriptors/system.fix @@ -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")) ] )