* origin/dmw:
docs: update Changelog.
issue #536: rework how 2.3-compatible simplejson is served
.github: add some more questions to issue template
docs: duplicate word
docs: update Changelog.
tests/ansible: Spec.become_method() test & mitogen_via= fix.
setup.py: include LICENSE; closes#538.
tests/ansible: Spec.become() test
tests/ansible: Spec.password() test, document interactive pw limitation.
tests/ansible: Spec.remote_user() test & mitogen_via= fix.
tests/ansible: Spec.remote_addr() test & mitogen_via= fix.
tests/ansible: Spec.transport() test.
docs: lighter pink
docs: add 'Fixes' heading
docs: more margin tweaks for changelog
docs: tighter <p> margins, even less shouting, red headings
docs: tidy up footer and GitHub link
docs: enable fixed_sidebar
docs: sans-serif fonts, reduce shouty headings
issue #536: add mitogen_via= tests too.
ansible: fix a crash on 2.3 when mitogen_via= host is missing.
tests: for 2.3 compatibility, disable gcloud.py for now
Regardless of the version of simplejson loaded in the master, load up
the ModuleResponder cache with our 2.4-compatible version.
To cope with simplejson being loaded due to modules like ec2_group that
try to import it before importing 'json', also update target.py to
remove it from the whitelist if a local 'json' module import succeeds.
This was needed at some point in the past, but the tests don't seem to
care about it any more. We'll fix any CI breakage by changing the tests,
since verifying implicit localhost behaviour is important.
* origin/dmw:
docs: update Changelog; closes#481
issue #481: core: preserve stderr TTY FD if one is present.
issue #481: avoid crash if disconnect occurs during forward_modules()
Add a few more important modules to preamble_size.py.
.ci: add verbiage for run_batches() too.
.ci: add README.md.
docs: update thanks
docs: lose "approaching stability" language, we're pretty good now
docs: fix changelog syntax/order/"20KB"
Since 802de6a8d5, sudo on CentOS 5 had
begun failing due to a TTY FD leak in the parent process being fixed.
The old versions of sudo doesn't hang around after starting a child --
they exec the privilege-escalated child process on top of themselves,
meaning no spare copy of the TTY FD is kept alive by sudo.
When the child starts up, it replaces stdio with IoLoggers, including
the inherited stderr FD connected to DiagLogStream/the slave PTY. When
the last process closes a slave PTY, the kernel sends SIGHUP to any
processes still having it as the controlling TTY.
Therefore we must either ignore SIGHUP until the first stage has been
waited on (since the first stage also preserve the FD), or dup the
inherited TTY FD and keep it around forever.
Wasting one FD seems less annoying than modifying process signals for
all potential library users, so that is the approach taken here.