Kemp’s Blog

A technical blog about technical things

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.

This issue is caused by version checking code that can’t handle anything more than a very simple version number. My version of patch (2.7.1), unfortunately, does not have the format this check expects. The first thing to do therefore is to obtain a version of patch that the check will succeed for. I obtained version 2.5 from the official GNU ftp site as 2.4 is no longer available. Version 2.7 appears to fail the check as well, so newer versions may be out of the question.

Once you have downloaded these sources you’ll need to extract them, which I did to /home/kemp/patch-2.5 and then change to that directory and run the following:

./configure
make

Don’t run make install as you don’t want to overwrite your system-wide copy of patch with this older one.

Next, you’ll need to open up quilt-native.inc (located at $GUMSTIXTOP/org.openembedded.snapshot/packages/quilt) and edit the line

EXTRA_OECONF = "--disable-nls"

to reflect the path to the local copy of patch:

EXTRA_OECONF = "--disable-nls --with-patch=/home/kemp/patch-2.5/patch"

Running the bitbake command again with these changes made should result in quilt finding a version of patch that it is happy with.