Your message dated Wed, 15 Jan 2020 22:34:36 +0000 with message-id <E1irrFE-000B9N-Tq@fasolo.debian.org> and subject line Bug#948338: fixed in apt 1.9.6 has caused the Debian Bug report #948338, regarding [libapt-pkg-dev] apt-pkg headers pollute preprocessor namespace to be marked as done. This means that you claim that the problem has been dealt with. If this is not the case it is now your responsibility to reopen the Bug report if necessary, and/or fix the problem forthwith. (NB: If you are a system administrator and have no idea what this message is talking about, this may indicate a serious mail system misconfiguration somewhere. Please contact owner@bugs.debian.org immediately.) -- 948338: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=948338 Debian Bug Tracking System Contact owner@bugs.debian.org with problems
--- Begin Message ---
- To: submit@bugs.debian.org
- Subject: [libapt-pkg-dev] apt-pkg headers pollute preprocessor namespace
- From: Giovanni Mascellani <gio@debian.org>
- Date: Tue, 7 Jan 2020 15:16:18 +0100
- Message-id: <[🔎] f000d300-b9eb-2e21-05eb-21de0cc2225e@debian.org>
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() which is likely to cause errors in any other header that uses the token "_error", even for internal interfaces. Unfortunately preprocessor macro are always global, so it is important to have some discipline and avoid defining macros for tokens that are easily used in other headers. Please, try to avoid this definition, namespace it (for example renaming it to "apt_pkg_error") or ensure it is undefined at each exit from the public-facing headers in apt-pkg. In the specific case, this library conflicts with Boost.Flyweight from Boost 1.71 (not yet the default Boost version in Debian, but going to become). You can see this happening if you install libboost1.71-dev from unstable together with libapt-pkg-dev and try to compile this little C++ program: > $ make test > g++ test.cpp -o test > In file included from test.cpp:1: > /usr/include/boost/parameter/aux_/pack/make_arg_list.hpp:234:15: error: expected nested-name-specifier before ‘_GetErrorObj’ > 234 | using _error = ::boost::mp11::mp_if< > | ^~~~~~ > /usr/include/boost/parameter/aux_/pack/make_arg_list.hpp:288:13: error: call to non-‘constexpr’ function ‘GlobalError* _GetErrorObj()’ > 288 | , _error > | ^~~~~~ > In file included from /usr/include/boost/parameter/parameters.hpp:84, > from /usr/include/boost/flyweight/detail/value_tag.hpp:17, > from /usr/include/boost/flyweight/detail/default_value_policy.hpp:19, > from /usr/include/boost/flyweight/flyweight.hpp:21, > from /usr/include/boost/flyweight.hpp:16, > from test.cpp:2: > /usr/include/boost/parameter/aux_/pack/make_arg_list.hpp:290:9: error: type/value mismatch at argument 7 in template parameter list for ‘template<class List, class DeducedArgs, class TagFn, class IsPositional, class UsedArgs, class ArgumentPack, class Error, class EmitsErrors> struct boost::parameter::aux::make_arg_list_aux’ > 290 | >::type type; > | ^ > /usr/include/boost/parameter/aux_/pack/make_arg_list.hpp:290:9: note: expected a type, got ‘_GetErrorObj()’ > make: *** [<incorporato>: test] Error 1 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 definition above is the only example I am aware of, but it might be that there are others. Please, fix all of them, in the interest of future compatibility. Thanks, Giovanni. --- System information. --- Architecture: Kernel: Linux 5.4.0-1-amd64 Debian Release: bullseye/sid 500 xenial updates.signal.org 500 unstable-debug debug.mirrors.debian.org 500 unstable deb.debian.org 500 testing deb.debian.org 500 stable repo.skype.com 500 stable dl.google.com 1 experimental deb.debian.org --- Package information. --- Depends (Version) | Installed ==========================-+-=========== libapt-inst (= 1.8.4) | libapt-pkg (= 1.8.4) | zlib1g-dev | Package's Recommends field is empty. Package's Suggests field is empty. -- Giovanni Mascellani <g.mascellani@gmail.com> Postdoc researcher - Université Libre de BruxellesAttachment: signature.asc
Description: OpenPGP digital signature
--- End Message ---
--- Begin Message ---
- To: 948338-close@bugs.debian.org
- Subject: Bug#948338: fixed in apt 1.9.6
- From: Julian Andres Klode <jak@debian.org>
- Date: Wed, 15 Jan 2020 22:34:36 +0000
- Message-id: <E1irrFE-000B9N-Tq@fasolo.debian.org>
Source: apt Source-Version: 1.9.6 We believe that the bug you reported is fixed in the latest version of apt, which is due to be installed in the Debian FTP archive. A summary of the changes between this version and the previous one is attached. Thank you for reporting the bug, which will now be closed. If you have further comments please address them to 948338@bugs.debian.org, and the maintainer will reopen the bug report if appropriate. Debian distribution maintenance software pp. Julian Andres Klode <jak@debian.org> (supplier of updated apt package) (This message was generated automatically at their request; if you believe that there is a problem with it please contact the archive administrators by mailing ftpmaster@ftp-master.debian.org) -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA512 Format: 1.8 Date: Wed, 15 Jan 2020 23:06:49 +0100 Source: apt Architecture: source Version: 1.9.6 Distribution: experimental Urgency: medium Maintainer: APT Development Team <deity@lists.debian.org> Changed-By: Julian Andres Klode <jak@debian.org> Closes: 948201 948338 Changes: apt (1.9.6) experimental; urgency=medium . [ Julian Andres Klode ] * gitlab-ci: Do not do coverage * gitlab-ci: Use ccache * satisfy: Fix segmentation fault when called with empty argument * Add support for GTest 1.9, do not fail silently if its missing * gtests: Fix netrc parser test regression from https-only changes * Macro cleanup: - Avoid #define _error, use anonymous C++ struct instead (Closes: #948338) - Rename _count() macro to APT_ARRAY_SIZE() - Remove various unused macros like MAX/MIN/ABS/APT_CONST - Only define likely/unlikely if APT_COMPILING_APT set * Performance: Avoid extra out-of-cache hash table deduplication for package names, this saved about 10-16% on gencaches in memory * acquire: Move queue startup after calling log's Start(), fixes abort() calls in python-apt * hashes: Use Libgcrypt for hashing purposes - Raise buffer size for Hashes::AddFD() from 4 KiB to 64 KiB - Convert users of {MD5,SHA1,SHA256,SHA512}Summation to use Hashes - Deprecate the Summation classes and mark them for removal - Remove includes of (md5|sha1|sha2).h headers * netrc: Add warning when ignoring entries for unencrypted protocols * apt(8): Disable regular expressions and fnmatch . [ David Kalnischkies ] * Drop g++ build-dependency to help crossbuilding (Closes: #948201) . [ Denis Mosolov ] * Fix typo in README.md Checksums-Sha1: abe4ba5cef281ff8ff4cd04740c9308d1a0c03d5 2747 apt_1.9.6.dsc e758867f793605387a43b01e703a030106096463 2176544 apt_1.9.6.tar.xz 9297f2cba74bd506f8f77420b9c555ea9fc57ba4 7243 apt_1.9.6_source.buildinfo Checksums-Sha256: af876d802623d65b42dd9f0fd2a59b5b6a32fddc510f79a73a09f5f085d85e77 2747 apt_1.9.6.dsc e24ae4e1b3510d9a3117db28530ea0e87ce51498ba20671083d3d33f9a35411b 2176544 apt_1.9.6.tar.xz bb1f6acf3c038effa581df6a5fcbb99a9bd33a2a05bf37861cfe49e80a4950e5 7243 apt_1.9.6_source.buildinfo Files: 8f6893e2ac4bbc0101ae207854054c5d 2747 admin important apt_1.9.6.dsc d1ffe8ee1951c2d9e14dfc6a74a4fa98 2176544 admin important apt_1.9.6.tar.xz 1d78104359c2569e267404b6e37d82c3 7243 admin important apt_1.9.6_source.buildinfo -----BEGIN PGP SIGNATURE----- iQJDBAEBCgAtFiEET7WIqEwt3nmnTHeHb6RY3R2wP3EFAl4fjZgPHGpha0BkZWJp YW4ub3JnAAoJEG+kWN0dsD9xdIYP/05lFOCowOO2mM4QALOi+gVH3RsJ9iQ7nUiY GMEa7HHbo3uY6hty9LO9ztYI/2NxwJyJEbP+56WHKRa7anrbbIcG78o9EAR9y4yt +dFY1RbgHIbxOl0y9gkIxeShEYtlqvaGT+66a0T5g0GlqEkS8xavTDvfg6gNea6Z GlO0xulohW12Ll2+6rgzLyUIsXbToDilPkEPIOeP4XCiGYeskec4lNMcsEFD6av9 xhQIZbId3Ztp4eS6wqv4Ckbv8xALdMWn19O3qRIN5vefoKzaY8vLhOp8YQSq2psl n0YTuv5QJmkJp48O6MpC/M5KCM6A66ROTkXGH62mbw3UncMjSZ7i2UzEqLW2QMsN w9Q0H/1Dd9aLoickYdiGCC9JQbyWxgo1Cuo87ODTZDrezCIfxcrr6fp+e6POHQGh fpQKFJPRe0Qb2rJU+sQxEyj33g64cL9t3GB3GqbGU7ZR0qjt89ZtJUrr92Y5zlJE +lmYEhzkBvshsRxUCudadDwuiaF+VjClZ+iebR75HM53T9UUsFT8s9zNpThw6uFs UdJ2XP3D1xFQeyRp48YNOnKlBAoIaa3FWToZ02q2BCEzyzSWKWufNmuu0ZkbnyfA ANI+XrWNCvvy5DiYRmwgdOuHgxJqOPoaqwiqiSwAqg0iOsio3uqIS4RzUMRDwaAk XZBFGrYL =gH5w -----END PGP SIGNATURE-----
--- End Message ---