[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#918774: marked as done (liblasi0: response to missing system glyphs no longer works correctly)



Your message dated Sun, 23 Apr 2023 06:18:58 +0000
with message-id <E1pqT3q-002ZDG-Nu@fasolo.debian.org>
and subject line Bug#918774: fixed in lasi 1.1.3-1
has caused the Debian Bug report #918774,
regarding liblasi0: response to missing system glyphs no longer works correctly
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.)


-- 
918774: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=918774
Debian Bug Tracking System
Contact owner@bugs.debian.org with problems
--- Begin Message ---
Package: liblasi0
Version: 1.1.0-2
Severity: important

Dear Maintainer,

Since one of my recent Debian Buster upgrades I have been getting the
following run-time errors with libLASi when a missing system glyph is
encountered:

terminate called after throwing an instance of 'std::runtime_error'
  what():  Error returned from FT_Load_Glyph
Aborted

You definitely don't want libLASi to throw errors and abort when
encountering missing system glyphs because that situation is fairly
common.  Therefore, I have rated the severity level of this bug as
important.

The relevant libLASi code that attempts to do something responsible
when encountering missing system glyphs is the following code in
libLASi-1.1.0 (and also libLASi-1.1.2).

        FT_Error error = FT_Load_Glyph(face,glyph_index,FT_LOAD_NO_BITMAP);
        if(error){
           //
           //DEBUG:
           //
           //std::cerr << "PANGO is returning a glyph index of " << std::hex << glyph_index << std::endl;
           //std::cerr << "but PANGO_GLYPH_UNKNOWN_FLAG is supposed to be: " << 0x10000000 << std::endl;
           //std::cerr << "and PANGO_GLYPH_EMPTY        is supposed to be: " << 0x0FFFFFFF << std::endl;
           
           //
           // Substitute something that works: All fonts are supposed
           // to handle glyph_index 0 as the default replacement glyph:
           //
           evalReturnCode(FT_Load_Glyph(face,0,FT_LOAD_NO_BITMAP),"FT_Load_Glyph"); 
        }else{
           evalReturnCode(FT_Load_Glyph(face, glyph_index,FT_LOAD_NO_BITMAP), "FT_Load_Glyph");
        }

where evalReturnCode is the following inline routine (in both 1.1.0 and 1.1.2):

/** Converts a freetype return code into an exception.
 */
inline void evalReturnCode(const int errCode, const char* funcName) throw (std::runtime_error) {
  if (errCode)
    throw std::runtime_error(std::string("Error returned from ") + funcName);
}

So the obvious purpose of the above code is whenever there is some
issue with FT_Load_Glyph for a give glyph_index it tries again with
glyph_index = 0 which according to the above notes should always "just work" without
throwing an error.

In any case this technique for avoiding throwing errors on missing glyphs worked
perfectly over the years, and I can see no
reason why it has suddenly started throwing errors now.  But since my
recent Debian Buster upgrades did not involve libLASi, this bug should
likely be reported against one of the many dependencies of libLASi,
but I don't know which one so I have started the process by reporting
the bug here.

I haven't tried this myself yet, but I am virtually positive you can
easily verify this issue by building and running
libLASi-1.1.0/examples/MissingGlyphExample.cpp.

Instead of performing that direct test of libLASi, I have been
indirectly testing libLASi over many years via regular PLplot testing
since PLplot includes the psttf device which links to libLASi.  The
examples we test do include missing glyphs, and my recent PLplot tests
have recently started erroring out with the above abort for our psttf
device driver which is the motivation for this bug report.

FYI, I am far from expert with libLASi and C++, but I do have some
familiarity with the libLASi code because I have helped some upstream
with its build system and bug releases over the years (because of my
PLplot interest).

So if there are some further tests you would like me to try because
you are having trouble verifying this bug with
MissingGlyphExample.cpp, please let me know.

Alan

-- System Information:
Debian Release: buster/sid
  APT prefers testing-debug
  APT policy: (500, 'testing-debug'), (500, 'testing')
Architecture: amd64 (x86_64)

Kernel: Linux 4.18.10-custom (SMP w/16 CPU cores)
Locale: LANG=en_CA.UTF-8, LC_CTYPE=en_CA.UTF-8 (charmap=UTF-8), LANGUAGE=en_CA:en (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)
LSM: AppArmor: enabled

Versions of packages liblasi0 depends on:
ii  libc6              2.28-2
ii  libfontconfig1     2.13.1-2
ii  libfreetype6       2.9.1-3
ii  libgcc1            1:8.2.0-13
ii  libglib2.0-0       2.58.2-3
ii  libpango-1.0-0     1.42.4-6
ii  libpangoft2-1.0-0  1.42.4-6
ii  libstdc++6         8.2.0-13

liblasi0 recommends no packages.

liblasi0 suggests no packages.

-- no debconf information

--- End Message ---
--- Begin Message ---
Source: lasi
Source-Version: 1.1.3-1
Done: Nilesh Patra <nilesh@debian.org>

We believe that the bug you reported is fixed in the latest version of
lasi, 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 918774@bugs.debian.org,
and the maintainer will reopen the bug report if appropriate.

Debian distribution maintenance software
pp.
Nilesh Patra <nilesh@debian.org> (supplier of updated lasi 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: SHA256

Format: 1.8
Date: Sun, 23 Apr 2023 10:41:07 +0530
Source: lasi
Architecture: source
Version: 1.1.3-1
Distribution: unstable
Urgency: medium
Maintainer: Debian QA Group <packages@qa.debian.org>
Changed-By: Nilesh Patra <nilesh@debian.org>
Closes: 752274 918774 921139
Changes:
 lasi (1.1.3-1) unstable; urgency=medium
 .
   * QA upload.
   * New upstream version 1.1.3 (Closes: #918774, #921139)
   * Change B-D and Depends on libfreetype6-dev to libfreetype-dev
   * Drop fix-freetype-ftbfs patch, merged upstream
   * Bump Standards-Version to 4.6.2 (no changes needed)
   * Bump d/watch version to 4
   * Do not install CMakeLists in examples. Makefiles.examples.in
     is still useful for autopkgtests (Closes: #752274)
   * Update autopkgtests to get debci green
Checksums-Sha1:
 3f0feeb38bca6c1012e66704c7c39075e5af7854 1362 lasi_1.1.3-1.dsc
 0bbcd114c0089f76b84357527ba785921001efce 724764 lasi_1.1.3.orig.tar.gz
 178654ce14fe4cdd8ec643a56af23af8f104489d 5124 lasi_1.1.3-1.debian.tar.xz
 4216b45ab507947c8d7f1bef1c86df2bb9e0235f 9785 lasi_1.1.3-1_amd64.buildinfo
Checksums-Sha256:
 12ac3113e111414f6542b820e03741b77002f34736e0ef96ee2c964decc097a3 1362 lasi_1.1.3-1.dsc
 539d66199744495d3bf29c15997a03040f7c488a4d91b8aadc627ca00953f13a 724764 lasi_1.1.3.orig.tar.gz
 7fa45468daa757cf2410623fc4adb82dd5e7af258ad68d69624dc9734248b396 5124 lasi_1.1.3-1.debian.tar.xz
 2216f5b584d03022bb8398644dc0bdc5e038ad233338a07618f61f3e84f8189c 9785 lasi_1.1.3-1_amd64.buildinfo
Files:
 4ff2515c439d55e007b0da523835fc56 1362 libs optional lasi_1.1.3-1.dsc
 7e48ddd84527a9b9cd59073c76fcd351 724764 libs optional lasi_1.1.3.orig.tar.gz
 96ed896a5bea8ea82b4085f999c8e2f4 5124 libs optional lasi_1.1.3-1.debian.tar.xz
 28b4297383c3d93f1f6431889688410d 9785 libs optional lasi_1.1.3-1_amd64.buildinfo

-----BEGIN PGP SIGNATURE-----

iHQEARYIAB0WIQSglbZu4JAkvuai8HIqJ5BL1yQ+2gUCZETKGwAKCRAqJ5BL1yQ+
2ox2AP9nGvMbC+qK71C8NKMWJex4jhBO0/wn9Oe+Xu+FPLDlWwD4+yhH2c93FfZ+
SlwR9jNlwLhc8Z7fkNQ/tYqLgoxJCg==
=/Y+c
-----END PGP SIGNATURE-----

--- End Message ---

Reply to: