Re: 2.2.4 release soon?

Sam Varshavchik <[email protected]>
Newsgroups gmane.comp.audio.zinf.devel
Message-ID <[email protected]>
Kristian G. Kvilekval writes:

> Yes.. I've been waiting for some time lately to 
> push out a bug fix release.   
> 
> Tell you what..  here's a pre-release file using
> the new build system.   Can you try it out and let
> me know your success or any troubles you have?  
> Include output of configure and make.. Thx.
> 
> http://www.cs.ucsb.edu/~kris/zinf-2.2.4.tar.gz

A few Linux notes:

1)

The configure script, manages to find Freetype version 1 include files, and 
tries to build the freetype plugin, and fails.  I think that's because the 
code actually needs Freetype 2; however it is not an issue on Linux since 
Truetype support is built into xfs these days, so freetype can be disabled.

2)

The Corba plugin doesn't build.  In ui/corba/Makefile.am:

BUILT_SOURCES = Zinf.h

This needs to be replaced with:

BUILT_SOURCES = Zinf-common.c

Zinf.h is nowhere to be found, it is autogenerated by the Zinf-common 
target.

3_

In the top level Makefile.am, three occurences of 
$(pkglibdir), in the install-ln-plugins and uinstall-hook targets, need to 
use $DESTDIR:

install-ln-plugins:
        for plugin in $(DESTDIR)$(pkglibdir)/plugins/*.la ; do \
           dir=`dirname $$plugin`; \
           name=`basename $$plugin .la`; \
           lib="$$dir/$$name$(so_ext)"; \
           if [ -e "$$lib" ]; then \
             mv $$lib $$dir/`echo $$name | sed 's/-/./'`; \
           fi \
        done
        rm -f $(DESTDIR)$(pkglibdir)/plugins/*.la
 
uninstall-hook:
        rm -f $(DESTDIR)$(pkglibdir)/plugins/*.{ui,pmi,pmo,lmc,mdf,ftf,plf,ppp}

4)

The first time I run zinf, it aborts with an error:

No UI plugin in '.:~/.zinf:/usr/lib/zinf' matched 'plugins/zinf.ui' or 'plugins/zinf.ui.ui.'
Zinf will quit.

The second and subsequent times it starts up, but with a couple of errors:
/usr/lib/zinf/plugins/cd.lmc: undefined symbol: _ZN12PipelineUnit5PauseEv
/usr/lib/zinf/plugins/wav.lmc: undefined symbol: _ZN12PipelineUnit5PauseEv

The problem is the PipelineUnit class.  It's part of libio, and libio is in 
zinf_LDADD, however nothing in zinf mainline code refers to this class, so 
this class never gets linked into the main executable.  It's referenced from 
these two plugins, but because the class never got linked into the main 
executable, the plugins fail to load.

Here's an ugly hack that'll force a reference, and get the class included in 
the main executable.  A proper fix would be to change the makefiles 
somehow...

After I fixed that, with the following hack, I discovered that the 
EventBuffer class similarly needs to be manually hacked in:

--- base/src/player.cpp.orig	2003-07-22 17:15:38.000000000 -0400
+++ base/src/player.cpp	2003-07-22 21:21:48.000000000 -0400
@@ -2264,3 +2264,13 @@
 
     delete pmo;
 }
+
+#include "pipeline.h"
+#include "eventbuffer.h"
+
+static void hack()
+{
+	PipelineUnit hack1(NULL);
+	EventBuffer hack2(0, 0, NULL);
+}
+

5)

Finally: the RIO PMP 300 plugin doesn't build.  I looked at the code 
briefly, and the fixes seems to be trivial.  I don't have a RIO so I can't 
test this, but the attached patch gets the plugin to compile for me.
signature.asc (application/pgp-signature, 189 B)
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.1 (GNU/Linux)

iD8DBQA/Heckx9p3GYHlUOIRAvAzAJ9n/2C5qT3oZEoBPhYBJT1OD1SmPQCfT3gb
RVzttRKkYJCnP3S66Dv7uzM=
=beN7
-----END PGP SIGNATURE-----
zinf-2.2.4-rio.patch.txt (text/plain, 9 KB)
*** plm/portable/pmp300/sba/rio.cpp.orig	2002-06-20 02:41:27.000000000 -0400
--- plm/portable/pmp300/sba/rio.cpp	2003-07-22 19:02:34.000000000 -0400
***************
*** 64,70 ****
  	// linux g++
  	#include	<unistd.h>
  	#include	<sys/io.h>
- 	#include	<asm/io.h>
  	#define		OUTPORT(p,v)			outb( v, p )
  	#define		INPORT(p)				inb( p )
  	#define		CLOCK_SECOND			CLOCKS_PER_SEC
--- 64,69 ----
*** plm/portable/pmp300/pmp300.cpp.orig	2003-05-30 17:22:12.000000000 -0400
--- plm/portable/pmp300/pmp300.cpp	2003-07-22 19:12:20.000000000 -0400
***************
*** 608,616 ****
  
                              length = _MAX_PATH;
  
!                             URLToFilePath(item->URL().c_str(), path, &length);
  
!                             if(!stat(path, &st))
                                  size = st.st_size;
                              else
                              {
--- 608,618 ----
  
                              length = _MAX_PATH;
  
! 			    string path;
  
!                             URLToFilePath(item->URL().c_str(), path);
! 
!                             if(!stat(path.c_str(), &st))
                                  size = st.st_size;
                              else
                              {
***************
*** 724,733 ****
                                      break;
                                  }
  
!                                 length = _MAX_PATH;
!                                 FilePathToURL(downloadPath.c_str(), path, &length);
  
!                                 (*position)->SetURL(path);
                              }
  
                              string::size_type pos = item->URL().rfind("/") + 1;
--- 726,736 ----
                                      break;
                                  }
  
! 				string p;
! 
!                                 FilePathToURL(downloadPath.c_str(), p);
  
!                                 (*position)->SetURL(p);
                              }
  
                              string::size_type pos = item->URL().rfind("/") + 1;
***************
*** 818,827 ****
                                          break;
                                      }
  
!                                     length = _MAX_PATH;
!                                     FilePathToURL(downloadPath.c_str(), path, &length);
  
!                                     (*position)->SetURL(path);
                                  }
  
                                  string::size_type pos = item->URL().rfind("/") + 1;
--- 821,830 ----
                                          break;
                                      }
  
! 				    string p;
!                                     FilePathToURL(downloadPath.c_str(), p);
  
!                                     (*position)->SetURL(p);
                                  }
  
                                  string::size_type pos = item->URL().rfind("/") + 1;
***************
*** 891,899 ****
  
                          if(item->URL().find("file://") != string::npos)
                          {
!                             length = _MAX_PATH;
  
!                             URLToFilePath(item->URL().c_str(), path, &length);
  
                              RioProgressStruct ps;
  
--- 894,902 ----
  
                          if(item->URL().find("file://") != string::npos)
                          {
! 			    string path;
  
!                             URLToFilePath(item->URL().c_str(), path);
  
                              RioProgressStruct ps;
  
***************
*** 903,909 ****
                              ps.cookie = cookie;
                              ps.item = item;
                              
!                             if(!rioInternal.TxFile(path, rioProgress, &ps))
                              {
                                  if(function)
                                  {
--- 906,913 ----
                              ps.cookie = cookie;
                              ps.item = item;
                              
!                             if(!rioInternal.TxFile(path.c_str(),
! 						   rioProgress, &ps))
                              {
                                  if(function)
                                  {
***************
*** 938,946 ****
  
                              if(item->URL().find("file://") != string::npos)
                              {
!                                 length = _MAX_PATH;
  
!                                 URLToFilePath(item->URL().c_str(), path, &length);
  
                                  RioProgressStruct ps;
  
--- 942,950 ----
  
                              if(item->URL().find("file://") != string::npos)
                              {
! 				    string path;
  
! 				    URLToFilePath(item->URL().c_str(), path);
  
                                  RioProgressStruct ps;
  
***************
*** 950,956 ****
                                  ps.cookie = cookie;
                                  ps.item = item;
                              
!                                 if(!rioExternal.TxFile(path, rioProgress, &ps))
                                  {
                                      if(function)
                                      {
--- 954,961 ----
                                  ps.cookie = cookie;
                                  ps.item = item;
                              
!                                 if(!rioExternal.TxFile(path.c_str(),
! 						       rioProgress, &ps))
                                  {
                                      if(function)
                                      {
***************
*** 1040,1048 ****
                  }
  
                  // clean up
!                 length = _MAX_PATH;
!                 FilePathToURL(tempPath, path, &length);
!                 strcpy(tempPath, path);
  
                  count = origInternal.size();
  
--- 1045,1057 ----
                  }
  
                  // clean up
! 
! 		{
! 			string p;
! 
! 			FilePathToURL(tempPath, p);
! 			strcpy(tempPath, p.c_str());
! 		}
  
                  count = origInternal.size();
  
***************
*** 1052,1062 ****
  
                      if(item->URL().find(tempPath) != string::npos)
                      {
!                         length = _MAX_PATH;
  
!                         URLToFilePath(item->URL().c_str(), path, &length);
  
!                         remove(path);
                      }
  
                      delete item;
--- 1061,1071 ----
  
                      if(item->URL().find(tempPath) != string::npos)
                      {
! 			    string path;
  
!                         URLToFilePath(item->URL().c_str(), path);
  
!                         remove(path.c_str());
                      }
  
                      delete item;
***************
*** 1070,1088 ****
  
                      if(item->URL().find(tempPath) != string::npos)
                      {
!                         length = _MAX_PATH;
  
!                         URLToFilePath(item->URL().c_str(), path, &length);
  
!                         remove(path);
                      }
  
                      delete item;
                  }
   
!                 
!                 URLToFilePath(tempPath, path, &length);
!                 rmdir(path);
  
                  delete [] tempPath;
                  delete [] path;
--- 1079,1100 ----
  
                      if(item->URL().find(tempPath) != string::npos)
                      {
! 			    string path;
  
! 			    URLToFilePath(item->URL().c_str(), path);
  
! 			    remove(path.c_str());
                      }
  
                      delete item;
                  }
   
!                 {
! 			string path;
! 
! 			URLToFilePath(tempPath, path);
! 			rmdir(path.c_str());
! 		}
  
                  delete [] tempPath;
                  delete [] path;
***************
*** 1119,1128 ****
  
              if(rioPresent)
              {
!                 char* path = new char[_MAX_PATH];
!                 uint32_t length = _MAX_PATH;
  
!                 URLToFilePath(url, path, &length);
  
                  string itemPath = item->URL();
                  string downloadPath = path;
--- 1131,1139 ----
  
              if(rioPresent)
              {
! 		    string path;
  
!                 URLToFilePath(url, path);
  
                  string itemPath = item->URL();
                  string downloadPath = path;
***************
*** 1165,1171 ****
                  {
                      if(downloadPath != path)
                      {
!                         if(rename(downloadPath.c_str(), path))
                          {
                              result = kError_FileNoAccess;
                          }
--- 1176,1182 ----
                  {
                      if(downloadPath != path)
                      {
!                         if(rename(downloadPath.c_str(), path.c_str()))
                          {
                              result = kError_FileNoAccess;
                          }
***************
*** 1197,1204 ****
  
                      function(&event, cookie);
                  }
- 
-                 delete [] path;
              }
          }   
      }
--- 1208,1213 ----
signature.asc (application/pgp-signature, 189 B)
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.1 (GNU/Linux)

iD8DBQA/Heckx9p3GYHlUOIRAhP/AJ92Knqtr1EGxiGCJJO9t7AOCH8FtQCfXTmr
tU7pMjwO3zrVdUiW3kmxTSE=
=HzZd
-----END PGP SIGNATURE-----
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.