We use -xattr in our openrsync tests for convenience, and it seems like
a good addition to FreeBSD. -xattr and -xattrname will both consult all
available namespaces by default, but -xattrname allows filtering by
namespace using a "user:" or "system:" prefix.
Inspired by: https://github.com/apple-oss-distributions/shell_cmds
Reviewed by: kib, rmacklem
Sponsored by: Klara, Inc.
Differential Revision: https://reviews.freebsd.org/D55286
Add error numbers to the exit codes so that readers can decode them
without having to use a separate utility. Organize exits by error code.
Mark up the error constants with the error constant macro, even though
this is really not very helpful because people will search for the error
code, the macro is explicitly for the constants and not the codes.
While where, align and alphabetize the options list as well, fix
misaligned padding in an example, and a one-sentance-per-line error.
MFC after: 3 days
Reported by: Antranig Vartanian <antranigv@freebsd.am>
Differential Revision: https://reviews.freebsd.org/D48470
* Use ourselves as test file instead of /COPYRIGHT, which may or may not
be present in the test environment.
* atf-check understands \n in strings, use it.
* Some file systems don't like creating small holes, so create large ones
instead. This means we need two variables: ps (page size) is the
minimum size of a data region and the alignment for a hole, while hs
(hole size) is the minimum size of the holes we create. This makes no
difference on FreeBSD but makes it easier to port the test to other
platforms.
MFC after: 1 week
Sponsored by: Klara, Inc.
Reviewed by: kevans
Differential Revision: https://reviews.freebsd.org/D56304
* The f_flag test may fail if a component of the full path to the
temporary directory is a symbolic link.
* The n_flag test had an empty head; give it a description.
* Use consistent quoting.
MFC after: 1 week
Sponsored by: Klara, Inc.
Reviewed by: kevans
Differential Revision: https://reviews.freebsd.org/D56293
This change adds the ability to examine the contents of multicast
routing tables for other FIBs without the need for executing
`netstat` with `setfib(1)`.
MFC after: 3 days
Sponsored by: Klara, Inc.
Sponsored by: Stormshield
Differential Revision: https://reviews.freebsd.org/D56205
Reviewed by: glebius, markj, zlei
Recurring banners except the first are printed just after the latest
interval's statistics line, giving the false impression that the latter
are omitted. It is also better to print a new banner only if it is
going to be followed by a new line of statistics, in case netstat(1) is
interrupted or we have reached the number of iterations specified by
'-q'.
Fix this by pushing printing these banners inside the loop producing
statistics lines, after having waited for the next interval.
The first banner is printed before the loop, as we want it to be printed
immediately at launch, even if at this point we do not have statistics
to display (we have to wait for an interval to compute these, as they
are based on a difference).
While here, remove the 'goto' spaghetti by putting banner printing into
its own private function and using a proper infinite loop in
sidewaysintpr().
While here, document the why of the 21 statistics line span between two
banners.
While here, check for the number of output lines of statistics once such
a line has effectively been printed. This allows to remove the internal
incrementation performed when reading '-w''s argument, which was a hack
to compensate the misplaced check.
While here, in the manual page, simplify the description of the '-w'
mode and mention that passing 0 to '-q' means "no count limit".
Reviewed by: glebius
Fixes: 84c1edcbad ("Rewrite netstat/if.c to use ...")
Fixes: bf10ffe1d3 ("Add a new option, -q howmany, ...")
MFC after: 1 week
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D56227
The argv test checks ps(1) output immediately after backgrounding yes(1), but
the forked child briefly shows the parent shell's argv before exec(2) replaces it.
This caused intermittent failures where ps(1) captured the atf shell wrapper
command line instead of "yes y".
Approved by: des
Sponsored by: Netflix
Differential Revision: https://reviews.freebsd.org/D56231
WITHOUT_BZIP2_SUPPORT only affects a single binary, gzip(1); it doesn't
remove bzip2 support from other bits (e.g., libarchive) and there are
no similar options for gzip, xz or zstd.
WITHOUT_BZIP2 has not done anything at all since it was first added
in 2007.
MFC after: never
Discussed on: arch@
Reviewed by: imp, des, adrian, delphij, emaste
Differential Revision: https://reviews.freebsd.org/D56148
Sponsored by: https://www.patreon.com/bsdivy
Netlink usage is growing in FreeBSD. This patch adds support to
`truss(1)` to decode Netlink headers in sendmsg/recvmsg calls, making
debugging network configuration tools significantly easier.
Changes:
libsysdecode: Add `sysdecode_netlink()` to parse struct `nlmsghdr`.
truss: Detect `AF_NETLINK` sockets and decode the message payload.
Reviewed by: kp
Signed-off-by: Ishan Agrawal <iagrawal9990@gmail.com>
Github PR: https://github.com/freebsd/freebsd-src/pull/1950
This avoid leaking pipe fd in children and simplifies the code
MFC After: 1 week
Reviewed by: kib
Differential Revision: https://reviews.freebsd.org/D56120
* Stop abbreviating macro names half-randomly to 8 chars, this is no
longer 1990.
* Likewise for function names (in particular use doindex for a function
that is notably different from the classic index function).
* Rename a few things for more fidelity: eval is the builtin name, not
expr and your maketemp/mkstemp conform to mkstemp semantics for better
security.
* Rewrap a few comments that were ludicrously short.
No functional changes except improved accuracy of some error messages.
MFC after: 1 week
Differential Revision: https://reviews.freebsd.org/D55793
We generally use TOOLS_PREFIX being set to indicate that we are building
in the cross-build tools stage. This check was missing for llvm.prog.mk
consumers other than *tblgen, which have not previously been built as
cross tools.
Reviewed by: dim
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D55930
This adds my date and place of birth to FreeBSD's calendar file, so I
can let the system(tm) remind me when that counter increments.
Confirmed to be working with the following command:
```
$ calendar -f usr.bin/calendar/calendars/calendar.freebsd -t 18.08
Aug 18 Pierre Pronchery <khorben@FreeBSD.org> born in Nantes, France, 1982
[...]
```
Reviewed by: philip (mentor)
Approved by: philip (mentor)
Differential Revision: https://reviews.freebsd.org/D55825
The kvm(3) mode was actually non-functional since FreeBSD 8 for kernels
with VIMAGE, since FreeBSD 12 for the GENERIC kernel and since FreeBSD 14
for all kernels. The reason for that is that systat(1) tried to lookup
symbol "tcb" to check if kvm(3) is working. The symbol no longer exist in
the kernel.
A side effect was that systat(1) lost true kvm(3) support for all other
modes, e.g. -swap or -pigs. The tool was still working, but libkvm was
just a shim to sysctl(3) API.
So, contrary to what the header line says, this change actually restores
the kvm(3) support for other modes. Now we read the "allproc" symbol.
This was the last tool that abused _WANT_INPCB.
Previously they were hard links. This change will support future
packaging changes by decoupling the prefixed (e.g. llvm-ar) and
unprefixed (e.g. ar) names.
Reviewed by: dim, ivy
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D55693
If we're going to overengineer this, we may as well go all the way.
* If multiple arguments are given, concatenate them into a space-
separated list like GNU coreutils does.
* When duplicating the expletive, do so exponentially.
* Most importantly, don't modify the memory that argv points to.
MFC after: 1 week
Sponsored by: Klara, Inc.
Reviewed by: kevans, allanjude
Differential Revision: https://reviews.freebsd.org/D55617
When building WITHOUT_LLVM_BINUTILS /usr/bin/c++filt is the one from
ELF Tool Chain.
PR: 293610
Fixes: 5d757312ad ("build: Retire LLVM_CXXFILT option")
Sponsored by: The FreeBSD Foundation
when LLVM_BINUTILS is enabled (which is the default).
PR: 293610
Fixes: 5d757312ad ("build: Retire LLVM_CXXFILT option")
Sponsored by: The FreeBSD Foundation
The LLVM_CXXFILT option was added when we used ELF Tool Chain tools by
default. ELF Tool Chain's c++filt failed to demangle some symbols, so
we added a special case to install LLVM's version and enabled it by
default.
The rest of the LLVM tools are now used by default, as of commit
9fa94e1c09 ("Turn on WITH_LLVM_CXXFILT by default"). Simplify the
build logic by removing a special case and just include llvm-cxxfilt
with the rest of the LLVM utilities.
Reviewed by: dim
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D55654
Prior to commit 6973701a00 ("1. Make the BSD version of cpio the
default [1]") GNU cpio was installed unconditionally. The BSD_CPIO
option was added when we introduced the BSD licensed, libarchive-based
cpio, to support installation of GNU cpio, libarchive cpio, or both.
GNU cpio was removed long ago and there is no longer a need for this
option. We can just install BSD cpio unconditionally.
Reviewed by: des
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D55467
These were obtained from IBM specs and actual tapes/drives.
Standard LTO-10 cartriges hold 30TB raw, 75TB with 2.5:1 compression.
Premium LTO-10 cartridges hold 40TB raw, 100TB with 2.5:1 compression.
LTO-10 tape drives are not backward compatible with previous generation
LTO tapes. (This is a change from older generation drives.)
Since the Premium tape is a new thing for LTO, we'll call this density
code LTO-10P vs. the standard LTO-10. The barcode identifier for LTO-10
tapes is "LA"; the barcode identifier for LTO-10P tapes is "PA".
LTO-10 cartridges contain 1035m of tape, while LTO-10 Premium
cartridges contain 1337m of tape and have slightly higher density.
(Obtained from MAM data on actual tape cartridges and the density
report, obtained via 'mt getdensity'.) LTO-10 cartridges use a
polyethylene naphthalate (PEN) film substrate. LTO-10 Premium
cartridges use an Aramid (aromatic polyamide) substrate that is thinner
and stronger, allowing a longer tape to fit in the same cartridge form
factor.
usr.bin/mt/mt.1:
Add density codes and specs for LTO-10 and LTO-10P.
lib/libmt/mtlib.c:
Add density codes for LTO-10 and LTO-10P.
Sponsored by: Spectra Logic
MFC after: 3 days
Use exit status 2 for errors, 1 only to indicate that differences were
found between the inputs (in some operating modes).
MFC after: 1 week
Sponsored by: Klara, Inc.
Reviewed by: ngie, bapt
Differential Revision: https://reviews.freebsd.org/D55608
* Order includes.
* Turn the diff type into an enum.
* Turn an unreachable error message into an assertion.
* Remove unused debugging code.
* Remove some dead assignments.
* Consistently use 1 instead of EXIT_FAILURE.
* Turn a return from main() into an exit().
MFC after: 1 week
Sponsored by: Klara, Inc.
Reviewed by: bapt
Differential Revision: https://reviews.freebsd.org/D55517
"These examples appear to be originally noted thirteen years ago by
Mark Saad, contributed by eadler, put into a patch by Felix Johnson,
and made into mdoc by myself. Finally, put this bug to rest." ~ziaee
PR: 167742
Co-authored-by: eadler, ziaee, Mark Saad
Differential Revision: https://reviews.freebsd.org/D48877
Summary: A trivial resource leak fix; free the allocated memory before return.
Test Plan: Code inspection, run command.
I built a simple program that waits for a signal on a kqueue, then ran
that. The standard procstat displays:
```
fbsd-dev% Waiting for SIGTERM...
procstat -a kqueue
PID KQFD FILTER IDENT FLAGS FFLAGS DATA UDATA STATUS
84352 3 SIGNAL 15 C - 0 0x0 -
```
The revised procstat displays:
```
fbsd-dev% sudo LD_LIBRARY_PATH=/usr/obj/usr/home/dab/git/freebsd/src/arm64.aarch64/lib/libutil /usr/obj/usr/home/dab/git/freebsd/src/arm64.aarch64/usr.bin/procstat/procstat -a kqueue
PID KQFD FILTER IDENT FLAGS FFLAGS DATA UDATA STATUS
84352 3 SIGNAL 15 C - 0 0x0 -
fbsd-dev%
```
As expected, the two displays are identical. This doesn't prove that
the leak is gone, but it does prove that the revised command still
operates correctly. I think it can clearly be seen from inspection of
the change that the leak has been remedied.
Reviewed-bys: vangyzen
Differential Revision: https://reviews.freebsd.org/D55422