Installing a specific version of RetroPie
-
Hi,
I've locked my RetroPie installation to a specific commit. Something I started doing after trying out fixes in this thread. It looks like this:
git clone https://github.com/RetroPie/RetroPie-Setup.git cd RetroPie-Setup # Checkout a specific version to avoid sudden upgrades that break the image # 4.5.17 + error code fix https://github.com/RetroPie/RetroPie-Setup/commit/50e8300 git checkout 50e8300 sudo __platform="rpi3" ./retropie_packages.sh setup basic_install
I haven't had to run my script for a while, but now when I did it failed when building
lr-parallel-n64
:= = = = = = = = = = = = = = = = = = = = = Getting sources for 'lr-parallel-n64' : N64 emu - Highly modified Mupen64Plus port for libretro = = = = = = = = = = = = = = = = = = = = = git clone --recursive --depth 1 --branch master "https://github.com/libretro/parallel-n64.git" "/home/pi/RetroPie-Setup/tmp/build/lr-parallel-n64" [91mCloning into '/home/pi/RetroPie-Setup/tmp/build/lr-parallel-n64'... [0m HEAD is now in branch 'master' at commit '9dd669e2f63b320c5942f2fe0b2df275dba99393' patching file libretro/libretro.c Hunk #4 succeeded at 658 (offset 14 lines). Hunk #5 succeeded at 711 (offset 14 lines). Hunk #6 succeeded at 719 (offset 14 lines). Hunk #7 succeeded at 747 (offset 14 lines). Hunk #8 succeeded at 959 (offset 14 lines). Hunk #9 succeeded at 971 (offset 14 lines). Hunk #10 succeeded at 1344 (offset 44 lines). Hunk #11 succeeded at 1637 (offset 48 lines). Hunk #12 succeeded at 1670 (offset 48 lines). Hunk #13 succeeded at 1829 (offset 48 lines). Hunk #14 succeeded at 2014 (offset 48 lines). Hunk #15 succeeded at 2023 (offset 48 lines). patching file mupen64plus-core/src/main/main.c Hunk #1 succeeded at 392 (offset 4 lines). patching file mupen64plus-core/src/main/main.h patching file mupen64plus-core/src/r4300/pure_interp.c patching file mupen64plus-core/src/r4300/pure_interp.h patching file mupen64plus-core/src/r4300/r4300.c Hunk #4 FAILED at 134. 1 out of 4 hunks FAILED -- saving rejects to file mupen64plus-core/src/r4300/r4300.c.rej patching file mupen64plus-core/src/r4300/r4300.h /home/pi/RetroPie-Setup [91mlr-parallel-n64 patch /home/pi/RetroPie-Setup/scriptmodules/libretrocores/lr-parallel-n64/01_revert_11c1ae33.diff failed to apply [0m Errors: lr-parallel-n64 patch /home/pi/RetroPie-Setup/scriptmodules/libretrocores/lr-parallel-n64/01_revert_11c1ae33.diff failed to apply
From what I can tell, it's grabbing the latest master for
lr-parallel-n64
, which might or might not work with the custom patches being applied?Is it possible to install a specific version of RetroPie? Say I want to install the version that the latest public image is build on. Is that possible?
-
I've locked my RetroPie installation to a specific commit. Something I started doing after trying out fixes in this thread. It looks like this:
That was fixed after was reported.
Is it possible to install a specific version of RetroPie?
RetroPie ? Yes.
Specific emulator which is installed from the projects's repository and it's un-versioned (i.e.master
branch), not so much.If you lock your RetroPie version, but the scriptmodule pulls from an un-versioned branch, then you'll bump into issues like this. I'm surprised you haven't got this error sooner.
-
@mitu said in Installing a specific version of RetroPie:
That was fixed after was reported.
Yes, and I locked it to that version. :)
@mitu said in Installing a specific version of RetroPie:
Specific emulator which is installed from the projects's repository and it's un-versioned (i.e. master branch), not so much
It'd be similar for RetroPie to do the same as me, just checking out a specific commit. I'll take it as it's never been a real issue and once an image is created it is what it is (i.e. never has to be recreated)?
-
@seriema said in Installing a specific version of RetroPie:
It'd be similar for RetroPie to do the same as me, just checking out a specific commit.
Sure, but not all projects have version branches.
I'll take it as it's never been a real issue and once an image is created it is what it is (i.e. never has to be recreated)?
I don't understand.
-
@mitu said in Installing a specific version of RetroPie:
Sure, but not all projects have version branches.
Branches aren't necessary. The commit SHA is enough. RetroPie seems to apply some custom patches to each emulator, if I read the log correct, and then it'd be extra useful as the patch would always work on that commit.
@mitu said in Installing a specific version of RetroPie:
I don't understand.
Sorry. I'm guessing that A) It wouldn't be possible to recreate the v4.6 pre-made image. And B) RetroPie has been around long enough to have noticed that this isn't really a problem. Are those assumptions correct?
-
@seriema said in Installing a specific version of RetroPie:
Branches aren't necessary. The commit SHA is enough. RetroPie seems to apply some custom patches to each emulator, if I read the log correct, and then it'd be extra useful as the patch would always work on that commit.
Emulator patches (or commit pinning) are an exception, rather than the rule. Using a specific commit SHA would mean committing to test every possible commit for possible regressions and/or bugs - that's not feasible for a 'develop in your own free time' project. Also, just because it builds, it doesn't mean it works, so this isn't something that could be automated.
Sorry. I'm guessing that A) It wouldn't be possible to recreate the v4.6 pre-made image. And B) RetroPie has been around long enough to have noticed that this isn't really a problem. Are those assumptions correct?
For B), yes, building from the main/master branch of upstream projects is mostly ok. For A) , you already have the image which includes the packages from the main and core section, the issue is only for the the optional or experimental packages which are not included in the image.
-
@mitu said in Installing a specific version of RetroPie:
For B), yes, building from the main/master branch of upstream projects is mostly ok. For A) , you already have the image which includes the packages from the main and core section, the issue is only for the the optional or experimental packages which are not included in the image.
Hmm I must be misunderstanding something. How would you re-create 4.5.1 for example? Say that image got lost somehow, and you had to recreate it and upload it again. Today, months after it was initially created. How would you do that?
-
@seriema said in Installing a specific version of RetroPie:
How would you re-create 4.5.1 for example?
Starting from scratch, yes, that wouldn't be 100% possible after X months/years just using an automated script.
-
We could technically lock down some packages to a specific version or commit. But this would require a lot of additional work. And users would be impatient as we may not be able to keep up with things as they would like.
With future packaging changes, it may be possible to move to a model like that but with the facility to build a latest version. However for some packages this will require a significant amount of work (eg. We do this for retroarch in that the RetroPie version aligns to a retroarch version, but to manage this properly we would have to maintain an archive of patches for older versions and other things.). But it may work for some stuff.
Then there's things like..
Repository moves
Repo renames / or rebases (it happens a lot in retroarch).
Maintaining multiple versioned binaries (and this may happen, but it's a significant leap).And so on.
-
Thank you for clarifying @BuZz
Contributions to the project are always appreciated, so if you would like to support us with a donation you can do so here.
Hosting provided by Mythic-Beasts. See the Hosting Information page for more information.