I've updated my build script for recent releases of Debian. A patch
file is attached. Enjoy.
The script currently builds /etc/default/gpsd from a HERE document.
There is a prototype for one at packaging/deb/etc_default_gpsd.in, and
the final product in gpsd-3.27.5/packaging/deb/etc_default_gpsd. Should
I use the latter?
--
Does anybody read signatures any more?
https://charlescurley.com
https://charlescurley.com/blog/
diff --git a/build.adoc b/build.adoc
index 9f45f19fd..f3cb784f8 100644
--- a/build.adoc
+++ b/build.adoc
@@ -722,8 +722,9 @@ Feel free to hack.
#! /bin/bash
# A script to pull in the prerequisites for gpsd, pull it in, compile
-# and exercise it. This script works on Debian Trixie as of May 12,
-# 2025. As Trixie has not been released, it is a moving target.
+# and exercise it. This script works on Debian trixie as of January,
+# 2026. It also works on forky/sid. As forky has not been released, it
+# is a moving target.
# One thing this script does not do is check for and/or purge any
# Debian packages. We assume this is a freshly built system. Run
@@ -759,7 +760,20 @@ apt upgrade # expect to be asked for
approval.
# Everything else is required for a minimal build.
-apt install -y asciidoctor build-essential gcc git libgtk-3-dev libncurses-dev
\
+# "scons check" usues shared memory, but does no release it. This is a
+# known bug. For a work-around allocate more shared memory. The
+# following is probably overkill, but works on a 2GB virtual machine:
+
+# sysctl -w kernel.shmmax=1632087572 && sysctl -w kernel.shmall=398458
+
+# To make it permanent, edit /etc/sysctl.d/gpsd.conf like so (without
+# the leading '# '):
+
+# kernel.shmmax = 1632087572
+# kernel.shmall = 398458
+
+
+apt install -y asciidoctor bc build-essential gcc git libgtk-3-dev
libncurses-dev \
manpages-dev pkg-config pps-tools python-is-python3 python-gi-dev \
python3-cairo-dev python3-gi-cairo python3-matplotlib python3-serial scons
@@ -776,6 +790,11 @@ else
git pull
fi
+# We always want the latest tag, which is not necessarily the most
+# recent commit.
+git fetch --tags
+git checkout "$(git describe --tags "$(git rev-list --tags --max-count=1)")"
+
PYTHONPATH="$PYTHONPATH:/usr/local/lib/python3.13/dist-packages/"
scons -c && scons && scons check