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