There are several reasons for creating our project repositories:
- FreeBSD is geared more towards servers while GhostBSD targets the desktop. Maintaining our software packages repositories gives us more control and allows us to set build time options differently.
- It makes it possible to update GhostBSD specific applications (e.g. the update station) via pkg, too.
- Creating an additional repository would lead to technical problems, and it may break some applications (packages from two different repositories could depend on various versions of the same dependency package).
A separate build server was rented and will be building updated packages weekly. We found using Synth to create packages fits us better than Poudriere (Special thanks to J.R. Marino for that excellent program!).
Initially, the plan was to go with the "quarterly" ports branch from FreeBSD. Unfortunately the last quarterly update broke X11 for a lot of users and thus proved not to meet our requirements at all.
GhostBSD will provide packages for i386 and amd64. For both architectures there will be three public repositories:
- latest: which matches FreeBSD's ports + GhostBSD ports + changed options and perhaps patches. The devs will run this, and advanced users who are willing to test are welcome, too.
- current: which will be the default repository for GhostBSD.
- previous: which keeps the previous packages available after "current" was updated.
By using "latest", we hope to catch problems before broken packages go into "current". If something we don't use breaks, there's "previous" as a fallback repo.
For users who like packages but need to build some ports themselves to change options, we will provide the patched ports tree that we create packages from.