Details
-
Bug
-
Status: Open
-
Major
-
Resolution: Unresolved
-
None
-
None
-
None
-
None
Description
The Mesos build system doesn't verify that libarchive is a new enough version to provide all the APIs that Mesos needs. For example, on CentOS 6 with libarchive 2.8.3, the build will fail:
../../3rdparty/stout/include/stout/archiver.hpp: In function 'Try<Nothing> archiver::extract(const string&, const string&, int)': ../../3rdparty/stout/include/stout/archiver.hpp:55:47: error: 'archive_read_support_filter_all' was not declared in this scope archive_read_support_filter_all(reader.get()); ^ ../../3rdparty/stout/include/stout/archiver.hpp: In lambda function: ../../3rdparty/stout/include/stout/archiver.hpp:61:27: error: 'archive_write_free' was not declared in this scope archive_write_free(p); ^ ../../3rdparty/stout/include/stout/archiver.hpp: In function 'Try<Nothing> archiver::extract(const string&, const string&, int)': ../../3rdparty/stout/include/stout/archiver.hpp:120:70: error: 'archive_entry_hardlink_utf8' was not declared in this scope const char* hardlink_target = archive_entry_hardlink_utf8(entry); ^ ../../3rdparty/stout/include/stout/archiver.hpp:130:68: error: 'archive_entry_pathname_utf8' was not declared in this scope path::join(destination, archive_entry_pathname_utf8(entry)).c_str());
We should verify that new APIs we need are present at configuration time.