Home Blog Page 847

Meet ubuntuBSD, UNIX for Human Beings

meet-ubuntubsd-unixToday we have the great pleasure of introducing you to a new project that saw the light of the Internet for the first time this past weekend, on March 12, 2016. Meet ubuntuBSD!

What’s ubuntuBSD? Well, we’ve asked that ourselves when we first spotted the project created by Jon Boden, and it’s not that hard to figure out yourself, but just in case you’re not sure, we can tell you that ubuntuBSD promises to bring the power of the FreeBSD kernel to Ubuntu Linux. It is inspired by Debian GNU/kFreeBSD. ubuntuBSD looks like something that has never been done before, and as usual, we were very curious to see how it works, so we took it for a quick test drive. Please note that at the moment of writing this article, the ubuntuBSD project was in Beta stages of development, based on the FreeBSD 10.1 and Ubuntu 15.10 (Wily Werewolf).

Read more at Softpedia Linux News

Raspberry Pi 3: Raspbian Linux and NOOBS Distributions Updated

New releases of Raspbian GNU/Linux and the NOOBS installer package appeared on the Raspberry Pi Downloads page last week. These have come very soon after the initial Pi 3 support releases, so they appear to be primarily aimed at bug fixes and enhancements for the new hardware.

The Raspbian release notes mention that there are firmware and kernel updates. I couldn’t find any release notes or other information about the NOOBS release; hopefully that will come along soon. I have loaded and briefly tested both Raspbian and NOOBS on all of my various Raspberry Pi systems. The best news of this release is that the NOOBS installer now recognizes the Raspberry Pi 3 built-in wireless network adapter, so it is now possible to install from NOOBS on a Raspberry Pi 3 without having to use a wired network connection or a second wireless adapter.

 

Read more at ZDNet News

Linux Kernel 3.12.57 LTS Out Now with ALSA, EFI, and Xen Improvements, Bugfixes

linux-kernel-3-12-57On March 18, 2016, kernel developer Jiri Slaby announced the release of the fifty-seventh maintenance build of the long-term supported Linux 3.12 kernel series.

Earlier this week we announced several Linux kernel maintenance releases, including Linux kernel 4.4.6 LTS, Linux kernel 3.14.65 LTS, Linux kernel 3.10.101 LTS, Linux kernel 4.1.20 LTS, and Linux kernel 3.18.29 LTS, and today we’re informing our readers about the release of Linux kernel 3.12.57 LTS.

Most of the changes are, as expected, updates to various drivers, including ATA, EFI, GPU (mostly Radeon), Ethernet, MTD, IOMMU, USB, and Xen. “I’m announcing the release of the 3.12.57 kernel. All users of the 3.12 kernel series must upgrade,” said Jiri Slaby. 

How Community Building Can Help an Organization’s Bottom Line

OSDC beesRecently I’ve had several conversations with open source friends and colleagues, each discussion touching upon—but not directly focused on—the subject of why a company would/should/could support a community around a project it has released as free/open source, or more generally to support the communities of F/LOSS projects on which they rely. After the third one of these conversations I’d had in nearly as many weeks, I dusted off my freelance business consulting hat and started mapping out some of the business reasons why an organization might consider supporting communities.

In this article, I’ll look at community from a business perspective, including the effect community can have on an organization’s bottom line. Although there are communities everywhere, I’ll approach the topic—meaning, communities, their members, and their contributors—from a free/open source perspective.

Read more at OpenSource.com

Clair 1.0 Brings Advances in Container Security

CoreOS pushes the open-source container security project to the 1.0 milestone and production stability.

As container use grows, there is an increasing need to understand from a security perspective what is actually running in a container. That’s the goal of CoreOS’ Clair container security project, which officially hits the 1.0 milestone today, in an effort to help organizations validate container application security.

Clair was first announced in November 2015 as an open-source effort to identify vulnerable components inside containers. Container applications can integrate any number of different components that could potentially include known vulnerabilities.

Read more at eWeek

GitHub’s Atom 1.6 Hackable Text Editor Comes Bundled with NodeGit, New API

This past weekend, we had the great surprise to see Atom 1.6, the next major version of GitHub’s powerful, cross-platform and open-source hackable text editor exit the devel channel and enter the stable one.

Yes, you’re reading it right, Atom 1.6 has been promoted to the stable channel, and you can download it right now for your GNU/LinuxMac OS X, or Microsoft Windows box from its official website, or via ours. At the same time, the next major version, Atom 1.7, has entered the Beta channel.

Microsoft Eases Docker Container Migrations With Open Source Cloud Storage Plug-in

The new Docker Volume Plugin for Azure File Storage plug-in makes Docker containers less reliant on a host’s storage.

Microsoft has released new software that provides Docker developers and administrators with more container portability on Azure.The open-source Docker Volume Plugin for Azure File Storage—the source code of which is available on GitHub—uses Azure File Storage on Linux’s support of the Server Message Block (SMB) 3.0 protocol to disassociate Docker container data volumes from their host’s storage. In a typical deployment, a directory on the Docker host machine serves as the Docker container volume, complicating matters when users want to move containers between hosts.

Read more at eWeek

 

Attempt to set up RDO Mitaka at any given time (Delorean trunks)

Per  Delorean Documentation

The RDO project has a continuous integration pipeline that consists of multiple jobs that deploy and test OpenStack as accomplished by different installers. This vast test coverage attempts to ensure that there are no known issues either in packaging, in code or in the installers themselves.Once a Delorean consistent repository has undergone these tests successfully, it will be promoted to current-passed-ci. Current-passed-ci represents the latest and greatest
version of RDO trunk packages that were tested together successfully.

Set up delorean repos on all deployment nodes ( Controller,Storage,Compute)
# yum -y install yum-plugin-priorities
# cd /etc/yum.repos.d
# curl -O https://trunk.rdoproject.org/centos7-mitaka/delorean-deps.repo
# curl -O https://trunk.rdoproject.org/centos7-mitaka/current-passed-ci/delorean.repo

Complete text may be seen here

Introduction to Docker Compose Tool for Multi-Container Applications

Docker compose tutorial image

Docker is celebrating its third birthday this week, on March 23, but some of you may still not know about all the tools that come with Docker. In this blog we will introduce you to Docker Compose, one of the tools, which with the Docker Engine, Docker Machine and Docker Swarm, empowers developers to develop distributed applications.

If you have started working with Docker and are building container images for your application services, you most likely have noticed that after a while you may end up writing long `docker run` commands. These commands while very intuitive can become cumbersome to write, especially if you are developing a multi-container applications and spinning up containers quickly. 

Docker Compose is a “tool for defining and running your multi-container Docker applications”. Your applications can be defined in a YAML file where all the options that you used in `docker run` are now defined. Compose also allows you to manage your application as a single entity rather than dealing with individual containers.

In this tutorial we give you a brief introduction to Docker Compose, by building, you may have guessed…a Blog site.

Installing Docker Compose 

Just like the Docker engine, Compose is extremely easy to install. First verify that you have the Docker engine installed, since Compose will use it. Then if you are comfortable with it you can simply use `curl` to download the Compose binary. If you struggle with the following commands or need additional details, check the very good documentation

$ docker version
$ curl -L https://github.com/docker/compose/releases/download/1.6.2/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
$ docker-compose version

Running a Ghost blog

While you can read the entire documentation and go through the compose reference manual. Nothing beats trying this out to discover a new tool. To dive straight into using Compose we are going to run a Ghost blog using containers.

You can run Ghost in a standalone mode which uses an embedded SQlite database in a single container. It is simple, and you do not need Compose for this, but it breaks the principles of single service functionality per container and will not allow you to scale any components of your blog if you need to. Let’s see how to do it anyway:

$ docker pull ghost
$ docker run -d --name ghost -p 80:2368 ghost

Once the above commands are successful, you should be able to access Ghost with your browser on port 80 of the Docker host you are using. Using a small trick, we will use this single container deployment to get the Ghost configuration file and modify it for a multi-container setup. Copy the Ghost configuration file located in the container to your local file system using the `docker cp` command like so:

$ docker cp -L ghost:/usr/src/ghost/config.js ./config.js
$ cat config.js

Edit the development section of the config.js file, to point to a Mysql database. We will assume that you can reach a Mysql database with a DNS name of `mysql`. We will setup a ghost database, with a Ghost user and a password set to `password`. You could also use a config file that takes advantage of environment variable. For simplicity, in this blog, we override the Ghost config file like so:

[config.js]
database: {
           client: 'mysql',
           connection: {
               host     : 'mysql',
               user     : 'ghost',
               password : 'password',
               database : 'ghost',
               charset  : 'utf8'
           }
       },

For that new configuration to be used, you need to create a Dockerfile that will be used to build your own local image of Ghost using your custom config file. You could do this several different ways, but building your own image with a two line Dockerfile is as easy as it gets. Here is the Dockerfile: 

FROM ghost
COPY ./config.js /var/lib/ghost/config.js

This new Docker image will be built automatically in your Docker Compose file using the `build` argument.

Your Compose file takes the following form. Two services are defined, a Mysql service and a Ghost service. The Mysql service is configured via environment variables set in the docker-compose file. We use the official Mysql Docker image that Compose will automatically pull from the Docker hub. Port 3306 is exposed to other containers in the same network. The Ghost service is based on our custom image; it depends on the Mysql service to ensure that the database will start first. We expose the default port of Ghost `2368` to port 80 of our Docker host.

[yaml]
version: '2'
services:
 mysql:  
  image: mysql
  container_name: mysql
  ports:
   - "3306"
  environment:
   - MYSQL_ROOT_PASSWORD=root
   - MYSQL_DATABASE=ghost
   - MYSQL_USER=ghost
   - MYSQL_PASSWORD=password
 ghost:  
  build: ./ghost
  container_name: ghost
  depends_on:
    - mysql
  ports:
    - "80:2368"

This would be the equivalent of running the following `docker run` commands: 

$ docker run -d --name mysql -e MYSQL_ROOT_PASSWORD=root -e MYSQL_DATABASE=ghost -e MYSQL_PASSWORD=password -e MYSQL_USER=ghost -p 3306 mysql
$ docker build -t myghost .
$ docker run -d --name ghost -p 80:2368 myghost

Keeping all these steps in a single YAML configuration file will be easier to maintain and evolve than writing your own Docker commands wrapper in bash scripts. Plus compose allows you to manage the entire app and individual services. 

To start your Compose application, you just need to run `docker-compose up -d`. The two containers will get started and will be properly connected to each other on the network. You can then open your browser at `http://localhost>` and start using Ghost. To create new posts go to `http://localhost/ghost/setup>` create an account and start editing your posts. Once the containers have started you can view the state of your application as simply as with `docker-compose ps`. 

Ghost blog on Docker compose

[bash]
$ docker-compose up -d
Starting mysql
Starting ghost
$ docker-compose ps
Name            Command            State            Ports          
------------------------------------------------------------------
ghost   /entrypoint.sh npm start   Up      0.0.0.0:80->2368/tcp    
mysql   /entrypoint.sh mysqld      Up      0.0.0.0:32770->3306/tcp

Note that if you have used Compose before, in this example we use version ‘2’ of Compose. Hence we do not need links. The two services will take advantage of the embedded DNS server now running on Docker engine 1.10 and will be able to find each other using their service name. Hence if you want to ping ‘ghost’ from the mysql container you can and vice versa: 

[bash]
$ docker exec -ti mysql bash
root@b1e66140ddb3:/# ping ghost
PING ghost (172.18.0.3): 56 data bytes
64 bytes from 172.18.0.3: icmp_seq=0 ttl=64 time=0.074 ms
64 bytes from 172.18.0.3: icmp_seq=1 ttl=64 time=0.222 ms

And voila! Docker Compose is a very handy tool that helps you write a distributed application definition in a single YAML file. It can handle most of the `docker run` options and since the last release also supports Docker networks and volumes. In following posts, we will dive into more advanced setup and use cases using Compose as well as the use of Docker Swarm to distribute your containers across a cluster of Docker hosts.

Qt 5.6 Goes LTS, Tightens Integration with Yocto Project

samegame-compareThe Qt Company released version 5.6 of its cross-platform application and UI development framework, bringing Qt’s Boot to Qt embedded Linux platform in greater alignment with Yocto Project tools. As a result, “developers can easily pull in the full Qt offering to their own Yocto-based software stacks or customize Qt’s Yocto-compliant software stack to meet their production needs,” says the Qt Company.

Among other enhancements, Qt 5.6 adds automatic scaling to high-resolution displays, as well as an improved Qt Virtual Keyboard, support for more embedded Linux boards, and improvements to Qt WebEngine. In addition, version 5.6 provides full Windows 10 support, and the ability to develop embedded Linux devices using a Windows host PC.

Qt 5.6 is also the first Long-Term Support (LTS) release since Qt 4.8 back in 2011 when the Qt project was still sponsored by Nokia. LTS brings assurances of patch releases and bug and security fixes for at least three years, and as Lars Knoll notes in his Qt 5.6 blog entry, gives the Qt team “some more freedom in the upcoming versions of Qt.”

Posting an LTS stake in the ground has enabled Qt to migrate to a new Continuous Integration System (COIN) for software development and release. The Qt Company, which offers both free open source and subscription-based commercial versions of Qt, has been moving to the new system over the last year, replacing the old Jenkins-based infrastructure. COIN enables much faster integration and testing of code changes, and works “much more incrementally, making it easier to bring all the repositories and source code…together,” writes Knoll.

With Qt 5.6, most of the release binaries are produced within the same system, which is said to significantly reduce package generation time. Also, for the first time, the Qt team can “efficiently support different configurations and platforms for different Qt branches,” writes Knoll.

The LTS release has also freed up Qt to cut ties with older platforms. The upcoming Qt 5.7 will require a C++11 compliant compiler and will drop some older, unnamed platforms. Qt 5.7 will also coincide with changes to licensing, including moving from LGPLv2.1 to LGPLv3, and “open-sourcing a lot of formerly closed components under GPL,” says the Qt Company.

Yocto Project on Tap

Embedded Linux developers work with a Qt module called Qt for Device Creation, which includes a Boot to Qt embedded workflow stack that enables fast startup on development boards. Previously, developers have been able to use Yocto Project tools to do some customization of Boot to Qt. Qt 5.6 has substantially improved Qt’s conformance with both the tools and Yocto meta layers.

With Qt 5.6, “it’s even easier to customize the Boot to Qt stack or pull in all relevant Qt pieces straight to your own Yocto-based builds,” writes Knoll. Hosted by the Linux Foundation, the open source Yocto Project provides developers with templates, tools, and methods to help create custom embedded Linux devices, regardless of the architecture. These include a development environment, emulation environments, debuggers, an Application Toolkit Generator, metadata, documentation, and OpenEmbedded core system component recipes.

The following are some key highlights of Qt. 5.6:

  • Improved Yocto Project support — See above.

  • LTS — Updates and patches are promised for at least three years when extended support can be purchased.

  • High-DPI support — Qt has expanded high resolution support beyond its Mac OS X version, enabling apps written for standard resolutions on any platform to automatically scale up to high-res displays. Qt can automatically adjust font sizes, window elements, icons, and more based on pixel density.

  • Windows 10 support — Qt 5.6 is the first release to provide full Windows 10 support, including PCs, tablets, and phones. A recompile will enable most apps to be distributed in the Windows Store. Windows Embedded Compact support has been updated to the 2013 version.

  • Windows host support for embedded Linux — Developers using the Windows version of Qt can now tap directly into Qt for Device Creation to develop apps for embedded Linux devices.

  • Browser improvements — The Qt WebEngine browser engine advances to Chromium 45, and adds support for Pepper plugins (PPAPI) such as Flash. There’s a module for new low-level APIs, and Linux users can now use “many of the system libraries instead of bundled ones.”

  • Qt Virtual Keyboard updates — The new keyboard app adds Hand Writing Recognition (HWR), performance improvements, Nuance T9 Write integration, and support for Traditional Chinese. It’s now available with GPLv3 licensing.

  • New embedded Linux hardware support — Qt 5.6 extends support for targets including the Nvidia Jetson Pro, Intel NUC, and systems using the NXP i.MX6.

  • Qt Location — There is now full support for the Qt Location module, enabling integration of maps, navigation, and points-of-interests (POIs) within Qt apps. Plugins are supplied for HERE, Mapbox, and OpenStreetMap.

  • Enhanced Qt APIs — Qt 5.6 offers improvements to C++11 support, Qt Multimedia, OpenGL ES 3 compatibility, and more.

  • Technology Previews — Preview releases for future Qt versions include an enhanced version of Qt 3D and a new Qt SerialBus for supporting CanBUS and ModBus. Qt Quick Controls 2 has been significantly revamped, and offers “improved performance especially on embedded devices.”

  • Qt Creator 3.6.0 — Qt 5.6 is compatible with the new Qt Creator 3.6.0 GUI design package. There’s an experimental editor for UML-style diagrams, plus improvements to the Clang-based C/C++ code model, and more. The release no longer supplies prebuilt binaries for 32-bit Linux.

  • Qt for Application Development discount — This week, Qt announced a Start-Up Plan that offers significant subscription reductions on its commercial Qt for Application Development program. Available only to companies with revenues of $100,000 or less, the $49 per month plan lacks professional Qt support. The company notes, however, that many of the roughly 1 million active Qt developers are happy to help out newbies on the Qt forums.

Quickie Qt Backgrounder

As several readers have pointed out, Qt probably should have been included in our January roundup of 10 Best Free Mobile Application Development Frameworks That Support Android. Qt is kind of a different breed, however. It supports GUI development in addition to full applications, it’s primarily focused on C++ rather than Javascript, and its Android and iOS support is still relatively new.

Since Digia acquired the commercial framework from Nokia in 2011, and took on stewardship of the open source Qt project in 2012, the Finnish company has focused on expanding mobile support. The first production-ready Qt ports of Android and iOS arrived in late 2013 in the beta version of Qt 5.2. This was enabled with Qt Quick and its declarative scripting language QML, which enabled Javascript integration.

Although Qt has been always cross-platform, and now supports Linux, Windows, OS X, Android, and iOS, among other platforms, its embedded implementation focuses on Linux. The original Qt, called Qt/X11, was available in both a pseudo open source Unix and proprietary Windows version by Norwegian firm Trolltech back in the early 1990s. A Linux version soon followed. In 2000, after considerable debate in the Linux community involving the KDE project, which used Qt, the development framework was released under the fully open source GPL v2.

Trolltech then expanded to the Mac, and in 2003, customized its Linux-ready Qtopia embedded stack, built on the Linux-based Qt/Embedded to expand beyond handhelds to support mobile phones. Qtopia was billed as “the de facto standard application platform for embedded Linux.”

Trolltech continued to grow, and in 2008, Nokia acquired the company for about $150 million, giving rise to speculation Nokia would phase out Symbian in favor of Qtopia Linux. Yet, in 2009, Nokia’s new Qt Software unit replaced Qtopia with a cross-platform Qt 4.5 and switched to an LGPL license.

Nokia was a partner with Intel in the new MeeGo Linux project, which included a mobile profile, but in 2011, hopes for a new MeeGo-driven Nokia died when Nokia announced a partnership with Microsoft. Nokia said it would backburner MeeGo and focus on Windows Phone. The next year, Nokia sold the commercial Qt business and open source project to Digia, which then spun off the Qt Company.