gnu: Add steghide.
* gnu/packages/image.scm (steghide): New variable. * gnu/packages/patches/steghide-fixes.patch: New patch. * gnu/local.mk (dist_patch_DATA): Add it.master
parent
b9b3440b1f
commit
1fa3e33604
|
@ -795,6 +795,7 @@ dist_patch_DATA = \
|
|||
%D%/packages/patches/slock-CVE-2016-6866.patch \
|
||||
%D%/packages/patches/slurm-configure-remove-nonfree-contribs.patch \
|
||||
%D%/packages/patches/soprano-find-clucene.patch \
|
||||
%D%/packages/patches/steghide-fixes.patch \
|
||||
%D%/packages/patches/superlu-dist-scotchmetis.patch \
|
||||
%D%/packages/patches/synfig-build-fix.patch \
|
||||
%D%/packages/patches/t1lib-CVE-2010-2642.patch \
|
||||
|
|
|
@ -9,6 +9,7 @@
|
|||
;;; Copyright © 2016 Leo Famulari <leo@famulari.name>
|
||||
;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
|
||||
;;; Copyright © 2016 Tobias Geerinckx-Rice <me@tobias.gr>
|
||||
;;; Copyright © 2016 Eric Bavier <bavier@member.fsf.org>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -33,10 +34,12 @@
|
|||
#:use-module (gnu packages compression)
|
||||
#:use-module (gnu packages documentation)
|
||||
#:use-module (gnu packages fontutils)
|
||||
#:use-module (gnu packages gettext)
|
||||
#:use-module (gnu packages ghostscript)
|
||||
#:use-module (gnu packages gl)
|
||||
#:use-module (gnu packages graphics)
|
||||
#:use-module (gnu packages maths)
|
||||
#:use-module (gnu packages mcrypt)
|
||||
#:use-module (gnu packages perl)
|
||||
#:use-module (gnu packages pkg-config)
|
||||
#:use-module (gnu packages python)
|
||||
|
@ -882,3 +885,36 @@ whether they look alike. It uses a computational model of the human visual
|
|||
system to detect similarities. This allows it too see beyond irrelevant
|
||||
differences in file encoding, image quality, and other small variations.")
|
||||
(license license:gpl2+)))
|
||||
|
||||
(define-public steghide
|
||||
(package
|
||||
(name "steghide")
|
||||
(version "0.5.1")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://sourceforge/steghide/steghide/"
|
||||
version "/steghide-" version ".tar.bz2"))
|
||||
(sha256
|
||||
(base32
|
||||
"18bxlhbdc3zsmxj84i417xjh0q28kv26q449k23n0a72ldwziix2"))
|
||||
(patches (list (search-patch "steghide-fixes.patch")))))
|
||||
(build-system gnu-build-system)
|
||||
(native-inputs
|
||||
`(("gettext" ,gnu-gettext)
|
||||
("libtool" ,libtool)
|
||||
("perl" ,perl))) ;for tests
|
||||
(inputs
|
||||
`(("libmhash" ,libmhash)
|
||||
("libmcrypt" ,libmcrypt)
|
||||
("libjpeg" ,libjpeg)
|
||||
("zlib" ,zlib)))
|
||||
(arguments
|
||||
`(#:make-flags '("CXXFLAGS=-fpermissive"))) ;required for MHashPP.cc
|
||||
(home-page "http://steghide.sourceforge.net")
|
||||
(synopsis "Image and audio steganography")
|
||||
(description
|
||||
"Steghide is a steganography program that is able to hide data in various
|
||||
kinds of image- and audio-files. The color- respectivly sample-frequencies
|
||||
are not changed thus making the embedding resistant against first-order
|
||||
statistical tests.")
|
||||
(license license:gpl2+)))
|
||||
|
|
|
@ -0,0 +1,71 @@
|
|||
--- steghide-0.5.1/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
|
||||
--- steghide-0.5.1/src/AuSampleValues.cc
|
||||
+++ steghide-0.5.1/src/AuSampleValues.cc
|
||||
@@ -21,17 +21,17 @@
|
||||
#include "AuSampleValues.h"
|
||||
|
||||
// AuMuLawSampleValue
|
||||
-const BYTE AuMuLawSampleValue::MinValue = 0 ;
|
||||
-const BYTE AuMuLawSampleValue::MaxValue = BYTE_MAX ;
|
||||
+template<> const BYTE AuMuLawSampleValue::MinValue = 0 ;
|
||||
+template<> const BYTE AuMuLawSampleValue::MaxValue = BYTE_MAX ;
|
||||
|
||||
// AuPCM8SampleValue
|
||||
-const SBYTE AuPCM8SampleValue::MinValue = SBYTE_MIN ;
|
||||
-const SBYTE AuPCM8SampleValue::MaxValue = SBYTE_MAX ;
|
||||
+template<> const SBYTE AuPCM8SampleValue::MinValue = SBYTE_MIN ;
|
||||
+template<> const SBYTE AuPCM8SampleValue::MaxValue = SBYTE_MAX ;
|
||||
|
||||
// AuPCM16SampleValue
|
||||
-const SWORD16 AuPCM16SampleValue::MinValue = SWORD16_MIN ;
|
||||
-const SWORD16 AuPCM16SampleValue::MaxValue = SWORD16_MAX ;
|
||||
+template<> const SWORD16 AuPCM16SampleValue::MinValue = SWORD16_MIN ;
|
||||
+template<> const SWORD16 AuPCM16SampleValue::MaxValue = SWORD16_MAX ;
|
||||
|
||||
// AuPCM32SampleValue
|
||||
-const SWORD32 AuPCM32SampleValue::MinValue = SWORD32_MIN ;
|
||||
-const SWORD32 AuPCM32SampleValue::MaxValue = SWORD32_MAX ;
|
||||
+template<> const SWORD32 AuPCM32SampleValue::MinValue = SWORD32_MIN ;
|
||||
+template<> const SWORD32 AuPCM32SampleValue::MaxValue = SWORD32_MAX ;
|
||||
--- steghide-0.5.1/src/Graph.cc
|
||||
+++ steghide-0.5.1/src/Graph.cc
|
||||
@@ -18,6 +18,7 @@
|
||||
*
|
||||
*/
|
||||
|
||||
+#include <climits>
|
||||
#include <ctime>
|
||||
#include <list>
|
||||
#include <map>
|
Reference in New Issue