Building and working on OpenBSD #156
Closed
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.
Currently, the library doesn't build on OpenBSD which does not have either of ptsname_r or TIOCPTYGNAME. There is a documented mechanism to get all the requisites with PTMGET ioctl on /dev/ptm which this PR uses.
After that fix, the crate did build, but didn't work due to OpenBSD's more strict handling of ptys: it requires the controlling terminal to be set to the slave device which is also done in this PR.
Bindgen is used when building on OpenBSD due to the lack of PTMGET/PTM_PATH/struct ptmget in the libc or nix crate.
I made sure not to change the resulting behavior on other platforms, but I'm a bit new to the tty/pty topic and I'd appreciate feedback for things that may need improvement.