Skip to content
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

Port 1.0-staging to main #1152

Open
wants to merge 9 commits into
base: main
Choose a base branch
from
Open

Port 1.0-staging to main #1152

wants to merge 9 commits into from

Conversation

sunfishcode
Copy link
Member

I've now created the 0.38 branch and have started doing 0.38.x releases from it, so the main branch can now start accepting semver-incompatible fixes. This PR starts by porting the patches from the 1.0-staging branch to main.

@sunfishcode sunfishcode mentioned this pull request Sep 5, 2024
30 tasks
notgull and others added 8 commits September 5, 2024 09:05
* Remove linux-raw-sys and libc from public API

This prevents libc and linux-raw-sys from affecting the semver status of
this crate.

Signed-off-by: John Nunley <[email protected]>

* Fix compile errors

Signed-off-by: John Nunley <[email protected]>

---------

Signed-off-by: John Nunley <[email protected]>
…1063)

* break: Remove low-hanging fruit for linux-raw-sys exposure

linux-raw-sys is exposed as a public dependency. This commit removes many of the
instances where it is publicly exposed. There are a few places that are more
difficult and require greater discussion. I've left these in for now.

This is checked using this command:

$ cargo public-api --features all-apis | grep -i linux_raw_sys

The remaining APIs that expose linux_raw_sys are as follows:

pub type rustix::fs::FsWord = linux_raw_sys::general::__fsword_t
pub type rustix::fs::RawMode = linux_raw_sys::general::__kernel_mode_t
pub type rustix::fs::Stat = linux_raw_sys::general::stat
pub type rustix::fs::StatFs = linux_raw_sys::general::statfs64
pub type rustix::fs::Statx = linux_raw_sys::general::statx
pub type rustix::fs::StatxTimestamp = linux_raw_sys::general::statx_timestamp
pub rustix::io_uring::io_uring_cqe::big_cqe: linux_raw_sys::io_uring::__IncompleteArrayField<u64>
pub rustix::io_uring::io_uring_probe::ops: linux_raw_sys::io_uring::__IncompleteArrayField<rustix::io_uring::io_uring_probe_op>
pub type rustix::io_uring::Statx = linux_raw_sys::general::statx
pub type rustix::net::SocketAddrStorage = linux_raw_sys::net::sockaddr
pub const fn rustix::process::WaitidStatus::as_raw(&self) -> &linux_raw_sys::general::siginfo_t
pub type rustix::system::Sysinfo = linux_raw_sys::system::sysinfo
pub type rustix::termios::Winsize = linux_raw_sys::general::winsize

Signed-off-by: John Nunley <[email protected]>

* break: Low-hanging fruit for removing libc from public API

Similarly to the last commit, this one removes libc types from the public API.
Again there are libc types that are harder to remove so I've skipped them for
now.

This can be checked with:

$ cargo public-api --features all-apis,use-libc | grep -i libc

The remaining API's are:

pub type rustix::fs::Dev = libc::unix::linux_like::linux::dev_t
pub type rustix::fs::FsWord = libc::unix::linux_like::linux::gnu::b64::__fsword_t
pub type rustix::fs::RawMode = libc::unix::linux_like::linux::mode_t
pub type rustix::fs::Stat = libc::unix::linux_like::linux::gnu::b64::x86_64::stat64
pub type rustix::fs::StatFs = libc::unix::linux_like::linux::gnu::b64::x86_64::statfs64
pub type rustix::fs::Statx = libc::unix::linux_like::linux::gnu::statx
pub type rustix::fs::StatxTimestamp = libc::unix::linux_like::linux::gnu::statx
pub type rustix::io_uring::Statx = libc::unix::linux_like::linux::gnu::statx
pub type rustix::net::SocketAddrStorage = libc::unix::linux_like::sockaddr_storage
pub const fn rustix::process::WaitidStatus::as_raw(&self) -> &libc::unix::linux_like::linux::gnu::b64::x86_64::siginfo_t
pub type rustix::system::Sysinfo = libc::unix::linux_like::linux::gnu::b64::sysinfo
pub type rustix::termios::Winsize = libc::unix::winsize

Signed-off-by: John Nunley <[email protected]>

---------

Signed-off-by: John Nunley <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants