[darwinbuild-changes] [325] trunk/darwinbuild
source_changes at macosforge.org
source_changes at macosforge.org
Wed Oct 4 02:02:43 PDT 2006
Revision: 325
http://trac.macosforge.org/projects/darwinbuild/changeset/325
Author: ssen
Date: 2006-10-04 02:02:42 -0700 (Wed, 04 Oct 2006)
Log Message:
-----------
add script to build chroot from local root filesystem
Modified Paths:
--------------
trunk/darwinbuild/Makefile
Added Paths:
-----------
trunk/darwinbuild/createChroot
Modified: trunk/darwinbuild/Makefile
===================================================================
--- trunk/darwinbuild/Makefile 2006-08-21 17:32:20 UTC (rev 324)
+++ trunk/darwinbuild/Makefile 2006-10-04 09:02:42 UTC (rev 325)
@@ -18,6 +18,7 @@
[ -d $(DATDIR) ] || $(INSTALL) -d $(INSTALL_DIR_FLAGS) $(DATDIR)
$(INSTALL) $(INSTALL_DOC_FLAGS) darwinbuild.common $(DATDIR)
$(INSTALL) $(INSTALL_EXE_FLAGS) installXcodebuild $(DATDIR)
+ $(INSTALL) $(INSTALL_EXE_FLAGS) createChroot $(DATDIR)
$(INSTALL) $(INSTALL_EXE_FLAGS) manifest $(DATDIR)
$(INSTALL) $(INSTALL_EXE_FLAGS) ditto.sh $(DATDIR)/ditto
$(INSTALL) $(INSTALL_EXE_FLAGS) buildlist.sh $(DATDIR)/buildlist
@@ -31,6 +32,7 @@
rm -f $(BINDIR)/darwinbuild
rm -f $(DATDIR)/darwinbuild.common
rm -f $(DATDIR)/installXcodebuild
+ rm -f $(DATDIR)/createChroot
rm -f $(DATDIR)/manifest
-rmdir $(DATDIR)
Added: trunk/darwinbuild/createChroot
===================================================================
--- trunk/darwinbuild/createChroot (rev 0)
+++ trunk/darwinbuild/createChroot 2006-10-04 09:02:42 UTC (rev 325)
@@ -0,0 +1,120 @@
+#!/bin/sh
+
+FORCE="YES"
+
+XCODEBUILD=/usr/bin/xcodebuild
+BUILDROOT="$1"
+
+EXTRADIR=( \
+ /.vol \
+ /cores \
+ /dev \
+ /private/tmp \
+ /private/var \
+ /private/var/tmp )
+
+EXTRACOPY=( \
+ /Developer/Makefiles \
+ /Library/Application\ Support \
+ /System/Library/Frameworks \
+ /System/Library/PrivateFrameworks \
+ /System/Library/DTDs \
+ /System/Library/Fonts \
+ /System/Library/Keyboard\ Layouts \
+ /System/Library/Perl \
+ /System/Library/Tcl \
+ /System/Library/CoreServices/CharacterSets \
+ /bin \
+ /private/etc \
+ /sbin \
+ /usr/bin \
+ /usr/include \
+ /usr/lib \
+ /usr/libexec \
+ /usr/sbin \
+ /usr/share )
+
+EXTRALINKS=( \
+ private/tmp \
+ private/var \
+ private/etc )
+
+if [ -z "$BUILDROOT" ]; then
+ echo "Usage: $0 /Volumes/DarwinBuild/BuildRoot" 1>&2
+ exit 1
+fi
+
+mkdir -p "$BUILDROOT"
+
+RemoveTemps() {
+ rm -f /tmp/installXcode.libs.$$
+ rm -f /tmp/installXcode.seen.$$
+ rm -f /tmp/installXcode.tmplibs.$$
+ rm -f /tmp/installXcode.tmpfiles.$$
+ rm -f /tmp/installXcode.files.$$
+}
+
+AppendExtraFiles() {
+ for X in "${EXTRACOPY[@]}"; do
+ echo "$X" >> /tmp/installXcode.libs.$$
+ done
+}
+
+GenerateFileNames() {
+ cat /tmp/installXcode.libs.$$ | sort -u | while read X; do
+ # echo adding children for "$X"
+
+ # first mkdir parent directories
+ PARENT=$(dirname "$X")
+ while [ "$PARENT" != "/" -a "$PARENT" != "." ]; do
+ echo ".$PARENT" >> /tmp/installXcode.tmpfiles.$$
+ PARENT=$(dirname "$PARENT")
+ done
+ find -x ".$X" \! \( -name \*_debug\* -o -name \*_profile\* -o -path \*.lproj\* -o -path \*.dict\* \) >> /tmp/installXcode.tmpfiles.$$
+ done
+ sort -u /tmp/installXcode.tmpfiles.$$ > /tmp/installXcode.files.$$
+}
+
+CopyFiles() {
+# VERBOSECPIO="v"
+ VERBOSECPIO=""
+ echo -n "Copying system ..."
+ cpio -o -c < /tmp/installXcode.files.$$ | \
+ (cd "$BUILDROOT"; cpio -ium${VERBOSECPIO}d )
+
+ echo "done"
+}
+
+
+
+###
+### Find all the framework and library dependencies of Xcode build
+### For frameworks, copy over all supporting files.
+###
+
+pushd / > /dev/null
+
+RemoveTemps
+touch /tmp/installXcode.seen.$$
+echo Analyzing files to copy into chroot ...
+AppendExtraFiles
+GenerateFileNames
+CopyFiles
+
+for X in "${EXTRADIR[@]}"; do
+ mkdir -p $BUILDROOT/$X
+done
+
+for X in "${EXTRALINKS[@]}"; do
+ ln -sf $X $BUILDROOT/
+done
+
+# We provide this functionality, at least
+mkdir -p $BUILDROOT/usr/local/darwinbuild/receipts
+for i in "files" "bash"; do
+ touch $BUILDROOT/usr/local/darwinbuild/receipts/$i
+done
+
+popd > /dev/null
+
+RemoveTemps
Property changes on: trunk/darwinbuild/createChroot
___________________________________________________________________
Name: svn:executable
+ *
Name: svn:eol-style
+ native
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.macosforge.org/pipermail/darwinbuild-changes/attachments/20061004/b8e64808/attachment-0001.html
More information about the darwinbuild-changes
mailing list