spek

Acoustic spectrum analyser
git clone http://git.hanabi.in/repos/spek.git
Log | Files | Refs | README

commit e62d0fa90c59d2d2433f833b5010cdb2cb8d4e60
parent eec648b61916a22b8dc874c5279887658b171c2e
Author: Alexander Kojevnikov <alexander@kojevnikov.com>
Date:   Fri, 18 Jun 2010 19:54:33 +0900

[osx] Switch to bockbuild

Diffstat:
M.gitignore | 1+
Abockbuild/packages/spek.py | 9+++++++++
Abockbuild/profiles/spek/packages.py | 74++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Abockbuild/profiles/spek/profile.darwin.py | 40++++++++++++++++++++++++++++++++++++++++
Rosx/dmg-data/DS_Store -> bockbuild/profiles/spek/skeleton.darwin/.DS_Store | 0
Rosx/Info.plist -> bockbuild/profiles/spek/skeleton.darwin/Contents/Info.plist | 0
Abockbuild/profiles/spek/skeleton.darwin/Contents/MacOS/Spek | 58++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Abockbuild/profiles/spek/skeleton.darwin/Contents/Resources/etc/gtk-2.0/gtkrc | 325+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Abundle.sh | 90+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Dosx/bundle.sh | 99-------------------------------------------------------------------------------
Dosx/gtkrc | 2--
Dosx/launcher.sh | 130-------------------------------------------------------------------------------
Dosx/spek.bundle | 50--------------------------------------------------
13 files changed, 597 insertions(+), 281 deletions(-)

diff --git a/.gitignore b/.gitignore @@ -9,6 +9,7 @@ data/spek.desktop data/spek.desktop.in depcomp .deps +.DS_Store install-sh intltool-extract.in intltool-merge.in diff --git a/bockbuild/packages/spek.py b/bockbuild/packages/spek.py @@ -0,0 +1,9 @@ +class SpekPackage (Package): + def __init__ (self): + Package.__init__ (self, 'spek', '0.4') + + self.sources = [ + 'http://%{name}.googlecode.com/files/%{name}-%{version}.tar.bz2' + ] + +SpekPackage () diff --git a/bockbuild/profiles/spek/packages.py b/bockbuild/profiles/spek/packages.py @@ -0,0 +1,74 @@ +import os +from bockbuild.darwinprofile import DarwinProfile + +class SpekPackages: + def __init__ (self): + # Toolchain + self.packages.extend ([ + 'autoconf.py', + 'automake.py', + 'libtool.py', + 'gettext.py', + 'pkg-config.py', + ]) + + # Base Libraries + self.packages.extend ([ +# 'libiconv.py', + 'libpng.py', + 'libjpeg.py', + 'libxml2.py', + 'freetype.py', + 'fontconfig.py', + 'pixman.py', + 'cairo.py', + 'glib.py', + 'pango.py', + 'atk.py', + 'intltool.py', + 'gtk+.py', + 'libproxy.py', + 'libsoup.py', + ]) + + # Theme + self.packages.extend ([ + 'librsvg.py', + 'icon-naming-utils.py', + 'hicolor-icon-theme.py', +# 'tango-icon-theme.py', + 'murrine.py', + ]) + + # Codecs + self.packages.extend ([ + 'libogg.py', + 'libvorbis.py', + 'flac.py', + 'libtheora.py', + 'speex.py', + 'wavpack.py', + 'taglib.py', + ]) + + # GStreamer + self.packages.extend ([ + 'liboil.py', + 'gstreamer.py', + 'gst-plugins-base.py', + 'gst-plugins-good.py', + 'gst-plugins-bad.py', + 'gst-plugins-ugly.py', +# 'gst-ffmpeg', + ]) + + if isinstance (self, DarwinProfile): + self.packages.extend ([ + 'ige-mac-integration.py' + ]) + + if self.cmd_options.release_build: + self.packages.append ('spek.py') + + self.packages = [os.path.join ('..', '..', 'packages', p) + for p in self.packages] diff --git a/bockbuild/profiles/spek/profile.darwin.py b/bockbuild/profiles/spek/profile.darwin.py @@ -0,0 +1,40 @@ +#!/usr/bin/python -B + +import os +import sys + +sys.path.append ('../..') + +from bockbuild.darwinprofile import DarwinProfile +from packages import SpekPackages + +class SpekDarwinProfile (DarwinProfile, SpekPackages): + def __init__ (self): + DarwinProfile.__init__ (self) + SpekPackages.__init__ (self) + + self_dir = os.path.realpath (os.path.dirname (sys.argv[0])) + self.bundle_skeleton_dir = os.path.join (self_dir, 'skeleton.darwin') + self.bundle_output_dir = os.path.join (self_dir, 'bundle.darwin') + + self.bundle_from_build = [ + 'bin/spek', + 'lib/pango', + 'lib/gtk-2.0/2.10.0/loaders', + 'lib/gtk-2.0/2.10.0/engines', + 'lib/gtk-2.0/2.10.0/immodules', + 'lib/gstreamer-0.10', + 'share/spek', +# 'share/locale', + 'share/icons/hicolor/index.theme', +# 'share/icons/Tango/index.theme', + ] + + self.bundle_from_build.extend ([ + 'share/icons/%s/%sx%s' % (theme, size, size) + for size in [16, 22, 32, 48] +# for theme in ['hicolor', 'Tango'] + for theme in ['hicolor'] + ]) + +SpekDarwinProfile ().build () diff --git a/osx/dmg-data/DS_Store b/bockbuild/profiles/spek/skeleton.darwin/.DS_Store Binary files differ. diff --git a/osx/Info.plist b/bockbuild/profiles/spek/skeleton.darwin/Contents/Info.plist diff --git a/bockbuild/profiles/spek/skeleton.darwin/Contents/MacOS/Spek b/bockbuild/profiles/spek/skeleton.darwin/Contents/MacOS/Spek @@ -0,0 +1,58 @@ +#!/bin/bash + +APP_ROOT="$PWD/$(dirname "$0")" +for ((i=0; i<2; i++)); do APP_ROOT="$(dirname "$APP_ROOT")"; done +APP_ROOT="${APP_ROOT/\/\/}" + +# Bundle directories +CONTENTS_DIR="$APP_ROOT/Contents" +RES_DIR="$CONTENTS_DIR/Resources" +ETC_DIR="$RES_DIR/etc" +LIB_DIR="$RES_DIR/lib" +BIN_DIR="$RES_DIR/bin" +DATA_DIR="$RES_DIR/share" + +# Shell environment +export PATH="/bin:/usr/bin:$BIN_DIR" +export BUNDLE_BIN_DIR="$BIN_DIR" +export BUNDLE_LIB_DIR="$LIB_DIR" + +# XDG environment +export XDG_CONFIG_DIRS="$ETC_DIR/xdg" +export XDG_DATA_DIRS="$DATA_DIR" +export XDG_CONFIG_HOME="$HOME/.config" + +# GTK environment +export GTK_PATH="$RES_DIR" +export GTK_EXE_PREFIX="$RES_DIR" +export GTK_DATA_PREFIX="$RES_DIR" +export GTK2_RC_FILES="$ETC_DIR/gtk-2.0/gtkrc" +export GTK_IM_MODULE_FILE="$ETC_DIR/gtk-2.0/gtk.immodules" +export GDK_PIXBUF_MODULE_FILE="$ETC_DIR/gtk-2.0/gdk-pixbuf.loaders" +export PANGO_RC_FILE="$ETC_DIR/pango/pangorc" + +# Spek/GStreamer environment +export DYLD_LIBRARY_PATH="$LIB_DIR" +export GST_PLUGIN_SYSTEM_PATH="$LIB_DIR/gstreamer-0.10" +export SPEK_CONFIG_DIR="$XDG_CONFIG_HOME/spek" +SPEK_OPTIONS="" +SPEK_EXEC_NAME=Spek +SPEK_BIN="$BIN_DIR/spek" + +# FIXME +# pango.modules sucks - it doesn't like paths with spaces, +# so even though everything else works fine, we still +# will explode, so instead I'm just showing this lame dialog. +if [[ "$APP_ROOT" =~ [[:space:]] ]]; then + osascript &>/dev/null <<EOF + tell application "System Events" + activate + display dialog "A space was detected in the path to Spek. Currently this is unsupported.\n\nRename or move Spek.app to a path without spaces.\n\nPath: $APP_ROOT" with title "Error" with icon caution buttons { "OK" } default button 1 + end tell +EOF + exit 1 +fi + +# mkdir -p "$SPEK_CONFIG_DIR" + +exec -a $SPEK_EXEC_NAME "$SPEK_BIN" diff --git a/bockbuild/profiles/spek/skeleton.darwin/Contents/Resources/etc/gtk-2.0/gtkrc b/bockbuild/profiles/spek/skeleton.darwin/Contents/Resources/etc/gtk-2.0/gtkrc @@ -0,0 +1,325 @@ +# Mac OS X friendly theme +# Written by Aaron Bockover <abockover@novell.com> +# Copyright 2010 Novell, Inc. +# Released under the MIT/X11 license + +include "gtkrc.key.mac" + +gtk-color-scheme = +"base_color: #fff +bg_color: #ededed +fg_color: #000 +text_color: #000 +selected_bg_color: #7b8ea0 +selected_fg_color: #fff +tooltip_bg_color: #f7f4b8 +tooltip_fg_color: #000 +" +gtk-font-name = "Lucida Grande 14" +gtk-icon-theme-name = "Tango" +gtk-menu-popup-delay = 1 +gtk-button-images = 0 +gtk-menu-images = 0 +gtk-enable-mnemonics = 0 + +style "murrine-default" { + xthickness = 1 + ythickness = 1 + + GtkCheckButton::indicator-size = 14 + GtkPaned::handle-size = 6 + + GtkButton::child-displacement-x = 0 + GtkButton::child-displacement-y = 0 + GtkButton::default-border = { 0, 0, 0, 0 } + + GtkRange::trough-border = 2 + GtkRange::slider-width = 14 + GtkRange::stepper-size = 13 + + GtkScale::slider-length = 15 + GtkScale::trough-side-details = 0 + + GtkScrollbar::min-slider-length = 35 + GtkScrollbar::has-forward-stepper = 1 + GtkScrollbar::has-backward-stepper = 0 + GtkScrollbar::has-secondary-forward-stepper = 0 + GtkScrollbar::has-secondary-backward-stepper = 1 + + GtkExpander::expander-size = 16 + GtkToolbar::internal-padding = 0 + GtkTreeView::expander-size = 14 + # GtkTreeView::vertical-separator = 0 + + GtkMenuBar::internal-padding = 0 + GtkMenu::horizontal-padding = 0 + GtkMenu::vertical-padding = 0 + GtkMenuItem::horizontal-padding = 10 + + fg[NORMAL] = @fg_color + fg[PRELIGHT] = @fg_color + fg[SELECTED] = @selected_fg_color + fg[ACTIVE] = @fg_color + fg[INSENSITIVE] = darker (@bg_color) + + bg[NORMAL] = @bg_color + bg[PRELIGHT] = shade (1.02, @bg_color) + bg[SELECTED] = @selected_bg_color + bg[INSENSITIVE] = @bg_color + bg[ACTIVE] = shade (1.04, @bg_color) + + base[NORMAL] = @base_color + base[PRELIGHT] = shade (0.95, @bg_color) + base[ACTIVE] = shade (0.92, @selected_bg_color) + base[SELECTED] = shade (0.93, @selected_bg_color) + base[INSENSITIVE] = @bg_color + + text[NORMAL] = @text_color + text[PRELIGHT] = @text_color + text[ACTIVE] = @selected_fg_color + text[SELECTED] = @selected_fg_color + text[INSENSITIVE] = darker (@bg_color) + + engine "murrine" { + profile = MURRINE + + contrast = 0.7 + glazestyle = 3 + roundness = 3 + reliefstyle = 2 + gradients = TRUE + gradient_shades = { 1.15, 1.07, 1.02, 0.9 } + lightborder_shade = 1.36 + lightborderstyle = 1 + highlight_shade = 1.07 + + menubarstyle = 0 + menubaritemstyle = 0 + menuitemstyle = 0 + menustyle = 0 + + scrollbarstyle = 0 + stepperstyle = 1 + toolbarstyle = 2 + sliderstyle = 0 + + listviewheaderstyle = 1 + listviewstyle = 1 + } +} + +style "murrine-wide" { + xthickness = 2 + ythickness = 2 + + bg[SELECTED] = @selected_bg_color +} + +style "murrine-wider" { + xthickness = 3 + ythickness = 3 + + bg[SELECTED] = @selected_bg_color +} + +style "murrine-button" = "murrine-wider" { + bg[NORMAL] = shade (1.127, @bg_color) + bg[PRELIGHT] = shade (1.15, @bg_color) + bg[ACTIVE] = shade (0.90, @bg_color) + bg[INSENSITIVE] = shade (1.055, @bg_color) + + engine "murrine" { + contrast = 0.925 + lightborder_shade = 1.7 + gradient_shades = {1.15,1.07,1.0185,0.885} + gradients = TRUE + } +} + +style "murrine-scale" = "murrine-button" { + GtkRange::slider-width = 14 + engine "murrine" { + roundness = 7 + } +} + +style "murrine-hscale" { } +style "murrine-vscale" { } + +style "murrine-entry" = "murrine-wider" { } + +style "murrine-scrollbar" { + engine "murrine" { + roundness = 8 + gradient_shades = { 1.11, 1.07, 1.065, 0.92 } + } +} + +style "murrine-hscrollbar" { } +style "murrine-vscrollbar" { } + +style "murrine-progressbar" +{ + xthickness = 0 + ythickness = 0 + + fg[PRELIGHT] = lighter (@selected_fg_color) + bg[NORMAL] = shade (0.98, @bg_color) + bg[SELECTED] = @selected_bg_color + + engine "murrine" { + roundness = 1 + lightborder_shade = 1.36 + lightborderstyle = 0 + } +} + +style "murrine-notebook" = "murrine-wider" { + bg[ACTIVE] = shade (0.925, @bg_color) + bg[NORMAL] = shade (1.135, @bg_color) + bg[SELECTED] = @selected_bg_color + fg[ACTIVE] = shade (0.5, @bg_color) + + engine "murrine" { + contrast = 0.95 + } +} + +style "murrine-menu" { + xthickness = 0 + ythickness = 0 + + bg[NORMAL] = shade (1.15, @bg_color) + + engine "murrine" { + roundness = 0 + glazestyle = 0 + highlight_shade = 1.0 + } +} + +style "murrine-menu-item" { + xthickness = 0 + ythickness = 3 + + fg[PRELIGHT] = @selected_fg_color + bg[SELECTED] = shade (0.98, @selected_bg_color) + + engine "murrine" { + roundness = 0 + gradient_shades = { 1.07, 1.05, 1.04, 1.01 } + highlight_shade = 1.0 + gradients = TRUE + glow_shade = 1.3 + glowstyle = 0 + contrast = 0.8 + } +} + +style "murrine-separator-menu-item" { } + +style "murrine-treeview" { + bg[SELECTED] = @selected_bg_color +} + +style "murrine-treeview-header" = "murrine-default" { + bg[NORMAL] = shade (1.08, @bg_color) + bg[PRELIGHT] = shade (1.11, @bg_color) + bg[ACTIVE] = shade (0.92, @bg_color) + bg[INSENSITIVE] = shade (1.04, @bg_color) +} + +style "murrine-frame-title" { + fg[NORMAL] = lighter (@fg_color) +} + +style "murrine-tooltips" = "murrine-wider" { + bg[NORMAL] = @tooltip_bg_color + fg[NORMAL] = @tooltip_fg_color +} + +style "murrine-toolbar" { + engine "murrine" { + gradient_shades = { 1.0, 0.98, 0.96, 0.928 } + gradients = TRUE + highlight_shade = 1.00 + contrast = 0.96 + } +} + +style "murrine-statusbar" { } +style "murrine-comboboxentry" { } +style "murrine-spinbutton" { } + +style "murrine-radiocheck" = "murrine-default" { + text[NORMAL] = "#FFFFFF" + text[PRELIGHT] = "#FFFFFF" +} + +style "smaller-text" { + font_name = "7" +} + +style "handle" { + bg[NORMAL] = "#232323" +} + +class "GtkRadio*" style "murrine-radiocheck" +class "GtkCheck*" style "murrine-radiocheck" + +class "GtkWidget" style "murrine-default" + +class "GtkToolbar" style "murrine-toolbar" +class "GtkRange" style "murrine-wide" +class "GtkFrame" style "murrine-wide" +class "GtkSeparator" style "murrine-wide" +class "GtkEntry" style "murrine-entry" + +class "GtkSpinButton" style "murrine-spinbutton" +class "GtkScale" style "murrine-scale" +class "GtkVScale" style "murrine-vscale" +class "GtkHScale" style "murrine-hscale" +class "GtkScrollbar" style "murrine-scrollbar" +class "GtkVScrollbar" style "murrine-vscrollbar" +class "GtkHScrollbar" style "murrine-hscrollbar" + +widget_class "*<GtkNotebook>*<GtkEventBox>" style "murrine-notebook" +widget_class "*<GtkNotebook>*<GtkDrawingArea>" style "murrine-notebook" +widget_class "*<GtkNotebook>*<GtkLayout>" style "murrine-notebook" +widget_class "*<GtkNotebook>*<GtkLabel>" style "murrine-notebook" + +widget_class "*<GtkButton>" style "murrine-button" +widget_class "*<GtkNotebook>" style "murrine-notebook" +widget_class "*<GtkStatusbar>*" style "murrine-statusbar" + +widget_class "*<GtkComboBoxEntry>*" style "murrine-comboboxentry" +widget_class "*<GtkCombo>*" style "murrine-comboboxentry" + +widget_class "*<GtkMenu>*" style "murrine-menu" +widget_class "*<GtkMenuItem>*" style "murrine-menu-item" +widget_class "*<GtkSeparatorMenuItem>*" style "murrine-separator-menu-item" + +widget_class "*.<GtkFrame>.<GtkLabel>" style "murrine-frame-title" +widget_class "*.<GtkTreeView>*" style "murrine-treeview" + +widget_class "*<GtkProgressBar>" style "murrine-progressbar" + +widget_class "*.<GtkTreeView>.<GtkButton>" style "murrine-treeview-header" +widget_class "*.<GtkCTree>.<GtkButton>" style "murrine-treeview-header" +widget_class "*.<GtkList>.<GtkButton>" style "murrine-treeview-header" +widget_class "*.<GtkCList>.<GtkButton>" style "murrine-treeview-header" + +widget_class "*ToolButton*" style "smaller-text" +widget_class "*Statusbar*" style "smaller-text" + +widget "gtk-tooltip*" style "murrine-tooltips" + +style "murrine-menuitem-text-is-fg-color-workaround" { + text[NORMAL] = @fg_color + text[PRELIGHT] = @selected_fg_color + text[SELECTED] = @selected_fg_color + text[ACTIVE] = @fg_color + text[INSENSITIVE] = darker (@bg_color) +} + +widget "*.gtk-combobox-popup-menu.*" style "murrine-menuitem-text-is-fg-color-workaround" diff --git a/bundle.sh b/bundle.sh @@ -0,0 +1,90 @@ +#!/bin/sh + +# This script creates a Mac OS X app bundle and a DMG image from it using bockbuild. +# The bockbuild package should already be installed in ../../bockbuild + +# TODO: create these packages for GStreamer: +# BAD: orc, schroedinger, faad2, libdca, libmodplug, libmpcdec, xvid +# UGLY: a52dec, libid3tag, libmad, libmpeg2 + +# TODO: +# - DS_Store +# - gtkrc tune up +# - ffmpeg and deps above +# - credit bockbuild + +pushd $(dirname $0) + +case "$(uname)" in + Darwin) profile_name=darwin ;; + *) + echo "Unsupported system type: $(uname)" + exit 1 + ;; +esac + +# Copy Spek packages to bockbuild +cp -prv bockbuild .. + +# Build Spek and all its dependencies +pushd ../bockbuild/profiles/spek +./profile."$profile_name".py -bvr + +# Build Solitary +pushd ../../solitary +make +popd + +# Bundle +./profile."$profile_name".py -z + +# Make DMG image +cd bundle."$profile_name" +VOLUME_NAME=Spek +DMG_APP=Spek.app +DMG_FILE=$VOLUME_NAME.dmg +MOUNT_POINT=$VOLUME_NAME.mounted + +rm -f $DMG_FILE +rm -f $DMG_FILE.master + +# Compute an approximated image size in MB, and bloat by 1MB +image_size=$(du -ck $DMG_APP | tail -n1 | cut -f1) +image_size=$((($image_size + 5000) / 1000)) + +echo "Creating disk image (${image_size}MB)..." +hdiutil create $DMG_FILE -megabytes $image_size -volname $VOLUME_NAME -fs HFS+ -quiet || exit $? + +echo "Attaching to disk image..." +hdiutil attach $DMG_FILE -readwrite -noautoopen -mountpoint $MOUNT_POINT -quiet + +echo "Populating image..." + +cp -Rp $DMG_APP $MOUNT_POINT + +find $MOUNT_POINT -type d -iregex '.*\.svn$' &>/dev/null | xargs rm -rf + +pushd $MOUNT_POINT &>/dev/null +ln -s /Applications " " +popd &>/dev/null + +echo "Detaching from disk image..." +hdiutil detach $MOUNT_POINT -quiet + +mv $DMG_FILE $DMG_FILE.master + +echo "Creating distributable image..." +hdiutil convert -quiet -format UDBZ -o $DMG_FILE $DMG_FILE.master + +#echo "Installing end user license agreement..." +#hdiutil flatten -quiet $DMG_FILE +#/Developer/Tools/Rez /Developer/Headers/FlatCarbon/*.r dmg-data/license.r -a -o $DMG_FILE +#hdiutil unflatten -quiet $DMG_FILE + +echo "Done." + +if [ ! "x$1" = "x-m" ]; then + rm $DMG_FILE.master +fi + +popd &>/dev/null diff --git a/osx/bundle.sh b/osx/bundle.sh @@ -1,98 +0,0 @@ -#!/bin/sh - -# This script creates a Mac OS X app bundle and a DMG image from it -# using jhbuild/ige-mac-bundler. JHBuild scripts from the GTK-OSX -# project should be installed and properly configured. -# -# Also, the script assumes that all dependencies have already been built, -# including all (not so optional) GStreamer dependencies. GStreamer plugins -# will happily compile even if essential components such as libmad, libvorbis, -# flac, etc are missing. Make sure you have everything that you need installed. -# -# Example build sequence: -# -# $ jhbuild bootstrap -# $ jhbuild build -# -# Download GStreamer dependencies: -# BASE: libogg, libvorbis, libtheora -# GOOD: speex, flac, taglib, wavpack -# BAD: orc, schroedinger, faad2, libdca, libmodplug, libmpcdec, xvid -# UGLY: a52dec, libid3tag, libmad, libmpeg2 -# -# Install each one with: -# -# $ jhbuild shell -# $ ./configure --prefix=$PREFIX && make && make install -# $ exit -# -# Install GStreamer: -# -# $ jhbuild build meta-gstreamer -# $ jhbuild build gst-plugins-ugly -# -# IMPORTANT: the script must be run from the `jhbuild shell` environment. - -pushd $(dirname $0)/.. - -# Build Spek -./configure --prefix=$PREFIX && make && make install - -# Bundle -cd osx -ige-mac-bundler spek.bundle - -# Make DMG image -#./make-dmg.sh spek 0.4 spek.app -VOLUME_NAME=Spek -DMG_APP=Spek.app -DMG_FILE=$VOLUME_NAME.dmg -MOUNT_POINT=$VOLUME_NAME.mounted - -rm -f $DMG_FILE -rm -f $DMG_FILE.master - -# Compute an approximated image size in MB, and bloat by 1MB -image_size=$(du -ck $DMG_APP dmg-data | tail -n1 | cut -f1) -image_size=$((($image_size + 5000) / 1000)) - -echo "Creating disk image (${image_size}MB)..." -hdiutil create $DMG_FILE -megabytes $image_size -volname $VOLUME_NAME -fs HFS+ -quiet || exit $? - -echo "Attaching to disk image..." -hdiutil attach $DMG_FILE -readwrite -noautoopen -mountpoint $MOUNT_POINT -quiet - -echo "Populating image..." - -cp -Rp $DMG_APP $MOUNT_POINT - -find $MOUNT_POINT -type d -iregex '.*\.svn$' &>/dev/null | xargs rm -rf - -pushd $MOUNT_POINT &>/dev/null -ln -s /Applications " " -popd &>/dev/null - -#mkdir $MOUNT_POINT/.background -#cp dmg-data/background.png $MOUNT_POINT/.background -cp dmg-data/DS_Store $MOUNT_POINT/.DS_Store - -echo "Detaching from disk image..." -hdiutil detach $MOUNT_POINT -quiet - -mv $DMG_FILE $DMG_FILE.master - -echo "Creating distributable image..." -hdiutil convert -quiet -format UDBZ -o $DMG_FILE $DMG_FILE.master - -#echo "Installing end user license agreement..." -#hdiutil flatten -quiet $DMG_FILE -#/Developer/Tools/Rez /Developer/Headers/FlatCarbon/*.r dmg-data/license.r -a -o $DMG_FILE -#hdiutil unflatten -quiet $DMG_FILE - -echo "Done." - -if [ ! "x$1" = "x-m" ]; then - rm $DMG_FILE.master -fi - -popd &>/dev/null -\ No newline at end of file diff --git a/osx/gtkrc b/osx/gtkrc @@ -1,2 +0,0 @@ -gtk-icon-theme-name = "Tango" -gtk-enable-mnemonics = 0 diff --git a/osx/launcher.sh b/osx/launcher.sh @@ -1,130 +0,0 @@ -#!/bin/sh - -if test "x$IGE_DEBUG_LAUNCHER" != x; then - set -x -fi - -if test "x$IGE_DEBUG_GDB" != x; then - EXEC="gdb --args" -else - EXEC=exec -fi - -name="`basename $0`" -tmp="`pwd`/$0" -tmp=`dirname "$tmp"` -tmp=`dirname "$tmp"` -bundle=`dirname "$tmp"` -bundle_contents="$bundle"/Contents -bundle_res="$bundle_contents"/Resources -bundle_lib="$bundle_res"/lib -bundle_bin="$bundle_res"/bin -bundle_data="$bundle_res"/share -bundle_etc="$bundle_res"/etc - -export DYLD_LIBRARY_PATH="$bundle_lib" -export XDG_CONFIG_DIRS="$bundle_etc"/xdg -export XDG_DATA_DIRS="$bundle_data" -export GTK_DATA_PREFIX="$bundle_res" -export GTK_EXE_PREFIX="$bundle_res" -export GTK_PATH="$bundle_res" -export GST_PLUGIN_PATH="$bundle_lib"/gstreamer-0.10 - -export GTK2_RC_FILES="$bundle_etc/gtk-2.0/gtkrc" -export GTK_IM_MODULE_FILE="$bundle_etc/gtk-2.0/gtk.immodules" -export GDK_PIXBUF_MODULE_FILE="$bundle_etc/gtk-2.0/gdk-pixbuf.loaders" -export PANGO_RC_FILE="$bundle_etc/pango/pangorc" - -# Set the locale-related variables appropriately: -unset LANG LC_MESSAGES LC_MONETARY - -# Start by trying the Collation preference, in case it's the only setting that exists. -APPLECOLLATION=`defaults read .GlobalPreferences AppleCollationOrder` -if test "${APPLECOLLATION}"; then - COLL=`ls -d /usr/share/locale/${APPLECOLLATION}*.UTF-8 2>> /dev/null` - if test "${COLL}"; then - # $COLL is potentially multi-line; concatenate lines by not using quotes. - export LANG=`echo ${COLL} | awk '{print $1}' | awk -F/ '{print $5}'` - fi -fi -unset APPLECOLLATION COLL - -# Continue by attempting to find the Locale preference. -APPLELOCALE=`defaults read .GlobalPreferences AppleLocale` -if test "${APPLELOCALE}"; then - LOCALELANG=`echo "${APPLELOCALE}" | awk -F@ '{print $1".UTF-8"}'` - if test -d "/usr/share/locale/${LOCALELANG}"; then - export LANG="${LOCALELANG}" - fi -fi -unset LOCALELANG - -# If there is still no locale value, then set US English as a default. -if test -z "${LANG}"; then - export LANG=en_US.UTF-8 -fi - -# The AppleLocale setting may contain a currency-related substring. -# Attempt to act on it. -# First strip the string to just the currency symbol and the language symbol -APPLECURRENCY=`echo "${APPLELOCALE}" | awk -F= '{print $2}'` -APPLELANG=`echo "${APPLELOCALE}" | awk -F_ '{print $1}'` -if test "${APPLECURRENCY}"; then - # The user has set a currency different from that of their locale. - # Search for a locale that uses that currency, and set LC_MONETARY accordingly. - - # First try to find an LC_MONETARY file that combines the language with the currency. - FILES=`find /usr/share/locale/${APPLELANG}*UTF-8 -name LC_MONETARY -exec grep -H $APPLECURRENCY {} \;` - if test -z "$FILES"; then - # Otherwise try to find any LC_MONETARY file that uses that currency. - FILES=`find /usr/share/locale/*UTF-8 -name LC_MONETARY -exec grep -H $APPLECURRENCY {} \;` - fi - - if test "$FILES"; then - # We found a locale that matches; set LC_MONETARY. - export LC_MONETARY=`echo ${FILES} | awk -F: '{print $1}' | awk -F/ '{print $5}'` - fi -fi -unset APPLECURRENCY APPLELANG APPLELOCALE FILES - -# Has a language ordering been set? -# If so, set LC_MESSAGES accordingly; otherwise skip it. -APPLELANGUAGES=`defaults read .GlobalPreferences AppleLanguages | awk 'length > 2' | awk -F, '{print $1}' | sed s/\ //g | sed s/-/_/ | sed s/\"//g` -if test "$APPLELANGUAGES"; then - # A language ordering exists. - # Test, item per item, to see whether there is an corresponding locale. - for L in $APPLELANGUAGES - do - POS=`echo ${L} | awk '{print index(ENVIRON["LANG"], $0)}'` - if test $POS -eq 1; then - # The language symbol is a subset of the $LANG variable. We're done! - break - fi - # NOTE: the following may fail for the alternate Chinese localizations. - LC=`ls -d /usr/share/locale/${L}*.UTF-8 2>> /dev/null` - # $LC is potentially multi-line; concatenate lines by not using quotes. - if test $LC; then - # There is a UTF-8 locale matching this language. - export LC_MESSAGES=`echo ${LC} | awk '{print $1}' | awk -F/ '{print $5}'` - break - fi - done -fi -unset APPLELANGUAGES POS LC L - -if test -f "$bundle_lib/charset.alias"; then - export CHARSETALIASDIR="$bundle_lib" -fi - -# Extra arguments can be added in environment.sh. -EXTRA_ARGS= -if test -f "$bundle_res/environment.sh"; then - source "$bundle_res/environment.sh" -fi - -# Strip out the argument added by the OS. -if [ x`echo "x$1" | sed -e "s/^x-psn_.*//"` == x ]; then - shift 1 -fi - -$EXEC "$bundle_contents/MacOS/$name-bin" $* $EXTRA_ARGS diff --git a/osx/spek.bundle b/osx/spek.bundle @@ -1,50 +0,0 @@ -<?xml version="1.0" standalone="no"?> <!--*- mode: xml -*--> -<app-bundle> - - <meta> - <prefix name="default">${env:JHBUILD_PREFIX}</prefix> - - <destination overwrite="yes">${project}</destination> - - <image> - <!-- Not implemented yet (DMG image). --> - </image> - - <!-- Comment this out to keep the install names in binaries --> - <run-install-name-tool/> - - <launcher-script>${project}/launcher.sh</launcher-script > - - </meta> - - <plist>${project}/Info.plist</plist> - - <main-binary>${prefix}/bin/spek</main-binary> - - <binary>${prefix}/lib/gtk-2.0/${pkg:gtk+-2.0:gtk_binary_version}/engines/*.so</binary> - <binary>${prefix}/lib/gtk-2.0/${pkg:gtk+-2.0:gtk_binary_version}/immodules/*.so</binary> - <binary>${prefix}/lib/gtk-2.0/${pkg:gtk+-2.0:gtk_binary_version}/loaders/*.so</binary> - <binary>${prefix}/lib/gtk-2.0/${pkg:gtk+-2.0:gtk_binary_version}/printbackends/*.so</binary> - <binary>${prefix}/lib/gstreamer-0.10/*.so</binary> - - <!-- Translation filenames, one for each program or library that you - want to copy in to the bundle. The "dest" attribute is - optional, as usual. Bundler will find all translations of that - library/program under the indicated directory and copy them.--> - <translations dest="${bundle}/Contents/Resources" name="gtk20"> - ${prefix}/share/locale - </translations> - - <data>${prefix}/share/themes</data> - - <!-- Copy icons. Note that the .icns file is an Apple format which - contains up to 4 sizes of icon. You can use - /Developer/Applications/Utilities/Icon Composer.app to import - artwork and create the file. > - <data dest="${bundle}/Contents/Resources"> - ${project}/Spek.icns - </data --> - - <data dest="${bundle}/Contents/Resources/etc/gtk-2.0/gtkrc">${project}/gtkrc</data> - -</app-bundle>