Bug 1423093

Summary: Coin2: FTBFS in rawhide
Product: [Fedora] Fedora Reporter: Fedora Release Engineering <releng>
Component: Coin2Assignee: Ralf Corsepius <rc040203>
Status: CLOSED RAWHIDE QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: rawhideCC: jwakely, rc040203
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2017-02-17 17:15:47 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 1423041    
Attachments:
Description Flags
build.log
none
root.log
none
state.log none

Description Fedora Release Engineering 2017-02-17 02:46:00 UTC
Your package Coin2 failed to build from source in current rawhide.

https://koji.fedoraproject.org/koji/taskinfo?taskID=17699598

For details on mass rebuild see https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild

Comment 1 Fedora Release Engineering 2017-02-17 02:46:07 UTC
Created attachment 1251048 [details]
build.log

Comment 2 Fedora Release Engineering 2017-02-17 02:46:10 UTC
Created attachment 1251049 [details]
root.log

Comment 3 Fedora Release Engineering 2017-02-17 02:46:13 UTC
Created attachment 1251050 [details]
state.log

Comment 4 Jonathan Wakely 2017-02-17 11:15:29 UTC
Fails to build because developers don't understand the difference between pointers and characters:

SoStream.cpp: In member function 'virtual SbBool SoStream::readInt8(int8_t&)':
SoStream.cpp:183:7: error: invalid conversion from 'char' to 'char*' [-fpermissive]
   s = '\0'; \
       ^

This should presumably be s = NULL or simply s = 0

Comment 5 Jonathan Wakely 2017-02-17 12:12:27 UTC
Coin3 was patched to do s = NULL; which is what older versions of GCC interpreted the code to do, but I think that's a bug in Coin. I've reported it as https://bitbucket.org/Coin3D/coin/issues/132/compilation-errors-with-gcc-7

Comment 6 Ralf Corsepius 2017-02-17 13:23:56 UTC
(In reply to Jonathan Wakely from comment #5)
> Coin3 was patched to do s = NULL; which is what older versions of GCC
> interpreted the code to do, but I think that's a bug in Coin.
Yep, I decided to go with s = NULL in Coin3, because I came to the same conclusion, as you, and wanted to stay "bugward"-compatible as much as possible, but haven't yet applied a corresponding patch to Coin2.

BTW, IIRC, the original reason for this '\0' was finding a "compromise" between char* = NULL, char* = 0, char* = '\0', which was accepted by both SGI's c++ and g++ and different implementations of NULL ( e.g. (char*)0 vs. (void*)0 ).

> I've reported
> it as
> https://bitbucket.org/Coin3D/coin/issues/132/compilation-errors-with-gcc-7
Thanks. Coin4 (which is what is in bitbucket) has the same problem ;)

Comment 7 Jonathan Wakely 2017-02-17 14:09:22 UTC
(In reply to Ralf Corsepius from comment #6)
> conclusion, as you, and wanted to stay "bugward"-compatible as much as

That's a great term.

> BTW, IIRC, the original reason for this '\0' was finding a "compromise"
> between char* = NULL, char* = 0, char* = '\0', which was accepted by both
> SGI's c++ and g++ and different implementations of NULL ( e.g. (char*)0 vs.
> (void*)0 ).

Ah, interesting! Good to know.

Comment 8 Ralf Corsepius 2017-02-17 14:22:16 UTC
(In reply to Jonathan Wakely from comment #7)
> (In reply to Ralf Corsepius from comment #6)
> > conclusion, as you, and wanted to stay "bugward"-compatible as much as
> 
> That's a great term.
I originally heard this term on some auto*tools list many (>>10) years ago ;)

> > BTW, IIRC, the original reason for this '\0' was finding a "compromise"
> > between char* = NULL, char* = 0, char* = '\0', which was accepted by both
> > SGI's c++ and g++ and different implementations of NULL ( e.g. (char*)0 vs.
> > (void*)0 ).
> 
> Ah, interesting! Good to know.
FWIW: I used to be a community contributor to Coin during the Coin1 and Coin2 phase. Esp. during the early Coin days (Coin1), the primary devs @sim.no primarily used IRIX boxes, because their goal for Coin was to implement a free replacement for then-CSS/commercial SGI-Inventor.

Comment 9 Ralf Corsepius 2017-02-17 17:15:47 UTC
Patch analogous to what I had applied to Coin3 applied.