Feed aggregator

Bryan Quigley: When should i386 support for Ubuntu end?

Planet Ubuntu - Tue, 06/28/2016 - 13:04

Are you running i386 (32-bit) Ubuntu?   We need your help to decide how much longer to build i386 images of Ubuntu Desktop, Server, and all the flavors.

There is a real cost to support i386 and the benefits have fallen as more software goes 64-bit only.

Please fill out the survey here ONLY if you currently run i386 on one of your machines.  64-bit users will NOT be affected by this, even if you run 32-bit applications.

Ubuntu Weekly Newsletter Issue 471

The Fridge - Mon, 06/27/2016 - 19:19

Sergio Schvezov: The Snapcraft Parts Ecosystem

Planet Ubuntu - Mon, 06/27/2016 - 08:57

Today I am going to be discussing parts. This is one of the pillars of snapcraft (together with plugins and the lifecycle).

For those not familiar, this is snapcraft’s general purpose landing page, http://snapcraft.io/ but if you are a developer and have already been introduced to this new world of snaps, you probably want to just go and hop on to http://snapcraft.io/create/

If you go over this snapcraft tour you will notice the many uses of parts and start to wonder how to get started or think that maybe you are duplicating work done by others, or even better, maybe an upstream. This is where we start to think about the idea of sharing parts and this is exactly what we are going to go over in this post.

To be able to reproduce what follows, you’d need to have snapcraft 2.12 installed.

An overview to using remote parts

So imagine I am someone wanting to use libcurl. Normally I would write the part definition from scratch and be on with my own business but surely I might be missing out on something about optimal switches used to configure the package or even build it. I would also need to research on how to use the specific plugin required. So instead, I’ll see if someone already has done the work for me, hence I will,

$ snapcraft update Updating parts list... | $ snapcraft search curl PART NAME DESCRIPTION curl A tool and a library (usable from many languages) for client side URL tra...

Great, there’s a match, but is this what I want?

$ snapcraft define curl Maintainer: 'Sergio Schvezov <sergio.schvezov@ubuntu.com>' Description: 'A tool and a library (usable from many languages) for client side URL transfers, supporting FTP, FTPS, HTTP, HTTPS, TELNET, DICT, FILE and LDAP.' curl: configflags: - --enable-static - --enable-shared - --disable-manual plugin: autotools snap: - -bin - -lib/*.a - -lib/pkgconfig - -lib/*.la - -include - -share source: http://curl.haxx.se/download/curl-7.44.0.tar.bz2 source-type: tar

Yup, it’s what I want.

An example

There are two ways to use these parts in your snapcraft.yaml, say this is your parts section

parts: client: plugin: autotools source: .

My client part which is using sources that sit alongside this snapcraft.yaml, will hypothetically fail to build as it depends on the curl library I don’t yet have. There are some options here to get this going, one using after in the part definition implicitly, another involving composing and last but not least just copy pasting what snapcraft define curl returned for the part.


The implicit path is really straightforward. It only involves making the part look like:

parts: client: plugin: autotools source: . after: [curl]

This will use the cached definition of the part and may potentially be updated by running snapcraft update.


What if we like the part, but want to try out a new configure flag or source release? Well we can override pieces of the part; so for the case of wanting to change the source:

parts: client: plugin: autotools source: . after: [curl] curl: source: http://curl.haxx.se/download/curl-7.45.0.tar.bz2

And we will get to build curl but using a newer version of curl. The trick is that the part definition here is missing the plugin entry, thereby instructing snapcraft to look for the full part definition from the cache.


This path is a path one would take if they want full control over the part. It is as simple as copying in the part definition we got from running snapcraft define curl into your own. For the sake of completeness here’s how it would look like:

parts: client: plugin: autotools source: . after: [curl] curl: configflags: - --enable-static - --enable-shared - --disable-manual plugin: autotools snap: - -bin - -lib/*.a - -lib/pkgconfig - -lib/*.la - -include - -share source: http://curl.haxx.se/download/curl-7.44.0.tar.bz2 source-type: tar Sharing your part

Now what if you have a part and want to share it with the rest of the world? It is rather simple really, just head over to https://wiki.ubuntu.com/snapcraft/parts and add it.

In the case of curl, I would write a yaml document that looks like:

origin: https://github.com/sergiusens/curl.git maintainer: Sergio Schvezov <sergio.schvezov@ubuntu.com> description: A tool and a library (usable from many languages) for client side URL transfers, supporting FTP, FTPS, HTTP, HTTPS, TELNET, DICT, FILE and LDAP. project-part: curl

What does this mean? Well, the part itself is not defined on the wiki, just a pointer to it with some meta data, the part is really defined inside a snapcraft.yaml living in the origin we just told it to use.

The extent of the keywords is explained in the documentation, that is an upstream link to it.

The core idea is that a maintainer decides he wants to share a part. Such a maintainer would add a description that provides an idea of what that part (or collection of parts) is doing. Then, last but not least, the maintainer declares which parts to expose to the world as maybe not all of them should. The main part is exposed in project-part and will carry a top level name, the maintainer can expose more parts from snapcraft.yaml using the general parts keyword. These parts will be namespaced with the project-part.

Alessio Treglia: A – not exactly United – Kingdom

Planet Ubuntu - Mon, 06/27/2016 - 00:54


Island of Ventotene – Roman harbour

There once was a Kingdom strongly United, built on the honours of the people of Wessex, of Mercia, Northumbria and East Anglia who knew how to deal with the invasion of the Vikings from the east and of Normans from the south, to come to unify the territory under an umbrella of common intents. Today, however, 48% of them, while keeping solid traditions, still know how to look forward to the future, joining horizons and commercial developments along with the rest of Europe. The remaining 52%, however, look back and can not see anything in front of them if not a desire of isolation, breaking the European dream born on the shores of Ventotene island in 1944 by Altiero Spinelli, Ernesto Rossi and Ursula Hirschmann through the “Manifesto for a free and united Europe“. An incurable fracture in the country was born in a referendum on 23 June, in which just over half of the population asked to terminate his marriage to the great European family, bringing the UK back by 43 years of history.

<Read More…[by Fabio Marzocca]>

Paul Tagliamonte: Hello, Sense!

Planet Ubuntu - Sun, 06/26/2016 - 18:42

A while back, I saw a Kickstarter for one of the most well designed and pretty sleep trackers on the market. I fell in love with it, and it has stuck with me since.

A few months ago, I finally got my hands on one and started to track my data. Naturally, I now want to store this new data with the rest of the data I have on myself in my own databases.

I went in search of an API, but I found that the Sense API hasn't been published yet, and is being worked on by the team. Here's hoping it'll land soon!

After some subdomain guessing, I hit on api.hello.is. So, naturally, I went to take a quick look at their Android app and network traffic, lo and behold, there was a pretty nicely designed API.

This API is clearly an internal API, and as such, it's something that should not be considered stable. However, I'm OK with a fragile API, so I've published a quick and dirty API wrapper for the Sense API to my GitHub..

I've published it because I've found it useful, but I can't promise the world, (since I'm not a member of the Sense team at Hello!), so here are a few ground rules of this wrapper:

  • I make no claims to the stability or completeness.
  • I have no documentation or assurances.
  • I will not provide the client secret and ID. You'll have to find them on your own.
  • This may stop working without any notice, and there may even be really nasty bugs that result in your alarm going off at 4 AM.
  • Send PRs! This is a side-project for me.

This module is currently Python 3 only. If someone really needs Python 2 support, I'm open to minimally invasive patches to the codebase using six to support Python 2.7.

Working with the API:

First, let's go ahead and log in using python -m sense.

$ python -m sense Sense OAuth Client ID: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx Sense OAuth Client Secret: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx Sense email: paultag@gmail.com Sense password: Attempting to log into Sense's API Success! Attempting to query the Sense API The humidity is **just right**. The air quality is **just right**. The light level is **just right**. It's **pretty hot** in here. The noise level is **just right**. Success!

Now, let's see if we can pull up information on my Sense:

>>> from sense import Sense >>> sense = Sense() >>> sense.devices() {'senses': [{'id': 'xxxxxxxxxxxxxxxx', 'firmware_version': '11a1', 'last_updated': 1466991060000, 'state': 'NORMAL', 'wifi_info': {'rssi': 0, 'ssid': 'Pretty Fly for a WiFi (2.4 GhZ)', 'condition': 'GOOD', 'last_updated': 1462927722000}, 'color': 'BLACK'}], 'pills': [{'id': 'xxxxxxxxxxxxxxxx', 'firmware_version': '2', 'last_updated': 1466990339000, 'battery_level': 87, 'color': 'BLUE', 'state': 'NORMAL'}]}

Neat! Pretty cool. Look, you can even see my WiFi AP! Let's try some more and pull some trends out.

>>> values = [x.get("value") for x in sense.room_sensors()["humidity"]][:10] >>> min(values) 45.73904 >>> max(values) 45.985928 >>>

I plan to keep maintaining it as long as it's needed, so I welcome co-maintainers, and I'd love to see what people build with it! So far, I'm using it to dump my room data into InfluxDB, pulling information on my room into Grafana. Hopefully more to come!

Happy hacking!

Dustin Kirkland: HOWTO: Host your own SNAP store!

Planet Ubuntu - Sun, 06/26/2016 - 18:09

SNAPs are the cross-distro, cross-cloud, cross-device Linux packaging format of the future.  And we're already hosting a fantastic catalog of SNAPs in the SNAP store provided by Canonical.  Developers are welcome to publish their software for distribution across hundreds millions of Ubuntu servers, desktops, and devices.

Several people have asked the inevitable open source software question, "SNAPs are awesome, but how can I stand up my own SNAP store?!?"

The answer is really quite simple...  SNAP stores are really just HTTP web servers!  Of course, you can get fancy with branding, and authentication, and certificates.  But if you just want to host SNAPs and enable downstream users to fetch and install software, well, it's pretty trivial.

In fact, Bret Barker has published an open source (Apache License) SNAP store on GitHub.  We're already looking at how to flesh out his proof-of-concept and bring it into snapcore itself.

Here's a little HOWTO install and use it.

First, I launched an instance in AWS.  Of course I could have launched an Ubuntu 16.04 LTS instance, but actually, I launched a Fedora 24 instance!  In fact, you could run your SNAP store on any OS that currently supports SNAPs, really, or even just fork this GitHub repo and install it stand alone..  See snapcraft.io.

Now, let's find and install a snapstore SNAP.  (Note that in this AWS instance of Fedora 24, I also had to 'sudo yum install squashfs-tools kernel-modules'.

At this point, you're running a SNAP store (webserver) on port 5000.

Now, let's reconfigure snapd to talk to our own SNAP store, and search for a SNAP.

Finally, let's install and inspect that SNAP.

How about that?  Easy enough!


Dimitri John Ledkov: Post-Brexit - The What Now?

Planet Ubuntu - Sat, 06/25/2016 - 12:24
Out of 46,500,001 electorate 17,410,742 voted to leave, which is a mere 37.4% or just over a third. [source]. On my books this is not a clear expression of the UK wishes.

The reaction that the results have caused are devastating. The Scottish First Minister has announced plans for 2nd Scottish Independence referendum [source]. Londoners are filing petitions calling for Independent London [source, source]. The Prime Minister announced his resignation [source]. Things are not stable.
I do not believe that super majority of the electorate are in favor of leaving the EU. I don't even believe that those who voted to leave have considered the break up of the UK as the inevitable outcome of the leave vote. There are numerous videos on the internet about that, impossible to quantify or reliably cite, but for example this [source]
So What Now?
I urge everyone to start protesting the outcome of the mistake that happened last Thursday. 4th of July is a good symbolic date to show your discontent with the UK governemnt and a tiny minority who are about to cause the country to fall apart with no other benefits. Please stand up and make yourself heard.
  • General Strikes 4th & 5th of July
There are 64,100,000 people living in the UK according to the World Bank, maybe the government should fear and listen to the unheard third. The current "majority" parliament was only elected by 24% of electorate.

It is time for people to actually take control, we can fix our parliament, we can stop austerity, we can prevent the break up of the UK, and we can stay in the EU. Over to you.

ps. How to elect next PM?

Electing next PM will be done within the Conservative Party, and that's kind of a bummer, given that the desperate state the country currently is in. It is not that hard to predict that Boris Johnson is a front-runner. If you wish to elect a different PM, I urge you to splash out 25 quid and register to be a member of the Conservative Party just for one year =) this way you will get a chance to directly elect the new Leader of the Conservative Party and thus the new Prime Minister. You can backdoor the Conservative election here.

Simos Xenitellis: Trying out LXD containers on our Ubuntu

Planet Ubuntu - Sat, 06/25/2016 - 05:26

This post is about containers, a construct similar to virtual machines (VM) but so much lightweight that you can easily create a dozen on your desktop Ubuntu!

A VM virtualizes a whole computer and then you install in there the guest operating system. In contrast, a container reuses the host Linux kernel and simply contains just the root filesystem (aka runtimes) of our choice. The Linux kernel has several features that rigidly separate the running Linux container from our host computer (i.e. our desktop Ubuntu).

By themselves, Linux containers would need some manual work to manage them directly. Fortunately, there is LXD (pronounced Lex-deeh), a service that manages Linux containers for us.

We will see how to

  1. setup our Ubuntu desktop for containers,
  2. create a container,
  3. install a Web server,
  4. test it a bit, and
  5. clear everything up.
Set up your Ubuntu for containers

If you have Ubuntu 16.04, then you are ready to go. Just install a couple of extra packages that we see below. If you have Ubuntu 14.04.x or Ubuntu 15.10, see LXD 2.0: Installing and configuring LXD [2/12] for some extra steps, then come back.

Make sure the package list is up-to-date:

sudo apt update sudo apt upgrade

Install the lxd package:

sudo apt install lxd

If you have Ubuntu 16.04, you can enable the feature to store your container files in a ZFS filesystem. The Linux kernel in Ubuntu 16.04 includes the necessary kernel modules for ZFS. For LXD to use ZFS for storage, we just need to install a package with ZFS utilities. Without ZFS, the containers would be stored as separate files on the host filesystem. With ZFS, we have features like copy-on-write which makes the tasks much faster.

Install the zfsutils-linux package (if you have Ubuntu 16.04.x):

sudo apt install zfsutils-linux

Once you installed the LXD package on the desktop Ubuntu, the package installation scripts should have added you to the lxd group. If your desktop account is a member of that group, then your account can manage containers with LXD and can avoid adding sudo in front of all commands. The way Linux works, you would need to log out from the desktop session and then log in again to activate the lxd group membership. (If you are an advanced user, you can avoid the re-login by newgrp lxd in your current shell).

Before use, LXD should be initialized with our storage choice and networking choice.

Initialize lxd for storage and networking by running the following command:

$ sudo lxd init Name of the storage backend to use (dir or zfs): zfs Create a new ZFS pool (yes/no)? yes Name of the new ZFS pool: lxd-pool Would you like to use an existing block device (yes/no)? no Size in GB of the new loop device (1GB minimum): 30 Would you like LXD to be available over the network (yes/no)? no Do you want to configure the LXD bridge (yes/no)? yes > You will be asked about the network bridge configuration. Accept all defaults and continue. Warning: Stopping lxd.service, but it can still be activated by: lxd.socket LXD has been successfully configured. $ _

We created the ZFS pool as a filesystem inside a (single) file, not a block device (i.e. in a partition), thus no need for extra partitioning. In the example I specified 30GB, and this space will come from the root (/) filesystem. If you want to look at this file, it is at /var/lib/lxd/zfs.img.


That’s it! The initial configuration has been completed. For troubleshooting or background information, see https://www.stgraber.org/2016/03/15/lxd-2-0-installing-and-configuring-lxd-212/

Create your first container

All management commands with LXD are available through the lxc command. We run lxc with some parameters and that’s how we manage containers.

lxc list

to get a list of installed containers. Obviously, the list will be empty but it verifies that all are fine.

lxc image list

shows the list of (cached) images that we can use to launch a container. Obviously, the list will be empty but it verifies that all are fine.

lxc image list ubuntu:

shows the list of available remote images that we can use to download and launch as containers. This specific list shows Ubuntu images.

lxc image list images:

shows the list of available remote images for various distributions that we can use to download and launch as containers. This specific list shows all sort of distributions like Alpine, Debian, Gentoo, Opensuse and Fedora.

Let’s launch a container with Ubuntu 16.04 and call it c1:

$ lxc launch ubuntu:x c1 Creating c1 Starting c1 $ _

We used the launch action, then selected the image ubuntu:x (x is an alias for the Xenial/16.04 image) and lastly we use the name c1 for our container.

Let’s view our first installed container,

$ lxc list +---------+---------+----------------------+------+------------+-----------+ | NAME | STATE | IPV4 | IPV6 | TYPE | SNAPSHOTS | +---------+---------+----------------------+------+------------+-----------+ | c1 | RUNNING | (eth0) | | PERSISTENT | 0 | +---------+---------+----------------------+------+------------+-----------+

Our first container c1 is running and it has an IP address (accessible locally). It is ready to be used!

Install a Web server

We can run commands in our container. The action for running commands, is exec.

$ lxc exec c1 -- uptime 11:47:25 up 2 min, 0 users, load average: 0.07, 0.05, 0.04 $ _

After the action exec, we specify the container and finally we type command to run inside the container. The uptime is just 2 minutes, it’s a fresh container :-).

The — thing on the command line has to do with parameter processing of our shell. If our command does not have any parameters, we can safely omit the –.

$ lxc exec c1 -- df -h

This is an example that requires the –, because for our command we use the parameter -h. If you omit the –, you get an error.

Let’s get a shell in the container, and update the package list already.

$ lxc exec c1 bash root@c1:~# apt update Ign http://archive.ubuntu.com trusty InRelease Get:1 http://archive.ubuntu.com trusty-updates InRelease [65.9 kB] Get:2 http://security.ubuntu.com trusty-security InRelease [65.9 kB] ... Hit http://archive.ubuntu.com trusty/universe Translation-en Fetched 11.2 MB in 9s (1228 kB/s) Reading package lists... Done root@c1:~# apt upgrade Reading package lists... Done Building dependency tree ... Processing triggers for man-db ( ... Setting up dpkg (1.17.5ubuntu5.7) ... root@c1:~# _

We are going to install nginx as our Web server. nginx is somewhat cooler than Apache Web server.

root@c1:~# apt install nginx Reading package lists... Done Building dependency tree ... Setting up nginx-core (1.4.6-1ubuntu3.5) ... Setting up nginx (1.4.6-1ubuntu3.5) ... Processing triggers for libc-bin (2.19-0ubuntu6.9) ... root@c1:~# _

Let’s view our Web server with our browser. Remeber the IP address you got, so I enter it into my browser.

Let’s make a small change in the text of that page. Back inside our container, we enter the directory with the default HTML page.

root@c1:~# cd /var/www/html/ root@c1:/var/www/html# ls -l total 2 -rw-r--r-- 1 root root 612 Jun 25 12:15 index.nginx-debian.html root@c1:/var/www/html#

We can edit the file with nano, then save

Finally, let’s check the page again,

Clearing up

Let’s clear up the container by deleting it. We can easily create new ones when we need them.

$ lxc list +---------+---------+----------------------+------+------------+-----------+ | NAME | STATE | IPV4 | IPV6 | TYPE | SNAPSHOTS | +---------+---------+----------------------+------+------------+-----------+ | c1 | RUNNING | (eth0) | | PERSISTENT | 0 | +---------+---------+----------------------+------+------------+-----------+ $ lxc stop c1 $ lxc delete c1 $ lxc list +---------+---------+----------------------+------+------------+-----------+ | NAME | STATE | IPV4 | IPV6 | TYPE | SNAPSHOTS | +---------+---------+----------------------+------+------------+-----------+ +---------+---------+----------------------+------+------------+-----------+

We stopped (shutdown) the container, then we deleted it.

That’s all. There are many more ideas on what do with containers. Here are the first steps on setting up our Ubuntu desktop and trying out one such container.

Valorie Zimmerman: Akademy! and fundraising

Planet Ubuntu - Fri, 06/24/2016 - 16:07

Akademy is approaching! And I can hardly wait. This spring has been personally difficult, and meeting with friends and colleagues is the perfect way to end the summer. This year will be special because it's in Berlin, and because it is part of Qt.con, with a lot of our freedom-loving friends, such as Qt, VideoLAN, Free Software Foundation Europe and KDAB. As usual, Kubuntu will also be having our annual meetup there.

Events are expensive! KDE needs money to support Akademy the event, support for those who need travel and lodging subsidy, support for other events such as our Randa Meetings, which just successfully ended. We're still raising money to support the sprints:


Of course that money supports Akademy too, which is our largest annual meeting.

Ubuntu helps here too! The Ubuntu Community fund sends many of the Kubuntu team, and often funds a shared meal as well. Please support the Ubuntu Community Fund too if you can!

I'm going!

I can't seem to make the image a link, so go to https://qtcon.org/ for more information.

Ubuntu Insights: HOWTO: Host your own SNAP store!

Planet Ubuntu - Fri, 06/24/2016 - 12:58

SNAPs are the cross-distro, cross-cloud, cross-device Linux packaging format of the future.  And we’re already hosting a fantastic catalog of SNAPs in the SNAP store provided by Canonical.  Developers are welcome to publish their software for distribution across hundreds millions of Ubuntu servers, desktops, and devices.

Several people have asked the inevitable open source software question, “SNAPs are awesome, but how can I stand up my own SNAP store?!?”

The answer is really quite simple…  SNAP stores are really just HTTP web servers!  Of course, you can get fancy with branding, and authentication, and certificates.  But if you just want to host SNAPs and enable downstream users to fetch and install software, well, it’s pretty trivial.

In fact, Bret Barker has published an open source (Apache License) SNAP store on GitHub.  We’re already looking at how to flesh out his proof-of-concept and bring it into snapcore itself.

Here’s a little HOWTO install and use it.

First, I launched an instance in AWS.  Of course I could have launched an Ubuntu 16.04 LTS instance, but actually, I launched a Fedora 24 instance!  In fact, you could run your SNAP store on any OS that currently supports SNAPs, really, or even just fork this GitHub repo and install it stand alone..  See snapcraft.io.

Now, let’s find and install a snapstore SNAP.  (Note that in this AWS instance of Fedora 24, I also had to ‘sudo yum install squashfs-tools kernel-modules’.

At this point, you’re running a SNAP store (webserver) on port 5000.

Now, let’s reconfigure snapd to talk to our own SNAP store, and search for a SNAP.

Finally, let’s install and inspect that SNAP.<

How about that?  Easy enough!

Original article

Dirk Deimeke: Linkdump 25/2016 ...

Planet Ubuntu - Thu, 06/23/2016 - 20:36

Nettigkeiten der vergangenen Woche.

Eine der besten Zusammenfassungen, warum man sein eigenes Blog starten sollte: Starte (d)ein Blog – heute!

Dies ist keine Übung - externe Festplatten werden im schlimmsten Fall übrigens auch verschlüsselt. In jedem Fall sollte man die Verschlüsselung rechtzeitig bemerken, sonst ist Essig mit Restore.

Es lohnt sich der Aufwand, sich selber kennen zu lernen. Man könnte sogar ein ganz netter Typ sein. Positives Selbstwertgefühl, wie Sie Ihre persönlichen Stärken im Job am besten einsetzen.

The Life-Changing Magic Of Shorter Emails comes from the "Captain Obvious Department" ... (sorry!).

Ja, wissen wir, aber Ausbildung tut trotzdem Not. Der Fachkräftemangel ist ein Phantom.

The Epic Story of Dropbox’s Exodus From the Amazon Cloud Empire - nice one about a major infrastructure change without interruption of service.

Billig ist nicht immer günstig, auch wenn es sehr einfach wirkt, Fachwissen ist dennoch nötig: Auf diese Aspekte müssen Admins achten.

Xubuntu: Looking for memorable and fun Xubuntu stories!

Planet Ubuntu - Thu, 06/23/2016 - 14:12

To celebrate Xubuntu’s tenth birthday*, the Xubuntu team is glad to announce a new campaign and competition!

We’re looking for your most memorable and fun Xubuntu story. In order to participate, submit the story to xubuntu-contacts@lists.ubuntu.com. Or you may share an image (photo, drawing, painting, etc) to Elizabeth K. Joseph <lyz@ubuntu.com> and Pasi Lallinaho <pasi@shimmerproject.org>, please restrict your file size to a maximum of 5M.

For example, have you shared Xubuntu with a friend or family member, and had them react in a memorable way? Or have you created Xubuntu-themed cookies, cakes or artwork? No story or experience is too simple to share and don’t be restricted by these examples, surprise us!

Bonus: Share it on Twitter and hashtag it with #LoveXubuntu and during the competition, the Xubuntu team will retweet a posts on the Twitter account for Xubuntu. Additionally, we encourage to share your stories all over the social media!

At the end of the competition, we will select 5 finalists. All finalists will receive a set of Xubuntu stickers from UnixStickers! We will pick 2 winners from the finalists who will also receive a Xubuntu t-shirt! We will be in touch with the finalists and winners after the contest has ended to check their address details and preferred t-shirt size and color (for winners).

Notes on licensing: Submissions to the #LoveXubuntu campaign will be accepted under the CC BY-SA 4.0 license and available for use for Xubuntu marketing in the future without further consent from the participants. That said, we’re friendly folks and will try to communicate with you before using your story or image!

* The first official Xubuntu release was 6.06, released on June 1, 2006.

Kubuntu: Kubuntu Dojo 2 – Kubuntu Ninjas

Planet Ubuntu - Thu, 06/23/2016 - 11:22
Want to get deeper under the hood with Kubuntu?

Interested in becoming a developer?

Then come and join us in the Kubuntu Dojo:

Thursday 30th June 2016 – 18:00 UTC

Packaging is one of the primary development tasks in a large Linux distribution project. Packaging is the essential way of getting the latest and best software to the user.

We continue our Kubuntu Dojo and Ninja developers training courses. These courses are free to attend, and take place on the last Thursday of the month at 18:00 UTC.

This is course number 2, where we will look at Debian and Ubuntu packaging. Candidates will create their first packages including uploading them to their own PPA on LaunchPad, all deliver inside our online video classroom.

Details for accessing the Kubuntu Big Blue Button Conference server will be announced in the G+ event stream, and on IRC: irc://irc.freenode.net


Why it rocks

All the cool kids are doing it.
Packagers know everyone.
Not only will you be part of an elite group, but also get to know with Debian’s finest, as well as KDE developers and other application developers.

For more details about the Kubuntu Ninja’s programme see our wiki:


Ubuntu Podcast from the UK LoCo: S09E17 – Sherlock Holmes’ Smarter Brother - Ubuntu Podcast

Planet Ubuntu - Thu, 06/23/2016 - 07:00

It’s Episode Seventeen of Season Nine of the Ubuntu Podcast! Mark Johnson, Alan Pope, Laura Cowen, Martin Wimpress, and Mycroft are here and speaking to your brain.

We’re here – all of us!

In this week’s show:

That’s all for this week! 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 Comment on our Facebook page or comment on our Google+ page or comment on our sub-Reddit.

Jonathan Riddell: KDE neon Press Coverage and Comments

Planet Ubuntu - Tue, 06/21/2016 - 15:29

KDE neon User Edition 5.6 came out a couple of weeks ago, let’s have a look at the commentry.

Phoronix stuck to their reputation by announcing it a day early but redeemed them selves with a follow up article KDE neon: The Rock & Roll Distribution. “KDE neon feels amazing. There’s simply no other way to say it.

CIO had an exclusive interview with moi, “It is a continuously updated installable image that can be used not just for exploration and testing but as the main operating system for people enthusiastic about the latest desktop software.”

For the Spanish speaker MuyLinux wrote KDE Neon lanza su primera versión para usuarios. “La primera impresión ha sido buena.” or “The first impression was good”.

On YouTube we got a review from Jeff Linux Turner. “This thing’s actually pretty good.  I like it.” While Wooden User gives an unvoiced tour with funky music.  Riba Linux has the same but with more of an indy soundtrack.

Reddit had several threads on it including a review by luxitanium which I’ll selectively quote with “Is it ready for consumers? It is definitely getting there, oh yes“.

The award winning Spanish language KDE Blog covered Probando KDE Neon User Edition 5.6. “Estamos ante un gran avance para la Comunidad KDE” or “We are facing a breakthrough for the KDE Community“.

Meanwhile on Twitter:

@KdeNeon @kdecommunity The release model you have chosen is working well !

— Morgan Cox (@morgancox_uk) June 15, 2016

@KdeNeon @kdecommunity Perfect timing, I just received my new @system76 Lemur laptop yesterday. I will install KDE Neon on it tonight!

— Jean-François Juneau (@jfjuneau) June 9, 2016

Want to meet the genius behind the neon light? Harald is giving a talk at the opensuse conference on Thursday. Do drop by in Nürnberg.


Forums Council: New Ubuntu Member via forums contributions

Planet Ubuntu - Tue, 06/21/2016 - 10:23

Please welcome our newest Member, vasa1.

Not only vasa1 has been a long time contributor to the forums, but he’s also a member of the Forums Staff.

vasa1’s application thread can be viewed here.

Congratulations from the Forums Council!

If you have been a contributor to the forums and wish to apply to Ubuntu Membership, please follow the process outlined here.

Ubuntu Weekly Newsletter Issue 470

The Fridge - Mon, 06/20/2016 - 17:37

Welcome to the Ubuntu Weekly Newsletter. This is issue #470 for the week June 13 – 19, 2016, and the full version is available here.

In this issue we cover:

The issue of The Ubuntu Weekly Newsletter is brought to you by:

  • Elizabeth K. Joseph
  • Paul White
  • Simon Quigley
  • 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, content in this issue is licensed under a Creative Commons Attribution 3.0 License BY SA Creative Commons License

Dustin Kirkland: HOWTO: Classic, apt-based Ubuntu 16.04 LTS Server on the rpi2!

Planet Ubuntu - Mon, 06/20/2016 - 12:35
Classic Ubuntu 16.04 LTS, on an rpi2Hopefully by now you're well aware of Ubuntu Core -- the snappiest way to run Ubuntu on a Raspberry Pi...

But have you ever wanted to run classic (apt/deb) Ubuntu Server on a RaspberryPi2?

Well, you're in luck!  Follow these instructions, and you'll be up in running in minutes!
First, download the released image (214MB):
$ wget http://cdimage.ubuntu.com/releases/16.04/release/ubuntu-16.04-preinstalled-server-armhf+raspi2.img.xz

Next, uncompress it:

$ unxz *xz

Now, write it to a microSD card using dd.  I'm using the card reader built into my Thinkpad, but you might use a USB adapter.  You'll need to figure out the block device of your card, and perhaps unmount it, if necessary.  Then, you can write the image to disk:

$ sudo dd if=ubuntu-16.04-preinstalled-server-armhf+raspi2.img of=/dev/mmcblk0 bs=32M
$ sync

Now, pop it into your rpi2, and power it on.

If it's connected to a USB mouse and an HDMI monitor, then you'll land in a console where you can login with the username 'ubuntu' and password 'ubuntu', and then you'll be forced to choose a new password.

Assuming it has an Ethernet connection, it should DHCP.  You might need to check your router to determine what IP address it got, or it sets it's hostname to 'ubuntu'.  In my case, I could automatically resolve it on my network, at ubuntu.canyonedge, with IP address, and ssh to it:

$ ssh ubuntu@ubuntu.canyonedge

Again, you can login on first boot with password 'ubuntu' and you're required to choose a new password.

On first boot, it will automatically resize the filesystem to use all of the available space on the MicroSD card -- much nicer than having to resize2fs yourself in some offline mode!

Now, you're off and running.  Have fun with sudo, apt, byobu, lxd, docker, and everything else you'd expect to find on a classic Ubuntu server ;-)  Heck, you'll even find the snap command, where you'll be able to install snap packages, right on top of your classic Ubuntu Server!  And if that doesn't just bake your noodle...


Aurélien Gâteau: Doxyqml 0.3.0 released

Planet Ubuntu - Mon, 06/20/2016 - 10:59

The master branch of Doxyqml, a QML input filter for Doxygen, had been waiting for a release for a long time. Olivier Churlaud, the new KApidox hero, reported that it did not work with Python 3 and submitted a patch to fix this. I integrated his patch, fixed a few other things, set up Travis to test future commits and finally released Doxyqml 0.3.0, featuring the following changes:

  • Port to Python 3 (Olivier Churlaud, Aurélien Gâteau)
  • Skip directory imports (Aurélien Gâteau)
  • Support comment after class declaration (Cédric Cabessa)
  • Find qmldir for relative paths (Mathias Hasselmann)
  • Read import statements to help base class lookup (Mathias Hasselmann)
  • Generate qualified component names (Mathias Hasselmann)
  • Handle singleton pragmas (Mathias Hasselmann)

Note that this new version is Python 3 only, I think it is safe to assume that Python 3 is widespread enough nowadays that this should not be a problem.

Ubuntu Membership Board call for nominations

The Fridge - Mon, 06/20/2016 - 09:46

As you may know, Ubuntu Membership is a recognition of significant and sustained contribution to Ubuntu and the Ubuntu community. To this end, the Community Council recruits members of our current membership community for the valuable role of reviewing and evaluating the contributions of potential members to bring them on board or assist with having them achieve this goal.

We have seven members of our boards expiring from their 2 year terms within the next couple months, which means we need to do some restaffing of this Membership Board.

We’re looking for Ubuntu Members who can participate either in the 20:00 UTC meetings or 22:00 UTC (if you can make both, even better).

Both the 20:00 UTC and the 22:00 UTC meetings happen once a month, specific day may be discussed by the board upon addition of new members.

We have the following requirements for nominees:

  • be an Ubuntu member (preferably for some time)
  • be confident that you can evaluate contributions to various parts of our community
  • be committed to attending the membership meetings
  • broad insight into the Ubuntu community at large is a plus

Additionally, those sitting on membership boards are current Ubuntu Members with a proven track record of activity in the community. They have shown themselves over time to be able to work well with others and display the positive aspects of the Ubuntu Code of Conduct. They should be people who can discern character and evaluate contribution quality without emotion while engaging in an interview/discussion that communicates interest, a welcoming atmosphere, and which is marked by humanity, gentleness, and kindness. Even when they must deny applications, they should do so in such a way that applicants walk away with a sense of hopefulness and a desire to return with a more complete application rather than feeling discouraged or hurt.

To nominate yourself or somebody else (please confirm they wish to accept the nomination and state you have done so), please send a mail to the membership boards mailing list (ubuntu-membership-boards at lists.ubuntu.com). You will want to include some information about the nominee, a launchpad profile link and which time slot (20:00 or 22:00) the nominee will be able to participate in.

We will be accepting nominations through Monday July 1st at 12:00 UTC. At that time all nominations will be forwarded to the Community Council who will make the final decision and announcement.

Thanks in advance to you and to the dedication everybody has put into their roles as board members.

Originally posted to the ubuntu-news-team mailing list on Mon Jun 20 13:04:03 UTC 2016 by Svetlana Belkin, on the behalf of the Community Council


Subscribe to Ubuntu Arizona LoCo Team aggregator