#1133504 inkscape: ftbfs with GCC-16

#1133504#5
Date:
2026-04-13 13:04:55 UTC
From:
To:
Hi,

inkscape fails to build in a test rebuild on at least amd64 and arm64 with
gcc-16/g++-16, but builds properly with gcc-15/g++-15. The severity of this
report will be raised before the forky release.

The full build log can be found at:
https://people.debian.org/~ema/gcc-16-rebuilds/output-1/inkscape_arm64.build.xz

The last lines of the build log are at the end of this report.

To build with GCC 16, either set CC=gcc-16 CXX=g++-16 explicitly,
or install the gcc, g++, gfortran, ... packages from experimental.

  apt-get -t=experimental install g++

Common build failures include unused (but set) variables, array subscripts
partly outside array bounds, and new/dropped symbols in Debian symbols files.
For other C/C++ related build failures see the porting guide at
http://gcc.gnu.org/gcc-16/porting_to.html

Please only close this issue after double-checking that the package can be
built correctly with GCC 16.

Please do not reassign this bug to another package. If a fix in another package
is required, then file a bug for the other package (or clone), and mark this
bug as blocked by the bug in the other package.

[...]


/usr/include/2geom-1.4.0/2geom/sbasis.h:198:26: note: parameter passing for argument of type ‘Geom::Linear’ when C++17 is enabled changed to match C++14 in GCC 10.1
  198 |             if(!(*this)[i].isZero(eps)) return false;
      |                 ~~~~~~~~~^
/usr/include/2geom-1.4.0/2geom/bezier-curve.h: In member function ‘Geom::Curve* Geom::BezierCurveN<degree>::portion(Geom::Coord, Geom::Coord) const [with unsigned int degree = 1]’:
/usr/include/2geom-1.4.0/2geom/bezier-curve.h:269:20: note: parameter passing for argument of type ‘Geom::Point’ when C++17 is enabled changed to match C++14 in GCC 10.1
  269 |             return new BezierCurveN<1>(pointAt(f), pointAt(t));
      |                    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/2geom-1.4.0/2geom/bezier-curve.h: In member function ‘virtual Geom::OptRect Geom::BezierCurve::boundsLocal(const Geom::OptInterval&, unsigned int) const’:
/usr/include/2geom-1.4.0/2geom/bezier-curve.h:116:61: note: parameter passing for argument of type ‘Geom::Rect’ when C++17 is enabled changed to match C++14 in GCC 10.1
  116 |         if(i->min() == 0 && i->max() == 1) return boundsFast();
      |                                                   ~~~~~~~~~~^~
/usr/include/2geom-1.4.0/2geom/bezier-curve.h: In member function ‘virtual Geom::Point Geom::BezierCurve::finalPoint() const’:
/usr/include/2geom-1.4.0/2geom/bezier-curve.h:106:11: note: parameter passing for argument of type ‘Geom::Point’ when C++17 is enabled changed to match C++14 in GCC 10.1
  106 |     Point finalPoint() const override { return inner.at1(); }
      |           ^~~~~~~~~~
/usr/include/2geom-1.4.0/2geom/sbasis-curve.h: In member function ‘virtual Geom::Rect Geom::SBasisCurve::boundsExact() const’:
/usr/include/2geom-1.4.0/2geom/sbasis-curve.h:105:10: note: parameter passing for argument of type ‘Geom::Rect’ when C++17 is enabled changed to match C++14 in GCC 10.1
  105 |     Rect boundsExact() const override { return *bounds_exact(inner); }
      |          ^~~~~~~~~~~
/usr/include/2geom-1.4.0/2geom/curve.h: In member function ‘virtual Geom::Point Geom::Curve::operator()(Geom::Coord) const’:
/usr/include/2geom-1.4.0/2geom/curve.h:120:19: note: parameter passing for argument of type ‘Geom::Point’ when C++17 is enabled changed to match C++14 in GCC 10.1
  120 |     virtual Point operator() (Coord t)  const { return pointAt(t); }
      |                   ^~~~~~~~
/usr/include/2geom-1.4.0/2geom/sbasis.h: In member function ‘double Geom::SBasis::valueAt(double) const’:
/usr/include/2geom-1.4.0/2geom/sbasis.h:224:44: note: parameter passing for argument of type ‘Geom::Linear’ when C++17 is enabled changed to match C++14 in GCC 10.1
  224 |             const Linear &lin = (*this)[k-1];
      |                                            ^
/usr/include/2geom-1.4.0/2geom/sbasis-curve.h: In member function ‘virtual Geom::Point Geom::SBasisCurve::pointAt(Geom::Coord) const’:
/usr/include/2geom-1.4.0/2geom/sbasis-curve.h:93:11: note: parameter passing for argument of type ‘Geom::Point’ when C++17 is enabled changed to match C++14 in GCC 10.1
   93 |     Point pointAt(Coord t) const override  { return inner.valueAt(t); }
      |           ^~~~~~~
/usr/include/2geom-1.4.0/2geom/curve.h: In member function ‘virtual Geom::Interval Geom::Curve::timeRange() const’:
/usr/include/2geom-1.4.0/2geom/curve.h:102:22: note: parameter passing for argument of type ‘Geom::Interval’ when C++17 is enabled changed to match C++14 in GCC 10.1
  102 |     virtual Interval timeRange() const {
      |                      ^~~~~~~~~
/usr/include/2geom-1.4.0/2geom/sbasis.h: In member function ‘bool Geom::SBasis::isConstant(double) const’:
/usr/include/2geom-1.4.0/2geom/sbasis.h:204:22: note: parameter passing for argument of type ‘Geom::Linear’ when C++17 is enabled changed to match C++14 in GCC 10.1
  204 |         if(!(*this)[0].isConstant(eps)) return false;
      |             ~~~~~~~~~^
/usr/include/2geom-1.4.0/2geom/sbasis-curve.h: In member function ‘virtual Geom::Point Geom::SBasisCurve::finalPoint() const’:
/usr/include/2geom-1.4.0/2geom/sbasis-curve.h:90:11: note: parameter passing for argument of type ‘Geom::Point’ when C++17 is enabled changed to match C++14 in GCC 10.1
   90 |     Point finalPoint() const override      { return inner.at1(); }
      |           ^~~~~~~~~~
/usr/include/2geom-1.4.0/2geom/sbasis.h: In member function ‘Geom::Coord Geom::SBasis::at1() const’:
/usr/include/2geom-1.4.0/2geom/sbasis.h:214:48: note: parameter passing for argument of type ‘Geom::Linear’ when C++17 is enabled changed to match C++14 in GCC 10.1
  214 |     inline Coord at1() const { return (*this)[0][1]; }
      |                                       ~~~~~~~~~^
/usr/include/2geom-1.4.0/2geom/sbasis-curve.h: In member function ‘virtual Geom::Point Geom::SBasisCurve::initialPoint() const’:
/usr/include/2geom-1.4.0/2geom/sbasis-curve.h:89:11: note: parameter passing for argument of type ‘Geom::Point’ when C++17 is enabled changed to match C++14 in GCC 10.1
   89 |     Point initialPoint() const override    { return inner.at0(); }
      |           ^~~~~~~~~~~~
/usr/include/2geom-1.4.0/2geom/sbasis.h: In member function ‘Geom::Coord Geom::SBasis::at0() const’:
/usr/include/2geom-1.4.0/2geom/sbasis.h:212:48: note: parameter passing for argument of type ‘Geom::Linear’ when C++17 is enabled changed to match C++14 in GCC 10.1
  212 |     inline Coord at0() const { return (*this)[0][0]; }
      |                                       ~~~~~~~~~^
/usr/include/2geom-1.4.0/2geom/curve.h: In member function ‘virtual Geom::Coord Geom::Curve::valueAt(Geom::Coord, Geom::Dim2) const’:
/usr/include/2geom-1.4.0/2geom/curve.h:116:66: note: parameter passing for argument of type ‘Geom::Point’ when C++17 is enabled changed to match C++14 in GCC 10.1
  116 |     virtual Coord valueAt(Coord t, Dim2 d) const { return pointAt(t)[d]; }
      |                                                           ~~~~~~~^~~
/usr/include/2geom-1.4.0/2geom/sbasis.h: In member function ‘bool Geom::SBasis::isZero(double) const’:
/usr/include/2geom-1.4.0/2geom/sbasis.h:198:26: note: parameter passing for argument of type ‘Geom::Linear’ when C++17 is enabled changed to match C++14 in GCC 10.1
  198 |             if(!(*this)[i].isZero(eps)) return false;
      |                          ^
/usr/include/2geom-1.4.0/2geom/bezier-curve.h: In member function ‘virtual void Geom::BezierCurve::operator*=(const Geom::Affine&)’:
/usr/include/2geom-1.4.0/2geom/bezier-curve.h:148:43: note: parameter passing for argument of type ‘Geom::Point’ when C++17 is enabled changed to match C++14 in GCC 10.1
  148 |             setPoint(i, controlPoint(i) * m);
      |                                           ^
ninja: build stopped: subcommand failed.
dh_auto_build: error: cd obj-aarch64-linux-gnu && LC_ALL=C.UTF-8 ninja -j128 -v returned exit code 1
make: *** [debian/rules:20: binary] Error 25
dpkg-buildpackage: error: debian/rules binary subprocess failed with exit status 2

#1133504#10
Date:
2026-08-03 15:00:53 UTC
From:
To:
Hello,

Bug #1133504 in inkscape reported by you has been fixed in the
Git repository and is awaiting an upload. You can see the commit
message below and you can check the diff of the fix at:

https://salsa.debian.org/multimedia-team/inkscape/-/commit/a1e9fce3d9495c8b252e18ec3e82784f33131d3e
------------------------------------------------------------------------
Cherry-pick patch to fix build with gcc-16

Closes: #1133504
------------------------------------------------------------------------

(this message was generated automatically)
-- 
Greetings

https://bugs.debian.org/1133504

#1133504#17
Date:
2026-08-03 15:20:53 UTC
From:
To:
We believe that the bug you reported is fixed in the latest version of
inkscape, 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 1133504@bugs.debian.org,
and the maintainer will reopen the bug report if appropriate.

Debian distribution maintenance software
pp.
Jeremy Bícha <jbicha@ubuntu.com> (supplier of updated inkscape 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)
Format: 1.8
Date: Mon, 03 Aug 2026 16:58:15 +0200
Source: inkscape
Built-For-Profiles: derivative.ubuntu noudeb
Architecture: source
Version: 1.4.3-2
Distribution: unstable
Urgency: medium
Maintainer: Debian Multimedia Maintainers <debian-multimedia@lists.debian.org>
Changed-By: Jeremy Bícha <jbicha@ubuntu.com>
Closes: 1133504 1136171 1143108
Changes:
 inkscape (1.4.3-2) unstable; urgency=medium
 .
   * Team upload
 .
   [ Jeremy Bícha ]
   * Cherry-pick patch to fix build with gcc-16 (Closes: #1133504)
   * Remove Build-Depends: libdbus-1-dev, libdbus-glib-1-dev (Closes: #1136171)
   * Update debhelper compat to 14
 .
   [ Nadzeya Hutsko ]
   * Cherry-pick patches to fix build with poppler 26.07 (Closes: #1143108)
Checksums-Sha1:
 e1e27f7a3801820d9013feee303a6fcec4a4cd47 3004 inkscape_1.4.3-2.dsc
 1074fb24a6c6b034acc209b28c496718a5bbb2cf 42660 inkscape_1.4.3-2.debian.tar.xz
 e43f3382e52b3d5626cf7dce996ff14edf5dec97 7208 inkscape_1.4.3-2_source.buildinfo
Checksums-Sha256:
 3b6d71cb52ccfde01bbd59fac2403409a3454618adb6a3307caf24e31cc7b582 3004 inkscape_1.4.3-2.dsc
 b5d67d31aa2833a0d03106e6496ecf4b07b12b8052e2c1a044b5a93653b7d64f 42660 inkscape_1.4.3-2.debian.tar.xz
 faa54f11e338aa1285aa2e622d4bf8afea33ef907570ba37796d98c037e51aea 7208 inkscape_1.4.3-2_source.buildinfo
Files:
 3ce230cd29006e6d62874aa3a0b76b5a 3004 graphics optional inkscape_1.4.3-2.dsc
 a17d5798f54afadeb37c333983fc4fb6 42660 graphics optional inkscape_1.4.3-2.debian.tar.xz
 a248571865181c18853fd6081234eb2b 7208 graphics optional inkscape_1.4.3-2_source.buildinfo
-----BEGIN PGP SIGNATURE-----

iQIzBAEBCgAdFiEETQvhLw5HdtiqzpaW5mx3Wuv+bH0FAmpwrQEACgkQ5mx3Wuv+
bH1D+A//aNg4Zdgx9hd0Kp507im69rYAPr7v+lg+l780nD11Lz8GRYcCAPz6pSeC
GHf3vzVpB63175f4P23sQt9CqVQYKdbOpiboXt94kRa+EabNyQLQIYXY6ogbh/nZ
8IqDblF2Vv2pPemJfdtwlil15ap8kqblkda9+xM5n0qwI/8GJTPnugBSKp/xDjsI
5lTsdoeASqJiGLtu3x9S450D/swx/RN3UVRRT6hEaiMqdXMDTaYp41RG6ZHp8qqT
Z7VT8gH1oJJz3qz1dYCvTPYixRTcQ8Bq9hMqBJe8IOPR1LPaK6LURf0ZQMBNRPgu
Py0UGg4VjQ++zr3btdhnGdtKmVLkbjBPwX82JjKfSfFRfMFqMyGq6UySzLDKISww
AEgoJ8wkTt3aq+s/IsDo7aPGvrACKJ9434fU/G22sYwqwAXas0Tl/K2W29WxTQpO
zx4+TGGa5EXJC9u0J55aJFURTJs0kp6gpwUb4Z6uZhd/Vm61ivqgIUKqEpmSmKTq
Ky4xAt4tvt22Te2khIm14+ILo+6mEcT2Iw1E7XQfCrW2a4N+wWg3AJgGqPqjuXct
oxHfXvfGq35UHUwvZq2MWBUmXncabW6Wi5tli30PeH20qhE9Dj4anloqVWPxdN4F
Uwmt1mfHZgS52PxiRGeHyx+iJ1D5JQm1B4YmrIx6gGNB4EjiN94=
=r/Tq
-----END PGP SIGNATURE-----