RE: ANNOUNCE: Tk-804.027-p3.patch.gz

<[email protected]> Fri, 24 Nov 2006 16:11:01 +0100
Newsgroups gmane.comp.lang.perl.tk
Message-ID <5A2C73EEAC2539458E55C514A51DCC5D02881FFD@mucse304.eu.infineon.com>
Hi Slaven,

thank you very much for the useful hint! Yes this was the major
problem: my libfontconfig.so did not know a single font!
I recompiled fontconfig-2.4.1 with some sensible paths to fonts,
and now your one-liner works, as well as several of the tests.
But many others still fail with segfault:

Failed Test   Stat Wstat Total Fail  Failed  List of Failed
-----------------------------------------------------------
t/JP.t           0   139   294    0   0.00%  ??
t/KR.t           0   139   271    0   0.00%  ??
t/create.t       0   139   573 1046 182.55%  51-573
t/entry.t        0   139   336  524 155.95%  75-336
t/fbox.t         0   139     6    6 100.00%  4-6
t/fileevent.t    0   139     1    0   0.00%  ??
t/font.t         0   139    14    2  14.29%  14
t/geomgr.t       0   139    19    6  31.58%  17-19
t/list.t         0   139     6    0   0.00%  ??
t/listbox.t      0   139   537  996 185.47%  40-537
t/msgbox.t       0   139    13   20 153.85%  4-13
t/text.t         0   139   119    0   0.00%  ??
t/unicode.t      0   139     7    4  57.14%  6-7
t/wm-tcl.t       0   139   315  348 110.48%  142-315

I went back to fontconfig-2.3.2 and it worked again.
Same on Linux. On both Solaris and Linux, I can get a
working Tk with XFT with:
	freetype-2.2.1
	fontconfig-2.3.2
	renderproto-0.9.2
	libXrender-0.9.2
	libXft-2.1.11
But with the latest fontconfig-2.4.1 I get segfaults in
the above tests - and it seems that the segfault always
happens in some destruction function (FcPatternDestroy,
FcCharsetDestroy). Sorry, no idea whether this is Tks or
fontconfig's fault.

With the above configuration (the working one), I get 
however still some errors in t/listbox.t (on Linux), see 
attached log. Maybe also some issue with font sizing?

Hope this helps to make the Tk run with the latest and
greatest prerequisite packages...

Cheers,

Marek


-----Original Message-----
From: [email protected] [mailto:[email protected]] On
Behalf Of Slaven Rezic
Sent: Wednesday, November 22, 2006 10:15 PM
To: Rouchal Marek (IFAG COM BTS DF R2G)
Cc: [email protected]
Subject: Re: ANNOUNCE: Tk-804.027-p3.patch.gz

<[email protected]> writes:

> Hi Slaven,
> 
> thank you for continuing the great work of Nick...
> 
> I applied the patch and Tk now seems to work very
> well with my perl-5.8.8 on Linux and Solaris 8.
> However, on Solaris 8 (Sparc), I cannot get it
> to work OK with XFT - the test dump core,
> obviously because some font pointer remains at 0x0,
> and this pointer is used :-/
> 
> I tried one quick fix in pTk/tkUnixXft.c, around
> line 189:
>    freePattern:
>       if(charset)
>         FcCharSetDestroy (charset);
> 	FcPatternDestroy (pattern);
> 	return NULL;
> ...because charset may be NULL on the goto freePattern;
> above. But that just triggers another problem:
>   tkFont.c:1136: fontPtr->resourceRefCount = 1;
> and fontPtr is NULL again...
> 
> Do you have any clue what the problem might be? Anything
> I can debug further?

Do you have the command line tools fc-list and fc-match installed? Is
there any output of fonts with fc-list? Is there any output with
fc-match? And with "fc-match helvetica"? Maybe you can try to use some
other font, e.g.

        perl -Mblib -MTk -e 'tkinit->Label(-text => "hello,
world")->pack;MainLoop' -- -font '{Bitstream Vera Sans} 10'

Regards,
        Slaven

-- 
Slaven Rezic - slaven <at> rezic <dot> de

    tksm - Perl/Tk program for searching and replacing in multiple files
    http://ptktools.sourceforge.net/#tksm

--++**==--++**==--++**==--++**==--++**==--++**==--++**==
ptk mailing list
[email protected]
https://mailman.stanford.edu/mailman/listinfo/ptk
listbox.txt (text/plain, 14.8 KB)
1..537
ok 1
ok 2 - Listbox exists
ok 3 - The object isa Tk::Listbox
ok 4 - configure set for -activestyle
ok 5 - configuration option -activestyle
ok 6 - cget call with -activestyle
ok 7 - error message for -activestyle
ok 8 - configure set for -background
ok 9 - configuration option -background
ok 10 - cget call with -background
ok 11 - error message for -background
ok 12 - configure set for -bd
ok 13 - configuration option -bd
ok 14 - cget call with -bd
ok 15 - error message for -bd
ok 16 - configure set for -bg
ok 17 - configuration option -bg
ok 18 - cget call with -bg
ok 19 - error message for -bg
ok 20 - configure set for -borderwidth
ok 21 - configuration option -borderwidth
ok 22 - cget call with -borderwidth
ok 23 - error message for -borderwidth
ok 24 - configure set for -cursor
ok 25 - configuration option -cursor
ok 26 - cget call with -cursor
ok 27 - error message for -cursor
ok 28 - configure set for -exportselection
ok 29 - configuration option -exportselection
ok 30 - cget call with -exportselection
ok 31 # skip error test for -exportselection
ok 32 - configure set for -fg
ok 33 - configuration option -fg
ok 34 - cget call with -fg
ok 35 - error message for -fg
ok 36 - configure set for -font
ok 37 # skip configure test for -font
ok 38 # skip cget test for -font
ok 39 # skip error test for -font
ok 40 - configure set for -foreground
ok 41 - configuration option -foreground
ok 42 - cget call with -foreground
ok 43 - error message for -foreground
ok 44 - configure set for -height
ok 45 - configuration option -height
ok 46 - cget call with -height
ok 47 - error message for -height
ok 48 - configure set for -highlightbackground
ok 49 - configuration option -highlightbackground
ok 50 - cget call with -highlightbackground
ok 51 - error message for -highlightbackground
ok 52 - configure set for -highlightcolor
ok 53 - configuration option -highlightcolor
ok 54 - cget call with -highlightcolor
ok 55 - error message for -highlightcolor
ok 56 - configure set for -highlightthickness
ok 57 - configuration option -highlightthickness
ok 58 - cget call with -highlightthickness
ok 59 - error message for -highlightthickness
ok 60 - configure set for -highlightthickness
ok 61 - configuration option -highlightthickness
ok 62 - cget call with -highlightthickness
ok 63 # skip error test for -highlightthickness
ok 64 # skip *TODO* -offset not yet implemented on 804.027001
ok 65 # skip *TODO* -offset not yet implemented on 804.027001
ok 66 # skip *TODO* -offset not yet implemented on 804.027001
ok 67 - configure set for -relief
ok 68 - configuration option -relief
ok 69 - cget call with -relief
ok 70 - error message for -relief
ok 71 - configure set for -selectbackground
ok 72 - configuration option -selectbackground
ok 73 - cget call with -selectbackground
ok 74 - error message for -selectbackground
ok 75 - configure set for -selectborderwidth
ok 76 - configuration option -selectborderwidth
ok 77 - cget call with -selectborderwidth
ok 78 - error message for -selectborderwidth
ok 79 - configure set for -selectforeground
ok 80 - configuration option -selectforeground
ok 81 - cget call with -selectforeground
ok 82 - error message for -selectforeground
ok 83 - configure set for -selectmode
ok 84 - configuration option -selectmode
ok 85 - cget call with -selectmode
ok 86 # skip error test for -selectmode
ok 87 - configure set for -setgrid
ok 88 - configuration option -setgrid
ok 89 # skip cget test for -setgrid
ok 90 # skip error test for -setgrid
ok 91 - configure set for -state
ok 92 - configuration option -state
ok 93 - cget call with -state
ok 94 - error message for -state
ok 95 - configure set for -takefocus
ok 96 - configuration option -takefocus
ok 97 - cget call with -takefocus
ok 98 # skip error test for -takefocus
ok 99 # skip *TODO* -tile not yet implemented on 804.027001
ok 100 # skip *TODO* -tile not yet implemented on 804.027001
ok 101 # skip *TODO* -tile not yet implemented on 804.027001
ok 102 - configure set for -width
ok 103 - configuration option -width
ok 104 - cget call with -width
ok 105 - error message for -width
ok 106 - configure set for -xscrollcommand
ok 107 # skip configure test for -xscrollcommand
ok 108 # skip cget test for -xscrollcommand
ok 109 # skip error test for -xscrollcommand
ok 110 - configure set for -yscrollcommand
ok 111 # skip configure test for -yscrollcommand
ok 112 # skip cget test for -yscrollcommand
ok 113 # skip error test for -yscrollcommand
ok 114 - configure set for -listvar
ok 115 - configuration option -listvar
ok 116 - cget call with -listvar
ok 117 # skip error test for -listvar
ok 118 - error message
ok 119
ok 120 - Tk class Listbox
ok 121 - error message
ok 122
ok 123 - Listbox activate error message
ok 124
ok 125 - Listbox activate
ok 126
ok 127
ok 128
ok 129 - Listbox bbox error message
ok 130
ok 131
ok 132 - Listbox bbox
ok 133
ok 134 - No core dump with bbox
not ok 135
#   Failed test at t/listbox.t line 306.
#     Structures begin differing at:
#          $got->[3] = '16'
#     $expected->[3] = '14'
not ok 136
#   Failed test at t/listbox.t line 307.
#     Structures begin differing at:
#          $got->[1] = '28'
#     $expected->[1] = '26'
ok 137
not ok 138
#   Failed test at t/listbox.t line 315.
#     Structures begin differing at:
#          $got->[3] = '16'
#     $expected->[3] = '14'
not ok 139
#   Failed test at t/listbox.t line 322.
#     Structures begin differing at:
#          $got->[1] = '91'
#     $expected->[1] = '83'
not ok 140
#   Failed test at t/listbox.t line 323.
#     Structures begin differing at:
#          $got->[1] = '91'
#     $expected->[1] = '83'
ok 141
not ok 142
#   Failed test at t/listbox.t line 340.
#     Structures begin differing at:
#          $got->[1] = '43'
#     $expected->[1] = '39'
not ok 143
#   Failed test at t/listbox.t line 348.
#     Structures begin differing at:
#          $got->[1] = '62'
#     $expected->[1] = '56'
not ok 144
#   Failed test at t/listbox.t line 349.
#     Structures begin differing at:
#          $got->[1] = '81'
#     $expected->[1] = '73'
ok 145 - Listbox cget message
ok 146
ok 147
ok 148
ok 149 - Listbox configure
ok 150
ok 151
ok 152
ok 153
ok 154 - Listbox curselection error message
ok 155 - Listbox curselection
ok 156
ok 157 - Listbox delete error message
ok 158
ok 159
ok 160
ok 161 - Listbox delete element
ok 162
ok 163
ok 164
ok 165
ok 166
ok 167
ok 168
ok 169
ok 170
ok 171
ok 172
ok 173
ok 174
ok 175
ok 176
ok 177
ok 178 - Listbox get error message
ok 179
ok 180
ok 181
ok 182
ok 183
ok 184 - get with float
ok 185
ok 186
ok 187
ok 188
ok 189
ok 190
ok 191
ok 192
ok 193
ok 194
ok 195
ok 196
ok 197
ok 198
ok 199
ok 200
ok 201
ok 202 - Listbox index error message
ok 203
ok 204
ok 205
ok 206
ok 207
ok 208
ok 209 - Listbox insert error message
ok 210
ok 211 - Listbox insert
ok 212
ok 213
ok 214
ok 215
ok 216
ok 217
ok 218
ok 219
ok 220
ok 221 - Listbox nearest error message
ok 222
ok 223
ok 224 - Listbox nearest
ok 225 - Listbox scan error message
ok 226
ok 227
ok 228
ok 229
not ok 230 - Listbox scan
#   Failed test 'Listbox scan'
#   at t/listbox.t line 652.
#                   '0.264864864864865,0.454054054054054'
#     doesn't match '(?-xism:^0\.24936.*,0\.42748.*$)'
ok 231
ok 232 - Listbox see error message
ok 233
ok 234
ok 235 - Listbox see
ok 236
ok 237
ok 238
ok 239
ok 240
ok 241
ok 242
ok 243
ok 244
ok 245 - Listbox selection error message
ok 246
ok 247
ok 248
ok 249
ok 250
ok 251 - Listbox selection
ok 252
ok 253
ok 254
ok 255
ok 256
ok 257
ok 258 - Tk selection includes error message
ok 259 - Listbox selection includes
ok 260
ok 261
ok 262
ok 263
ok 264
ok 265
ok 266
ok 267
ok 268
ok 269
ok 270
ok 271 - Listbox selection error message
ok 272 - Listbox size error message
ok 273 - Listbox size
ok 274 - xview, first value
ok 275 - xview, second value
ok 276
ok 277
ok 278 - Listbox xview with floats
ok 279 - Listbox xview error message
ok 280
ok 281
ok 282
ok 283
ok 284
ok 285
ok 286
ok 287
ok 288
ok 289
ok 290
ok 291
ok 292
ok 293 - yview returned 0.266666666666667
ok 294 - Listbox yview error message
ok 295
ok 296
ok 297
ok 298
ok 299
ok 300
ok 301
ok 302
ok 303
ok 304
ok 305
ok 306
ok 307
ok 308 - SelectionGet, error message
ok 309
ok 310
ok 311 - Empty curselection
ok 312
ok 313
ok 314
ok 315
ok 316
ok 317
ok 318 # TODO Tests may fail (window-manager related?)
ok 319 # TODO Tests may fail (window-manager related?)
ok 320 # TODO Tests may fail (window-manager related?)
ok 321
ok 322
ok 323 - -listvar after initial setting
ok 324 - ConfigureListbox, no listvar -> existing listvar
not ok 325 - ConfigureListbox procedure, listvar -> no listvar # TODO Not yet implemented in Perl/Tk
#   Failed (TODO) test 'ConfigureListbox procedure, listvar -> no listvar'
#   at t/listbox.t line 1064.
#     Structures begin differing at:
#          $got->[4] = '1'
#     $expected->[4] = Does not exist
ok 326 # TODO Not yet implemented in Perl/Tk
not ok 327 - ConfigureListbox, no listvar -> non-existant listvar # TODO Not yet implemented in Perl/Tk
#   Failed (TODO) test 'ConfigureListbox, no listvar -> non-existant listvar'
#   at t/listbox.t line 1090.
#     Structures begin differing at:
#          $got->[0] = Does not exist
#     $expected->[0] = 'a'
ok 328 - ConfigureListbox, non-existant listvar
not ok 329 - ConfigureListbox, listvar -> non-existant listvar # TODO Not yet implemented in Perl/Tk
#   Failed (TODO) test 'ConfigureListbox, listvar -> non-existant listvar'
#   at t/listbox.t line 1108.
#     Structures begin differing at:
#          $got->[0] = Does not exist
#     $expected->[0] = 'a'
ok 330 - ConfigureListbox, listvar -> same listvar
ok 331 - ConfigureListbox, no listvar -> no listvar
not ok 332 # TODO Not yet implemented in Perl/Tk
#   Failed (TODO) test at t/listbox.t line 1138.
#                   ''
#     doesn't match '(?-xism:Should have an error message about invalid type)'
not ok 333 - ConfigureListbox, no listvar -> bad listvar # TODO Not yet implemented in Perl/Tk
#   Failed (TODO) test 'ConfigureListbox, no listvar -> bad listvar'
#   at t/listbox.t line 1139.
#     Structures begin differing at:
#          $got->[0] = 'this'
#     $expected->[0] = 'a'
not ok 334 # TODO Not yet implemented in Perl/Tk
#   Failed (TODO) test at t/listbox.t line 1141.
#          got: 'REF(0x8561f38)'
#     expected: undef
ok 335 # skip font-related tests (fixed font)
ok 336 # skip font-related tests (fixed font)
ok 337 # skip font-related tests (fixed font)
ok 338 # skip font-related tests (fixed font)
ok 339 # skip font-related tests (fixed font)
ok 340 # skip font-related tests (fixed font)
ok 341 # skip font-related tests (fixed font)
ok 342 # skip font-related tests (fixed font)
ok 343 # skip font-related tests (fixed font)
ok 344 # skip font-related tests (fixed font)
ok 345
ok 346
ok 347
ok 348
ok 349
ok 350
ok 351
ok 352
ok 353
ok 354
ok 355
ok 356
not ok 357
#   Failed test at t/listbox.t line 1281.
#          got: '73'
#     expected: '80'
not ok 358
#   Failed test at t/listbox.t line 1282.
#          got: '103'
#     expected: '93'
not ok 359
#   Failed test at t/listbox.t line 1284.
#          got: '115'
#     expected: '122'
not ok 360
#   Failed test at t/listbox.t line 1285.
#          got: '122'
#     expected: '110'
ok 361 # skip dumps core *TODO*
ok 362 - curselection after selection set
ok 363
ok 364 - size after negative delete
ok 365 - SelectionGet after selectionSet
ok 366
ok 367
ok 368
ok 369
ok 370
ok 371
ok 372
ok 373
ok 374
ok 375
ok 376
ok 377
ok 378
ok 379
ok 380
ok 381
ok 382
ok 383
ok 384
ok 385
ok 386
ok 387
ok 388
ok 389
ok 390
ok 391
ok 392
not ok 393
#   Failed test at t/listbox.t line 1451.
#          got: '73'
#     expected: '80'
not ok 394
#   Failed test at t/listbox.t line 1452.
#          got: '160'
#     expected: '144'
ok 395
not ok 396
#   Failed test at t/listbox.t line 1455.
#          got: '103'
#     expected: '93'
ok 397 # skip dumps core *TODO*
ok 398
ok 399
ok 400 - Listbox is destroyed
not ok 401
#   Failed test at t/listbox.t line 1490.
#                   '0 0.238095238095238'
#     doesn't match '(?-xism:^0 0\.2222)'
not ok 402
#   Failed test at t/listbox.t line 1491.
#                   '0 0.25'
#     doesn't match '(?-xism:^0 0\.3333)'
ok 403
ok 404
ok 405
not ok 406 - Geometry
#   Failed test 'Geometry'
#   at t/listbox.t line 1511.
#                   '150x198+0+0'
#     doesn't match '(?-xism:150x178\+\d+\+\d+)'
ok 407
ok 408
ok 409
ok 410
ok 411
ok 412 - Listbox index error message
ok 413
ok 414
ok 415
ok 416
ok 417
ok 418
ok 419
ok 420
ok 421
ok 422
not ok 423
#   Failed test at t/listbox.t line 1566.
#          got: '2'
#     expected: '3'
not ok 424
#   Failed test at t/listbox.t line 1567.
#          got: '2'
#     expected: '3'
ok 425
ok 426
ok 427
ok 428
ok 429
ok 430
ok 431
ok 432
ok 433
ok 434
ok 435
ok 436
ok 437
ok 438
ok 439
ok 440
ok 441
ok 442
ok 443
ok 444
ok 445
ok 446
ok 447
ok 448
ok 449
ok 450
ok 451
ok 452
ok 453
ok 454
ok 455
ok 456
ok 457
ok 458
ok 459
ok 460
ok 461
ok 462 # skip font-related tests (fixed font)
ok 463 # skip font-related tests (fixed font)
ok 464 # skip font-related tests (fixed font)
ok 465
ok 466
ok 467
ok 468
ok 469
ok 470
ok 471
ok 472
ok 473
ok 474
ok 475
ok 476
ok 477
ok 478
ok 479
ok 480
ok 481
ok 482
ok 483
ok 484
ok 485
ok 486
ok 487
ok 488
ok 489
ok 490
ok 491
ok 492
ok 493 - ListboxListVarProc
ok 494
ok 495
ok 496 - ListboxListVarProc, test selection after listvar mod
ok 497
ok 498
not ok 499 # TODO Not yet implemented in Perl/Tk
#   Failed (TODO) test at t/listbox.t line 1963.
#     Structures begin differing at:
#          $got->[0] = Does not exist
#     $expected->[0] = '2'
ok 500
ok 501
ok 502
ok 503 - ConfigureListboxItem error
ok 504 - itemconfigure options
ok 505 - itemconfigure with just one option
ok 506 - ConfigureListboxItem, wrong num args
ok 507 - ConfigureListboxItem, multiple calls, red
ok 508 - ConfigureListboxItem, multiple calls, orange
ok 509 - ConfigureListboxItem, multiple calls, yellow
ok 510 - ConfigureListboxItem, multiple calls, green
ok 511 - ConfigureListboxItem, multiple calls, blue
ok 512 - ConfigureListboxItem, multiple calls, darkblue
ok 513 - ConfigureListboxItem, multiple calls, violet
ok 514 - itemconfigure -background
ok 515 - itemconfigure -background error 
ok 516 - still same value after error
ok 517 - itemconfigure -bg
ok 518 - itemconfigure -bg error 
ok 519 - still same value after error
ok 520 - itemconfigure -fg
ok 521 - itemconfigure -fg error 
ok 522 - still same value after error
ok 523 - itemconfigure -foreground
ok 524 - itemconfigure -foreground error 
ok 525 - still same value after error
ok 526 - itemconfigure -selectbackground
ok 527 - itemconfigure -selectbackground error 
ok 528 - still same value after error
ok 529 - itemconfigure -selectforeground
ok 530 - itemconfigure -selectforeground error 
ok 531 - still same value after error
ok 532 - itemcget with undef value
ok 533
ok 534 - itemcget error
ok 535 - listbox item configurations and widget based deletions
ok 536 - listbox item configurations and widget based inserts
ok 537
# Looks like you failed 21 tests of 537.