git: 22ae80be5506 - stable/15 - packages: Remove the tests-dev package
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Fri, 19 Sep 2025 01:20:02 UTC
The branch stable/15 has been updated by ivy: URL: https://cgit.FreeBSD.org/src/commit/?id=22ae80be5506cf853dd9ad6e2958899ac3bae506 commit 22ae80be5506cf853dd9ad6e2958899ac3bae506 Author: Lexi Winter <ivy@FreeBSD.org> AuthorDate: 2025-09-18 09:13:41 +0000 Commit: Lexi Winter <ivy@FreeBSD.org> CommitDate: 2025-09-19 01:17:29 +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 (cherry picked from commit 9065390ddc7b1ce2613777f6a947200950a5ac71) --- 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 fa8ef72082c1..6756e1ebb936 100644 --- a/UPDATING +++ b/UPDATING @@ -18,6 +18,14 @@ and/or ports. be shipped in the packages they belong to. If you want to continue building split man packages, set WITH_MANSPLITPKG=1. +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. + 20250916: 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