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

gh-85984: Remove legacy Lib/pty.py code. #92365

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

Conversation

8vasu
Copy link
Contributor

@8vasu 8vasu commented May 6, 2022

This follows #29658. This is one in a series of PRs aimed at cleaning-up, fixing bugs in, introducing new features in, and updating the code in "Lib/pty.py".

Signed-off-by: Soumendra Ganguly soumendraganguly@gmail.com

Signed-off-by: Soumendra Ganguly <soumendraganguly@gmail.com>
@8vasu 8vasu force-pushed the ptyforkltty branch 2 times, most recently from f09ac12 to fd37005 Compare May 6, 2022
@8vasu 8vasu changed the title gh-85984: Use os.login_tty() in pty.fork() fallback code. gh-85984: Remove legacy Lib/pty.py code. May 6, 2022
@8vasu
Copy link
Contributor Author

8vasu commented May 6, 2022

@gpshead Please take a look at this when you have time.

Two changes are being made.

  1. Remove code for pty.openpty() that uses the "old SGI method or the manual BSD open-a-pty code" that was marked as deprecated way back in year 2000 by Thomas Wouters; this includes pty.master_open(), pty._open_terminal(), and pty.slave_open(); these are not even in the test_pty.py anymore.

  2. Make the fallback code in pty.fork() use os.login_tty(). Please note that the replacement code in pty.fork() is different from the removed code in the following way.

  • The removed code is using the legacy System V method of open()-ing a tty device to make it a controlling terminal;
  • The replacement code is using os.login_tty(), which uses login_tty(3) if available, or else uses the TIOCSCTTY ioctl(), which even System V derivatives support now: https://marc.info/?l=glibc-help&m=164436296715753&w=3

@asvetlov @ethanfurman @aeros please take a look if you have time as well.

Signed-off-by: Soumendra Ganguly <soumendraganguly@gmail.com>
@kumaraditya303 kumaraditya303 requested a review from gpshead Oct 7, 2022
@gpshead gpshead self-assigned this Oct 7, 2022
@gpshead gpshead added the sprint label Oct 7, 2022
gpshead
gpshead approved these changes Oct 7, 2022
@8vasu
Copy link
Contributor Author

8vasu commented Oct 11, 2022

@gpshead thank you for the review.

@kumaraditya303 thank you for the review request.

I have many other improvements planned (and to a large extent ready) for this module for which I will make pull requests once this is merged (after December since I am busy applying for postdocs now).

@smontanaro
Copy link
Contributor

smontanaro commented Nov 22, 2022

(I'm working my way through some PRs which have been approved and are labeled "awaiting merge", hence my seemingly bolt from the blue comment. Why? Read here.)

Maybe this didn't get addressed in the sprint? Is it ready to merge or does it need more work? If it needs more work, maybe the DO-NOT-MERGE label should be added.

@8vasu
Copy link
Contributor Author

8vasu commented Nov 23, 2022

@smontanaro Thank you for the review. This does not need more work unless @gpshead has any suggestions. This is a part of a series of PRs aimed at improving the pty library. A few have been merged before, and if this one gets merged, then I have more to follow, which I will work on right after December (I am still applying for postdocs).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

4 participants