sopel-irc / sopel

:robot::speech_balloon: An easy-to-use and highly extensible IRC Bot framework. Formerly Willie.
https://sopel.chat
Other
951 stars 405 forks source link

Unable to "git clone git://github.com/sopel-irc/sopel.git" ... #2517

Closed antdude closed 9 months ago

antdude commented 9 months ago

Description

$ git clone git://github.com/sopel-irc/sopel.git Cloning into 'sopel'... fatal: unable to connect to github.com: github.com[0: 192.30.255.112]: errno=Connection timed out

This happens in two different Linux boxes and two different ISPs. I am using "Latest source" instructions from https://sopel.chat/usage/installing/.

Thank you for reading and hopefully answering soon. :)

Reproduction steps

$ git clone git://github.com/sopel-irc/sopel.git Cloning into 'sopel'... fatal: unable to connect to github.com: github.com[0: 192.30.255.112]: errno=Connection timed out

Thank you for reading and hopefully answering soon. :)

Expected behavior

git clone should download Sopel's latest source. :(

Relevant logs

No response

Notes

No problems with https://github.com though.

Sopel version

8.0

Installation method

My distro's package manager (apt, etc)

Python version

No response

Operating system

Debian Bullseye v11 and Fedora 35

IRCd

No response

Relevant plugins

No response

SnoopJ commented 9 months ago

This is not a problem with Sopel, the problem is that your git command is invalid. The command you want is:

git clone git@github.com:sopel-irc/sopel.git
SnoopJ commented 9 months ago

Hmm, actually, this issue should stay open for now since the docs do list the incorrect command.

antdude commented 9 months ago

Woah, fast answer and thanks. Please update the outdated command in https://sopel.chat/usage/installing/ web page's instructions for "Latest source". However, I ran into another issue on both PCs and ISPs:

$ git clone git@github.com:sopel-irc/sopel.git Cloning into 'sopel'... Warning: Permanently added the ECDSA host key for IP address '192.30.255.113' to the list of known hosts. git@github.com: Permission denied (publickey). fatal: Could not read from remote repository.

Please make sure you have the correct access rights and the repository exists.

SnoopJ commented 9 months ago

However, I ran into another issue on both PCs and ISPs:

$ git clone git@github.com:sopel-irc/sopel.git Cloning into 'sopel'... Warning: Permanently added the ECDSA host key for IP address '192.30.255.113' to the list of known hosts. git@github.com: Permission denied (publickey). fatal: Could not read from remote repository.

Please make sure you have the correct access rights and the repository exists.

Looks like something is wrong with your system's SSH configuration, perhaps you have github.com listed in your ~/.ssh/config. However, this issue tracker is for discussing issues with Sopel itself.

dgw commented 9 months ago

Two things on this:

  1. You need an SSH remote only for write access to the repository, and even pulling requires having your local SSH key authorized on the GitHub side.* Regular users who aren't making contributions should probably use the read-only HTTPS clone URL.
  2. This issue should be filed against the website repo, if the incorrect instructions appear somewhere other than under /docs/. Only that subfolder is currently built from sources in the main Sopel repository. Rather than an issue, someone could easily just file a PR directly against the website, updating the installation instructions to match the project README file.

*: "To use these URLs, you must generate an SSH keypair on your computer and add the public key to your account on GitHub.com." — https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-ssh-urls

dgw commented 9 months ago

Too much this-repo-specific stuff for my taste to transfer the issue. I opened a new one with the original problem statement: sopel-irc/sopel.chat#43

Since the installation instructions in this repo are correct, I'll close this.

dgw commented 9 months ago

Instructions on the site have been updated: https://sopel.chat/usage/installing/#latest-source

dgw commented 9 months ago

@antdude pointed out an error in the README docs, where what should be a source zip for master points to the latest release instead.

antdude commented 9 months ago

Thanks again, dgw. In the past, I always just used basic git clone method without any fancy logins and setups. Now, it got really complicated and strict. "git clone https://github.com/sopel-irc/sopel.git" was the perfect answer. No errors in my Debian. I just need to get my friend to fix his Fedora's access since I'm just a regular SSH2 user (no root/sudo) due to: $ git clone https://github.com/sopel-irc/sopel.git Cloning into 'sopel'... fatal: unable to access 'https://github.com/sopel-irc/sopel.git/': error setting certificate file: /etc/pki/tls/certs/ca-bundle.crt $ cat /etc/pki/tls/certs/ca-bundle.crt cat: /etc/pki/tls/certs/ca-bundle.crt: Permission denied $ ls -all /etc/pki/tls/certs/ca-bundle.crt lrwxrwxrwx. 1 root root 49 Jan 20 2023 /etc/pki/tls/certs/ca-bundle.crt -> /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem

For now, I will just use https://github.com/sopel-irc/sopel/archive/refs/heads/master.zip in it and git clone method in my Debian PC (can't right now since its Python version is still at 2.7.18 and Sopel v8 wants Python v3.8+).

`And of course, I ran into more problems in my friend's Fedora with my downloaded master.zip file: $ wget2 https://github.com/sopel-irc/sopel/archive/refs/heads/master.zip master.zip 100% [==============================================================================>] 605.90K 3.87MB/s [Files: 1 Bytes: 605.90K [1001KB/s] Redirects: 1 Todo: 0 Errors: 0 ] $ unzip master.zip Archive: master.zip 116ce4a3f77698661ae9fe246f5383da7b5aaff3 creating: sopel-master/ inflating: sopel-master/.codeclimate.yml inflating: sopel-master/.coveragerc creating: sopel-master/.github/ creating: sopel-master/.github/ISSUE_TEMPLATE/ inflating: sopel-master/.github/ISSUE_TEMPLATE/bug_report.yml inflating: sopel-master/.github/ISSUE_TEMPLATE/config.yml inflating: sopel-master/.github/ISSUE_TEMPLATE/feature_request.yml inflating: sopel-master/.github/pull_request_template.md creating: sopel-master/.github/workflows/ inflating: sopel-master/.github/workflows/ci.yml inflating: sopel-master/.github/workflows/codeql.yml inflating: sopel-master/.github/workflows/pypi.yml inflating: sopel-master/.gitignore inflating: sopel-master/CONTRIBUTING.md inflating: sopel-master/COPYING inflating: sopel-master/CREDITS inflating: sopel-master/MANIFEST.in inflating: sopel-master/Makefile inflating: sopel-master/NEWS inflating: sopel-master/NEWS.spec.md inflating: sopel-master/README.rst inflating: sopel-master/conftest.py creating: sopel-master/contrib/ inflating: sopel-master/contrib/README.md creating: sopel-master/contrib/githooks/ inflating: sopel-master/contrib/githooks/install-hooks.sh inflating: sopel-master/contrib/githooks/main-hook.sh inflating: sopel-master/contrib/githooks/pre-commit inflating: sopel-master/contrib/githooks/pre-push inflating: sopel-master/contrib/githooks/uninstall-hooks.sh inflating: sopel-master/contrib/sopel.cfg inflating: sopel-master/contrib/sopel.conf inflating: sopel-master/contrib/sopel.service inflating: sopel-master/contrib/sopel@.service inflating: sopel-master/contrib/tox.ini inflating: sopel-master/contrib/toxfile.py inflating: sopel-master/dev-requirements.txt creating: sopel-master/docs/ inflating: sopel-master/docs/Makefile inflating: sopel-master/docs/make.bat creating: sopel-master/docs/source/ creating: sopel-master/docs/source/_static/ inflating: sopel-master/docs/source/_static/custom.css inflating: sopel-master/docs/source/_static/favicon.ico inflating: sopel-master/docs/source/_static/sopel-black.png inflating: sopel-master/docs/source/_static/sopel-white.png inflating: sopel-master/docs/source/cli.rst inflating: sopel-master/docs/source/conf.py inflating: sopel-master/docs/source/configuration.rst inflating: sopel-master/docs/source/index.rst inflating: sopel-master/docs/source/package.rst creating: sopel-master/docs/source/package/ inflating: sopel-master/docs/source/package/bot.rst inflating: sopel-master/docs/source/package/config.rst creating: sopel-master/docs/source/package/config/ inflating: sopel-master/docs/source/package/config/core_section.rst inflating: sopel-master/docs/source/package/config/types.rst inflating: sopel-master/docs/source/package/db.rst inflating: sopel-master/docs/source/package/formatting.rst inflating: sopel-master/docs/source/package/irc.rst creating: sopel-master/docs/source/package/irc/ inflating: sopel-master/docs/source/package/irc/backends.rst inflating: sopel-master/docs/source/package/irc/capabilities.rst inflating: sopel-master/docs/source/package/irc/isupport.rst inflating: sopel-master/docs/source/package/irc/modes.rst inflating: sopel-master/docs/source/package/irc/utils.rst inflating: sopel-master/docs/source/package/lifecycle.rst inflating: sopel-master/docs/source/package/loader.rst inflating: sopel-master/docs/source/package/logger.rst inflating: sopel-master/docs/source/package/plugins.rst creating: sopel-master/docs/source/package/plugins/ inflating: sopel-master/docs/source/package/plugins/capabilities.rst inflating: sopel-master/docs/source/package/plugins/exceptions.rst inflating: sopel-master/docs/source/package/plugins/handlers.rst inflating: sopel-master/docs/source/package/plugins/jobs.rst inflating: sopel-master/docs/source/package/plugins/plugins.rst inflating: sopel-master/docs/source/package/plugins/rules.rst inflating: sopel-master/docs/source/package/tools.rst creating: sopel-master/docs/source/package/tools/ inflating: sopel-master/docs/source/package/tools/calculation.rst inflating: sopel-master/docs/source/package/tools/events.rst inflating: sopel-master/docs/source/package/tools/identifiers.rst inflating: sopel-master/docs/source/package/tools/jobs.rst inflating: sopel-master/docs/source/package/tools/memories.rst inflating: sopel-master/docs/source/package/tools/target.rst inflating: sopel-master/docs/source/package/tools/time.rst inflating: sopel-master/docs/source/package/tools/web.rst inflating: sopel-master/docs/source/package/trigger.rst inflating: sopel-master/docs/source/plugin.rst creating: sopel-master/docs/source/plugin/ inflating: sopel-master/docs/source/plugin/advanced.rst inflating: sopel-master/docs/source/plugin/anatomy.rst inflating: sopel-master/docs/source/plugin/bot.rst creating: sopel-master/docs/source/plugin/bot/ inflating: sopel-master/docs/source/plugin/bot/channels.rst inflating: sopel-master/docs/source/plugin/bot/style.rst inflating: sopel-master/docs/source/plugin/bot/talk.rst inflating: sopel-master/docs/source/plugin/decorators.rst inflating: sopel-master/docs/source/plugin/privileges.rst inflating: sopel-master/docs/source/plugin/test.rst inflating: sopel-master/docs/source/plugin/time.rst inflating: sopel-master/docs/source/plugin/what.rst inflating: sopel-master/docs/source/run.rst inflating: sopel-master/docs/source/tests.rst creating: sopel-master/docs/source/tests/ inflating: sopel-master/docs/source/tests/factories.rst inflating: sopel-master/docs/source/tests/mocks.rst inflating: sopel-master/docs/source/tests/pytest.rst inflating: sopel-master/pyproject.toml extracting: sopel-master/runtime.txt inflating: sopel-master/setup.cfg creating: sopel-master/sopel/ inflating: sopel-master/sopel/init.py inflating: sopel-master/sopel/bot.py creating: sopel-master/sopel/cli/ inflating: sopel-master/sopel/cli/init.py inflating: sopel-master/sopel/cli/config.py inflating: sopel-master/sopel/cli/plugins.py inflating: sopel-master/sopel/cli/run.py inflating: sopel-master/sopel/cli/utils.py creating: sopel-master/sopel/config/ inflating: sopel-master/sopel/config/init.py inflating: sopel-master/sopel/config/core_section.py inflating: sopel-master/sopel/config/types.py inflating: sopel-master/sopel/coretasks.py inflating: sopel-master/sopel/db.py inflating: sopel-master/sopel/formatting.py creating: sopel-master/sopel/irc/ inflating: sopel-master/sopel/irc/init.py inflating: sopel-master/sopel/irc/abstract_backends.py inflating: sopel-master/sopel/irc/backends.py inflating: sopel-master/sopel/irc/capabilities.py inflating: sopel-master/sopel/irc/isupport.py inflating: sopel-master/sopel/irc/modes.py inflating: sopel-master/sopel/irc/utils.py inflating: sopel-master/sopel/lifecycle.py inflating: sopel-master/sopel/loader.py inflating: sopel-master/sopel/logger.py inflating: sopel-master/sopel/module.py creating: sopel-master/sopel/modules/ extracting: sopel-master/sopel/modules/init.py inflating: sopel-master/sopel/modules/admin.py inflating: sopel-master/sopel/modules/adminchannel.py inflating: sopel-master/sopel/modules/announce.py inflating: sopel-master/sopel/modules/calc.py inflating: sopel-master/sopel/modules/choose.py inflating: sopel-master/sopel/modules/clock.py inflating: sopel-master/sopel/modules/countdown.py inflating: sopel-master/sopel/modules/currency.py inflating: sopel-master/sopel/modules/dice.py inflating: sopel-master/sopel/modules/emoticons.py inflating: sopel-master/sopel/modules/find.py inflating: sopel-master/sopel/modules/find_updates.py inflating: sopel-master/sopel/modules/help.py inflating: sopel-master/sopel/modules/invite.py inflating: sopel-master/sopel/modules/ip.py inflating: sopel-master/sopel/modules/isup.py inflating: sopel-master/sopel/modules/lmgtfy.py inflating: sopel-master/sopel/modules/ping.py inflating: sopel-master/sopel/modules/pronouns.py inflating: sopel-master/sopel/modules/rand.py inflating: sopel-master/sopel/modules/reload.py inflating: sopel-master/sopel/modules/safety.py inflating: sopel-master/sopel/modules/search.py inflating: sopel-master/sopel/modules/seen.py inflating: sopel-master/sopel/modules/tell.py inflating: sopel-master/sopel/modules/tld.py inflating: sopel-master/sopel/modules/translate.py inflating: sopel-master/sopel/modules/unicode_info.py inflating: sopel-master/sopel/modules/units.py inflating: sopel-master/sopel/modules/uptime.py inflating: sopel-master/sopel/modules/url.py inflating: sopel-master/sopel/modules/version.py inflating: sopel-master/sopel/modules/wikipedia.py inflating: sopel-master/sopel/modules/wiktionary.py inflating: sopel-master/sopel/modules/xkcd.py inflating: sopel-master/sopel/plugin.py creating: sopel-master/sopel/plugins/ inflating: sopel-master/sopel/plugins/init.py inflating: sopel-master/sopel/plugins/capabilities.py inflating: sopel-master/sopel/plugins/exceptions.py inflating: sopel-master/sopel/plugins/handlers.py inflating: sopel-master/sopel/plugins/jobs.py inflating: sopel-master/sopel/plugins/rules.py inflating: sopel-master/sopel/privileges.py creating: sopel-master/sopel/tests/ inflating: sopel-master/sopel/tests/init.py inflating: sopel-master/sopel/tests/factories.py inflating: sopel-master/sopel/tests/mocks.py inflating: sopel-master/sopel/tests/pytest_plugin.py creating: sopel-master/sopel/tools/ inflating: sopel-master/sopel/tools/init.py inflating: sopel-master/sopel/tools/_events.py inflating: sopel-master/sopel/tools/calculation.py inflating: sopel-master/sopel/tools/identifiers.py inflating: sopel-master/sopel/tools/jobs.py inflating: sopel-master/sopel/tools/memories.py inflating: sopel-master/sopel/tools/target.py inflating: sopel-master/sopel/tools/time.py inflating: sopel-master/sopel/tools/web.py inflating: sopel-master/sopel/trigger.py creating: sopel-master/test/ creating: sopel-master/test/cli/ inflating: sopel-master/test/cli/test_cli_run.py inflating: sopel-master/test/cli/test_cli_utils.py creating: sopel-master/test/config/ inflating: sopel-master/test/config/test_config_types.py creating: sopel-master/test/coretasks/ inflating: sopel-master/test/coretasks/test_coretasks_cap.py inflating: sopel-master/test/coretasks/test_coretasks_sasl.py creating: sopel-master/test/irc/ inflating: sopel-master/test/irc/test_irc_abstract_backends.py inflating: sopel-master/test/irc/test_irc_capabilities.py inflating: sopel-master/test/irc/test_irc_isupport.py inflating: sopel-master/test/irc/test_irc_modes.py inflating: sopel-master/test/irc/test_irc_utils.py creating: sopel-master/test/modules/ inflating: sopel-master/test/modules/test_modules_adminchannel.py inflating: sopel-master/test/modules/test_modules_announce.py inflating: sopel-master/test/modules/test_modules_choose.py inflating: sopel-master/test/modules/test_modules_find_updates.py inflating: sopel-master/test/modules/test_modules_isup.py inflating: sopel-master/test/modules/test_modules_tell.py inflating: sopel-master/test/modules/test_modules_url.py creating: sopel-master/test/plugins/ inflating: sopel-master/test/plugins/test_plugins_capabilities.py inflating: sopel-master/test/plugins/test_plugins_handlers.py inflating: sopel-master/test/plugins/test_plugins_rules.py inflating: sopel-master/test/test_bot.py inflating: sopel-master/test/test_config.py inflating: sopel-master/test/test_coretasks.py inflating: sopel-master/test/test_db.py inflating: sopel-master/test/test_formatting.py inflating: sopel-master/test/test_irc.py inflating: sopel-master/test/test_loader.py inflating: sopel-master/test/test_module.py inflating: sopel-master/test/test_plugin.py inflating: sopel-master/test/test_plugins.py inflating: sopel-master/test/test_tools.py inflating: sopel-master/test/test_trigger.py creating: sopel-master/test/tests/ inflating: sopel-master/test/tests/test_tests_mocks.py creating: sopel-master/test/tools/ inflating: sopel-master/test/tools/test_tools_identifiers.py inflating: sopel-master/test/tools/test_tools_jobs.py inflating: sopel-master/test/tools/test_tools_memories.py inflating: sopel-master/test/tools/test_tools_target.py inflating: sopel-master/test/tools/test_tools_time.py inflating: sopel-master/test/tools/test_tools_web.py creating: sopel-master/test/vcr/ creating: sopel-master/test/vcr/modules/ creating: sopel-master/test/vcr/modules/currency/ inflating: sopel-master/test/vcr/modules/currency/test_example_exchange_cmd_0.yaml creating: sopel-master/test/vcr/modules/search/ inflating: sopel-master/test/vcr/modules/search/test_example_duck_0.yaml inflating: sopel-master/test/vcr/modules/search/test_example_duck_1.yaml inflating: sopel-master/test/vcr/modules/search/test_example_suggest_0.yaml inflating: sopel-master/test/vcr/modules/search/test_example_suggest_1.yaml inflating: sopel-master/test/vcr/modules/search/test_example_suggest_2.yaml creating: sopel-master/test/vcr/modules/translate/ inflating: sopel-master/test/vcr/modules/translate/test_example_tr2_0.yaml inflating: sopel-master/test/vcr/modules/translate/test_example_tr2_1.yaml inflating: sopel-master/test/vcr/modules/translate/test_example_tr2_2.yaml creating: sopel-master/test/vcr/modules/url/ inflating: sopel-master/test/vcr/modules/url/test_example_title_command_0.yaml

$ cd sopel-master/ $ pip install -e . Defaulting to user installation because normal site-packages is not writeable Obtaining file:///home/ant/Downloads/sopel-master Installing build dependencies ... error error: subprocess-exited-with-error

× pip subprocess to install build dependencies did not run successfully. │ exit code: 1 ╰─> [10 lines of output] WARNING: Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError(PermissionError(13, 'Permission denied'))': /simple/setuptools/ WARNING: Retrying (Retry(total=3, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError(PermissionError(13, 'Permission denied'))': /simple/setuptools/ WARNING: Retrying (Retry(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError(PermissionError(13, 'Permission denied'))': /simple/setuptools/ WARNING: Retrying (Retry(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError(PermissionError(13, 'Permission denied'))': /simple/setuptools/ WARNING: Retrying (Retry(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError(PermissionError(13, 'Permission denied'))': /simple/setuptools/ Could not fetch URL https://pypi.org/simple/setuptools/: There was a problem confirming the ssl certificate: HTTPSConnectionPool(host='pypi.org', port=443): Max retries exceeded with url: /simple/setuptools/ (Caused by SSLError(PermissionError(13, 'Permission denied'))) - skipping ERROR: Could not find a version that satisfies the requirement setuptools~=63.0 (from versions: none) ERROR: No matching distribution found for setuptools~=63.0 Could not fetch URL https://pypi.org/simple/pip/: There was a problem confirming the ssl certificate: HTTPSConnectionPool(host='pypi.org', port=443): Max retries exceeded with url: /simple/pip/ (Caused by SSLError(PermissionError(13, 'Permission denied'))) - skipping WARNING: There was an error checking the latest version of pip. [end of output]

note: This error originates from a subprocess, and is likely not a problem with pip. error: subprocess-exited-with-error

× pip subprocess to install build dependencies did not run successfully. │ exit code: 1 ╰─> See above for output.

note: This error originates from a subprocess, and is likely not a problem with pip. Could not fetch URL https://pypi.org/simple/pip/: There was a problem confirming the ssl certificate: HTTPSConnectionPool(host='pypi.org', port=443): Max retries exceeded with url: /simple/pip/ (Caused by SSLError(PermissionError(13, 'Permission denied'))) - skipping WARNING: There was an error checking the latest version of pip.

`

Augh!!!!!!!!!!!! Frustrating. :(