appimage-builder icon indicating copy to clipboard operation
appimage-builder copied to clipboard

When AppDir contains a space character, apt package installation fails

Open git-developer opened this issue 9 months ago • 0 comments

appimage-builder fails when an apt package is installed and the AppDir contains a space character:

INFO:AptPackageDeploy:Deploying libselinux1_3.3-1build2_amd64.deb to /github/workspace/Custom AppDir
dpkg-deb: error: --extract takes at most two arguments (.deb and directory)

Type dpkg-deb --help for help about manipulating *.deb files;
Type dpkg --help for help about installing and deinstalling packages.
ERROR:root:"/usr/bin/dpkg-deb -x /github/workspace/appimage-build/apt/archives/libselinux1_3.3-1build2_amd64.deb /github/workspace/Custom AppDir" execution failed
Traceback (most recent call last):
  File "/usr/local/bin/appimage-builder", line 8, in <module>
    sys.exit(__main__())
  File "/usr/local/lib/python3.8/dist-packages/appimagebuilder/__main__.py", line 50, in __main__
    invoker.execute(commands)
  File "/usr/local/lib/python3.8/dist-packages/appimagebuilder/invoker.py", line 29, in execute
    command()
  File "/usr/local/lib/python3.8/dist-packages/appimagebuilder/commands/apt_deploy.py", line 46, in __call__
    deployed_packages = apt_deploy.deploy(
  File "/usr/local/lib/python3.8/dist-packages/appimagebuilder/modules/deploy/apt/deploy.py", line 43, in deploy
    extracted_packages = self._extract_packages(appdir_root, deploy_list)
  File "/usr/local/lib/python3.8/dist-packages/appimagebuilder/modules/deploy/apt/deploy.py", line 82, in _extract_packages
    self.apt_venv.extract_package(package, final_target)
  File "/usr/local/lib/python3.8/dist-packages/appimagebuilder/modules/deploy/apt/venv.py", line 227, in extract_package
    shell.assert_successful_result(output)
  File "/usr/local/lib/python3.8/dist-packages/appimagebuilder/utils/shell.py", line 35, in assert_successful_result
    raise RuntimeError(
RuntimeError: "/usr/bin/dpkg-deb -x /github/workspace/appimage-build/apt/archives/libselinux1_3.3-1build2_amd64.deb /github/workspace/Custom AppDir" execution failed with code 2

I think the problem is this join call:

command = " ".join([str(self._deps["dpkg-deb"]), "-x", str(path), str(target)])

Removing the join could fix the problem:

command = [str(self._deps["dpkg-deb"]), "-x", str(path), str(target)]

git-developer avatar Sep 13 '23 18:09 git-developer