Dear developers
I noticed that kicad 6.0.5 is not compatible with boost 1.66 because of change in common/kiid.cpp
In file included from /usr/include/boost/random/mersenne_twister.hpp:30,
from /usr/include/boost/uuid/random_generator.hpp:15,
from /usr/include/boost/uuid/uuid_generators.hpp:17,
from /data/soft/kicad-6.0.5/common/kiid.cpp:28:
/usr/include/boost/random/detail/seed_impl.hpp: In instantiation of ?void boost::random::detail::seed_array_int_impl(SeedSeq&, UIntType (&)[n]) [with int w = 32; long unsigned int n = 624; SeedSeq = boost::uuids::detail::seed_rng; UIntType = unsigned int]?:
/usr/include/boost/random/detail/seed_impl.hpp:290:27: required from ?void boost::random::detail::seed_array_int_impl(SeedSeq&, IntType (&)[n], mpl_::false_) [with int w = 32; long unsigned int n = 624; SeedSeq = boost::uuids::detail::seed_rng; IntType = unsigned int; mpl_::false_ = mpl_::bool_<false>]?
/usr/include/boost/random/detail/seed_impl.hpp:296:27: required from ?void boost::random::detail::seed_array_int(SeedSeq&, IntType (&)[n]) [with int w = 32; long unsigned int n = 624; SeedSeq = boost::uuids::detail::seed_rng; IntType = unsigned int]?
/usr/include/boost/random/mersenne_twister.hpp:163:34: required from ?void boost::random::mersenne_twister_engine<UIntType, w, n, m, r, a, u, d, s, b, t, c, l, f>::seed(SeeqSeq&, typename boost::random::detail::disable_seed<SeeqSeq>::type*) [with SeeqSeq = boost::uuids::detail::seed_rng; UIntType = unsigned int; long unsigned int w = 32; long unsigned int n = 624; long unsigned int m = 397; long unsigned int r = 31; UIntType a = 2567483615; long unsigned int u = 11; UIntType d = 4294967295; long unsigned int s = 7; UIntType b = 2636928640; long unsigned int t = 15; UIntType c = 4022730752; long unsigned int l = 18; UIntType f = 1812433253; typename boost::random::detail::disable_seed<SeeqSeq>::type = void]?
/usr/include/boost/random/mersenne_twister.hpp:128:7: required from ?boost::random::mersenne_twister_engine<UIntType, w, n, m, r, a, u, d, s, b, t, c, l, f>::mersenne_twister_engine(SeedSeq&, typename boost::random::detail::disable_constructor<boost::random::mersenne_twister_engine<UIntType, w, n, m, r, a, u, d, s, b, t, c, l, f>, SeedSeq>::type*) [with SeedSeq = boost::uuids::detail::seed_rng; UIntType = unsigned int; long unsigned int w = 32; long unsigned int n = 624; long unsigned int m = 397; long unsigned int r = 31; UIntType a = 2567483615; long unsigned int u = 11; UIntType d = 4294967295; long unsigned int s = 7; UIntType b = 2636928640; long unsigned int t = 15; UIntType c = 4022730752; long unsigned int l = 18; UIntType f = 1812433253; typename boost::random::detail::disable_constructor<boost::random::mersenne_twister_engine<UIntType, w, n, m, r, a, u, d, s, b, t, c, l, f>, SeedSeq>::type = void]?
/data/soft/kicad-6.0.5/common/kiid.cpp:50:73: required from here
/usr/include/boost/random/detail/seed_impl.hpp:269:9: error: ?class boost::uuids::detail::seed_rng? has no member named ?generate?
seq.generate(&storage[0], &storage[0] + ((w+31)/32) * n);
~~~~^~~~~~~~
The lines which cause this error are given below. Apparently “#if … #else” was tested only with Boost >= 1.67 and not with 1.66
#if BOOST_VERSION >= 106700
static boost::uuids::detail::random_provider seeder; // required to ensure the rng has a random initial seed
#else
static boost::uuids::detail::seed_rng seeder; // required to ensure the rng has a random initial seed
#endif
static boost::mt19937 rng( seeder );
Can it be fixed in future releases ?
For the moment I simply replaced the problematic file by file from kicad 6.0.2
Cheers, Sanya