New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
manage issues with libcurl3 missing from recent editions of ubuntu #5
Conversation
This currently breaks debian compatibility, so I'll fix that later. If you want to test it right now, you can though. |
There, should be good to go now. Let me know if you have questions. |
Hey Bry, welcome back :) Have you tested this with any games, pls? I hid the output not to clutter the terminal when installing. This, however, is not ideal when assessing whether everything was installed and certainly does not help when looking for errors or bugs. So, I'll stay in line with your preference. With regards to compatibility, this patch still installs the script on Ubuntu derivatives, right? Thank you once again, mate. |
I just tested it with a game and it works just as it's supposed to. This shouldn't change any behavior with ubuntu less than version 18.04. On Ubuntu 18.04 and Ubuntu 18.10, it will install libcurl3 in an alternate location. The alternate path doesn't seem to conflict with any paths that would be on Ubuntu 18.10 or 18.04. One thing to keep in mind is that if there is ever a newer release of epsxe, the patch will have to be updated for it. I imagine if there is another release, it will fix curl4 compatibility anyway though and we can fix it at that point. It might be good for me to add some hash checking though. I'll add that. It should work on all ubuntu derivatives as far as I can tell. |
…stead. Don't clobber libcurl.so.3
There, I changed it so it doesn't need to ask any questions about overwriting libcurl.so.3. It will just leave the original if it exists. Also, if the patching fails for whatever reason, it will just use the original binary so we don't run random code. This should all be much safer and still reliable. |
Cheers, man. |
Libcurl 3 is installed alongside libcurl4 so things like kodi should work regardless of whether the checksum matches or not. The patch modifies epsxe itself, not libcurl. The only reason the patched version of epsxe should fail the checksum is if the original file we download changes. If that happens, we will just use that version. At that point we would need to verify they fixed the libcurl problem. If they did not, we will need to update the patch. If they did fix it, we can remove the patch. If the checksum failed and epsxe wasn't updated for whatever reason, the original would attempt to use libcurl4 and probably fail like it does on ubuntu 18.10 now. |
#5 summary: - removed quiet mode so as to have visible any errors while installing dependencies - fixes the problem where recent versions of ubuntu can't have libcurl3 installed at the same time as libcurl4 or in the case of 18.10, it's not available at all. It does this by downloading the 18.04 version of libcurl3 and installing it with the name libcurl.so.3 instead of libcurl.so.4. It then patches the ePSXe executable to look for libcurl.so.3 instead of libcurl.so.4. - Libcurl 3 is installed alongside libcurl4 so things like kodi should work regardless of whether the checksum matches or not. - thanks to @bryceml
@bryceml could you please check the below for me? The raw code is displayed so:
I think that
Thank you. |
It will definitely change the behavior of patch. I'm not sure if xxd would be able to handle the extra spaces at the front. My guess is patch would probably not work because a single . and new line marks the end of a patch in patch. If we wanted to have it all on one line, we could use printf and use \n's. |
so how can this be fixed, pls? merging the three lines? |
bryceml@f3cc7fe would put it on one line. I can open a pull request for that if you want. You should test it first, but it should work. The output of the printf is identical as shown by hashing the output. |
Ah now I think I understand! |
Yes |
@bryceml can you please check that my syntax is correct? from lines - 28 to 49 - 81 to 116 **Reasons for these changes** 1. Linux Mint still uses apt-get out-of-the-box instead of Apt. issue: cromat@9deb4bc. 2. Realised through this link (https://forums.linuxmint.com/viewtopic.php?t=274477) that same may happen to Linux Mint 19 installs with regards to the libcurl3 to 4 issue (#5). **reference** - https://ryanstutorials.net/bash-scripting-tutorial/bash-if-statements.php to make sure *elif* statement is used correctly - https://forums.linuxmint.com/viewtopic.php?t=263277 checked where packages are downloaded from - resulted to be from ubuntu - https://www.rootusers.com/check-which-linux-mint-version/ checked whether Linux Mint releases have two decimal places like ubuntu 18.*04* - resulted negative thus, had to change *cut -c -2* to *cut -c -1* in line 38. - https://www.tldp.org/LDP/abs/html/comparison-ops.html - https://stackoverflow.com/a/4277753 - https://stackoverflow.com/questions/2237080/how-to-compare-strings-in-bash
This fixes the problem where recent versions of ubuntu can't have libcurl3 installed at the same time as libcurl4 or in the case of 18.10, it's not available at all. It does this by downloading the 18.04 version of libcurl3 and installing it with the name libcurl.so.3 instead of libcurl.so.4. It then patches the ePSXe executable to look for libcurl.so.3 instead of libcurl.so.4.
I haven't tried running any games with it yet, but it starts the program. Hopefully I can do some testing later. It's the best solution I can think of to get ePSXe working on ubuntu 18.04/18.10 alongside libcurl4.
It shows the output of many of the things it does instead of hides it, I don't know if you care. I would personally prefer to see the output of apt at least. It also asks permission to overwrite libcurl.so.3 if it already exists so we don't accidentally screw anyone's system.