https://bugs.kde.org/show_bug.cgi?id=362736

            Bug ID: 362736
           Summary: Compile vs. runtime symbols discrepancy
           Product: frameworks-networkmanager-qt
           Version: unspecified
          Platform: Other
                OS: Linux
            Status: UNCONFIRMED
          Severity: normal
          Priority: NOR
         Component: general
          Assignee: jgrul...@redhat.com
          Reporter: palo.k...@gmail.com
                CC: lamar...@kde.org, lukas.ti...@merlin.cz

Currently I'm facing a downstream/packaing problem with the networkmanager-qt.
Please, take a look on this scenario.

Consider the NetworkManager-qt code:
#if NM_CHECK_VERSION(1, 2, 0)
    /**
     * @return If TRUE, indicates the NetworkManager plugin for the device is
likely
     * missing or misconfigured.
     * @since 5.14.0
     */
    bool nmPluginMissing() const;
#endif

If the binary/library package was compiled against networkmanager < 1.2.0, then
the nmPluginMissing() symbol is not present in the library.

Fair enough... so we can add the very same conditional into our code:
#if NM_CHECK_VERSION(1, 2, 0)
    connect(device.data(), &NetworkManager::Device::nmPluginMissingChanged,
this, &NmModelPrivate::onDeviceUpdated);
#endif  

But if we are compiling our code on a system with networkmanager >= 1.2.0 (e.g.
the up-to-date arch, debian unstable...), we are getting the linker error about
missing nmPluginMissing() symbol.

One of the solution is to give the networkmanager-qt a *stong*  dependency on
the networkmanager (version = build time version).

But I thing it's also worth to report this here as the networkmanager-qt should
state/define presence of symbols on its own and not based on current (compile
time) presence of networkmanager. 

Thanks.

-- 
You are receiving this mail because:
You are watching all bug changes.

Reply via email to