Some fixes for RC3
cover Some fixes for RC3
This has a host contamination fix for texinfo and a non-gplv3 build fix, some konsole fixes from Paul.
These should go in before RC3.
Thanks
Sau!
The following changes since commit 31cb3974eeaf2a808e8da3864e70986578c58cb9:
sanity: disable mirrors for connectivity check (2011-09-16 18:07:19 +0100)
are available in the git repository at:
git://git.yoctoproject.org/poky-contrib sgw/oe-fix
http://git.yoctoproject.org/cgit.cgi/poky-contrib/log/?h=sgw/oe-fix
Joshua Lock (1):
texinfo: several changes to build without zlib and ncurses headers on
host
Paul Eggleton (2):
lib/oe/terminal.py: declare konsole from KDE 4.x as unsupported sanity.bbclass: add a sanity check for KDE 4.x konsole in TERMCMD
Saul Wold (1):
base.bbclass: add crosssdk items to INCOMPATIBLE_LICENSE exclude list
meta/classes/base.bbclass | 2 +- meta/classes/sanity.bbclass | 6 +++ meta/lib/oe/terminal.py | 27 ++++++++++++ .../texinfo-4.13a/disable-native-tools.patch | 43 ++++++++++++++++++++ .../texinfo/texinfo-4.13a/gettext-macros.patch | 34 +++++++++++++++ .../texinfo/texinfo-4.13a/link-zip.patch | 16 +++++++ meta/recipes-extended/texinfo/texinfo_4.13a.bb | 24 +++++----- 7 files changed, 139 insertions(+), 13 deletions(-) create mode 100644 meta/recipes-extended/texinfo/texinfo-4.13a/disable-native-tools.patch create mode 100644 meta/recipes-extended/texinfo/texinfo-4.13a/gettext-macros.patch create mode 100644 meta/recipes-extended/texinfo/texinfo-4.13a/link-zip.patch
Signature · 1 line
1.7.6
PATCH 1/4 base.bbclass: add crosssdk items to INCOMPATIBLE_LICENSE exclude list
--- meta/classes/base.bbclass | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-)
meta/classes/base.bbclass +1 -1
@@ -385,7 +385,7 @@ python () { dont_want_license = bb.data.getVar('INCOMPATIBLE_LICENSE', d, 1) - if dont_want_license and not pn.endswith("-native") and not pn.endswith("-cross") and not pn.endswith("-cross-initial") and not pn.endswith("-cross-intermediate"): + if dont_want_license and not pn.endswith("-native") and not pn.endswith("-cross") and not pn.endswith("-cross-initial") and not pn.endswith("-cross-intermediate") and not pn.endswith("-crosssdk-intermediate") and not pn.endswith("-crosssdk") and not pn.endswith("-crosssdk-initial"): hosttools_whitelist = (bb.data.getVar('HOSTTOOLS_WHITELIST_%s' % dont_want_license, d, 1) or "").split() lgplv2_whitelist = (bb.data.getVar('LGPLv2_WHITELIST_%s' % dont_want_license, d, 1) or "").split() dont_want_whitelist = (bb.data.getVar('WHITELIST_%s' % dont_want_license, d, 1) or "").split()
Signature · 1 line
1.7.6
PATCH 2/4 texinfo: several changes to build without zlib and ncurses headers on host
In reply to Saul WoldFrom: Joshua Lock <[email protected]>
Texinfo very cleverly detects cross-compilation and builds host versions of the texinfo binaries it requires to bootstrap the build, however this was causing the host to require ncurses and zlib libraries and headers.
Instead, since we require texinfo to be installed on the host, remove this feature from the texinfo configure.ac (disable-native-tools.patch).
Further, fix texinfo to link with newer binutils (link-zip.patch) and to generate translations with newer gettext (gettext-macros.patch).
With this patch I am able to build texinfo on Fedora without ncurses-devel and zlib-devel installed.
This fixes [YOCTO #1483]
--- .../texinfo-4.13a/disable-native-tools.patch | 43 ++++++++++++++++++++ .../texinfo/texinfo-4.13a/gettext-macros.patch | 34 +++++++++++++++ .../texinfo/texinfo-4.13a/link-zip.patch | 16 +++++++ meta/recipes-extended/texinfo/texinfo_4.13a.bb | 24 +++++----- 4 files changed, 105 insertions(+), 12 deletions(-) create mode 100644 meta/recipes-extended/texinfo/texinfo-4.13a/disable-native-tools.patch create mode 100644 meta/recipes-extended/texinfo/texinfo-4.13a/gettext-macros.patch create mode 100644 meta/recipes-extended/texinfo/texinfo-4.13a/link-zip.patch
meta/recipes-extended/texinfo/texinfo-4.13a/disable-native-tools.patch new file +43 -0
@@ -0,0 +1,43 @@ +We already DEPEND on the native texinfo being present before building so +there isn't any need to try and build the required native texinfo binaries +before cross-compiling. This simplifies the recipe somewhat! + +Upstream-Status: Inappropriate oe specific + +Signed-off-by: Joshua Lock <[email protected]> + +Index: texinfo-4.13/configure.ac +=================================================================== +--- texinfo-4.13.orig/configure.ac ++++ texinfo-4.13/configure.ac +@@ -100,29 +100,7 @@ AC_CANONICAL_BUILD + # $native_tools is also added to SUBDIRS in the main Makefile.am, + # so that make compiles the native tools first. + # +-if test "$cross_compiling" = no; then +- native_tools= +-else +- native_tools=tools +- test -d "$native_tools" || mkdir "$native_tools" +- confdir=`(cd "$srcdir";pwd)` +- # Make sure the secondary configure won't fail with +- # "error: source directory already configured". +- rm -f config.status +- AC_MSG_NOTICE([[Doing configure of native tools (${build}).]]) +- cd "$native_tools" || exit 1 +- # Run secondary configure in alternate environment or +- # it gets the wrong CC etc. +- # env -i gives this build host configure a clean environment; +- # consequently, we have to re-initialize $PATH. +- env -i CC="$BUILD_CC" AR="$BUILD_AR" RANLIB="$BUILD_RANLIB" \ +- PATH="$PATH" \ +- tools_only=1 \ +- ${confdir}/configure --build=${build} --host=${build} \ +- --disable-rpath --disable-nls +- cd .. || exit 1 +- AC_MSG_NOTICE([[Continuing with main configure (${host}).]]) +-fi ++native_tools= + AC_SUBST(native_tools) + AM_CONDITIONAL(TOOLS_ONLY, [[test "x$tools_only" = x1]]) +
meta/recipes-extended/texinfo/texinfo-4.13a/gettext-macros.patch new file +34 -0
@@ -0,0 +1,34 @@ +Bump gettext macro numbers as required by newer gettext built by OE. + +Upstream-Status: Pending + +Signed-off-by: Joshua Lock <[email protected]> + +Index: texinfo-4.13/configure.ac +=================================================================== +--- texinfo-4.13.orig/configure.ac ++++ texinfo-4.13/configure.ac +@@ -193,7 +193,7 @@ AM_CONDITIONAL(INSTALL_WARNINGS, + + # i18n support. To update to a new version of gettext, run: + # gettextize -f -c +-AM_GNU_GETTEXT_VERSION([0.17]) ++AM_GNU_GETTEXT_VERSION([0.18]) + AM_GNU_GETTEXT([external]) + + # The test suite. +Index: texinfo-4.13/po/Makefile.in.in +=================================================================== +--- texinfo-4.13.orig/po/Makefile.in.in ++++ texinfo-4.13/po/Makefile.in.in +@@ -8,8 +8,8 @@ + # Please note that the actual code of GNU gettext is covered by the GNU + # General Public License and is *not* in the public domain. + # +-# Origin: gettext-0.17 +-GETTEXT_MACRO_VERSION = 0.17 ++# Origin: gettext-0.18 ++GETTEXT_MACRO_VERSION = 0.18 + + PACKAGE = @PACKAGE@ + VERSION = @VERSION@
meta/recipes-extended/texinfo/texinfo-4.13a/link-zip.patch new file +16 -0
@@ -0,0 +1,16 @@ +install-info uses symbols from zlib so must link against it. + +Upstream-Status: Pending + +Signed-off-by: Joshua Lock <[email protected]> + +Index: texinfo-4.13/install-info/Makefile.am +=================================================================== +--- texinfo-4.13.orig/install-info/Makefile.am ++++ texinfo-4.13/install-info/Makefile.am +@@ -28,4 +28,4 @@ AM_CPPFLAGS = \ + -I$(top_srcdir)/gnulib/lib \ + -I$(top_builddir)/gnulib/lib \ + -DLOCALEDIR=\"$(localedir)\" +-LDADD = ../lib/libtxi.a $(top_builddir)/gnulib/lib/libgnu.a $(LIBINTL) ++LDADD = ../lib/libtxi.a $(top_builddir)/gnulib/lib/libgnu.a $(LIBINTL) -lz
meta/recipes-extended/texinfo/texinfo_4.13a.bb +12 -12
@@ -8,14 +8,18 @@ LICENSE = "GPLv3+" LIC_FILES_CHKSUM = "file://COPYING;md5=adefda309052235aa5d1e99ce7557010" PR = "r1" -DEPENDS = "zlib" +DEPENDS = "zlib ncurses texinfo-native" +DEPENDS_virtclass-native = "zlib-native ncurses-native" SRC_URI = "${GNU_MIRROR}/texinfo/texinfo-${PV}.tar.gz \ - file://texinfo-4.12-zlib.patch; \ - file://texinfo-4.13a-data_types.patch; \ - file://texinfo-4.13a-mosdo-crash.patch; \ - file://texinfo-4.13a-powerpc.patch; \ - file://texinfo-4.13a-help-index-segfault.patch;" + file://texinfo-4.12-zlib.patch \ + file://texinfo-4.13a-data_types.patch \ + file://texinfo-4.13a-mosdo-crash.patch \ + file://texinfo-4.13a-powerpc.patch \ + file://texinfo-4.13a-help-index-segfault.patch \ + file://disable-native-tools.patch \ + file://link-zip.patch \ + file://gettext-macros.patch" SRC_URI[md5sum] = "71ba711519209b5fb583fed2b3d86fcb" SRC_URI[sha256sum] = "1303e91a1c752b69a32666a407e9fbdd6e936def4b09bc7de30f416301530d68"
@@ -25,13 +29,9 @@ tex_texinfo = "texmf/tex/texinfo" inherit gettext autotools -do_configure() { - oe_runconf -} - -do_compile_prepend(){ +do_compile_prepend() { if [ -d tools ];then - make -C tools/gnulib/lib + oe_runmake -C tools/gnulib/lib fi }
Signature · 1 line
1.7.6
PATCH 3/4 lib/oe/terminal.py: declare konsole from KDE 4.x as unsupported
In reply to Saul WoldFrom: Paul Eggleton <[email protected]>
Konsole 2.x (from KDE 4.x) does not work as devshell - it does not pass the environment or current working directory through among other issues, so do a version check and disable it if it is found (skipping to the next available terminal application.)
--- meta/lib/oe/terminal.py | 27 +++++++++++++++++++++++++++ 1 files changed, 27 insertions(+), 0 deletions(-)
meta/lib/oe/terminal.py +27 -0
@@ -61,6 +61,15 @@ class Konsole(XTerminal): command = 'konsole -T "{title}" -e {command}' priority = 2 + def __init__(self, command, title=None, env=None): + # Check version + vernum = check_konsole_version("konsole") + if vernum: + if vernum.split('.')[0] == "2": + logger.debug(1, 'Konsole from KDE 4.x will not work as devshell, skipping') + raise UnsupportedTerminal(self.name) + XTerminal.__init__(self, command, title, env) + class XTerm(XTerminal): command = 'xterm -T "{title}" -e {command}' priority = 1
@@ -104,3 +113,21 @@ def spawn(name, command, title=None, env=None): output = pipe.communicate()[0] if pipe.returncode != 0: raise ExecutionError(pipe.command, pipe.returncode, output) + +def check_konsole_version(konsole): + import subprocess as sub + try: + p = sub.Popen(['sh', '-c', '%s --version' % konsole],stdout=sub.PIPE,stderr=sub.PIPE) + out, err = p.communicate() + ver_info = out.rstrip().split('\n') + except OSError as exc: + import errno + if exc.errno == errno.ENOENT: + return None + else: + raise + vernum = None + for ver in ver_info: + if ver.startswith('Konsole'): + vernum = ver.split(' ')[-1] + return vernum
Signature · 1 line
1.7.6
PATCH 4/4 sanity.bbclass: add a sanity check for KDE 4.x konsole in TERMCMD
In reply to Saul WoldFrom: Paul Eggleton <[email protected]>
If the user has specified konsole in TERMCMD and it is version 2.x from KDE 4.x, raise an error as this version will not work for patch resolution purposes (it forks into the background and returns immediately).
Addresses [YOCTO #1294]
--- meta/classes/sanity.bbclass | 6 ++++++ 1 files changed, 6 insertions(+), 0 deletions(-)
meta/classes/sanity.bbclass +6 -0
@@ -337,6 +337,12 @@ def check_sanity(e): term = termcmd.split()[0] if not check_app_exists(term, e.data): messages = messages + "The console for use in patch error resolution is not available, please install %s or set TERMCMD and TERMCMDRUN (as documented in local.conf).\n" % term + elif "konsole" in term: + import oe.terminal + vernum = oe.terminal.check_konsole_version(term) + if vernum: + if vernum.split('.')[0] == '2': + messages = messages + 'Konsole from KDE 4.x will not work as TERMCMD/TERMCMDRUN, please specify a different terminal or set PATCHRESOLVE = "noop" to disable interactive patch resolution.\n' if os.path.basename(os.readlink('/bin/sh')) == 'dash': messages = messages + "Using dash as /bin/sh causes various subtle build problems, please use bash instead (e.g. 'dpkg-reconfigure dash' on an Ubuntu system.\n"
Signature · 1 line
1.7.6
Richard Purdie
AppliedQuoted 21 lines · Saul Wold
This has a host contamination fix for texinfo and a non-gplv3 build fix, some konsole fixes from Paul.
These should go in before RC3.
Thanks
Sau!The following changes since commit
31cb3974eeaf2a808e8da3864e70986578c58cb9:sanity: disable mirrors for connectivity check (2011-09-16 18:07:19 +0100)
are available in the git repository at:
git://git.yoctoproject.org/poky-contribsgw/oe-fix
http://git.yoctoproject.org/cgit.cgi/poky-contrib/log/?h=sgw/oe-fixJoshua Lock (1):
texinfo: several changes to build without zlib and ncurses headers on
host
Quoted 6 lines
Paul Eggleton (2):
lib/oe/terminal.py: declare konsole from KDE 4.x as unsupported sanity.bbclass: add a sanity check for KDE 4.x konsole in TERMCMDSaul Wold (1):
base.bbclass: add crosssdk items toINCOMPATIBLE_LICENSEexclude list
Merged to master, thanks.
Richard