about summary refs log tree commit diff
path: root/pkgs/tools/networking/fuppes
diff options
context:
space:
mode:
authorNicolas Pierron <nicolas.b.pierron@gmail.com>2011-04-17 08:27:22 +0000
committerNicolas Pierron <nicolas.b.pierron@gmail.com>2011-04-17 08:27:22 +0000
commit2cab2ce8855a47b64569f1cf37df75e8baf7b114 (patch)
tree61a8dd19c2f9e9fa9da12b44c6c93b39cc017378 /pkgs/tools/networking/fuppes
parentf40afa1ade884df95f5bbe846def13b26c0402ee (diff)
downloadnixlib-2cab2ce8855a47b64569f1cf37df75e8baf7b114.tar
nixlib-2cab2ce8855a47b64569f1cf37df75e8baf7b114.tar.gz
nixlib-2cab2ce8855a47b64569f1cf37df75e8baf7b114.tar.bz2
nixlib-2cab2ce8855a47b64569f1cf37df75e8baf7b114.tar.lz
nixlib-2cab2ce8855a47b64569f1cf37df75e8baf7b114.tar.xz
nixlib-2cab2ce8855a47b64569f1cf37df75e8baf7b114.tar.zst
nixlib-2cab2ce8855a47b64569f1cf37df75e8baf7b114.zip
Fuppes: Fix support of faad2, backward compatibility macros were not
expanded in strings.

svn path=/nixpkgs/trunk/; revision=26864
Diffstat (limited to 'pkgs/tools/networking/fuppes')
-rw-r--r--pkgs/tools/networking/fuppes/default.nix9
-rw-r--r--pkgs/tools/networking/fuppes/fuppes-faad-exanpse-backward-symbols-macro.patch91
2 files changed, 100 insertions, 0 deletions
diff --git a/pkgs/tools/networking/fuppes/default.nix b/pkgs/tools/networking/fuppes/default.nix
index dca3b40ef5f4..711c3516bda2 100644
--- a/pkgs/tools/networking/fuppes/default.nix
+++ b/pkgs/tools/networking/fuppes/default.nix
@@ -8,6 +8,10 @@ stdenv.mkDerivation rec {
     sha256 = "1c385b29878927e5f1e55ae2c9ad284849d1522d9517a88e34feb92bd5195173";
   };
 
+  patches = [
+    ./fuppes-faad-exanpse-backward-symbols-macro.patch
+  ];
+
   buildInputs = [
     pkgconfig pcre libxml2 sqlite ffmpeg imagemagick exiv2 mp4v2 lame
     libvorbis flac libmad faad2
@@ -26,6 +30,11 @@ stdenv.mkDerivation rec {
     "--enable-faad"
   ];
 
+  postFixup = ''
+    patchelf --set-rpath "$(patchelf --print-rpath $out/bin/fuppes):${faad2}/lib" $out/bin/fuppes
+    patchelf --set-rpath "$(patchelf --print-rpath $out/bin/fuppesd):${faad2}/lib" $out/bin/fuppesd
+  '';
+
   meta = {
     description = "UPnP A/V Media Server";
     longDescription = ''
diff --git a/pkgs/tools/networking/fuppes/fuppes-faad-exanpse-backward-symbols-macro.patch b/pkgs/tools/networking/fuppes/fuppes-faad-exanpse-backward-symbols-macro.patch
new file mode 100644
index 000000000000..c88a6fb4427e
--- /dev/null
+++ b/pkgs/tools/networking/fuppes/fuppes-faad-exanpse-backward-symbols-macro.patch
@@ -0,0 +1,91 @@
+diff -x _inst -x _build -x .svn -ur fuppes-0.660/src/lib/Transcoding/FaadWrapper.cpp fuppes-0.660.new/src/lib/Transcoding/FaadWrapper.cpp
+--- fuppes-0.660/src/lib/Transcoding/FaadWrapper.cpp	2009-11-19 10:16:25.000000000 +0100
++++ fuppes-0.660.new/src/lib/Transcoding/FaadWrapper.cpp	2011-01-30 22:25:34.171263052 +0100
+@@ -329,13 +329,19 @@
+   
+   CloseFile();
+ }
+-  
++
++// These macros are used to convert old function names to new ones based on
++// the #define declared in faad headers.  The two-level macro are used to
++// expanse the macro which are gave to to_str.
++#define to_str_(fun) #fun
++#define to_str(fun) to_str_(fun)
++
+ bool CFaadWrapper::LoadLib()
+ {
+   #ifdef WIN32 
+-  std::string sLibName = "libfaad-0.dll"; 
++  std::string sLibName = "libfaad-2.dll"; 
+   #else   
+-  std::string sLibName = "libfaad.so.0"; 
++  std::string sLibName = "libfaad.so.2"; 
+   #endif 
+    
+   if(!CSharedConfig::Shared()->FaadLibName().empty()) { 
+@@ -350,54 +356,54 @@
+     return false; 
+   }
+  
+-  m_faacDecOpen = (faacDecOpen_t)FuppesGetProcAddress(m_LibHandle, "faacDecOpen"); 
++  m_faacDecOpen = (faacDecOpen_t)FuppesGetProcAddress(m_LibHandle, to_str(faacDecOpen)); 
+   if(!m_faacDecOpen) { 
+     CSharedLog::Shared()->Log(L_EXT, "cannot load symbol 'faacDecOpen'", __FILE__, __LINE__);    
+     return false; 
+   }
+ 
+-  m_faacDecGetErrorMessage = (faacDecGetErrorMessage_t)FuppesGetProcAddress(m_LibHandle, "faacDecGetErrorMessage"); 
++  m_faacDecGetErrorMessage = (faacDecGetErrorMessage_t)FuppesGetProcAddress(m_LibHandle, to_str(faacDecGetErrorMessage)); 
+   if(!m_faacDecGetErrorMessage) { 
+     CSharedLog::Shared()->Log(L_EXT, "cannot load symbol 'faacDecGetErrorMessage'", __FILE__, __LINE__);    
+     return false; 
+   }
+   
+-  m_faacDecGetCurrentConfiguration = (faacDecGetCurrentConfiguration_t)FuppesGetProcAddress(m_LibHandle, "faacDecGetCurrentConfiguration"); 
++  m_faacDecGetCurrentConfiguration = (faacDecGetCurrentConfiguration_t)FuppesGetProcAddress(m_LibHandle, to_str(faacDecGetCurrentConfiguration)); 
+   if(!m_faacDecGetCurrentConfiguration) { 
+     CSharedLog::Shared()->Log(L_EXT, "cannot load symbol 'faacDecGetCurrentConfiguration'", __FILE__, __LINE__);    
+   } 
+ 
+-  m_faacDecSetConfiguration = (faacDecSetConfiguration_t)FuppesGetProcAddress(m_LibHandle, "faacDecSetConfiguration"); 
++  m_faacDecSetConfiguration = (faacDecSetConfiguration_t)FuppesGetProcAddress(m_LibHandle, to_str(faacDecSetConfiguration)); 
+   if(!m_faacDecSetConfiguration) { 
+     CSharedLog::Shared()->Log(L_EXT, "cannot load symbol 'faacDecSetConfiguration'", __FILE__, __LINE__);    
+   } 
+ 
+-  m_faacDecInit = (faacDecInit_t)FuppesGetProcAddress(m_LibHandle, "faacDecInit"); 
++  m_faacDecInit = (faacDecInit_t)FuppesGetProcAddress(m_LibHandle, to_str(faacDecInit)); 
+   if(!m_faacDecInit) { 
+     CSharedLog::Shared()->Log(L_EXT, "cannot load symbol 'faacDecInit'", __FILE__, __LINE__);    
+   } 
+ 
+-  m_faacDecInit2 = (faacDecInit2_t)FuppesGetProcAddress(m_LibHandle, "faacDecInit2"); 
++  m_faacDecInit2 = (faacDecInit2_t)FuppesGetProcAddress(m_LibHandle, to_str(faacDecInit2)); 
+   if(!m_faacDecInit2) { 
+     CSharedLog::Shared()->Log(L_EXT, "cannot load symbol 'faacDecInit2'", __FILE__, __LINE__);    
+     return false; 
+   }
+   
+-  m_faacDecDecode = (faacDecDecode_t)FuppesGetProcAddress(m_LibHandle, "faacDecDecode"); 
++  m_faacDecDecode = (faacDecDecode_t)FuppesGetProcAddress(m_LibHandle, to_str(faacDecDecode)); 
+   if(!m_faacDecDecode) { 
+     CSharedLog::Shared()->Log(L_EXT, "cannot load symbol 'faacDecDecode'", __FILE__, __LINE__);    
+     return false; 
+   } 
+ 
+-  m_faacDecClose = (faacDecClose_t)FuppesGetProcAddress(m_LibHandle, "faacDecClose"); 
++  m_faacDecClose = (faacDecClose_t)FuppesGetProcAddress(m_LibHandle, to_str(faacDecClose)); 
+   if(!m_faacDecClose) { 
+     CSharedLog::Shared()->Log(L_EXT, "cannot load symbol 'faacDecClose'", __FILE__, __LINE__);    
+     return false; 
+   } 
+ 
+-  m_AudioSpecificConfig = (AudioSpecificConfig_t)FuppesGetProcAddress(m_LibHandle, "AudioSpecificConfig"); 
++  m_AudioSpecificConfig = (AudioSpecificConfig_t)FuppesGetProcAddress(m_LibHandle, to_str(AudioSpecificConfig)); 
+   if(!m_AudioSpecificConfig) {
+-		m_AudioSpecificConfig = (AudioSpecificConfig_t)FuppesGetProcAddress(m_LibHandle, "faacDecAudioSpecificConfig"); 
++		m_AudioSpecificConfig = (AudioSpecificConfig_t)FuppesGetProcAddress(m_LibHandle, to_str(faacDecAudioSpecificConfig)); 
+ 		if(!m_AudioSpecificConfig) {  
+   	  CSharedLog::Shared()->Log(L_EXT, "cannot load symbol '(faacDec)AudioSpecificConfig'", __FILE__, __LINE__);    
+       return false;