Index: ndn-tools_22.12-15-g7e9d7e4f-bp2/manpages/conf.py
===================================================================
--- ndn-tools_22.12-15-g7e9d7e4f-bp2.orig/manpages/conf.py
+++ ndn-tools_22.12-15-g7e9d7e4f-bp2/manpages/conf.py
@@ -1,19 +1,32 @@
+# -*- coding: utf-8 -*-
+#
 # Configuration file for the Sphinx documentation builder.
 #
-# For the full list of built-in configuration values, see the documentation:
-# https://www.sphinx-doc.org/en/master/usage/configuration.html
+# This file only contains a selection of the most common options. For a full
+# list see the documentation:
+# http://www.sphinx-doc.org/en/master/config
+
+# -- Path setup --------------------------------------------------------------
+
+# If extensions (or modules to document with autodoc) are in another directory,
+# add these directories to sys.path here. If the directory is relative to the
+# documentation root, use os.path.abspath to make it absolute, like shown here.
+#
+# import os
+# import sys
+# sys.path.insert(0, os.path.abspath('.'))
+
 
 # -- Project information -----------------------------------------------------
-# https://www.sphinx-doc.org/en/master/usage/configuration.html#project-information
 
-project = 'NDN Essential Tools'
-copyright = 'Copyright © 2014-2023 Named Data Networking Project.'
-author = 'Named Data Networking Project'
+project = u'NDN Essential Tools'
+copyright = u'Copyright © 2014-2019 Named Data Networking Project.'
+author = u'Named Data Networking Project'
 
-# The short X.Y version.
+# The short X.Y version
 #version = ''
 
-# The full version, including alpha/beta/rc tags.
+# The full version, including alpha/beta/rc tags
 #release = ''
 
 # There are two options for replacing |today|: either, you set today to some
@@ -24,26 +37,34 @@ today_fmt = '%Y-%m-%d'
 
 
 # -- General configuration ---------------------------------------------------
-# https://www.sphinx-doc.org/en/master/usage/configuration.html#general-configuration
 
-needs_sphinx = '4.0'
-extensions = []
+# If your documentation needs a minimal Sphinx version, state it here.
+#
+needs_sphinx = '1.1'
 
-templates_path = ['_templates']
-exclude_patterns = ['Thumbs.db', '.DS_Store']
+# Add any Sphinx extension module names here, as strings. They can be
+# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
+# ones.
+extensions = [
+]
+
+# The master toctree document.
+master_doc = 'index'
 
 
 # -- Options for manual page output ------------------------------------------
-# https://www.sphinx-doc.org/en/master/usage/configuration.html#options-for-manual-page-output
 
 # One entry per manual page. List of tuples
 # (source start file, name, description, authors, manual section).
 man_pages = [
-    ('ndnpeek',       'ndnpeek',       'simple consumer to send one Interest and receive one Data', [], 1),
-    ('ndnpoke',       'ndnpoke',       'simple producer to publish one Data',        [], 1),
-    ('ndnping',       'ndnping',       'reachability testing client',                [], 1),
-    ('ndnpingserver', 'ndnpingserver', 'reachability testing server',                [], 1),
-    ('ndnputchunks',  'ndnputchunks',  'producer program with content segmentation', [], 1),
-    ('ndndump',       'ndndump',       'traffic analysis tool',                      [], 8),
-    ('ndn-dissect',   'ndn-dissect',   'NDN packet format inspector',                [], 1),
+    ('ndnpeek',         'ndnpeek',          'simple consumer to send one Interest and expect one Data', [], 1),
+    ('ndnpoke',         'ndnpoke',          'simple producer to publish one Data',          [], 1),
+    ('ndnping',         'ndnping',          'reachability testing client',                  [], 1),
+    ('ndnpingserver',   'ndnpingserver',    'reachability testing server',                  [], 1),
+    ('ndnputchunks',    'ndnputchunks',     'producer program with content segmentation',   [], 1),
+    ('ndndump',         'ndndump',          'traffic analysis tool',                        [], 8),
+    ('ndn-dissect',     'ndn-dissect',      'NDN packet format inspector',                  [], 1),
 ]
+
+# If true, show URL addresses after external links.
+#man_show_urls = True
