[OE-core] [PATCH V2 1/1] opkg: update-alternatives fails for "[" and "[[" in busybox

Paul Barker paul at paulbarker.me.uk
Wed Oct 22 08:59:15 UTC 2014


On 22 October 2014 09:43, Liu Jian <jian.liu at windriver.com> wrote:
> Building a small filesystem with busybox gives the following error lines:
> (see log.do_rootfs under bitbake_build/tmp/work/)
> sed: -e expression #1, char 41: unterminated address regex
> sed: -e expression #1, char 42: unterminated address regex
> This is caused by the script
> bitbake_build/tmp/sysroots/x86_64-linux/usr/bin/update-alternatives.
> "[" can not be used directly in sed expression.
>
> Signed-off-by: Jian Liu <jian.liu at windriver.com>
> ---
> ...andle-leftbracket-for-update-alternatives.patch | 23
> ++++++++++++++++++++++
> meta/recipes-devtools/opkg/opkg_0.2.2.bb | 1 +
> 2 files changed, 24 insertions(+)
> create mode 100644
> meta/recipes-devtools/opkg/opkg/handle-leftbracket-for-update-alternatives.patch
>
> diff --git
> a/meta/recipes-devtools/opkg/opkg/handle-leftbracket-for-update-alternatives.patch
> b/meta/recipes-devtools/opkg/opkg/handle-leftbracket-for-update-alternatives.patch
> new file mode 100644
> index 0000000..7c9eac7
> --- /dev/null
> +++
> b/meta/recipes-devtools/opkg/opkg/handle-leftbracket-for-update-alternatives.patch
> @@ -0,0 +1,23 @@
> +diff -Nur trunk.orig/utils/update-alternatives.in
> trunk/utils/update-alternatives.in
> +--- trunk.orig/utils/update-alternatives.in 2013-08-16
> 04:22:29.000000000 +0800
> ++++ trunk/utils/update-alternatives.in 2014-09-19 10:55:22.238159317 +0800
> +@@ -68,6 +68,10 @@
> + sed -e 's/\//\\\//g'
> + }
> +
> ++protect_special_character() {
> ++ sed -e 's/\[/\\\[/g'
> ++}
> ++
> + remove_alt() {
> + [ $# -lt 2 ] && return 1
> + local name="$1"
> +@@ -75,7 +79,7 @@
> +
> + [ ! -f $ad/$name ] && return 0
> +
> +- path=`echo $path | protect_slashes`
> ++ path=`echo $path | protect_slashes | protect_special_character`
> + sed -ne "/^$path\>.*/!p" $ad/$name > $ad/$name.new
> + mv $ad/$name.new $ad/$name
> + }
> diff --git a/meta/recipes-devtools/opkg/opkg_0.2.2.bb
> b/meta/recipes-devtools/opkg/opkg_0.2.2.bb
> index 867ff7a..9d09194 100644
> --- a/meta/recipes-devtools/opkg/opkg_0.2.2.bb
> +++ b/meta/recipes-devtools/opkg/opkg_0.2.2.bb
> @@ -5,6 +5,7 @@ SRC_URI =
> "http://downloads.yoctoproject.org/releases/${BPN}/${BPN}-${PV}.tar.gz
> file://add-exclude.patch \
> file://opkg-configure.service \
> file://libopkg-opkg_remove.c-avoid-remove-pkg-repeatly-with.patch \
> + file://handle-leftbracket-for-update-alternatives.patch \
> "
>
> S = "${WORKDIR}/${BPN}-${PV}"
> --
> 1.8.5.2.233.g932f7e4
>
> --
> Jian Liu
> Email: jian.liu at windriver.com
> Office Phone: 86-10-84778539
>

update-alternatives is now provided by the opkg-utils recipe, not
opkg. opkg-utils is part of the Yocto Project so we maintain upstream
as well. Could you take a look at the contribution guidelines for
opkg-utils (http://git.yoctoproject.org/cgit/cgit.cgi/opkg-utils/tree/CONTRIBUTING)
and submit the patch against that? We can then just bump the SRCREV
which is used within OpenEmbedded, rather than maintaining an isolated
patch.

This should hopefully be fairly straightforward to do, the patch you
have should apply cleanly to update-alternatives (there is no
'update-alternatives.in' anymore) and then just commit and send to the
appropriate email addresses. If there's any issues let me know.

When opkg v0.3.0 is released, it will no longer contain the
update-alternatives script so hopefully that will make things less
confusing.

Thanks,

-- 
Paul Barker

Email: paul at paulbarker.me.uk
http://www.paulbarker.me.uk



More information about the Openembedded-core mailing list