Bug 280268

Summary: www/ungoogled-chromium: add the ability to build with any set of audio backends, including without sound for headless usage
Product: Ports & Packages Reporter: Vladimir Druzenko <vvd>
Component: Individual Port(s)Assignee: freebsd-chromium (Nobody) <chromium>
Status: Closed FIXED    
Severity: Affects Some People CC: dsh, grahamperrin, jonc, nenet54324, o.hushchenkov, rnagy
Priority: --- Flags: bugzilla: maintainer-feedback? (chromium)
Version: Latest   
Hardware: Any   
OS: Any   
Attachments:
Description Flags
v1 vvd: maintainer-approval?

Description Vladimir Druzenko freebsd_committer freebsd_triage 2024-07-14 00:20:07 UTC
Created attachment 252029 [details]
v1

Tested build in poudriere 14.1 amd64 with ALSA only and without sounds + run both versions.
Comment 1 Robert Nagy freebsd_committer freebsd_triage 2024-07-16 11:54:07 UTC
Hi

I will not take this. If you want to disable Audio completely,
then you can have one option to disable audio from the build completely,
but I do not want to re-add options for all the backends.
Comment 2 Vladimir Druzenko freebsd_committer freebsd_triage 2024-08-04 11:28:31 UTC
I don't need sndio and pulse in any form. What's the problem with keeping these options? I need to apply my patches every time the port is updated - it takes much longer than just keeping them in the port (they don't require any maintenance).
Comment 3 Robert Nagy freebsd_committer freebsd_triage 2024-08-05 05:15:11 UTC
I give up. Let's add more knobs back, even though I did not hear a proper argument of why so far. I will make a diff for all of the chromium based ports.
Comment 4 commit-hook freebsd_committer freebsd_triage 2024-08-05 15:16:50 UTC
A commit in branch main references this bug:

URL: https://cgit.FreeBSD.org/ports/commit/?id=18a8d77e0e182d2188cc6b8dbb9ebac63d71d16d

commit 18a8d77e0e182d2188cc6b8dbb9ebac63d71d16d
Author:     Robert Nagy <rnagy@FreeBSD.org>
AuthorDate: 2024-08-05 15:00:16 +0000
Commit:     Robert Nagy <rnagy@FreeBSD.org>
CommitDate: 2024-08-05 15:16:14 +0000

    www/{*chromium,iridium}: bring back audio knobs

    It seems that 683K worth of libs are too much dependencies.

    PR: 280268

 www/chromium/Makefile                              | 37 ++++++++++++----------
 www/chromium/distinfo                              |  4 +--
 www/chromium/files/patch-media_audio_BUILD.gn      | 11 ++++---
 www/iridium/Makefile                               | 35 +++++++++++---------
 www/iridium/distinfo                               |  4 +--
 www/iridium/files/patch-media_audio_BUILD.gn       | 11 ++++---
 www/ungoogled-chromium/Makefile                    | 37 ++++++++++++----------
 www/ungoogled-chromium/distinfo                    |  4 +--
 .../files/patch-media_audio_BUILD.gn               | 11 ++++---
 9 files changed, 86 insertions(+), 68 deletions(-)
Comment 5 Oleh Hushchenkov 2024-08-05 16:07:33 UTC
(In reply to Robert Nagy from comment #3)

Thank you for working on chromium port.

After this change, people who can't build chromium locally have no possibility to use other audio backends but sndio.

If internal audio backend selection logic is still there, it would be better to enable all 3 backends by default as it was before this PR.

The reporter still be able to disable undesired backends by added port options.
Comment 6 Robert Nagy freebsd_committer freebsd_triage 2024-08-05 16:14:06 UTC
(In reply to Oleh Hushchenkov from comment #5)

Yes the logic is still there, so all three can be enabled by default.
That's fine by me.
Comment 7 Oleh Hushchenkov 2024-08-05 16:40:35 UTC
(In reply to Robert Nagy from comment #6)

This port affects a lot of people, that have different priorities.
One wants minimal dependency, another wants best supported but huge pulseaudio, one builds it locally, another can't do it due to highend pc required for builds.
Very hard to satisfy everyones need.

I think that following previous approach, to not make pulse as a dependency, and enabling all three audio backends by default(preserving port options to disable undesired backends) will satisfy everyone.

However I don't know how it affects maintainability of the port.

Probably, it's better to wait for other people who will come here after last commit to say that it breaks their use case. To see if there will be some consensus among them.

And thanks again.
Comment 8 Vladimir Druzenko freebsd_committer freebsd_triage 2024-08-05 22:28:29 UTC
(In reply to commit-hook from comment #4)
This is not what I suggested to do - see my patch, which is attached to this PR.
My patch did not assume any changes for current users of binary packages. Only the ability to disable unnecessary sound backends during manual build.
Comment 9 Mathieu Bâl 2024-08-06 11:00:33 UTC
(In reply to Robert Nagy from comment #3)

I don't use Chromium, but the lack of options was never among the reasons why. Now it is.

Allow me to introduce myself: I am the Priest of the Church of Minimalism. Our Church is relatively new, so it's likely you haven’t heard of us. Like any religion, we have our dogmas—though we prefer to call them "Truths." And being a new faith, we also have Truths about software development.

Our central Truth states, "Everything that can be configurable must be configurable." This is not merely about the size of libraries but, rather, about freedom. And freedom, in turn, leads to prosperity.

Naturally, we have rituals. One of these involves manually counting packages before and after each execution of 'pkg install/delete/upgrade/autoremove.' After counting, the results are recorded in the Grand Book of Sinister Imperfections, which is my solemn duty to maintain.

It may be hard to believe, but this is how our Prophet taught us.

May the light of wisdom be with you!
Comment 10 Vladimir Druzenko freebsd_committer freebsd_triage 2024-08-06 16:22:29 UTC
(In reply to Mathieu Bâl from comment #9)
Thanks, made me laugh! :-D
Comment 11 Jonathan Chen 2024-08-06 19:21:24 UTC
Why have we put audio knobs back into the port? I actually preferred the dynamic selection, which picked up whichever sound-backend that the user had actually installed on their system.
Comment 12 Robert Nagy freebsd_committer freebsd_triage 2024-08-06 20:11:50 UTC
(In reply to Jonathan Chen from comment #11)

That did not change. You will get all backends enabled by default with
a user setting available in chrome://flags.