You are here

Planet Ubuntu

Subscribe to Feed Planet Ubuntu
Planet Ubuntu -
Përditësimi: 1 javë 1 ditë më parë

James Page: OpenStack Stein for Ubuntu 18.04 LTS

Mër, 17/04/2019 - 12:50md

The Ubuntu OpenStack team at Canonical is pleased to announce the general availability of OpenStack Stein on Ubuntu 18.04 LTS via the Ubuntu Cloud Archive. Details of the Stein release can be found here.

You can enable the Ubuntu Cloud Archive pocket for OpenStack Stein on Ubuntu 18.04 LTS installations by running the following commands:

   sudo add-apt-repository cloud-archive:stein    sudo apt update

The Ubuntu Cloud Archive for Stein includes updates for:

aodh, barbican, ceilometer, ceph (13.2.4), cinder, designate, designate-dashboard, glance, gnocchi, heat, heat-dashboard, horizon, ironic, keystone, magnum, manila, manila-ui, mistral, murano, murano-dashboard, networking-bagpipe, networking-bgpvpn, networking-hyperv, networking-l2gw, networking-odl, networking-ovn, networking-sfc, neutron, neutron-dynamic-routing, neutron-fwaas, neutron-lbaas, neutron-lbaas-dashboard, neutron-vpnaas, nova, nova-lxd, octavia, openstack-trove, openvswitch (2.11.0), panko, sahara, sahara-dashboard, senlin, swift, trove-dashboard, vmware-nsx, watcher, and zaqar.

For a full list of packages and versions please refer to the Stein UCA version report.

Python 3

The majority of OpenStack packages now run under Python 3 only; notable exceptions include Swift.  Python 2 packages are no longer provided for the majority of projects.

Branch package builds

If you would like to try out the latest updates to branches, we deliver continuously integrated packages on each upstream commit-ish via the following PPA’s:

   sudo add-apt-repository ppa:openstack-ubuntu-testing/rocky    sudo add-apt-repository ppa:openstack-ubuntu-testing/stein

Reporting bugs

If you have any issues please report bugs using the ‘ubuntu-bug’ tool to ensure that bugs get logged in the right place in Launchpad:

sudo ubuntu-bug nova-conductor

Thanks to everyone who has contributed to OpenStack Stein, both upstream and downstream. Special thanks to the Puppet OpenStack modules team and the OpenStack Charms team for their continued early testing of the Ubuntu Cloud Archive, as well as the Ubuntu and Debian OpenStack teams for all of their contributions.

Have fun and see you all for Train!



(on behalf of the Ubuntu OpenStack team)

Erich Eickmeyer: One Year Leading Ubuntu Studio

Mër, 17/04/2019 - 7:29pd
I hardly know how to describe this entire past year. If I had one word to describe it, that would be “surreal.” Just a little over a year ago, I answered a call to put together a council for Ubuntu Studio. The project leader at the time couldn’t commit the time to lead, and the project was failing. As someone who was using open source software for audio production at the time, and at the time using Fedora Jam, I saw Ubuntu Studio as too important of a project to let die. I just had no idea how dire the situation was, or how it had even ended up that way. With the release of 18.04 LTS Beta around the corner, I knew something had to be done, and fast. So, I jumped-in, feet first. Ubuntu Studio, as it turns out, was on life support. It hadn’t been worked on, save a few bugfixes here and there, for two years. Many considered it a dead project, but somehow, the plug never got pulled. I was determined to save it. I had many connections and sought a lot of advice. We got the council going, and since I was running the meetings, I became the chair. Then, I acted as the release manager. However, I wasn’t quite comfortable with signing-off on a release that would be supported for three years. I was advised by those already involved with the Ubuntu release team that it might be a good idea to have Ubuntu Studio 18.04 be a non-LTS. I presented this idea to the council, and they agreed. Ubuntu Studio 18.04 “Bionic Beaver” was released as a non-LTS. The community was unhappy with this decision since now that meant those that only use LTS, especially in professional applications, were feeling left out. Eventually we figured out a solution, but not until much later, and that became the Ubuntu Studio Backports PPA. During the 18.10 release cycle, we got the development ball rolling again. Len Ovens worked on a new version of Ubuntu Studio Controls that would do something that no other tool for configuring audio on Linux had been done before: adding/removing USB devices from the Jack Audio Connection Kit (Jack) as they are hotplugged, and allowing Jack to use more than one audio device simultaneously. It’s truly something that can revolutionize how audio is done with Linux. Eylul Dogruel made an amazing backdrop wallpaper, originally intended for 18.04. She and Thomas Pfundt helped with the Ubuntu Studio Wallpaper Contest, the winners of which landed in 18.10. We had a vision during that release cycle of adding an additional desktop environment. Unfortunately, that turned out to be more work than it was worth. So, we scrapped that idea and instead of bringing a new desktop environment to Ubuntu Studio, we decided the opposite should happen: bring Ubuntu Studio to the other desktop environments. This manifested in a repurposing of the Ubuntu Studio Metapackage Installer. Len and I worked on this, renamed it to the Ubuntu Studio Installer, and got something working for the 19.04 release. Now, Ubuntu Studio has become an operating system and a toolkit. Then there was the vision to add more tools to Ubuntu Studio and replace some old ones. The Calf Studio Gear plugins were outdated in 18.04 and 18.10. Working with Ross Gammon, we got that fixed upstream in Debian, which then trickled-down and landed in 19.04. Then there was the challenge to add Carla, an audio plugin host and patchbay, to the Ubuntu repositories. In the past this had been prohibitive. It took me almost a year, but I finally got it packaged (with the help of the upstream developer, Ross, and several others in the Ubuntu community). Now, it’s available in 19.04. Unfortunately, we had done all of this work, but had nobody to upload to the Ubuntu repositories. I started speaking out. When I got no response, I escalated things. Eventually, it got to a member of the technical board who, upon hearing that Ubuntu Studio had no uploaders, realized that it was not able to function as an official flavor. Remember that life support Ubuntu Studio was on? Ubuntu Studio had just gone “Code Blue.” Ubuntu Studio was about to die. Within a week, Ross and I were able to get upload privileges for the key parts of Ubuntu Studio. Then, two weeks later, Ross got upload privileges to the Ubuntu Studio Package Set, which is everything in Ubuntu Studio not shared with other flavors.  With that, Ubuntu Studio has made a big recovery. What’s next? Len and I agree that we’d like to make it so that nobody who runs Ubuntu Studio thinks they need to add the KXStudio repositories to have a complete audio setup. We want to keep making it a full-fledged audio, graphics, photography, and video workstation. We want to be the choice for creative-types everywhere. We just hope others want to join us on this journey. As for myself, I cannot tell you how much “Imposter Syndrome” I’ve experienced. Oftentimes, I don’t believe I’m deserving of such a high leadership position within the Ubuntu community. Me, and audio engineer / video producer / photographer from Microsoft’s back yard, would be leading the world’s most popular multimedia creation operating system. Surely, others are more qualified. Yet, here I am. It’s a good thing others believe in me, even when I can’t. So a special thanks to those people (in no particular order): Len Ovens, Eylul Dogruel, Thomas Pfundt, Set Hallstrom, Ross Gammon, Simon Quigley, Valorie Zimmerman, Dustin Krysak, Martin Wimpress, Alan Pope, Jeremy Bicha, Walter Lapchynski, Mathieu Truedel-Lapierre, Thomas Ward, Keefe Bieggar, and anybody else I’ve missed. And of course, thanks to my wife and son who have had to put up with me though all of this geeking-out. Here’s to another year.

Jamie Strandboge: Cloud images, qemu, cloud-init and snapd spread tests

Mar, 16/04/2019 - 6:36md

It is useful for testing to want to work with official cloud images as local VMs. Eg, when I work on snapd, I like to have different images available to work with its spread tests.

The autopkgtest package makes working with Ubuntu images quite easy:

$ sudo apt-get install qemu-kvm autopkgtest
$ autopkgtest-buildvm-ubuntu-cloud -r bionic # -a i386
# and to integrate into spread
$ mkdir -p ~/.spread/qemu
$ mv ./autopkgtest-bionic-amd64.img ~/.spread/qemu/ubuntu-18.04-64.img
# now can run any test from 'spread -list' starting with
# 'qemu:ubuntu-18.04-64:'

This post isn’t really about autopkgtest, snapd or spread specifically though….

I found myself wanting an official Debian unstable cloud image so I could use it in spread while testing snapd. I learned it is easy enough to create the images yourself but then I found that Debian started providing raw and qcow2 cloud images for use in OpenStack and so I started exploring how to use them and generalize how to use arbitrary cloud images.

General procedure

The basic steps are:

  1. obtain a cloud image
  2. make copy of the cloud image for safekeeping
  3. resize the copy
  4. create a seed.img with cloud-init to set the username/password
  5. boot with networking and the seed file
  6. login, update, etc
  7. cleanly shutdown
  8. use normally (ie, without seed file)

In this case, I grabbed the ‘debian-testing-openstack-amd64.qcow2’ image from and verified it. Since this is based on Debian ‘testing’ (current stable images are also available), when I copied it I named it accordingly. Eg, I knew for spread it needed to be ‘debian-sid-64.img’ so I did:

$ cp ./debian-testing-openstack-amd64.qcow2 ./debian-sid-64.img

I then resized it. I picked 20G since I recalled that is what autopkgtest uses:

$ qemu-img resize debian-sid-64.img 20G

These are already setup for cloud-init, so I created a cloud-init data file (note, the ‘#cloud-config’ comment at the top is important):

$ cat ./debian-data
password: debian
chpasswd: { expire: false }
ssh_pwauth: true

and a cloud-init meta-data file:

$ cat ./debian-meta-data
instance-id: i-debian-sid-64
local-hostname: debian-sid-64

and fed that into cloud-localds to create a seed file:

$ cloud-localds -v ./debian-seed.img ./debian-data ./debian-meta-data

Then start the image with:

$ kvm -M pc -m 512 -smp 1 -monitor pty -nographic -hda ./debian-sid-64.img -drive "file=./debian-seed.img,if=virtio,format=raw" -net nic -net user,hostfwd=tcp:

(I’m using the invocation that is reminiscent of how spread invokes it; feel free to use a virtio invocation as described by Scott Moser if that better suits your environment.)

Here, the “59355” can be any unused high port. The idea is after the image boots, you can login with ssh using:

$ ssh -p 59355 debian@

Once logged in, perform any updates, etc that you want in place when tests are run, then disable cloud-init for the next boot and cleanly shutdown with:

$ sudo touch /etc/cloud/cloud-init.disabled
$ sudo shutdown -h now

The above is the generalized procedure which can hopefully be adapted for other distros that provide cloud images, etc.

For integrating into spread, just copy the image to ‘~/.spread/qemu’, naming it how spread expects. spread will use ‘-snapshot’ with the VM as part of its tests, so if you want to update the images later since they might be out of date, omit the seed file (and optionally ‘-net nic -net user,hostfwd=tcp:’ if you don’t need port forwarding), and use:

$ kvm -M pc -m 512 -smp 1 -monitor pty -nographic -hda ./debian-sid-64.img

UPDATE: the above is confirmed to work with Fedora 28 (though, if using the resulting image to test snapd, then be sure to ‘yum install kernel-modules ns strace’ in the image).

Extra steps for Debian cloud images without default e1000 networking

Unfortunately, for the Debian cloud images, there were additional steps because spread doesn’t use virtio, but instead the default the e1000 driver, and the Debian cloud kernel doesn’t include this:

$ grep E1000 /boot/config-4.19.0-4-cloud-amd64
# CONFIG_E1000 is not set
# CONFIG_E1000E is not set

So… when the machine booted, there was no networking. To adjust for this, I blew away the image, copied from the safely kept downloaded image, resized then started it with:

$ kvm -M pc -m 512 -smp 1 -monitor pty -nographic -hda $HOME/.spread/qemu/debian-sid-64.img -drive "file=$HOME/.spread/qemu/debian-seed.img,if=virtio,format=raw" -device virtio-net-pci,netdev=eth0 -netdev type=user,id=eth0

This allowed the VM to start with networking, at which point I adjusted /etc/apt/sources.list to refer to ‘sid’ instead of ‘buster’ then ran apt-get update then apt-get dist-upgrade to upgrade to sid. I then installed the Debian distro kernel with:

$ sudo apt-get install linux-image-amd64

Then uninstalled the currently running kernel with:

$ sudo apt-get remove --purge linux-image-cloud-amd64 linux-image-4.19.0-4-cloud-amd64

(I used ‘dpkg -l | grep linux-image’ to see the cloud kernels I wanted to remove). Removing the package that provides the currently running kernel is a dangerous operation for most systems, so there is a scary message to abort the operation. In our case, it isn’t so scary (we can just try again ;) and this is exactly what we want to do.

Next I cleanly shutdown the VM with:

$ sudo shutdown -h now

and try to start it again like with the ‘general procedures’, above (I’m keeping the seed file here because I want cloud-init to be re-run with the e1000 driver):

$ kvm -M pc -m 512 -smp 1 -monitor pty -nographic -hda ./debian-sid-64.img -drive "file=./debian-seed.img,if=virtio,format=raw" -net nic -net user,hostfwd=tcp:

Now I try to login via ssh:
$ ssh -p 59355 debian@
debian@'s password:
Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
Last login: Tue Apr 16 16:13:15 2019
debian@debian:~$ sudo touch /etc/cloud/cloud-init.disabled
debian@debian:~$ sudo shutdown -h now
Connection to closed.

While this VM is no longer the official cloud image, it is still using the Debian distro kernel and Debian archive, which is good enough for my purposes and at this point I’m ready to use this VM in my testing (eg, for me, copy ‘debian-sid-64.img’ to ‘~/.spread/qemu’).

Raphaël Hertzog: Freexian’s report about Debian Long Term Support, March 2019

Mar, 16/04/2019 - 12:23md

Like each month, here comes a report about the work of paid contributors to Debian LTS.

Individual reports

In March, 204 work hours have been dispatched among 13 paid contributors. Their reports are available:

  • Abhijith PA did 14 hours (out of 14 hours allocated).
  • Adrian Bunk did 8 hours (out of 8 hours allocated).
  • Ben Hutchings did 22.5 hours (out of 20 hours allocated plus 16.5 extra hours from February, thus carrying over 14 hours to April).
  • Brian May did 10 hours (out of 10 hours allocated).
  • Chris Lamb did 18 hours (out of 18 hours allocated).
  • Emilio Pozuelo Monfort did 26 hours (out of 29.5 hours allocated + 2.5 extra hours from February, thus carrying over 6h to April).
  • Hugo Lefeuvre did 20 hours (out of 20 hours allocated).
  • Markus Koschany did 29.5 hours (out of 29.5 hours allocated).
  • Mike Gabriel did 14 hours (out of 10 hours allocated + 4 extra hours from February).
  • Ola Lundqvist did 8.5 hours (out of 8 hours allocated + 2 extra hours from last month, thus carrying over 1.5h to April).
  • Roberto C. Sanchez did 12 hours (out of 12 hours allocated).
  • Sylvain Beucler did 29.5 hours (out of 29.5 hours allocated).
  • Thorsten Alteholz did 29.5 hours (out of 29.5 hours allocated).
Evolution of the situation

In March we had one new contributor, Sylvain Beucler, though we lost Antoine Beaupré. Thankfully we also gained Jonas Meurer starting in April, yet we are are still very much looking for new contributors. Please contact Holger if you are interested to become a paid LTS contributor.

On a positive note, we are also pleased to welcome a new French university among LTS sponsors: Université Grenoble Alpes.

The security tracker currently lists 36 packages with a known CVE and the dla-needed.txt file has 39 packages needing an update.

Thanks to our sponsors

New sponsors are in bold.

No comment | Liked this article? Click here. | My blog is Flattr-enabled.

Stephen Kelly: Debugging Clang AST Matchers

Mar, 16/04/2019 - 10:29pd

Last week I flew to Brussels for EuroLLVM followed by Bristol for ACCU.

At both conferences I presented the work I’ve been doing to make it easier for regular C++ programmers to perform ‘mechanical’ bespoke refactoring using the clang ASTMatchers tooling. Each talk was prepared specifically for the particular audience at that conference, but both were very well received. The features I am working on require changes to the upstream Clang APIs in order to enable modern tooling, so I was traveling to EuroLLVM to try to build some buy-in and desire for those features.

I previously delivered a talk on the same topic about AST Matchers at code::dive 2018. This week I presented updates to the tools and features that I have worked on during the 6 months since.

One of the new features I presented is a method of debugging AST Matchers.

Part of the workflow of using AST Matchers is an iterative development process. For example, the developer wishes to find functions of a particular pattern, and creates and ever-more-complex matcher to find all desired cases without false-positives. As the matcher becomes more complex, it becomes difficult to determine why a particular function is not found as desired.

The debugger features I wrote for AST Matchers intend to solve that problem. It is now possible to create, remove and list breakpoints, and then enable debugger output to visualize the result of attempting to match at each location. A simple example of that is shown here.

When using a larger matcher it becomes obvious that the process of matching is short-circuited, meaning that the vertically-last negative match result is the cause of the overall failure to match the desired location. The typical workflow with the debugger is to insert break points on particular lines, and then remove surplus breakpoints which do not contribute useful output.

This feature is enabled by a new interface in the Clang AST Matchers, but the interface is also rich enough to implement some profiling of AST Matchers in the form of a hit counter.

Some matchers (and matcher sub-trees) are slower/more expensive to run than others. For example, running a matcher like `matchesName` on every AST node in a translation unit requires creation of a regular expression object, and comparing the name of each AST node with the regular expression. That may result in slower runtime than trimming the search tree by checking a parameter count first, for example.

Of course, the hit counter does not include timing output, but can give an indication of what might be relevant to change. Comparison of different trees of matchers can then be completed with a full clang-tidy check.

There is much more to say about both conferences and the tools that I demoed there, but that will be for a future log post. I hope this tool is useful and helps discover and debug AST Matchers!

The Fridge: Ubuntu Weekly Newsletter Issue 574

Hën, 15/04/2019 - 11:24md

Welcome to the Ubuntu Weekly Newsletter, Issue 574 for the week of April 7 – 13, 2019. The full version of this issue is available here.

In this issue we cover:

The Ubuntu Weekly Newsletter is brought to you by:

  • Krytarik Raido
  • Bashing-om
  • Chris Guiver
  • Wild Man
  • And many others

If you have a story idea for the Weekly Newsletter, join the Ubuntu News Team mailing list and submit it. Ideas can also be added to the wiki!

Except where otherwise noted, this issue of the Ubuntu Weekly Newsletter is licensed under a Creative Commons Attribution ShareAlike 3.0 License

Jonathan Carter: Help test Debian Live

Sht, 13/04/2019 - 10:38md


During the stretch release period, it became apparent that very few people had been testing Debian Live, and some nasty bugs were discovered only during final release testing. The final stretch images for Debian live wasn’t quite up to the quality the Debian community deserved, and it lead to Steve McIntyre asking “IMPORTANT: Do live Debian images have a future?“.

I decided to get involved and have been doing testing and bug fixes throughout the buster release cycle, and with today’s builds, I think we’re at a point where we have something good that’s ready for wide-scale testing.

The Buster live images come with something new that a bunch of other distributions have also adopted, which is the Calamares installer. Calamares is an independent installer project (They call it “The universal installer framework”) which offers a Qt based interface for installing a system. It doesn’t replace debian-installer on the live images, rather, it serves a different audience. Calamares is really easy to use, with friendly guided partitioning and really simple full-disk encryption setup. It doesn’t cover all the advanced features of debian-installer (although it very recently got RAID support) and it doesn’t have an unattended install mode either. However, for 95%+ of desktop and laptop users, Calamares is a much easier way to get a system installed, which makes it very appropriate for live systems. For anyone who needs anything more complicated, or who’s doing a mass-install, debian-installer is still available in both text and GUI forms.

An image is worth a thousand words, so here’s a bunch of screenshots showing what Calamares looks like on our Gnome live image:

Calamares Intro screen. Select timezone and localisation. Select keyboard model, layout and variant. Partition disk and configure encryption. Configure user and password. Confirm choices. Wait for installer to do the rest. Reboot or continue live environment.

Download and test

Today’s images are available with the Cinnamon, Gnome, KDE, LXDE, LXqt, Mate, standard (text-only) and Xfce desktop environments for:

I haven’t yet tested the i386 images myself, so anything is possible there. We’re also planning an upcoming beta (well, it will be called a release candidate but that’s because it will be RC1 of debian-installer) so if anyone has some time to do some testing that would be great. It’s especially useful to test on a wide variety of supported hardware and ensure that things work as they should. We’re already looking a lot better than they last cycle, but that’s no reason to be overconfident.

Please file bugs for major problems or hardware support issues. Feature requests bugs or similar bugs aren’t really useful at this stage.

More screenshots

This wasn’t my personal first choice for default wallpaper, but I like its colours and they work really well with all the other elements.

ISO splash image when booting in legacy mode

GRUB boot loader Plymouth boot splash GDM Login Screen
Gnome desktop

What about bullseye?

The next Debian release, Debian 11, will be code named ‘bullseye’.

I’m planning to schedule a BoF at DebConf19 for Debian Live where we cover at least the following:

  • Reduce the number of i386 images. We currently have 8 of them and we probably just need one or two light variants for the i386 machines that’s still supported by Debian.
  • Get the desktop teams more involved. And ideally, have them test and sign off for their live variant for alphas, betas and the final release. If you’re a maintainer of a desktop environment, it would be great if you could attend this session.
  • Reduce the number of paper cuts in our live media. We’ve made some progress on these during this cycle, but there are some minor annoyances that remain that we’d like to completely eliminate next time.

Well, if you got this far, thanks for reading! You can also join us on irc on #debian-live and #debian-boot on the oftc network if you have any questions.

Costales: Podcast Ubuntu y otras hierbas S03E04: Ubuntu en Windows 10 y Ley de copyright Europea

Sht, 13/04/2019 - 6:31md
Javier Teruelo y Marcos Costales conversaremos sobre qué implica que se pueda ejecutar el bash de Ubuntu en Windows 10 y sobre la nueva Ley de copyright de la Unión Europea, con sus polémicos artículos.
S03E04Escúchalo en:

Ubuntu Podcast from the UK LoCo: S12E01 – Bombjack

Enj, 11/04/2019 - 4:00md

We’ve been playing with PCI Express to SATA SSD adapters and we discuss UBPorts becoming a foundation, Ubuntu 14.04 entering ESM, Ubuntu 19.04 beta, Ubuntu MATE 18.04 for the Raspberry Pi and GPD Pockets. Plus we round up some community events and news headlines.

It’s Season 12 Episode 01 of the Ubuntu Podcast! Alan Pope, Mark Johnson and Martin Wimpress are connected and speaking to your brain.

In this week’s show:

That’s all for this week! You can listen to the Ubuntu Podcast back catalogue on YouTube. If there’s a topic you’d like us to discuss, or you have any feedback on previous shows, please send your comments and suggestions to or Tweet us or Toot us or Comment on our Facebook page or comment on our sub-Reddit.

Timo Aaltonen: Intel NEO OpenCL driver for Disco

Mar, 09/04/2019 - 6:11md

The past few months I’ve been packaging the bits needed for Intel’s new OpenCL driver, which they call NEO. The packages are now finally ready, you can enable ‘ppa:canonical-x/x-staging’ and install ‘intel-opencl’ on Disco. After installing it this is what ‘clinfo’ says on my laptop:

Number of platforms 1 Platform Name Intel(R) OpenCL HD Graphics Platform Vendor Intel(R) Corporation Platform Version OpenCL 2.1 Platform Profile FULL_PROFILE Platform Extensions cl_khr_3d_image_writes cl_khr_byte_addressable_store cl_khr_fp16 cl_khr_depth_images cl_khr_global_int32_base_atomics cl_khr_global_int32_extended_atomics cl_khr_icd cl_khr_image2d_from_buffer cl_khr_local_int32_base_atomics cl_khr_local_int32_extended_atomics cl_intel_subgroups cl_intel_required_subgroup_size cl_intel_subgroups_short cl_khr_spir cl_intel_accelerator cl_intel_media_block_io cl_intel_driver_diagnostics cl_intel_device_side_avc_motion_estimation cl_khr_priority_hints cl_khr_throttle_hints cl_khr_create_command_queue cl_khr_fp64 cl_khr_subgroups cl_khr_il_program cl_intel_spirv_device_side_avc_motion_estimation cl_intel_spirv_media_block_io cl_intel_spirv_subgroups cl_khr_spirv_no_integer_wrap_decoration cl_khr_mipmap_image cl_khr_mipmap_image_writes cl_intel_planar_yuv cl_intel_packed_yuv cl_intel_motion_estimation cl_intel_advanced_motion_estimation cl_intel_va_api_media_sharing Platform Host timer resolution 1ns Platform Extensions function suffix INTEL Platform Name Intel(R) OpenCL HD Graphics Number of devices 1 Device Name Intel(R) Gen9 HD Graphics NEO Device Vendor Intel(R) Corporation Device Vendor ID 0x8086 Device Version OpenCL 2.1 NEO Driver Version 1.0.0 Device OpenCL C Version OpenCL C 2.0 Device Type GPU Device Profile FULL_PROFILE Device Available Yes Compiler Available Yes Linker Available Yes Max compute units 24 Max clock frequency 1100MHz Device Partition (core) Max number of sub-devices 0 Supported partition types None Supported affinity domains (n/a) Max work item dimensions 3 Max work item sizes 256x256x256 Max work group size 256 Preferred work group size multiple 32 Max sub-groups per work group 32 Sub-group sizes (Intel) 8, 16, 32 Preferred / native vector sizes char 16 / 16 short 8 / 8 int 4 / 4 long 1 / 1 half 8 / 8 (cl_khr_fp16) float 1 / 1 double 1 / 1 (cl_khr_fp64) Half-precision Floating-point support (cl_khr_fp16) Denormals Yes Infinity and NANs Yes Round to nearest Yes Round to zero Yes Round to infinity Yes IEEE754-2008 fused multiply-add Yes Support is emulated in software No Single-precision Floating-point support (core) Denormals Yes Infinity and NANs Yes Round to nearest Yes Round to zero Yes Round to infinity Yes IEEE754-2008 fused multiply-add Yes Support is emulated in software No Correctly-rounded divide and sqrt operations Yes Double-precision Floating-point support (cl_khr_fp64) Denormals Yes Infinity and NANs Yes Round to nearest Yes Round to zero Yes Round to infinity Yes IEEE754-2008 fused multiply-add Yes Support is emulated in software No Address bits 64, Little-Endian Global memory size 13253832704 (12.34GiB) Error Correction support No Max memory allocation 4294959104 (4GiB) Unified memory for Host and Device Yes Shared Virtual Memory (SVM) capabilities (core) Coarse-grained buffer sharing Yes Fine-grained buffer sharing No Fine-grained system sharing No Atomics No Minimum alignment for any data type 128 bytes Alignment of base address 1024 bits (128 bytes) Preferred alignment for atomics SVM 64 bytes Global 64 bytes Local 64 bytes Max size for global variable 65536 (64KiB) Preferred total size of global vars 4294959104 (4GiB) Global Memory cache type Read/Write Global Memory cache size 524288 (512KiB) Global Memory cache line size 64 bytes Image support Yes Max number of samplers per kernel 16 Max size for 1D images from buffer 268434944 pixels Max 1D or 2D image array size 2048 images Base address alignment for 2D image buffers 4 bytes Pitch alignment for 2D image buffers 4 pixels Max 2D image size 16384x16384 pixels Max planar YUV image size 16384x16352 pixels Max 3D image size 16384x16384x2048 pixels Max number of read image args 128 Max number of write image args 128 Max number of read/write image args 128 Max number of pipe args 16 Max active pipe reservations 1 Max pipe packet size 1024 Local memory type Local Local memory size 65536 (64KiB) Max number of constant args 8 Max constant buffer size 4294959104 (4GiB) Max size of kernel argument 1024 Queue properties (on host) Out-of-order execution Yes Profiling Yes Queue properties (on device) Out-of-order execution Yes Profiling Yes Preferred size 131072 (128KiB) Max size 67108864 (64MiB) Max queues on device 1 Max events on device 1024 Prefer user sync for interop Yes Profiling timer resolution 83ns Execution capabilities Run OpenCL kernels Yes Run native kernels No Sub-group independent forward progress Yes IL version SPIR-V_1.0 SPIR versions 1.2 printf() buffer size 4194304 (4MiB) Built-in kernels block_motion_estimate_intel;block_advanced_motion_estimate_check_intel;block_advanced_motion_estimate_bidirectional_check_intel; Motion Estimation accelerator version (Intel) 2 Device-side AVC Motion Estimation version 1 Supports texture sampler use Yes Supports preemption No Device Extensions cl_khr_3d_image_writes cl_khr_byte_addressable_store cl_khr_fp16 cl_khr_depth_images cl_khr_global_int32_base_atomics cl_khr_global_int32_extended_atomics cl_khr_icd cl_khr_image2d_from_buffer cl_khr_local_int32_base_atomics cl_khr_local_int32_extended_atomics cl_intel_subgroups cl_intel_required_subgroup_size cl_intel_subgroups_short cl_khr_spir cl_intel_accelerator cl_intel_media_block_io cl_intel_driver_diagnostics cl_intel_device_side_avc_motion_estimation cl_khr_priority_hints cl_khr_throttle_hints cl_khr_create_command_queue cl_khr_fp64 cl_khr_subgroups cl_khr_il_program cl_intel_spirv_device_side_avc_motion_estimation cl_intel_spirv_media_block_io cl_intel_spirv_subgroups cl_khr_spirv_no_integer_wrap_decoration cl_khr_mipmap_image cl_khr_mipmap_image_writes cl_intel_planar_yuv cl_intel_packed_yuv cl_intel_motion_estimation cl_intel_advanced_motion_estimation cl_intel_va_api_media_sharing NULL platform behavior clGetPlatformInfo(NULL, CL_PLATFORM_NAME, ...) Intel(R) OpenCL HD Graphics clGetDeviceIDs(NULL, CL_DEVICE_TYPE_ALL, ...) Success [INTEL] clCreateContext(NULL, ...) [default] Success [INTEL] clCreateContextFromType(NULL, CL_DEVICE_TYPE_DEFAULT) Success (1) Platform Name Intel(R) OpenCL HD Graphics Device Name Intel(R) Gen9 HD Graphics NEO clCreateContextFromType(NULL, CL_DEVICE_TYPE_CPU) No devices found in platform clCreateContextFromType(NULL, CL_DEVICE_TYPE_GPU) Success (1) Platform Name Intel(R) OpenCL HD Graphics Device Name Intel(R) Gen9 HD Graphics NEO clCreateContextFromType(NULL, CL_DEVICE_TYPE_ACCELERATOR) No devices found in platform clCreateContextFromType(NULL, CL_DEVICE_TYPE_CUSTOM) No devices found in platform clCreateContextFromType(NULL, CL_DEVICE_TYPE_ALL) Success (1) Platform Name Intel(R) OpenCL HD Graphics Device Name Intel(R) Gen9 HD Graphics NEO ICD loader properties ICD loader Name OpenCL ICD Loader ICD loader Vendor OCL Icd free software ICD loader Version 2.2.11 ICD loader Profile OpenCL 2.1

I’ll check with Intel if some of the ‘no devices found’ are to be expected or not..

It’s still possible these might end up in the 19.04 release, we’ll see. They’re also uploaded to Debian, though with the Buster release keeping everyone busy I’m sure it’ll take some time to get them all through the NEW queue.

NOTE: if you already have the stack installed from Intel’s github repo, please uninstall it first. Otherwise there will be file conflicts since the package names won’t match.

Jono Bacon: Career Guidance For Young People: A Retrospective

Mar, 09/04/2019 - 12:13pd

Last month I was invited to go and speak at a school careers event. My audience was a collection of young people stuck at that tough intersection between being at school and starting to think about what they want to do for a career. I don’t envy them.

While I was asked to talk about my career and the various trappings of consulting, speaking, and writing, I told them I didn’t think this was the most important thing for us to talk about. Instead, I wanted to share how the path we often take to our careers is important, but there are so many things outside that path that can play a critical role in our broader success and overall happiness.

When I was 16 myself, I had a vague idea about what I wanted to do, but had no concrete idea of where I was going, and how I would get wherever I needed to be. Today I want to share my own path and how some critical things outside of my education played a formative role in the career I have today. My hope is that some young people may read this and find it both informative and reassuring.

Somewhat amusingly, I found my National Record Of Achievement, which includes reports from my teachers around the time I was 16-years-old. I found it pretty amusing, so I am some including a few samples for you to poke fun at me over.

The Path

When I was growing up in England, the map to your career was pretty consistently shared by parents and teachers alike. You go to school, work hard, and get good GCSEs. Then, you do your A-Levels for two years, work hard, and get more good grades. This earns you enough points to get into a decent university. You then slog through your degree over the next four years (while drinking copious amounts of cheap lager), and then go out and get a job. If you are a glutton for punishment, you bolt on a masters degree.

This path posed a small problem for me. While I was a well-behaved, attentive, courteous student at school, I wasn’t particularly motivated by the subjects there. Some topics, such as English, IT, and Physics captured my interest, but I was bored to tears by hours of dreary Geography, German, Biology, and Maths. Oh, and don’t even get me started on PE. Weirdly, for someone about as religious as a small chicken, I was fascinated with religious studies, less about the mystical stories effused in biblical tales, but more for the anthropology of how human societies form.

According to 23 and Me, I have the muscle type of an “elite athlete”. According to my PE teacher, I couldn’t kick a ball to save my life.

The outcome here was somewhat unsurprising. I got pretty average grades, mainly Cs, for the subjects I studied. For the ones I was interested in, I got a smattering of Bs, and for the ones I didn’t care about I got Ds and Es. I don’t think I got a single A in my entire school career.

Now, this is not to suggest I didn’t understand the importance of school or that I didn’t enjoy it. I took school seriously and I generally had a good time going. Similarly, for any young people reading this, school is really important and you should give it your best. My parents were, and have always been, unbelievable supportive. They echoed this mantra, “All we want you to do is to try your best and put as much effort in as you can”.

Don’t ask me directions in German.

Now, while all this was happening, I had two significant things going on outside of school.

Firstly, I was delving more and more into the music rabbit-hole. I was discovering different styles of music, grabbing anything I could, from the Rolling Stones, to Iron Maiden, to Metallica, and beyond. I was learning and playing guitar, and I started my own band at school. My mind was obsessed with music, discovering new bands, learning how to be a better player, and playing with other musicians.

About as cool as a blazing furnace.

Secondly, I was fascinated by technology, and I was lucky enough to have access to the Internet at home. Back in the dark ages in the UK, we had to pay 10p/minute to connect online. I had a genius idea: for every minute I spend online, I will pop one crisp 10p piece into a box next to the computer. My parents agreed to this optimistic arrangement, fully supporting their son discovering and exploring this new technology landscape. The bill came in: £280 of charges, six quid in the box. My 16-year-old self was in for a throaty bollocking, and rightly so.

As I descended into A-Levels, which are a notable step up in work and complexity from GCSEs, my interest in music and tech outside of school also escalated. My evenings were dominated by rehearsing and playing gigs in my first metal band, Conspiracy, and twice a week I attended night school to learn C programming with my brother, Simon.

When I completed my A-Levels, my grades were…well, nothing to boast about. Two Cs, a D, and an N. Curious what an N is? I think it means I spelled my bloody name wrong on the exam paper. I was disappointed. I genuinely worked hard, but I struggled to get the results I wanted.

My teacher, Mr Ashley, offered enormous confidence in me when I was at school. It played a huge role in my interest in tech.

Interestingly though, my IT teacher took me aside one day and told me he saw a lot of potential in me. He offered to teach me some more advanced topics after school, which I eagerly jumped at. Slowly I was starting to see where my interest and potential was coalescing.

My A-Levels performance limited my options for University. Given my interest in tech, I ended up picking Interactive Multimedia Communication at Wolverhampton University. While a relatively bog-standard university, the course was founded by a well respected professor in the field. It focused on the (at the time) new era of multimedia, incorporating digital video, audio, and optical media.

The Game Changer

Shortly before I packed up and went to university, my brother Simon introduced me to Linux and open source. It might sound hyperbolic, but it completely flipped my world upside down. Here was a technology, produced and powered by people who work together openly to improve it, and anyone could roll their sleeves up and get involved. This didn’t just fascinate me, it gave me a real sense of purpose.

The next four years were a blur. I started a website to bring the UK Linux community together, went to university, and started the Wolverhampton Linux Users Group. I met new and interesting people, and started contributing to projects such as KDE and GNOME. I wrote little bits of code and put them online. I organized conference booths, wrote documentation, and started speaking at events. I was fueled by this work because it had meaning, and that meaning was bolstered by a global community all wired up with the same vision.

Exhibiting KDE at a conference in Birmingham. Also, hair.

At a conference in London, I had a non-zero number of beers with two editors who were launching a new Linux magazine called Linux Format. I plucked up the courage to ask if I could write an article and they said, “Yes, but if it is shit, we won’t publish it”. This seemed like a fair arrangement.

The article passed muster and it went into the magazine. I started writing more and more and when I completed university, I decided to be a full time writer. It didn’t pay much, but I loved what I did, and it earned enough money to support the relatively frugal life my girlfriend and I lived. This is when I got the first taste of being able to devote my career to something I loved, and it was an amazing feeling.

One of the articles I wrote was about a newly minted organization in Birmingham called OpenAdvantage. They were focused on training people in the West Midlands in Open Source; especially focused on manual laborers re-skilling in technology as more and more factories moved out of the area. After the article was published I was invited to lunch by one of the founders, Paul Cooper, where he somewhat surprisingly offered me a job to be a consultant there.

The Ubuntu Developer Summit.

I took the job and spent two years doing a range of things I had never done: consulting, training, learning new technologies, and more. While nerve-wracking at first, it gave me a taste for jumping in the deep end and figuring things out as I went. What followed were careers at Canonical, XPRIZE, GitHub, and then onto my current consulting business.


When I reflect back on my career, it had the key elements of the ascribed career path from GCSEs to university, but what I didn’t know was that so much of what we do outside of that path plays such a key role in our forward momentum. I am thankful that my parents were so supportive in both these interests inside and outside of school.

This made me realize that a career is really a series of fortuitous events glued together and the more events you can introduce, the more opportunities can manifest. If my brother had not introduced me to Linux, I would have never have started participating in open source, and would have never been at the conference where I met the editors. This means I would have never have written the article about OpenAdvantage, and never led to meeting Paul Cooper and taking the role there.

When I shared this story to the kids at the career day, I summarized much of this hindsight as five key patterns that I wish I had known about at their age.

1. Do what you love

It may seem obvious, but our motivation is fueled by what we love. If we focus on building a career out of the things that interest and motivate us, we can chart an ultimately fulfilling and happy life.

For example, I have always loved working with people, writing, and speaking. I love technology and how it can enable people to work together. I am passionate about the power of communities and figuring out the blueprint for how we build and sustain them.

Now, figuring out what you love is easier said than done when you are 16. Take some time to really think about what you enjoy, what motivates you, and what you look forward to doing. While your career will never be a total bed of roses, if you can wire it up to focus on the things you love, you will be much more fulfilled in your work.

2. Always push yourself, and find room to grow and improve

I think one of the challenges so many young people face is that they assess their capabilities on a binary scale: either I am good or bad at that skill or activity. Life doesn’t really work that way: our capabilities are more a sliding scale, and when we learn, practice, and evolve, the scale slides in the right direction.

This happens with everything. Whether you are learning how to code, play the guitar, how to collaborate in teams, be a manager, manage your finances, get fit, or anything else. When we see every new activity as a sliding scale where we start near the bottom and gradually push ourselves further and further up the scale as we practice, it gives us a sense of confidence and accomplish. To do this we need to know that the journey starts at the beginning and progress as we invest more time and practice into it.

Fitness instructors like to get their students into a state of feeling “comfortably uncomfortable”. Being on the edge of what you can accomplish and what is new and different is where this growth tends to happen. Always be proud of your accomplishments while also seeing how much further you can go.

3. Don’t get beaten down by yourself or others

It is easy to dwell on our failures. We all get it wrong sometimes. What’s more, elements such as Imposter Syndrome (see my article about it and how to manage it) can further exacerbate our self-criticism.

Take it easy on yourself. We are all eternal students and it doesn’t matter whether you have been in your career for 50 minutes or 50 years, we are all learning. Similarly, you see all those CEOs, COOs, CTOs, VPs, Founders, Presidents, and Board Members? They are all still learning and self-conscious about their performance too.

See every day as an opportunity for learning and growth, and an opportunity for an objective view of your progress. Acknowledge your capabilities and flaws, and then explore ways to keep growing. Letting yourself or others get your down doesn’t help anyone.

4. Your life is dictated by your vision of the future

When you are younger there are a lot of questions about, “What do you want to be?”

Sometimes it can be difficult to see a vision of your future while also figuring out what is realistically possible. You can probably easily see a vision of a restaurant waiter, but what about an actor, a founder, a professional musician, or a writer? Those can often seem like much further away realities.

Here’s my take: go big or go home. If you shoot for the moon and don’t quite make it, you will (a) get further than you thought you would, and (b) you will stretch yourself and your potential further too. It sounds like a cliche, but dream big, and it will give you the excitement and potential to get there.

5. The world is full of mentors, if you look for them

I learned this too late in life. We are surrounded by people who have enormous expertise and experience and who are often quite happy to share it.

Just look at your friends, families, teachers, and parents. Just look at the huge array of books, YouTube videos, training courses, and articles online. Just look at online communities, forums, and message boards.

There is so much insight out there. If you don’t have the answers to something you can find it quicker and more easily than ever before. Similarly, if you don’t know how to get started or want a gut check on your thinking, there are so many people who can help.

Here’s the key: we need to open our minds to always learning, always striving to grow and evolve, and being comfortable asking questions. When I was younger I didn’t ask enough questions and I think it inhibited my progress. Asking questions isn’t a sign of weakness or incapabilities, it is a sign of growth, and that is awesome.

So, good look on your journey. When I met these young people at the school careers day, I was inspired by their enthusiasm, interest, and questions. It can be a scary time figuring out what your career is going to be, but the good news is that there is enormous opportunity out there.

What guidance would you give to a young person evaluating their career choices? Share your tips in the comments!

The post Career Guidance For Young People: A Retrospective appeared first on Jono Bacon.

Ubuntu MATE: Ubuntu MATE 18.04 and 19.04 for GPD Pocket & Pocket 2

Hën, 08/04/2019 - 11:45md

Back in October 2018 the Ubuntu MATE team released bespoke images of Ubuntu MATE 18.10 for the GPD Pocket and GPD Pocket 2 that included hardware specific tweaks to get these devices working "out of the box" without any faffing about. Today we are releasing Ubuntu MATE 18.04.2 and Ubuntu MATE 19.04 images for both devices. Read on to find out more...

Ubuntu MATE 18.04.2 running on the GPD Pocket (left) and 19.04 on the GPD Pocket 2 (right)
What's new? Ubuntu MATE 18.04.2

Thanks to the recent hardware enablement stack upgrade in Ubuntu it is now possible to create images based on Ubuntu MATE 18.04.2 for the GPD Pocket and GPD Pocket 2. These images are final and available to download now!

Ubuntu MATE 19.04

The Ubuntu MATE 19.04 release is just days away, so we have also prepared Ubuntu MATE 19.04 Beta images for both devices. Also availble for download now and you can simply collect updates to get from the beta to final release on April 18th 2019.


Thanks to the feedback and contributions from the community, these are the improvement we've made since the Ubuntu MATE 18.10 images were created:

  • Frame buffer and Xorg display rotation now works with modesetting and xorg-video-intel display drivers.
  • Enabled TearFree rendering by default.
  • Updated touch screen rotation to support Xorg and Wayland.
  • Enabled an emulated mouse scroll wheel, activated by holding down the right track point button and moving the trackpoint up/down.
  • GRUB is now usable post-install for both devices!
More Details & Downloads

Find out more about Ubuntu MATE for the GPD Pocket and Pocket 2. Get the downloads!

Details & Downloads

Michael Rooney: Airbnb vs Long-Term Rentals: Which Should You Choose?

Dje, 07/04/2019 - 6:56md

If you’ve got a spare room (or a spare house) and want to generate some extra income, you first have to choose between short-term rentals (STRs) like Airbnb, and traditional long-term, lease-based rentals. I’ve experimented with both for the second bedroom in my two bedroom home, and wanted to share the advantages of each across various categories.


In terms of generating the most income, STRs are generally going to result in the highest monthly earnings. Exploring local short and long term rental prices, anecdotally it seems that you can expect to earn 25-50% more on a site like Airbnb, after vacancies, fees, and taxes are taken in to account. It would be odd if this wasn’t the case as you are generally providing a furnished room and are responsible for providing a lot more amenities and effort.


Long-term rentals are the clear winner here. You don’t have to regularly change sheets, refresh/replace amenities, or clean the house. You can set a minimum stay on STRs as you figure out what duration of stay is worth it for you. Consider making your minimum stay at least 2 nights or setting a very high one-night stay cost. It is worth noting that you can accomplish a decent middle-ground by setting your minimum stay on Airbnb to 30 days, which typically also avoids the need for an STR license or paying hotel taxes.


If you are living in the house you are renting, you want to consider how the renter is going to impact your daily life. One huge advantage of STRs is that you can block off dates in your calendar, allowing you to still use that room (or house) as a guest room for friends and family when you need, and vacancies can serve as refreshing periods of having the home to yourself. Airbnb guests tend to not have lots of visitors or parties (if your rules even allow this in the first place) and of course aren’t cluttering your home with their items or decorations, so the house can feel more like “yours” when doing STRs, if this is important to you.

Issues and Problem Solving

In my experience, both short and long term renters are very respectful of homes and spaces, with one huge caveat: the owner has to live there. All of my negative experiences with Airbnb guests have been when I was away on vacation and rented out the entire place. When this happens, guests feel like the place is completely theirs, and also don’t have a face or person to associate with the owner, and tend to be significantly less respectful of your home.

STR guests also have a much higher bar for their expectations and it is unpleasant to be travelling while a receiving messages that your guest demands you buy them a better mattress or that they can’t figure out the thermostat and are freezing. A long-term guest doesn’t have the expectations that they are in a hotel, and also is familiar with your home, less likely to have urgent issues, and is more invested in keeping it nice for themselves. If you travel, your roommate probably doesn’t mind watering plants or being available for any appointments, but an Airbnb guest will likely not feel happy about being asked to do this.

Final Thoughts

Airbnb really shines in a case where you have spare room that you want to earn extra money from, while still giving yourself flexibility and privacy when you want it. It will also encourage you to keep your place tidy and have nice amenities and appliances, which also benefits you in this case. You’ll meet new and interesting people and make new friends. If you are going to rent out an entire place on a site like Airbnb, make sure to be prepared for the effort and be prepared emotionally to deal with disputes over damages, guests ignoring rules, and other issues from the occasional bad guest.

If you really enjoy meeting new people and providing great experiences for them, STRs can’t be beat. However, a long-term renter will provide the most stability in terms of income and ease of effort. Finally, there is a rapidly growing market of Airbnb home managers (they even have very nice integration for this) so if you want to avoid long-term guests without lots of added effort, you can simply give someone else a cut of the profits to handle most of the communication, cleaner scheduling / sheet changing, and other tasks on your behalf.

What did I miss and what has your experience been?

Podcast Ubuntu Portugal: S01E53 – Call me, maybe…

Dje, 07/04/2019 - 4:36md

Neste episódio trazemos bastantes novidades frescas e boas sobre o UBports e a criação da sua fundação e não só, Faiphone, Necuno OS, Ubuntu Mate a correr em Raspberry PI e muito mais!
Já sabes, ouve, subscreve e partilha!


Este episódio foi produzido e editado por Alexandre Carrapiço (Thunderclaws Studios – captação, produção, edição, mistura e masterização de som) contacto: thunderclawstudiosPT–arroba–

Atribuição e licenças

A imagem de capa: Cuttlefish @ Oceanário de Lisboa e está licenciada como CC BY 2.0.

A música do genérico é: “Won’t see it comin’ (Feat Aequality & N’sorte d’autruche)”, por Alpha Hydrae e está licenciada nos termos da CC0 1.0 Universal License.

cujo texto integral pode ser lido aqui

Este episódio está licenciado nos termos da licença: Attribution-NonCommercial-NoDerivatives 4.0 International (CC BY-NC-ND 4.0), cujo texto integral pode ser lido aqui. Estamos abertos a licenciar para permitir outros tipos de utilização, contactem-nos para validação e autorização.

Daniel Pocock: SFK 2019 and next Prishtina Toastmasters meeting

Dje, 07/04/2019 - 11:14pd

I'm visiting Kosovo again for a few days.

Next Prishtina Toastmasters meeting

The next meeting of the Prishtina Toastmasters group will take place at the Innovation Centre Kosovo (ICK) on Monday, 8 April at 18:00. Location on OpenStreetmap

There is no entrance fee, all are welcome.

The first event attracted a diverse group of people, including students, young professionals, entrepreneurs and ex-pats living in Kosovo.

Free as in lunch

SFK 2019 has been a great success for everybody. The main venue for talks was the Kino Armata. The SFK logo, a small bird, greeted us on the first day:

but by the second day it was gone, evidence of a violent struggle and a few feathers are all that remain, who could be responsible?

OSCAL, May 2019

The next major free software event in the region will be OSCAL on 18-19 May 2019 in Tirana, Albania.

Sean Davis: Parole Media Player 1.0.2 Released

Pre, 05/04/2019 - 3:50pd

A new (more) stable version of the Xfce media player is now available! Parole 1.0.2 fixes several bugs and improves packaged releases for distributions.

What’s New?

Bug fixes. So… many… fixes!

Build Fixes
  • Fixed compiler error -Wcast-function-type with GCC 8
  • Fixed Appstream validation by removing <em></em> tags from translations (Xfce #14260)
  • Resolved g_type_class_add_private warnings (Xfce #15014)
  • Fixed play button sensitivity items are added to playlist (Xfce #13724, LP #1705243)
  • Improved support for missing Gstreamer plugin installers (Xfce #14529)
Plugins Manager
  • Fixed crash when opening files after disabling plugins (LP #1698540)
  • Fixed disabling plugins enabled by distributions (e.g. MPRIS2 in Xubuntu)
  • Fixed display of active/inactive plugins when reopening the Plugins Manager
Translation Updates

Albanian, Arabic, Asturian, Basque, Belarusian, Bulgarian, Catalan, Chinese (China), Chinese (Taiwan), Croatian, Czech, Danish, Dutch, English (Australia), Finnish, French, Galician, German, Greek, Hebrew, Hungarian, Icelandic, Indonesian, Italian, Japanese, Kazakh, Korean, Lithuanian, Malay, Norwegian Bokmal, Occitan (post 1500), Polish, Portuguese, Portuguese (Brazil), Russian, Serbian, Slovak, Slovenian, Spanish, Swedish, Telugu, Thai, Turkish, Uighur, Ukrainian


Parole Media Player 1.0.2 is included in Xubuntu 19.04, with other distributions likely adding it soon. If you can’t wait or want to install from source, download it below.

Source tarball (md5sha1sha256)

Jonathan Riddell: Add Appstream Release Data to your App Releases

Enj, 04/04/2019 - 3:50md

Appstream is a metadata standard for your software releases which gets used by package managers and app stores as well as web sites such as (one day at least).

If you are incharge of making releases of an application from KDE mind and make sure it has an appstream appdata file.  You should also include a screenshot preferably in the product-screenshots git repo.

You should also add release data to your appstream files.  See the docs for the full details.  Not all the data will be very practical to add before the release time but it is useful to at least have a version number and maybe a release date added in.

I’ve added this to the Releasing Software wiki page now. And I’ve written a wee script appstream-metainfo-release-update to update the XML with a simple command which I’ve now added to the Plasma release process.


Andrew SB: Setting Up a Domain with SSL on DigitalOcean Kubernetes using ExternalDNS and Helm

Enj, 04/04/2019 - 6:00pd

A little while back I added support for DigitalOcean to the ExternalDNS Helm chart, and I wanted to share my notes on how to use it. ExternalDNS is an extremely convenient tool that allows you to dynamically control DNS records for your Kubernetes resources just by adding an annotation. In this post, I’ll walk through how to install it with Helm and use it to point a domain at a Kubernetes service. I’ll also cover setting up SSL using a DigitalOcean managed SSL certificate on the load balancer.

First, a few assumptions:

Installing ExternalDNS with Helm

With all of that in place, the first thing to do is install ExternalDNS into the cluster. You will need to generate a DigitalOcean API token for it to use. It’s best to create a token specifically for this service rather than using one you may have in your local environment. Then run the following command replacing $DO_API_TOKEN with the token you generated:

helm install --name external-dns \ --set digitalocean.apiToken=$DO_API_TOKEN,provider=digitalocean,rbac.create=true \ stable/external-dns

You can verify that it has been successfully installed by running:

$ kubectl get pods -l "app=external-dns"

When ready, the output should look something like this:

NAME READY STATUS RESTARTS AGE external-dns-68bfc948b-jhhrq 1/1 Running 0 34s Generating a DigitalOcean Managed SSL Certificate

Next, use doctl to generate an SSL certificate managed by DigitalOcean making use of their Let’s Encrypt integration. Giving it a name and replacing with your domain, run:

doctl compute certificate create --name k8s-cert \ --type lets_encrypt --dns-names

The output will include an ID that looks something like 9r3e053d-da5e-4390-b7b8-0fs23486e41q. You’ll need that in the next step.

Deploying the Kubernetes Service

Now you are ready to deploy your service to the Kubernetes cluster. For this example we are using an NGINX container for the deployment, but that could be any application running in your cluster. The important part for this exercise is the LoadBalancer Service. Here is the full example:

kind: Service apiVersion: v1 metadata: name: https-with-cert annotations: "" "true" "9r3e053d-da5e-4390-b7b8-0fs23486e41q" spec: type: LoadBalancer selector: app: nginx-example ports: - name: https protocol: TCP port: 443 targetPort: 80 --- apiVersion: extensions/v1beta1 kind: Deployment metadata: name: nginx-example spec: replicas: 1 template: metadata: labels: app: nginx-example spec: containers: - name: nginx image: nginx ports: - containerPort: 80 protocol: TCP

Let’s look a little closer at the annotations section:

annotations: "" "true" "9r3e053d-da5e-4390-b7b8-0fs23486e41q"

Kubernetes annotations are just metadata attached to a Kubernetes object. They can be used for anything from specifying a maintainer for the service to a git commit hash or other release information. They can also be used to pass on information to controllers. In our case, both the DigitalOcean Cloud Controller Manager and the ExternalDNS controller are watching for services created with these annotations. Breaking down each one:

  • - Specifies the domain name to be assigned to the service
  • - Specifies the ID of the DigitalOcean managed SSL cert
  • - Configures the load balancer to automatically redirect clients from HTTP to HTTPS

After replacing the domain and certificate ID in the full example and saving it to a file, apply the configuration with:

kubectl apply -f path/to/https-with-domain.yaml

Now let’s take a quick look at the logs for ExternalDNS by running:

kubectl logs \ `kubectl get pod -l app=external-dns -o jsonpath="{.items[0]}"`

When the record has been successfully configured, you will see two lines like:

time="2019-04-04T01:19:11Z" level=info msg="Changing record." action=CREATE ttl=300 type=A time="2019-04-04T01:19:12Z" level=info msg="Changing record." action=CREATE ttl=300 type=TXT

You might be wondering why it created two records. ExternalDNS uses TXT records to mark records that it manages. It will not modify any records without a corresponding TXT record.

Wrapping It Up

With our service successfully deployed, it will now be available at the configured domain with SSL. If we redeploy the service latter, the DNS record will persist even if the underlying IP address were to change. If you’re looking for more detail, here’s some further reading for you:

Podcast Ubuntu Portugal: S01E52 – Querida mudei para Ubuntu!

Mër, 03/04/2019 - 8:50md

Neste episódio para além da nossa conversa da treta e noticias, temos um convidado especial! Ele é o João Ribeiro, jornalista do Shifter e é um recém-convertido ao Ubuntu, que aceitou o nosso convite para uma entrevista e falar-nos sobre a sua experiência com a migração para a nossa distribuição favorita.
Já sabes, ouve, subscreve e partilha!


Este episódio foi produzido e editado por Alexandre Carrapiço (Thunderclaws Studios – captação, produção, edição, mistura e masterização de som) contacto: thunderclawstudiosPT–arroba–

Atribuição e licenças

A imagem de capa: Mating cuttlefish e está licenciada como CC BY 2.0.

A música do genérico é: “Won’t see it comin’ (Feat Aequality & N’sorte d’autruche)”, por Alpha Hydrae e está licenciada nos termos da CC0 1.0 Universal License.

cujo texto integral pode ser lido aqui

Este episódio está licenciado nos termos da licença: Attribution-NonCommercial-NoDerivatives 4.0 International (CC BY-NC-ND 4.0), cujo texto integral pode ser lido aqui. Estamos abertos a licenciar para permitir outros tipos de utilização, contactem-nos para validação e autorização.

Sergio Schvezov: Snapcraft 3.3

Mër, 03/04/2019 - 7:05md
snapcraft 3.3 is now available on the stable channel of the Snap Store. This is a new minor release building on top of the foundations laid out from the snapcraft 3.0 release. If you are already on the stable channel for snapcraft then all you need to do is wait for the snap to be refreshed. The full release notes are replicated here below Core base: core In order to use the new features of snapcraft, introduced with 3.