Opened 10 years ago
Closed 10 years ago
#47339 closed update (fixed)
p5-alien-wxwidgets, p5-wx: update to latest versions
Reported by: | dbevans (David B. Evans) | Owned by: | mojca (Mojca Miklavec) |
---|---|---|---|
Priority: | Normal | Milestone: | |
Component: | ports | Version: | |
Keywords: | Cc: | ryandesign (Ryan Carsten Schmidt) | |
Port: | p5-alien-wxwidgets p5-wx |
Description
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
Change History (7)
comment:1 Changed 10 years ago by mojca (Mojca Miklavec)
Cc: | ryandesign@… added |
---|
comment:3 follow-up: 5 Changed 10 years ago by mojca (Mojca Miklavec)
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?
comment:4 follow-up: 6 Changed 10 years ago by mojca (Mojca Miklavec)
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
comment:5 Changed 10 years ago by dbevans (David B. Evans)
Replying to 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 setmy $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.
comment:6 Changed 10 years ago by dbevans (David B. Evans)
Replying to 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 hardcodedgcc
incpp/wxPerl.osx/Makefile
, but even if I replace it with$(CC)
, that one translates intocc
instead ofclang
.
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?
}}}
comment:7 Changed 10 years ago by mojca (Mojca Miklavec)
Resolution: | → fixed |
---|---|
Status: | new → closed |
Thank you. I committed r134714. But the trace mode still fails.
I would like to ask whether the patch for
p5-wx
is still needed on 10.10 (#45120, #44640).