Botspot / pi-apps

Raspberry Pi App Store for Open Source Projects
GNU General Public License v3.0
1.95k stars 202 forks source link

switch to depending on `chromium` instead of `chromium-browser` in Better Chromium on supported OSs #2644

Open ghost opened 1 week ago

ghost commented 1 week ago

Cool ideas?

As RPI has switched to the Debian's Chromium package (instead of its own chromium-browser package), some functions in "better chromium" are probably no longer needed. And also maybe, other functions may require some edits to be usable in the Debian's Chromium. I used to install this to get "sync" functionality but it turns out, Debian Chromium now allows sync out of the box.

You might want to look into it.

theofficialgman commented 1 week ago

As RPI has switched to the Debian's Chromium package (instead of its own chromium-browser package)

Please provide evidence of this occurring @sudo-splinter-cell . RPI chromium-browser package was just updated 10 hours ago and is not using debian's chromium package. edit: see below

theofficialgman commented 1 week ago

The following are from https://archive.raspberrypi.com/debian/dists/bookworm/main/binary-arm64/Packages

Package: chromium
Version: 1:128.0.6613.119-1~deb12u1+rpt5
Architecture: arm64
Maintainer: Debian Chromium Team <chromium@packages.debian.org>
Installed-Size: 250012
Depends: libasound2 (>= 1.0.17), libatk-bridge2.0-0 (>= 2.5.3), libatk1.0-0 (>= 2.2.0), libatspi2.0-0 (>= 2.9.90), libc++1-16 (>= 1:16.0.6), libc++abi1-16 (>= 1:16.0.6), libc6 (>= 2.35), libcairo2 (>= 1.6.0), libcups2 (>= 1.7.0), libdav1d6 (>= 0.1.0), libdbus-1-3 (>= 1.9.14), libdouble-conversion3 (>= 2.0.0), libdrm2 (>= 2.4.75), libevent-2.1-7 (>= 2.1.8-stable), libexpat1 (>= 2.1~beta3), libflac12 (>= 1.3.0), libfontconfig1 (>= 2.12.6), libfreetype6 (>= 2.10.1), libgbm1 (>= 17.1.0~rc2), libgcc-s1 (>= 4.2), libglib2.0-0 (>= 2.39.4), libharfbuzz-subset0 (>= 6.0.0), libharfbuzz0b (>= 2.6.0), libjpeg62-turbo (>= 1:1.5.0), liblcms2-2 (>= 2.2+git20110628), libminizip1 (>= 1.1), libnspr4 (>= 2:4.9-2~), libnss3 (>= 2:3.31), libopenh264-7 (>= 2.3.1+dfsg), libopenjp2-7 (>= 2.5.0), libopus0 (>= 1.1), libpango-1.0-0 (>= 1.14.0), libpng16-16 (>= 1.6.2-1), libpulse0 (>= 0.99.1), libunwind-16 (>= 1:16.0.6), libx11-6, libxcb1 (>= 1.9.2), libxcomposite1 (>= 1:0.4.5), libxdamage1 (>= 1:1.1), libxext6, libxfixes3, libxkbcommon0 (>= 0.5.0), libxml2 (>= 2.7.4), libxnvctrl0, libxrandr2, libxslt1.1 (>= 1.1.27), libzstd1 (>= 1.5.2), zlib1g (>= 1:1.2.11.dfsg), libgtk-3-0 | xdg-desktop-portal-backend, chromium-common (= 1:128.0.6613.119-1~deb12u1+rpt5)
Recommends: chromium-sandbox, libwidevinecdm0, rpi-chromium-mods
Suggests: chromium-l10n, chromium-shell, chromium-driver
Conflicts: libgl1-mesa-swx11, libnettle4, libsecret-1-0 (<< 0.18)
Breaks: chromium-browser (<< 1:126.0.6478.126-1~deb12u1+rpt1), chromium-lwn4chrome (<= 1.0-2), chromium-tt-rss-notifier (<= 0.5.2-2)
Replaces: chromium-browser (<< 1:126.0.6478.126-1~deb12u1+rpt1)
Provides: chromium-browser, gnome-www-browser, www-browser
Homepage: http://www.chromium.org/Home
Priority: optional
Section: web
Filename: pool/main/c/chromium/chromium_128.0.6613.119-1~deb12u1+rpt5_arm64.deb
Size: 110443234
SHA512: 07aa79815c5cb40f4614c5c34cac577157c3c8e61dbf7dba76161ef121faebe8db2a672cdd2f25dfc43c7157822994d21ee61b5bc6ce07a34aa1ee7348266a8a
SHA256: 09a7ca1c7ad8cbe6624dab737e759e0dbcc741cf2e23108053dd08fbc5071680
SHA1: 8b8393d409487efdec2868ca45f2f056c9af1561
MD5sum: af30e38bf0ad81faf53b319a07e465fc
Description: web browser
 Web browser that aims to build a safer, faster, and more stable internet
 browsing experience.
 .
 This package contains the web browser component.

Package: chromium-browser
Source: chromium
Version: 1:128.0.6613.119-1~deb12u1+rpt5
Architecture: all
Maintainer: Debian Chromium Team <chromium@packages.debian.org>
Installed-Size: 333
Depends: chromium
Multi-Arch: foreign
Homepage: http://www.chromium.org/Home
Priority: optional
Section: oldlibs
Filename: pool/main/c/chromium/chromium-browser_128.0.6613.119-1~deb12u1+rpt5_all.deb
Size: 94262
SHA512: 5a1fdade87ee53f9f367a15095694800146055bbb45709635bd09fc0b4f525235bca19f7efe81cd6edac7aa487a8ba707daeb3abd20a26e76615bd0aae5fb522
SHA256: 994d20cbce0d274ea81f15ad8c851f5e091c31180e93d1b96b305edfd3d2b69f
SHA1: cbf83558d79ca098ba732504da2eb745d02f41f3
MD5sum: 4f9fd0ac208bef5c436da3460ee057fd
Description: transitional dummy package
 This is a transitional dummy package, it can be safely removed.

They are not using debian's official chromium package but have instead switched to using debian's chromium naming scheme and buildscripts (instead of using ubuntu's buildscripts forward ported from the time before the snap transition years ago). No immediate changes are necessary since installing chromium-browser will now install chromium via the Depends: chromium

As a temporary action I have blocked https://github.com/Pi-Apps-Coders/chromium-debs actions to stay on the old 126 release for non-piOS distros. The new builds, since they are built and packaged differently, will need to be tested again on non-piOS distros to make sure they can still install and function.

Botspot commented 6 days ago

They are not using debian's official chromium package but have instead switched to using debian's chromium naming scheme and buildscripts (instead of using ubuntu's buildscripts forward ported from the time before the snap transition years ago). No immediate changes are necessary since installing chromium-browser will now install chromium via the Depends: chromium

I do want to mention that on my PiOS install, the chromium-browser package is removed during upgrade. It does not stay installed as a dummy transitional package.

pi@raspberrypi:~ $ sudo apt upgrade --autoremove
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Calculating upgrade... Done
The following packages will be REMOVED:
  chromium-browser chromium-browser-l10n
The following NEW packages will be installed:
  chromium chromium-common chromium-l10n chromium-sandbox libc++1-16
  libc++abi1-16 libunwind-16 libupower-glib3 libwidevinecdm0
  notification-daemon upower
The following packages will be upgraded:
  box64-generic-arm python3-gpiozero raspberrypi-sys-mods raspi-utils
  raspi-utils-core raspi-utils-dt raspi-utils-eeprom raspi-utils-otp raspinfo
  rc-gui rpi-chromium-mods rpi-eeprom
12 upgraded, 11 newly installed, 2 to remove and 0 not upgraded.
theofficialgman commented 6 days ago

chromium-browser is still provided by chromium (see my message) so the autoremoval of the physical chromium-browser package should be of no consequence.

ghost commented 6 days ago

As I have been told in the RPI forum, The Chromium package is the same with the Debian one, so instead of a different RPI maintained chromium package, RPI modifications are added to the default package with another package which is probly called "rpi-chromium-mods".

I have been using this new Chromium without the "better chromium" package and it really is good enough imo. Sync works out of the box. DRM content plays fine (widevine was installed). Twitter videos start laggy but it can be resolved by disabling "hw acceleration" in settings. On a RPI5, i found through experience that disabling hw acceleration for pretty much anything in any app makes the experience so much better (Kodi for example). I am on X11 (refusing wayland still).

theofficialgman commented 6 days ago

As I have been told in the RPI forum, The Chromium package is the same with the Debian one, so instead of a different RPI maintained chromium package, RPI modifications are added to the default package with another package which is probly called "rpi-chromium-mods".

Whoever is talking to you in the forum has no idea what they are talking about (or you don't understand them). raspberry pi chromium (same as with the previous chromium-browser) includes 1000s of lines of patchfiles modifying the source code of chromium itself. the changes are NOT limited to the small things in rpi-chromium-mods. As I said (I know what I'm talking about) the only difference is that they are now starting with the debian chromium dsc as a base instead of the old ubuntu chromium-browser dsc as a base. Very very little has changed. image https://archive.raspberrypi.com/debian/pool/main/c/chromium/chromium_128.0.6613.119-1~deb12u1+rpt5.debian.tar.xz

ghost commented 6 days ago

Well it is quite possible that i have been misled as i am not a programmer. But it is obvious to me that there is a major change here and i just wanted to give you a heads up to prevent anything to be broken for the people who actually use better-chromium (like me, it was one of the first things i installed). And i am surprised that Chromium now offers sync without it. So maybe it is more than just a name change. I don't know.

theofficialgman commented 6 days ago

But it is obvious to me that there is a major change here and i just wanted to give you a heads up to prevent anything to be broken for the people who actually use better-chromium (like me, it was one of the first things i installed). And i am surprised that Chromium now offers sync without it. So maybe it is more than just a name change. I don't know.

There is no major change. I already explained the changes. Debian's dsc (debian/etc/apikeys in the debian tarfile) has had keys for google sync for 9 years now (but not ubuntu's dsc since it is so old) https://salsa.debian.org/chromium-team/chromium/-/blame/bookworm/debian/etc/apikeys. So changing over to their dsc as a base simply brought that change with it.

theofficialgman commented 6 days ago

We can simplify it but nothing urgent.

ghost commented 6 days ago

Yeah i have been experimenting with installing it on and off and i guess it is still required and working at least for "sync" functionality. When i installed and then removed better chromium, sync was gone. Then i have to install it again. So i guess it is better to have it installed than not.

ghost commented 5 days ago

I think i spoke a little bit too early about this. The new Chromium has no hw acceleration under X11 (they told me this will be the case now.). And i tought hw acceleration was only for video playback but it turns out, it wasn't. Google Earth/Maps do not work in 3d without it. And the performance of the whole browsing experience really slumps. Now basically we are forced to use wayland to have it, but i personally don't want to. Could there be any way to reimplement hw acceleration to the new Chromium (under x11) with a new "better chromium" script?

Botspot commented 5 days ago

@sudo-splinter-cell this is not something I have the interest/time to investigate. My suggestions for you:

  1. Try Downgrade Chromium
  2. With rpi-chromium-mods uninstalled, try command-line arguments when running chromium to see if an older version works with the KMS driver that helped with acceleration on the pure X11 distro back in the day.
  3. Once you figure that out, it may work in the latest Chromium.
ghost commented 5 days ago

Yeah i reverted to version 125 using "Downgrade Chromium" and hw acceleration came back immediately. I didnt even have to do anything extra. Now i am planning to use this version until a new overhaul of RPIOS comes along, probably in 2025. I am not in total denial that wayland is the future, but to me it is still not as responsive as x11, especially to mouse actions; using a mouse in wayland is a hassle. They need to figure this out first.

rpi-chromium-mods is a dependency. Removing it solely will probably require some skills and it will come back with every update so maybe just freezing chromium for now is a better idea (for me at least). Thanks to Pi-apps that we can do all these things easily.

theofficialgman commented 5 days ago

The new Chromium has no hw acceleration under X11 (they told me this will be the case now.).

@sudo-splinter-cell please provide a link to a public statement from someone representing RPI LTD chromium developement stating that (if they aren't employed by RPI LTD, I don't want to hear it)

edit: found it https://github.com/RPi-Distro/chromium/issues/47#issuecomment-2347343079

Botspot commented 4 days ago

rpi-chromium-mods is a dependency. Removing it solely will probably require some skills and it will come back with every update

No and false.

pi@raspberrypi:~ $ sudo apt purge rpi-chromium-mods
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following packages will be REMOVED:
  rpi-chromium-mods*
0 upgraded, 0 newly installed, 1 to remove and 0 not upgraded.
After this operation, 18.4 kB disk space will be freed.
Do you want to continue? [Y/n]

The rpi-chromium-mods package has always been removable leaving Chromium intact. Also as you seem interested in the subject, try seeing what files rpi-chromium-mods actually installs. It's not as significant as most people think.

$ dpkg -L rpi-chromium-mods
/.
/etc
/etc/chromium
/etc/chromium/master_preferences
/etc/chromium.d
/etc/chromium.d/00-rpi-vars
/usr
/usr/share
/usr/share/doc
/usr/share/doc/rpi-chromium-mods
/usr/share/doc/rpi-chromium-mods/changelog.gz
/usr/share/doc/rpi-chromium-mods/copyright
ghost commented 4 days ago

Yeah i thought if a package is being installed with another package automatically, it is a dependency, anyway it turns out, my problems are deeper with the new chromium, even if i switch to wayland, hardware acceleration comes back but causes more issues probably due to the fact that i am using KDE Plasma (kwin). So yeah, i guess my issues stem from the fact that i am using a different desktop environment.

glanduin commented 2 days ago

(HW acceleration in x11)

Fixed:

https://forums.raspberrypi.com/viewtopic.php?t=376584#p2253409

theofficialgman commented 2 days ago

(HW acceleration in x11)

Fixed:

https://forums.raspberrypi.com/viewtopic.php?t=376584#p2253409

Yes this was already posted by upstream piOS devs https://github.com/RPi-Distro/chromium/issues/47#issuecomment-2352705411

they will investigate and fix their patch that isn't working anymore. no changes in pi-apps needed.