DistributedProofreaders / guiguts

Perl/Tk text editor designed for editing and formatting public domain material for inclusion at Project Gutenberg
GNU General Public License v2.0
9 stars 10 forks source link

Building Perl Tk module on macOS fails #1312

Closed tangledhelix closed 2 days ago

tangledhelix commented 4 days ago

Describe the bug As reported by two users I know of, recent versions of clang (XCode build tools) on macOS encounter errors attempting to build the Tk perl module (which is one of those installed by install_cpan_modules.pl).

Error output from cpanm build.log ``` checking for gcc... cc checking whether the C compiler (cc -fno-common -DPERL_DARWIN -mmacosx-version-min=15.0 -DNO_THREAD_SAFE_QUERYLOCALE -DNO_POSIX_2008_LOCALE -fno-strict-aliasing -pipe -fstack-protector-strong -fno-common -DPERL_DARWIN -mmacosx-version-min=15.0 -DNO_THREAD_SAFE_QUERYLOCALE -DNO_POSIX_2008_LOCALE -fno-strict-aliasing -pipe -fstack-protector-strong -mmacosx-version-min=15.0 -fstack-protector-strong) works... no configure: error: installation or configuration problem: C compiler cannot create executables. ERROR from evaluation of /Users/dan/.cpanm/work/1732686741.27075/Tk-804.036/JPEG/Makefile.PL: ERROR from evaluation of /Users/dan/.cpanm/work/1732686741.27075/Tk-804.036/JPEG/jpeg/Makefile.PL: Error opening Makefile: No such file or directory at ./Makefile.PL line 41. at ./Makefile.PL line 41. require ./Makefile.PL called at /opt/homebrew/opt/perl/lib/perl5/5.40/ExtUtils/MakeMaker.pm line 258 ExtUtils::MakeMaker::eval_in_x(PACK021=HASH(0x130a2a110), "/Users/dan/.cpanm/work/1732686741.27075/Tk-804.036/JPEG/jpeg") called at /opt/homebrew/opt/perl/lib/perl5/5.40/ExtUtils/MakeMaker.pm line 245 eval {...} called at /opt/homebrew/opt/perl/lib/perl5/5.40/ExtUtils/MakeMaker.pm line 245 ExtUtils::MakeMaker::eval_in_subdirs(PACK021=HASH(0x130a2a110)) called at /opt/homebrew/opt/perl/lib/perl5/5.40/ExtUtils/MakeMaker.pm line 823 ExtUtils::MakeMaker::new("MM", PACK021=HASH(0x130a2a110)) called at /opt/homebrew/opt/perl/lib/perl5/5.40/ExtUtils/MakeMaker.pm line 78 ExtUtils::MakeMaker::WriteMakefile("VERSION", 804.036, "XS_VERSION", 804.036, "DEFINE", "", "INC", "-I.. -Ijpeg -I/usr/X11R6/include -I/opt/X11/include/freetype2", ...) called at /Users/dan/.cpanm/work/1732686741.27075/Tk-804.036/Tk/MMutil.pm line 588 Tk::MMutil::TkExtMakefile("MYEXTLIB", "jpeg/libjpeg.a", "INC", "-Ijpeg", "NAME", "Tk::JPEG", "EXE_FILES", ARRAY(0x130a03268), ...) called at ./Makefile.PL line 26 require ./Makefile.PL called at /opt/homebrew/opt/perl/lib/perl5/5.40/ExtUtils/MakeMaker.pm line 258 ExtUtils::MakeMaker::eval_in_x(PACK001=HASH(0x1271c4870), "/Users/dan/.cpanm/work/1732686741.27075/Tk-804.036/JPEG") called at /opt/homebrew/opt/perl/lib/perl5/5.40/ExtUtils/MakeMaker.pm line 245 eval {...} called at /opt/homebrew/opt/perl/lib/perl5/5.40/ExtUtils/MakeMaker.pm line 245 ExtUtils::MakeMaker::eval_in_subdirs(PACK001=HASH(0x1271c4870)) called at /opt/homebrew/opt/perl/lib/perl5/5.40/ExtUtils/MakeMaker.pm line 823 ExtUtils::MakeMaker::new("MM", PACK001=HASH(0x1271c4870)) called at /opt/homebrew/opt/perl/lib/perl5/5.40/ExtUtils/MakeMaker.pm line 78 ExtUtils::MakeMaker::WriteMakefile("VERSION", 804.036, "XS_VERSION", 804.036, "DEFINE", "", "INC", "-I/usr/X11R6/include -I/opt/X11/include/freetype2", ...) called at /Users/dan/.cpanm/work/1732686741.27075/Tk-804.036/Tk/MMutil.pm line 588 Tk::MMutil::TkExtMakefile("VERSION", 804.036, "EXE_FILES", ARRAY(0x127787180), "NAME", "Tk", "DIR", ARRAY(0x1270348d0), ...) called at Makefile.PL line 80 at /opt/homebrew/opt/perl/lib/perl5/5.40/ExtUtils/MakeMaker.pm line 266. ExtUtils::MakeMaker::eval_in_x(PACK021=HASH(0x130a2a110), "/Users/dan/.cpanm/work/1732686741.27075/Tk-804.036/JPEG/jpeg") called at /opt/homebrew/opt/perl/lib/perl5/5.40/ExtUtils/MakeMaker.pm line 245 eval {...} called at /opt/homebrew/opt/perl/lib/perl5/5.40/ExtUtils/MakeMaker.pm line 245 ExtUtils::MakeMaker::eval_in_subdirs(PACK021=HASH(0x130a2a110)) called at /opt/homebrew/opt/perl/lib/perl5/5.40/ExtUtils/MakeMaker.pm line 823 ExtUtils::MakeMaker::new("MM", PACK021=HASH(0x130a2a110)) called at /opt/homebrew/opt/perl/lib/perl5/5.40/ExtUtils/MakeMaker.pm line 78 ExtUtils::MakeMaker::WriteMakefile("VERSION", 804.036, "XS_VERSION", 804.036, "DEFINE", "", "INC", "-I.. -Ijpeg -I/usr/X11R6/include -I/opt/X11/include/freetype2", ...) called at /Users/dan/.cpanm/work/1732686741.27075/Tk-804.036/Tk/MMutil.pm line 588 Tk::MMutil::TkExtMakefile("MYEXTLIB", "jpeg/libjpeg.a", "INC", "-Ijpeg", "NAME", "Tk::JPEG", "EXE_FILES", ARRAY(0x130a03268), ...) called at ./Makefile.PL line 26 require ./Makefile.PL called at /opt/homebrew/opt/perl/lib/perl5/5.40/ExtUtils/MakeMaker.pm line 258 ExtUtils::MakeMaker::eval_in_x(PACK001=HASH(0x1271c4870), "/Users/dan/.cpanm/work/1732686741.27075/Tk-804.036/JPEG") called at /opt/homebrew/opt/perl/lib/perl5/5.40/ExtUtils/MakeMaker.pm line 245 eval {...} called at /opt/homebrew/opt/perl/lib/perl5/5.40/ExtUtils/MakeMaker.pm line 245 ExtUtils::MakeMaker::eval_in_subdirs(PACK001=HASH(0x1271c4870)) called at /opt/homebrew/opt/perl/lib/perl5/5.40/ExtUtils/MakeMaker.pm line 823 ExtUtils::MakeMaker::new("MM", PACK001=HASH(0x1271c4870)) called at /opt/homebrew/opt/perl/lib/perl5/5.40/ExtUtils/MakeMaker.pm line 78 ExtUtils::MakeMaker::WriteMakefile("VERSION", 804.036, "XS_VERSION", 804.036, "DEFINE", "", "INC", "-I/usr/X11R6/include -I/opt/X11/include/freetype2", ...) called at /Users/dan/.cpanm/work/1732686741.27075/Tk-804.036/Tk/MMutil.pm line 588 Tk::MMutil::TkExtMakefile("VERSION", 804.036, "EXE_FILES", ARRAY(0x127787180), "NAME", "Tk", "DIR", ARRAY(0x1270348d0), ...) called at Makefile.PL line 80 at /opt/homebrew/opt/perl/lib/perl5/5.40/ExtUtils/MakeMaker.pm line 249. ExtUtils::MakeMaker::eval_in_subdirs(PACK021=HASH(0x130a2a110)) called at /opt/homebrew/opt/perl/lib/perl5/5.40/ExtUtils/MakeMaker.pm line 823 ExtUtils::MakeMaker::new("MM", PACK021=HASH(0x130a2a110)) called at /opt/homebrew/opt/perl/lib/perl5/5.40/ExtUtils/MakeMaker.pm line 78 ExtUtils::MakeMaker::WriteMakefile("VERSION", 804.036, "XS_VERSION", 804.036, "DEFINE", "", "INC", "-I.. -Ijpeg -I/usr/X11R6/include -I/opt/X11/include/freetype2", ...) called at /Users/dan/.cpanm/work/1732686741.27075/Tk-804.036/Tk/MMutil.pm line 588 Tk::MMutil::TkExtMakefile("MYEXTLIB", "jpeg/libjpeg.a", "INC", "-Ijpeg", "NAME", "Tk::JPEG", "EXE_FILES", ARRAY(0x130a03268), ...) called at ./Makefile.PL line 26 require ./Makefile.PL called at /opt/homebrew/opt/perl/lib/perl5/5.40/ExtUtils/MakeMaker.pm line 258 ExtUtils::MakeMaker::eval_in_x(PACK001=HASH(0x1271c4870), "/Users/dan/.cpanm/work/1732686741.27075/Tk-804.036/JPEG") called at /opt/homebrew/opt/perl/lib/perl5/5.40/ExtUtils/MakeMaker.pm line 245 eval {...} called at /opt/homebrew/opt/perl/lib/perl5/5.40/ExtUtils/MakeMaker.pm line 245 ExtUtils::MakeMaker::eval_in_subdirs(PACK001=HASH(0x1271c4870)) called at /opt/homebrew/opt/perl/lib/perl5/5.40/ExtUtils/MakeMaker.pm line 823 ExtUtils::MakeMaker::new("MM", PACK001=HASH(0x1271c4870)) called at /opt/homebrew/opt/perl/lib/perl5/5.40/ExtUtils/MakeMaker.pm line 78 ExtUtils::MakeMaker::WriteMakefile("VERSION", 804.036, "XS_VERSION", 804.036, "DEFINE", "", "INC", "-I/usr/X11R6/include -I/opt/X11/include/freetype2", ...) called at /Users/dan/.cpanm/work/1732686741.27075/Tk-804.036/Tk/MMutil.pm line 588 Tk::MMutil::TkExtMakefile("VERSION", 804.036, "EXE_FILES", ARRAY(0x127787180), "NAME", "Tk", "DIR", ARRAY(0x1270348d0), ...) called at Makefile.PL line 80 at /opt/homebrew/opt/perl/lib/perl5/5.40/ExtUtils/MakeMaker.pm line 266. ExtUtils::MakeMaker::eval_in_x(PACK001=HASH(0x1271c4870), "/Users/dan/.cpanm/work/1732686741.27075/Tk-804.036/JPEG") called at /opt/homebrew/opt/perl/lib/perl5/5.40/ExtUtils/MakeMaker.pm line 245 eval {...} called at /opt/homebrew/opt/perl/lib/perl5/5.40/ExtUtils/MakeMaker.pm line 245 ExtUtils::MakeMaker::eval_in_subdirs(PACK001=HASH(0x1271c4870)) called at /opt/homebrew/opt/perl/lib/perl5/5.40/ExtUtils/MakeMaker.pm line 823 ExtUtils::MakeMaker::new("MM", PACK001=HASH(0x1271c4870)) called at /opt/homebrew/opt/perl/lib/perl5/5.40/ExtUtils/MakeMaker.pm line 78 ExtUtils::MakeMaker::WriteMakefile("VERSION", 804.036, "XS_VERSION", 804.036, "DEFINE", "", "INC", "-I/usr/X11R6/include -I/opt/X11/include/freetype2", ...) called at /Users/dan/.cpanm/work/1732686741.27075/Tk-804.036/Tk/MMutil.pm line 588 Tk::MMutil::TkExtMakefile("VERSION", 804.036, "EXE_FILES", ARRAY(0x127787180), "NAME", "Tk", "DIR", ARRAY(0x1270348d0), ...) called at Makefile.PL line 80 at /opt/homebrew/opt/perl/lib/perl5/5.40/ExtUtils/MakeMaker.pm line 249. ExtUtils::MakeMaker::eval_in_subdirs(PACK001=HASH(0x1271c4870)) called at /opt/homebrew/opt/perl/lib/perl5/5.40/ExtUtils/MakeMaker.pm line 823 ExtUtils::MakeMaker::new("MM", PACK001=HASH(0x1271c4870)) called at /opt/homebrew/opt/perl/lib/perl5/5.40/ExtUtils/MakeMaker.pm line 78 ExtUtils::MakeMaker::WriteMakefile("VERSION", 804.036, "XS_VERSION", 804.036, "DEFINE", "", "INC", "-I/usr/X11R6/include -I/opt/X11/include/freetype2", ...) called at /Users/dan/.cpanm/work/1732686741.27075/Tk-804.036/Tk/MMutil.pm line 588 Tk::MMutil::TkExtMakefile("VERSION", 804.036, "EXE_FILES", ARRAY(0x127787180), "NAME", "Tk", "DIR", ARRAY(0x1270348d0), ...) called at Makefile.PL line 80 -> N/A -> FAIL Configure failed for Tk-804.036. See /Users/dan/.cpanm/work/1732686741.27075/build.log for details. ```

To Reproduce Steps to reproduce the behavior:

  1. Run "perl install_cpan_modules.pl"

Expected behavior An uneventful build and install of Tk and the other perl modules

Environment