From 1bc488563d08c328d1766d8678137723f98485d7 Mon Sep 17 00:00:00 2001
From: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Tue, 25 Nov 2003 18:04:28 +0000
Subject: [PATCH] * Automatic generation and uploading of Nix source
 distributions   and manuals.

svn path=/nixpkgs/trunk/; revision=546
---
 nix-dist/build+upload.sh     | 21 ++++++++++++++++++++
 nix-dist/do-it.nix           | 20 +++++++++++++++++++
 nix-dist/nix-source-dist.nix | 38 ++++++++++++++++++++++++++++++++++++
 nix-dist/nix-source-dist.sh  | 31 +++++++++++++++++++++++++++++
 4 files changed, 110 insertions(+)
 create mode 100755 nix-dist/build+upload.sh
 create mode 100644 nix-dist/do-it.nix
 create mode 100644 nix-dist/nix-source-dist.nix
 create mode 100755 nix-dist/nix-source-dist.sh

diff --git a/nix-dist/build+upload.sh b/nix-dist/build+upload.sh
new file mode 100755
index 000000000000..5beac5b34c73
--- /dev/null
+++ b/nix-dist/build+upload.sh
@@ -0,0 +1,21 @@
+#! /bin/sh
+
+url="https://svn.cs.uu.nl:12443/repos/trace/nix/trunk/"
+
+if ! rev=$(curl --silent -k https://svn.cs.uu.nl:12443/repos/trace/nix/trunk/ \
+ | grep '<h2>Revision' \
+ | sed 's/.*Revision \(.*\):.*/\1/'); \
+ then exit 1; fi
+
+echo $rev > head-revision.nix
+
+if ! storeexpr=$(nix-instantiate do-it.nix); then exit 1; fi
+
+if ! nix-store -r "$storeexpr" > /dev/null; then exit 1; fi
+
+if ! outpath=$(nix-store -qn "$storeexpr"); then exit 1; fi
+
+uploader="http://losser.st-lab.cs.uu.nl/~eelco/cgi-bin/upload.pl/"
+
+curl --silent -T "$outpath/manual.html" "$uploader" > /dev/null || exit 1
+curl --silent -T "$outpath"/nix-*.tar.bz2 "$uploader" > /dev/null || exit 1
diff --git a/nix-dist/do-it.nix b/nix-dist/do-it.nix
new file mode 100644
index 000000000000..a78b25f90435
--- /dev/null
+++ b/nix-dist/do-it.nix
@@ -0,0 +1,20 @@
+let {
+  system = "i686-suse-linux";
+  pkgs = (import ../pkgs/system/all-packages.nix) {system = system};
+  stdenv = pkgs.stdenv_;
+
+  sourcedist = (import ./nix-source-dist.nix) {
+    stdenv = stdenv;
+    autoconf = pkgs.autoconf;
+    automake = pkgs.automake;
+    libxml2 = pkgs.libxml2;
+    libxslt = pkgs.libxslt;
+    docbook_dtd = pkgs.docbook_xml_dtd;
+    docbook_xslt = pkgs.docbook_xml_xslt;
+    fetchurl = pkgs.fetchurl;
+    fetchsvn = pkgs.fetchsvn;
+    rev = import ./head-revision.nix;
+  };
+
+  body = sourcedist;
+}
\ No newline at end of file
diff --git a/nix-dist/nix-source-dist.nix b/nix-dist/nix-source-dist.nix
new file mode 100644
index 000000000000..b0747ea9f96b
--- /dev/null
+++ b/nix-dist/nix-source-dist.nix
@@ -0,0 +1,38 @@
+{ stdenv, autoconf, automake, libxml2, libxslt
+, docbook_dtd, docbook_xslt
+, fetchurl, fetchsvn, rev
+}:
+
+derivation {
+  name = "nix-source-dist";
+  system = stdenv.system;
+
+  builder = ./nix-source-dist.sh;
+  src = fetchsvn {
+    url = "https://svn.cs.uu.nl:12443/repos/trace/nix/trunk/";
+    rev = rev;
+  };
+
+  bdbSrc = fetchurl {
+    url = "http://www.sleepycat.com/update/snapshot/db-4.1.25.tar.gz";
+    md5 = "df71961002b552c0e72c6e4e358f27e1";
+  };
+
+  atermSrc = fetchurl {
+    url = http://www.cwi.nl/projects/MetaEnv/aterm/aterm-2.0.5.tar.gz;
+    md5 = "68aefb0c10b2ab876b8d3c0b2d0cdb1b";
+  };
+
+  sdfSrc = fetchurl {
+    url = ftp://ftp.stratego-language.org/pub/stratego/sdf2/sdf2-bundle-1.6.tar.gz;
+    md5 = "283be0b4c7c9575c1b5cc735316e6192";
+  };
+
+  stdenv = stdenv;
+  autoconf = autoconf;
+  automake = automake;
+  libxml2 = libxml2;
+  libxslt = libxslt;
+  docbook_dtd = docbook_dtd;
+  docbook_xslt = docbook_xslt;
+}
diff --git a/nix-dist/nix-source-dist.sh b/nix-dist/nix-source-dist.sh
new file mode 100755
index 000000000000..f100026db822
--- /dev/null
+++ b/nix-dist/nix-source-dist.sh
@@ -0,0 +1,31 @@
+#! /bin/sh
+
+buildinputs="$autoconf $automake $libxml2 $libxslt"
+. $stdenv/setup
+
+echo "copying sources..."
+cp -prd $src/* . || exit 1
+chmod -R u+w . || exit 1
+cp -p $bdbSrc externals/db-4.1.25.tar.gz || exit 1 # !!!
+cp -p $atermSrc externals/aterm-2.0.5.tar.gz || exit 1
+cp -p $sdfSrc externals/sdf2-bundle-1.6.tar.gz || exit 1
+
+echo "autoconfing..."
+autoreconf -i || exit 1
+
+echo "configuring..."
+./configure || exit 1
+
+echo "building..."
+export DOCBOOK_DTD=$docbook_dtd/xml/dtd/docbook
+export DOCBOOK_XSL=$docbook_xslt/xml/xsl/docbook
+#(cd doc && make) || exit 1
+make distdir || exit 1
+pkgname=$(echo nix-*)
+tar cvfz $pkgname.tar.gz $pkgname || exit 1
+tar cvfj $pkgname.tar.bz2 $pkgname || exit 1
+
+echo "copying result..."
+mkdir $out || exit 1
+cp -p $pkgname.tar.gz $pkgname.tar.bz2 $out || exit 1
+cp -p doc/manual/book.html $out/manual.html || exit 1