Skip to content

Commit

Permalink
Fix X86_64 App Image
Browse files Browse the repository at this point in the history
  • Loading branch information
lasconic committed Aug 2, 2016
1 parent 30c0d4b commit cf53d61
Show file tree
Hide file tree
Showing 3 changed files with 50 additions and 15 deletions.
7 changes: 4 additions & 3 deletions .travis.yml
Expand Up @@ -68,7 +68,7 @@ matrix:
services:
- docker
script:
- "[[ $APPIMAGE_BUILD_ARCHS == *x86_64* ]] && ./build/travis/job2_AppImage/build.sh --x86_64 --upload-branches $APPIMAGE_UPLOAD_BRANCHES || true"
- "if [[ $APPIMAGE_BUILD_ARCHS == *x86_64* ]]; then ./build/travis/job2_AppImage/build.sh --x86_64 --upload-branches $APPIMAGE_UPLOAD_BRANCHES; fi"

# 3rd parallel build job - portable Linux AppImage 32-bit x86 build on CentOS
- env: "JOB=AppImage_i686"
Expand All @@ -81,7 +81,7 @@ matrix:
services:
- docker
script:
- "[[ $APPIMAGE_BUILD_ARCHS == *i686* ]] && ./build/travis/job2_AppImage/build.sh --i686 --upload-branches $APPIMAGE_UPLOAD_BRANCHES || true"
- "if [[ $APPIMAGE_BUILD_ARCHS == *i686* ]]; then ./build/travis/job2_AppImage/build.sh --i686 --upload-branches $APPIMAGE_UPLOAD_BRANCHES; fi"

# 4th parallel build job - portable Linux AppImage armhf build on Debian crosscompiler
- env: "JOB=AppImage_armhf"
Expand All @@ -96,7 +96,8 @@ matrix:
before_script:
- "sudo ./build/travis/job2_AppImage/set-binfmt-misc.sh"
script:
- "[[ $APPIMAGE_BUILD_ARCHS == *armhf* ]] && ./build/travis/job2_AppImage/build.sh --armhf --upload-branches $APPIMAGE_UPLOAD_BRANCHES || true"
- "if [[ $APPIMAGE_BUILD_ARCHS == *armhf* ]]; then ./build/travis/job2_AppImage/build.sh --armhf --upload-branches $APPIMAGE_UPLOAD_BRANCHES; fi"

# 5th parallel build job - mac osx build
- env: "JOB=MacOSX"
os: osx
Expand Down
41 changes: 35 additions & 6 deletions build/Linux+BSD/portable/Recipe
Expand Up @@ -9,7 +9,7 @@
# * A chroot into a Live ISO, squashfs or Docker Image.
# * Or, a virtual machine on a dedicated build server (e.g. Travis CI)
# DO NOT RUN THE RECIPE ON A NORMAL COMPUTER OUTSIDE OF A TEMPORARY CHROOT!
#
#
# 2) Run the recipe inside a CentOS 6 or 7 chroot. You could do it like this:
# $ git clone https://github.com/probonopd/AppImageKit.git
# $ ./AppImageKit/build.sh
Expand Down Expand Up @@ -55,7 +55,7 @@ cd "$(dirname "$(readlink -f "${0}")")/../../../.."
yum -y install epel-release

# basic dependencies (needed by Docker image)
yum -y install git wget which automake
yum -y install git wget which automake unzip

if [ "${OS}" == "CentOS 6" ]; then
# Get newer compiler than available by default
Expand All @@ -76,13 +76,42 @@ cd ..
# MuseScore's dependencies:
#yum -y install epel-release
#wget http://people.centos.org/tru/devtools-2/devtools-2.repo -O /etc/yum.repos.d/devtools-2.repo
yum -y install cmake mesa-libGL-devel pulseaudio-libs-devel alsa-lib-devel jack-audio-connection-kit-devel portaudio-devel libsndfile-devel libvorbis-devel qt5-qtbase-devel qt5-qttools-libs-designercomponents qt5-qttools-devel qt5-qtdeclarative-devel qt5-qtscript-devel qt5-qtwebkit-devel qt5-qtxmlpatterns-devel qt5-qtquick1-devel qt5-qtsvg-devel qt5-qttools-devel qt5-qttools-static qt5-qtmultimedia-devel qt5-qtwebchannel-devel qt5-qtimageformats qt5-qtquickcontrols
yum -y install mesa-libGL-devel pulseaudio-libs-devel alsa-lib-devel \
jack-audio-connection-kit-devel \
portaudio-devel libsndfile-devel libvorbis-devel

#Qt // TODO this is Qt x86_64, fix me for i686 and arm...
#yum -y install qt5-qtbase-devel qt5-qttools-libs-designercomponents qt5-qttools-devel qt5-qtdeclarative-devel qt5-qtscript-devel qt5-qtwebkit-devel qt5-qtxmlpatterns-devel qt5-qtquick1-devel qt5-qtsvg-devel qt5-qttools-devel qt5-qttools-static qt5-qtmultimedia-devel qt5-qtwebchannel-devel qt5-qtimageformats qt5-qtquickcontrols
yum -y install freetype-devel fontconfig-devel libXcursor-devel libXrender-devel libXcomposite-devel libxslt-devel
mkdir qt5 && wget -q -O qt5.zip http://utils.musescore.org.s3.amazonaws.com/qt560.zip
unzip -qq qt5.zip -d qt5
export PATH="${PWD}/qt5/bin:$PATH"
export QT_PLUGIN_PATH="${PWD}/qt5/plugins"
export QML2_IMPORT_PATH="${PWD}/qt5/qml"
export LD_LIBRARY_PATH="${PWD}/qt5/lib:$LD_LIBRARY_PATH"

# Install LAME (get this dependency last because rpmforge and epel-release conflict)
wget http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el6.rf.$(arch).rpm
rpm -ivh rpmforge-release-0.5.3-1.el6.rf.$(arch).rpm || true # don't fail if already installed
#wget http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el6.rf.$(arch).rpm
#rpm -ivh rpmforge-release-0.5.3-1.el6.rf.$(arch).rpm || true # don't fail if already installed

if [ "$(arch)" = "i686" ]; then
nux_url="http://li.nux.ro/download/nux/dextop/el6/i386/nux-dextop-release-0-2.el6.nux.noarch.rpm"
else
nux_url="http://li.nux.ro/download/nux/dextop/el6/$(arch)/nux-dextop-release-0-2.el6.nux.noarch.rpm"
fi
rpm -Uvh ${nux_url}
yum -y install lame-devel

#install cmake
if [ "$(arch)" = "i686" ]; then
CMAKE_URL="http://www.cmake.org/files/v3.5/cmake-3.5.1-Linux-i386.tar.gz"
else
CMAKE_URL="http://www.cmake.org/files/v3.5/cmake-3.5.1-Linux-$(arch).tar.gz"
fi

mkdir cmake && wget --no-check-certificate --quiet -O - ${CMAKE_URL} | tar --strip-components=1 -xz -C cmake
export PATH=${PWD}/cmake/bin:${PATH}

##########################################################################
# BUILD MUSESCORE
##########################################################################
Expand All @@ -106,7 +135,7 @@ cd ../AppImageKit/AppImageAssistant.AppDir
./package "$appdir" "$appimage"

# allow access to AppImage from outside the chroot
chmod a+rwx "$appimage"
chmod a+rwx "$appimage"
parent_dir="$(dirname "$appimage")"
while [ "$(dirname "$parent_dir")" != "$parent_dir" ]; do
[ "$parent_dir" == "/" ] && break
Expand Down
17 changes: 11 additions & 6 deletions build/Linux+BSD/portable/copy-libs
Expand Up @@ -79,8 +79,9 @@ getCrossPlatformDependencies() {
copyLib libQt5Sql.so.5
copyLib libQt5Svg.so.5
#copyLib libQt5WebChannel.so.5 # Not present on Debian, and apparently not needed
copyLib libQt5WebKit.so.5
copyLib libQt5WebKitWidgets.so.5
copyLib libQt5WebEngine.so.5
copyLib libQt5WebEngineCore.so.5
copyLib libQt5WebEngineWidgets.so.5
copyLib libQt5Widgets.so.5
copyLib libQt5XmlPatterns.so.5
copyLib libQt5Xml.so.5
Expand All @@ -103,7 +104,7 @@ getCrossPlatformDependencies() {
# except some as listed in "mscore/CMakeLists.txt".
export -f copy copyQt # make functions available to xargs
find "$qt_prefix/qml" \! -type d \
| grep -vE "QtGraphicalEffects|QtMultimedia|QtSensors|QtTest|QtWebKit" \
| grep -vE "QtGraphicalEffects|QtMultimedia|QtSensors|QtTest|QtWebEngine" \
| sed "s|$qt_prefix/||" | xargs -n1 -I '%%%' \
bash -c "qt_prefix='$qt_prefix' qt_dest='$qt_dest' copyQt %%%"
}
Expand Down Expand Up @@ -159,9 +160,9 @@ building_on_Debian_Jessie() {
copyLib libxml2.so.2
copyLib libxslt.so.1

copyLib libicudata.so.52 # moved from cross-platform
copyLib libicui18n.so.52 # moved from cross-platform
copyLib libicuuc.so.52 # moved from cross-platform
copyLib libicudata.so.56 # moved from cross-platform
copyLib libicui18n.so.56 # moved from cross-platform
copyLib libicuuc.so.56 # moved from cross-platform

#2nd round of dependencies
copyLib libavahi-client.so.3
Expand Down Expand Up @@ -274,6 +275,10 @@ building_on_CentOS_6() {
#copyLib libpulse.so.0
#copyLib libpulsecommon-8.0.so
#copyLib libasound_module_pcm_pulse.so # found in /usr/lib64/alsa-lib/

# after upgrade to Qt 5.6, check-depends in CentOS 6 said following were provided by neither
copyLib libEGL.so.1
copyLib libcups.so.2
}

locateLib() {
Expand Down

0 comments on commit cf53d61

Please sign in to comment.