[darwinbuild-changes] [90] trunk/darwinbuild
source_changes at macosforge.org
source_changes at macosforge.org
Wed Oct 4 01:44:22 PDT 2006
Revision: 90
http://trac.macosforge.org/projects/darwinbuild/changeset/90
Author: kevin
Date: 2006-10-04 01:44:22 -0700 (Wed, 04 Oct 2006)
Log Message:
-----------
- move buildroot receipt location to /usr/local/darwinbuild/receipts
- use the register manifest as the receipt
Modified Paths:
--------------
trunk/darwinbuild/darwinbuild
trunk/darwinbuild/darwinbuild.common
Modified: trunk/darwinbuild/darwinbuild
===================================================================
--- trunk/darwinbuild/darwinbuild 2005-07-25 20:39:13 UTC (rev 89)
+++ trunk/darwinbuild/darwinbuild 2006-10-04 08:44:22 UTC (rev 90)
@@ -332,7 +332,7 @@
###
if [ "$CHROOTED" == "YES" -a "$noload" != "YES" ]; then
echo "*** Installing Roots ..."
- receipts="$BuildRoot/.chroot.receipts"
+ receipts="$BuildRoot/usr/local/darwinbuild/receipts"
mkdir -p "$receipts"
bash_deps=$($PREFIX/bin/darwinxref dependencies -run "bash")
deps=$($PREFIX/bin/darwinxref dependencies -build "$projnam")
@@ -340,9 +340,9 @@
### xcodebuild is a special case because it is not open source
### we try to install it from the host Mac OS X system if it is required
echo "$deps" | grep "\bxcodebuild-"
- if [ "$?" == "0" -a ! -f "$receipts/xcodebuild-(null)" ]; then
+ if [ "$?" == "0" -a ! -f "$receipts/xcodebuild" ]; then
$DARWIN_BUILDROOT/bin/installXcodebuild
- touch "$receipts/xcodebuild-(null)"
+ touch "$receipts/xcodebuild"
fi
for X in files bash $bash_vers $deps ; do
@@ -555,8 +555,15 @@
done
IFS="$OLDIFS"
+### 46 was derived from Tiger ls(1) output.
cat <<-EOF >> $SCRIPT
echo '++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++'
+ echo 'Installed Roots:'
+ ls -l "/usr/local/darwinbuild/receipts" | cut -c 46- | sort
+EOF
+
+cat <<-EOF >> $SCRIPT
+ echo '++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++'
echo $buildtool $action '$build_string' < /dev/null
echo '++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++'
echo ''
@@ -619,15 +626,15 @@
echo "devfs appears to exist ..."
fi
-# if [ "$buildtool" == "xcodebuild" ]; then
-# echo "Mounting volfs ..."
-# [ -d "$BuildRoot/sbin" ] || mkdir -p "$BuildRoot/sbin"
-# [ -f "$BuildRoot/sbin/mount_volfs" ] || cp /sbin/mount_volfs "$BuildRoot/sbin/"
-# [ -f "$BuildRoot/sbin/umount" ] || cp /sbin/umount "$BuildRoot/sbin/"
-# [ -d "$BuildRoot/.vol" ] || mkdir -p "$BuildRoot/.vol"
-# ## If the directory is empty, assume volfs is not mounted
-# [ "$(echo $BuildRoot/.vol/*)" == "$BuildRoot/.vol/*" ] && chroot "$BuildRoot" /sbin/mount_volfs "/.vol"
-# fi
+ if [ "$buildtool" == "xcodebuild" ]; then
+ echo "Mounting volfs ..."
+ [ -d "$BuildRoot/sbin" ] || mkdir -p "$BuildRoot/sbin"
+ [ -f "$BuildRoot/sbin/mount_volfs" ] || cp /sbin/mount_volfs "$BuildRoot/sbin/"
+ [ -f "$BuildRoot/sbin/umount" ] || cp /sbin/umount "$BuildRoot/sbin/"
+ [ -d "$BuildRoot/.vol" ] || mkdir -p "$BuildRoot/.vol"
+ ## If the directory is empty, assume volfs is not mounted
+ [ "$(echo $BuildRoot/.vol/*)" == "$BuildRoot/.vol/*" ] && chroot "$BuildRoot" /sbin/mount_volfs "/.vol"
+ fi
###
### Actually invoke the build tool here
@@ -668,11 +675,22 @@
mkdir -p "$DARWIN_BUILDROOT/Headers/$projnam/$project.hdrs~$build_version"
ditto "$REAL_DSTROOT" "$DARWIN_BUILDROOT/Headers/$projnam/$project.hdrs~$build_version"
else
+ ### Register the root with the darwinxref database. This will output a manifest
+ ### which can be used to uniquely identify the root. Store the unique identifier
+ ### in the receipts directory after registration.
+ MANIFEST="/tmp/$projnam.$$"
+ "$PREFIX/bin/darwinxref" register "$projnam" "$REAL_DSTROOT" | tee "$MANIFEST"
+ SHA1=$(cat "$MANIFEST" | openssl dgst -sha1)
+ mkdir -p "$REAL_DSTROOT/usr/local/darwinbuild/receipts"
+ cp "$MANIFEST" "$REAL_DSTROOT/usr/local/darwinbuild/receipts/$SHA1"
+ ln -s "$SHA1" "$REAL_DSTROOT/usr/local/darwinbuild/receipts/$projnam"
+ rm -f "$MANIFEST"
+
mkdir -p "$DARWIN_BUILDROOT/Symbols/$projnam/$project.sym~$build_version"
mkdir -p "$DARWIN_BUILDROOT/Roots/$projnam/$project.root~$build_version"
ditto "$REAL_SYMROOT" "$DARWIN_BUILDROOT/Symbols/$projnam/$project.sym~$build_version"
ditto "$REAL_DSTROOT" "$DARWIN_BUILDROOT/Roots/$projnam/$project.root~$build_version"
- "$PREFIX/bin/darwinxref" register "$projnam" "$REAL_DSTROOT"
+
if [ "$logdeps" == "YES" ]; then
### Log dependencies, but filter out duplicates, relative paths, and temporary files
TRACE_TYPES='\(execve\|open\)[[:space:]]\+'
Modified: trunk/darwinbuild/darwinbuild.common
===================================================================
--- trunk/darwinbuild/darwinbuild.common 2005-07-25 20:39:13 UTC (rev 89)
+++ trunk/darwinbuild/darwinbuild.common 2006-10-04 08:44:22 UTC (rev 90)
@@ -111,7 +111,7 @@
function InstallRoot() {
local BuildRoot="$1"
local X="$2"
- local receipts="$BuildRoot/.chroot.receipts"
+ local receipts="$BuildRoot/usr/local/darwinbuild/receipts"
mkdir -p "$receipts"
### Special case for core foundation because the Mac OS X
@@ -120,7 +120,7 @@
### the host Mac OS X system. Save away a copy and restore
### it later.
CFPATH=/System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation
- if [ "${X/-*}" == "CF" -a -f "$receipts/xcodebuild-(null)" ]; then
+ if [ "${X/-*}" == "CF" -a -f "$receipts/xcodebuild" ]; then
cp "$BuildRoot/$CFPATH" "$BuildRoot/$CFPATH.bak"
fi
@@ -129,8 +129,11 @@
### project's dependencies. Therefore don't install something that
### has already been installed. (Test for the presense of a receipt).
###
- bv=$(GetBuildVersion $DARWIN_BUILDROOT/Roots/${X/-*}/$X.root*)
- local SRCDIR=$DARWIN_BUILDROOT/Roots/${X/-*}/$X.root~$bv
+ if [ -d "$DARWIN_BUILDROOT/Roots/$X" ]; then
+ Y=$($PREFIX/bin/darwinxref $dbfile version $X)
+ bv=$(GetBuildVersion $DARWIN_BUILDROOT/Roots/$X/$Y.root*)
+ local SRCDIR=$DARWIN_BUILDROOT/Roots/$X/$Y.root~$bv
+ fi
if [ "$SRCDIR" -nt "$receipts/$X" ]; then
echo "Copying $X ..."
ditto $SRCDIR $BuildRoot
@@ -166,7 +169,7 @@
function InstallHeaders() {
local BuildRoot="$1"
local X="$2"
- local receipts="$BuildRoot/.chroot.receipts"
+ local receipts="$BuildRoot/usr/local/darwinbuild/receipts"
if [ ! -f "$receipts/$X.hdrs" -a ! -f "$receipts/$X" ]; then
bv=$(GetBuildVersion $DARWIN_BUILDROOT/Headers/${X/-*}/$X.hdrs*)
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.macosforge.org/pipermail/darwinbuild-changes/attachments/20061004/c38a8967/attachment.html
More information about the darwinbuild-changes
mailing list