[Python-checkins] gh-93851: Fix all broken links in Doc/ (GH-93853)

ambv webhook-mailer at python.org
Tue Jun 21 14:55:28 EDT 2022


https://github.com/python/cpython/commit/f62ff97f31a775cc7956adeae32c14e7c85bdc15
commit: f62ff97f31a775cc7956adeae32c14e7c85bdc15
branch: main
author: Oleg Iarygin <oleg at arhadthedev.net>
committer: ambv <lukasz at langa.pl>
date: 2022-06-21T20:55:18+02:00
summary:

gh-93851: Fix all broken links in Doc/ (GH-93853)

files:
M Doc/distutils/apiref.rst
M Doc/faq/library.rst
M Doc/faq/programming.rst
M Doc/howto/urllib2.rst
M Doc/installing/index.rst
M Doc/library/datetime.rst
M Doc/library/hashlib.rst
M Doc/library/html.entities.rst
M Doc/library/importlib.metadata.rst
M Doc/library/importlib.resources.rst
M Doc/library/math.rst
M Doc/library/os.rst
M Doc/library/pathlib.rst
M Doc/library/signal.rst
M Doc/library/ssl.rst
M Doc/library/statistics.rst
M Doc/library/struct.rst
M Doc/library/unittest.mock.rst
M Doc/license.rst
M Doc/tools/templates/download.html
M Doc/using/unix.rst
M Doc/using/venv-create.inc
M Doc/using/windows.rst
M Doc/whatsnew/2.1.rst
M Doc/whatsnew/2.5.rst
M Doc/whatsnew/2.6.rst
M Doc/whatsnew/2.7.rst
M Doc/whatsnew/3.2.rst
M Doc/whatsnew/3.6.rst
M Doc/whatsnew/3.7.rst

diff --git a/Doc/distutils/apiref.rst b/Doc/distutils/apiref.rst
index 18a4aac4f7089..74c48142d6d7f 100644
--- a/Doc/distutils/apiref.rst
+++ b/Doc/distutils/apiref.rst
@@ -11,7 +11,7 @@ API Reference
       and other APIs, makes the API consistent across different Python versions,
       and is hence recommended over using ``distutils`` directly.
 
-.. _New and changed setup.py arguments in setuptools: https://setuptools.readthedocs.io/en/latest/setuptools.html#new-and-changed-setup-keywords
+.. _New and changed setup.py arguments in setuptools: https://web.archive.org/web/20210614192516/https://setuptools.pypa.io/en/stable/userguide/keywords.html
 
 .. include:: ./_setuptools_disclaimer.rst
 
diff --git a/Doc/faq/library.rst b/Doc/faq/library.rst
index 85b04c963f590..8167bf22f0b1a 100644
--- a/Doc/faq/library.rst
+++ b/Doc/faq/library.rst
@@ -670,7 +670,7 @@ A summary of available frameworks is maintained by Paul Boddie at
 https://wiki.python.org/moin/WebProgramming\ .
 
 Cameron Laird maintains a useful set of pages about Python web technologies at
-http://phaseit.net/claird/comp.lang.python/web_python.
+https://web.archive.org/web/20210224183619/http://phaseit.net/claird/comp.lang.python/web_python.
 
 
 How can I mimic CGI form submission (METHOD=POST)?
diff --git a/Doc/faq/programming.rst b/Doc/faq/programming.rst
index f87eaff9531fc..0b11bc986bbb0 100644
--- a/Doc/faq/programming.rst
+++ b/Doc/faq/programming.rst
@@ -56,7 +56,7 @@ Are there tools to help find bugs or perform static analysis?
 
 Yes.
 
-`Pylint <https://www.pylint.org/>`_ and
+`Pylint <https://pylint.pycqa.org/en/latest/index.html>`_ and
 `Pyflakes <https://github.com/PyCQA/pyflakes>`_ do basic checking that will
 help you catch bugs sooner.
 
diff --git a/Doc/howto/urllib2.rst b/Doc/howto/urllib2.rst
index 12d525771ddc2..e77fefffbd257 100644
--- a/Doc/howto/urllib2.rst
+++ b/Doc/howto/urllib2.rst
@@ -4,13 +4,13 @@
   HOWTO Fetch Internet Resources Using The urllib Package
 ***********************************************************
 
-:Author: `Michael Foord <http://www.voidspace.org.uk/python/index.shtml>`_
+:Author: `Michael Foord <https://agileabstractions.com/>`_
 
 .. note::
 
     There is a French translation of an earlier revision of this
     HOWTO, available at `urllib2 - Le Manuel manquant
-    <http://www.voidspace.org.uk/python/articles/urllib2_francais.shtml>`_.
+    <https://web.archive.org/web/20200910051922/http://www.voidspace.org.uk/python/articles/urllib2_francais.shtml>`_.
 
 
 
@@ -22,7 +22,7 @@ Introduction
     You may also find useful the following article on fetching web resources
     with Python:
 
-    * `Basic Authentication <http://www.voidspace.org.uk/python/articles/authentication.shtml>`_
+    * `Basic Authentication <https://web.archive.org/web/20201215133350/http://www.voidspace.org.uk/python/articles/authentication.shtml>`_
 
         A tutorial on *Basic Authentication*, with examples in Python.
 
diff --git a/Doc/installing/index.rst b/Doc/installing/index.rst
index 4bacc7ba0c2cf..e158bf1c4c0c7 100644
--- a/Doc/installing/index.rst
+++ b/Doc/installing/index.rst
@@ -214,7 +214,7 @@ It is possible that ``pip`` does not get installed by default. One potential fix
     python -m ensurepip --default-pip
 
 There are also additional resources for `installing pip.
-<https://packaging.python.org/tutorials/installing-packages/#install-pip-setuptools-and-wheel>`__
+<https://packaging.python.org/en/latest/tutorials/installing-packages/#ensure-pip-setuptools-and-wheel-are-up-to-date>`__
 
 
 Installing binary extensions
diff --git a/Doc/library/datetime.rst b/Doc/library/datetime.rst
index bde24ec5f2e11..ef1535c84bd5a 100644
--- a/Doc/library/datetime.rst
+++ b/Doc/library/datetime.rst
@@ -2603,7 +2603,7 @@ Notes:
        many other calendar systems.
 
 .. [#] See R. H. van Gent's `guide to the mathematics of the ISO 8601 calendar
-       <https://www.staff.science.uu.nl/~gent0113/calendar/isocalendar.htm>`_
+       <https://web.archive.org/web/20220531051136/https://webspace.science.uu.nl/~gent0113/calendar/isocalendar.htm>`_
        for a good explanation.
 
 .. [#] Passing ``datetime.strptime('Feb 29', '%b %d')`` will fail since ``1900`` is not a leap year.
diff --git a/Doc/library/hashlib.rst b/Doc/library/hashlib.rst
index 57f270c8d711c..0906ce7cb7a2d 100644
--- a/Doc/library/hashlib.rst
+++ b/Doc/library/hashlib.rst
@@ -668,7 +668,7 @@ function:
     hash function used in the protocol summarily stops this type of attack.
 
     (`The Skein Hash Function Family
-    <http://www.skein-hash.info/sites/default/files/skein1.3.pdf>`_,
+    <https://www.schneier.com/wp-content/uploads/2016/02/skein.pdf>`_,
     p. 21)
 
 BLAKE2 can be personalized by passing bytes to the *person* argument::
diff --git a/Doc/library/html.entities.rst b/Doc/library/html.entities.rst
index 7d836fe738024..cb8b623781c5e 100644
--- a/Doc/library/html.entities.rst
+++ b/Doc/library/html.entities.rst
@@ -44,4 +44,4 @@ This module defines four dictionaries, :data:`html5`,
 
 .. rubric:: Footnotes
 
-.. [#] See https://html.spec.whatwg.org/multipage/syntax.html#named-character-references
+.. [#] See https://html.spec.whatwg.org/multipage/named-characters.html#named-character-references
diff --git a/Doc/library/importlib.metadata.rst b/Doc/library/importlib.metadata.rst
index d40ed70d5cd83..107b7465c91b1 100644
--- a/Doc/library/importlib.metadata.rst
+++ b/Doc/library/importlib.metadata.rst
@@ -136,7 +136,7 @@ Inspect the resolved entry point::
 The ``group`` and ``name`` are arbitrary values defined by the package author
 and usually a client will wish to resolve all entry points for a particular
 group.  Read `the setuptools docs
-<https://setuptools.readthedocs.io/en/latest/setuptools.html#dynamic-discovery-of-services-and-plugins>`_
+<https://setuptools.pypa.io/en/latest/userguide/entry_point.html>`_
 for more information on entry points, their definition, and usage.
 
 *Compatibility Note*
diff --git a/Doc/library/importlib.resources.rst b/Doc/library/importlib.resources.rst
index f62d15dd6fdc9..b88c9882de44b 100644
--- a/Doc/library/importlib.resources.rst
+++ b/Doc/library/importlib.resources.rst
@@ -4,7 +4,7 @@
 .. module:: importlib.resources
     :synopsis: Package resource reading, opening, and access
 
-**Source code:** :source:`Lib/importlib/resources.py`
+**Source code:** :source:`Lib/importlib/resources/__init__.py`
 
 --------------
 
diff --git a/Doc/library/math.rst b/Doc/library/math.rst
index 5efcc7f6a6efc..6d9a992f73131 100644
--- a/Doc/library/math.rst
+++ b/Doc/library/math.rst
@@ -578,7 +578,7 @@ Special functions
 
    The :func:`erf` function can be used to compute traditional statistical
    functions such as the `cumulative standard normal distribution
-   <https://en.wikipedia.org/wiki/Normal_distribution#Cumulative_distribution_function>`_::
+   <https://en.wikipedia.org/wiki/Normal_distribution#Cumulative_distribution_functions>`_::
 
      def phi(x):
          'Cumulative distribution function for the standard normal distribution'
diff --git a/Doc/library/os.rst b/Doc/library/os.rst
index 87e9eb6b69c84..baf89bf8b56aa 100644
--- a/Doc/library/os.rst
+++ b/Doc/library/os.rst
@@ -4318,7 +4318,7 @@ written in Python, such as a mail server's external command delivery program.
    :attr:`!children_system`, and :attr:`!elapsed` in that order.
 
    See the Unix manual page
-   :manpage:`times(2)` and :manpage:`times(3)` manual page on Unix or `the GetProcessTimes MSDN
+   :manpage:`times(2)` and `times(3) <https://www.freebsd.org/cgi/man.cgi?time(3)>`_ manual page on Unix or `the GetProcessTimes MSDN
    <https://docs.microsoft.com/windows/win32/api/processthreadsapi/nf-processthreadsapi-getprocesstimes>`_
    on Windows. On Windows, only :attr:`!user` and :attr:`!system` are known; the other attributes are zero.
 
diff --git a/Doc/library/pathlib.rst b/Doc/library/pathlib.rst
index 982b567785168..2b798698385fd 100644
--- a/Doc/library/pathlib.rst
+++ b/Doc/library/pathlib.rst
@@ -328,14 +328,13 @@ Pure paths provide the following methods and properties:
    .. note::
 
       This behavior conforms to *The Open Group Base Specifications Issue 6*,
-      paragraph `4.11 *Pathname Resolution* <xbd_path_resolution>`_:
+      paragraph `4.11 Pathname Resolution
+      <https://pubs.opengroup.org/onlinepubs/009695399/basedefs/xbd_chap04.html#tag_04_11>`_:
 
       *"A pathname that begins with two successive slashes may be interpreted in
       an implementation-defined manner, although more than two leading slashes
       shall be treated as a single slash."*
 
-   .. xbd_path_resolution: https://pubs.opengroup.org/onlinepubs/009695399/basedefs/xbd_chap04.html#tag_04_11
-
 .. data:: PurePath.anchor
 
    The concatenation of the drive and root::
diff --git a/Doc/library/signal.rst b/Doc/library/signal.rst
index 678411d4f1705..36bb4a98da132 100644
--- a/Doc/library/signal.rst
+++ b/Doc/library/signal.rst
@@ -95,7 +95,7 @@ The signal module defines three enums:
 
    :class:`enum.IntEnum` collection the constants :const:`SIG_BLOCK`, :const:`SIG_UNBLOCK` and :const:`SIG_SETMASK`.
 
-   Availability: Unix. See the man page :manpage:`sigprocmask(3)` and
+   Availability: Unix. See the man page :manpage:`sigprocmask(2)` and
    :manpage:`pthread_sigmask(3)` for further information.
 
    .. versionadded:: 3.5
diff --git a/Doc/library/ssl.rst b/Doc/library/ssl.rst
index c7ca4395ed96c..7e26e2ec6f19d 100644
--- a/Doc/library/ssl.rst
+++ b/Doc/library/ssl.rst
@@ -1910,7 +1910,7 @@ to speed up repeated connections from the same clients.
 .. method:: SSLContext.session_stats()
 
    Get statistics about the SSL sessions created or managed by this context.
-   A dictionary is returned which maps the names of each `piece of information <https://www.openssl.org/docs/man1.1.1/ssl/SSL_CTX_sess_number.html>`_ to their
+   A dictionary is returned which maps the names of each `piece of information <https://www.openssl.org/docs/man1.1.1/man3/SSL_CTX_sess_number.html>`_ to their
    numeric values.  For example, here is the total number of hits and misses
    in the session cache since the context was created::
 
@@ -2704,7 +2704,7 @@ enabled when negotiating a SSL session is possible through the
 :meth:`SSLContext.set_ciphers` method.  Starting from Python 3.2.3, the
 ssl module disables certain weak ciphers by default, but you may want
 to further restrict the cipher choice. Be sure to read OpenSSL's documentation
-about the `cipher list format <https://www.openssl.org/docs/manmaster/man1/ciphers.html#CIPHER-LIST-FORMAT>`_.
+about the `cipher list format <https://www.openssl.org/docs/man1.1.1/man1/ciphers.html#CIPHER-LIST-FORMAT>`_.
 If you want to check which ciphers are enabled by a given cipher list, use
 :meth:`SSLContext.get_ciphers` or the ``openssl ciphers`` command on your
 system.
diff --git a/Doc/library/statistics.rst b/Doc/library/statistics.rst
index 4cd983bb25468..347a1be8321e4 100644
--- a/Doc/library/statistics.rst
+++ b/Doc/library/statistics.rst
@@ -798,7 +798,7 @@ of applications in statistics.
        Compute the inverse cumulative distribution function, also known as the
        `quantile function <https://en.wikipedia.org/wiki/Quantile_function>`_
        or the `percent-point
-       <https://www.statisticshowto.datasciencecentral.com/inverse-distribution-function/>`_
+       <https://web.archive.org/web/20190203145224/https://www.statisticshowto.datasciencecentral.com/inverse-distribution-function/>`_
        function.  Mathematically, it is written ``x : P(X <= x) = p``.
 
        Finds the value *x* of the random variable *X* such that the
@@ -947,7 +947,7 @@ probability that the Python room will stay within its capacity limits?
 Normal distributions commonly arise in machine learning problems.
 
 Wikipedia has a `nice example of a Naive Bayesian Classifier
-<https://en.wikipedia.org/wiki/Naive_Bayes_classifier#Sex_classification>`_.
+<https://en.wikipedia.org/wiki/Naive_Bayes_classifier#Person_classification>`_.
 The challenge is to predict a person's gender from measurements of normally
 distributed features including height, weight, and foot size.
 
diff --git a/Doc/library/struct.rst b/Doc/library/struct.rst
index 978eeabe37b1a..25e26201d7d43 100644
--- a/Doc/library/struct.rst
+++ b/Doc/library/struct.rst
@@ -467,6 +467,6 @@ The :mod:`struct` module also defines the following type:
 
 .. _half precision format: https://en.wikipedia.org/wiki/Half-precision_floating-point_format
 
-.. _ieee 754 standard: https://en.wikipedia.org/wiki/IEEE_floating_point#IEEE_754-2008
+.. _ieee 754 standard: https://en.wikipedia.org/wiki/IEEE_754-2008_revision
 
 .. _IETF RFC 1700: https://tools.ietf.org/html/rfc1700
diff --git a/Doc/library/unittest.mock.rst b/Doc/library/unittest.mock.rst
index acc0d67541ae8..b768557e6075f 100644
--- a/Doc/library/unittest.mock.rst
+++ b/Doc/library/unittest.mock.rst
@@ -1944,7 +1944,7 @@ Both patch_ and patch.object_ correctly patch and restore descriptors: class
 methods, static methods and properties. You should patch these on the *class*
 rather than an instance. They also work with *some* objects
 that proxy attribute access, like the `django settings object
-<http://www.voidspace.org.uk/python/weblog/arch_d7_2010_12_04.shtml#e1198>`_.
+<https://web.archive.org/web/20200603181648/http://www.voidspace.org.uk/python/weblog/arch_d7_2010_12_04.shtml#e1198>`_.
 
 
 MagicMock and magic method support
diff --git a/Doc/license.rst b/Doc/license.rst
index e0ca5f2662dc1..e0276b4924377 100644
--- a/Doc/license.rst
+++ b/Doc/license.rst
@@ -626,9 +626,9 @@ strtod and dtoa
 The file :file:`Python/dtoa.c`, which supplies C functions dtoa and
 strtod for conversion of C doubles to and from strings, is derived
 from the file of the same name by David M. Gay, currently available
-from http://www.netlib.org/fp/.  The original file, as retrieved on
-March 16, 2009, contains the following copyright and licensing
-notice::
+from https://web.archive.org/web/20220517033456/http://www.netlib.org/fp/dtoa.c.
+The original file, as retrieved on March 16, 2009, contains the following
+copyright and licensing notice::
 
    /****************************************************************
     *
diff --git a/Doc/tools/templates/download.html b/Doc/tools/templates/download.html
index 2456625043416..7920e0619f933 100644
--- a/Doc/tools/templates/download.html
+++ b/Doc/tools/templates/download.html
@@ -3,6 +3,10 @@
 {% if daily is defined %}
   {% set dlbase = pathto('archives', 1) %}
 {% else %}
+  {#
+    The link below returns HTTP 404 until the first related alpha release.
+    This is expected; use daily documentation builds for CPython development.
+  #}
   {% set dlbase = 'https://docs.python.org/ftp/python/doc/' + release %}
 {% endif %}
 
diff --git a/Doc/using/unix.rst b/Doc/using/unix.rst
index 0a1834453a0ee..3f9f1364c8ae8 100644
--- a/Doc/using/unix.rst
+++ b/Doc/using/unix.rst
@@ -69,7 +69,7 @@ Building Python
 If you want to compile CPython yourself, first thing you should do is get the
 `source <https://www.python.org/downloads/source/>`_. You can download either the
 latest release's source or just grab a fresh `clone
-<https://devguide.python.org/setup/#getting-the-source-code>`_.  (If you want
+<https://devguide.python.org/setup/#get-the-source-code>`_.  (If you want
 to contribute patches, you will need a clone.)
 
 The build process consists of the usual commands::
diff --git a/Doc/using/venv-create.inc b/Doc/using/venv-create.inc
index ddb36f94667d9..b9785832864e2 100644
--- a/Doc/using/venv-create.inc
+++ b/Doc/using/venv-create.inc
@@ -17,7 +17,7 @@ re-used.
 .. deprecated:: 3.6
    ``pyvenv`` was the recommended tool for creating virtual environments for
    Python 3.3 and 3.4, and is `deprecated in Python 3.6
-   <https://docs.python.org/dev/whatsnew/3.6.html#deprecated-features>`_.
+   <https://docs.python.org/dev/whatsnew/3.6.html#id8>`_.
 
 .. versionchanged:: 3.5
    The use of ``venv`` is now recommended for creating virtual environments.
diff --git a/Doc/using/windows.rst b/Doc/using/windows.rst
index dcc533726813c..d7e0a5e13825a 100644
--- a/Doc/using/windows.rst
+++ b/Doc/using/windows.rst
@@ -513,9 +513,11 @@ key features:
     Popular scientific modules (such as numpy, scipy and pandas) and the
     ``conda`` package manager.
 
-`Canopy <https://www.enthought.com/product/canopy/>`_
-    A "comprehensive Python analysis environment" with editors and other
-    development tools.
+`Enthought Deployment Manager <https://www.enthought.com/edm/>`_
+    "The Next Generation Python Environment and Package Manager".
+
+    Previously Enthought provided Canopy, but it `reached end of life in 2016
+    <https://support.enthought.com/hc/en-us/articles/360038600051-Canopy-GUI-end-of-life-transition-to-the-Enthought-Deployment-Manager-EDM-and-Visual-Studio-Code>`_.
 
 `WinPython <https://winpython.github.io/>`_
     Windows-specific distribution with prebuilt scientific packages and
@@ -1170,7 +1172,7 @@ Compiling Python on Windows
 If you want to compile CPython yourself, first thing you should do is get the
 `source <https://www.python.org/downloads/source/>`_. You can download either the
 latest release's source or just grab a fresh `checkout
-<https://devguide.python.org/setup/#getting-the-source-code>`_.
+<https://devguide.python.org/setup/#get-the-source-code>`_.
 
 The source tree contains a build solution and project files for Microsoft
 Visual Studio, which is the compiler used to build the official Python
diff --git a/Doc/whatsnew/2.1.rst b/Doc/whatsnew/2.1.rst
index b690f90cf6636..0136de5877403 100644
--- a/Doc/whatsnew/2.1.rst
+++ b/Doc/whatsnew/2.1.rst
@@ -542,8 +542,11 @@ PEP 241: Metadata in Python Packages
 
 A common complaint from Python users is that there's no single catalog of all
 the Python modules in existence.  T. Middleton's Vaults of Parnassus at
-http://www.vex.net/parnassus/ are the largest catalog of Python modules, but
-registering software at the Vaults is optional, and many people don't bother.
+``www.vex.net/parnassus/`` (retired in February 2009, `available in the
+Internet Archive Wayback Machine
+<https://web.archive.org/web/20090130140102/http://www.vex.net/parnassus/>`_)
+was the largest catalog of Python modules, but
+registering software at the Vaults is optional, and many people did not bother.
 
 As a first small step toward fixing the problem, Python software packaged using
 the Distutils :command:`sdist` command will include a file named
diff --git a/Doc/whatsnew/2.5.rst b/Doc/whatsnew/2.5.rst
index 103a72f913c63..597eaf51fb68d 100644
--- a/Doc/whatsnew/2.5.rst
+++ b/Doc/whatsnew/2.5.rst
@@ -551,7 +551,7 @@ exhausted.
    https://en.wikipedia.org/wiki/Coroutine
       The Wikipedia entry for  coroutines.
 
-   http://www.sidhe.org/~dan/blog/archives/000178.html
+   https://web.archive.org/web/20160321211320/http://www.sidhe.org/~dan/blog/archives/000178.html
       An explanation of coroutines from a Perl point of view, written by Dan Sugalski.
 
 .. ======================================================================
@@ -1746,8 +1746,8 @@ modules, now that :mod:`ctypes` is included with core Python.
 
 .. seealso::
 
-   http://starship.python.net/crew/theller/ctypes/
-      The ctypes web page, with a tutorial, reference, and FAQ.
+   https://web.archive.org/web/20180410025338/http://starship.python.net/crew/theller/ctypes/
+      The pre-stdlib ctypes web page, with a tutorial, reference, and FAQ.
 
    The documentation  for the :mod:`ctypes` module.
 
@@ -2065,7 +2065,7 @@ up a server takes only a few lines of code::
 
 .. seealso::
 
-   http://www.wsgi.org
+   https://web.archive.org/web/20160331090247/http://wsgi.readthedocs.org/en/latest/
       A central web site for WSGI-related resources.
 
    :pep:`333` - Python Web Server Gateway Interface v1.0
diff --git a/Doc/whatsnew/2.6.rst b/Doc/whatsnew/2.6.rst
index 08a7c58b0f080..0dbb5e50d27d7 100644
--- a/Doc/whatsnew/2.6.rst
+++ b/Doc/whatsnew/2.6.rst
@@ -176,7 +176,7 @@ Hosting of the Python bug tracker is kindly provided by
 of Stellenbosch, South Africa.  Martin von Löwis put a
 lot of effort into importing existing bugs and patches from
 SourceForge; his scripts for this import operation are at
-http://svn.python.org/view/tracker/importer/ and may be useful to
+``http://svn.python.org/view/tracker/importer/`` and may be useful to
 other projects wishing to move from SourceForge to Roundup.
 
 .. seealso::
diff --git a/Doc/whatsnew/2.7.rst b/Doc/whatsnew/2.7.rst
index 297ce0647130e..8eb8daa2feeeb 100644
--- a/Doc/whatsnew/2.7.rst
+++ b/Doc/whatsnew/2.7.rst
@@ -1545,7 +1545,7 @@ changes, or look through the Subversion logs for all the details.
   *ciphers* argument that's a string listing the encryption algorithms
   to be allowed; the format of the string is described
   `in the OpenSSL documentation
-  <https://www.openssl.org/docs/manmaster/man1/ciphers.html#CIPHER-LIST-FORMAT>`__.
+  <https://www.openssl.org/docs/man1.0.2/man1/ciphers.html>`__.
   (Added by Antoine Pitrou; :issue:`8322`.)
 
   Another change makes the extension load all of OpenSSL's ciphers and
@@ -2001,7 +2001,7 @@ module is imported or used.
 
 .. seealso::
 
-  http://www.voidspace.org.uk/python/articles/unittest2.shtml
+  https://web.archive.org/web/20210619163128/http://www.voidspace.org.uk/python/articles/unittest2.shtml
     Describes the new features, how to use them, and the
     rationale for various design decisions.  (By Michael Foord.)
 
diff --git a/Doc/whatsnew/3.2.rst b/Doc/whatsnew/3.2.rst
index 15f8672adda0d..93e455125c126 100644
--- a/Doc/whatsnew/3.2.rst
+++ b/Doc/whatsnew/3.2.rst
@@ -1647,7 +1647,7 @@ for secure (encrypted, authenticated) internet connections:
 * The :func:`ssl.wrap_socket` constructor function now takes a *ciphers*
   argument.  The *ciphers* string lists the allowed encryption algorithms using
   the format described in the `OpenSSL documentation
-  <https://www.openssl.org/docs/manmaster/man1/ciphers.html#CIPHER-LIST-FORMAT>`__.
+  <https://www.openssl.org/docs/man1.0.2/man1/ciphers.html#CIPHER-LIST-FORMAT>`__.
 
 * When linked against recent versions of OpenSSL, the :mod:`ssl` module now
   supports the Server Name Indication extension to the TLS protocol, allowing
@@ -2593,10 +2593,12 @@ Changes to Python's build process and to the C API include:
   longer used and it had never been documented (:issue:`8837`).
 
 There were a number of other small changes to the C-API.  See the
-:source:`Misc/NEWS` file for a complete list.
+Misc/NEWS <https://github.com/python/cpython/blob/v3.2.6/Misc/NEWS>`_
+file for a complete list.
 
 Also, there were a number of updates to the Mac OS X build, see
-:source:`Mac/BuildScript/README.txt` for details.  For users running a 32/64-bit
+`Mac/BuildScript/README.txt <https://github.com/python/cpython/blob/v3.2.6/Mac/BuildScript/README.txt>`_
+for details.  For users running a 32/64-bit
 build, there is a known problem with the default Tcl/Tk on Mac OS X 10.6.
 Accordingly, we recommend installing an updated alternative such as
 `ActiveState Tcl/Tk 8.5.9 <https://www.activestate.com/activetcl/downloads>`_\.
diff --git a/Doc/whatsnew/3.6.rst b/Doc/whatsnew/3.6.rst
index d35a0fd9d9da3..e54475fd83c97 100644
--- a/Doc/whatsnew/3.6.rst
+++ b/Doc/whatsnew/3.6.rst
@@ -2117,7 +2117,8 @@ API and Feature Removals
   platform specific ``Lib/plat-*/`` directories, but were chronically out of
   date, inconsistently available across platforms, and unmaintained.  The
   script that created these modules is still available in the source
-  distribution at :source:`Tools/scripts/h2py.py`.
+  distribution at `Tools/scripts/h2py.py
+  <https://github.com/python/cpython/blob/v3.6.15/Tools/scripts/h2py.py>`_.
 
 * The deprecated ``asynchat.fifo`` class has been removed.
 
diff --git a/Doc/whatsnew/3.7.rst b/Doc/whatsnew/3.7.rst
index 49246be57639d..b2078f5a82e28 100644
--- a/Doc/whatsnew/3.7.rst
+++ b/Doc/whatsnew/3.7.rst
@@ -2120,7 +2120,8 @@ Platform Support Removals
   of other LTS Linux releases (e.g. RHEL/CentOS 7.5, SLES 12-SP3), use OpenSSL
   1.0.2 or later, and remain supported in the default build configuration.
 
-  CPython's own :source:`CI configuration file <.travis.yml>` provides an
+  CPython's own `CI configuration file
+  <https://github.com/python/cpython/blob/v3.7.13/.travis.yml>`_ provides an
   example of using the SSL
   :source:`compatibility testing infrastructure <Tools/ssl/multissltests.py>` in
   CPython's test suite to build and link against OpenSSL 1.1.0 rather than an



More information about the Python-checkins mailing list