[OE-core] [PATCH 2/3] ncurses: move only libncurses and libtinfo to base_libdir
Andreas Oberritter
obi at opendreambox.org
Tue Mar 13 20:51:54 UTC 2012
On 13.03.2012 03:08, Scott Garman wrote:
> The previous approach to moving the ncurses libraries to
> base_libdir was too aggressive, and it broke curses support
> in python.
>
> Instead, move only libncurses, libncursesw, and libtinfo to
> base_libdir and leave the remaining libraries in libdir.
>
> Also delete ${libdir}/terminfo as it never gets packaged to
> avoid a QA warning.
>
> This fixes [YOCTO #2070] and is a partial fix for [YOCTO #1937].
Hello Scott,
package splitting doesn't seem to work anymore. Libs that previously had
their own package now end up being stored in the main ncurses package.
Regards,
Andreas
> Signed-off-by: Scott Garman <scott.a.garman at intel.com>
> ---
> meta/recipes-core/ncurses/ncurses.inc | 40 +++++++++++++++++++++++----------
> 1 files changed, 28 insertions(+), 12 deletions(-)
>
> diff --git a/meta/recipes-core/ncurses/ncurses.inc b/meta/recipes-core/ncurses/ncurses.inc
> index 3b10c43..e450868 100644
> --- a/meta/recipes-core/ncurses/ncurses.inc
> +++ b/meta/recipes-core/ncurses/ncurses.inc
> @@ -6,7 +6,7 @@ LIC_FILES_CHKSUM = "file://ncurses/base/version.c;beginline=1;endline=27;md5=cbc
> SECTION = "libs"
> DEPENDS = "ncurses-native"
> DEPENDS_virtclass-native = ""
> -INC_PR = "r4"
> +INC_PR = "r5"
>
> inherit autotools binconfig multilib_header
>
> @@ -44,7 +44,6 @@ ncurses_configure() {
> --enable-hard-tabs \
> --enable-xmc-glitch \
> --enable-colorfgbg \
> - --libdir=${base_libdir} \
> --with-termpath='${sysconfdir}/termcap:${datadir}/misc/termcap' \
> --with-terminfo-dirs='${sysconfdir}/terminfo:${datadir}/terminfo' \
> --with-shared \
> @@ -114,7 +113,12 @@ _install_opts = "\
> install.libs install.includes install.man \
> "
>
> -do_install() {
> +python do_install () {
> + bb.build.exec_func("shell_do_install", d)
> + oe.path.make_relative_symlink(d.expand("${D}${libdir}/libtinfo.so"))
> +}
> +
> +shell_do_install() {
> # Order of installation is important; widec installs a 'curses.h'
> # header with more definitions and must be installed last hence.
> # Compatibility of these headers will be checked in 'do_test()'.
> @@ -147,6 +151,8 @@ do_install() {
> ln -sf xterm-color ${D}${sysconfdir}/terminfo/x/xterm
> fi
>
> + rm ${D}${libdir}/terminfo
> +
> if [ "${PN}" = "ncurses" ]; then
> mv ${D}${bindir}/clear ${D}${bindir}/clear.${PN}
> mv ${D}${bindir}/reset ${D}${bindir}/reset.${PN}
> @@ -158,7 +164,7 @@ do_install() {
> # else when '-Wl,--no-copy-dt-needed-entries' has been set in
> # linker flags.
> for i in libncurses libncursesw; do
> - f=${D}${base_libdir}/$i.so
> + f=${D}${libdir}/$i.so
> test -h $f || continue
> rm -f $f
> echo '/* GNU ld script */' >$f
> @@ -167,20 +173,33 @@ do_install() {
>
> # Make sure that libcurses is linked so that it gets -ltinfo
> # also, this should be addressed upstream really.
> - ln -sf libncurses.so ${D}${base_libdir}/libcurses.so
> + ln -sf libncurses.so ${D}${libdir}/libcurses.so
>
> # create libtermcap.so linker script for backward compatibility
> - f=${D}${base_libdir}/libtermcap.so
> + f=${D}${libdir}/libtermcap.so
> echo '/* GNU ld script */' >$f
> echo 'INPUT(AS_NEEDED(-ltinfo))' >>$f
>
> + if [ ! -d "${D}${base_libdir}" ]; then
> + # Setting base_libdir to libdir as is done in the -native
> + # case will skip this code
> + mkdir ${D}${base_libdir}
> + mv ${D}${libdir}/libncurses.so.* ${D}${base_libdir}
> + mv ${D}${libdir}/libncursesw.so.* ${D}${base_libdir}
> +
> + mv ${D}${libdir}/libtinfo.so.* ${D}${base_libdir}
> + rm ${D}${libdir}/libtinfo.so
> + # We'll turn this into a relative symlink after do_install returns
> + ln -sf ${D}${base_libdir}/libtinfo.so.5 ${D}${libdir}/libtinfo.so
> + fi
> +
> oe_multilib_header curses.h
> }
>
> python populate_packages_prepend () {
> - base_libdir = d.expand("${base_libdir}")
> + libdir = d.expand("${libdir}")
> pnbase = d.expand("${PN}-lib%s")
> - do_split_packages(d, base_libdir, '^lib(.*)\.so\..*', pnbase, 'ncurses %s library', prepend=True, extra_depends = '', allow_links=True)
> + do_split_packages(d, libdir, '^lib(.*)\.so\..*', pnbase, 'ncurses %s library', prepend=True, extra_depends = '', allow_links=True)
> }
>
>
> @@ -212,10 +231,7 @@ FILES_${PN} = "\
> ${bindir}/ncurses5-config \
> ${bindir}/ncursesw5-config \
> ${datadir}/tabset \
> -"
> -
> -FILES_${PN}-dev += "\
> - ${base_libdir}/*.so \
> + ${base_libdir}/* \
> "
>
> # This keeps only tput/tset in ncurses
More information about the Openembedded-core
mailing list