It's not a good idea to have the `make refdoc` target call pip to install missing requirements in the user's python lib. I don't want those packages to pollute my environment, if I just want to build the freetype documentation. You should either exit with error if the requirements are not met, and maybe tell the user to run pip install -r requirements.txt for themselves; or you could bootstrap a new python virtual environment, e.g. like we do in the noto-source repository:
https://github.com/googlei18n/noto-source/blob/c9e564be34ea2efe72f958016d4d8d74fad860b6/build#L20-L47 this way the only hard requirement besides python is pip itself (that's the responsibility of the user or the distro to set up). All the rest is self-contained and doesn't affect the host environment. This would also avoid issues like the one Werner reported where there is a conflict between the version of Pygments installed globally (via the distro package manager) and the one required by the docwriter. On Fri, Jul 27, 2018 at 11:18 AM Werner LEMBERG <[email protected]> wrote: > > > I have started integrating docwriter in the savannah repository. It > > is available in the 'GSoC-2018-nikhil' branch. > > Thanks! > > > I have added the required commands to make target 'refdoc', and > > converted the header files to markdown. To generate the static > > documentation site, please run `make refdoc` at the top-level. The > > docs should be generated in 'docs/reference/site/' folder. TOC and > > index files are 'ft2-toc/index.html' and 'ft2-index/index.html'. > > I tried the following on a freshly cloned FreeType repository (branch > `GSoC-2018-nikhil'): > > make devel > make refdoc > Installing requirements... > python -m pip install --user -r \ > .../freetype2/src/tools/docwriter/requirements.txt > /usr/bin/python: No module named pip > .../freetype2/builds/freetype.mk:296: recipe for target 'refdoc' failed > make: *** [refdoc] Error 1 > > This is with python 2.7.13, as installed on openSuSE 42.3. > > I get the same error if I do `autogen.sh & configure & make refdoc'. > > So, the first step should be to check whether `pip' is installed, > aborting otherwise (with a proper error). Note that we currently > don't do any configure checks for `make refdoc', which means that > checks should be included into `make refdoc' itself. > > After installation of the openSuSE `pip' bundle, I tried again (note > that some Python packages are already installed via openSuSE's package > manager): > > -------- > > Installing requirements... > python -m pip install --user -r \ > > /home/wl/git/freetype/freetype2.nikhil/src/tools/docwriter/requirements.txt > Requirement already satisfied (use --upgrade to upgrade): mistune==0.8.3 > in /usr/lib/python2.7/site-packages (from -r > /home/wl/git/freetype/freetype2.nikhil/src/tools/docwriter/requirements.txt > (line 1)) > Collecting mkdocs<=0.17.5,>=0.17.3 (from -r > /home/wl/git/freetype/freetype2.nikhil/src/tools/docwriter/requirements.txt > (line 2)) > Downloading > https://files.pythonhosted.org/packages/f9/49/cf13bb1e0d079624ce145bbe80e7a11a7cd7ace16149c3f28a43c8a72a43/mkdocs-0.17.5-py2.py3-none-any.whl > (1.2MB) > 100% |################################| 1.2MB 278kB/s > Collecting mkdocs-material<=2.9.1,>=2.9.0 (from -r > /home/wl/git/freetype/freetype2.nikhil/src/tools/docwriter/requirements.txt > (line 3)) > Downloading > https://files.pythonhosted.org/packages/38/3c/f22621b0d5b349e7ee6b711255ebdf02425ebd775267a0e959947eb40325/mkdocs_material-2.9.1-py2.py3-none-any.whl > (570kB) > 100% |################################| 573kB 476kB/s > Collecting pymdown-extensions<=4.11,>=4.10.2 (from -r > /home/wl/git/freetype/freetype2.nikhil/src/tools/docwriter/requirements.txt > (line 4)) > Downloading > https://files.pythonhosted.org/packages/7d/0b/8a645733fc6ad20c1217808d2bf26eb80996901d173e623f886b75f62239/pymdown_extensions-4.11-py2.py3-none-any.whl > (205kB) > 100% |################################| 208kB 1.4MB/s > Requirement already satisfied (use --upgrade to upgrade): PyYAML>=3.10 in > /usr/lib64/python2.7/site-packages (from -r > /home/wl/git/freetype/freetype2.nikhil/src/tools/docwriter/requirements.txt > (line 5)) > Collecting Markdown>=2.3.1 (from mkdocs<=0.17.5,>=0.17.3->-r > /home/wl/git/freetype/freetype2.nikhil/src/tools/docwriter/requirements.txt > (line 2)) > Downloading > https://files.pythonhosted.org/packages/6d/7d/488b90f470b96531a3f5788cf12a93332f543dbab13c423a5e7ce96a0493/Markdown-2.6.11-py2.py3-none-any.whl > (78kB) > 100% |################################| 81kB 687kB/s > Requirement already satisfied (use --upgrade to upgrade): click>=3.3 in > /usr/lib/python2.7/site-packages/click-6.7-py2.7.egg (from > mkdocs<=0.17.5,>=0.17.3->-r > /home/wl/git/freetype/freetype2.nikhil/src/tools/docwriter/requirements.txt > (line 2)) > Collecting tornado<5.0,>=4.1 (from mkdocs<=0.17.5,>=0.17.3->-r > /home/wl/git/freetype/freetype2.nikhil/src/tools/docwriter/requirements.txt > (line 2)) > Downloading > https://files.pythonhosted.org/packages/e3/7b/e29ab3d51c8df66922fea216e2bddfcb6430fb29620e5165b16a216e0d3c/tornado-4.5.3.tar.gz > (484kB) > 100% |################################| 487kB 543kB/s > Collecting Jinja2>=2.7.1 (from mkdocs<=0.17.5,>=0.17.3->-r > /home/wl/git/freetype/freetype2.nikhil/src/tools/docwriter/requirements.txt > (line 2)) > Downloading > https://files.pythonhosted.org/packages/7f/ff/ae64bacdfc95f27a016a7bed8e8686763ba4d277a78ca76f32659220a731/Jinja2-2.10-py2.py3-none-any.whl > (126kB) > 100% |################################| 126kB 250kB/s > Collecting livereload>=2.5.1 (from mkdocs<=0.17.5,>=0.17.3->-r > /home/wl/git/freetype/freetype2.nikhil/src/tools/docwriter/requirements.txt > (line 2)) > Downloading > https://files.pythonhosted.org/packages/dd/b4/213daced3ff1b4e02a1f700748e20e9a7481f5bfef57d11ae9babfd4aa2f/livereload-2.5.2-py2.py3-none-any.whl > Collecting Pygments>=2.2 (from mkdocs-material<=2.9.1,>=2.9.0->-r > /home/wl/git/freetype/freetype2.nikhil/src/tools/docwriter/requirements.txt > (line 3)) > Downloading > https://files.pythonhosted.org/packages/02/ee/b6e02dc6529e82b75bb06823ff7d005b141037cb1416b10c6f00fc419dca/Pygments-2.2.0-py2.py3-none-any.whl > (841kB) > 100% |################################| 843kB 235kB/s > Collecting singledispatch (from > tornado<5.0,>=4.1->mkdocs<=0.17.5,>=0.17.3->-r > /home/wl/git/freetype/freetype2.nikhil/src/tools/docwriter/requirements.txt > (line 2)) > Downloading > https://files.pythonhosted.org/packages/c5/10/369f50bcd4621b263927b0a1519987a04383d4a98fb10438042ad410cf88/singledispatch-3.4.0.3-py2.py3-none-any.whl > Collecting certifi (from tornado<5.0,>=4.1->mkdocs<=0.17.5,>=0.17.3->-r > /home/wl/git/freetype/freetype2.nikhil/src/tools/docwriter/requirements.txt > (line 2)) > Downloading > https://files.pythonhosted.org/packages/7c/e6/92ad559b7192d846975fc916b65f667c7b8c3a32bea7372340bfe9a15fa5/certifi-2018.4.16-py2.py3-none-any.whl > (150kB) > 100% |################################| 151kB 236kB/s > Collecting backports-abc>=0.4 (from > tornado<5.0,>=4.1->mkdocs<=0.17.5,>=0.17.3->-r > /home/wl/git/freetype/freetype2.nikhil/src/tools/docwriter/requirements.txt > (line 2)) > Downloading > https://files.pythonhosted.org/packages/7d/56/6f3ac1b816d0cd8994e83d0c4e55bc64567532f7dc543378bd87f81cebc7/backports_abc-0.5-py2.py3-none-any.whl > Collecting MarkupSafe>=0.23 (from > Jinja2>=2.7.1->mkdocs<=0.17.5,>=0.17.3->-r > /home/wl/git/freetype/freetype2.nikhil/src/tools/docwriter/requirements.txt > (line 2)) > Downloading > https://files.pythonhosted.org/packages/4d/de/32d741db316d8fdb7680822dd37001ef7a448255de9699ab4bfcbdf4172b/MarkupSafe-1.0.tar.gz > Requirement already satisfied (use --upgrade to upgrade): six in > /usr/lib/python2.7/site-packages (from > livereload>=2.5.1->mkdocs<=0.17.5,>=0.17.3->-r > /home/wl/git/freetype/freetype2.nikhil/src/tools/docwriter/requirements.txt > (line 2)) > Installing collected packages: Markdown, singledispatch, certifi, > backports-abc, tornado, MarkupSafe, Jinja2, livereload, mkdocs, Pygments, > pymdown-extensions, mkdocs-material > Running setup.py install for tornado > Running setup.py install for MarkupSafe > Successfully installed Jinja2-2.10 Markdown-2.6.11 MarkupSafe-1.0 > Pygments-2.0 backports-abc-0.5 certifi-2018.4.16 livereload-2.5.2 > mkdocs-0.17.5 mkdocs-material-2.9.1 pymdown-extensions-4.11 > singledispatch-3.4.0.3 tornado-4.5.3 > You are using pip version 7.1.2, however version 18.0 is available. > You should consider upgrading via the 'pip install --upgrade pip' > command. > Running docwriter... > python -B > /home/wl/git/freetype/freetype2.nikhil/src/tools/docwriter/docwriter.py \ > --prefix=ft2 \ > --title=FreeType-2.9.1 \ > > --output=/home/wl/git/freetype/freetype2.nikhil/docs/reference > \ > > /home/wl/git/freetype/freetype2.nikhil/include/freetype/*.h > \ > > /home/wl/git/freetype/freetype2.nikhil/include/freetype/config/*.h > \ > > /home/wl/git/freetype/freetype2.nikhil/include/freetype/cache/*.h > INFO - Cleaning output directory > INFO - Building markdown documentation to directory: > /home/wl/git/freetype/freetype2.nikhil/docs/reference/markdown > WARNING - Undefined cross reference 'FTC_Property_Set'. > WARNING - Undefined cross reference 'FTC_Property_Get'. > Building static site... > cd /home/wl/git/freetype/freetype2.nikhil/docs/reference && mkdocs build > Traceback (most recent call last): > File "/home/wl/.local/bin/mkdocs", line 11, in <module> > sys.exit(cli()) > File > "/usr/lib/python2.7/site-packages/click-6.7-py2.7.egg/click/core.py", line > 722, in __call__ > return self.main(*args, **kwargs) > File > "/usr/lib/python2.7/site-packages/click-6.7-py2.7.egg/click/core.py", line > 697, in main > rv = self.invoke(ctx) > File > "/usr/lib/python2.7/site-packages/click-6.7-py2.7.egg/click/core.py", line > 1066, in invoke > return _process_result(sub_ctx.command.invoke(sub_ctx)) > File > "/usr/lib/python2.7/site-packages/click-6.7-py2.7.egg/click/core.py", line > 895, in invoke > return ctx.invoke(self.callback, **ctx.params) > File > "/usr/lib/python2.7/site-packages/click-6.7-py2.7.egg/click/core.py", line > 535, in invoke > return callback(*args, **kwargs) > File "/home/wl/.local/lib/python2.7/site-packages/mkdocs/__main__.py", > line 155, in build_command > site_dir=site_dir > File > "/home/wl/.local/lib/python2.7/site-packages/mkdocs/config/base.py", line > 181, in load_config > errors, warnings = cfg.validate() > File > "/home/wl/.local/lib/python2.7/site-packages/mkdocs/config/base.py", line > 105, in validate > post_failed, post_warnings = self._post_validate() > File > "/home/wl/.local/lib/python2.7/site-packages/mkdocs/config/base.py", line > 85, in _post_validate > config_option.post_validation(self, key_name=key) > File > "/home/wl/.local/lib/python2.7/site-packages/mkdocs/config/config_options.py", > line 433, in post_validation > config[key_name] = theme.Theme(**theme_config) > File "/home/wl/.local/lib/python2.7/site-packages/mkdocs/theme.py", line > 47, in __init__ > self._load_theme_config(name) > File "/home/wl/.local/lib/python2.7/site-packages/mkdocs/theme.py", line > 77, in _load_theme_config > theme_dir = utils.get_theme_dir(name) > File > "/home/wl/.local/lib/python2.7/site-packages/mkdocs/utils/__init__.py", > line 373, in get_theme_dir > return os.path.dirname(os.path.abspath(theme.load().__file__)) > File "/usr/lib/python2.7/site-packages/pkg_resources/__init__.py", line > 2354, in load > self.require(*args, **kwargs) > File "/usr/lib/python2.7/site-packages/pkg_resources/__init__.py", line > 2371, in require > items = working_set.resolve(reqs, env, installer) > File "/usr/lib/python2.7/site-packages/pkg_resources/__init__.py", line > 844, in resolve > raise VersionConflict(dist, req).with_context(dependent_req) > pkg_resources.VersionConflict: (Pygments 2.0 > (/usr/lib/python2.7/site-packages/Pygments-2.0-py2.7.egg), > Requirement.parse('Pygments>=2.2')) > /home/wl/git/freetype/freetype2.nikhil/builds/freetype.mk:296: recipe for > target 'refdoc' failed > make: *** [refdoc] Error 1 > > -------- > > Please advise. > > > Werner > > _______________________________________________ > Freetype-devel mailing list > [email protected] > https://lists.nongnu.org/mailman/listinfo/freetype-devel > -- Cosimo Lupo
_______________________________________________ Freetype-devel mailing list [email protected] https://lists.nongnu.org/mailman/listinfo/freetype-devel
