[Aptitude-devel] Bug#948341: Bug#948338: [libapt-pkg-dev] apt-pkg headers pollute preprocessor namespace

Julian Andres Klode jak at debian.org
Tue Jan 7 15:18:54 GMT 2020


Control: tag -1 - wontfix

On Tue, Jan 07, 2020 at 03:56:08PM +0100, Julian Andres Klode wrote:
> Control: clone -1 -2
> Control: reassign -2 aptitude
> Control: tag -1 wontfix
> 
> On Tue, Jan 07, 2020 at 03:16:18PM +0100, Giovanni Mascellani wrote:
> > Package: libapt-pkg-dev
> > Version: 1.8.4
> > Severity: normal
> > 
> > Hi,
> > 
> > apt-pkg headers pollute the preprocessor namespace, causing breakage in
> > unrelated libraries; for example, /usr/include/apt-pkg/error.h contains
> > the following line:
> > 
> > #define _error _GetErrorObj()
> 
> There's nothing we can do about that, sorry. _error is a vital part of
> the API.

I spoke too soon, we can turn the define into

static struct {
	inline GlobalError* operator ->() { return _GetErrorObj(); }
} _error APT_UNUSED;

I guess. Adding this to the next 1.9 upload for experimental.

I mean, we could also make _error a GlobalError directly and add
the operator->() to that with the next ABI break. OK, I guess we'd
make it an GlobalError:instance then and add a using
_error = GlobalError:instance or something to avoid using
_error as a symbol name.

> 
> > This will cause aptitude to FTBFS as soon as boost1.71 is made the
> > default Boost version, so please fix this as soon as possible.
> 
> This is going to need a change in aptitude then.

Assuming this works well, the fixed version will hit unstable around
March. Obviously aptitude can still fix it themselves, by including
the apt headers last.

-- 
debian developer - deb.li/jak | jak-linux.org - free software dev
ubuntu core developer                              i speak de, en
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: not available
URL: <http://alioth-lists.debian.net/pipermail/aptitude-devel/attachments/20200107/ce42813b/attachment.sig>


More information about the Aptitude-devel mailing list