From aebdd32afc543d20b8fbd22921ad849cf4066fa0c44b5710ab27b0212b43b259 Mon Sep 17 00:00:00 2001
From: "Dr. Werner Fink" <werner@suse.com>
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