Bug#1029168: fonts-urw-base35: Apache pdfbox cannot load fonts. Complains "Start marker missing"
On Tue, 24 Jan 2023, fabian@greffrath.com wrote:
> The AFDKO is Apache licensed. Would it be possible to install the
> afdko-bin package and use its /usr/libexec/afdko/detype1 and
> /usr/libexec/afdko/type1 scripts to disassemble and reassemble the
> font files? And will this probably replace the code in question with
> its Apache licensed pendants?
On a first try I wasn't able to run type1 on the detype1 output (fails
with "bad token in charsting"), but didn't dig deeper with this.
Instead I compared the problematic code fragment from the following book:
https://web.archive.org/web/20150321034514/http://partners.adobe.com/public/developer/en/font/T1_SPEC.PDF
Appendix 3, page 95 (of the book) page 101 (of the PDF).
with the output of t1disasm of the urw-base35 fonts.
While the code fragment in the book is 181 lines a diff with one of
the urw-base35 fonts shows only the following copied code lines:
{systemdict /internaldict known not
{pop 3}
{1183615869 systemdict /internaldict get exec
dup /startlock known
{/startlock get exec}
{dup /strtlck known
{/strtlck get exec}
{pop 3}
ifelse}
ifelse}
ifelse
} executeonly
] noaccess def
Since it contains the string "startlock get exec" it triggers the
lintian error.
I searched for the number (1183615869) in afdko source and found the
following file:
https://github.com/adobe-type-tools/afdko/blob/develop/c/shared/source/t1write/t1write_hintothers.h
/* Copyright 2014 Adobe Systems Incorporated (http://www.adobe.com/). All Rights Reserved.
This software is licensed as OpenSource, under the Apache License, Version 2.0.
This license is available at: http://opensource.org/licenses/Apache-2.0. */
"/OtherSubrs[{}{}{}{systemdict/internaldict known not{pop 3}{1183615869\n"
"systemdict/internaldict get exec dup/startlock known{/startlock get exec}{dup\n"
"/strtlck known{/strtlck get exec}{pop 3}ifelse}ifelse}ifelse}executeonly]def\n"
As far as I can see that is exactly the code, that I found in the
urw-base35 fonts and that triggers the lintian error.
And as the header says, it is under Apache 2.0 license.
So lintian is wrong here and we can add lintian-overrides for this.
According to
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=665334#173
Apache-2.0 should be compatible with GPL-3 (the license of
fonts-urw-base35), so everything should be okay with this.
After fixing some issues in check-fonts-urw-base35-scale and adding
lintian-overrides (after some typos) this may be ready for a merge
request soon...
Greetings
Roland
Reply to: