fusefs: respect the server's FUSE_SETXATTR_EXT flag
FUSE protocol 7.33 extended the FUSE_SETXATTR request format. But the
extension is optional. The server must opt-in by setting the
FUSE_SETXATTR_IN flag during FUSE_INIT. We were wrongly using the
extended format for any server using protocol 7.33 or later.
PR: 290547
Co-authored-by: CismonX <admin at cismon.net>
Fixes: d5e3cf41e89 ("fusefs: Upgrade FUSE protocol to version 7.33")
MFC after: 3 days
(cherry picked from commit e8449c0e0fcb8a3eb5872cbee5c3dde4b05a5f50)
fusefs: Fix intermittency in the BadServer.ShortWrite test case
We were using the m_quit bit for two similar but distinct uses:
* To instruct the server to quit
* To cope with the kernel forcibly unmounting the fs
Fix the intermittent test failure by adding a separate bit,
m_expect_unmount, to handle cases like the latter.
Reported by: Siva Mahadevan <me at svmhdvn.name>
MFC after: 1 week
Revied by: Siva Mahadevan <me at svmhdvn.name>
Differential Revision: https://reviews.freebsd.org/D53357
(cherry picked from commit d86025c1d49c84c4dc8c3635c83c078ad56e5a53)
fusefs: fix intermittency in the BadServer.ShortWrite test
This test implicitly depended on the order in which two threads
completed. If the test thread finished first, the test would pass. But
if the mock file system thread did, it would attempt to read from an
unmounted file system, and fail. As a result, the test would randomly
fail once out of every several thousand executions. Fix it by telling
the mock file system's event loop to exit without attempting to read any
more events.
Reported by: Siva Mahadevan <me at svmhdvn.name>
MFC after: 1 week
Reviewed by: Siva Mahadevan <me at svmhdvn.name>
Differential Revision: https://reviews.freebsd.org/D53080
(cherry picked from commit d1bd541b385d49d2ae3a8bad9df72779b606e208)
mlx5: Preallocate ktls tags asynchronously
Change tag preallocation to happen asynchronously when an interface is
brought up, so as to reduce boot times when preallocating tags.
- A new mlx5-tls-prealloc_wq is allocated when preallocation is
desired, and started when an interface is opened
- The bulk of the prealloc code remains the same, except the
allocations are now M_NOWAIT. M_NOWAIT is needed because, since the
preallocation is done asynchronously, and since tag allocation is
not instant, we could race with a real TLS session trying to
allocate a tag. Note that in this case, we take allocation failure
as a sign that we were unable to obtain the entire zone due to there
being other consumers. This was suggested by @markj as a way to
keep things simple, after discussing why uma_zone_get_cur() didn't
immediately report a fully allocated zone. If this turns out to be
problematic, we could use uma_zone_set_maxaction() to stop
pre-allocations (also suggested by Mark)
[4 lines not shown]
inetd.8: Remove the enumeration of examples
The user can trivially see the list of examples in /etc/inetd.conf
by looking at the file, so there's no need to include an entire
paragraph in the manual enumerating the examples which are provided.
MFC after: 3 days
Reviewed by: 0mp
Sponsored by: https://www.patreon.com/bsdivy
Differential Revision: https://reviews.freebsd.org/D52740
ice.4: Add ToC and E835 and editorial pass
This manual is large enough and well structured enough that we can have
a clickable table of contents. Use that to move some subsections which
should not appear in Hardware Release Note to the description section.
Adjust subsection names so this will work, preserving parentheticals
for search by moving them to the bodies just below.
Strip unnecessary copyright symbols and escaped hyphens. Copyright
symbols never appear in the content of manual pages, including other
Intel manual pages, and appear to break the Hardware Release Notes.
Escaped hyphens were necessary decades ago for manual pages written
in man(7), but this page is written in mdoc(7). Also misc touchups.
Add the recently added E835 devices to the supported HARDWARE list.
Add the speed ranges to description like the other ethernet drivers.
PR: 290778
MFC after: 1 day
[5 lines not shown]
release: Make fetch happen in GCE images
We want to fetch distfiles, regardless of whether they contain known
vulnerabilities or we're building images for a different version of
FreeBSD.
Reviewed by: ivy
MFC after: 3 days
Differential Revision: https://reviews.freebsd.org/D53569
(cherry picked from commit 8234c1899b305bcd23323a5870e459028b91bfe4)
vmimage.subr: pkg autoremove after pkg install
A bug in pkg, which somehow only surfaced as a consequence of pkgbase,
results in pkg install sometimes pulling in false dependencies. This
problem might be limited to cases when the lib32 pkgbase packages are
not installed. In the case of EC2 "small" images, installing the
ebsnvme-id package results in binutils, gcc12-devel, gmp, indexinfo,
liblz4, mpc, mpfr, and zstd packages being installed.
These false dependencies are however not recorded as dependencies --
at some level pkg does understand that they're not needed -- so running
pkg autoremove immediately after pkg install cleans them up.
Note: This does not remove lines from METALOG corresponding to these
packages, and makefs emits an error when it attempts to create the
filesystem but cannot find the files listed in METALOG -- but makefs
does seem to complete normally despite the error messages.
This change should be reverted once the pkg issue has been located and
[8 lines not shown]
release: Don't try to fetch distfiles for pkgbase
In order to comply with the require that GCE images must include their
source code, we fetch distfiles for all of the packages installed into
GCE images. This fails for obvious reasons for packages with an origin
of base/*; filter those out to generate the list to fetch.
Reviewed by: ivy
MFC after: 3 days
Differential Revision: https://reviews.freebsd.org/D53568
(cherry picked from commit 05b3a45cd065c93cc1262d31675e3e102784400a)
Makefile.incl1: .WAIT before distribute in etc
In order to make sure that man pages are all installed before we run
makewhatis to generate mandoc.db files, we have long placed etc at the
end of the list of subdirectories being recursed into by the build.
In order to support installworld -jN, a .WAIT was more recently added
here.
With the recent adoption by the release engineering team of parallel
*release* builds (aka 'make release -jN') it is now also necessary to
add the same .WAIT before recursing for the 'distribute' target, as we
otherwise end up with distribution sets containing incomplete mandoc.db
files.
Reviewed by: bdrewery
PR: 289683
MFC after: 3 days
Sponsored by: https://www.patreon.com/cperciva
Differential Revision: https://reviews.freebsd.org/D53533
[2 lines not shown]
release: GCE builds depend on ftp
GCE images are required by Google to include their source code; we do
this by extracting {src,ports}.txz into the images, from the (legacy)
distribution sets.
Make sure those distribution sets actually exist.
Reviewed by: ivy
MFC after: 3 days
Differential Revision: https://reviews.freebsd.org/D53567
(cherry picked from commit 7f536b1c1146c4bc5cde336e1fe7a083f2874f11)
libcasper: Move everything to the libcasper package
The libcasper package exists to contain libcasper, but for some reason
only the libcap_net service was in the package, with libcasper itself
and the rest of the services being in runtime. Move everything to the
libcasper package, except tests which stay in the tests package.
MFC after: 1 day
Reviewed by: emaste
Sponsored by: https://www.patreon.com/bsdivy
Differential Revision: https://reviews.freebsd.org/D53576
(cherry picked from commit b8697ac70ebfce2d8e3df6c67bbf37910793b199)
libkadm5clnt: Fix library symlink install
libkadm5clnt_mit installs a symlink from libkadm5clnt.so for backward
compatibility, but it neglected to include the package tags, so the
symlink was missing from pkgbase builds. Add ${DEV_TAG_ARGS} to the
install command.
Reported by: Mark Millard <marklmi at yahoo.com>
MFC after: 1 day
Reviewed by: emaste
Sponsored by: https://www.patreon.com/bsdivy
Differential Revision: https://reviews.freebsd.org/D53574
(cherry picked from commit 707507c27f69f16de0ce3efee21b20d4f76328f8)
packages: Make set-base-dbg depend on set-optional-dbg
As set-base depends on set-optional, so should set-base-dbg depend on
set-optional-dbg. Otherwise, people who install set-base-dbg will be
missing a bunch of debug packages.
MFC after: 1 day
Reviewed by: emaste
Sponsored by: https://www.patreon.com/bsdivy
Differential Revision: https://reviews.freebsd.org/D53575
(cherry picked from commit 3bcb2977704556ebf5c8847eaa7a46692b0bc1d0)
etc/mtree: Add package tags for /usr/include
Set the default package to clibs-dev, since that's where the vast
majority of include files comes from. Add explicit package tags
for the directories which are installed in their own package.
MFC after: 1 day
Reviewed by: emaste
Sponsored by: https://www.patreon.com/bsdivy
Differential Revision: https://reviews.freebsd.org/D53577
(cherry picked from commit 436618a427b4baaf42d8221ef07d14e3ba787d3a)
libcrypto: Install tests in the tests package
libcrypto's Makefile.inc used PACKAGE=openssl, which overrides the
PACKAGE=tests in libcrypto/tests/Makefile. Use PACKAGE?=openssl
instead to avoid this. This puts the OpenSSL tests in the tests
package where they belong.
MFC after: 1 day
Reviewed by: manu, ngie
Sponsored by: https://www.patreon.com/bsdivy
Differential Revision: https://reviews.freebsd.org/D53595
atf: Move the tests back to the tests package
Commit 9065390ddc7b moved atf to its own package, but mistakenly moved
the tests as well. Put the tests back into the test package.
Fixes: 9065390ddc7b ("packages: Remove the tests-dev package")
MFC after: 1 day
Reviewed by: emaste
Sponsored by: https://www.patreon.com/bsdivy
Differential Revision: https://reviews.freebsd.org/D53594
riscv: Treat pointer register as an input in fpe_store
The contents of the memory is an output, but the pointer to that memory
is an input. This was correct in the original version of D45697, but
when adding appropriate clobbers, the pointer operand was incorrectly
switched to an output rather than left an input for fpe_store.
Approved by: re (cperciva)
Reviewed by: jrtc27
Obtained from: CheriBSD
Fixes: 44d4ee7f3dad ("riscv: add FPE code.")
MFC after: 1 day
Sponsored by: AFRL, DARPA
Differential Revision: https://reviews.freebsd.org/D53441
(cherry picked from commit 91f66f9b377e09f59f481e653d8f64120a183806)
(cherry picked from commit 0b5e4af65d0d3dfaa318b8e6adaaa4297f94af17)
riscv: Treat pointer register as an input in fpe_store
The contents of the memory is an output, but the pointer to that memory
is an input. This was correct in the original version of D45697, but
when adding appropriate clobbers, the pointer operand was incorrectly
switched to an output rather than left an input for fpe_store.
Reviewed by: jrtc27
Obtained from: CheriBSD
Fixes: 44d4ee7f3dad ("riscv: add FPE code.")
MFC after: 1 day
Sponsored by: AFRL, DARPA
Differential Revision: https://reviews.freebsd.org/D53441
(cherry picked from commit 91f66f9b377e09f59f481e653d8f64120a183806)
OpenSSL: install .pc files from the exporters subdir
The .pc files generated in the root directory are used as part of the
build; they should never be installed. Use the versions from the
exporters subdirectory--which should be installed--as the .pc files
which are distributed with FreeBSD. This avoids the need for "fixing up"
these files after the fact (see `crypto/openssl/BSDmakefile` for more
details as part of this change).
Garbage collect `secure/lib/libcrypto/Makefile.version`, et al,
as they're orphaned files. They were technically unused prior to this
change as the vendor process properly embeds the version numbers in
various files, but this commit formalizes the removal.
This correction/clarification on the .pc files will be made in an
upcoming release of OpenSSL [1].
References:
1. https://github.com/openssl/openssl/issues/28803
[8 lines not shown]
crypto/openssl: remove autogenerated files
These files contain build host paths and other configuration details
that can be regenerated via the standard vendor import process. Don't
clutter up the FreeBSD tree with these files.
Add the paths to .gitignore to prevent them from accidentally being
added in a future update.
Approved by: re (cperciva)
MFC after: 1 week
Differential Revision: https://reviews.freebsd.org/D53044
(cherry picked from commit d271d2ce152435b14e309bd8b25f47a0f4a2040f)
(cherry picked from commit 0d5ef734e91e6b03312b54ab3463ed5608ed27fa)
openssl: add a simple smoke test for the legacy provider
This change adds a simple smoke test for the legacy provider to ensure
that the provider doesn't break in the future when performing updates.
This is not a functional or system test; the OpenSSL test suite does a
much better job at doing this than we can.
Approved by: re (cperciva)
MFC after: 1 week
Differential Revision: https://reviews.freebsd.org/D53045
(cherry picked from commit 3b6442370a17c57c4c290b9a8e1e8328da820705)
(cherry picked from commit 9b3c89ce8b2b6455d50e364708988c832672a042)
crypto/openssl: update component to 3.5.3
This change updates the sources for crypto/openssl. The subsequent
commit will update the build artifacts to match the 3.5.3 release.
More details about the update can be found in the related vendor branch
commits.
Approved by: re (cperciva)
MFC after: 1 week
Merge commit 'aed904c48f330dc76da942a8ee2d6eef9d11f572'
(cherry picked from commit 779e075df98da07468ec5dd13b44241110a2abf2)
crypto/openssl: apply polish to new vendor import process
This change does the following 2 things:
- Makes the build more repeatable by isolating the environment. This
prevents bmake from leaking variables into gmake and makes the overall
process a bit more robust.
- Add debug printouts to make the process more straightforward to the
reader and whoever is executing doing the current vendor import.
Approved by: re (cperciva)
MFC after: 1 month
Differential Revision: https://reviews.freebsd.org/D52420
(cherry picked from commit d18058b7b850c78f2ca1be746ab411c0bed5acc9)
(cherry picked from commit 22382d9e706baddac193f66c3a48b086fc53e98c)