Author: johannes Date: 2007-05-29 08:49:05 -0500 (Tue, 29 May 2007) New Revision: 9638
Added: trunk/gnue-forms/packaging/osx/Description.plist trunk/gnue-forms/packaging/osx/Info.plist trunk/gnue-forms/packaging/osx/Info.plist.in trunk/gnue-forms/packaging/osx/build-env/ trunk/gnue-forms/packaging/osx/build-env/Resources/ trunk/gnue-forms/packaging/osx/build-env/Resources/README trunk/gnue-forms/packaging/osx/build-env/Resources/postflight Removed: trunk/gnue-forms/packaging/osx/create-image trunk/gnue-forms/packaging/osx/dist/ trunk/gnue-forms/packaging/osx/gnue-forms.pmproj trunk/gnue-forms/packaging/osx/scripts/ Modified: trunk/gnue-forms/packaging/osx/HOWTO-Build trunk/gnue-forms/packaging/osx/create-build trunk/gnue-forms/packaging/osx/gnue-forms.py trunk/gnue-forms/packaging/osx/setup.py Log: More work on packaging for OS X Added: trunk/gnue-forms/packaging/osx/Description.plist =================================================================== --- trunk/gnue-forms/packaging/osx/Description.plist 2007-05-29 09:51:08 UTC (rev 9637) +++ trunk/gnue-forms/packaging/osx/Description.plist 2007-05-29 13:49:05 UTC (rev 9638) @@ -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 Forms http://www.gnuenterprise.org</string> + <key>IFPkgDescriptionTitle</key> + <string>GNU Enterprise Forms</string> +</dict> +</plist> Modified: trunk/gnue-forms/packaging/osx/HOWTO-Build =================================================================== --- trunk/gnue-forms/packaging/osx/HOWTO-Build 2007-05-29 09:51:08 UTC (rev 9637) +++ trunk/gnue-forms/packaging/osx/HOWTO-Build 2007-05-29 13:49:05 UTC (rev 9638) @@ -5,33 +5,10 @@ # How to build a disk image containing a native OS X installer package -1. Execute the script "create-build" +1. Execute the script "create-build" with administrator privileges either via + sudo or as root - e.g. ./create-build + e.g. sudo ./create-build - This script creates a final build environment for the package as well as the - Application Bundle for GNUe Forms.. It will be located in the subdirectory - 'build' - -2. Start the package manager (from /Developer/Tools) and load the package - manager project file: gnue-forms.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-forms-0.6.pre3-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-forms-0.6-pre3-py23.pkg - -3. Execute the script "create-image" with the package directory - e.g. create-image gnue-forms-0.6-pre3-py23.pkg - - This will create the disc image containing the installer package as well as - the contents of the 'dist' subdirectory. - + This script creates the installer package as well as the Application Bundle + for GNUe Forms. Added: trunk/gnue-forms/packaging/osx/Info.plist =================================================================== --- trunk/gnue-forms/packaging/osx/Info.plist 2007-05-29 09:51:08 UTC (rev 9637) +++ trunk/gnue-forms/packaging/osx/Info.plist 2007-05-29 13:49:05 UTC (rev 9638) @@ -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-pre4, GNUe (c) 2001-2007 Free Software Foundation</string> + <key>CFBundleIdentifier</key> + <string>org.gnuenterprise.forms</string> + <key>CFBundleShortVersionString</key> + <string>0.6.0</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>2896</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> Added: trunk/gnue-forms/packaging/osx/Info.plist.in =================================================================== --- trunk/gnue-forms/packaging/osx/Info.plist.in 2007-05-29 09:51:08 UTC (rev 9637) +++ trunk/gnue-forms/packaging/osx/Info.plist.in 2007-05-29 13:49:05 UTC (rev 9638) @@ -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>::GNUe-Version::, GNUe (c) 2001-2007 Free Software Foundation</string> + <key>CFBundleIdentifier</key> + <string>org.gnuenterprise.forms</string> + <key>CFBundleShortVersionString</key> + <string>::GNUe-ShortVersion::</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>2896</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> Added: trunk/gnue-forms/packaging/osx/build-env/Resources/README =================================================================== --- trunk/gnue-forms/packaging/osx/build-env/Resources/README 2007-05-29 09:51:08 UTC (rev 9637) +++ trunk/gnue-forms/packaging/osx/build-env/Resources/README 2007-05-29 13:49:05 UTC (rev 9638) @@ -0,0 +1,36 @@ +# README + +1. Prerequisites + + - Python2.3 + Mac OS X Tiger comes with python 2.3.5 installed. That's ok, since this + package is designed for that python environment. + + - Fix for handling python2.3 site-packages: + Download and install a small fix for Tiger's builtin python 2.3 + site-packages from: + http://pythonmac.org/packages/TigerPython23Compat.pkg.zip + + - egenix.mx.datetime + Download and install the egenix-mx-base package from + http://pythonmac.org/packages/egenix_mx_base-2.0.6-py2.3-macosx10.3.zip + + - PIL + Download and install the Python Imaging Library from + http://pythonmac.org/packages/PIL-1.1.5-py2.3-macosx10.3.zip + + - wxPython 2.8 + Download and install the wxPython package from + http://prdownloads.sourceforge.net/wxpython/wxPython2.8-osx-unicode-2.8.3.0-macosx10.3-py2.3.dmg + (make sure to grab a unicode-build) + + +2. Installation + + To install GNU Enterprise Forms double click on the installer package. + + +3. Additional resources and packages: + + If you're looking for a given package (like database drivers) you might visit + "http://www.gnuenterprise.org/downloads/depends". Added: trunk/gnue-forms/packaging/osx/build-env/Resources/postflight =================================================================== --- trunk/gnue-forms/packaging/osx/build-env/Resources/postflight 2007-05-29 09:51:08 UTC (rev 9637) +++ trunk/gnue-forms/packaging/osx/build-env/Resources/postflight 2007-05-29 13:49:05 UTC (rev 9638) @@ -0,0 +1,17 @@ +#!/bin/bash +# +# Postflight script: +# Compile and optimize all python files of gnue +# + +PYTHON=python2.3 +COMPILE=/usr/lib/$PYTHON/compileall.py +SITELIB="/usr/lib/$PYTHON/site-packages/gnue/forms" + +if which $PYTHON >/dev/null 2>&1 && [ -e "$COMPILE" ]; +then + for i in $SITELIB ; do + $PYTHON -O $COMPILE -q $i + $PYTHON $COMPILE -q $i + done +fi Property changes on: trunk/gnue-forms/packaging/osx/build-env/Resources/postflight ___________________________________________________________________ Name: svn:executable + * Modified: trunk/gnue-forms/packaging/osx/create-build =================================================================== --- trunk/gnue-forms/packaging/osx/create-build 2007-05-29 09:51:08 UTC (rev 9637) +++ trunk/gnue-forms/packaging/osx/create-build 2007-05-29 13:49:05 UTC (rev 9638) @@ -1,12 +1,19 @@ #!/bin/bash # -# Create the build environment for gnue-common +# Create a disk image containing an installer package of gnue-common +# # Usage: create-build +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,24 +24,113 @@ 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 --root="$curdir/build" --no-compile +python setup.py install --root=$destdir --no-compile -cd "$curdir" -# Change the first line to meet our needs on Mac OS X -# gnue-forms actually needs the window manager, so make sure to use pythonw -# instead of python -file="$curdir/build/usr/bin/gnue-forms" -sed -i "" -e "s/^#\!\/usr\/bin\/python.*/#\!\/usr\/bin\/pythonw/" "$file" +# --------------------------------------------------------------------------- +# Build the Application bundle for GNUe Forms +# --------------------------------------------------------------------------- -cd "$curdir" - -# Build the Application for gnue-forms +cd $curdir test -d "build-pyapp" && rm -rf "build-pyapp" python setup.py py2app test -d "build-pyapp" && rm -rf "build-pyapp" + + +# --------------------------------------------------------------------------- +# Apply the proper permissions to all files of the package +# --------------------------------------------------------------------------- +cd "$destdir" + +echo "Applying permissions ..." + +find . -print | while read filename +do + real="/$filename" + 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 "$filename" + chgrp $gid "$filename" + chown $uid "$filename" + else + chown root "$filename" + chgrp admin "$filename" + + if [ -d "$filename" ]; + then + chmod 775 "$filename" + else + if [ -x "$filename" ]; then + chmod 775 "$filename" + else + chmod 664 "$filename" + fi + fi + fi +done + + + +# --------------------------------------------------------------------------- +# Build the package +# --------------------------------------------------------------------------- +cd $curdir + +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 "$destdir" + + +# --------------------------------------------------------------------------- +# Create a disk image +# --------------------------------------------------------------------------- + +echo "Creating disk image ..." +rm -f temp.dmg "$volname.dmg" + +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-forms/packaging/osx/create-image =================================================================== --- trunk/gnue-forms/packaging/osx/create-image 2007-05-29 09:51:08 UTC (rev 9637) +++ trunk/gnue-forms/packaging/osx/create-image 2007-05-29 13:49:05 UTC (rev 9638) @@ -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-forms/packaging/osx/gnue-forms.pmproj =================================================================== (Binary files differ) Modified: trunk/gnue-forms/packaging/osx/gnue-forms.py =================================================================== --- trunk/gnue-forms/packaging/osx/gnue-forms.py 2007-05-29 09:51:08 UTC (rev 9637) +++ trunk/gnue-forms/packaging/osx/gnue-forms.py 2007-05-29 13:49:05 UTC (rev 9638) @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env pythonw # # GNU Enterprise Forms - Main Script # @@ -22,11 +22,11 @@ # - Suite 330, Boston, MA 02111-1307, USA. # # $Id: gnue-forms,v 1.3 2003/10/05 18:04:34 btami Exp $ - -import os, sys -if hasattr(sys, 'frozen'): - sys.path.append(os.path.abspath(os.path.dirname(sys.argv[0]))) +import os, sys +if hasattr(sys, 'frozen'): + sys.path.append(os.path.abspath(os.path.dirname(sys.argv[0]))) + from gnue.forms import GFClient if __name__ == '__main__': Modified: trunk/gnue-forms/packaging/osx/setup.py =================================================================== --- trunk/gnue-forms/packaging/osx/setup.py 2007-05-29 09:51:08 UTC (rev 9637) +++ trunk/gnue-forms/packaging/osx/setup.py 2007-05-29 13:49:05 UTC (rev 9638) @@ -4,7 +4,7 @@ app_name = 'GNUe Forms' app_vers = '0.6-pre3+svn.9611' -short_vers= '0.6.0' +short_vers = '0.6.0' # Build the .app file setup( @@ -14,9 +14,8 @@ site_packages=True, argv_emulation=True, excludes=['gnue'], - dist_dir='build/Applications', + dist_dir='build-env/pkg-root/Applications', bdist_base='build-pyapp', - # resources=['resources/License.txt'], plist=dict( CFBundleName = app_name, CFBundleShortVersionString = short_vers, # must be in X.X.X format _______________________________________________ commit-gnue mailing list [email protected] http://lists.gnu.org/mailman/listinfo/commit-gnue
