Author: johannes
Date: 2007-05-27 06:14:25 -0500 (Sun, 27 May 2007)
New Revision: 9631
Added:
trunk/gnue-common/packaging/osx/Description.plist
trunk/gnue-common/packaging/osx/Info.plist
Removed:
trunk/gnue-common/packaging/osx/create-image
trunk/gnue-common/packaging/osx/dist/
trunk/gnue-common/packaging/osx/gnue-common.pmproj
trunk/gnue-common/packaging/osx/scripts/
Modified:
trunk/gnue-common/packaging/osx/HOWTO-Build
trunk/gnue-common/packaging/osx/create-build
Log:
Changed scripts so all steps are done from one script without the need of using
PackageMaker's GUI.
Added: trunk/gnue-common/packaging/osx/Description.plist
===================================================================
--- trunk/gnue-common/packaging/osx/Description.plist 2007-05-26 15:26:15 UTC (rev 9630)
+++ trunk/gnue-common/packaging/osx/Description.plist 2007-05-27 11:14:25 UTC (rev 9631)
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>IFPkgDescriptionDescription</key>
+ <string>GNU Enterprise Common Base http://www.gnuenterprise.org</string>
+ <key>IFPkgDescriptionTitle</key>
+ <string>GNU Enterprise Common</string>
+</dict>
+</plist>
Modified: trunk/gnue-common/packaging/osx/HOWTO-Build
===================================================================
--- trunk/gnue-common/packaging/osx/HOWTO-Build 2007-05-26 15:26:15 UTC (rev 9630)
+++ trunk/gnue-common/packaging/osx/HOWTO-Build 2007-05-27 11:14:25 UTC (rev 9631)
@@ -5,41 +5,16 @@
# How to build a disk image containing a native OS X installer package
-1. Grab the tarball you'd like to create a package for from
- http://www.gnuenterprise.org/downloads/
+Grab the tarball you'd like to create a package for from
+http://www.gnuenterprise.org/downloads/
- e.g. gnue-common-0.6.1.99-beta1.tar.gz
+e.g. gnue-common-0.6.8.tar.gz
-2. Unpack the tarball into this directory (packaging/osx)
- You'll get a subdirectory like 'gnue-common-0.6.1.99-beta1'
+and unpack the tarball. Change into the packaging/osx directory.
-3. Execute the script "create-build" with the package-directory previously
- created
+1. Execute the script "create-build" using sudo or being root.
- e.g. create-build gnue-common-0.6.1.99-beta1
+ e.g. sudo ./create-build
- This script creates a final build environment for the package. It will be
- located in the subdirectory 'build'
-
-4. Start the package manager (from /Developer/Tools) and load the package
- manager project file: gnue-common.pmproj
-
- In the 'Contents' tab click on the 'File permissions ...' button. There
- please click the button 'Apply Recommendations" and finally quit this dialog
- via Ok button.
-
- Now you can call "Project | Build" from the menu bar or by Cmd-B.
- Determine the name of the installer package
- (e.g. gnue-common-0.6.1.99-py23) and press the Save button. You'll be
- asked for the administrator password.
-
- After the build is finished and there were no errors you can quit the
- package manager. Another directory has been created - the package directory,
- e.g. gnue-common-0.6.1.99-py23.pkg
-
-5. Execute the script "create-image" with the package directory
- e.g. create-image gnue-common-0.6.1.99-py23.pkg
-
- This will create the disc image containing the installer package as well as
- the contents of the 'dist' subdirectory.
-
+ This script does all the dirty work of building the package environment,
+ creating the installler package and finally building the disk image.
Added: trunk/gnue-common/packaging/osx/Info.plist
===================================================================
--- trunk/gnue-common/packaging/osx/Info.plist 2007-05-26 15:26:15 UTC (rev 9630)
+++ trunk/gnue-common/packaging/osx/Info.plist 2007-05-27 11:14:25 UTC (rev 9631)
@@ -0,0 +1,46 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>CFBundleGetInfoString</key>
+ <string>0.6.8, GNUe (c) 2001-2007 Free Software Foundation</string>
+ <key>CFBundleIdentifier</key>
+ <string>org.gnuenterprise.common</string>
+ <key>CFBundleShortVersionString</key>
+ <string>0.6.8</string>
+ <key>IFMajorVersion</key>
+ <integer>0</integer>
+ <key>IFMinorVersion</key>
+ <integer>6</integer>
+ <key>IFPkgFlagAllowBackRev</key>
+ <false/>
+ <key>IFPkgFlagAuthorizationAction</key>
+ <string>AdminAuthorization</string>
+ <key>IFPkgFlagBackgroundAlignment</key>
+ <string>topleft</string>
+ <key>IFPkgFlagBackgroundScaling</key>
+ <string>none</string>
+ <key>IFPkgFlagDefaultLocation</key>
+ <string>/</string>
+ <key>IFPkgFlagFollowLinks</key>
+ <true/>
+ <key>IFPkgFlagInstallFat</key>
+ <false/>
+ <key>IFPkgFlagInstalledSize</key>
+ <integer>4060</integer>
+ <key>IFPkgFlagIsRequired</key>
+ <false/>
+ <key>IFPkgFlagOverwritePermissions</key>
+ <false/>
+ <key>IFPkgFlagRelocatable</key>
+ <false/>
+ <key>IFPkgFlagRestartAction</key>
+ <string>NoRestart</string>
+ <key>IFPkgFlagRootVolumeOnly</key>
+ <false/>
+ <key>IFPkgFlagUpdateInstalledLanguages</key>
+ <false/>
+ <key>IFPkgFormatVersion</key>
+ <real>0.10000000149011612</real>
+</dict>
+</plist>
Modified: trunk/gnue-common/packaging/osx/create-build
===================================================================
--- trunk/gnue-common/packaging/osx/create-build 2007-05-26 15:26:15 UTC (rev 9630)
+++ trunk/gnue-common/packaging/osx/create-build 2007-05-27 11:14:25 UTC (rev 9631)
@@ -1,12 +1,19 @@
#!/bin/bash
#
-# Create the build environment for gnue-common
-# Usage: create-build <package-directory>
+# Create a disk image containing an installer package of gnue-common
+#
+# Usage: create-build
-packagedir=$1
+if [ $UID -ne 0 ];
+then
+ echo "Please run this script as admin (or sudo)"
+ exit 1
+fi
+
+packagedir="../.."
if [ ! -d "$packagedir" ];
then
- echo "Usage: $0 <package-directory>"
+ echo "Usage: $0"
exit 1
fi
@@ -17,11 +24,110 @@
exit 1
fi
-test -d "build" || mkdir "build"
+# ---------------------------------------------------------------------------
+# Get the package-name and version from the PKG-INFO file
+# ---------------------------------------------------------------------------
+pkgvers=`grep "^Version" ../../PKG-INFO | cut -d" " -f2`
+pkgname=`grep "^Name" ../../PKG-INFO | cut -d" " -f2`
+volname="$pkgname-$pkgvers-py23"
+package="$pkgname-$pkgvers-py23.pkg"
+
+if [ "$package" = "--py23.pkg" ];
+then
+ echo "Cannot determine package and version"
+ exit 1
+fi
+
+# ---------------------------------------------------------------------------
+# Populate the package environment
+# ---------------------------------------------------------------------------
+
curdir=`pwd`
+destdir="$curdir/build-env/pkg-root"
+resdir="$curdir/build-env/Resources"
+test -d "$destdir" || mkdir "$destdir"
+
cd "$packagedir"
-python setup.py install --prefix=/usr --root=../build --no-compile
+python setup.py install --prefix=/usr --root=$destdir --no-compile
-cd "$curdir"
+# ---------------------------------------------------------------------------
+# Make sure to have a gnue.pth file in the Framework
+# ---------------------------------------------------------------------------
+# TODO: Check if this isn't better placed in a postflight script
+cd "$destdir"
+syslnk="System/Library/Frameworks/Python.framework/Versions/2.3/lib/python2.3/site-packages"
+mkdir -p $syslnk
+echo "/usr/lib/python2.3/site-packages" > "$syslnk/gnue.pth"
+
+# ---------------------------------------------------------------------------
+# Apply the proper permissions to all files of the package
+# ---------------------------------------------------------------------------
+cd "$destdir"
+out="$curdir/out.log"
+
+echo "Applying permissions ..."
+
+for i in `find . -print`
+do
+ real="/$i"
+ echo "$i" >> $out
+ if [ -e $real ];
+ then
+ data=`stat -f "%u %g %p" $real`
+ uid=`echo $data | cut -f1 -d" "`
+ gid=`echo $data | cut -f2 -d" "`
+ mod=`echo $data | cut -f3 -d" "`
+
+ chmod $mod $i
+ chgrp $gid $i
+ chown $uid $i
+ else
+ chown root $i
+ chgrp admin $i
+
+ if [ -d $i ];
+ then
+ chmod 775 $i
+ fi
+
+ if [ -f $i ];
+ then
+ if [ -x $i ]; then
+ chmod 775 $i
+ else
+ chmod 664 $i
+ fi
+ fi
+ fi
+done
+
+cd $curdir
+
+# ---------------------------------------------------------------------------
+# Build the package
+# ---------------------------------------------------------------------------
+echo "Building the package ..."
+/Developer/Tools/packagemaker -build -p $package -f $destdir -ds -r $resdir -i Info.plist -d Description.plist
+
+# ---------------------------------------------------------------------------
+# Get rid of the obsolte directories
+# ---------------------------------------------------------------------------
+
+rm -rf "$curdir/build-env"
+
+
+# ---------------------------------------------------------------------------
+# Create a disk image
+# ---------------------------------------------------------------------------
+
+echo "Creating disk image ..."
+hdiutil create -srcfolder $package -volname $volname temp.dmg
+
+# Convert the image
+echo "Converting disk image ..."
+hdiutil convert temp.dmg -format UDZO -o $volname.dmg
+
+rm -f temp.dmg
+rm -rf $package
Deleted: trunk/gnue-common/packaging/osx/create-image
===================================================================
--- trunk/gnue-common/packaging/osx/create-image 2007-05-26 15:26:15 UTC (rev 9630)
+++ trunk/gnue-common/packaging/osx/create-image 2007-05-27 11:14:25 UTC (rev 9631)
@@ -1,38 +0,0 @@
-#!/bin/bash
-#
-# Create a disk image containing an installer package as well as the contents
-# of the dist directory
-#
-
-srcDir="$1"
-bseName=`basename $srcDir`
-pkgName=`basename $srcDir .pkg`
-
-if [ ! -d "$srcDir" -o "$pkgName" == "$bseName" ]; then
- echo "Usage: $0 <installer-package>"
- exit 1
-fi
-
-tmpDir="tmp-img"
-test -d "$tmpDir" && rm -rf "$tmpDir"
-mkdir "$tmpDir"
-
-# Copy the contents of the dist-dir
-echo "Preparing disk image ..."
-if [ -d "dist" ]; then
- cp -R dist/* $tmpDir
-fi
-
-# Copy the package directory to the dist-dir
-cp -R `basename $srcDir` $tmpDir
-
-# Create an image
-echo "Creating disk image ..."
-hdiutil create -srcfolder $tmpDir -volname $pkgName temp.dmg
-
-# Convert the image
-echo "Converting disk image ..."
-hdiutil convert temp.dmg -format UDZO -o $pkgName.dmg
-
-rm -f temp.dmg
-rm -rf $tmpDir
Deleted: trunk/gnue-common/packaging/osx/gnue-common.pmproj
===================================================================
(Binary files differ)
lmpx.com only provides a reader for public news (NNTP) servers. It is not
affiliated with the servers or forums shown here and is not responsible for
the content of articles, which is written by their respective authors.