Feed aggregator

Ubuntu Insights: Snapcraft 2.26 has been released

Planet Ubuntu - Fri, 02/03/2017 - 04:53

Hello snapcrafters!

We are pleased to announce the release of version 2.26 of snapcraft has been released: https://launchpad.net/snapcraft/+milestone/2.26

Contributions

This release has seen some contributions from outside of the snapcraft core team, so we want to give a shout out to these folks, here’s a team thank you for:

  • Björn Tillenius
  • Marco Trevisan
  • Matthew Aguirre
  • Olivier Tilloy
  • Shawn Wang
New in this release Snap directory now in place

All the snapcraft specific asset handling has been moved to the snap directory as the preferred location for the following:

  • snapcraft.yaml
  • setup/gui
  • parts/plugins

This adds up to the already existing location for hooks introduced in 2.25.

On snapcraft init, snapcraft will now create a snap/snapcraft.yaml file. Keep in mind that the existing snapcraft.yaml and .snapcraft.yaml are still valid and not deprecated.
However, use of parts/plugins will print a deprecation message with a link tohttps://snapcraft.io/docs/deprecation-notices/dn2 and use of setup/gui will behave in a similar way but linking to https://snapcraft.io/docs/deprecation-notices/dn3.

stage packages

The experience for using multi-architecture package entries in stage-packages has been refined. This should provide a better experience for when someone wants to; to illustrate image that on an arm64 you would want to include an armhf package, e.g.;

parts: packages: plugin: nil stage-packages: - libfoo:armhf Desktop file support enhancements

Snapcraft 2.25 introduced support for desktop file entries in as part of an app entry in apps. There have been improvements to this functionality for when the app entry in apps matches the snap nameas well as polishing in the assembly of the resutling snap.

godeps plugin

The godeps plugin until this release fetched all the dependencies defined in dependencies.tsv or that defined in the part by the godeps-file entry and proceeded to build all package main sources found in the tree. This can now be limited to only build certain packages by use of the go-packagesentry.

As an example let’s use juju. It currently as at the time of this writing:

  • github.com/juju/juju/cmd/juju
  • github.com/juju/juju/cmd/jujud
  • github.com/juju/juju/cmd/plugins/juju-metadata
  • github.com/juju/juju/cmd/plugins/juju-upgrade-mongo

Without the go-packages entry you would end up with 4 binaries in your snap juju. jujud. juju-metadata and juju-upgrade-mongo. If for example you wanted to only build juju something like this would do the trick:

parts: juju: https://github.com/juju/juju go-importpath: github.com/juju/juju go-packages: - github.com/juju/juju/cmd/juju catkin plugin

The catkin plugin has been optimized under the hood to work better with the compiler meant to be used with the chosen ROS release.

gradle plugin

The gradle plugin has been enhanced to also work with gradle transparently when gradlew is not provided with the sources of that part.

python plugin

The python plugin will now do the right thing when setting up a requirements entry and having an install_requires entry in setup.py.

General polishing

Some nice polishing that is part of ongoing work is showing up in this release:

  • schema errors related to text length limits now display an error a human can parse.
  • incorrect spacing issues have been fixed in some prompts.
  • some projects that are part of the tour had missing `build-packages added to them.
  • colors have been fixed for failed logins to the store.
Others

For the full list of things available on 2.26 feel free to check https://launchpad.net/snapcraft/+milestone/2.26

Final Notes

To get the source for this release check it out at https://github.com/snapcore/snapcraft/releases/tag/2.26

A great place to collaborate and discuss features, bugs and ideas on snapcraft is snapcraft@lists.snapcraft.io mailing list or on the snapcraft channel on Rocket Chat https://rocket.ubuntu.com/channel/snapcraft

To file bugs, please go to https://bugs.launchpad.net/snapcraft/+filebug.

Happy snapcrafting!
— Sergio and the team

Ubuntu Insights: The first consumer device to run snaps: Nextcloud box

Planet Ubuntu - Fri, 02/03/2017 - 04:49

The Nextcloud box is a private cloud and IoT solution for home users, giving consumers a way to take back control over their personal data. It’s an app-enabled home gateway and the first Ubuntu-Core-enabled consumer device.

Snaps and Ubuntu Core are key enablers of the “out-of-the-box” solution, sustainable auto-update and security functionality. Ubuntu Core’s ease-of-use and flexibility supported a rapid time to market in just a few months from concept to a fully working product.

“As a completely open source product we encourage anyone to take the idea, the OS, the hardware, the software and let your creativity run wild to adapt and create new, more advanced or refined solutions for new markets and use cases.”

Frank Karlitschek, Founder and Managing Director at Nextcloud

Learn more about the Nextcloud box below.

Download the case study

James Page: snap install openstackclients

Planet Ubuntu - Fri, 02/03/2017 - 04:07

Over the last month or so I’ve been working on producing snap packages for a variety of OpenStack components.  Snaps provide a new fully isolated, cross-distribution packaging paradigm which in the case of Python is much more aligned to how Python projects manage their dependencies.

Alongside work on Nova, Neutron, Glance and Keystone snaps (which I’ll blog about later), we’ve also published snaps for end-user tools such as the OpenStack clients, Tempest and Rally.

If you’re running on Ubuntu 16.04 its really simple to install and use the openstackclients snap:

sudo snap install --edge --classic openstackclients

right now, you’ll also need to enable snap command aliases for all of the clients the snap provides:

ls -1 /snap/bin/openstackclients.* | cut -f 2 -d . | xargs sudo snap alias openstackclients

after doing this, you’ll have all of the client tools aligned to the OpenStack Newton release available for use on your install:

aodh barbican ceilometer cinder cloudkitty designate freezer glance heat ironic magnum manila mistral monasca murano neutron nova openstack sahara senlin swift tacker trove vitrage watcher

The snap is currently aligned to the Newton OpenStack release; the intent is to publish snaps aligned to each OpenStack release using the series support that’s planned for snaps –  so you’ll be able to pick clients appropriate for any supported OpenStack release or for the current development release.

You can check out the source for the snap on github; writing a snap package for a Python project is pretty simple, as it makes use of the standard pip tooling to describe dependencies and install Python modules. Kudos to the snapcraft team who have done a great job on the Python plugin.

Let us know what you think by reporting bugs or by dropping into #openstack-snaps on Freenode IRC!


Costales: FreedomPop en Ubuntu Phone

Planet Ubuntu - Thu, 02/02/2017 - 15:09
Solicité una SIM de FreedomPop España para usarla en mi Ubuntu Phone (principalmente para los viajes, pues ofrece roadming gratis en 25 países y no hace falta recargar saldo cada cierto tiempo). Además tiene promociones de SIM por 1€ de vez en cuando.

Sabía que las llamadas y SMS no iban a funcionar sin Android o iOS. Pero tenía dudas respecto a los datos. Y ahora os puedo confirmar que sí, la conexión de datos funciona bien.

Para activar los datos debemos configurar lo siguiente:

Vamos a Configuración > MóvilActivamos "Itinerancia de datos" y pulsamos en "Operador y APN"
Pulsamos en "APN"
Activamos y pulsamos en el APN que tengamos (por defecto yo tenía "3")

Establecemos estos datos y pulsamos en el icono de arriba a la derecha
A disfrutar de Internet :)

Simos Xenitellis: How to install Inkscape 0.92 (latest) as a snap in Ubuntu 16.04

Planet Ubuntu - Thu, 02/02/2017 - 11:26

Inkscape is professional open-source vector graphics editor. The latest version is 0.92. Here is a video demonstrating the new Inkscape 0.92 features. And detailed Inkscape 0.92 Release Notes.

Here is how to install as the Inkscape snap on Ubuntu 16.04 (and other GNU/Linux distributions that support snaps). The snap was created by Inkscape Board member Ted Gould.

Let’s see what is available as a snap for Inkscape.

$ snap info inkscape name:      inkscape summary:   "Vector Graphics Editor" publisher: inkscape description: |   An Open Source vector graphics editor, with capabilities similar to   Illustrator, CorelDraw, or Xara X, using the W3C standard Scalable Vector   Graphics (SVG) file format.     Inkscape supports many advanced SVG features (markers, clones, alpha blending,   etc.) and great care is taken in designing a streamlined interface.   It is very easy to edit nodes, perform complex path operations, trace   bitmaps and much more.     We also aim to maintain a thriving user and developer community by using   open, community-oriented development.   channels:                         stable:    0.92.0     (1880) 148MB -   candidate: 0.92.0     (2307) 149MB -   beta:      0.92.0     (2307) 149MB -   edge:      0.92+devel (2314) 149MB -

We can see that there is already a stable snap for 0.92. If we are comfortable with the stable snap (it’s 0.92!), we can install it from the Ubuntu Software as well.

The one with the nonfree tag is that snap. The other is the package from the repositories, an older version. For some reason, the snaps have the nonfree tag, which weirdly helps to distinguish from the repository packages.

Let’s install the stable Inkscape snap and let’s run it.

Ok, it has a retro look. What’s going on? Is retro in fashion again?

Let’s run the snapped Inkscape from the command line:

$ inkscape Gtk-Message: Failed to load module "overlay-scrollbar" Gtk-Message: Failed to load module "gail" Gtk-Message: Failed to load module "atk-bridge" Gtk-Message: Failed to load module "canberra-gtk-module"

So this is what is going on. There is a bug in the current stable version of the snap. These errors mean, among other things, that the theming is not working. You can read some feedback in a recent AskUbuntu answer about snap packaging by Sergio Schvezov. In addition, it was a bug that was mentioned on G+ a few days ago.

Let’s try out the package from the edge channel and see whether it has fixed the theming issue.

$ snap remove inkscape inkscape removed $ snap install inkscape --channel=edge inkscape (edge) 0.92+devel from 'inkscape' installed

Instead of the option –channel=edge above, you can also use –edge. My preference is to show the verbose version when I type commands in tutorials so that it is easy to see that edge refers to the channel.

Let’s run the edge Inkscape from the command line.

$ inkscape Gtk-Message: Failed to load module "canberra-gtk-module" Gtk-Message: Failed to load module "canberra-gtk-module"

Only the canberra GTK module is missing now, which is a nice improvement. canberra refers to libcanberra and has to do with sound events.

Let’s try Inkscape, minus the sound events.

Here it is then, and it looks fine.

Most users do not now much about vector graphics. Inkscape makes it easy to learn because it has built-in tutorial.

Here is how to get it to load up.

You click on Help→Tutorials→Inkscape: Basic to start off with the first tutorial. You can see that there is a good set of tutorials.

Here is how the first tutorial looks like. It is an Inkscape document (*.svg), and you can freely edit the document while you are reading and learning more about Inkscape!

Make an effort to complete the full set of the Inkscape tutorials.

Harald Sitter: How to Global Menu in Plasma 5.9

Planet Ubuntu - Thu, 02/02/2017 - 10:02

Today Plasma 5.9.0 became available in KDE neon User Edition. With it comes the return of global menus along with other awesome sauce features.

To enable global menus open System Settings, go into the Application Style category, and in the Widget Style settings you will find a tab called Fine Tuning. On this tab you can find the new Menubar options. You can change to either a Title Bar Button, which will tuck the menu into a tiny button into the window decoration bar at the top, or the Application Menu widget, allowing the associated Plasma panel to supply the menu in a fixed location.

To apply the change, your applications need to be restarted, so ideally you’ll simply log out and back in again.

To add an Application Menu to Plasma, simply right click on the desktop and add the Panel called Application Menu Bar.

Enjoy your new Plasma 5.9 with global menu bars!

Ubuntu Insights: Run scripts during snapcraft builds with “scriptlets”

Planet Ubuntu - Thu, 02/02/2017 - 03:16

If you have snapped an application, or tried to snap an application, you know that Snapcraft heavily depends on built-in plugins for specific build systems and that it provides a large array of choices to do so. You can snap ROS apps, Python 2 and 3 apps, Go apps, Rust apps, Java apps, Linux kernels and many more, by simply declaring the right plugin name.

What if your app depends on multiple build systems? Or uses a custom build script, or maybe you want to run make test as part of a snapcraft build? Until recently, you had to write a custom plugin and ship it along your snapcraft.yaml, which was working fine but took time to achieve and made you ship an extra directory just for it. With Snapcraft “scriptlets”, this is over and the path to snapping is now much faster.

Scriptlets?

Scriptlets are shell scripts, sourced directly from your snapcraft.yaml, that change the behaviour of a plugin. They can be triggered before the “build” step to run commands on your source code before building it, instead of it, to completely override the building behaviour and after: to move build artefacts around, change a config file or anything that you would need to happen after the build.

How to use them

Scriptlets are declared using specific keywords in your snapcraft part:

  • prepare: for commands that need to happen before the build step of a plugin
  • build: to override a plugin’s build step
  • install: for commands that need to happen after the build step

Have a look at the documentation for more details, or see the following examples to get started: a demo of the prepare scriptlet and a real world use case with the MySQL snap.

Demo: add a snap build timestamp with the prepare scriptlet

This asciinema recording shows you how to use the prepare scriptlet to write to a new file and include it in the snap at build time.

Real world use case: MySQL

Let’s see how the MySQL snap uses the prepare: keyword to pull deb packages from their server, unpack and load them into the project directory during a snapcraft build.

Source: https://github.com/mysql/mysql-snap/blob/5.7/snapcraft.yaml

If we look at the parts: section of the snapcraft.yaml we can see a mysql-server part, that dumps a pre-built MySQL into the snap.

parts: mysql-server: prepare: ./stage_binaries.sh build-packages: [libaio-dev, libmecab-dev, libnuma-dev, libncurses5-dev, zlib1g-dev] plugin: dump source: ./ organize: staging-files/usr: usr/ snap: - usr/lib/mysql/plugin/mysql_no_login.so - usr/lib/mysql/plugin/innodb_engine.so - usr/lib/mysql/plugin/mypluglib.so <snip> - usr/bin/my_print_defaults - usr/bin/mysqldump - usr/bin/mysql_tzinfo_to_sql - usr/bin/mysql_upgrade - usr/share/mysql/*

The script called at the prepare stage is stage_binaries.sh
(source: https://github.com/mysql/mysql-snap/blob/5.7/stage_binaries.sh)

SNAPDIR=$(pwd) SNAPTMP=$(mktemp -d) cd ${SNAPTMP} MYSQL_VERSION_MAJOR=5.7 MYSQL_VERSION_FULL=5.7.17-1ubuntu16.04 FILENAME="mysql-server_${MYSQL_VERSION_FULL}_amd64.deb-bundle.tar" wget "http://dev.mysql.com/get/Downloads/MySQL-{MYSQL_VERSION_MAJOR}/${FILENAME}" tar -xvf "${FILENAME}" ar x mysql-community-client_${MYSQL_VERSION_FULL}_amd64.deb tar -xvf data.tar.xz rm data.tar.xz ar x mysql-community-server_${MYSQL_VERSION_FULL}_amd64.deb tar -xvf data.tar.xz mkdir staging-files mv usr staging-files/ rm -rf ${SNAPDIR}/staging-files mv staging-files ${SNAPDIR} cd ${SNAPDIR}

It uses wget to download mysql debian packages, unpack them and copy their content into the current directory.

Once this prepare script is run, the dump plugin proceeds as usual: taking content from the source and including it in the final snap.

Without this scriptlet, there would have been a need for a custom plugin or several other parts that would have increased the complexity of the snapcraft.yaml.

More examples

You will find usage snippets on the scriptlets page at snapcraft.io and in the snapcraft test suite:

Simos Xenitellis: How to try the new MUFFIN (“Ribbon”) toolbar of LibreOffice 5.3 in Ubuntu 16.04

Planet Ubuntu - Wed, 02/01/2017 - 12:46

LibreOffice 5.3 has several new features and one of them is the new MUFFIN toolbars.

Let’s try them out.

First, we installed LibreOffice 5.3 on Ubuntu using a snap and start the new version of LibreOffice Writer.

By default, the new MUFFIN toolbar is not available because it is currently an experimental feature. We need to enable the support for experimental features.

Click on the menu Tools→Options or press Alt+F12. You get the following,

In LibreOffice→Advanced, we enable the Enable experimental features (may be unstable) and click OK.

We are asked to restart LibreOffice and we click on Restart Now.

After the restart, there are a few new submenus in the View menu. Specifically, there is a Toolbar Layout submenu which a few options. The Notebookbar is the one that resembles the Ribbon in MSOffice. We select it.

The default Notebookbar is the one in the Tabbed style. There are two more styles as shown below.

The following is Contextual groups:

And this one is Contextual single:

Simos Xenitellis: How to install LibreOffice 5.3 from snap on Ubuntu 16.04 (and others)

Planet Ubuntu - Wed, 02/01/2017 - 12:16

LibreOffice 5.3 was released a few days ago, and it has several new nice features.

Caption 1  LibreOffice 5.3, installed from a snap.

The LibreOffice project provides a tarball for Ubuntu with the new version, that can be downloaded, extracted and then we can run it.

However, we can install a snap with LibreOffice 5.3, which makes it convenient for testing and not messing up our system.

The following apply to Ubuntu 16.04 or newer. It also applies to Ubuntu 14.04 once you follow this tutorial.

Let’s check what snaps are available for LibreOffice.

$ snap info libreoffice name:      libreoffice summary:   "LibreOffice is a powerful office suite including word processing and creation of spreadsheets, slideshows and databases" publisher: canonical description: |   LibreOffice is a powerful office suite – its clean interface and   feature-rich tools help you unleash your creativity and enhance your   productivity. LibreOffice includes several applications that make it the most   powerful Free and Open Source office suite on the market: Writer (word   processing), Calc (spreadsheets), Impress (presentations), Draw (vector   graphics and flowcharts), Base (databases), and Math (formula editing). channels:                    stable:    5.2.3.2 (10) 364MB -   candidate: 5.2.3.2 (10) 364MB -   beta:      5.2.3.2 (10) 364MB -   edge:      5.3.0.2 (14) 374MB - $ _

We learn that there are several channels for snaps, and the new version of LibreOffice is currently in the edge channel. This channel is that channel that is less stable than all others. That is, if we go for edge, we are bleeding edge in terms of LibreOffice. And some things may not work due to packaging. By installing this snap, we help in testing the packaging of the LibreOffice snap.

Let’s install LibreOffice from the edge channel:

$ sudo snap install libreoffice --channel=edge libreoffice (edge) 5.3.0.2 from 'canonical' installed $ _

Let’s get some info again from the installed LibreOffice snap.

$ snap info libreoffice name:      libreoffice summary:   "LibreOffice is a powerful office suite including word processing and creation of spreadsheets, slideshows and databases" publisher: canonical description: |   LibreOffice is a powerful office suite – its clean interface and   feature-rich tools help you unleash your creativity and enhance your   productivity. LibreOffice includes several applications that make it the most   powerful Free and Open Source office suite on the market: Writer (word   processing), Calc (spreadsheets), Impress (presentations), Draw (vector   graphics and flowcharts), Base (databases), and Math (formula editing). commands:   - libreoffice.impress   - libreoffice   - libreoffice.math   - libreoffice.writer   - libreoffice.base   - libreoffice.calc   - libreoffice.draw tracking:    edge installed:   5.3.0.2 (14) 374MB - refreshed:   2017-01-19 04:24:50 +0200 EET channels:                    stable:    5.2.3.2 (10) 364MB -   candidate: 5.2.3.2 (10) 364MB -   beta:      5.2.3.2 (10) 364MB -   edge:      5.3.0.2 (14) 374MB -

We verify that LibreOffice 5.3 was installed and now we know the new commands to run the new version.

Let’s figure out now how to run the new LibreOffice. Because we already have LibreOffice (the stock Ubuntu LibreOffice) installed.

$ whereis libreoffice libreoffice: /usr/bin/libreoffice /usr/lib/libreoffice /etc/libreoffice /usr/share/libreoffice /snap/bin/libreoffice /snap/bin/libreoffice.calc /snap/bin/libreoffice.math /snap/bin/libreoffice.draw /snap/bin/libreoffice.writer /snap/bin/libreoffice.impress /snap/bin/libreoffice.base /usr/share/man/man1/libreoffice.1.gz $ _

The stock LibreOffice is under the /usr tree. The freshly installed LibreOffice is under the /snap tree.

Caption 2  Trying to find “libreoffice” in Dash. It shows both the stock LibreOffice and the snapped LibreOffice.

The icons from both corresponding versions are the same. Empirically, the first for LibreOffice Writer would be the stock LibreOffice, while the second one is the snapped LibreOffice.

We can move the icons on the Launcher and then launch them. If we selected our preferred version, then we are fine. Otherwise, we try with the other same icon.

Here is how LibreOffice 5.3 Writer looks like.

Daniel Pocock: Going to FOSDEM, Brussels this weekend

Planet Ubuntu - Wed, 02/01/2017 - 02:07

This weekend I'm going to FOSDEM, one of the largest gatherings of free software developers in the world. It is an extraordinary event, also preceded by the XSF / XMPP Summit

For those who haven't been to FOSDEM before and haven't yet made travel plans, it is not too late. FOSDEM is a free event and no registration is required. Many Brussels hotels don't get a lot of bookings on weekends during the winter so there are plenty of last minute offers available, often cheaper than what is available on AirBNB. I was speaking to somebody in London on Sunday who commutes through St Pancras (the Eurostar terminal) every day and didn't realize it goes to Brussels and only takes 2 hours to get there. One year I booked a mini-van at the last minute and made the drive from the UK with a stop in Lille for dinner on the way back, for 5 people that was a lot cheaper than the train. In other years I've taken trains from Switzerland through Paris or Luxembourg.

Real-time Communication (RTC) dev-room on Saturday, 4 February

On Saturday, we have a series of 23 talks about RTC topics in the RTC dev-room, including SIP, XMPP, WebRTC, peer-to-peer (with Ring) and presentations from previous GSoC students and developers coming from far and wide.

The possibilities of RTC with free software will also be demonstrated and discussed at the RTC lounge in the K building, near the dev-room, over both Saturday and Sunday. Please come and say hello.

Please come and subscribe to the Free-RTC-Announce mailing list for important announcements on the RTC theme and join the Free-RTC discussion list if you have any questions about the activities at FOSDEM, dinners for RTC developers on Saturday night or RTC in general.

Software Defined Radio (SDR) and the Debian Hams project

At 11:30 on Saturday I'll be over at the SDR dev-room to meet other developers of SDR projects such as GNU Radio and give a brief talk about the Debian Hams project and the relationship between our diverse communities. Debian Hams (also on the Debian Ham wiki) provides a ready-to-run solution for ham radio and SDR is just one of its many capabilities.

If you've ever wondered about trying the RTL-SDR dongle or similar projects Debian Hams provides a great way to get started quickly.

I've previously given talks on this topic at the Vienna and Cambridge mini-DebConfs (video).

Ham Radio (also known as amateur radio) offers the possibility to gain exposure to every aspect of technology from the physical antennas and power systems through to software for a range of analog and digital communications purposes. Ham Radio and the huge community around it is a great fit with the principles and philosophy of free software development. In a world where hardware vendors are constantly exploring ways to limit their users with closed and proprietary architectures, such as DRM, a broad-based awareness of the entire technology stack empowers society to remain in control of the technology we are increasingly coming to depend on in our every day lives.

St&eacute;phane Graber: Ubuntu Core in LXD containers

Planet Ubuntu - Tue, 01/31/2017 - 13:27

What’s Ubuntu Core?

Ubuntu Core is a version of Ubuntu that’s fully transactional and entirely based on snap packages.

Most of the system is read-only. All installed applications come from snap packages and all updates are done using transactions. Meaning that should anything go wrong at any point during a package or system update, the system will be able to revert to the previous state and report the failure.

The current release of Ubuntu Core is called series 16 and was released in November 2016.

Note that on Ubuntu Core systems, only snap packages using confinement can be installed (no “classic” snaps) and that a good number of snaps will not fully work in this environment or will require some manual intervention (creating user and groups, …). Ubuntu Core gets improved on a weekly basis as new releases of snapd and the “core” snap are put out.

Requirements

As far as LXD is concerned, Ubuntu Core is just another Linux distribution. That being said, snapd does require unprivileged FUSE mounts and AppArmor namespacing and stacking, so you will need the following:

  • An up to date Ubuntu system using the official Ubuntu kernel
  • An up to date version of LXD
Creating an Ubuntu Core container

The Ubuntu Core images are currently published on the community image server.
You can launch a new container with:

stgraber@dakara:~$ lxc launch images:ubuntu-core/16 ubuntu-core Creating ubuntu-core Starting ubuntu-core

The container will take a few seconds to start, first executing a first stage loader that determines what read-only image to use and setup the writable layers. You don’t want to interrupt the container in that stage and “lxc exec” will likely just fail as pretty much nothing is available at that point.

Seconds later, “lxc list” will show the container IP address, indicating that it’s booted into Ubuntu Core:

stgraber@dakara:~$ lxc list +-------------+---------+----------------------+----------------------------------------------+------------+-----------+ | NAME | STATE | IPV4 | IPV6 | TYPE | SNAPSHOTS | +-------------+---------+----------------------+----------------------------------------------+------------+-----------+ | ubuntu-core | RUNNING | 10.90.151.104 (eth0) | 2001:470:b368:b2b5:216:3eff:fee1:296f (eth0) | PERSISTENT | 0 | +-------------+---------+----------------------+----------------------------------------------+------------+-----------+

You can then interact with that container the same way you would any other:

stgraber@dakara:~$ lxc exec ubuntu-core bash root@ubuntu-core:~# snap list Name Version Rev Developer Notes core 16.04.1 394 canonical - pc 16.04-0.8 9 canonical - pc-kernel 4.4.0-45-4 37 canonical - root@ubuntu-core:~# Updating the container

If you’ve been tracking the development of Ubuntu Core, you’ll know that those versions above are pretty old. That’s because the disk images that are used as the source for the Ubuntu Core LXD images are only refreshed every few months. Ubuntu Core systems will automatically update once a day and then automatically reboot to boot onto the new version (and revert if this fails).

If you want to immediately force an update, you can do it with:

stgraber@dakara:~$ lxc exec ubuntu-core bash root@ubuntu-core:~# snap refresh pc-kernel (stable) 4.4.0-53-1 from 'canonical' upgraded core (stable) 16.04.1 from 'canonical' upgraded root@ubuntu-core:~# snap version snap 2.17 snapd 2.17 series 16 root@ubuntu-core:~#

And then reboot the system and check the snapd version again:

root@ubuntu-core:~# reboot root@ubuntu-core:~# stgraber@dakara:~$ lxc exec ubuntu-core bash root@ubuntu-core:~# snap version snap 2.21 snapd 2.21 series 16 root@ubuntu-core:~#

You can get an history of all snapd interactions with

stgraber@dakara:~$ lxc exec ubuntu-core snap changes ID Status Spawn Ready Summary 1 Done 2017-01-31T05:14:38Z 2017-01-31T05:14:44Z Initialize system state 2 Done 2017-01-31T05:14:40Z 2017-01-31T05:14:45Z Initialize device 3 Done 2017-01-31T05:21:30Z 2017-01-31T05:22:45Z Refresh all snaps in the system Installing some snaps

Let’s start with the simplest snaps of all, the good old Hello World:

stgraber@dakara:~$ lxc exec ubuntu-core bash root@ubuntu-core:~# snap install hello-world hello-world 6.3 from 'canonical' installed root@ubuntu-core:~# hello-world Hello World!

And then move on to something a bit more useful:

stgraber@dakara:~$ lxc exec ubuntu-core bash root@ubuntu-core:~# snap install nextcloud nextcloud 11.0.1snap2 from 'nextcloud' installed

Then hit your container over HTTP and you’ll get to your newly deployed Nextcloud instance.

If you feel like testing the latest LXD straight from git, you can do so with:

stgraber@dakara:~$ lxc config set ubuntu-core security.nesting true stgraber@dakara:~$ lxc exec ubuntu-core bash root@ubuntu-core:~# snap install lxd --edge lxd (edge) git-c6006fb from 'canonical' installed root@ubuntu-core:~# lxd init Name of the storage backend to use (dir or zfs) [default=dir]: We detected that you are running inside an unprivileged container. This means that unless you manually configured your host otherwise, you will not have enough uid and gid to allocate to your containers. LXD can re-use your container's own allocation to avoid the problem. Doing so makes your nested containers slightly less safe as they could in theory attack their parent container and gain more privileges than they otherwise would. Would you like to have your containers share their parent's allocation (yes/no) [default=yes]? Would you like LXD to be available over the network (yes/no) [default=no]? Would you like stale cached images to be updated automatically (yes/no) [default=yes]? Would you like to create a new network bridge (yes/no) [default=yes]? What should the new bridge be called [default=lxdbr0]? What IPv4 address should be used (CIDR subnet notation, “auto” or “none”) [default=auto]? What IPv6 address should be used (CIDR subnet notation, “auto” or “none”) [default=auto]? LXD has been successfully configured.

And because container inception never gets old, lets run Ubuntu Core 16 inside Ubuntu Core 16:

root@ubuntu-core:~# lxc launch images:ubuntu-core/16 nested-core Creating nested-core Starting nested-core root@ubuntu-core:~# lxc list +-------------+---------+---------------------+-----------------------------------------------+------------+-----------+ | NAME | STATE | IPV4 | IPV6 | TYPE | SNAPSHOTS | +-------------+---------+---------------------+-----------------------------------------------+------------+-----------+ | nested-core | RUNNING | 10.71.135.21 (eth0) | fd42:2861:5aad:3842:216:3eff:feaf:e6bd (eth0) | PERSISTENT | 0 | +-------------+---------+---------------------+-----------------------------------------------+------------+-----------+ Conclusion

If you ever wanted to try Ubuntu Core, this is a great way to do it. It’s also a great tool for snap authors to make sure their snap is fully self-contained and will work in all environments.

Ubuntu Core is a great fit for environments where you want to ensure that your system is always up to date and is entirely reproducible. This does come with a number of constraints that may or may not work for you.

And lastly, a word of warning. Those images are considered as good enough for testing, but aren’t officially supported at this point. We are working towards getting fully supported Ubuntu Core LXD images on the official Ubuntu image server in the near future.

Extra information

The main LXD website is at: https://linuxcontainers.org/lxd
Development happens on Github at: https://github.com/lxc/lxd
Mailing-list support happens on: https://lists.linuxcontainers.org
IRC support happens in: #lxcontainers on irc.freenode.net
Try LXD online: https://linuxcontainers.org/lxd/try-it

Ubuntu Insights: Industrial IoT Revolution with Raspberry Pi Compute Module 3

Planet Ubuntu - Tue, 01/31/2017 - 08:05

The Raspberry Pi Foundation released a long awaited version of their Raspberry Pi Compute Module 3. The great news is that you get 4GB storage, 1GB memory and the same processor as the Raspberry Pi 3 for $30. This means that it now becomes a real solution for anybody wanting to build industrial products and run their own app store on top. Ubuntu Core can support the Raspberry Pi 3, so you are able to create your own app enabled products and run your own app store in 2017.

To show a simple example:

The Revolution Pi is a set of industrial PLC type of devices that use the compute module on the inside. Now with a powerful Compute Module 3 and Ubuntu Core, nothing will stop the innovators of using apps/snaps to control and manage industrial machinery.

Need some industrial protocol. Just install the app/snap. Need a cloud integration. Just install the app/snap. Want to do advanced machine learning on the edge? There is an app/snap for that. Any integration with any external system can be defined as a snap. Shortly you can sell commercial snaps from your own Brand Store.

The mobile app store market is saturated but now the counter is put back to zero and we can have app stores for lawnmowers, vacuum cleaners, elevators, pumps, air conditioning, vending machines, heating and any type of industrial machinery.

Soon we should see standardised compute module I/O boards for different markets, e.g. robotics, drones, PLCs/ALCs, vending machines, and many more. 2017 promises to be a very interesting year for industrial innovators!

Original blog post source here.

Harald Sitter: Neon OEM Mod…arghhh

Planet Ubuntu - Tue, 01/31/2017 - 05:25

For years and years already Ubuntu’s installer, Ubiquity, has an OEM mode. And for years and years I know it doesn’t really work with the Qt interface.

An understandable consequence of not actually having any real-life use cases of course, disappointing all the same. As part of the KDE Slimbook project I took a second and then a third look at the problems it was having and while it still is not perfect it is substantially better than before.

The thing to understand about the OEM mode is that technically it splits the installation in two. The OEM does a special installation which leads to a fully functional system that the OEM can modify and then put into “shipping” mode once satisfied with the configuration. After this, the system will go into a special Ubiquity that only offers the configuration part of the installation process (i.e. User creation, keyboard setup etc.). Once the customer completed this process the system is all ready to go, with any additional software the OEM might have installed during preparation.

Therein lies the problem in a way. The OEM configuration is design-wise kind of fiddly considering how the Qt interface is set up and interacts with other pieces of software (most notably KWin). This is double true for KDE neon where we use a slightly modified Ubiquity, with the fullscreen mode removed. However, as you might have guessed, not using fullscreen leads to all sorts of weird behavior in the OEM setup where practically speaking the user is meant to be locked out of the system but technically he is in a minimal session with a window manager. So, in theory, one can close the window, when started the window would be placed as though more windows are meant to appear, and it would have a minimize button etc. etc. All fairly terrible. However also not too tricky to fix once one has the identified all problems. Arguably that is the biggest feat with any installer change. Finding all possible scenarios where things can go wrong takes days.

So, to improve this the KDE Visual Design Group‘s Jens Reuterberg and I again descended into the hellish pit that is Qt 4 QWidget CSS theming on a code base that has seen way too many cooks over the years. The result I like much better than what we started out with, even if it isn’t perfect.

 

The sidebar has had visual complexity removed to bring it closer to a Breeze look and feel. Window decoration elements not wanted during OEM set up are being removed by setting up suitable KWin rules when preparing for first boot.

Additionally, we will hopefully soon have enough translations to push out a new slideshow featuring slightly more varied visuals than the current “Riding the Waves” picture we have for a slideshow.

For additional information on how to use the current OEM mode check out the documentation on the KDE UserBase.

Ubiquity code
Slideshow code (most interest translations setup this)

 

Raphaël Hertzog: My Free Software Activities in January 2017

Planet Ubuntu - Tue, 01/31/2017 - 03:33

My monthly report covers a large part of what I have been doing in the free software world. I write it for my donors (thanks to them!) but also for the wider Debian community because it can give ideas to newcomers and it’s one of the best ways to find volunteers to work with me on projects that matter to me.

Debian LTS

I was allocated 10 hours to work on security updates for Debian 7 Wheezy. During this time I did the following:

  • I reviewed multiple CVE affecting ntp and opted to mark them no-dsa (just like what has been done for jessie).
  • I pinged upstream authors of jbig2dec (here) and XML::Twig (by private email) where the upstream report had not gotten any upstream reply yet.
  • I asked on oss-security for more details about CVE-2016-9584 because it was not clear whether it had already been reported upstream. Turns out that it was. I then updated the security tracker accordingly.
  • Once I got a reply on jbig2dec, I started to backport the patch pointed out by upstream, it was hard work. When I was done, I had also received by private email the fuzzed file at the origin of the report… unfortunately that file did not trigger the same problem with the old jbig2dec version in wheezy. That said valgrind still identified read outside of allocated memory. At this point I had a closer look at the git history only to discover that the last 3 years of work consisted mainly of security fixes for similar cases that were never reported to CVE. I thus opened a discussion about how to handle this situation.
  • Matthias Geerdsen reported in #852610 a regression in libtiff4. I confirmed the problem and spent multiple hours to come up with a fix. The patch that introduced the regression was Debian-specific as upstream did not fix those issues yet. I released a fixed package in DLA-610-2.
Debian packaging

With the deep freeze approaching, I made some last-minute updates:

  • schroot 1.6.10-3 fixing some long-standing issues with the way bind mounts are shared (#761435) and other important fixes.
  • live-boot 1:20170112 to fix a failure when booting on a FAT filesystem and other small fixes.
  • live-config 5.20170112 merging useful patches from the BTS.
  • I finished the update of hashcat 3.30 with its new private library and fixed RC bug #851497 at the same time. The work was initiated by fellow members of the pkg-security team.
Misc work

Sponsorship. I sponsored a new asciidoc upload demoting a dependency into a recommends (#850301). I sponsored a new upstream version of dolibarr.

Discussions. I seconded quite a few changes prepared by Russ Allbery on debian-policy. I helped Scott Kitterman with #849584 about a misunderstanding of how the postfix service files are supposed to work. I discussed in #849913 about a regression in building of cross-compilers, and made a patch to avoid the problem. In the end, Guillem developed a better fix.

Bugs. I investigated #850236 where a django test failed during the first week after each leap year. I filed #853224 on desktop-base about multiple small problems in the maintainer scripts.

Thanks

See you next month for a new summary of my activities.

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

Benjamin Mako Hill: Supporting children in doing data science

Planet Ubuntu - Mon, 01/30/2017 - 21:54

As children use digital media to learn and socialize, others are collecting and analyzing data about these activities. In school and at play, these children find that they are the subjects of data science. As believers in the power of data analysis, we believe that this approach falls short of data science’s potential to promote innovation, learning, and power.

Motivated by this fact, we have been working over the last three years as part of a team at the MIT Media Lab and the University of Washington to design and build a system that attempts to support an alternative vision: children as data scientists. The system we have built is described in a new paper—Scratch Community Blocks: Supporting Children as Data Scientists—that will be published in the proceedings of CHI 2017.

Our system is built on top of Scratch, a visual, block-based programming language designed for children and youth. Scratch is also an online community with over 15 million registered members who share their Scratch projects, remix each others’ work, have conversations, provide feedback, bookmark or “love” projects they like, follow other users, and more. Over the last decade, researchers—including us—have used the Scratch online community’s database to study the youth using Scratch. With Scratch Community Blocks, we attempt to put the power to programmatically analyze these data into the hands of the users themselves.

To do so, our new system adds a set of new programming primitives (blocks) to Scratch so that users can access public data from the Scratch website from inside Scratch. Blocks in the new system gives users access to project and user metadata, information about social interaction, and data about what types of code are used in projects. The full palette of blocks to access different categories of data is shown below.

Project metadata User metadata Site-wide statistics

The new blocks allow users to programmatically access, filter, and analyze data about their own participation in the community. For example, with the simple script below, we can find whether we have followers in Scratch who report themselves to be from Spain, and what their usernames are.

Simple demonstration of Scratch Community Blocks

In designing the system, we had two primary motivations. First, we wanted to support avenues through which children can engage in curiosity-driven, creative explorations of public Scratch data. Second, we wanted to foster self-reflection with data. As children looked back upon their own participation and coding activity in Scratch through the project they and their peers made, we wanted them to reflect on their own behavior and learning in ways that shaped their future behavior and promoted exploration.

After designing and building the system over 2014 and 2015, we invited a group of active Scratch users to beta test the system in early 2016. Over four months, 700 users created more than 1,600 projects. The diversity and depth of users creativity with the new blocks surprised us. Children created projects that gave the viewer of the project a personalized doughnut-chart visualization of their coding vocabulary on Scratch, rendered the viewer’s number of followers as scoops of ice-cream on a cone, attempted to find whether “love-its” for projects are more common on Scratch than “favorites”, and told users how “talkative” they were by counting the cumulative string-length of project titles and descriptions.

We found that children, rather than making canonical visualizations such as pie-charts or bar-graphs, frequently made information representations that spoke to their own identities and aesthetic sensibilities. A 13-year-old girl had made a virtual doll dress-up game where the player’s ability to buy virtual clothes and accessories for the doll was determined by the level of their activity in the Scratch community. When we asked about her motivation for making such a project, she said:

I was trying to think of something that somebody hadn’t done yet, and I didn’t see that. And also I really like to do art on Scratch and that was a good opportunity to use that and mix the two [art and data] together.

We also found at least some evidence that the system supported self-reflection with data. For example, after seeing a project that showed its viewers a visualization of their past coding vocabulary, a 15-year-old realized that he does not do much programming with the pen-related primitives in Scratch, and wrote in a comment, “epic! looks like we need to use more pen blocks. :D.”

Doughnut visualization Ice-cream visualization Data-driven doll dress up

Additionally, we noted that that as children made and interacted with projects made with Scratch Community Blocks, they started to critically think about the implications of data collection and analysis. These conversations are the subject of another paper (also being published in CHI 2017).

In a 1971 article called “Teaching Children to be Mathematicians vs. Teaching About Mathematics”, Seymour Papert argued for the need for children doing mathematics vs. learning about it. He showed how Logo, the programming language he was developing at that time with his colleagues, could offer children a space to use and engage with mathematical ideas in creative and personally motivated ways. This, he argued, enabled children to go beyond knowing about mathematics to “doing” mathematics, as a mathematician would.

Scratch Community Blocks has not yet been launched for all Scratch users and has several important limitations we discuss in the paper. That said, we feel that the projects created by children in our the beta test demonstrate the real potential for children to do data science, and not just know about it, provide data for it, and to have their behavior nudged and shaped by it.

This blog post and the paper it describes are collaborative work with Sayamindu Dasgupta. We have also received support and feedback from members of the Scratch team at MIT (especially Mitch Resnick and Natalie Rusk), as well as from Hal Abelson. Financial support came from the US National Science Foundation. The paper itself is open access so anyone can read the entire paper here. This blog post was also posted on Sayamindu Dasgupta’s blog, on the Community Data Science Collective blog, and in several other places.

The Fridge: Ubuntu Weekly Newsletter Issue 496

Planet Ubuntu - Mon, 01/30/2017 - 21:40

Welcome to the Ubuntu Weekly Newsletter. This is issue #496 for the week January 23 – 29, 2017, 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
  • Chris Guiver
  • 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

Ubuntu Weekly Newsletter Issue 496

The Fridge - Mon, 01/30/2017 - 21:40

Welcome to the Ubuntu Weekly Newsletter. This is issue #496 for the week January 23 – 29, 2017, 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
  • Chris Guiver
  • 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

Stuart Langridge: Niobium

Planet Ubuntu - Mon, 01/30/2017 - 16:20
[41 is] the smallest integer whose reciprocal has a 5-digit repetend. That is a consequence of the fact that 41 is a factor of 99999. — Wikipedia

I don’t understand a lot of things, these days. I don’t understand what a 5-digit repetend is, or why 41 being a factor of 99999 has to do with anything. I don’t understand how much all this has changed in the last thirteen years of posts. I don’t understand when building web stuff got hard. I don’t understand why I can’t find anyone who sells wall lights that look nice without charging a hundred notes for each one, which is a bit steep when you need six. I don’t understand why I can’t get thinner and still eat as many sandwiches as I want. I don’t understand an awful lot of why the world suddenly became a terrible, frightening, mean-spirited, mocking, vitriolic place. And most of what I do understand about that, I hate.

We all sorta thought that we were moving forward; there was less hatred of the Other, fewer knives out, not as much fear and spite as there used to be. And it turns out that it wasn’t gone; it was just suppressed, building up and up underneath the volcano cap until the bad guys realised that there’s nothing actually stopping them doing terrible things and there’s nothing anyone can do about it. So the Tories moved from daring to talk about shutting down the NHS to actually doing it and nobody said anything. Or, more accurately, a bunch of people said things and it didn’t make any difference. Trump starts restricting immigration and targeting Muslims directly and puts a Nazi adviser on the National Security Council and nobody said anything. Or, more accurately, a bunch of people said things and it didn’t make any difference. I don’t want to give in to hatred — it leads to the Dark Side — and so I don’t want to hate them for doing this. But I do hate that I have to fight to avoid it. I hate that I feel so helpless. I hate that the only way I know to fight back is to actually fight — to become them. I hate that they turn everyone into malign, terrible copies of themselves. I hate that they don’t understand. I hate that I don’t understand. I hate that I just hate all the time now.

I’m forty-one. Apparently, according to Wikipedia, the US Navy Fleet Ballistic Missile nuclear submarines from the George Washington, Ethan Allen, Lafayette, James Madison, and Benjamin Franklin classes were nicknamed “41 for Freedom“. 41 for freedom. Maybe that’s not a bad motto for me, being 41. Do more for freedom. My freedom, my family’s freedom, my friends’ freedom, my city’s freedom, people I’ve never met and never will’s freedom. None of us are free if one of us is chained, and if you don’t say it’s wrong then that says it right.

Two photos from today.

One is of Niamh, and her present to me for my birthday: a light box like the ones you get outside cinemas and churches and fast food places and we can put messages for one another on it. I’m hugely pleased with it. The other is of today’s anti-Trump demo in Victoria Square, at which Reverend David Butterworth, of the Methodist Church, said: “Whatever we can do to make this a more peaceful city and a more inclusive city, and to stand up and be counted, we must and should do it together. The only way that Donald Trump will win is if the good people of Birmingham, and of other cities that we’re twinned with like Chicago, stay silent.” People standing up, and a demonstration of what they’re standing up for. Not a bad way to start making me being 41 for freedom, perhaps.

Happy birthday to me. And for those of you less lucky than me today: I hope we can help.

Ubuntu Insights: 48% of people unaware their IoT devices pose a security threat

Planet Ubuntu - Mon, 01/30/2017 - 08:49

This is a guest post by agency Wildfire. If you would like to contribute a guest post, please contact ubuntu-devices@canonical.com

LONDON, U.K. – 30 January, 2017 – Nearly half (48%) of citizens remain unaware that their connected devices could be infiltrated and used to conduct a cyber attack. That’s according to a new IoT security whitepaper which was published today by Canonical – the makers of Ubuntu.

The report, which includes research from over 2,000 UK citizens, highlights the lack of impact that consumer awareness campaigns are having when it comes to internet security and the internet of things.

Despite the government’s latest online cyber awareness campaign costing over £6 per visit, 37% of consumers still believe that they are not ‘sufficiently aware’ of the risks that connected devices pose. What’s more, consumers seem largely ignorant of the escalating threat demonstrated by the high spike in IoT attacks in 2016. 79% say they have not read or seen any recent news stories regarding IoT security or privacy, and 78% claim that their distrust of IoT security has not increased in the last year.

The research also highlights the limited benefits of better education: Consumers are simply not that motivated to actively apply security updates, with the majority applying them only ‘occasionally’ or in some cases – not at all.

Commenting on these findings, Thibaut Rouffineau, Head of Devices Marketing at Canonical said: “These figures are troubling, and should be a wake-up call for the industry. Despite good intentions, government campaigns for cyber awareness and IoT security still have a long way to go. But then that’s the point: Ultimately the IoT industry needs to step up and take on responsibility. Government education of consumers and legislation will have a part to play, but overall the industry needs to take charge of keeping devices up to date and find a way to eliminate any potential vulnerabilities from devices before they can cause issues, rather than placing the burden on consumers.”

To download Ubuntu’s full ‘Taking charge of the IoT’s security vulnerabilities’ report, visit: http://ubunt.eu/ey14Y2

ENDS

Notes to Editor
‘Connected devices’ were defined to respondents as including e.g. Wi-Fi routers, webcams, smart thermostats or boilers, smart hoovers and other such smart home devices, but excluding computers and phones.

Survey methodology
The survey was conducted on Canonical’s behalf by research company Opinium in December 2016 using a panel of 2,000 UK adults.

About Canonical
Canonical is the company behind Ubuntu, the leading OS for cloud operations. Most public cloud workloads use Ubuntu, as do most new smart gateways, switches, self-driving cars and advanced robots. Canonical provides enterprise support and services for commercial users of Ubuntu.

Established in 2004, Canonical is a privately held company.

For further information please visit https://www.ubuntu.com

Image source here.

Pages

Subscribe to Ubuntu Arizona LoCo Team aggregator