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

Bug#1029168: fonts-urw-base35: Apache pdfbox cannot load fonts. Complains "Start marker missing"



On Fri, 20 Jan 2023, Jorge Moraleda wrote:

> > I searched for some definition that says, that a .pfb file has to
> > be prefixed with 80 01 91 03 00 00 (in front of %!PS-AdobeFont-1.),
> > but didn't find such a specification.

> I found this in case it helps
> https://personal.math.ubc.ca/~cass/piscript/type1.pdf

That's quite interesting.  Chapter 1 of this document explains, that
.pfb files have multiple of these "segment headers" but I miss them in
the fonts-urw-base35 .t1 fonts (not only at the beginning of the file,
but also at the beginning of the binary part as well as at the end of
the binary part).

It's not possible to simply prefix the .t1 files with 6 bytes, since
the other headers have to be added, too, and byte 3-6 of each header
contains the segment size.

But for me it seems that the .t1 files are neither .pfa files (since
they contain binary content, which isn't ascii armored) nor .pfb files
(since the segment headers are missing).

So we should think about "repairing" these files and make them real
.pfb files with segment headers.  Only problem is, that t1binary
doesn't handle C059-Italic.t1 correctly but generates a completely
broken font file.

So I did some perl hacking and created a addsegmentheaders.pl, which
adds segment headers at the beginning of the file, at the beginning of
the binary data and at the end.

First tests with the patched files look good, but someone else should
have a look on this...

You find my changes in my segmentheaders branch:
https://salsa.debian.org/roland/fonts-urw-base35/-/tree/segmentheaders

Next problem: lintian complains about

E: fonts-urw-base35: license-problem-font-adobe-copyrighted-fragment-no-credit [usr/share/fonts/type1/urw-base35/C059-BdIta.t1]
N: 
N:   This type 1 font file includes some postscript fragment with a non-free
N:   license of Adobe. In order to check if this tag is genuine please follow
N:   the procedure described in the reference.
N:   
N:   Moreover the fragment was likely verbatim copied from black book without
N:   any credit to Adobe.
N:   
N:   Should this be a false-positive, please override the tag.
N: 
N:   Please refer to https://wiki.debian.org/qa.debian.org/type1nondfsg for
N:   details.
N: 
N:   Visibility: error
N:   Show-Always: no
N:   Check: fonts/postscript/type1
N

for all the fonts now.  This is because the disassembled code contains
"startlock get exec" which may be a fragment from Adobe
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).

It wasn't tested before, since the file type wasn't detected as
"PostScript Type 1 font program data" before, so lintian didn't check
the files...

Greetings
Roland


Reply to: