The new version of sci-geosciences/gpsd, 3.17-r1, seems to ignore use options found in /etc/portage/package.use. The prior version, 3.17, works correctly. This is most easily demonstrated with equery. Contents of "/etc/portage/package.use/gpsd": sci-geosciences/gpsd -X -cxx ntp GPSD_PROTOCOLS: nmea0183 ublox passthrough -aivdm -ashtech -earthmate -evermore -fv18 -garmin -garmintxt -gpsclock -isync -itrax -mtk3301 -navcom -ntrip -oceanserver -oncore -rtcm104v2 -rtcm104v3 -shm -sirf -skytraq -superstar2 -tnt -tripmate -tsip Result of "equery uses sci-geosciences/gpsd-3.17": * Found these USE flags for sci-geosciences/gpsd-3.17: U I - - X : Add support for X11 - - bluetooth : Enable Bluetooth Support - - cxx : Build support for C++ (bindings, extra libraries, code generation, ...) - - dbus : export gpsd data over dbus connections - - debug : Enable extra debug codepaths, like asserts and extra output. If you want to get meaningful backtraces see https://wiki.gentoo.org/wiki/Project:Quality_Assurance/Backtraces - - gpsd_protocols_aivdm : AIVDM protocol support - - gpsd_protocols_ashtech : Ashtech protocol support - - gpsd_protocols_earthmate : Earthmate protocol support - - gpsd_protocols_evermore : EverMore protocol support - - gpsd_protocols_fury : Jackson Labs Fury and Firefly support - - gpsd_protocols_fv18 : FV-18 protocol support - - gpsd_protocols_garmin : Garmin protocol support - - gpsd_protocols_garmintxt : Garmin Simple Text protocol support - - gpsd_protocols_geostar : Geostar Protocol support - - gpsd_protocols_gpsclock : GPSclock protocol support - - gpsd_protocols_isync : Isync protocol support - - gpsd_protocols_itrax : iTrax protocol support - - gpsd_protocols_mtk3301 : MTK-3301 protocol support - - gpsd_protocols_navcom : Navcom protocol support + + gpsd_protocols_nmea0183 : NMEA protocol support - - gpsd_protocols_nmea2000 : NMEA2000/CAN support - - gpsd_protocols_ntrip : NTRIP protocol support - - gpsd_protocols_oceanserver : OceanServer protocol support - - gpsd_protocols_oncore : OnCore protocol support + + gpsd_protocols_passthrough : Pass through JSON data - - gpsd_protocols_rtcm104v2 : RTCM104V2 protocol support - - gpsd_protocols_rtcm104v3 : RTCM104V3 protocol support - - gpsd_protocols_sirf : SiRF protocol support - - gpsd_protocols_skytraq : Skytraq protocol support - - gpsd_protocols_superstar2 : SuperStarII protocol support - - gpsd_protocols_tnt : True North protocol support - - gpsd_protocols_tripmate : Tripmate protocol support - - gpsd_protocols_tsip : Trimble TSIP protocol support + + gpsd_protocols_ublox : U-Blox Protocol support + + ipv6 : Add support for IP version 6 - - latency_timing : support latency timing information + + ncurses : Add ncurses support (console display library) + + ntp : Enable net-misc/ntp shared memory interface and PPS kernel support for GPS time - - python : Add optional support/bindings for the Python language + + python_targets_python2_7 : Build with Python 2.7 - - qt4 : Add support for the Qt GUI/Application Toolkit version 4.x + + shm : export gpsd over shared memory + + sockets : export gpsd over unix sockets - - static : !!do not set this during bootstrap!! Causes binaries to be statically linked instead of dynamically - - test : Workaround to pull in packages needed to run with FEATURES=test. Portage-2.1.2 handles this internally, so don't set it in make.conf/package.use anymore - - udev : Enable virtual/udev integration (device discovery, power and storage device support, etc) - - usb : Add USB support to applications that have optional USB support (e.g. cups) Result of "equery uses sci-geosciences/gpsd-3.17-r1": * Found these USE flags for sci-geosciences/gpsd-3.17-r1: U I - + X : Add support for X11 - - bluetooth : Enable Bluetooth Support - + cxx : Build support for C++ (bindings, extra libraries, code generation, ...) - - dbus : export gpsd data over dbus connections - - debug : Enable extra debug codepaths, like asserts and extra output. If you want to get meaningful backtraces see https://wiki.gentoo.org/wiki/Project:Quality_Assurance/Backtraces - + gpsd_protocols_aivdm : AIVDM protocol support - + gpsd_protocols_ashtech : Ashtech protocol support - + gpsd_protocols_earthmate : Earthmate protocol support - + gpsd_protocols_evermore : EverMore protocol support - - gpsd_protocols_fury : Jackson Labs Fury and Firefly support - + gpsd_protocols_fv18 : FV-18 protocol support - + gpsd_protocols_garmin : Garmin protocol support - + gpsd_protocols_garmintxt : Garmin Simple Text protocol support - - gpsd_protocols_geostar : Geostar Protocol support - + gpsd_protocols_gpsclock : GPSclock protocol support - + gpsd_protocols_isync : Isync protocol support - + gpsd_protocols_itrax : iTrax protocol support - + gpsd_protocols_mtk3301 : MTK-3301 protocol support - + gpsd_protocols_navcom : Navcom protocol support + - gpsd_protocols_nmea0183 : NMEA protocol support - - gpsd_protocols_nmea2000 : NMEA2000/CAN support - + gpsd_protocols_ntrip : NTRIP protocol support - + gpsd_protocols_oceanserver : OceanServer protocol support - + gpsd_protocols_oncore : OnCore protocol support + - gpsd_protocols_passthrough : Pass through JSON data - + gpsd_protocols_rtcm104v2 : RTCM104V2 protocol support - + gpsd_protocols_rtcm104v3 : RTCM104V3 protocol support - + gpsd_protocols_sirf : SiRF protocol support - + gpsd_protocols_skytraq : Skytraq protocol support - + gpsd_protocols_superstar2 : SuperStarII protocol support - + gpsd_protocols_tnt : True North protocol support - + gpsd_protocols_tripmate : Tripmate protocol support - + gpsd_protocols_tsip : Trimble TSIP protocol support + + gpsd_protocols_ublox : U-Blox Protocol support + + ipv6 : Add support for IP version 6 - - latency_timing : support latency timing information + + ncurses : Add ncurses support (console display library) + - ntp : Enable net-misc/ntp shared memory interface and PPS kernel support for GPS time - - python : Add optional support/bindings for the Python language + + python_targets_python2_7 : Build with Python 2.7 - - qt5 : Add support for the Qt 5 application and UI framework + - shm : export gpsd over shared memory + - sockets : export gpsd over unix sockets - - static : !!do not set this during bootstrap!! Causes binaries to be statically linked instead of dynamically - - test : Workaround to pull in packages needed to run with FEATURES=test. Portage-2.1.2 handles this internally, so don't set it in make.conf/package.use anymore - - udev : Enable virtual/udev integration (device discovery, power and storage device support, etc) - - usb : Add USB support to applications that have optional USB support (e.g. cups)
I don't see that, and nothing in the diff between 3.17 and -r1 would indicate any change other than qt4 -> qt5. $ emerge -vp =gpsd-3.17-r1
$ grep -R gpsd /etc/portage/package.use
marvin /etc/portage/package.use # grep -R gpsd /etc/portage/package.use /etc/portage/package.use/gpsd:sci-geosciences/gpsd -X -cxx ntp GPSD_PROTOCOLS: nmea0183 ublox passthrough -aivdm -ashtech -earthmate -evermore -fv18 -garmin -garmintxt -gpsclock -isync -itrax -mtk3301 -navcom -ntrip -oceanserver -oncore -rtcm104v2 -rtcm104v3 -shm -sirf -skytraq -superstar2 -tnt -tripmate -tsip marvin /etc/portage/package.use #
marvin ~ # emerge -vp =gpsd-3.17-r1 These are the packages that would be merged, in order: Calculating dependencies... done! [ebuild U ~] sci-geosciences/gpsd-3.17-r1:0/23::gentoo [3.17:0/23::gentoo] USE="ipv6 ncurses ntp shm sockets -X -bluetooth -cxx -dbus -debug -latency_timing -python -qt5% -static {-test} -udev -usb (-qt4%)" GPSD_PROTOCOLS="nmea0183 passthrough ublox -aivdm -ashtech -earthmate -evermore -fury -fv18 -garmin -garmintxt -geostar -gpsclock -isync -itrax -mtk3301 -navcom -nmea2000 -ntrip -oceanserver -oncore -rtcm104v2 -rtcm104v3 -sirf -skytraq -superstar2 -tnt -tripmate -tsip" PYTHON_TARGETS="python2_7" 0 KiB Total: 1 package (1 upgrade), Size of downloads: 0 KiB marvin ~ #
Created attachment 511684 [details] gpsd-3.17-r1 emerge output
Pretty interesting, yes? Emerge -p says one thing, equery says another. And if you remove the -p from emerge, then it attempts to builds, but ignoring (at a minimum) the cxx use flag. It fails in c++ build/testing, which should not occur at all. See attachment https://bugs.gentoo.org/attachment.cgi?id=511684
It's triggered by the use of "qt_versioned=5" to scons. Without this option, it builds fine and with this option it fails building c++ code. "qt_versioned=4" works.
The reason that "qt_versioned=4" works is because there there is no qt4 on the system. Scons explicitly checks for the existence of the specified libraries and disables qt if they are not present.
Thanks for your report. It seems that the libQgpsmm switch that was used for qt4 and qt5 simply is ignored if qt_versioned=5 is set _before_, and in addition to that, build of libQgpsmm requires cxx. I'm not prepared to dig deeper into scons - USE=cxx does not save any dep so off it goes, rather than adding REQUIRED_USE.
The bug has been closed via the following commit(s): https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=5760ed4e60db223c25efdee994c99805648d9d11 commit 5760ed4e60db223c25efdee994c99805648d9d11 Author: Andreas Sturmlechner <asturm@gentoo.org> AuthorDate: 2017-12-28 15:34:01 +0000 Commit: Andreas Sturmlechner <asturm@gentoo.org> CommitDate: 2017-12-28 15:34:43 +0000 sci-geosciences/gpsd: Drop USE=cxx, fix USE=qt5 Closes: https://bugs.gentoo.org/642154 Package-Manager: Portage-2.3.19, Repoman-2.3.6 sci-geosciences/gpsd/gpsd-3.17-r1.ebuild | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-)
Fix confirmed. Thank you.