Mailing List Archive

world update problem again
Hi. So, on my latest attempt at a world update today, I am getting a
crazy problem with libpng, with some packages insisting on the use
flag -apng (portage made me put it in), but other packages insisting
on the use flag apng.

Here is the actual portage output:

Total: 232 packages (198 upgrades, 2 downgrades, 2 new, 6 in new
slots, 24 reinstalls, 2 uninstalls), Size of downloads: 3,451,440
KiB^M
Conflict: 3 blocks (all satisfied)^M
^M
!!! Multiple package instances within a single package slot have been
pulled^M
!!! into the dependency graph, resulting in a slot conflict:^M
^M
media-libs/libpng:0^M
^M
(media-libs/libpng-1.6.37-r2:0/16::gentoo, ebuild scheduled for
merge) USE="-apng -static-libs" ABI_X86="(64) -32 (-x32)"
CPU_FLAGS_X86="sse" pulled in by^M
media-libs/libpng:=[-apng] required by
(www-client/chromium-98.0.4710.4-r1:0/dev::gentoo, ebuild
scheduled for merge) USE="cups hangouts js-type-check official
(pic) proprietary-codecs suid system-harfbuzz system-png
(-component-build)\ -custom-cflags -debug (-headless) -kerberos
-pulseaudio -screencast (-selinux) (-system-ffmpeg) -system-icu
-vaapi -wayland -widevine" ABI_X86="(64)" L10N="am ar bg bn ca
cs da de el en-GB es es-419 et fa fi fil fr gu he hi hr hu id it
ja\ kn ko lt lv ml mr ms nb nl pl pt-BR pt-PT ro ru sk sl sr sv
sw ta te th tr uk vi zh-CN zh-TW"^M
^^^^^
\
\
^M
^M
(media-libs/libpng-1.6.37-r2:0/16::gentoo,
installed) USE="apng -abi_riscv_ilp32
-abi_riscv_ilp32d -abi_riscv_lp64
-abi_riscv_lp64d -static-libs"
ABI_X86="(64) -32 (-x32)"
CPU_FLAGS_X86="sse" pulled in by^M
>=media-libs/libpng-1.6.35:0=[apng]
required by
(www-client/firefox-94.0.2:0/94::gentoo,
ebuild scheduled for merge)
USE="clang dbus gmp-autoupdate
openh264 system-av1
system-harfbuzz system-icu
system-jpeg system-libevent
system-webp \-debug -eme-free
-geckodriver -hardened -hwaccel
-jack -lto -pgo -pulseaudio
-screencast (-selinux) -sndio
-system-libvpx -wayland -wifi"
ABI_X86="(64)" L10N="-ach -af -an
-ar -ast -az -be -bg -bn -br -bs
-ca -ca-valencia -cak -cs -cy -da
\-de -dsb -el -en-CA -en-GB -eo
-es-AR -es-CL -es-ES -es-MX -et
-eu -fa -ff -fi -fr -fy -ga -gd
-gl -gn -gu -he -hi -hr -hsb -hu
-hy -ia -id -is -it -ja -ka -kab
-kk -km -kn -ko -lij -lt -lv -mk
-mr -ms -my -nb -ne -nl -nn -oc
-pa -pl -pt-B\R -pt-PT -rm -ro -ru
-sco -si -sk -sl -son -sq -sr -sv
-szl -ta -te -th -tl -tr -trs -uk
-ur -uz -vi -xh -zh-CN -zh-TW"^M
^^^^
\
\
\
^M
>=media-libs/libpng-1.6.35:0=[apng]
required
by
(mail-client/thunderbird-91.3.2:0/91::gentoo,
ebuild
scheduled
for
merge)
USE="clang
dbus
openh264
system-av1
system-harfbuzz
system-icu
system-jpeg
system-libevent
system-webp
-debug
-em\e-free
-hardened
-hwaccel
-jack
-lto
(-pgo)
-pulseaudio
(-selinux)
-sndio
-system-libvpx
-wayland
-wifi"
ABI_X86="(64)"
L10N="-af
-ar
-ast
-be
-bg
-br
-ca
-cak
-cs
-cy
-da
-de
-dsb
-el
-en-CA
-en-GB
-es-AR
-es-ES
-et
-eu
-fi
-fr
-fy
-ga
-g\d
-gl
-he
-hr
-hsb
-hu
-id
-is
-it
-ja
-ka
-kab
-kk
-ko
-lt
-lv
-ms
-nb
-nl
-nn
-pa
-pl
-pt-BR
-pt-PT
-rm
-ro
-ru
-sk
-sl
-sq
-sr
-sv
-th
-tr
-uk
-uz
-vi
-zh-CN
-zh-TW"^M
^^^^
\
\
^M
^M

Thanks in advance for any suggestions.

--
Your life is like a penny. You're going to lose it. The question is:
How do
you spend it?

John Covici wb2una
covici@ccs.covici.com
Re: world update problem again [ In reply to ]
On Tue, 30 Nov 2021 at 14:20, John Covici <covici@ccs.covici.com> wrote:
>
> Hi. So, on my latest attempt at a world update today, I am getting a
> crazy problem with libpng, with some packages insisting on the use
> flag -apng (portage made me put it in), but other packages insisting
> on the use flag apng.
>
> Thanks in advance for any suggestions.

That is a direct conflict between chromium and firefox/thunderbird.
You can avoid it by removing the system-png flag from chromium.

Regards,
Arve
Re: world update problem again [ In reply to ]
On Tue, 2021-11-30 at 14:27 +0100, Arve Barsnes wrote:
> > Hi.  So, on my latest attempt at a world update today, I am getting a
> > crazy problem with libpng, with some packages insisting on the use
> > flag -apng (portage made me put it in), but other packages insisting
> > on the use flag apng.
> >
> > Thanks in advance for any suggestions.
>
> That is a direct conflict between chromium and firefox/thunderbird.
> You can avoid it by removing the system-png flag from chromium.

This has been a hotly debated topic recently. For more backstory, see
this bug: https://bugs.gentoo.org/824018
Re: world update problem again [ In reply to ]
On Tue, 30 Nov 2021 08:27:14 -0500,
Arve Barsnes wrote:
>
> On Tue, 30 Nov 2021 at 14:20, John Covici <covici@ccs.covici.com> wrote:
> >
> > Hi. So, on my latest attempt at a world update today, I am getting a
> > crazy problem with libpng, with some packages insisting on the use
> > flag -apng (portage made me put it in), but other packages insisting
> > on the use flag apng.
> >
> > Thanks in advance for any suggestions.
>
> That is a direct conflict between chromium and firefox/thunderbird.
> You can avoid it by removing the system-png flag from chromium.

Thanks, that did it!! This seems to have been a new flag, not seen
before -- thanks again.

--
Your life is like a penny. You're going to lose it. The question is:
How do
you spend it?

John Covici wb2una
covici@ccs.covici.com
Re: world update problem again [ In reply to ]
On Tue, Nov 30, 2021 at 8:27 AM Arve Barsnes <arve.barsnes@gmail.com> wrote:
>
> On Tue, 30 Nov 2021 at 14:20, John Covici <covici@ccs.covici.com> wrote:
> >
> > Hi. So, on my latest attempt at a world update today, I am getting a
> > crazy problem with libpng, with some packages insisting on the use
> > flag -apng (portage made me put it in), but other packages insisting
> > on the use flag apng.
> >
> > Thanks in advance for any suggestions.
>
> That is a direct conflict between chromium and firefox/thunderbird.
> You can avoid it by removing the system-png flag from chromium.

That issue will probably never hit stable, and I would make a note to
revisit it in a few weeks. The next Council agenda includes resolving
the conflict, though that isn't a guarantee it will happen. Once the
change is settled you'll probably want to revert all your USE flag
changes to the new defaults unless you have a strong personal
preference.

A little background for the curious, and I'll just try to stick to the
factual narrative and what the main opinions are:

Apng is an extension for the png file format that apparently adds
support for animation, and may also have other improvements.

Mozilla products ship with a bundled version of libpng that includes a
patch for apng support. Chromium ships with a bundled version of
libpng that is just the vanilla upstream version.

The apng patch was submitted to libpng ages ago and was not accepted
at that time. There is debate about whether it might be accepted in
the near future.

Some distros shipped the apng patch with libpng, and Gentoo has done
so by default for a while. Over time every other distro seems to have
removed this patch, and Gentoo is the only distro patching libpng for
apng support.

Right now Gentoo's mozilla packages build against the system libpng
and not the bundled one, which means they don't work right if the apng
patch isn't in the system library. Chromium has a use flag that
toggles whether it uses the system libpng, and if it is using the
system version it won't work unless the system libpng DOESN'T include
the apng patch. So, without further patching (likely significant) you
can't have both packages use the system libpng at the same time.

That's basically it for the facts - I don't think any of the above is
disputed. Now onto the implications/policy side:

Obviously everybody prefers system libraries over bundled libraries,
and everybody prefers unpatched upstream packages over patches not
likely to be accepted by upstream. Of course, both of those cannot be
satisfied at the same time here.

Council has been asked to approve removing the apng patch by default
from libpng, using bundled libpng by default on mozilla, and using
system libpng by default on chromium. The argument here is that
having a system library with non-standard patches that no other distro
applies could cause other issues and generally deviates from the
Gentoo way, and since at least one of the browsers will have to use
bundled libs by default it might as well be the one that uses
non-standard versions of those libs (which is already a common issue
with bundled libs in browsers - or at least it is with chromium though
in this case it is mozilla doing it).

The main counterargument is that neither option is ideal and so we
should maintain the current state, and maybe see if those apng patches
get accepted upstream.

The reason you're getting the USE flag conflicts is because chromium
has started to implement the change that they asked the council to
approve, but since they can only touch their own package we end up
with a conflict. I doubt we'll see that make it to stable (unless
council approves the change and the other packages are modified to
eliminate the conflict) but anybody running the latest and greatest
gets to deal with the conflict in the meantime.

The gory details are in this bug - please do not comment there just to
offer opinions:
https://bugs.gentoo.org/824018

--
Rich
Re: world update problem again [ In reply to ]
On Tue, 2021-11-30 at 09:18 -0500, Rich Freeman wrote:
> A little background for the curious, and I'll just try to stick to the
> factual narrative and what the main opinions are:

Thank you for a good, objective breakdown.

Gentoo is in an awkward position here: as was discussed in the bug, it
isn't simply a matter of setting libpng[-apng] by default, letting
Mozilla bundle their own libpng, and moving on with life. Other
programs on Gentoo systems, built against libpng over the years with
apng support, will suddenly *not* have it, and this situation could
cause problems and data loss for users.

I'm not a (Gentoo) dev, and I don't have strong feelings either way,
but it is an unenviable position to be in. Regardless, I have trust
that things will be resolved reasonably in the end.
Re: world update problem again [ In reply to ]
On Tue, Nov 30, 2021 at 9:59 AM Matt Connell (Gmail)
<matthewdconnell@gmail.com> wrote:
>
> On Tue, 2021-11-30 at 09:18 -0500, Rich Freeman wrote:
> > A little background for the curious, and I'll just try to stick to the
> > factual narrative and what the main opinions are:
>
> Gentoo is in an awkward position here: as was discussed in the bug, it
> isn't simply a matter of setting libpng[-apng] by default, letting
> Mozilla bundle their own libpng, and moving on with life. Other
> programs on Gentoo systems, built against libpng over the years with
> apng support, will suddenly *not* have it, and this situation could
> cause problems and data loss for users.
>

So now we're getting more into personal opinion. Those same users
will suffer data loss if they open the same files on any other linux
distro or likely windows/OSX/etc versions of the same software,
because they don't use the patched version of libpng. I certainly
don't have any objection to a heads-up news item when the change hits,
but do we REALLY want to package system libraries that have behavior
that is unique to Gentoo, and not the same as even what the upstream
devs expect?

We had a similar situation when it came out that our version of an
Etherium client (I think that was it) had some custom patches by
default, which were eventually turned off by default. The patches
were somewhat controversial, and while I think anybody should be free
to use them (they didn't create compatibility issues with the
blockchain per se), it is surprising behavior. This is the same
reason that we don't go putting affiliate links into search boxes on
our browsers like many distros do (which can be a significant source
of revenue). Sure, we could patch our browsers to basically give
Gentoo a small cut anytime a user searches for anything, or charge
search engines to be the default in all our packaged browsers, but it
just isn't the way we normally do things (and those changes are IMO
more transparent anway - at least the affiliate links are).

Now, if somebody wants to run that patch by upstream libpng and it
shows signs of getting accepted then by all means hold off until that
is settled. The goal is to stick to upstream, and we can always
release the change ahead of them (in this case more than a decade
ahead of them).

Really though this issue has been going on forever so there is no
reason to go breaking stuff until a final decision is made and we can
do an orderly transition. I think the change is a good one, but it
would have been a good one in 2010 too.

--
Rich
Re: world update problem again [ In reply to ]
On 30/11/2021 14:18, Rich Freeman wrote:
> On Tue, Nov 30, 2021 at 8:27 AM Arve Barsnes<arve.barsnes@gmail.com> wrote:
>> On Tue, 30 Nov 2021 at 14:20, John Covici<covici@ccs.covici.com> wrote:
>>> Hi. So, on my latest attempt at a world update today, I am getting a
>>> crazy problem with libpng, with some packages insisting on the use
>>> flag -apng (portage made me put it in), but other packages insisting
>>> on the use flag apng.
>>>
>>> Thanks in advance for any suggestions.
>> That is a direct conflict between chromium and firefox/thunderbird.
>> You can avoid it by removing the system-png flag from chromium.
> That issue will probably never hit stable, and I would make a note to
> revisit it in a few weeks. The next Council agenda includes resolving
> the conflict, though that isn't a guarantee it will happen. Once the
> change is settled you'll probably want to revert all your USE flag
> changes to the new defaults unless you have a strong personal
> preference.

I know we're encouraged to use a directory for package.use nowadays, and
this is a perfect example why.

Create a file called "chromium" or "firefox" (whicever makes most sense
to you), and put all the assorted flags you need to fix the issue in there.

So when you decide you want to revert all those changes, you can just
delete that file, and bingo ...

Or just make all those changes dependent on the current version of
chromium/firefox. So when you update you may have to re-visit the
problem, or it may just solve itself.

Cheers,
Wol