[MacPorts] #47339: p5-alien-wxwidgets, p5-wx: update to latest versions
#47339: p5-alien-wxwidgets, p5-wx: update to latest versions ----------------------+-------------------------------------- Reporter: devans@… | Owner: mojca@… Type: update | Status: new Priority: Normal | Milestone: Component: ports | Version: Keywords: | Port: p5-alien-wxwidgets p5-wx ----------------------+-------------------------------------- The latest versions include improved support for wxWidgets-3.* and various build fixes for recent Mac OSX versions. {{{ p5-alien-wxwidgets seems to have been updated (port version: 0.65, new version: 0.67) Revision history for Perl extension Alien::wxWidgets. 0.66 Tue Mar 10 2015 - add support for wxWidgets 3.0.1 and 3.0.2 - make default wxWidgets 3.0.2 - graphics context included now default on Win32 - build on MacOSX - xcode 5.x/6.x p5-wx seems to have been updated (port version: 0.9923, new version: 0.9927) Revision history for Perl extension Wx. 0.9927 Thu Mar 26 2015 - Fix broken wxWidgets 2.8 builds 0.9926 Tue Mar 10 2015 - pause indexing fix 0.9925 Tue Mar 10 2015 - pause indexing fix 0.9924 Tue Mar 10 2015 - added wxTimer::StartOnce - some missing wxGrid constants added - fixed Wx::AUI events broken since wxWidgets 2.9.5 - rt96136 - added GetContentScaleFactor to Wx::DC && Wx::Window - rt99038 - MACOSX_DEPLOYMENT_TARGET comparison fixed in Wx build - wxMenuItem::SetBitmap available on OSX - added some missing TextEntry methods to wxComboBox - rt102269 - fix option handling }}} -- Ticket URL: <https://trac.macports.org/ticket/47339> MacPorts <https://www.macports.org/> Ports system for OS X
#47339: p5-alien-wxwidgets, p5-wx: update to latest versions ---------------------------------------+--------------------- Reporter: devans@… | Owner: mojca@… Type: update | Status: new Priority: Normal | Milestone: Component: ports | Version: Resolution: | Keywords: Port: p5-alien-wxwidgets p5-wx | ---------------------------------------+--------------------- Changes (by mojca@…): * cc: ryandesign@… (added) Comment: I would like to ask whether the patch for `p5-wx` is still needed on 10.10 (#45120, #44640). * https://rt.cpan.org/Public/Bug/Display.html?id=99038 -- Ticket URL: <https://trac.macports.org/ticket/47339#comment:1> MacPorts <https://www.macports.org/> Ports system for OS X
#47339: p5-alien-wxwidgets, p5-wx: update to latest versions ---------------------------------------+--------------------- Reporter: devans@… | Owner: mojca@… Type: update | Status: new Priority: Normal | Milestone: Component: ports | Version: Resolution: | Keywords: Port: p5-alien-wxwidgets p5-wx | ---------------------------------------+--------------------- Comment (by mojca@…): `p5-alien-wxwidgets` upgraded in r134666. -- Ticket URL: <https://trac.macports.org/ticket/47339#comment:2> MacPorts <https://www.macports.org/> Ports system for OS X
#47339: p5-alien-wxwidgets, p5-wx: update to latest versions ---------------------------------------+--------------------- Reporter: devans@… | Owner: mojca@… Type: update | Status: new Priority: Normal | Milestone: Component: ports | Version: Resolution: | Keywords: Port: p5-alien-wxwidgets p5-wx | ---------------------------------------+--------------------- Comment (by mojca@…): It seems to me that the problem with 10.10 has been fixed, but the following chunk of code seems problematic and I need some help with it: {{{ my $tools43 = '/Applications/Xcode.app/Contents/Developer/Tools'; my $restoolpath = ( -d $tools43 ) ? $tools43 : '/Developer/Tools'; sub get_flags { my $this = shift; my %config = $this->SUPER::get_flags; if ($config{CC} =~ /clang\+\+/ || $config{LD} =~ /clang\+\+/) { my $sdkrepl = ''; for my $sdkversion ( qw( 10.9 10.8 10.7 10.6 ) ) { my $macossdk = qq(/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX${sdkversion}.sdk); if( -d $macossdk ) { $sdkrepl = 'clang++ -isysroot ' . $macossdk . ' -stdlib=libc++'; last; } } if ( $sdkrepl ) { $config{CC} =~ s/clang\+\+/$sdkrepl/g; $config{LD} =~ s/clang\+\+/$sdkrepl/g; } } return %config; } }}} First of all there is absolutely no guarantee that users installed Xcode under `/Applications/Xcode.app/Contents/Developer/Tools` (I didn't). My workaround so far was to set {{{ my $restoolpath = '/usr/bin'; }}} But I don't understand the rest of the code either. Is it trying to force `libc++` on 10.6, where setting `-isysroot /path/to/sdk` will make sure that it won't work??? And why does it only list 10.6 - 10.9? -- Ticket URL: <https://trac.macports.org/ticket/47339#comment:3> MacPorts <https://www.macports.org/> Ports system for OS X
#47339: p5-alien-wxwidgets, p5-wx: update to latest versions ---------------------------------------+--------------------- Reporter: devans@… | Owner: mojca@… Type: update | Status: new Priority: Normal | Milestone: Component: ports | Version: Resolution: | Keywords: Port: p5-alien-wxwidgets p5-wx | ---------------------------------------+--------------------- Comment (by mojca@…): David, I need your help. The `p5.20-wx` port doesn't build with trace mode at all. Not even the old one. There is some hardcoded `gcc` in `cpp/wxPerl.osx/Makefile`, but even if I replace it with `$(CC)`, that one translates into `cc` instead of `clang`. And then it fails with {{{ /usr/bin/Rez -d __DARWIN__ -useDF -o build/wxPerl.rsrc wxPerl.r ### /usr/bin/Rez - SysError -5000 during create of "build/wxPerl.rsrc". ### /usr/bin/Rez - Fatal error trying to open the resource file "build/wxPerl.rsrc" for writing. Fatal Error! ### /usr/bin/Rez - Fatal Error, can't recover. ### /usr/bin/Rez - Since errors occurred, build/wxPerl.rsrc's resource fork was not written. make[1]: *** [build/wxPerl.app/Contents/Resources/wxPerl.rsrc] Error 3 make[1]: Leaving directory `/path/to/p5.20-wx/work/Wx-0.9923/cpp/wxPerl.osx' make: *** [wxPerl] Error 2 make: *** Waiting for unfinished jobs.... make: Leaving directory `/path/to/p5.20-wx/work/Wx-0.9923' Command failed: cd "/path/to/p5.20-wx/work/Wx-0.9923" && /usr/bin/make -j2 -w all ... The following files would have been hidden from the build system by trace mode if they existed: /.vol/234881027/82461890/wxPerl.rsrc /usr/gnu/include /usr/local/lib/libcache.dylib /usr/local/lib/libcommonCrypto.dylib /usr/local/lib/libcompiler_rt.dylib /usr/local/lib/libcopyfile.dylib /usr/local/lib/libdispatch.dylib /usr/local/lib/libdnsinfo.dylib /usr/local/lib/libdyld.dylib /usr/local/lib/libkeymgr.dylib /usr/local/lib/liblaunch.dylib /usr/local/lib/libmacho.dylib /usr/local/lib/libmathCommon.A.dylib /usr/local/lib/libquarantine.dylib /usr/local/lib/libremovefile.dylib /usr/local/lib/libsystem_blocks.dylib /usr/local/lib/libsystem_c.dylib }}} -- Ticket URL: <https://trac.macports.org/ticket/47339#comment:4> MacPorts <https://www.macports.org/> Ports system for OS X
#47339: p5-alien-wxwidgets, p5-wx: update to latest versions ---------------------------------------+--------------------- Reporter: devans@… | Owner: mojca@… Type: update | Status: new Priority: Normal | Milestone: Component: ports | Version: Resolution: | Keywords: Port: p5-alien-wxwidgets p5-wx | ---------------------------------------+--------------------- Comment (by devans@…): Replying to [comment:3 mojca@…]:
It seems to me that the problem with 10.10 has been fixed, but the following chunk of code seems problematic and I need some help with it: {{{ my $tools43 = '/Applications/Xcode.app/Contents/Developer/Tools'; my $restoolpath = ( -d $tools43 ) ? $tools43 : '/Developer/Tools';
This is just setting $restoolpath to whichever of these two paths exist as a directory. These are the expected installation paths for Xcode in a standard default install. /Developer/Tools was used in older version, new versions (4.3 on I'm guessing based on the variable name) use /Applications/Xcode.app/Contents/Developer/Tools. This won't work if you have placed Xcode in a non-standard location. However, using /usr/bin will only work if xcode-select has been properly set to link to your install location. I think it would be better to figure a way to find the absolute path to the proper directory. Normally MacPorts does this for you.
sub get_flags { my $this = shift; my %config = $this->SUPER::get_flags;
I think the code enclosed in the if statement following can just be removed. It's trying to fixup $config{CC} and $config{LD} for each of the listed versions assuming your using a vanilla install of perl. Our perl versions set these config values correctly so nothing to do here -- just return %config. Try the following to see values of these flags (The example was run on Mavericks) {{{ $ perl5.16 -V:cc -V:ld cc='/usr/bin/clang'; ld='env MACOSX_DEPLOYMENT_TARGET=10.9 /usr/bin/clang'; }}} Remove this:
if ($config{CC} =~ /clang\+\+/ || $config{LD} =~ /clang\+\+/) { my $sdkrepl = ''; for my $sdkversion ( qw( 10.9 10.8 10.7 10.6 ) ) { my $macossdk = qq(/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX${sdkversion}.sdk); if( -d $macossdk ) { $sdkrepl = 'clang++ -isysroot ' . $macossdk . ' -stdlib=libc++'; last; } } if ( $sdkrepl ) { $config{CC} =~ s/clang\+\+/$sdkrepl/g; $config{LD} =~ s/clang\+\+/$sdkrepl/g; } }
Keep this
return %config; } }}}
First of all there is absolutely no guarantee that users installed Xcode under `/Applications/Xcode.app/Contents/Developer/Tools` (I didn't). My workaround so far was to set {{{ my $restoolpath = '/usr/bin'; }}}
But I don't understand the rest of the code either. Is it trying to force `libc++` on 10.6, where setting `-isysroot /path/to/sdk` will make sure that it won't work??? And why does it only list 10.6 - 10.9?
See above. -- Ticket URL: <https://trac.macports.org/ticket/47339#comment:5> MacPorts <https://www.macports.org/> Ports system for OS X
#47339: p5-alien-wxwidgets, p5-wx: update to latest versions ---------------------------------------+--------------------- Reporter: devans@… | Owner: mojca@… Type: update | Status: new Priority: Normal | Milestone: Component: ports | Version: Resolution: | Keywords: Port: p5-alien-wxwidgets p5-wx | ---------------------------------------+--------------------- Comment (by devans@…): Replying to [comment:4 mojca@…]:
David, I need your help. The `p5.20-wx` port doesn't build with trace mode at all. Not even the old one. There is some hardcoded `gcc` in `cpp/wxPerl.osx/Makefile`, but even if I replace it with `$(CC)`, that one translates into `cc` instead of `clang`.
You can't count on our CC being passed correctly to this lower level Makefile. I'd just patch this Makefile to replace gcc with a unique temporary name and then use reinplace to replace it with the correct value in post-patch.
And then it fails with {{{ /usr/bin/Rez -d __DARWIN__ -useDF -o build/wxPerl.rsrc wxPerl.r ### /usr/bin/Rez - SysError -5000 during create of "build/wxPerl.rsrc". ### /usr/bin/Rez - Fatal error trying to open the resource file
"build/wxPerl.rsrc" for writing.
Fatal Error! ### /usr/bin/Rez - Fatal Error, can't recover. ### /usr/bin/Rez - Since errors occurred, build/wxPerl.rsrc's resource fork was not written. make[1]: *** [build/wxPerl.app/Contents/Resources/wxPerl.rsrc] Error 3 make[1]: Leaving directory `/path/to/p5.20-wx/work/Wx-0.9923/cpp/wxPerl.osx' make: *** [wxPerl] Error 2 make: *** Waiting for unfinished jobs.... make: Leaving directory `/path/to/p5.20-wx/work/Wx-0.9923' Command failed: cd "/path/to/p5.20-wx/work/Wx-0.9923" && /usr/bin/make -j2 -w all
Permissions issue? }}} -- Ticket URL: <https://trac.macports.org/ticket/47339#comment:6> MacPorts <https://www.macports.org/> Ports system for OS X
#47339: p5-alien-wxwidgets, p5-wx: update to latest versions ---------------------------------------+--------------------- Reporter: devans@… | Owner: mojca@… Type: update | Status: closed Priority: Normal | Milestone: Component: ports | Version: Resolution: fixed | Keywords: Port: p5-alien-wxwidgets p5-wx | ---------------------------------------+--------------------- Changes (by mojca@…): * status: new => closed * resolution: => fixed Comment: Thank you. I committed r134714. But the trace mode still fails. -- Ticket URL: <https://trac.macports.org/ticket/47339#comment:7> MacPorts <https://www.macports.org/> Ports system for OS X
participants (1)
-
MacPorts