packaging changes:
- switch to github for distfile
- switch from configure to qmake
- depend on libusb1 and zlib (and add pkg-config as a tool)
- drop patches to configure
- add patches to fix portability issues in qmake support
upstream changes (No NEWS provided, but skimming git log):
- drop autoconf
- retire some formats
- Update standards to c++17, Qt >= 5.12, MSVC >= 2017
- lots of bugfixes and minor improvements
pkglint -r --network --only "migrate"
As a side-effect of migrating the homepages, pkglint also fixed a few
indentations in unrelated lines. These and the new homepages have been
checked manually.
This switches to qt5 (from qt4).
Upstream changes since 1.5.2 in 2015 are basically a very large number
of bugfixes and minor improvements, as well as modernizing
dependencies.
See https://www.gpsbabel.org/changes.html for details.
This switch is meant to be used by packages requiring an implementation of the
former libusb (as in devel/libusb). The original implementation can be
chosen by setting LIBUSB_TYPE to "native".
The alternative implementation libusb-compat (as in devel/libusb-compat) wraps
libusb1 (in devel/libusb1). This implementation can be chosen by setting
LIBUSB_TYPE to "compat". On NetBSD, it has the advantage of not requiring root
privileges to locate and use USB devices without a kernel driver.
This second part switches packages using libusb to this framework. It does not
change compilation options or dependencies at this point.
Compile-tested on most packages affected and available on NetBSD/amd64.
One mismatched digest found in geography/libmemphis02:
# package libmemphis02
recorded SHA1 (memphis-0.2.3.tar.gz) = dbc2f61e49b996dc9ca91df0de9a08eb7adbfa9b
calculated SHA1 (memphis-0.2.3.tar.gz) = 85993bce12c3616fcf6e7682a70b9605883edec2
No changes were made to the libmemphis02 distinfo file
Otherwise, existing SHA1 digests verified and found to be the same on
the machine holding the existing distfiles (morden). All existing
SHA1 digests retained for now as an audit trail.
The upstream distribution tries to use qt as a framework, but pkgsrc
provides it as a normal package. This commit comments out the special
case logic in configure that uses "-framework QtCore" on OS X.
(configure.in is patched too, because that's the source file, even
though it's not rebuilt.)
pkgsrc changes: add bash exorcism for testo
upstream changes: Depend on QT, and much rewriting
Summary of upstream changes:
1.5.2
Add read support for Google's "gx:track" extension to KML.
Ralf Horstmann adds Mynav Map Manager and VDO GP7.
White B. Coot adds F90G support.
Zingo Andersonadds Energympro sport watches.
Support altitude in mainnav.
1.5.1
Add options to discard filter to discard points based on regular expressions.
Experimental support for for faster Garmin serial download speeds.
1.5.0
GPSBabel 1.4.x has had a good run. That series has been downloaded
over a million times and is widely used by thousands of people a
day. But, like many projects entering their teens (I started the code
that became GPSBabel in 2001) we've accumulated our share of technical
debt and the world around us has changed. GPSBabel 1.5 is about
revisiting some of those early, fundamental (and, sometimes, dumb)
decisions and rebuilding much of it from the foundation up. We've
collected hundreds of changes spanning about a hundred thousand lines
of code and we're presenting GPSBabel 1.5.
Of course, if you're an existing user, you're looking for new formats
and fixes. We happen to have those. Freshly added:
Mapbar
Garmin G1000
Google Direction API
MTK Locus
Lowrance USR v4
GlobalSat DG-200
Humminbird v4
We have fixes:
GUI now lists help button on main screen and options pages.
TODO: list more.
By far, our deepest cutting changes are in our infrastructure.
We changed the implementation language from C89 to C++03. This lets
our developers use modern, object-oriented programming and modern
libraries.
We moved to the open source Qt toolkit. We've successfully used Qt in
the GUI for over five years. This lets us focus on GPSBabel itself and
not implementi ng our own OS abstractions from scratch, robust string
and time handling, and much more.
We replaced time from our old representation that used the number of
seconds since 1/1/1970 and had a fractional seconds component bolted
onto the side (that was only sometimes used) with a QDateTime which
allows us to represent time within millisecond resolution from Jan 2,
4713 BCE to sometimes in the year 11 million. While that sounds crazy
(it is!) this lets things like the track filter not mangle data
collected by your 10Hz GPS and your placemarks can have dates that,
say, buildings were built or cities were founded without worrying
about Jan 1, 1970.
We replaced all of our XML (GPX, KML, Geo, etc) readers with Qt
readers. This reduces the number of data-specific bugs you're likely
to encounter. No longer will a waypoint named "]]" (it happens!) crash
your data. We're much more robust when reading extended namespaces.
We replaced our own XML writers with Qt's XML serializers. This solves
a whole class of data-specific issues with specific fields containing
data like "<" or "[[<CDATA" (it happens!) or international characters
or such.
Reference counted, dynamic strings are now used in the majority of our
key data structures, eliminating leaks and allowing multiple copies of
the same data to share a copy in memory, lessening the amount of
memory we use.
A lot of emphasis as been placed on sound engineering. GPSBabel now
has automated tests covering hundreds of thousands of operations to
check against memory leaks, overwrites, unused code, uninitialized
data use and so on. We believe this to be our highest quality release
ever.
As a result of all this remodelling, some of our formats that our
statistics showed were infrequently used and that had little to no
support traffic in many years were removed. Most of these were formats
for Palm OS, were never mentioned after they were initially added, or
are for companies that have been out of business for years or that
have moved to better formats, like GPX. These include:
Deprecated formats - Palm/OS
cetus
copilot
coto
gcdb
geoniche
gpilots
gpspilot
mag_pdb
magnav
palmdoc
pathaway
quovadis
Others
axim_gpb
coastexp
hsandv
ktf2
kwf2
msroute
msroute1
psp
sportsim
The patch to help serial garmins with prolific adaptors is retained,
but it's perhaps a bit dicey because upstream code has changed a bit.
Upstream NEWS content from web pages:
1.4.4:
Add MotoActiv format. Thank you, Dan Brown.
Kris Beevers contributes Lowrance USR v4 support.
Allow EXIF to represent altitude below MSL.
Allow reading known invalid (sigh) data in NMEA, such as that
written by Canon Camera/GPS devices, probably including:
Canon GPS shoes
GP-E1
GP-E2
Powershot models with GPS capabilities
S100
SX260
HS D20
Enhance Garmin Fit support for latest firmware.
Skytraq fixes.
Steve Eckert adds line styling to the National Geographic TPO3 reader.
Erik Krause improves German translations.
OS X Mountain Lion fixes.
1.4.3 beta:
Fix translations for GUI on Windows. German, Italian, Hungarian,
Russian, and a few others should now work. If your language is there,
please contribute a translation. It's easy and doesn't require you to
program.
A new writer for geocaches in KML (Google Earth) provide better
visualizations of high-density areas.
Many KML improvements including validation fixes, aviations units,
fixes for min/max alt.
Adds iblue757 GPS support.
Add support for Holux M-1200E GPS.
Add the Minihomer variant of Skytraq.
Add FlySight GPS support.
Add Garmin FIT support.
Add Land Air Sea format for GPS Tracking Key Pro.
Many Navicache improvements.
Fixes to track filter to not mangle tracks recorded at low speed when
segement filter is applied.
etrex vista HCx.)
Summary of Changes:
(details at http://www.gpsbabel.org/news/20100620.html)
Many new formats.
New Features
* KML writer now sets the extents of the time sliders
automatically for Google Earth 5.0, can now generate gx:Track
for Google Earth 5.2.
* Improved handling of from Garmin extensions in GPX including
ambient temperature, depth, heartrate, and cadence.
* Reworked Garmin transparency device matching to work with more
devices such as Nuvi 500 and Dakota
* Add 'erase_only' option to dg-100.
* GDB module now handles Garmin Basecamp files, too.
* Try to preserve Ozi icon data in waypoints.
* Holux GR245 waypoint now supported.
* GUI detects host OS serial ports.
* Add HDOP and VDOP to VPL 900.
* Added track segment support for many formats, including GPX,
delbin, and Garmin protocol.
* Added track->tracksegment conversion filter option to track
filter.
* Convert tracks to courses on Garmin fitness upload.
Major Fixes
* Fix memory corruption in gbfile when line sizes were a multiple
of internal buffer sizes.
* Globalsat: flush receive on startup to make BT-335 more
reliable.
* Add Mega event icon, Whereigo cache type to GPX and KML.
* Tweak Earth 5's realtime KML to include end of time window.
* Several improvements to Garmin GPI reader.
* Read and write fix information in delgpl format.
* Garmin Venture HC and Legend H now works better on Mac and
Linux. (especially Japanese models.)
* Several improvements for OS/X Snow Leopard.
* Alllow character set overwrite when sending to USB Garmins.
* When writing Garmin routes, don't duplicate waypoints for via
points.
around what is believed to be bugs in Prolific USB convertors. Point
to pkgsrc-hosted distfile because upstream distfile, although
LICENSE=gnu-gpl-v2 is apparently only available via a web form.
Full changes available at
http://www.gpsbabel.org/changes.html
Notable changes in 1.3.6:
Fix writing waypoint names under 6 characters to old serial Garmins.
Notable changes in 1.3.5:
Read waypointsw from jpg/exif.
Add support for osm (openstreetmap) format files.
Set computer's clock from GARMIN.