Update the fdroid-server docker/container image

An error occurred when building the F-Droid repository if adding some apps:

...
...
File "/usr/lib/python3/dist-packages/androguard/core/bytecodes/axml/__init__.py", line 2181, in __init__
raise ResParserError("res1 must be zero!")
androguard.core.bytecodes.axml.ResParserError: res1 must be zero!

Here’s a full log on Ubuntu 24.04, it is same to the official Debian-based container I used earlier.


androguard:

  • Debian 12:3.4.0~a1-6
  • Ubuntu 24.04:3.4.0~a1-10
  • Debian 12-backport/13:3.4.0~a1-17

According to the Debian bug log, a1-7 has been fixed, not sure why a1-10 on Ubuntu still fails.

A few days ago I installed the latest a1-17 in the container, and it finally passed. I also made a image, you can be tested with two applications in the beginning.

I prepare to respond to the container image maintainer and hope to update it, but Gitlab banned registration for Chinese, so I can only respond here.

@hans ping?

I don’t know who maintains F-Droid / docker-executable-fdroidserver · GitLab I don’t use it nor maintain it. If it is broken and not maintained, I could archive it.

androguard 3.4.0~a1-17 should fix the res1 issue.

looking at buildserver/provision-apt-get-install · master · F-Droid / fdroidserver · GitLab we don’t install the updated androguard from backports?

or we install it via pip? setup.py · master · F-Droid / fdroidserver · GitLab

not sure how to determine which version that image currently has

androguard is a dep of fdroidserver so it’s not installed seperately.

Sure, but that means it’s not the fixed version, right? And we’d need to force it from backports?

This Ansible role sets up everything fdroidserver needs:

If using Debian, then backports are key.

not sure I follow, the docker thing does not use ansible afaik nor our buildserver, right?

eg. ansible has pinning for backports tasks/main.yml · master · F-Droid / ansible-role-install-fdroidserver-dependencies · GitLab

but our image maker does not buildserver/provision-apt-get-install · master · F-Droid / fdroidserver · GitLab

entered my Water VM:

$ apt policy androguard
androguard:
  Installed: 3.4.0~a1-6
  Candidate: 3.4.0~a1-17
  Version table:
     3.4.0~a1-17 500
        500 https://deb.debian.org/debian trixie/main amd64 Packages
     3.4.0~a1-17~bpo12+1 100
        100 https://debian.osuosl.org/debian bookworm-backports/main amd64 Packages
 *** 3.4.0~a1-6 500
        500 https://debian.osuosl.org/debian bookworm/main amd64 Packages
        100 /var/lib/dpkg/status

and my /etc/apt/preferences.d/ is empty

@wcbing I see backports as a candidate, in my quote above, so maybe this needs a apt-get update && apt-get upgrade -y in the VM after the Docker starts, then do the other stuff

If you’re doing it manually on Debian/bookworm, this should work:

# apt install -t bookworm-backports androguard
1 Like