Permalink 10:23:09 am, by Greg, 119 words, 71 views   English (CA)
Categories: Labs, Documentation; Mins. worked: 0

Linux keyboards

In anticipation of getting rid of the iMacs in the lab, I was considering how to provide decent non-English character maps. The little applet I have doesn't allow you to insert combinations, so it's ultimately not the tool we need.

A little research turned up two very useful things: KeyboardLayoutEditor and LanguageGeek's keyboard layouts.

With them we should be able to construct custom keyboards that address the needs of projects like the Moses dictionary. Alternatively, and perhaps more forward-looking, we could write some xslt to convert MacOS .keylayout files to xkb format. MacOS keyboards are easier to find (e.g. languagegeek.com has MacOS keyboards for all listed languages), and written in XML, so it should be relatively easy-ish.


Permalink 09:48:15 am, by mholmes, 157 words, 77 views   English (CA)
Categories: Servers, Activity log, Documentation; Mins. worked: 30

Jenkins mod_proxy setup

My Jenkins box was showing me an error message about proxying being set up wrongly in its Management page. It turns out recent changes to Jenkins have either triggered this problem, or triggered the error message because of better monitoring (I couldn't actually figure out which). At the same time, the Stylesheets job, which checks out code from GitHub, was failing to trigger, or possibly failing to correctly poll the GitHub repo (again, I couldn't quite figure out which, although I think it was failing to poll), so clearly something was wrong. I consulted this page, and modified the /etc/apache2/sites_available/jenkins file to add "nocanon" to the first line shown below, and to add the second and third lines. After a reboot, Jenkins came up without the error message in the Management page, and the Stylesheets job instantly polled the repo, updated, and started building.

ProxyPass / http://localhost:8080/ nocanon
ProxyPassReverse / http://localhost:8080
AllowEncodedSlashes NoDecode


Permalink 10:10:04 am, by Greg, 288 words, 101 views   English (CA)
Categories: Servers, Activity log; Mins. worked: 30

Apt-mirror postmirror script

In order to do an install from completely local resources we need to mirror files that apt-mirror ignores. Specifically, we need the udebs that are used in the debian-installer. To make sure we're up-to-date I've added a little extra to the postmirror script, but I was having trouble debugging a problem with it, so I rewrote it to be a bit tidier. The following creates the administrative layer that tells the debian-installer what files to look for and where they are. It basically mirrors the packages lists in each sub-directory in the apt tree. We still need to run the udebs script to get the udebs themselves.

################################## postmirror.sh ##########################################################
#!/bin/sh -x
# the udebs script gets the actual files we need

# A quick apt directory structure primer:
# an apt server (e.g. archive.ubuntu.com) contains repositories (e.g. trusty-backports),
# which contain archives (e.g. multiverse), which contain directories
# a complete example - http://archive.ubuntu.com/ubuntu/dists/trusty-backports/multiverse/debian-installer/

# With this in mind, we create bash 'arrays' of the structure:
# server we're syncing against
# repositories we're mirroring
# archives in repositories
# installer location inside archive
#where we're storing it locally

for REPO in $REPOS; do
    for ARCHIVE in $ARCHIVES; do
        for DIRECTORY in $DIRECTORIES;do
            # create directory structure
            if [ ! -e "$LOCALDIR/ubuntu/dists/$REPO/$ARCHIVE/$DIRECTORY" ]; then
                mkdir -p "$LOCALDIR/ubuntu/dists/$REPO/$ARCHIVE/$DIRECTORY"
            # do the sync
            rsync --recursive --times --links --hard-links --delete --delete-after \
            rsync://$MIRROR/ubuntu/dists/$REPO/$ARCHIVE/$DIRECTORY/ $LOCALDIR/ubuntu/dists/$REPO/$ARCHIVE/$DIRECTORY


Permalink 02:48:11 pm, by Greg, 78 words, 51 views   English (CA)
Categories: Activity log, Documentation; Mins. worked: 60

Added new disk to Papaya's LVM

In the next few days I'll begin populating a 14.04 repository on the apt machine.
We were running short of disk space, so I added another old drive and added it to the LVM setup. Most of the 'how-to' is identical to my post on extending a logical volume, but I've rewritten the post to reflect the additional steps required to add a new disk.

The post is here: http://hcmc.uvic.ca/blogs/index.php?blog=11&p=10175


Permalink 03:41:38 pm, by Greg, 210 words, 594 views   English (CA)
Categories: Announcements; Mins. worked: 0

Owncloud 6 install did not go well

I knew I was taking a chance as the repo is for RHEL 6 and the machine is RHEL 5, but I figured "it's php, what can go wrong?" This is what went wrong:

owncloud-6.0.1-5.1.noarch from isv_ownCloud_community has depsolving problems
--> Missing Dependency: php-pear-Net-Curl is needed by package owncloud-6.0.1-5.1.noarch (isv_ownCloud_community)
php53-common-5.3.3-22.el5_10.x86_64 from rhel-x86_64-server-5 has depsolving problems
--> php53-common conflicts with php-common
owncloud-6.0.1-5.1.noarch from isv_ownCloud_community has depsolving problems
--> Missing Dependency: php-pear-MDB2-Driver-mysqli is needed by package owncloud-6.0.1-5.1.noarch (isv_ownCloud_community)
owncloud-6.0.1-5.1.noarch from isv_ownCloud_community has depsolving problems
--> Missing Dependency: php-pear-MDB2-Driver-mysqli is needed by package owncloud-6.0.1-5.1.noarch (isv_ownCloud_community)
owncloud-6.0.1-5.1.noarch from isv_ownCloud_community has depsolving problems
--> Missing Dependency: php-pear-Net-Curl is needed by package owncloud-6.0.1-5.1.noarch (isv_ownCloud_community)
Error: Missing Dependency: php-pear-Net-Curl is needed by package owncloud-6.0.1-5.1.noarch (isv_ownCloud_community)
Error: php53-common conflicts with php-common
Error: Missing Dependency: php-pear-MDB2-Driver-mysqli is needed by package owncloud-6.0.1-5.1.noarch (isv_ownCloud_community)
You could try using --skip-broken to work around the problem
You could try running: package-cleanup --problems
package-cleanup --dupes
rpm -Va --nofiles --nodigest

Owncloud install is now on hold...


Permalink 03:55:34 pm, by mholmes, 273 words, 332 views   English (CA)
Categories: Announcements; Mins. worked: 180

Building a IDE VM for Appcelerator

I've spent a couple of days trying and failing over the weekend to build an Ubuntu 12.04 VM which was able to build and run Android apps using the Titanium Appcelerator IDE. The requirements are very confusing and the whole system is quite fragile. At home I was working with a 64-bit VM, but I've now given up on that idea because ia32-libs seems to be required and that's no longer provided by Ubuntu. I've now built a 32-bit VM, and after much hassle I've got things building for Android and running on the Android emulator. The basic rules:

  • Add the webupd8team ppa to the repos and install the java 6 jdk. Don't install any other javas.
  • Install build-essential, dkms, libjpeg62 and libwebkitgtk-1.0-0
  • Download and unwrap the latest nodejs package, ./configure, make and sudo make install.
  • Create .npmrc in your home directory with this in it: prefix=/home/mholmes
  • Make sure this is in your .profile: $PATH="$HOME/bin;$PATH" (and make sure $HOME/bin is there).
  • Make sure $HOME/tmp is chowned to you and writable.
  • Download and install the Android APK bundle and put it in your home directory. You can then point Titanium at it later.
  • Download and unwrap Titanium in your home folder.

When you first run Titanium, let it do the updates it identifies; then restart it to confirm that it succeeded and doesn't ask you again (several times I've been caught in a loop where it installs, but thinks it hasn't, so tries again every time you start it up). Then install the platform SDKs. I succeeded in installing Android and Tizen, but Blackberry keeps failing.


Permalink 02:09:15 pm, by Greg, 180 words, 64 views   English (CA)
Categories: Labs; Mins. worked: 0

Lab machines - things to do

I've noticed that UFW is not enabled by default in Precise (12.04), so it needs to be enabled, and adjusted, by an hcmc package. Specifically, I'm thinking of locking the machines down so that there is only access from our subnet. Ref's here: http://manpages.ubuntu.com/manpages/precise/en/man8/ufw.8.html

An upstart script, or perhaps a lightdm script, needs to be written so that whenever someone logs in to the machine (a desktop session, not ssh) an admin script is run that kills idle X sessions. I've started work on this and have a script that works, but no elegant trigger that will run it on login. I've tried /etc/pam.d/login and adding pam_exec but it seems to fail silently.

A shutdown script that politely informs active users that the machine will shut down in n minutes. The user should be able to cancel it. I have a working countdown timer and shutdown dialogue invocation but have not tested it in a cron job.

Packages for the next LTS need to be built and tested.


Permalink 10:11:21 am, by Greg, 186 words, 57 views   English (CA)
Categories: Labs, Activity log, Documentation; Mins. worked: 50

LDAP tuning on lab machines

I've noticed some auth.log entries that suggest that lab machines are constantly connected to the ldap server and other entries that suggest that there is a problem with the apparmor configuration (entries that include apparmor=DENIED and refer to mkdor and telepathy). I believe I've sorted it out, though.

In the first case I've discovered that nslcd DOES stay connected to the server. So, I've added a line to /etc/nslcd.conf that says:

idle_timelimit 60

which should close the ldap connection after 60 seconds. There are other timeouts in the same class that I may need to use, but this looks like the best first choice.

In the second case, there are 'tunables' in apparmor that should be adjusted in cases like ours - specifically, using non-standard home directory locations. In the file '/etc/apparmor.d/tunables/home' I've edited the line that looks like this:


to look like this:

It appears that both problems have gone away, at least so far. Fingers croseed.

@{HOMEDIRS}=/home/ /home/netlink/



Permalink 01:04:18 pm, by mholmes, 119 words, 405 views   English (CA)
Categories: Announcements; Mins. worked: 60

Using the TV workstation for Skype conferencing

Did a test setup this morning for using the large-screen TV station for Skype video-conferencing, using my cheapo camera, one of the Apex condenser mics and one of the Art mic pres. This is the setup and settings that worked best:

  • Mic on boom stand projecting into the middle of the table, but not touching the table.
  • Mic set low-cut filter on, level attenuation off, directionality omni (right position).
  • Mic via XLR to Art Pre, with these settings:
    • Gain: 20dB
    • Pad +20dB
    • Phantom power: on
    • Comp threshold: 0
    • Slope: Comp
    • Speed: Auto
    • Phase: Norm
    • Output: +4
  • The Pre is going out through mono 1/4" TS through a female-to-female 1/4" TS to an ancient home-made 1/4" TS to 1/8" TS, and then into the sound card.


Permalink 06:15:27 pm, by mholmes, 317 words, 111 views   English (CA)
Categories: R & D, Activity log, Documentation; Mins. worked: 240

More on linkchecker

I now have a jenkins job running (tenth iteration, after many attempts to figure out basic shell stuff in jenkins). Config here for the moment -- going into svn when ready:

<?xml version='1.0' encoding='UTF-8'?>
  <description>Runs a script which checks links on the Guidelines HTML output from TEIP5.</description>
    <jenkins.advancedqueue.AdvancedQueueSorterJobProperty plugin="PrioritySorter@2.6">
  <scm class="hudson.scm.NullSCM"/>

echo "Running link checking for P5 version $VERSION."

if [[ $VERSION =~ [a-z]+$ ]]; then
	echo "Using configuration for pre-release version."
	linkchecker --config=$JENKINS_HOME/jobs/Guidelines-Link-Check/linkcheckerrcalphabeta $TARGET
	echo "Using configuration for release version."
	linkchecker --config=$JENKINS_HOME/jobs/Guidelines-Link-Check/linkcheckerrcrelease $TARGET

echo "Transforming checker report..."
saxon -s:checkResults/linkchecker-out.xml -xsl:$JENKINS_HOME/jobs/Guidelines-Link-Check/linkchecker.xsl
echo "Done!"
    <hudson.plugins.logparser.LogParserPublisher plugin="log-parser@1.0.8">

<< Previous Page :: Next Page >>


This blog is the location for all work involving software and hardware maintenance, updates, installs, etc., both routine and urgent, in the server room, the labs and the R&D rooms.



August 2014
Sun Mon Tue Wed Thu Fri Sat
 << <   > >>
          1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30

XML Feeds