diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index c12e24904..f80200630 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -25,4 +25,4 @@ appimage:linux:
   artifacts:
     expire_in: 14 days
     paths:
-      - ./Scribus*.AppImage*
\ No newline at end of file
+      - ./build-appimage/Scribus*.AppImage*
diff --git a/AppImage-package/AppRun b/AppImage-package/AppRun
index 3bfcc01e5..fd1e6aa44 100644
--- a/AppImage-package/AppRun
+++ b/AppImage-package/AppRun
@@ -56,7 +56,10 @@ export TK_LIBRARY="${HERE}"/usr/share/tcltk/tk8.6:$TK_LIBRARY:$TCL_LIBRARY
 # Make it look more native on Gtk+ based systems
 ############################################################################################
 
-export QT_QPA_PLATFORMTHEME=gtk2
+case "${XDG_CURRENT_DESKTOP}" in
+    *GNOME*|*gnome*)
+        export QT_QPA_PLATFORMTHEME=gtk2
+esac
 
 ############################################################################################
 # Run experimental bundle that bundles everything if a private ld-linux-x86-64.so.2 is there
diff --git a/AppImage-package/bundle.sh b/AppImage-package/bundle.sh
index da372e889..ee7b01f44 100644
--- a/AppImage-package/bundle.sh
+++ b/AppImage-package/bundle.sh
@@ -1,29 +1,16 @@
 #!/bin/bash
 
-cat /proc/1/cgroup # Check if we run in Docker; https://github.com/AppImage/AppImageKit/issues/912
+mkdir build-appimage
+cd build-appimage
 
+# for docker images:
+# if qt is not in the standard path, load its environment variables
+# /opt/qt*/bin/qt*-env.sh
 . /opt/qt*/bin/qt*-env.sh || true
 
-########################################################################
-# Build Plaform Theme for Gtk+
-########################################################################
-
-find /opt/qt*/| grep platform 
-#apt-get update
-#apt-get -y install libgtk-3-dev libnotify-dev qt5113d
-#git clone https://github.com/CrimsonAS/gtkplatform
-#cd gtkplatform
-#qmake
-#make -j$(nproc)
-#sudo make install 
-#cd -
 
 ########################################################################
-# https://askubuntu.com/a/910143
-# https://askubuntu.com/a/748186
-# Deploy with linuxdeployqt using
-# -extra-plugins=platformthemes/libqgtk2.so,styles/libqgtk2style.so
-# At runtime, export QT_QPA_PLATFORMTHEME=gtk2 (Xfce does this itself)
+# Build Plaform Theme for Gtk+
 ########################################################################
 
 git clone http://code.qt.io/qt/qtstyleplugins.git
@@ -37,12 +24,27 @@ cd -
 # Build Scribus and install to appdir/
 ########################################################################
 
-cmake . -DCMAKE_CXX_COMPILER_LAUNCHER=ccache -DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_INSTALL_PREFIX=/usr -DWANT_HUNSPELL=1 -DWITH_PODOFO=1 -DWANT_GRAPHICSMAGICK=1 -DWANT_DEBUG=0 -DWANT_SVNVERSION=0 -DWANT_GUI_LANG=en_US
+cmake .. -DCMAKE_CXX_COMPILER_LAUNCHER=ccache \
+    -DCMAKE_C_COMPILER_LAUNCHER=ccache \
+    -DCMAKE_INSTALL_PREFIX=/usr \
+    -DWANT_RELATIVE_PATH="." \
+    -DWANT_HUNSPELL=1 \
+    -DWITH_PODOFO=1 \
+    -DWANT_GRAPHICSMAGICK=1 \
+    -DWANT_DEBUG=0 \
+    -DWANT_SVNVERSION=0 \
+    -DWANT_GUI_LANG="en_US;de;fr;it"
 make -j$(nproc)
-make DESTDIR=appdir -j$(nproc) install ; find appdir/
-cp AppImage-package/AppRun appdir/ ; chmod +x appdir/AppRun
+
+make DESTDIR=appdir -j$(nproc) install
+
+
+# TODO: make sure that the appdir directory exits
+cp ../AppImage-package/AppRun appdir/
+chmod +x appdir/AppRun
 cp ./appdir/usr/share/icons/hicolor/256x256/apps/scribus.png ./appdir/
-sed -i -e 's|^Icon=.*|Icon=scribus|g' ./appdir/usr/share/applications/scribus.desktop # Needed?
+# TODO: is this needed?
+sed -i -e 's|^Icon=.*|Icon=scribus|g' ./appdir/usr/share/applications/scribus.desktop
 
 ########################################################################
 # Bundle everyhting
@@ -51,7 +53,8 @@ sed -i -e 's|^Icon=.*|Icon=scribus|g' ./appdir/usr/share/applications/scribus.de
 
 cd appdir/
 
-# Bundle all of glibc; this should eventually be done by linuxdeployqt
+# Bundle all of glibc
+# (this should eventually be done by linuxdeployqt)
 apt-get update -q
 apt-get download libc6
 find *.deb -exec dpkg-deb -x {} . \;
@@ -71,26 +74,15 @@ find *.deb -exec dpkg-deb -x {} . \;
 rm *deb
 cd -
 
-########################################################################
-# Patch away absolute paths
-# FIXME: It would be nice if they were relative
-########################################################################
-
-sed -i -e 's|/usr/share/scribus|././/share/scribus|g' appdir/usr/bin/scribus
-sed -i -e 's|/usr/lib/scribus|././/lib/scribus|g' appdir/usr/bin/scribus
-sed -i -e 's|/usr/share/doc/scribus/|././/share/doc/scribus/|g' appdir/usr/bin/scribus
-
-########################################################################
-# Also bundle Tcl/Tk, Tkinter (for Calendar script)
-########################################################################
-
+# Bundle Tcl/Tk, Tkinter (for hte Calendar script)
 mkdir -p appdir/usr/lib appdir/usr/share
 cp /usr/li*/python2.7/lib-dynload/_tkinter.so appdir/usr/ # It is indeed picked up here because we cd there at runtime
 cp -r /usr/lib/tcltk appdir/usr/lib/
 cp -r /usr/share/tcltk appdir/usr/share/
 
 ########################################################################
-# Create extra qt.conf in a strange location; FIXME: why is this needed?
+# Create extra qt.conf in a strange location
+# TODO: why is this needed?
 ########################################################################
 
 mkdir -p appdir/lib/x86_64-linux-gnu/
@@ -112,4 +104,4 @@ wget -c -nv "https://github.com/probonopd/linuxdeployqt/releases/download/contin
 chmod a+x linuxdeployqt-continuous-x86_64.AppImage
 ARCH=x86_64 ./linuxdeployqt-continuous-x86_64.AppImage --appimage-extract-and-run appdir/usr/share/applications/scribus.desktop \
 -appimage -unsupported-bundle-everything \
--executable=appdir/usr/bin/python2.7 -executable=appdir/usr/_tkinter.so -extra-plugins=platformthemes/libqgtk2.so,styles/libqgtk2style.so
\ No newline at end of file
+-executable=appdir/usr/bin/python2.7 -executable=appdir/usr/_tkinter.so -extra-plugins=platformthemes/libqgtk2.so,styles/libqgtk2style.so
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 305e11b06..fb6647423 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -283,7 +283,9 @@ if(WANT_VERSIONING)
 else()
 	set(SHAREDIR "${CMAKE_INSTALL_DATAROOTDIR}/${MAIN_DIR_NAME}/")
 endif()
-if(NOT IS_ABSOLUTE ${SHAREDIR})
+if(DEFINED WANT_RELATIVE_PATH)
+	add_definitions(-DSHAREDIR="${WANT_RELATIVE_PATH}/${SHAREDIR}")
+elseif(NOT IS_ABSOLUTE ${SHAREDIR})
 	add_definitions(-DSHAREDIR="${CMAKE_INSTALL_PREFIX}/${SHAREDIR}")
 else()
 	add_definitions(-DSHAREDIR="${SHAREDIR}")
@@ -303,7 +305,9 @@ else()
 		endif()
 	endif()
 endif()
-if(NOT IS_ABSOLUTE ${DOCDIR})
+if(DEFINED WANT_RELATIVE_PATH)
+	add_definitions(-DDOCDIR="${WANT_RELATIVE_PATH}/${DOCDIR}")
+elseif(NOT IS_ABSOLUTE ${DOCDIR})
 	add_definitions(-DDOCDIR="${CMAKE_INSTALL_PREFIX}/${DOCDIR}")
 else()
 	add_definitions(-DDOCDIR="${DOCDIR}")
@@ -315,7 +319,9 @@ if(WIN32)
 else()
 	set(ICONDIR "${CMAKE_INSTALL_DATAROOTDIR}/${MAIN_DIR_NAME}${TAG_VERSION}/icons/")
 endif()
-if(NOT IS_ABSOLUTE ${ICONDIR})
+if(DEFINED WANT_RELATIVE_PATH)
+	add_definitions(-DICONDIR="${WANT_RELATIVE_PATH}/${ICONDIR}")
+elseif(NOT IS_ABSOLUTE ${ICONDIR})
 	add_definitions(-DICONDIR="${CMAKE_INSTALL_PREFIX}/${ICONDIR}")
 else()
 	add_definitions(-DICONDIR="${ICONDIR}")
@@ -323,7 +329,9 @@ endif()
 
 #SAMPLES
 set(SAMPLESDIR "${CMAKE_INSTALL_DATAROOTDIR}/${MAIN_DIR_NAME}${TAG_VERSION}/samples/")
-if(NOT IS_ABSOLUTE ${SAMPLESDIR})
+if(DEFINED WANT_RELATIVE_PATH)
+	add_definitions(-DSAMPLESDIR="${WANT_RELATIVE_PATH}/${SAMPLESDIR}")
+elseif(NOT IS_ABSOLUTE ${SAMPLESDIR})
 	add_definitions(-DSAMPLESDIR="${CMAKE_INSTALL_PREFIX}/${SAMPLESDIR}")
 else()
 	add_definitions(-DSAMPLESDIR="${SAMPLESDIR}")
@@ -331,7 +339,9 @@ endif()
 
 #SCRIPTS
 set(SCRIPTSDIR "${CMAKE_INSTALL_DATAROOTDIR}/${MAIN_DIR_NAME}${TAG_VERSION}/scripts/")
-if(NOT IS_ABSOLUTE ${SCRIPTSDIR})
+if(DEFINED WANT_RELATIVE_PATH)
+	add_definitions(-DSCRIPTSDIR="${WANT_RELATIVE_PATH}/${SCRIPTSDIR}")
+elseif(NOT IS_ABSOLUTE ${SCRIPTSDIR})
 	add_definitions(-DSCRIPTSDIR="${CMAKE_INSTALL_PREFIX}/${SCRIPTSDIR}")
 else()
 	add_definitions(-DSCRIPTSDIR="${SCRIPTSDIR}")
@@ -343,7 +353,10 @@ if(WIN32)
 else()
 	set(TEMPLATEDIR "${CMAKE_INSTALL_DATAROOTDIR}/${MAIN_DIR_NAME}${TAG_VERSION}/templates/")
 endif()
-if(NOT IS_ABSOLUTE ${TEMPLATEDIR})
+
+if(DEFINED WANT_RELATIVE_PATH)
+	add_definitions(-DTEMPLATEDIR="${WANT_RELATIVE_PATH}/${TEMPLATEDIR}")
+elseif(NOT IS_ABSOLUTE ${TEMPLATEDIR})
 	add_definitions(-DTEMPLATEDIR="${CMAKE_INSTALL_PREFIX}/${TEMPLATEDIR}")
 else()
 	add_definitions(-DTEMPLATEDIR="${TEMPLATEDIR}")
@@ -359,7 +372,9 @@ add_definitions(-DQMLDIR="${CMAKE_INSTALL_PREFIX}/${QMLDIR}")
 
 #DESKTOP
 set(DESKTOPDIR "${CMAKE_INSTALL_DATAROOTDIR}/applications/")
-if(NOT IS_ABSOLUTE ${DESKTOPDIR})
+if(DEFINED WANT_RELATIVE_PATH)
+	add_definitions(-DDESKTOPDIR="${WANT_RELATIVE_PATH}/${DESKTOPDIR}")
+elseif(NOT IS_ABSOLUTE ${DESKTOPDIR})
 	add_definitions(-DDESKTOPDIR="${CMAKE_INSTALL_PREFIX}/${DESKTOPDIR}")
 else()
 	add_definitions(-DDESKTOPDIR="${DESKTOPDIR}")
@@ -368,7 +383,9 @@ endif()
 #APPDATA
 
 set(APPDATADIR "${CMAKE_INSTALL_DATAROOTDIR}/metainfo/")
-if(NOT IS_ABSOLUTE ${APPDATADIRR})
+if(DEFINED WANT_RELATIVE_PATH)
+	add_definitions(-DAPPDATADIR="${WANT_RELATIVE_PATH}/${APPDATADIRR}")
+elseif(NOT IS_ABSOLUTE ${APPDATADIRR})
 	add_definitions(-DAPPDATADIR="${CMAKE_INSTALL_PREFIX}/${APPDATADIR}")
 else()
 	add_definitions(-DAPPDATADIR="${APPDATADIR}")
@@ -407,7 +424,11 @@ if (APPLEBUNDLE)
 else()
 	set(LIBDIR "${LIB_DIR_NAME}/${MAIN_DIR_NAME}${TAG_VERSION}/")
 endif()
-add_definitions(-DLIBDIR="${CMAKE_INSTALL_PREFIX}/${LIBDIR}")
+if(DEFINED WANT_RELATIVE_PATH)
+    add_definitions(-DLIBDIR="${WANT_RELATIVE_PATH}/${LIBDIR}")
+else()
+    add_definitions(-DLIBDIR="${CMAKE_INSTALL_PREFIX}/${LIBDIR}")
+endif()
 
 #PLUGINS
 if(WIN32)
@@ -419,7 +440,11 @@ else()
 		set(PLUGINDIR "${LIB_DIR_NAME}/${MAIN_DIR_NAME}${TAG_VERSION}/plugins/")
 	endif()
 endif()
-add_definitions(-DPLUGINDIR="${CMAKE_INSTALL_PREFIX}/${PLUGINDIR}")
+if(DEFINED WANT_RELATIVE_PATH)
+    add_definitions(-DPLUGINDIR="${WANT_RELATIVE_PATH}/${PLUGINDIR}")
+else()
+    add_definitions(-DPLUGINDIR="${CMAKE_INSTALL_PREFIX}/${PLUGINDIR}")
+endif()
 
 
 #INCLUDE
