I can confirm that running `make refdoc` from a within a fresh virtual environment (after having removed the --user) option, works for me. I'm running python 2.7.14 on Debian. I don't get the error that Werner gets, because I'm installing all the dependencies from scratch in the new virtual environment, instead of relying on a mixture of pip-installed packages and others provided by the distro package manager.
On Fri, Jul 27, 2018 at 12:17 PM Cosimo Lupo <[email protected]> wrote: > Besides, the `--user` option of pip install is incompatible with a virtual > environment, you should remove that in any case, because it will prevent > users like me, who would prefer to install the dependencies in a temporary > virtual environment, from being able to run `make refdoc` from within an > activated python virtual environment. > > I know that without --user it would fails because then pip would attempt > to install to the global python environment where it doesn't have write > access (without sudo, which is even worse, don't use that ever), but that's > exactly the point I'm making before, that you shouldn't force a user to > permanently modify their global or user's environment just in order to > build the documentation. > > On Fri, Jul 27, 2018 at 12:14 PM Cosimo Lupo <[email protected]> > wrote: > >> 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 >> > -- > Cosimo Lupo > -- Cosimo Lupo
_______________________________________________ Freetype-devel mailing list [email protected] https://lists.nongnu.org/mailman/listinfo/freetype-devel
