eserte / perl-tk

the perl module Tk
https://metacpan.org/release/Tk
Other
44 stars 31 forks source link

Test PNG/t/basic.t hangs on macOS 10.15.5 with XQuartz #67

Open hakonhagland opened 4 years ago

hakonhagland commented 4 years ago

I am trying to install Tk on macOS 10.15.5 using perlbrew perl version 5.30.1 and XQuartz. According to this post:

X11 is no longer included with Mac, but X11 server and client libraries are available from the XQuartz project.

So I installed XQuartz from here. Running perl Makefile.PL; make in the Tk distribution directory now works fine, but make test hangs:

$ make test
"/Users/hakonhaegland/perl5/perlbrew/perls/perl-5.30.1/bin/perl" -MExtUtils::Command::MM -e 'cp_nonempty' -- Tk.bs blib/arch/auto/Tk/Tk.bs 644
cd pTk && make DEFINE="" LIBPERL_A="libperl.a" LINKTYPE="dynamic" OPTIMIZE="-O3" PREFIX="/Users/hakonhaegland/perl5/perlbrew/perls/perl-5.30.1" PASTHRU_DEFINE=' ' PASTHRU_INC='-I/usr/X11R6/include -I/opt/X11/include/freetype2 '
Manifying 103 pod documents
Manifying 1 pod document
Manifying 2 pod documents
"/Users/hakonhaegland/perl5/perlbrew/perls/perl-5.30.1/bin/perl" -MExtUtils::Command::MM -e 'cp_nonempty' -- X.bs ../../blib/arch/auto/Tk/X/X.bs 644
"/Users/hakonhaegland/perl5/perlbrew/perls/perl-5.30.1/bin/perl" -MExtUtils::Command::MM -e 'cp_nonempty' -- Xlib.bs ../blib/arch/auto/Tk/Xlib/Xlib.bs 644
"/Users/hakonhaegland/perl5/perlbrew/perls/perl-5.30.1/bin/perl" -MExtUtils::Command::MM -e 'cp_nonempty' -- WinPhoto.bs ../blib/arch/auto/Tk/WinPhoto/WinPhoto.bs 644
Manifying 1 pod document
"/Users/hakonhaegland/perl5/perlbrew/perls/perl-5.30.1/bin/perl" -MExtUtils::Command::MM -e 'cp_nonempty' -- Pixmap.bs ../blib/arch/auto/Tk/Pixmap/Pixmap.bs 644
"/Users/hakonhaegland/perl5/perlbrew/perls/perl-5.30.1/bin/perl" -MExtUtils::Command::MM -e 'cp_nonempty' -- TixGrid.bs ../blib/arch/auto/Tk/TixGrid/TixGrid.bs 644
Manifying 1 pod document
"/Users/hakonhaegland/perl5/perlbrew/perls/perl-5.30.1/bin/perl" -MExtUtils::Command::MM -e 'cp_nonempty' -- Text.bs ../blib/arch/auto/Tk/Text/Text.bs 644
"/Users/hakonhaegland/perl5/perlbrew/perls/perl-5.30.1/bin/perl" -MExtUtils::Command::MM -e 'cp_nonempty' -- TList.bs ../blib/arch/auto/Tk/TList/TList.bs 644
"/Users/hakonhaegland/perl5/perlbrew/perls/perl-5.30.1/bin/perl" -MExtUtils::Command::MM -e 'cp_nonempty' -- Scrollbar.bs ../blib/arch/auto/Tk/Scrollbar/Scrollbar.bs 644
"/Users/hakonhaegland/perl5/perlbrew/perls/perl-5.30.1/bin/perl" -MExtUtils::Command::MM -e 'cp_nonempty' -- Scale.bs ../blib/arch/auto/Tk/Scale/Scale.bs 644
cd zlib && make libz.a "CC=cc  " RANLIB="ranlib"
make[2]: `libz.a' is up to date.
/Library/Developer/CommandLineTools/usr/bin/make  all-am
make[3]: Nothing to be done for `all-am'.
make[2]: Nothing to be done for `all'.
"/Users/hakonhaegland/perl5/perlbrew/perls/perl-5.30.1/bin/perl" -MExtUtils::Command::MM -e 'cp_nonempty' -- PNG.bs ../blib/arch/auto/Tk/PNG/PNG.bs 644
Manifying 1 pod document
"/Users/hakonhaegland/perl5/perlbrew/perls/perl-5.30.1/bin/perl" -MExtUtils::Command::MM -e 'cp_nonempty' -- NBFrame.bs ../blib/arch/auto/Tk/NBFrame/NBFrame.bs 644
"/Users/hakonhaegland/perl5/perlbrew/perls/perl-5.30.1/bin/perl" -MExtUtils::Command::MM -e 'cp_nonempty' -- Mwm.bs ../blib/arch/auto/Tk/Mwm/Mwm.bs 644
"/Users/hakonhaegland/perl5/perlbrew/perls/perl-5.30.1/bin/perl" -MExtUtils::Command::MM -e 'cp_nonempty' -- Menubutton.bs ../blib/arch/auto/Tk/Menubutton/Menubutton.bs 644
"/Users/hakonhaegland/perl5/perlbrew/perls/perl-5.30.1/bin/perl" -MExtUtils::Command::MM -e 'cp_nonempty' -- Listbox.bs ../blib/arch/auto/Tk/Listbox/Listbox.bs 644
cd jpeg && make libjpeg.a
make[2]: `libjpeg.a' is up to date.
make[2]: Nothing to be done for `all'.
"/Users/hakonhaegland/perl5/perlbrew/perls/perl-5.30.1/bin/perl" -MExtUtils::Command::MM -e 'cp_nonempty' -- JPEG.bs ../blib/arch/auto/Tk/JPEG/JPEG.bs 644
Manifying 1 pod document
Manifying 1 pod document
"/Users/hakonhaegland/perl5/perlbrew/perls/perl-5.30.1/bin/perl" -MExtUtils::Command::MM -e 'cp_nonempty' -- InputO.bs ../blib/arch/auto/Tk/InputO/InputO.bs 644
"/Users/hakonhaegland/perl5/perlbrew/perls/perl-5.30.1/bin/perl" -MExtUtils::Command::MM -e 'cp_nonempty' -- IO.bs ../blib/arch/auto/Tk/IO/IO.bs 644
"/Users/hakonhaegland/perl5/perlbrew/perls/perl-5.30.1/bin/perl" -MExtUtils::Command::MM -e 'cp_nonempty' -- HList.bs ../blib/arch/auto/Tk/HList/HList.bs 644
"/Users/hakonhaegland/perl5/perlbrew/perls/perl-5.30.1/bin/perl" -MExtUtils::Command::MM -e 'cp_nonempty' -- Event.bs ../blib/arch/auto/Tk/Event/Event.bs 644
"/Users/hakonhaegland/perl5/perlbrew/perls/perl-5.30.1/bin/perl" -MExtUtils::Command::MM -e 'cp_nonempty' -- Entry.bs ../blib/arch/auto/Tk/Entry/Entry.bs 644
Manifying 3 pod documents
"/Users/hakonhaegland/perl5/perlbrew/perls/perl-5.30.1/bin/perl" -MExtUtils::Command::MM -e 'cp_nonempty' -- Compound.bs ../blib/arch/auto/Tk/Compound/Compound.bs 644
"/Users/hakonhaegland/perl5/perlbrew/perls/perl-5.30.1/bin/perl" -MExtUtils::Command::MM -e 'cp_nonempty' -- Canvas.bs ../blib/arch/auto/Tk/Canvas/Canvas.bs 644
"/Users/hakonhaegland/perl5/perlbrew/perls/perl-5.30.1/bin/perl" -MExtUtils::Command::MM -e 'cp_nonempty' -- PNG.bs ../blib/arch/auto/Tk/PNG/PNG.bs 644
cd zlib && make libz.a "CC=cc  " RANLIB="ranlib"
make[2]: `libz.a' is up to date.
/Library/Developer/CommandLineTools/usr/bin/make  all-am
make[3]: Nothing to be done for `all-am'.
make[2]: Nothing to be done for `all'.
make[2]: Nothing to be done for `test_dynamic'.
make[2]: Nothing to be done for `test_dynamic'.
"/Users/hakonhaegland/perl5/perlbrew/perls/perl-5.30.1/bin/perl" "-I../t" "-MTkTest" "-e" "checked_test_harness('../xt', 0, '../blib/lib', '../blib/arch')" t/*.t
Fontconfig warning: ignoring UTF-8: not a valid region tag
t/basic.t .. 1/5 

And it hangs here until I press CTRL-C. I debugged the problem a little bit more and I can see that line 27 in PNG/t/basic.t:

my $image = $mw->Photo('-format' => "png", -file => $file);

is hanging..

chrstphrchvz commented 4 years ago

Note that XQuartz 2.7.11 is relatively old (2016). However I'm only aware of MacPorts (its xorg-server port) having an up-to-date version of X11.

With MacPorts' X11 (1.20.8), Perl 5.30.3, Perl/Tk 804.035, I do not observe tests hanging. (Tests will time out after 30 minutes if I remember correctly.)

I think there's a possibility of tests hanging due to usage of $mw->update rather than $mw->idletasks, but that would not appear to be the cause if it is hanging at $mw->Photo().