Bug#892861: libglm-dev: removal of default type initialization breaking packages

Andrew Caudwell acaudwell at gmail.com
Fri Mar 23 02:07:45 UTC 2018


Hi,

On Sat, Mar 17, 2018 at 9:31 AM, Guus Sliepen <guus at debian.org> wrote:

> tags 892861 + wontfix
> thanks
>
> On Wed, Mar 14, 2018 at 10:48:33AM +1300, Andrew Caudwell wrote:
>
> > The packaged version of GLM, 0.9.9~a2 is an alpha (the current release
> is still
> > 0.9.8.5) and removes the default initialization of vector, matrix and
> > quaternion types. Because of this code written against any earlier
> versions of
> > GLM may now have uninitialized value bugs introduced by this change
> (e.g. where
> > GLM types are member variables of a class) or now behave differently
> (mat4()
> > previously gave you an identity matrix, now this gives you a zero'd
> matrix).
> > Several issues have been raised upstream (including by myself) to re-add
> > initialization or at least make it optional.
> > Additionally the requirement in this version to define
> GLM_ENABLE_EXPERIMENTAL
> [...]
> > to use simple functions like length2() has broken multiple packages. I
> have put
> > off fixing this since making it compile just exposes the user to the
> > uninitialized value bugs. Unfortunately this has now meant my gource and
> > logstalgia debian packages have been removed from debian since they don't
> > complile with this GLM version.
>
> I believe these are intentional changes by the author of GLM. I expect
> that GLM 1.0.0 will be released before the next release of Debian, and
> any packages that depend on GLM should instead be fixed to handle the
> new behavior.
>

The upstream author hasn't commented on these issues yet so there's no
reason to assume they will leave things in the current state without at
least providing at least a work around to the initialization issue.

>
> Unless I am mistaken, projects depending on GLM can just #define
> GLM_ENABLE_EXPERIMENTAL and provide explicit default initializers, which
> will be backwards compatible with older versions of GLM.
>

Fixing the default initializers issue requires a thorough code review and
probably debugging with valgrind to find these cases (-Wuninitialized won't
find these) which I think is an unreasonable burden on maintainers.

Other distros such as Redhat, Gentoo and Arch Linux have continued to
package the current release 0.9.8.5 with a fix for the GCC 7.3 issue (which
only requires changing an == to >=):

https://git.archlinux.org/svntogit/community.git/tree/trunk/PKGBUILD?h=packages/glm

Ubuntu 18.04 has imported the current Debian unstable libglm-dev package
which has made resolving this issue more urgent in my view.

My current work around is to embed the patched version of 0.9.8.5 and
provide a --with-glm option for distros that have a compatible version of
the library.

Ideally I would like to be able to use the Debian libglm-dev package so I
hope you reconsider.

Cheers

Andrew



>
> --
> Met vriendelijke groet / with kind regards,
>       Guus Sliepen <guus at debian.org>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.alioth.debian.org/pipermail/debian-science-maintainers/attachments/20180323/637c6b7e/attachment.html>


More information about the debian-science-maintainers mailing list