File: debian-font-patches

package info (click to toggle)
python-reportlab 1.20debian-1
  • links: PTS
  • area: main
  • in suites: sarge
  • size: 6,068 kB
  • ctags: 5,801
  • sloc: python: 53,293; xml: 1,494; makefile: 85
file content (816 lines) | stat: -rw-r--r-- 37,951 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
Build instructions for the Debian source package
------------------------------------------------

- Remove the following font files:
	fonts/LeERC___.AFM
	fonts/LeERC___.PFB
	fonts/luxiserif.ttf
	fonts/luxiserif_license.txt
	fonts/rina.ttf
	fonts/rina_license.txt

- Add the following font files:
	fonts/Dustismo_Roman.ttf
	fonts/PenguinAttack.ttf
	fonts/Wargames.afm
	fonts/Wargames.pfb

- Apply the following patch, then build the source package.

diff -ur reportlab/demos/odyssey/odyssey.txt ./demos/odyssey/odyssey.txt
--- reportlab/demos/odyssey/odyssey.txt	2003-11-20 09:30:30.000000000 +0100
+++ ./demos/odyssey/odyssey.txt	2004-02-06 11:10:42.000000000 +0100
@@ -1,91 +1,51 @@
-Provided by The Internet Classics Archive.
-See bottom for copyright. Available online at
+This is a placeholder for the English Odyssey translation
+provided by The Internet Classics Archive, which is
+available online at
     http://classics.mit.edu//Homer/odyssey.html
 
-The Odyssey
-By Homer
+Not The Odyssey
+Not By Homer
 
 
-Translated by Samuel Butler
+Not Translated by Samuel Butler
 
 ----------------------------------------------------------------------
 
 BOOK I
 <bullet indent="-18"><font name="courier" size="13" color="blue">I</font></bullet><font color="green"><b><i>Tell</i></b></font> me, O muse, of that ingenious hero who travelled far and wide
  a b c &amp;| &amp; | <b>A</b>' <b>A</b> ' after he had sacked the famous town of <font color="red" size="12"><b>Troy</b></font>. Many cities did he visit,
-and many were the nations with whose manners and customs he was acquainted;
-moreover he suffered much by sea while trying to save his own life
-and bring his men safely home; but do what he might he could not
-save<super><font color="red">1</font></super>
-his men, for they perished through their own sheer folly in eating
-the cattle of the Sun-god Hyperion; so the god prevented them from
-ever reaching home. Tell me, too, about all these things, O daughter
-of Jove, from whatsoever source you may know them. 
-
-So now all who escaped death in battle or by shipwreck had got safely
-home except Ulysses, and he, though he was longing to return to his
-wife and country, was detained by the goddess Calypso, who had got
-him into a large cave and wanted to marry him. But as years went by,
-there came a time when the gods settled that he should go back to
-Ithaca; even then, however, when he was among his own people, his
-troubles were not yet over; nevertheless all the gods had now begun
-to pity him except Neptune, who still persecuted him without ceasing
-and would not let him get home. 
-
-<font color="green">Now Neptune had gone off to the Ethiopians, who are at the world's
-end, and lie in two halves, the one looking West and the other East.
-He had gone there to accept a hecatomb of sheep and oxen, and was
-enjoying himself at his festival; but the other gods met in the house
-of Olympian Jove, and the sire of gods and men spoke first. At that
-moment he was thinking of Aegisthus, who had been killed by Agamemnon's
-son Orestes; so he said to the other gods:</font>
-
-"See now, how men lay blame upon us gods for what is after all nothing
-but their own folly. Look at Aegisthus; he must needs make love to
-Agamemnon's wife unrighteously and then kill Agamemnon, though he
-knew it would be the death of him; for I sent Mercury to warn him
-not to do either of these things, inasmuch as Orestes would be sure
-to take his revenge when he grew up and wanted to return home. Mercury
-told him this in all good will but he would not listen, and now he
-has paid for everything in full." 
-
-Then Minerva said, "Father, son of Saturn, King of kings, it served
-Aegisthus right, and so it would any one else who does as he did;
-but Aegisthus is neither here nor there; it is for Ulysses that my
-heart bleeds, when I think of his sufferings in that lonely sea-girt
-island, far away, poor man, from all his friends. It is an island
-covered with forest, in the very middle of the sea, and a goddess
-lives there, daughter of the magician Atlas, who looks after the bottom
-of the ocean, and carries the great columns that keep heaven and earth
-asunder. This daughter of Atlas has got hold of poor unhappy Ulysses,
-and keeps trying by every kind of blandishment to make him forget
-his home, so that he is tired of life, and thinks of nothing but how
-he may once more see the smoke of his own chimneys. You, sir, take
-no heed of this, and yet when Ulysses was before Troy did he not propitiate
-you with many a burnt sacrifice? Why then should you keep on being
-so angry with him?" 
-
-And Jove said, "My child, what are you talking about? How can I forget
-Ulysses than whom there is no more capable man on earth, nor more
-liberal in his offerings to the immortal gods that live in heaven?
-Bear in mind, however, that Neptune is still furious with Ulysses
-for having blinded an eye of Polyphemus king of the Cyclopes. Polyphemus
-is son to Neptune by the nymph Thoosa, daughter to the sea-king Phorcys;
-therefore though he will not kill Ulysses outright, he torments him
-by preventing him from getting home. Still, let us lay our heads together
-and see how we can help him to return; Neptune will then be pacified,
-for if we are all of a mind he can hardly stand out against us."
-
-And Minerva said, "Father, son of Saturn, King of kings, if, then,
-the gods now mean that Ulysses should get home, we should first send
-Mercury to the Ogygian island to tell Calypso that we have made up
-our minds and that he is to return. In the meantime I will go to Ithaca,
-to put heart into Ulysses' son Telemachus; I will embolden him to
-call the Achaeans in assembly, and speak out to the suitors of his
-mother Penelope, who persist in eating up any number of his sheep
-and oxen; I will also conduct him to Sparta and to Pylos, to see if
-he can hear anything about the return of his dear father- for this
-will make people speak well of him." 
+and this sentence he intentionally left meaningless,
+and this sentence he intentionally left meaningless,
+  save<super><font color=red>1</font></super>
+and this sentence he intentionally left meaningless,
+and this sentence he intentionally left meaningless,
+and this sentence he intentionally left meaningless,
+and this sentence he intentionally left meaningless as well.
+
+This paragraph he intentionally left meaningless,
+and this sentence he intentionally left meaningless,
+and this sentence he intentionally left meaningless,
+and this sentence he intentionally left meaningless,
+and this sentence he intentionally left meaningless as well.
+
+<font color=green>This paragraph he intentionally left meaningless,
+and this sentence he intentionally left meaningless,
+and this sentence he intentionally left meaningless,
+and this sentence he intentionally left meaningless,
+and this sentence he intentionally left meaningless as well.</font>
+
+"This paragraph he intentionally left meaningless,
+and this sentence he intentionally left meaningless,
+and this sentence he intentionally left meaningless,
+and this sentence he intentionally left meaningless,
+and this sentence he intentionally left meaningless as well."
+
+And he replied,
+"This paragraph he intentionally left meaningless,
+and this sentence he intentionally left meaningless,
+and this sentence he intentionally left meaningless,
+and this sentence he intentionally left meaningless,
+and this sentence he intentionally left meaningless as well."
 
 Ellipsis ellipsis ellipsis ellipsis ellipsis ellipsis ellipsis ellipsis.
 Ellipsis ellipsis ellipsis ellipsis ellipsis ellipsis ellipsis ellipsis.
@@ -97,106 +57,46 @@
 Ellipsis ellipsis ellipsis ellipsis ellipsis ellipsis ellipsis ellipsis.
 Ellipsis ellipsis ellipsis ellipsis ellipsis ellipsis ellipsis ellipsis.
 
-"Men of Ithaca, it is all your own fault that things have turned out
-as they have; you would not listen to me, nor yet to Mentor, when
-we bade you check the folly of your sons who were doing much wrong
-in the wantonness of their hearts- wasting the substance and dishonouring
-the wife of a chieftain who they thought would not return. Now, however,
-let it be as I say, and do as I tell you. Do not go out against Ulysses,
-or you may find that you have been drawing down evil on your own heads."
-
-This was what he said, and more than half raised a loud shout, and
-at once left the assembly. But the rest stayed where they were, for
-the speech of Halitherses displeased them, and they sided with Eupeithes;
-they therefore hurried off for their armour, and when they had armed
-themselves, they met together in front of the city, and Eupeithes
-led them on in their folly. He thought he was going to avenge the
-murder of his son, whereas in truth he was never to return, but was
-himself to perish in his attempt. 
-
-Then Minerva said to Jove, "Father, son of Saturn, king of kings,
-answer me this question- What do you propose to do? Will you set them
-fighting still further, or will you make peace between them?"
-
-And Jove answered, "My child, why should you ask me? Was it not by
-your own arrangement that Ulysses came home and took his revenge upon
-the suitors? Do whatever you like, but I will tell you what I think
-will be most reasonable arrangement. Now that Ulysses is revenged,
-let them swear to a solemn covenant, in virtue of which he shall continue
-to rule, while we cause the others to forgive and forget the massacre
-of their sons and brothers. Let them then all become friends as heretofore,
-and let peace and plenty reign." 
-
-This was what Minerva was already eager to bring about, so down she
-darted from off the topmost summits of Olympus. 
-
-Now when Laertes and the others had done dinner, Ulysses began by
-saying, "Some of you go out and see if they are not getting close
-up to us." So one of Dolius's sons went as he was bid. Standing on
-the threshold he could see them all quite near, and said to Ulysses,
-"Here they are, let us put on our armour at once." 
-
-They put on their armour as fast as they could- that is to say Ulysses,
-his three men, and the six sons of Dolius. Laertes also and Dolius
-did the same- warriors by necessity in spite of their grey hair. When
-they had all put on their armour, they opened the gate and sallied
-forth, Ulysses leading the way. 
-
-Then Jove's daughter Minerva came up to them, having assumed the form
-and voice of Mentor. Ulysses was glad when he saw her, and said to
-his son Telemachus, "Telemachus, now that are about to fight in an
-engagement, which will show every man's mettle, be sure not to disgrace
-your ancestors, who were eminent for their strength and courage all
-the world over." 
-
-"You say truly, my dear father," answered Telemachus, "and you shall
-see, if you will, that I am in no mind to disgrace your family."
-
-Laertes was delighted when he heard this. "Good heavens, he exclaimed,
-"what a day I am enjoying: I do indeed rejoice at it. My son and grandson
-are vying with one another in the matter of valour." 
-
-On this Minerva came close up to him and said, "Son of Arceisius-
-best friend I have in the world- pray to the blue-eyed damsel, and
-to Jove her father; then poise your spear and hurl it." 
-
-As she spoke she infused fresh vigour into him, and when he had prayed
-to her he poised his spear and hurled it. He hit Eupeithes' helmet,
-and the spear went right through it, for the helmet stayed it not,
-and his armour rang rattling round him as he fell heavily to the ground.
-Meantime Ulysses and his son fell the front line of the foe and smote
-them with their swords and spears; indeed, they would have killed
-every one of them, and prevented them from ever getting home again,
-only Minerva raised her voice aloud, and made every one pause. "Men
-of Ithaca," she cried, cease this dreadful war, and settle the matter
-at once without further bloodshed." 
-
-On this pale fear seized every one; they were so frightened that their
-arms dropped from their hands and fell upon the ground at the sound
-of the goddess's voice, and they fled back to the city for their lives.
-But Ulysses gave a great cry, and gathering himself together swooped
-down like a soaring eagle. Then the son of Saturn sent a thunderbolt
-of fire that fell just in front of Minerva, so she said to Ulysses,
-"Ulysses, noble son of Laertes, stop this warful strife, or Jove will
-be angry with you." 
-
-Thus spoke Minerva, and Ulysses obeyed her gladly. Then Minerva assumed
-the form and voice of Mentor, and presently made a covenant of peace
-between the two contending parties. 
+And he went on,
+"This paragraph he intentionally left meaningless,
+and this sentence he intentionally left meaningless,
+and this sentence he intentionally left meaningless,
+and this sentence he intentionally left meaningless,
+and this sentence he intentionally left meaningless as well."
+
+This paragraph he intentionally left meaningless,
+and this sentence he intentionally left meaningless,
+and this sentence he intentionally left meaningless,
+and this sentence he intentionally left meaningless,
+and this sentence he intentionally left meaningless as well.
+
+This paragraph he intentionally left meaningless,
+and this sentence he intentionally left meaningless,
+and this sentence he intentionally left meaningless as well.
+
+This paragraph he intentionally left meaningless,
+and this sentence he intentionally left meaningless,
+and this sentence he intentionally left meaningless,
+and this sentence he intentionally left meaningless,
+and this sentence he intentionally left meaningless,
+and this sentence he intentionally left meaningless,
+and this sentence he intentionally left meaningless,
+and this sentence he intentionally left meaningless as well.
+
+This paragraph he intentionally left meaningless,
+and this sentence he intentionally left meaningless,
+and this sentence he intentionally left meaningless,
+and this sentence he intentionally left meaningless,
+and this sentence he intentionally left meaningless,
+and this sentence he intentionally left meaningless,
+and this sentence he intentionally left meaningless as well.
 
 THE END
 
 ----------------------------------------------------------------------
 
 Copyright statement:
-The Internet Classics Archive by Daniel C. Stevenson, Web Atomics.
-World Wide Web presentation is copyright (C) 1994-1998, Daniel
-C. Stevenson, Web Atomics.
-All rights reserved under international and pan-American copyright
-conventions, including the right of reproduction in whole or in part
-in any form. Direct permission requests to classics@classics.mit.edu.
-Translation of "The Deeds of the Divine Augustus" by Augustus is
-copyright (C) Thomas Bushnell, BSG.
+This text is nonsense, therefore I don't claim any copyright.
 
 
 To really test that reportlab can produce pages quickly download the
diff -ur reportlab/docs/graphguide/ch3_shapes.py ./docs/graphguide/ch3_shapes.py
--- reportlab/docs/graphguide/ch3_shapes.py	2002-07-24 21:56:35.000000000 +0200
+++ ./docs/graphguide/ch3_shapes.py	2004-02-06 11:07:12.000000000 +0100
@@ -225,7 +225,7 @@
 disc("""
 Here is a more fancy example using the code snippet below.
 Please consult the ReportLab User Guide to see how non-standard
-like 'LettErrorRobot-Chrome' fonts are being registered!
+like 'Wargames' fonts are being registered!
 """)
 
 eg("""
@@ -240,7 +240,7 @@
                  fontSize=36))
 
     d.add(String(150, 160, 'Hello World',
-                 fontName='LettErrorRobot-Chrome',
+                 fontName='Wargames',
                  fontSize=36))
 """)
 
@@ -249,7 +249,7 @@
 rl_config.warnOnMissingFontGlyphs = 0
 afmFile, pfbFile = getJustFontPaths()
 T1face = pdfmetrics.EmbeddedType1Face(afmFile, pfbFile)
-T1faceName = 'LettErrorRobot-Chrome'
+T1faceName = 'Wargames'
 pdfmetrics.registerTypeFace(T1face)
 T1font = pdfmetrics.Font(T1faceName, T1faceName, 'WinAnsiEncoding')
 pdfmetrics.registerFont(T1font)
@@ -265,7 +265,7 @@
              fontSize=36))
 
 d.add(String(150, 160, 'Hello World',
-             fontName='LettErrorRobot-Chrome',
+             fontName='Wargames',
              fontSize=36))
 
 draw(d, 'fancy font example')
diff -ur reportlab/docs/userguide/ch1_intro.py ./docs/userguide/ch1_intro.py
--- reportlab/docs/userguide/ch1_intro.py	2003-09-09 09:31:24.000000000 +0200
+++ ./docs/userguide/ch1_intro.py	2004-02-06 11:07:12.000000000 +0100
@@ -150,6 +150,10 @@
 are glad to include these in the toolkit. Finally we thank Bigelow &amp; Holmes Inc ($design@bigelowandholmes.com$)
 for Luxi Serif Regular and Ray Larabie ($http://www.larabiefonts.com$) for the Rina TrueType font.""")
 
+disc("""Remark regarding the Debian package: Sadly, these three fonts have non-free
+licenses and therefore are not provided with the Debian package of ReportLab. The Debian package
+replaces this fonts with GPL fonts by Dustin Norlander.""")
+
 heading2("Installation and Setup")
 
 disc("""
diff -ur reportlab/docs/userguide/ch2a_fonts.py ./docs/userguide/ch2a_fonts.py
--- reportlab/docs/userguide/ch2a_fonts.py	2004-01-21 09:33:02.000000000 +0100
+++ ./docs/userguide/ch2a_fonts.py	2004-02-06 11:16:00.000000000 +0100
@@ -42,7 +42,10 @@
 donated a font named <i>LettErrorRobot-Chrome</i> which we may
 use for testing and/or documenting purposes (and which you may
 use as well). It comes bundled with the ReportLab distribution in the
-directory $reportlab/fonts$.
+directory $reportlab/fonts$ This font can't be shipped with the 
+Debian package of ReportLab, since it license is not free. Instead,
+we use an subset of Dustin Norlander's font <i>Wargames</i>, which
+can be distributed freely (under the terms of the GPL).
 """)
 
 disc("""
@@ -52,7 +55,7 @@
 ('glyphs') in the font such as height, width, bounding box info and
 other 'metrics', while the latter is a binary file that describes the
 shapes of the font. The $reportlab/fonts$ directory contains the files
-$'LeERC___.AFM'$ and $'LeERC___.PFB'$ that are used as an example
+$'Wargames.afm'$ and $'Wargames.pfb'$ that are used as an example
 font.
 """)
 
@@ -67,21 +70,21 @@
 import os
 import reportlab
 folder = os.path.dirname(reportlab.__file__) + os.sep + 'fonts'
-afmFile = os.path.join(folder, 'LeERC___.AFM')
-pfbFile = os.path.join(folder, 'LeERC___.PFB')
+afmFile = os.path.join(folder, 'Wargames.afm')
+pfbFile = os.path.join(folder, 'Wargames.pfb')
 
 from reportlab.pdfbase import pdfmetrics
 justFace = pdfmetrics.EmbeddedType1Face(afmFile, pfbFile)
-faceName = 'LettErrorRobot-Chrome' # pulled from AFM file
+faceName = 'Wargames' # pulled from AFM file
 pdfmetrics.registerTypeFace(justFace)
-justFont = pdfmetrics.Font('LettErrorRobot-Chrome',
+justFont = pdfmetrics.Font('Wargames',
                            faceName,
                            'WinAnsiEncoding')
 pdfmetrics.registerFont(justFont)
 
-canvas.setFont('LettErrorRobot-Chrome', 32)
+canvas.setFont('Wargames', 32)
 canvas.drawString(10, 150, 'This should be in')
-canvas.drawString(10, 100, 'LettErrorRobot-Chrome')
+canvas.drawString(10, 100, 'Wargames')
 """)
 
 illust(examples.customfont1, "Using a very non-standard font")
@@ -119,7 +122,7 @@
 """)
 
 disc("""
-In the <i>LettErrorRobot-Chrome</i> example we explicitely specified
+In the <i>Wargames</i> example we explicitely specified
 the place of the font description files to be loaded.
 In general, you'll prefer to store your fonts in some canonic
 locations and make the embedding mechanism aware of them.
@@ -573,12 +576,12 @@
 
 from reportlab.pdfbase import pdfmetrics
 from reportlab.pdfbase.ttfonts import TTFont
-pdfmetrics.registerFont(TTFont('Rina', 'rina.ttf'))
-canvas.setFont(Rina, 32)
+pdfmetrics.registerFont(TTFont('PenguinAttack', 'PenguinAttack.ttf'))
+canvas.setFont(PenguinAttack, 24)
 canvas.drawString(10, 150, "Some text encoded in UTF-8")
-canvas.drawString(10, 100, "In the Rina TT Font!")
+canvas.drawString(10, 100, "In the PenguinAttack TT Font!")
 """)
-illust(examples.ttffont1, "Using a the Rina TrueType Font")
+illust(examples.ttffont1, "Using a the PenguinAttack TrueType Font")
 disc("""In the above example the true type font object is created using""")
 eg("""
     TTFont(name,filename)
@@ -592,26 +595,26 @@
 from reportlab.lib.styles import ParagraphStyle
 
 from reportlab.lib.fonts import addMapping
-addMapping('Rina', 0, 0, 'Rina')
-addMapping('Rina', 0, 1, 'Rina')
-addMapping('Rina', 1, 0, 'Rina')
-addMapping('Rina', 1, 1, 'Rina')
+addMapping('PenguinAttack', 0, 0, 'PenguinAttack')
+addMapping('PenguinAttack', 0, 1, 'PenguinAttack')
+addMapping('PenguinAttack', 1, 0, 'PenguinAttack')
+addMapping('PenguinAttack', 1, 1, 'PenguinAttack')
 
 disc("""Before using the TT Fonts in Platypus we should add a mapping from the family name to the
 individual font names that describe the behaviour under the $<b>$ and $<i>$ attributes.""")
 
 eg("""
 from reportlab.lib.fonts import addMapping
-addMapping('Rina', 0, 0, 'Rina')    #normal
-addMapping('Rina', 0, 1, 'Rina')    #italic
-addMapping('Rina', 1, 0, 'Rina')    #bold
-addMapping('Rina', 1, 1, 'Rina')    #italic and bold
+addMapping('PenguinAttack', 0, 0, 'PenguinAttack')    #normal
+addMapping('PenguinAttack', 0, 1, 'PenguinAttack')    #italic
+addMapping('PenguinAttack', 1, 0, 'PenguinAttack')    #bold
+addMapping('PenguinAttack', 1, 1, 'PenguinAttack')    #italic and bold
 """)
 
-disc("""we only have Rina regular so we map all to the same internal fontname. After registering and mapping
-the Rina font as above we can use paragraph text like""")
+disc("""we only have PenguinAttack regular so we map all to the same internal fontname. After registering and mapping
+the PenguinAttack font as above we can use paragraph text like""")
 parabox2("""<font name="Times-Roman" size="14">This is in Times-Roman</font>
-<font name="Rina" color="magenta" size="14">and this is in magenta Rina!</font>""","Using TTF fonts in paragraphs")
+<font name="PenguinAttack" color="magenta" size="14">and this is in magenta PenguinAttack!</font>""","Using TTF fonts in paragraphs")
 
 
 CPage(5)
diff -ur reportlab/graphics/testshapes.py ./graphics/testshapes.py
--- reportlab/graphics/testshapes.py	2003-12-18 09:30:45.000000000 +0100
+++ ./graphics/testshapes.py	2004-02-06 11:07:12.000000000 +0100
@@ -382,7 +382,7 @@
     on the font patch given in rl_config.py,
     for example in reportlab/lib/fonts/.
     """
-    faceName = "LettErrorRobot-Chrome"
+    faceName = "Wargames-Regular"
     D = Drawing(400, 200)
     for size in range(12, 36, 4):
         D.add(String(10+size*2,
diff -ur reportlab/setup.py ./setup.py
--- reportlab/setup.py	2004-01-21 17:45:46.000000000 +0100
+++ ./setup.py	2004-02-06 11:12:08.000000000 +0100
@@ -17,7 +17,7 @@
     return r
 
 pjoin = os.path.join
-package_path = pjoin(package_home(distutils.__dict__), 'reportlab')
+package_path = pjoin(package_home(distutils.__dict__), 'site-packages', 'reportlab')
 
 def get_version():
     #determine Version
@@ -136,12 +136,10 @@
 
                             (pjoin(package_path, 'fonts'),
                                 ['fonts/00readme.txt',
-                                 'fonts/LeERC___.AFM',
-                                 'fonts/LeERC___.PFB',
-                                 'fonts/luxiserif.ttf',
-                                 'fonts/luxiserif_license.txt',
-                                 'fonts/rina.ttf',
-                                 'fonts/rina_license.txt']),
+                                 'fonts/Wargames.afm',
+                                 'fonts/Wargames.pfb',
+                                 'fonts/Dustismo_Roman.ttf',
+                                 'fonts/PenguinAttack.ttf']),
 
                             (pjoin(package_path, 'lib'),
                                 ['lib/hyphen.mashed',]),
@@ -167,8 +165,8 @@
 
                             (pjoin(package_path, 'tools', 'pythonpoint', 'demos'),
                                 ['tools/pythonpoint/demos/htu.xml',
-                                 'tools/pythonpoint/demos/LeERC___.AFM',
-                                 'tools/pythonpoint/demos/LeERC___.PFB',
+#                                 'tools/pythonpoint/demos/LeERC___.AFM',
+#                                 'tools/pythonpoint/demos/LeERC___.PFB',
                                  'tools/pythonpoint/demos/leftlogo.a85',
                                  'tools/pythonpoint/demos/leftlogo.gif',
                                  'tools/pythonpoint/demos/lj8100.jpg',
diff -ur reportlab/test/test_pdfbase_fontembed.py ./test/test_pdfbase_fontembed.py
--- reportlab/test/test_pdfbase_fontembed.py	2002-07-24 21:56:38.000000000 +0200
+++ ./test/test_pdfbase_fontembed.py	2004-02-06 11:07:12.000000000 +0100
@@ -16,7 +16,11 @@
 
         Just vam Rossum has kindly donated a font which we may use
         for testing purposes.  You need to contact him at just@letterror.com
-        if you want to use it for real."""
+        if you want to use it for real.
+	
+	Message from the Debian package maintainer: The Debian package
+	can't ship Just's font, therefore we have replaced it with a subset 
+	of a free font by Dustin Norlander, Wargames."""
 
         #LettError fonts should always be there.  The others are voluntary.
 
@@ -67,14 +71,14 @@
 ##        justFont = pdfmetrics.Font('LettErrorRobot-Chrome', faceName, 'WinAnsiEncoding')
 ##        pdfmetrics.registerFont(justFont)
 
-        c.setFont('LettErrorRobot-Chrome', 12)
-        c.drawString(100, y, 'This should be in LettErrorRobot-Chrome')
+        c.setFont('Wargames', 12)
+        c.drawString(100, y, 'This should be in Wargames')
 
         def testNamedFont(canv, fontName):
             canv.showPage()
             makeWidthTestForAllGlyphs(canv, fontName, outlining=0)
 
-        testNamedFont(c, 'LettErrorRobot-Chrome')
+        testNamedFont(c, 'Wargames')
 
         c.save()
 
diff -ur reportlab/test/test_pdfbase_ttfonts.py ./test/test_pdfbase_ttfonts.py
--- reportlab/test/test_pdfbase_ttfonts.py	2003-11-20 09:30:48.000000000 +0100
+++ ./test/test_pdfbase_ttfonts.py	2004-02-06 11:07:12.000000000 +0100
@@ -1,8 +1,8 @@
 
 """Test TrueType font subsetting & embedding code.
 
-This test uses a sample font (luxiserif.ttf) taken from XFree86 which is called Luxi
-Serif Regular and is covered under the license in ../fonts/luxiserif_licence.txt.
+This test uses a sample font by Dustin Norlander (Dustismo_Roman.ttf).
+The font is free and can be distributed under the terms of the GPL.
 """
 
 import string
@@ -67,10 +67,10 @@
         c = Canvas('test_pdfbase_ttfonts.pdf')
         c.setFont('Helvetica', 30)
         c.drawString(100,700, 'Unicode TrueType Font Test')
-        pdfmetrics.registerFont(TTFont("TestFont", "luxiserif.ttf"))
-        pdfmetrics.registerFont(TTFont("RinaFont", "rina.ttf"))
+        pdfmetrics.registerFont(TTFont("TestFont", "Dustismo_Roman.ttf"))
+        pdfmetrics.registerFont(TTFont("PenguinFont", "PenguinAttack.ttf"))
         # Draw a table of Unicode characters
-        for fontName in ('TestFont','RinaFont'):
+        for fontName in ('TestFont','PenguinFont'):
             c.setFont(fontName, 10)
             for i in range(0, 32):
                 for j in range(0, 32):
@@ -119,16 +119,16 @@
 
     def testFontFile(self):
         "Tests TTFontFile and TTF parsing code"
-        ttf = TTFontFile("luxiserif.ttf")
-        self.assertEquals(ttf.name, "LuxiSerif")
+        ttf = TTFontFile("Dustismo_Roman.ttf")
+        self.assertEquals(ttf.name, "DustismoRoman")
         self.assertEquals(ttf.flags, FF_SYMBOLIC)
         self.assertEquals(ttf.italicAngle, 0.0)
-        self.assertEquals(ttf.ascent, 783)      # FIXME: or 992?
-        self.assertEquals(ttf.descent, -206)    # FIXME: or -210?
-        self.assertEquals(ttf.capHeight, 0)
-        self.assertEquals(ttf.bbox, [-204, -211, 983, 992])
+        self.assertEquals(ttf.ascent, 712)
+        self.assertEquals(ttf.descent, -238)
+        self.assertEquals(ttf.capHeight, 712)
+        self.assertEquals(ttf.bbox, [-113, -256, 923, 1051])
         self.assertEquals(ttf.stemV, 87)
-        self.assertEquals(ttf.defaultWidth, 250)
+        self.assertEquals(ttf.defaultWidth, 500)
 
     def testAdd32(self):
         "Test add32"
@@ -154,7 +154,7 @@
 
     def testFontFileChecksum(self):
         "Tests TTFontFile and TTF parsing code"
-        file = TTFOpenFile("luxiserif.ttf")[1].read()
+        file = TTFOpenFile("Dustismo_Roman.ttf")[1].read()
         TTFontFile(StringIO(file), validate=1) # should not fail
         file1 = file[:12345] + "\xFF" + file[12346:] # change one byte
         self.assertRaises(TTFError, TTFontFile, StringIO(file1), validate=1)
@@ -163,7 +163,7 @@
 
     def testSubsetting(self):
         "Tests TTFontFile and TTF parsing code"
-        ttf = TTFontFile("luxiserif.ttf")
+        ttf = TTFontFile("Dustismo_Roman.ttf")
         subset = ttf.makeSubset([0x41, 0x42])
         subset = TTFontFile(StringIO(subset), 0)
         for tag in ('cmap', 'head', 'hhea', 'hmtx', 'maxp', 'name', 'OS/2',
@@ -175,13 +175,13 @@
             pos = subset.read_ushort()    # this is actually offset / 2
             self.failIf(pos % 2 != 0, "glyph %d at +%d should be long aligned" % (n, pos * 2))
 
-        self.assertEquals(subset.name, "LuxiSerif")
+        self.assertEquals(subset.name, "DustismoRoman")
         self.assertEquals(subset.flags, FF_SYMBOLIC)
         self.assertEquals(subset.italicAngle, 0.0)
-        self.assertEquals(subset.ascent, 783)      # FIXME: or 992?
-        self.assertEquals(subset.descent, -206)    # FIXME: or -210?
-        self.assertEquals(subset.capHeight, 0)
-        self.assertEquals(subset.bbox, [-204, -211, 983, 992])
+        self.assertEquals(subset.ascent, 712)
+        self.assertEquals(subset.descent, -238)
+        self.assertEquals(subset.capHeight, 712)
+        self.assertEquals(subset.bbox, [-113, -256, 923, 1051])
         self.assertEquals(subset.stemV, 87)
 
     def testFontMaker(self):
@@ -201,7 +201,7 @@
 
     def testAddSubsetObjects(self):
         "Tests TTFontFace.addSubsetObjects"
-        face = TTFontFace("luxiserif.ttf")
+        face = TTFontFace("Dustismo_Roman.ttf")
         doc = PDFDocument()
         fontDescriptor = face.addSubsetObjects(doc, "TestFont", [ 0x78, 0x2017 ])
         fontDescriptor = doc.idToObject[fontDescriptor.name].dict
@@ -239,7 +239,7 @@
 
     def testStringWidth(self):
         "Test TTFont.stringWidth"
-        font = TTFont("TestFont", "luxiserif.ttf")
+        font = TTFont("TestFont", "Dustismo_Roman.ttf")
         self.assert_(font.stringWidth("test", 10) > 0)
         width = font.stringWidth(utf8(0x2260) * 2, 1000)
         expected = font.face.getCharWidth(0x2260) * 2
@@ -248,7 +248,7 @@
     def testSplitString(self):
         "Tests TTFont.splitString"
         doc = PDFDocument()
-        font = TTFont("TestFont", "luxiserif.ttf")
+        font = TTFont("TestFont", "Dustismo_Roman.ttf")
         text = string.join(map(utf8, range(0, 512)), "")
         allchars = string.join(map(chr, range(0, 256)), "")
         chunks = [(0, allchars), (1, allchars)]
@@ -264,7 +264,7 @@
     def testSubsetInternalName(self):
         "Tests TTFont.getSubsetInternalName"
         doc = PDFDocument()
-        font = TTFont("TestFont", "luxiserif.ttf")
+        font = TTFont("TestFont", "Dustismo_Roman.ttf")
         # Actually generate some subsets
         text = string.join(map(utf8, range(0, 513)), "")
         font.splitString(text, doc)
@@ -277,7 +277,7 @@
 
     def testAddObjectsEmpty(self):
         "TTFont.addObjects should not fail when no characters were used"
-        font = TTFont("TestFont", "luxiserif.ttf")
+        font = TTFont("TestFont", "Dustismo_Roman.ttf")
         doc = PDFDocument()
         font.addObjects(doc)
 
@@ -285,7 +285,7 @@
         "Test that TTFont.addObjects resets the font"
         # Actually generate some subsets
         doc = PDFDocument()
-        font = TTFont("TestFont", "luxiserif.ttf")
+        font = TTFont("TestFont", "Dustismo_Roman.ttf")
         font.splitString('a', doc)            # create some subset
         doc = PDFDocument()
         font.addObjects(doc)
@@ -299,7 +299,7 @@
         "Test that TTFont can be used for different documents at the same time"
         doc1 = PDFDocument()
         doc2 = PDFDocument()
-        font = TTFont("TestFont", "luxiserif.ttf")
+        font = TTFont("TestFont", "Dustismo_Roman.ttf")
         self.assertEquals(font.splitString('ab', doc1), [(0, '\0\1')])
         self.assertEquals(font.splitString('b', doc2), [(0, '\0')])
         font.addObjects(doc1)
@@ -310,14 +310,14 @@
         "Test TTFont.addObjects"
         # Actually generate some subsets
         doc = PDFDocument()
-        font = TTFont("TestFont", "luxiserif.ttf")
+        font = TTFont("TestFont", "Dustismo_Roman.ttf")
         font.splitString('a', doc)            # create some subset
         internalName = font.getSubsetInternalName(0, doc)[1:]
         font.addObjects(doc)
         pdfFont = doc.idToObject[internalName]
         self.assertEquals(doc.idToObject['BasicFonts'].dict[internalName], pdfFont)
         self.assertEquals(pdfFont.Name, internalName)
-        self.assertEquals(pdfFont.BaseFont, "SUBSET+LuxiSerif+0")
+        self.assertEquals(pdfFont.BaseFont, "SUBSET+DustismoRoman+0")
         self.assertEquals(pdfFont.FirstChar, 0)
         self.assertEquals(pdfFont.LastChar, 0)
         self.assertEquals(len(pdfFont.Widths.sequence), 1)
diff -ur reportlab/test/test_platypus_general.py ./test/test_platypus_general.py
--- reportlab/test/test_platypus_general.py	2003-09-09 09:31:31.000000000 +0200
+++ ./test/test_platypus_general.py	2004-02-06 11:07:12.000000000 +0100
@@ -415,14 +415,14 @@
     #######################################################################
 
 
-    # custom font with LettError-Robot font
+    # custom font with Wargames font
     import reportlab.rl_config
     reportlab.rl_config.warnOnMissingFontGlyphs = 0
 
     from reportlab.pdfbase import pdfmetrics
     fontDir = os.path.join(os.path.dirname(reportlab.__file__),'fonts')
-    face = pdfmetrics.EmbeddedType1Face(os.path.join(fontDir,'LeERC___.AFM'),os.path.join(fontDir,'LeERC___.PFB'))
-    faceName = face.name  # should be 'LettErrorRobot-Chrome'
+    face = pdfmetrics.EmbeddedType1Face(os.path.join(fontDir,'Wargames.afm'),os.path.join(fontDir,'Wargames.pfb'))
+    faceName = face.name  # should be 'Wargames'
     pdfmetrics.registerTypeFace(face)
     font = pdfmetrics.Font(faceName, faceName, 'WinAnsiEncoding')
     pdfmetrics.registerFont(font)
@@ -432,18 +432,18 @@
     story.append(Paragraph(
         """This is an ordinary paragraph, which happens to contain
         text in an embedded font:
-        <font name="LettErrorRobot-Chrome">LettErrorRobot-Chrome</font>.
+        <font name="Wargames">Wargames</font>.
         Now for the real challenge...""", styleSheet['Normal']))
 
 
-    styRobot = ParagraphStyle('Robot', styleSheet['Normal'])
-    styRobot.fontSize = 16
-    styRobot.leading = 20
-    styRobot.fontName = 'LettErrorRobot-Chrome'
+    styWargames = ParagraphStyle('Wargames', styleSheet['Normal'])
+    styWargames.fontSize = 16
+    styWargames.leading = 20
+    styWargames.fontName = 'Wargames'
 
     story.append(Paragraph(
-                "This whole paragraph is 16-point Letterror-Robot-Chrome.",
-                styRobot))
+                "This whole paragraph is 16-point Wargames.",
+                styWargames))
     story.append(FrameBreak())
 
 
diff -ur reportlab/tools/docco/examples.py ./tools/docco/examples.py
--- reportlab/tools/docco/examples.py	2002-07-24 21:56:39.000000000 +0200
+++ ./tools/docco/examples.py	2004-02-06 11:07:12.000000000 +0100
@@ -462,16 +462,16 @@
     from reportlab.pdfbase import pdfmetrics
     afmFile, pfbFile = rl_doc_utils.getJustFontPaths()
     justFace = pdfmetrics.EmbeddedType1Face(afmFile, pfbFile)
-    faceName = 'LettErrorRobot-Chrome' # pulled from AFM file
+    faceName = 'Wargames' # pulled from AFM file
     pdfmetrics.registerTypeFace(justFace)
-    justFont = pdfmetrics.Font('LettErrorRobot-Chrome',
+    justFont = pdfmetrics.Font('Wargames',
                                faceName,
                                'WinAnsiEncoding')
     pdfmetrics.registerFont(justFont)
 
-    canvas.setFont('LettErrorRobot-Chrome', 32)
+    canvas.setFont('Wargames', 32)
     canvas.drawString(10, 150, 'This should be in')
-    canvas.drawString(10, 100, 'LettErrorRobot-Chrome')
+    canvas.drawString(10, 100, 'Wargames')
 """
 
 testttffont1 = """
@@ -481,12 +481,12 @@
     reportlab.rl_config.warnOnMissingFontGlyphs = 0
     from reportlab.pdfbase import pdfmetrics
     from reportlab.pdfbase.ttfonts import TTFont
-    pdfmetrics.registerFont(TTFont('Rina', 'rina.ttf'))
+    pdfmetrics.registerFont(TTFont('PenguinAttack', 'PenguinAttack.ttf'))
     from reportlab.pdfgen.canvas import Canvas
 
-    canvas.setFont('Rina', 32)
+    canvas.setFont('PenguinAttack', 24)
     canvas.drawString(10, 150, "Some UTF-8 text encoded")
-    canvas.drawString(10, 100, "in the Rina TT Font!")
+    canvas.drawString(10, 100, "in the PenguinAttack TT Font!")
 """
 
 testcursormoves1 = """
diff -ur reportlab/tools/docco/rl_doc_utils.py ./tools/docco/rl_doc_utils.py
--- reportlab/tools/docco/rl_doc_utils.py	2003-04-18 00:42:03.000000000 +0200
+++ ./tools/docco/rl_doc_utils.py	2004-02-06 11:07:12.000000000 +0100
@@ -103,7 +103,7 @@
     '''return afm and pfb for Just's files'''
     import reportlab
     folder = os.path.dirname(reportlab.__file__) + os.sep + 'fonts'
-    return os.path.join(folder, 'LeERC___.AFM'), os.path.join(folder, 'LeERC___.PFB')
+    return os.path.join(folder, 'Wargames.afm'), os.path.join(folder, 'Wargames.pfb')
 
 # for testing
 def NOP(*x,**y):