Well, those look fine.
I did some ddd work with the .deb package from the .org site.
What I found was that there seemed to a be a problem with the gps.h file, or the definitions within.
if(m_gps_data->set & VERSION_SET)
On your package, machine code indicates that the constant VERSION_SET is 0x800. The test fails, causing forever hang.
On my local builds, VERSION_SET is 0x1000000, as defined in gps.h (1llu << 28) or (1 with 7 zeros)
There could be a name collision
, so that VERSION_SET is being redefined by something after gps.h is included.
This really becomes a problem with 12.04, since it autostarts gpsd if you plug
in a USB GPS receiver.
I can work around it in code, but I think we need to better understand what is happening.
Question: Are you fairly sure that the .deb package online was built with the gps.h files you have attached?
Maybe you should build another package, today, and try 12.04 again with libgps. If you upload to .org site as a special name, I'll download and try my setup again.
If it fails for you, try to edit nmea
.cpp, line 588 to:
if(m_gps_data->set & 0x10000000)
and try again.