From fe36a5fc1da1be2fca227a2d8a85030aff6bad7a Mon Sep 17 00:00:00 2001 From: Mikkel Krautz Date: Sun, 27 Apr 2008 21:37:38 +0000 Subject: Distribute Murmur on Mac OS X. Update dist scripts and README to reflect that. git-svn-id: https://mumble.svn.sourceforge.net/svnroot/mumble/trunk@1123 05730e5d-ab1b-0410-a4ac-84af385074fa --- README | 30 ++++++++++++++++++++---- installer/DS_Store | Bin 6148 -> 6148 bytes scripts/osxdist.py | 67 +++++++++++++++++++++++++++++++++++++++-------------- 3 files changed, 75 insertions(+), 22 deletions(-) diff --git a/README b/README index 4d2e4f7a7..f1a6da145 100644 --- a/README +++ b/README @@ -18,12 +18,17 @@ Note that when we say Win32, we mean Windows XP or newer. Running Mumble ============== -After installation, you should have a new Mumble folder in your Start Menu, -from which you can start Mumble. You need a server to connect to, either -create your own or join a friend's. +On Windows, after installation, you should have a new Mumble folder in your +Start Menu, from which you can start Mumble. -Running Murmur on Linux -======================= +On Mac OS X, drag the Mumble application into your Applications folder. You +should then able to run it from there. + +Once Mumble is launched, you need a server to connect to. Either create your +own or join a friend's. + +Running Murmur on Unix-like systems +=================================== Murmur should be run from the command line, so start a shell (command prompt) and go to wherever you installed Mumble. Run murmur as @@ -43,6 +48,21 @@ murmurd [-supw ] [-ini ] [-fg] [v] -v More verbose logging. +Running Murmur on Mac OS X +========================== + +On Mac OS X, Murmur is available inside your Mumble application bundle. If you +copied the Mumble program into your Applications directory, you should be able +to run it by executing: + + /Applications/Mumble.app/Contents/MacOS/murmurd -v -fg + +in a Terminal. For more information, please see the 'Running Murmur on Unix- +like sytems' above. + +Example configuration files and other scripts can be found inside the Murmur +directory of the Mumble installation disk image. + Running Murmur on Win32 ======================= diff --git a/installer/DS_Store b/installer/DS_Store index 8b9622a51..869caa598 100644 Binary files a/installer/DS_Store and b/installer/DS_Store differ diff --git a/scripts/osxdist.py b/scripts/osxdist.py index a57aa1fec..e6d7c05e0 100644 --- a/scripts/osxdist.py +++ b/scripts/osxdist.py @@ -71,22 +71,36 @@ class AppBundle(object): ret.append(g.groups()[0]) return ret - def handle_libs(self, macho=None): + def handle_libs(self): ''' Copy non-system libraries that we depend on into our bundle, and fix linker paths so they are relative to our bundle. ''' + print ' * Taking care of libraries' + + # Does our fwpath exist? + fwpath = os.path.join(os.path.abspath(self.bundle), 'Contents', 'Frameworks') + if not os.path.exists(fwpath): + os.mkdir(fwpath) + + self.handle_binary_libs() + self.handle_binary_libs(os.path.join(os.path.abspath(self.bundle), 'Contents', 'MacOS', 'murmurd')) + + def handle_binary_libs(self, macho=None): + ''' + Fix up dylib depends for a specific binary. + ''' # Does our fwpath exist? fwpath = os.path.join(os.path.abspath(self.bundle), 'Contents', 'Frameworks') if not os.path.exists(fwpath): os.mkdir(fwpath) if macho is None: - print ' * Taking care of libraries' - libs = self.get_binary_libs(self.binary) + macho = os.path.abspath(self.binary) else: - libs = self.get_binary_libs(macho) + macho = os.path.abspath(macho) + libs = self.get_binary_libs(macho) for lib in libs: if os.path.isfile(lib) and not self.is_universal_binary(lib): @@ -103,17 +117,29 @@ class AppBundle(object): else: baselib = os.path.basename(lib) dst = os.path.join(fwpath, baselib) - # Main executable - if not macho: + self.change_lib_reference(macho, lib, baselib) + + # If we were run on an executable + if not macho or macho.find(fwpath) == -1: if dst == lib: continue if not os.path.exists(dst): shutil.copy(lib, dst) - self.change_lib_reference(self.binary, lib, baselib) - self.handle_libs(dst) - # Dylib - else: - self.change_lib_reference(macho, lib, baselib) + self.handle_binary_libs(dst) + + def copy_murmur(self): + ''' + Copy the murmurd binary into our Mumble app bundle + ''' + print ' * Copying murmurd binary' + src = os.path.join(self.bundle, '..', 'murmurd.app', 'Contents', 'MacOS', 'murmurd') + dst = os.path.join(self.bundle, 'Contents', 'MacOS', 'murmurd') + + # Is it universal? + if not self.is_universal_binary(src): + raise self.UniversalBinaryException("Murmur executable is not an Universal Binary. Aborting.") + + shutil.copy(src, dst) def copy_resources(self, rsrcs): ''' @@ -143,17 +169,15 @@ class AppBundle(object): ''' p = self.infoplist p['CFBundleGetInfoString'] = 'An open source, low-latency, high quality voice chat software primarily intended for use while gaming.' - # Not strictly needed - but an easy way to quicly find out where - # Mumble stores its configuration files, etc. p['CFBundleIdentifier'] = 'net.sourceforge.mumble' p['CFBundleVersion'] = self.version - p['CFBundleURLTypes'] = [{ +# p['CFBundleURLTypes'] = [{ # This breaks because OS X doesn't allow us to use the # app icon for a protocol: #'CFBundleURLIconFile': 'mumble.icns', - 'CFBundleURLName': 'Mumble Server URL', - 'CFBundleURLSchemes': ['mumble'], - }] +# 'CFBundleURLName': 'Mumble Server URL', +# 'CFBundleURLSchemes': ['mumble'], +# }] p['NSHumanReadableCopyright'] = 'Copyright (c) 2005-2008 Thorvald Natvig ' plistlib.writePlist(p, self.infopath) @@ -259,6 +283,7 @@ if __name__ == '__main__': # Do the finishing touches to our Application bundle before release a = AppBundle('release/Mumble.app', ver) + a.copy_murmur() a.handle_libs() a.copy_resources(['icons/mumble.icns']) a.copy_plugins() @@ -269,10 +294,18 @@ if __name__ == '__main__': d = DiskImage(dmgfn, dmgtitle) d.copy('release/Mumble.app') d.copy('README', '/ReadMe.txt') + d.copy('CHANGES', '/Changes.txt') d.copy('installer/DS_Store', '/.DS_Store') d.symlink('/Applications/', 'Applications') d.mkdir('Licenses') d.copy('installer/gpl.txt', '/Licenses/GPL.txt') d.copy('installer/qt.txt', '/Licenses/Qt.txt') d.copy('installer/speex.txt', '/Licenses/Speex.txt') + d.mkdir('Murmur') + d.copy('scripts/murmur.ini', '/Murmur/') + d.copy('scripts/murmur.ini.system', '/Murmur/') + d.copy('scripts/murmur.conf', '/Murmur/') + d.copy('scripts/dbusauth.pl', '/Murmur/') + d.copy('scripts/murmur.pl', '/Murmur/') + d.copy('scripts/weblist.pl', '/Murmur/') d.create() -- cgit v1.2.3