Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 584354 - games-strategy/freeorion fails to build with dev-libs/boost-1.61.0
Summary: games-strategy/freeorion fails to build with dev-libs/boost-1.61.0
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: [OLD] Games (show other bugs)
Hardware: All Linux
: Normal normal (vote)
Assignee: Thomas Kahle (RETIRED)
URL: https://github.com/freeorion/freeorio...
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2016-05-27 18:58 UTC by Markus Walter
Modified: 2016-08-21 16:07 UTC (History)
2 users (show)

See Also:
Package list:
Runtime testing required: ---


Attachments
emerge --info (info.txt,6.65 KB, text/plain)
2016-05-27 18:58 UTC, Markus Walter
Details
build log (freeorion-0.4.5:20160527-183715.log,508.22 KB, text/x-log)
2016-05-27 18:59 UTC, Markus Walter
Details
patch freeorion to work with boost-1.61 (0001-Make-destructors-public.patch,4.56 KB, patch)
2016-08-21 10:06 UTC, Markus Walter
Details | Diff
working ebuild (freeorion-0.4.5-r1.ebuild,2.38 KB, text/plain)
2016-08-21 10:09 UTC, Markus Walter
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Markus Walter 2016-05-27 18:58:09 UTC
On my hardened ~amd64 machine I see the following failure after upgrading boost.

In file included from /var/tmp/portage/games-strategy/freeorion-0.4.5/work/freeorion-0.4.5/util/SerializeUniverse.cpp:8:0:
/usr/include/boost/archive/detail/iserializer.hpp: In instantiation of ‘static void boost::archive::detail::heap_allocation<T>::doesnt_have_new_operator::invoke_delete(T*) [with T = Ship]’:
/usr/include/boost/archive/detail/iserializer.hpp:265:33:   required from ‘static void boost::archive::detail::heap_allocation<T>::invoke_delete(T*) [with T = Ship]’
/usr/include/boost/archive/detail/iserializer.hpp:273:26:   required from ‘boost::archive::detail::heap_allocation<T>::~heap_allocation() [with T = Ship]’
/usr/include/boost/archive/detail/iserializer.hpp:294:36:   required from ‘void* boost::archive::detail::pointer_iserializer<Archive, T>::heap_allocation() const [with Archive = boost::archive::binary_iarchive; T = Ship]’
/var/tmp/portage/games-strategy/freeorion-0.4.5/work/freeorion-0.4.5/util/SerializeUniverse.cpp:326:133:   required from here
/var/tmp/portage/games-strategy/freeorion-0.4.5/work/freeorion-0.4.5/util/../universe/Ship.h:99:5: error: ‘virtual Ship::~Ship()’ is protected
     ~Ship() {}
     ^
In file included from /usr/include/boost/archive/detail/interface_iarchive.hpp:22:0,
                 from /usr/include/boost/archive/detail/common_iarchive.hpp:23,
                 from /usr/include/boost/archive/basic_binary_iarchive.hpp:30,
                 from /usr/include/boost/archive/binary_iarchive_impl.hpp:21,
                 from /usr/include/boost/archive/binary_iarchive.hpp:20,
                 from /var/tmp/portage/games-strategy/freeorion-0.4.5/work/freeorion-0.4.5/util/Serialize.h:5,
                 from /var/tmp/portage/games-strategy/freeorion-0.4.5/work/freeorion-0.4.5/util/SerializeUniverse.cpp:1:
/usr/include/boost/archive/detail/iserializer.hpp:246:17: error: within this context
                 delete t;
                 ^
Comment 1 Markus Walter 2016-05-27 18:58:34 UTC
Created attachment 435572 [details]
emerge --info
Comment 2 Markus Walter 2016-05-27 18:59:00 UTC
Created attachment 435574 [details]
build log
Comment 3 Wojciech Myrda 2016-06-27 09:49:47 UTC
why have this game been marked as old? Does that men it would not see a fix for this problem? I do confirm problem exists and that the game is far from old as changes to it are made daily https://github.com/freeorion/freeorion/commits/master although I am not sure if fix for this is already present in git.
Comment 4 Markus Walter 2016-06-27 11:42:19 UTC
(In reply to Wojciech Myrda from comment #3)
> why have this game been marked as old? Does that men it would not see a fix
> for this problem?

AFAIK the '[OLD]' is because of the recent restructuring of bugzilla components and has nothing to do with this concrete bug.
Comment 5 Toralf Förster gentoo-dev 2016-07-14 15:55:31 UTC
same happened at tinderbox image ~/images?/amd64-desktop-unstable_20160629-232404
Comment 6 Wojciech Myrda 2016-07-18 20:09:29 UTC
If I read upstream bug report right https://github.com/freeorion/freeorion/commits/master v0.4.5 would not compile & work with boost 1.61
Comment 7 Thomas Kahle (RETIRED) gentoo-dev 2016-07-25 08:39:23 UTC
The bug would get more attention if it was assigned to the maintainer... 

Would a hard requirement on <boost-1.61 help people?  I guess no, since nobody wants to downgrade boost.
Comment 8 Markus Walter 2016-07-29 09:55:50 UTC
I reported the bug upstream, but currently the discussion there is inconclusive. The blocker is not nice, but the only option I currently see working.
Comment 9 Markus Walter 2016-08-21 10:06:45 UTC
Created attachment 443818 [details, diff]
patch freeorion to work with boost-1.61

Applying this patch in conjuction with the CPPFLAG -DBOOST_OPTIONAL_CONFIG_USE_OLD_IMPLEMENTATION_OF_OPTIONAL worked for me (as per discussion in upstream issue).
Comment 10 Markus Walter 2016-08-21 10:09:17 UTC
Created attachment 443820 [details]
working ebuild

This ebuild adds the flag from the previous comment and inserts epatch_user for utilizing the patch.
Comment 11 Thomas Kahle (RETIRED) gentoo-dev 2016-08-21 16:07:09 UTC
In freeorion-0.4.5-r1 I implemented this patch and removed the dependency on "glew" which I think was wrong (only needed on Windows).

Thanks for all your work.  There is still the removal of the games.eclass and bump to EAPI=6 pending for this ebuild.  I don't have time to look into it.  Games eclass had a convenient function that writes a wrapper script.  We need to replicate that functionality in the new ebuild.  Please email me if you are interested to work on it.