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-----