chore(deps): update module cyphar.com/go-pathrs to v0.2.4 (main)#4081
Open
elastic-renovate-prod[bot] wants to merge 1 commit intomainfrom
Open
chore(deps): update module cyphar.com/go-pathrs to v0.2.4 (main)#4081elastic-renovate-prod[bot] wants to merge 1 commit intomainfrom
elastic-renovate-prod[bot] wants to merge 1 commit intomainfrom
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
v0.2.1->v0.2.4Warning
Some dependencies could not be looked up. Check the Dependency Dashboard for more information.
Release Notes
cyphar/libpathrs (cyphar.com/go-pathrs)
v0.2.4: libpathrs v0.2.4 -- "そう。神を生贄に捧げる!"Compare Source
This release includes a series of bugfixes and important packaging
improvements that were found to be necessary while preparing for making
libpathrs a default dependency of runc.
Added
EXTRA_RUSTC_FLAGSandEXTRA_CARGO_FLAGSvariables have been added toour
Makefile, making it easier for packaging tools to adjust builds whilestill using
make release.install.shnow accepts--rust-targetand--rust-buildmodeas parametersto make cross-compilation workflows easier to write (in particular, this is
needed for runc's release scripts).
only in the form of signed source and
cargo vendortarballs). The acceptedset of signing keys are available in
libpathrs.keyring.Changed
O_PATHresolver forprocfsnow has an additional bit of hardening(each component must be on a procfs -- previously we would check that it is
on the same mount, which is an even stronger requirement but on older kernels
it is possible to not have a mount ID to check against).
Fixed
Previously,
staticlibbuilds of libpathrs (i.e.,libpathrs.a)inadvertently included symbol versioned symbols (
@@​LIBPATHRS_X.Y), whichwould cause linker errors when trying to compile programs statically against
libpathrs.
This has been resolved, but downstream users who build runc without using
make releasewill need to take care to ensure they correctly set theLIBPATHRS_CAPI_BUILDMODEenvironment variable when building and buildlibpathrs.aandlibpathrs.soin separatecargo build(orcargo rustc) invocations. This is mostly necessary due to the lack of support for#[cfg(crate_type)].go-pathrsnow correctly builds on 32-bit architectures.When doing
procfsoperations, previously libpathrs would internally keep ahandle to
ProcfsBaseopen during the entire operation (due toDropsemantics in Rust) rather than closing the file descriptor as quickly as
possible. The file descriptor would be closed soon afterwards (and thus was
not a leak) but tools that search for file descriptor leaks (such as runc's
test suite) could incorrectly classify this as a leak. We now close this
ProcfsBasehandle far more aggressively.RHEL 8 kernels have backports of the fd-based mount API (
fsopen(2),open_tree(2), et al.) but somerunctesting found that they have very bad(and very difficult to debug) performance issues. Thus, to avoid broken
backports libpathrs will now explicitly refuse to use the fd-based mount API
if the reported kernel version is pre-5.2 and will instead fallback to the
less-secure
open("/proc").libpathrs 0.2.0 added some
fdinfo-based hardening to the procfsresolver when
openat2is not available. Unfortunately, one aspect of thishardening had a hard requirement on a kernel feature only added in Linux
5.14 (namely the
inofield infdinfo) and thusinadvertently increased our minimum kernel version requirement quite
significantly. This additional hardening is now only treated as mandatory if
the host kernel version is Linux 5.14 or newer.
Some of the same
fdinfo-based hardening had a separate issue when runningin the context of a non-dumpable process on pre-5.14 kernels -- causing
spurious
EACCESerrors. We now permitfdinfoto be inaccessible in thisvery specific situation.
v0.2.3: libpathrs v0.2.3 -- "この閃きを俺は信じる!"Compare Source
This release just includes some key changes to our build system to properly
handle symbol versioning and to re-enable compilation for older Rust versions.
Fixed
12), we inadvertently depended on a Rust 1.64 feature in our build scripts
(
cargo rustc --crate-type). We have added a temporary workaround for Rust1.63, which will be removed after we update our MSRV.
versioned symbols for
libpathrs.sowhen compiled with Rust 1.72 or newer.This bug has been present since libpathrs 0.2, meaning that this has been
broken for all versions with versioned symbols. This has been fixed, and now
our symbols are properly versioned.
libpathrs.sowith pre-1.90 Rust was broken becauseof unfortunate interactions with GNU ld and our version scripts. This has
been resolved, but means that libpathrs now requires
lldto compile,even on older Rust versions. Rust 1.90 switched to
lldby default forx86 platforms.
Thanks to the following contributors for making this release possible:
Signed-off-by: Aleksa Sarai cyphar@cyphar.com
v0.2.2: libpathrs v0.2.2 -- "貴様ら全員刀の錆にしてやるぜ。"Compare Source
This is a minor release of libpathrs which includes some improvements to
our openat2(2) fallback handling (necessary for runc and adapted from a
similar change to pathrs-lite), as well as minor improvements to "cargo
test" runs -- making the default
%checkRPM scriptlets work properly outof the box.
Changed
_test_racefeature to allow you to opt-out of the race tests whentesting with
cargo test(which resolves the spuriousEAGAINfailures youget with naive
cargo testandcargo nextestruns, along with making thewhole test run ~50x faster).
Fixed
cargo testruns would fail with errors due to the uniqueexecution environment that
cargo nextestprovides. We have resolved thosedifferences and now have smoke tests in our CI to make sure that a naive
cargo testrun will succeed.openat2retry logic for any usage ofopenat2(for scoped lookups), to further improve resiliency on busysystems.
openat2(2)or fallback to anO_PATHresolver would cache the result to avoid doing needless test runs of
openat2(2). However, this causes issues when libpathrs is being used by aprogram that applies new seccomp-bpf filters onto itself -- if the filter
denies
openat2(2)then we would return that error rather than falling backto the
O_PATHresolver. To resolve this issue, we have introduced moreflexible fallback mechanisms and no longer cache the result if
openat2(2)was successful (only if there was an error).
Thanks to the following contributors for making this release possible:
Signed-off-by: Aleksa Sarai cyphar@cyphar.com
Configuration
📅 Schedule: Branch creation - "* 1 * * 1-5" (UTC), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR has been generated by Renovate Bot.