Skip to content

Regression bug? briefcase build installs packages in the wrong order in 0.3.3, but not 0.3.2 #504

@micahflee

Description

@micahflee

My project requires pyside2, which depends on libshiboken2.

With briefcase 0.3.3, when I run briefcase create and then briefcase build, it fails with this error:

$ briefcase build

[onionshare] Building AppImage...

[onionshare] Entering Docker context...
linuxdeploy version 1-alpha (git commit ID b6a1ba2), Travis build 488 built on 2020-10-09 13:07:48 UTC

-- Creating basic AppDir structure -- 
Creating directory /app/OnionShare/OnionShare.AppDir/usr/bin/ 
Creating directory /app/OnionShare/OnionShare.AppDir/usr/lib/ 

[...snip...]

Deploying files in directory /app/OnionShare/OnionShare.AppDir/usr/app_packages/PySide2 
Deploying dependencies for ELF file in AppDir: /app/OnionShare/OnionShare.AppDir/usr/app_packages/PySide2/QtOpenGL.abi3.so 
Deploying dependencies for ELF file /app/OnionShare/OnionShare.AppDir/usr/app_packages/PySide2/QtOpenGL.abi3.so 
ERROR: Could not find dependency: libshiboken2.abi3.so.5.15 
WARNING: Failed to deploy dependencies for ELF file /app/OnionShare/OnionShare.AppDir/usr/app_packages/PySide2/QtOpenGL.abi3.so, skipping 

Error while building app onionshare.

However I've confirmed that libshiboken2.abi3.so.5.15 should in fact be there:

$ find linux/ |grep libshiboken2.abi3.so.5.15
linux/OnionShare/OnionShare.AppDir/usr/app_packages/shiboken2/libshiboken2.abi3.so.5.15

While debugging this I discovered the arguments passed into linuxdeploy-x86_64.AppImage. It looks like --deploy-deps-only /app/OnionShare/OnionShare.AppDir/usr/app_packages/shiboken2 is near the end of the args, and --deploy-deps-only /app/OnionShare/OnionShare.AppDir/usr/app_packages/PySide2 is near the beginning of the args.

Basically, I think the dependencies are being installed in the wrong order. shiboken2 should be installed first so that when PySide2 gets installed it can find the right libraries.

I wasn't sure if this was a briefcase bug or not, so I tried the same thing with briefcase 0.3.2 instead.

In version 0.3.2, it actually successfully builds my AppBundle! (However, it's not runnable because of #420 which was fixed in 0.3.3...)

I also just tried using briefcase from the master branch, but it still fails in the same way.

Environment:

  • Operating System: Ubuntu 20.04
  • Python version: 3.8.5
  • Software versions:
    • Briefcase: 0.3.3, 0.3.2

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugA crash or error in behavior.linuxThe issue relates Linux support.
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions