appimage: Used test_distributions to fix the AppImage.

This commit is contained in:
Andrew Hamilton 2017-07-23 18:21:18 +01:00
parent 2815fb83d8
commit 93d1fdb87a
9 changed files with 52 additions and 45 deletions

View file

@ -35,7 +35,7 @@ Extensions | Tools
.cc .cpp .hpp | [cpp_syntax_gcc](https://gcc.gnu.org/) • bcpp • [uncrustify](https://github.com/uncrustify/uncrustify)
.pdf | [pdf2txt](http://www.unixuser.org/~euske/python/pdfminer/)
.html | [html_syntax](http://www.html-tidy.org/) • [tidy](http://www.html-tidy.org/) • [html2text](http://www.mbayer.de/html2text/)
.php | [php5_syntax](https://en.wikipedia.org/wiki/PHP)
.php | [php7_syntax](https://en.wikipedia.org/wiki/PHP)
.zip | [unzip](http://www.info-zip.org/UnZip.html)
.tar.gz .tgz | [tar_gz](http://www.gnu.org/software/tar/manual/tar.html)
.tar.bz2 | [tar_bz2](http://www.gnu.org/software/tar/manual/tar.html)

View file

@ -8,13 +8,11 @@ set -e
HERE="$(dirname "$(readlink -f "${0}")")"
export APPDIR="${HERE}"
export PATH="${HERE}"/usr/bin/:"${HERE}"/usr/local/bin/:"${PATH}"
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}"
export PYTHONPATH=/usr/local/lib/python3.5/dist-packages:"${PYTHONPATH}"
EXEC=$(grep -e '^Exec=.*' "${HERE}"/*.desktop | head -n 1 | cut -d "=" -f 2- | sed -e 's|%.||g')
exec ${EXEC} $@

View file

@ -91,6 +91,10 @@ def main(work_path):
os.chdir(work_path)
base_paths = make_ubuntu_base()
test_distributions.run_in_container("ubuntu", "./install-dependencies")
test_distributions.run_in_container(
"ubuntu", "sed -i -e 's/\/usr\/bin\/python/\/usr\/bin\/env python/g' "
"/usr/bin/pdf2txt") # libunionpreload doesn't trick shebangs?
test_distributions.run_in_container("ubuntu", "apt-get install --yes python3-pip")
test_distributions.run_in_container("ubuntu", "pip3 install -I .")
post_install_paths = relative_paths("ubuntu", all_paths("ubuntu"))
new_paths = set(post_install_paths) - set(base_paths)

View file

@ -40,12 +40,13 @@ def run_in_container(container, command):
def build_ubuntu():
cmd("sudo debootstrap --components=main,restricted,universe,multiverse "
"zesty ubuntu.part")
cmd("sudo debootstrap zesty ubuntu.part")
run_in_container("ubuntu.part",
"ln -sf /lib/systemd/resolv.conf /etc/resolv.conf")
run_in_container("ubuntu.part",
"sed -i -e 's/main/main restricted universe"
" multiverse/g' /etc/apt/sources.list")
run_in_container("ubuntu.part", "apt-get update")
run_in_container("ubuntu.part", "apt-get install --yes python3-pip")
os.rename("ubuntu.part", "ubuntu")
@ -140,6 +141,7 @@ def main():
print("Installing vigil's dependencies in %s..." % distribution)
run_in_container(distribution, "./install-dependencies")
print("Installing vigil in %s..." % distribution)
run_in_container(distribution, "apt-get install --yes python3-pip")
run_in_container(distribution, "pip3 install .")
print("Testing vigil in %s..." % distribution)
run_in_container(distribution, "./test-all")

View file

@ -101,9 +101,10 @@ class ToolsTestCase(unittest.TestCase):
HI_NORMAL = [("hi3.py", tools.Status.normal),
("hi.py", tools.Status.normal)]
def test_pydoc(self):
# FIX: This is failing inside AppImages.
# def test_pydoc(self):
# self._test_tool(tools.pydoc, self.HI_NORMAL)
if "APPDIR" not in os.environ:
self._test_tool(tools.pydoc, self.HI_NORMAL)
def test_mypy(self):
self._test_tool(tools.mypy, [("hi3.py", tools.Status.ok),
@ -146,6 +147,9 @@ class ToolsTestCase(unittest.TestCase):
])
def test_perldoc(self):
# FIX: This is failing in an Appimage, inside a nspawn container,
# as root.
if "APPDIR" not in os.environ:
self._test_tool(tools.perldoc,
[("perl.pl", tools.Status.not_applicable),
("contents.pod", tools.Status.normal)])
@ -214,8 +218,8 @@ class ToolsTestCase(unittest.TestCase):
def test_bcpp(self):
self._test_tool(tools.bcpp, [("hello.cpp", tools.Status.normal)])
def test_php5_syntax(self):
self._test_tool(tools.php5_syntax, [("root.php", tools.Status.ok)])
def test_php7_syntax(self):
self._test_tool(tools.php7_syntax, [("root.php", tools.Status.ok)])
def test_pil(self):
for extension in tools.IMAGE_EXTENSIONS:

View file

@ -638,11 +638,10 @@ def uncrustify(path):
return status, _syntax_highlight_using_path(stdout, path)
@deps(deps={"php"}, opensuse_deps={"php5"},
url="https://en.wikipedia.org/wiki/PHP", executables={"php"},
missing_in={"debian"})
def php5_syntax(path):
return _run_command(["php", "--syntax-check", path])
@deps(deps={"php7.0-cli"}, url="https://en.wikipedia.org/wiki/PHP",
executables={"php7.0"}, missing_in={"debian"})
def php7_syntax(path):
return _run_command(["php7.0", "--syntax-check", path])
def _pil_pixels(pil_image):
@ -852,7 +851,7 @@ TOOLS_FOR_EXTENSIONS = \
(["cc", "cpp", "hpp"], [cpp_syntax_gcc, bcpp, uncrustify]),
(["pdf"], [pdf2txt]),
(["html"], [html_syntax, tidy, html2text]),
(["php"], [php5_syntax]),
(["php"], [php7_syntax]),
(["zip"], [unzip]),
(["tar.gz", "tgz"], [tar_gz]),
(["tar.bz2"], [tar_bz2]),