Opened 5 years ago
Last modified 5 years ago
#60031 assigned defect
xca @2.2.0: RemoteSQL variant only adds dependencies
Reported by: | ryandesign (Ryan Carsten Schmidt) | Owned by: | lhaeger (Lothar Haeger) |
---|---|---|---|
Priority: | Normal | Milestone: | |
Component: | ports | Version: | 2.6.2 |
Keywords: | Cc: | ||
Port: | xca |
Description
The xca +RemoteSQL variant only adds dependencies. It does nothing else to tell the build system it's ok to use those dependencies, or more to the point, the port does nothing to tell the build system not to use those dependencies if the variant is not selected.
Change History (2)
comment:1 Changed 5 years ago by lhaeger (Lothar Haeger)
comment:2 Changed 5 years ago by lhaeger (Lothar Haeger)
Hmm, a bit more testing with today's hotfix update shows that the above described behavior only happens when installing with "-vst" as is requested in PRs. A simple "sudo port install xca" indeed enables remote databases if one or both qt5-*sql-plugin" ports are installed.
While this is no functional problem (additional feature unintentionally enabled) and breaks nothing, it causes inconsistent install results depending on install options (trace mode enabled or not) and Qt sql plugins being pre-installed or not.
Is there a way to hide those Qt plugins from the build system via PortFile?
Base issue is that all xca really needs are the odbc drivers for MySQL and PostgreSQL but the Qt sql plugins pull via dependencies both full-blown database server packages including their dependencies instead. This more than doubles the build time and the size of installed software. Other ideas how to work around that?
The qt5 portgroup and make/configure seem to be smart enough to do all the required magic without the need for explicit code in the PortFile. Results are as expected in my testing:
Building the non-variant with the additional qt5 plugins already installed still results in a binary NOT supporting remote databases (File - Open remote Database... is disabed), while the +RemoteSQL variant pulls all the dependencies (QT sql plugins and from there mariadb and postgesql + some more) and results in the above mentioned menu item to become active and usable.