
Hi! On 24.04.2024 14:17, Daryl F wrote:
Hi all,
I use a docker snapshot environment to create accurate footprints for the ports in the df repo. Ports are built in isolation to ensure there is no parasitic interaction in dependencies. This has worked well for several years. It catches missing dependencies and generates footprints that may end up reporting NEW items but never MISSING items.
This methodology is broken by this test in the qt6-webengine Pkgfile:
if [[ ! -e /usr/lib/qt6/plugins/printsupport/libcupsprintersupport.so ]]; then printf '\e[31m%s\e[m\n' " opt/qt6-base is not build with opt/cups support, and opt/qt6-webeninge depends on it! Please make sure opt/cups is installed, then rebuild opt/qt6-base. After that, you can attempt to build opt/qt6-webengine again. " exit 1 fi
Because qt6-base is never built when cups is installed since it is not a dependency listed in qt6-base the build of qt6-webengine always fails.
This is not a problem in my desktop environment. I use cups so it is already installed when I build qt6-base.
So far, so good! I think that's true for a lot of people.
This kind of hidden requirement in qt6-webengine breaks my quality control methods. For now all I can do is maintain my own port of qt6-base with cups listed in the dependencies.
True, I have to work around it with my tooling as well to account for this fact and it makes life certainly not easier.
However, I suggest that this kind of test in qt6-webengine violates the tried-and-true intent of the dependency list in a Pkgfile in subtle ways and precludes some automation tools.
I take myself as an example: not everybody wants cups. I don't even own a printer anymore and rarely print anything at all. So, on a machine that installs qt6-webeninge, I will have cups installed, but on machines that don't I am surely not installing cups. The logic is there to account for both use cases, and leads to a slimmer dependency chain for a default install.
I understand that not everyone that wants qt6-base wants cups but almost everthing that uses qt6-webengine does else the Print function in apps like qutebrowser can print but can only save to disk.
I don't think including cups in qt6-base is much of a hit. Anyone using qt6-*anything* is already taking a huge hit in resources. Just because cups is installed with qt6-base no one has to start the cups daemon unless they specifically choose to in the their rc.conf.
cups is simply not needed for qt6-base, therefor I put it down as an optional dependency. While it might not be a big hit, but its a design choice to try and make all the things not needed for basic install optional. So while it hurts our tooling, I am very much leaning towards leaving it as it is.
Again, thanks to the dev team for their hard work providing the best distro around.o
Any suggestions? Comments?
Thanks for sharing your mind and again, sorry for having to wait for an answer. I hope that you can find a solution for your builds in the docker container, usually I run checks in my script that figures out if my buildcontainer is setup correctly, otherwise it installs/rebuilds ports, e.g. for qt6-webengine it will install xkeyboard-config, rebuild libxkbcommon, then installs cups and rebuilds qt6-base to finally build qt6-webengine. :-)
-Daryl
Best regards, Tim