Skip to content
This repository has been archived by the owner on Apr 17, 2022. It is now read-only.

Libs required for building master #4637

Closed
wzdev-ci opened this issue Sep 19, 2017 · 46 comments
Closed

Libs required for building master #4637

wzdev-ci opened this issue Sep 19, 2017 · 46 comments

Comments

@wzdev-ci
Copy link
Contributor

resolution_fixed type_bug | by Berg


Please double check the list in the wiki guid for building master i cant get it to compile on my machine when using the dependancy supplied by wiki thanks.

crc.cpp:350:24: error: missing initializer for member ‘ecPrivateKeyDERExternalRepresentation::ecCurveData::publicKeyPrelude_len’ [-Werror=missing-field-initializers]
crc.cpp:350:24: error: missing initializer for member ‘ecPrivateKeyDERExternalRepresentation::ecCurveData::numPublicKeyBytes’ [-Werror=missing-field-initializers]
cc1plus: all warnings being treated as errors
make[2]: *** [crc.o] Error 1
make[2]: Leaving directory `/home/berg/bin/warzone-master-18-9-17/lib/framework'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home/berg/bin/warzone-master-18-9-17'
make: *** [all] Error 2

Update: This was fixed in #4703.


Issue migrated from trac:4637 at 2022-04-16 12:54:43 -0700

@wzdev-ci
Copy link
Contributor Author

Berg changed _comment0 which not transferred by tractive

@wzdev-ci
Copy link
Contributor Author

Berserk Cyborg changed blocking which not transferred by tractive

@wzdev-ci
Copy link
Contributor Author

Berserk Cyborg changed blockedby which not transferred by tractive

@wzdev-ci
Copy link
Contributor Author

Berserk Cyborg commented


What compiler are you using? Version? Are you using the git clone method?

@wzdev-ci
Copy link
Contributor Author

Berg commented


it compiles the 3.2.3 release.
GNU Make 3.81
This program built for x86_64-pc-linux-gnu
used the git clone method and even downloaded the archive version
both fail

@wzdev-ci
Copy link
Contributor Author

wzdev-ci commented Oct 4, 2017

Berg commented


I did git pull and tried again on this date.

terminal output from where errors began

wzconfig.cpp:175:48: error: no matching function for call to ‘QJsonArray::QJsonArray(<brace-enclosed initializer list>)’
  mObj.insert(name, QJsonArray({ v.x, v.y, v.z }));
                                                ^
wzconfig.cpp:175:48: note: candidates are:
In file included from /usr/include/qt5/QtCore/QJsonArray:1:0,
                 from wzconfig.h:27,
                 from wzconfig.cpp:31:
/usr/include/qt5/QtCore/qjsonarray.h:206:5: note: QJsonArray::QJsonArray(QJsonPrivate::Data*, QJsonPrivate::Array*)
     QJsonArray(QJsonPrivate::Data *data, QJsonPrivate::Array *array);
     ^
/usr/include/qt5/QtCore/qjsonarray.h:206:5: note:   candidate expects 2 arguments, 1 provided
/usr/include/qt5/QtCore/qjsonarray.h:61:5: note: QJsonArray::QJsonArray(const QJsonArray&)
     QJsonArray(const QJsonArray &other);
     ^
/usr/include/qt5/QtCore/qjsonarray.h:61:5: note:   no known conversion for argument 1 from ‘<brace-enclosed initializer list>’ to ‘const QJsonArray&’
/usr/include/qt5/QtCore/qjsonarray.h:58:5: note: QJsonArray::QJsonArray()
     QJsonArray();
     ^
/usr/include/qt5/QtCore/qjsonarray.h:58:5: note:   candidate expects 0 arguments, 1 provided
wzconfig.cpp: In member function ‘void WzConfig::setVector3i(const QString&, const Vector3i&)’:
wzconfig.cpp:195:48: error: no matching function for call to ‘QJsonArray::QJsonArray(<brace-enclosed initializer list>)’
  mObj.insert(name, QJsonArray({ v.x, v.y, v.z }));
                                                ^
wzconfig.cpp:195:48: note: candidates are:
In file included from /usr/include/qt5/QtCore/QJsonArray:1:0,
                 from wzconfig.h:27,
                 from wzconfig.cpp:31:
/usr/include/qt5/QtCore/qjsonarray.h:206:5: note: QJsonArray::QJsonArray(QJsonPrivate::Data*, QJsonPrivate::Array*)
     QJsonArray(QJsonPrivate::Data *data, QJsonPrivate::Array *array);
     ^
/usr/include/qt5/QtCore/qjsonarray.h:206:5: note:   candidate expects 2 arguments, 1 provided
/usr/include/qt5/QtCore/qjsonarray.h:61:5: note: QJsonArray::QJsonArray(const QJsonArray&)
     QJsonArray(const QJsonArray &other);
     ^
/usr/include/qt5/QtCore/qjsonarray.h:61:5: note:   no known conversion for argument 1 from ‘<brace-enclosed initializer list>’ to ‘const QJsonArray&’
/usr/include/qt5/QtCore/qjsonarray.h:58:5: note: QJsonArray::QJsonArray()
     QJsonArray();
     ^
/usr/include/qt5/QtCore/qjsonarray.h:58:5: note:   candidate expects 0 arguments, 1 provided
wzconfig.cpp: In member function ‘void WzConfig::setVector2i(const QString&, const Vector2i&)’:
wzconfig.cpp:215:43: error: invalid user-defined conversion from ‘<brace-enclosed initializer list>’ to ‘const QJsonArray&’ [-fpermissive]
  mObj.insert(name, QJsonArray({ v.x, v.y }));
                                           ^
In file included from /usr/include/qt5/QtCore/QJsonArray:1:0,
                 from wzconfig.h:27,
                 from wzconfig.cpp:31:
/usr/include/qt5/QtCore/qjsonarray.h:206:5: note: candidate is: QJsonArray::QJsonArray(QJsonPrivate::Data*, QJsonPrivate::Array*) <near match>
     QJsonArray(QJsonPrivate::Data *data, QJsonPrivate::Array *array);
     ^
/usr/include/qt5/QtCore/qjsonarray.h:206:5: note:   no known conversion for argument 2 from ‘const value_type {aka const int}’ to ‘QJsonPrivate::Array*’
wzconfig.cpp:215:43: error: invalid conversion from ‘glm::detail::tvec2<int>::value_type {aka int}’ to ‘QJsonPrivate::Data*’ [-fpermissive]
  mObj.insert(name, QJsonArray({ v.x, v.y }));
                                           ^
In file included from /usr/include/qt5/QtCore/QJsonArray:1:0,
                 from wzconfig.h:27,
                 from wzconfig.cpp:31:
/usr/include/qt5/QtCore/qjsonarray.h:206:5: error:   initializing argument 1 of ‘QJsonArray::QJsonArray(QJsonPrivate::Data*, QJsonPrivate::Array*)’ [-fpermissive]
     QJsonArray(QJsonPrivate::Data *data, QJsonPrivate::Array *array);
     ^
wzconfig.cpp:215:43: error: invalid conversion from ‘glm::detail::tvec2<int>::value_type {aka int}’ to ‘QJsonPrivate::Array*’ [-fpermissive]
  mObj.insert(name, QJsonArray({ v.x, v.y }));
                                           ^
In file included from /usr/include/qt5/QtCore/QJsonArray:1:0,
                 from wzconfig.h:27,
                 from wzconfig.cpp:31:
/usr/include/qt5/QtCore/qjsonarray.h:206:5: error:   initializing argument 2 of ‘QJsonArray::QJsonArray(QJsonPrivate::Data*, QJsonPrivate::Array*)’ [-fpermissive]
     QJsonArray(QJsonPrivate::Data *data, QJsonPrivate::Array *array);
     ^
/usr/include/qt5/QtCore/qjsonarray.h:206:5: error: ‘QJsonArray::QJsonArray(QJsonPrivate::Data*, QJsonPrivate::Array*)’ is private
wzconfig.cpp:215:43: error: within this context
  mObj.insert(name, QJsonArray({ v.x, v.y }));
                                           ^
make[2]: *** [wzconfig.o] Error 1
make[2]: Leaving directory `/home/berg/bin/warzone-master-18-9-17/lib/framework'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home/berg/bin/warzone-master-18-9-17'
make: *** [all] Error 2

@wzdev-ci
Copy link
Contributor Author

wzdev-ci commented Oct 5, 2017

Forgon changed _comment0 which not transferred by tractive

@wzdev-ci
Copy link
Contributor Author

wzdev-ci commented Oct 5, 2017

Forgon changed _comment1 which not transferred by tractive

@wzdev-ci
Copy link
Contributor Author

wzdev-ci commented Oct 5, 2017

Forgon changed _comment2 which not transferred by tractive

@wzdev-ci
Copy link
Contributor Author

wzdev-ci commented Oct 5, 2017

Forgon changed _comment3 which not transferred by tractive

@wzdev-ci
Copy link
Contributor Author

wzdev-ci commented Oct 5, 2017

Forgon commented


Please provide:

  • compiler version
  • Qt version
  • OS (ideally)
  • the exact compilation commands
  • the complete build output. With a POSIX-compliant shell, execute a command similar to:
    ./autogen.sh > autogen.log 1>&2 && ./configure > configure.log 1>&2 && make -j2 > make.log 1>&2

Edit: The problem is caused by Qt 5.2.1. To avoid it, use Qt 5.4+, where the missing function exists (documented here).

Compile instructions have been modified so that ./configure will now fail unless Qt Script 5.4+ is installed.

@wzdev-ci
Copy link
Contributor Author

Per changed status from new to closed

@wzdev-ci
Copy link
Contributor Author

Per changed resolution from `` to external

@wzdev-ci
Copy link
Contributor Author

Forgon edited the issue description

@wzdev-ci
Copy link
Contributor Author

Forgon2100 <forgon2100@...> committed [3817]


In Warzone2100/warzone2100@3817bf4:

#CommitTicketReference repository="" revision="3817bf4f9c92b6d19ebada95132a6c4ebbbc74d1"
fixes #4637: require Qt Script >= 5.4 in configure script

@wzdev-ci
Copy link
Contributor Author

Forgon2100 <forgon2100@...> changed owner from `` to Forgon2100 <forgon2100@gmail.com>

@wzdev-ci
Copy link
Contributor Author

Forgon2100 <forgon2100@...> changed resolution from external to fixed

@wzdev-ci
Copy link
Contributor Author

Per changed status from closed to reopened

@wzdev-ci
Copy link
Contributor Author

Per changed resolution from fixed to ``

@wzdev-ci
Copy link
Contributor Author

Per commented


Your fix just broken buildbot, which suggests 5.4 is not really required, since the builds worked prior to this change.

@wzdev-ci
Copy link
Contributor Author

wzdev-ci commented Jan 15, 2018

Forgon commented


Replying to Warzone2100/old-trac-import#4637 (comment:10):

Your fix just broken buildbot, which suggests 5.4 is not really required, since the builds worked prior to this change.

I successfully reproduced the problem Berg reported when running make with Mint 17.
Buildbot executes make dist, which does nothing inside the subdirectory './lib/framework'.

@wzdev-ci
Copy link
Contributor Author

Per commented


Ah, so the problem is that your change is run also for the cross-compilation with MXE, where it checks the presence of system Qt, rather than MXE Qt, I guess. Not sure how to fix that. I tried upgrading the system Qt (which is 5.2), but there were no system updates and the unofficial approaches I found seemed a bit risky.

@wzdev-ci
Copy link
Contributor Author

Forgon2100 <forgon2100@...> changed status from reopened to closed

@wzdev-ci
Copy link
Contributor Author

Forgon2100 <forgon2100@...> changed resolution from `` to fixed

@wzdev-ci
Copy link
Contributor Author

Forgon2100 <forgon2100@...> committed [481]


In Warzone2100/warzone2100@481e477:

#CommitTicketReference repository="" revision="481e4779828bc0a461a594778a0cbdb4983a6019"
Revert "fixes #4637: require Qt Script >= 5.4 in configure script"

This reverts commit 3817bf4f9c92b6d19ebada95132a6c4ebbbc74d1.

@wzdev-ci
Copy link
Contributor Author

Forgon changed status from closed to reopened

@wzdev-ci
Copy link
Contributor Author

Forgon changed resolution from fixed to ``

@wzdev-ci
Copy link
Contributor Author

wzdev-ci commented Jan 28, 2018

Forgon commented


Replying to Warzone2100/old-trac-import#4637 (comment:12):

Ah, so the problem is that your change is run also for the cross-compilation with MXE, where it checks the presence of system Qt, rather than MXE Qt, I guess. Not sure how to fix that. I tried upgrading the system Qt (which is 5.2), but there were no system updates and the unofficial approaches I found seemed a bit risky.

So, how do we deal with the problem now?

@wzdev-ci
Copy link
Contributor Author

wzdev-ci commented Feb 5, 2018

Forgon2100 <forgon2100@...> changed status from reopened to closed

@wzdev-ci
Copy link
Contributor Author

wzdev-ci commented Feb 5, 2018

Forgon2100 <forgon2100@...> changed resolution from `` to fixed

@wzdev-ci
Copy link
Contributor Author

wzdev-ci commented Feb 5, 2018

Forgon2100 <forgon2100@...> committed [73]


In Warzone2100/warzone2100@73d8301:

#CommitTicketReference repository="" revision="73d83019a72bd633b026bab115f3d042694b8a10"
fixes #4637: require Qt Script >= 5.4 in configure script

@wzdev-ci
Copy link
Contributor Author

wzdev-ci commented Feb 5, 2018

Forgon2100 <forgon2100@...> committed [5]


In Warzone2100/warzone2100@5ae8390:

#CommitTicketReference repository="" revision="5ae83908670183d18808a387505e0b3ed146f1a5"
Revert "fixes #4637: require Qt Script >= 5.4 in configure script"

This reverts commit 73d83019a72bd633b026bab115f3d042694b8a10.

@wzdev-ci
Copy link
Contributor Author

wzdev-ci commented Feb 6, 2018

Forgon changed status from closed to reopened

@wzdev-ci
Copy link
Contributor Author

wzdev-ci commented Feb 6, 2018

Forgon changed resolution from fixed to ``

@wzdev-ci
Copy link
Contributor Author

wzdev-ci commented Feb 6, 2018

Berg commented


See vexed about how this was fixed for me he added new libs etc and made it work.

@wzdev-ci
Copy link
Contributor Author

wzdev-ci commented Feb 6, 2018

Forgon commented


Replying to [comment:19 Berg]:

See vexed about how this was fixed for me he added new libs etc and made it work.

I'm not sure he had this ticket in mind. Afaik his patches were for pastdue's ticket #4720.

@wzdev-ci
Copy link
Contributor Author

Per commented


I wonder if we could somehow skip the configure tests for MXE builds.

@wzdev-ci
Copy link
Contributor Author

Forgon uploaded file qt54_dependency.patch (1.1 KiB)

patch file created with git format-patch (part 1/2)

@wzdev-ci
Copy link
Contributor Author

Forgon uploaded file sdl205_dependency.patch (0.7 KiB)

patch file created with git format-patch (part 2/2)

@wzdev-ci
Copy link
Contributor Author

Forgon uploaded file 4637_sdl_make_error.log (118.6 KiB)

complete command line output of ./make with SDL < 2.0.5

@wzdev-ci
Copy link
Contributor Author

Forgon commented


Now that #4720 has been applied, a similar problem can occur when compiling with SDL < 2.0.5:

main_sdl.cpp: In function ‘bool wzChangeWindowResolution(int, unsigned int, unsigned int)’:
main_sdl.cpp:1518:49: error: ‘SDL_GetDisplayUsableBounds’ was not declared in this scope
   if (SDL_GetDisplayUsableBounds(screen, &bounds) != 0) {
                                                 ^
main_sdl.cpp: In function ‘void wzSetWindowIsResizable(bool)’:
main_sdl.cpp:1994:48: error: ‘SDL_SetWindowResizable’ was not declared in this scope
  SDL_SetWindowResizable(WZwindow, sdl_resizable);

I have thus added a patch which ensures ./configure will check whether SDL >= 2.0.5 is installed.

Once #4746 is fixed, both patches of this ticket will be pushed to our master branch.

@wzdev-ci
Copy link
Contributor Author

Forgon changed component from Wiki to Build System Issues

@wzdev-ci
Copy link
Contributor Author

Forgon2100 <forgon2100@...> changed status from reopened to closed

@wzdev-ci
Copy link
Contributor Author

Forgon2100 <forgon2100@...> changed resolution from `` to fixed

@wzdev-ci
Copy link
Contributor Author

Forgon2100 <forgon2100@...> committed [5]


In Warzone2100/warzone2100@5eabea7:

#CommitTicketReference repository="" revision="5eabea768dc69c50a9e3011a8f7bc4377816a123"
fixes #4637: require Qt Script >= 5.4 in configure script (patch 1/2)

@wzdev-ci
Copy link
Contributor Author

Forgon2100 <forgon2100@...> committed [4293]


In Warzone2100/warzone2100@4293b79:

#CommitTicketReference repository="" revision="4293b79a3bea7425e54645505b9230a4ee53153e"
fixes #4637: require SDL >= 2.0.5 in configure script (patch 2/2)

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

1 participant