aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEd Maste <emaste@FreeBSD.org>2021-12-29 19:59:06 +0000
committerEd Maste <emaste@FreeBSD.org>2021-12-29 20:14:06 +0000
commitedadbb46065d9ee9559140b2522197fcdba57064 (patch)
tree455c49df95170f3e7c6f045764e6296c63f8e755
parent6b1c5775d1c29c7c42201254df82aca9f3820bc8 (diff)
downloadsrc-edadbb46065d9ee9559140b2522197fcdba57064.tar.gz
src-edadbb46065d9ee9559140b2522197fcdba57064.zip
ar: deprecate -T option
Other ar implementations (GNU, LLVM) use -T to mean thin archive rather than use only the first fifteen characters of the archive member name. We support both -T and -f for this, with -f documented as an alias of -T. An exp-run showed that the ports invoking `ar -T` expect thin archives, not truncated names. Switch -f to be the documented flag for this behaviour, and emit a warning when -T is used. The warning will be changed to an error in the future (in main), once ports no longer use -T. PR: 260523 [exp-run] MFC after: 1 week Sponsored by: The FreeBSD Foundation
-rw-r--r--usr.bin/ar/ar.114
-rw-r--r--usr.bin/ar/ar.c6
2 files changed, 14 insertions, 6 deletions
diff --git a/usr.bin/ar/ar.1 b/usr.bin/ar/ar.1
index 9d9a860e6ca5..ce0dab1c5af7 100644
--- a/usr.bin/ar/ar.1
+++ b/usr.bin/ar/ar.1
@@ -23,7 +23,7 @@
.\"
.\" $FreeBSD$
.\"
-.Dd June 16, 2016
+.Dd December 29, 2021
.Dt AR 1
.Os
.Sh NAME
@@ -222,8 +222,8 @@ and
.Fl U
options are specified on the command line, the final one takes precedence.
.It Fl f
-Synonymous with option
-.Fl T .
+Use only the first fifteen characters of the archive member name or
+command line file name argument when naming archive members.
.It Fl i Ar member-before
Synonymous with option
.Fl b .
@@ -314,8 +314,12 @@ List the files specified by arguments
in the order in which they appear in the archive, one per line.
If no files are specified, all files in the archive are listed.
.It Fl T
-Use only the first fifteen characters of the archive member name or
-command line file name argument when naming archive members.
+Deprecated alias for
+.Fl f .
+In other implementations of
+.Nm ,
+.Fl T
+creates a "thin" archive.
.It Fl u
Conditionally update the archive or extract members.
When used with the
diff --git a/usr.bin/ar/ar.c b/usr.bin/ar/ar.c
index fdfebb8eb459..4353efcb0ff2 100644
--- a/usr.bin/ar/ar.c
+++ b/usr.bin/ar/ar.c
@@ -66,6 +66,7 @@ __FBSDID("$FreeBSD$");
#include <sys/queue.h>
#include <sys/types.h>
#include <archive.h>
+#include <err.h>
#include <errno.h>
#include <getopt.h>
#include <libgen.h>
@@ -193,7 +194,6 @@ main(int argc, char **argv)
Uflag = 0;
break;
case 'f':
- case 'T':
bsdar->options |= AR_TR;
break;
case 'j':
@@ -226,6 +226,10 @@ main(int argc, char **argv)
case 's':
bsdar->options |= AR_S;
break;
+ case 'T':
+ warnx("-T is deprecated");
+ bsdar->options |= AR_TR;
+ break;
case 't':
set_mode(bsdar, opt);
break;