From nobody Fri Dec 19 17:16:20 2025 X-Original-To: dev-commits-src-main@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4dXvMS6WTnz6M4Rt for ; Fri, 19 Dec 2025 17:16:20 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R12" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4dXvMS5pgTz3vCK for ; Fri, 19 Dec 2025 17:16:20 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1766164580; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=LxKgp5h/H4QnvCIMNhlNe1GKLbLE7Z0pvie1Lh8WN0g=; b=bOlHYKwIgQfAaZ13c6HTnu4AH7qqiCnPxcUDfx82JjgOzfNuYCRQc/FYKtjPONSa63qJX2 GZ6JlDhHoFo4jrKXM17GzDujN00JciIoNQzICp0Y32V87+fA27R+6ZJxsVzqrolBV/ru7b DUnsdmSdB6FfKmSqPSC00LsoUDj1YOWm3YGWN4J38v0xEkdRrx/PcN3mWBMuE3JBVbKPKA leUxxIjnD2L9FJStngsKYC07d8r0gGSswh4A6EXCZeQvqJgRKJtBmq5EzbUJuzzJ86GX4w RBlFJYmxRyC6A2wTXh2Zt29sKwfGz7gAljosex7pvnnZcD2yJxP6bCMEsUbAXw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1766164580; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=LxKgp5h/H4QnvCIMNhlNe1GKLbLE7Z0pvie1Lh8WN0g=; b=qycURGIuvRwCK0Yeqau+yHKwg5CyVOko3dcFOJ6fC3cPUPUSCdm7jSxeDcQK8xut7EZni3 OcPrhSh2WxVRoezwq/32wplAYjhFErcnLKdzYilNN6gBj/0lQElZxfieEA2qyrrBfA1rHw HE8nOPXgX/MNpdZEPzoA/9q7WZl0hKhAQrnwv7+eKOC+JTi3K6e41eIs70oasutRUHYeO8 cDFGVSe7BlRq9FcHJHfV3+uveoKfIkJwYNJi9u0OxOSAlMFZo2x97wAWwKtKchSPs7VjMc 03eO57Va2DoYqWss4uGpymQCgR2wEg0UAD+UFZllXebzBCFPpdynXSQ0DmMogA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1766164580; a=rsa-sha256; cv=none; b=pAOugaBq0ycpV9ZkjbLboY4h/ey5HH3IXtUU1X7KoC8avvYsm6H+kglr6Wq0bTbo0LUrux t/j7k1gSD8NL9Qlkg54h+oCQ/1p0/yNov7skuybnberXzJFb2e3KWx5oifqpwqYRKmIpTL a0EBN9Q8kZS22jskPxLE2qBQq+YmQIq5NMiqu4suEaMXpy4RtK8JG98YCsLEgy7jzWf8q8 4nMWr5f60JkYf7mTjNq6EaWTKtBkjtYcbOv7l+OO+wpBm70R2J7kNJKYwCcn8X35EpgfDr CUqHNWHJS00CMKnLlvDGXUMnIqNPMyw7SAuhRvhIGsuhtxJALJ8pUCQdFjv1oA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4dXvMS56Dnz2K7 for ; Fri, 19 Dec 2025 17:16:20 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id d4d4 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Fri, 19 Dec 2025 17:16:20 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Dag-Erling=?utf-8?Q? Sm=C3=B8rg?=rav Subject: git: 4100bd6caa66 - main - usr.bin: Remove intrinsic utilities List-Id: Commit messages for the main branch of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-main@freebsd.org Sender: owner-dev-commits-src-main@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: des X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 4100bd6caa66434bc901ca48d7364bc2b5fe2cfd Auto-Submitted: auto-generated Date: Fri, 19 Dec 2025 17:16:20 +0000 Message-Id: <69458864.d4d4.19320f65@gitrepo.freebsd.org> The branch main has been updated by des: URL: https://cgit.FreeBSD.org/src/commit/?id=4100bd6caa66434bc901ca48d7364bc2b5fe2cfd commit 4100bd6caa66434bc901ca48d7364bc2b5fe2cfd Author: Dag-Erling Smørgrav AuthorDate: 2025-12-19 17:13:23 +0000 Commit: Dag-Erling Smørgrav CommitDate: 2025-12-19 17:15:40 +0000 usr.bin: Remove intrinsic utilities These utilities can only function correctly if implemented as shell builtins and exist only because POSIX previously required them. As of POSIX 2024, they have all been reclassified as intrinsic utilities and are no longer required to exist in PATH. We can therefore retire them. Cf. XBD 1.7, XRAT C.1.8, Austin Group bug 854. Note that kill(1) is also considered an intrinsic utility (because only the shell can interpret job IDs correctly), but we have a working standalone implementation, which we will keep. PR: 291686 Relnotes: yes Reviewed by: imp, emaste Differential Revision: https://reviews.freebsd.org/D54239 --- ObsoleteFiles.inc | 17 +++++++++++++++ share/man/man1/builtin.1 | 38 ++++++++++++++------------------- targets/pseudo/userland/Makefile.depend | 1 - usr.bin/Makefile | 3 +-- usr.bin/alias/Makefile | 19 ----------------- usr.bin/alias/Makefile.depend | 10 --------- usr.bin/alias/generic.sh | 3 --- 7 files changed, 34 insertions(+), 57 deletions(-) diff --git a/ObsoleteFiles.inc b/ObsoleteFiles.inc index 1e7271c39385..5034f84e1295 100644 --- a/ObsoleteFiles.inc +++ b/ObsoleteFiles.inc @@ -51,6 +51,23 @@ # xargs -n1 | sort | uniq -d; # done +# 20251215: Remove intrinsic utilities +OLD_FILES+=usr/bin/alias +OLD_FILES+=usr/bin/bg +OLD_FILES+=usr/bin/cd +OLD_FILES+=usr/bin/command +OLD_FILES+=usr/bin/fc +OLD_FILES+=usr/bin/fg +OLD_FILES+=usr/bin/getopts +OLD_FILES+=usr/bin/hash +OLD_FILES+=usr/bin/jobs +OLD_FILES+=usr/bin/read +OLD_FILES+=usr/bin/type +OLD_FILES+=usr/bin/ulimit +OLD_FILES+=usr/bin/umask +OLD_FILES+=usr/bin/unalias +OLD_FILES+=usr/bin/wait + # 20251208: Rename iwm8000C to correct name. OLD_FILES+=boot/firmware/iwm8000C diff --git a/share/man/man1/builtin.1 b/share/man/man1/builtin.1 index ee89006caea5..2fb9859ca545 100644 --- a/share/man/man1/builtin.1 +++ b/share/man/man1/builtin.1 @@ -26,7 +26,7 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.Dd March 29, 2025 +.Dd December 16, 2025 .Dt BUILTIN 1 .Os .Sh NAME @@ -61,9 +61,9 @@ and the standard shells that provide them. .It Ic \&[ Ta Yes Ta \&No Ta Yes .It Ic { Ta \&No Ta \&No Ta Yes .It Ic } Ta \&No Ta \&No Ta Yes -.It Ic alias Ta No* Ta Yes Ta Yes +.It Ic alias Ta \&No Ta Yes Ta Yes .It Ic alloc Ta \&No Ta Yes Ta \&No -.It Ic bg Ta No* Ta Yes Ta Yes +.It Ic bg Ta \&No Ta Yes Ta Yes .It Ic bind Ta \&No Ta \&No Ta Yes .It Ic bindkey Ta \&No Ta Yes Ta \&No .It Ic break Ta \&No Ta Yes Ta Yes @@ -71,9 +71,9 @@ and the standard shells that provide them. .It Ic builtin Ta \&No Ta \&No Ta Yes .It Ic builtins Ta \&No Ta Yes Ta \&No .It Ic case Ta \&No Ta Yes Ta Yes -.It Ic cd Ta No* Ta Yes Ta Yes +.It Ic cd Ta \&No Ta Yes Ta Yes .It Ic chdir Ta \&No Ta Yes Ta Yes -.It Ic command Ta No* Ta \&No Ta Yes +.It Ic command Ta \&No Ta \&No Ta Yes .It Ic complete Ta \&No Ta Yes Ta \&No .It Ic continue Ta \&No Ta Yes Ta Yes .It Ic default Ta \&No Ta Yes Ta \&No @@ -93,22 +93,22 @@ and the standard shells that provide them. .It Ic exit Ta \&No Ta Yes Ta Yes .It Ic export Ta \&No Ta \&No Ta Yes .It Ic false Ta Yes Ta \&No Ta Yes -.It Ic fc Ta No* Ta \&No Ta Yes -.It Ic fg Ta No* Ta Yes Ta Yes +.It Ic fc Ta \&No Ta \&No Ta Yes +.It Ic fg Ta \&No Ta Yes Ta Yes .It Ic filetest Ta \&No Ta Yes Ta \&No .It Ic fi Ta \&No Ta \&No Ta Yes .It Ic for Ta \&No Ta \&No Ta Yes .It Ic foreach Ta \&No Ta Yes Ta \&No -.It Ic getopts Ta No* Ta \&No Ta Yes +.It Ic getopts Ta \&No Ta \&No Ta Yes .It Ic glob Ta \&No Ta Yes Ta \&No .It Ic goto Ta \&No Ta Yes Ta \&No -.It Ic hash Ta No* Ta \&No Ta Yes +.It Ic hash Ta \&No Ta \&No Ta Yes .It Ic hashstat Ta \&No Ta Yes Ta \&No .It Ic history Ta \&No Ta Yes Ta \&No .It Ic hup Ta \&No Ta Yes Ta \&No .It Ic if Ta \&No Ta Yes Ta Yes .It Ic jobid Ta \&No Ta \&No Ta Yes -.It Ic jobs Ta No* Ta Yes Ta Yes +.It Ic jobs Ta \&No Ta Yes Ta Yes .It Ic kill Ta Yes Ta Yes Ta Yes .It Ic limit Ta \&No Ta Yes Ta \&No .It Ic local Ta \&No Ta \&No Ta Yes @@ -125,7 +125,7 @@ and the standard shells that provide them. .It Ic printf Ta Yes Ta \&No Ta Yes .It Ic pushd Ta \&No Ta Yes Ta \&No .It Ic pwd Ta Yes Ta \&No Ta Yes -.It Ic read Ta No* Ta \&No Ta Yes +.It Ic read Ta \&No Ta \&No Ta Yes .It Ic readonly Ta \&No Ta \&No Ta Yes .It Ic rehash Ta \&No Ta Yes Ta \&No .It Ic repeat Ta \&No Ta Yes Ta \&No @@ -148,27 +148,21 @@ and the standard shells that provide them. .It Ic times Ta \&No Ta \&No Ta Yes .It Ic trap Ta \&No Ta \&No Ta Yes .It Ic true Ta Yes Ta \&No Ta Yes -.It Ic type Ta No* Ta \&No Ta Yes -.It Ic ulimit Ta No* Ta \&No Ta Yes -.It Ic umask Ta No* Ta Yes Ta Yes -.It Ic unalias Ta No* Ta Yes Ta Yes +.It Ic type Ta \&No Ta \&No Ta Yes +.It Ic ulimit Ta \&No Ta \&No Ta Yes +.It Ic umask Ta \&No Ta Yes Ta Yes +.It Ic unalias Ta \&No Ta Yes Ta Yes .It Ic uncomplete Ta \&No Ta Yes Ta \&No .It Ic unhash Ta \&No Ta Yes Ta \&No .It Ic unlimit Ta \&No Ta Yes Ta \&No .It Ic unset Ta \&No Ta Yes Ta Yes .It Ic unsetenv Ta \&No Ta Yes Ta \&No .It Ic until Ta \&No Ta \&No Ta Yes -.It Ic wait Ta No* Ta Yes Ta Yes +.It Ic wait Ta \&No Ta Yes Ta Yes .It Ic where Ta \&No Ta Yes Ta \&No .It Ic which Ta Yes Ta Yes Ta \&No .It Ic while Ta \&No Ta Yes Ta Yes .El -.Pp -\&No*: Commands marked -.Ql No* -exist externally, but are implemented as scripts using a -.Nm -command of the same name. .Ss Keybinds The command line environment also provides the following default keyboard bindings: diff --git a/targets/pseudo/userland/Makefile.depend b/targets/pseudo/userland/Makefile.depend index e21d7dd70eb7..e159fdf39822 100644 --- a/targets/pseudo/userland/Makefile.depend +++ b/targets/pseudo/userland/Makefile.depend @@ -128,7 +128,6 @@ DIRDEPS+= \ sbin/sysctl \ sbin/tunefs \ sbin/umount \ - usr.bin/alias \ usr.bin/apply \ usr.bin/ar \ usr.bin/asa \ diff --git a/usr.bin/Makefile b/usr.bin/Makefile index da1a9b3a681f..844a2312fd73 100644 --- a/usr.bin/Makefile +++ b/usr.bin/Makefile @@ -1,7 +1,6 @@ .include -SUBDIR= alias \ - apply \ +SUBDIR= apply \ asa \ awk \ backlight \ diff --git a/usr.bin/alias/Makefile b/usr.bin/alias/Makefile deleted file mode 100644 index 1098c7b7ef1f..000000000000 --- a/usr.bin/alias/Makefile +++ /dev/null @@ -1,19 +0,0 @@ -SCRIPTS=generic.sh -SCRIPTSNAME=alias - -LINKS= ${BINDIR}/alias ${BINDIR}/bg \ - ${BINDIR}/alias ${BINDIR}/cd \ - ${BINDIR}/alias ${BINDIR}/command \ - ${BINDIR}/alias ${BINDIR}/fc \ - ${BINDIR}/alias ${BINDIR}/fg \ - ${BINDIR}/alias ${BINDIR}/getopts \ - ${BINDIR}/alias ${BINDIR}/hash \ - ${BINDIR}/alias ${BINDIR}/jobs \ - ${BINDIR}/alias ${BINDIR}/read \ - ${BINDIR}/alias ${BINDIR}/type \ - ${BINDIR}/alias ${BINDIR}/ulimit \ - ${BINDIR}/alias ${BINDIR}/umask \ - ${BINDIR}/alias ${BINDIR}/unalias \ - ${BINDIR}/alias ${BINDIR}/wait - -.include diff --git a/usr.bin/alias/Makefile.depend b/usr.bin/alias/Makefile.depend deleted file mode 100644 index 11aba52f82cf..000000000000 --- a/usr.bin/alias/Makefile.depend +++ /dev/null @@ -1,10 +0,0 @@ -# Autogenerated - do NOT edit! - -DIRDEPS = \ - - -.include - -.if ${DEP_RELDIR} == ${_DEP_RELDIR} -# local dependencies - needed for -jN in clean tree -.endif diff --git a/usr.bin/alias/generic.sh b/usr.bin/alias/generic.sh deleted file mode 100644 index c07b119b560f..000000000000 --- a/usr.bin/alias/generic.sh +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/sh -# This file is in the public domain. -builtin ${0##*/} ${1+"$@"}