git: 9065390ddc7b - main - packages: Remove the tests-dev package
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Thu, 18 Sep 2025 09:26:32 UTC
The branch main has been updated by ivy:
URL: https://cgit.FreeBSD.org/src/commit/?id=9065390ddc7b1ce2613777f6a947200950a5ac71
commit 9065390ddc7b1ce2613777f6a947200950a5ac71
Author: Lexi Winter <ivy@FreeBSD.org>
AuthorDate: 2025-09-18 09:13:41 +0000
Commit: Lexi Winter <ivy@FreeBSD.org>
CommitDate: 2025-09-18 09:26:12 +0000
packages: Remove the tests-dev package
We don't want a tests-dev package, because this means set-devel depends
on tests-dev, which transitively depends on tests, which means you can't
install set-devel without also getting tests.
The only real "dev" files in tests-dev are from ATF (libprivateatf),
so move that to its own package and add a dependency from tests.
Also move Kyua to its own package, since this might be useful for
running tests even when the user doesn't want the whole set of base
tests installed.
Add a dependency from -tests to both -atf and -kyua, and a dependency
on -set-base, since the tests won't work without the full base system
installed.
The remaining "dev" files in tests are actually test artifacts, not real
development libraries. Add a new NO_DEV_PACKAGE option to bsd.lib.mk,
which causes dev files to be installed in the base package instead of
creating a -dev package, and set this option for everything that
installs test libraries.
While here, add a slightly more informative description for the tests
package.
MFC after: 3 seconds
Reviewed by: bapt, emaste
Differential Revision: https://reviews.freebsd.org/D52597
---
UPDATING | 8 ++++++++
lib/atf/Makefile.inc | 2 ++
lib/atf/libatf-c++/Makefile | 1 -
lib/atf/libatf-c++/tests/Makefile | 2 --
lib/atf/libatf-c/Makefile | 1 -
lib/atf/libatf-c/tests/Makefile | 2 --
lib/libc/tests/tls/dso/Makefile | 1 +
lib/libc/tests/tls_dso/Makefile | 1 +
lib/libxo/tests/encoder/Makefile | 1 +
libexec/atf/Makefile.inc | 2 ++
libexec/atf/atf-check/Makefile | 1 -
libexec/atf/atf-pytest-wrapper/Makefile | 1 -
libexec/atf/atf-sh/Makefile | 1 -
libexec/rtld-elf/tests/Makefile.inc | 1 +
release/packages/ucl/atf-all.ucl | 8 ++++++++
release/packages/ucl/kyua-all.ucl | 20 ++++++++++++++++++++
release/packages/ucl/tests-all.ucl | 27 +++++++++++++++++++++++++--
share/mk/bsd.lib.mk | 11 +++++++++++
share/mk/bsd.test.mk | 3 +++
usr.bin/kyua/Makefile | 2 +-
20 files changed, 84 insertions(+), 12 deletions(-)
diff --git a/UPDATING b/UPDATING
index 999babfb6d7d..d40818111554 100644
--- a/UPDATING
+++ b/UPDATING
@@ -27,6 +27,14 @@ NOTE TO PEOPLE WHO THINK THAT FreeBSD 16.x IS SLOW:
world, or to merely disable the most expensive debugging functionality
at runtime, run "ln -s 'abort:false,junk:false' /etc/malloc.conf".)
+20250918:
+ Kyua has been moved to the FreeBSD-kyua package, and ATF has been moved
+ to the FreeBSD-atf* packages. If you have FreeBSD-tests installed,
+ these packages will be installed automatically, otherwise you should
+ manually install them if you need these tools.
+
+ This only affects pkgbase users.
+
20250912:
If SRCCONF is unset and a file named src.conf is present at
the top of the source tree, it will now be used instead of
diff --git a/lib/atf/Makefile.inc b/lib/atf/Makefile.inc
index f8f329842eb4..bebed0280596 100644
--- a/lib/atf/Makefile.inc
+++ b/lib/atf/Makefile.inc
@@ -24,6 +24,8 @@
# SUCH DAMAGE.
#
+PACKAGE= atf
+LIB_PACKAGE=
CFLAGS+= -DHAVE_CONFIG_H
WARNS?= 3
diff --git a/lib/atf/libatf-c++/Makefile b/lib/atf/libatf-c++/Makefile
index 985a79b7dc03..4f4f7f12ec05 100644
--- a/lib/atf/libatf-c++/Makefile
+++ b/lib/atf/libatf-c++/Makefile
@@ -27,7 +27,6 @@
.include <src.opts.mk>
.include <bsd.init.mk>
-PACKAGE= tests
LIB_CXX= atf-c++
PRIVATELIB= true
SHLIB_MAJOR= 2
diff --git a/lib/atf/libatf-c++/tests/Makefile b/lib/atf/libatf-c++/tests/Makefile
index dc052c19df67..839c6902d6b1 100644
--- a/lib/atf/libatf-c++/tests/Makefile
+++ b/lib/atf/libatf-c++/tests/Makefile
@@ -1,7 +1,5 @@
.include <bsd.init.mk>
-PACKAGE= tests
-
TESTS_SUBDIRS= detail
ATF= ${SRCTOP}/contrib/atf
diff --git a/lib/atf/libatf-c/Makefile b/lib/atf/libatf-c/Makefile
index 4cfee2ed824f..c0890abc7640 100644
--- a/lib/atf/libatf-c/Makefile
+++ b/lib/atf/libatf-c/Makefile
@@ -27,7 +27,6 @@
.include <src.opts.mk>
.include <bsd.init.mk>
-PACKAGE= tests
LIB= atf-c
PRIVATELIB= true
SHLIB_MAJOR= 1
diff --git a/lib/atf/libatf-c/tests/Makefile b/lib/atf/libatf-c/tests/Makefile
index c81c18a91f00..5647e7b9fcbe 100644
--- a/lib/atf/libatf-c/tests/Makefile
+++ b/lib/atf/libatf-c/tests/Makefile
@@ -1,7 +1,5 @@
.include <bsd.init.mk>
-PACKAGE= tests
-
TESTS_SUBDIRS= detail
ATF= ${SRCTOP}/contrib/atf
diff --git a/lib/libc/tests/tls/dso/Makefile b/lib/libc/tests/tls/dso/Makefile
index 5efd8b29a6bd..783534ff7aae 100644
--- a/lib/libc/tests/tls/dso/Makefile
+++ b/lib/libc/tests/tls/dso/Makefile
@@ -6,6 +6,7 @@ SRCS= h_tls_dlopen.c
MAN=
PACKAGE= tests
+NO_DEV_PACKAGE=
LIBDIR= ${TESTSBASE}/lib/libc/tls
SHLIB_MAJOR= 1
diff --git a/lib/libc/tests/tls_dso/Makefile b/lib/libc/tests/tls_dso/Makefile
index 89296c643695..7cb8f98b431e 100644
--- a/lib/libc/tests/tls_dso/Makefile
+++ b/lib/libc/tests/tls_dso/Makefile
@@ -7,6 +7,7 @@ LIBDIR= ${TESTSBASE}/lib/libc/tls
SHLIBDIR= ${TESTSBASE}/lib/libc/tls
SHLIB_MAJOR= 1
PACKAGE= tests
+NO_DEV_PACKAGE=
WITHOUT_STATIC=
WITHOUT_PROFILE=
diff --git a/lib/libxo/tests/encoder/Makefile b/lib/libxo/tests/encoder/Makefile
index 7522328b0818..02634b971ace 100644
--- a/lib/libxo/tests/encoder/Makefile
+++ b/lib/libxo/tests/encoder/Makefile
@@ -1,4 +1,5 @@
PACKAGE= tests
+NO_DEV_PACKAGE=
LIBXOSRC= ${SRCTOP}/contrib/libxo
diff --git a/libexec/atf/Makefile.inc b/libexec/atf/Makefile.inc
index 42c507a6f772..e40827fa0b69 100644
--- a/libexec/atf/Makefile.inc
+++ b/libexec/atf/Makefile.inc
@@ -24,6 +24,8 @@
# SUCH DAMAGE.
#
+PACKAGE= atf
+LIB_PACKAGE=
CFLAGS+= -DHAVE_CONFIG_H
WARNS?= 3
diff --git a/libexec/atf/atf-check/Makefile b/libexec/atf/atf-check/Makefile
index 87d7a7cfdada..cf598e384c86 100644
--- a/libexec/atf/atf-check/Makefile
+++ b/libexec/atf/atf-check/Makefile
@@ -30,7 +30,6 @@
ATF= ${SRCTOP}/contrib/atf
.PATH: ${ATF}/atf-sh
-PACKAGE= tests
PROG_CXX= atf-check
SRCS= atf-check.cpp
MAN= atf-check.1
diff --git a/libexec/atf/atf-pytest-wrapper/Makefile b/libexec/atf/atf-pytest-wrapper/Makefile
index 80b5e411ec4e..75b1bc3e1004 100644
--- a/libexec/atf/atf-pytest-wrapper/Makefile
+++ b/libexec/atf/atf-pytest-wrapper/Makefile
@@ -1,7 +1,6 @@
.include <src.opts.mk>
.include <bsd.init.mk>
-PACKAGE= tests
PROG_CXX= atf_pytest_wrapper
SRCS= atf_pytest_wrapper.cpp
MAN=
diff --git a/libexec/atf/atf-sh/Makefile b/libexec/atf/atf-sh/Makefile
index 2e821684d8a8..afd848581f36 100644
--- a/libexec/atf/atf-sh/Makefile
+++ b/libexec/atf/atf-sh/Makefile
@@ -30,7 +30,6 @@
ATF= ${SRCTOP}/contrib/atf
.PATH: ${ATF}/atf-sh
-PACKAGE= tests
PROG_CXX= atf-sh
SRCS= atf-sh.cpp
MAN= atf-sh.1 atf-sh.3
diff --git a/libexec/rtld-elf/tests/Makefile.inc b/libexec/rtld-elf/tests/Makefile.inc
index 01cf83634239..3bd0b8590cdc 100644
--- a/libexec/rtld-elf/tests/Makefile.inc
+++ b/libexec/rtld-elf/tests/Makefile.inc
@@ -1,2 +1,3 @@
PACKAGE?= tests
+NO_DEV_PACKAGE=
TESTSDIR?= ${TESTSBASE}/libexec/rtld-elf
diff --git a/release/packages/ucl/atf-all.ucl b/release/packages/ucl/atf-all.ucl
new file mode 100644
index 000000000000..de8cd55eeb9f
--- /dev/null
+++ b/release/packages/ucl/atf-all.ucl
@@ -0,0 +1,8 @@
+comment = "Automated Testing Framework"
+
+desc = <<EOD
+The Automated Testing Framework (ATF) is a collection of libraries to implement
+test programs in a variety of languages. These libraries all offer similar
+functionality and any test program written with them exposes a consistent user
+interface.
+EOD
diff --git a/release/packages/ucl/kyua-all.ucl b/release/packages/ucl/kyua-all.ucl
new file mode 100644
index 000000000000..4a669041f7e9
--- /dev/null
+++ b/release/packages/ucl/kyua-all.ucl
@@ -0,0 +1,20 @@
+comment = "Testing framework for infrastructure software"
+
+desc = <<EOD
+Kyua is a testing framework for infrastructure software, originally designed
+to equip BSD-based operating systems with a test suite. This means that Kyua
+is lightweight and simple, and that Kyua integrates well with various build
+systems and continuous integration frameworks.
+
+Kyua features an expressive test suite definition language, a safe runtime
+engine for test suites and a powerful report generation engine.
+
+Kyua is for both developers and users, from the developer applying a simple
+fix to a library to the system administrator deploying a new release on a
+production machine.
+
+Kyua is able to execute test programs written with a plethora of testing
+libraries and languages. The test program library of choice is ATF, which
+kyua's design originated from. However, framework-less test programs and
+TAP-compliant test programs can also be executed through kyua.
+EOD
diff --git a/release/packages/ucl/tests-all.ucl b/release/packages/ucl/tests-all.ucl
index 42d4ea160ec7..9aefbd0205f6 100644
--- a/release/packages/ucl/tests-all.ucl
+++ b/release/packages/ucl/tests-all.ucl
@@ -1,8 +1,31 @@
-comment = "Test Suite"
+comment = "Test suite"
+
desc = <<EOD
-Test Suite
+The test suite, installed in /usr/tests, allows the functionality of the
+installed system to be verified.
EOD
+deps {
+ # Nearly all the tests require atf to run.
+ "atf": {
+ version = "${VERSION}"
+ origin = "base"
+ },
+
+ # The test framework requires Kyua.
+ "kyua": {
+ version = "${VERSION}"
+ origin = "base"
+ },
+
+ # Since the purpose of the tests is to test the base system, the base
+ # system must be installed.
+ "set-base": {
+ version = "${VERSION}"
+ origin = "base"
+ }
+}
+
annotations {
set = tests
}
diff --git a/share/mk/bsd.lib.mk b/share/mk/bsd.lib.mk
index 6caad8956c14..065e635ed43d 100644
--- a/share/mk/bsd.lib.mk
+++ b/share/mk/bsd.lib.mk
@@ -74,7 +74,14 @@ LIB_TAG_ARGS= ${TAG_ARGS}
TAG_ARGS= -T ${TAGS:ts,:[*]}
DBG_TAG_ARGS= ${TAG_ARGS},dbg
+# Usually we want to put development files (e.g., static libraries) into a
+# separate -dev packages but for a few cases, like tests, that's not wanted,
+# so allow the caller to disable it by setting NO_DEV_PACKAGE.
+.if !defined(NO_DEV_PACKAGE)
DEV_TAG_ARGS= ${TAG_ARGS},dev
+.else
+DEV_TAG_ARGS= ${TAG_ARGS}
+.endif
.endif # !defined(NO_ROOT)
# ELF hardening knobs
@@ -450,7 +457,11 @@ LINKGRP?= ${LIBGRP}
LINKMODE?= ${LIBMODE}
SYMLINKOWN?= ${LIBOWN}
SYMLINKGRP?= ${LIBGRP}
+.if !defined(NO_DEV_PACKAGE)
LINKTAGS= dev${_COMPAT_TAG}
+.else
+LINKTAGS= ${_COMPAT_TAG}
+.endif
.include <bsd.links.mk>
.if ${MK_MAN} != "no" && !defined(LIBRARIES_ONLY)
diff --git a/share/mk/bsd.test.mk b/share/mk/bsd.test.mk
index a2e15c840e02..9f20e5835369 100644
--- a/share/mk/bsd.test.mk
+++ b/share/mk/bsd.test.mk
@@ -16,6 +16,9 @@ LOCALBASE?= /usr/local
TESTSDIR?= ${TESTSBASE}/${RELDIR:H}
PACKAGE?= tests
+# Prevent creating a -dev package for tests. Sometimes tests include static
+# libraries or other artifacts which are not actually "development" files.
+NO_DEV_PACKAGE=
FILESGROUPS+= ${PACKAGE}FILES
${PACKAGE}FILESPACKAGE= ${PACKAGE}
diff --git a/usr.bin/kyua/Makefile b/usr.bin/kyua/Makefile
index daefedbf8bca..178a1d083b79 100644
--- a/usr.bin/kyua/Makefile
+++ b/usr.bin/kyua/Makefile
@@ -10,7 +10,7 @@ KYUA_VERSION= 0.13
KYUA_SRCDIR= ${SRCTOP}/contrib/kyua
.PATH: ${KYUA_SRCDIR}
-PACKAGE= tests
+PACKAGE= kyua
PROG_CXX= kyua
SRCS= main.cpp
LIBADD= lutok sqlite3 util