mirror of
https://git.freebsd.org/ports.git
synced 2025-06-24 22:20:35 -04:00
This took quite a lot of time because Qt's own build system underwent several changes in 5.8.0 that took a while to adapt to. And, of course, qt5-webengine is a behemoth that we need to patch like crazy due to its bundling of Chromium. In fact, most of the Chromium patches in qt5-webengine have been imported with no changes from www/chromium@433510 ("www/chromium: update to 56.0.2924.87"). New port: accessibility/qt5-speech Bigger changes to Qt5 ports we had to make: - Qt now allows using a configure.json file to define configuration options and specify configuration checks that can be done when qmake is invoked. However, configure.json checks done in a subdirectory only propagates to subdirectories, and checks elsewhere will fail if all .pro files are being parsed at once (i.e. qmake -recursive), so several ports had to switch to USES=qmake:norecursive along with manual additional qmake invocations in subdirectories in order to work. It's been mentioned in a few places such as Qt's bug tracker that qmake's recursive mode is pretty much deprecated, so we might switch to non-recursive mode by default in the future. - Uses/qmake.mk: Introduce QMAKE_CONFIGURE_ARGS. qmake now accepts arbitrary options such as '-foo' and '-no-bar' at the end of the command-line. They can be specified in QMAKE_CONFIGURE_ARGS. - graphics/qt5-wayland: The port can only be built if graphics/mesa-libs is built with the WAYLAND option, so a corresponding option (off by default) was added to the port. - misc/qt5-doc: Switch to a pre-built documentation tarball. The existing port was not working with Qt 5.9. Instead of trying to fix it, switch to what Gentoo does and fetch a tarball that already contains all documentation so that we do not have to build anything at all. The tarball's name and location in download.qt.io look a bit weird, but it seems to work fine. - www/qt5-webengine: Use binutils from ports, Chromium's GN build system generates a build.ninja that uses ar(1) with the @file syntax that is not supported by BSD ar, so we need to use GNU ar from binutils. - x11-toolkits/qt5-declarative-render2d: This port was merged into the main Qt Declarative repository upstream, and into x11-toolkits/qt5-quick in the ports tree. Changes to other ports we had to make: - biology/ugene: Drop a '#define point "."' that is not present in more recent versions of the port. Defining a macro with such a common name causes build issues with Qt 5.9, which uses |point| as an argument name in methods. - cad/qelectrotech: Fix plist with Qt 5.9. Directories are no longer installed with `cp -f -R', but rather `qmake install qinstall', which does not install %%DATADIR%%/elements/10_electric/20_manufacturers_articles/bosch_rexroth/.directory That's a local file that should not even have been part of the tarball anyway. - chinese/gcin-qt5: Add additional private Qt directories (which should not be used in the first place) to get the port to build with Qt 5.9. - devel/qtcreator: Fix plist with Qt 5.9. Something changed in qdoc and some test classes no longer generate documentation files. - security/keepassx-devel: Import a patch sent upstream almost a year ago to fix the build with Qt 5.9. Thanks to antoine for the exp-run, and tcberner and Laurent Cimon <laurent@nuxi.ca> for landing changes in our qt-5.9 branch. PR: 224849
143 lines
7 KiB
Text
143 lines
7 KiB
Text
--- src/3rdparty/chromium/base/strings/safe_sprintf_unittest.cc.orig 2016-10-06 04:02:08.000000000 +0300
|
|
+++ src/3rdparty/chromium/base/strings/safe_sprintf_unittest.cc 2016-10-25 21:42:28.951114000 +0300
|
|
@@ -728,6 +728,7 @@
|
|
}
|
|
|
|
TEST(SafeSPrintfTest, EmitNULL) {
|
|
+/* Avoid compiler error: http://pastebin.com/1edWUE84
|
|
char buf[40];
|
|
#if defined(__GNUC__)
|
|
#pragma GCC diagnostic push
|
|
@@ -739,6 +740,7 @@
|
|
EXPECT_EQ("0x0", std::string(buf));
|
|
EXPECT_EQ(6, SafeSPrintf(buf, "%s", NULL));
|
|
EXPECT_EQ("<NULL>", std::string(buf));
|
|
+*/
|
|
#if defined(__GCC__)
|
|
#pragma GCC diagnostic pop
|
|
#endif
|
|
--- src/3rdparty/chromium/base/threading/thread_local_storage_unittest.cc 2015-04-15 00:18:48.000000000 +0200
|
|
+++ src/3rdparty/chromium/base/threading/thread_local_storage_unittest.cc 2015-04-18 21:45:40.000000000 +0200
|
|
@@ -60,7 +60,7 @@
|
|
void ThreadLocalStorageCleanup(void *value) {
|
|
int *ptr = reinterpret_cast<int*>(value);
|
|
// Destructors should never be called with a NULL.
|
|
- ASSERT_NE(reinterpret_cast<int*>(NULL), ptr);
|
|
+ ASSERT_NE(static_cast<int*>(NULL), ptr);
|
|
if (*ptr == kFinalTlsValue)
|
|
return; // We've been called enough times.
|
|
ASSERT_LT(kFinalTlsValue, *ptr);
|
|
--- src/3rdparty/chromium/base/tracked_objects.cc 2015-04-15 00:31:20.000000000 +0200
|
|
+++ src/3rdparty/chromium/base/tracked_objects.cc 2015-04-18 21:57:33.000000000 +0200
|
|
@@ -425,7 +425,7 @@
|
|
}
|
|
// We must NOT do any allocations during this callback.
|
|
// Using the simple linked lists avoids all allocations.
|
|
- DCHECK_EQ(this->next_retired_worker_, reinterpret_cast<ThreadData*>(NULL));
|
|
+ DCHECK_EQ(this->next_retired_worker_, static_cast<ThreadData*>(NULL));
|
|
this->next_retired_worker_ = first_retired_worker_;
|
|
first_retired_worker_ = this;
|
|
}
|
|
--- src/3rdparty/chromium/base/tracked_objects_unittest.cc.orig 2015-08-22 15:01:51.000000000 -0400
|
|
+++ src/3rdparty/chromium/base/tracked_objects_unittest.cc 2015-09-03 09:20:53.370191000 -0400
|
|
@@ -58,9 +58,9 @@
|
|
Births* birth = ThreadData::TallyABirthIfActive(location);
|
|
|
|
if (ThreadData::status() == ThreadData::DEACTIVATED)
|
|
- EXPECT_EQ(reinterpret_cast<Births*>(NULL), birth);
|
|
+ EXPECT_EQ(static_cast<Births*>(NULL), birth);
|
|
else
|
|
- EXPECT_NE(reinterpret_cast<Births*>(NULL), birth);
|
|
+ EXPECT_NE(static_cast<Births*>(NULL), birth);
|
|
}
|
|
|
|
// Helper function to verify the most common test expectations.
|
|
--- src/3rdparty/chromium/media/audio/audio_output_proxy_unittest.cc 2015-04-15 00:18:55.000000000 +0200
|
|
+++ src/3rdparty/chromium/media/audio/audio_output_proxy_unittest.cc 2015-04-18 22:02:38.000000000 +0200
|
|
@@ -387,7 +387,7 @@
|
|
// |stream| is closed at this point. Start() should reopen it again.
|
|
EXPECT_CALL(manager(), MakeAudioOutputStream(_, _))
|
|
.Times(2)
|
|
- .WillRepeatedly(Return(reinterpret_cast<AudioOutputStream*>(NULL)));
|
|
+ .WillRepeatedly(Return(static_cast<AudioOutputStream*>(NULL)));
|
|
|
|
EXPECT_CALL(callback_, OnError(_))
|
|
.Times(2);
|
|
--- src/3rdparty/chromium/third_party/hunspell/src/hunspell/affentry.hxx.orig 2015-07-21 18:46:37.322427000 -0400
|
|
+++ src/3rdparty/chromium/third_party/hunspell/src/hunspell/affentry.hxx 2015-07-21 18:48:02.034251000 -0400
|
|
@@ -27,7 +27,7 @@
|
|
struct hentry * checkword(const char * word, int len, char in_compound,
|
|
const FLAG needflag = FLAG_NULL);
|
|
|
|
- struct hentry * check_twosfx(const char * word, int len, char in_compound, const FLAG needflag = NULL);
|
|
+ struct hentry * check_twosfx(const char * word, int len, char in_compound, const FLAG needflag = 0);
|
|
|
|
char * check_morph(const char * word, int len, char in_compound,
|
|
const FLAG needflag = FLAG_NULL);
|
|
@@ -90,7 +90,7 @@
|
|
// const FLAG cclass = FLAG_NULL, const FLAG needflag = FLAG_NULL, char in_compound=IN_CPD_NOT);
|
|
const FLAG cclass = FLAG_NULL, const FLAG needflag = FLAG_NULL, const FLAG badflag = 0);
|
|
|
|
- struct hentry * check_twosfx(const char * word, int len, int optflags, PfxEntry* ppfx, const FLAG needflag = NULL);
|
|
+ struct hentry * check_twosfx(const char * word, int len, int optflags, PfxEntry* ppfx, const FLAG needflag = 0);
|
|
|
|
char * check_twosfx_morph(const char * word, int len, int optflags,
|
|
PfxEntry* ppfx, const FLAG needflag = FLAG_NULL);
|
|
--- src/3rdparty/chromium/third_party/sfntly/src/cpp/src/sfntly/table/core/cmap_table.cc 2015-04-15 00:31:48.000000000 +0200
|
|
+++ src/3rdparty/chromium/third_party/sfntly/src/cpp/src/sfntly/table/core/cmap_table.cc 2015-04-18 22:05:41.000000000 +0200
|
|
@@ -439,7 +439,7 @@
|
|
}
|
|
|
|
CMapTable::CMapFormat0::Builder::Builder(const CMapId& cmap_id)
|
|
- : CMap::Builder(reinterpret_cast<ReadableFontData*>(NULL),
|
|
+ : CMap::Builder(static_cast<ReadableFontData*>(NULL),
|
|
CMapFormat::kFormat0,
|
|
cmap_id) {
|
|
}
|
|
@@ -563,7 +563,7 @@
|
|
: CMapTable::CMap::Builder(data ? down_cast<WritableFontData*>(
|
|
data->Slice(offset, data->ReadUShort(
|
|
offset + Offset::kFormat0Length)))
|
|
- : reinterpret_cast<WritableFontData*>(NULL),
|
|
+ : static_cast<WritableFontData*>(NULL),
|
|
CMapFormat::kFormat2, cmap_id) {
|
|
// TODO(arthurhsu): FIXIT: heavy lifting and leak, need fix.
|
|
}
|
|
@@ -574,7 +574,7 @@
|
|
: CMapTable::CMap::Builder(data ? down_cast<ReadableFontData*>(
|
|
data->Slice(offset, data->ReadUShort(
|
|
offset + Offset::kFormat0Length)))
|
|
- : reinterpret_cast<ReadableFontData*>(NULL),
|
|
+ : static_cast<ReadableFontData*>(NULL),
|
|
CMapFormat::kFormat2, cmap_id) {
|
|
// TODO(arthurhsu): FIXIT: heavy lifting and leak, need fix.
|
|
}
|
|
@@ -958,7 +958,7 @@
|
|
CMapTable::CMapFormat4::Builder::Builder(SegmentList* segments,
|
|
IntegerList* glyph_id_array,
|
|
const CMapId& cmap_id)
|
|
- : CMap::Builder(reinterpret_cast<ReadableFontData*>(NULL),
|
|
+ : CMap::Builder(static_cast<ReadableFontData*>(NULL),
|
|
CMapFormat::kFormat4, cmap_id),
|
|
segments_(segments->begin(), segments->end()),
|
|
glyph_id_array_(glyph_id_array->begin(), glyph_id_array->end()) {
|
|
@@ -966,7 +966,7 @@
|
|
}
|
|
|
|
CMapTable::CMapFormat4::Builder::Builder(const CMapId& cmap_id)
|
|
- : CMap::Builder(reinterpret_cast<ReadableFontData*>(NULL),
|
|
+ : CMap::Builder(static_cast<ReadableFontData*>(NULL),
|
|
CMapFormat::kFormat4, cmap_id) {
|
|
}
|
|
|
|
--- src/3rdparty/chromium/third_party/webrtc/base/taskrunner.cc 2015-04-15 00:32:17.000000000 +0200
|
|
+++ src/3rdparty/chromium/third_party/webrtc/base/taskrunner.cc 2015-04-18 22:10:53.000000000 +0200
|
|
@@ -102,7 +102,7 @@
|
|
std::vector<Task *>::iterator it;
|
|
it = std::remove(tasks_.begin(),
|
|
tasks_.end(),
|
|
- reinterpret_cast<Task *>(NULL));
|
|
+ static_cast<Task *>(NULL));
|
|
|
|
tasks_.erase(it, tasks_.end());
|
|
|