[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Change from 3.23 to 3.24 - program doesn't work?

From: Mike Tubby
Subject: Re: Change from 3.23 to 3.24 - program doesn't work?
Date: Wed, 22 Jun 2022 20:52:26 +0100
User-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101 Thunderbird/91.10.0

On 22/06/2022 20:35, Gary E. Miller wrote:
Yo Mike!

On Wed, 22 Jun 2022 15:57:00 +0100
Mike Tubby <> wrote:

On 21/06/2022 19:11, Gary E. Miller wrote:
Yo Mike!

Care to share with everyone?
Its a work project, so I would have to remove some code to protect
the innocent.
You get paid, we work for free?  Does not seem fair.  Try to give back
in some way on the future.

I'll sanitise and post later ...

      22-06-2022 13:48:22 GMT [Info] *GPSD version: 3.22 API version:
3.14  App built against API version: 11.0*
      22-06-2022 13:48:22 GMT [Notice] GPSD API mis-match ... exiting!

the code that generates this error is in my reader:
That is NOT an error, read what it says.  You have an API mismatch, and
you either need to change your code for the new API, or stick with the
old gpsd.

I think we're at slightly crossed purposes.

I am using a matching gpsd version 3.22 and libgps from Debian (actually Devuan 4.0) and it works as long as I don't attempt to check.

If I try to check then the things I have to play with appear to be:

    1) the version_t structure; and
    2) the pair of #defines for API major and minor versions

What's in the version_t is:

    a) a string in  the release name which says "3.22"

    b) an integer called 'proto_major' which contains the value 3 but the comment next to this field in gps.h says its the API major (which is 11 in the #define)

    c) an integer called 'proto_minor' which contains the value 14 but the comment next to this field in gps.h says its the API minor (which is 0 in the #define)

So, what what a program has available at run-time I don't see how I can ever do a valid check since

    proto_major (value 3) != API major (value 11)  && proto_minor (value 14) != API minor (value 0)

Its like I am trying to compare apples with pears ... what am I missing here?

I fully understand that if I install matching versions of gpsd/libgps everything will work, but what comparisons do I perform to check if things are out of step, for example if gpsd has been upgraded but libgps has not ... ?

I am slightly confused ... is there:

      a) just an API version to check; or

      b) an API version *and* a protocol version to ckeck?
Only if you want your code to work.  But the versions mean something.
So you have to change your code to match the versions.

If you access a gpsd with its matching libgps, then most version
changes will be invisible to you.  Most of the remaining ones
will give you compile errors.  What remains will be a few visible
behavior change.

which appears to use "API version" interchangeably with "proto
version" ?
They tend to go in tandem, but they can differ.

Can you advise further?
Not much I can do without seeing your code.

Gary E. Miller Rellim 109 NW Wilmington Ave., Suite E, Bend, OR 97703  Tel:+1 541 382 8588

            Veritas liberabit vos. -- Quid est veritas?
     "If you can't measure it, you can't improve it." - Lord Kelvin

reply via email to

[Prev in Thread] Current Thread [Next in Thread]