April 22, 2019

Welcome to the Ubuntu Weekly Newsletter, Issue 575 for the week of April 14 – 20, 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

on April 22, 2019 10:23 PM
Council Chair Erich Eickmeyer will be in Bellingham, WA, USA this weekend for Linux Fest Northwest 2019, and will be bringing his audio setup to demonstrate Ubuntu Studio at the Ubuntu table. Check out the post on his personal blog!
on April 22, 2019 05:49 PM

This next weekend (April 26-28th, 2019) I will be in Bellingham at Bellingham Technical College for Linux Fest Northwest to help at the Ubuntu table!

I will be demonstrating Ubuntu Studio and my audio setup.

I also have a few giveaways for fans of Ubuntu Studio fans. After all, nearly everybody loves vinyl stickers.

I even put a couple of them on my pickup truck! (The Tux sticker is from HelloTux, where you can pick up some amazing Ubuntu Studio clothing!)

I look forward to seeing you there! Also attending (that I know of) will be Valorie Zimmerman (Kubuntu), Dustin Krysak (Ubuntu Budgie), Simon Quigley (Lubuntu), Martin Wimpress (Ubuntu MATE, Canonical), and Alan Pope (Canonical). It’s going to be a blast!

on April 22, 2019 05:45 PM

Bonus points for those of you who can guess where the main image for this post is from.

One of the interesting elements of working with a range of different companies is being able to better understand the dynamics that influence how well a community will succeed or fail. These dynamics are many and broad, and include having a solid strategy, the right balance of transparency, executive and frontline and support, simple and sensible tooling, and more. Sadly, the availability of gin plays no concrete role in this success. Bah humbug.

Within the context of companies building a community around a product, one of the most critical influences of this success, frankly, is having a product that (a) people actually want, and (b) that they can wrap their heads around it.

This may seem obvious, but it is more complex than it may seem. If you look at the rich tapestry of open source, you have some very popular projects that serve broad needs such as Kubernetes, Node.js, Git, Docker, Angular, and others. But then, you have projects that serve very niche needs such as OpenMRS, SymPy, Astropy, and eht-imaging. All of these projects are thriving open source communities.

Now, for some companies watching these projects growing in adoption and market recognition, it can generate a seemingly logical conclusion:

“Surely if we open source our struggling project on GitHub or GitLab we will attract an audience of users and developers, and therefore help our broader market success, right?”

Well, Danger, Will Robinson.

A Balanced View

While there is little doubt that open source can have a heck of an impact on projects, products, and companies, the way in which you accomplish this impact needs to pull together four key components:

  1. Product – firstly, you need to have a product that the market wants, that can add value for your target audience, and maps well to your chosen open source model.
  2. Product/Engineering Workflow – secondly, if you are going to run a public open source project, you need to ensure your product and engineering teams can operate with an open, asynchronous workflow and can interface with public contributors.
  3. Community Strategy – thirdly, you are going to need a clear, unambiguous strategy for how you structure your community, hire the right team members, target the right audiences, build growth, and more.
  4. Internal Capabilities – finally, you are going to need to develop the skills in your company to accomplish all of the above. This will require staff training, support, mentoring, and leadership.

Now, often when I am brought into a company, the client is typically very interested in focusing on points 2 – 4. After all, this is what a lot of people associate with the work I do.

My first questions though almost always focus on (1). Is the product you have suitable for open sourcing, and will open sourcing it bring you and your prospective community the value you and they want?

Open source is not a panacea. It is not a solution that will revive an uninteresting or poorly built product. I never recommend anyone goes down the open source road until they have assessed this important product suitability consideration first. Otherwise, they risk doing a lot of work for very limited benefit for anyone.

Essential Questions To Ask

Here’s the deal: open source requires a careful balance of open workflow, community/contributor management, and a clear delineation of where the lines are drawn between your open source and non-open source projects (and which teams work on what.)

To put it rather glibly, open source is not as simple as chucking some code into a public repository and blogging about it. It requires a careful balance of internal and public workflow, and needs a significant investment of time and energy to do well. As such, you want to be sure that this time and energy is not just worth it, but has a realistic chance of success for both you and your community.

When you are considering this, I recommend asking yourself 4 key questions:

#1. Is there a market need/fit for your product?

Open source has become increasingly interesting to companies who want to get developers using their product or platform. Developers are increasingly influential decision-makers in modern tech firms, and often prefer open source platforms.

Put the open source element to one side though and ask yourself the objective question, “Does your project serve a clear need and deliver enough value for your target audience?”

Market fit? Would you wear this while on the phone so to not disturb others? No, you are not insane.

The #1 thing your audience are looking for is clear, valuable functionality. Does the software do something that pragmatically make your audience’s lives better? If it doesn’t deliver this, no amount of open source will save it.

So, try to understand what your core audience want and ensure your project can deliver it. If this is a new project, publish a roadmap for these key target features and focus on staffing the delivery of them. A compelling 1.0 is essential to interest both users and potential contributors.

#2. What is the on-boarding experience like for new users?

On a related note, how easy is it to get started using your project? Can a new user get up and running and experience tangible value within 10 minutes? No? Then you you need optimize your on-boarding experience.

I have seen some bloody horror stories here: projects that make users jump through endless hoops, require complicated configuration (with little to no documentation), have dependencies on obscure or unavailable services, and other dents in the experience.

This is the model I have developed over the years for thinking about building a clear onramp:

Every step should logically lead to the next step. If it doesn’t, your onramp needs fixing.

Your audience should be able to proceed simply and logically from one step to the next ultimately getting to the star, which is a piece of tangible value for them (e.g. completing a task, solving a problem, etc.).

Now, while every project will use a slightly different set of steps, an onramp generally breaks down into understanding value, setting up tools, learning skills, and using the tools and skills to produce something valuable. (1) and (6) are highlighted in the above graph because they should be on every onramp: you always need to communicate the value of your project (such as via websites, social media, etc) and validate the people who use it successfully (such as with rewards, engagement, and opportunities). The latter is especially important for building lasting relationships with your community.

Think about how to simplify the overall onramp (you should explore how muntzing can help here). Then, ensure that each transition from one step to the next step is logical and try to understand and resolve where people get stuck.

If you don’t do this, you will struggle to build a userbase for your project, which is a critical requirement before you can consider developing a contributor-base.

#3. What are your primary goals for open sourcing it?

The next question is why are you are open sourcing your project in the first place? From a company perspective this can vary and will often include one or more of the following:

  • We want to increase market awareness and adoption.
  • We want to increase engineering contributions to the project.
  • We want people to build on top of the project (e.g. plugins or modules.)
  • We want to increase the company’s brand recognition.
  • . . .

This is where things can get complex: open source projects can often lead to many of the benefits listed above, but it is not just the nature of being open source that will drive these benefits, it is the focused strategy efforts you put in place that will.

For example, if your goal is “increasing engineering contributions”, putting code in a repo will not merely lead to this. Clear developer on-boarding, solid documentation, building meaningful community relationships with developers, developer focused content and outreach, and other efforts will help drive this growth.

The risk some companies face here is that they think of the value of open source primarily from their own perspective, but don’t focus enough on what value their users want to experience too. How can you build an open source community that gives your users greater information, flexibility, and communication with the project and your team? How can your users play a more meaningful role in the project? If you build an environment with your users’ needs in mind, you will build a a far more engaging and valuable community in general.

#4. What new skills and resources do you need to build in your company to do this work well?

It took me far too long to realize that a significant determining factor of community success is not just making the right strategic choices, but also baking those skills effectively into an organization.

For many companies, switching to an open source model is a significant change of workflow, policy, and how you incentivize your team. Aside from picking the right set of open source strategic steps (such as how you publish code, manage issues, build community engagement and growth etc.), you should also plan for how to bake these skills and expertise into your teams.

Wrong kind of baking.

An an example, one key element of being an open source project is receiving and responding to pull requests with new features and fixes. This requires your team members to be able to review those PRs, test them, provide constructive feedback, and approve or reject the contribution based on merit. It requires calm and constructive feedback, often with people you don’t know and trust yet. It requires the overall code review process to happen end-to-end out in the open. Overall this needs a nuanced set of skills such as peer review, technical collaboration, open build management, and other pieces.

For companies less familiar with open source, this is all going to seem a bit weird and uncomfortable. Your team members are going to hesitant to engage, not only because it is new, but they also don’t want to put a foot wrong and get in trouble. This is entirely normal.

As such, think about how to break these skills down into simple pieces, provide the right level of training and support, and how to mentor and support people through this transition. Help them to build a habit around participation, and develop incentives, rewards, and other mechanisms to help them naturally orient to an open workflow and enjoy engaging in it.

Open source is an enormously powerful model, but focusing on these core product questions is an important part of the process. What other considerations should companies be making? Share them in the comments…

The post Open Source Won’t Save A Subpar Product appeared first on Jono Bacon.

on April 22, 2019 06:12 AM

April 21, 2019

As the newly released Kubuntu 19.04 makes its way into the world, inevitably other things come to their end.

Kubuntu 14.04 LTS was released in April 2014, and reaches ‘End of Life’ for support on 25th April 2019. All Kubuntu users should therefore switch to a newer supported release. Upgrades from 14.04 to a newer release are not advised, so please install a fresh copy of 18.04 or newer after running a backup of all your data.

Kubuntu 16.04 LTS was released on 21st April 2016, and was supported for Kubuntu for a period of year 3 years.* Kubuntu 16.04 LTS support therefore ends 21st April 2019, and users are invited to upgrade to 18.04 LTS, or perform a fresh install of that or newer release.

The Kubuntu team would thank users of both releases, especially for the amazing additional community support on IRC, forums, mailing lists, and elsewhere.

* https://lists.ubuntu.com/archives/ubuntu-release/2016-April/003704.html

on April 21, 2019 09:59 PM

Ep. 54 – Disco com o Dingo

Podcast Ubuntu Portugal

Mascote do Ubuntu 19.04 - Um dingo numa mesa de misturaDisco Dingo por Sylvia Ritter

As nossas aventuras, falámos do Ubuntu 19.04 Disco Dingo e da Ubucon Portugal 2019. Mas claro que também passámos pelas notícias, por alguns snaps e pela agenda.
Já sabes: ouve, subscreve e partilha!

  • https://www.youtube.com/watch?v=aJWSE7acl-Q
  • https://ubports.com/pt_PT/blog/ubports-blog-1/post/interview-with-jan-sprinz-217
  • https://matrix.org/blog/2019/04/11/security-incident/
  • https://snapcraft.io/mailspring
  • https://snapcraft.io/search?q=rambox
  • http://loco.ubuntu.com/events/ubuntu-pt/3825-encontro-ubuntu-pt-sintra-lan%C3%A7amento-disco-dingo/
  • https://ubuntu-paris.org/
  • https://summit.creativecommons.org/


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–gmail.com.

Atribuição e licenças

A imagem de capa (Disco Dingo) foi criada por Sylvia Ritter, e é utilizada com a sua gentil e explicita permissão, podendo ser encontrada em: https://www.deviantart.com/sylviaritter/art/Disco-Dingo-786327017
Mais trabalhos feitos pela Sylvia Ritter, incluindo imagens de outras mascotes de releases de Ubuntu, podem também ser encontrados no seu sítio web: https://www.sylvia-ritter.com/
Podem apoiar o trabalho da Sylvia Ritter na sua página de Patreon em: https://www.patreon.com/sylviaritter
E podem também seguir nas redes sociais:


A música do Genérico: “Stringed Disco”, por Kevin MacLeod (incompetech.com), está licenciada com Creative Commons: By Attribution 3.0 License (http://creativecommons.org/licenses/by/3.0/)

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.

on April 21, 2019 08:52 AM
Back in April 2018, Ubuntu Studio 18.04 was released as a non-LTS (Long-Term Support) version, which limited its support cycle to end January 2019. This was due to a number of factors, from the involvement of the team members at the time to the number of team members. In January 2019, the team came up […]
on April 21, 2019 01:55 AM

April 20, 2019

A few weeks ago, after a few days of internal turmoil on the matter, I committed to running for DPL.

The original nomination period was the week before, with no one stepping up for the position and with our current leader indicating that he wouldn’t be available to serve another term. This resulted in a bit of a knee-jerk reaction and slight panic, with threads popping up on the debian mailing lists pondering things like what a leaderless Debian would look like and whether we perhaps need more of a team than a single person to be the leader the project. There was also some discussion about burnout and whether it’s even fair to put so much pressure on a single person, and whether it’s possible to delegate more of the DPL’s responsibilities. The press also picked up on this and there were a few big stories on the matter that lead some to be slightly nervous on the matter.

Of course (as the LWN article pointed out), Debian’s constitution is quite thorough and has made provision for cases like these. If no one steps up, the nomination period is extended for another week, and it only took one such extension to produce 5 new candidates (of which one retracted soon afterwards due to time commitments).

I mentioned internal turmoil at the beginning of the post, this was because up until a few days before my self-nomination, I’ve been very confident, and consistently so for a very long time, that I never want to run for DPL. The work that I care about and spend most attention on doesn’t at all require me being a DPL. Also, having more responsibility in areas that I’d rather let others take care of sounded a bit daunting. I’d much rather spend time on technical and more general community issues than very specific interpersonal problems or administrative tasks like reading and approving budget proposals, sending out developer certificates, etc. On top of that, I was aware that running for DPL and opening myself like that means that I open myself to a very wide array of critique, that people might put everything I say under a microscope and try to tear it apart, and that running for DPL means being prepared for that.

Despite that turmoil, a small nagging part kept asking the questions “But what if?”, what if I were DPL, what would I do? What would I change? What would I do as DPL that would make Debian better, and better as a DPL than I just could as a normal debian developer? These questions helped form in my head what my platform would look like, why I wanted to run for DPL, and how the rest of my campaign would shaped up. This year is also unique for me compared to previous years in that I will actually have time over the next year to focus on DPL-like activities. That, combined with the plans that were shaping up that I’m very enthusiastic about, convinced me that it’s time to step up and proceed with my self-nomination.

Directly after the nomination period, the campaign period starts. There are surprisingly few rules (or even guidance) regarding the campaign period, the majority of it is where Debian developers (or anyone really, but mostly DDs) ask questions to the DPL candidates about their stance and policy on certain matters, how they plan to take action and often a few really tough hypothetical situations. Some questions even took advantage of the fact that April fools day falls in the campaign period, which led to some odd and interesting questions. Overall, I really enjoyed the campaign period. I was preparing myself for the worst case scenario before campaigning started, but what actually happened next astonished me. We had all kinds of Debian developers coming forward with high quality, productive discussions on all kinds of aspects which ranged from internal technical policies, how we work with upstreams, community matters, diversity, the DPL role itself, how Debian is changing and how to keep it relevant, community turnover, how we deal with money, how we market ourselves and so one. It was productive discussion and I enjoyed it.

Regardless of the outcome of this election, I’m very happy that I stepped up as a DPL candidate, and I’m very satisfied with how my campaign went and how I answered my questions. I’m also very happy that the elections turned out so vibrant and productive and I dare say even exciting. I hope that this will continue to happen for future elections, because it’s clear to me that a productive election period is good for the health of Debian.

In the future, someone may be reading this and ponder “Should I run for DPL?”. My advice would be to first take some stock and figure out if you’re at a place in your life where you can actually do that (Did you just start a new job? Would your employer support you? Did you recently get married, have kids? How’s your health? Can you afford to spend lots of unpaid time doing DPL work? etc…) and then also consider why you’d want to be DPL and what you’d like to achieve with such a role. If you weigh up all the aspects and it still feels right for you, then by all means go for it. In my opinion, even if you’re not elected you still help make Debian better by participating in the election process.

Voting closes in around 12 hours at the time of writing this. Good luck to all the candidates and thank you to everyone who participated in making this such a fantastic and surreal experience!

2019-04-21: Update: Congratulations to Sam Hartman who is our new DPL! We’ve been talking off-list throughout the election process and Sam knows he has my full support and we even plan to collaborate on certain areas, more news to follow in the near future.

on April 20, 2019 12:00 PM

April 19, 2019

As I said back in September with regard to a responsible disclosure about Facebook, data access control isn’t easy. While it can sound quite simple (just give access to the authorized entities), it is very difficult, both on a theoretical side (who is an authorized entity? What does authorized mean? And how do we identify an entity?) and on a practical side.

This issue was firstly reported on HackerOne and was managed on the Gitlab issues’ tracker. Both links are now publicly accessible.

Summary of the issue

  • Rogue user is added to a private group with dozens of projects
  • The user’s role in some projects changes
  • Rogue is fired, and removed from the group: they still have access to projects where their role was changed

The second step could happen for a lot of different reasons:

  • rogue is added as master - knowing this vulnerability, they decrease their privileges to stay in some projects (this is the only malicious one)
  • rogue is added as developer, but they become responsible for some projects, and are promoted to master role
  • rogue is added as reporter, and then they are promoted for a project, and so on.

When an admin removes a user from a private group, there is no indication that the user still has access to private projects, if their role was changed.


User can still see all resources of a project of a secret group after they have been removed from the parent’s group.


  • 29 January 2018: First disclosure to Gitlab
  • 9 February 2018: Gitlab confirmed the issue and triaged it, assigning a medium priority
  • 25 February 2018: I ask for a timeline
  • 27 February 2018: They inform me they will update me with a timeline
  • 16 March 2018: Almost two months are passed, I ask again for a timeline or suggest to go public since administrators of groups can easily check and avoid this vulnerability
  • 17 March 2018: They inform me they will update me with a timeline, and ask to do not go public
  • Somewhere around December 2018: the team think the issue has been fixed, and close the internal issue - without communicating with me
  • 17 January 2019: I ask for an update - they will never reply to this message
  • 25 January 2019: the security team sees this is still an issue
  • 31 January 2019: the fix is deployed in production and publicly disclosed, without informing me
  • 5 March 2019: I ask again for another update
  • 12 March 2019: Gitlab says the issue has been fixed and awards me a bounty


Gitlab awarded me a $2000 bounty award for the disclosure.

If you follow my blog, you know I deeply love Gitlab: I contribute to it, I write blog posts, and I advocate for it any time I can. Still, I think this experience was awful, to say the least. There was a total lack of communication by their side, they thought they fixed the issue the first time, but actually, it wasn’t fixed. If they had communicated with me, I would have double checked their work. After that, they deployed the fix and went public, without telling me. I was not interested in the bounty (for which I am grateful), I reported the issue because I care about Gitlab. Nonetheless, my love for Gitlab is still the same! I just hope they will improve this part of communication / contributing to Gitlab: in the last couple of years the community around the project grew a lot, and they are doing amazing with it, maybe the Community team should step in and help also the security community?

For any comment, feedback, critic, write me on Twitter (@rpadovani93) or drop an email at riccardo@rpadovani.com.


on April 19, 2019 06:00 PM

Kipi Plugins 5.9.1 Released

Jonathan Riddell

Kipi Plugins is a set of app plugins for manipulating images.  They use libkipi which is released as part of KDE Applications.  It used to get standalone releases and was then moved to be part of Digikam releases.  Since Digikam 6 they have been deprecated by Digikam in favour of their new plugin framework DPlugins.  While in KDE Frameworks the Purpose Framework is another newer project covering similar features.

However Kipi Plugins are still supported by KDE apps KPhotoAlbum, Gwenview, Spectacle so they shouldn’t disappear yet.

I’ve made a new release available for download now.


Versioned 5.9.1 because it is little changed from the previous release done inside Digikam which was 5.9.0.

Tagged commit b1352149b5e475e0fbffb28a7b5fe13503f24dfe

Sha256 Sum: 04b3d31ac042b901216ad8ba67dafc46b58c8a285b5162b51189833f6d015542

Signed by me Jonathan Riddell <jr@jriddell.org>

This will become part of KDE Applications in its next release scheduled for August and will follow the KDE Applications version numbers.

Facebooktwitterlinkedinby feather
on April 19, 2019 11:47 AM

Codenamed “Disco Dingo”, 19.04 continues Ubuntu’s proud tradition of integrating the latest and greatest open source technologies into a high-quality, easy-to-use Linux distribution. The team has been hard at work through this cycle, introducing new features and fixing bugs.

The Ubuntu kernel has been updated to the 5.0 based Linux kernel, our default toolchain has moved to gcc 8.3 with glibc 2.29, and we’ve also updated to openssl 1.1.1b and gnutls 3.6.5 with TLS1.3 support.

Ubuntu Desktop 19.04 introduces GNOME 3.32 with increased performance, smoother startup animations, quicker icon load times and reduced CPU+GPU load. Fractional scaling for HiDPI screens is now available in Xorg and Wayland.

Ubuntu Server 19.04 integrates recent innovations from key open infrastructure projects like OpenStack Stein, Kubernetes, and Ceph with advanced life-cycle management for multi-cloud and on-prem operations, from bare metal, VMware and OpenStack to every major public cloud.

The newest Ubuntu Budgie, Kubuntu, Lubuntu, Ubuntu Kylin, Ubuntu MATE, Ubuntu Studio, and Xubuntu are also being released today.

More details can be found for these at their individual release notes:


Maintenance updates will be provided for 9 months for all flavours releasing with 19.04.

To get Ubuntu 19.04

In order to download Ubuntu 19.04, visit:


Users of Ubuntu 18.10 will be offered an automatic upgrade to 19.04 if they have selected to be notified of all releases, rather than just LTS upgrades. For further information about upgrading, see:


As always, upgrades to the latest version of Ubuntu are entirely free of charge.

We recommend that all users read the release notes, which document caveats, workarounds for known issues, as well as more in-depth notes on the release itself. They are available at:


Find out what’s new in this release with a graphical overview:


If you have a question, or if you think you may have found a bug but aren’t sure, you can try asking in any of the following places:

#ubuntu on irc.freenode.net

Help Shape Ubuntu

If you would like to help shape Ubuntu, take a look at the list of ways you can participate at:


About Ubuntu

Ubuntu is a full-featured Linux distribution for desktops, laptops, netbooks and servers, with a fast and easy installation and regular releases. A tightly-integrated selection of excellent applications is included, and an incredible variety of add-on software is just a few clicks away.

Professional services including support are available from Canonical and hundreds of other companies around the world. For more information about support, visit:


More Information

You can learn more about Ubuntu and about this release on our website listed below:


To sign up for future Ubuntu announcements, please subscribe to Ubuntu’s very low volume announcement list at:


Originally posted to the ubuntu-announce mailing list on Thu Apr 18 13:13:39 UTC 2019 by Adam Conrad, on behalf of the Ubuntu Release Team

on April 19, 2019 07:15 AM

April 18, 2019

The Xubuntu team is happy to announce the immediate release of Xubuntu 19.04!

Xubuntu 19.04 is a regular release and will be supported for 9 months, until January 2020. If you need a stable environment with longer support time, we recommend that you use Xubuntu 18.04 LTS instead.

The final release images are available as torrents and direct downloads from xubuntu.org/getxubuntu/

As the main server might be busy in the first few days after the release, we recommend using the torrents if possible.

We’d like to thank everybody who contributed to this release of Xubuntu!

Highlights and Known Issues


  • Xubuntu 19.04 features a wide range of bug fixes for issues identified in previous releases, many of which have already been backported to the stable releases.
  • AptURL, The GIMP, and LibreOffice Impress have been included to provide a more complete and user-friendly desktop experience.
  • New keyboard shortcuts make it easier and faster to get work done. Shift + Print Screen will capture a screenshot for a specified region. Press F4 in Thunar to open a terminal window in the current path, or press Ctrl + Shift + F to search for files.
  • Many Xfce 4.13 components have been added or updated, providing an updated snapshot of Xfce 4.14 development.

Known Issues

  • If more than one instance of the Xfce Pulseaudio Plugin is added to the panel, volume notifications will be duplicated.
  • Tooltips can become unresponsive in the Xfce Task Manager. Usually a bit of movement will cause the tooltip to fade away.

For more obscure known issues, information on affecting bugs, bug fixes, and a list of new package versions, please refer to the Xubuntu Release Notes.

The main Ubuntu Release Notes cover both many of the other packages we carry and more generic issues.


For support with the release, navigate to Help & Support for a complete list of methods to get help.

on April 18, 2019 04:55 PM
Thanks to all the hard work from our contributors, Lubuntu 19.04 has been released! With the codename Disco Dingo, Lubuntu 19.04 is the 16th release of Lubuntu and the second release of Lubuntu with LXQt as the default desktop environment. Support lifespan Lubuntu 19.04 will be supported for 9 months, until January 2020. If you […]
on April 18, 2019 04:52 PM

Kubuntu 19.04 is released today

Kubuntu General News

Kubuntu 19.04 has been released, featuring the beautiful Plasma 5.15 desktop from the KDE community.

Code-named “Disco Dingo”, Kubuntu 19.04 continues our proud tradition of integrating the latest and greatest open source technologies into a high-quality, easy-to-use Linux distribution.

The team has been hard at work through this cycle, introducing new features and fixing bugs.

Under the hood, there have been updates to many core packages, including a new 5.00-based kernel, Qt 5.12, KDE Frameworks 5.56, Plasma 5.15.4, and KDE Applications 18.12.3

Kubuntu has seen some exciting improvements, with newer versions of Qt, updates to major packages like Krita, Kdeconnect, Kstars, Latte-dock, Firefox and LibreOffice, and stability improvements to KDE Plasma.

For a list of other application updates, upgrading notes and known bugs be sure to read our release notes:


Download 19.04 or read about how to upgrade from 18.10.

on April 18, 2019 04:28 PM

S12E02 – Light Force

Ubuntu Podcast from the UK LoCo

This week we have been upgrading disk drives (again) and playing Elite Dangerous. We discuss Mark’s homebrew Raspberry Pi based streaming box, bring you some command line love and go over your feedback.

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

In this week’s show:

rdfind ./somedir
  • And we go over all your amazing feedback – thanks for sending it – please keep sending it!

  • Image taken from Light Force published in 1986 for the ZX Spectrum by Faster Than Light.

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 show@ubuntupodcast.org or Tweet us or Toot us or Comment on our Facebook page or comment on our sub-Reddit.

on April 18, 2019 02:00 PM

Ubuntu MATE 19.04 is a modest upgrade over previous releases. If you want bug fixes and improved hardware support, particularly for NVIDIA GPU owners, then 19.04 is for you. Oh yeah, we've also made bespoke Ubuntu MATE 19.04 images for the GPD Pocket and GPD Pocket 2. Read on to learn more...

Ubuntu MATE 19.04
Ubuntu MATE 19.04 with the Mutiny layout

What changed since the Ubuntu MATE 18.10 final release?

Those of you who follow the desktop Linux news will know that upstream MATE Desktop recently released version 1.22.

Let's rip that band-aid off and get this over quickly. Ubuntu MATE 19.04 is shipping with MATE Desktop 1.20. Albeit, the latest maintenance release of MATE Desktop 1.20 with some of the bug fixes and new features from MATE Desktop 1.22 included. In fact, the version of MATE Desktop being shipped in 19.04 is derived from the same MATE packages that will feature in the upcoming Debian 10 (Buster) release.

You may be wondering why we're not shipping MATE Desktop 1.22? The answer, stability. MATE Desktop 1.22 introduces some underlying API changes in core components and while all first party MATE Desktop applications are compatible with the changes and completely stable, some third party applications are not. Some third party applications are big crashers now and we've not been able to fix them in time.

So, we are playing it safe and sticking with MATE Desktop 1.20 and working with upstreams so we can land MATE Desktop 1.22 early in the Ubuntu MATE 19.10 development cycle.

NVIDIA Drivers

During the Ubuntu 18.10 development cycle the Linux kernel, firmware, Mesa and Vulkan were all updated to ensure we offered the best possible support for sipping AMD GPUs. During the 19.04 cycle AMD support has been uplifted again but we have also improved the "out of box" experience for NVIDIA GPU owners too.

If you have an NVIDIA GPU connected to your computer and select Install third-party software for graphics and Wi-Fi hardware during installation, the NVIDIA proprietary drivers will be installed.

Third party drivers

Post install, the proprietary NVIDIA drivers are installed and configured. To confirm this, open a terminal and run nvidia-smi. Ubuntu MATE users with laptops that support hybrid graphics will see the MATE Optimus hybrid graphics applet displaying the NVIDIA logo.

MATE Optimus - hybrid graphics switcher

MATE Dock Applet

MATE Dock Applet has been updated to 0.88 which introduces some new visual options, based on the look of the Unity desktop. As seen in the screenshot at the start of this post, this has been used in the Mutiny layout to further mimic Unity 7.

Remote Desktop Awareness

Our MATE Desktop 1.20 packages ship with patches to support Remote Desktop Awareness (RDA). RDA makes MATE Desktop more aware of its execution context so that it behaves differently when run inside a remote desktop session compared to when running on local hardware. Different remote technology solutions support different features and they can now be queried from within MATE components. The inclusion of RDA offers the option to suspend your remote connection; supports folder sharing in Caja; MIME type bindings for SSHFS shares and allows session suspension via the MATE screensaver.

GPD Pocket

Alongside the generic image for 64-bit Intel PCs, we're also releasing bespoke images for the GPD Pocket and GPD Pocket 2. These include hardware specific tweaks to get these devices working "out of the box" without any faffing about. See our GPD Pocket page for more details.

Major Applications

Accompanying MATE Desktop 1.20.4 and Linux 5.0.0 are Firefox 66.0.3, VLC 3.0.6, LibreOffice and Thunderbird 60.6.1.

Major Applications

See the Ubuntu 19.04 Release Notes for details of all the changes and improvements in Ubuntu that Ubuntu MATE benefits from.

Download Ubuntu MATE 19.04

Our download page makes it easy to acquire the most suitable build for your hardware.


Upgrading from Ubuntu MATE 18.04 or 18.10

  • Open the "Software & Updates" from the Control Center.
  • Select the 3rd Tab called "Updates".
  • Set the "Notify me of a new Ubuntu version" dropdown menu to "For any new version".
  • Press Alt+F2 and type in update-manager -c into the command box.
  • Update Manager should open up and tell you: New distribution release '19.04' is available.
    • If not, you can use /usr/lib/ubuntu-release-upgrader/check-new-release-gtk
  • Click "Upgrade" and follow the on-screen instructions.

Known Issues

Here are the known issues.

Ubuntu MATE

  • Nothing significant.

Ubuntu family issues

This is our known list of bugs that affects all flavours.

You'll also want to check the Ubuntu MATE bug tracker to see what has already been reported. These issues will be addressed in due course.


Is there anything you can help with or want to be involved in? Maybe you just want to discuss your experiences or ask the maintainers some questions. Please come and talk to us.

on April 18, 2019 12:00 PM

Xubuntu 19.04 “Disco Dingo” is just around the corner. It features numerous updates and an updated snapshot of Xfce 4.14 development. If you want to see all the changes, you’ve come to the right place!

What’s New?

Click here for a complete list of package changes.

Changes to the Xubuntu Packageset

Orage and Quick Launcher, Gone!
  • Orage Calendar is no longer included. This decision comes following a team vote during the November community meeting.
  • Xfce Quick Launcher Plugin has been removed from the Debian and Ubuntu archives due to it no longer being supported.
AptURL Now Included!
Installing a package with AptURL.

AptURL provides an easy way to link to and install packages from the repositories. It supports most browsers and works without any additional configuration when installed. Anytime you see an apt:// link on the internet, just click and install. For example, why not install Super Tux Kart?


GIMP Returns!

It’s back! Not seen in Xubuntu since 15.04 “Vivid Vervet”, GIMP (GNU Image Manipulating Program), the powerful and feature-packed image editor has been added back to Xubuntu 19.04. While it has a bit of a learning curve, there’s a number of tutorials on gimp.org to get you up to speed.

LibreOffice Impress Has Finally Arrived!
Make great presentations in moments with LO Impress.

With the addition of LibreOffice Impress, the Xubuntu office suite is now complete! Impress makes it possible for users to quickly and easily produce and present high-quality presentations. It comes with a number of great templates already installed, and hundreds more at the LibreOffice Extensions website.


Updates to Existing Components

This list will quickly highlight some of the biggest changes in each new update.

Atril Document Viewer (1.20.2-1 to 1.20.3-1)
  • Support was added for RAR-compressed comic archives
  • Files are now saved in the same path they are opened from
Catfish File Search (1.4.6-1 to 1.4.7-1)
  • The classic layout returns to Xfce and Xubuntu.

    All documented URLs were replaced with HTTPS where possible

  • The window layout now respects the current desktop environment, displaying Client Side Decorations (CSD) for desktops that prefer them and traditional titlebar layouts for all other desktops (Xfce #14486)
  • Files can now be dragged from Catfish into other applications, copying or opening the file based on the target application (Xfce #14492)
  • A number of performance improvements were made to guarantee a snappier, more efficient search
elementary Xfce Icon Theme (0.13.1-1 to 0.13.1-1ubuntu1)
  • The icon theme now correctly inherits from the Adwaita icon theme, fixing some issues  with KDE applications (LP #1787989)
Exo (0.12.2-1 to 0.12.4-1)
  • Highlighting fixes are a welcome graphical improvement.

    The thumbnail directory was updated to align with other applications, reducing file duplication and speeding up the desktop (Xfce #14799)

  • Improved icon view highlighting with GTK 3, with items now highlighted in the current theme’s selection color (Xfce #14971)
  • Improved positioning of the icon view type-ahead search, the search overlay will now always be displayed on-screen (Xfce #14994)
Garcon (0.6.1-2 to 0.6.2-1)
  • All application menu items are now rendered at the same size (Xfce #13785)
  • Added support for the Keywords key in desktop entries (Xfce #10683)
  • Added support for composite XDG_CURRENT_DESKTOP variables (Xfce #14137)
Gigolo (0.4.2-2 to 0.4.91-0ubuntu1)
  • Ported to GTK 3! 🎉
  • Improved appearance of various dialogs
  • Improved sizing for the icon view
Greybird GTK Theme (3.22.9-0ubuntu1 to 3.22.10-1)
  • Even the print dialog looks better in Greybird!

    Improved appearance of the print dialog (GH #238) and Xfce Terminal’s tabs (GH #184)

  • Improved margins and padding for the Xfce Panel’s Tasklist plugin (GH #240)
  • Improved sizing of the Alt-Tab dialog (GH #224)
LibreOffice Elementary Style (1:6.1.2-0ubuntu1 to 1:6.2.2-0ubuntu2)

I feel like this update deserves a special mention. rizmut did an amazing job refreshing the elementary theme and making it consistent everywhere.

  • Blurry icons are blurry no more
  • Icons were updated to meet the elementary HIG
  • Icons were made consistent between sizes, and a 32px size variant was added
  • Numerous icons were added for various commands and menu options
  • Support for the Notebookbar layout was vastly improved
MATE Calculator (1.20.2-1 to 1.20.3-1)
  • Equations can now be entered using MathML
  • Equations are copied from the calculator as ASCII text
Mugshot (0.4.0-1 to 0.4.1-1)
  • Mugshot in the Setting Manager, where it belongs.

    Fixed loading of user-specified initials (LP #1574239)

  • Fixed TypeError crash at startup (LP #1443283)
  • Fixed FileNotFoundError crash when comparing profile images (LP #1771629)
  • Added Mugshot to the Xfce Settings Manager, Personal Settings (LP #1698626)
Parole Media Player (1.0.1-1build1 to 1.0.2-0ubuntu1)
  • Fixed various issues with disabling plugins (LP #1698540)
  • Fixed play button sensitivity items are added to playlist (Xfce #13724, LP #1705243)
Ristretto Image Viewer (0.8.3-1 to 0.8.4-0ubuntu1)
  • Fixed thumbnail generation (Xfce #13419)
  • Fixed memory leak related to thumbnail generation (Xfce #12034)
  • Fixed opening of PPM files (Xfce #14709)
  • Added file size to the status bar (Xfce #14791)
Thunar (1.8.1-1 to 1.8.4-1ubuntu1)
  • Skip the trash bin and delete files forever!

    Numerous crashes were fixed, making the file manager substantially more stable

  • Fixed USB drives being mounted with root permissions (Xfce #14719)
  • Fixed high CPU load when parent directories are not readable (Xfce #14900)
  • The spinner will no longer keep spinning after the user cancels an unmount action (Xfce #14539)
  • Fixed expansion of the “Create Document” submenu (LP #1822380)
  • A new preference was added to open new Thunar instances as tabs (Xfce #13314)
  • A new preference was added to enable the “Permanently Delete” option in the context menu (Xfce #13327)
  • Ctrl + = was added as an alternative accelerator for Zoom In (Xfce #14586)
  • Ctrl + PgUp / PgDown was added to switch tabs (Xfce #9585)
Thunar Archive Plugin (0.4.0-1 to 0.4.0-2)
  • Support was added for the Engrampa Archive Manager (Debian #911370)
Thunar Volume Manager (0.8.1-2build1 to 0.9.1-1)
  • Ported to GTK 3! 🎉
  • Added support for Blu-Ray media (Xfce #13297)
  • Automatic browsing of removable media now respects the default file manager (Xfce #9537)
  • Notifications are now transient, reducing notification log spam
Xfce Application Finder (4.12.0-2ubuntu3 to 4.13.2-1)
  • Without the category panel, things are much tidier!

    Ported to GTK 3! 🎉

  • Menu items without a name are no longer displayed (Xfce #14655)
  • Applications can now be launched by pressing Enter once (Xfce #14469)
  • The Application Finder will no longer crash when toggling bookmarks (Xfce #14134)
  • A new preference was added to hide the category panel (Xfce #14893)
  • Searches are now fuzzy (Xfce #10393)
  • Improved application sorting and keyboard navigation
Xfce Desktop (4.13.2-0ubuntu1 to 4.13.3-0ubuntu2)
  • Added orientation option for icon arrangement (Xfce #14979)
  • Added support for the RandR primary monitor (Xfce #10688)
  • Added integration for the AccountsService wallpaper
  • Fixed crash with monitor changes (Xfce #14609)
  • Fixed icon size in the “Open With” submenu (Xfce #14774)
Xfce Dictionary (0.8.1-0ubuntu1 to 0.8.2-1)
  • Crashes related to invalid URLs were resolved (Xfce #14786)
  • Web search links are only displayed when URLs are valid
  • The link tooltip is now escaped, fixing display issues
Xfce Notifications (0.4.2-0ubuntu3 to 0.4.3-1)
  • The fadeout preference is now correctly displayed (LP #1763674)
Xfce Panel (4.13.3-1ubuntu1 to 4.13.4-1ubuntu1)
  • Specify the maximum icon size for improved control.

    Added per-panel icon size preferences

  • Numerous improvements to plugin display and sizing issues
  • Added support for alternative menu editors, with MenuLibre as default (Xfce #11684)
  • Fixed issues with clicking panel items at the top or left of the screen (LP #1795135)
  • Fixed space reservation on the bottom and right of the screen (Xfce #14886)
  • Fixed crashes in the Directory Menu plugin and when removing certain plugins (Xfce #14418)
  • Fixed alignment of various plugin menus (Xfce #14803)
  • Fixed display of the binary clock
Xfce Screenshooter (1.9.3-1 to 1.9.5-1)
  • Added width and height to the region select overlay (Xfce #12664)
  • Fixed delay functionality in the panel plugin (Xfce #14604)
  • Fixed saving screenshots from the panel plugin (Xfce #15187)
  • Improved Imgur upload results dialog (Xfce #14973)
  • Improved support when XInput is not available (Xfce #15166)
  • Improved support for HiDPI displays
Xfce Session (4.12.1-3ubuntu4 to 4.12.1-6ubuntu1)
  • Replaced packaging recommendation on Xscreensaver with Light Locker (LP #1754872)
  • Added support for MATE Screensaver and Xfce Screensaver
Xfce Settings (4.13.4-1ubuntu1 to 4.13.4-1ubuntu2)
  • Fixed scrolling in the Settings Manager (LP #1653448)
Xfce System Load Plugin (1:1.2.1-0ubuntu1 to 1:1.2.2-1ubuntu1)
  • Reworked preferences dialog (still functionally the same)
  • The default update interval was updated to 0.5 seconds (Xfce #13536)
Xfce Task Manager (1.2.1-1 to 1.2.2-1)
  • Builds now default to GTK 3, with GTK 2 being removed in the next release
  • Improved UTF-8 normalization (Xfce #14172)
  • Fixed crash when closing processes (Xfce #14466)
Xfce Terminal ( to
  • Improved support for longer and more complex URLs
Xfce Weather Plugin (0.8.10-1build1 to 0.9.1-0ubuntu1)
  • Now with an adaptive forecast background!

    Port to GTK 3!

  • HTTPS is now used for all network connections (Xfce #13645)
  • The latest Sunrise API (version 2.0) is now used (Xfce #14972)
  • The displayed weather icon now respects the panel icon size
  • Improved forecast background with both dark and light themes
  • Improved spacing in the preference and forecast dialogs
Xfce Whisker Menu Plugin (2.2.1-1 to 2.3.1-1)
  • Fixed crash when the menu is reloaded
  • Fixed sidebar being wider than categories without icons
  • Added buttons for individual logout commands (Xfce #14639)
  • Added option to stay visible when focus is lost (Xfce #12240)
  • Improved spacing in the preferences dialog (Xfce #14683)
Xubuntu Artwork (18.10.3 to 19.04)
  • New desktop wallpaper for 19.04
  • New release-agnostic wallpaper for Plymouth (see below tweet for a video)

Xubuntu Default Settings (18.10.2 to 19.04.1)
  • Added F4 accelerator to open a Terminal in Thunar (LP #1793395)
  • Added Ctrl + Shift + F accelerator to open Catfish File Search from Thunar (LP #1793395)
  • Added Shift + Print accelerator to capture a region screenshot (LP #1812234)
  • Added GNOME/GTK 3 dconf keys for fonts (LP #1769774)
  • Added support for startup notifications in Thunar’s custom actions (LP #1794118)
  • The default inactivity mode is now set to Suspend on AC and Battery (LP #1768038)

Wrapping Up

You’re still here after all that, amazing! Excited about Xfce or Xubuntu, and want to help out? Share this post on your favorite social media and let everybody know how much you love our work. If you want to contribute (and anybody can, really!), check out the Xubuntu contributor documentation to learn how to get started.

on April 18, 2019 04:03 AM

April 17, 2019

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)

on April 17, 2019 10:50 AM
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.
on April 17, 2019 05:29 AM

April 16, 2019

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
Downloading https://cloud-images.ubuntu.com/bionic/current/bionic-server-cloudimg-amd64.img...
# 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 http://cdimage.debian.org/cdimage/openstack/testing/ 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 2019-04-16: the above is confirmed to work with Fedora 28 (though, if using the resulting image to test snapd, be sure to configure the password as ‘fedora’ and then be sure to ‘yum update ; yum install kernel-modules nc strace’ in the image).

UPDATE 2019-04-22: the above is confirmed to work with CentOS 7 (though, if using the resulting image to test snapd, be sure to configure the password as ‘centos’ and then be sure to ‘yum update ; yum install epel-release ; yum install golang nc 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’).

on April 16, 2019 04:36 PM

A Debian LTS logoLike 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.

on April 16, 2019 10:23 AM

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!

on April 16, 2019 08:29 AM

April 13, 2019

Help test Debian Live

Jonathan Carter


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.

on April 13, 2019 08:38 PM
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.

Escúchalo en:
on April 13, 2019 04:31 PM

April 11, 2019

S12E01 – Bombjack

Ubuntu Podcast from the UK LoCo

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 show@ubuntupodcast.org or Tweet us or Toot us or Comment on our Facebook page or comment on our sub-Reddit.

on April 11, 2019 02:00 PM

April 09, 2019

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
  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.

on April 09, 2019 04:11 PM

April 08, 2019

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.

on April 08, 2019 10:13 PM

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
on April 08, 2019 09:45 PM

April 07, 2019

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?

on April 07, 2019 04:56 PM

S01E53 – Call me, maybe…

Podcast Ubuntu Portugal

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!

  • https://scontent.fcrl1-1.fna.fbcdn.net/v/t1.0-9/56119527_2128894427176612_489627113557590016_o.jpg?_nc_cat=106&_nc_eui2=AeGrPCdNfpBhIhI1jkqPhqqcLlUoyE4VAnBLv2vywEAi69YW7jTc-Pqju5FfOmOJrXG349LOd8Z-0emIg2SAsDxaWs7ZcmFrS7YtCLVP277w8g&_nc_ht=scontent.fcrl1-1.fna&oh=7115cf8b631ba57ea75b83e2ed4c1ed5&oe=5D3D6207
  • https://open-store.io/app/teleports.ubports
  • https://forum.pine64.org/showthread.php?tid=7339
  • https://gettogether.community/ubports-southern-german-devs/
  • https://www.fairphone.com/en/2019/03/22/proving-our-case-fairphone-2-is-sold-out/
  • https://www.sprout.nl/artikel/nieuwsupdate/3-miljoen-voor-nieuwe-startup-van-oud-kopstukken-marktplaats-en-ilse-ruim-1?utm_medium=email&utm_source=nieuwsbrief-sprout&utm_campaign=nbr_20190403&SM_MD5=8d53220b037d7267d73a38007f559f63
  • https://podcastubuntuportugal.org/2018/12/06/s01e14-dos-oito-aos-oitenta/
  • https://nerdzoom.de/interview-mit-tanja-drca-ueber-necunos-nc_1/#english
  • https://ubuntu-mate.org/raspberry-pi/
  • https://www.collabora.com/news-and-blog/blog/2019/04/01/running-android-next-to-wayland/
  • https://snapcraft.io/blog/snap-startup-time-improvements
  • https://snapcraft.io/blog/i-have-a-need-a-need-for-snap
  • https://www.linuxfoundation.org/blog/2019/03/lvfs-project-announcement/
  • https://www.phoronix.com/scan.php?page=news_item&px=WineD3D-Initial-Vulkan-Adapter


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–gmail.com.

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.

on April 07, 2019 02:36 PM

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.

on April 07, 2019 09:14 AM

April 05, 2019

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)

on April 05, 2019 01:50 AM

April 04, 2019

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 kde.org (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.

Facebooktwitterlinkedinby feather
on April 04, 2019 01:50 PM

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 \

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 example.com with your domain, run:

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

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
  name: https-with-cert
    external-dns.alpha.kubernetes.io/hostname: "example.com"
    service.beta.kubernetes.io/do-loadbalancer-redirect-http-to-https: "true"
    service.beta.kubernetes.io/do-loadbalancer-certificate-id: "9r3e053d-da5e-4390-b7b8-0fs23486e41q"
  type: LoadBalancer
    app: nginx-example
    - name: https
      protocol: TCP
      port: 443
      targetPort: 80

apiVersion: extensions/v1beta1
kind: Deployment
  name: nginx-example
  replicas: 1
        app: nginx-example
      - name: nginx
        image: nginx
        - containerPort: 80
          protocol: TCP

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

    external-dns.alpha.kubernetes.io/hostname: "example.com"
    service.beta.kubernetes.io/do-loadbalancer-redirect-http-to-https: "true"
    service.beta.kubernetes.io/do-loadbalancer-certificate-id: "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:

  • external-dns.alpha.kubernetes.io/hostname - Specifies the domain name to be assigned to the service
  • service.beta.kubernetes.io/do-loadbalancer-certificate-id - Specifies the ID of the DigitalOcean managed SSL cert
  • service.beta.kubernetes.io/do-loadbalancer-redirect-http-to-https - 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].metadata.name}"`

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 record=example.com ttl=300 type=A zone=example.com
time="2019-04-04T01:19:12Z" level=info msg="Changing record." action=CREATE record=example.com ttl=300 type=TXT zone=example.com

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:

on April 04, 2019 04:00 AM

April 03, 2019

Snapcraft 3.3

Sergio Schvezov

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.
on April 03, 2019 05:05 PM

April 02, 2019

In episode 2x46 of the Bad Voltage podcast, Stuart Langridge predicts companies will finally embrace the USB-C connector in 2019. Which prompts both Jono Bacon and Jeremy Garcia to ask: "What doesn't ship with USB-C today"? Turns out a lot of devices still do...

The post The state of the USB-C connector in 2019 appeared first on LIEBERBIBER.

on April 02, 2019 12:13 PM

April 01, 2019

The ray-traced pictures

Stuart Langridge

A two-decade-long search is over.

A couple of years ago I wrote up the efforts required to recover a tiny sound demo for the Archimedes computer. In there, I made brief mention of a sample from an Arc sound editor named Armadeus, of a man saying “the mask, the ray-traced pictures, and finally the wire-frame city”. That wasn’t an idle comment. Bill and I have been looking for that sample for twenty years.

You’re thinking, I bet it’s not been twenty years. And you would be wrong. Here’s Bill posting to comp.sys.acorn in 2003, for a start.

My daughter knows about this sample. Jono knows about it. I use the phrase as a microphone test sentence, the same way other people use “testing, testing, 1, 2”. It’s lived in my head since I was in middle school, there on the Arc machines in CL0, which was Computer Lab Zero. (There was a CL1, which had the BBC Micros in it, on the first floor. I never did know whether CL0, which was on the ground floor, was a subtle joke about floor levels and computers’ zero-based numbering schemes, or if Mr Irons the teacher was just weird. He might have been weird. He thought the name for an exclamation mark was “pling”.)

Anyway, we got to talking about it again, and Bill said: to hell with this, I’ll just buy Armadeus. This act of selfless heroism earns him a gold medal. And a pint, yes it does. I’ll let him tell the story about that, and the mindblowing worthlessness of modern floppy drives, in his own time. But today it arrived, and now I have an mp3!

Interestingly, I thought it was in the other order. The sample actually says: “The ray-traced pictures. The mask. And finally, the wire-frame city.” I thought “the mask” was first, and it isn’t. Still, memory plays tricks on you after this many years. Apparently it’s from a Clares sound and music demo originally (Clares were the (defunct) company that made Armadeus. The name appears to have risen from the dead a couple of times since. No idea who they are now, if anyone.) Anyway, I don’t care; I’ve got it now. And it’s on my website, which means it will never go away. We found it once before and then lost the sample; I’m not making the same mistake again. Is this how Indy felt when he found the Ark?

Also, a shout out to arcem, which is an Archimedes emulator which runs fine on Ubuntu. It’s a pain in the bum to set up — you have to compile it, find ROMs, turn on sound support, use weird keypresses, set up hard drives in an incomprehensible text file, etc; someone ought to snap it or something so it’s easier — but it’s been rather nice revisiting a lot of the Arc software that’s still collected and around for download. Desktop sillies. Someone should bring desktop sillies back to modern desktops. And reconnecting to Arcade BBS, who need to fix all their FTP links to point to telnet.arcade-bbs.net rather than the now-dead arcade.demon.co.uk. I got to watch !DeskDuck again, which was a small mallard duck that swum up and down along the top of your icon bar. And a bunch of old demos from BIA and Arcangel and so on. I’d forgotten a bit how much I liked RISC OS, and in particular that it’s so fast to start up. Bring that back.

Nice one Bill. Time for a pint.

on April 01, 2019 03:41 PM

March 29, 2019

Full Circle Magazine #143

Full Circle Magazine

This month:
* Command & Conquer
* How-To : Python, Freeplane, and Darktable
* Graphics : Inkscape
* Ubuntu Devices: OTA-8
* My Opinion: GDPR Pt3
* Linux Loopback: BSD
* Book Review: Practical Binary Analysis
* Interview: Simon Quigley (Lubuntu)
* Ubuntu Games: This Is The Police 2
plus: News, The Daily Waddle, Q&A, and more.

Get it while it’s hot: https://fullcirclemagazine.org/issue-143/

on March 29, 2019 07:30 PM

Last post. I’m gone.

Kurt von Finck

Last post. I’m gone.



I’m “mneptok” just about everywhere. I’ll see you all in the next life, when we are all cats.


on March 29, 2019 02:57 AM

March 26, 2019

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

Individual reports

In February, about 204.5 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).
  • Antoine Beaupré did 16 hours (out of 19.5 hours allocated + 11.5 extra hours, but gave back the remaining hours because he wanted to stop working on LTS).
  • Ben Hutchings did 4 hours (out of 19.5 hours allocated plus 1 extra hour, thus keeping 16.5 extra hours for March).
  • Brian May did 10 hours (out of 10 hours allocated).
  • Chris Lamb did 18 hours (out of 18 hours allocated).
  • Emilio Pozuelo Monfort did 20.5 hours (out of 19.5 hours allocated + 3.25 extra hours, thus keeping 2.25 hours for March).
  • Hugo Lefeuvre did 19.5 hours (out of 19.5 hours allocated).
  • Markus Koschany did 19.5 hours (out of 19.5 hours allocated).
  • Mike Gabriel did 6 hours (out of 10 hours allocated, thus keeping 4 extra hours for March).
  • Ola Lundqvist did 14 hours (out of 8 hours allocated + 8 extra hours, thus keeping 2 extra hours for March).
  • Roberto C. Sanchez did 13.25 hours (out of 19.5 hours allocated + 9.75 extra hours, but he gave back the remaining hours).
  • Thorsten Alteholz did 19.5 hours (out of 19.5 hours allocated).

Evolution of the situation

The number of sponsors (and thus the funding level) did not change for a couple of months. On the contributors side, we have some turn-over: Antoine Beaupré is stopping after many years of good work. Many thanks to him! Fortunately, Sylvain Beucler just started and the workload did not increase too much on existing contributors. But we are still looking for more paid LTS contributors.

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

Thanks to our sponsors

New sponsors are in bold (none this month).

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

on March 26, 2019 12:59 PM