James-E-A / squeegily

[DEAD] Gentoo ebuilds with aspirations of superlative quality
0 stars 0 forks source link

Pale Moon: QT support? #10

Closed James-E-A closed 7 years ago

James-E-A commented 7 years ago

In ./configure --help, the following lines exist:

  --enable-default-toolkit=TK
                          Select default toolkit
                          Platform specific defaults:
                            Mac OS X - cairo-cocoa
                            Win32 - cairo-windows
                            * - cairo-gtk2
                            * - cairo-gtk3
                            * - cairo-qt

We probably oughta expose these via USE flags.*

*That is, once they've been tested. Is cairo-qt invalid cruft from generic mozilla configuration arcana that will probably break the package, or is it actually the gateway to proper integration with our KDE friends?

James-E-A commented 7 years ago

There's an error

 0:03.33 configure:17448: checking for qmake
 0:03.33 configure: error: * * * Unsupported Qt Version: 4.8.6
 0:03.33 *** Fix above errors and then restart with\
 0:03.33                "/usr/bin/gmake -f client.mk build"
 0:03.33 gmake: *** [client.mk:363: configure] Error 1

Ameliorated by adding --with-qtdir=/usr/lib/qt5

James-E-A commented 7 years ago

🤔

 0:34.04 In file included from /tmp/pmbuild/widget/Unified_cpp_widget2.cpp:20:0:
 0:34.04 /tmp/Pale-Moon-27.2.1_Release/widget/nsShmImage.cpp:11:19: fatal error: QWindow: No such file or directory
 0:34.05  #include <QWindow>
 0:34.05                    ^
 0:34.05 compilation terminated.
 0:34.06 In the directory  /tmp/pmbuild/widget
 0:34.06 The following command failed to execute properly:
 0:34.06 c++ -o Unified_cpp_widget2.o -c -I../dist/stl_wrappers -I../dist/system_wrappers -include /tmp/Pale-Moon-27.2.1_Release/config/gcc_hidden.h -DMOZ_CROSS_PROCESS_IME -DOS_POSIX=1 -DOS_LINUX=1 -DSTATIC_EXPORTABLE_JS_API -DMOZILLA_INTERNAL_API -DIMPL_LIBXUL -DMOZ_GLUE_IN_PROGRAM -DAB_CD=en-US -DNO_NSPR_10_SUPPORT -I/tmp/Pale-Moon-27.2.1_Release/widget -I. -I/tmp/pmbuild/ipc/ipdl/_ipdlheaders -I/tmp/Pale-Moon-27.2.1_Release/ipc/chromium/src -I/tmp/Pale-Moon-27.2.1_Release/ipc/glue -I/tmp/Pale-Moon-27.2.1_Release/layout/base -I/tmp/Pale-Moon-27.2.1_Release/layout/forms -I/tmp/Pale-Moon-27.2.1_Release/layout/generic -I/tmp/Pale-Moon-27.2.1_Release/layout/xul -I/tmp/Pale-Moon-27.2.1_Release/view -I/tmp/Pale-Moon-27.2.1_Release/widget -I/tmp/Pale-Moon-27.2.1_Release/widget/qt -I../dist/include -I/usr/include/nspr -I/usr/include/nss -I/usr/include/pixman-1 -fPIC -DMOZILLA_CLIENT -include ../mozilla-config.h -MD -MP -MF .deps/Unified_cpp_widget2.o.pp -Wall -Wempty-body -Woverloaded-virtual -Wsign-compare -Wwrite-strings -Wno-invalid-offsetof -Wcast-align -fno-exceptions -fno-strict-aliasing -fno-rtti -ffunction-sections -fdata-sections -fno-exceptions -fno-math-errno -std=gnu++0x -pthread -pipe -DNDEBUG -DTRIMMED -g -O2 -pipe -march=nehalem -mmmx -msse -msse2 -msse3 -mssse3 -mcrc32 -mcx16 -msahf -mpopcnt -msse4.2 -msse4.1 -mfxsr --param l1-cache-size=32 --param l1-cache-line-size=64 --param l2-cache-size=8192 -mtune=nehalem -msse2 -mfpmath=sse -fomit-frame-pointer -DQT_SHARED -I/usr/lib/qt5/include -I/usr/lib/qt5/include/QtGui -I/usr/lib/qt5/include/QtCore -I/usr/lib/qt5/include/QtNetwork -I/usr/lib/qt5/include/QtXml -I/usr/lib/qt5/include/QtDeclarative -I/usr/lib/qt5/include/QtGui/5.6.2/QtGui -I/usr/lib/qt5/include/QtPrintSupport -I/usr/include/qt5/QtPositioning -I/usr/include/qt5 -I/usr/include/qt5/QtCore -I/usr/include/qt5 /tmp/pmbuild/widget/Unified_cpp_widget2.cpp
 0:34.06 gmake[5]: *** [/tmp/Pale-Moon-27.2.1_Release/config/rules.mk:938: Unified_cpp_widget2.o] Error 1

and yet:

$ file /usr/include/qt5/QtGui/QWindow
/usr/include/qt5/QtGui/QWindow: C source, ASCII text

(Neither --includedir=/usr/include/qt5 nor --includedir=/usr/include/qt5/QtGui fix it, or even change the error message.)

James-E-A commented 7 years ago

…it looks like installing this symlink fixes it

/usr/lib/qt5/include -> ../../include/qt5

If this works, I'll maybe poke upstream about fixing this. But as it stands, Moonchild probably doesn't even want to think about the idea that his browser will compile with QT5 (lol).

James-E-A commented 7 years ago

ᐳstill no compiler errors I can't believe this is actually working 😮😂

There is a point where we needed to stop and we have clearly passed it | BUT LET'S KEEP GOING AND SEE WHAT HAPPENS

James-E-A commented 7 years ago

Alas. I guess QT support in Pale Moon was (literally) never meant to be. (Singlethreaded build log to isolate the error)

19:14.26 nsQtNetworkLinkService.o
19:15.76 In file included from ../../../dist/include/nsISupportsUtils.h:14:0,
19:15.76                  from ../../../dist/include/nsISupports.h:123,
19:15.76                  from ../../../dist/include/nsINetworkLinkService.h:10,
19:15.76                  from /tmp/Pale-Moon-27.2.1_Release/netwerk/system/qt/nsQtNetworkLinkService.h:8,
19:15.76                  from /tmp/Pale-Moon-27.2.1_Release/netwerk/system/qt/nsQtNetworkLinkService.cpp:6:
19:15.76 /tmp/Pale-Moon-27.2.1_Release/netwerk/system/qt/nsQtNetworkLinkService.cpp: In member function ‘virtual MozExternalRefCountType nsQtNetworkLinkService::AddRef()’:
19:15.76 ../../../dist/include/nsISupportsImpl.h:90:3: error: static assertion failed: Reference-counted class nsQtNetworkLinkService should not have a public destructor. Try to make this class's destructor non-public. If that is really not possible, you can whitelist this class by providing a HasDangerousPublicDestructor specialization for it.
19:15.76    static_assert(!MOZ_IS_DESTRUCTIBLE(X) || \
19:15.76    ^
19:15.76 ../../../dist/include/nsISupportsImpl.h:563:3: note: in expansion of macro ‘MOZ_ASSERT_TYPE_OK_FOR_REFCOUNTING’
19:15.76    MOZ_ASSERT_TYPE_OK_FOR_REFCOUNTING(_class)                                  \
19:15.76    ^
19:15.76 ../../../dist/include/nsISupportsImpl.h:1029:3: note: in expansion of macro ‘NS_IMPL_ADDREF’
19:15.76    NS_IMPL_ADDREF(aClass)                                                      \
19:15.76    ^
19:15.76 /tmp/Pale-Moon-27.2.1_Release/netwerk/system/qt/nsQtNetworkLinkService.cpp:14:1: note: in expansion of macro ‘NS_IMPL_ISUPPORTS’
19:15.76  NS_IMPL_ISUPPORTS(nsQtNetworkLinkService,
19:15.76  ^
19:15.93 In the directory  /tmp/pmbuild/netwerk/system/qt
19:15.93 The following command failed to execute properly:
19:15.93 c++ -o nsQtNetworkLinkService.o -c -I../../../dist/stl_wrappers -I../../../dist/system_wrappers -include /tmp/Pale-Moon-27.2.1_Release/config/gcc_hidden.h -DSTATIC_EXPORTABLE_JS_API -DMOZILLA_INTERNAL_API -DIMPL_LIBXUL -DMOZ_GLUE_IN_PROGRAM -DAB_CD=en-US -DNO_NSPR_10_SUPPORT -I/tmp/Pale-Moon-27.2.1_Release/netwerk/system/qt -I. -I/tmp/Pale-Moon-27.2.1_Release/netwerk/base -I../../../dist/include -I/usr/include/nspr -I/usr/include/nss -I/usr/include/pixman-1 -fPIC -DMOZILLA_CLIENT -include ../../../mozilla-config.h -MD -MP -MF .deps/nsQtNetworkLinkService.o.pp -Wall -Wempty-body -Woverloaded-virtual -Wsign-compare -Wwrite-strings -Wno-invalid-offsetof -Wcast-align -fno-exceptions -fno-strict-aliasing -fno-rtti -ffunction-sections -fdata-sections -fno-exceptions -fno-math-errno -std=gnu++0x -pthread -pipe -DNDEBUG -DTRIMMED -g -O2 -pipe -march=nehalem -mmmx -msse -msse2 -msse3 -mssse3 -mcrc32 -mcx16 -msahf -mpopcnt -msse4.2 -msse4.1 -mfxsr --param l1-cache-size=32 --param l1-cache-line-size=64 --param l2-cache-size=8192 -mtune=nehalem -msse2 -mfpmath=sse -fomit-frame-pointer -DQT_SHARED -I/usr/lib/qt5/include -I/usr/lib/qt5/include/QtGui -I/usr/lib/qt5/include/QtCore -I/usr/lib/qt5/include/QtNetwork -I/usr/lib/qt5/include/QtXml -I/usr/lib/qt5/include/QtDeclarative -I/usr/lib/qt5/include/QtGui/5.6.2/QtGui -I/usr/lib/qt5/include/QtPrintSupport -I/usr/include/qt5/QtPositioning -I/usr/include/qt5 -I/usr/include/qt5/QtCore -I/usr/include/qt5 /tmp/Pale-Moon-27.2.1_Release/netwerk/system/qt/nsQtNetworkLinkService.cpp
19:15.93 gmake[5]: *** [/tmp/Pale-Moon-27.2.1_Release/config/rules.mk:938: nsQtNetworkLinkService.o] Error 1
19:15.93 gmake[4]: *** [/tmp/Pale-Moon-27.2.1_Release/config/recurse.mk:74: netwerk/system/qt/target] Error 2
19:15.93 gmake[3]: *** [/tmp/Pale-Moon-27.2.1_Release/config/recurse.mk:37: compile] Error 2
19:15.93 gmake[2]: *** [/tmp/Pale-Moon-27.2.1_Release/config/rules.mk:541: default] Error 2
19:15.93 gmake[1]: *** [/tmp/Pale-Moon-27.2.1_Release/client.mk:398: realbuild] Error 2
19:15.93 gmake: *** [client.mk:171: build] Error 2
19:15.97 32 compiler warnings present.
19:15.98 Notification center failed: Install the python dbus module to get a notification when the build finishes.
James-E-A commented 7 years ago

もう一度! If --disable-necko-wifi doesn't work, I'm calling it quits. It was a long shot anyway.

James-E-A commented 7 years ago

Upstream says it's currently not available/working. https://forum.palemoon.org/viewtopic.php?f=5&t=15379

Can Pale Moon can be / has it ever successfully been compiled with QT support?

That would be a no.

To build with QT support, you will (obviously) have to work through a number of code-structural issues like this refcounted class having a public DTOR (which is dangerous because you could have an external call destroy the class while in use -- that's a code-security hazard (UAF etc.) This code has not been tested or used for a long time; don't expect it to work out of the box.

I guess support could be added by someone who knows C++, but it can't be done purely from the configuration options.

barracuda156 commented 10 months ago

No success with that since then?