Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 383783 - media-libs/libpng: should not use macro OF
Summary: media-libs/libpng: should not use macro OF
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All Linux
: Normal trivial (vote)
Assignee: Gentoo's Team for Core System packages
URL:
Whiteboard:
Keywords:
Depends on: 383179
Blocks:
  Show dependency tree
 
Reported: 2011-09-20 07:31 UTC by Martin von Gagern
Modified: 2022-06-04 08:36 UTC (History)
2 users (show)

See Also:
Package list:
Runtime testing required: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Martin von Gagern 2011-09-20 07:31:32 UTC
/usr/include/libpng15/pngconf.h from media-libs/libpng-1.5.4 declares its PNGARG macro to equal the OF macro from zlib if the latter has been defined. Bug 383179 gets rid of that macro, renaming it to _Z_OF instead, and argues that OF is such a common name that applications should be allowed to use it freely.

So by the same argument, libpng shouldn't be using that macro if it is available, because as applications start using that name for their own purposes, the fact that it is defined says nothing about its semantics. Furthermore, there is nothing to be gained from using it, as there are very few non-standard K&R style compilers out there (does Gentoo support any of them? I doubt it!), and even for those, the _NO_PROTO switch should be sufficient to make PNGARG do the appropriate thing.

While packages are being converted to work around bug 383179, they might be tempted to #define OF _Z_OF or, equivalently, add -DOF=_Z_OF to their preprocessor flags. If one of those packages includes the png headers but fails to include the zlib ones, then OF is defined but _Z_OF is not, causing the latter to remain in place, which can lead to strange errors. Yes I know, this practice should be discouraged in any case, but nevertheless, users trying this might lead to strange reports like my own sad bug #383731.
Comment 1 SpanKY gentoo-dev 2011-09-20 17:09:22 UTC
we can probably have the ebuild force:
#define PNGARG(x) x
Comment 2 Pacho Ramos gentoo-dev 2018-04-18 08:57:10 UTC
it looks solved in 1.6.34
Comment 3 Sam James archtester Gentoo Infrastructure gentoo-dev Security 2022-06-04 08:36:19 UTC
(In reply to Pacho Ramos from comment #2)
> it looks solved in 1.6.34

Indeed: https://github.com/glennrp/libpng/commit/baeb6d1e920ecfc321b1d5e7291345dcb424d205