From 60222843a6b2c4e7a6c7d4e63f88d0dcfa0d5b97 Mon Sep 17 00:00:00 2001 From: Andrei Pavel Date: Tue, 22 Apr 2025 14:09:38 +0300 Subject: [PATCH] [#3732] Address review --- CONTRIBUTING.md | 4 +- INSTALL | 4 +- doc/devel/Makefile.am | 1 - doc/devel/cross-compile.dox | 228 ------------------ doc/devel/doc.dox | 3 +- doc/devel/fuzz.dox | 10 +- doc/devel/unit-tests.dox | 2 +- doc/sphinx/arm/ddns.rst | 19 +- doc/sphinx/arm/dhcp4-srv.rst | 22 +- doc/sphinx/arm/dhcp6-srv.rst | 22 +- doc/sphinx/arm/hooks-legal-log.rst | 2 +- doc/sphinx/arm/hooks.rst | 8 +- doc/sphinx/arm/install.rst | 4 +- doc/sphinx/arm/quickstart.rst | 4 +- doc/sphinx/arm/shell.rst | 7 +- doc/sphinx/kea-messages.rst | 6 +- src/bin/dhcp4/tests/config_parser_unittest.cc | 2 +- src/bin/dhcp6/tests/config_parser_unittest.cc | 2 +- src/hooks/dhcp/bootp/bootp.dox | 4 +- src/hooks/dhcp/class_cmds/class_cmds.dox | 2 +- src/hooks/dhcp/flex_id/libdhcp_flex_id.dox | 2 +- src/hooks/dhcp/flex_option/flex_option.dox | 4 +- .../dhcp/forensic_log/libdhcp_legal_log.dox | 2 +- src/hooks/dhcp/host_cmds/host_cmds.dox | 2 +- src/hooks/dhcp/radius/radius.dox | 5 +- src/hooks/dhcp/run_script/run_script.dox | 2 +- src/hooks/dhcp/user_chk/libdhcp_user_chk.dox | 6 +- .../config_backend/base_config_backend_mgr.h | 8 +- src/lib/dhcpsrv/database_backends.dox | 4 +- src/lib/dhcpsrv/host_data_source_factory.cc | 8 +- src/lib/dhcpsrv/lease_mgr_factory.cc | 8 +- src/lib/dhcpsrv/legal_log_mgr_factory.cc | 8 +- src/lib/eval/eval.dox | 11 +- src/lib/hooks/hooks_maintenance.dox | 6 +- src/lib/hooks/hooks_user.dox | 2 +- src/lib/process/d_controller.h | 6 +- src/lib/process/process_messages.mes | 8 +- tools/tests_in_valgrind.sh | 13 +- 38 files changed, 115 insertions(+), 346 deletions(-) delete mode 100644 doc/devel/cross-compile.dox diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 11b181a2ba..9b2fe9ab83 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -191,7 +191,7 @@ such long periods, code tends to be refactored several times. The change you mad some other change or by the code that hasn't been written yet. See Building Kea with Unit Tests for instructions on how to run unit-tests. If you happen to touch -any database related code, make sure you compile your code with `–Dmysql` and/or `–Dpostgresql` as +any database related code, make sure you compile your code with `–D mysql=enabled` and/or `–D postgresql=enabled` as needed. For example, if you change something substantial, make sure the other compilation options still work. @@ -200,7 +200,7 @@ various additional consistency checks that reduce performance but help during de If you are modifying DHCP code, you are likely to be interested in enabling a non-default database backends for DHCP. Note that if the backend is not enabled, the database-specific unit-tests are skipped. To -enable the MySQL backend, use the switch `-Dmysql`; for PostgreSQL, use `–Dpostgresql`. +enable the MySQL backend, use the switch `-D mysql=enabled`; for PostgreSQL, use `–D postgresql=enabled`. A complete list of all switches can be obtained with the command: ```bash diff --git a/INSTALL b/INSTALL index bb53880ae9..5b2ab3d1b8 100644 --- a/INSTALL +++ b/INSTALL @@ -7,9 +7,9 @@ PostgreSQL), you will need to specify these as options to the command (run $ meson setup build -If your environment is missing dependencies, the configure script will exit +If your environment is missing dependencies, the command will exit with error and should emit sufficient information to guide you on how to -proceed. A detailed account of the configure process is captured in +proceed. A detailed account of the setup process is captured in build/meson-logs/meson-log.txt. 2. Build it. Once you've successfully set up the build, run "meson compile" to diff --git a/doc/devel/Makefile.am b/doc/devel/Makefile.am index 207ddd6b0d..ad2f029022 100644 --- a/doc/devel/Makefile.am +++ b/doc/devel/Makefile.am @@ -5,7 +5,6 @@ EXTRA_DIST += changelog.dox EXTRA_DIST += config-backend.dox EXTRA_DIST += congestion-handling.dox EXTRA_DIST += contribute.dox -EXTRA_DIST += cross-compile.dox EXTRA_DIST += debug.dox EXTRA_DIST += doc.dox EXTRA_DIST += fuzz.dox diff --git a/doc/devel/cross-compile.dox b/doc/devel/cross-compile.dox deleted file mode 100644 index b4e5eb2fd1..0000000000 --- a/doc/devel/cross-compile.dox +++ /dev/null @@ -1,228 +0,0 @@ -// Copyright (C) 2020-2025 Internet Systems Consortium, Inc. ("ISC") -// -// This Source Code Form is subject to the terms of the Mozilla Public -// License, v. 2.0. If a copy of the MPL was not distributed with this -// file, You can obtain one at http://mozilla.org/MPL/2.0/. - -/** - - * @note Outdated. - - @page crossCompile Kea Cross-Compiling Example - -The idea is to install Kea on a Raspberry Pi 4 Model B running Raspbian -operation system (e.g. the - -Raspbian Buster with desktop and recommended software distribution) -without having to compile Kea on the Raspberry Pi box itself as it -takes some hours so using a standard Linux box with a x86_64 processor. - -To cross-compile anything for Raspbian you need: - - a cross-compiler running on x86_64 producing arm binaries - - either an image of system copied from a Raspberry disk or extracted - from a Raspbian repository. - -@section toolChain Cross-Compile Tool Chain - -A priori it is possible to compile your own tool chain or to use -a package as the arm-linux-gnueabihf one on Ubuntu. But there is -reported compatibility issue with old Raspberry Pi versions) so -we recommend a pre-built dedicated tool chain for this purpose: -RaspberryPi toolchain on github. - -The documentation of this tool chain gives a rsync command which -copies selected parts of the Raspberry Pi root filesystem ("rootfs"). -If you have no access to a running Raspberry Pi it is still possible -to get them following next section instructions. If you have, simply -skip this part. - -@section noRaspberry How to get system and packages without a running Raspberry Pi - -It is not required to have access to a running Raspberry Pi. -The system disk image is available at the Raspbian URL. -Packages are in the Raspian repository which is given in -sources list files in this disk image or below. - -The /etc/apt/sources.list file content is: -@verbatim -deb http://raspbian.raspberrypi.org/raspbian/ buster main contrib non-free rpi -# Uncomment line below then 'apt-get update' to enable 'apt-get source' -# deb-src http://raspbian.raspberrypi.org/raspbian/ buster main contrib non-free rpi -@endverbatim - -and the /etc/apt/sources.list.d/raspi.list file content is: -@verbatim -deb http://archive.raspberrypi.org/debian/ buster main -# Uncomment line below then 'apt-get update' to enable 'apt-get source' -# deb-src http://archive.raspberrypi.org/debian/ buster main -@endverbatim - -The disk image is a zipped image of a 4GB disk with a standard MSDOS -boot block with two volumes: - - boot (useless for this purpose) - - rootfs (the Raspberry Pi root filesystem) - -The idea is to mount the rootfs on the Linux box (it can work on another -system as soon as it supports the ext4 file system type): - - first use fdisk or similar tool to get the offset of the first block - of the rootfs (second) volume - - if the offset is in block unit multiply by 512 (block size) - - mount as root (sudo mount ...) with the loop option, the offset option, - the unzipped image file name and a mount point (absolute path of - a directory) -If you have a SD card with Raspbian installed on it and a SD reader -you can directly mount the rootfs from it. - -If a dependency (i.e. the Raspbian version of a library) is not in the -rootfs image you need to simulate its installation: - - get the .deb file from a Raspbian repository - - extract files using the dpkg-deb -R tool on the .deb file - - install the files (usually in the "rootfs"/usr directory) -The idea is the files (includes and libraries) can be found by -the cross-compiling tool chain. - -It is possible to emulate a Raspberry Pi using qemu even I do not think -it can run Kea. But at least it can run some tests as the hello world sample -of the tool chain. Required qemu kernels can be found in -this github repo with -a documentation, which is well worth reading. - -@section crossCompilePitfalls Usual problems - -There are two usual problems when cross-compiling: - - have a binary for the wrong processor, e.g. either trying to run - an arm binary on the x86_64 box or building a x86_64 binary when - it will be run by the Raspberry Pi - - use the x86_64 system include or library instead of the Raspberry Pi - one from the rootfs image. Usually it gives a direct error for a library - but a wrong include is more subtle. -Note that Kea has a build tool (kea-msg-compiler) but its use is optional -so it should not be a problem. If anyway you need it simply copy it from -a native (i.e. not cross-compiled) Kea build. - -@section raspbianDependencies Usual Kea Dependencies - -Required and optional Kea dependencies, usually available as packages: - - Python (built-in) - - libssl-dev (built-in in the full image) - - liblog4cplus-dev (in liblog4cplus package, load both the library and - the development part) - - libboost-system-dev (in boost-xxx, load both the boost-system and - the boost-libraries packages, the second includes header files) - - googletest (download the last release from github) - - doc (sphinx, texlive, etc: just generate docs on the build system) - - MySQL (in mysql-defaults and mariadb-* packages?) - - PostgreSQL (in postgresql-12?) - -@section prepareCrossCompile Prepare Cross Compiling - -This script was used with success: it sets the environment variables -before calling ./configure. -@code -# change when at another location -export ROOTFS="$HOME/rpi/rootfs" - -# build commands -export BUILD=x86_64-pc-linux-gnu -export HOST=arm-linux-gnueabihf -export CC="${HOST}-gcc" -export CXX="${HOST}-g++" -export LD="${HOST}-ld" -export AR="${HOST}-ar" -export RANLIB="${HOST}-ranlib" -export STRIP="${HOST}-strip" -export NM="${HOST}-nm" - -# g++ flags -CXXFLAGS="-O2 -g -isysroot ${ROOTFS} -I${ROOTFS}/usr/include" -CXXFLAGS+=" -I${ROOTFS}/usr/include/${HOST}" - -# ld flags -LDFLAGS="--sysroot=${ROOTFS}" -LDFLAGS+=" -L/opt/cross-pi-gcc/arm-linux-gnueabihf/lib -Wl,-rpath-link,/opt/cross-pi-gcc/arm-linux-gnueabihf/lib" -LDFLAGS+=" -L/opt/cross-pi-gcc/lib -Wl,-rpath-link,/opt/cross-pi-gcc/lib" -LDFLAGS+=" -L${ROOTFS}/opt/vc/lib -Wl,-rpath-link,${ROOTFS}/opt/vc/lib" -LDFLAGS+=" -L${ROOTFS}/lib/${HOST} -Wl,-rpath-link,${ROOTFS}/lib/${HOST}" -LDFLAGS+=" -L${ROOTFS}/usr/local/lib -Wl,-rpath-link,${ROOTFS}/usr/local/lib" -LDFLAGS+=" -L${ROOTFS}/usr/lib/${HOST} -Wl,-rpath-link,${ROOTFS}/usr/lib/${HOST}" -LDFLAGS+=" -L${ROOTFS}/usr/lib -Wl,-rpath-link,${ROOTFS}/usr/lib" -LDFLAGS+=" -L${ROOTFS}/usr/lib/${HOST}/blas -Wl,-rpath-link,${ROOTFS}/usr/lib/${HOST}/blas" -LDFLAGS+=" -L${ROOTFS}/usr/lib/${HOST}/lapack -Wl,-rpath-link,${ROOTFS}/usr/lib/${HOST}/lapack" - -# CPU tuning (use the most generic one) -# PI 4 (not sure for the FPU) -# CXXFLAGS+=" -mcpu=cortex-a72 -mfpu=neon-vfpv4 -mfloat-abi=hard" -# PI 3 -# CXXFLAGS+=" -mcpu=cortex-a53 -mfpu=neon-vfpv4 -mfloat-abi=hard" -# PI 2 -# CXXFLAGS+=" -mcpu=cortex-a7 -mfpu=neon-vfpv4 -mfloat-abi=hard" -# PI 1, zero, ... -CXXFLAGS+=" -mcpu=arm1176jzf-s -mfpu=vfp -mfloat-abi=hard" - -export CXXFLAGS -export LDFLAGS - -export PKG_CONFIG_PATH="${ROOTFS}/usr/lib/pkgconfig" - -export PATH=/opt/cross-pi-gcc/bin:/opt/cross-pi-gcc/libexec/gcc/arm-linux-gnueabihf/8.3.0:$PATH - -# libraries are in fact in ${ROOTFS}/usr/lib/${HOST} but -# the library path can be set only for boost. -CONF_CMD="./configure --build=${BUILD} --host=${HOST}" -CONF_CMD+=" --with-sysroot=${ROOTFS}" -CONF_CMD+=" --with-openssl=${ROOTFS}/usr" -CONF_CMD+=" --with-log4cplus=${ROOTFS}/usr" -CONF_CMD+=" --with-boost-include=${ROOTFS}/usr/include" -CONF_CMD+=" --with-boost-lib-dir=${ROOTFS}/usr/lib/${HOST}" -@endcode - -Some explanations: - - the rootfs was copied or mounted in rpi/rootfs in the home directory. - - the build system triplet is x86_64-pc-linux-gnu (processor, - system, application binary interface). It is returned by the config.guess - script so please verify. - - the host system triplet is arm-linux-gnueabihf. It is used as the prefix - for cross-compiling tools so this value is critical. - - all tool variables are set to the cross-compiling tool name - - CXXFLAGS is defined to use the rootfs image for includes. It is critical - it does not use any build system include. - - LDFLAGS is defined to use the rootfs, all cross-compiler support libraries - and libraries from the rootfs image. It is critical it does not use - any build system library. - - CXXFLAGS can be tuned for a specific Raspberry Pi version. Proposed - tuning supports all versions. - - even if Kea ./configure does not depends on pkgconfig its path is set. - - PATH is updated to find first cross-compiling tools. - - I did not try yet database config scripts: perhaps they detect - cross-compiling and produce correct paths. - - CONF_CMD contains the ./configure common arguments. - -The script can be used to: - - eventually run "autoreconf -i" (if sources are from git) - - put its content in a file, e.g. ccenv - - load the file by ". ccenv" - - configure Kea build by "$CONF_CMD " - -Known problems: - - AC_TRY_RUN and AC_CHECK_FILE[S] autoconf macros do not support - cross-compiling. They were removed from ./configure.ac in Kea 1.7.10. - - libtool is a disaster for cross-compiling, in particular it produces - silly libtool archive (.la) files. Fortunately they are useless. - - bad paths for mkdir or sed on Raspbian. - - recent Debian systems including recent Ubuntu modified libtool to - not accept indirect dependencies. Makefiles were updated to have no - such indirect dependencies in common cases as it is in Kea Makefile - writing guidelines. - - the libtool variable managing this is link_all_deplibs. You can - edit the libtool script to set it to unknown or yes. Or simply - use another Linux distrib. - - there is no ldd in cross-compiling tools. The table of used - shared libraries in available by readelf -d which is in the - cross-compiling tools. - -Final words: this is still highly experimental and does not cover -everything. New ways to offload almost everything outside the Raspberry -Pi are still to be found. Currently to provide Raspbian Kea packages -is not possible for ISC. - -*/ diff --git a/doc/devel/doc.dox b/doc/devel/doc.dox index a28d2ee789..462a279627 100644 --- a/doc/devel/doc.dox +++ b/doc/devel/doc.dox @@ -10,8 +10,7 @@ There are several types of documentation for Kea. The primary one, intended to be read by users, is User's Guide. It comes in HTML, PDF and txt format. All - of them generated from the same sources. To generate this doc, you need to - run configure script with --enable-generate-docs option. sphinx and + of them generated from the same sources. To generate the documentation, sphinx and sphinx_rtd_theme have to be available on the system. texlive is also required if you want to create documentation in HTML format. You can generate this by doing: diff --git a/doc/devel/fuzz.dox b/doc/devel/fuzz.dox index 8c2f80ec60..538a99bb39 100644 --- a/doc/devel/fuzz.dox +++ b/doc/devel/fuzz.dox @@ -46,7 +46,7 @@ Combining the binaries and the fuzzer types results in eight fuzzing binaries: @subsection HowToBuild How to Build the LLVM Fuzzer -Use the "--enable-fuzzing" during the configure step. Then just compile as usual. +Use the "-D fuzz=enabled" during the meson setup step. Then just compile as usual. @code meson setup build -D fuzz=enabled @@ -171,7 +171,7 @@ for this are: compiler. - Specify a value of "--prefix" on the command line to set the directory into which Kea is installed. - - Add the "-Dfuzz=enabled" switch to the "meson setup" command line. + - Add the "-D fuzz=enabled" switch to the "meson setup" command line. . For example: @code @@ -327,7 +327,7 @@ while (not shutting down) { Read and process one packet } @endcode -When -Dfuzz=enabled is specified, this is conceptually modified to: +When -D fuzz=enabled is specified, this is conceptually modified to: @code{.unparsed} while (not shutting down) { Read stdin and copy data to address/port on which Kea is listening @@ -374,7 +374,7 @@ leaks). No changes were required to Kea source code to fuzz configuration files. In fact, other than compiling with afl-clang++ and installing the resultant executable, no other steps are required. In particular, there is no need to -use the "-Dfuzz=enabled" switch in the configuration command line (although +use the "-D fuzz=enabled" switch in the configuration command line (although doing so will not cause any problems). @subsection fuzzThreads Changes Required for Multi-Threaded Kea @@ -390,7 +390,7 @@ the AFL input in the background. @subsection fuzzNotesUnitTests Unit Test Failures -If unit tests are built when -Dfuzz=enabled is specified and with the AFL +If unit tests are built when -D fuzz=enabled is specified and with the AFL compiler, note that tests which check or use the DHCP servers (i.e. the unit tests in src/bin/dhcp4, src/bin/dhcp6 and src/bin/kea-admin) will fail. With no AFL-related environment variables defined, a C++ exception will be diff --git a/doc/devel/unit-tests.dox b/doc/devel/unit-tests.dox index 907f700682..cc336f5a69 100644 --- a/doc/devel/unit-tests.dox +++ b/doc/devel/unit-tests.dox @@ -116,7 +116,7 @@ anything e.g. `DEBUG=true`. `unset DEBUG` to remove this behavior. different versions of Tsan). The simplest way to enable a sanitizer is to specify the flag on the setup - step with `meson setup build -Db_sanitize=thread`. + step with `meson setup build -D b_sanitize=thread`. When enabling lcov (code coverage), some gtest functions are detected as not being thread safe. It is recommended to disable lcov when enabling diff --git a/doc/sphinx/arm/ddns.rst b/doc/sphinx/arm/ddns.rst index 4406143d02..89217fd750 100644 --- a/doc/sphinx/arm/ddns.rst +++ b/doc/sphinx/arm/ddns.rst @@ -166,18 +166,21 @@ directly. It accepts the following command-line switches: Upon startup, the module loads its configuration and begins listening for NCRs based on that configuration. -During startup, the server attempts to create a PID file of the form: -``[runstatedir]/[conf name].kea-dhcp-ddns.pid`` where: +During startup, the server attempts to create a PID file of the +form: ``[pidfile_dir]/[conf name].kea-dhcp-ddns.pid`` where: -- ``runstatedir`` - is the value as passed into the build configure - script; it defaults to "/usr/local/var/run". Note that this value may be - overridden at runtime by setting the environment variable - ``KEA_PIDFILE_DIR``. This is intended primarily for testing purposes. +- ``pidfile_dir`` - is ``[prefix]/[localstatedir]/run/kea`` where + ``prefix`` and ``localstatedir`` are the values passed into meson setup using + ``--prefix`` and ``--localstatedir`` which default to ``/usr/local`` and + ``var`` respectively. So the whole ``pidfile_dir`` defaults to + ``/usr/local/var``. Note that this value may be overridden at runtime by + setting the environment variable ``KEA_PIDFILE_DIR`` intended primarily for + testing purposes. - ``conf name`` - is the configuration file name used to start the server, minus all preceding paths and the file extension. For example, given - a pathname of "/usr/local/etc/kea/myconf.txt", the portion used would - be "myconf". + a pathname of ``/usr/local/etc/kea/myconf.txt``, the portion used would + be ``myconf``. If the file already exists and contains the PID of a live process, the server issues a ``DHCP_DDNS_ALREADY_RUNNING`` log message and exits. It diff --git a/doc/sphinx/arm/dhcp4-srv.rst b/doc/sphinx/arm/dhcp4-srv.rst index c02d7c337a..15e2934674 100644 --- a/doc/sphinx/arm/dhcp4-srv.rst +++ b/doc/sphinx/arm/dhcp4-srv.rst @@ -84,18 +84,20 @@ configuration file. Since the DHCPv4 server opens privileged ports, it requires root access; this daemon must be run as root. During startup, the server attempts to create a PID file of the -form: ``[runstatedir]/kea/[conf name].kea-dhcp4.pid``, where: +form: ``[pidfile_dir]/[conf name].kea-dhcp4.pid`` where: -- ``runstatedir``: The value as passed into the build configure - script; it defaults to ``/usr/local/var/run``. Note that this value may be - overridden at runtime by setting the environment variable - ``KEA_PIDFILE_DIR``, although this is intended primarily for testing - purposes. +- ``pidfile_dir`` - is ``[prefix]/[localstatedir]/run/kea`` where + ``prefix`` and ``localstatedir`` are the values passed into meson setup using + ``--prefix`` and ``--localstatedir`` which default to ``/usr/local`` and + ``var`` respectively. So the whole ``pidfile_dir`` defaults to + ``/usr/local/var``. Note that this value may be overridden at runtime by + setting the environment variable ``KEA_PIDFILE_DIR`` intended primarily for + testing purposes. -- ``conf name``: The configuration file name used to start the server, - minus all preceding paths and the file extension. For example, given - a pathname of ``/usr/local/etc/kea/myconf.txt``, the portion used would - be ``myconf``. +- ``conf name``: The configuration file name used to start the server, + minus all preceding paths and the file extension. For example, given + a pathname of ``/usr/local/etc/kea/myconf.txt``, the portion used would + be ``myconf``. If the file already exists and contains the PID of a live process, the server issues a ``DHCP4_ALREADY_RUNNING`` log message and exits. It is diff --git a/doc/sphinx/arm/dhcp6-srv.rst b/doc/sphinx/arm/dhcp6-srv.rst index 6dc5902388..bfb98fd14b 100644 --- a/doc/sphinx/arm/dhcp6-srv.rst +++ b/doc/sphinx/arm/dhcp6-srv.rst @@ -84,18 +84,20 @@ configuration file. Since the DHCPv6 server opens privileged ports, it requires root access; this daemon must be run as root. During startup, the server attempts to create a PID file of the -form: ``[runstatedir]/kea/[conf name].kea-dhcp6.pid``, where: +form: ``[pidfile_dir]/[conf name].kea-dhcp6.pid``, where: -- ``runstatedir``: The value as passed into the build configure - script; it defaults to ``/usr/local/var/run``. Note that this value may be - overridden at runtime by setting the environment variable - ``KEA_PIDFILE_DIR``, although this is intended primarily for testing - purposes. +- ``pidfile_dir`` - is ``[prefix]/[localstatedir]/run/kea`` where + ``prefix`` and ``localstatedir`` are the values passed into meson setup using + ``--prefix`` and ``--localstatedir`` which default to ``/usr/local`` and + ``var`` respectively. So the whole ``pidfile_dir`` defaults to + ``/usr/local/var``. Note that this value may be overridden at runtime by + setting the environment variable ``KEA_PIDFILE_DIR`` intended primarily for + testing purposes. -- ``conf name``: The configuration file name used to start the server, - minus all preceding paths and the file extension. For example, given - a pathname of ``/usr/local/etc/kea/myconf.txt``, the portion used would - be ``myconf``. +- ``conf name``: The configuration file name used to start the server, + minus all preceding paths and the file extension. For example, given + a pathname of ``/usr/local/etc/kea/myconf.txt``, the portion used would + be ``myconf``. If the file already exists and contains the PID of a live process, the server issues a ``DHCP6_ALREADY_RUNNING`` log message and exits. It is diff --git a/doc/sphinx/arm/hooks-legal-log.rst b/doc/sphinx/arm/hooks-legal-log.rst index 8b9b1da6f6..6434b356a7 100644 --- a/doc/sphinx/arm/hooks-legal-log.rst +++ b/doc/sphinx/arm/hooks-legal-log.rst @@ -86,7 +86,7 @@ can save logs to a text file or to a database (created using :iscman:`kea-admin`; see :ref:`mysql-database-create` and :ref:`pgsql-database-create`). The library is installed alongside the Kea libraries in ``[kea-install-dir]/var/lib/kea``, where ``kea-install-dir`` is determined -by the ``--prefix`` option of the configure script; it defaults to +by the ``--prefix`` meson setup option which defaults to ``/usr/local``. Assuming the default value, :iscman:`kea-dhcp4` can be configured to load :ischooklib:`libdhcp_legal_log.so` like this: diff --git a/doc/sphinx/arm/hooks.rst b/doc/sphinx/arm/hooks.rst index ea324ff489..7af13fd34f 100644 --- a/doc/sphinx/arm/hooks.rst +++ b/doc/sphinx/arm/hooks.rst @@ -73,18 +73,18 @@ For our users' convenience, the subscriber hooks' installation procedure is desc 1. Download the package; detailed instructions are provided in the KB article above. The package will be a file with a name similar to -``kea-subscriber-|release|.tar.gz``. +``kea-subscriber-|release|.tar.xz``. 2. Administrators who have the sources for the corresponding version of the open-source Kea package on their system from the initial Kea installation should skip this step. Otherwise, extract the Kea source from the original tarball that was downloaded. For example, with a download of Kea |release|, -there should be a tarball called ``kea-|release|.tar.gz`` on the system. +there should be a tarball called ``kea-|release|.tar.xz`` on the system. Unpack this tarball: .. parsed-literal:: - $ tar -zxvf kea-|release|.tar.gz + $ tar -Jxvf kea-|release|.tar.xz This will unpack the tarball into the ``kea-|release|`` subdirectory of the current working directory. @@ -97,7 +97,7 @@ steps will unpack the subscriber tarball into the correct location: .. parsed-literal:: $ cd kea-|release| - $ tar -xvf ../kea-subscriber-|release|.tar.gz + $ tar -Jxvf ../kea-subscriber-|release|.tar.xz Note that unpacking the Kea subscriber package puts the files into a directory named ``premium``. Regardless of the name of the package, the diff --git a/doc/sphinx/arm/install.rst b/doc/sphinx/arm/install.rst index 230c0abe15..2a44975bc4 100644 --- a/doc/sphinx/arm/install.rst +++ b/doc/sphinx/arm/install.rst @@ -248,7 +248,7 @@ following commands import the code-signing keys .. code-block:: console $ gpg --import isc-keyblock.asc - $ gpg --verify kea-X.Y.Z.tar.gz.asc kea-X.Y.Z.tar.gz + $ gpg --verify kea-X.Y.Z.tar.xz.asc kea-X.Y.Z.tar.xz The verification allows users to confirm that the tar file has not been tampered with and that it was created by ISC. @@ -490,7 +490,7 @@ First, a regular user account must be created: Then, change the binaries' ownership and group to the new user. Note that the specific path may be different. Please refer to the ``--prefix`` -parameter passed to the configure script: +parameter passed to ``meson setup``: .. code-block:: console diff --git a/doc/sphinx/arm/quickstart.rst b/doc/sphinx/arm/quickstart.rst index 2214dc970e..4f75d529fd 100644 --- a/doc/sphinx/arm/quickstart.rst +++ b/doc/sphinx/arm/quickstart.rst @@ -25,9 +25,9 @@ Quick Start Guide Using tarball .. parsed-literal:: - $ tar -xvzf kea-|release|.tar.gz + $ tar -Jxvf kea-|release|.tar.xz -4. Go into the source directory and run the configure script: +4. Go into the source directory and set up the build: .. parsed-literal:: diff --git a/doc/sphinx/arm/shell.rst b/doc/sphinx/arm/shell.rst index b6eff09a59..25b6058a88 100644 --- a/doc/sphinx/arm/shell.rst +++ b/doc/sphinx/arm/shell.rst @@ -127,12 +127,7 @@ servers, the default empty path in the URL is not enough, so the $ kea-shell --host 192.0.2.1 --port 8001 --path kea ... The Kea shell requires Python to be installed on the system. It has been -tested with various versions of Python 3, up to 3.5. -Since not every Kea deployment uses this feature and there are -deployments that do not have Python, the Kea shell is not enabled by -default. To use it, specify ``--enable-shell`` when running ``configure`` -during the installation of Kea. When building on Debian systems, -``--with-site-packages=...`` may also be useful. +tested with various versions of Python 3. .. note:: diff --git a/doc/sphinx/kea-messages.rst b/doc/sphinx/kea-messages.rst index d681f5bb28..0cd1133929 100644 --- a/doc/sphinx/kea-messages.rst +++ b/doc/sphinx/kea-messages.rst @@ -3448,9 +3448,9 @@ This is an error message that occurs when the server is unable to create its PID file. The log message should contain details sufficient to determine the underlying cause. The most likely culprits are that some portion of the pathname does not exist or a permissions issue. The -default path is determined by --localstatedir or --runstatedir configure -parameters but may be overridden by setting environment variable, -KEA_PIDFILE_DIR. The first argument is the process name. +default path is determined by ``--localstatedir`` and ``--prefix`` meson setup +options but may be overridden by setting environment variable +``KEA_PIDFILE_DIR``. The first argument is the process name. DCTL_PROCESS_FAILED =================== diff --git a/src/bin/dhcp4/tests/config_parser_unittest.cc b/src/bin/dhcp4/tests/config_parser_unittest.cc index 28e2e896bc..06cabaea62 100644 --- a/src/bin/dhcp4/tests/config_parser_unittest.cc +++ b/src/bin/dhcp4/tests/config_parser_unittest.cc @@ -7319,7 +7319,7 @@ TEST_F(Dhcp4ParserTest, configControlInfoNoFactory) { configure(config, CONTROL_RESULT_ERROR, "during update from config backend database: " "The Kea server has not been compiled with support for configuration " - "database type: mysql. Did you forget to use -Dmysql during " + "database type: mysql. Did you forget to use -D mysql=enabled during " "setup or to load libdhcp_mysql hook library?"); } diff --git a/src/bin/dhcp6/tests/config_parser_unittest.cc b/src/bin/dhcp6/tests/config_parser_unittest.cc index 4d823074bc..983c6092ab 100644 --- a/src/bin/dhcp6/tests/config_parser_unittest.cc +++ b/src/bin/dhcp6/tests/config_parser_unittest.cc @@ -8169,7 +8169,7 @@ TEST_F(Dhcp6ParserTest, configControlInfoNoFactory) { configure(config, CONTROL_RESULT_ERROR, "during update from config backend database: " "The Kea server has not been compiled with support for configuration " - "database type: mysql. Did you forget to use -Dmysql during " + "database type: mysql. Did you forget to use -D mysql=enabled during " "setup or to load libdhcp_mysql hook library?"); } diff --git a/src/hooks/dhcp/bootp/bootp.dox b/src/hooks/dhcp/bootp/bootp.dox index 5b34caf691..4ed0d3eb08 100644 --- a/src/hooks/dhcp/bootp/bootp.dox +++ b/src/hooks/dhcp/bootp/bootp.dox @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2021 Internet Systems Consortium, Inc. ("ISC") +// Copyright (C) 2019-2025 Internet Systems Consortium, Inc. ("ISC") // // This Source Code Form is subject to the terms of the Mozilla Public // License, v. 2.0. If a copy of the MPL was not distributed with this @@ -30,7 +30,7 @@ without vendor extensions are not supported. It must be configured as a hook library for the desired DHCP server modules. Note that the bootp library is installed alongside the Kea libraries in "/lib" where is determined -by the --prefix option of the configure script. It defaults to +by the --prefix meson setup option. It defaults to "/usr/local". Assuming the default value then, configuring kea-dhcp4 to load the bootp library could be done with the following Kea4 configuration: diff --git a/src/hooks/dhcp/class_cmds/class_cmds.dox b/src/hooks/dhcp/class_cmds/class_cmds.dox index 565c521c78..4d665f3c00 100644 --- a/src/hooks/dhcp/class_cmds/class_cmds.dox +++ b/src/hooks/dhcp/class_cmds/class_cmds.dox @@ -105,7 +105,7 @@ in html/ directory. Similar to all other code in Kea, also this library comes with unit-tests that use googletest framework. Those tests are stored in tests/ directory. To build -and run them, you need to pass -Dtests=enabled to the "meson setup" command +and run them, you need to pass -D tests=enabled to the "meson setup" command line. Once the code builds, you can run tests with "meson compile". This command can be run in top-level build directory (all tests will be run) or by running tests on this library only "meson test -C build dhcp-class-cmds-tests". diff --git a/src/hooks/dhcp/flex_id/libdhcp_flex_id.dox b/src/hooks/dhcp/flex_id/libdhcp_flex_id.dox index 6ea9ce350c..4cf637a249 100644 --- a/src/hooks/dhcp/flex_id/libdhcp_flex_id.dox +++ b/src/hooks/dhcp/flex_id/libdhcp_flex_id.dox @@ -32,7 +32,7 @@ incoming packet to be used as identifier. It must be configured as a hook library for the desired DHCP server modules. Note that the flex_id library is installed alongside the Kea libraries in "/lib" where is determined -by the --prefix option of the configure script. It defaults to +by the --prefix meson setup option. It defaults to "/usr/local". Assuming the default value then, configuring kea-dhcp4 to load the flex_id library could be done with the following Kea4 configuration: diff --git a/src/hooks/dhcp/flex_option/flex_option.dox b/src/hooks/dhcp/flex_option/flex_option.dox index 9fc84d6582..72b76a8c4c 100644 --- a/src/hooks/dhcp/flex_option/flex_option.dox +++ b/src/hooks/dhcp/flex_option/flex_option.dox @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2022 Internet Systems Consortium, Inc. ("ISC") +// Copyright (C) 2019-2025 Internet Systems Consortium, Inc. ("ISC") // // This Source Code Form is subject to the terms of the Mozilla Public // License, v. 2.0. If a copy of the MPL was not distributed with this @@ -32,7 +32,7 @@ added to response packets. It must be configured as a hook library for the desired DHCP server modules. Note that the flex_option library is installed alongside the Kea libraries in "/lib" where is determined -by the --prefix option of the configure script. It defaults to +by the --prefix meson setup option. It defaults to "/usr/local". Assuming the default value then, configuring kea-dhcp4 to load the flex_option library could be done with the following Kea4 configuration: diff --git a/src/hooks/dhcp/forensic_log/libdhcp_legal_log.dox b/src/hooks/dhcp/forensic_log/libdhcp_legal_log.dox index bf5f892b54..2cb89c4c51 100644 --- a/src/hooks/dhcp/forensic_log/libdhcp_legal_log.dox +++ b/src/hooks/dhcp/forensic_log/libdhcp_legal_log.dox @@ -347,7 +347,7 @@ or It must be configured as a hook library for the desired DHCP server modules. Note that the legal_log library is installed alongside the Kea libraries in "/lib" where is determined -by the --prefix option of the configure script. It defaults to +by the --prefix meson setup option. It defaults to "/usr/local". Assuming the default value then, configuring kea-dhcp4 to load the legal_log library could be done with the following Kea4 configuration: diff --git a/src/hooks/dhcp/host_cmds/host_cmds.dox b/src/hooks/dhcp/host_cmds/host_cmds.dox index fb5d9e3a53..b893d87af7 100644 --- a/src/hooks/dhcp/host_cmds/host_cmds.dox +++ b/src/hooks/dhcp/host_cmds/host_cmds.dox @@ -180,7 +180,7 @@ in html/ directory. Similar to all other code in Kea, also this library comes with unit-tests that use googletest framework. Those tests are stored in tests/ directory. To build -and run them, you need to pass -Dtests=enabled to the "meson setup" command +and run them, you need to pass -D tests=enabled to the "meson setup" command line. Once the code builds, you can run tests with "meson compile". This command can be run in top-level build directory (all tests will be run) or by running tests on this library only "meson test -C build dhcp-host-cmds-tests". diff --git a/src/hooks/dhcp/radius/radius.dox b/src/hooks/dhcp/radius/radius.dox index a2065f4698..6a59b6bd25 100644 --- a/src/hooks/dhcp/radius/radius.dox +++ b/src/hooks/dhcp/radius/radius.dox @@ -52,8 +52,9 @@ The global configuration flags are: deadtime value specifies the number of seconds after which a server is considered unresponsive. 0 disables the mechanism. - - dictionary (default set by configure at build time) is the attribute - and value dictionary. Note it is a critical parameter. + - dictionary (set to "[prefix][sysconfdir}/kea/radius/dictionary" during meson + setup which defaults to "/usr/local/etc/kea/radius/dictionary") is the + attribute and value dictionary. Note it is a critical parameter. - extract-duid (default true) extracts the embedded duid from an RFC-4361-compliant DHCPv4 client-id. Implied by client-id-printable. diff --git a/src/hooks/dhcp/run_script/run_script.dox b/src/hooks/dhcp/run_script/run_script.dox index 8a91da0daf..6fbba7425f 100644 --- a/src/hooks/dhcp/run_script/run_script.dox +++ b/src/hooks/dhcp/run_script/run_script.dox @@ -29,7 +29,7 @@ be run on specific hook points. It must be configured as a hook library for the desired DHCP server modules. Note that the Run Script library is installed alongside the Kea libraries in "/lib" where is determined -by the --prefix option of the configure script. It defaults to +by the --prefix meson setup option. It defaults to "/usr/local". Configuring kea-dhcp4 to load the Run Script library could be done with diff --git a/src/hooks/dhcp/user_chk/libdhcp_user_chk.dox b/src/hooks/dhcp/user_chk/libdhcp_user_chk.dox index ad2be18db4..25ea92b1db 100644 --- a/src/hooks/dhcp/user_chk/libdhcp_user_chk.dox +++ b/src/hooks/dhcp/user_chk/libdhcp_user_chk.dox @@ -1,4 +1,4 @@ -// Copyright (C) 2013-2021 Internet Systems Consortium, Inc. ("ISC") +// Copyright (C) 2013-2025 Internet Systems Consortium, Inc. ("ISC") // // This Source Code Form is subject to the terms of the Mozilla Public // License, v. 2.0. If a copy of the MPL was not distributed with this @@ -133,8 +133,8 @@ the library will unload. It must be configured as a hook library for the desired DHCP server modules. Note that the user_chk library is installed alongside the Kea libraries in -"/lib" where is determined by the --prefix option of -the configure script. It defaults to "/usr/local". Assuming the default value +"/lib" where is determined by the --prefix meson +setup option which defaults to "/usr/local". Assuming the default value then, configuring kea-dhcp4 to load the user_chk library could be done with the following Kea4 configuration: diff --git a/src/lib/config_backend/base_config_backend_mgr.h b/src/lib/config_backend/base_config_backend_mgr.h index 2b29b2b227..d898d46de9 100644 --- a/src/lib/config_backend/base_config_backend_mgr.h +++ b/src/lib/config_backend/base_config_backend_mgr.h @@ -165,12 +165,12 @@ public: // No match? if (index == factories_.end()) { if ((db_type == "mysql") || (db_type == "postgresql")) { - std::string with = (db_type == "postgresql" ? "pgsql" : db_type); + std::string libdhcp(db_type == "postgresql" ? "pgsql" : db_type); isc_throw(db::InvalidType, "The Kea server has not been compiled with " "support for configuration database type: " << db_type - << ". Did you forget to use -D" - << with << " during compilation or to load libdhcp_" - << with << " hook library?"); + << ". Did you forget to use -D " + << db_type << "=enabled during setup or to load libdhcp_" + << libdhcp << " hook library?"); } isc_throw(db::InvalidType, "The type of the configuration backend: '" << db_type << "' is not supported"); diff --git a/src/lib/dhcpsrv/database_backends.dox b/src/lib/dhcpsrv/database_backends.dox index 9a7d4b47a5..620984c974 100644 --- a/src/lib/dhcpsrv/database_backends.dox +++ b/src/lib/dhcpsrv/database_backends.dox @@ -23,14 +23,14 @@ - The MySQL lease manager uses the freely available MySQL as its backend database. This is not included in Kea DHCP by default: - the \-Dmysql switch must be supplied to "meson setup" for support to be + the "-D mysql=enabled" switch must be supplied to "meson setup" for support to be compiled into the software. This will also compile the "libdhcp_mysql.so" hook library which must be loaded by adding it to the "hooks-libraries" configuration parameter. - The PostgreSQL lease manager uses the freely available PostgreSQL as its backend database. This is not included in Kea DHCP by default: - the \-Dpostgresql switch must be supplied to "meson setup" for support to be + the "-D postgresql=enabled" switch must be supplied to "meson setup" for support to be compiled into the software. This will also compile the "libdhcp_pgsql.so" hook library which must be loaded by adding it to the "hooks-libraries" configuration parameter. diff --git a/src/lib/dhcpsrv/host_data_source_factory.cc b/src/lib/dhcpsrv/host_data_source_factory.cc index f2d90b356f..74cd407767 100644 --- a/src/lib/dhcpsrv/host_data_source_factory.cc +++ b/src/lib/dhcpsrv/host_data_source_factory.cc @@ -48,12 +48,12 @@ HostDataSourceFactory::add(HostDataSourceList& sources, // No match? if (index == map_.end()) { if ((db_type == "mysql") || (db_type == "postgresql")) { - string with = (db_type == "postgresql" ? "pgsql" : db_type); + string libdhcp(db_type == "postgresql" ? "pgsql" : db_type); isc_throw(InvalidType, "The Kea server has not been compiled with " "support for host database type: " << db_type - << ". Did you forget to use -D" - << with << " during compilation or to load libdhcp_" - << with << " hook library?"); + << ". Did you forget to use -D " + << db_type << "=enabled during setup or to load libdhcp_" + << libdhcp << " hook library?"); } isc_throw(InvalidType, "The type of host backend: '" << db_type << "' is not supported"); diff --git a/src/lib/dhcpsrv/lease_mgr_factory.cc b/src/lib/dhcpsrv/lease_mgr_factory.cc index 64f1c8fe9f..2e33622291 100644 --- a/src/lib/dhcpsrv/lease_mgr_factory.cc +++ b/src/lib/dhcpsrv/lease_mgr_factory.cc @@ -62,12 +62,12 @@ LeaseMgrFactory::create(const std::string& dbaccess) { if (index == map_.end()) { if ((db_type == "mysql") || (db_type == "postgresql")) { LOG_ERROR(dhcpsrv_logger, DHCPSRV_UNKNOWN_DB).arg(db_type); - string with = (db_type == "postgresql" ? "pgsql" : db_type); + string libdhcp(db_type == "postgresql" ? "pgsql" : db_type); isc_throw(InvalidType, "The Kea server has not been compiled with " "support for lease database type: " << db_type - << ". Did you forget to use -D" - << with << " during compilation or to load libdhcp_" - << with << " hook library?"); + << ". Did you forget to use -D " + << db_type << "=enabled during setup or to load libdhcp_" + << libdhcp << " hook library?"); } // Get here on no match LOG_ERROR(dhcpsrv_logger, DHCPSRV_UNKNOWN_DB).arg(parameters[type]); diff --git a/src/lib/dhcpsrv/legal_log_mgr_factory.cc b/src/lib/dhcpsrv/legal_log_mgr_factory.cc index 3af6a59e57..102c59194f 100644 --- a/src/lib/dhcpsrv/legal_log_mgr_factory.cc +++ b/src/lib/dhcpsrv/legal_log_mgr_factory.cc @@ -83,12 +83,12 @@ LegalLogMgrFactory::addBackend(DatabaseConnection::ParameterMap& parameters, Man // No match? if (index == map_.end()) { if ((db_type == "mysql") || (db_type == "postgresql")) { - string with = (db_type == "postgresql" ? "pgsql" : db_type); + string libdhcp(db_type == "postgresql" ? "pgsql" : db_type); isc_throw(InvalidType, "The Kea server has not been compiled with " "support for configuration database type: " << db_type - << ". Did you forget to use -D" - << with << " during compilation or to load libdhcp_" - << with << " hook library?"); + << ". Did you forget to use -D " + << db_type << "=enabled during setup or to load libdhcp_" + << libdhcp << " hook library?"); } isc_throw(InvalidType, "The type of the forensic log backend: '" << db_type << "' is not supported"); diff --git a/src/lib/eval/eval.dox b/src/lib/eval/eval.dox index af6e91ec0c..18d3e81b0f 100644 --- a/src/lib/eval/eval.dox +++ b/src/lib/eval/eval.dox @@ -121,12 +121,11 @@ instantiated with the appropriate value and put onto the expression vector. @section dhcpEvalConfigure Configure options Since the flex/bison tools are not necessary for a regular compilation, - checks are conducted during the configure script, but the lack of flex or - bison tools does not stop the process. There is a flag - (--enable-generate-parser) that tells configure script that the - parser will be generated. With this flag, the checks for flex/bison - are mandatory. If either tool is missing or at too early a version, the - configure process will terminate with an error. + checks are conducted during meson setup, but the lack of flex or + bison tools does not stop the process. If either tool is missing or at too + early a version, it will be mentioned in the config report that can be found + at build/config.report that flex or bison are not available and the setup + process will continue. @section dhcpEvalToken Supported tokens diff --git a/src/lib/hooks/hooks_maintenance.dox b/src/lib/hooks/hooks_maintenance.dox index 75e122795a..831ec1c95c 100644 --- a/src/lib/hooks/hooks_maintenance.dox +++ b/src/lib/hooks/hooks_maintenance.dox @@ -1,4 +1,4 @@ -// Copyright (C) 2013-2020 Internet Systems Consortium, Inc. ("ISC") +// Copyright (C) 2013-2025 Internet Systems Consortium, Inc. ("ISC") // // This Source Code Form is subject to the terms of the Mozilla Public // License, v. 2.0. If a copy of the MPL was not distributed with this @@ -366,9 +366,7 @@ This should be executed by any hooks library linking against a statically initialized Kea. (In fact, running it against a dynamically-linked Kea should have no effect, as the load operation discards any duplicate - message entries.) The hooks library tests do this, the code being - conditionally compiled within a test of the @c USE_STATIC_LINK macro, set - by the configure script. + message entries.) @note Not everything is completely rosy with logging and static linking. In particular, there appears to be an issue with the scenario where a diff --git a/src/lib/hooks/hooks_user.dox b/src/lib/hooks/hooks_user.dox index a5a78f9234..d865a1cf5d 100644 --- a/src/lib/hooks/hooks_user.dox +++ b/src/lib/hooks/hooks_user.dox @@ -1358,7 +1358,7 @@ a name will conflict with any existing or future Kea argument names. @subsection hooksdgStaticallyLinkedKea Running Against a Statically-Linked Kea -If Kea is built with the "-Ddefault_library=static" switch (set when +If Kea is built with the "-D default_library=static" switch (set when running the "meson setup" script), no shared Kea libraries are built; instead, archive libraries are created and Kea is linked to them. If you create a hooks library also linked against these archive libraries, diff --git a/src/lib/process/d_controller.h b/src/lib/process/d_controller.h index cc01b5a417..cb55b667a6 100644 --- a/src/lib/process/d_controller.h +++ b/src/lib/process/d_controller.h @@ -1,4 +1,4 @@ -// Copyright (C) 2013-2024 Internet Systems Consortium, Inc. ("ISC") +// Copyright (C) 2013-2025 Internet Systems Consortium, Inc. ("ISC") // // This Source Code Form is subject to the terms of the Mozilla Public // License, v. 2.0. If a copy of the MPL was not distributed with this @@ -243,8 +243,8 @@ public: /// @brief handler for 'build-report' command /// - /// This method handles build-report command. It returns the output printed - /// by configure script which contains most compilation parameters. + /// This method handles build-report command. It returns the config report + /// created by meson setup which contains the compilation parameters. /// /// @param command (ignored) /// @param args (ignored) diff --git a/src/lib/process/process_messages.mes b/src/lib/process/process_messages.mes index f984f7305b..92c595bc76 100644 --- a/src/lib/process/process_messages.mes +++ b/src/lib/process/process_messages.mes @@ -1,4 +1,4 @@ -# Copyright (C) 2016-2024 Internet Systems Consortium, Inc. ("ISC") +# Copyright (C) 2016-2025 Internet Systems Consortium, Inc. ("ISC") # # This Source Code Form is subject to the terms of the Mozilla Public # License, v. 2.0. If a copy of the MPL was not distributed with this @@ -98,9 +98,9 @@ This is an error message that occurs when the server is unable to create its PID file. The log message should contain details sufficient to determine the underlying cause. The most likely culprits are that some portion of the pathname does not exist or a permissions issue. The -default path is determined by --localstatedir or --runstatedir configure -parameters but may be overridden by setting environment variable, -KEA_PIDFILE_DIR. The first argument is the process name. +default path is determined by --localstatedir and --prefix meson setup options +but may be overridden by setting environment variable KEA_PIDFILE_DIR. +The first argument is the process name. % DCTL_PROCESS_FAILED %1 application execution failed: %2 The controller has encountered a fatal error while running the diff --git a/tools/tests_in_valgrind.sh b/tools/tests_in_valgrind.sh index 0ed84feaf1..9421300681 100755 --- a/tools/tests_in_valgrind.sh +++ b/tools/tests_in_valgrind.sh @@ -1,10 +1,9 @@ #!/bin/sh ################################################################################ -# This script runs all tests in valgrind. Configure and compile kea the way -# you want it to be tested (you should use --with-gtest or --with-gtest-source, -# however, or you get no tests). Then run this script from the top build -# directory. +# This script runs all tests in valgrind. Set up and compile Kea the way +# you want it to be tested (you should use "-D tests=enabled" however, or you +# get no tests). Then run this script. # # Note that the test isn't what you would call "production quality" (it is # expected to be used by the kea developers, not end user) and might break, @@ -23,10 +22,10 @@ script_path=$(cd "$(dirname "${0}")" && pwd) cd "${script_path}/.." # First, make sure the tests are up to date -make +meson compile -C build if test $? = 2; then - printf 'Did you run configure?\n' + printf 'Did you run meson setup?\n' exit 1 fi @@ -76,6 +75,6 @@ if test -n "$FAILED"; then fi if ! $FOUND_ANY; then - echo "No test was found. It is possible you configured without --with-gtest or you run it from wrong directory" >&2 + echo "No test was found. Is it possible you configured without '-D tests=enabled'?" >&2 exit 1 fi