Angelfish has a built-in ad blocker based on the Rust adblock crate from the Brave developers. This feature is missing from the Fedora package because Corrosion and other build-time dependencies are not BuildRequired. Reproducible: Always Steps to Reproduce: 1. Check the build.log. Actual Results: -- The following RECOMMENDED packages have not been found: * Corrosion, CMake scripts to seamlessly build and link to targets using cargo, <https://github.com/AndrewGaspar/corrosion> Required to build the builtin adblocker Expected Results: The ad blocker is built. In addition to Corrosion, you will need cargo (though Corrosion should already be Requiring it), rust-adblock, rust-cxx-build, and rust-cxx. You may also need to hack things up so that it can build offline, ask the Rust SIG if you need help.
The status of the dependencies: * corrosion: missing, review request: bug #2209376 (submitted 17 days ago, no response yet) * rust-adblock: missing, no review request yet * rust-cxx-build: available: https://src.fedoraproject.org/rpms/rust-cxx-build * rust-cxx: available: https://src.fedoraproject.org/rpms/rust-cxx
The Debian package has the same issue, so I have reported it to them too: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1037279
Once corrosion and the adblock crate are packaged for Fedora, it should be relatively straightforward to adapt this package. - add BR: corrosion - add BR: cargo-rpm-macros - add %cargo_prep at the end of %prep (this prepares an offline build environment for cargo) - add %generate_buildrequires section and run %cargo_generate_buildrequires in the directory that contains the Rust extension (this will automatically generate dependencies for all required Rust libraries) Note that you might need to adapt the license tag of this package after this change. All Rust code that's needed at runtime will be statically linked into angelfish, so the licenses of these components will need to be taken into account. The %cargo_license / %cargo_license_summary macros can help with this (run them in the same directory as %cargo_generate_buildrequires).
Corrosion is now available in Rawhide (and F38 / F37 updates are pending). The corrosion spec file could serve as an example of how to handle a mixed CMake / Rust project. If you need help with packaging the "adblock" crate and / or adapting the angelfish packaging, let me know.
So, with Corrosion now available: https://src.fedoraproject.org/rpms/corrosion (thanks Fabio!), rust-adblock is the one missing dependency.
If the package maintainer is actually interested in enabling the AdBlock functionality, I can help with packaging the "adblock" crate. But I won't spend time on that for now, since the maintainer hasn't responsed to this bug at all yet.
I am willing to comaintain Angelfish to add the Rust Adblock support. I already comaintain qt5-qtwebengine and maintain (with comaintainers) Falkon, so I am familiar with QtWebEngine browsers. I am not familiar with Rust stuff, but I hope Fabio would help me with that. So, Onuralp, can I please get commmit (or if you wish admin, but I only really need commit) access on Angelfish? (Technically, I could do the commits as a provenpackager, but I would rather not do this kind of changes without explicitly approved commit access, because they are not really what provenpackager is for.) Fabio, I would be interested in your help, but I am now also waiting for the maintainer (or at least someone else from the KDE SIG, the entire group is listed as co-admins on the package) to respond.
(In reply to Kevin Kofler from comment #7) > I am willing to comaintain Angelfish to add the Rust Adblock support. I > already comaintain qt5-qtwebengine and maintain (with comaintainers) Falkon, > so I am familiar with QtWebEngine browsers. I am not familiar with Rust > stuff, but I hope Fabio would help me with that. So, Onuralp, can I please > get commmit (or if you wish admin, but I only really need commit) access on > Angelfish? (Technically, I could do the commits as a provenpackager, but I > would rather not do this kind of changes without explicitly approved commit > access, because they are not really what provenpackager is for.) > > Fabio, I would be interested in your help, but I am now also waiting for the > maintainer (or at least someone else from the KDE SIG, the entire group is > listed as co-admins on the package) to respond. I sent a ping to neal in Matrix. Feel free to come bug him there, but I don't see why he wouldn't like the help!
I've given you commit privileges to angelfish, Kevin.
Great, thank you! Fabio, I would appreciate your help with the rust-adblock packaging.
kdepim-addons 24.02 can now also use rust-adblock for a KMail plugin. Unfortunately, the maintainers decided to bundle it: https://src.fedoraproject.org/rpms/kdepim-addons/c/d18a2b6d8e143773216b8bfb13b4b459c410d66e?branch=rawhide instead of packaging it for Angelfish and others to benefit.
Filed bug #2266623 against kdepim-addons.
Note that I would also expect Falkon and/or Konqueror to start wanting this dependency sooner or later, considering that it supports more complex ad blocking rules than those browsers' current ad blocking implementation.
We have rust-adblock now, kdepim-addons builds against it successfully, so I will now look into enabling this for Angelfish.
Actually, this was already enabled by 2 KDE SIG folks (Yaakov Selkowitz enabled bundled adblock on Feb 5, and Steve Cossette switched to system adblock on Mar 26). Closing.