Opened 5 years ago

Closed 4 years ago

#52531 closed defect (fixed)

qt5-qtwebengine: unknown class name 'CBCentralManagerDelegate'

Reported by: skymoo (Adam Mercer) Owned by: MarcusCalhoun-Lopez (Marcus Calhoun-Lopez)
Priority: Normal Milestone:
Component: ports Version:
Keywords: Cc: mkae (Marko Käning), vs-never@…, RJVB (René Bertin), andrewpaulreeves (Andrew Reeves), tim-rohrer (tim.rohrer), slarew
Port: qt5-qtwebengine

Description (last modified by skymoo (Adam Mercer))

Getting the following build error with qt5-qtwebengine on El Capitan, with Xcode8:

:info:build /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_aqua_qt5/qt5-qtwebengine/work/qtwebengine-opensource-src-5.6.1/src/3rdparty/chromium/device/bluetooth/bluetooth_low_energy_discovery_manager_mac.mm:46:16: error: unknown class name 'CBCentralManagerDelegate'; did you mean 'CBCentralManager'?
:info:build     : NSObject<CBCentralManagerDelegate> {
:info:build                ^~~~~~~~~~~~~~~~~~~~~~~~
:info:build                CBCentralManager
:info:build /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_aqua_qt5/qt5-qtwebengine/work/qtwebengine-opensource-src-5.6.1/src/3rdparty/chromium/base/mac/sdk_forward_declarations.h:44:8: note: 'CBCentralManager' declared here
:info:build @class CBCentralManager;
:info:build        ^

Full build log is attached

Attachments (2)

main.log (172.0 KB) - added by skymoo (Adam Mercer) 5 years ago.
patch-qwe-disable-bt-560.diff (2.4 KB) - added by RJVB (René Bertin) 5 years ago.

Download all attachments as: .zip

Change History (27)

Changed 5 years ago by skymoo (Adam Mercer)

Attachment: main.log added

comment:1 Changed 5 years ago by skymoo (Adam Mercer)

Description: modified (diff)

comment:2 Changed 5 years ago by mkae (Marko Käning)

Cc: mk@… added

Cc Me!

comment:3 Changed 5 years ago by vs-never@…

Cc: vs-never@… added

Cc Me!

comment:4 Changed 5 years ago by slarew

Cc: stephen@… added

Cc Me!

comment:5 Changed 5 years ago by Veence (Vincent)

Confirmed, got the same here.

comment:6 Changed 5 years ago by mkae (Marko Käning)

Cc: RJVB added
Version: 2.3.4

RJVB, what did you do in qt5-kde to fix this?

comment:7 Changed 5 years ago by RJVB (René Bertin)

Did you even build QWE on 10.11? This doesn't ring a bell for me at all.

I suppose an answer can be found via google, but I'm currently grappling with QWE 5.7.0 ...

I do see that that version introduces some changes but still uses NSObject<CBCentralManagerDelegate> but presumable defines that @protocol in sdk_forward_declarations.h :

@protocol CBCentralManagerDelegate;

@protocol CBCentralManagerDelegate<NSObject>
- (void)centralManagerDidUpdateState:(CBCentralManager*)central;
- (void)centralManager:(CBCentralManager*)central
    didDiscoverPeripheral:(CBPeripheral*)peripheral
        advertisementData:(NSDictionary*)advertisementData
                     RSSI:(NSNumber*)RSSI;
@end

comment:8 Changed 5 years ago by mkae (Marko Käning)

Oh, realized only now, that this also fails for qt5-kde-qtwebengine when I built kf5-baseapps...

comment:9 Changed 5 years ago by andrewpaulreeves (Andrew Reeves)

Cc: andrewpaulreeves added

comment:10 Changed 5 years ago by ken-cunningham-webuse

as you point out, it seems to be getting hung up on the bluetooth code. When my simplistic attempts to repair the bluetooth code in the offending file failed, I tried just disabling bluetooth in the build

    qtconnectivity {
        79b26da05686ec6cc57188e87383f9f97c309f10
        5a35abf6b515091e4b181b78d0ed82249972bf93f227d52c70531417c448d919
        ""
        ""
        "qtbase qtdeclarative qtxmlpatterns"
#        {"Qt Bluetooth" "Qt NFC"}
        {"Qt NFC"}
        ""
        "variant overrides: "
   }

but that didn't work. Chromium tried to build it anyway. I noticed this

-DDEVICE_BLUETOOTH_IMPLEMENTATION

in the build line, and that seemed ripe to be turned off, but I couldn't locate the right place to disable it.

comment:11 Changed 5 years ago by RJVB (René Bertin)

You only handled the dependency declaration here. There may be a simple configure option to disable bluetooth support, and in that case you can add it to the port's configure.args definition . Otherwise you'll have to search the build system files and create a patch for those.

Oh, and you were attacking the qtconnectivity subport. That's not the one you want for this issue. Much as I wonder why qtwebengine would need to have its own lowlevel bluetooth stuff, I can see some one might want to use QtConnectivity to do BT-related things.

Last edited 5 years ago by RJVB (René Bertin) (previous) (diff)

comment:12 Changed 5 years ago by tim-rohrer (tim.rohrer)

Cc: tim-rohrer added

comment:13 Changed 5 years ago by josephsacco

I see the same issues when attempting to build on an iMac running OS X 10.12.1. I also noticed that version 5.7 of qt5 is now the current version. Maybe it is time to update.

-Joseph

comment:14 Changed 5 years ago by RJVB (René Bertin)

Qt 5.6 is a LTS release; issues like this ought to be addressed in the next point release.

You're not wrong though, 5.6 will not see new development/features but as far as QWE is concerned we should wait at least for 5.7.1 and maybe even 5.8 .

Chromium has lots of (hidden) configure options, but I don't see anything to disable bluetooth. I don't think it'd be a big loss to disable it (for the moment), but that'd require hacking into the build system. I'm attaching an *untested* patch which aims to do that, please apply it and see how that affects the build.

Changed 5 years ago by RJVB (René Bertin)

comment:15 Changed 5 years ago by tim-rohrer (tim.rohrer)

Noob question. Is that patch already applied to the source port install downloads to build QWE? Or would we need to apply the diff locally before building?

comment:16 Changed 5 years ago by RJVB (René Bertin)

No, this is a patch I just made; you'll have to apply it yourself using something like

> sudo port clean qt5-qtwebengine
> sudo port -no patch qt5-qtwebengine
> sudo sh -c "cd `port work qt5-qtwebengine`/qtwebengine* ; patch -Np0 -i /path/to/patch-qwe-disable-bt-560.diff"
> sudo port -no build qt5-qtwebengine
> sudo port install qt5-qtwebengine

comment:17 Changed 5 years ago by slarew

Cc: slarew added

comment:18 Changed 5 years ago by slarew

Cc: mkae, vs-never@hotmail.com, slarew, RJVB, andrewpaulreeves, tim-rohrer, slarewmkae, vs-never@hotmail.com, RJVB, andrewpaulreeves, tim-rohrer, slarew

comment:19 Changed 5 years ago by slarew

Cc: slarew removed

comment:20 Changed 5 years ago by slarew

Cc: slarew added

comment:21 Changed 5 years ago by MarcusCalhoun-Lopez (Marcus Calhoun-Lopez)

Status: newaccepted

14c4198/macports-ports added qtwebengine patches.
Did this by chance fix the problem?

comment:22 Changed 5 years ago by skymoo (Adam Mercer)

Looks like it did, at least on Sierra, I'll check my El Capitan system when I get into work.

comment:23 Changed 5 years ago by skymoo (Adam Mercer)

Looks like this did the trick on El Capitan as well.

comment:24 Changed 5 years ago by tim-rohrer (tim.rohrer)

I was able to install the py35-pyqt5. Thank you!

comment:25 Changed 4 years ago by MarcusCalhoun-Lopez (Marcus Calhoun-Lopez)

Resolution: fixed
Status: acceptedclosed
Note: See TracTickets for help on using tickets.