Subject: Upcoming timekeeping failure in gpsd
From: Leo Famulari <[email-masked]>
To: [email-masked]
Date: Sun, 1 Aug 2021 17:27:06 -0400
List-Id: <debbugs-submit.debbugs.gnu.org>

In October, the date reported by gpsd will jump back by 1024 weeks:

https://gitlab.com/gpsd/gpsd/-/issues/144

This will be fixed in the upcoming 3.23 release:

https://gitlab.com/gpsd/gpsd/-/issues/144#note_636906629

This is a serious problem because gpsd is commonly used as a time source
for network time servers.

I tried updating our package from 3.21 to 3.22, to help prepare for this
important update, but the build fails during the configure portion of
the SCons 'build' phase as shown below. I'm not familiar with SCons so
I'm not sure which is the salient error.

------
starting phase `build'
scons: Reading SConscript files ...
scons version: 3.0.4
scons is running under Python version: 3.8.2.final.0
gpsd version: 3.22
This system is: linux
Checking whether the C compiler works... yes
Checking if compiler accepts -pthread... no
Checking whether the C++ compiler works... yes
Checking for C header file curses.h... no
Turning off ncurses support, curses.h not found.
Checking pkg-config for libusb-1.0... yes
Checking for C library librt... no
Checking for C library libnsl... no
Checking for C library libsocket... no
Checking for C library libm... no
Checking for C library libthr... no
Checking pkg-config for dbus-1... yes
Checking pkg-config for bluez... yes
Checking for C type in_port_t... no
Did not find in_port_t typedef, assuming unsigned short int
Checking whether SUN_LEN is declared... yes
Checking for C header file linux/can.h... no
You do not have kernel CANbus available.
Checking if compiler is C11... no
Checking for C header file libkern/OSAtomic.h... no
No memory barriers - SHM export and time hinting may not be reliable.
Checking whether __ORDER_BIG_ENDIAN__ is declared... yes
Checking whether __ORDER_LITTLE_ENDIAN__ is declared... yes
Checking whether __BYTE_ORDER__ is declared... yes
Your compiler has built-in endianness support.
Checking for C header file arpa/inet.h... no
Checking for C header file netdb.h... no
Checking for C header file netinet/in.h... no
Checking for C header file netinet/ip.h... no
Checking for C header file sys/sysmacros.h... yes
Checking for C header file sys/socket.h... no
Checking for C header file sys/un.h... yes
Checking for C header file syslog.h... yes
Checking for C header file termios.h... yes
Checking for C header file winsock2.h... no
Checking if sizeof(time_t) is 64 bits... no
WARNING: time_t is too small.  It will fail in 2038
Checking for C function cfmakeraw()... no
Checking for C function clock_gettime()... no
Checking for C function daemon()... no
Checking for C function fcntl()... no
Checking for C function fork()... no
Checking for C function getopt_long()... no
Checking for C function gmtime_r()... no
Checking for C function inet_ntop()... no
Checking for C function strlcat()... no
Checking for C function strlcpy()... no
Checking for C function strptime()... no
Checking for C function sincos()... no
Checking for C function __sincos()... no
Checking for C header file sys/timepps.h... no
Forcing magic_hat=no since RFC2783 API is unavailable
Checking whether TIOCMIWAIT is declared... no
WARNING: Neither TIOCMIWAIT (PPS) nor RFC2783 API (KPPS) is available.
Checking for C library libbluetooth... no
libbluetooth not found, bluez cannot be enabled.
Checking for C library libdbus-1... no
libdbus-1 not found, dbus_export cannot be enabled.
Checking that xsltproc can make man pages... no
Neither xsltproc nor xmlto found, documentation cannot be built.
Checking pkg-config for Qt5Network... yes
Checking if compiler accepts -Wall... no
Checking if compiler accepts -Wcast-align... no
Checking if compiler accepts -Wextra... no
Checking if compiler accepts -Wimplicit-fallthrough... no
Checking if compiler accepts -Wmissing-declarations... no
Checking if compiler accepts -Wmissing-prototypes... no
Checking if compiler accepts -Wno-missing-field-initializers... no
Checking if compiler accepts -Wno-uninitialized... no
Checking if compiler accepts -Wpointer-arith... no
Checking if compiler accepts -Wreturn-type... no
Checking if compiler accepts -Wstrict-prototypes... no
Checking if compiler accepts -Wvla... no
Checking whether coverage program exists...no
Checking whether cppcheck program exists...no
Checking whether dia program exists...no
Checking whether flake8 program exists...no
Checking whether pycodestyle program exists...no
Checking whether pylint program exists...no
Checking whether scan-build program exists...no
Checking whether tar program exists.../gnu/store/v6f44zccwh9z5zk3pjlywjybbi8n2hjh-tar-1.32/bin/tar
Checking whether valgrind program exists...no
Checking whether xmllint program exists...no
Program coverage not found -- skipping Python coverage
Program cppcheck not found -- skipping cppcheck checks
Program dia not found -- not rebuiding cycle.svg.
Program flake8 not found -- skipping flake8 checks
Program pycodestyle not found -- skipping pycodestyle checks
Program pylint not found -- skipping pylint checks
Program scan-build not found -- skipping scan-build checks
Program valgrind not found -- skipping valgrind checks
Program xmllint not found -- skipping xmllint checks
Checking whether python program exists.../gnu/store/f8s95qc6dfhl0r45m70hczw5zip0xjxq-python-wrapper-3.8.2/bin/python
System PYTHONPATH='/gnu/store/fyk6x25fpbg15q3d27bnzywk12hp7hql-scons-3.0.4/lib/python3.8/site-packages:/gnu/store/9w9jvy3bgjg4qaqmrij01nbppiccqr7c-python-3.8.2/lib/python3.8/site-packages:/gnu/store/9w9jvy3bgjg4qaqmrij01nbppiccqr7c-python-3.8.2/lib/python3.8/site-packages:/gnu/store/180s697y50pvfly42xphwngd0669jlwj-python-pycairo-1.19.1/lib/python3.8/site-packages:/gnu/store/frj6yg9316ihw5k7yxm3gndzfv0yy3br-python-pygobject-3.34.0/lib/python3.8/site-packages:/gnu/store/ci0f79qsippv8rqcjfgfxyds28iy4nc3-python-pyserial-3.5/lib/python3.8/site-packages'
Ensure your PYTHONPATH includes /gnu/store/5cycbh8cha5l5sylcbpa5n89al5m0vk5-gpsd-3.22/lib/python3.8/site-packages/
Checking Python config vars... ok
Checking Python target version... 3.8
Checking Python module serial (pyserial)... 
WARNING: ubxtool and zerk are missing optional runtime module serial
Checking Python module cairo (pycairo)... 
WARNING: Python module cairo (pycairo) not found.
Checking Python module gi (pygobject)... 
WARNING: Python module gi (pygobject) not found.
Checking pkg-config for gtk+-3.0... yes
WARNING: xgps and xgpsspeed are missing runtime dependencies
Checking Python module matplotlib... 
WARNING: gpsplot is missing required runtime module matplotlib
Altered configuration variables:
nmea2000 = False (default True): NMEA2000/CAN support
ncurses = False (default True): build with ncurses
magic_hat = False (default True): special Linux PPS hack for Raspberry Pi et al
prefix = /gnu/store/5cycbh8cha5l5sylcbpa5n89al5m0vk5-gpsd-3.22 (default /usr/local): installation directory prefix
python_libdir = /gnu/store/5cycbh8cha5l5sylcbpa5n89al5m0vk5-gpsd-3.22/lib/python3.8/site-packages (default ): Python module directory prefix
qt_versioned = 5 (default ): version for versioned Qt
WARNING: ncurses not found, not building cgps or gpsmon.
WARNING: asciidoctor not found.
WARNING: Some documentation and html will not be built.
AttributeError: 'SConsEnvironment' object has no attribute 'Tar':
  File "/tmp/guix-build-gpsd-3.22.drv-0/gpsd-3.22/SConstruct", line 63:
    SConscript('SConscript',
  File "/gnu/store/fyk6x25fpbg15q3d27bnzywk12hp7hql-scons-3.0.4/lib/scons/SCons/Script/SConscript.py", line 667:
    return method(*args, **kw)
  File "/gnu/store/fyk6x25fpbg15q3d27bnzywk12hp7hql-scons-3.0.4/lib/scons/SCons/Script/SConscript.py", line 604:
    return _SConscript(self.fs, *files, **subst_kw)
  File "/gnu/store/fyk6x25fpbg15q3d27bnzywk12hp7hql-scons-3.0.4/lib/scons/SCons/Script/SConscript.py", line 284:
    exec(compile(_file_.read(), _file_.name, 'exec'),
  File "/tmp/guix-build-gpsd-3.22.drv-0/gpsd-3.22/gpsd-3.22/SConscript", line 3226:
    targz = gzenv.Tar(target + '.gz', distfiles)
WARNING: asciidoctor not found.
WARNING: Some documentation and html will not be built.
WARNING: ncurses not found, not building cgps or gpsmon.
WARNING: gpsplot is missing required runtime module matplotlib
WARNING: xgps and xgpsspeed are missing runtime dependencies
WARNING: ubxtool and zerk are missing optional runtime module serial
Ensure your PYTHONPATH includes /gnu/store/5cycbh8cha5l5sylcbpa5n89al5m0vk5-gpsd-3.22/lib/python3.8/site-packages/
WARNING: Neither TIOCMIWAIT (PPS) nor RFC2783 API (KPPS) is available.
command "scons" "-j" "4" "prefix=/gnu/store/5cycbh8cha5l5sylcbpa5n89al5m0vk5-gpsd-3.22" "python_libdir=/gnu/store/5cycbh8cha5l5sylcbpa5n89al5m0vk5-gpsd-3.22/lib/python3.8/site-packages" "qt_versioned=5" failed with status 2
builder for `/gnu/store/r5h7q3qx1dd0pb80i8mcrka17i34svha-gpsd-3.22.drv' failed with exit code 1
------