Switching from GhostBSD to FreeBSD - state of ports

Hi all,

A question, a few years ago I moved my Desktop machine from Linux to Ghost BSD. This was not advised by someone, but it looks ok, and I was too fuzzed from medication to take the step to FreeBSD or OpenBSD ( had some 20-year-old experience.... and used other Unix OS's (paid ones )) Suppose it was a wrong in the assumption I made, but it was ok. Thought I might take it to one of those in the future. Been ok with the CLI for a few decades now, although I do like a fancy GUI too, as long as it is functional for me and those who might use it here at home.

There is one downside, I am not sure if this is the general ports or this is a specific thing in Ghost. Lots of ports seem to have no maintainers and / or lack updates.

An example.

A friend recommended Lightzone as a raw editor for photo's. Not that I am a pro, but it is one topic I am interested in, purely to see what it does. However, bumped into problems with the default packages. It nagged me about tidy, I searched the packages and found other versions. Installed those and yes, success, it shows the interface, so I assume it was backward compatible. Tried to load the Nikon version of Raw ( NEF ) and noticed it was not able to handle it.

This could well be the software of lightzone delivers, but as stated, this is an example. I could also mention Nheko to name one chat program. Video and sound is lacking there but I do notice Linux users can use those options. Looked at the ports version but that is lacking it too.

I can work around most things, Element in the browser (no, not the self-hosted one) is ok for me.

Would probably overcome a lot by using flatpak like solutions but I really hate that.

So here is the actual question. Is this a general problem in ports?

Some positive remarks should be in here too :) I was so happy getting back to old-fashioned debugging. Was able to turn to log files I did not look at in the last 5 Linux years due to systemd. It helped me to trickle down problems in a way I am familiar too. So thanks all involved in creating this.

Anyone?
 
I have no idea how ghostbsd builds their packages, but e.g. lightzone has a maintainer for sure (that's not me, it's another Yuri :D):
Code:
$ make maintainer -C /usr/ports/graphics/lightzone
yuri@FreeBSD.org
 
Some ports don't have a maintainer but function fine.
"pkg update ; pkg upgrade"
Note : I prefer personal "plain freebsd" above netbsd,openbsd & freebsd-derivatives like ghostbsd.
 
There are almost 32000 ports. Most of them have a maintainer, but there are certainly quite a few that don't. See Adopt an orphaned port project.

I can work around most things, Element in the browser (no, not the self-hosted one) is ok for me.
If you have problems with a certain port, or one of its dependencies, you can certainly open a PR. Preferably with a patch or suggestions on how to fix the issue. If it's an 'unmaintained' port (in other words, it has no maintainer) then nothing is going to happen until someone, anyone, supplies a patch that can be imported.
 
My experience over a long time is that most ports or at least the most commonly used ones have maintainers.
The further one gets from "commonly used" you may not have maintainers.
So what do you do? I keep using them and then if a port disappears I find something else.

But I use darktable
 
From all the responses I do no see any confirmation port maintainers might be the real problem. Thanks all, I can always switch to compiling things myself but was hoping to avoid it.
 
I can always switch to compiling things myself but was hoping to avoid it.
You shouldn't need to do that unless you need a more recent version. Typically the packages for a RELEASE are only updated quarterly (some may get security updates like firefox and chromium), "LATEST" will likely be more recent but more in flux.
I don't compile ports any more but those here that do seem to use poudrie. That's the same tool used to create the official package repos so you can create your own local repo and update when you want.
 
Years ago, way before I stepped into making it a job, I did compile a lot, yeah, checksums, etc.. also read source to help me understand what things do.

I am not happy to move there again, there is a reason for distro's.

I might not switch to freebsd due to this since I have a working machine that does what I want but part of the answer to that quest would be the ports question.
 
I never used GhostBSD, so I have no idea how they offer their packages, whether they just use FreeBSD packages ("latest" or "quarterly"), whether they build their own repo from FreeBSD's ports or whether they even have their own ports tree ... but I can try to summarize how it works on FreeBSD:
  • FreeBSD ports are "rolling release", which means they are constantly updated on the "main" branch, and a package repository called "latest" is constantly rebuilt from the main branch. If you use that repository, you will in most cases always have the newest versions of the software offered.
  • Every quarter, a new "snapshot" branch is created. Updates to main will only be "cherry-picked" there when they fix a security vulnerability or some other severe malfunction. A package repository called "quarterly" is built from that branch, and FreeBSD release versions come pre-configured to use that repository. This is meant for people who want to avoid larger package updates all the time, you'll have these larger updates only 4 times a year (when the next snapshot branch is created).
  • Repositories are built for each supported FreeBSD release version, but they are built from the same ports tree, so no matter which FreeBSD version you use, you will get the same versions of software installed from ports/packages.
  • "Outdated" ports are possible for a lot of different reasons, being unmaintained is one of them, but as already mentioned, the vast majority of ports is actually maintained. It's simply possible the maintainer is inactive for a while or didn't notice the upstream update for some other reasons. It's also possible that some update isn't done because it currently breaks other software depending on it. And unfortunately, another common issue is non-portable upstream code (quite some projects nowadays don't realize any more that Linux isn't the only unix-like OS out there...), requiring quite some patching to make it work correctly on FreeBSD. A "pathologic" case is www/chromium, where upstream outright announced that they have no intention to support any BSD. As a result, the port contains way over 1000 local patches by now, a joint effort of OpenBSD and FreeBSD maintainers...
  • In most cases, there's no need to build anything yourself. Updates to the "main" branch of ports will be available as packages from the "latest" repository several days later. You'll only have to build yourself when you either want to make use of build-time options (like options of individual ports or some setting in DEFAULT_VERSIONS) or you actually want to work on ports yourself. There are lots of possibilities to build ports, even just using make from within the ports tree. The most reliable and robust way though is to build your own package repository using ports-mgmt/poudriere.
  • Anyone can help! FreeBSD welcomes contributions from anyone (typically as attachments on bugzilla), anyone can become a port maintainer (no need to be a FreeBSD developer for that). Still some q/a is done, a committer will have a look at the submission and might request some changes or just apply some (simpler) changes before actually committing. If you want to submit more complex changes that would benefit from an actual review tool, you can even get a phabricator account without being a FreeBSD developer. More people working on ports will always be a gain, and it would be especially nice to further reduce the amount of unmaintained ports.
 
Regarding GhostBSD, I build the packages from https://github.com/ghostbsd/ghostbsd-ports which contain all the same ports as https://github.com/freebsd/freebsd-ports plus our OS and GhostBSD specific ports. GhostBSD builds the OS packages from ports. GhostBSD ports tree is synced from FreeBSD ports once every week or 2.

Packages are built about every two weeks unless there are CVEs in the default set of packages. I try to stay on top of CVEs as much as possible. I also try to help when I can with MATE ports on the FreeBSD ports side.
 
Weird, I just wanted to check out Ghost BSD's website and it says it's off for maintenance because someone broke it during an upgrade. Is this project still alive or how long has this been going on?

To be frank, it does not instill confidence in development processes to see an OS website go offline...
 
Weird, I just wanted to check out Ghost BSD's website and it says it's off for maintenance because someone broke it during an upgrade. Is this project still alive or how long has this been going on?

To be frank, it does not instill confidence in development processes to see an OS website go offline...
That someone was me Yesterday morning. I always did a backup before upgrading Drupal, and for the first time, I did not do it, and everything has gone sought. My fear of upgrading without doing a backup just got amplified 100 times. GhostBSD needs to move to a static website, but I have no coding experience and do not have much time to learn how to do that.
 
GhostBSD needs to move to a static website, but I have no coding experience and do not have much time to learn how to do that.

Currently trying to wrap my head around JavaScript as a side hustle; wouldn't mind lending a hand and some Ops work. I'll shoot a PM sometime in the near future.
 
GhostBSD needs to move to a static website, but I have no coding experience and do not have much time to learn how to do that.
I can strongly recommend https://gohugo.io / www/gohugo
There are many similar alternatives tho.
It's basically a program converting markdown to ready-to-deploy static HTML. You can select (or write) a template yourself and it supports stuff like image galleries etc. Updating the website becomes as easy as modifying some markdown files.
 
Back
Top