Build Previous Version of Port

I would like to build libreoffice 24.8.4.2. What is the canonical way to do that?

The new version of libreoffice has some really bad behavior with copy and paste. I tried to install the old package, but I found myself on the path to dependency hell. I hope that building an old port against my current system will work better.

In the olden days, before freshports and git, we could browse the ports tree on the website, and download a tarball of the port files. I'm guessing that there is some git magic to do this, but I wasn't able to find an example online to cookbook from. I don't know much git.
 
You use `git log` to find the last commit before the commit you don't like.

You use `git checkout 8943d893jwhatever` with the commit you just found.

You still need to watch out for dependencies. You don't want to replace too many up-to-date dependencies with old ones from the now-old git tree.
 
editors/libreoffice has a lot of dependencies shared with other apps, installing a previous version of it will most definitely break dependencies.

There are two options, first, the least recommended: git checkout the editors/libreoffice you want commit hash and rebuild/reinstall all other installed applications from that git checkout. This would downgrade all applications.

Second: install that specific libreoffice checkout and dependencies in another LOCALBASE (default is /usr/local, see ports(7) for doc), so they don't interfere with the rest oft the installed packages. In this case make sure the alternative LOCALBASE binaries are in the users PATH. I've tried this method with applications with far fewer dependencies, and I'm not sure if a large dependency pool could cause errors.

EDIT: Third option: open a bug report to get that bad behavior with copy and paste corrected.
 
when I'm feeling lucky I force install without deps and then symlink all the missing shared libraries to the installed (newer) versions
if no api's changed it kinda works (won't work to symlink from openssl 1 to 3) but in many cases works
 
You definitely want to compile the OO port in the current state before the old one.

The first pass will pull in all build dependencies. In their current form of course.

If you are lucky the ./configure script in the old OO will accept the libraries newer than what it originally expected. This is actually not too unlikely. (the other way would be much more difficult)
 
Back
Top