I read the PR description, but I am not sure what "client analysis" means: what would be missing from the web rendering? Is it log grepping for example?
Nicola
Il giorno mar 20 ott 2026 alle ore 06:24 Bruno Manzoni via Xymon < xymon@xymon.com> ha scritto:
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-585Roland'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-devlibrrd-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 ones
Nicola
Il giorno lun 19 ott 2026 alle ore 16:04 Roland Rosenfeld < roland@spinnaker.de> 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-devas 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 mailing list -- xymon@xymon.com To unsubscribe send an email to xymon-leave@xymon.com
Xymon mailing list -- xymon@xymon.com To unsubscribe send an email to xymon-leave@xymon.com