diff --git a/README.md b/README.md index 9acaa77..8386ebd 100644 --- a/README.md +++ b/README.md @@ -15,8 +15,17 @@ The built AppImage will include the GUI created for the ## Compatibility The AppImage is (hopefully) built in such a way that would enable it to run on -many Linux distributions. That being said, it had only been tested on Fedora 20 -so far. +many Linux distributions. That being said, it had only been tested on the +following OSes so far: + +- Fedora 20 +- Ubuntu 14.10 + +The binary downloadable AppImage was also tested and shown not to run on the +following OSes. It is quite likely that running the build system on thos OSes +will result in a working AppImage for them: + +- RHEL/CentOS 6.x Binary components included in the AppImage are currtly compatible only with 64bit intel-based processors (x86-64). Patches to add components for other diff --git a/btsync_deb_appindicator_path.patch b/btsync_deb_appindicator_path.patch new file mode 100644 index 0000000..e7a6675 --- /dev/null +++ b/btsync_deb_appindicator_path.patch @@ -0,0 +1,30 @@ +diff --git a/btsync-gui/trayindicator.py b/btsync-gui/trayindicator.py +index a205cee..e29a0bd 100644 +--- a/btsync-gui/trayindicator.py ++++ b/btsync-gui/trayindicator.py +@@ -22,6 +22,9 @@ + # + + import logging ++from os import environ ++from os.path import join as path_join ++from os.path import isdir + + from gi.repository import Gtk, GObject + +@@ -47,6 +50,15 @@ class TrayIndicator: + icon_name, + AppIndicator.IndicatorCategory.APPLICATION_STATUS + ) ++ # Try to make AppIndicator respect weird paths in XDG_DATA_DIRS ++ for p in environ.get('XDG_DATA_DIRS','').split(':'): ++ if p in ('/usr/share', '/usr/local/share'): ++ continue ++ ip = path_join(p, 'icons') ++ if not isdir(ip): ++ continue ++ self.indicator.set_icon_theme_path(ip) ++ break + if attention_icon_name is None: + self.indicator.set_attention_icon(icon_name) + else: diff --git a/pavement.py b/pavement.py index 0b1d58b..d4b0bd6 100644 --- a/pavement.py +++ b/pavement.py @@ -92,6 +92,7 @@ def __init__(self, tag='btsync-1.4.1-1', workdir=WORK_DIR): tag, workdir=workdir) self.gui_path = self.extract_path / 'btsync-gui' self.install_file = self.gui_path / 'debian' / 'btsync-gui-gtk.install' + self.patch = path('btsync_deb_appindicator_path.patch') class QREncode(Package): def __init__(self, version='3.4.4', workdir=WORK_DIR): @@ -186,8 +187,8 @@ def get_appimagekit_src(): @task @needs('get_btsync_deb_src') -def build_btsync_gui_locales(): - """Build the BySync GUI locale files""" +def build_btsync_gui(): + """Build the BySync GUI""" btsd=BTSyncDeb() locdir = btsd.gui_path / 'locale' locdir.mkdir(DIR_MODE) @@ -197,6 +198,9 @@ def build_btsync_gui_locales(): dstdir = dstdir / sd dstdir.mkdir(DIR_MODE) sh("msgfmt -c '%s' -o '%s'" % (pofile, dstdir / 'btsync-gu.mo')) + patchabs = btsd.patch.abspath() + with pushd(btsd.extract_path): + sh("patch -p1 < '%s'" % (patchabs)) @task @needs('get_qrencode_src') @@ -250,7 +254,7 @@ def build_appimagekit(): sh('make AppImageAssistant') @task -@needs('build_btsync_gui_locales') +@needs('build_btsync_gui') def install_btsync_gui(): """Install the BTSync GUI files to the AppDir""" btsd=BTSyncDeb()