I'm operating a ghost instance in a LXC on Proxmox, Debian 10.
So today - after updating from 3.x to 3.y, then 4.x - and seeing the MySQL 8 requirement for Ghost 5.x - I thought "Ah what the heck, let's see what TKL has got.

https://www.turnkeylinux.org/ghost

Downloaded and inspected, aha: MariaDB - so it's about as prepared for 5.x upgrades as I am.

Just a heads up - you might want to address that.

Forum: 

I ended up installing a non-TKL VM with Ubuntu Server 22 + MySQL 8, because that's the supported OS/Env and the team considers everything else - including Debian - an unsupported OS.

Even so, installing Ghost 5.2x was ... interesting.

Jeremy Davis's picture

Please see my other post for my rant about this situation.

Despite my frustration with the Ghost dev's decisions, as a Ghost user, you're definitely following the path of least resistance. And the one most likely to limit problems moving forward.

As a Ghost user, you've likely made the right decision.

Jeremy Davis's picture

Damn, that really sucks. Thanks for the heads up.

Sorry for this essay, but you've opened a can of worms (or at least handed me an open can or worms :). Let me explain.

I wasn't aware that they'd removed official support for MariaDB. I think that's incredibly short sighted of the Ghost devs. It's pure speculation and I have no evidence, but my guess is that there is some sponsorship deal behind the scenes, or at the very least a conscious focus on corporate customers first. Unfortunately, the availability of official MySQL packages is very limited in Linux these days. There may be others, but Ubuntu (and direct derivatives; and of course Oracle Linux too) is (are) the only Linux OS that I'm aware of that support MySQL OOTB these days.

Don't get me wrong, it's the Ghost dev's project and obviously they're entitled to run it as they see fit. I'm also acutely aware that supporting lots of different backends can add a fair bit of work. I also have tons of first hand knowledge on how tough it is to build a sustainable open source business model without compromising the free (as in freedom) part of FOSS.

Conversely though, only officially supporting MySQL seems like a bizarre decision for a project committed to open source to make!? Whilst technically MySQL remains open source, since it's purchase by Oracle it is certainly not as open as it once was. Hence why the core MySQL developers quit MySQL and forked the codebase to create MariaDB (in case you weren't aware, Oracle have quite a history of commodifying and crippling everything open source that they take over).

Hence why official MySQL support has since been removed from most "free" focused Linux distros. Ubuntu (being one of the largest commercial Linux distros) is willing and able to do deals with proprietary companies and thus it could be argued that they are not as committed to open source as others. It's unclear to me whether Ubuntu's continued support of MySQL is a pragmatic decision (in light of their commercial user base) or a financial one (i.e. deal with Oracle) - likely a combination of both.

Bottom line, if we consider the following points, I find it hard to see any pragmatic reason (other than purely business - perhaps with some financial kickbacks coming from somewhere) for them to not officially support MariaDB. These are the reasons I say that:

  • how contentious MySQL now is in the open source community
  • how ubiquitous MariaDB is across Linux distros (and how limited MySQL is)
  • how close/similar MySQL and MariaDB are (whilst data storage is incompatible, MariaDB is intended to remain backwards compatible with MySQL).
  • how common CD/CI workflows are, supporting multi-platform automated builds and testing (e.g. build against both MariaDB and MySQL - even if not committed to fixing bugs, at least make it easy for the community to find and fix them themselves)
  • the amount of community pushback the Ghost team still seem to be getting over their decision to drop official MariaDB support (and their apparent desire to completely shut down discussion of it)

So whilst Ghost might be a nice piece of software from a user perspective, this scenario concerns me about where they may be heading in the future. Having worked with TurnKey for quite a few years now, I've seen this sort of slide from open source, community focus; to corporate, commercial focus play out a few times now... It never usually ends well for the "little" users. If Ghost goes anything like the others, the days of us being able to offer a Ghost appliance may be limited. So whilst this immediate issue is interesting (and really good to be aware of) it's actually the lack of official MariaDB support in general that puts us in such a crappy position.

To give a little more context, we have tended to be more pragmatic than idealistic when it comes to our approach to FOSS. Whilst we are fiercely committed to free, open source software, we do bend the rules a bit more than say Debian has historically. We are willing to blur the lines a little (obviously within the limits of the law) in an effort to allow our users to do what they want to do without being overly restrictive and pushing any sort of ideological position on our users (despite our personal commitment to FOSS).

There are "official" 3rd party MySQL packages available for Debian (provided by MySQL). But the installation is not open source (here's the licence here). Note the last half of the first paragraph (emphasis my own):

[...] you may not use, copy, reproduce, translate, broadcast, modify, license, transmit, distribute, exhibit, perform, publish, or display any part, in any form, or by any means. Reverse engineering, disassembly, or decompilation of this software, unless required by law for interoperability, is prohibited.

That makes it clear that whilst you can install MySQL on your Debian system yourself, we can't pre-install it and (re)distribute it in an ISO to you! The only workarounds that I can see would be rebasing on Ubuntu (not something I plan to do) or build and host MySQL packages ourselves on our apt repo (we could build from the Ubuntu source packages to streamline things a bit). The latter would require additional work on our behalf and responsibility (to ensure that sec issues are patched in a timely manner) that I don't need right now. Especially not for one appliance that doesn't command a particularly large user base (at least TurnKey users).

TBH, I think it highly unlikely that Oracle would really give a damn if we did reverse engineer their apt repo set up. But the reality is that if we do redistribute MySQL repo config and they do notice us and decide to do something about it, that would likely be the end of TurnKey.

The only viable path forward that I see currently is for us is make it clear that our appliance can not be "officially supported" (as we don't have access to MySQL) and wait until someone fixes the specific issue. It appears to be a bug in a third party library - not specifically an issue with MariaDB. Apparently it's since been fixed, but I'm not clear on how a user could ensure that fix is installed locally? (And your comments suggest that Ghost sin't yet pulling in the fixed library).

Our only other option would be to drop Ghost altogether.

Coming back to this topic - and having read your thoughts on it in full length - all I can say is that I share your FOSS views 100%. If Ghost itself was not that interesting for me, I would have looked for an alternative already.

Read: I did, but found none.

Maybe I'm naive, but I believed their claim that they are a small dev team and have to focus on a limited subset of technologies/environments. So benefit of the doubt, I do not believe there being some sort of sponsorship deal behind the scenes.

HOWEVER, even if there isn't, I have to call their decisions for choice of technologies plain stupid. And yes, I agree they have all the right to do these/any decisions (including stopping development altogether).

Still, this feels like a FOSS going commercial (and not so FOSS anymore) in the long run. It has been known to happen from time to time: MySQL, OTRS, MongoDB, ...

 

Add new comment