epub builder tries to use `html_favicon` but does not know the mime type for `.ico`
Describe the bug
When building epub with 4.5.0, the follow warning is produced:
WARNING: unknown mimetype for _static/RDFlib.ico, ignoringThis prevents the -W flag from being useful when building epub and having a html_favicon set.
How to Reproduce
Just the commands:
git clone [email protected]:RDFLib/rdflib.git
cd rdflib
git checkout d711a3518c033695e41a84c147bc09aca0893d21
python3.9 -m venv .venv
.venv/bin/python -m pip install '.[docs]'
.venv/bin/python -m pip freeze
(export PATH=$(readlink -f .venv)/bin:${PATH} PYTHONPATH=$(readlink -f .venv) &&
cd docs &&
python -m sphinx -T -E -W --keep-going -b epub -d _build/doctrees -D language=en . _build/epub)
echo $?Commands with output
$ git clone [email protected]:RDFLib/rdflib.git
Cloning into 'rdflib'...
remote: Enumerating objects: 30581, done.
remote: Counting objects: 100% (2333/2333), done.
remote: Compressing objects: 100% (1071/1071), done.
remote: Total 30581 (delta 1519), reused 1875 (delta 1219), pack-reused 28248
Receiving objects: 100% (30581/30581), 15.88 MiB | 11.95 MiB/s, done.
Resolving deltas: 100% (19322/19322), done.
$ cd rdflib
$ git checkout d711a3518c033695e41a84c147bc09aca0893d21
Note: switching to 'd711a3518c033695e41a84c147bc09aca0893d21'.
You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by switching back to a branch.
If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -c with the switch command. Example:
git switch -c <new-branch-name>
Or undo this operation with:
git switch -
Turn off this advice by setting config variable advice.detachedHead to false
HEAD is now at d711a351 Merge pull request #1818 from aucampia/iwana-20220414T2246-sphinx_warnings
$ python3.9 -m venv .venv
$ .venv/bin/python -m pip install '.[docs]'
Processing /var/tmp/sphinx-epub-mime/rdflib
DEPRECATION: A future pip version will change local packages to be built in-place without first copying to a temporary directory. We recommend you use --use-feature=in-tree-build to test your packages with this new behavior before it becomes the default.
pip 21.3 will remove support for this functionality. You can find discussion regarding this at https://github.com/pypa/pip/issues/7555.
Installing build dependencies ... done
Getting requirements to build wheel ... done
Preparing wheel metadata ... done
Collecting pyparsing
Using cached pyparsing-3.0.8-py3-none-any.whl (98 kB)
Collecting isodate
Using cached isodate-0.6.1-py2.py3-none-any.whl (41 kB)
Requirement already satisfied: setuptools in ./.venv/lib/python3.9/site-packages (from rdflib==6.2.0a0) (57.4.0)
Collecting sphinxcontrib-kroki
Using cached sphinxcontrib_kroki-1.3.0-py3-none-any.whl
Collecting sphinxcontrib-apidoc
Using cached sphinxcontrib_apidoc-0.3.0-py2.py3-none-any.whl (8.5 kB)
Collecting sphinx<5
Using cached Sphinx-4.5.0-py3-none-any.whl (3.1 MB)
Collecting myst-parser
Using cached myst_parser-0.17.1-py3-none-any.whl (52 kB)
Collecting requests>=2.5.0
Using cached requests-2.27.1-py2.py3-none-any.whl (63 kB)
Collecting imagesize
Using cached imagesize-1.3.0-py2.py3-none-any.whl (5.2 kB)
Collecting docutils<0.18,>=0.14
Using cached docutils-0.17.1-py2.py3-none-any.whl (575 kB)
Collecting sphinxcontrib-qthelp
Using cached sphinxcontrib_qthelp-1.0.3-py2.py3-none-any.whl (90 kB)
Collecting Pygments>=2.0
Using cached Pygments-2.11.2-py3-none-any.whl (1.1 MB)
Collecting babel>=1.3
Using cached Babel-2.9.1-py2.py3-none-any.whl (8.8 MB)
Collecting importlib-metadata>=4.4
Using cached importlib_metadata-4.11.3-py3-none-any.whl (18 kB)
Collecting sphinxcontrib-jsmath
Using cached sphinxcontrib_jsmath-1.0.1-py2.py3-none-any.whl (5.1 kB)
Collecting packaging
Using cached packaging-21.3-py3-none-any.whl (40 kB)
Collecting sphinxcontrib-serializinghtml>=1.1.5
Using cached sphinxcontrib_serializinghtml-1.1.5-py2.py3-none-any.whl (94 kB)
Collecting sphinxcontrib-applehelp
Using cached sphinxcontrib_applehelp-1.0.2-py2.py3-none-any.whl (121 kB)
Collecting snowballstemmer>=1.1
Using cached snowballstemmer-2.2.0-py2.py3-none-any.whl (93 kB)
Collecting Jinja2>=2.3
Using cached Jinja2-3.1.1-py3-none-any.whl (132 kB)
Collecting sphinxcontrib-devhelp
Using cached sphinxcontrib_devhelp-1.0.2-py2.py3-none-any.whl (84 kB)
Collecting alabaster<0.8,>=0.7
Using cached alabaster-0.7.12-py2.py3-none-any.whl (14 kB)
Collecting sphinxcontrib-htmlhelp>=2.0.0
Using cached sphinxcontrib_htmlhelp-2.0.0-py2.py3-none-any.whl (100 kB)
Collecting pytz>=2015.7
Using cached pytz-2022.1-py2.py3-none-any.whl (503 kB)
Collecting zipp>=0.5
Using cached zipp-3.8.0-py3-none-any.whl (5.4 kB)
Collecting MarkupSafe>=2.0
Using cached MarkupSafe-2.1.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (25 kB)
Collecting idna<4,>=2.5
Using cached idna-3.3-py3-none-any.whl (61 kB)
Collecting certifi>=2017.4.17
Using cached certifi-2021.10.8-py2.py3-none-any.whl (149 kB)
Collecting urllib3<1.27,>=1.21.1
Using cached urllib3-1.26.9-py2.py3-none-any.whl (138 kB)
Collecting charset-normalizer~=2.0.0
Using cached charset_normalizer-2.0.12-py3-none-any.whl (39 kB)
Collecting six
Using cached six-1.16.0-py2.py3-none-any.whl (11 kB)
Collecting attrs>=19
Using cached attrs-21.4.0-py2.py3-none-any.whl (60 kB)
Collecting mdit-py-plugins~=0.3.0
Using cached mdit_py_plugins-0.3.0-py3-none-any.whl (43 kB)
Collecting pyyaml
Using cached PyYAML-6.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl (661 kB)
Collecting typing-extensions
Using cached typing_extensions-4.1.1-py3-none-any.whl (26 kB)
Collecting markdown-it-py<3.0.0,>=1.0.0
Using cached markdown_it_py-2.0.1-py3-none-any.whl (84 kB)
Collecting mdurl~=0.1
Using cached mdurl-0.1.1-py3-none-any.whl (10 kB)
Collecting pbr
Using cached pbr-5.8.1-py2.py3-none-any.whl (113 kB)
Building wheels for collected packages: rdflib
Building wheel for rdflib (PEP 517) ... done
Created wheel for rdflib: filename=rdflib-6.2.0a0-py3-none-any.whl size=490952 sha256=3ea5bf3c5489915f618793610b34b7258a5a92f604fdd625f8da6fa9ce04b187
Stored in directory: /tmp/pip-ephem-wheel-cache-11_vbro8/wheels/16/7f/e8/d4fd7dcf411570999c1cd5f754aee633ef8a865ae93f4e20bd
Successfully built rdflib
Installing collected packages: zipp, urllib3, pytz, pyparsing, mdurl, MarkupSafe, idna, charset-normalizer, certifi, attrs, sphinxcontrib-serializinghtml, sphinxcontrib-qthelp, sphinxcontrib-jsmath, sphinxcontrib-htmlhelp, sphinxcontrib-devhelp, sphinxcontrib-applehelp, snowballstemmer, six, requests, Pygments, packaging, markdown-it-py, Jinja2, importlib-metadata, imagesize, docutils, babel, alabaster, typing-extensions, sphinx, pyyaml, pbr, mdit-py-plugins, isodate, sphinxcontrib-kroki, sphinxcontrib-apidoc, rdflib, myst-parser
Successfully installed Jinja2-3.1.1 MarkupSafe-2.1.1 Pygments-2.11.2 alabaster-0.7.12 attrs-21.4.0 babel-2.9.1 certifi-2021.10.8 charset-normalizer-2.0.12 docutils-0.17.1 idna-3.3 imagesize-1.3.0 importlib-metadata-4.11.3 isodate-0.6.1 markdown-it-py-2.0.1 mdit-py-plugins-0.3.0 mdurl-0.1.1 myst-parser-0.17.1 packaging-21.3 pbr-5.8.1 pyparsing-3.0.8 pytz-2022.1 pyyaml-6.0 rdflib-6.2.0a0 requests-2.27.1 six-1.16.0 snowballstemmer-2.2.0 sphinx-4.5.0 sphinxcontrib-apidoc-0.3.0 sphinxcontrib-applehelp-1.0.2 sphinxcontrib-devhelp-1.0.2 sphinxcontrib-htmlhelp-2.0.0 sphinxcontrib-jsmath-1.0.1 sphinxcontrib-kroki-1.3.0 sphinxcontrib-qthelp-1.0.3 sphinxcontrib-serializinghtml-1.1.5 typing-extensions-4.1.1 urllib3-1.26.9 zipp-3.8.0
WARNING: You are using pip version 21.2.3; however, version 22.0.4 is available.
You should consider upgrading via the '/var/tmp/sphinx-epub-mime/rdflib/.venv/bin/python -m pip install --upgrade pip' command.
$ .venv/bin/python -m pip freeze
alabaster==0.7.12
attrs==21.4.0
Babel==2.9.1
certifi==2021.10.8
charset-normalizer==2.0.12
docutils==0.17.1
idna==3.3
imagesize==1.3.0
importlib-metadata==4.11.3
isodate==0.6.1
Jinja2==3.1.1
markdown-it-py==2.0.1
MarkupSafe==2.1.1
mdit-py-plugins==0.3.0
mdurl==0.1.1
myst-parser==0.17.1
packaging==21.3
pbr==5.8.1
Pygments==2.11.2
pyparsing==3.0.8
pytz==2022.1
PyYAML==6.0
rdflib @ file:///var/tmp/sphinx-epub-mime/rdflib
requests==2.27.1
six==1.16.0
snowballstemmer==2.2.0
Sphinx==4.5.0
sphinxcontrib-apidoc==0.3.0
sphinxcontrib-applehelp==1.0.2
sphinxcontrib-devhelp==1.0.2
sphinxcontrib-htmlhelp==2.0.0
sphinxcontrib-jsmath==1.0.1
sphinxcontrib-kroki==1.3.0
sphinxcontrib-qthelp==1.0.3
sphinxcontrib-serializinghtml==1.1.5
typing_extensions==4.1.1
urllib3==1.26.9
zipp==3.8.0
$ (export PATH=$(readlink -f .venv)/bin:${PATH} PYTHONPATH=$(readlink -f .venv) &&
> cd docs &&
> python -m sphinx -T -E -W --keep-going -b epub -d _build/doctrees -D language=en . _build/epub)
Running Sphinx v4.5.0
loading translations [en]... done
making output directory... done
Creating file /var/tmp/sphinx-epub-mime/rdflib/docs/apidocs/rdflib.rst.
Creating file /var/tmp/sphinx-epub-mime/rdflib/docs/apidocs/rdflib.extras.rst.
Creating file /var/tmp/sphinx-epub-mime/rdflib/docs/apidocs/rdflib.namespace.rst.
Creating file /var/tmp/sphinx-epub-mime/rdflib/docs/apidocs/rdflib.plugins.rst.
Creating file /var/tmp/sphinx-epub-mime/rdflib/docs/apidocs/rdflib.plugins.parsers.rst.
Creating file /var/tmp/sphinx-epub-mime/rdflib/docs/apidocs/rdflib.plugins.serializers.rst.
Creating file /var/tmp/sphinx-epub-mime/rdflib/docs/apidocs/rdflib.plugins.shared.rst.
Creating file /var/tmp/sphinx-epub-mime/rdflib/docs/apidocs/rdflib.plugins.shared.jsonld.rst.
Creating file /var/tmp/sphinx-epub-mime/rdflib/docs/apidocs/rdflib.plugins.sparql.rst.
Creating file /var/tmp/sphinx-epub-mime/rdflib/docs/apidocs/rdflib.plugins.sparql.results.rst.
Creating file /var/tmp/sphinx-epub-mime/rdflib/docs/apidocs/rdflib.plugins.stores.rst.
Creating file /var/tmp/sphinx-epub-mime/rdflib/docs/apidocs/rdflib.tools.rst.
Creating file /var/tmp/sphinx-epub-mime/rdflib/docs/apidocs/modules.rst.
loading intersphinx inventory from https://docs.python.org/3.7/objects.inv...
myst v0.17.1: MdParserConfig(commonmark_only=False, gfm_only=False, enable_extensions=[], linkify_fuzzy_links=True, dmath_allow_labels=True, dmath_allow_space=True, dmath_allow_digits=True, dmath_double_inline=False, update_mathjax=True, mathjax_classes='tex2jax_process|mathjax_process|math|output_area', disable_syntax=[], all_links_external=False, url_schemes=['http', 'https', 'mailto', 'ftp'], ref_domains=None, highlight_code_blocks=True, number_code_blocks=[], title_to_header=False, heading_anchors=None, heading_slug_func=None, html_meta=[], footnote_transition=True, substitutions=[], sub_delimiters=['{', '}'], words_per_minute=200)
building [mo]: targets for 0 po files that are out of date
building [epub]: targets for 24 source files that are out of date
updating environment: [new config] 37 added, 0 changed, 0 removed
/usr/lib64/python3.9/inspect.py:2295: UserWarning: Code: _partialmethod is not defined in namespace BRICK
partialmethod = obj._partialmethod
/usr/lib64/python3.9/inspect.py:2295: UserWarning: Code: _partialmethod is not defined in namespace DCAT
partialmethod = obj._partialmethod
/usr/lib64/python3.9/inspect.py:2295: UserWarning: Code: _partialmethod is not defined in namespace PROF
partialmethod = obj._partialmethod
/usr/lib64/python3.9/inspect.py:2295: UserWarning: Code: _partialmethod is not defined in namespace SDO
partialmethod = obj._partialmethod
/usr/lib64/python3.9/inspect.py:2295: UserWarning: Code: _partialmethod is not defined in namespace SOSA
partialmethod = obj._partialmethod
/usr/lib64/python3.9/inspect.py:2295: UserWarning: Code: _partialmethod is not defined in namespace SSN
partialmethod = obj._partialmethod
/usr/lib64/python3.9/inspect.py:2295: UserWarning: Code: _partialmethod is not defined in namespace TIME
partialmethod = obj._partialmethod
/usr/lib64/python3.9/inspect.py:2295: UserWarning: Code: _partialmethod is not defined in namespace XSD
partialmethod = obj._partialmethod
reading sources... [100%] utilities
looking for now-outdated files... none found
pickling environment... done
checking consistency... done
preparing documents... done
writing output... [100%] utilities
generating indices... genindex py-modindex done
writing additional pages... done
copying images... [100%] _static/datatype_hierarchy.png
copying static files... done
copying extra files... done
writing mimetype file...
writing META-INF/container.xml file...
writing content.opf file...
WARNING: unknown mimetype for _static/RDFlib.ico, ignoring
writing nav.xhtml file...
writing toc.ncx file...
writing rdflib.epub file...
build finished with problems, 1 warning.
$ echo $?
1Expected behavior
I would expect the epub builder to either know how to handle .ico files or ignore html_favicon.
Your project
https://github.com/RDFLib/rdflib/tree/d711a3518c033695e41a84c147bc09aca0893d21
Screenshots
No response
OS
Linux - Fedora 35
Python version
Python 3.9.12
Sphinx version
4.5.0
Sphinx extensions
sphinxcontrib.apidoc, sphinx.ext.autodoc, sphinx.ext.doctest, sphinx.ext.intersphinx, sphinx.ext.todo, sphinx.ext.coverage, sphinx.ext.ifconfig, sphinx.ext.viewcode, myst_parser, sphinxcontrib.kroki
Extra tools
No response
Additional context
I noticed this on our RTD build after enabling sphinx.fail_on_warning. See https://readthedocs.org/projects/rdflib/builds/16660933/.
Source: sphinx-doc/sphinx