* flex wrapper returns wrong version
@ 2013-05-09 13:03 Martin Jansa
2013-05-09 14:31 ` [PATCH] flex: fix reported executable name caused by OE wrapper Martin Jansa
0 siblings, 1 reply; 4+ messages in thread
From: Martin Jansa @ 2013-05-09 13:03 UTC (permalink / raw)
To: Kevin Tian; +Cc: openembedded-core
[-- Attachment #1: Type: text/plain, Size: 1013 bytes --]
Flex wrapper was added with:
commit d835488c526aa61163ade503c6586eaa59509a07
Author: Kevin Tian <kevin.tian@intel.com>
Date: Wed Jan 5 10:26:36 2011 +0800
flex-native: create a wrapper script for sstate installation
flex-native encodes M4 staging path in its binary, which breaks sstate
installation in a new build environment. Use create_wrapper to create
a wrapper script which explicitly set M4 environmental variable to the
new path
and --version returns `basename $0` --version, so in my case:
sysroots/x86_64-linux/usr/bin/flex --version
flex.real 2.5.35
Which isn't parsed correctly e.g. in newer webkit
| Could NOT find FLEX: Found unsuitable version "flex.real 2.5.35", but
| required is at least "2.5.34" (found
| /OE/shr-core/tmp-eglibc/sysroots/x86_64-linux/usr/bin/flex)
we can probably work around it by changing regexp in
/sysroots/x86_64-linux/usr/share/cmake-2.8/Modules/FindFLEX.cmake
but it would be nice to fix it in flex.
Cheers,
[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 205 bytes --]
^ permalink raw reply [flat|nested] 4+ messages in thread
* [PATCH] flex: fix reported executable name caused by OE wrapper
2013-05-09 13:03 flex wrapper returns wrong version Martin Jansa
@ 2013-05-09 14:31 ` Martin Jansa
2013-05-09 17:55 ` Saul Wold
0 siblings, 1 reply; 4+ messages in thread
From: Martin Jansa @ 2013-05-09 14:31 UTC (permalink / raw)
To: openembedded-core
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
---
meta/recipes-devtools/flex/flex.inc | 15 ++++++++++++++-
.../flex/flex/drop.suffix.from.wrapper.patch | 21 +++++++++++++++++++++
2 files changed, 35 insertions(+), 1 deletion(-)
create mode 100644 meta/recipes-devtools/flex/flex/drop.suffix.from.wrapper.patch
diff --git a/meta/recipes-devtools/flex/flex.inc b/meta/recipes-devtools/flex/flex.inc
index 517db16..344b716 100644
--- a/meta/recipes-devtools/flex/flex.inc
+++ b/meta/recipes-devtools/flex/flex.inc
@@ -6,10 +6,23 @@ HOMEPAGE = "http://sourceforge.net/projects/flex/"
SECTION = "devel"
LICENSE = "BSD"
-SRC_URI = "${SOURCEFORGE_MIRROR}/flex/flex-${PV}.tar.bz2 "
+SRC_URI = "${SOURCEFORGE_MIRROR}/flex/flex-${PV}.tar.bz2 \
+ file://drop.suffix.from.wrapper.patch \
+"
inherit autotools gettext
+# drop building doc, there is openembedded-core/scripts/help2man
+# but that just returns exit 1 and flex.1 is immediately removed:
+# openembedded-core/scripts/help2man --name='the fast lexical analyser generator' \
+# --section=`echo $i | sed -e 's/.*\.\([^.]*\)$/\1/'` \
+# ../flex > $i || rm -f $i ; \
+# and do_install fails, it wasn't failing before, because flex.1 included in
+# release tarbal was valid until we patched main.c in drop.suffix.from.wrapper.patch
+do_configure_prepend() {
+ sed -i "/^\s*doc /d" Makefile.am
+}
+
M4 = "${bindir}/m4"
M4_class-native = "${STAGING_BINDIR_NATIVE}/m4"
diff --git a/meta/recipes-devtools/flex/flex/drop.suffix.from.wrapper.patch b/meta/recipes-devtools/flex/flex/drop.suffix.from.wrapper.patch
new file mode 100644
index 0000000..9bbd088
--- /dev/null
+++ b/meta/recipes-devtools/flex/flex/drop.suffix.from.wrapper.patch
@@ -0,0 +1,21 @@
+Upstream probably doesn't expect wrappers like we create for flex.
+
+This also fixes disabled C_plus_plus functions in flex++ if we ever create wrapper for flex++.
+
+Upstream-Status: Inappropriate [configuration]
+
+Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
+
+--- flex-2.5.35/main.c.orig 2013-05-09 15:19:34.619281743 +0200
++++ flex-2.5.35/main.c 2013-05-09 15:19:10.216280868 +0200
+@@ -984,6 +984,10 @@
+ /* Enable C++ if program name ends with '+'. */
+ program_name = basename2 (argv[0], 0);
+
++ /* Drop trailing .real suffix if it's there */
++ if (strstr(program_name, ".real") != NULL && strstr(program_name, ".real") - program_name == strlen(program_name) - 5)
++ program_name[strlen (program_name) - 5] = '\0';
++
+ if (program_name[0] != '\0' &&
+ program_name[strlen (program_name) - 1] == '+')
+ C_plus_plus = true;
--
1.8.2.1
^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [PATCH] flex: fix reported executable name caused by OE wrapper
2013-05-09 14:31 ` [PATCH] flex: fix reported executable name caused by OE wrapper Martin Jansa
@ 2013-05-09 17:55 ` Saul Wold
2013-05-10 10:21 ` [PATCHv2] " Martin Jansa
0 siblings, 1 reply; 4+ messages in thread
From: Saul Wold @ 2013-05-09 17:55 UTC (permalink / raw)
To: Martin Jansa; +Cc: openembedded-core
On 05/09/2013 07:31 AM, Martin Jansa wrote:
> Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
> ---
> meta/recipes-devtools/flex/flex.inc | 15 ++++++++++++++-
> .../flex/flex/drop.suffix.from.wrapper.patch | 21 +++++++++++++++++++++
> 2 files changed, 35 insertions(+), 1 deletion(-)
> create mode 100644 meta/recipes-devtools/flex/flex/drop.suffix.from.wrapper.patch
>
> diff --git a/meta/recipes-devtools/flex/flex.inc b/meta/recipes-devtools/flex/flex.inc
> index 517db16..344b716 100644
> --- a/meta/recipes-devtools/flex/flex.inc
> +++ b/meta/recipes-devtools/flex/flex.inc
> @@ -6,10 +6,23 @@ HOMEPAGE = "http://sourceforge.net/projects/flex/"
> SECTION = "devel"
> LICENSE = "BSD"
>
> -SRC_URI = "${SOURCEFORGE_MIRROR}/flex/flex-${PV}.tar.bz2 "
> +SRC_URI = "${SOURCEFORGE_MIRROR}/flex/flex-${PV}.tar.bz2 \
> + file://drop.suffix.from.wrapper.patch \
> +"
>
> inherit autotools gettext
>
> +# drop building doc, there is openembedded-core/scripts/help2man
> +# but that just returns exit 1 and flex.1 is immediately removed:
> +# openembedded-core/scripts/help2man --name='the fast lexical analyser generator' \
> +# --section=`echo $i | sed -e 's/.*\.\([^.]*\)$/\1/'` \
> +# ../flex > $i || rm -f $i ; \
> +# and do_install fails, it wasn't failing before, because flex.1 included in
> +# release tarbal was valid until we patched main.c in drop.suffix.from.wrapper.patch
> +do_configure_prepend() {
> + sed -i "/^\s*doc /d" Makefile.am
I think this needs a ${S} in front of the Makefile.am otherwise it's not
found since we are doing the configure in ${B}
Thanks
Sau!
> +}
> +
> M4 = "${bindir}/m4"
> M4_class-native = "${STAGING_BINDIR_NATIVE}/m4"
>
> diff --git a/meta/recipes-devtools/flex/flex/drop.suffix.from.wrapper.patch b/meta/recipes-devtools/flex/flex/drop.suffix.from.wrapper.patch
> new file mode 100644
> index 0000000..9bbd088
> --- /dev/null
> +++ b/meta/recipes-devtools/flex/flex/drop.suffix.from.wrapper.patch
> @@ -0,0 +1,21 @@
> +Upstream probably doesn't expect wrappers like we create for flex.
> +
> +This also fixes disabled C_plus_plus functions in flex++ if we ever create wrapper for flex++.
> +
> +Upstream-Status: Inappropriate [configuration]
> +
> +Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
> +
> +--- flex-2.5.35/main.c.orig 2013-05-09 15:19:34.619281743 +0200
> ++++ flex-2.5.35/main.c 2013-05-09 15:19:10.216280868 +0200
> +@@ -984,6 +984,10 @@
> + /* Enable C++ if program name ends with '+'. */
> + program_name = basename2 (argv[0], 0);
> +
> ++ /* Drop trailing .real suffix if it's there */
> ++ if (strstr(program_name, ".real") != NULL && strstr(program_name, ".real") - program_name == strlen(program_name) - 5)
> ++ program_name[strlen (program_name) - 5] = '\0';
> ++
> + if (program_name[0] != '\0' &&
> + program_name[strlen (program_name) - 1] == '+')
> + C_plus_plus = true;
>
^ permalink raw reply [flat|nested] 4+ messages in thread
* [PATCHv2] flex: fix reported executable name caused by OE wrapper
2013-05-09 17:55 ` Saul Wold
@ 2013-05-10 10:21 ` Martin Jansa
0 siblings, 0 replies; 4+ messages in thread
From: Martin Jansa @ 2013-05-10 10:21 UTC (permalink / raw)
To: openembedded-core
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
---
meta/recipes-devtools/flex/flex.inc | 15 ++++++++++++++-
.../flex/flex/drop.suffix.from.wrapper.patch | 21 +++++++++++++++++++++
2 files changed, 35 insertions(+), 1 deletion(-)
create mode 100644 meta/recipes-devtools/flex/flex/drop.suffix.from.wrapper.patch
diff --git a/meta/recipes-devtools/flex/flex.inc b/meta/recipes-devtools/flex/flex.inc
index 517db16..02a66cf 100644
--- a/meta/recipes-devtools/flex/flex.inc
+++ b/meta/recipes-devtools/flex/flex.inc
@@ -6,10 +6,23 @@ HOMEPAGE = "http://sourceforge.net/projects/flex/"
SECTION = "devel"
LICENSE = "BSD"
-SRC_URI = "${SOURCEFORGE_MIRROR}/flex/flex-${PV}.tar.bz2 "
+SRC_URI = "${SOURCEFORGE_MIRROR}/flex/flex-${PV}.tar.bz2 \
+ file://drop.suffix.from.wrapper.patch \
+"
inherit autotools gettext
+# drop building doc, there is openembedded-core/scripts/help2man
+# but that just returns exit 1 and flex.1 is immediately removed:
+# openembedded-core/scripts/help2man --name='the fast lexical analyser generator' \
+# --section=`echo $i | sed -e 's/.*\.\([^.]*\)$/\1/'` \
+# ../flex > $i || rm -f $i ; \
+# and do_install fails, it wasn't failing before, because flex.1 included in
+# release tarbal was valid until we patched main.c in drop.suffix.from.wrapper.patch
+do_configure_prepend() {
+ sed -i "/^\s*doc /d" ${S}/Makefile.am
+}
+
M4 = "${bindir}/m4"
M4_class-native = "${STAGING_BINDIR_NATIVE}/m4"
diff --git a/meta/recipes-devtools/flex/flex/drop.suffix.from.wrapper.patch b/meta/recipes-devtools/flex/flex/drop.suffix.from.wrapper.patch
new file mode 100644
index 0000000..9bbd088
--- /dev/null
+++ b/meta/recipes-devtools/flex/flex/drop.suffix.from.wrapper.patch
@@ -0,0 +1,21 @@
+Upstream probably doesn't expect wrappers like we create for flex.
+
+This also fixes disabled C_plus_plus functions in flex++ if we ever create wrapper for flex++.
+
+Upstream-Status: Inappropriate [configuration]
+
+Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
+
+--- flex-2.5.35/main.c.orig 2013-05-09 15:19:34.619281743 +0200
++++ flex-2.5.35/main.c 2013-05-09 15:19:10.216280868 +0200
+@@ -984,6 +984,10 @@
+ /* Enable C++ if program name ends with '+'. */
+ program_name = basename2 (argv[0], 0);
+
++ /* Drop trailing .real suffix if it's there */
++ if (strstr(program_name, ".real") != NULL && strstr(program_name, ".real") - program_name == strlen(program_name) - 5)
++ program_name[strlen (program_name) - 5] = '\0';
++
+ if (program_name[0] != '\0' &&
+ program_name[strlen (program_name) - 1] == '+')
+ C_plus_plus = true;
--
1.8.2.1
^ permalink raw reply related [flat|nested] 4+ messages in thread
end of thread, other threads:[~2013-05-10 10:40 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-05-09 13:03 flex wrapper returns wrong version Martin Jansa
2013-05-09 14:31 ` [PATCH] flex: fix reported executable name caused by OE wrapper Martin Jansa
2013-05-09 17:55 ` Saul Wold
2013-05-10 10:21 ` [PATCHv2] " Martin Jansa
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox