Chef Intermediate Training

I did a day’s training at the FLOSS UK conference in Manchester on Chef. Anthony Hodson came from Chef (a company with over 200 employees) to provide this intermediate training which covered writing receipes using test driven development.  Thanks to Chef and Anthony and FLOSS UK for providing it cheap.  Here’s some notes for my own interest and anyone else who cares.

Using chef generate we started a new cookbook called http.

This cookbook contains a .kitchen.yml file.  Test Kitchen is a chef tool to run tests on chef recipes.  ‘kitchen list’ will show the machines it’s configured to run.  Default uses Virtualbox and centos/ubuntu.  Can be changed to Docker or whatever.  ‘kitchen create’ will make them. ‘kitchen converge to deploy. ‘kitchen login’ to log into v-machine. ‘kitchen verify’ run tests.  ‘kitchen test’ will destroy then setup and verify, takes a bit longer.

Write the test first.  If you’re not sure what the test should be write stub/placeholder statements for what you do know then work out the code.

ChefSpec (an RSpec language) is the in memory unit tests for receipes, it’s quicker and does finer grained tests than the Kitchen tests (which use InSpec and do black box tests on the final result).  Run with  chef exec rspec ../default-spec.rb  rspec shows a * for a stub.

Beware if a test passes first time, it might be a false positive.

ohai is a standalone or chef client tool which detects the node attributes and passes to the chef client.  We didn’t get onto this as it was for a follow on day.

Pry is a Ruby debugger.  It’s a Gem and part of chefdk.

To debug recipes use pry in the receipe, drops you into a debug prompt for checking the values are what you think they are.

I still find deploying chef a nightmare, it won’t install in the normal way on my preferred Scaleway server because they’re ARM, by default it needs a Chef server but you can just use chef-client with –local-mode and then there’s chef solo, chef zero and knife solo which all do things that I haven’t quite got my head round.  All interesting to learn anyway.

 

Planet KDE: Now with Added Twits

Twitter seems ever dominant and important for communication. Years ago I added a microblogging feed to Planet KDE but that still needed people to add themselves and being all idealistic I added support for anything with an RSS feed assuming people would use more-free identi.ca. But identi.ca went away and Twitter I think removed their RSS ability but got ever more important and powerful.or the relaunched theme a couple of years ago we added some Twitter feeds but they were hidden away and little used.

So today I’ve made them show by default and available down the side.  There’s one which is for all feeds with a #kde tag and one with @kdecommunity feed. You can hide them by clicking the Microblogging link at the top. Let me know what you think.

Update: my Bootstrap CSS failed and on medium sized monitors it moved all the real content down to below the Twitter feeds rather than floating to the side so I’ve moved them to the bottom instead of the side.  Anyone who knows Bootstrap better than me able to help fix?

I’ve also done away with the planetoids. zh.planetkde.org, fr.planetkde.org, pim.planetkde.org and several others. These were little used and when I asked representatives from the communities about them they didn’t even know they existed. Instead we have categories which you can see with the Configure Feed menu at the top to select languages.

I allowed the <embed> tag which allow for embedding YouTube videos and other bits.  Don’t abuse it folks 🙂

Finally Planet KDE moved back to where it belongs: kde.org. Because KDE is a community, it should not be afraid of its community.

Let me know of any issues or improvements that could be made.

Plasma Sprint: Legacy Media Support in KDE Applications

Boudhayan Gupta dropped by for the final day of the Plasma Sprint because he had 3D printed that save icon and wanted to test it.  Coincidently I found a treasure in the glove compartment of my dad’s car, a Eurythmics Greatest Hits audio CD.

So how does KDE applications do for legacy media? Mixed results.

Dolphin works even if it does report it as a 0B media [Update: fixed by the awesome Kai Uwe]

However classic KDE tool KFloppy less so, it hard codes locations in /dev to find the floppy but my USB floppy drive just appears at /dev/sdc, even one I fixed that it uses an external tool which breaks fdformat.

Meanwhile CDs are also something we ship apps for but never test.  This makes the Plasma Sprinters sad because they desperately want to hear Love Is a Stranger.

kio-audio CD didn’t work but then when we looked at it again it worked perfectly, don’t you hate when that happens?  This was a killer feature of KDE back when everyone was ripping CDs to their hard disk for the first time.

Playing Audio CDs natively less successful, Amarok shows it as a source but says it has 0 tracks.  Dragon plays it fine but Dragon has no concept of a playlist so you can’t select a track.  kscd works but is a perfect example of why skins and client side window decorations are a bad idea because it still looks like it did years ago.

We also tried k3b which works for making a new audio CD but doesn’t let you add files to a data project (bug 375016) so shouldn’t be released quite yet. [Update: also fixed by Kai Uwe, what a useful chap.]

Where else does KDE support legacy formats that need checking up on?

 

Plasma Sprint: KDE neon Docker Images Now Support Wayland

The KDE neon Docker Images are the easiest and fastest way to test out KDE software from a different branch than your host system.

Coming live from the Plasma Sprint sponsored by Affenfels here in Stuttgart, the KDE neon Docker images now support Wayland.  This runs on both X and Wayland host systems.  Instructions on the wiki page.

Below you can see my host system running Plasma 5.9 on X is running Plasma master with Wayland.

Hugs to David E.

neon-docker-wayland

KDE at FOSDEM and Plasma Sprint 2017 Pics

We’ve had a busy weekend at FOSDEM in Brussels for the last two days and now I’ve travelled into my fifth country of the trip picking up a few hackers on the way for the KDE Plasma Sprint which is happening all this week in Stuttgart, do drop by if you’re in town.

DSC_0001KDE and Gnome looking good at the Friday beer event

DSC_0004Busy busy on the KDE stall

DSC_0010Food and drinks at the KDE Slimbook release party.

DSC_0008KDE neon goes smart

DSC_0013After a road trip into the forest of baden württemberg we arrived at the KDE Plasma Sprint sponsored by von Affenfels

DSC_0017Plasma Sprint also sponsored by openSUSE

DSC_0015Plasma Sprint also sponsored by Meat Water

DSC_0016Plasma Sprint also sponsored by Kai Uwe’s mum

Reports of KDE neon Downloads Being Dangerous Entirely Exaggerated

When you download a KDE neon ISO you get transparently redirected to one of the mirrors that KDE uses. Recently the Polish mirror was marked as unsafe in Google Safebrowsing which is an extremely popular service used by most web browsers and anti-virus software to check if a site is problematic. I expect there was a problem elsewhere on this mirror but it certainly wasn’t KDE neon. KDE sysadmins have tried to contact the mirror and Google.

You can verify any KDE neon installable image by checking the gpg signature against the KDE neon ISO Signing Key.  This is the .sig file which is alongside all the .iso files.

gpg2 --recv-key '348C 8651 2066 33FD 983A 8FC4 DEAC EA00 075E 1D76'

wget http://files.kde.org/neon/images/neon-useredition/current/neon-useredition-current.iso.sig

gpg2 --verify neon-useredition-current.iso.sig
gpg: Signature made Thu 19 Jan 2017 11:18:13 GMT using RSA key ID 075E1D76
gpg: Good signature from "KDE neon ISO Signing Key <neon@kde.org>" [full]

Adding a sensible GUI to do this is future work and fairly tricky to do in a secure way but hopefully soon.

KDE neon Inaugurated with Calamares Installer

You voted for change and today we’re bringing change. Today we give back the installer to the people. Today Calamares 3 was released.

It’s been a long standing wish of KDE neon to switch to the Calamares installer.  Calamares is a distro independent installer used by various projects such as Netrunner and Tanglu.  It’s written in Qt and KDE Frameworks and has modules in C++ or Python.

Today I’ve switched the Developer Unstable edition to Calamares and it looks to work pretty nicely.

However there’s a few features missing compared to the previous Ubiquity installer.  OEM mode might be in there but needs me to add some integration for it.  Restricted codecs install should be easy to add.  LUKS encrypted hard disk are there but also needs some integration from me.  Encrypted home holders isn’t there and should be added.  Updating to latest packages on install should also be added.  It does seem to work with UEFI computers, but not with secure boot yet. Let me know if you spot any others.

I’ve only tested this on a simple virtual machine, so give it a try and see what breaks. Or if you want to switch back run apt install ubiquity-frontend-kde ubiquity-slideshow-neon''.

Screenshot_generic_2017-01-20_18:05:56
Screenshot_generic_2017-01-20_18:06:07
Screenshot_generic_2017-01-20_18:06:25
Screenshot_generic_2017-01-20_18:06:57
Screenshot_generic_2017-01-20_18:07:12
Screenshot_generic_2017-01-20_18:07:29
Screenshot_generic_2017-01-20_18:07:34
Screenshot_generic_2017-01-20_18:09:50
Screenshot_generic_2017-01-20_18:11:24

Get Yourself on www.kde.org

Google Code-in has just finished where school pupils do tasks to introduce themselves to open development.  I had one to update the screenshots on www.kde.org.  The KDE website is out of date in many ways but here’s a wee way to fix one part of it.  Despite me having about half a dozen students work on it there’s still some old screenshots there so if anyone wants the satisfaction of contributing to www.kde.org’s front page here’s an easy way.

www.kde.org has screenshots of all our apps but many still use the old KDE 4 Oxygen widget theme and icons.

For 10 screenshots which is using the old theme take a new screenshot using the new theme.

They can be checked out from Subversion here https://websvn.kde.org/trunk/www/sites/www/images/screenshots/ also provide one the resized screenshot which is 400 pixels wide exactly.

Keep the filenames the same and in lower case.

Upload as a single .zip or .tar.gz containing the screenshots with the right file name and a folder resized/ with the 400px screenshots

For bonus points you could go through the index file to make sure it’s current with KDE applications https://www.kde.org/applications/index.json

Plasma Wayland ISO

Plasma is nearing a new release and with 5.9 coming shortly we have the question of should we switch Neon to use Wayland by default for the Developer Unstable edition. To evaluate it I updated the Plasma Wayland ISO and found it pleasingly functional on VirtualBox.  Time to install this setup on my real hardware and see what breaks.

VirtualBox_neon_09_01_2017_17_58_35

KDE neon User LTS Edition Out Now

KDE Plasma 5.8 is designated an LTS edition with bugfixes and new releases being made for 18 months (rather than the normal four months).  This will please a category of user who don’t want new features on their desktop but do want it to keep working and bugs to be removed.  Because Neon aims to service Plasma and its users in every way we have now created the KDE neon User LTS Edition.

This comes with Plasma 5.8 LTS, updated for new bug fix releases (e.g. 5.8.5 is out at the end of this month) and will not change to Plasma 5.9 when they becomes available.  A common critisism of LTS editions is that it just means users get old versions with known bugs.  KDE neon User LTS Edition comes with the latest KDE Applications and it comes with the latest KDE Frameworks release and Qt 5.7, so all the KDE software we ship is the latest stable version.  Along with other KDE neon editions we’ll also ship the HWE updates for Linux and Mesa when they become available.

For those interested in archive details it’s

deb http://archive.neon.kde.org/user/lts xenial main

Switching from User Edition to User LTS Edition archive is unsupported but will likely work.


KDE Neon is so stable I completely forgot I was using it.

A recent Reddit post gave some pleasing feedback about KDE neon, allow me the indulgence of picking some pleasing quotes from it:

I feel like the KDE neon team has done such a great job with an out-of-the-box experience with this distro that it feels insanely polished.

Jep, I’m even using KDE neon at work. I’ve been able to simply focus on my tasks, and not worry about troubleshooting the OS.

KDE neon cured my distro hopping as well.

KDE neon is the bee’s knees.

Anyone else feel this last should become an official marketing slogan?

Upgrade for KDE neon Security Issue

Last month we moved the neon archive to a new server so packages got built on our existing server then uploaded to the new server.  Checking the config it seemed I’d made the nasty error of leaving it open to the world rather than requiring an ssh gateway to access the apt repository, so anyone scanning around could have uploaded packages.  There’s no reason to think that happened but the default in security is to be paranoid for any possibility.  The security advisory is out, the archives have been wiped and all packages in User rebuilt so upgrade now to get the new package builds, or for extra security do a reinstall.  The new User Edition ISO is out and I’ll update the website once that gets mirrored enough.  Developer Editions packages are being rebuild now and go directly into the archives so you should start seeing those appear shortly as they are built. Sorry for the hassle folks, you wouldn’t want us to just hide it I’m sure.

 

Appstream Generated

Appstream has had a long history of getting its very sensible features into the hands of users. It’s an XML format which describes applications so that projects such as KDE can ship files with their apps which give a name, description, translations of this and pretty screenshots.

The first step is getting the Appstream metainfo files into the applications. KDE has this in many places but not all, if you spot an application please add one. It’s been supported in Extra CMake Modules for a while but the install directly changed recently just to confuse matters.

Then your archive has to extract the appstream files, in Neon we use Appstream Generator written by the Appstream master Matthias Klumpp and Harald set up some time ago but it broke last month.  That meant we had to update to a new version so Scarlett had to add a load of new packages to Neon to get Appstream Generator to build and I had to work out how to debug D to convince it to work. Then we moved our archive to a new server for space and because it was fun so parts of the job which runs it had to been rewritten to work remotely.  Finally there’s a pesky bug which means it looks at the oldest package not the newest one so any problems with the Appstream files stay around forever.  So for now I deleted old packages.

So at least you can install Minuet from Discover, it gained an appstream file back in 16.04 but it was broken so we had to wait for 16.08 to get a working one.

discover-minuet

But wait, this infrastructure for package managers is fiddly. Discover is showing the most popular installed app as Dilbert cartoons, which makes no sense.  Turns out the popcon data for applications is made using fancy Docker scripts on an obscure server we’ve largely forgotten about but Cron doesn’t like Docker and doesn’t let it output anything when running even though the same command works fine when run manually.  So I regenerated the popcon data manually in the hope we can work out how to cron it later on.  And finally Discover is back showing popular apps and all the latest ones at that.  Sorry for the delay folks.

discover-popcon

Getting it to work in Neon developer editions is future work I fear.

 

KDE 1 neon LTS Released: 20 Years of Supporting Freedom

To celebrate KDE’s 20th birthday today, the great KDE developer Helio Castro has launched KDE 1, the ultimate in long term support software with a 20 year support period.

KDE neon has now, using the latest containerised continuous integration technologies released KDE1 neon Docker images for your friendly local devop to deploy.

Give it a shot with:

apt install docker xserver-xephyr
adduser <username> docker
<log out and in again>
Xephyr :1 -screen 1024×768 &
docker pull jriddell/kde1neon
docker run -v /tmp/.X11-unix:/tmp/.X11-unix jriddell/kde1neon

(The Docker image isn’t optimised at all and probably needs to download 10GB, have fun!)

Plasma 5.8 LTS now in KDE neon, Time to Look Again at Comprehensive Features; Gwenview Plugins Install

Plasma 5.8 LTS has been released, it’s time now to look again at Plasma’s comprehensive features.  Chris From the Linux Action Show voiced our Plasma 5.8 video so you can review the comprehensive features we’ve been polishing for the last couple of years and the shiny new ones in this release to make a desktop we’re proud to advocate to enthusiasts, home users, businesses and developers alike.


The KDE neon builders have been firing away this afternoon and Plasma 5.8 LTS is now available in the User Edition archive.  If you don’t already have KDE neon installed you can grab the latest User Edition ISO to install it on your hard disk.


A feature I’ve been wanting for ages in KDE is the ability to install plugins from within the application.  This was made more urgent when we added Gwenview in KDE neon and had to choose between either an empty Plugins menu or adding a dependency on Kipi Plugins which brought in Konqueror and several KDElibs 4 tools.

So I got round to coding the feature based on discussions I’d had previously and work on the Samba browser in Dolphin I’d done before.  Using Packagekit and Appstream libraries directly to find the package and install it.  But some reviewers convinced me to use an external app to care about the install.  So now all Gwenview does it launch the Appstream URL and wait until a plugin gets installed.  In Plasma’s case that means Discover starts up and uses Packagekit or whatever backend it’s set up with to install Kipi Plugins.  A nice bit of integration there. Future work would be to put this functionality in Kipi Plugins directly so all apps can use it without much effort.  Where else can KDE apps benefit from being able to install addons within the app?

Gwenview’s Kipi plugins installer now in master

 

In Defence for Permissive Licences; KDE licence policy update

In free software there’s a disappointing number of licences which are compatible in some cases and not in others.  We have a licence policy in KDE which exists to try to keep consistency of licences to ensure maximum re-usability of our code while still ensuring it remains as free software and companies can’t claim additional restrictions which do not exist on code we have generously licenced to them.

Our hero and (occasional chauvinist god character) Richard Stallman invented copyleft and the GNU GPL to ensure people receiving Free code could not claim additional restrictions which do not exist, if they did they lose the right to copy the code under that licence.

An older class of licence is the Permissive Licences, these include the BSD licence, MIT licence and X11 licences, each of which have multiple variants all of which say essentially “do whatever you like but keep this copyright licence included”.  They aren’t maintained so variants are created and interpretations of how they are applied in practice vary without an authority to create consensus.  But they’re short and easy to apply and many many projects are happy to do so.  However there’s some curious misconceptions around them.  One is that it allows you to claim additional restrictions to the code and require anyone you pass it onto to get a different licence from you.  This is nonsense, but it’s a myth which is perpetrated by companies who want to abuse other people’s generosity in licences and even by groups such as the FSF or SFLC who want to encourage everyone to use the GNU GPL.

Here’s the important parts of the MIT licence (modern variant)

Permission is hereby granted...
to deal in the Software without restriction...
subject to the following conditions:
The above copyright notice and this permission notice shall be include

It’s very clear that this does not give you licence to remove the licence, anyone who you pass this software on to, as source or binary or other derived form, still needs to have the same licence.  You don’t need to pass on the source code if it’s a binary, in which case it’s not free software, but you still need to pass on this licence.  It’s unclear if the licence is for patents as well as copyright but chances are it is.  You can add your own works to it and distribute that under a more restricted licence if you like, but again you still need to pass on this licence for the code you received it as.  You can even sublicence it, make a additional licence with more restrictions, but that doesn’t mean you can remove the Free licence, it explicitly says you can not.  Unlike the GPL there’s no penalty for breaking the licence, you can still use the licence if you want and in theory the copyright holder could sue you but in practice it’s just a lie and nobody will call you out and many people will even believe your lie.

Techy lawyer Kyle E. Mitchell has written an interesting line by line examination of the MIT licence which it’s well worth reading.  It’s a shame there’s no authority to stand up for these licences and most people who use such licences do so because they don’t much are about people making claims over their code.  But it’s important that we realise it doesn’t allow any such claims and it remains Free software no matter who’s servers it happens to have touched on its way to you.


I’m currently proposing some updates to the KDE licencing policy.  I’d like to drop use of the unmaintained FDL in docs and wikis in favour of Creative Commons ShareAlike Attribution 4.0 which is created for international use, well maintained, and would allow sharing text into our code (it’s compatible with GPL 3) and from Wikipedia and other wikis (which are CC 3).  Plus some other changes like allowing AGPL for web services.

Discussion on kde-community mailing list.

Diff to current.

 

KDevelop, Muon, Plasma 5.7.4

To celebrate the release of KDevelop 5 we’ve added KDevelop 5 to KDE neon User Edition.  Git Stable and Git Unstable builds are also in the relevant Developer Editions.

But wait.. that’s not all.. the package manager Muon seem to have a new maintainer so to celebrate we added builds in User Edition and Git Unstable Developer Edition.

Plasma 5.7.4 has been out for some time now so it’s well past time to get it into Neon, delayed by a move in infrastructure which caused the entire repository to rebuild.  All Plasma packages should be updated now in KDE neon User Edition.

Want to install it? The weekly User Edition ISO has been updated and looks lovely.