kendallgoto / ilo4_unlock

A toolkit for patching HPE's iLO 4 Firmware with access to previously inaccessible utilities
GNU General Public License v3.0
360 stars 46 forks source link

no access to python2 pip2 #16

Open emorin310 opened 9 months ago

emorin310 commented 9 months ago

I've tried everything I can think of including building python2.7 from source on debian but can't find a way to get python2+pip working any longer. The following happens as of Jan 24...

eric@vogon2:~/Downloads/ilo4_unlock$ sudo python get-pip.py DEPRECATION: Python 2.7 reached the end of its life on January 1st, 2020. Please upgrade your Python as Python 2.7 is no longer maintained. pip 21.0 will drop support for Python 2.7 in January 2021. More details about Python 2 support in pip can be found at https://pip.pypa.io/en/latest/development/release-process/#python-2-support pip 21.0 will remove support for this functionality. WARNING: pip is configured with locations that require TLS/SSL, however the ssl module in Python is not available. WARNING: Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError("Can't connect to HTTPS URL because the SSL module is not available.",)': /simple/pip/ WARNING: Retrying (Retry(total=3, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError("Can't connect to HTTPS URL because the SSL module is not available.",)': /simple/pip/ WARNING: Retrying (Retry(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError("Can't connect to HTTPS URL because the SSL module is not available.",)': /simple/pip/ WARNING: Retrying (Retry(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError("Can't connect to HTTPS URL because the SSL module is not available.",)': /simple/pip/ WARNING: Retrying (Retry(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError("Can't connect to HTTPS URL because the SSL module is not available.",)': /simple/pip/ Could not fetch URL https://pypi.org/simple/pip/: There was a problem confirming the ssl certificate: HTTPSConnectionPool(host='pypi.org', port=443): Max retries exceeded with url: /simple/pip/ (Caused by SSLError("Can't connect to HTTPS URL because the SSL module is not available.",)) - skipping ERROR: Could not find a version that satisfies the requirement pip<21.0 (from versions: none) ERROR: No matching distribution found for pip<21.0

is there a workaround or a way to port the scripts to python3 ?

kendallgoto commented 9 months ago

as far as i'm aware, ubuntu 22.04 still has python 2.7.18 in apt, and you can get pip 2.7 via pypa. there's a sample shell script in the readme that does this on ubuntu 21, unless that no longer works? All of the work that I did on this was long after pip dropped support in 2020, so I don't think anything has changed

I wanted to port the scripts over but I was likely going to just rewrite them to be more accessible in the process anyways, so I haven't done it yet.

emorin310 commented 9 months ago

pip via pypa is a no go unfortunately (unless I’m missing something but I tried for hours with various solutions) But… I was able to get past the issue finally by following this https://github.com/travis-ci/dpl/issues/1235. Basically using python3’s virtualenv to build.

in simple terms: here’s how your setup script changed for me…. (and thanks for all you’ve done! :) )

sudo apt-add-repository universe sudo apt update sudo apt-get install python2-minimal git curl curl https://bootstrap.pypa.io/pip/2.7/get-pip.py --output get-pip.py && sudo python2 get-pip.py

python2 -m pip install virtualenv

python3 -m venv ~/venv; source ~/venv/bin/activate;
git clone --recurse-submodules https://github.com/kendallgoto/ilo4_unlock.git cd ilo4_unlock

python2 -m virtualenv venv

source venv/bin/activate pip install -r requirements.txt

jpmeijers commented 9 months ago

Have you tried Conda yet? I'm also more a fan of Virtualenv, but Conda gives the ability to install a python version in an environment that is different than the one offered by your OS.

Hitatshi commented 9 months ago

Hey, looking into this too right now. I'm not that used to linux. @emorin310 can you explain it in little steps for me please? I didn't got it to work yet. Thanks.

emorin310 commented 9 months ago

Have you tried Conda yet? I'm also more a fan of Virtualenv, but Conda gives the ability to install a python version in an environment that is different than the one offered by your OS.

i haven’t tried it… but it sounds like it would work similarly.

seanparko commented 6 months ago

Bump. I cant seem to be able to install pip anymore using the above method. I had to manually build python2, include zlib and install it. I need openssl to be able to download pip apparently, but when I configured python2 to build with openssl it produces a whole list of "necessary bits" that I don't have. Tad bit lost, do I just start installing all of these packages?

Maybe someone could re-work this to use python3?

Does someone just have a ROM of the compiled 2.77 flash I could install?

kendallgoto commented 6 months ago

from what i've heard, everything still works on 20.04 just fine. i haven't had a chance to re-test it from scratch though.

i am working on a rewrite for this, but have limited time

seanparko commented 6 months ago

Do you have a build of it that I can use? I only have access to ubuntu 22 and 24 rn.

kendallgoto commented 6 months ago

we aren't able to host binaries due to copyright restrictions from HPE unfortunately

seanparko commented 6 months ago

Okay, cheers. Is there some way I can manually patch the ROM then?

kendallgoto commented 6 months ago

patching the rom itself is not really the hard part - this repo actually does it already in python3. unpacking the packed image to extract the actual binary is the part which the dependency on airbus' lab comes from, which uses python2.

perhaps: if you can't switch ubuntu versions, you can just execute the build process in a python2 or ubuntu20.04 docker container? sorry I can't be of more help here; we've been wanting to update the build flow to eliminate python2 + eliminate the dependency on airbus' lab, but haven't yet.