Nice work guys. Mooneer and Danilo - would it be possible to set up Travis so it tests the OSX build when we push any freedv-gui changes? I'd like to make sure we keep the OSX build working as freedv-gui develops.
I'm not sure if this is practical - Danilo you mentioned the build process on Travis is quite lengthy. Another option would be kicking off the process manually, as we do for the stm32. Thanks, David On 12/08/19 01:03, Mooneer Salem wrote: > Yep, the pull request also has the changes needed for dylibbundler to > find Codec2 and LPCNet (thus no prompts during the build process). > > -Mooneer > > On Sun, Aug 11, 2019 at 5:40 AM Mark Jessop <[email protected] > <mailto:[email protected]>> wrote: > > Nice job Mooneer! > > Were you able to produce an appbundle from this? > > Cheers, > Mark > > On Sun, Aug 11, 2019 at 8:23 PM Mooneer Salem <[email protected] > <mailto:[email protected]>> wrote: > > I was able to figure out why the build was crashing. It looks > like wxWidgets needs to be built with the same C++ standard > library as FreeDV itself (which is libc++ on OSX); once that was > done (by tweaking various CMake files to add compiler, etc. > flags), the application appeared to load fine. > > Anyway, I went ahead and created a pull request for this portion > of the fix: https://github.com/drowe67/freedv-gui/pull/26. In > effect, build_osx.sh will have everything except for Codec2 and > LPCNet built and linked statically. > > -Mooneer K6AQ > > On Sun, Aug 11, 2019 at 3:36 AM Danilo Beuche > <[email protected] <mailto:[email protected]>> wrote: > > Hi, > > I can confirm that the fixes by Mooneer resolve the compile > errors. I was able to get travis to almost finish the build: > > > https://travis-ci.org/db4ple/freedv-gui/builds/570441603?utm_source=github_status&utm_medium=notification > > Compile is okay, just the program which then builds the > MacOS X app package fails, but this is difficult to fix for > me with each Travis build taking more than 10 mins. > But for those with a Mac, the .travis.yml found here: > https://github.com/db4ple/freedv-gui/blob/macosx/.travis.yml > can serve as a blueprint. If you find a solution for the > final problem, let me know and I integrate this in .travis.yml > > FYI: Travis uses homebrew instead of Mac Ports. > I have no idea (and no way to test) if the resulting program > made by Travis does work at all or if it crashes like the > build made by Mooneer. > > Regards, > Danilo > > > On 11 Aug 2019 09:02, Mooneer Salem wrote: >> Hi all, >> >> It turns out that the placement of extern "C" in some of >> the Codec2 include files was causing FreeDV build issues >> for me on 10.14, in addition to the previously mentioned >> ofdm_stack issue. I created a pull request for those >> changes: https://github.com/drowe67/codec2/pull/66 >> >> Also, I have the freedv binary itself building in my >> forked version (https://github.com/tmiw/freedv-gui) but >> the app bundle task for some reason is needing me to >> manually enter library names. The binary is additionally >> segfaulting on startup with the following backtrace: >> >> * thread #1, queue = 'com.apple.main-thread', stop reason >> = EXC_BAD_ACCESS (code=1, address=0x2816820) >> >> * frame #0: 0x0000000100680d21 >> libwx_osx_cocoau_core-3.0.dylib`wxApp::CallOnInit() + 149 >> >> frame #1: 0x0000000100b80068 >> libwx_baseu-3.0.dylib`wxEntry(int&, wchar_t**) + 37 >> >> frame #2: 0x0000000100039593 freedv`main(argc=1, >> argv=0x00007ffeefbff938) at fdmdv2_main.cpp:171:1 >> >> frame #3: 0x00007fff68b5c3d5 libdyld.dylib`start + 1 >> >> frame #4: 0x00007fff68b5c3d5 libdyld.dylib`start + 1 >> >> >> I'll have to do additional investigation for those issues >> but if anyone wants to try it, I adapted build_linux.sh >> for OSX (and named build_osx_macports.sh in my repo. >> >> Thanks, >> >> -Mooneer K6AQ >> >> On Sat, Aug 10, 2019 at 10:35 PM Danilo Beuche >> <[email protected] <mailto:[email protected]>> wrote: >> >> Hi Mark, >> >> I realized that now, my „mistake“. Nevertheless, I >> learned through that exercise how to use Travis with >> MacOS. Will try (!) to get FreeDV-GUI going as well >> through Travis but this is a fairly tedious process >> without access to a Mac so I won’t promise that I‘ll >> achieve anything. >> >> Regards >> Danilo >> >> Am 11.08.2019 um 01:14 schrieb Mark Jessop >> <[email protected] >> <mailto:[email protected]>>: >> >>> Hi Danilo, >>> >>> I can build codec2 just fine (with the ofdm_stack >>> changes) - It's really freedv-gui where the build >>> issues raise their head. >>> >>> Cheers, >>> Mark >>> >>> On Sun, Aug 11, 2019 at 4:15 AM Danilo Beuche >>> <[email protected] >>> <mailto:[email protected]>> wrote: >>> >>> Hi Mark, >>> >>> I am experimenting right now with a MacOS X build >>> via travis for codec2 in my GitHub clone of >>> codec2. So far it looks mostly good. The build >>> works, all tests are built and being run. 5 tests >>> fail. Out of these 5 failing tests are 4 valgrind >>> tests for memory leaks, these need to be looked >>> at but for this one needs are real MacOS machine >>> (which I don't have, I just let Travis run one >>> machine for me.). The last tests probably needs >>> also only a minor tweak in the build >>> configuration. So generally the build works if >>> minor modifications are made and the environment >>> is similar to the one created for the Travis build: >>> >>> https://github.com/db4ple/codec2/pull/2/files >>> >>> You can also checkout the last build log from Travis: >>> >>> >>> https://travis-ci.org/db4ple/codec2/builds/570275451?utm_source=github_status&utm_medium=notification >>> >>> The STM32 fails on Travis as well, but this is >>> not a concern at the moment. >>> >>> Regards, >>> Danilo >>> >>> >>> On 10 Aug 2019 05:37, Mark Jessop wrote: >>>> Is there anyone out there who has been able to >>>> successfully build the latest git freedv / >>>> codec2 master branches under OSX? >>>> >>>> The instructions >>>> here: >>>> https://github.com/drowe67/freedv-gui/blob/master/README.osx >>>> are now of course 100% out of date with the >>>> recent updates, and probably need to be marked >>>> as such so others don't try and follow them and >>>> fall into a trap. >>>> >>>> A few notes so far: >>>> >>>> - LPCNet builds fine with the recent-ish changes >>>> to look for AVX extensions under OSX. >>>> >>>> - The ofdm_stack target in codec2 won't compile >>>> using clang, as it doesn't have the -no-pie and >>>> -Map options. I had to wrap the ofdm_stack >>>> target in unittest/CMakeLists.txt in a if (NOT >>>> APPLE) directive so it wouldn't be built. Once >>>> this is done codec2 builds fine. >>>> >>>> The cmake command for freedv ends up >>>> being: cmake -DCMAKE_BUILD_TYPE=Debug >>>> -DCODEC2_BUILD_DIR=/Users/darkside/Dev/codec2-git/build >>>> >>>> -DLPCNET_BUILD_DIR=/Users/darkside/Dev/LPCNet_test/build >>>> >>>> -DWXCONFIG=/opt/local/Library/Frameworks/wxWidgets.framework/Versions/wxWidgets/3.0/lib/wx/config/osx_cocoa-unicode-3.0 >>>> .. >>>> >>>> Compiling freedv itself is where I run into all >>>> sorts of fun errors, which i've pasted here: >>>> https://slexy.org/view/s2r4g9MkjG >>>> >>>> I suspect these are related to clang's supplied >>>> libc++. Looking at the CMakeLists.txt file for >>>> freedv, it looks like someone has encountered >>>> something similar in the >>>> past: >>>> https://github.com/drowe67/freedv-gui/blob/master/CMakeLists.txt#L98 >>>> >>>> Not really sure where to go from here, short of >>>> attempting to completely recompile macports >>>> using gcc instead of clang, which is something I >>>> suspect will result in my sanity degrading >>>> further than it already has this morning. >>>> >>>> Hopefully there's someone else out there that >>>> has looked into this, or has actually been >>>> successful in getting this to work! >>>> >>>> 73 >>>> Mark VK5QI >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>>> _______________________________________________ >>>> Freetel-codec2 mailing list >>>> [email protected] >>>> <mailto:[email protected]> >>>> >>>> https://lists.sourceforge.net/lists/listinfo/freetel-codec2 >>> _______________________________________________ >>> Freetel-codec2 mailing list >>> [email protected] >>> <mailto:[email protected]> >>> >>> https://lists.sourceforge.net/lists/listinfo/freetel-codec2 >>> >>> _______________________________________________ >>> Freetel-codec2 mailing list >>> [email protected] >>> <mailto:[email protected]> >>> https://lists.sourceforge.net/lists/listinfo/freetel-codec2 >> _______________________________________________ >> Freetel-codec2 mailing list >> [email protected] >> <mailto:[email protected]> >> https://lists.sourceforge.net/lists/listinfo/freetel-codec2 >> >> >> >> _______________________________________________ >> Freetel-codec2 mailing list >> [email protected] >> <mailto:[email protected]> >> https://lists.sourceforge.net/lists/listinfo/freetel-codec2 > _______________________________________________ > Freetel-codec2 mailing list > [email protected] > <mailto:[email protected]> > https://lists.sourceforge.net/lists/listinfo/freetel-codec2 > > _______________________________________________ > Freetel-codec2 mailing list > [email protected] > <mailto:[email protected]> > https://lists.sourceforge.net/lists/listinfo/freetel-codec2 > > _______________________________________________ > Freetel-codec2 mailing list > [email protected] > <mailto:[email protected]> > https://lists.sourceforge.net/lists/listinfo/freetel-codec2 > > > > > > _______________________________________________ > Freetel-codec2 mailing list > [email protected] > https://lists.sourceforge.net/lists/listinfo/freetel-codec2 > _______________________________________________ Freetel-codec2 mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/freetel-codec2
