This shows you the differences between two versions of the page.
| Next revision | Previous revision | ||
|
proj:macinstallers [2013/12/14 15:45] 127.0.0.1 external edit |
proj:macinstallers [2016/01/01 14:54] (current) admin [Packaging] |
||
|---|---|---|---|
| Line 6: | Line 6: | ||
| * debug = False etc as usual | * debug = False etc as usual | ||
| + | * Make sure any js file (e.g. sofastats_charts.js) or folder changes (e.g. googleapi removed), or data changes (sofa.db), are reflected in /home/g/projects/SOFA/SOFA Statistics template.app | ||
| * Run /home/g/projects/SOFA/0 KEEP pre_OSX_packaging | * Run /home/g/projects/SOFA/0 KEEP pre_OSX_packaging | ||
| - | * in tidy folder on desktop run_sofastats_maker (it prompts for version number) | + | * Open CleanMac (revert to snapshot GoodScreenResolution) |
| - | * shift copy of zip from mounted macmaker folder onto desktop and open | + | * Copy installer zip file from grantshare/macshare. |
| - | + | * Extract it. | |
| - | + | * Test it. | |
| - | ====== Test Clean Installation ====== | + | * If OK, transfer to SOFA/installers folder once back on main dev machine |
| - | + | ||
| - | * Revert cleanmac back to snapshot (clean slate) | + | |
| - | * Open cleanmac | + | |
| - | * From ubuntu > grantshare copy across zip | + | |
| - | * Put on Desktop and run | + | |
| - | * Test SOFA Statistics | + | |
| - | + | ||
| - | ====== Libraries Required ====== | + | |
| - | + | ||
| - | aggelopoulos@gmail.com happy to help test Mac versions of modules e.g. export_output.py | + | |
| - | + | ||
| - | Working: | + | |
| - | + | ||
| - | * **wkhtmltopdf** http://code.google.com/p/wkhtmltopdf/downloads/detail?name=wkhtmltopdf-OSX-0.10.0_rc2-static.tar.bz2&can=1&q= - HTML -> PDF\\ May need to make a special version for Mountain Lion (http://marcus.bointon.com/compiling-wkhtmltopdf-on-mac-os-x-10-7-lion/)\\ At http://code.google.com/p/wkhtmltopdf/downloads choose all downloads to see all releases. | + | |
| - | * **pyPdf** http://pybrary.net/pyPdf/ - Count PDF pages ready for making PNGs. NB cd into package directory before running setup.py - it matters. | + | |
| - | + | ||
| - | Installable but not yet working properly: | + | |
| - | + | ||
| - | * **Pdftk** http://www.pdflabs.com/docs/install-pdftk/ - Malformed -> Standard PDF. Even pdftk --version fails with an error about library not loaded. sid.steward@pdflabs.com has made a new release but still a problem on Leopard. | + | |
| - | + | ||
| - | Not installable: | + | |
| - | + | ||
| - | * **Ghostscript** http://www.linuxfoundation.org/collaborate/workgroups/openprinting/macosx/foomatic#Ghostscript_for_Mac_OS_X_10.3.x_.28Panther.29_-_Mac_OS_X_10.7.x_.28Lion.29 - PDF -> PNG | + | |
| - | * **ImageMagick** http://cactuslab.com/imagemagick/ - PNG -> trimmed PNG of correct dpi | + | |
| - | + | ||
| - | ===== Preparation ===== | + | |
| - | + | ||
| - | * **libtool** libtool wkhtmltopdf -o wkhtmltopdf.dylib | + | |
| - | * **Homebrew** [Not needed to get wkhtmltopdf if in the fortunate position of being able to use a pre-prepared binary] http://mxcl.github.com/homebrew/ Bet https://github.com/mxcl/homebrew/tarball/master then extract and copy to /usr/local/bin (cp -R src dest). cd into directory with brew then brew install boost\\ Used brew to install boost (needed by PythonMagick) and wkhtmltopdf (the dmg at wkhtmltopdf downloads failed with a message about 'You can't open this application "wkhtmltopdf" because it is not supported on this architecture'. | + | |
| - | + | ||
| - | [[:proj:deb | Deb Packaging Notes]] | + | |
| - | + | ||
| - | + | ||
| - | + | ||
| - | ====== Old Approach ====== | + | |
| - | + | ||
| - | * debug = False etc as usual | + | |
| - | * Run /home/g/projects/SOFA/0 KEEP pre_OSX_packaging | + | |
| - | * Open macpackager in VirtualBox | + | |
| - | * Delete existing macmaker folder on Desktop | + | |
| - | * From ubuntu > grantshare copy fresh macmaker onto Desktop | + | |
| - | + | ||
| - | ===== Platypus ===== | + | |
| - | + | ||
| - | * Open Platypus with profile of SOFA Statistics.platypus | + | |
| - | * check version number e.g. 1.0.6 | + | |
| - | * Save bundle to **Profiles** folder (/Users/g/Library/Application support/Platypus/Profiles). | + | |
| - | * Click Create to make fresh app bundle (containing freshest start.py). Create to **/Applications** (mactest/Applications). | + | |
| - | * Extra details | + | |
| - | * Script path should be from macmaker i.e. /Users/g/Desktop/macmaker/sofa.main/start.py | + | |
| - | * Leave "Remains running after initial execution" unticked. | + | |
| - | * Script Type - Other | + | |
| - | * /Library/Frameworks/ | + | |
| - | * Parameters - /Library/Frameworks/Python.framework/Versions/2.6/bin/python2.6 yourScript | + | |
| - | * Close Platypus | + | |
| - | + | ||
| - | ===== Iceberg ===== | + | |
| - | + | ||
| - | * Open **sofa_app** project in Iceberg | + | |
| - | * Check version and short version | + | |
| - | * Build to make sure contains latest app bundle and thus latest start.py | + | |
| - | * Open **sofa_pkg** project in Iceberg | + | |
| - | * NB if new files, add them to this | + | |
| - | * Build to make sure package contains latest SOFA scripts from macmaker | + | |
| - | * Open **sofastatistics** project in Iceberg | + | |
| - | * Update version and short version | + | |
| - | * Run build and run process | + | |
| - | * Close Iceberg | + | |
| - | + | ||
| - | ===== Quick Local Test ===== | + | |
| - | + | ||
| - | Open SOFA Statistics from Go>Applications>SOFA Statistics | + | |
| - | + | ||
| - | ===== Make DMG ===== | + | |
| - | + | ||
| - | * Double click on dmg_maker.command | + | |
| - | * Making a launchable shortcut [[http://skillfulness.blogspot.com/2008/02/bash-scripts-on-mac-os-x-leopard.html | BASH scripts on Mac OS X Leopard]] | + | |
| - | + | ||
| - | + | ||
| - | ==== Script ==== | + | |
| - | + | ||
| - | # http://developer.apple.com/library/mac/#documentation/Darwin/Reference/ManPages/man1/hdiutil.1.html | + | |
| - | # http://www.myersdaily.org/joseph/notes/macosx2/man/hdiutil.1.html | + | |
| - | # http://ss64.com/osx/cp.html | + | |
| - | echo "Enter version number e.g. 1.0.7:" | + | |
| - | read version | + | |
| - | dmg2make="/Users/g/Desktop/sofastats-${version}_for_mac.dmg" # (no spaces around =) | + | |
| - | rm -f "$dmg2make" | + | |
| - | rm -rf "/Users/g/Desktop/sofastatistics/sofastatistics.mpkg" | + | |
| - | cp -R "/Users/g/sofa_mpkg/build/sofastatistics.mpkg" "/Users/g/Desktop/sofastatistics/" | + | |
| - | # ov - overwrite if already there | + | |
| - | hdiutil -verbose create "$dmg2make" -srcfolder "/Users/g/Desktop/sofastatistics" -ov -megabytes 85 -volname "SOFA Statistics" | + | |
| - | echo "FINISHED" | + | |
| - | + | ||
| - | ==== Manual Steps ===== | + | |
| - | * Copy g/sofa_mpkg/build/sofastatistics.mpkg to desktop | + | |
| - | * Empty sofastatistics folder of old sofastatistics.mpkg and put in new one | + | |
| - | * Right click (or CTRL-Click) the folder and select "Get Info" and note the size of its contents. | + | |
| - | * Open Disk Utility (Applications > Utilities > Disk Utility) | + | |
| - | * Click the "New Image" icon to create a new disk image. | + | |
| - | * Name the image **sofastats-1.0.1_for_mac.dmg** (or whatever version) | + | |
| - | * Set Volume Name to SOFA Statistics | + | |
| - | * Select a size adequate for the size of your folder you created in Step 2. If 71MB may need **85MB**. Set the encryption to "none" and Format to "read/write disk image.". | + | |
| - | * Copy the sofastatistics folder into the newly mounted disk image. | + | |
| - | * Unmount the Disk Image by right clicking and selecting to eject it. | + | |
| - | * a mpkg is a folder unlike a dmg so is not suitable for distribution [[http://forums.macrumors.com/showthread.php?t=217052 | MacRumors Forum]] | + | |
| - | * [[http://www.wikihow.com/Make-a-DMG-File-on-a-Mac | How to Make a DMG File on a Mac]] | + | |
| - | * On macpackager, overwrite DMG in grantshare | + | |
| - | * Close macpackager | + | |
| - | + | ||
| - | + | ||
| - | ====== Iceberg Meta Packaging ====== | + | |
| - | + | ||
| - | [[http://s.sudre.free.fr/Software/Iceberg.html | Iceberg Packager for OS X]] | + | |
| - | + | ||
| - | Handles pkgs and file transfers. | + | |
| - | + | ||
| - | Use same licence file as for Deb | + | |
| - | + | ||
| - | Transfer main sofa scripts under /Library/sofa | + | |
| - | + | ||
| - | Remember subfolders | + | |
| - | * boomslang | + | |
| - | * dbe_plugins (forget 2 MS ones) | + | |
| - | * images | + | |
| - | + | ||
| - | Also the following subfolders ready for copying for local user: | + | |
| - | + | ||
| - | * css | + | |
| - | * reports | + | |
| - | * _internal | + | |
| - | * vdts | + | |
| - | * projs | + | |
| - | + | ||
| - | Install following packages: | + | |
| - | + | ||
| - | * python-2.6.5-macosx10.3-2010-03-24.dmg | + | |
| - | * wxPython2.8-osx-unicode-2.8.10.1-universal-py2.6.dmg | + | |
| - | * matplotlib-0.99.1.1-py2.6-macosx10.5.dmg | + | |
| - | * numpy-1.4.1-py2.6-python.org.dmg | + | |
| - | + | ||
| - | Install sofastatistics.app into /Applications (i.e. make an icon) | + | |
| - | + | ||
| - | NB to enable users to opt out of certain parts of the instalation - e.g. skip Python 2.6.5 because they already have 2.6.3 - must have at least one package which is Unselected. If all packages are selected, the user is assumed to want all of them and gets no choice to have a custom install! | + | |
| - | + | ||
| - | ====== Platypus App Bundling ====== | + | |
| - | + | ||
| - | * [[http://www.sveinbjorn.org/platypus | Platypus App Bundler for OS X]] | + | |
| - | * Use explicit path to Python 2.6 - /Library/Frameworks/Python.framework/Versions/2.6/bin/python2.6 | + | |
| - | * The starter script (/Library/sofa/start.py) needs to add /Library/sofa to sys.path otherwise it won't find its fellow modules e.g. my_globals.py | + | |
| - | * Select None for Output | + | |
| - | * Untick leaving application running at end (otherwise Python closes but a useless SOFA icon stays running in the Dock). | + | |
| - | + | ||
| - | ===== Making Icon Bundle ===== | + | |
| - | + | ||
| - | * Make series of TIFFs with no compression and transparency ticked | + | |
| - | * 16x, 32x, 128x, 256x | + | |
| - | * Under macpackager > Developer > ... Icon Maker, create icon set, save config, and Export as icns file. | + | |
| - | * The icns file will be used in platypus (right click on image to get menu item for selecting an icns file). | + | |
| - | + | ||
| - | + | ||
| - | ====== Virtualising Mac OS X ====== | + | |
| - | + | ||
| - | Need VirtualBox 3.2 beta 2 | + | |
| - | + | ||
| - | Need iDeneb 1.6 10.5.8 Lite Edition | + | |
| - | + | ||
| - | Do not use efi, or it will not boot into the newly installed virtual HDD | + | |
| - | + | ||
| - | Leave iDeneb connected as the CD so it uses that to boot. Necessary, even though booting onto virtual HDD. | + | |
| - | + | ||
| - | Need at least 15GB space. 30GB seems a safe bet with room for databases etc. | + | |
| - | + | ||
| - | ====== Required packages ====== | + | |
| - | + | ||
| - | ===== Python ===== | + | |
| - | + | ||
| - | **python-2.6.5-macosx10.3-2010-03-24.dmg** | + | |
| - | + | ||
| - | ===== wxPython ===== | + | |
| - | + | ||
| - | **wxPython2.8-osx-unicode-2.8.10.1-universal-py2.6.dmg** | + | |
| - | + | ||
| - | ===== MatPlotLib ===== | + | |
| - | + | ||
| - | **matplotlib-0.99.1.1-py2.6-macosx10.5.dmg** | + | |
| - | + | ||
| - | ===== Numpy ===== | + | |
| - | + | ||
| - | **numpy-1.4.1-py2.6-python.org.dmg** | + | |
| - | + | ||
| - | ===== MySQL ===== | + | |
| - | + | ||
| - | PyMySQL is much easier to install in OS X than MySQLdb. | + | |
| - | + | ||
| - | In my virtualised test installation the user is "mysql" and there is a blank password. | + | |
| - | + | ||
| - | From the terminal it is possible to test if mysql is running: | + | |
| - | + | ||
| - | /usr/local/mysql/bin/mysql | + | |
| - | + | ||
| - | NB may want to install MySQL startup as well as MySQL itself. | + | |
| - | ==== PyMySQL ==== | + | |
| - | + | ||
| - | Presumably you have already installed MySQL and, optionally, the MySQL utility which makes MySQL run automatically on startup. | + | |
| - | + | ||
| - | PyMySQL is the simple library you need to install that lets SOFA Statistics connect to MySQL: http://code.google.com/p/pymysql/downloads/detail?name=PyMySQL-0.4.tar.gz&can=2&q= | + | |
| - | + | ||
| - | Open the downloaded file onto your Desktop | + | |
| - | + | ||
| - | Open terminal (under Applications>Utilities) | + | |
| - | + | ||
| - | cd Desktop/PyMySQL-0.4 | + | |
| - | + | ||
| - | python2.6 setup.py install | + | |
| - | + | ||
| - | (NB python2.6 so the package is installed to the version of Python that SOFA Statistics us) | + | |
| - | + | ||
| - | Open SOFA and configure your connection to MySQL as per http://www.sofastatistics.com/wiki/doku.php?id=help:projects | + | |
| - | + | ||
| - | Success? | + | |
| - | + | ||
| - | NB to test if MySQL is running you can run the following command in the terminal: | + | |
| - | + | ||
| - | /usr/local/mysql/bin/mysql | + | |
| - | + | ||
| - | ==== MySQLdb ==== | + | |
| - | + | ||
| - | NB I have already installed Python 2.6 from the python.org package **python-2.6.5-macosx10.3-2010-03-24.dmg**. The 10.3 means it will work with everything 10.3 and above. My version of Leopard is 10.5.8. | + | |
| - | + | ||
| - | Download **setuptools-0.6c11-py2.6.egg** from here: http://pypi.python.org/pypi/setuptools#downloads. Then, in the terminal: | + | |
| - | + | ||
| - | * cd Desktop | + | |
| - | * sh setuptools-0.6c9-py2.4.egg | + | |
| - | + | ||
| - | If you don't have gcc and you are running Leopard, install xcode313_2736_developerdvd.dmg. If you are running Snow Leopard, there is a newer version of Xcode to use, but that is easy to find. This step may require registration with Apple. See http://adcdownload.apple.com/Developer_Tools/xcode_3.1.3_developer_tools/xcode313_2736_developerdvd.dmg. | + | |
| - | + | ||
| - | Must have a version of MySQL installed. I used **mysql-5.1.47-osx10.5-x86.dmg**. If not installed, then setup.py step for MySQLdb will not succeed. | + | |
| - | + | ||
| - | Download **MySQL-python-1.2.3c1.tar.gz** from here: https://sourceforge.net/projects/mysql-python/files/mysql-python/1.2.3/MySQL-python-1.2.3.tar.gz/download | + | |
| - | + | ||
| - | Extract on desktop. Do this by opening with ... Archive utility. | + | |
| - | + | ||
| - | Then open the folder it created on your desktop - MySQL-python-1.2.3c1. Edit setup_posix.py using IDLE (1) so mysql_config.path = "/usr/local/mysql/bin/mysql_config" not just "mysql_config". There is another way to do this involving PATH and env etc but this is pretty simple. | + | |
| - | 1) Set preferences of IDLE to 14px otherwise it is unbearably ugly and spoils the OS X experience ;-) | + | |
| - | + | ||
| - | In the terminal: | + | |
| - | + | ||
| - | * cd Desktop/MySQL-python-1.2.3c1 | + | |
| - | * python setup.py clean (not much point - if first time, nothing to clean; if have to redo, need to completely remove the build folder anyway e.g. from the extracted MySQL folder: rm -rf build) | + | |
| - | * ARCHFLAGS='-arch i386' python setup.py build | + | |
| - | (see http://trentmick.blogspot.com/2009/05/how-to-install-mysql-python-123c1-on_3622.html) | + | |
| - | + | ||
| - | NB if you mess it up, use rm -rf build to get a proper clean start. The setup.py clean approach is not enough. | + | |
| - | + | ||
| - | sudo python setup.py install | + | |
| - | + | ||
| - | + | ||
| - | Test by opening IDLE, and typing in import MySQLdb. NB case matters - import mysqldb won't work, nor should it. | + | |
| - | + | ||
| - | ===== PostgreSQL ===== | + | |
| - | + | ||
| - | **postgresql-8.4.4-1-osx.dmg** | + | |
| - | + | ||
| - | If not installed, then setup.py step for postgreSQL will not succeed. | + | |
| - | + | ||
| - | ==== Pre-installation Memory Config ==== | + | |
| - | + | ||
| - | * sudo pico /etc/sysctl.conf | + | |
| - | + | ||
| - | add/edit 5 lines to set memory correctly e.g. | + | |
| - | + | ||
| - | kern.sysv.shmmax=16777216 | + | |
| - | kern.sysv.shmmin=1 | + | |
| - | kern.sysv.shmmni=64 | + | |
| - | kern.sysv.shmseg=8 | + | |
| - | kern.sysv.shmall=32768 | + | |
| - | + | ||
| - | See http://www.postgresql.org/docs/8.2/static/kernel-resources.html | + | |
| - | + | ||
| - | shmall is measured in pages. Multiply by 4096 and check that is no less than what is allocated to max. | + | |
| - | + | ||
| - | ==== Actual installation ==== | + | |
| - | + | ||
| - | NB may take several minutes before installer will properly display dialog. Wait at least 10 mins. | + | |
| - | + | ||
| - | Install latest tar.gz from http://initd.org/psycopg/ e.g. http://initd.org/psycopg/tarballs/PSYCOPG-2-4/psycopg2-2.4.2.tar.gz | + | |
| - | + | ||
| - | May have to hardwire location of pg_config in broadly similar fashion to old instructions below. See if any errors which give a clue. | + | |
| - | + | ||
| - | Old instructions (which should work given pgdb is supported as a fallback if psycopg can't import): | + | |
| - | + | ||
| - | In PyGreSQL-4.0.tgz (you can get a copy from ftp://ftp.pygresql.org/pub/distrib/PyGreSQL.tgz - see http://www.pygresql.org/readme.html#where-to-get) | + | |
| - | + | ||
| - | f = os.popen("pg_config --%s" % s) should be ... "/Library/PostgreSQL/8.4/bin/pg_config ..." | + | |
| - | + | ||
| - | ===== Eclipse and PyDev ===== | + | |
| - | + | ||
| - | **eclipse-SDK-3.5.2-macosx-carbon.tar.gz** | + | |
| - | + | ||
| - | extract and then copy under /Library folder | + | |
| - | + | ||
| - | pydev - http://pydev.org/updates (need to add in Help>Install New Software) | + | |
| - | + | ||
| - | project interpreter - /Library/Frameworks/Python.framework/Versions/2.6/bin/Python | + | |
| - | + | ||
| - | ===== SOFA Scripts etc ===== | + | |
| - | + | ||
| - | When transferring sofa, and sofa.main, set permissions by cd into folder containing both and | + | |
| - | + | ||
| - | * sudo chmod -R 777 sofa | + | |
| - | * sudo chmod -R 777 sofa.main | + | |
| - | + | ||
| - | Put sofa.main on Desktop. | + | |
| - | + | ||
| - | Put sofa in home folder (not on desktop). | + | |
| - | + | ||
| - | Delete proj_file_customised.txt | + | |
| - | + | ||
| - | ====== Storage ====== | + | |
| - | + | ||
| - | * http://svn.pythonmac.org/py2app/py2app/trunk/doc/index.html | + | |
| - | * [[http://developer.apple.com/Mac/library/documentation/UserExperience/Conceptual/AppleHIGuidelines/XHIGDesignProcess/XHIGDesignProcess.html|Apple Design Guidelines]] | + | |
| - | * [[http://www.taranfx.com/install-snow-leopard-virtualbox | Installing OS X on virtualbox]] | + | |
| - | * Can ask for people to help at sourceforge - could get lucky https://sourceforge.net/people/ | + | |
| - | + | ||
| - | ====== Packages Backup ====== | + | |
| - | + | ||
| - | Ensure mime.conf for dokuwiki has the following line: | + | |
| - | + | ||
| - | packproj text/xml | + | |
| - | + | ||
| - | Find the following package files in /Users/g/ under sofa_app, sofa_mpkg, and sofa_pkg. Add proj extension. | + | |
| - | + | ||
| - | {{:proj:sofa_app.packproj|}} | + | |
| - | + | ||
| - | {{:proj:sofa_mpkg.packproj|}} | + | |
| - | + | ||
| - | {{:proj:sofa_pkg.packproj|}} | + | |
| - | + | ||
| - | {{:proj:sofastatistics.packproj|}} | + | |
| ====== Removal ====== | ====== Removal ====== | ||
| Line 365: | Line 25: | ||
| Not practical to uninstall Python etc but planning to change packaging so complete deletion only requires removal of one folder. | Not practical to uninstall Python etc but planning to change packaging so complete deletion only requires removal of one folder. | ||
| + | |||