rpms/arts/F-7 arts-1.5.4-dlopenext.patch, NONE, 1.1 arts-1.5.5-kde#139445.patch, NONE, 1.1 kde-3.5-libtool-shlibext.patch, NONE, 1.1 arts.spec, 1.73, 1.74

Rex Dieter (rdieter) fedora-extras-commits at redhat.com
Mon Jun 11 13:00:26 UTC 2007


Author: rdieter

Update of /cvs/pkgs/rpms/arts/F-7
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv20341

Modified Files:
	arts.spec 
Added Files:
	arts-1.5.4-dlopenext.patch arts-1.5.5-kde#139445.patch 
	kde-3.5-libtool-shlibext.patch 
Log Message:
experimental patches to remove dependence on .la files at runtime


arts-1.5.4-dlopenext.patch:

--- NEW FILE arts-1.5.4-dlopenext.patch ---
Index: arts-1.5.4/soundserver/FileInputStream.mcopclass
===================================================================
--- arts-1.5.4.orig/soundserver/FileInputStream.mcopclass
+++ arts-1.5.4/soundserver/FileInputStream.mcopclass
@@ -2,4 +2,4 @@ Interface=Arts::FileInputStream,Arts::In
 Author="Stefan Westerfeld <stefan at space.twc.de>"
 URL="http://www.arts-project.org"
 Language=C++
-Library=libkmedia2.la
+Library=libkmedia2
Index: arts-1.5.4/soundserver/GSLPlayObject.mcopclass
===================================================================
--- arts-1.5.4.orig/soundserver/GSLPlayObject.mcopclass
+++ arts-1.5.4/soundserver/GSLPlayObject.mcopclass
@@ -3,5 +3,5 @@ Author="Hans Meine <hans_meine at gmx.net>"
 URL="http://www.arts-project.org/"
 Extension=wav,mp3,ogg
 Language=C++
-Library=libartsgslplayobject.la
+Library=libartsgslplayobject
 MimeType=audio/wav,audio/x-wav,audio/x-mp3,audio/x-mp1,audio/x-mp2,audio/vorbis,application/ogg
Index: arts-1.5.4/soundserver/WavPlayObject.mcopclass
===================================================================
--- arts-1.5.4.orig/soundserver/WavPlayObject.mcopclass
+++ arts-1.5.4/soundserver/WavPlayObject.mcopclass
@@ -3,5 +3,5 @@ Author="Stefan Westerfeld <stefan at space.
 URL="http://www.arts-project.org"
 Extension=wav
 Language=C++
-Library=libartswavplayobject.la
+Library=libartswavplayobject
 MimeType=audio/wav,audio/x-wav
Index: arts-1.5.4/mcop/extensionloader.cc
===================================================================
--- arts-1.5.4.orig/mcop/extensionloader.cc
+++ arts-1.5.4/mcop/extensionloader.cc
@@ -57,7 +57,7 @@ ExtensionLoader::ExtensionLoader(const s
 	StartupManager::setExtensionLoader(this);
 
     lt_dlinit();
-	handle = lt_dlopen(dlfilename.c_str());
+	handle = lt_dlopenext(dlfilename.c_str());
 
 	StartupManager::setExtensionLoader(0);
 
Index: arts-1.5.4/x11/X11GlobalComm.mcopclass
===================================================================
--- arts-1.5.4.orig/x11/X11GlobalComm.mcopclass
+++ arts-1.5.4/x11/X11GlobalComm.mcopclass
@@ -1,3 +1,3 @@
 Language=C++
-Library=libx11globalcomm.la
+Library=libx11globalcomm
 Interface=Arts::Object,Arts::GlobalComm,Arts::X11GlobalComm

arts-1.5.5-kde#139445.patch:

--- NEW FILE arts-1.5.5-kde#139445.patch ---
--- arts-1.5.5/mcop/Makefile.am.139445	2005-09-10 03:13:32.000000000 -0500
+++ arts-1.5.5/mcop/Makefile.am	2007-01-12 08:11:10.000000000 -0600
@@ -16,7 +16,9 @@
 	 trader_impl.cc dynamicrequest.cc anyref.cc loopback.cc \
 	 delayedreturn.cc thread.cc dynamicskeleton.cc
 
+CXXFLAGS += -fexceptions
 libmcop_la_LIBADD = $(LIBSOCKET) $(GLIB_LIBADD) $(top_builddir)/libltdl/libltdlc.la
+libmcop_la_LIBADD += -lboost_filesystem -lboost_regex
 libmcop_la_LDFLAGS = -no-undefined -version-info 1:0 $(GLIB_LDFLAGS) $(all_libraries)
 
 artsincludedir = $(includedir)/arts
--- arts-1.5.5/mcop/extensionloader.cc.139445	2005-09-10 03:13:32.000000000 -0500
+++ arts-1.5.5/mcop/extensionloader.cc	2007-01-12 09:54:57.000000000 -0600
@@ -28,26 +28,62 @@
 #include <unistd.h>
 #include <assert.h>
 
+#include <boost/filesystem/exception.hpp>
+#include <boost/filesystem/operations.hpp>
+#include <boost/regex.hpp>
+
 using namespace std;
 using namespace Arts;
 
+static std::string makeLibraryName( std::string const& dir, std::string const& name )
+{
+	try
+	{
+		// std::string p = dir + "/" + name;
+		boost::regex p_regex;
+		p_regex.assign("(.+)\\.la$");
+		std::string p = dir + "/" + boost::regex_replace( name, p_regex, "$1", boost::match_default);
+
+		if ( boost::filesystem::exists( p + ".so" ) )
+			return ( p + ".so" );
+		boost::regex re( p + ".*so\\..+", boost::regex::extended );
+		for ( boost::filesystem::directory_iterator i( dir );
+			i != boost::filesystem::directory_iterator(); ++i )
+		{
+			boost::smatch m;
+			if ( boost::regex_match( i->string(), m, re ) )
+				return m.str();
+		}
+		return ( p + ".la" );
+	}
+	catch ( boost::filesystem::filesystem_error const& )
+	{
+	}
+	return std::string();
+}
+
 ExtensionLoader::ExtensionLoader(const string& filename) :handle(0)
 {
 	string dlfilename;
-
 	assert(filename.size());
-	if(filename[0] == '/')
-		dlfilename = filename;
-	else
+	try
+	{
+		boost::filesystem::path p( filename );
+		if ( p.has_root_directory() )
+			dlfilename = makeLibraryName( p.branch_path().string(), p.leaf() );
+	}
+	catch ( boost::filesystem::filesystem_error const& )
+	{
+	}
+	if ( dlfilename.empty() )
 	{
 		const vector<string> *path = MCOPUtils::extensionPath();
 
 		vector<string>::const_iterator pi;
 		for(pi = path->begin(); pi != path->end(); pi++)
 		{
-			dlfilename = *pi + "/" + filename;
-
-			if(access(dlfilename.c_str(),F_OK) == 0)
+			dlfilename = makeLibraryName( *pi, filename );
+			if ( !dlfilename.empty() && ( access( dlfilename.c_str(), F_OK ) == 0 ) )
 				break;
 		}
 	}

kde-3.5-libtool-shlibext.patch:

--- NEW FILE kde-3.5-libtool-shlibext.patch ---
Index: arts-1.5.4/acinclude.m4
===================================================================
--- arts-1.5.4.orig/acinclude.m4
+++ arts-1.5.4/acinclude.m4
@@ -12040,28 +12040,12 @@ fi
 ])# AC_LTDL_SYS_DLOPEN_DEPLIBS
 
 AC_DEFUN([AC_LTDL_SHLIBEXT],
-[AC_REQUIRE([AC_LTDL_SNARF_CONFIG])dnl
+[AC_REQUIRE([AC_LIBTOOL_SYS_DYNAMIC_LINKER])dnl
 AC_CACHE_CHECK([which extension is used for shared libraries],
   libltdl_cv_shlibext, [dnl
-(
-  last=
-	case "$host_os" in
-    cygwin* | mingw*) 
-      last=".dll" 
-      ;;
-    *)
-      for spec in $library_names_spec; do
-        last="$spec"
-      done
-      ;;
-  esac
-changequote(, )
-  echo "$last" | sed 's/\[.*\]//;s/^[^.]*//;s/\$.*$//;s/\.$//' > conftest
-changequote([, ])
-)
-libltdl_cv_shlibext=`cat conftest`
-rm -f conftest
-])
+module=yes
+eval libltdl_cv_shlibext=$shrext
+  ])
 if test -n "$libltdl_cv_shlibext"; then
   AC_DEFINE_UNQUOTED(LTDL_SHLIB_EXT, "$libltdl_cv_shlibext",
     [Define to the extension used for shared libraries, say, ".so". ])
Index: arts-1.5.4/libltdl/ltdl.m4
===================================================================
--- arts-1.5.4.orig/libltdl/ltdl.m4
+++ arts-1.5.4/libltdl/ltdl.m4
@@ -118,27 +118,11 @@ fi
 ])# AC_LTDL_SYS_DLOPEN_DEPLIBS
 
 AC_DEFUN([AC_LTDL_SHLIBEXT],
-[AC_REQUIRE([AC_LTDL_SNARF_CONFIG])dnl
+[AC_REQUIRE([AC_LIBTOOL_SYS_DYNAMIC_LINKER])dnl
 AC_CACHE_CHECK([which extension is used for shared libraries],
   libltdl_cv_shlibext, [dnl
-(
-  last=
-	case "$host_os" in
-    cygwin* | mingw*) 
-      last=".dll" 
-      ;;
-    *)
-      for spec in $library_names_spec; do
-        last="$spec"
-      done
-      ;;
-  esac
-changequote(, )
-  echo "$last" | sed 's/\[.*\]//;s/^[^.]*//;s/\$.*$//;s/\.$//' > conftest
-changequote([, ])
-)
-libltdl_cv_shlibext=`cat conftest`
-rm -f conftest
+module=yes
+eval libltdl_cv_shlibext=$shrext
 ])
 if test -n "$libltdl_cv_shlibext"; then
   AC_DEFINE_UNQUOTED(LTDL_SHLIB_EXT, "$libltdl_cv_shlibext",


Index: arts.spec
===================================================================
RCS file: /cvs/pkgs/rpms/arts/F-7/arts.spec,v
retrieving revision 1.73
retrieving revision 1.74
diff -u -r1.73 -r1.74
--- arts.spec	4 Jun 2007 15:20:26 -0000	1.73
+++ arts.spec	11 Jun 2007 12:59:51 -0000	1.74
@@ -26,6 +26,13 @@
 
 # upstream patches
 Patch100: arts-1.5.7-qtmcop-notifications-on-demand.patch
+Patch101: arts-1.5.4-dlopenext.patch
+Patch93359: kde-3.5-libtool-shlibext.patch
+# http://bugs.kde.org/139445
+# http://cvs.pld-linux.org/cgi-bin/cvsweb/SOURCES/arts-extension_loader.patch?rev=1.2
+#Patch139445: arts-extension_loader.patch
+Patch139445: arts-1.5.5-kde#139445.patch
+#BuildRequires: boost-devel
 
 BuildRequires: qt-devel >= 1:%{qt_version}
 ## Shouldn't be necessary, but some folks won't upgrade, unless we stiff-arm them.  (-;
@@ -86,6 +93,9 @@
 
 # upstream patches
 %patch100 -p0 -b .qtmcop-notifications-on-demand
+#patch93359 -p1 -b .libtool-shlibext
+#patch101 -p1 -b .dlopenext
+#patch139445 -p1 -b .kde#139445
 
 %if %{make_cvs}
   make -f admin/Makefile.common cvs




More information about the fedora-extras-commits mailing list