Author: wade
Date: 2006-09-22 13:48:58 -0400 (Fri, 22 Sep 2006)
New Revision: 65822

Added:
   trunk/release/buildbuddy/
   trunk/release/buildbuddy/build-buddy.spec
   trunk/release/buildbuddy/buildbuddy_notes.txt
   trunk/release/buildbuddy/push_build_buddy
Removed:
   trunk/release/buildbuddy_notes.txt
Log:
build buddy reproducibility updates:

build-buddy.spec:
-we now have the possibility to roll our own packaging centric build buddy rpms
 buildbuddy_notes.txt has the instructions on building the rpm

-patched the official build-buddy branch to include the specific changes we 
have been using
 for some time
 (s390[x] support, sles-9-x86_64 pkgconfig fixes, fedora 4 and 5 support, suse 
10.1 support)

push_build_buddy:
-script to copy and install build buddy to all the rpm type jails




Property changes on: trunk/release/buildbuddy
___________________________________________________________________
Name: svn:ignore
   + *.rpm


Added: trunk/release/buildbuddy/build-buddy.spec
===================================================================
--- trunk/release/buildbuddy/build-buddy.spec   2006-09-22 17:30:08 UTC (rev 
65821)
+++ trunk/release/buildbuddy/build-buddy.spec   2006-09-22 17:48:58 UTC (rev 
65822)
@@ -0,0 +1,82 @@
+# spec file for building local build buddy rpm used by Mono team
+
+Name:          build-buddy
+Version:       1.6.4
+Release:       0.novell
+Vendor:                Novell, Inc.
+BuildRoot:     /var/tmp/%{name}-%{version}-root
+License:       GPL
+Docdir:         /usr/share/doc/packages
+
+BuildArch:      noarch
+URL:           http://www.go-mono.com
+Source0:       bb-%{version}.tar.gz
+Summary:       Build Buddy for Mono packaging
+Group:         Development
+
+# ditch the find/provides specific to perl
+#%define __find_requires %{nil}
+#%define __find_provides %{nil}
+
+# The above didn't seem to work, but this did
+Autoreq: 0
+Autoprov: 0
+
+%description
+Build Buddy for Mono packaging
+
+%prep
+rm -rf "$RPM_BUILD_ROOT"
+%setup -n bb-%{version}
+
+%build
+perl Makefile.PL
+make
+
+%install
+make install DESTDIR=$RPM_BUILD_ROOT
+
+# Move perl modules into a version agnostic path so we don't have to build for 
each distro
+#  (necessary?)
+mkdir -p $RPM_BUILD_ROOT/usr/lib/perl5/vendor_perl
+mv $RPM_BUILD_ROOT/usr/lib/perl5/site_perl/*/Ximian 
$RPM_BUILD_ROOT/usr/lib/perl5/vendor_perl
+
+# Install config stuff that otherwise doesn't get installed
+######################
+DEST=$RPM_BUILD_ROOT/usr/share/ximian-build-system
+
+mkdir -p $DEST/conf
+
+cp -f conf/os.conf $DEST/conf
+cp -f conf/bb.conf $DEST/conf
+cp -f conf/packsys.conf $DEST/conf
+
+cp -Rf packsys $DEST
+
+mkdir -p $DEST/scripts
+cp -f scripts/distribution.guess $DEST/scripts
+cp -f scripts/config.guess $DEST/scripts
+######################
+
+# Remove unused files:
+find $RPM_BUILD_ROOT -name perllocal.pod | xargs rm -f
+find $RPM_BUILD_ROOT -name .packlist | xargs rm -f
+rm -Rf $RPM_BUILD_ROOT/usr/share/ximian-build-system/packsys/rpm/.cvsignore
+
+%clean
+rm -rf "$RPM_BUILD_ROOT"
+
+
+%files
+%defattr(-, root, root)
+%doc README
+/usr/bin/bb_*
+/usr/share/man/man3/Ximian*
+/usr/share/man/man1/bb_*
+/usr/share/ximian-build-system
+/usr/lib/perl5/vendor_perl/Ximian
+
+%changelog
+* Tue Sep 21 2006 Novell, Inc.
+- New build
+

Copied: trunk/release/buildbuddy/buildbuddy_notes.txt (from rev 65593, 
trunk/release/buildbuddy_notes.txt)
===================================================================
--- trunk/release/buildbuddy_notes.txt  2006-09-18 19:10:44 UTC (rev 65593)
+++ trunk/release/buildbuddy/buildbuddy_notes.txt       2006-09-22 17:48:58 UTC 
(rev 65822)
@@ -0,0 +1,41 @@
+#############################################
+#  Build RPM package of bb:
+#############################################
+
+# Check out the source
+svn co https://forgesvn1.novell.com/svn/ximian-bb/branches/bb-1.6/bb
+
+# Create the tarball
+# Get the version from META.yml
+cd $HOME/wa/bb
+export VERSION=1.6.4
+rm -Rf bb-$VERSION*
+svn export . bb-$VERSION ; tar -pzcvf bb-$VERSION.tar.gz bb-$VERSION
+
+# Copy it to the rpm sources location (/usr/src/redhat since we're on a legacy
+# fedora box)
+sudo cp bb-$VERSION.tar.gz /usr/src/redhat/SOURCES
+
+# Remove previous rpms
+sudo rm /usr/src/*/RPMS/noarch/build-buddy*
+
+cd $HOME/wa/msvn/release/buildbuddy
+sudo rpmbuild -bb build-buddy.spec
+
+cp /usr/src/*/RPMS/noarch/build-buddy* .
+
+
+# You can then install the rpm, 
+# but you'll have to manually install some perl modules (XML::Simple)
+# The provides are not in the rpm's specfile so that we can use this rpm
+#  on all distros
+
+# Then: ximian-build-system-config-0.5-0.ximian.5.1.i386.rpm in this directory 
+#  (not checked in)
+# contains necessary ssh keys
+
+# To install build-buddy rpm to all rpm distros:
+./push_build_buddy all
+# (this will also install ximian-build-system-config to distros needing to
+# check out)
+

Added: trunk/release/buildbuddy/push_build_buddy
===================================================================
--- trunk/release/buildbuddy/push_build_buddy   2006-09-22 17:30:08 UTC (rev 
65821)
+++ trunk/release/buildbuddy/push_build_buddy   2006-09-22 17:48:58 UTC (rev 
65822)
@@ -0,0 +1,62 @@
+#!/usr/bin/env python
+
+import glob
+import sys
+import os
+
+sys.path.append("../pyutils")
+
+import packaging
+
+try:
+       (script, distros) = sys.argv
+except:
+       print "Usage: ./push_build_buddy <distros>"
+       print "  where <distros> can be a single distro, a comma separated 
list, or 'all'"
+       sys.exit(1)
+
+if distros == "all":
+       envs = map(os.path.basename, glob.glob("../packaging/conf/*-*-*"))
+else:
+       envs = distros.split(',')
+
+problem_distros = []
+
+# Distros that need the source environment
+source_envs = ['suse-93-i586', 'suse-100-i586']
+
+for e in envs:
+       env = packaging.buildenv(os.path.basename(e))
+
+       # If using rpm
+       if not env.get_info_var("USE_ZIP_PKG"):
+               name = env.info['distro']
+
+               print name
+               rpms = [ "build-buddy" ]
+
+               # Install the ssh keys if they are source distros
+               if source_envs.count(name):
+                       rpms.append("ximian-build-system-config")
+
+               for rpm in rpms:
+                       print "RPM: " + rpm
+                       rpm_glob = rpm + "-*.rpm"
+                       # Clean up existing rpms
+                       env.ssh.execute("rm -Rf /tmp/" + rpm_glob, 
exec_as_root=1)
+                       # Copy rpm over
+                       env.ssh.copy_to(rpm_glob, "/tmp")
+                       # Remove current rpm
+                       env.ssh.execute("rpm -e " + rpm, exec_as_root=1)
+                       # Install new rpm
+                       (code, output) = env.ssh.execute("rpm -Uvh /tmp/" + 
rpm_glob, exec_as_root=1)
+                       if code:
+                               problem_distros.append(name)
+
+                       # Clean up
+                       env.ssh.execute("rm -Rf /tmp/" + rpm_glob, 
exec_as_root=1)
+
+if len(problem_distros):
+       print "Error installing buildbuddy on these distros:"
+       print problem_distros
+


Property changes on: trunk/release/buildbuddy/push_build_buddy
___________________________________________________________________
Name: svn:executable
   + *

Deleted: trunk/release/buildbuddy_notes.txt
===================================================================
--- trunk/release/buildbuddy_notes.txt  2006-09-22 17:30:08 UTC (rev 65821)
+++ trunk/release/buildbuddy_notes.txt  2006-09-22 17:48:58 UTC (rev 65822)
@@ -1,38 +0,0 @@
-Get the bb source tarball (TODO: add link to tarball of 1.6 branch and my
-additional patches, files)
-
-Add distro and/or arch to conf/os.conf if it's not there
-
-Copy all files (if working from a subversion work area):
-svn export . bb
-
-tar up bb and copy to build machine
-
-Extract, then:
-
-perl Makefile.PL
-make
-sudo su
-make install
-
-Install XML::Simple (or XML::Parser if using the bb 1.6 branch)
-Possibly from cpan...
-
-Inside jail, from inside the unpacked tarball, as root (copy and paste):
-
----------------------
-export DEST=/usr/share/ximian-build-system
-
-mkdir -p $DEST/conf
-
-cp -f conf/os.conf $DEST/conf
-cp -f conf/bb.conf $DEST/conf
-cp -f conf/packsys.conf $DEST/conf
-
-cp -Rf packsys $DEST
-
-mkdir -p $DEST/scripts
-cp -f scripts/distribution.guess $DEST/scripts
-cp -f scripts/config.guess $DEST/scripts
----------------------
-

_______________________________________________
Mono-patches maillist  -  [email protected]
http://lists.ximian.com/mailman/listinfo/mono-patches

Reply via email to