Using SonarQube 5.4, Maven 3.3.9, Jenkins 2.19.1 on systems with both Java 1.7 and 1.8

Hello folks! My team spent hours and hours beating our head against a Sonar deployment problem on Ubuntu Trusty (14.04 LTS). I thought I might share our findings so that you won’t have to!

As you probably know, Trusty only makes Java Development Kit 1.7 available on the stock installation. The current stable version of the Java is 1.8. The way we install this is to use the OpenJDK PPA, generously uploaded by our dear friend Matthias Klose.

To make things even more exciting, a modern Maven is not available on this platform. And so we use the stock Maven 3.3.9 tarball distribution. This tarball distribution does not integrate well with Debian, and so, when we tell the system using sudo update-java-alternatives -s /usr/lib/jvm/java-1.8.0-openjdk-amd64 that we wish to use Java 1.8 as our default system JDK, it does not get the message.

The only way to reliably let Maven know which java you wish to use is to set the JAVA_HOME environment variable. In order to do this within the Jenkins environment, one must select the JDK one wishes to use:


To make things worse, this option is not, as one might expect, available for editing in a stock Jenkins 2.x installation. In Jenkins 1.x, one would be able to specify which java one wished to use just by specifying “openjdk8” in a field. With Jenkins 2.x, the field does not exist unless a configuration option in an unrelated form is set.

So! One should first select Manage Jenkins -> Global Tool Configuration:


Once this form is open, look for the “JDK installations…” button:


Click it very thoroughly just once.

You’ll be presented with a form into which you may enter details about the various JDKs your build executors may have access to. You’ll refer to them in your job configuration by the value of their “Name” field, and when executing the build, Jenkins will set JAVA_HOME to the value of the (you guessed it) JAVA_HOME field:


Once these entries are made, they can be selected in two place.

1) on the ZMQ Event Publisher:


2) in the post-build actions under SonarQube analysis with Maven (advanced)


And that’s how it’s done!

Here’s the details from my colleague, Thanh:

Posted in debian, Free Software, java, linux, Linux Foundation, open source, openstack, Software, ubuntu, virtualization, work | Leave a comment

OpenDaylight Symposium 2016

I’ll write this later.  Keywords and notes inline











Open Source




OSI stack


Developers and users working together.

Fast Dev/Test cycles

Sessions start at 10:30

Message bus

Minimal install needs to be smaller

Most functionalities must be implemented in modules

Upgrade path complexity

Out of band control channel.
OPNFV customers don’t run stock releases, make customisations and plugins easier.

Message bus

Distribution vendors should not be expected to perform package maintenance.  Get the distribution ready for fast pathing in to backports, security, testing  and unstable.

Posted in android, Azure, centos, colliertech, customer experience, debian, dns, ESXi, Free Software, freenode, irc, jessie, kvm, libvirt, linux, lvm, microsoft, network saturation, Networking, open source, qemu, quagga, rate limiting, Software, Telephony, traffic shaping, ubuntu, VBox, virtualization, washington, wheezy, work, xen | Leave a comment

virt manager cannot find suitable emulator for x86 64

Looks like I was missing qemu-kvm.

$ sudo apt-get install qemu-kvm qemu-system

Posted in debian, Free Software, kvm, libvirt, linux, open source, qemu, ubuntu, virtualization | Leave a comment

Some work on a VyOS image with Let’s Encrypt certs

I put some packages together this weekend. It’s been a while since I’ve debuilt anything officially.

The plan is to build a binding to the API. The certtool CSR (REQ) generation interface does not allow me to create a CRL with “not critical” attributes set on purposes. Maybe if I do it a bit closer to the metal it will be easier…

Posted in 2016, colliertech, cryptography, debian, Free Software, git, gnutls, gpl, irc, kvm, libvirt, linux, Networking, perl, proliant, qemu, security, sid, Software, virtualization, vyos, washington | Leave a comment

OMG Maven 3.0.4 on stretch

“Why?”, you might ask, would one want to run something other than the most recent version of Maven on the very newest and fangledest breed of the linux distribution we have all loved for so long.

“Because!”, I might answer, I’m trying to get the nexus-apt-plugin working on, and the version of nexus we’re running there explained to me in quite uncertain terms that it would talk to no other version of maven than 3.0.4 or something else that is not packaged for debian.

So I grabbed the source for version 3.0.4 from wheezy and patched it up to work with stretch:

$ cd /usr/src/deb
$ dget
$ cd maven-3.0.4
$ perl -i -pe 's/(libmodello-maven-plugin)1.4(-java)/$1$2/' debian/control
$ quilt pop -a
$ quild push 1
$ perl -i -pe 's/-1.4.x\.jar/.jar/' build.xml
$ perl -i -pe 's/google-collections/guava/' build.xml
$ perl -i -pe 's/\s+$//' build.xml
$ quilt refresh
$ quilt pop
$ quilt push -a
$ debuild -uc -us
$ sudo apt-get remove maven libmaven3-core-java
$ sudo dpkg -i ../maven_3.0.4-3+deb7u1_all.deb

And now I can build the silly nexus-apt-plugin…

$ mkdir -p /usr/src/git/github
$ git clone /usr/src/git/github/nexus-apt-plugin
$ cd /usr/src/git/github/nexus-apt-plugin
$ mvn compile && mvn -q test
Posted in CLI, compiler, debian, Free Software, Linux Foundation, Nexus, sid, Software, stretch, wheezy, work | Leave a comment

The Provisioning Act of 2016


Posted in Uncategorized | Leave a comment

My new rig

Go ahead and drool.


Posted in Uncategorized | Leave a comment


Hello dear readers and attendees,

This is the post that I will be/ will have been referencing during my presentation to the Seattle Central Community College’s Byte club on Thursday, December 10th at 1500-1630.

I will begin with a bit of an autobio and find out what kind of students we have in attendance. Please feel free to comment if you’d like to keep in touch before or after the presentation. I will discuss some of the bits and pieces of some industry standard platforms which I’ve developed, deployed, maintained, managed, co-operated, administered and replaced. We can discuss some of the patterns that work well in the industry, and some that are a bit harder to tame.

Once we have touched most of the areas of specialization represented at the meeting, I will dive in to an AngularJS demo I am developing in github here:

To follow along with the presentation, please run these commands or something similar. My development environment is Debian stable. So yes, this means that we’re not doing a demo of the state of the art. But it also means that the infrastructure has been exercised under load and in production.

Install Debian package dependencies

First, install the debian packages of nodejs and npm, the node package manager:

cjac@debian0:~$ sudo apt-get install nodejs nodejs-dev nodejs-legacy npm

Check out the git repository

After this, check out the repository from github and create a branch for your work:

cjac@debian0:~$ mkdir -p /usr/src/git/github/LLC-Technologies-Collier
cjac@debian0:~$ cd /usr/src/git/github/LLC-Technologies-Collier
cjac@debian0:/usr/src/git/github/LLC-Technologies-Collier$ git clone
cjac@debian0:/usr/src/git/github/LLC-Technologies-Collier$ cd Demo-SCCC-Byte-AngularJS
cjac@debian0:.../Demo-SCCC-Byte-AngularJS$ git checkout -b $USER

Upgrade to latest npm, install deps

Once we have the git repository checked out, we’ll grab the latest version of npm and the rest of the node modules

cjac@debian0:.../Demo-SCCC-Byte-AngularJS$ export PATH="$PWD/node_modules/.bin:$PATH"
cjac@debian0:.../Demo-SCCC-Byte-AngularJS$ npm install --save-exact npm@"2.1.0"
cjac@debian0:.../Demo-SCCC-Byte-AngularJS$ npm install --save-exact `cat pkgackage-list.txt`

This post and the associated git repository will be updated between now and the presentation on Thursday. Please chime in and feel free to get involved!


Posted in 2015, ajax, C.J. Insider, colliertech, cryptography, css, Databases, debian, Free Software, freenode, git, Hardware, html, irc, javascript, jessie, linux, mail, microsoft, mysql, Networking, open source, perl, security, Software, Telephony, ubuntu, VBox, virtualization, washington, wiki, winter, x509 | 3 Comments

Regarding fdupes

Dear readers,

There is a very useful tool for finding and merging shared permanent storage, and its name is fdupes. There was a terrible occurrence in the software after version 1.51, however. They removed the -L argument because too many people were complaining about lost data. It sounds like user error to me, and so I continue to use this one. I have to build from source, since the newer versions do not have the -L option.

And so there you are. I recommend using it, even though this most useful feature has been deprecated and removed from the software. Perhaps there should be a fdupes-danger package in Debian?

Posted in colliertech, debian, Free Software, git, linux, open source, Software, ubuntu | 4 Comments

I think I just accidentally the whole Seattle EDM scene

It was unintentional, I promise.

PS, what are you doing the night before Samhain this year? Feel like giving me and my bike a ride to Bellingham?

Posted in 2015, EDM, friends, KF7BMP, KHNC, network saturation, Radio, social networking, spirituality, wanderers, washington, Yaima | Leave a comment