package/perl: fix configure when BR2_VERSION_FULL contains a '/'
authorYann E. MORIN <yann.morin.1998@free.fr>
Sat, 27 Mar 2021 22:42:20 +0000 (23:42 +0100)
committerThomas Petazzoni <thomas.petazzoni@bootlin.com>
Sun, 28 Mar 2021 19:24:37 +0000 (21:24 +0200)
When BR2_VERSION_FULL contains one or more '/', injection our version
in the perl patch-level fails:

    /usr/bin/sed: -e expression #1, char 27: unknown option to `s'

When the build is done in a git tree, and HEAD is a tag, BR2_VERSION_FULL
will contain that tag name. Even if not widely common, it is not unusual
for a tag to contain a '/', and this is perfectly legit in git.

So, mangle BR2_VERSION_FULL to escape all '/' with a backslash '\', so
that the sed expression is correct, and so that we eventually have a
correct pathclevel string in perl's --version output.

Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>
Cc: Francois Perrad <francois.perrad@gadz.org>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
package/perl/perl.mk

index 0ff288db0e0b86b429400129e757d9fce8e87734..a77686f951fcf4b3f31c134c8a197903ada15e6c 100644 (file)
@@ -79,7 +79,7 @@ endif
 define PERL_CONFIGURE_CMDS
        (cd $(@D); $(TARGET_MAKE_ENV) HOSTCC='$(HOSTCC_NOCCACHE)' \
                ./configure $(PERL_CONF_OPTS))
-       $(SED) 's/UNKNOWN-/Buildroot $(BR2_VERSION_FULL) /' $(@D)/patchlevel.h
+       $(SED) 's/UNKNOWN-/Buildroot $(subst /,\/,$(BR2_VERSION_FULL)) /' $(@D)/patchlevel.h
 endef
 
 define PERL_BUILD_CMDS