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