Opened 3 years ago

Closed 23 months ago

Last modified 23 months ago

#63566 closed defect (fixed)

qt5-qtwebkit fails to build on Mojave 10.14.6

Reported by: ArtKoKo Owned by: MarcusCalhoun-Lopez (Marcus Calhoun-Lopez)
Priority: Normal Milestone:
Component: ports Version: 2.7.1
Keywords: Cc: chrstphrchvz (Christopher Chavez)
Port: qt5-qtwebkit

Description

wkhtmltopdf has dependencies qt5-qtwebkit but it fails to build

:info:build Command failed: /usr/bin/make -j8 -w 

I have succesfully installed qt5-qtwebkit on Mac OS Big Sur 11.5.2 with Apple Silicon ARM...

Attachments (1)

main.log.zip (81.7 KB) - added by ArtKoKo 3 years ago.

Download all attachments as: .zip

Change History (8)

Changed 3 years ago by ArtKoKo

Attachment: main.log.zip added

comment:1 Changed 3 years ago by ArtKoKo

Owner: set to MarcusCalhoun-Lopez

comment:2 Changed 3 years ago by ArtKoKo

make generate geolocation build error :

Modules/geolocation/Geoposition.h:38:80: error: unknown type name 'DOMTimeStamp'
    static PassRefPtr<Geoposition> create(PassRefPtr<Coordinates> coordinates, DOMTimeStamp timestamp)
                                                                               ^
Modules/geolocation/Geoposition.h:48:5: error: unknown type name 'DOMTimeStamp'
    DOMTimeStamp timestamp() const { return m_timestamp; }
    ^
Modules/geolocation/Geolocation.cpp:59:55: error: use of undeclared identifier 'convertSecondsToDOMTimeStamp'
    return Geoposition::create(coordinates.release(), convertSecondsToDOMTimeStamp(position->timestamp()));
                                                      ^
Modules/geolocation/Geoposition.h:52:54: error: unknown type name 'DOMTimeStamp'
    Geoposition(PassRefPtr<Coordinates> coordinates, DOMTimeStamp timestamp)
                                                     ^
Modules/geolocation/Geolocation.cpp:181:27: error: member reference base type 'WebCore::Geolocation::Watchers::IdToNotifierMap' (aka 'int') is not a structure or union
    if (!m_idToNotifierMap.add(id, notifier.get()).isNewEntry)
         ~~~~~~~~~~~~~~~~~^~~~
Modules/geolocation/Geolocation.cpp:183:22: error: member reference base type 'WebCore::Geolocation::Watchers::NotifierToIdMap' (aka 'int') is not a structure or union
    m_notifierToIdMap.set(notifier.release(), id);
    ~~~~~~~~~~~~~~~~~^~~~
Modules/geolocation/Geolocation.cpp:190:5: error: 'WebCore::Geolocation::Watchers::IdToNotifierMap' (aka 'int') is not a class, namespace, or enumeration
    IdToNotifierMap::iterator iter = m_idToNotifierMap.find(id);
    ^
Modules/geolocation/Geolocation.cpp:190:55: error: member reference base type 'WebCore::Geolocation::Watchers::IdToNotifierMap' (aka 'int') is not a structure or union
    IdToNotifierMap::iterator iter = m_idToNotifierMap.find(id);
                                     ~~~~~~~~~~~~~~~~~^~~~~
Modules/geolocation/Geolocation.cpp:191:34: error: member reference base type 'WebCore::Geolocation::Watchers::IdToNotifierMap' (aka 'int') is not a structure or union
    if (iter == m_idToNotifierMap.end())
                ~~~~~~~~~~~~~~~~~^~~~
Modules/geolocation/Geolocation.cpp:199:5: error: 'WebCore::Geolocation::Watchers::IdToNotifierMap' (aka 'int') is not a class, namespace, or enumeration
    IdToNotifierMap::iterator iter = m_idToNotifierMap.find(id);
    ^
Modules/geolocation/Geoposition.h:60:5: error: unknown type name 'DOMTimeStamp'
    DOMTimeStamp m_timestamp;
    ^
Modules/geolocation/Geolocation.cpp:199:55: error: member reference base type 'WebCore::Geolocation::Watchers::IdToNotifierMap' (aka 'int') is not a structure or union
    IdToNotifierMap::iterator iter = m_idToNotifierMap.find(id);
                                     ~~~~~~~~~~~~~~~~~^~~~~
fatal error: too many errors emitted, stopping now [-ferror-limit=]
35 warnings and 20 errors generated.
make[2]: *** [.obj/Modules/geolocation/Geolocation.o] Error 1
35 warnings and 4 errors generated.
ma

comment:3 Changed 3 years ago by ArtKoKo

qt5-qtwebkit @5.9.2_2 build works with latest ports tree...

comment:4 Changed 3 years ago by chrstphrchvz (Christopher Chavez)

In file included from Modules/geolocation/GeolocationController.cpp:27:
In file included from Modules/geolocation/GeolocationController.h:31:
In file included from Modules/geolocation/Geolocation.h:33:
In file included from Modules/geolocation/Geoposition.h:29:
Modules/geolocation/Coordinates.h:29:10: warning: non-portable path to file '"event.h"'; specified path differs in case from file name on disk [-Wnonportable-include-path]
#include "Event.h"
         ^~~~~~~~~
         "event.h"

Since -I/opt/local/include is the very first include flag being passed to the compiler (i.e. highest precedence), I would guess /opt/local/include/event.h (from port libevent) is getting picked up instead. A similar case insensitive filesystem issue was encountered in ticket:63877#comment:6.

comment:5 Changed 3 years ago by chrstphrchvz (Christopher Chavez)

Cc: chrstphrchvz added

comment:6 Changed 23 months ago by jhoyt4

Resolution: fixed
Status: assignedclosed

In 8b528349a8adb591352e8a81ec884764c7bb8e65/macports-ports (master):

qt5-qtwebkit: Fix build for Big Sur, Monterey, and Ventura with header conflicts

On case insensitive file systems, the include search path picks up header files from
macports before the local header files causing an error while compiling. This
modification places flags the known conflicting ports with conflicts_build.

Closes: #63877
Closes: #62027
Closes: #66177
Closes: #63566

[skip ci]

fun

comment:7 Changed 23 months ago by jhoyt4

to get this installed while a more permanent fix is identified do the following:

sudo port -f deactivate libarchive ruby31 ruby30 libevent
sudo port install qt5-qtwebkit
sudo port -f activate libarchive ruby31 ruby30 libevent

Depending on what is installed on your system, you may need to adjust the deactivate/reactivate commands.

Note: See TracTickets for help on using tickets.