Closed iandoug closed 6 years ago
Can you let me know what branch you are building with? Is this from master? If so, do you mind trying again with the same make ttf
command from the dev
branch? We are using a new approach with pipenv virtual environments and Python 3 that may address this issue.
Hi Chris Yes master branch. Downloaded the zip instead of going via Git because I wasn't expecting that I would be sending pull requests through... not my area of expertise.
Will see how far I get with dev branch.
Thanks, Ian
Let me know how it goes. You will want the dev branch anyways. It has all of the new designs over the last few months. There are a number of design changes in the works.
dies here: woff2_compress successfully built on the path '/home/ian/woff2/woff2_compress' ./build-pipenv.sh which: no pipenv in (/usr/x86_64-pc-linux-gnu/gcc-bin/7.3.1:/usr/x86_64-pc-linux-gnu/avr/gcc-bin/7.3.0:/usr/lib/llvm/6/bin:/usr/lib/llvm/5/bin:/usr/local/bin:/usr/bin:/bin:/opt/bin:/usr/x86_64-pc-linux-gnu/gnat-gcc-bin/4.6:/usr/libexec/gnat-gcc/x86_64-pc-linux-gnu/4.6:/usr/lib64/subversion/bin:/usr/games/bin) Unable to detect a pipenv install. Please install with 'pip install pipenv' then repeat your build attempt. make: *** [Makefile:41: pipenv] Error 1 ~/projects/Hack-dev $
~/projects/Hack-dev $ pip install pipenv ERROR: (Gentoo) Please run pip with the --user option to avoid breaking python-exec ~/projects/Hack-dev $ pip install --user pipenv (installs) Try again after deleting autohint dir again.
dies again: tools/scripts/install/sfnt2woff-zopfli-build.sh Build directory '/home/ian/sfnt2woff-zopfli-build' must not exist. make: *** [Makefile:33: build-local-sfnt2woffzopfli] Error 1
delete that, and autohint (again) and try again... Dies again: tools/scripts/install/woff2-compress-build.sh Build directory `/home/ian/woff2' must not exist. make: *** [Makefile:36: build-local-woff2] Error 1
So now delete three dirs and try again...
Not wild about you using /home/ian/woff2 ... I might have actual woff2 files in there. Everything should be under one custom /home/ian/hack-dev-files or somesuch. The build process should check which dirs it wants empty when it starts, and offer to wipe them. But that would be safer if all under one custom dir rather than (so far) three separate dirs...)
Dies again. woff2_compress successfully built on the path '/home/ian/woff2/woff2_compress' ./build-pipenv.sh which: no pipenv in (/usr/x86_64-pc-linux-gnu/gcc-bin/7.3.1:/usr/x86_64-pc-linux-gnu/avr/gcc-bin/7.3.0:/usr/lib/llvm/6/bin:/usr/lib/llvm/5/bin:/usr/local/bin:/usr/bin:/bin:/opt/bin:/usr/x86_64-pc-linux-gnu/gnat-gcc-bin/4.6:/usr/libexec/gnat-gcc/x86_64-pc-linux-gnu/4.6:/usr/lib64/subversion/bin:/usr/games/bin) Unable to detect a pipenv install. Please install with 'pip install pipenv' then repeat your build attempt. make: *** [Makefile:41: pipenv] Error 1
But I did that... guess one of the folder wipes wiped it ... Clean up first, then try install again...
~/projects/Hack-dev $ pip install --user pipenv Requirement already satisfied: pipenv in /home/ian/.local/lib64/python3.6/site-packages Requirement already satisfied: pip>=9.0.1 in /usr/lib64/python3.6/site-packages (from pipenv) Requirement already satisfied: virtualenv-clone>=0.2.5 in /home/ian/.local/lib64/python3.6/site-packages (from pipenv) Requirement already satisfied: setuptools>=36.2.1 in /usr/lib64/python3.6/site-packages (from pipenv) Requirement already satisfied: certifi in /usr/lib64/python3.6/site-packages (from pipenv) Requirement already satisfied: virtualenv in /home/ian/.local/lib64/python3.6/site-packages (from pipenv)
So now what ....?
Must root install pipenv?
Wow. That is a mess...
Must root install pipenv?
No, this should definitely not be necessary.
For actionable items, let's take this and open a new issue report:
Everything should be under one custom /home/ian/hack-dev-files or somesuch. The build process should check which dirs it wants empty when it starts, and offer to wipe them. But that would be safer if all under one custom dir rather than (so far) three separate dirs...)
There is intentionally not an overwrite of the woff2 and sfnt2woff-zopfli-build directories during the installation process so as to avoid unexpected losses when one runs the script. The multiple directories arose during a sequence of build additions to the user directory. It began with ttfautohint from a build script that Werner Lemberg contributed earlier in the development of the Hack project and I elected to continue in the same manner. We are building local versions in order to avoid replacements of pinned versions in this project with those that are installed on the system PATH (and may be earlier or later versions than used here). If you have a better approach I would be interested in hearing about it.
I don't know what is going on with your Python on Gentoo. There seems be a system-wide install problem and, for some reason, when you attempt to install manually with the user install approach it is not detected with a test for the pipenv
executable. Can you run pipenv --help
and see stdout help information from pipenv
?
@paride do you happen to have any feedback on this issue from a Debian perspective? I know that you have the existing dev branch build process up and running on Debian. Thoughts about Ian's issue above?
@chrissimpkins The packaging is done using the latest tagged release, not the dev branch, and in Debian we we use the packaged Python packages.
Could this be a Python vs. Python3 issue?
@paride Yes not in production Debian releases but I was under the impression that you have tested this build process on the Debian distro. We built it in part to satisfy build needs there. I think you did identify the problem. Thanks for your feedback!
Yes looking through the install process I think that Paride may be correct Ian. If you don't have Python 3 installed, please install that and use pip3
for your installs instead of pip. This may be the problem. You are likely installing pipenv under the Python 2 packages (unless Gentoo has moved away from Py 2 altogether which I am assuming is not the case...yet).
@chrissimpkins yes I did test the new build process locally (and again thank you for implementing it), but it is not in production (it will be once a new release is tagged) and were done some months ago already...
Not a python guru, but system set up like this: trooper ~ # eselect python list Available Python interpreters, in order of preference: [1] python3.4 [2] python3.6 (fallback) [3] python3.5 (fallback) [4] python2.7 (fallback)
So assume it is using 3.4, will try with pip3.
(rant)People who create languages should make sure everything is backward compatible. Or call it something else.(/rant)
Old version hanging around for some reason, not sure why .. .I remember a while back there were things that required version 2. (see rant...)
@iandoug they declared it incompatible and called it "Python3". Having python
point to a Python3 interpreted is discouraged:
The rants are all justified. This is a true backwards incompatible major release of the Python interpreter and it has caused everyone headaches. The extent of changes required to make code bases Py3 ready is why Py2 has hung around for so long. Py2 has an official end of life date set for next year so many projects that neglected the move in the past are starting to move their code bases to Py3. It's an interesting problem in interpreted languages when backwards incompatible changes are made in the interpreter. Unfortunately not much that the language developers can do about that short of having the foresight to not create things that will be deprecated in favor of new approaches down the road :)
./build-pipenv.sh which: no pipenv in (/usr/x86_64-pc-linux-gnu/gcc-bin/7.3.1:/usr/x86_64-pc-linux-gnu/avr/gcc-bin/7.3.0:/usr/lib/llvm/6/bin:/usr/lib/llvm/5/bin:/usr/local/bin:/usr/bin:/bin:/opt/bin:/usr/x86_64-pc-linux-gnu/gnat-gcc-bin/4.6:/usr/libexec/gnat-gcc/x86_64-pc-linux-gnu/4.6:/usr/lib64/subversion/bin:/usr/games/bin) Unable to detect a pipenv install. Please install with 'pip install pipenv' then repeat your build attempt. make: *** [Makefile:41: pipenv] Error 1
~/projects/Hack-dev $ pip3 install --user pipenv Requirement already satisfied: pipenv in /home/ian/.local/lib64/python3.6/site-packages Requirement already satisfied: virtualenv-clone>=0.2.5 in /home/ian/.local/lib64/python3.6/site-packages (from pipenv) Requirement already satisfied: certifi in /usr/lib64/python3.6/site-packages (from pipenv) Requirement already satisfied: virtualenv in /home/ian/.local/lib64/python3.6/site-packages (from pipenv) Requirement already satisfied: pip>=9.0.1 in /usr/lib64/python3.6/site-packages (from pipenv) Requirement already satisfied: setuptools>=36.2.1 in /usr/lib64/python3.6/site-packages (from pipenv)
Maybe I need to add /home/ian/.local/lib64/python3.6/site-packages to $PATH ?
Any idea why you have three Py3 interpreters installed?
Gentoo puts things in "slots", so that if you need specific versions they don't get wiped automagically. I can try uninstalling those other ones. I see my default is 3.4 but pipenv is in 3.6 which is probably what the problem is. Let me do some homework about this. Will revert.
Mind checking which python3
. You indicated Py3.4 is your default but pip3 is installing for Py3.6. There may be a Py 3 configuration problem on your system.
~/projects/Hack-dev $ which python3 /usr/bin/python3 ~/projects/Hack-dev $ python3 -V Python 3.4.8
I've getting the 3.6 here: ~/projects/Hack-dev $ pip3 install --user pipenv Requirement already satisfied: pipenv in /home/ian/.local/lib64/python3.6/site-packages
Researching. I don't believe that pip3
is an executable file, rather it is a link to a Py3 version of the pip
executable. Your python3
link defaults to 3.4.8. Your pip3
link defaults to Py3.6. pip
was distributed with Py3.4+ so there should be a pip
executable for 3.4 on your system.
Mind trying the following:
# uninstall the Py3.6 pipenv
$ pip3 uninstall pipenv
# uninstall any previous Py2.7 pipenv installs
$ pip uninstall pipenv
# Try installing pipenv with the pip distributed with your Py3.4 interpreter
$ /usr/bin/python3.4 -m pip install pipenv
# test
$ pipenv --help
$ which pipenv
If that works, remove all of the previously installed build directories as you did previously and then try again. Sorry for all of the troubles. We are trying to pin versions of all build dependencies to establish a reproducible build process at any given Hack commit and it is causing headaches.
If the above works, pipenv
should build the files with your installed Py3.6 interpreter in a virutal environment. Here's hoping :)
Have removed 3.4 and 3.5 from Gentoo's portage configs and currently rebuilding system. Will take a while because it includes Firefox and LibreOffice. Total: 137 packages (8 upgrades, 6 new, 123 reinstalls),
Will see how things go after that :-)
Try installing pipenv with the pip distributed with your Py3.4 interpreter $ /usr/bin/python3.4 -m pip install pipenv # test $ pipenv --help $ which pipenv
Curious. Says it was unistalled but not. Still wants it on the path. I used --user option again.
(lots cut) /home/ian/.local/lib64/python3.6/site-packages/tests/unit/test_utils_windows_executable.py /home/ian/.local/lib64/python3.6/site-packages/tests/unit/test_vendor.py Proceed (y/n)? y Successfully uninstalled pipenv-2018.7.1 ~/projects/Hack-dev $ pip uninstall pipenv Cannot uninstall requirement pipenv, not installed ~/projects/Hack-dev $ /usr/bin/python3.6 -m pip install --user pipenv Collecting pipenv Using cached https://files.pythonhosted.org/packages/eb/64/9b2747d54f2008ac3dfe86c0b1c8ec126042726fd8a540d5208d26732701/pipenv-2018.7.1-py3-none-any.whl Requirement already satisfied: setuptools>=36.2.1 in /usr/lib64/python3.6/site-packages (from pipenv) Requirement already satisfied: virtualenv in /home/ian/.local/lib64/python3.6/site-packages (from pipenv) Requirement already satisfied: virtualenv-clone>=0.2.5 in /home/ian/.local/lib64/python3.6/site-packages (from pipenv) Requirement already satisfied: certifi in /usr/lib64/python3.6/site-packages (from pipenv) Requirement already satisfied: pip>=9.0.1 in /usr/lib64/python3.6/site-packages (from pipenv) Installing collected packages: pipenv Successfully installed pipenv-2018.7.1 ~/projects/Hack-dev $ pipenv --help bash: pipenv: command not found ~/projects/Hack-dev $ which pipenv which: no pipenv in (/usr/x86_64-pc-linux-gnu/gcc-bin/7.3.1:/usr/x86_64-pc-linux-gnu/avr/gcc-bin/7.3.0:/usr/lib/llvm/6/bin:/usr/lib/llvm/5/bin:/usr/local/bin:/usr/bin:/bin:/opt/bin:/usr/x86_64-pc-linux-gnu/gnat-gcc-bin/4.6:/usr/libexec/gnat-gcc/x86_64-pc-linux-gnu/4.6:/usr/lib64/subversion/bin:/usr/games/bin) ~/projects/Hack-dev $
trooper ~ # python3 -V Python 3.6.5
You installed pipenv with Python 3.6 in this line:
/usr/bin/python3.6 -m pip install --user pipenv
Is that what you intended? I would try to install with python3.4
as that seems to be the default Python on your box.
Check that. python3
is now showing Python 3.6.5... Sorry I missed that. Try installing pipenv with pip3 now (and NOT pip
).
$ pip3 install pipenv
Feel free to reopen if you want to continue to work on this.
hi
Um, trying to install this for building, getting errors I don't understand because not a python fundi. (after make with depencies, which died, then install fonttools... I notice one message below calls it fontTools...)
~/projects/Hack-master $ make ttf ./build-ttf.sh Confirming that build dependencies are installed...
/home/ian/.local/bin/fontmake Traceback (most recent call last): File "", line 1, in
ImportError: No module named 'fontTools'
Unable to install fontTools with 'pip install fonttools'. Please attempt a manual install of this build dependency and then repeat your build attempt.
Build canceled.
make: *** [Makefile:26: ttf] Error 1
~/projects/Hack-master $ pip install --user fonttools
Requirement already satisfied: fonttools in /home/ian/.local/lib64/python3.6/site-packages
~/projects/Hack-master $
???
Thanks, Ian