<pre style='margin:0'>
Herby Gillot (herbygillot) pushed a commit to branch master
in repository macports-ports.

</pre>
<p><a href="https://github.com/macports/macports-ports/commit/56c21c41bed74b4f36f97e40dcff300847858829">https://github.com/macports/macports-ports/commit/56c21c41bed74b4f36f97e40dcff300847858829</a></p>
<pre style="white-space: pre; background: #F8F8F8">The following commit(s) were added to refs/heads/master by this push:
<span style='display:block; white-space:pre;color:#404040;'>     new 56c21c41bed lastfm-desktop: new port
</span>56c21c41bed is described below

<span style='display:block; white-space:pre;color:#808000;'>commit 56c21c41bed74b4f36f97e40dcff300847858829
</span>Author: barracuda156 <vital.had@gmail.com>
AuthorDate: Sun Apr 28 19:21:53 2024 +0800

<span style='display:block; white-space:pre;color:#404040;'>    lastfm-desktop: new port
</span>---
 audio/lastfm-desktop/Portfile                      |  62 +++
 .../files/0001-Drop-sparkle-and-growl.patch        | 525 +++++++++++++++++++++
 .../files/0002-patch-old-systems.diff              |  11 +
 .../files/0003-Compatibility-for-10.5.patch        |  67 +++
 4 files changed, 665 insertions(+)

<span style='display:block; white-space:pre;color:#808080;'>diff --git a/audio/lastfm-desktop/Portfile b/audio/lastfm-desktop/Portfile
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..94079335250
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/audio/lastfm-desktop/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,62 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# -*- coding: utf-8; mode: tcl; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- vim:fenc=utf-8:ft=tcl:et:sw=4:ts=4:sts=4
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+PortSystem              1.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+PortGroup               boost 1.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+PortGroup               github 1.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+PortGroup               qmake 1.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+github.setup            lastfm lastfm-desktop 2.1.39
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+revision                0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+categories              audio sysutils
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+maintainers             {@barracuda156 gmail.com:vital.had} openmaintainer
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+description             Official Last.fm desktop application suite
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+long_description        {*}${description}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+homepage                https://www.last.fm
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+license                 GPL-3
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+checksums               rmd160  e1db8c81a55a6535b76b2876ecc38dccc86423c7 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                        sha256  5755fe6c8b8cddc799e831ea80a5d213a52e93d11141514eeb3af613acaf8a57 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                        size    4099355
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+github.tarball_from     archive
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+depends_build-append    path:libexec/coreutils/libstdbuf.so:coreutils \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                        port:gettext
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+depends_lib-append      path:lib/libavcodec.dylib:ffmpeg \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                        port:fftw-3 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                        port:liblastfm \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                        port:libsamplerate \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                        port:sqlite3 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                        port:zlib
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+patchfiles-append       0001-Drop-sparkle-and-growl.patch
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+platform darwin {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    if {${os.major} < 11} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        patchfiles-append   0002-patch-old-systems.diff
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    if {${os.major} < 10} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        patchfiles-append   0003-Compatibility-for-10.5.patch
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+post-patch {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    reinplace "s|@ARCH@|${configure.build_arch}|g" ${worksrcpath}/admin/include.qmake
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    reinplace "s|@PREFIX@|${prefix}|g" ${worksrcpath}/admin/qmake/3rdparty.pro.inc ${worksrcpath}/admin/dist/mac/bundleFrameworks.sh
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    reinplace "s|@BOOST_LPATH@|[boost::lib_dir]|" ${worksrcpath}/admin/qmake/3rdparty.pro.inc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    reinplace "s|@qt_plugins_dir@|${qt_plugins_dir}|" ${worksrcpath}/admin/dist/mac/bundleFrameworks.sh
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    reinplace "s|@qt_translations_dir@|${qt_translations_dir}|" ${worksrcpath}/admin/dist/mac/bundleFrameworks.sh
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+universal_variant       no
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+destroot {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    system "mv ${worksrcpath}/_bin/Last.fm*Scrobbler.app ${destroot}${applications_dir}/Last.fm.app"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+post-destroot {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    system "install_name_tool -change liblogger.1.dylib @executable_path/../MacOS/liblogger.1.0.0.dylib \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            ${destroot}${applications_dir}/Last.fm.app/Contents/Helpers/fingerprinter"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    system "install_name_tool -change libunicorn.1.dylib @executable_path/../MacOS/libunicorn.1.0.0.dylib \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            ${destroot}${applications_dir}/Last.fm.app/Contents/Helpers/fingerprinter"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/audio/lastfm-desktop/files/0001-Drop-sparkle-and-growl.patch b/audio/lastfm-desktop/files/0001-Drop-sparkle-and-growl.patch
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..85c10eab94b
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/audio/lastfm-desktop/files/0001-Drop-sparkle-and-growl.patch
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,525 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From 82d6184ab87ce9793f7ae25e9e3f1793768f1f3c Mon Sep 17 00:00:00 2001
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From: barracuda156 <vital.had@gmail.com>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Date: Fri, 26 Apr 2024 15:38:01 +0800
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Subject: [PATCH] Drop sparkle and growl
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git admin/include.qmake admin/include.qmake
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 4a2e1cd6..3b1ecbf2 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- admin/include.qmake
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ admin/include.qmake
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -21,7 +21,7 @@ unix:!mac:QMAKE_CXXFLAGS += -fno-operator-names
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ macx* {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     QMAKE_PKGINFO_TYPEINFO = last
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    QMAKE_MACOSX_DEPLOYMENT_TARGET = 10.6
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    # QMAKE_MACOSX_DEPLOYMENT_TARGET = 10.6
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ include( qmake/debug.pro.inc )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -35,7 +35,7 @@ unix:!mac {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   contains( QT, phonon ):LIBS += -L$$system( kde4-config --prefix 2> /dev/null )/lib
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     isEmpty(PREFIX) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        PREFIX = /usr/local
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        PREFIX = @PREFIX@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     DEFINES += PREFIX=\\\"$$PREFIX\\\"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     BINDIR = $$PREFIX/bin
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -74,15 +74,15 @@ macx:CONFIG( app_bundle ): contains( TEMPLATE, app ) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                         ln -s \"audioscrobbler.icns\" \"$$BUNDLE_DIR/Contents/Resources/lastfm.icns\";
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     QMAKE_POST_LINK += echo Breakpad dump sys \"$${DESTDIR}/$${TARGET}.app/Contents/MacOS/$${TARGET}\".; \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                        \"$$ROOT_DIR/admin/dist/mac/dump_syms\" -a x86_64 \"$${DESTDIR}/$${TARGET}.app/Contents/MacOS/$${TARGET}\" > \"$${TARGET} x86_64.breakpad\";
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                        \"$$ROOT_DIR/admin/dist/mac/dump_syms\" -a @ARCH@ \"$${DESTDIR}/$${TARGET}.app/Contents/MacOS/$${TARGET}\" > \"$${TARGET} @ARCH@.breakpad\";
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     ## copy the public key for updates
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     QMAKE_POST_LINK += echo Copying dsa_pub.pem file..; \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                         cp \"$$ROOT_DIR/admin/dist/mac/dsa_pub.pem\" \"$$BUNDLE_DIR/Contents/Resources\";
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     ## copy the growl registration file
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    QMAKE_POST_LINK += echo Copying growl registration file..; \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                        cp \"$$ROOT_DIR/admin/dist/mac/Growl Registration Ticket.growlRegDict\" \"$$BUNDLE_DIR/Contents/Resources\";
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#    QMAKE_POST_LINK += echo Copying growl registration file..; \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#                        cp \"$$ROOT_DIR/admin/dist/mac/Growl Registration Ticket.growlRegDict\" \"$$BUNDLE_DIR/Contents/Resources\";
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     ## copy the apple script suite definition
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     QMAKE_POST_LINK += echo Copying apple script suite definition file..; \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git app/fingerprinter/fingerprinter.pro app/fingerprinter/fingerprinter.pro
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index f42188ce..d1dbe67a 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- app/fingerprinter/fingerprinter.pro
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ app/fingerprinter/fingerprinter.pro
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -9,7 +9,7 @@ include( ../../admin/include.qmake )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # TODO: FIX THIS: I think this means that we can only build bundles
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ mac {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     DESTDIR = "../../_bin/Last.fm Scrobbler.app/Contents/Helpers"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    QMAKE_POST_LINK += ../../admin/dist/mac/bundleFrameworks.sh \"$$DESTDIR/$$TARGET\"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    # QMAKE_POST_LINK += ../../admin/dist/mac/bundleFrameworks.sh \"$$DESTDIR/$$TARGET\"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ SOURCES += main.cpp \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git admin/dist/mac/bundleFrameworks.sh admin/dist/mac/bundleFrameworks.sh
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 7ce24bf9..010b7852 100755
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- admin/dist/mac/bundleFrameworks.sh
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ admin/dist/mac/bundleFrameworks.sh
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -89,7 +89,7 @@ function fixLocalLibs {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             cpPath=$lib
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        resolvedLib=`/usr/local/bin/greadlink -f $cpPath`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        resolvedLib=`@PREFIX@/bin/greadlink -f $cpPath`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         basenameLib=`basename $resolvedLib`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           echo $cpPath "$bundlePath/Contents/MacOS"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -107,7 +107,7 @@ function fixLocalLibs {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ function locateLib {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    for p in {$rootdir,/usr/local/lib}; do
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    for p in {$rootdir,@PREFIX@/lib}; do
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         if [ -e $p/$1 ]; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             echo $p/$1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             return 0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -145,8 +145,8 @@ echo
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ echo ======= Copying 3rd party frameworks ===========
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-cp -R -H -f /Library/Frameworks/Growl.framework "$bundlePath/Contents/Frameworks"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-cp -R -H -f /Library/Frameworks/Sparkle.framework "$bundlePath/Contents/Frameworks"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#cp -R -H -f /Library/Frameworks/Growl.framework "$bundlePath/Contents/Frameworks"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#cp -R -H -f /Library/Frameworks/Sparkle.framework "$bundlePath/Contents/Frameworks"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #cp -R -L -f /Library/Frameworks/Breakpad.framework "$bundlePath/Contents/Frameworks"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ echo
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -157,12 +157,8 @@ mkdir -p "$bundlePath/Contents/plugins"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ plugins="imageformats sqldrivers bearer"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ for plugin in $plugins; do
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    if [ -d /Developer/Applications/Qt/plugins/ ]; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        pluginDir=/Developer/Applications/Qt/plugins
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    elif [ -d /usr/local/lib/qt4/plugins/ ]; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        # Qt installed using Homebrew will be found in your local lib.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        # Currently we only support qt v4.8.7.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        pluginDir=/usr/local/lib/qt4/plugins
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if [ -d @qt_plugins_dir@ ]; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        pluginDir=@qt_plugins_dir@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         pluginDir=`qmake --version |sed -n 's/^.*in \(\/.*$\)/\1/p'`/../plugins
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -190,12 +186,8 @@ translations="qt_de.qm
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                 qt_zh_CN.qm"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ for translation in $translations; do
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    if [ -d /Developer/Applications/Qt/plugins/ ]; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        translationDir=/Developer/Applications/Qt/translations
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    elif [ -d /usr/local/Cellar/qt@4/4.8.7_5/translations/ ]; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        # Qt installed using Homebrew will be found in the Homebrew Cellar.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        # Currently we only support qt v4.8.7.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        translationDir=/usr/local/Cellar/qt@4/4.8.7_5/translations
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if [ -d @qt_translations_dir@ ]; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        translationDir=@qt_translations_dir@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         translationDir=`qmake --version |sed -n 's/^.*in \(\/.*$\)/\1/p'`/../translations
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git app/client/Dialogs/LicensesDialog.cpp app/client/Dialogs/LicensesDialog.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 8ddd237e..c44d67e4 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- app/client/Dialogs/LicensesDialog.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ app/client/Dialogs/LicensesDialog.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -46,19 +46,19 @@ LicensesDialog::LicensesDialog(QWidget *parent) :
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     licenseText.append( "<li>" + unicorn::Label::anchor( "http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html", "GNU Lesser General Public License (LGPL) version 2.1" ) + "</li>");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     licenseText.append( "</ul>" );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#ifdef Q_OS_MAC
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    // Sparkle (updating framework)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    licenseText.append( "<hr>" );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    licenseText.append( "<h3>Sparkle</h3>" );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    licenseText.append( "<ul>" );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    licenseText.append( "<li>" + unicorn::Label::anchor( "http://sparkle.andymatuschak.org/", "Sparkle" ) + "</li>");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    licenseText.append( "<li>" + unicorn::Label::anchor( "https://github.com/andymatuschak/Sparkle/blob/master/License.txt", "Sparkle License" ) + "</li>");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    licenseText.append( "</ul>" );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    licenseText.append( "<p>Copyright (c) 2006 Andy Matuschak</p>" );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    licenseText.append( "<p>Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>" );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    licenseText.append( "<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>" );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    licenseText.append( "<p>THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>" );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++// #ifdef Q_OS_MAC
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++//     // Sparkle (updating framework)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++//     licenseText.append( "<hr>" );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++//     licenseText.append( "<h3>Sparkle</h3>" );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++//     licenseText.append( "<ul>" );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++//     licenseText.append( "<li>" + unicorn::Label::anchor( "http://sparkle.andymatuschak.org/", "Sparkle" ) + "</li>");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++//     licenseText.append( "<li>" + unicorn::Label::anchor( "https://github.com/andymatuschak/Sparkle/blob/master/License.txt", "Sparkle License" ) + "</li>");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++//     licenseText.append( "</ul>" );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++//     licenseText.append( "<p>Copyright (c) 2006 Andy Matuschak</p>" );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++//     licenseText.append( "<p>Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>" );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++//     licenseText.append( "<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>" );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++//     licenseText.append( "<p>THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWAR [...]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++// #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #ifdef Q_OS_WIN
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     // Winsparkle
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -73,24 +73,24 @@ LicensesDialog::LicensesDialog(QWidget *parent) :
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     licenseText.append( "<p>THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>" );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#ifdef Q_OS_MAC
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    // Growl
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    licenseText.append( "<hr>" );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    licenseText.append( "<h3>Growl</h3>" );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    licenseText.append( "<ul>" );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    licenseText.append( "<li>" + unicorn::Label::anchor( "http://growl.info", "Growl" ) + "<li>" );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    licenseText.append( "<li>" + unicorn::Label::anchor( "http://growl.info/documentation/developer/bsd-license.txt", "Growl License" ) + "<li>" );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    licenseText.append( "</ul>" );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    licenseText.append( "<p>Copyright (c) The Growl Project, 2004</p>" );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    licenseText.append( "<p>All rights reserved.</p>" );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    licenseText.append( "<p>Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:</p>" );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    licenseText.append( "<ol>" );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    licenseText.append( "<li>Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.</li>" );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    licenseText.append( "<li>Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.</li>" );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    licenseText.append( "<li>Neither the name of Growl nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.</li>" );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    licenseText.append( "</ol>" );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    licenseText.append( "<p>THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVIC [...]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++// #ifdef Q_OS_MAC
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++//     // Growl
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++//     licenseText.append( "<hr>" );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++//     licenseText.append( "<h3>Growl</h3>" );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++//     licenseText.append( "<ul>" );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++//     licenseText.append( "<li>" + unicorn::Label::anchor( "http://growl.info", "Growl" ) + "<li>" );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++//     licenseText.append( "<li>" + unicorn::Label::anchor( "http://growl.info/documentation/developer/bsd-license.txt", "Growl License" ) + "<li>" );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++//     licenseText.append( "</ul>" );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++//     licenseText.append( "<p>Copyright (c) The Growl Project, 2004</p>" );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++//     licenseText.append( "<p>All rights reserved.</p>" );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++//     licenseText.append( "<p>Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:</p>" );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++//     licenseText.append( "<ol>" );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++//     licenseText.append( "<li>Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.</li>" );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++//     licenseText.append( "<li>Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.</li>" );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++//     licenseText.append( "<li>Neither the name of Growl nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.</li>" );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++//     licenseText.append( "</ol>" );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++//     licenseText.append( "<p>THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SER [...]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++// #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     // Breakpad
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     licenseText.append( "<hr>" );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     licenseText.append( "<h3>Breakpad</h3>" );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git app/client/MainWindow.cpp app/client/MainWindow.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index d5bfb40a..762006a8 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- app/client/MainWindow.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ app/client/MainWindow.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -58,7 +58,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "lib/unicorn/qtwin.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "lib/unicorn/widgets/SlidingStackedWidget.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "lib/listener/PlayerConnection.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#if defined(Q_OS_MAC) || defined(Q_OS_WIN)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if defined(Q_OS_WIN)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "lib/unicorn/Updater/Updater.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "lib/unicorn/QMessageBoxBuilder.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -167,7 +167,7 @@ MainWindow::MainWindow( QMenuBar* menuBar )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     setupMenuBar();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#if defined(Q_OS_MAC) || defined(Q_OS_WIN)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if defined(Q_OS_WIN)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     m_updater = new Updater( this );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -414,7 +414,7 @@ MainWindow::onDiagnosticsTriggered()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ void
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ MainWindow::setBetaUpdates( bool betaUpdates )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#if defined(Q_OS_MAC) || defined(Q_OS_WIN)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if defined(Q_OS_WIN)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if ( m_updater )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         m_updater->setBetaUpdates( betaUpdates );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -441,7 +441,7 @@ MainWindow::onBringAllToFrontTriggered()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ void
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ MainWindow::checkForUpdates()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#if defined(Q_OS_MAC) || defined(Q_OS_WIN)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if defined(Q_OS_WIN)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     m_updater->checkForUpdates();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git app/client/MainWindow.h app/client/MainWindow.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 1291a5fa..27ccddbb 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- app/client/MainWindow.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ app/client/MainWindow.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -35,7 +35,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "Settings/PreferencesDialog.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "Dialogs/DiagnosticsDialog.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#if defined(Q_OS_MAC) || defined(Q_OS_WIN)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if defined(Q_OS_WIN)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ namespace unicorn
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     class Updater;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -144,7 +144,7 @@ private:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     QPointer<PreferencesDialog> m_preferences;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     QPointer<DiagnosticsDialog> m_diagnostics;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#if defined(Q_OS_MAC) || defined(Q_OS_WIN)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if defined(Q_OS_WIN)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     QPointer<Updater> m_updater;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git app/client/Settings/GeneralSettingsWidget.cpp app/client/Settings/GeneralSettingsWidget.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 763c38e7..b02e5817 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- app/client/Settings/GeneralSettingsWidget.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ app/client/Settings/GeneralSettingsWidget.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -40,7 +40,7 @@ GeneralSettingsWidget::GeneralSettingsWidget( QWidget* parent )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     ui->sendCrashReports->setChecked( unicorn::Settings().sendCrashReports() );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     ui->beta->setChecked( unicorn::Settings().betaUpdates() );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#if !defined( Q_OS_WIN ) && !defined( Q_OS_MAC )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if !defined( Q_OS_WIN )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     ui->beta->hide(); // only have a beta update setting in mac and windows
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git lib/unicorn/Updater/Updater.h lib/unicorn/Updater/Updater.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index e20958ca..0e34dabc 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- lib/unicorn/Updater/Updater.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ lib/unicorn/Updater/Updater.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -30,9 +30,9 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ namespace qtsparkle { class Updater; }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #define UPDATE_URL_WIN "https://cdn.last.fm/client/updates/updates.win.xml"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #define UPDATE_URL_WIN_BETA "https://cdn.last.fm/client/updates/updates.win.beta.xml"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#elif defined( Q_OS_MAC )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#define UPDATE_URL_MAC @"https://cdn.last.fm/client/updates/updates.mac.xml"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#define UPDATE_URL_MAC_BETA @"https://cdn.last.fm/client/updates/updates.mac.beta.xml"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++// #elif defined( Q_OS_MAC )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++// #define UPDATE_URL_MAC @"https://cdn.last.fm/client/updates/updates.mac.xml"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++// #define UPDATE_URL_MAC_BETA @"https://cdn.last.fm/client/updates/updates.mac.beta.xml"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ namespace unicorn
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git lib/unicorn/unicorn.pro lib/unicorn/unicorn.pro
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index ceb34dab..73cdb8cb 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- lib/unicorn/unicorn.pro
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ lib/unicorn/unicorn.pro
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1,6 +1,6 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ TARGET = unicorn
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ TEMPLATE = lib
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-CONFIG += dll lastfm sparkle growl logger
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++CONFIG += dll lastfm logger
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ unix:!mac {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     CONFIG -= dll
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     CONFIG += staticlib
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git lib/unicorn/Updater/Updater_mac.mm lib/unicorn/Updater/Updater_mac.mm
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 24d2fce4..db242816 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- lib/unicorn/Updater/Updater_mac.mm
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ lib/unicorn/Updater/Updater_mac.mm
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -29,8 +29,8 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <Foundation/Foundation.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <Foundation/NSURL.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#include <Sparkle/Sparkle.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#include <Sparkle/SUUpdater.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++// #include <Sparkle/Sparkle.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++// #include <Sparkle/SUUpdater.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ @interface UpdaterDelegate : NSObject {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -44,38 +44,19 @@ UpdaterDelegate* g_Delegate;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ unicorn::Updater::Updater(QWidget *parent) :
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     QObject(parent)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    SUUpdater* updater = [SUUpdater sharedUpdater];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    g_Delegate = [UpdaterDelegate alloc];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    [updater setDelegate:g_Delegate];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    if ( qApp->arguments().contains( "--update" ) )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        int urlIndex = qApp->arguments().indexOf( "--update" ) + 1;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        if ( qApp->arguments().count() > urlIndex && qApp->arguments()[urlIndex].startsWith( "https://" ) )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            [updater setFeedURL:[NSURL URLWithString: [NSString stringWithCharacters:(const unichar *)qApp->arguments()[urlIndex].unicode() length:(NSUInteger)qApp->arguments()[urlIndex].length() ]]];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            setBetaUpdates( unicorn::Settings().betaUpdates() );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        setBetaUpdates( unicorn::Settings().betaUpdates() );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    // do nothing
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ void
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ unicorn::Updater::setBetaUpdates( bool betaUpdates )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    if ( betaUpdates )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        [[SUUpdater sharedUpdater] setFeedURL:[NSURL URLWithString:UPDATE_URL_MAC_BETA]];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        [[SUUpdater sharedUpdater] setFeedURL:[NSURL URLWithString:UPDATE_URL_MAC]];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    // do nothing
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ void
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ unicorn::Updater::checkForUpdates()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    [[SUUpdater sharedUpdater] checkForUpdates:0];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    // do nothing
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ unicorn::Updater::~Updater()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git lib/unicorn/notify/Notify.mm lib/unicorn/notify/Notify.mm
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 9beedd03..81f4f134 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- lib/unicorn/notify/Notify.mm
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ lib/unicorn/notify/Notify.mm
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -24,7 +24,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <QPixmap>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#include <Growl/Growl.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++// #include <Growl/Growl.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <lastfm/Track.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -59,30 +59,30 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ @end
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-@interface GrowlClickDelegate : NSObject <GrowlApplicationBridgeDelegate> {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    unicorn::Notify* m_observer;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    - (GrowlClickDelegate*) init:(unicorn::Notify*)observer;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    - (void) growlNotificationWasClicked:(id)clickContext;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-@end
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-@implementation GrowlClickDelegate
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-- (GrowlClickDelegate*) init:(unicorn::Notify*)observer
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    if ( (self = [super init]) )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        self->m_observer = observer;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    return self;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-- (void) growlNotificationWasClicked:(id)clickContext
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    Q_UNUSED(clickContext)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    self->m_observer->growlNotificationWasClicked();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-@end
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++// @interface GrowlClickDelegate : NSObject <GrowlApplicationBridgeDelegate> {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++//     unicorn::Notify* m_observer;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++// }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++//     - (GrowlClickDelegate*) init:(unicorn::Notify*)observer;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++//     - (void) growlNotificationWasClicked:(id)clickContext;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++// @end
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++// 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++// @implementation GrowlClickDelegate
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++// - (GrowlClickDelegate*) init:(unicorn::Notify*)observer
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++// {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++//     if ( (self = [super init]) )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++//     {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++//         self->m_observer = observer;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++//     }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++// 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++//     return self;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++// }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++// 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++// - (void) growlNotificationWasClicked:(id)clickContext
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++// {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++//     Q_UNUSED(clickContext)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++//     self->m_observer->growlNotificationWasClicked();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++// }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++// @end
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ unicorn::Notify::Notify(QObject *parent) :
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     QObject(parent)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -97,8 +97,8 @@ unicorn::Notify::Notify(QObject *parent) :
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        GrowlClickDelegate* growlDelegate = [[GrowlClickDelegate alloc] init: this];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        [GrowlApplicationBridge setGrowlDelegate:growlDelegate];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++//         GrowlClickDelegate* growlDelegate = [[GrowlClickDelegate alloc] init: this];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++//         [GrowlApplicationBridge setGrowlDelegate:growlDelegate];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -205,21 +205,20 @@ unicorn::Notify::onFinished( const QPixmap& pixmap )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         // TODO: Do the growl notification here. It'll be great!
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        [GrowlApplicationBridge notifyWithTitle:(NSString *)nsTitle
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          description:(NSString *)nsDescription
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          notificationName:(NSString *)@"New track"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                                    iconData:(NSData *)data
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                                    priority:(signed int)0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                                    isSticky:(BOOL)NO
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                                    clickContext:(id)@"context"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                                    identifier:(NSString*)@"identifier" ];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++//         [GrowlApplicationBridge notifyWithTitle:(NSString *)nsTitle
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++//           description:(NSString *)nsDescription
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++//           notificationName:(NSString *)@"New track"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++//                                     iconData:(NSData *)data
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++//                                     priority:(signed int)0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++//                                     isSticky:(BOOL)NO
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++//                                     clickContext:(id)@"context"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++//                                     identifier:(NSString*)@"identifier" ];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-void
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-unicorn::Notify::growlNotificationWasClicked()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    emit clicked();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++// void
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++// unicorn::Notify::growlNotificationWasClicked()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++// {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++//     emit clicked();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++// }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git admin/qmake/3rdparty.pro.inc admin/qmake/3rdparty.pro.inc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index f68e1221..d63a667a 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- admin/qmake/3rdparty.pro.inc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ admin/qmake/3rdparty.pro.inc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1,6 +1,6 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ mac {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    LIBS += -L/usr/local/lib
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    INCLUDEPATH += /usr/local/include
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    LIBS += -L@PREFIX@/lib
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    INCLUDEPATH += @PREFIX@/include
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ CONFIG( taglib ) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -11,10 +11,10 @@ CONFIG( taglib ) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ CONFIG( ffmpeg ) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     mac {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        LIBS += /usr/local/lib/libavcodec.dylib
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        LIBS += /usr/local/lib/libavformat.dylib
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        LIBS += /usr/local/lib/libavutil.dylib
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        LIBS += /usr/local/lib/libswresample.dylib
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        LIBS += @PREFIX@/lib/libavcodec.dylib
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        LIBS += @PREFIX@/lib/libavformat.dylib
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        LIBS += @PREFIX@/lib/libavutil.dylib
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        LIBS += @PREFIX@/lib/libswresample.dylib
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         DEFINES += HAVE_SWRESAMPLE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     } else {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         CONFIG += link_pkgconfig
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -37,7 +37,7 @@ CONFIG( analytics ) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ CONFIG( boost ) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     mac:CONFIG(app_bundle){
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        LIBS += /usr/local/lib/libboost_thread-mt.a
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        LIBS += -L@BOOST_LPATH@ -lboost_thread-mt
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     else:unix {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         LIBS += -lboost_thread-mt
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -94,7 +94,7 @@ CONFIG( yajl ) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           release:PKGCONFIG += yajl-release
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   else:CONFIG(app_bundle) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                LIBS += /usr/local/lib/libyajl_s.a
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                LIBS += @PREFIX@/lib/libyajl_s.a
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   else:LIBS += -lyajl
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/audio/lastfm-desktop/files/0002-patch-old-systems.diff b/audio/lastfm-desktop/files/0002-patch-old-systems.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..a7c633ba1a8
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/audio/lastfm-desktop/files/0002-patch-old-systems.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,11 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- lib/unicorn/UnicornApplicationDelegate.mm      2019-09-18 23:35:16.000000000 +0800
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ lib/unicorn/UnicornApplicationDelegate.mm      2024-04-26 17:59:24.000000000 +0800
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -147,7 +147,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            NSImage* img = [NSImage imageNamed: NSImageNameApplicationIcon];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            NSImage* img = [NSImage imageNamed: @"NSApplicationIcon"];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             NSData* data = [img TIFFRepresentation];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             return data;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         }
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/audio/lastfm-desktop/files/0003-Compatibility-for-10.5.patch b/audio/lastfm-desktop/files/0003-Compatibility-for-10.5.patch
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..7595fbe61a0
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/audio/lastfm-desktop/files/0003-Compatibility-for-10.5.patch
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,67 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From 5ed984223918b427716c469d7c37d3e9513c7f1b Mon Sep 17 00:00:00 2001
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From: barracuda156 <vital.had@gmail.com>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Date: Thu, 16 May 2024 18:21:00 +0800
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Subject: [PATCH] Compatibility for < 10.6
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+macOS 10.5 does not have NSApplicationDelegate.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+macOS 10.4 does not have NSUInteger.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ lib/unicorn/UnicornApplicationDelegate.mm | 6 +++++-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ lib/unicorn/UnicornApplication_mac.mm     | 4 ++++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ lib/unicorn/notify/Notify.mm              | 3 +++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 3 files changed, 12 insertions(+), 1 deletion(-)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git lib/unicorn/UnicornApplicationDelegate.mm lib/unicorn/UnicornApplicationDelegate.mm
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 76379d94..39729122 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- lib/unicorn/UnicornApplicationDelegate.mm
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ lib/unicorn/UnicornApplicationDelegate.mm
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -29,6 +29,10 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #import <AppKit/NSView.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #import <Carbon/Carbon.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifndef NSUInteger
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++typedef unsigned long NSUInteger;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ // Declare this here ourselves so we can compile on OSX 10.6
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ // and ProcessTransformToUIElementApplication just won't work
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ enum {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -37,7 +41,7 @@ enum {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   ProcessTransformToUIElementApplication = 4 /* functional in Mac OS X Barolo and later */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ };
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-@interface LFMAppDelegate : NSObject <NSApplicationDelegate> {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++@interface LFMAppDelegate : NSObject {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     unicorn::UnicornApplicationDelegate* m_observer;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     BOOL m_show;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git lib/unicorn/UnicornApplication_mac.mm lib/unicorn/UnicornApplication_mac.mm
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index e0a04672..f6573ec1 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- lib/unicorn/UnicornApplication_mac.mm
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ lib/unicorn/UnicornApplication_mac.mm
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -23,6 +23,10 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #import <Foundation/NSAppleEventManager.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #import <Foundation/NSObject.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifndef NSUInteger
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++typedef unsigned long NSUInteger;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ void 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ unicorn::Application::setOpenApplicationEventHandler()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git lib/unicorn/notify/Notify.mm lib/unicorn/notify/Notify.mm
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 81f4f134..66731966 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- lib/unicorn/notify/Notify.mm
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ lib/unicorn/notify/Notify.mm
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -30,6 +30,9 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "Notify.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifndef NSUInteger
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++typedef unsigned long NSUInteger;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #ifdef LASTFM_USER_NOTIFICATIONS
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ @interface MacClickDelegate : NSObject <NSUserNotificationCenterDelegate> {
</span></pre><pre style='margin:0'>

</pre>