obsoletes "XFree86-Mesa-devel-<targettype>"
provides "XFree86-Mesa-devel-<targettype>"
Mesa
+ +/usr/X11R6/lib(64)?/modules/dri/updates/README.updates
obsoletes "XFree86-Mesa-<targettype> xorg-x11-Mesa-<targettype>"
provides "XFree86-Mesa-<targettype> xorg-x11-Mesa-<targettype>"
Mesa-devel
sane
openssl
openssl-devel
+openssl-ibmca
#
# wine devel requirements
libsmbclient
samba-libs
+# rest of samba
+samba
+ -/usr/lib/samba
+samba-winbind
+ -/usr/lib/samba
+samba-client
+ -/usr/lib/samba
+libiniparser
+
#
# libsmbclient requirements:
#
#
expat
fontconfig
+ +/usr/bin/fc-cache -> /usr/bin/fc-cache<extension>
fontconfig-devel
freetype2
freetype2-devel
gettext
glib
glib-devel
+ +/opt/gnome/lib(64)?/glib/include/glibconfig.h
gnome-libs
gtk
gtk2
libmikmod
libmpeg3
libtool
+libltdl
libxcrypt
libxml
nss_ldap
+/etc/opt/gnome/pango/pango.modules
+/opt/gnome/bin/pango-querymodules(-64)?
prereq "/usr/bin/touch"
+ post "/sbin/ldconfig"
post "touch var/adm/SuSEconfig/run-pango"
popt
popt-devel
# used by kdelibs3
mDNSResponder
+mDNSResponder-lib
# used by DirectFB
sysfsutils
# for banshee
nautilus-cd-burner
gstreamer
+gstreamer010
gstreamer-plugins
+gstreamer010-plugins-base
dbus-1-glib
sqlite
libipoddevice
itcl
libgtkhtml
scim
+scim-qtimm
openmotif21-libs
# Mplayer
libdv
numactl
# pam module included
CASA
+
+# required for more
+net-snmp
+
# ppc 64bit stuff
arch ppc64 package bind-devel
requires -bind-<targettype>
arch ppc64 package gmp-devel
arch ppc64 package gtk2-devel
arch ppc64 package libzio
-arch ppc64 package net-snmp
arch ppc64 package net-snmp-devel
arch ppc64 package qt-devel
arch ppc64 package qt-qt3support
itrace
# ICAClient
novell-NLDAPsdk
+novell-NLDAPsdk-dyn
# helix hack
helix-dbus-server
+# needed for xen biarch
+xen-libs
+# eDir biarch
+novell-NLDAPbase
+novell-NLDAPbase-dyn
+novell-lum
+# synce
+libical
# cleanup_and_exit
#
cleanup_and_exit () {
+ if test -n "$RUNNING_IN_XEN" ; then
+ cd /
+ test -n "$XENSWAP" && swapoff "$XENSWAP"
+ exec >&0 2>&0 # so that the logging tee finishes
+ sleep 1 # wait till tee terminates
+ kill -9 -1 # goodbye cruel world
+ exec /bin/bash -c 'mount -n -o remount,ro / ; halt -f'
+ halt -f
+ fi
if test "$1" = 0 -o -z "$1" ; then
exit 0
else
RELEASE=
REASON=
NOROOTFORBUILD=
+LOGFILE=
if test "$0" = "/.build/build" ; then
BUILD_ROOT=/
BUILD_DIR=/.build
. $BUILD_DIR/build.data
+ echo "machine type: `uname -m`"
+ if test "$PERSONALITY" != 0 -a -z "$PERSONALITY_SET" ; then
+ export PERSONALITY_SET=true
+ echo "switching personality to $PERSONALITY..."
+ # this is 32bit perl/glibc, thus the 32bit syscall number
+ exec perl -e 'syscall(136, '$PERSONALITY') == -1 && warn("personality: $!\n");exec "/.build/build" || die("/.build/build: $!")'
+ fi
PATH=$BUILD_DIR:$PATH
RUNNING_IN_XEN=true
if test -n "$XENSWAP" ; then
RELEASE="--release $ARG"
shift
;;
+ *-logfile)
+ LOGFILE="$ARG"
+ shift
+ ;;
*-reason)
REASON="$ARG"
shift
rm -f $BUILD_ROOT/exit
-if test -z "$XENIMAGE" ; then
- echo logging output to $BUILD_ROOT/.build.log...
- rm -f $BUILD_ROOT/.build.log
- touch $BUILD_ROOT/.build.log
- exec 1> >(exec -a 'build logging tee' tee -a $BUILD_ROOT/.build.log) 2>&1
+if test -z "$XENIMAGE" -a -z "$LOGFILE"; then
+ LOGFILE="$BUILD_ROOT/.build.log"
+fi
+
+if test -n "$LOGFILE" ; then
+ echo logging output to $LOGFILE...
+ rm -f $LOGFILE
+ touch $LOGFILE
+ if test -n "$XENIMAGE" ; then
+ exec 1> >(exec -a 'build logging tee' perl -e 'open(F,">>",$ARGV[0])||die("$ARGV[0]: $!\n");$|=1;select(F);$|=1;while(<STDIN>){print STDOUT;s/^\r//s;s/\r\n/\n/gs;print F}' $LOGFILE) 2>&1
+ else
+ exec 1> >(exec -a 'build logging tee' tee -a $LOGFILE) 2>&1
+ fi
fi
#
cp -p $MYSRCDIR/* $BUILD_ROOT/.build-srcdir
MYSRCDIR=$BUILD_ROOT/.build-srcdir
fi
- echo "SPECFILE='${SPECFILE//\'/\'\\\'\'}'" > $BUILD_ROOT/.build/build.data
- echo "BUILD_JOBS='${BUILD_JOBS//\'/\'\\\'\'}'" >> $BUILD_ROOT/.build/build.data
- echo "BUILD_ARCH='${BUILD_ARCH//\'/\'\\\'\'}'" >> $BUILD_ROOT/.build/build.data
- echo "BUILD_RPMS='${BUILD_RPMS//\'/\'\\\'\'}'" >> $BUILD_ROOT/.build/build.data
+ Q="'\''"
+ echo "SPECFILE='${SPECFILE//\'/$Q}'" > $BUILD_ROOT/.build/build.data
+ echo "BUILD_JOBS='${BUILD_JOBS//\'/$Q}'" >> $BUILD_ROOT/.build/build.data
+ echo "BUILD_ARCH='${BUILD_ARCH//\'/$Q}'" >> $BUILD_ROOT/.build/build.data
+ echo "BUILD_RPMS='${BUILD_RPMS//\'/$Q}'" >> $BUILD_ROOT/.build/build.data
echo "CREATE_BASELIBS='$CREATE_BASELIBS'" >> $BUILD_ROOT/.build/build.data
- echo "REASON='${REASON//\'/\'\\\'\'}'" >> $BUILD_ROOT/.build/build.data
+ echo "REASON='${REASON//\'/$Q}'" >> $BUILD_ROOT/.build/build.data
test -n "$XENSWAP" && echo "XENSWAP='/dev/hda2'" >> $BUILD_ROOT/.build/build.data
+ PERSONALITY=`perl -e 'print syscall(135, 0)."\n"'`
+ echo "PERSONALITY='$PERSONALITY'" >> $BUILD_ROOT/.build/build.data
umount $BUILD_ROOT
XMROOT=file:$XENIMAGE
XMROOT=${XMROOT/#file:\/dev/phy:}
XMSWAP=${XMSWAP/#file:\/dev/phy:}
XMSWAP="disk=$XMSWAP,hda2,w"
fi
- xm create -c $BUILD_DIR/xen.conf name="build:${XENIMAGE##*/}" $XENMEMORY $XMROOT $XMSWAP extra="init=/.build/build panic=1"
+ XENID="${XENIMAGE%/root}"
+ XENID="${XENID##*/}"
+ if test "$PERSONALITY" != 0 ; then
+ # have to switch back to PER_LINUX to make xm work
+ perl -e 'syscall(135, 0); exec(@ARGV) || die("$ARGV[0]: $!\n")' xm create -c $BUILD_DIR/xen.conf name="build:$XENID" $XENMEMORY $XMROOT $XMSWAP extra="init=/.build/build panic=1"
+ else
+ xm create -c $BUILD_DIR/xen.conf name="build:$XENID" $XENMEMORY $XMROOT $XMSWAP extra="init=/.build/build panic=1"
+ fi
exit 0
fi
fi
echo -----------------------------------------------------------------
echo -----------------------------------------------------------------
- sync
- mount -oro -n -tproc none $BUILD_ROOT/proc 2> /dev/null
+ mount -n -tproc none $BUILD_ROOT/proc 2> /dev/null
mount -n -tdevpts none $BUILD_ROOT/dev/pts 2> /dev/null
BUILD_SUCCEDED=false
done
if test -n "$CREATE_BASELIBS" ; then
- mount -oro -n -tproc none $BUILD_ROOT/proc 2> /dev/null
+ mount -n -tproc none $BUILD_ROOT/proc 2> /dev/null
create_baselibs
umount -n $BUILD_ROOT/proc 2> /dev/null
fi
-if test -n "$RUNNING_IN_XEN" ; then
- cd /
- test -n "$XENSWAP" && swapoff "$XENSWAP"
- exec >&0 2>&0 # so that the logging tee finishes
- sleep 1 # wait till tee terminates
- kill -9 -1 # goodbye cruel world
- exec /bin/bash -c 'mount -n -o remount,ro / ; halt -f'
- halt -f
-fi
-
cleanup_and_exit 0
$| = 1;
+if ($0 ne '/.build/extractbuild') {
+ my $builddir = $ENV{'BUILD_DIR'} || '/usr/lib/build';
+ my $xen;
+ my $xenswap;
+ while (@ARGV) {
+ if ($ARGV[0] eq '--xen') {
+ shift @ARGV;
+ $xen = shift @ARGV;
+ next;
+ }
+ if ($ARGV[0] eq '--xenswap') {
+ shift @ARGV;
+ $xenswap = shift @ARGV;
+ next;
+ }
+ last
+ }
+ die("please specify a root image\n") unless defined $xen;
+ die("please specify a swap image\n") unless defined $xenswap;
+ my $xenname = $xen;
+ $xenname =~ s/\/root$//;
+ $xenname =~ s/.*\///;
+ my $xmroot = "disk=file:$xen,hda1,w";
+ $xmroot = "disk=phy:$xen,hda1,w" if $xen =~ /^\/dev\//;
+ my $xmswap= "disk=file:$xenswap,hda2,w";
+ $xmswap= "disk=phy:$xen,hda2,w" if $xenswap =~ /^\/dev\//;
+ syscall(135, 0); # switch back to PER_LINUX to make xm work
+ system('xm', 'create', '-c', "$builddir/xen.conf", "name=build:$xenname", $xmroot, $xmswap, "extra=init=/.build/extractbuild panic=1") && die("xm call failed: $?\n");
+ exit(0);
+}
+
sub ls {
local *D;
opendir(D, $_[0]) || return ();
for my $dir (@dirs) {
push @packs, map {"$dir/$_"} grep {/$psuf$/} ls($dir);
}
-unshift @packs, '/.build.log';
+#unshift @packs, '/.build.log';
my $cpio = '';
for my $pack (@packs) {
die("$pack: $!\n") unless $ll;
die if $ll > $l;
$l -= $ll;
- if (length($cpio) > 4096) {
+ while (length($cpio) > 4096) {
(syswrite(S, $cpio, 4096) || 0) == 4096 || die("swap write: $!\n");
$cpio = substr($cpio, 4096);
}