Xymon 4.3.31 is close: we need your help to finish it
Hi Nicola
Thanks for reviewing, and welcome aboard. Taking your points in order:
1. Checking out a PR without gh:
git fetch origin pull/585/head:pr-585
git checkout pr-585
Roland's .patch trick works too. Note that I rebased all the open PRs on
current main yesterday, so if you already have pr-585, fetch it again:
git fetch origin pull/585/head
git checkout -B pr-585 FETCH_HEAD
2. Docker: there's nothing in the main repo yet, but my fork has an
experimental setup on the cmake/bootstrap branch. It builds the tree
inside a distro image and installs it there. To try it on a PR:
git remote add bonomani https://github.com/bonomani/xymon.git
git fetch bonomani cmake/bootstrap
git checkout pr-585
git checkout bonomani/cmake/bootstrap -- docker ci
docker build -f docker/Dockerfile --build-arg BASE_IMAGE=debian:12 --build-arg BUILD_TOOL=make -t xymon-pr585 .
To run the test suite in that image:
docker run --rm xymon-pr585 bash -c 'cd /src && XYMON_VARIANT=server ./tests/testsuite'
And to start the installed Xymon and query it (for #585, the last line
should print 0):
docker run --rm xymon-pr585 bash -c '
set -e
cp -a /tmp/xymon-stage/var/. /var/
mkdir -p /var/log/xymon
chown -R xymon:xymon /var/lib/xymon /var/log/xymon
su xymon -s /bin/sh -c "/var/lib/xymon/server/bin/xymon.sh start"
X=/var/lib/xymon/server/bin/xymon
for i in $(seq 30); do $X 127.0.0.1 ping && break; sleep 1; done
$X 127.0.0.1 "config hosts.cfg" | tr -cd "\000" | wc -c'
I tested all of this on #585 with Debian 12, on amd64 and arm64: 118
tests pass, Xymon starts, and the reply has no NUL bytes. "git reset
--hard" takes you back to the plain PR afterwards.
3. Dependencies: you're right that the docs are behind: install.html
still lists the old pcre-devel. #672 fixes that, with a current command
for Debian and other common systems. On Debian it's:
apt-get install build-essential libc-ares-dev libldap-dev libpcre2-dev librrd-dev libssl-dev libtirpc-dev
It's a draft until #138 and #349 merge, but a review is very welcome:
https://github.com/xymon-monitoring/xymon/pull/672
And no, there's no separate base branch: main switched to PCRE2 after
4.3.30, so libpcre2-dev was all you were missing.
4. Verifying #585: the bug is NUL bytes in xymond's reply to
"config hosts.cfg". Every host listed after the bad line loses alerts and
client analysis, while the web page still shows it. Two things trigger
it:
- an empty "optional directory" line, every time;
- an "include" of a missing file, but only when the line has trailing
whitespace.
To see it, compare main and the PR:
xymon 127.0.0.1 "config hosts.cfg" | od -c | grep '\\0'
On main you should get NUL bytes, and the hosts after that line are
missing from the reply. With #585 there are no NULs and every host is
there. The shipped hosts.cfg ends with an "optional directory" line, so a
fresh install like the Docker one above already shows the difference. If
you used a "directory" line pointing to a missing directory, that's the
one path the PR didn't test, so a report on it would be very welcome.
5. make clean: confirmed. It doesn't clean the bundled c-ares under
xymonnet/c-ares, so the x86_64 objects survive. Use "make distclean" when
you change architecture. #138 removes the bundled copy and builds against
the system c-ares, so the problem goes away when it merges. It's waiting
for review if you want another one:
https://github.com/xymon-monitoring/xymon/pull/138
Cheers
Thanks for reviewing, and welcome aboard. Taking your points in order:
1. Checking out a PR without gh:
git fetch origin pull/585/head:pr-585
git checkout pr-585
Roland's .patch trick works too. Note that I rebased all the open PRs on
current main yesterday, so if you already have pr-585, fetch it again:
git fetch origin pull/585/head
git checkout -B pr-585 FETCH_HEAD
2. Docker: there's nothing in the main repo yet, but my fork has an
experimental setup on the cmake/bootstrap branch. It builds the tree
inside a distro image and installs it there. To try it on a PR:
git remote add bonomani https://github.com/bonomani/xymon.git
git fetch bonomani cmake/bootstrap
git checkout pr-585
git checkout bonomani/cmake/bootstrap -- docker ci
docker build -f docker/Dockerfile --build-arg BASE_IMAGE=debian:12 --build-arg BUILD_TOOL=make -t xymon-pr585 .
To run the test suite in that image:
docker run --rm xymon-pr585 bash -c 'cd /src && XYMON_VARIANT=server ./tests/testsuite'
And to start the installed Xymon and query it (for #585, the last line
should print 0):
docker run --rm xymon-pr585 bash -c '
set -e
cp -a /tmp/xymon-stage/var/. /var/
mkdir -p /var/log/xymon
chown -R xymon:xymon /var/lib/xymon /var/log/xymon
su xymon -s /bin/sh -c "/var/lib/xymon/server/bin/xymon.sh start"
X=/var/lib/xymon/server/bin/xymon
for i in $(seq 30); do $X 127.0.0.1 ping && break; sleep 1; done
$X 127.0.0.1 "config hosts.cfg" | tr -cd "\000" | wc -c'
I tested all of this on #585 with Debian 12, on amd64 and arm64: 118
tests pass, Xymon starts, and the reply has no NUL bytes. "git reset
--hard" takes you back to the plain PR afterwards.
3. Dependencies: you're right that the docs are behind: install.html
still lists the old pcre-devel. #672 fixes that, with a current command
for Debian and other common systems. On Debian it's:
apt-get install build-essential libc-ares-dev libldap-dev libpcre2-dev librrd-dev libssl-dev libtirpc-dev
It's a draft until #138 and #349 merge, but a review is very welcome:
https://github.com/xymon-monitoring/xymon/pull/672
And no, there's no separate base branch: main switched to PCRE2 after
4.3.30, so libpcre2-dev was all you were missing.
4. Verifying #585: the bug is NUL bytes in xymond's reply to
"config hosts.cfg". Every host listed after the bad line loses alerts and
client analysis, while the web page still shows it. Two things trigger
it:
- an empty "optional directory" line, every time;
- an "include" of a missing file, but only when the line has trailing
whitespace.
To see it, compare main and the PR:
xymon 127.0.0.1 "config hosts.cfg" | od -c | grep '\\0'
On main you should get NUL bytes, and the hosts after that line are
missing from the reply. With #585 there are no NULs and every host is
there. The shipped hosts.cfg ends with an "optional directory" line, so a
fresh install like the Docker one above already shows the difference. If
you used a "directory" line pointing to a missing directory, that's the
one path the PR didn't test, so a report on it would be very welcome.
5. make clean: confirmed. It doesn't clean the bundled c-ares under
xymonnet/c-ares, so the x86_64 objects survive. Use "make distclean" when
you change architecture. #138 removes the bundled copy and builds against
the system c-ares, so the problem goes away when it merges. It's waiting
for review if you want another one:
https://github.com/xymon-monitoring/xymon/pull/138
Cheers
Bruno
Le 19.10.26 à 19:25, Nicola via Xymon a
écrit :
I figured out what I need: I was thinking more to make it easier for everyone.Thanks for the shortcut to avoid answering all questions at every attempt.
Another thing I noticed is that the "make clean" command is not actually cleaning up everything: moving from x86_64 to aarch64, I had to delete all .a files, together with the .lo onesNicola
Il giorno lun 19 ott 2026 alle ore 16:04 Roland Rosenfeld <user-237a1e03bc39@xymon.invalid> ha scritto:
Hi Nicola!
On Mon, 19 Oct 2026, Nicola wrote:
> * an hint on how to checkout (if at all possible) PRs without the gh
> CLI
I usually use the github web GUI. If I need a patch (for example from
PR 668), just append ".patch" to the PR URL and you get one:
https://github.com/xymon-monitoring/xymon/pull/668.patch
Okay, that's not a perfect GIT workflow, but for my use case (adding
them to the Debian source package using quilt) it's what I need.
> I will continue reviewing to the best of my possibilities, but I
> think addressing the above could ease the path for new contributors.
I fear that there are as many different workflows as contributors :-)
On Mo, 19 Okt 2026, Nicola wrote:
> Now answering to myself.
> I see there is no mention anywhere on how to install the pcre2 packages on
> debian (a git grep apt.*pcre2 shows nothing useful).
> Is it worth adding it along with the yum docs?
That depends who you address with this. I as a Debian developer don't
need this info ;-)
On Debian installing pcre2 build libraries can be done with
apt install libpcre2-dev
Maybe you should have a lookg at .github/workflows/build.yml, which
gives hints how to install build dependencies:
sudo apt-get update
sudo apt-get install -y --no-install-recommends \
build-essential \
libc-ares-dev \
libldap-dev \
libpcre2-dev \
librrd-dev \
libssl-dev \
libtirpc-dev
as well as for building:
env USEXYMONPING=y \
ENABLESSL=y \
ENABLELDAP=y \
ENABLELDAPSSL=y \
XYMONUSER=xymon \
XYMONTOPDIR=/usr/lib/xymon \
XYMONVAR=/var/lib/xymon \
XYMONHOSTURL=/xymon \
CGIDIR=/usr/lib/xymon/cgi-bin \
XYMONCGIURL=/xymon-cgi \
SECURECGIDIR=/usr/lib/xymon/cgi-secure \
SECUREXYMONCGIURL=/xymon-seccgi \
HTTPDGID=www-data \
XYMONLOGDIR=/var/log/xymon \
XYMONHOSTNAME=localhost \
XYMONHOSTIP=127.0.0.1 \
MANROOT=/usr/share/man \
INSTALLBINDIR=/usr/lib/xymon/server/bin \
INSTALLETCDIR=/etc/xymon \
INSTALLWEBDIR=/etc/xymon/web \
INSTALLEXTDIR=/usr/lib/xymon/server/ext \
INSTALLTMPDIR=/var/lib/xymon/tmp \
INSTALLWWWDIR=/var/lib/xymon/www \
./configure --server
make
(to the other questions I don't have answers).
Greetings
Roland
xymon@xymon.com To unsubscribe send an email to xymon-leave@xymon.com