Archive for the ‘Distributions’ Category

Upgrade notes on macOS Sierra

I’m notorious for not updating OS X (macOS) too quickly, preferring to wait months on end for Apple to iron out bugs. I just hope that in 2017 they don’t make a major release and something sensible, i.e. that fixes usability and makes the OS much more stable.

However when you buy a new Mac, you’re more or less forced into the new OS. I did pickup a MacBook Pro 15″ with the new TouchBar, and at some stage I’ll talk about my usage (its been about 3 months of daily usage).

One thing that has annoyed me about the new macOS Sierra is that I don’t get to use GPGTools – it will not work on macOS Sierra. There is now however a beta you could try to ensure you’re signing and encrypting email just as well.

Another thing that I hit almost immediately? Some of my SSH hosts just stopped working. I’ve seen various sites talk about how ssh-agent does not automatically load pass phrases to keychain during startup to Upgrading to macOS Sierra will break your SSH keys and lock you out of your own servers.

My ~/.ssh/config now has:

Host *

UseKeychain yes

AddKeysToAgent yes

to fix things.

Everything else more or less works. I did Time Machine restore. I’m not too happy that they removed the Time Remaining from the Battery icon, and I’m not getting the battery life that I expect, but maybe when the new Mac Mini’s come out, I’ll do another Time Machine restore to that, and a clean install to the MacBook Pro.

Debian and MariaDB Server

GNU/Linux distributions matter, and Debian is one of the most popular ones out there in terms of user base. Its an interesting time as MariaDB Server becomes more divergent compared to upstream MySQL, and people go about choosing default providers of the database.

The MariaDB Server original goals were to be a drop-in replacement. In fact this is how its described (“It is an enhanced, drop-in replacement for MySQL”). We all know that its becoming increasingly hard for that line to be used these days.

Anyhow in March 2016, Debian’s release team has made the decision that going forward, MariaDB Server is what people using Debian Stretch get, when they ask for MySQL (i.e. MariaDB Server is the default provider of an application that requires the use of port 3306, and provides a MySQL-like protocol).

All this has brought some interesting bug reports and discussions, so here’s a collection of links that interest me (with decisions that will affect Debian users going forward).


MariaDB Server

Windows 10 Installation Notes

I downloaded Windows 10 as an ISO from Microsoft. To make a bootable USB disk, I followed the instructions in this article, basically using the Boot Camp Assistant.

The installation went on without a hitch. I was never asked for any product key, presumably because Windows 8 Pro did boot on my device once, before it was wiped to replace it with Ubuntu a few months ago.

Updating software makes sense of course so I did that. I found it odd that you could login to Windows using your Microsoft ID (i.e. your email address + password). Good thing it supports setting up a PIN, because I use a password that I can’t remember (hello 1Password).

Setting up Chrome and ensuring you’re logged in means you get a similar environment everywhere (so for me, this is the same across the Mac and the Chromebook).

The Lenovo ThinkPad X240 comes with a fingerprint reader and once your PIN is setup, you can ensure that the fingerprint reader works as well. I followed the instructions on the Lenovo forum.

Figuring office software would be important, Office 365 was installed in a rather quick fashion. To save a license seat, I removed it from the Mac using AppCleaner, saving 7.61GB of space!

Drivers seem to be something one needs to install (which is unfortunate). Lenovo requires their System Interface Foundation, and the Lenovo Settings application, since the battery management benefits from it (otherwise you get a famous message, “plugged in, not charging”). Lenovo Battery Gauge is another from Lenovo’s support site. Shockingly, you have no idea what you need to install to get things going.

Windows does have an app store now but it’s not complete so to speak (i.e. some apps require things outside the app store so you get it via a browser). Installing software that affects the system naturally means you go through a reboot cycle fairly often (which is still an annoyance in Windows land it would seem).

I enjoy my Caps Lock key being an additional Control key, and the easiest way to do this is via Ctrl2Cap. Unsurprisingly, this also requires a reboot to take effect.

Unfortunately travel beckons, and I am only planning to take one laptop with me, so till the next month till I provide updates on my Microsoft Windows adventures.

Ubuntu 16.04 LTS upgrade notes

Early today morning I decided to update my NUC to Ubuntu 16.04 LTS. It was a very easy upgrade and I am pleased to report I do not have to ensure nomodeset is set during boot. Dropbox, CrashPlan work just as designed. Its time to move this to the office and ensure that it has a regular monitor attached to it; its my Linux desktop.

I updated the Lenovo ThinkPad X240 as well over a wired Ethernet connection, and to my dismay, the rtl8192ee bugs still plague it. (previously, bug).

Since the Fedora Project released Fedora 24 yesterday, I’m downloading the ISO now. But as a backup, I have also downloaded the Windows 10 ISO (yes, this might be the first Windows I end up using since 3.1, but maybe I’ll do things normal people do with a laptop going forward).

Homebrew and opensource analytics

Today I ran a quick brew update, and noticed the following:

==> Homebrew has enabled anonymous aggregate user behaviour analytics
Read the analytics documentation (and how to opt-out) here:
Updated Homebrew from  to .
Updated 2 taps (caskroom/cask, homebrew/core).
No changes to formulae.

Its well worth reading the document: Homebrew’s Anonymous Aggregate User Behaviour Analytics.

I’m in support of this move, after all Homebrew is valuable for me, and the volunteers need to know where to place importance of their time. I guess its also important to know if they should support many versions of OS X (as of this writing, I am still running OS X 10.10 instead of having upgraded).

Being non-server software, this is turned on by default. Imagine if we could do that with MariaDB Server and the feedback plugin? Its opt-in, and you don’t get statistics that “match reality” so to speak. E.g. some 12k servers out there, or how 88% of users are using Microsoft Windows. This number is wildly different from the quoted 12 million users in a recent press release.

Opensource projects, especially venture backed opensource projects/products, are always looking for metrics and usage statistics. The old adage at MySQL was that you were a user for about 3 years, before you even bought services. Its clear that we all need better metrics instead of download numbers. Kudos to Homebrew for being so brave.

Ubuntu Online Summit: MySQL & Variants in 16.04

I personally have always enjoyed the Ubuntu Developer Summits (UDS), but nowadays they have been converted to the Ubuntu Online Summits (UOS). Attending them is not always convenient (timezone issues, might be travelling, etc.) so I watched the recorded video of a session I was interested in: MySQL & Variants in 16.04.

My key takeaways

  1. Ubuntu 16.04 Xenial Xerus is an LTS release.
  2. The term “cross-grade” is used a lot (it is not about downgrading/upgrading, but being able to use MySQL or MariaDB or Percona Server interchangeably)
  3. It would be nice to see MySQL 5.7 in this release (for Xenial as well as Debian Stretch). From Oracle there is a new packager taking over the task (Lars)
  4. MySQL 5.5 is still the default in Debian, and there needs to be upgrades tested between 5.5 to 5.7 (it looks like the ideal jump is that Ubuntu will not be seeing MySQL 5.6)
  5. Percona Server 5.7 is 60-90 days out; xtrabackup has had some new modifications and deserves an upgrade
  6. Boost is a new requirement for MySQL 5.7 & Percona Server 5.7; some old TokuDB problems in the builds are likely already fixed in MariaDB Server so this can be inherited
  7. MariaDB is waiting to iron out the bugs in 10.0, and may stick to that

My “raw” transcribed notes

  • Attendees:

    • Jon Grimm (Engineering Director for Ubuntu)
    • Robie Basak (Ubuntu)
    • Otto Kekäläinen (MariaDB Foundation)
    • Lars Tangvald, Norvald H. Ryeng (Oracle)
    • George Ormond Lorch III (Percona)
  • Robie: Waiting in Debian for a transition slot from MySQL 5.5 to MySQL 5.6. There’s some discussion with bugs, re: Akonadi, need to also resolve ABI issues with MySQL 5.6. Not really discussed MySQL 5.7 yet.

  • Norvald: 5.7, changes to installation. Client library ABI cleaned up. There may be some clients breaking because of that. No more exported symbols. See: The Client Library, Part 1: The API, the Whole API and Nothing but the API & The Client Library, Part 2: The Version Number
  • mysql_install_db is now replaced by --initialize in the server, so have to rewrite the post-install scripts. Might also have some AppArmour changes. Spoke to people @ DebConf (so best place is to put AppArmour profiles upstream (i.e. in mysql) and Debian and other distros will get it from there). AppArmour profile is in the MySQL source package now. Probably can get away with doing everything as cmake variables.
  • MySQL 5.7 has disabled the old password hashing algorithm, so if people haven’t upgraded they might have problems; so a manual intervention to fix their accounts.
  • Going from MySQL 5.7 to MySQL 5.6? It is done by dump and restore. There is no testing automated downgrades. Are there disk format changes? Norvald is not aware of any. If you use virtual columns in 5.7, you can’t downgrade easily to 5.6.
  • Robie would prefer to not release 5.6 and 5.7 concurrently. During Trusty, there was some level of user confusion. Debian – release team would prefer to see one transfer than two, so is it better to just do a single transition to 5.7?
  • Norvald says there hasn’t been testing from 5.5 -> 5.7. They only support upgrades from 5.5 -> 5.6 -> 5.7. For Ubuntu the choice can be to have 5.6 and then later do 5.7, but Jessie only just released with 5.5, so Stretch with 5.6 might not be a great idea (so users migrating from Jessie to Stretch will go from 5.5 to 5.7). Could also have 5.7 depend on a stripped 5.6 binary (like the embedded server; this is for localhost and the security team shouldn’t be too annoyed) for people to do an upgrade. Norvald says this has not been tried and there needs to be a migration path tested from 5.5 -> 5.7.
  • Conclusion: 5.7 in Stretch. Xenial is an LTS release, and 5.7 should be targeted for that.
  • If the maintainer script fails (postinstall script fails – don’t leave apt in a weird state). If it fails then upgrades, leave a debconf critical notice to say that the service is disabled and then fix it manually. Otto says that leaving /etc in a broken state is terrible, so we should avoid it.
  • Do we (Oracle) have the resources for 5.7 packaging and how soon can it be done in time for Xenial? There were patches from Lars in the git tree, but there haven’t been more recently. Lars will take over the 5.7 transition so if there is a list of work items, this will be settled (Lars will take over from Norvald).
  • There will be a separate session with Norvald/Lars/Robie outside of UOS about 5.7. Defer the Boost conversation after the session as well.
  • George: Percona is mainly looking out towards the 5.7 work and what kind of resources that will be put to that. There are new folk @ Percona to help with this. Percona inherits so much from the upstream codebase, it just works for Percona Server. There is Percona XtraDB Cluster and Percona xtrabackup, and xtrabackup has moved on quite a bit since the last upload (since last November 2014). So might be good idea to look at a refresh. There has also been a lot of work done on Percona XtraDB Cluster and there are some developments with Codership, so they are unsure if they will have their own Percona XtraDB Cluster 5.7 by the time Ubuntu is supposed to ship. When Percona is ready for something, just give Robie a shout to ensure that things happen. 60-90 days before a Percona Server 5.7 release. Just be aware of feature freeze for Xenial.
  • Norvald mentions that Percona Server 5.7 will also depend on Boost and there needs to be a decision on this. George mentions that TokuDB is now part of Percona Server, and it has some of its own requirements as well. Do we include TokuDB? It has requirements like it will only run on 64-bit platforms. Things to figure out going forward? MariaDB has been carrying TokuDB last November, but Robie remembers disabling it in Ubuntu. George says there were some licensing issues back then but they seem to be taken care of.
  • Otto says the builds for TokuDB was failing. It has a dependency on jemalloc, and that might have been the reason there were failures (says George). There may be something else where it doesn’t build on Ubuntu builders. But Otto says that there was a commit where this got fixed about last month. George will follow on, just to absorb it, since the legwork is already complete.
  • Otto: Trusty has 5.5, and Jessie and all other Ubuntu releases have 10.0, and 10.1 was released last month and I’m not quite pushing it to Debian quite yet. Fix 10.0 build fixes, upstream them, then only focus on 10.1. Blocking? (last summer) 5.6 is not in testing, so could not depend on it/changes done in 5.6 mysql-common. Here’s hoping that mysql-common going forward will be generated separately.
  • Robie will take an action to resolve the delta (probably just drop it). To sync MariaDB 10.0 to Xenial.
  • Discussion on /var/lib/mysql/*.flag thing on the list — conclusion at: mailing list — goal: within a single Ubuntu release, people can “cross-grade” between MySQL variants. The goal is to support all 3, and users want to try them, and thats when the bug reports come. Robie’s goal: move to a per-variant data directory. Otto says that once directory names change, 3rd party tools might have breakage. So a working prototype. Migration path is difficult. Maybe the best is to turn /var/lib/mysql into a symlink and store the data elsewhere. PostgreSQL does per version directories today; so studying that is going to happen.