Skip to content

implement std::fs::set_permissions_nofollow on unix #142938

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Aug 19, 2025

Conversation

lolbinarycat
Copy link
Contributor

implementation of #141607

@rustbot
Copy link
Collaborator

rustbot commented Jun 24, 2025

r? @ibraheemdev

rustbot has assigned @ibraheemdev.
They will have a look at your PR within the next two weeks and either review your PR or reassign to another reviewer.

Use r? to explicitly pick a reviewer

@rustbot rustbot added S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. T-libs Relevant to the library team, which will review and decide on the PR/issue. labels Jun 24, 2025
@rust-log-analyzer

This comment has been minimized.

@lolbinarycat lolbinarycat force-pushed the std-set_permissions_nofollow branch from 3ff03e0 to 4614625 Compare June 24, 2025 21:44
@rust-log-analyzer

This comment has been minimized.

@lolbinarycat lolbinarycat force-pushed the std-set_permissions_nofollow branch from 4614625 to 7d69442 Compare June 25, 2025 18:32
@rust-log-analyzer

This comment has been minimized.

@lolbinarycat lolbinarycat force-pushed the std-set_permissions_nofollow branch from 7d69442 to 949ac68 Compare June 26, 2025 17:28
@rust-log-analyzer

This comment has been minimized.

@lolbinarycat lolbinarycat force-pushed the std-set_permissions_nofollow branch from 949ac68 to 8f23f36 Compare June 26, 2025 17:57
@rust-log-analyzer

This comment has been minimized.

@lolbinarycat lolbinarycat force-pushed the std-set_permissions_nofollow branch from 8f23f36 to 369acf8 Compare June 26, 2025 19:27
@rust-log-analyzer

This comment has been minimized.

@lolbinarycat lolbinarycat force-pushed the std-set_permissions_nofollow branch 2 times, most recently from 01c37a5 to 81cb0d8 Compare June 27, 2025 18:49
@ibraheemdev
Copy link
Member

I'm not sure we should merge this if it panics on windows.

@ibraheemdev ibraheemdev added S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels Jul 6, 2025
@lolbinarycat
Copy link
Contributor Author

@ibraheemdev fair, my instinct was just to avoid having a cfg in the portable code layer, wasn't sure how that would look in the generated code.

can library features be marked as incomplete, or is that only for compiler features?

@ibraheemdev
Copy link
Member

fair, my instinct was just to avoid having a cfg in the portable code layer, wasn't sure how that would look in the generated code.

I'm not sure what you mean, cfg is a compile-time attribute.

can library features be marked as incomplete, or is that only for compiler features?

I think we could do that, but I'm not sure how useful it would be to have a platform-specific implementation in a cross-platform module, especially because the unix implementation is already accessible.

@lolbinarycat
Copy link
Contributor Author

lolbinarycat commented Jul 7, 2025

I'm not sure what you mean, cfg is a compile-time attribute.

Generated docs, my bad. I know rustdoc can't generate docs for all platforms at once, and the standard library does some postprocessing to make it look decent. I believe that postprocessing only happens on the std::os module, though.

I think we could do that, but I'm not sure how useful it would be to have a platform-specific implementation in a cross-platform module, especially because the unix implementation is already accessible.

I'm really not sure what you mean by that? It's not intended to stay platform-specific, i'm just personally not able to write the windows impl for various reasons.

Are you saying there's no value in this being in the standard library because it can just be implemented in user code? isn't that the case for all libc-backed i/o? regardless, the ACP has already been approved, and implementing this just for unix was discussed in this zulip thread

@ibraheemdev
Copy link
Member

I'm really not sure what you mean by that? It's not intended to stay platform-specific, i'm just personally not able to write the windows impl for various reasons.

Sorry, I just meant I don't see the value in merging the unix-only implementation, given that the unix-only implementation is already accessible, and the value of this function is in that it works cross-platform.

That said I guess it's fine to move the feature forward by landing this, I didn't realize it's already been discussed.

Copy link
Member

@ibraheemdev ibraheemdev left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just a couple of docs nits.

@rustbot

This comment has been minimized.

@lolbinarycat
Copy link
Contributor Author

@rustbot ready

@rustbot rustbot added S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. and removed S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. labels Aug 10, 2025
@rust-log-analyzer

This comment was marked as resolved.

@lolbinarycat lolbinarycat force-pushed the std-set_permissions_nofollow branch from ef780b5 to f4e0bf8 Compare August 10, 2025 17:40
@ibraheemdev
Copy link
Member

Can you please squash the commits? This looks good to me after that's done.

@lolbinarycat lolbinarycat force-pushed the std-set_permissions_nofollow branch from f4e0bf8 to aa3008d Compare August 18, 2025 16:37
@rustbot
Copy link
Collaborator

rustbot commented Aug 18, 2025

⚠️ Warning ⚠️

@lolbinarycat
Copy link
Contributor Author

@ibraheemdev squashed.

@ibraheemdev
Copy link
Member

Thanks. @bors r+ rollup

@bors
Copy link
Collaborator

bors commented Aug 18, 2025

📌 Commit aa3008d has been approved by ibraheemdev

It is now in the queue for this repository.

@bors bors added S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels Aug 18, 2025
jhpratt added a commit to jhpratt/rust that referenced this pull request Aug 18, 2025
…ofollow, r=ibraheemdev

implement std::fs::set_permissions_nofollow on unix

implementation of rust-lang#141607
jhpratt added a commit to jhpratt/rust that referenced this pull request Aug 18, 2025
…ofollow, r=ibraheemdev

implement std::fs::set_permissions_nofollow on unix

implementation of rust-lang#141607
bors added a commit that referenced this pull request Aug 19, 2025
Rollup of 33 pull requests

Successful merges:

 - #139345 (Extend `QueryStability` to handle `IntoIterator` implementations)
 - #140740 (Add `-Zindirect-branch-cs-prefix`)
 - #142079 (nll-relate: improve hr opaque types support)
 - #142938 (implement std::fs::set_permissions_nofollow on unix)
 - #144767 (Correct some grammar in integer documentation)
 - #144906 (Require approval from t-infra instead of t-release on tier bumps)
 - #144983 (Rehome 37 `tests/ui/issues/` tests to other subdirectories under `tests/ui/`)
 - #145025 (run spellcheck as a tidy extra check in ci)
 - #145166 (suggest using `pub(crate)` for E0364)
 - #145255 (dec2flt: Provide more valid inputs examples)
 - #145306 (Add tracing to various miscellaneous functions)
 - #145336 (Hide docs for `core::unicode`)
 - #145429 (Couple of codegen_fn_attrs improvements)
 - #145452 (Do not strip binaries in bootstrap everytime if they are unchanged)
 - #145464 (Stabilize `const_pathbuf_osstring_new` feature)
 - #145474 (Properly recover from parenthesized use-bounds (precise capturing lists) plus small cleanups)
 - #145486 (Fix `unicode_data.rs` mention message)
 - #145493 (remove `should_render` in `PrintAttribute` derive)
 - #145505 (Simplify span caches)
 - #145510 (Visit and print async_fut local for async drop.)
 - #145511 (Rust build fails on OpenBSD after using file_lock feature)
 - #145532 (resolve: debug for block module)
 - #145533 (Reorder `lto` options from most to least optimizing)
 - #145537 (Do not consider a `T: !Sized` candidate to satisfy a `T: !MetaSized` obligation.)
 - #145538 (bufreader::Buffer::backshift: don't move the uninit bytes)
 - #145542 (triagebot: Don't warn no-mentions on subtree updates)
 - #145549 (Update rust maintainers in openharmony.md)
 - #145550 (Avoid using `()` in `derive(From)` output.)
 - #145556 (Allow stability attributes on extern crates)
 - #145560 (Remove unused `PartialOrd`/`Ord` from bootstrap)
 - #145568 (ignore frontmatters in `TokenStream::new`)
 - #145571 (remove myself from some adhoc-groups and pings)
 - #145576 (Add change tracker entry for `--timings`)

r? `@ghost`
`@rustbot` modify labels: rollup
jieyouxu added a commit to jieyouxu/rust that referenced this pull request Aug 19, 2025
…ofollow, r=ibraheemdev

implement std::fs::set_permissions_nofollow on unix

implementation of rust-lang#141607
bors added a commit that referenced this pull request Aug 19, 2025
Rollup of 15 pull requests

Successful merges:

 - #139345 (Extend `QueryStability` to handle `IntoIterator` implementations)
 - #140740 (Add `-Zindirect-branch-cs-prefix`)
 - #142079 (nll-relate: improve hr opaque types support)
 - #142938 (implement std::fs::set_permissions_nofollow on unix)
 - #143730 (fmt of non-decimal radix untangled)
 - #144767 (Correct some grammar in integer documentation)
 - #144906 (Require approval from t-infra instead of t-release on tier bumps)
 - #144983 (Rehome 37 `tests/ui/issues/` tests to other subdirectories under `tests/ui/`)
 - #145025 (run spellcheck as a tidy extra check in ci)
 - #145099 (rustc_target: Add the `32s` target feature for LoongArch)
 - #145166 (suggest using `pub(crate)` for E0364)
 - #145255 (dec2flt: Provide more valid inputs examples)
 - #145306 (Add tracing to various miscellaneous functions)
 - #145336 (Hide docs for `core::unicode`)
 - #145585 (Miri: fix handling of in-place argument and return place handling)

r? `@ghost`
`@rustbot` modify labels: rollup
@bors bors merged commit 9c46cdb into rust-lang:master Aug 19, 2025
10 checks passed
@rustbot rustbot added this to the 1.91.0 milestone Aug 19, 2025
rust-timer added a commit that referenced this pull request Aug 19, 2025
Rollup merge of #142938 - lolbinarycat:std-set_permissions_nofollow, r=ibraheemdev

implement std::fs::set_permissions_nofollow on unix

implementation of #141607
Kobzol pushed a commit to Kobzol/rust that referenced this pull request Aug 19, 2025
Rollup of 15 pull requests

Successful merges:

 - rust-lang#139345 (Extend `QueryStability` to handle `IntoIterator` implementations)
 - rust-lang#140740 (Add `-Zindirect-branch-cs-prefix`)
 - rust-lang#142079 (nll-relate: improve hr opaque types support)
 - rust-lang#142938 (implement std::fs::set_permissions_nofollow on unix)
 - rust-lang#143730 (fmt of non-decimal radix untangled)
 - rust-lang#144767 (Correct some grammar in integer documentation)
 - rust-lang#144906 (Require approval from t-infra instead of t-release on tier bumps)
 - rust-lang#144983 (Rehome 37 `tests/ui/issues/` tests to other subdirectories under `tests/ui/`)
 - rust-lang#145025 (run spellcheck as a tidy extra check in ci)
 - rust-lang#145099 (rustc_target: Add the `32s` target feature for LoongArch)
 - rust-lang#145166 (suggest using `pub(crate)` for E0364)
 - rust-lang#145255 (dec2flt: Provide more valid inputs examples)
 - rust-lang#145306 (Add tracing to various miscellaneous functions)
 - rust-lang#145336 (Hide docs for `core::unicode`)
 - rust-lang#145585 (Miri: fix handling of in-place argument and return place handling)

r? `@ghost`
`@rustbot` modify labels: rollup
github-actions bot pushed a commit to rust-lang/miri that referenced this pull request Aug 20, 2025
Rollup of 15 pull requests

Successful merges:

 - rust-lang/rust#139345 (Extend `QueryStability` to handle `IntoIterator` implementations)
 - rust-lang/rust#140740 (Add `-Zindirect-branch-cs-prefix`)
 - rust-lang/rust#142079 (nll-relate: improve hr opaque types support)
 - rust-lang/rust#142938 (implement std::fs::set_permissions_nofollow on unix)
 - rust-lang/rust#143730 (fmt of non-decimal radix untangled)
 - rust-lang/rust#144767 (Correct some grammar in integer documentation)
 - rust-lang/rust#144906 (Require approval from t-infra instead of t-release on tier bumps)
 - rust-lang/rust#144983 (Rehome 37 `tests/ui/issues/` tests to other subdirectories under `tests/ui/`)
 - rust-lang/rust#145025 (run spellcheck as a tidy extra check in ci)
 - rust-lang/rust#145099 (rustc_target: Add the `32s` target feature for LoongArch)
 - rust-lang/rust#145166 (suggest using `pub(crate)` for E0364)
 - rust-lang/rust#145255 (dec2flt: Provide more valid inputs examples)
 - rust-lang/rust#145306 (Add tracing to various miscellaneous functions)
 - rust-lang/rust#145336 (Hide docs for `core::unicode`)
 - rust-lang/rust#145585 (Miri: fix handling of in-place argument and return place handling)

r? `@ghost`
`@rustbot` modify labels: rollup
github-actions bot pushed a commit to model-checking/verify-rust-std that referenced this pull request Aug 20, 2025
…ofollow, r=ibraheemdev

implement std::fs::set_permissions_nofollow on unix

implementation of rust-lang#141607
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. T-libs Relevant to the library team, which will review and decide on the PR/issue.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants