Error building grep for OpenEmbedded

This is another error related to using a newer version of texinfo than expected. It’s also another “wait for it to fail and then edit in the working directory” solution unless someone can provide a better option.

Once the build has failed with the following message:

grep.texi:291: @itemx must follow @item

open up $GUMSTIXTOP/tmp/work/x86_64-linux/grep-native-2.5.1-r2/grep-2.5.1/doc/grep.texi and delete lines 286 to 290 (inclusive). Side-effect: your generated documentation will no longer be perfect.

gcc error building Python in OE

This error message provides very little clue as to what the actual problem is when compiling Python during the OpenEmbedded build process:

| gcc: error: directory”: No such file or directory

As it turns out (thanks to the tip here), this is caused by a change in subversion.

Luckily it’s easy to inject your own copy earlier in the path than the one it usually finds. Simply create a script called svnversion in $GUMSTIXTOP/bitbake/bin and insert the following:

#!/bin/sh
echo exported

Your problem should be solved.

Missing find.pl compiling OE

I received the following error due to a file that is no longer included in Perl distributions:

| Can’t locate find.pl in @INC (@INC contains: /etc/perl /usr/local/lib/perl/5.18.2 /usr/local/share/perl/5.18.2 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.18 /usr/share/perl/5.18 /usr/local/lib/site_perl .) at perlpath.pl line 7.

There are ways to integrate a copy of the file into the build process, but my inexperience with bitbake et al. meant that when they didn’t work I couldn’t troubleshoot very well myself. Instead, I simply placed the file in /etc/perl. The contents of the file, which should be called find.pl, can be found below.

Continue reading

Error fetching packages for OpenEmbedded

For my third post on compiling OpenEmbedded for Gumstix on a modern system, we come across errors downloading base-passwd, busybox, curl, dosfstools, fakeroot, file, gconf-dbus, git, iana-etc, ipkg, ipkg-utils, libxml-parser-perl, libxml2, mime-support, module-init-tools, netbase, openssl, pax-utils, pcmciautils, popt, pxaregs.c, setserial, sysvinit, tinylogin, tslib, udev, update-alternatives, update-rc.d, usbutils, util-linux, and zlib.

This is a simple problem and a simple fix: old versions of these packages are either moved to a different location or removed entirely, so we change the URLs that the build process uses. Beware: using alternate sources for these packages carries an inherent risk – you may be downloading a modified version without knowing. Where possible you should also add hash entries for each file based on a known good value.

Continue reading

binutils errors compiling OE

The second problem I encountered in building OpenEmbedded for our Gumstix devices was a failure when downloading binutils. Specifically, the checksum found for the downloaded file didn’t match the one that the build process expected. The message given is:

NOTE: The MD5Sums did not match. Wanted: ‘9d22ee4dafa3a194457caf4706f9cf01’ and Got: ‘ccd264a5fa9ed992a21427c69cba91d3’
NOTE: Task failed: Checksum of ‘ftp://ftp.gnu.org/gnu/binutils/binutils-2.18.tar.bz2’ failed
NOTE: package binutils-cross-2.18-r1: task do_fetch: failed
ERROR: TaskFailed event exception, aborting
NOTE: package binutils-cross-2.18: failed
ERROR: Build of /home/kemp/gumstix/gumstix-oe/org.openembedded.snapshot/packages/binutils/binutils-cross_2.18.bb do_fetch failed
ERROR: Task 317 (/home/kemp/gumstix/gumstix-oe/org.openembedded.snapshot/packages/binutils/binutils-cross_2.18.bb, do_fetch) failed

The error is due to an incompatibility between older versions of binutils and newer versions of texinfo. This post show you how to resolve this.

Continue reading

patch version error compiling OE

I have had to check out our Gumstix stock and find out if it’s still usable. They are a mix of old Connex and (non-Pro) Verdex boards and so the only OS I can build for them is OpenEmbedded. I have yet to find out if the currently available version from the Gumstix website actually works with these versions of the boards, but one step at a time…

This post walks through how to solve the following error message when building OpenEmbedded on modern systems:

| configure: error:
| quilt requires at least version 2.4 of GNU patch. You can download a
| current version of patch from ftp.gnu.org, or if you already have GNU patch
| then you can supply its path with the ‘–with-patch=’ option.

Continue reading

Taylor Wimpey new build: Hedging

This post describes the condition of the ground that Taylor Wimpey decided would be suitable for planting hedging in at the front of our new build property. This forms part of our on-going struggle to have TW meet the quality expected (and required) of them. Look out for additional posts in the near future discussing snagging, the back garden, and other issues that have arisen since. Unfortunately, TW are completely ignoring me with regard to this particular issue and I suspect they’re trying to ride out the period until our TW warranty expires and they’ll only have to put right any structural defects rather than fixing bad workmanship as they are currently required to do.

Continue reading

Fixing webcam after Ubuntu 14.04 upgrade

After upgrading to Ubuntu 14.04 (Trusty Tahr), my wife found that her webcam (integrated into a Dell monitor) was no longer available in Skype and other applications. The microphone was available, so the USB connection to the monitor appeared functional. The problem turned out to be that she was not in the video group, which is required in order to access webcams. The following command resolved this:

sudo adduser user video
(replace user with your own username)

After this you will have to log out and back in and then you should have access to your webcam.

I’m not sure if this also applies for a new install, so if anyone can confirm/deny then that would be great.

Packaging a Python app for Windows

This post gives an overview of the steps to package a Python application for distribution to Windows users in such a way that they don’t have to worry about installing Python, additional modules, and so on. This is significantly more convenient if they are not an experienced computer user, or if they simply have no need for Python otherwise. My particular approach is based around a combination of PyInstaller (to create a Windows executable) and NSIS (to create the installer). I’m not an expert in this and in fact this is my first experimentation outside of py2exe, so your own judgement should be applied. However, this technique worked for me and seems to have been used by people previously (for example, this Stack Overflow answer).

Continue reading