From: Uwe Hermann Date: Fri, 27 May 2016 12:50:29 +0000 (+0200) Subject: Rename bundle.sh to sigrok-native-appimage for consistency. X-Git-Url: https://sigrok.org/gitweb/?p=sigrok-util.git;a=commitdiff_plain;h=b24da7c1287ae6e12da36772a25da776156fb37c Rename bundle.sh to sigrok-native-appimage for consistency. --- diff --git a/cross-compile/appimage/README b/cross-compile/appimage/README index fd2a8ba..e0c279c 100644 --- a/cross-compile/appimage/README +++ b/cross-compile/appimage/README @@ -25,7 +25,7 @@ Work in progress. Requirements ------------ -Currently the bundle.sh script uses pre-existing build products from Jenkins +Currently the script uses pre-existing build products from Jenkins that are built on Debian unstable. This makes the build product run on none but the latest distributions. A much better choice would be to build e.g., on Debian oldstable, CentOS 6, or Ubuntu Trusty or earlier. @@ -33,7 +33,7 @@ Examples for building bleeding-edge Qt4 and Qt5 applications on such mature build systems can be found at https://github.com/probonopd/AppImages/blob/master/recipes -The bundle.sh script has been tested on Ubuntu 16.04 but is assumed +The script has been tested on Ubuntu 16.04 but is assumed to also run on Debian unstable with no or minor changes. However, it is strongly suggested to build and package the AppImage on a significantly older distribution as mentioned above for any productive use. @@ -42,7 +42,7 @@ older distribution as mentioned above for any productive use. Building -------- - $ ./bundle.sh + $ ./sigrok-native-appimage Per default it will put the AppImage in: diff --git a/cross-compile/appimage/bundle.sh b/cross-compile/appimage/bundle.sh deleted file mode 100644 index bf72651..0000000 --- a/cross-compile/appimage/bundle.sh +++ /dev/null @@ -1,124 +0,0 @@ -#!/bin/bash - -# (c) 2016 Simon Peter -# This file is licensed under the terms of the MIT license. -# -# Bundle PulseView and its dependencies as an AppImage for x86_64 Linux -# TODO: Change it to use build products and libraries from a more mature -# distribution such as Debian oldstable, CentOS 6 or Ubuntu Trusty or older. - -APP=PulseView -LOWERAPP=${APP,,} - -ARCH=x86_64 - -mkdir -p ./$APP/$APP.AppDir/usr/bin ./$APP/$APP.AppDir/usr/lib -cd ./$APP - -wget -q https://github.com/probonopd/AppImages/raw/master/functions.sh -O ./functions.sh -. ./functions.sh - -######################################################################## -# Get runtime dependencies -######################################################################## - -sudo apt-get update - -# The following are installed into the host system so that we can bundle them into the AppImage as dependencies -sudo apt-get -y --force-yes install libqt5svg5 libqt5gui5 libboost-thread1.58.0 libboost-test1.58.0 libboost-chrono1.58.0 libboost-atomic1.58.0 libftdi1-2 libzip4 - -######################################################################## -# Get build products from Jenkins -# FIXME: Do the actual building here instead -######################################################################## - -wget http://sigrok.org/jenkins/job/pulseview/buildtype=shared,compiler=gcc,platform=native-amd64/ws/_inst/bin/*zip*/bin.zip -unzip bin.zip - -FW=$(wget -q "http://sigrok.org/download/binary/sigrok-firmware-fx2lafw/?C=M;O=D" -O - | grep .tar.gz | head -n 1 | cut -d '"' -f 13 | cut -d ">" -f 2 | cut -d "<" -f 1) -wget -c "http://sigrok.org/download/binary/sigrok-firmware-fx2lafw/$FW" -tar xf sigrok-firmware-fx2lafw-bin-*.tar.gz -rm sigrok-firmware-fx2lafw-bin-*.tar.gz - -cd $APP.AppDir/ - -mv ../bin/pulseview usr/bin/ -chmod a+x usr/bin/* - -cd usr/lib/ -wget http://sigrok.org/jenkins/job/libsigrok/buildtype=shared,compiler=gcc,platform=native-amd64/ws/_inst/lib/libsigrok.so.3 -wget http://sigrok.org/jenkins/job/libsigrok/buildtype=shared,compiler=gcc,platform=native-amd64/ws/_inst/lib/libsigrokcxx.so.3 -wget http://sigrok.org/jenkins/job/libserialport/buildtype=shared,compiler=gcc,platform=native-amd64/lastSuccessfulBuild/artifact/_inst/lib/libserialport.so.0 -cd ../../ - -wget "http://sigrok.org/jenkins/job/libsigrokdecode/buildtype=shared,compiler=gcc,platform=native-amd64/lastSuccessfulBuild/artifact/*zip*/archive.zip" -unzip archive.zip -mv archive/_inst/share/libsigrokdecode usr/share/libsigrokdecode -mv archive/_inst/lib/libsigrokdecode.so.3 usr/lib/ -rm -rf archive* - -# Reduce binary size -strip usr/bin/* -strip usr/lib/* - -######################################################################## -# AppRun is the main launcher that gets executed when AppImage is run -######################################################################## - -get_apprun - -######################################################################## -# Copy desktop and icon file to AppDir for AppRun to pick them up -######################################################################## - -wget http://sigrok.org/jenkins/job/pulseview/buildtype=shared,compiler=gcc,platform=native-amd64/ws/contrib/pulseview.desktop -wget -q "http://sigrok.org/gitweb/?p=pulseview.git;a=blob_plain;f=icons/sigrok-logo-notext.png" -O sigrok-logo-notext.png - -######################################################################## -# Patch away absolute paths; it would be nice if they were relative -######################################################################## - -sed -i -e 's|/home/jenkins_slave/fsroot/workspace/libsigrokdecode/buildtype/shared/compiler/gcc/platform/native-amd64/_inst/share/|.//////////////////////////////////////////////////////////////////////////////////////////////////////////////share/|g' usr/lib/libsigrokdecode.so.3 - -######################################################################## -# Copy in the dependencies that cannot be assumed to be available -# on all target systems -######################################################################## - -mkdir -p usr/share/ -mv ../sigrok-firmware-* usr/share/sigrok-firmware - -copy_deps - -######################################################################## -# Delete stuff that should not go into the AppImage -######################################################################## - -delete_blacklisted -move_lib -mv ./usr/lib/x86_64-linux-gnu/* usr/lib/ -rm -r ./usr/lib/x86_64-linux-gnu/ - -######################################################################## -# Determine the version of the app; also include needed glibc version -######################################################################## - -VER1=$(./AppRun --version | cut -d " " -f 2) -GLIBC_NEEDED=$(glibc_needed) -VERSION=$VER1.glibc$GLIBC_NEEDED -echo $VERSION - -######################################################################## -# Patch away absolute paths; it would be nice if they were relative -######################################################################## - -patch_usr - -######################################################################## -# AppDir complete -# Now packaging it as an AppImage -######################################################################## - -cd .. - -generate_appimage diff --git a/cross-compile/appimage/sigrok-native-appimage b/cross-compile/appimage/sigrok-native-appimage new file mode 100755 index 0000000..bf72651 --- /dev/null +++ b/cross-compile/appimage/sigrok-native-appimage @@ -0,0 +1,124 @@ +#!/bin/bash + +# (c) 2016 Simon Peter +# This file is licensed under the terms of the MIT license. +# +# Bundle PulseView and its dependencies as an AppImage for x86_64 Linux +# TODO: Change it to use build products and libraries from a more mature +# distribution such as Debian oldstable, CentOS 6 or Ubuntu Trusty or older. + +APP=PulseView +LOWERAPP=${APP,,} + +ARCH=x86_64 + +mkdir -p ./$APP/$APP.AppDir/usr/bin ./$APP/$APP.AppDir/usr/lib +cd ./$APP + +wget -q https://github.com/probonopd/AppImages/raw/master/functions.sh -O ./functions.sh +. ./functions.sh + +######################################################################## +# Get runtime dependencies +######################################################################## + +sudo apt-get update + +# The following are installed into the host system so that we can bundle them into the AppImage as dependencies +sudo apt-get -y --force-yes install libqt5svg5 libqt5gui5 libboost-thread1.58.0 libboost-test1.58.0 libboost-chrono1.58.0 libboost-atomic1.58.0 libftdi1-2 libzip4 + +######################################################################## +# Get build products from Jenkins +# FIXME: Do the actual building here instead +######################################################################## + +wget http://sigrok.org/jenkins/job/pulseview/buildtype=shared,compiler=gcc,platform=native-amd64/ws/_inst/bin/*zip*/bin.zip +unzip bin.zip + +FW=$(wget -q "http://sigrok.org/download/binary/sigrok-firmware-fx2lafw/?C=M;O=D" -O - | grep .tar.gz | head -n 1 | cut -d '"' -f 13 | cut -d ">" -f 2 | cut -d "<" -f 1) +wget -c "http://sigrok.org/download/binary/sigrok-firmware-fx2lafw/$FW" +tar xf sigrok-firmware-fx2lafw-bin-*.tar.gz +rm sigrok-firmware-fx2lafw-bin-*.tar.gz + +cd $APP.AppDir/ + +mv ../bin/pulseview usr/bin/ +chmod a+x usr/bin/* + +cd usr/lib/ +wget http://sigrok.org/jenkins/job/libsigrok/buildtype=shared,compiler=gcc,platform=native-amd64/ws/_inst/lib/libsigrok.so.3 +wget http://sigrok.org/jenkins/job/libsigrok/buildtype=shared,compiler=gcc,platform=native-amd64/ws/_inst/lib/libsigrokcxx.so.3 +wget http://sigrok.org/jenkins/job/libserialport/buildtype=shared,compiler=gcc,platform=native-amd64/lastSuccessfulBuild/artifact/_inst/lib/libserialport.so.0 +cd ../../ + +wget "http://sigrok.org/jenkins/job/libsigrokdecode/buildtype=shared,compiler=gcc,platform=native-amd64/lastSuccessfulBuild/artifact/*zip*/archive.zip" +unzip archive.zip +mv archive/_inst/share/libsigrokdecode usr/share/libsigrokdecode +mv archive/_inst/lib/libsigrokdecode.so.3 usr/lib/ +rm -rf archive* + +# Reduce binary size +strip usr/bin/* +strip usr/lib/* + +######################################################################## +# AppRun is the main launcher that gets executed when AppImage is run +######################################################################## + +get_apprun + +######################################################################## +# Copy desktop and icon file to AppDir for AppRun to pick them up +######################################################################## + +wget http://sigrok.org/jenkins/job/pulseview/buildtype=shared,compiler=gcc,platform=native-amd64/ws/contrib/pulseview.desktop +wget -q "http://sigrok.org/gitweb/?p=pulseview.git;a=blob_plain;f=icons/sigrok-logo-notext.png" -O sigrok-logo-notext.png + +######################################################################## +# Patch away absolute paths; it would be nice if they were relative +######################################################################## + +sed -i -e 's|/home/jenkins_slave/fsroot/workspace/libsigrokdecode/buildtype/shared/compiler/gcc/platform/native-amd64/_inst/share/|.//////////////////////////////////////////////////////////////////////////////////////////////////////////////share/|g' usr/lib/libsigrokdecode.so.3 + +######################################################################## +# Copy in the dependencies that cannot be assumed to be available +# on all target systems +######################################################################## + +mkdir -p usr/share/ +mv ../sigrok-firmware-* usr/share/sigrok-firmware + +copy_deps + +######################################################################## +# Delete stuff that should not go into the AppImage +######################################################################## + +delete_blacklisted +move_lib +mv ./usr/lib/x86_64-linux-gnu/* usr/lib/ +rm -r ./usr/lib/x86_64-linux-gnu/ + +######################################################################## +# Determine the version of the app; also include needed glibc version +######################################################################## + +VER1=$(./AppRun --version | cut -d " " -f 2) +GLIBC_NEEDED=$(glibc_needed) +VERSION=$VER1.glibc$GLIBC_NEEDED +echo $VERSION + +######################################################################## +# Patch away absolute paths; it would be nice if they were relative +######################################################################## + +patch_usr + +######################################################################## +# AppDir complete +# Now packaging it as an AppImage +######################################################################## + +cd .. + +generate_appimage