ungoogled-software / ungoogled-chromium-debian

Debian, Ubuntu, and others packaging for ungoogled-chromium
386 stars 49 forks source link

Introducing unportable #183

Closed Eloston closed 3 years ago

Eloston commented 3 years ago

Introducing unportable, a new variant that packages ungoogled-chromium-portablelinux into a Debian package. It is essentially the same as Portable Linux, but with a few minor changes like enabling VA-API and Debianization changes like master_preferences.

README has to be updated, but compilation is similar to our other Debian packages but with LLVM 11 from apt.llvm.org.

Eloston commented 3 years ago

@braewoods Feel free to develop on the branch as you'd like. I do not have any pending changes to make.

lfom commented 3 years ago

@Eloston Is it publicly available? I didn't find download links here nor in the main page for binaries download. Thank you.

leso-kn commented 3 years ago

Great idea! This will make ungoogled-chromium available to any debian or ubuntu distribution, regardless of library changes during release upgrades.

(For example when upgrading ubuntu focal => groovy: where libicu66 and libre2-5 are no longer available and it's therefor not possible to install the focal version of u-c)

Eloston commented 3 years ago

Binaries now available: https://ungoogled-software.github.io/ungoogled-chromium-binaries/releases/debian_unportable/amd64/87.0.4280.67-1.unportable1

TheJags commented 3 years ago

Binaries now available: https://ungoogled-software.github.io/ungoogled-chromium-binaries/releases/debian_unportable/amd64/87.0.4280.67-1.unportable1

hi @Eloston Thank you so much.

Few questions:

1, I would need to uninstall the version 84.0.4147.135 completely, correct ?

2, The download link have 9 versions, which one is "regular" amd64 ?

3, How would the updates work for this unportable version... through the browser itself or by downloading new version from GitHub manually ?

Eloston commented 3 years ago

1, I would need to uninstall the version 84.0.4147.135 completely, correct ?

It shares same packaging format as our other Debian/Ubuntu packages. You can upgrade seamlessly, including user data directory.

2, The download link have 9 versions, which one is "regular" amd64 ?

See installation instructions linked on the page

3, How would the updates work for this unportable version... through the browser itself or by downloading new version from GitHub manually ?

Manual downloading is the only way for now. There is no apt repo yet because all builds are manually done. I have no plans to setup any infrastructure.

TheJags commented 3 years ago

1, I would need to uninstall the version 84.0.4147.135 completely, correct ?

It shares same packaging format as our other Debian/Ubuntu packages. You can upgrade seamlessly, including user data directory.

2, The download link have 9 versions, which one is "regular" amd64 ?

See installation instructions linked on the page

3, How would the updates work for this unportable version... through the browser itself or by downloading new version from GitHub manually ?

Manual downloading is the only way for now. There is no apt repo yet because all builds are manually done. I have no plans to setup any infrastructure.

Thank you :+1:

lfom commented 3 years ago

It is working fine here after installing ungoogled-chromiumand ungoogled-chromium-common over the latest OBS build (v.84). Thank you very much.

gadall commented 3 years ago

Hi, It seems like debian/scripts/generate_changelog expects the ungoogled-chromium submodule to be under debian/ (like in the sid branch), and a distro_revision file named revision.txt under debian/ (named distro_revision.txt in the sid branch).

Eloston commented 3 years ago

@gadall Are you sure you're looking at the right version of the script? Are you referring to these lines?

gadall commented 3 years ago

Are you referring to these lines?

yea

Eloston commented 3 years ago

@gadall debian_dir.parent can be thought of as debian/../, which is always the root of the git repo.

gadall commented 3 years ago

@Eloston What I know I'm doing wrong so far is using bullseye (with bits thrown in from buster). Perhaps I'll try again with pure buster, and then we'll see what is broken where and how it can be fixed.

gadall commented 3 years ago

@Eloston The script works if you run it out of the original checked out git repository. Following the instructions: mkdir -p build/src; cp -r ungoogled-chromium-debian/debian build/src/; cd build/src; debian/scripts/setup debian; takes everything out of place and the script can't find the ungoogled-chromium submodule or the other files as I described above.

gadall commented 3 years ago

Successfully built on testing "bullseye" and pulling python-xcbgen from buster. LLVM 11 is already included in debian testing. Seems to work fine

Eloston commented 3 years ago

@gadall Yeah, I made a mistake when modifying the old build instructions. You don't need to move the debian directory anymore. Fixing.

gadall commented 3 years ago

My binaries for Debian bullseye (testing) http://chromium.gedalya.net/chromium/87.0.4280.141-1.unportable1/ Note: Like Debian's latest firefox package (in sid), this also depends on libx11-xcb1 >= 2:1.7.0 which has not yet migrated to testing. Assuming you're using the latest firefox package, this is probably what you want. sha256 sums:

e690bcda06a608ed97c49790ec62c5360845d5b4f7b2e9afb1fc3e35708f2e88  ungoogled-chromium_87.0.4280.141-1.unportable1_amd64.deb
8d837ffb34fa4341054bf19963fb318e01a28bea7e99d328b30ca6e338f0a93f  ungoogled-chromium-common_87.0.4280.141-1.unportable1_amd64.deb
7bf0aadbc3e3f0da56657155966f7bd68e14532297f18949c43a819dfe3ce656  ungoogled-chromium-common-dbgsym_87.0.4280.141-1.unportable1_amd64.deb
e84d129fff757c3b67a92498dc61111fa4547a4a294c8ec503db6bc7a208c79d  ungoogled-chromium-dbgsym_87.0.4280.141-1.unportable1_amd64.deb
249b8741c5a79ad06f21183d3569f7a5ed006520a9160f2caccaf9f86fb0abbf  ungoogled-chromium-driver_87.0.4280.141-1.unportable1_amd64.deb
a38075589acf8851de9aa4dce387da0b1f07556432968f879d757545b166a890  ungoogled-chromium-driver-dbgsym_87.0.4280.141-1.unportable1_amd64.deb
ff23118149d8399fb41fee4743e77510d2e00e579e6671df525e20daea58421b  ungoogled-chromium-l10n_87.0.4280.141-1.unportable1_all.deb
51c3a1e15ff7823d484b5992a16c9d15c0225506d17bc1061b0e3ff7102d4e7b  ungoogled-chromium-sandbox_87.0.4280.141-1.unportable1_amd64.deb
9ea368a283fda1fdf738cc14ec506dd14a8f23a30fb6f35f547601a3c8c9a64e  ungoogled-chromium-sandbox-dbgsym_87.0.4280.141-1.unportable1_amd64.deb
SugaryHull commented 3 years ago

I'm currently working on building 87.0.4280.141-1.unportable1 in Debian Stable with the upstream version of llvm-11 (from apt.llvm.org), and I ran into an issue where the build script expected "llvm-ar," but the upstream package only created "llvm-11-ar." Creating my own symlink in /usr/bin appears to have solved this.

SugaryHull commented 3 years ago

I ran into a similar issue with the assumption of the symlink to "clang" and "clang++," and used a similar solution after purging the Debian packaged verison of clang

SugaryHull commented 3 years ago

apt.llvm.org also doesn't automatically install it's corresponding version of "ld.lld," so that would also be necessary to install and manually symlink over the Debian version, otherwise Ninja will crash with an error regarding conflicting versions of LLVM.

Eloston commented 3 years ago

@SugaryHull The debian/rules file already specifies a specific set of compiler tools. Is this not working for you?

SugaryHull commented 3 years ago

Most likely what happened is that I didn't fully remove the Debian versions before updating to the upstream versions. My bodge jobs did eventually result in a successful build, but it's obviously not ideal

SugaryHull commented 3 years ago

As it turns out, I had been using ./build.sh, which doesn't specifically build for Debian. My former comments will now serve as a log of how I built the linux-portable version of ungoogled-chromium on Debian Stable. As for the Debian packaging instructions, I did have to write my own changelog when invoking dpkg-buildpackage manually., which appears to be absent from this repo.

SugaryHull commented 3 years ago

I have submitted a pull-request for 87.0.4280.141-1.unportable1 on ungoogled-chromium-binaries. Apologies if I was not writing up my build progress in the correct place.

nzm001 commented 3 years ago

@Eloston Thank you for upgrading. Ungoogled chromium saves me from Ubuntu snap version.

A few questions:

  1. Is it normal that unportable version consumes more CPU (and less GPU)? By watching the same video at the same resolution (720p) with hardware acceleration, unportable (87.0.4280.67-1.unportable1) consumes 20-40% more CPU than previous version (84.0.4147.135-1.focal1), and 0-50% less GPU.
  2. Can I use unportable on arm?

CPU: J4125 OS: Linux Mint 20

Eloston commented 3 years ago

@nzm001

Is it normal that unportable version consumes more CPU (and less GPU)? By watching the same video at the same resolution (720p) with hardware acceleration, unportable (87.0.4280.67-1.unportable1) consumes 20-40% more CPU than previous version (84.0.4147.135-1.focal1), and 0-50% less GPU.

Is the video encoding the same? You might also want to enable the Media tab in DevTools (open menu -> More Tools -> Media) to confirm the proper video decoder is used.

Can I use unportable on arm?

It is possible but I'm not sure how to do it. The build config might need some changes.

ghost commented 3 years ago

@Eloston Is there a purpose to unportable now that we can update the regular packaging again?

Eloston commented 3 years ago

@braewoods Not really, but reflecting on it made me realize a minor benefit. Having worked on unportable and now looking back at Debian's chromium, I'm starting to see that Debian makes a lot of changes without a lot of rigorous testing (e.g. unit/integration/system/E2E testing). Sometimes this causes regressions, so it'd be nice to have a more conservative fallback (unportable). But this is more of a blanket statement rather than constructive criticism against this approach.

Personally I'm okay with regular packaging, so I probably won't update unportable unless I find a good reason to.

lfom commented 3 years ago

@braewoods OBS has newer builds for Sid and Buster, but not for Bionic and Focal. Won't they be updated as well? If they won't, I think unportable will still be needed.