New Ports Tree

We sync with FreeBSD's GitHub repos every six hours via an automated process. Our automated sync process sends us an email with the status of the sync: if it succeeded or if it failed. If the process fails, it tells us why. Having this automated sync process allows us to follow FreeBSD closely and manage the occasional merge conflict with ease.

Late in the evening on Thursday, 01 December 2016, we noticed that the sync failed for the ports tree with hundreds of merge conflicts. Even files HardenedBSD hasn't changed were in conflict with upstream FreeBSD. Around the same time, other people outside of both FreeBSD and HardenedBSD noticed something was wrong. It turns out that FreeBSD's script to convert from subversion to git had issues. FreeBSD has given a brief post-mortem on what happened. The problem affects any project downstream of FreeBSD that uses FreeBSD's ports mirror on GitHub.

On Friday, 02 December 2016, we started looking into the issue. On Saturday, 03 December 2016, we stopped the automated sync process for our ports tree. We made the decision that because the FreeBSD's ports tree's history had been rewritten, causing commit hashes to be different and merge conflicts with hundreds of files we never changed, we would recreate our ports tree from scratch. We have imported the core of our changes to the ports tree as a single atomic commit. As such, we will lose the history behind all the changes we made to the ports tree. If you followed or watched our ports tree through GitHub's interface, you'll need to follow or watch it again. We're running an experimental package build right now to make sure our ports tree is still sane.

As part of FreeBSD's post-mortem, they noted that the same thing can and likely will happen with the source (src) tree. We are investigating what we can do on our end to mitigate any short- and long-term issues stemming from FreeBSD's subversion to git conversion process for both the ports and src trees. Obviously, losing the commit history for the src tree is much more serious. We are working hard to prevent that from happening.