Solved Pin package version in poudriere

How can I pin a certain version of a package in poudriere?
I want to hold net-im/mastodon at 4.1.9 (latest is 4.2.0). I have tried changing the relevant line in the poudriere list to:

Code:
"net-im/mastodon-4.1.9"

But this gives me:

Code:
[00:00:01] Error: Nonexistent origin listed: net-im/mastodon-4.1.9
 
You fix it in the ports tree that's used as the source for building those packages.
 
As SirDice said, fix it in the ports tree that poudriere uses for that build.

My approach (that might be horribly wrong) is usually to revert the specific commit, e.g. in your case commit 665d0a43795b8a81a9c86c4e16a39dc56dbcf8ca:
/usr/local/poudriere/ports/quarterly # git revert 665d0a43795b8a81a9c86c4e16a39dc56dbcf8ca

As this local commit will prevent updating ports via git pull or poudriere ports -u in the future, I then git rebase the local repository. IIRC a git pull on the modified ports tree would also give you the hint about rebasing local commits, so it can't be *that* awfully wrong (I hope).
 
Yep. I highly recommend using a git checkout for poudriere's ports trees. That will allow you to easily manipulate it (branch it, revert patches, add your own, checkout specific versions, etc.).

Keep in mind that poudriere ports -c ... will create a shallow clone by default. You can convert a shallow clone to a full one but it requires quite a few git actions to be done. It's a lot easier to simply do a full checkout from the start. So add the -D option when you create a poudriere ports tree from git.

Code:
                    git[+protocol]  Use Git to download the sources.

                                    Sources will be cloned shallowly unless -D
                                    is specified.
 
Back
Top