René's URL Explorer Experiment


Title: Add support for python 3.12 by zephyrj · Pull Request #2 · parallel-ssh/ssh-python · GitHub

Open Graph Title: Add support for python 3.12 by zephyrj · Pull Request #2 · parallel-ssh/ssh-python

X Title: Add support for python 3.12 by zephyrj · Pull Request #2 · parallel-ssh/ssh-python

Description: Background I primarily use parallel-ssh rather than this library directly and wanted to update my environment to python 3.12. I had to go through a few steps to get it working so thought I'd try to contribute some effort in an attempt to hopefully help others. I've noticed that the main repo under the ParallelSSH org only has wheels built on PyPi for up to python 3.10 and the main maintainer of the project has not been keeping it up-to-date; as such I've been following on from the work done here that has been tracked through ParallelSSH/parallel-ssh#386 and initially added through #1 When trying to install ssh-python directly from the next branch I encounter the following error (note: without cython installed in my python environment) pip install git+https://github.com/parallel-ssh/ssh-python@next ... Building wheels for collected packages: ssh-python Building wheel for ssh-python (setup.py) ... error error: subprocess-exited-with-error × python setup.py bdist_wheel did not run successfully. ... ssh/callbacks.c: In function ‘__Pyx_PyInt_As_int’: ssh/callbacks.c:3931:53: error: ‘PyLongObject’ {aka ‘struct _longobject’} has no member named ‘ob_digit’ const digit* digits = ((PyLongObject*)x)->ob_digit; ^~ ssh/callbacks.c:3986:53: error: ‘PyLongObject’ {aka ‘struct _longobject’} has no member named ‘ob_digit’ const digit* digits = ((PyLongObject*)x)->ob_digit; ^~ ssh/callbacks.c: In function ‘__Pyx_PyInt_As_long’: ssh/callbacks.c:4203:53: error: ‘PyLongObject’ {aka ‘struct _longobject’} has no member named ‘ob_digit’ const digit* digits = ((PyLongObject*)x)->ob_digit; ^~ ssh/callbacks.c:4258:53: error: ‘PyLongObject’ {aka ‘struct _longobject’} has no member named ‘ob_digit’ const digit* digits = ((PyLongObject*)x)->ob_digit; ^~ ssh/callbacks.c: In function ‘__Pyx_PyIndex_AsSsize_t’: ssh/callbacks.c:4763:45: error: ‘PyLongObject’ {aka ‘struct _longobject’} has no member named ‘ob_digit’ const digit* digits = ((PyLongObject*)b)->ob_digit; ^~ error: command '/usr/bin/gcc' failed with exit code 1 If I install cython into my python environment then the above command works as, from my limited understanding, that results in it rebuilding the .c files which will subsequently be compatible with python 3.12 Changes made I've updated the libssh version to latest stable version of 0.10.6 + a patch with a fix for some IPv6 regressions see here. This includes updating the source in the libssh folder of the repo and including a tar.gz package that is used in the manylinux docker files. I've updated the manylinux docker files to use the latest openssl version of 3.3.0 and krb5 version of 1.21.2 alongside the new libssh version I've updated the setup.py file to match the work done in the sibling ssh2-python project for python 3.12 support and then regenerated the .c files with cython 3.0.10 so that they are compatible with python 3.12. You can now install ssh-python from the repos setup.py file without cython needing to be installed in your environment I've also updated some CI config to reference 3.12 but this is beyond my knowledge so some additional work may be required here by those more familiar Initial cibuidwheel support I also played around with cibuildwheel as I wanted to build wheels locally to test them; I've added some basic support for building manylinux wheels with it in the ci/cibuildwheel directory. It's only setup for CPython on x86_64 and aarch64 at present but could be expanded upon if desired

Open Graph Description: Background I primarily use parallel-ssh rather than this library directly and wanted to update my environment to python 3.12. I had to go through a few steps to get it working so thought I'd tr...

X Description: Background I primarily use parallel-ssh rather than this library directly and wanted to update my environment to python 3.12. I had to go through a few steps to get it working so thought I'...

Opengraph URL: https://github.com/parallel-ssh/ssh-python/pull/2

X: @github

direct link

Domain: github.com

route-pattern/:user_id/:repository/pull/:id/files(.:format)
route-controllerpull_requests
route-actionfiles
fetch-noncev2:2f81cb35-1a86-c447-a1fc-8db7d544df5b
current-catalog-service-hashae870bc5e265a340912cde392f23dad3671a0a881730ffdadd82f2f57d81641b
request-idD862:2A0D62:14598B7:1C0C5FD:696AA207
html-safe-nonceb586b31d1af5977cdae45a1a3f08e6fdda9748c56fb6dce715be90f494f8e884
visitor-payloadeyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiJEODYyOjJBMEQ2MjoxNDU5OEI3OjFDMEM1RkQ6Njk2QUEyMDciLCJ2aXNpdG9yX2lkIjoiMTk1OTk5MDE2ODE3NjQ2ODQ4NyIsInJlZ2lvbl9lZGdlIjoiaWFkIiwicmVnaW9uX3JlbmRlciI6ImlhZCJ9
visitor-hmac83cfcd2ea640100b268ecb99ac0b75d436d4942dbe95e37ffc0fceb08b8a7d0c
hovercard-subject-tagpull_request:1886381878
github-keyboard-shortcutsrepository,pull-request-list,pull-request-conversation,pull-request-files-changed,copilot
google-site-verificationApib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I
octolytics-urlhttps://collector.github.com/github/collect
analytics-location///pull_requests/show/files
fb:app_id1401488693436528
apple-itunes-appapp-id=1477376905, app-argument=https://github.com/parallel-ssh/ssh-python/pull/2/files
twitter:imagehttps://avatars.githubusercontent.com/u/6891272?s=400&v=4
twitter:cardsummary_large_image
og:imagehttps://avatars.githubusercontent.com/u/6891272?s=400&v=4
og:image:altBackground I primarily use parallel-ssh rather than this library directly and wanted to update my environment to python 3.12. I had to go through a few steps to get it working so thought I'd tr...
og:site_nameGitHub
og:typeobject
hostnamegithub.com
expected-hostnamegithub.com
Nonea51f97dbb9326f71c08ecb61577457d543c602124d1a2672871258ef37ac5261
turbo-cache-controlno-preview
diff-viewunified
go-importgithub.com/parallel-ssh/ssh-python git https://github.com/parallel-ssh/ssh-python.git
octolytics-dimension-user_id150726312
octolytics-dimension-user_loginparallel-ssh
octolytics-dimension-repository_id773351365
octolytics-dimension-repository_nwoparallel-ssh/ssh-python
octolytics-dimension-repository_publictrue
octolytics-dimension-repository_is_forktrue
octolytics-dimension-repository_parent_id135702111
octolytics-dimension-repository_parent_nwoParallelSSH/ssh-python
octolytics-dimension-repository_network_root_id135702111
octolytics-dimension-repository_network_root_nwoParallelSSH/ssh-python
turbo-body-classeslogged-out env-production page-responsive full-width
disable-turbotrue
browser-stats-urlhttps://api.github.com/_private/browser/stats
browser-errors-urlhttps://api.github.com/_private/browser/errors
release4bd0eac606c70914085176ef312ebdcd97a8cdf1
ui-targetfull
theme-color#1e2327
color-schemelight dark

Links:

Skip to contenthttps://github.com/parallel-ssh/ssh-python/pull/2/files#start-of-content
https://github.com/
Sign in https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fparallel-ssh%2Fssh-python%2Fpull%2F2%2Ffiles
GitHub CopilotWrite better code with AIhttps://github.com/features/copilot
GitHub SparkBuild and deploy intelligent appshttps://github.com/features/spark
GitHub ModelsManage and compare promptshttps://github.com/features/models
MCP RegistryNewIntegrate external toolshttps://github.com/mcp
ActionsAutomate any workflowhttps://github.com/features/actions
CodespacesInstant dev environmentshttps://github.com/features/codespaces
IssuesPlan and track workhttps://github.com/features/issues
Code ReviewManage code changeshttps://github.com/features/code-review
GitHub Advanced SecurityFind and fix vulnerabilitieshttps://github.com/security/advanced-security
Code securitySecure your code as you buildhttps://github.com/security/advanced-security/code-security
Secret protectionStop leaks before they starthttps://github.com/security/advanced-security/secret-protection
Why GitHubhttps://github.com/why-github
Documentationhttps://docs.github.com
Bloghttps://github.blog
Changeloghttps://github.blog/changelog
Marketplacehttps://github.com/marketplace
View all featureshttps://github.com/features
Enterpriseshttps://github.com/enterprise
Small and medium teamshttps://github.com/team
Startupshttps://github.com/enterprise/startups
Nonprofitshttps://github.com/solutions/industry/nonprofits
App Modernizationhttps://github.com/solutions/use-case/app-modernization
DevSecOpshttps://github.com/solutions/use-case/devsecops
DevOpshttps://github.com/solutions/use-case/devops
CI/CDhttps://github.com/solutions/use-case/ci-cd
View all use caseshttps://github.com/solutions/use-case
Healthcarehttps://github.com/solutions/industry/healthcare
Financial serviceshttps://github.com/solutions/industry/financial-services
Manufacturinghttps://github.com/solutions/industry/manufacturing
Governmenthttps://github.com/solutions/industry/government
View all industrieshttps://github.com/solutions/industry
View all solutionshttps://github.com/solutions
AIhttps://github.com/resources/articles?topic=ai
Software Developmenthttps://github.com/resources/articles?topic=software-development
DevOpshttps://github.com/resources/articles?topic=devops
Securityhttps://github.com/resources/articles?topic=security
View all topicshttps://github.com/resources/articles
Customer storieshttps://github.com/customer-stories
Events & webinarshttps://github.com/resources/events
Ebooks & reportshttps://github.com/resources/whitepapers
Business insightshttps://github.com/solutions/executive-insights
GitHub Skillshttps://skills.github.com
Documentationhttps://docs.github.com
Customer supporthttps://support.github.com
Community forumhttps://github.com/orgs/community/discussions
Trust centerhttps://github.com/trust-center
Partnershttps://github.com/partners
GitHub SponsorsFund open source developershttps://github.com/sponsors
Security Labhttps://securitylab.github.com
Maintainer Communityhttps://maintainers.github.com
Acceleratorhttps://github.com/accelerator
Archive Programhttps://archiveprogram.github.com
Topicshttps://github.com/topics
Trendinghttps://github.com/trending
Collectionshttps://github.com/collections
Enterprise platformAI-powered developer platformhttps://github.com/enterprise
GitHub Advanced SecurityEnterprise-grade security featureshttps://github.com/security/advanced-security
Copilot for BusinessEnterprise-grade AI featureshttps://github.com/features/copilot/copilot-business
Premium SupportEnterprise-grade 24/7 supporthttps://github.com/premium-support
Pricinghttps://github.com/pricing
Search syntax tipshttps://docs.github.com/search-github/github-code-search/understanding-github-code-search-syntax
documentationhttps://docs.github.com/search-github/github-code-search/understanding-github-code-search-syntax
Sign in https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fparallel-ssh%2Fssh-python%2Fpull%2F2%2Ffiles
Sign up https://github.com/signup?ref_cta=Sign+up&ref_loc=header+logged+out&ref_page=%2F%3Cuser-name%3E%2F%3Crepo-name%3E%2Fpull_requests%2Fshow%2Ffiles&source=header-repo&source_repo=parallel-ssh%2Fssh-python
Reloadhttps://github.com/parallel-ssh/ssh-python/pull/2/files
Reloadhttps://github.com/parallel-ssh/ssh-python/pull/2/files
Reloadhttps://github.com/parallel-ssh/ssh-python/pull/2/files
parallel-ssh https://github.com/parallel-ssh
ssh-pythonhttps://github.com/parallel-ssh/ssh-python
ParallelSSH/ssh-pythonhttps://github.com/ParallelSSH/ssh-python
Notifications https://github.com/login?return_to=%2Fparallel-ssh%2Fssh-python
Fork 1 https://github.com/login?return_to=%2Fparallel-ssh%2Fssh-python
Star 0 https://github.com/login?return_to=%2Fparallel-ssh%2Fssh-python
Code https://github.com/parallel-ssh/ssh-python
Issues 0 https://github.com/parallel-ssh/ssh-python/issues
Pull requests 1 https://github.com/parallel-ssh/ssh-python/pulls
Discussions https://github.com/parallel-ssh/ssh-python/discussions
Actions https://github.com/parallel-ssh/ssh-python/actions
Projects 0 https://github.com/parallel-ssh/ssh-python/projects
Security Uh oh! There was an error while loading. Please reload this page. https://github.com/parallel-ssh/ssh-python/security
Please reload this pagehttps://github.com/parallel-ssh/ssh-python/pull/2/files
Insights https://github.com/parallel-ssh/ssh-python/pulse
Code https://github.com/parallel-ssh/ssh-python
Issues https://github.com/parallel-ssh/ssh-python/issues
Pull requests https://github.com/parallel-ssh/ssh-python/pulls
Discussions https://github.com/parallel-ssh/ssh-python/discussions
Actions https://github.com/parallel-ssh/ssh-python/actions
Projects https://github.com/parallel-ssh/ssh-python/projects
Security https://github.com/parallel-ssh/ssh-python/security
Insights https://github.com/parallel-ssh/ssh-python/pulse
Sign up for GitHub https://github.com/signup?return_to=%2Fparallel-ssh%2Fssh-python%2Fissues%2Fnew%2Fchoose
terms of servicehttps://docs.github.com/terms
privacy statementhttps://docs.github.com/privacy
Sign inhttps://github.com/login?return_to=%2Fparallel-ssh%2Fssh-python%2Fissues%2Fnew%2Fchoose
zephyrjhttps://github.com/zephyrj
parallel-ssh:nexthttps://github.com/parallel-ssh/ssh-python/tree/next
zephyrj:py3.12https://github.com/zephyrj/ssh-python/tree/py3.12
Conversation 0 https://github.com/parallel-ssh/ssh-python/pull/2
Commits 4 https://github.com/parallel-ssh/ssh-python/pull/2/commits
Checks 0 https://github.com/parallel-ssh/ssh-python/pull/2/checks
Files changed https://github.com/parallel-ssh/ssh-python/pull/2/files
Please reload this pagehttps://github.com/parallel-ssh/ssh-python/pull/2/files
Add support for python 3.12 https://github.com/parallel-ssh/ssh-python/pull/2/files#top
Show all changes 4 commits https://github.com/parallel-ssh/ssh-python/pull/2/files
92f7617 Update to stable 0.10 of libssh and 1.21.2 or krb5 zephyrj May 23, 2024 https://github.com/parallel-ssh/ssh-python/pull/2/commits/92f761777c6e8fc0747db752f46cf30c5ad2cf58
64a9748 Rebuild .c files with version of cython that supports python 3.12 zephyrj May 23, 2024 https://github.com/parallel-ssh/ssh-python/pull/2/commits/64a9748e744409ba68726d158e8e3c56c40cb9eb
277bed5 Add cibuildwheel files and config for easier local wheel building zephyrj May 23, 2024 https://github.com/parallel-ssh/ssh-python/pull/2/commits/277bed58518736fd5e458e324ff96704ed2dc36d
9b7dc6c Add py3.12 to ci config zephyrj May 23, 2024 https://github.com/parallel-ssh/ssh-python/pull/2/commits/9b7dc6c45257e2d05317bec0c7e5a64878ef82dd
Clear filters https://github.com/parallel-ssh/ssh-python/pull/2/files
Please reload this pagehttps://github.com/parallel-ssh/ssh-python/pull/2/files
Please reload this pagehttps://github.com/parallel-ssh/ssh-python/pull/2/files
.appveyor.yml https://github.com/parallel-ssh/ssh-python/pull/2/files#diff-e1ab4c3cec24f841948eb867754d4ad0b9b6d11eaa6b5bfbe0357aceb0a49eff
config.yml https://github.com/parallel-ssh/ssh-python/pull/2/files#diff-78a8a19706dbd2a4425dd72bdab0502ed7a2cef16365ab7030a5a0588927bf47
README.md https://github.com/parallel-ssh/ssh-python/pull/2/files#diff-156d478bf323d994a58336327143aaf53a0962ffbebfcae00a959d9133ff04e1
build-image.sh https://github.com/parallel-ssh/ssh-python/pull/2/files#diff-29504495510118859b5fb6480a8bc9177bea0be10178e37b62b1f2607fef1327
config.toml https://github.com/parallel-ssh/ssh-python/pull/2/files#diff-b346f4197a9782bee1d176cc02d4ebe9577ab29e1d2e5666e748c713e36212e4
Dockerfile.2014_x86_64 https://github.com/parallel-ssh/ssh-python/pull/2/files#diff-87bdc2608179a7ac80f729af5e85830125682a28e71e9f9104061671d1b9959e
Dockerfile.aarch64 https://github.com/parallel-ssh/ssh-python/pull/2/files#diff-c548d834d1408eaea3bc3cb70eaaa2f1f7cf061bd65321619e3b94d1f971009d
Dockerfile.aarch64_2_24 https://github.com/parallel-ssh/ssh-python/pull/2/files#diff-98a79fed8c339519fdf46eb8e4d2ff87465c64e9d3ec9b60c391473d0d15f10b
Dockerfile.aarch64_2_28 https://github.com/parallel-ssh/ssh-python/pull/2/files#diff-50654043ec37a2c5347765264d14ed3d7efaf2c941ba165c09e10adc97c10963
Dockerfile.manylinux_2_24_x86_64 https://github.com/parallel-ssh/ssh-python/pull/2/files#diff-86f5f47197607533a125f579318042456e365e6b0daaed92ccf3e58777156a18
Dockerfile.manylinux_2_28_x86_64 https://github.com/parallel-ssh/ssh-python/pull/2/files#diff-6214879e5d2943f6b56b764ec58ebf0cdc3620e6f5ea40f71eb02e670344baa2
krb5-1.21.1.tar.xz https://github.com/parallel-ssh/ssh-python/pull/2/files#diff-24ca870d278e012cc517f446a4ca396ea7fe7d1e9c84a320e59fd1c9207bf714
libssh-0.10.5.tar.xz https://github.com/parallel-ssh/ssh-python/pull/2/files#diff-2a008ecff015ebdd328af35a3cd60dd5b9bfb5eab19b75ce65c7b3eb99dd0945
libssh-0.10.5.tar.xz.asc https://github.com/parallel-ssh/ssh-python/pull/2/files#diff-1f7df3a2238856171d6c7a2d2a41a41a3f36b5d059e732e7a1c5054a6d269140
libssh-mirror-stable-0.10.tar.gz https://github.com/parallel-ssh/ssh-python/pull/2/files#diff-90cc644ffed8cbeb5844dc2eb05eaafe8ac6b09dd3b0777c72dd72618bb3890a
.arcconfig https://github.com/parallel-ssh/ssh-python/pull/2/files#diff-b6e289430c7c759154812b512fca18311b71335b01b0e6a2a87caae0ab6732f0
.editorconfig https://github.com/parallel-ssh/ssh-python/pull/2/files#diff-d2db5b6ae9abe821f7b0e586a2c2dcc24144ecd3bf2dfe59b691114b54aec681
CHANGELOG https://github.com/parallel-ssh/ssh-python/pull/2/files#diff-0a9c8cc9870ef97261d69847200a3188807f8f8dd22c92ef06cf6f4857acde11
CMakeLists.txt https://github.com/parallel-ssh/ssh-python/pull/2/files#diff-d9550cc207daeb6b4c0910b02f2ee2f7ce1844ac79c069520ca9c0dc27f5554d
INSTALL https://github.com/parallel-ssh/ssh-python/pull/2/files#diff-4e914cbe4ba54075cb5f1d4caabf88f9d0275f7803011a4b1a9e10c2b16f1db9
mainpage.dox https://github.com/parallel-ssh/ssh-python/pull/2/files#diff-7ed6de9969060c79db568782a8f6959043579090abb3685185545e016e675196
config_parser.h https://github.com/parallel-ssh/ssh-python/pull/2/files#diff-86b641972cccf6845f4b46ef10f55e9e1acb49d32c6418400f32b4e207eafda7
kex.h https://github.com/parallel-ssh/ssh-python/pull/2/files#diff-25ec3fe7db852c52a2947353a64819c78625a7532a361ecc9538f690d032350b
libcrypto.h https://github.com/parallel-ssh/ssh-python/pull/2/files#diff-59f7faaec6961f774887f52db465ef8fe1a5737c38f7e905e3d2dac816d889b0
libgcrypt.h https://github.com/parallel-ssh/ssh-python/pull/2/files#diff-a3be80e89f63af51f792c431eec078186b3434a635c232b27ec2c1f9bc138540
libmbedcrypto.h https://github.com/parallel-ssh/ssh-python/pull/2/files#diff-0c1db9d8917ac4a433ba094757ff61697d4e6caf712a298a3de08c3f0092ad69
misc.h https://github.com/parallel-ssh/ssh-python/pull/2/files#diff-19319305530c73f7ebdab2fee9ef3f0f1c84c8e67f44d4f44bc8a6e0fda5e471
packet.h https://github.com/parallel-ssh/ssh-python/pull/2/files#diff-0ba9e57161fd812dec54e072f35f0fc4a202972ff423e6d74af5a5bcca5f74ce
session.h https://github.com/parallel-ssh/ssh-python/pull/2/files#diff-40243be7dd33b520c110b3cff5392496d82db022e71ae279ea317e984ed36ac0
wrapper.h https://github.com/parallel-ssh/ssh-python/pull/2/files#diff-9aba4bdcc5f921c6ea82fefa2897745754dd37b286eb2d5b9f6e4d9669b4c280
current https://github.com/parallel-ssh/ssh-python/pull/2/files#diff-f0a974d5f1d74af5909943ad7a63cabcc13486b8a6f20a772f4aa70e59bd1e13
libssh-4.9.6.symbols https://github.com/parallel-ssh/ssh-python/pull/2/files#diff-d5038e18dd74f4536b259e8fe92cb2db19c374fb69378a5869d11f44ede7704a
CMakeLists.txt https://github.com/parallel-ssh/ssh-python/pull/2/files#diff-698cde19c7ed9d82159a857938d602f738f70d06e00098ec094eef60d7343ec6
channels.c https://github.com/parallel-ssh/ssh-python/pull/2/files#diff-f3cfd3a85d39bfa202eac3c69af595b5136f387d5b942c5978c450d4a4be8723
config.c https://github.com/parallel-ssh/ssh-python/pull/2/files#diff-309f086577b98e1fe2b7175876795321b1aeb5825fb88870b839ed7e14f438b3
config_parser.c https://github.com/parallel-ssh/ssh-python/pull/2/files#diff-14cd25c542fbdc70a4106fdd3f8e631e152def3e257088eedcf3e31a52b9021f
connect.c https://github.com/parallel-ssh/ssh-python/pull/2/files#diff-cdcee50e38d44db779131af19333a7c19ef0f1a77956a8d9adaa2719d2a19065
curve25519.c https://github.com/parallel-ssh/ssh-python/pull/2/files#diff-2a58ddc5cd46538d74a9b26eb5debcfe210d2f922535508791d9c60fc48589f8
dh-gex.c https://github.com/parallel-ssh/ssh-python/pull/2/files#diff-ce34c3523d7a0ebf317963e199362a077c6d9c512e6a032970e4afd90d692e22
dh.c https://github.com/parallel-ssh/ssh-python/pull/2/files#diff-4200280179ca0d2e4e2aca82bdbd9933ae7fbfcc2158760cd075a249709264ed
ecdh.c https://github.com/parallel-ssh/ssh-python/pull/2/files#diff-4010e8b7a73763cc8a7b34a98873be8ff8a47e1253bf97f8475d76a4f22e3aee
ecdh_crypto.c https://github.com/parallel-ssh/ssh-python/pull/2/files#diff-3409cd8a4cf254ec1715eafe11a402cce6dc3f776c8d2cc62e9a094ebfb957aa
ecdh_gcrypt.c https://github.com/parallel-ssh/ssh-python/pull/2/files#diff-6d5737b27115d1b79363b9e384139543301864f1c0039d80a29a7c2d5b5a4334
ecdh_mbedcrypto.c https://github.com/parallel-ssh/ssh-python/pull/2/files#diff-2ac5c9a76cbe626270b549cad415d727b51cb9cdcef20e3113d0686ff79e6387
kdf.c https://github.com/parallel-ssh/ssh-python/pull/2/files#diff-792e29e30629bce3eb380ab61a078a1c27f466f67450d66169e4340de0b22b69
kex.c https://github.com/parallel-ssh/ssh-python/pull/2/files#diff-b11a00fed339a102c38204e37c1324f6abe3a3a6553087099e2a6d7fcef7b759
libcrypto.c https://github.com/parallel-ssh/ssh-python/pull/2/files#diff-e28df37b69f71529a8c65da8118f21e844d950e4a41fe868cd567e065bb1708d
libgcrypt.c https://github.com/parallel-ssh/ssh-python/pull/2/files#diff-c7fbbe3205a8f565443b8c102933489dab8d48b6d6bb1d43cfafec452e8875bb
libmbedcrypto.c https://github.com/parallel-ssh/ssh-python/pull/2/files#diff-7c16b65da87c3c552f18b9ae8a53fb847186e122149d69512492cd91550e33eb
md_crypto.c https://github.com/parallel-ssh/ssh-python/pull/2/files#diff-5688fe6e6bd7c9b2fcb552c79dc9de1863b589c2ebc903b0ece2eb010244ffa2
md_gcrypt.c https://github.com/parallel-ssh/ssh-python/pull/2/files#diff-59f428e31a9bc3a712b39e921a50b0e65ebc3125adcf678edfe375ae783aa7bd
md_mbedcrypto.c https://github.com/parallel-ssh/ssh-python/pull/2/files#diff-14ac865f396ffec22b5adea78a07e0cbbcb53b47cee242d53ad43e361da349f5
misc.c https://github.com/parallel-ssh/ssh-python/pull/2/files#diff-7ba9dd3eaf1e45d28a1150bf9dc536368acec778d341dbffc8f000d177718ce9
options.c https://github.com/parallel-ssh/ssh-python/pull/2/files#diff-7310ebd38a06e297777d1dcb36ce4656160d6c81061e6f133fb3f486045c19ae
packet.c https://github.com/parallel-ssh/ssh-python/pull/2/files#diff-3eb8f7ea75233d944418725084e813be758583c55471a494ba452f0e218a0e17
packet_cb.c https://github.com/parallel-ssh/ssh-python/pull/2/files#diff-f668e6054d3e8c7a899fe8a23a7a25bcfa1dd291da1013bbb511ec66787c8669
poll.c https://github.com/parallel-ssh/ssh-python/pull/2/files#diff-ff2eb82c61301ffad9edee6536ea9b66e46ecc78164b7fedb6620bbcc9a4a40f
server.c https://github.com/parallel-ssh/ssh-python/pull/2/files#diff-815befc3a3a0ac05e672f1bb7a765b2d3f68dcff4f13f6298b29ad1793f8a53b
session.c https://github.com/parallel-ssh/ssh-python/pull/2/files#diff-ce1e13e8ca43538fe4d9452dfc1a216935eaffac1870c3f5760590933e84786e
CMakeLists.txt https://github.com/parallel-ssh/ssh-python/pull/2/files#diff-6afc1e91ab2ce24c70bfcc494b90802882452d0e306edae68be8adfea527b797
torture_proxycommand.c https://github.com/parallel-ssh/ssh-python/pull/2/files#diff-8656948843f12351ebd099aa0959720445c676eaec7f8e854b35858ae361600c
torture_rekey.c https://github.com/parallel-ssh/ssh-python/pull/2/files#diff-114ab55e923820ad76f36c97943fa53f1bad00d051b0ac0babb9ca81ac3d12c8
torture_session.c https://github.com/parallel-ssh/ssh-python/pull/2/files#diff-7169263a07b257ce4a46828c955784bdff42ab2cddd034cc46cb2d26e302ed13
CMakeLists.txt https://github.com/parallel-ssh/ssh-python/pull/2/files#diff-3458a997a1afc2d92c667edcafcbdb1345f63e5c2f7aafd40a90cb12be7dc7d6
pkd_daemon.c https://github.com/parallel-ssh/ssh-python/pull/2/files#diff-bcfdae91f3f706b13663647b3f7da2a6f4501a6f19ba2b40e167bbbb059d3150
pkd_daemon.h https://github.com/parallel-ssh/ssh-python/pull/2/files#diff-4bb3fc7270ea7b6a4461c77357233fe26f5d9bb25d6e9b28abfff9317b8af07a
pkd_hello.c https://github.com/parallel-ssh/ssh-python/pull/2/files#diff-77d9065438a79864279e8599d0e3f2d8e53069a9db53ba77b88a7a0d57d911f0
torture_config.c https://github.com/parallel-ssh/ssh-python/pull/2/files#diff-5447d279e6f1d3c561c302d919144f4edeb95ba4697ae93f7535943f58c4c8ee
torture_misc.c https://github.com/parallel-ssh/ssh-python/pull/2/files#diff-6fc704bce8f983e9da139abbdc0bc624aee08bb3d4a39f2bc631b685464a88a6
torture_options.c https://github.com/parallel-ssh/ssh-python/pull/2/files#diff-f7c65059877508b86ea9000eb2ccecf9e728cf4fe36ed346f3aee7bd60866636
requirements_dev.txt https://github.com/parallel-ssh/ssh-python/pull/2/files#diff-c9c796259f3852b51b531b79cbf07820145088d4f108fb006ab44b15f0b15934
setup.py https://github.com/parallel-ssh/ssh-python/pull/2/files#diff-60f61ab7a8d1910d86d9fda2261620314edcae5894d5aaa236b821c7256badd7
callbacks.c https://github.com/parallel-ssh/ssh-python/pull/2/files#diff-311df2d15e1c3445a364a7263986c70404a679325bebae7e4e2ca2dc9a76a8c0
channel.c https://github.com/parallel-ssh/ssh-python/pull/2/files#diff-3f6008b8d733825961e9d8184321c5bb1c0fd3bd3fbe160db3007c343ef45cdc
connector.c https://github.com/parallel-ssh/ssh-python/pull/2/files#diff-c31aca5fbef5fad3efe6421ddb24da84c930d62ad1bb36ebf98adc2f65647aa0
error_codes.c https://github.com/parallel-ssh/ssh-python/pull/2/files#diff-7f4551921995f5c8f60309e67b0bbca62a59905ff4ba88e9f9532fb330c08dc2
event.c https://github.com/parallel-ssh/ssh-python/pull/2/files#diff-aa578cf2f881c89c26669e4001c9f96b6a057586844991412e798ee103ce153d
exceptions.c https://github.com/parallel-ssh/ssh-python/pull/2/files#diff-6bdb01bb36262fe30244178dbe0322fe53c9dd835c6622f23668e14385d9bb03
key.c https://github.com/parallel-ssh/ssh-python/pull/2/files#diff-41f0b5916ad941c8ed2c47929a57a031f2b717ab074c4336a132b6c38f460eab
keytypes.c https://github.com/parallel-ssh/ssh-python/pull/2/files#diff-3d3690b618f3b79c098e18f6a91fdcdf1236ad793fc02ee9c31befc97f640812
options.c https://github.com/parallel-ssh/ssh-python/pull/2/files#diff-f8fedfa523091a699b97c27ff030e8d98d4e6d3924b179468228d7107ed689e1
scp.c https://github.com/parallel-ssh/ssh-python/pull/2/files#diff-fd6d03dbdf166d88b38c8f609984e6b61e55806a46f0f76c2b12a9597e9644ba
session.c https://github.com/parallel-ssh/ssh-python/pull/2/files#diff-5f23214ea4a1479ee955ca04567d6285ee6073b993f5f35f7862062d965d63e4
sftp.c https://github.com/parallel-ssh/ssh-python/pull/2/files#diff-2cfb285e0227740b396d65de7eacbb69a0f7d39bb2946ae9ca80c35ff606c0b1
sftp_attributes.c https://github.com/parallel-ssh/ssh-python/pull/2/files#diff-1d9bb9e52a153daff4bfc5d3d628e6cb55a694effe65c61d482458838655057f
sftp_handles.c https://github.com/parallel-ssh/ssh-python/pull/2/files#diff-07aef3c94aba13efefa0c7e49bc556eafe0f19d2dfb77ab1a6cc9c3a5c196696
sftp_statvfs.c https://github.com/parallel-ssh/ssh-python/pull/2/files#diff-e367afa04330fa1cd055e3faea35ae40c916188b4acf0a846601af77d8db57b8
utils.c https://github.com/parallel-ssh/ssh-python/pull/2/files#diff-3ee475fb79145d185d580b8c038abca80ccbba1a11550457f9695d26c4028bcc
.appveyor.ymlhttps://github.com/parallel-ssh/ssh-python/pull/2/files#diff-e1ab4c3cec24f841948eb867754d4ad0b9b6d11eaa6b5bfbe0357aceb0a49eff
View file https://github.com/parallel-ssh/ssh-python/blob/9b7dc6c45257e2d05317bec0c7e5a64878ef82dd/.appveyor.yml
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/parallel-ssh/ssh-python/pull/2/{{ revealButtonHref }}
https://github.com/parallel-ssh/ssh-python/pull/2/files#diff-e1ab4c3cec24f841948eb867754d4ad0b9b6d11eaa6b5bfbe0357aceb0a49eff
https://github.com/parallel-ssh/ssh-python/pull/2/files#diff-e1ab4c3cec24f841948eb867754d4ad0b9b6d11eaa6b5bfbe0357aceb0a49eff
.circleci/config.ymlhttps://github.com/parallel-ssh/ssh-python/pull/2/files#diff-78a8a19706dbd2a4425dd72bdab0502ed7a2cef16365ab7030a5a0588927bf47
View file https://github.com/parallel-ssh/ssh-python/blob/9b7dc6c45257e2d05317bec0c7e5a64878ef82dd/.circleci/config.yml
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/parallel-ssh/ssh-python/pull/2/{{ revealButtonHref }}
https://github.com/parallel-ssh/ssh-python/pull/2/files#diff-78a8a19706dbd2a4425dd72bdab0502ed7a2cef16365ab7030a5a0588927bf47
https://github.com/parallel-ssh/ssh-python/pull/2/files#diff-78a8a19706dbd2a4425dd72bdab0502ed7a2cef16365ab7030a5a0588927bf47
ci/cibuildwheel/README.mdhttps://github.com/parallel-ssh/ssh-python/pull/2/files#diff-156d478bf323d994a58336327143aaf53a0962ffbebfcae00a959d9133ff04e1
View file https://github.com/parallel-ssh/ssh-python/blob/9b7dc6c45257e2d05317bec0c7e5a64878ef82dd/ci/cibuildwheel/README.md
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/parallel-ssh/ssh-python/pull/2/{{ revealButtonHref }}
ci/cibuildwheel/build-image.shhttps://github.com/parallel-ssh/ssh-python/pull/2/files#diff-29504495510118859b5fb6480a8bc9177bea0be10178e37b62b1f2607fef1327
View file https://github.com/parallel-ssh/ssh-python/blob/9b7dc6c45257e2d05317bec0c7e5a64878ef82dd/ci/cibuildwheel/build-image.sh
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/parallel-ssh/ssh-python/pull/2/{{ revealButtonHref }}
ci/cibuildwheel/config.tomlhttps://github.com/parallel-ssh/ssh-python/pull/2/files#diff-b346f4197a9782bee1d176cc02d4ebe9577ab29e1d2e5666e748c713e36212e4
View file https://github.com/parallel-ssh/ssh-python/blob/9b7dc6c45257e2d05317bec0c7e5a64878ef82dd/ci/cibuildwheel/config.toml
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/parallel-ssh/ssh-python/pull/2/{{ revealButtonHref }}
ci/docker/manylinux/Dockerfile.2014_x86_64https://github.com/parallel-ssh/ssh-python/pull/2/files#diff-87bdc2608179a7ac80f729af5e85830125682a28e71e9f9104061671d1b9959e
View file https://github.com/parallel-ssh/ssh-python/blob/9b7dc6c45257e2d05317bec0c7e5a64878ef82dd/ci/docker/manylinux/Dockerfile.2014_x86_64
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/parallel-ssh/ssh-python/pull/2/{{ revealButtonHref }}
ci/docker/manylinux/Dockerfile.aarch64https://github.com/parallel-ssh/ssh-python/pull/2/files#diff-c548d834d1408eaea3bc3cb70eaaa2f1f7cf061bd65321619e3b94d1f971009d
View file https://github.com/parallel-ssh/ssh-python/blob/9b7dc6c45257e2d05317bec0c7e5a64878ef82dd/ci/docker/manylinux/Dockerfile.aarch64
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/parallel-ssh/ssh-python/pull/2/{{ revealButtonHref }}
ci/docker/manylinux/Dockerfile.aarch64_2_24https://github.com/parallel-ssh/ssh-python/pull/2/files#diff-98a79fed8c339519fdf46eb8e4d2ff87465c64e9d3ec9b60c391473d0d15f10b
View file https://github.com/parallel-ssh/ssh-python/blob/9b7dc6c45257e2d05317bec0c7e5a64878ef82dd/ci/docker/manylinux/Dockerfile.aarch64_2_24
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/parallel-ssh/ssh-python/pull/2/{{ revealButtonHref }}
ci/docker/manylinux/Dockerfile.aarch64_2_28https://github.com/parallel-ssh/ssh-python/pull/2/files#diff-50654043ec37a2c5347765264d14ed3d7efaf2c941ba165c09e10adc97c10963
View file https://github.com/parallel-ssh/ssh-python/blob/9b7dc6c45257e2d05317bec0c7e5a64878ef82dd/ci/docker/manylinux/Dockerfile.aarch64_2_28
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/parallel-ssh/ssh-python/pull/2/{{ revealButtonHref }}
ci/docker/manylinux/Dockerfile.manylinux_2_24_x86_64https://github.com/parallel-ssh/ssh-python/pull/2/files#diff-86f5f47197607533a125f579318042456e365e6b0daaed92ccf3e58777156a18
View file https://github.com/parallel-ssh/ssh-python/blob/9b7dc6c45257e2d05317bec0c7e5a64878ef82dd/ci/docker/manylinux/Dockerfile.manylinux_2_24_x86_64
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/parallel-ssh/ssh-python/pull/2/{{ revealButtonHref }}
ci/docker/manylinux/Dockerfile.manylinux_2_28_x86_64https://github.com/parallel-ssh/ssh-python/pull/2/files#diff-6214879e5d2943f6b56b764ec58ebf0cdc3620e6f5ea40f71eb02e670344baa2
View file https://github.com/parallel-ssh/ssh-python/blob/9b7dc6c45257e2d05317bec0c7e5a64878ef82dd/ci/docker/manylinux/Dockerfile.manylinux_2_28_x86_64
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/parallel-ssh/ssh-python/pull/2/{{ revealButtonHref }}
ci/docker/manylinux/krb5-1.21.1.tar.xzhttps://github.com/parallel-ssh/ssh-python/pull/2/files#diff-24ca870d278e012cc517f446a4ca396ea7fe7d1e9c84a320e59fd1c9207bf714
View file https://github.com/parallel-ssh/ssh-python/blob/c3f0d7b80c47479ce30a5d5fa9b6b3fa95b7621c/ci/docker/manylinux/krb5-1.21.1.tar.xz
Open in desktop https://desktop.github.com
Please reload this pagehttps://github.com/parallel-ssh/ssh-python/pull/2/files
Please reload this pagehttps://github.com/parallel-ssh/ssh-python/pull/2/files
https://github.com
Termshttps://docs.github.com/site-policy/github-terms/github-terms-of-service
Privacyhttps://docs.github.com/site-policy/privacy-policies/github-privacy-statement
Securityhttps://github.com/security
Statushttps://www.githubstatus.com/
Communityhttps://github.community/
Docshttps://docs.github.com/
Contacthttps://support.github.com?tags=dotcom-footer

Viewport: width=device-width


URLs of crawlers that visited me.