Subject: pkg/32965: audio/id3lib fails to build on Solaris with SunStudio 11 compilers
To: None <pkg-manager@netbsd.org, gnats-admin@netbsd.org,>
From: None <segv@netctl.net>
List: pkgsrc-bugs
Date: 03/02/2006 11:50:00
>Number:         32965
>Category:       pkg
>Synopsis:       audio/id3lib fails to build on Solaris with SunStudio 11 compilers
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    pkg-manager
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Thu Mar 02 11:50:00 +0000 2006
>Originator:     segv
>Release:        
>Organization:
>Environment:
SunOS e450-lan 5.11 snv_28 sun4u sparc SUNW,Ultra-4
>Description:
"tag_file.cpp", line 288: Error: Formal argument s of type char* in call to std::istream::read(char*, long) is being passed unsigned char*.
"tag_file.cpp", line 290: Error: Formal argument s of type const char* in call to std::ostream::write(const char*, long) is being passed unsigned char*.
2 Error(s) and 1 Warning(s) detected.
*** Error code 1

Stop.
bmake: stopped in /opt/pkg.obj/audio/id3lib/work.e450-lan/id3lib-3.8.3/src
*** Error code 1

>How-To-Repeat:

>Fix:
--- id3lib-3.8.3/src/tag_file.cpp.orig  Thu Mar  2 11:35:35 2006
+++ id3lib-3.8.3/src/tag_file.cpp       Thu Mar  2 11:35:51 2006
@@ -285,9 +285,9 @@
     uchar tmpBuffer[BUFSIZ];
     while (file)
     {
-      file.read(tmpBuffer, BUFSIZ);
+      file.read((char *)tmpBuffer, BUFSIZ);
       size_t nBytes = file.gcount();
-      tmpOut.write(tmpBuffer, nBytes);
+      tmpOut.write((char *)tmpBuffer, nBytes);
     }
 
     close(fd); //closes the file