ungoogled-software / ungoogled-chromium-debian

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

Update to 78 #27

Closed nurupo closed 5 years ago

nurupo commented 5 years ago

Any chance of updating to 78?

It doesn't seem like Debian's chromium package is going to be updated any time soon, it seems to be stuck on 76 and currently unmintained [1] [2] [3] [4] [5], so with the number of CVEs for the outdated 76 growing I wanted to give an up-to-date ungoogled-chromium a try, but can't get the deb packages to build. In fact, I didn't even get to the building part yet, I have spent 4 hours setting the build up, finding out that patches don't apply anymore, learning quilt and trying to fix the patches, just to get to:

$ ./debian/rules setup-debian
python3 -B debian/ungoogled-upstream/ungoogled-chromium/utils/patches.py merge -p debian/patches debian/ungoogled-upstream/ungoogled-chromium/patches
Traceback (most recent call last):
  File "debian/ungoogled-upstream/ungoogled-chromium/utils/patches.py", line 160, in <module>
    main()
  File "debian/ungoogled-upstream/ungoogled-chromium/utils/patches.py", line 156, in main
    args.callback(args)
  File "debian/ungoogled-upstream/ungoogled-chromium/utils/patches.py", line 117, in _merge_callback
    merge_patches(args.source, args.destination, args.prepend)
  File "debian/ungoogled-upstream/ungoogled-chromium/utils/patches.py", line 97, in merge_patches
    source_dir, patch_intersection))
FileExistsError: Patches from debian/ungoogled-upstream/ungoogled-chromium/patches have conflicting paths with other sources:
...

at which point I gave up.

Eloston commented 5 years ago

Yeah, I am not too happy about this either. I will look into it, but it will take me some time.

I will try to keep things as Debian-like as possible, but I will probably take some shortcuts (e.g. use some more bundled libraries instead of system libraries) since I don't have that much time to patch these kinds of dependencies.

zrose584 commented 5 years ago

Hi, I also tried to port the patches to chromium 78: https://github.com/zrose584/ungoogled-chromium-debian/tree/zrose584_deb10_78

But currently I have no idea if they work.. it starts building though

zrose584 commented 5 years ago

@nurupo Make sure your debian/patches/series file didn't changed. The only change I made was to remove gcc6/atomic.patch, as this patch is obsolete now.

edit: I think we can't use use_system_harfbuzz=true anymore, since the required harfbuzz-subset is not in any debian repositorys yet.

nurupo commented 5 years ago

@zrose584 thank you for the concern but I have deleted all my files/patches. No point in keeping them if I can't get it to work.

nurupo commented 5 years ago

If I remember right, the gcc6/atomic.patch you have mentioned was already applied in the upstream.

I believe I had one more obsolete patch though. There was a patch that patched only no longer existing files. I didn't bother checking git to see if the files were renamed/moved so I excluded that patch too.

zrose584 commented 5 years ago

It seems like official patches got released yesterday, here the changelog. Yet nothing on salsa, but probably won't take too long..

tangalbert919 commented 5 years ago

Knowing Debian, they probably won't update their salsa until they have Chromium 78 in their testing or stable branches, so it could take a while.

In the meantime, I could just update the patches in the Ubuntu branches right now, since Ubuntu has already released their patches for that version in their package archive.

zrose584 commented 5 years ago

FIY I integrated the official debian patches over on my fork. I had to edit some patches, and even generate new ones to make it work. There are also many duplicate patches now..

You can see exactly what commands I used over on OBS, since thats what I used to build it: link.

I had to use clang-7 since OBS does not provide backported packages for buster. Luckily it just worked anyways. I now wonder.. what is the reason of using clang instead of gcc? The debian patches are specifically made for gcc, and potentially even break compilation with clang.

Btw, I partially used OBS in hope of showing @Eloston a way of automating the debian builds, since that seems to be discussed for more than 3 years now.

Eloston commented 5 years ago

I now wonder.. what is the reason of using clang instead of gcc? The debian patches are specifically made for gcc, and potentially even break compilation with clang.

There's no strong reason. When I started ungoogled-chromium, I thought it made more sense to use the compiler that Chromium officially uses, since I thought it would produce more efficient builds and require fewer changes to Chromium. As of now, I don't know how much GCC vs LLVM has on efficiency, but it does eliminate the need for GCC patches. If there is a strong reason to, we could change it back to GCC.

tangalbert919 commented 5 years ago

The patches have been updated. Now it's just a matter of finding out if it builds.

EDIT: Thanks, @Eloston.

Eloston commented 5 years ago

@zrose584 It's interesting to see that OBS builds Chromium so quickly. It looks promising; could you post your findings to https://github.com/Eloston/ungoogled-chromium/issues/17? I'm also wondering if there is a way to add packages from backports (or apt.llvm.org).

@tangalbert919

The patches have been updated. Now it's just a matter of finding out if it builds.

Right now they don't. Trying out some changes before I push again.

nurupo commented 5 years ago

Salsa repo got updated a couple days ago. Also, Debian's Chromium includes the VAAPI patch now.

zrose584 commented 5 years ago

What I found was that the chromium_78.0.3904.87.orig.tar.xz (250MB) has many files removed compared to chromium-78.0.3904.87.tar.xz (740MB). Deleting these files did not only reduce compile time, but also made some unoffical patches unnecesary which I had to make and use before. But most importantly, after removing the files, the chromium build stopped crashing on shutdown. I applied no further patches, just removed files. For this I added make_lite.py. I created make_lite_list.txt by diffing the directories. I suggest you add this to master.

tangalbert919 commented 5 years ago

Right now, I've got some changes currently in the works to make debian_buster buildable while also addressing the unknown warning spam problem. I'll probably have those changes ready by the end of today.

Eloston commented 5 years ago

Update: I pushed some new changes to debian_buster. I still need to confirm that the new changes are enough for a working build.

Eloston commented 5 years ago

I should note a few new changes in the new commits:

tangalbert919 commented 5 years ago

I am currently testing to see if these changes are enough for a working build right now in a Virtual Machine. This will take an hour or two.

Eloston commented 5 years ago

Done as of 94a07d5eae92df9b25fa1c22a732557d703ba11e