# Need to install allegro5-5.2.6



## dieselriot (Sep 7, 2022)

Hey, I need this older version of allegro for FreeBSD 13 amd64, does anyone have it in their /var/cache/pkg and can share? If only pkg.freebsd.org was browsable...


----------



## zirias@ (Sep 7, 2022)

You'd have to create that port yourself. This version never existed in FreeBSD ports, which you can learn from the git log, it jumped from 5.2.4 to 5.2.7. edit: my bad, there's an erroneous commit message involved ^^ so you _could_ just revert all commits locally to get "back" to 5.2.6, but still my next question remains:

What's the _actual_ problem you're trying to solve?


----------



## SirDice (Sep 7, 2022)

zirias@ said:


> which you can learn from the git log, it jumped from 5.2.4 to 5.2.7.


Negative. This commit updated it from 5.2.6 to 5.2.7:






						ports - FreeBSD ports tree
					






					cgit.freebsd.org


----------



## zirias@ (Sep 7, 2022)

SirDice, see my edit, an earlier commit message was just wrong


----------



## SirDice (Sep 7, 2022)

Yeah, the commit title here says it's an update to 5.2.4, but it's actually being updated to 5.2.6:





						ports - FreeBSD ports tree
					






					cgit.freebsd.org


----------



## SirDice (Sep 7, 2022)

In any case, just use git to revert the port back to 5.2.6 and build it. That's the "easiest" way to get an older version of a port (any port).


----------



## dieselriot (Sep 7, 2022)

zirias@ said:


> You'd have to create that port yourself. This version never existed in FreeBSD ports, which you can learn from the git log, it jumped from 5.2.4 to 5.2.7. edit: my bad, there's an erroneous commit message involved ^^ so you _could_ just revert all commits locally to get "back" to 5.2.6, but still my next question remains:
> 
> What's the _actual_ problem you're trying to solve?


Running this emulator with allegro 5.2.7 results in bugs that are reportedly not present when using 5.2.6.

I'll try what SirDice said.


----------



## zirias@ (Sep 7, 2022)

dieselriot said:


> Running this emulator with allegro 5.2.7 results in bugs that are reportedly not present when using 5.2.6.


Ok, then it's a bug, either in this emulator or in allegro itself -- minor version upgrades shouldn't cause such breakage. I see you _did_ report an upstream issue, then hope for someone actually looking into it.  


dieselriot said:


> I'll try what SirDice said.


Keep in mind you'll have to `git revert` _all_ commits that changed something relevant in that port in reverse order until you reach a state of the version you want (I recommend you do that on your own local git branch, so you can rebase the reverts onto main when updating your ports).

This will get ever more likely to cause problems the more commits there will be to revert, so, it's just a temporary workaround....


----------



## diizzy (Sep 7, 2022)

As much as I used to use Meka in the past there are better alternatives out there these days except if you need a specific feature apart from emulation?


----------



## cy@ (Sep 7, 2022)

zirias@ said:


> You'd have to create that port yourself. This version never existed in FreeBSD ports, which you can learn from the git log, it jumped from 5.2.4 to 5.2.7. edit: my bad, there's an erroneous commit message involved ^^ so you _could_ just revert all commits locally to get "back" to 5.2.6, but still my next question remains:
> 
> What's the _actual_ problem you're trying to solve?


There's an easier way:

git checkout -b allegro5-5.2.6
rm -r devel/allegro5
git checkout 305f148f482d -- devel/allegro5
vi the makefile to remove the obsolete created by line or the next command will fail.
git commit -m 'LOCAL: devel/allegro5: Restore 5.2.6' devel/allegro5

This would restore it back to just before 5.2.7.0.

Later on as you update your ports tree you may need to revert again as updates are pulled. Be aware that there will likely be merge conflicts every time a pull contains allegro5 updates. You will need to abort the pull with git rebase --abort or git merge --abort, depending on how you set up your pulls.

Then simply do the following again.

rm -r devel/allegro5
git merge allegro5-5.2.6

The revert approach will work just the same but will eventually *also* result in merge conflicts as you update your tree, requiring some kind of remediation.

Another approach is to,

git cherry-pick allegro5-5.2.6

Then simply use git rebase -i to remove the commit when an update gone wrong touches the port in a way that requires you start over again.

I maintain a number of my own modifications to ports which I may either remediate by hand or cherry-pick if I need to start over again.

There are large number of ways to solve this, each having its positives and its negatives. None are 100% one-command easy.


----------



## dieselriot (Sep 7, 2022)

diizzy said:


> As much as I used to use Meka in the past there are better alternatives out there these days except if you need a specific feature apart from emulation?


That's the point, I'm developing/hacking sms games and nowadays meka features a full featured debugger/disassembler, tile and tilemap viewer, amongst other stuff. And it's also one sexy piece of software.



cy@ said:


> There are large number of ways to solve this, each having its positives and its negatives. None are 100% one-command easy.


Correct me if I'm wrong, but I guess the 100% one-command easy way was if I could just grab the old package somewhere and install it.

I think pretty much the only times I ever complained about FreeBSD is how hard and time consuming it is to go back to the previous version of a package when you don't have it anymore. And if you do have the package 90% of the time you can simply reinstall it and it's that easy.


----------



## zirias@ (Sep 8, 2022)

dieselriot said:


> [...] the 100% one-command easy way was if I could just grab the old package somewhere and install it.
> [...] And if you do have the package 90% of the time you can simply reinstall it and it's that easy.


That number might be a realistic average for the first few weeks after update of the port. How soon and how many problems (like blocking upgrades for other ports, just broken dependencies, or a package that just doesn't run) are to expect depends on the nature of the port and e.g. the number of its dependencies.

While downgrading the port and building packages locally won't work forever either, it will in most situations work for a longer time than just using an older package.

In any case, it's not a permanent solution...


----------

