[172] in athena10

home help back first fref pref prev next nref lref last post

Re: /svn/athena r22944 - trunk/debathena/scripts/build-server/build-all

daemon@ATHENA.MIT.EDU (Timothy G Abbott)
Tue Apr 22 17:01:59 2008

Date: Tue, 22 Apr 2008 17:01:09 -0400 (EDT)
From: Timothy G Abbott <tabbott@MIT.EDU>
To: athena10@mit.edu
Message-ID: <Pine.LNX.4.64L.0804221655260.23969@vinegar-pot.mit.edu>
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed

For the record, some of the changes below have not been tested (I changed 
some of the tag code and the DEBATHENA_APT code after doing the Debathena 
Hardy build).

Currently, I'm using /mit/debathena/bin as the location to look for 
debian-versions.sh for files which don't live in the scripts directory. 
I'm not entirely convinced this is optimal.  Perhaps we should have an 
environment variable controlling that, since the tags database is 
something I could see one wanting to change temporarily.

 	-Tim Abbott

---------- Forwarded message ----------
Date: Tue, 22 Apr 2008 16:52:30 -0400 (EDT)
From: tabbott@MIT.EDU
To: source-commits@MIT.EDU
X-Spam-Score: 0.55
Subject: /svn/athena r22944 - trunk/debathena/scripts/build-server/build-all

Author: tabbott
Date: 2008-04-22 16:52:29 -0400 (Tue, 22 Apr 2008)
New Revision: 22944

Removed:
    trunk/debathena/scripts/build-server/build-all/gen-build-deps.version-controlled
Modified:
    trunk/debathena/scripts/build-server/build-all/Makefile
    trunk/debathena/scripts/build-server/build-all/do-build
    trunk/debathena/scripts/build-server/build-all/gen-build-deps
Log:
debathena/scripts/build-server/build-all: Make build system more robust.
* Support the package directories being called (e.g.) debathena-athdir,
   not just athdir.
* Support meta packages having been built on i386.
* Unify suite and previous suite code to only require setting them in
   Makefile.
* Use debian-versions.sh to get tags.
* Add usage check to gen-build-deps.
* Add support for DEBATHENA_APT and DEBATHENA_BUILD_AREA variables.
* Use a different stamps directory for each distribution.
* Remove deprecated gen-build-deps.version-controlled


Modified: trunk/debathena/scripts/build-server/build-all/Makefile
===================================================================
--- trunk/debathena/scripts/build-server/build-all/Makefile	2008-04-22 20:29:28 UTC (rev 22943)
+++ trunk/debathena/scripts/build-server/build-all/Makefile	2008-04-22 20:52:29 UTC (rev 22944)
@@ -1,11 +1,13 @@
-STAMPS := /afs/sipb.mit.edu/project/debathena/machines/awesome-build-server/stamps
+suite := hardy
+psuite := gutsy
+STAMPS := /afs/sipb.mit.edu/project/debathena/machines/awesome-build-server/stamps.$(suite)

  package = $(STAMPS)/$(1).done

  all: build-all

  deps.mk: gen-build-deps
-	./gen-build-deps > $@
+	./gen-build-deps $(psuite) > $@
  include deps.mk

  build/%: $(call package,%)
@@ -13,7 +15,7 @@

  $(call package,%):
  	file=$$(mktemp -t 'stupid.XXXXXX') && \
-		echo "screen sh -c '$(CURDIR)/do-build $* $(STAMPS)/$*'" > "$$file" && \
+		echo "screen sh -c '$(CURDIR)/do-build $* $(STAMPS)/$* $(suite) $(psuite)'" > "$$file" && \
  		echo "other" >> "$$file" && \
  		screen -X source "$$file" && \
  		sleep 1 && \

Modified: trunk/debathena/scripts/build-server/build-all/do-build
===================================================================
--- trunk/debathena/scripts/build-server/build-all/do-build	2008-04-22 20:29:28 UTC (rev 22943)
+++ trunk/debathena/scripts/build-server/build-all/do-build	2008-04-22 20:52:29 UTC (rev 22944)
@@ -2,18 +2,23 @@
  set -xe
  package=$1
  stamp=$2
-suite=lenny
-psuite=etch
-tag="~debian4.1~0.1"
+suite=$3
+psuite=$4
+: ${DEBATHENA_APT=/mit/debathena/apt}
+: ${DEBATHENA_BUILD_AREA=/afs/sipb.mit.edu/project/debathena/packages}
+tag=$(shell . /mit/debathena/bin/debian-versions.sh; gettag $(suite))
  [ -n "$1" ]
  [ -n "$2" ]
  trap 'echo "An error occured.  Press Enter to continue." >&2; echo -en "\a"; read ERROR; touch "$stamp.error"' EXIT
  touch "$stamp.started"
-dir=$(echo /afs/sipb.mit.edu/project/debathena/packages/*/"${package#debathena-}")
+dir=$(echo ${DEBATHENA_BUILD_AREA}/*/"${package#debathena-}")
+if [ ! -e $dir ]; then
+    dir=$(echo ${DEBATHENA_BUILD_AREA}/*/"${package}")
+fi
  [ -e "$dir" ]
  cd "$dir"
  if [ -e debathenify-* ]; then false; fi
-version=$(zcat /mit/debathena/apt/dists/$psuite/*/source/Sources.gz | dpkg-awk -f - "Package:^$package\$" -- Version | sed -n 's/Version: // p')
+version=$(zcat ${DEBATHENA_APT}/dists/$psuite/*/source/Sources.gz | dpkg-awk -f - "Package:^$package\$" -- Version | sed -n 's/Version: // p')
  if [ -d "built/" ]; then
      dsc="$dir/built/${package}_$version.dsc"
  else
@@ -21,14 +26,19 @@
  fi
  [ -e "$dsc" ]

-if [ -e "${dsc%.dsc}_amd64.changes" ]; then
-    grep -Fq 'dpkg-source -b equivs' "${dsc%.dsc}_amd64.build"
+if [ -e "${dsc%.dsc}_amd64.changes" ] || [ -e "${dsc%.dsc}_i386.changes" ]; then
      changes="${dsc%.dsc}_amd64.changes"
+    buildlog="${dsc%.dsc}_amd64.build"
+    if [ ! -e $changes ]; then
+	changes="${dsc%.dsc}_i386.changes"
+	buildlog="${dsc%.dsc}_i386.build"
+    fi
+    grep -Fq 'dpkg-source -b equivs' $buildlog
  else
      [ -e "${dsc%.dsc}_source.changes" ]
      changes="${dsc%.dsc}_source.changes"
      A=1
-    if (zcat /mit/debathena/apt/dists/$psuite/*/binary-i386/Packages.gz | dpkg-awk -f - "Source:^$package\$" -- Architecture; zcat /mit/debathena/apt/dists/$psuite/*/binary-i386/Packages.gz | dpkg-awk -f - "Package:^$package\$" -- Architecture) | grep -Fxv 'Architecture: all' | grep -q .; then
+    if (zcat ${DEBATHENA_APT}/dists/$psuite/*/binary-i386/Packages.gz | dpkg-awk -f - "Source:^$package\$" -- Architecture; zcat ${DEBATHENA_APT}/dists/$psuite/*/binary-i386/Packages.gz | dpkg-awk -f - "Package:^$package\$" -- Architecture) | grep -Fxv 'Architecture: all' | grep -q .; then
  	A=0
      fi
      sbuildhack "${suite}-amd64" -A "$dsc"
@@ -45,7 +55,7 @@
  #    :
  #done

-REPREPRO="reprepro -Vb /mit/debathena/apt"
+REPREPRO="reprepro -Vb ${DEBATHENA_APT}"

  (
      flock -x 200

Modified: trunk/debathena/scripts/build-server/build-all/gen-build-deps
===================================================================
--- trunk/debathena/scripts/build-server/build-all/gen-build-deps	2008-04-22 20:29:28 UTC (rev 22943)
+++ trunk/debathena/scripts/build-server/build-all/gen-build-deps	2008-04-22 20:52:29 UTC (rev 22944)
@@ -3,6 +3,10 @@
  use warnings;
  use strict;

+my $psuite = $ARGV[0];
+$psuite or die "Usage: gen-build-deps <previous suite name>";
+$ENV{DEBATHENA_APT} or $ENV{DEBATHENA_APT}="/mit/debathena/apt";
+
  sub list {
  	my ($l) = @_;
  	$l =~ s/ \(.*\)$//;
@@ -11,7 +15,7 @@
  	split(/, /, $l);
  }

-open(DPKG, '-|', 'zcat /mit/debathena/apt/dists/etch/*/source/Sources.gz | dpkg-awk -f - -- Package Build-Depends') or die;
+open(DPKG, '-|', "zcat $ENV{DEBATHENA_APT}/dists/$psuite/*/source/Sources.gz | dpkg-awk -f - -- Package Build-Depends") or die;
  my %src_deps = ();
  while (<DPKG>) {
  	last if /^$/;
@@ -27,7 +31,7 @@
  	}
  }
  close DPKG;
-open(DPKG, '-|', 'zcat /mit/debathena/apt/dists/etch/debathena/binary-amd64/Packages.gz | dpkg-awk -f - -- Package Source Provides') or die;
+open(DPKG, '-|', "zcat $ENV{DEBATHENA_APT}/dists/$psuite/debathena/binary-amd64/Packages.gz | dpkg-awk -f - -- Package Source Provides") or die;
  my %pkg_src = ();
  my %pkg_provider = ();
  while (<DPKG>) {

Deleted: trunk/debathena/scripts/build-server/build-all/gen-build-deps.version-controlled


home help back first fref pref prev next nref lref last post