2
0
mirror of https://gitlab.isc.org/isc-projects/bind9 synced 2025-08-22 01:59:26 +00:00
Aydın Mercan 5cd6c173ff
replace the build system with meson
Meson is a modern build system that has seen a rise in adoption and some
version of it is available in almost every platform supported.

Compared to automake, meson has the following advantages:

* Meson provides a significant boost to the build and configuration time
  by better exploiting parallelism.

* Meson is subjectively considered to be better in readability.

These merits alone justify experimenting with meson as a way of
improving development time and ergonomics. However, there are some
compromises to ensure the transition goes relatively smooth:

* The system tests currently rely on various files within the source
  directory. Changing this requirement is a non-trivial task that can't
  be currently justified. Currently the last compiled build directory
  writes into the source tree which is in turn used by pytest.

* The minimum version supported has been fixed at 0.61. Increasing this
  value will require choosing a baseline of distributions that can
  package with meson. On the contrary, there will likely be an attempt
  to decrease this value to ensure almost universal support for building
  BIND 9 with meson.
2025-06-11 10:30:12 +03:00

65 lines
2.9 KiB
Python

# Copyright (C) Internet Systems Consortium, Inc. ("ISC")
#
# SPDX-License-Identifier: MPL-2.0
#
# 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 https://mozilla.org/MPL/2.0/.
#
# See the COPYRIGHT file distributed with this work for additional
# information regarding copyright ownership.
import os
# pylint: disable=import-error
from .build import BUILD_VARS # type: ignore
# pylint: enable=import-error
BASIC_VARS = {
"ARPANAME": f"{BUILD_VARS['TOP_BUILDDIR']}/arpaname",
"CDS": f"{BUILD_VARS['TOP_BUILDDIR']}/dnssec-cds",
"CHECKCONF": f"{BUILD_VARS['TOP_BUILDDIR']}/named-checkconf",
"CHECKZONE": f"{BUILD_VARS['TOP_BUILDDIR']}/named-checkzone",
"DIG": f"{BUILD_VARS['TOP_BUILDDIR']}/dig",
"DNSTAPREAD": f"{BUILD_VARS['TOP_BUILDDIR']}/dnstap-read",
"DSFROMKEY": f"{BUILD_VARS['TOP_BUILDDIR']}/dnssec-dsfromkey",
"FEATURETEST": f"{BUILD_VARS['TOP_BUILDDIR']}/feature-test",
"HOST": f"{BUILD_VARS['TOP_BUILDDIR']}/host",
"IMPORTKEY": f"{BUILD_VARS['TOP_BUILDDIR']}/dnssec-importkey",
"JOURNALPRINT": f"{BUILD_VARS['TOP_BUILDDIR']}/named-journalprint",
"KEYFRLAB": f"{BUILD_VARS['TOP_BUILDDIR']}/dnssec-keyfromlabel",
"KEYGEN": f"{BUILD_VARS['TOP_BUILDDIR']}/dnssec-keygen",
"KSR": f"{BUILD_VARS['TOP_BUILDDIR']}/dnssec-ksr",
"MDIG": f"{BUILD_VARS['TOP_BUILDDIR']}/mdig",
"NAMED": f"{BUILD_VARS['TOP_BUILDDIR']}/named",
"NSEC3HASH": f"{BUILD_VARS['TOP_BUILDDIR']}/nsec3hash",
"NSLOOKUP": f"{BUILD_VARS['TOP_BUILDDIR']}/nslookup",
"NSUPDATE": f"{BUILD_VARS['TOP_BUILDDIR']}/nsupdate",
"NZD2NZF": f"{BUILD_VARS['TOP_BUILDDIR']}/named-nzd2nzf",
"REVOKE": f"{BUILD_VARS['TOP_BUILDDIR']}/dnssec-revoke",
"RNDC": f"{BUILD_VARS['TOP_BUILDDIR']}/rndc",
"RNDCCONFGEN": f"{BUILD_VARS['TOP_BUILDDIR']}/rndc-confgen",
"RRCHECKER": f"{BUILD_VARS['TOP_BUILDDIR']}/named-rrchecker",
"SETTIME": f"{BUILD_VARS['TOP_BUILDDIR']}/dnssec-settime",
"SIGNER": f"{BUILD_VARS['TOP_BUILDDIR']}/dnssec-signzone",
"TSIGKEYGEN": f"{BUILD_VARS['TOP_BUILDDIR']}/tsig-keygen",
"VERIFY": f"{BUILD_VARS['TOP_BUILDDIR']}/dnssec-verify",
"WIRETEST": f"{BUILD_VARS['TOP_BUILDDIR']}/wire-test",
"BIGKEY": f"{BUILD_VARS['TOP_BUILDDIR']}/bigkey",
"GENCHECK": f"{BUILD_VARS['TOP_BUILDDIR']}/gencheck",
"MAKEJOURNAL": f"{BUILD_VARS['TOP_BUILDDIR']}/makejournal",
"PIPEQUERIES": f"{BUILD_VARS['TOP_BUILDDIR']}/pipequeries",
"TMPDIR": os.getenv("TMPDIR", "/tmp"),
"KRB5_CONFIG": "/dev/null", # we don't want a KRB5_CONFIG setting breaking the tests
"KRB5_KTNAME": "dns.keytab", # use local keytab instead of default /etc/krb5.keytab
"DELV": (
f"{BUILD_VARS['TOP_BUILDDIR']}/delv"
if not os.getenv("TSAN_OPTIONS", "")
else ":" # workaround for GL#4119
),
"LC_ALL": "C",
"ANS_LOG_LEVEL": "debug",
}