Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Meta Issue: Upstream Armbian Bugs (not a pi-apps issue) #2642

Open
3 tasks done
theofficialgman opened this issue Sep 5, 2024 · 15 comments
Open
3 tasks done

Meta Issue: Upstream Armbian Bugs (not a pi-apps issue) #2642

theofficialgman opened this issue Sep 5, 2024 · 15 comments
Labels
Upstream Bug something isn't working that can only be fixed upstream

Comments

@theofficialgman
Copy link
Collaborator

theofficialgman commented Sep 5, 2024

Confirmations

What happened?

Issues with Upstream Armbian prevent the installation and/or upgrades for some applications

Description

This is a meta issue for many of the pi-apps logs we have been sent in roughly the past year related to BAD armbian packages (mostly due to broken or missing multiarch packages).

I am the co-maintainer of pi-apps and am CCing all relevant armbian developers related to such packages. The armbian developers have not indicated themselves as maintainers or uploaders in the control file of the packages that they are responsible for.

The logs are pi-apps formatted logs that were sent to our discord via our error report system without pi-apps. Where relevant, they provide additional developer diagnostic logs that will help you (the Armbian developers) resolve your packaging issues.

install-fail-Minecraft_Bedrock.txt
install-fail-Steam.txt
install-fail-Steam(1).txt
install-fail-Box86.txt
install-fail-Box86(1).txt

CC: @efectn @alexl83 @Janmcha @stephengraf @chraac @amazingfate @prahal @brentr @linhz0hz @rpardini @krachlatte @joekhoobyar @ZazaBR @clee @vamzii @catalinii

As mentioned, the offending improperly packages/provided packages are not correctly marked with their real maintainer so I am unable to notify the correct person(s). If I have missed someone that should be notified please ping them in a comment.

@theofficialgman theofficialgman added the Upstream Bug something isn't working that can only be fixed upstream label Sep 5, 2024
@amazingfate
Copy link

The apt error is because of version of arm64 and armhf mesa not matching.
run apt-cache policy libegl-mesa0 to see where these packages come from. Armbian does add some third-party repos provding packages like mesa, and each board may have different thirdparty repo.

@theofficialgman
Copy link
Collaborator Author

theofficialgman commented Sep 5, 2024

The apt error is because of version of arm64 and armhf mesa not matching. run apt-cache policy libegl-mesa0 to see where these packages come from. Armbian does add some third-party repos provding packages like mesa, and each board may have different thirdparty repo.

@amazingfate the output you requested is already in the logfiles, scroll and you will see it (specifically all output after Additional log diagnosis for developers below: is generated via

pi-apps/api

Lines 2150 to 2171 in 655617e

echo -e "Additional log diagnosis for developers below:\n" >> "$logfile"
grep -E "^ .* : Depends:" <<<"$errors" | awk '{print $1, $4}' | tr " " "\n" | sort -u | awk '/:armhf/{print; gsub(/:armhf/, ":arm64")}1' | xargs -r apt-cache show >> "$logfile"
local packages_case1="$(grep -E "^ .* : Depends:" <<<"$errors" | awk '{print $1, $4}' | tr " " "\n" | sed 's/:armhf\|:arm64\|:all//g' | sort -u)"
echo "$packages_case1" | xargs -r apt list -a >> "$logfile"
local dry_run_case1="$(grep -E "^ .* : Depends:" <<<"$errors" | awk '{print $4}' | tr " " "\n" | sort -u | awk '/:armhf/{print; gsub(/:armhf/, ":arm64")}1' | xargs -r apt-get install -fy --no-install-recommends --allow-downgrades --dry-run 2>&1)"
echo "$dry_run_case1" >> "$logfile"
grep -E "^ +Depends:" <<<"$errors" | awk '{print $2}' | sort -u | awk '/:armhf/{print; gsub(/:armhf/, ":arm64")}1' | xargs -r apt-cache show >> "$logfile"
local packages_case2="$(grep -E "^ +Depends:" <<<"$errors" | awk '{print $2}' | sed 's/:armhf\|:arm64\|:all//g' | sort -u)"
echo "$packages_case2" | xargs -r apt list -a >> "$logfile"
local dry_run_case2="$(grep -E "^ +Depends:" <<<"$errors" | awk '{print $2}' | sort -u | awk '/:armhf/{print; gsub(/:armhf/, ":arm64")}1' | xargs -r apt-get install -fy --no-install-recommends --allow-downgrades --dry-run 2>&1)"
echo "$dry_run_case2" >> "$logfile"
grep -E "^Depends:" <<<"$errors" | cut -d' ' -f2- | sed "s/, /\n/g" | sed "s/| /\n/g" | sed "s/:any//g" | sed 's/([^)]*)//g;s/ / /g' | xargs -r apt-cache show >> "$logfile"
local packages_case3="$(grep -E "^Depends:" <<<"$errors" | cut -d' ' -f2- | sed "s/, /\n/g" | sed "s/| /\n/g" | sed 's/:armhf\|:arm64\|:all//g' | sed 's/([^)]*)//g;s/ / /g' | sort -u)"
echo "$packages_case3" | xargs -r apt list -a >> "$logfile"
local dry_run_case3="$(grep -E "^Depends:" <<<"$errors" | cut -d' ' -f2- | sed "s/, /\n/g" | sed "s/| /\n/g" | sed "s/:any//g" | sed 's/([^)]*)//g;s/ / /g' | xargs -r apt-get install -fy --no-install-recommends --allow-downgrades --dry-run 2>&1)"
echo "$dry_run_case3" >> "$logfile"
# we also want to see the users apt sources (.list and .sources)
apt-get indextargets --no-release-info --format '$(SITE) $(RELEASE) $(COMPONENT) $(TARGET_OF) $(ARCHITECTURE)' | sort -u >> "$logfile"
# we also want to know what architectures the user has enabled on their system globally
echo "foreign architectures: $(dpkg --print-foreign-architectures)" >> "$logfile"
). These logs are not from myself but users that have reported them through or discord error report system as already explained. armbian ships these repos so it is your job to vet them and make sure they do not cause such issues as missing multiarch (armhf packages on arm64 system) packages.

@amazingfate
Copy link

Sumary of above issues:

log name armbian release version debian/ubuntu codename kernel version package with issue root cause/explanation
install-fail-Minecraft_Bedrock.txt 23.05.1 bookworm 6.1.30-meson64 linux-libc-dev_23.02.2_armhf.deb This package is no longer in armbian's repo now
install-fail-Steam.txt 24.2.5 bookworm 6.6.23-current-bcm2712 libegl-mesa0:armhf (!= 24.0.7-1) but 22.3.6-1+deb12u1 is to be installed I can't find the image to check. There should be arm64 mesa installed from a thirdparty repo which does not provide armhf mesa. From https://www.armbian.com/rpi5b/ I find that the page recommends user to install mesa from debian unstable for gpu acceleration. So now the issue is clear.
install-fail-Steam(1).txt 24.5.2 noble 6.1.43-vendor-rk35xx libgstreamer-plugins-base1.0-0 I have downloaded Armbian_24.5.2_Orangepi5pro_noble_vendor_6.1.43_gnome-oibaf_desktop.img and chrooted into it and ran apt install libreoffice-core, no such issue
install-fail-Box86.txt 22.11.4 jammy 5.15.89-rockchip64 linux-libc-dev_22.11.4_armhf.deb This package is no longer in armbian's repo now
install-fail-Box86(1).txt 24.5.5 jammy 5.10.160-legacy-rk35xx libharfbuzz0b:armhf apt install libgtk-3-0:armhf does have the same issue, but apt install libgtk-3-0:armhf libharfbuzz0b:armhf is fine. Log: https://paste.armbian.com/axaheyosuz.rb

@theofficialgman
Copy link
Collaborator Author

theofficialgman commented Sep 5, 2024

I appreciate you trying to diagnose the issues. I already diagnosed each one as we received them.

Please check the current version of linux-libc-dev in the repositories for armbian bookworm and jammy for all the hardware where custom versions are shipped and verify that the /usr/share/doc/linux-libc-dev/changelog.Debian.gz and all other shared files between the armhf and arm64 versions of the package are identical. The issue occurred because in both of those cases the files were not identical. We (at pi-apps) have blocked further instances of this error from being reported to us as of 3 weeks ago 368f6e3 and automatically instruct users to contact their distro maintainer for such issues.

Your diagnosis for install-fail-Box86(1).txt is incorrect. The issue is that a custom libharfbuzz0b package is available for arm64 with no matching armhf version 6.0.0+dfsg-3+j

Package: libharfbuzz0b
Priority: optional
Section: libs
Installed-Size: 954
Maintainer: أحمد المحمودي (Ahmed El-Mahmoudy) <[email protected]>
Architecture: arm64
Source: harfbuzz
Version: 6.0.0+dfsg-3+j
Replaces: libharfbuzz0, libharfbuzz0a
Depends: libc6 (>= 2.33), libfreetype6 (>= 2.11.0), libglib2.0-0 (>= 2.31.8), libgraphite2-3 (>= 1.2.2)
Conflicts: libharfbuzz0, libharfbuzz0a
Filename: pool/jammy-desktop/h/harfbuzz/libharfbuzz0b_6.0.0+dfsg-3+j_arm64.deb
Size: 416552
MD5sum: 1fd883c26ac9ca159c09c7efc5a511fb
SHA1: cca0d2c3a495d92fd8c28699a72d4b874988ddd2
SHA256: 56461638025afe4705d089fcb0654b379fc720d95bbd2daa70a094f0b0f77bb3
SHA512: 56bd0b971559900857971ac1d1cad1db9fe01ed7fb0f3a5ddacfeddaeb7116d3a614f5fe728f7dc6c48d84fd16e7cbcff2e042655d660a26340521af0c140a14
Description: OpenType text shaping engine (shared library)
Description-md5: c01a2a5a6349f465ee349884ac4d8667
Homepage: https://www.freedesktop.org/wiki/Software/HarfBuzz
Multi-Arch: same

@theofficialgman
Copy link
Collaborator Author

As for this error report install-fail-Steam(1).txt, our logs do not provide the reason for why the issue occurs. I assume that the system has some preinstalled pin priority for the following repo
Hit:4 https://ppa.launchpadcontent.net/liujianfeng1994/rockchip-multimedia/ubuntu noble InRelease
that is preventing proper installation of libgstreamer-plugins-base1.0-0 but that is just a guess. The user that reported this had this issue pre-existing on their install before attempting to install anything from pi-apps.

@theofficialgman
Copy link
Collaborator Author

theofficialgman commented Sep 6, 2024

@amazingfate another same libharfbuzz0b reported just a few minutes ago. Similar reason as two messages above but now we see in addition to missing the armhf version of the package, the development package libharfbuzz-dev is also entirely missing from the custom version Armbian ships.
install-fail-StepMania.txt

@amazingfate
Copy link

Please check the current version of linux-libc-dev in the repositories for armbian bookworm and jammy for all the hardware where custom versions are shipped

Armbian no longer provide linux-libc-dev in its repo. Instead linux-libc-dev-${FLAVOR} like linux-libc-dev-legacy-bcm2711 is provided.

The issue is that a custom libharfbuzz0b package is available for arm64 with no matching armhf version 6.0.0+dfsg-3+j

This package is imported from my ppa https://launchpad.net/~liujianfeng1994/+archive/ubuntu/chromium with no armhf version. I will rebuild all libaries in this repo with armhf.

I assume that the system has some preinstalled pin priority for the following repo
Hit:4 https://ppa.launchpadcontent.net/liujianfeng1994/rockchip-multimedia/ubuntu noble InRelease
that is preventing proper installation of libgstreamer-plugins-base1.0-0 but that is just a guess.

That's not the root cause, installing libgstreamer-plugins-base1.0-0 from ubuntu's repo also failed.

# apt install libgstreamer-plugins-base1.0-0=1.24.2-1ubuntu0.1 libgstreamer-plugins-base1.0-0:armhf=1.24.2-1ubuntu0.1
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
 libgstreamer-plugins-base1.0-0:armhf : Depends: libdrm2:armhf (>= 2.4.74) but it is not installable

libdrm2 is installed from https://launchpad.net/~oibaf/+archive/ubuntu/graphics-drivers. But This repo is not in the image.
Oibaf is a staging repo which updates all the time so we have replaced it with new ppa https://launchpad.net/~kisak/+archive/ubuntu/kisak-mesa some times ago.
I have nightly image with kisak repo downloaded from https://github.com/armbian/os/releases and it has no such issue.

@rpardini
Copy link

rpardini commented Sep 6, 2024

I wonder if SKIP_ARMBIAN_REPO=yes CLI images built from source also suffer from problems?

@amazingfate
Copy link

I wonder if SKIP_ARMBIAN_REPO=yes CLI images built from source also suffer from problems?

If armbian's repo is disabled, at least linux-libc-dev and harfbuzz related issues should not happen.

@amazingfate
Copy link

armhf harfbuzz pacakges are updated at armbian's beta repo: https://netcup.armbian.com/beta/pool/jammy-desktop/h/harfbuzz/

@theofficialgman
Copy link
Collaborator Author

armhf harfbuzz pacakges are updated at armbian's beta repo: https://netcup.armbian.com/beta/pool/jammy-desktop/h/harfbuzz/

Good. Hopefully you can push that to the default repositories soon because we still get reports from these users about this problem.

@amazingfate
Copy link

Armbian default repo already has harfbuzz

$ apt-cache policy libharfbuzz0b:armhf
libharfbuzz0b:armhf:
  已安装:(无)
  候选: 6.0.0+dfsg-3+j1
  版本列表:
     6.0.0+dfsg-3+j1 500
        500 http://apt.armbian.com jammy/jammy-desktop armhf Packages
     2.7.4-1ubuntu3.1 500
        500 http://ports.ubuntu.com jammy-security/main armhf Packages
        500 http://ports.ubuntu.com jammy-updates/main armhf Packages
     2.7.4-1ubuntu3 500
        500 http://ports.ubuntu.com jammy/main armhf Packages

@theofficialgman
Copy link
Collaborator Author

At my previous time of posting it seems the repo was offline or unreachable (since it was Ign by an apt update).
install-fail-StepMania.txt

@theofficialgman
Copy link
Collaborator Author

Here is another error we get from armbian frequently. Failures to install the snap store. This might indicate missing required kernel modules.

install-fail-Snap_Store.txt
install-fail-Snap_Store(1).txt

@amazingfate
Copy link

Armbian's repo still has issue syncing harfbuzz packages, we are looking at it.
I'm the maintainer of xiaomi pad5 pro, but I never use snap. I will look into it.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Upstream Bug something isn't working that can only be fixed upstream
Projects
None yet
Development

No branches or pull requests

3 participants