commit-gnue
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[gnue] r9638 - in trunk/gnue-forms/packaging/osx: . build-env build-env/


From: johannes
Subject: [gnue] r9638 - in trunk/gnue-forms/packaging/osx: . build-env build-env/Resources
Date: Tue, 29 May 2007 08:49:05 -0500 (CDT)

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





reply via email to

[Prev in Thread] Current Thread [Next in Thread]