Cannot install kmymoney4 due to gwenhywfar4 failure on Big Sur

Ryan Schmidt ryandesign at macports.org
Sat Dec 5 02:30:35 UTC 2020



On Dec 4, 2020, at 20:27, Jeffrey Walton wrote:

> On Fri, Dec 4, 2020 at 9:26 PM Ryan Schmidt wrote:
> 
>> On Dec 4, 2020, at 20:24, Jeffrey Walton wrote:
>> 
>>> On Fri, Dec 4, 2020 at 8:53 PM Timothy Allison wrote:
>>>> 
>>>> I have been using kmymoney on my Macs for many years now.  I stupidly upgraded to Big Sur a month ago, and have been paying the price with kmymoney4 for about a month.
>>>> Now that qt4 installs, kmymoney4 fails because gwenhywfar4 fails to build.  The log file contains 3 errors:
>>>> :info:build libtest.m:57:2: error: implicit declaration of function 'test1' is invalid in C99 [-Werror,-Wimplicit-function-declaration]:info:build         test1();:info:build         ^:info:build libtest.m:88:6: error: implicit declaration of function 'Cocoa_Gui_new' is invalid in C99 [-Werror,-Wimplicit-function-declaration]:info:build         gui=Cocoa_Gui_new();:info:build             ^:info:build libtest.m:88:5: warning: incompatible integer to pointer conversion assigning to 'GWEN_GUI *' (aka 'struct GWEN_GUI *') from 'int' [-Wint-conversion]:info:build         gui=Cocoa_Gui_new();:info:build            ^~~~~~~~~~~~~~~~:info:build libtest.m:93:6: error: implicit declaration of function 'Dlg_Test1_new' is invalid in C99 [-Werror,-Wimplicit-function-declaration]:info:build         dlg=Dlg_Test1_new();:info:build             ^
>>>> 
>>>> Unlike qt4-mac, I haven’t found any MacPorts tickets on this issue.  Is there a workaround?  I’d really like to go back to kmymoney, and a month is a long time to wait.
>>> 
>>> After you configure, run the following script before running make.
>>> 
>>> IFS="" find "./" -iname 'Makefile' -print | while read -r file
>>> do
>>> 
>>>   touch -a -m -r "$file" "$file.timestamp"
>>>   chmod a+w "$file"
>>>   sed -e "s/-Werror//g" "$file" > "$file.fixed" && \
>>>   mv "$file.fixed" "$file"
>>> 
>>>   chmod a-w "$file"
>>>   touch -a -m -r "$file.timestamp" "$file"
>>>   rm "$file.timestamp"
>>> done
>> 
>> Dunno what you're suggesting here, but it's not the correct fix.
> 
> The script above removes the DoS the user is currently suffering.

It looks like the script removes "-Werror" from any Makefile. The problem the user is experiencing is not the result of any "-Werror" in any Makefile; rather, it is the result of the fact that Apple changed implicit declaration of functions from a warning to an error in Xcode 12. The fix is not to attempt to turn the error back into a warning again. The fix is to define functions before you use them.



More information about the macports-users mailing list