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

Remove linux-raw-sys and libc from public API #956

Merged
merged 2 commits into from
Jan 16, 2024

Conversation

notgull
Copy link
Contributor

@notgull notgull commented Dec 1, 2023

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

Version of #951 targeting the 1.0-staging branch

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

Signed-off-by: John Nunley <[email protected]>
Signed-off-by: John Nunley <[email protected]>
@sunfishcode sunfishcode added the semver bump Issues that will require a semver-incompatible fix label Dec 7, 2023
@sunfishcode
Copy link
Member

The CI has a few errors here, but I think it makes sense to merge this and iterate from here.

@sunfishcode sunfishcode merged commit 6decc5f into bytecodealliance:1.0-staging Jan 16, 2024
10 of 85 checks passed
sunfishcode pushed a commit that referenced this pull request Jan 16, 2024
* 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]>
sunfishcode pushed a commit that referenced this pull request Jan 16, 2024
* 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]>
sunfishcode pushed a commit that referenced this pull request Jun 5, 2024
* 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]>
sunfishcode pushed a commit that referenced this pull request Jun 11, 2024
* 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]>
sunfishcode pushed a commit that referenced this pull request Aug 15, 2024
* 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]>
sunfishcode pushed a commit that referenced this pull request Aug 26, 2024
* 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]>
sunfishcode pushed a commit that referenced this pull request Sep 5, 2024
* 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]>
sunfishcode pushed a commit that referenced this pull request Sep 5, 2024
* 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]>
notgull added a commit to forkgull/rustix that referenced this pull request Sep 27, 2024
* 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]>
sunfishcode pushed a commit that referenced this pull request Jan 22, 2025
* 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]>
sunfishcode added a commit that referenced this pull request Jan 22, 2025
* Remove linux-raw-sys and libc from public API (#956)

* 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]>

---------

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

* Patch low-hanging fruit semver removals for libc and linux-raw-sys (#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]>

* Fix compile errors.

* Fix a warning.

* Fix a warning.

* Add `c_ulonglong`/`c_longlong` to the ffi module.

* Fix a warning.

* Add `ffi::c_void` on Windows.

* bugfix: Fix unused type in WASI (#1177)

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

* Use `as_ptr` and `.cast` to avoid `as` casts.

* Add some more libc type layout tests.

* Make `Secs` always be `i64`.

* Add casting helpers for timespec types.

---------

Signed-off-by: John Nunley <[email protected]>
Co-authored-by: John Nunley <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
semver bump Issues that will require a semver-incompatible fix
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants