From aebdd32afc543d20b8fbd22921ad849cf4066fa0c44b5710ab27b0212b43b259 Mon Sep 17 00:00:00 2001 From: "Dr. Werner Fink" Date: Thu, 24 Nov 2011 13:17:56 +0000 Subject: [PATCH] . OBS-URL: https://build.opensuse.org/package/show/Base:System/ncurses?expand=0&rev=57 --- ncurses.changes | 6 ++++++ ncurses.spec | 46 +++++++++++++++++++++++++++++++++++++++------- 2 files changed, 45 insertions(+), 7 deletions(-) diff --git a/ncurses.changes b/ncurses.changes index 0a88651..9f48fbf 100644 --- a/ncurses.changes +++ b/ncurses.changes @@ -1,3 +1,9 @@ +------------------------------------------------------------------- +Thu Nov 24 12:17:08 UTC 2011 - werner@suse.de + +- Use linker scripts to amke sure that libtinfo will be found + even if -ltinfo is missed on the linker command line + ------------------------------------------------------------------- Tue Nov 22 12:03:47 UTC 2011 - werner@suse.de diff --git a/ncurses.spec b/ncurses.spec index 9c5bc0f..dbd0546 100644 --- a/ncurses.spec +++ b/ncurses.spec @@ -557,25 +557,47 @@ export BUILD_TIC=$PWD/../progs/tic test -e "${lib}" || continue mv "${lib}" %{buildroot}/%{_lib}/ || continue done - for lib in %{buildroot}/%{_lib}/${model}.so.* ; do + for lib in %{buildroot}/%{_lib}/${model}.so.%{abi} ; do test -e "${lib}" || continue test -L "${lib}" || continue lib=${lib#%{buildroot}} - ln -sf ${lib} %{buildroot}%{_libdir}/${model}.so + lnk=%{buildroot}%{_libdir}/${model}.so + case "${lib##*/}" in + libncurses*) + rm -f ${lnk} + echo '/* GNU ld script */' > ${lnk} + echo "INPUT(${lib} AS_NEEDED(-ltinfo))" >> ${lnk} + ;; + *) ln -sf ${lib} %{buildroot}%{_libdir}/${model}.so + esac done done + lnk=%{buildroot}%{_libdir}/libtermcap.so + echo '/* GNU ld script */' > ${lnk} + echo "INPUT(AS_NEEDED(-ltinfo))" >> ${lnk} chmod 0755 %{buildroot}/%{_lib}/lib*.so.* chmod 0755 %{buildroot}/%{_libdir}/lib*.so.* chmod a-x %{buildroot}/%{_libdir}/lib*.a +%if %abi < 6 if test -d %{buildroot}%{_libdir}/ncurses6 ; then mv %{buildroot}%{_libdir}/ncurses6/*.so.6* %{buildroot}%{_libdir}/ for lib in %{buildroot}%{_libdir}/ncurses6/*.so do - test -L "${lib}" || continue + lnk=$lib + lib=/%{_lib}/${lib##*/}.6 case "${lib##*/}" in - libncurses*) ln -sf /%{_lib}/${lib##*/}.6 ${lib} ;; - libtinfo*) ln -sf /%{_lib}/${lib##*/}.6 ${lib} ;; - *) ln -sf ../${lib##*/}.6 ${lib} ;; + libncurses*) + rm -f "${lnk}" + echo '/* GNU ld script */' > ${lnk} + echo "INPUT(${lib} AS_NEEDED(-ltinfo))" >> ${lnk} + ;; + libtinfo*) + test -L "${lnk}" || continue + ln -sf ${lib} ${lnk} + ;; + *) + test -L "${lnk}" || continue + ln -sf ../${lib##*/} ${lnk} esac done for model in libncurses libncursest libncursesw libncursestw libtinfo @@ -588,13 +610,23 @@ export BUILD_TIC=$PWD/../progs/tic test -e "${lib}" || continue test -L "${lib}" || continue lib=${lib#%{buildroot}} - ln -sf ${lib} %{buildroot}%{_libdir}/ncurses6/${model}.so + lnk=%{buildroot}%{_libdir}/ncurses6/${model}.so + case "${lib##*/}" in + libncurses*) + rm -f ${lnk} + echo '/* GNU ld script */' > ${lnk} + echo 'SEARCH_DIR(%{_libdir}/ncurses6)' >> ${lnk} + echo "INPUT(${lib} AS_NEEDED(-ltinfo))" >> ${lnk} + ;; + *) ln -sf ${lib} %{buildroot}%{_libdir}/ncurses6/${model}.so + esac done done chmod 0755 %{buildroot}/%{_lib}/lib*.so.6* chmod 0755 %{buildroot}/%{_libdir}/lib*.so.6* chmod a-x %{buildroot}/%{_libdir}/ncurses6/lib*.a fi +%endif test -n "%{buildroot}" || ldconfig -N mkdir -p %{buildroot}%{_defaultdocdir}/ncurses bzip2 -c misc/terminfo.src > misc/terminfo.src.bz2