Package: steghide Version: 0.5.1-5 Severity: serious Tags: patch steghide fails to build because it contains a number of incompatibilities with GCC 4.0:
> if g++ -DHAVE_CONFIG_H -I. -I. -I.. -DLOCALEDIR=\"/usr/share/locale\" -O2 > -Wall -MT AuFile.o -MD -MP -MF ".deps/AuFile.Tpo" \ > -c -o AuFile.o `test -f 'AuFile.cc' || echo './'`AuFile.cc; \ > then mv ".deps/AuFile.Tpo" ".deps/AuFile.Po"; \ > else rm -f ".deps/AuFile.Tpo"; exit 1; \ > fi > CvrStgObject.h:40: warning: 'class CvrStgObject' has virtual functions but > non-virtual destructor > SampleValue.h: In member function 'size_t SampleValueHash::operator()(const > SampleValue*) const': > SampleValue.h:166: error: 'hash' is not a member of 'sgi' > SampleValue.h:166: error: expected primary-expression before '>' token > SampleValue.h:166: error: 'h' was not declared in this scope > AudioData.h: At global scope: > AudioData.h:37: warning: 'class AudioData' has virtual functions but > non-virtual destructor > AuData.h:29: error: explicit specialization of 'BYTE AudioDataImpl<AuMuLaw, > BYTE, AudioSampleValue<AuMuLaw, BYTE> >::readValue(BinaryIO*) const' must be > introduced by 'template <>' > AuData.h:29: error: template-id 'readValue<>' for 'BYTE > AudioDataImpl<AuMuLaw, BYTE, AudioSampleValue<AuMuLaw, BYTE> > >::readValue(BinaryIO*) const' does not match any template declaration > AuData.h:29: error: invalid function declaration > AuData.h:30: error: explicit specialization of 'void AudioDataImpl<AuMuLaw, > BYTE, AudioSampleValue<AuMuLaw, BYTE> >::writeValue(BinaryIO*, BYTE) const' > must be introduced by 'template <>' > AuData.h:30: error: template-id 'writeValue<>' for 'void > AudioDataImpl<AuMuLaw, BYTE, AudioSampleValue<AuMuLaw, BYTE> > >::writeValue(BinaryIO*, BYTE) const' does not match any template declaration > AuData.h:30: error: invalid function declaration > AuData.h:34: error: explicit specialization of 'SBYTE AudioDataImpl<AuPCM8, > SBYTE, AudioSampleValue<AuPCM8, SBYTE> >::readValue(BinaryIO*) const' must be > introduced by 'template <>' > AuData.h:34: error: template-id 'readValue<>' for 'SBYTE > AudioDataImpl<AuPCM8, SBYTE, AudioSampleValue<AuPCM8, SBYTE> > >::readValue(BinaryIO*) const' does not match any template declaration > AuData.h:34: error: invalid function declaration > AuData.h:35: error: explicit specialization of 'void AudioDataImpl<AuPCM8, > SBYTE, AudioSampleValue<AuPCM8, SBYTE> >::writeValue(BinaryIO*, SBYTE) const' > must be introduced by 'template <>' > AuData.h:35: error: template-id 'writeValue<>' for 'void > AudioDataImpl<AuPCM8, SBYTE, AudioSampleValue<AuPCM8, SBYTE> > >::writeValue(BinaryIO*, SBYTE) const' does not match any template declaration > AuData.h:35: error: invalid function declaration > AuData.h:39: error: explicit specialization of 'SWORD16 > AudioDataImpl<AuPCM16, SWORD16, AudioSampleValue<AuPCM16, SWORD16> > >::readValue(BinaryIO*) const' must be introduced by 'template <>' > AuData.h:39: error: template-id 'readValue<>' for 'SWORD16 > AudioDataImpl<AuPCM16, SWORD16, AudioSampleValue<AuPCM16, SWORD16> > >::readValue(BinaryIO*) const' does not match any template declaration > AuData.h:39: error: invalid function declaration > AuData.h:40: error: explicit specialization of 'void AudioDataImpl<AuPCM16, > SWORD16, AudioSampleValue<AuPCM16, SWORD16> >::writeValue(BinaryIO*, SWORD16) > const' must be introduced by 'template <>' > AuData.h:40: error: template-id 'writeValue<>' for 'void > AudioDataImpl<AuPCM16, SWORD16, AudioSampleValue<AuPCM16, SWORD16> > >::writeValue(BinaryIO*, SWORD16) const' does not match any template > declaration > AuData.h:40: error: invalid function declaration > AuData.h:44: error: explicit specialization of 'SWORD32 > AudioDataImpl<AuPCM32, SWORD32, AudioSampleValue<AuPCM32, SWORD32> > >::readValue(BinaryIO*) const' must be introduced by 'template <>' > AuData.h:44: error: template-id 'readValue<>' for 'SWORD32 > AudioDataImpl<AuPCM32, SWORD32, AudioSampleValue<AuPCM32, SWORD32> > >::readValue(BinaryIO*) const' does not match any template declaration > AuData.h:44: error: invalid function declaration > AuData.h:45: error: explicit specialization of 'void AudioDataImpl<AuPCM32, > SWORD32, AudioSampleValue<AuPCM32, SWORD32> >::writeValue(BinaryIO*, SWORD32) > const' must be introduced by 'template <>' > AuData.h:45: error: template-id 'writeValue<>' for 'void > AudioDataImpl<AuPCM32, SWORD32, AudioSampleValue<AuPCM32, SWORD32> > >::writeValue(BinaryIO*, SWORD32) const' does not match any template > declaration > AuData.h:45: error: invalid function declaration The attached patch fixes these incompatibilities. -- Matt
only in patch2:
unchanged:
--- steghide-0.5.1.orig/src/ProgressOutput.h
+++ steghide-0.5.1/src/ProgressOutput.h
@@ -62,9 +62,9 @@
* \param rate the rate of matched vertices
* \param avgweight the average edge weight (is not printed if not
given)
**/
- void done (float rate, float avgweight = NoAvgWeight) const ;
+ void done (float rate, float avgweight = 1.0) const ;
- static const float NoAvgWeight = -1.0 ;
+ static float NoAvgWeight ;
protected:
std::string vcompose (const char *msgfmt, va_list ap) const ;
only in patch2:
unchanged:
--- steghide-0.5.1.orig/src/wrapper_hash_map.h
+++ steghide-0.5.1/src/wrapper_hash_map.h
@@ -29,7 +29,7 @@
namespace sgi { using ::hash ; using ::hash_map ; } ;
# else
# include <ext/hash_map>
-# if __GNUC_MINOR__ == 0
+# if __GNUC__ == 3 && __GNUC_MINOR__ == 0
namespace sgi = std ; // GCC 3.0
# else
namespace sgi = __gnu_cxx ; // GCC 3.1 and later
only in patch2:
unchanged:
--- steghide-0.5.1.orig/src/wrapper_hash_set.h
+++ steghide-0.5.1/src/wrapper_hash_set.h
@@ -30,7 +30,7 @@
namespace sgi { using ::hash ; using ::hash_set ; } ;
# else
# include <ext/hash_set>
-# if __GNUC_MINOR__ == 0
+# if __GNUC__ == 3 && __GNUC_MINOR__ == 0
namespace sgi = std ; // GCC 3.0
# else
namespace sgi = ::__gnu_cxx ; // GCC 3.1 and later
only in patch2:
unchanged:
--- steghide-0.5.1.orig/src/AuData.h
+++ steghide-0.5.1/src/AuData.h
@@ -26,22 +26,22 @@
// AuMuLawAudioData
typedef AudioDataImpl<AuMuLaw,BYTE> AuMuLawAudioData ;
-inline BYTE AuMuLawAudioData::readValue (BinaryIO* io) const { return
(io->read8()) ; }
-inline void AuMuLawAudioData::writeValue (BinaryIO* io, BYTE v) const {
io->write8(v) ; }
+template <> inline BYTE AuMuLawAudioData::readValue (BinaryIO* io) const {
return (io->read8()) ; }
+template <> inline void AuMuLawAudioData::writeValue (BinaryIO* io, BYTE v)
const { io->write8(v) ; }
// AuPCM8AudioData
typedef AudioDataImpl<AuPCM8,SBYTE> AuPCM8AudioData ;
-inline SBYTE AuPCM8AudioData::readValue (BinaryIO* io) const { return ((SBYTE)
io->read8()) ; }
-inline void AuPCM8AudioData::writeValue (BinaryIO* io, SBYTE v) const {
io->write8((BYTE) v) ; }
+template <> inline SBYTE AuPCM8AudioData::readValue (BinaryIO* io) const {
return ((SBYTE) io->read8()) ; }
+template <> inline void AuPCM8AudioData::writeValue (BinaryIO* io, SBYTE v)
const { io->write8((BYTE) v) ; }
// AuPCM16AudioData
typedef AudioDataImpl<AuPCM16,SWORD16> AuPCM16AudioData ;
-inline SWORD16 AuPCM16AudioData::readValue (BinaryIO* io) const { return
((SWORD16) io->read16_be()) ; }
-inline void AuPCM16AudioData::writeValue (BinaryIO* io, SWORD16 v) const {
io->write16_be((UWORD16) v) ; }
+template <> inline SWORD16 AuPCM16AudioData::readValue (BinaryIO* io) const {
return ((SWORD16) io->read16_be()) ; }
+template <> inline void AuPCM16AudioData::writeValue (BinaryIO* io, SWORD16 v)
const { io->write16_be((UWORD16) v) ; }
// AuPCM32AudioData
typedef AudioDataImpl<AuPCM32,SWORD32> AuPCM32AudioData ;
-inline SWORD32 AuPCM32AudioData::readValue (BinaryIO* io) const { return
((SWORD32) io->read32_be()) ; }
-inline void AuPCM32AudioData::writeValue (BinaryIO* io, SWORD32 v) const {
io->write32_be((UWORD32) v) ; }
+template <> inline SWORD32 AuPCM32AudioData::readValue (BinaryIO* io) const {
return ((SWORD32) io->read32_be()) ; }
+template <> inline void AuPCM32AudioData::writeValue (BinaryIO* io, SWORD32 v)
const { io->write32_be((UWORD32) v) ; }
#endif // ndef SH_AUDATA_H
only in patch2:
unchanged:
--- steghide-0.5.1.orig/src/Arguments.h
+++ steghide-0.5.1/src/Arguments.h
@@ -100,7 +100,7 @@
static const VERBOSITY Default_Verbosity = NORMAL ;
static const unsigned long Default_Radius = 0 ; // there is no
default radius for all file formats
static const unsigned int Max_Algorithm = 3 ;
- static const float Default_Goal = 100.0 ;
+ static float Default_Goal ;
static const DEBUGCOMMAND Default_DebugCommand = NONE ;
static const bool Default_Check = false ;
static const unsigned int Default_DebugLevel = 0 ;
only in patch2:
unchanged:
--- steghide-0.5.1.orig/src/Arguments.cc
+++ steghide-0.5.1/src/Arguments.cc
@@ -28,6 +28,8 @@
#include "error.h"
#include "msg.h"
+float Arguments::Default_Goal = 100.0 ;
+
// the global Arguments object
Arguments Args ;
only in patch2:
unchanged:
--- steghide-0.5.1.orig/src/ProgressOutput.cc
+++ steghide-0.5.1/src/ProgressOutput.cc
@@ -23,6 +23,8 @@
#include "ProgressOutput.h"
#include "common.h"
+float ProgressOutput::NoAvgWeight = 1.0 ;
+
ProgressOutput::ProgressOutput ()
: Message("__nomessage__")
{
signature.asc
Description: Digital signature

