Bug 1307322

Summary: aqemu: FTBFS in rawhide
Product: [Fedora] Fedora Reporter: Fedora Release Engineering <releng>
Component: aqemuAssignee: Stephen Gordon <sgordon>
Status: CLOSED ERRATA QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 24CC: sgordon, yselkowi
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: aqemu-0.8.2-17.fc24 aqemu-0.8.2-18.fc24 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2016-03-26 17:57:18 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Bug Depends On:    
Bug Blocks: 1305208    
Attachments:
Description Flags
build.log
none
root.log
none
state.log none

Description Fedora Release Engineering 2016-02-13 21:01:30 UTC
Your package aqemu failed to build from source in current rawhide.

http://koji.fedoraproject.org/koji/taskinfo?taskID=12806538

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

Comment 1 Fedora Release Engineering 2016-02-13 21:01:32 UTC
Created attachment 1124036 [details]
build.log

Comment 2 Fedora Release Engineering 2016-02-13 21:01:33 UTC
Created attachment 1124037 [details]
root.log

Comment 3 Fedora Release Engineering 2016-02-13 21:01:34 UTC
Created attachment 1124038 [details]
state.log

Comment 4 Yaakov Selkowitz 2016-02-17 03:28:53 UTC
/builddir/build/BUILD/aqemu-0.8.2/Main_Window.cpp: In member function 'virtual void Main_Window::closeEvent(QCloseEvent*)':
/builddir/build/BUILD/aqemu-0.8.2/Main_Window.cpp:216:43: error: invalid initialization of reference of type 'const QString&' from expression of type 'bool'
        tr("Cannot Save Settings!"), false );
                                           ^

This looks like "Cannot convert 'bool' to 'T*'" in https://gcc.gnu.org/gcc-6/porting_to.html

Comment 5 Stephen Gordon 2016-02-17 15:59:59 UTC
(In reply to Yaakov Selkowitz from comment #4)
> /builddir/build/BUILD/aqemu-0.8.2/Main_Window.cpp: In member function
> 'virtual void Main_Window::closeEvent(QCloseEvent*)':
> /builddir/build/BUILD/aqemu-0.8.2/Main_Window.cpp:216:43: error: invalid
> initialization of reference of type 'const QString&' from expression of type
> 'bool'
>         tr("Cannot Save Settings!"), false );
>                                            ^
> 
> This looks like "Cannot convert 'bool' to 'T*'" in
> https://gcc.gnu.org/gcc-6/porting_to.html

Thanks, I am going to have to find some downtime to go through these - probably over the weekend. Unfortunately upstream for this project is long since dormant, but I will try and do it enough to get it into F24 and then potentially orphan/retire in F25.

Comment 6 Stephen Gordon 2016-02-24 12:18:58 UTC
These fix the initial error noted in comment # 4:

master: http://pkgs.fedoraproject.org/cgit/rpms/aqemu.git/commit/?id=d41a317c988d430900c69fe4ba37c289417cccaa
F24: http://pkgs.fedoraproject.org/cgit/rpms/aqemu.git/commit/?h=f24&id=d41a317c988d430900c69fe4ba37c289417cccaa

Unfortunately this brings us to:

/builddir/build/BUILD/aqemu-0.8.2/VM.cpp: In member function 'bool Virtual_Machine::Load_VM(const QString&)':
/builddir/build/BUILD/aqemu-0.8.2/VM.cpp:4566:108: error: no matching function for call to 'QDomElement::firstChildElement(bool)'
     SPICE.Use_Video_Stream_Compression( Second_Element.firstChildElement( ! "Use_Video_Stream_Compression" ).text() == "false" );
                                                                                                            ^
In file included from /usr/include/QtXml/QDomDocument:1:0,
                 from /builddir/build/BUILD/aqemu-0.8.2/VM.cpp:29:
/usr/include/QtXml/qdom.h:234:17: note: candidate: QDomElement QDomNode::firstChildElement(const QString&) const
     QDomElement firstChildElement(const QString &tagName = QString()) const;
                 ^~~~~~~~~~~~~~~~~
/usr/include/QtXml/qdom.h:234:17: note:   no known conversion for argument 1 from 'bool' to 'const QString&'
/builddir/build/BUILD/aqemu-0.8.2/VM.cpp:4598:100: error: no matching function for call to 'QDomElement::firstChildElement(bool)'
     SPICE.Use_Playback_Compression( Second_Element.firstChildElement( ! "Use_Playback_Compression" ).text() == "false" );
                                                                                                    ^
In file included from /usr/include/QtXml/QDomDocument:1:0,
                 from /builddir/build/BUILD/aqemu-0.8.2/VM.cpp:29:
/usr/include/QtXml/qdom.h:234:17: note: candidate: QDomElement QDomNode::firstChildElement(const QString&) const
     QDomElement firstChildElement(const QString &tagName = QString()) const;
                 ^~~~~~~~~~~~~~~~~
/usr/include/QtXml/qdom.h:234:17: note:   no known conversion for argument 1 from 'bool' to 'const QString&'
CMakeFiles/aqemu.dir/build.make:1212: recipe for target 'CMakeFiles/aqemu.dir/VM.o' failed
make[2]: *** [CMakeFiles/aqemu.dir/VM.o] Error 1

Comment 7 Jan Kurik 2016-02-24 14:33:51 UTC
This bug appears to have been reported against 'rawhide' during the Fedora 24 development cycle.
Changing version to '24'.

More information and reason for this action is here:
https://fedoraproject.org/wiki/Fedora_Program_Management/HouseKeeping/Fedora24#Rawhide_Rebase

Comment 8 Yaakov Selkowitz 2016-02-24 15:32:05 UTC
OK, that's just weird negating a string like that, because the result is obviously false, which prior to C++11 would be converted to a null pointer with a warning:

/builddir/build/BUILD/aqemu-0.8.2/VM.cpp:4566:108: warning: converting 'false' to pointer type for argument 1 of 'QString::QString(const char*)' [-Wconversion-null]

The Qt4 documentation states wrt firstChildElement():

> Returns the first child element with tag name tagName if tagName is non-empty;
> otherwise returns the first child element.

Either the negated string was meant as a form of comment:

     SPICE.Use_Video_Stream_Compression( Second_Element.firstChildElement( /* "Use_Video_Stream_Compression" */ ).text() == "false" );
     SPICE.Use_Playback_Compression( Second_Element.firstChildElement( /* "Use_Playback_Compression" */ ).text() == "false" );

Or the negations don't actually belong there.  I'm not familiar enough with the code to tell which, but it was previously being compiled as the former.

Comment 9 Stephen Gordon 2016-03-20 02:54:44 UTC
Alright, finally found some spare time to dig into this and in my travels came across this:

https://sourceforge.net/p/aqemu/patches/9/

Which I in turn found from:

https://retracile.net/blog/2014/12/29/19.00

This matches the conclusion I had come to after staring at it for a while which is that the ! doesn't belong there at all. Working on applying the fix now.

Comment 10 Stephen Gordon 2016-03-20 03:55:44 UTC
aqemu-0.8.2-17.fc24 fixes the FTBFS issues - running it however indicates Bug # 1268553 also needs resolution to get something useful.

Comment 11 Fedora Update System 2016-03-20 04:22:47 UTC
aqemu-0.8.2-17.fc24 has been submitted as an update to Fedora 24. https://bodhi.fedoraproject.org/updates/FEDORA-2016-1a2a5a72f7

Comment 12 Fedora Update System 2016-03-20 15:39:14 UTC
aqemu-0.8.2-17.fc24 has been submitted as an update to Fedora 24. https://bodhi.fedoraproject.org/updates/FEDORA-2016-1a2a5a72f7

Comment 13 Fedora Update System 2016-03-20 16:54:33 UTC
aqemu-0.8.2-18.fc24 has been submitted as an update to Fedora 24. https://bodhi.fedoraproject.org/updates/FEDORA-2016-1a2a5a72f7

Comment 14 Fedora Update System 2016-03-21 22:32:11 UTC
aqemu-0.8.2-18.fc24 has been pushed to the Fedora 24 testing repository. If problems still persist, please make note of it in this bug report.
See https://fedoraproject.org/wiki/QA:Updates_Testing for
instructions on how to install test updates.
You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2016-1a2a5a72f7

Comment 15 Fedora Update System 2016-03-26 17:57:14 UTC
aqemu-0.8.2-18.fc24 has been pushed to the Fedora 24 stable repository. If problems still persist, please make note of it in this bug report.