AUNaseef / protonup

Install and Update Proton-GE

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Permission denied & Missing sha512sum? when installing the latest update

KhaosPone opened this issue · comments

This is what I get when I try to install the latest protonup I get two different types of messages

Ready to download Proton-GE-Proton7-2
Size : 407.2 MiB
Published : 2022-02-27
Continue? (Y/n): y
Downloaded 100.00% - 407.2 MiB / 407.2 MiB
Traceback (most recent call last):
File "/home/callum/.local/bin/protonup", line 8, in
sys.exit(main())
File "/home/callum/.local/lib/python3.9/site-packages/protonup/init.py", line 4, in main
return main()
File "/home/callum/.local/lib/python3.9/site-packages/protonup/cli.py", line 33, in main
get_proton(version=args.tag, yes=args.yes, dl_only=args.download,
File "/home/callum/.local/lib/python3.9/site-packages/protonup/api.py", line 152, in get_proton
tarfile.open(destination, "r:gz").extractall(install_directory())
File "/usr/lib/python3.9/tarfile.py", line 2036, in extractall
self.extract(tarinfo, path, set_attrs=not tarinfo.isdir(),
File "/usr/lib/python3.9/tarfile.py", line 2077, in extract
self._extract_member(tarinfo, os.path.join(path, tarinfo.name),
File "/usr/lib/python3.9/tarfile.py", line 2150, in _extract_member
self.makefile(tarinfo, targetpath)
File "/usr/lib/python3.9/tarfile.py", line 2191, in makefile
with bltn_open(targetpath, "wb") as target:
PermissionError: [Errno 13] Permission denied: '/home/callum/.steam/root/compatibilitytools.d/GE-Proton7-2/protonfixes/gamefixes/1434950.py'

Ready to download Proton-GE-Proton7-2
Size : 407.2 MiB
Published : 2022-02-27
Continue? (Y/n): Y
Downloaded 100.00% - 407.2 MiB / 407.2 MiB
[INFO] Installed in: /root/.steam/root/compatibilitytools.d/Proton-GE-Proton7-2
Traceback (most recent call last):
File "/usr/local/bin/protonup", line 33, in
sys.exit(load_entry_point('protonup==0.1.4', 'console_scripts', 'protonup')())
File "/usr/local/lib/python3.9/dist-packages/protonup-0.1.4-py3.9.egg/protonup/init.py", line 4, in main
File "/usr/local/lib/python3.9/dist-packages/protonup-0.1.4-py3.9.egg/protonup/cli.py", line 33, in main
File "/usr/local/lib/python3.9/dist-packages/protonup-0.1.4-py3.9.egg/protonup/api.py", line 154, in get_proton
FileNotFoundError: [Errno 2] No such file or directory: '/root/.steam/root/compatibilitytools.d/Proton-GE-Proton7-2/sha512sum'

Having the same issue, I tried downloading the Proton GE tarball and extracting it manually but I get the same error when opening the tar. So this could be an issue with Proton GE itself, not protonup.

+1 on this issue. Mostly commenting to follow and provide data as needed.

Also seeing this. Running the command two times in a row generates two different errors.

First, the sha512sum.
Second, permission denied.

This is also true for 7.4 that was released as I was going testing (like 5 minutes ago).

Additional not, after running it a second time and restarting Steam, it does show up.... Testing now.

Can confirm at least one game DOES run.

Can confirm at least one game DOES run.

Also something else I noticed the other day while trying to remove old GE-Proton releases that I had installed using Protonup the -r command it was stating that the previous releases were not installed at all even though they showed up with the -l command which was also quite strange (Forgot to mention this yesterday)

Having the same issue, I tried downloading the Proton GE tarball and extracting it manually but I get the same error when opening the tar. So this could be an issue with Proton GE itself, not protonup.

I manually installed the latest GE-Proton from their official GitHub page and it works absolutely fine with no known issues which leads me to believe this is potentially a Protonup issues

Already made a pull request, have a look here:
#26

Getting a similar issue when trying to update to GE 7.5 on PopOS! 21

Traceback (most recent call last):
File "/home/timothycarruthers/.local/bin/protonup", line 8, in
sys.exit(main())
File "/home/timothycarruthers/.local/lib/python3.9/site-packages/protonup/init.py", line 4, in main
return main()
File "/home/timothycarruthers/.local/lib/python3.9/site-packages/protonup/cli.py", line 33, in main
get_proton(version=args.tag, yes=args.yes, dl_only=args.download,
File "/home/timothycarruthers/.local/lib/python3.9/site-packages/protonup/api.py", line 152, in get_proton
tarfile.open(destination, "r:gz").extractall(install_directory())
File "/usr/lib/python3.9/tarfile.py", line 2036, in extractall
self.extract(tarinfo, path, set_attrs=not tarinfo.isdir(),
File "/usr/lib/python3.9/tarfile.py", line 2077, in extract
self._extract_member(tarinfo, os.path.join(path, tarinfo.name),
File "/usr/lib/python3.9/tarfile.py", line 2150, in _extract_member
self.makefile(tarinfo, targetpath)
File "/usr/lib/python3.9/tarfile.py", line 2191, in makefile
with bltn_open(targetpath, "wb") as target:
PermissionError: [Errno 13] Permission denied: '/home/timothycarruthers/.steam/root/compatibilitytools.d/GE-Proton7-5/files/lib64/wine/vkd3d-proton/libvkd3d-proton-utils-3.dll'

Getting a similar issue when trying to update to GE 7.5 on PopOS! 21

Traceback (most recent call last):
File "/home/timothycarruthers/.local/bin/protonup", line 8, in
sys.exit(main())
File "/home/timothycarruthers/.local/lib/python3.9/site-packages/protonup/init.py", line 4, in main
return main()
File "/home/timothycarruthers/.local/lib/python3.9/site-packages/protonup/cli.py", line 33, in main
get_proton(version=args.tag, yes=args.yes, dl_only=args.download,
File "/home/timothycarruthers/.local/lib/python3.9/site-packages/protonup/api.py", line 152, in get_proton
tarfile.open(destination, "r:gz").extractall(install_directory())
File "/usr/lib/python3.9/tarfile.py", line 2036, in extractall
self.extract(tarinfo, path, set_attrs=not tarinfo.isdir(),
File "/usr/lib/python3.9/tarfile.py", line 2077, in extract
self._extract_member(tarinfo, os.path.join(path, tarinfo.name),
File "/usr/lib/python3.9/tarfile.py", line 2150, in _extract_member
self.makefile(tarinfo, targetpath)
File "/usr/lib/python3.9/tarfile.py", line 2191, in makefile
with bltn_open(targetpath, "wb") as target:
PermissionError: [Errno 13] Permission denied: '/home/timothycarruthers/.steam/root/compatibilitytools.d/GE-Proton7-5/files/lib64/wine/vkd3d-proton/libvkd3d-proton-utils-3.dll'

Try to install my patched version. I hope @AUNaseef will respond soon.

I think it simply looks for the wrong folder, the nomenclature has changed since last GE release

draco@draco-pc:~$ protonup
Ready to download Proton-GE-Proton7-5 
Size      : 395.8 MiB 
Published : 2022-03-02
Continue? (Y/n): 
Downloaded 100.00% - 395.8 MiB / 395.8 MiB   
[INFO] Installed in: /home/draco/.steam/root/compatibilitytools.d/Proton-GE-Proton7-5
Traceback (most recent call last):
  File "/home/draco/.local/bin/protonup", line 8, in <module>
    sys.exit(main())
  File "/home/draco/.local/lib/python3.9/site-packages/protonup/__init__.py", line 4, in main
    return main()
  File "/home/draco/.local/lib/python3.9/site-packages/protonup/cli.py", line 33, in main
    get_proton(version=args.tag, yes=args.yes, dl_only=args.download,
  File "/home/draco/.local/lib/python3.9/site-packages/protonup/api.py", line 155, in get_proton
    open(checksum_dir, 'w').write(download_checksum)
FileNotFoundError: [Errno 2] No such file or directory: '/home/draco/.steam/root/compatibilitytools.d/Proton-GE-Proton7-5/sha512sum'

draco@draco-pc:~$ ls -l /home/draco/.steam/root/compatibilitytools.d/Proton-GE-Proton7-5/sha512sum
ls: cannot access '/home/draco/.steam/root/compatibilitytools.d/Proton-GE-Proton7-5/sha512sum': No such file or directory

draco@draco-pc:~$ ls -l /home/draco/.steam/root/compatibilitytools.d/Proton-GE-Proton7-5
ls: cannot access '/home/draco/.steam/root/compatibilitytools.d/Proton-GE-Proton7-5': No such file or directory

draco@draco-pc:~$ ls -l /home/draco/.steam/root/compatibilitytools.d/
total 12
drwxrwxr-x 4 draco draco 4096 mar  2 01:51 GE-Proton7-5
drwxrwxr-x 5 draco draco 4096 feb  9 21:43 Proton-7.1-GE-2
drwxrwxr-x 5 draco draco 4096 mar  4 13:17 Proton-7.3-GE-1

I think it simply looks for the wrong folder, the nomenclature has changed since last GE release

draco@draco-pc:~$ protonup
Ready to download Proton-GE-Proton7-5 
Size      : 395.8 MiB 
Published : 2022-03-02
Continue? (Y/n): 
Downloaded 100.00% - 395.8 MiB / 395.8 MiB   
[INFO] Installed in: /home/draco/.steam/root/compatibilitytools.d/Proton-GE-Proton7-5
Traceback (most recent call last):
  File "/home/draco/.local/bin/protonup", line 8, in <module>
    sys.exit(main())
  File "/home/draco/.local/lib/python3.9/site-packages/protonup/__init__.py", line 4, in main
    return main()
  File "/home/draco/.local/lib/python3.9/site-packages/protonup/cli.py", line 33, in main
    get_proton(version=args.tag, yes=args.yes, dl_only=args.download,
  File "/home/draco/.local/lib/python3.9/site-packages/protonup/api.py", line 155, in get_proton
    open(checksum_dir, 'w').write(download_checksum)
FileNotFoundError: [Errno 2] No such file or directory: '/home/draco/.steam/root/compatibilitytools.d/Proton-GE-Proton7-5/sha512sum'

draco@draco-pc:~$ ls -l /home/draco/.steam/root/compatibilitytools.d/Proton-GE-Proton7-5/sha512sum
ls: cannot access '/home/draco/.steam/root/compatibilitytools.d/Proton-GE-Proton7-5/sha512sum': No such file or directory

draco@draco-pc:~$ ls -l /home/draco/.steam/root/compatibilitytools.d/Proton-GE-Proton7-5
ls: cannot access '/home/draco/.steam/root/compatibilitytools.d/Proton-GE-Proton7-5': No such file or directory

draco@draco-pc:~$ ls -l /home/draco/.steam/root/compatibilitytools.d/
total 12
drwxrwxr-x 4 draco draco 4096 mar  2 01:51 GE-Proton7-5
drwxrwxr-x 5 draco draco 4096 feb  9 21:43 Proton-7.1-GE-2
drwxrwxr-x 5 draco draco 4096 mar  4 13:17 Proton-7.3-GE-1

You are right!
Have a look at #26 and install my patched version until the pull request gets merged in.

I tried to change the installation directory. But, it does not work
Screenshot_20220308_092959

I tried to change the installation directory. But, it does not work
Screenshot_20220308_092959

Please show the full logs, maybe i can help you.
Did you already installed my patch? (pip list | grep protonup)

Yeah the patch also does not work

pip list | grep protonup
protonup 0.1.4

~
❯ protonup
Ready to download Proton-GE-Proton7-8
Size : 398.8 MiB
Published : 2022-03-05
Continue? (Y/n): y
Downloaded 100.00% - 398.8 MiB / 398.8 MiB
Traceback (most recent call last):
File "/home/user/.local/bin/protonup", line 8, in
sys.exit(main())
File "/home/user/.local/lib/python3.8/site-packages/protonup/init.py", line 4, in main
return main()
File "/home/user/.local/lib/python3.8/site-packages/protonup/cli.py", line 33, in main
get_proton(version=args.tag, yes=args.yes, dl_only=args.download,
File "/home/user/.local/lib/python3.8/site-packages/protonup/api.py", line 152, in get_proton
tarfile.open(destination, "r:gz").extractall(install_directory())
File "/usr/lib/python3.8/tarfile.py", line 2028, in extractall
self.extract(tarinfo, path, set_attrs=not tarinfo.isdir(),
File "/usr/lib/python3.8/tarfile.py", line 2069, in extract
self._extract_member(tarinfo, os.path.join(path, tarinfo.name),
File "/usr/lib/python3.8/tarfile.py", line 2141, in _extract_member
self.makefile(tarinfo, targetpath)
File "/usr/lib/python3.8/tarfile.py", line 2182, in makefile
with bltn_open(targetpath, "wb") as target:
PermissionError: [Errno 13] Permission denied: '/home/user/.steam/root/compatibilitytools.d/GE-Proton7-8/files/lib64/wine/vkd3d-proton/libvkd3d-proton-utils-3.dll'

Yeah the patch also does not work

pip list | grep protonup
protonup 0.1.4

~
❯ protonup
Ready to download Proton-GE-Proton7-8
Size : 398.8 MiB
Published : 2022-03-05
Continue? (Y/n): y
Downloaded 100.00% - 398.8 MiB / 398.8 MiB
Traceback (most recent call last):
File "/home/user/.local/bin/protonup", line 8, in
sys.exit(main())
File "/home/user/.local/lib/python3.8/site-packages/protonup/init.py", line 4, in main
return main()
File "/home/user/.local/lib/python3.8/site-packages/protonup/cli.py", line 33, in main
get_proton(version=args.tag, yes=args.yes, dl_only=args.download,
File "/home/user/.local/lib/python3.8/site-packages/protonup/api.py", line 152, in get_proton
tarfile.open(destination, "r:gz").extractall(install_directory())
File "/usr/lib/python3.8/tarfile.py", line 2028, in extractall
self.extract(tarinfo, path, set_attrs=not tarinfo.isdir(),
File "/usr/lib/python3.8/tarfile.py", line 2069, in extract
self._extract_member(tarinfo, os.path.join(path, tarinfo.name),
File "/usr/lib/python3.8/tarfile.py", line 2141, in _extract_member
self.makefile(tarinfo, targetpath)
File "/usr/lib/python3.8/tarfile.py", line 2182, in makefile
with bltn_open(targetpath, "wb") as target:
PermissionError: [Errno 13] Permission denied: '/home/user/.steam/root/compatibilitytools.d/GE-Proton7-8/files/lib64/wine/vkd3d-proton/libvkd3d-proton-utils-3.dll'

Seems like the installation of the patch did not work, this is the exact same error as before and version number is also still 0.1.4

Try this:
git clone https://github.com/cloudishBenne/protonup && cd protonup
python3 setup.py install --user

After success please post output of:
whereis protonup

yes it works
whereis protonup
protonup: /home/user/.local/bin/protonup

yes it works
whereis protonup
protonup: /home/user/.local/bin/protonup

Perfect!
"pip list | grep protonup" should now also list 0.2.0

I don't think so
Screenshot_20220308_143452

Conversation below was before debugging the script multiple times:

One last try, Copy&Paste this:

First command starts here:

cat > protonup_install_test.sh << EOF
#!/bin/bash

set -e

[ -d protonup ] && rm -rf protonup && printf "clone repo fresh\n"
git clone https://github.com/cloudishBenne/protonup >&/dev/null
cd protonup

pip uninstall --yes protonup -qq
yes | pip install protonup -qq
python3 setup.py install --user >&/dev/null

printf "\ntest user on systemwide installation:\n\n"
(set -ex; pip list) | grep protonup
(set -ex; pip list --user) | grep protonup
printf "\n... works\n\n"

pip uninstall --yes protonup -qq
yes | pip install --user protonup -qq
python3 setup.py install --user >&/dev/null

printf "\ntest user on user installation:\n\n"
(set -ex; pip list) | grep protonup
(set -ex; pip list --user) | grep protonup
EOF

End of first command is here

Second command:

bash protonup_install_test.sh

Tested this on a fresh installed Linux and output is:

clone repo fresh

test user on systemwide installation::

+ pip list
protonup 0.1.4
+ pip list --user
protonup 0.1.4

test user on user installation::

+ pip list
protonup 0.2.0
+ pip list --user
protonup 0.2.0

not really

Screenshot_20220308_203454
Screenshot_20220308_203442
Screenshot_20220308_203431
Screenshot_20220308_203358

I would appreciate if you could post the output of my script, otherwise i can not help you...

I put this first serial of commands
cat > protonup_install_test.sh << EOF #!/bin/bash

∙ set -e

∙ if [ -d protonup ]; then
∙ rm -rf protonup
∙ printf "clone repo fresh\n"
∙ fi
∙ git clone https://github.com/cloudishBenne/protonup >&/dev/null cd protonup

∙ pip uninstall --yes protonup -qq
∙ yes | pip install protonup -qq
∙ python3 setup.py install --user >&/dev/null

∙ printf "\ntest systemwide installation:\n\n"
∙ (set -ex; pip list) | grep protonup
∙ (set -ex; pip list --user) | grep protonup

∙ pip uninstall --yes protonup -qq
∙ yes | pip install --user protonup -qq
∙ python3 setup.py install --user >&/dev/null

∙ printf "\ntest user installation:\n\n"
∙ (set -ex; pip list) | grep protonup
∙ (set -ex; pip list --user) | grep protonup
∙ EOF
I got no output

I typed this
bash protonup_install_test.sh

I got not output

test it with systemwide installation:

  • pip list
    and
    pip list --user

Finally, it shows 0.1.4

This is weird.

There should be output of my script. What OS are you using?

here
Screenshot_20220308_210624

I put this first serial of commands
cat > protonup_install_test.sh << EOF #!/bin/bash

∙ set -e

∙ if [ -d protonup ]; then
∙ rm -rf protonup
∙ printf "clone repo fresh\n"
∙ fi
∙ git clone https://github.com/cloudishBenne/protonup >&/dev/null cd protonup

∙ pip uninstall --yes protonup -qq
∙ yes | pip install protonup -qq
∙ python3 setup.py install --user >&/dev/null

∙ printf "\ntest systemwide installation:\n\n"
∙ (set -ex; pip list) | grep protonup
∙ (set -ex; pip list --user) | grep protonup

∙ pip uninstall --yes protonup -qq
∙ yes | pip install --user protonup -qq
∙ python3 setup.py install --user >&/dev/null

∙ printf "\ntest user installation:\n\n"
∙ (set -ex; pip list) | grep protonup
∙ (set -ex; pip list --user) | grep protonup
∙ EOF
I got no output

I typed this
bash protonup_install_test.sh

I got not output

test it with systemwide installation:

  • pip list
    and
    pip list --user

Finally, it shows 0.1.4

Ok, so please redo my two steps from above and post it in one screenshot of the full process (should include pasted commands, the possible output of the pasted commands and the last fresh command line where you could type a new command - without any cuts, in one picture)

i found an error in my first command (cat ...), i corrected it in the post above.

here it is

Screenshot_20220308_215834
Screenshot_20220308_215845

Oof, the comment format ate multiple spaces. Could you test again? I hopefully fixed it now...

here
Screenshot_20220308_215845
Screenshot_20220308_222142

Okay, the problem was another formatting issue. I scripted, copy&pasted all on my smartphone via termux, formatting did not work as intended and so the script never went into the protonup repo to install.

I update the code above, but basically your problem was, that you installed protonup systemwide with
pip install protonup
when you now install the patch as a user installation with
python3 setup.py install --user
the systemwide installation wins.
So in conclusion, here is hopefully your command:

pip uninstall --yes protonup
git clone https://github.com/cloudishBenne/protonup && cd protonup
python3 setup.py install --user

yeah it works. thanks

I applied cloudishBenne's patches and it worked thank you!
I hope the maintainers of this project merges his fixes in at some point

same issue here :(

same issues here on NixOS. In fact, this basically breaks the package on NixOS, and I don't know how to write a new derivation for the fixed version from @cloudishBenne . Would be nice if @AUNaseef simply accepted the PR from him (assuming there is one).

Here are the instructions if you want to get @cloudishBenne 's version working on NixOS:

First, remove any declarative config for protonup from your nixos configs. Then:

nix-shell -p git -p python39Full -p python39Packages.bootstrapped-pip -p python39Packages.setuptools
git clone https://github.com/cloudishBenne/protonup && pushd protonup
python3 setup.py install --user
popd
rm -rf protonup
protonup
exit

The first line is a bit of nix magic that basically beams down the right build tools from the cloud and sets them up to be used in a new shell temporarily. I'm not a Python guy so this combination might not be ideal, but this is what worked. The rest installs it into a temporary location accessible on the PATH. (Thus, it may eventually get garbage-collected, so you might want to save these lines as a script somewhere and just run it when you need it.)

I hadn't touched nixos yet, but can't you just install with

pip3 install protonup-ng

or

pip3 install pipx
pipx install protonup-ng

?

@cloudishBenne Well first, since it's Nix, you have to make the entire messy python ecosystem available, which I tend to avoid (I'm a former Ruby guy who always regarded Python with some disdain, especially the extremely ugly 2->3 transition and the version namespace clashing and package management woes, in fact I can't even understand why it's so popular, just like Go... no offense, just my preference, lol).

But that would probably work better, assuming that one of the things I "installed" (which in a Nix context really just means "make temporarily available unless you add it to your permanent config") added pip3 to my PATH. I'll try it out and update my recommendation if it works better, thanks!

btw Python is quite well-supported in Nix/NixOS https://nixos.wiki/wiki/Python and probably even removes a lot of the pain around it, you can have things like project-specific Python versions (and not just the interpreter itself, but the entire toolchain underneath) and whatnot. You basically just make a shell.nix (if you don't understand the nix language, you can start with a copy of someone else's and learn by tweaking) in your project directory, run nix-shell and it will make ONLY the things you specify available/"visible" in your shell (so it's not globally contaminated by, say, the wrong version of glibc or what have you) and you're off and running with dev.

There's also direnv integration so you can have entirely project-specific environment variables as well, which automatically apply as soon as you cd into your project directory.

Once you grok how it works and what it's trying to do (and what problems it's making you avoid completely, like a dev superpower), you may have a "holy shit" moment... but it may take a while to get there, especially if you're not (yet) keen on the whole functional/immutable programming philosophy.

EDIT: One more thing, you have to explicitly set the environment variable $STEAM_EXTRA_COMPAT_TOOLS_PATHS otherwise Steam can't "see" Proton-GE, as demonstrated in my environment config here

Got it to work with this wrapper script, in case anyone else can use this. Also shows one way to install and use pip-installed binaries on nixOS

https://gist.github.com/pmarreck/a08fc0915c7545cb11592680bd1363dc

commented

@pmarreck

See NixOS/nixpkgs#186974 and NixOS/nixpkgs#196957.

If you encounter a case like in the future, simply override the source of the original package. See https://nixos.org/manual/nixpkgs/stable/#sec-pkg-overrideAttrs.

FileNotFoundError: [Errno 2] No such file or directory: '/root/.steam/root/compatibilitytools.d/Proton-GE-Proton7-2/sha512sum'
This is caused by the naming change, should be fixed in the latest version.

@AUNaseef Nice to see you back man! I recently opened an org for protonup-ng, are you interestet in teaming up in this org? I have started some improvements but had no time afterwards to continue... They are about versioning, testing, development and refactoring for a better software architecture.

commented

I don't have much time either to continue working on this due to various reasons, I occasionally get a notification and remember this exists haha. I do want to re-asses the problem once again and do a complete rewrite, we'll see.

btw I'm closing the issue since I assume no one has this problem anymore.