pip does not work on Haiku

Created on 21 Jul 2019  路  5Comments  路  Source: pypa/pip

Environment

  • pip version: Most recent version available on Haiku https://www.haiku-os.org/
  • Python version: Most recent version available on Haiku
  • OS: Haiku

Description

pip 3 install hangs

Expected behavior

pip 3 install works

How to Reproduce

Run the latest Haiku Anyboot image from https://download.haiku-os.org/nightly-images/x86_64 . Then do:

git clone https://github.com/micahflee/onionshare.git
cd onionsharepython3 -m venv venv
pkgman i setuptools_python36 # pkgman i setuptools_python installs for 3.7
pip3 install -r install/requirements.txt
Could not find a version that satisfies the requirement PyQt5==5.12.1 (from -r install/requirements.txt (line 15)) (from versions: )
No matching distribution found for PyQt5==5.12.1 (from -r install/requirements.txt (line 15))
# stalled here - does not continue or exit

Output

None

According to a Haiku developer, the stalled pip is because pip wants to use hardlinks but Haiku doesn't support those.

Reference:
https://medium.com/@probonopd/my-second-week-with-haiku-lots-of-hidden-gems-and-pleasant-surprises-and-some-issues-7e508f0db987

cache auto-locked bug

All 5 comments

That may be true, since we use lockfile which internally may use hardlinks. If that's the case then this may be a duplicate of or related to #3532. Can you please try the following:

  1. Run pip install --no-cache-dir -r install/requirements.txt and see if that avoids locking up
  2. Run pip install --verbose -r install/requirements.txt and after it gets stalled press Ctrl-C (or equivalent), and provide the traceback that is produced
(venv) /Haiku/home/onionshare> pip3.6 install --no-cache-dir -r install/requirements.txt 

(...)

Collecting PyQt5==5.12.1 (from -r install/requirements.txt (line 15))
  Could not find a version that satisfies the requirement PyQt5==5.12.1 (from -r install/requirements.txt (line 15)) (from versions: )
No matching distribution found for PyQt5==5.12.1 (from -r install/requirements.txt (line 15))

(hangs forever here)

Ctrl-C, Ctrl-D gives:

Traceback (most recent call last):
  File "/packages/python36-3.6.8-2/.self/lib/python3.6/vendor-packages/pip/_vendor/lockfile/linklockfile.py", line 31, in acquire
    os.link(self.unique_name, self.lock_file)
PermissionError: [Errno -2147483633] Operation not allowed: '/boot/home/config/cache/pip/shredder-5fc8f580.756-6502217927950064930' -> '/boot/home/config/cache/pip/selfcheck.json.lock'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/bin/pip3.6", line 11, in <module>
    load_entry_point('pip==9.0.0', 'console_scripts', 'pip3.6')()
  File "/packages/python36-3.6.8-2/.self/lib/python3.6/vendor-packages/pip/__init__.py", line 233, in main
    return command.main(cmd_args)
  File "/packages/python36-3.6.8-2/.self/lib/python3.6/vendor-packages/pip/basecommand.py", line 252, in main
    pip_version_check(session)
  File "/packages/python36-3.6.8-2/.self/lib/python3.6/vendor-packages/pip/utils/outdated.py", line 138, in pip_version_check
    state.save(pypi_version, current_time)
  File "/packages/python36-3.6.8-2/.self/lib/python3.6/vendor-packages/pip/utils/outdated.py", line 71, in save
    with lockfile.LockFile(self.statefile_path):
  File "/packages/python36-3.6.8-2/.self/lib/python3.6/vendor-packages/pip/_vendor/lockfile/__init__.py", line 197, in __enter__
    self.acquire()
  File "/packages/python36-3.6.8-2/.self/lib/python3.6/vendor-packages/pip/_vendor/lockfile/linklockfile.py", line 50, in acquire
    time.sleep(timeout is not None and timeout / 10 or 0.1)
KeyboardInterrupt

Thanks again for the report! We will track this in #6954.

Was this page helpful?
0 / 5 - 0 ratings