Can build AppImages more successfully.

- The meta/Recipes script doesn't run the post-install of debian
  packages, so some weren't installed correctly.
- This scheme lets vigil install into a container as usual.
- The files in the AppDir are calculated as the difference between
  the files in the initial debootstrapped container, and the
  container after the installation.
This commit is contained in:
Andrew Hamilton 2017-07-16 12:14:14 +01:00
parent 928462f8ff
commit d90d711703
9 changed files with 141 additions and 85 deletions

20
appimage/AppRun Executable file
View file

@ -0,0 +1,20 @@
#!/bin/sh
# This is a modified version of the AppRun made by AppImage's meta/Recipe.
set -e
HERE="$(dirname "$(readlink -f "${0}")")"
export UNION_PRELOAD="${HERE}"
export LD_PRELOAD="${HERE}/libunionpreload.so"
export LD_LIBRARY_PATH="${HERE}"/usr/lib/:"${HERE}"/usr/lib/i386-linux-gnu/:"${HERE}"/usr/lib/x86_64-linux-gnu/:"${HERE}"/usr/lib32/:"${HERE}"/usr/lib64/:"${HERE}"/lib/:"${HERE}"/lib/i386-linux-gnu/:"${HERE}"/lib/x86_64-linux-gnu/:"${HERE}"/lib32/:"${HERE}"/lib64/:"${LD_LIBRARY_PATH}"
export PYTHONPATH="/usr/local/lib/python3.5/dist-packages:${HERE}"/usr/share/pyshared/:"${PYTHONPATH}"
export XDG_DATA_DIRS="${HERE}"/usr/share/:"${XDG_DATA_DIRS}"
export PERLLIB="${HERE}"/usr/share/perl5/:"${HERE}"/usr/lib/perl5/:"${PERLLIB}"
export GSETTINGS_SCHEMA_DIR="${HERE}"/usr/share/glib-2.0/schemas/:"${GSETTINGS_SCHEMA_DIR}"
export QT_PLUGIN_PATH="${HERE}"/usr/lib/qt4/plugins/:"${HERE}"/usr/lib/i386-linux-gnu/qt4/plugins/:"${HERE}"/usr/lib/x86_64-linux-gnu/qt4/plugins/:"${HERE}"/usr/lib32/qt4/plugins/:"${HERE}"/usr/lib64/qt4/plugins/:"${HERE}"/usr/lib/qt5/plugins/:"${HERE}"/usr/lib/i386-linux-gnu/qt5/plugins/:"${HERE}"/usr/lib/x86_64-linux-gnu/qt5/plugins/:"${HERE}"/usr/lib32/qt5/plugins/:"${HERE}"/usr/lib64/qt5/plugins/:"${QT_PLUGIN_PATH}"
EXEC=$(grep -e '^Exec=.*' "${HERE}"/*.desktop | head -n 1 | cut -d "=" -f 2- | sed -e 's|%.||g')
exec ${EXEC} $@

BIN
appimage/libunionpreload.so Executable file

Binary file not shown.

View file

@ -1,29 +0,0 @@
#!/bin/bash
# Copyright (C) 2017 Andrew Hamilton. All rights reserved.
# Licensed under the Artistic License 2.0.
set -e
VIGIL_PATH=$(realpath $(dirname $0)/..)
export VIGIL_PATH
function get_patched_recipe {
wget -c "https://github.com/AppImage/AppImages/raw/94d39b68d8d7ab56f31fde6f59bc8d2813d13599/recipes/meta/Recipe"
cp Recipe Recipe-patched
sed -i -e 's|delete_blacklisted|# delete_blacklisted|g' Recipe-patched
chmod +x Recipe-patched
}
[ $# -eq 0 ] && WORK_PATH=$(mktemp -d --suffix=-appimage) || WORK_PATH="$1"
cd "$WORK_PATH"
$VIGIL_PATH/appimage/make-appimage-yml.py > vigil.yml
get_patched_recipe
./Recipe-patched --no-di vigil.yml
mv out/Vigil* .
echo
echo "AppImage path: $(realpath Vigil*)"

View file

@ -1,48 +0,0 @@
#!/usr/bin/env python3
# Copyright (C) 2017 Andrew Hamilton. All rights reserved.
# Licensed under the Artistic License 2.0.
import vigil.tools as tools
dist_deps = set()
for dependency in tools.dependencies("ubuntu"):
if "/" in dependency:
raise ValueError
else:
dist_deps.add(dependency)
dist_deps.update({"python3-pygments", "python3-pyinotify", "python3-docopt",
"util-linux", "python3-pil"})
dep_list = "\n - ".join(sorted(dist_deps))
print("""app: vigil-code-monitor
union: true
ingredients:
packages:
- %s
dist: zesty
sources:
- deb http://archive.ubuntu.com/ubuntu/ zesty main universe
script:
- export APPDIR=$(pwd)
- export PYTHONPATH=$APPDIR/usr/share/pyshared
- mkdir -p $PYTHONPATH
- (cd $VIGIL_PATH; /usr/bin/python3 setup.py install \
--prefix=$APPDIR/usr --install-lib=$PYTHONPATH)
- cp $VIGIL_PATH/appimage/vigil-icon.png .
- cp -a $VIGIL_PATH/tests .
- cp $VIGIL_PATH/test-all tests
- cat > vigil.desktop <<\EOF
- [Desktop Entry]
- Type=Application
- Name=Vigil Code Monitor
- Comment=Vigil maintains an up-to-date set of reports for every file in a codebase.
- Exec=vigil
- Terminal=true
- Icon=vigil-icon.png
- Categories=Application;
- EOF
""" % dep_list)

8
appimage/vigil.desktop Executable file
View file

@ -0,0 +1,8 @@
[Desktop Entry]
Type=Application
Name=Vigil
Comment=
Exec=vigil
Terminal=true
Icon=vigil
Categories=Application;

View file

Before

Width:  |  Height:  |  Size: 701 B

After

Width:  |  Height:  |  Size: 701 B

Before After
Before After