commit
157582be89
12 changed files with 1419 additions and 17 deletions
4
.gitignore
vendored
4
.gitignore
vendored
|
@ -9,3 +9,7 @@ pesterchum.js
|
|||
quirks/*
|
||||
!quirks/defaults.py
|
||||
*.pkl
|
||||
|
||||
Pesterchum.dmg
|
||||
|
||||
Pesterchum.dmg
|
||||
|
|
5
MACBUILD
5
MACBUILD
|
@ -1,5 +0,0 @@
|
|||
<Archaemic> setup-py2app.py, which will create the app
|
||||
<Archaemic> py2app.sh, which runs setup-py2app.py and does cleanup
|
||||
<Archaemic> when it says that it can't find py2app/apptemplate/prebuilt/main-i386
|
||||
<Archaemic> you have to cd into prebuilt and ln -s main-fat3 main-i386
|
||||
<Archaemic> although I suspect that ln -s main-fat main-i386 works better in this case
|
1151
MacBuild/GPL.res
Normal file
1151
MacBuild/GPL.res
Normal file
File diff suppressed because it is too large
Load diff
18
MacBuild/HOWTO
Normal file
18
MacBuild/HOWTO
Normal file
|
@ -0,0 +1,18 @@
|
|||
Don't.
|
||||
|
||||
If you still want to, here's my terse step by step guide. I only know that this works in Snow Leopard on my mac. It might not work for you.
|
||||
1) Get python 2.6 from http://www.python.org/ftp/python/2.5.6/Python-2.5.6.tgz
|
||||
2) Compile it, using configure_python.sh in this directory. It expects to be placed one directory up from python, simply because I compiled everything from ~/python_compile/
|
||||
3) export PATH=/Library/Frameworks/Python.framework/Versions/2.6/bin/:$PATH for both you and root. Confirm with `which python`
|
||||
4) sudo su; easy_install pygame; easy_install py2app
|
||||
5) Get the QT library from http://qt.nokia.com/downloads/qt-for-open-source-cpp-development-on-mac-os-x/. Do not even consider
|
||||
trying to compile this whore of a library yourself, it's not worth it. Get the precompiled for your system. Install it.
|
||||
6) Get SIP from http://www.riverbankcomputing.co.uk/software/sip/download and compile it, making sure to use configure_sip.sh.
|
||||
7) Get PyQt4 from http://www.riverbankcomputing.co.uk/software/pyqt/download and compile it, also with my configure script (configure_pyqt4.sh). This will take ages.
|
||||
8) ./py2app.sh and wait for it to build everything and make itself into a purdy DMG
|
||||
9) Rejoice that you didn't have to spend two weeks compiling hundreds of versions of all things mentioned here, including an entire day simply waiting for QT to compile by
|
||||
itself on the offchance that this would make it work.
|
||||
|
||||
If you want to make a nicer looking dmg file, play with dmg_background.png
|
||||
|
||||
~Lex
|
20
MacBuild/configure_pyqt4.sh
Executable file
20
MacBuild/configure_pyqt4.sh
Executable file
|
@ -0,0 +1,20 @@
|
|||
#!/bin/bash
|
||||
echo "Lexi's lazy configuration. This is not an official configure script. Press enter to confirm this."
|
||||
read confirm
|
||||
if [ ! -d pyqt4 ]
|
||||
then
|
||||
echo "Rename your pyqt4 folder to pyqt4."
|
||||
exit 1
|
||||
fi
|
||||
cd pyqt4
|
||||
if [ -e makefile ]
|
||||
then
|
||||
make clean
|
||||
fi
|
||||
python configure.py \
|
||||
--confirm-license \
|
||||
--use-arch=i386 \
|
||||
--use-arch=x86_64 \
|
||||
--destdir=/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages \
|
||||
--verbose
|
||||
echo "---~ Done ~---"
|
23
MacBuild/configure_python.sh
Executable file
23
MacBuild/configure_python.sh
Executable file
|
@ -0,0 +1,23 @@
|
|||
#!/bin/bash
|
||||
#
|
||||
# Lexi's ./configure script
|
||||
#
|
||||
echo "Lexi's lazy configuration. This is not an official configure script. Press enter to confirm this."
|
||||
read confirm
|
||||
if [ ! -d python ]
|
||||
then
|
||||
echo "Rename your python folder to python."
|
||||
exit 1
|
||||
fi
|
||||
cd python
|
||||
if [! -d python ]
|
||||
then
|
||||
echo "Rename your python folder to python."
|
||||
exit 1
|
||||
fi
|
||||
if [ -e makefile ]
|
||||
then
|
||||
make clean
|
||||
fi
|
||||
./configure --enable-framework --enable-universalsdk=/ --with-universal-archs=intel MACOSX_DEPLOYMENT_TARGET=10.6
|
||||
echo "---~ Done ~---"
|
21
MacBuild/configure_sip.sh
Executable file
21
MacBuild/configure_sip.sh
Executable file
|
@ -0,0 +1,21 @@
|
|||
#!/bin/bash
|
||||
#
|
||||
# Lexi's Configurations
|
||||
#
|
||||
|
||||
echo "Lexi's lazy configuration. This is not an official configure script. Press enter to confirm this."
|
||||
read confirm
|
||||
if [ ! -d sip ]
|
||||
then
|
||||
echo "Rename your sip folder to sip."
|
||||
exit 1
|
||||
fi
|
||||
cd sip
|
||||
if [ -e makefile ]
|
||||
then
|
||||
make clean
|
||||
fi
|
||||
python configure.py --arch=i386 --arch=x86_64 \
|
||||
--universal --deployment-target=10.6 \
|
||||
--destdir=/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/
|
||||
echo "---~ Done ~---"
|
BIN
MacBuild/dmg_background.png
Normal file
BIN
MacBuild/dmg_background.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 13 KiB |
BIN
MacBuild/dmg_background.xcf
Normal file
BIN
MacBuild/dmg_background.xcf
Normal file
Binary file not shown.
|
@ -47,3 +47,7 @@ Mac Bugs
|
|||
* SS: in the one-on-one pester it resizes with the window
|
||||
* SS: but the memo one doesn't resize
|
||||
* SS: and the arrows next to the time thing overlap the CLOSE button
|
||||
* Lex: Load quirks from both ./quirks and ~/Library/Application
|
||||
Support/Pesterchum/quirks to allow mac users to add quirks without
|
||||
losing built in ones.
|
||||
* Lex: Do the same with themes.
|
||||
|
|
144
py2app.sh
144
py2app.sh
|
@ -1,9 +1,139 @@
|
|||
#!/bin/sh
|
||||
|
||||
## Cleanup
|
||||
rm -rf build/ dist/
|
||||
rm -f Pesterchum.dmg
|
||||
|
||||
### Force build with custom installed frameworky python not system python
|
||||
/Library/Frameworks/Python.framework/Versions/2.6/bin/python setup-py2app.py py2app
|
||||
#python setup-py2app.py py2app
|
||||
#
|
||||
### Do some .app tings
|
||||
touch dist/Pesterchum.app/Contents/Resources/qt.conf
|
||||
find dist/Pesterchum.app -iname "*_debug" -exec rm -f '{}' \;
|
||||
|
||||
## Create a dmg file to hold everything
|
||||
VERSION="3.41.2 Beta 5"
|
||||
SIZE=2000
|
||||
name="Pesterchum"
|
||||
title="${name} ${VERSION}"
|
||||
CHANGELOG="Changelog.rtf"
|
||||
PYQUIRKS="Python Quirks.rtf"
|
||||
TODO="To Do.rtf"
|
||||
README="Read Me!.rtf"
|
||||
## Make a proper installer dmg not just effectively a zip file.
|
||||
#
|
||||
# Most of this is from http://stackoverflow.com/questions/96882/
|
||||
# I've fiddled with it a little
|
||||
|
||||
# Store the background picture (in PNG format) in a folder called ".background"
|
||||
# in the DMG, and store its name in the "backgroundPictureName" variable.
|
||||
|
||||
mkdir dist/.background
|
||||
cp MacBuild/dmg_background.png dist/.background/display.png
|
||||
|
||||
# Convert markdown files to rich text files
|
||||
convert=~/Library/Haskell/bin/pandoc
|
||||
if ! test -e "${convert}"
|
||||
then
|
||||
echo "Please install pandoc from http://johnmacfarlane.net/pandoc/" 1>&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "Converting CHANGELOG . . . "
|
||||
$convert --standalone --smart --from=markdown --to=rtf --output="dist/${CHANGELOG}" CHANGELOG.mkdn
|
||||
echo "Converting PYQUIRKS . . ."
|
||||
$convert --standalone --smart --from=markdown --to=rtf --output="dist/${PYQUIRKS}" PYQUIRKS.mkdn
|
||||
echo "Converting TODO . . ."
|
||||
$convert --standalone --smart --from=markdown --to=rtf --output="dist/${TODO}" TODO.mkdn
|
||||
echo "Converting README . . ."
|
||||
$convert --standalone --smart --from=markdown --to=rtf --output="dist/${README}" README.mkdn
|
||||
|
||||
# Create a R/W DMG. It must be larger than the result will be.
|
||||
# In this example, the bash variable "size" contains the size
|
||||
# in Kb and the contents of the folder in the "source" bash
|
||||
# variable will be copied into the DMG:
|
||||
# Note: I've removed the size argument
|
||||
|
||||
echo "Creating initial DMG file . . ."
|
||||
hdiutil create -srcfolder "./dist" -volname "${title}" -fs HFS+ \
|
||||
-fsargs "-c c=64,a=16,e=16" -format UDRW pack.temp.dmg
|
||||
|
||||
# Mount the disk image, and store the device name
|
||||
# (you might want to use sleep for a few seconds after this operation):
|
||||
|
||||
echo "Mounting initial DMG file . . ."
|
||||
device=$(hdiutil attach -readwrite -noverify -noautoopen "pack.temp.dmg" | \
|
||||
egrep '^/dev/' | sed 1q | awk '{print $1}')
|
||||
sleep 2
|
||||
|
||||
|
||||
|
||||
# Use AppleScript to set the visual styles (name of .app must be in bash variable
|
||||
# "applicationName", use variables for the other properties as needed):
|
||||
base=100
|
||||
iconsize=72
|
||||
padding=18
|
||||
echo "Making DMG file pretty with Applescript . . ."
|
||||
echo '
|
||||
tell application "Finder"
|
||||
tell disk "'${title}'"
|
||||
open
|
||||
set current view of container window to icon view
|
||||
set toolbar visible of container window to false
|
||||
set statusbar visible of container window to false
|
||||
set the bounds of container window to {400, 100, 885, 430}
|
||||
set theViewOptions to the icon view options of container window
|
||||
set arrangement of theViewOptions to not arranged
|
||||
set icon size of theViewOptions to 72
|
||||
set background picture of theViewOptions to file ".background:display.png"
|
||||
make new alias file at container window to POSIX file "/Applications" with properties {name:"Applications"}
|
||||
-- Positions
|
||||
set position of item "'${name}'.app" of container window to {100, 100}
|
||||
set position of item "Applications" of container window to {375, 100}
|
||||
set position of item "'${README}'" of container window to {'${base}+${iconsize}*0+${padding}*0', 244}
|
||||
set position of item "'${CHANGELOG}'" of container window to {'${base}+${iconsize}*1+${padding}*1', 244}
|
||||
set position of item "'${PYQUIRKS}'" of container window to {'${base}+${iconsize}*2+${padding}*2', 244}
|
||||
set position of item "'${TODO}'" of container window to {'${base}+${iconsize}*3+${padding}*3', 244}
|
||||
-- Visibility
|
||||
set extension hidden of item "'${CHANGELOG}'" of container window to true
|
||||
set extension hidden of item "'${PYQUIRKS}'" of container window to true
|
||||
set extension hidden of item "'${TODO}'" of container window to true
|
||||
set extension hidden of item "'${README}'" of container window to true
|
||||
close
|
||||
open
|
||||
update without registering applications
|
||||
delay 5
|
||||
eject
|
||||
end tell
|
||||
end tell
|
||||
' | osascript
|
||||
|
||||
# This took so long to work out how to do ._.
|
||||
# Stolen from http://lists.apple.com/archives/darwin-userlevel/2007/Oct/msg00000.html
|
||||
# Set the SLA to read only (dunno why)
|
||||
echo "Converting initial DMG file to a UDRO one . . ."
|
||||
hdiutil convert -ov -format UDRO -o "sla.temp.dmg" "pack.temp.dmg"
|
||||
# Inflate the dmg
|
||||
echo "Inflating UDRO DMG file . . ."
|
||||
hdiutil unflatten "sla.temp.dmg"
|
||||
# Attach the GPL
|
||||
echo "Attaching GPL licence . . ."
|
||||
Rez -a MacBuild/GPL.res -o "sla.temp.dmg"
|
||||
# Steamroller again
|
||||
echo "Deflating UDRO DMG file . . ."
|
||||
hdiutil flatten "sla.temp.dmg"
|
||||
|
||||
# Finialize the DMG by setting permissions properly, compressing and releasing it:
|
||||
|
||||
#chmod -Rf go-w /Volumes/"${title}"
|
||||
sync
|
||||
#hdiutil detach ${device}
|
||||
echo "Compressing UDRO DMG file to UDZO for release . . ."
|
||||
hdiutil convert "sla.temp.dmg" -format UDZO -imagekey zlib-level=6 -o "${name}.dmg"
|
||||
|
||||
# Get rid of the bits
|
||||
echo "Cleaning up . . ."
|
||||
rm -f pack.temp.dmg
|
||||
rm -f sla.temp.dmg
|
||||
rm -rf build/ dist/
|
||||
python setup-py2app.py py2app
|
||||
touch dist/pesterchum.app/Contents/Resources/qt.conf
|
||||
find dist/pesterchum.app -iname "*_debug" -exec rm -f '{}' \;
|
||||
rm -rf Pesterchum
|
||||
mv dist Pesterchum
|
||||
rm -f pesterchum.dmg
|
||||
hdiutil create pesterchum.dmg -srcdir Pesterchum -format UDZO
|
||||
|
|
|
@ -8,14 +8,50 @@ Usage:
|
|||
from setuptools import setup
|
||||
|
||||
APP = ['pesterchum.py']
|
||||
DATA_FILES = ['pesterchum.js', 'profiles', 'themes', 'smilies', 'logs']
|
||||
OPTIONS = {'argv_emulation': False, 'includes': ['sip', 'PyQt4', 'PyQt4.QtCore', 'PyQt4.QtGui'],
|
||||
'excludes': ['PyQt4.QtDesigner', 'PyQt4.QtNetwork', 'PyQt4.QtOpenGL', 'PyQt4.QtScript', 'PyQt4.QtSql', 'PyQt4.QtTest', 'PyQt4.QtWebKit', 'PyQt4.QtXml', 'PyQt4.phonon'],
|
||||
'iconfile': 'trayicon32.icns'}
|
||||
|
||||
#DATA_FILES = ['pesterchum.js', 'profiles', 'themes', 'smilies', 'logs']
|
||||
DATA_FILES = ['quirks', 'themes']
|
||||
# TODO: Grep this version out of version.py
|
||||
SHORT_VERSION = '3.41.2B5'
|
||||
LONG_VERSION = '3.41.2 Beta 5 Bleeding Edge'
|
||||
OPTIONS = {
|
||||
'argv_emulation': False,
|
||||
'prefer_ppc': True,
|
||||
'includes': [
|
||||
'sip',
|
||||
'PyQt4',
|
||||
'PyQt4.QtCore',
|
||||
'PyQt4.QtGui'
|
||||
],
|
||||
'excludes': [
|
||||
'PyQt4.QtDesigner',
|
||||
'PyQt4.QtNetwork',
|
||||
'PyQt4.QtOpenGL',
|
||||
'PyQt4.QtScript',
|
||||
'PyQt4.QtSql',
|
||||
'PyQt4.QtTest',
|
||||
'PyQt4.QtWebKit',
|
||||
'PyQt4.QtXml',
|
||||
'PyQt4.phonon'
|
||||
],
|
||||
'iconfile': 'trayicon32.icns'
|
||||
# ,
|
||||
# 'plist': {
|
||||
# 'CFBundleDisplayName': 'Pesterchum v3',
|
||||
# 'NSHumanReadableCopyright': 'GPLv3',
|
||||
# 'CFBundleGetInfoString': 'o_O???',
|
||||
# 'CFBundleIdentifier': 'org.pythonmac.pesterchum',
|
||||
# 'CFBundleVersion': LONG_VERSION,
|
||||
# 'CFBundleShortVersionString': SHORT_VERSION
|
||||
# }
|
||||
}
|
||||
setup(
|
||||
name='Pesterchum',
|
||||
description='A client for the pesterchum network',
|
||||
version=LONG_VERSION,
|
||||
license='GPL v3',
|
||||
app=APP,
|
||||
data_files=DATA_FILES,
|
||||
platforms=['i386', 'x86_64'],
|
||||
options={'py2app': OPTIONS},
|
||||
setup_requires=['py2app'],
|
||||
)
|
||||
|
|
Loading…
Reference in a new issue