Tweak spacing and wording

This commit is contained in:
Jay Berkenbilt 2018-02-24 21:37:30 -05:00
parent 7f29a9d7cc
commit a6f206ad01
3 changed files with 175 additions and 97 deletions

View File

@ -1,21 +1,9 @@
# Using the QPDF AppImage bundle (for Linux x86_64 systems only) # Using the QPDF AppImage bundle (for Linux x86_64 systems only)
First advice: Tips:
- After downloading, you have to set the executable bit for any AppImage (for security reasons * After downloading, you have to set the executable bit for any AppImage (for security reasons this is disabled by default): `chmod +x <name-of-application>.AppImage`
this is disabled by default): `chmod +x <name-of-application>.AppImage`
- Run the QPDF AppImage with the '--usage' parameter to start learning some useful details about * Run the QPDF AppImage with the `--ai-usage` parameter to start learning some useful details about built-in features of this specific AppImage.
built-in features of this specific AppImage.
* You can rename the AppImage to any name allowed for file names on Linux. The `.AppImage` suffix is not required for it to function. It will also work as expected if you invoke it from a symlink. Using `qpdf` as its filename or symlink name is OK. However, you may want to continue using the QPDF package provided by your system's package manager side by side with the AppImage bundle: in this case it is recommended to use `qpdf.ai` as a short name for (or as the symlink name to) the qpdf-<version>.AppImage.
More tips:
- You can rename the AppImage to any name allowed for file names on Linux. The '.AppImage' suffix
is not required for it to function. It will also work as expected if you invoke it from a
symlink. Using 'qpdf' as its filename or symlink name is OK. However, you may want to continue
using the QPDF package provided by your system's package manager side by side with the AppImage
bundle: in this case it is recommended to use 'qpdf.ai' as a short name for (or as the symlink
name to) the qpdf-<version>.AppImage.
- [...more tips to come... work in progress...]

View File

@ -5,32 +5,38 @@
# #
# License: MIT # License: MIT
# #
# The purpose of this custom AppRun script is to enable symlinking the AppImage and invoking the corresponding # The purpose of this custom AppRun script is to enable symlinking the
# binary depending on which symlink name was used to invoke the AppImage. # AppImage and invoking the corresponding binary depending on which
# symlink name was used to invoke the AppImage.
# #
# At the same time it also allows to invoke the embedded binaries as 'sub-commands'. This is in the interest of # At the same time it also allows to invoke the embedded binaries as
# saving users from creating extra symlinks (without preventing others from STILL using such, should they want # 'sub-commands'. This is in the interest of saving users from
# or need these). # creating extra symlinks (without preventing others from STILL using
# such, should they want or need these).
# #
# It also provides some additional help parameters in order to allow faster familiarization with functionality # It also provides some additional help parameters in order to allow
# embedded in this AppImage. For example it support the listing and viewing of embedded manpages, HTML files, # faster familiarization with functionality embedded in this AppImage.
# PDF files, licenses and READMEs. # For example it support the listing and viewing of embedded manpages,
# HTML files, PDF files, licenses and READMEs.
# #
# Note, the AppImage can be renamed to anything what's 'legal' for an executable name under Linux or used via # Note, the AppImage can be renamed to anything what's 'legal' for an
# a symlink under any name and it should behave like 'qpdf' is expected to behave. If the symlink name is # executable name under Linux or used via a symlink under any name and
# 'fix-qdf' or 'zlib-flate' it should behave like these... # it should behave like 'qpdf' is expected to behave. If the symlink
# name is 'fix-qdf' or 'zlib-flate' it should behave like these...
HERE="$(dirname "$(readlink -f "${0}")")" HERE="$(dirname "$(readlink -f "${0}")")"
# Set APPDIR and ARGV0 when running directly from the AppDir. # Set APPDIR and ARGV0 when running directly from the AppDir.
# Running from the AppDir can be beneficial when debugging the AppImage (or give performance improvements): # Running from the AppDir can be beneficial when debugging the
# AppImage (or give performance improvements):
if [ -z $APPDIR ]; then if [ -z $APPDIR ]; then
APPDIR="$HERE" APPDIR="$HERE"
ARGV0="$0" ARGV0="$0"
fi fi
# This is a semi-secret environment variable which can be set for debugging the AppImage. # This is a semi-secret environment variable which can be set for
# For now it is only meant for temporary use and may be removed again in the near future once things have # debugging the AppImage. For now it is only meant for temporary use
# and may be removed again in the near future once things have
# settled: # settled:
if [ "x$SET_BASH_X_FOR_APPRUN" == "xYeSS" ] ; then if [ "x$SET_BASH_X_FOR_APPRUN" == "xYeSS" ] ; then
set -x set -x
@ -54,8 +60,9 @@ echo "
All QPDF command line functionality inside an AppImage package. All QPDF command line functionality inside an AppImage package.
-------------------------------------------------------------------------- --------------------------------------------------------------------------
(This package uses the AppImage software packaging technology for Linux ['One App == One File'] (This package uses the AppImage software packaging technology for
for easy availability of the newest QPDF releases across all major Linux distributions.) Linux ['One App == One File'] for easy availability of the newest
QPDF releases across all major Linux distributions.)
Usage: Usage:
------ ------
@ -64,7 +71,8 @@ echo "
# Show help screen of QPDF itself # Show help screen of QPDF itself
$ARGV0 --ai-usage $ARGV0 --ai-usage
# This message (it's only present in the AppImage incarnation of QPDF) # This message (it's only present in the AppImage
# incarnation of QPDF)
$ARGV0 fix-qdf|zlib-flate $ARGV0 fix-qdf|zlib-flate
# Run the named sub-command # Run the named sub-command
@ -89,7 +97,8 @@ echo "
# List all PDF documents embedded in AppImage # List all PDF documents embedded in AppImage
$ARGV0 --pdf <path/to/file> $ARGV0 --pdf <path/to/file>
# Use system default PDF viewer to display embedded PDF document(s) # Use system default PDF viewer to display embedded PDF
# document(s)
# (for list of available PDF files see \"$ARGV0 --list-pdf\") # (for list of available PDF files see \"$ARGV0 --list-pdf\")
$ARGV0 --list-readme $ARGV0 --list-readme
@ -103,10 +112,12 @@ echo "
# List all LICENSE files embedded in AppImage # List all LICENSE files embedded in AppImage
$ARGV0 --license <name-of-license> $ARGV0 --license <name-of-license>
# Show content of LICENSE file embedded in AppImage (piped thru 'less -N') # Show content of LICENSE file embedded in AppImage
# (piped thru 'less -N')
$ARGV0 --show-apprun|--self-show|--selfshow $ARGV0 --show-apprun|--self-show|--selfshow
# Show 'AppRun' invoked by 'less -N'; type '-N' to toogle line number display # Show 'AppRun' invoked by 'less -N'; type '-N' to toggle
# line number display
$ARGV0 --appimage-help $ARGV0 --appimage-help
# Show AppImage options available for all 'type 2' AppImages # Show AppImage options available for all 'type 2' AppImages
@ -114,15 +125,17 @@ echo "
$ARGV0 --help $ARGV0 --help
# Show help screen of QPDF itself # Show help screen of QPDF itself
------------------------------------------------------------------------------------------------ ------------------------------------------------------------------------------
NOTE: The execution of this AppImage is controlled by a custom AppRun script. The state of this NOTE: The execution of this AppImage is controlled by a custom AppRun
script is experimental and preliminary. Hence it may not work as expected, or miss some script. The state of this script is experimental and preliminary.
functionality. You can hack on this script by unpacking this AppImage into a local sub directory Hence it may not work as expected, or miss some functionality. You
[currently named 'squashfs-root'] with this command: can hack on this script by unpacking this AppImage into a local
subdirectory [currently named 'squashfs-root'] with this command:
$ARGV0 --appimage-extract $ARGV0 --appimage-extract
After you're done with your hacks, repackage the AppImage again with this command: After you're done with your hacks, repackage the AppImage again with
this command:
appimagetool [/path/to/]squashfs-root [/path/to/]QPDF-*.AppImage appimagetool [/path/to/]squashfs-root [/path/to/]QPDF-*.AppImage
@ -131,7 +144,7 @@ echo "
* https://github.com/AppImage/AppImageUpdate/releases/ and * https://github.com/AppImage/AppImageUpdate/releases/ and
* https://github.com/AppImage/zsync2/releases and * https://github.com/AppImage/zsync2/releases and
* https://github.com/probonopd/linuxdeployqt/releases/ * https://github.com/probonopd/linuxdeployqt/releases/
------------------------------------------------------------------------------------------------ ------------------------------------------------------------------------------
" "
} }
@ -168,14 +181,30 @@ esac
} }
if [ x"$1" == "xshow-apprun" -o x"$1" == "x--show-apprun" -o x"$1" == "x--apprunshow" -o x"$1" == "x--apprun-show" -o x"$1" == "xselfshow" -o x"$1" == "x--selfshow" -o x"$1" == "xself-show" -o x"$1" == "x--self-show" -o x"$1" == "x--show-self" -o x"$1" == "x--showself" -o x"$1" == "xshow-self" -o x"$1" == "xshowself" ] ; then if [ x"$1" == "xshow-apprun" -o \
x"$1" == "x--show-apprun" -o \
x"$1" == "x--apprunshow" -o \
x"$1" == "x--apprun-show" -o \
x"$1" == "xselfshow" -o \
x"$1" == "x--selfshow" -o \
x"$1" == "xself-show" -o \
x"$1" == "x--self-show" -o \
x"$1" == "x--show-self" -o \
x"$1" == "x--showself" -o \
x"$1" == "xshow-self" -o \
x"$1" == "xshowself" ] ; then
cd "$HERE" cd "$HERE"
less -N AppRun less -N AppRun
exit $? exit $?
fi fi
if [ x"$1" == "xlistlicense" -o x"$1" == "x--listlicense" -o x"$1" == "xlist-license" -o x"$1" == "x--list-license" -o x"$1" == "x--licenselist" -o x"$1" == "x--license-list" ] ; then if [ x"$1" == "xlistlicense" -o \
x"$1" == "x--listlicense" -o \
x"$1" == "xlist-license" -o \
x"$1" == "x--list-license" -o \
x"$1" == "x--licenselist" -o \
x"$1" == "x--license-list" ] ; then
cd "$HERE" cd "$HERE"
echo "" echo ""
echo "You may invoke \"$ARGV0\" with one of the following additional arguments." echo "You may invoke \"$ARGV0\" with one of the following additional arguments."
@ -187,14 +216,22 @@ if [ x"$1" == "xlistlicense" -o x"$1" == "x--listlicense" -o x"$1" == "xlist-li
fi fi
if [ "x$1" == "xai-usage" -o "x$1" == "x--aiusage" -o "x$1" == "x--ai-usage" -o "x$1" == "x-u" ] ; then if [ x"$1" == "xai-usage" -o \
x"$1" == "x--aiusage" -o \
x"$1" == "x--ai-usage" -o \
x"$1" == "x-u" ] ; then
usage | less usage | less
#usage #usage
exit $? exit $?
fi fi
if [ x"$1" == "xlistman" -o x"$1" == "x--listman" -o x"$1" == "xlist-man" -o x"$1" == "x--list-man" -o x"$1" == "x--manlist" -o x"$1" == "x--man-list" ] ; then if [ x"$1" == "xlistman" -o \
x"$1" == "x--listman" -o \
x"$1" == "xlist-man" -o \
x"$1" == "x--list-man" -o \
x"$1" == "x--manlist" -o \
x"$1" == "x--man-list" ] ; then
cd "$HERE" cd "$HERE"
echo "" echo ""
echo "You may invoke \"$ARGV0\" with one of the following additional arguments." echo "You may invoke \"$ARGV0\" with one of the following additional arguments."
@ -206,7 +243,12 @@ if [ x"$1" == "xlistman" -o x"$1" == "x--listman" -o x"$1" == "xlist-man" -o x"$
fi fi
if [ x"$1" == "xlistexe" -o x"$1" == "x--listexe" -o x"$1" == "xlist-exe" -o x"$1" == "x--list-exe" -o x"$1" == "x--exelist" -o x"$1" == "x--exe-list" ] ; then if [ x"$1" == "xlistexe" -o \
x"$1" == "x--listexe" -o \
x"$1" == "xlist-exe" -o \
x"$1" == "x--list-exe" -o \
x"$1" == "x--exelist" -o \
x"$1" == "x--exe-list" ] ; then
cd "$HERE" cd "$HERE"
echo "" echo ""
echo "You may invoke \"$ARGV0\" with one of the following additional arguments." echo "You may invoke \"$ARGV0\" with one of the following additional arguments."
@ -220,7 +262,12 @@ if [ x"$1" == "xlistexe" -o x"$1" == "x--listexe" -o x"$1" == "xlist-exe" -o x"$
fi fi
if [ x"$1" == "xlistreadme" -o x"$1" == "x--listreadme" -o x"$1" == "xlist-readme" -o x"$1" == "x--list-readme" -o x"$1" == "x--readmelist" -o x"$1" == "x--readme-list" ] ; then if [ x"$1" == "xlistreadme" -o \
x"$1" == "x--listreadme" -o \
x"$1" == "xlist-readme" -o \
x"$1" == "x--list-readme" -o \
x"$1" == "x--readmelist" -o \
x"$1" == "x--readme-list" ] ; then
cd "$HERE" cd "$HERE"
echo "" echo ""
echo "You may invoke \"$ARGV0\" with one of the following additional arguments." echo "You may invoke \"$ARGV0\" with one of the following additional arguments."
@ -232,7 +279,12 @@ if [ x"$1" == "xlistreadme" -o x"$1" == "x--listreadme" -o x"$1" == "xlist-readm
fi fi
if [ x"$1" == "xlisthtml" -o x"$1" == "x--listhtml" -o x"$1" == "xlist-html" -o x"$1" == "x--list-html" -o x"$1" == "x--htmllist" -o x"$1" == "x--html-list" ] ; then if [ x"$1" == "xlisthtml" -o \
x"$1" == "x--listhtml" -o \
x"$1" == "xlist-html" -o \
x"$1" == "x--list-html" -o \
x"$1" == "x--htmllist" -o \
x"$1" == "x--html-list" ] ; then
cd "$HERE" cd "$HERE"
echo "" echo ""
echo "You may invoke \"$ARGV0\" with one of the following additional arguments." echo "You may invoke \"$ARGV0\" with one of the following additional arguments."
@ -244,7 +296,12 @@ if [ x"$1" == "xlisthtml" -o x"$1" == "x--listhtml" -o x"$1" == "xlist-html" -o
fi fi
if [ x"$1" == "xlistpdf" -o x"$1" == "x--listpdf" -o x"$1" == "xlist-pdf" -o x"$1" == "x--list-pdf" -o x"$1" == "x--pdflist" -o x"$1" == "x--pdf-list" ] ; then if [ x"$1" == "xlistpdf" -o \
x"$1" == "x--listpdf" -o \
x"$1" == "xlist-pdf" -o \
x"$1" == "x--list-pdf" -o \
x"$1" == "x--pdflist" -o \
x"$1" == "x--pdf-list" ] ; then
cd "$HERE" cd "$HERE"
echo "" echo ""
echo "You may invoke \"$ARGV0\" with one of the following additional arguments." echo "You may invoke \"$ARGV0\" with one of the following additional arguments."
@ -256,7 +313,8 @@ if [ x"$1" == "xlistpdf" -o x"$1" == "x--listpdf" -o x"$1" == "xlist-pdf" -o x"$
fi fi
if [ x"$1" == "xreadme" -o x"$1" == "x--readme" ] ; then if [ x"$1" == "xreadme" -o \
x"$1" == "x--readme" ] ; then
cd "$HERE" cd "$HERE"
shift shift
echo "" echo ""
@ -287,7 +345,8 @@ if [ x"$1" == "xreadme" -o x"$1" == "x--readme" ] ; then
fi fi
if [ x"$1" == "xlicense" -o x"$1" == "x--license" ] ; then if [ x"$1" == "xlicense" -o \
x"$1" == "x--license" ] ; then
cd "$HERE" cd "$HERE"
shift shift
echo "" echo ""
@ -489,4 +548,3 @@ else
fi fi
fi fi

View File

@ -2,39 +2,45 @@
# Copyright (c) 2018 Jay Berkenbilt and Kurt Pfeifle # Copyright (c) 2018 Jay Berkenbilt and Kurt Pfeifle
# #
# This script is mainly meant to build an 'AppImage' from GitHub sources of QPDF via Travis CI on an # This script is mainly meant to build an 'AppImage' from GitHub
# Ubuntu Trusty (14.04) LTS system (see https://appimage.org/). # sources of QPDF via Travis CI on an Ubuntu Trusty (14.04) LTS system
# (see https://appimage.org/).
# #
# But it also allows Linux users to build such an AppImage on their own systems. Please read # But it also allows Linux users to build such an AppImage on their
# 'README.md' from the top level Git sources to see what preconditions you must meet to build QPDF # own systems. Please read 'README.md' from the top level Git sources
# in general. The same apply to build an AppImage. Then follow these three steps: # to see what preconditions you must meet to build QPDF in general.
# The same apply to build an AppImage. Then follow these three steps:
# #
# 1. Clone Git sources: `git clone https://github.com/qpdf/qpdf.git git.qpdf` # 1. Clone Git sources: `git clone https://github.com/qpdf/qpdf.git git.qpdf`
# 2. Change into git dir: `cd git.qpdf` # 2. Change into git dir: `cd git.qpdf`
# 3. Run this script: `bash appimage/build-appimage` # 3. Run this script: `bash appimage/build-appimage`
# #
# The resulting AppImage will be placed in './appimage/build/QPDF-x86_64.AppImage'. # The resulting AppImage will be placed in
# Read the output of the script for hints in case something goes wrong. # './appimage/build/QPDF-x86_64.AppImage'. Read the output of the
# script for hints in case something goes wrong.
# #
# You may pass custom options for the configure step by setting them into the 'CUSTOM_CONFIGURE' # You may pass custom options for the configure step by setting them
# environment variable and exporting it before running this script. For example: # into the 'CUSTOM_CONFIGURE' environment variable and exporting it
# before running this script. For example:
# #
# export CUSTOM_CONFIGURE=" --enable-test-compare-images [--more-other-options]" # export CUSTOM_CONFIGURE=" --enable-test-compare-images [--more-other-options]"
# #
# ATTENTION: # ATTENTION:
# #
# 1. To build the AppImage you should have a working internet connection. # 1. To build the AppImage you should have a working internet
# Reason: the script downloads the most recent 'linuxdeployqt' utility for building the AppImage. # connection. Reason: the script downloads the most recent
# 2. If you build the AppImage on a too recent Linux distribution, it may only work on the exact # 'linuxdeployqt' utility for building the AppImage.
# distribution you build it on. For an AppImage to work on a wide range of different # 2. If you build the AppImage on a too recent Linux distribution,
# distributions from the last 3-4 years if should be built on Ubuntu Trusty (14.04). # it may only work on the exact distribution you build it on. For
# an AppImage to work on a wide range of different distributions
# from the last 3-4 years if should be built on Ubuntu Trusty
# (14.04).
set -ex set -ex
# Support for signing the AppImage (only by original maintainer): # Support for signing the AppImage (only by original maintainer):
sign= sign=
if [ "x$1" == "x--sign" ] ; then if [ "x$1" == "x--sign" ]; then
sign=--sign sign=--sign
fi fi
@ -46,14 +52,18 @@ _osversion=$(cat /etc/os-release | grep PRETTY_NAME | awk -F'=' '{print $2}' | s
if [ x"$_osversion" != x"Ubuntu 14.04.5 LTS" ] ; then if [ x"$_osversion" != x"Ubuntu 14.04.5 LTS" ] ; then
set +x set +x
echo "" echo ""
echo "+==============================================================================================================+" # 0 1 2 3 4 5 6 7
echo "|| WARNING: You are about to build a QPDF AppImage on a system which is NOT Ubuntu 14.04.5 LTS ('Trusty'). ||" # 01234567890123456789012345678901234567890123456789012345678901234567890123456789
echo "|| ||" echo "+===========================================================================+"
echo "|| Very likely you use a newer Linux distribution. ||" echo "|| WARNING: You are about to build a QPDF AppImage on a system which is ||"
echo "|| The resulting AppImage will not be 'universally' usable. ||" echo "|| NOT Ubuntu 14.04 LTS ('Trusty'). ||"
echo "|| Hence, it likely will not be capable of running on a large range of Linux distributions. ||" echo "|| ||"
echo "|| It will only reliably run on the very same systems it has been created on, and maybe some similar ones. ||" echo "|| It is recommended that you use a distribution that is at least a ||"
echo "+==============================================================================================================+" echo "|| few years old to maximize the number of Linux distributions the ||"
echo "|| resulting AppImage will work on. AppImages often don't work on ||"
echo "|| distributions older than the one they were built on because of ||"
echo "|| standard library differences. ||"
echo "+===========================================================================+"
echo "" echo ""
set -x set -x
fi fi
@ -74,7 +84,9 @@ rm -rf $here/build
# Prepare build of QPDF from sources: # Prepare build of QPDF from sources:
./autogen.sh ./autogen.sh
./configure --prefix=/usr --enable-werror --enable-show-failed-test-output --enable-html-doc --enable-pdf-doc "$CUSTOM_CONFIGURE" ./configure --prefix=/usr --enable-werror \
--enable-show-failed-test-output \
--enable-html-doc --enable-pdf-doc "$CUSTOM_CONFIGURE"
# Build! # Build!
make -j$(nproc) make -j$(nproc)
@ -86,7 +98,7 @@ make check
mkdir -p $appdir mkdir -p $appdir
# Install build result into AppDir: # Install build result into AppDir:
make install DESTDIR=$appdir ; find $appdir make install DESTDIR=$appdir; find $appdir
# Change into build directory: # Change into build directory:
cd $here/build cd $here/build
@ -95,18 +107,35 @@ cd $here/build
rm -rf appdir/usr/include appdir/usr/lib/pkgconfig appdir/usr/lib/*.{a,la,so} rm -rf appdir/usr/include appdir/usr/lib/pkgconfig appdir/usr/lib/*.{a,la,so}
# Copy icon which is needed for desktop integration into place: # Copy icon which is needed for desktop integration into place:
for i in appdir/usr/share/icons/hicolor/512x512/apps ; do for i in appdir/usr/share/icons/hicolor/512x512/apps; do
mkdir -p $i mkdir -p $i
cp $top/logo/qpdf.png $i cp $top/logo/qpdf.png $i
done done
# Copy .desktop and .appdata.xml metadata for desktop integration into place: # Copy .desktop and .appdata.xml metadata for desktop integration into place:
for i in appdir/usr/share/applications ; do mkdir -p $i ; cp $top/appimage/qpdf.desktop $i ; done for i in appdir/usr/share/applications; do
for i in appdir/usr/share/metainfo ; do mkdir -p $i ; cp $top/appimage/qpdf.appdata.xml $i ; done mkdir -p $i
for i in appdir/usr/share/doc/qpdf ; do mkdir -p $i ; cp $top/README* $i ; cp $top/NOTICE.md $i/README-notice.md ; cp $top/LICENSE.txt $i ; cp $top/Artistic-2.0 $i/Artistic-LICENSE.txt ; cp $top/ChangeLog $i/README-ChangeLog ; cp $top/TODO $i/README-todo ; done cp $top/appimage/qpdf.desktop $i
done
for i in appdir/usr/share/metainfo; do
mkdir -p $i
cp $top/appimage/qpdf.appdata.xml $i
done
for i in appdir/usr/share/doc/qpdf; do
mkdir -p $i
cp $top/README* $i
cp $top/NOTICE.md $i/README-notice.md
cp $top/LICENSE.txt $i
cp $top/Artistic-2.0 $i/Artistic-LICENSE.txt
cp $top/ChangeLog $i/README-ChangeLog
cp $top/TODO $i/README-todo
done
# The following lines are experimental (for debugging; and to test support for unexpected future binaries added to QPDF): # The following lines are experimental (for debugging; and to test
for i in /usr/bin/env /bin/less /bin/busybox ; do cp $i appdir/usr/bin/ ; done # support for unexpected future binaries added to QPDF):
for i in /usr/bin/env /bin/less /bin/busybox; do
cp $i appdir/usr/bin/
done
ls -l /usr/bin/env /bin/less /bin/busybox ls -l /usr/bin/env /bin/less /bin/busybox
# Fetch 'linuxdeployqt' which will transform the AppDir into an AppImage: # Fetch 'linuxdeployqt' which will transform the AppDir into an AppImage:
@ -114,7 +143,7 @@ wget -c "https://github.com/probonopd/linuxdeployqt/releases/download/continuous
chmod a+x linuxdeployqt*.AppImage chmod a+x linuxdeployqt*.AppImage
# Set up a clean environment: # Set up a clean environment:
unset QTDIR ; unset QT_PLUGIN_PATH ; unset LD_LIBRARY_PATH unset QTDIR; unset QT_PLUGIN_PATH; unset LD_LIBRARY_PATH
# Let 'linuxdeployqt' do its first stage of work: # Let 'linuxdeployqt' do its first stage of work:
./linuxdeployqt*.AppImage appdir/usr/share/applications/*.desktop -bundle-non-qt-libs ./linuxdeployqt*.AppImage appdir/usr/share/applications/*.desktop -bundle-non-qt-libs
@ -122,11 +151,13 @@ unset QTDIR ; unset QT_PLUGIN_PATH ; unset LD_LIBRARY_PATH
# In addition to the main executable, we have additional ones to process # In addition to the main executable, we have additional ones to process
./linuxdeployqt*.AppImage appdir/usr/bin/zlib-flate -bundle-non-qt-libs ./linuxdeployqt*.AppImage appdir/usr/bin/zlib-flate -bundle-non-qt-libs
# To eventually generate the AppImage we extract the linuxdeployqt AppImage to get access to the embedded 'appimagetool': # To eventually generate the AppImage we extract the linuxdeployqt
# AppImage to get access to the embedded 'appimagetool':
./linuxdeployqt*.AppImage --appimage-extract ./linuxdeployqt*.AppImage --appimage-extract
# We want to run our custom AppRun script: # We want to run our custom AppRun script.
rm appdir/AppRun ; cp $top/appimage/AppRun appdir ; chmod a+x appdir/AppRun # Replace symlink with custom script # Replace symlink with custom script
rm appdir/AppRun; cp $top/appimage/AppRun appdir; chmod a+x appdir/AppRun
# If we are not on Ubuntu Trusty, we need to disable 'appstreamcli' validation: # If we are not on Ubuntu Trusty, we need to disable 'appstreamcli' validation:
if [ x"$_osversion" == x"Ubuntu 14.04.5 LTS" ] ; then if [ x"$_osversion" == x"Ubuntu 14.04.5 LTS" ] ; then
@ -136,8 +167,10 @@ else
set +x set +x
echo "" echo ""
echo " Running 'appimagetool' with '-n' parameter..." echo " Running 'appimagetool' with '-n' parameter..."
echo " Reason: this does not seem to be a Travis CI build running on Ubuntu Trusty 14.04." echo " Reason: this does not seem to be a Travis CI build running on"
echo " '-n' disables checking of AppStream data by the 'appstreamcli' utility since post-Trusty versions have incompatible changes." echo " Ubuntu Trusty 14.04."
echo " '-n' disables checking of AppStream data by the 'appstreamcli'"
echo " utility since post-Trusty versions have incompatible changes."
echo "" echo ""
set -x set -x
fi fi
@ -147,16 +180,15 @@ MAJOR_QPDF_VERSION=$( ./appdir/usr/bin/qpdf --version | grep "qpdf version" | aw
VERSION=${MAJOR_QPDF_VERSION}-continuous-${TRAVIS_JOB_NUMBER}-$(date "+%Y-%m-%d")-git.$(git rev-parse --short HEAD)-x86_64 VERSION=${MAJOR_QPDF_VERSION}-continuous-${TRAVIS_JOB_NUMBER}-$(date "+%Y-%m-%d")-git.$(git rev-parse --short HEAD)-x86_64
# Remove the default AppRun/symlink and use our own custom AppRun script # Remove the default AppRun/symlink and use our own custom AppRun script
rm appdir/AppRun ; cp $top/appimage/AppRun appdir; chmod a+x appdir/AppRun rm appdir/AppRun; cp $top/appimage/AppRun appdir; chmod a+x appdir/AppRun
set +x set +x
# Finally, generate the AppImage: # Finally, generate the AppImage:
PATH=./squashfs-root/usr/bin:$PATH ./squashfs-root/usr/bin/appimagetool $sign -g $appimagetool_param appdir qpdf-$VERSION.AppImage PATH=./squashfs-root/usr/bin:$PATH ./squashfs-root/usr/bin/appimagetool $sign -g $appimagetool_param appdir qpdf-$VERSION-x86_64.AppImage
# Tell everyone where our result is stored: # Tell everyone where our result is stored:
echo "" echo ""
echo "====================================================================================" echo "============================================================================="
echo " === AppImage is ready in $top/appimage/build ===" echo " === AppImage is ready in $top/appimage/build ==="
echo "====================================================================================" echo "============================================================================="
echo "" echo ""