From mboxrd@z Thu Jan 1 00:00:00 1970 From: Eric Bavier Subject: [PATCH 2/4] gnu: Add steghide. Date: Tue, 23 Aug 2016 01:15:10 -0500 Message-ID: <20160823061512.13024-2-ericbavier@openmailbox.org> References: <20160823061512.13024-1-ericbavier@openmailbox.org> Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:39270) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bc4zu-0006xN-OS for guix-devel@gnu.org; Tue, 23 Aug 2016 02:15:44 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1bc4zp-0005uU-Ig for guix-devel@gnu.org; Tue, 23 Aug 2016 02:15:41 -0400 Received: from mail2.openmailbox.org ([62.4.1.33]:41036) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bc4zp-0005uC-66 for guix-devel@gnu.org; Tue, 23 Aug 2016 02:15:37 -0400 In-Reply-To: <20160823061512.13024-1-ericbavier@openmailbox.org> List-Id: "Development of GNU Guix and the GNU System distribution." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-devel-bounces+gcggd-guix-devel=m.gmane.org@gnu.org Sender: "Guix-devel" To: guix-devel@gnu.org From: Eric Bavier * gnu/packages/image.scm (steghide): New variable. * gnu/packages/patches/steghide-fixes.patch: New patch. * gnu/local.mk (dist_patch_DATA): Add it. --- gnu/local.mk | 1 + gnu/packages/image.scm | 36 ++++++++++++++++ gnu/packages/patches/steghide-fixes.patch | 71 +++++++++++++++++++++++++= ++++++ 3 files changed, 108 insertions(+) create mode 100644 gnu/packages/patches/steghide-fixes.patch diff --git a/gnu/local.mk b/gnu/local.mk index b8c5378..02a7cc4 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -777,6 +777,7 @@ dist_patch_DATA =3D \ %D%/packages/patches/slim-sigusr1.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 \ diff --git a/gnu/packages/image.scm b/gnu/packages/image.scm index 7d72492..8d9f5a3 100644 --- a/gnu/packages/image.scm +++ b/gnu/packages/image.scm @@ -9,6 +9,7 @@ ;;; Copyright =C2=A9 2016 Leo Famulari ;;; Copyright =C2=A9 2016 Efraim Flashner ;;; Copyright =C2=A9 2016 Tobias Geerinckx-Rice +;;; Copyright =C2=A9 2016 Eric Bavier ;;; ;;; 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) @@ -833,3 +836,36 @@ whether they look alike. It uses a computational mo= del 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/steghid= e/" + 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=3D-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 v= arious +kinds of image- and audio-files. The color- respectivly sample-frequenc= ies +are not changed thus making the embedding resistant against first-order +statistical tests.") + (license license:gpl2+))) diff --git a/gnu/packages/patches/steghide-fixes.patch b/gnu/packages/pat= ches/steghide-fixes.patch new file mode 100644 index 0000000..4e7f447 --- /dev/null +++ b/gnu/packages/patches/steghide-fixes.patch @@ -0,0 +1,71 @@ +--- steghide-0.5.1/src/AuData.h ++++ steghide-0.5.1/src/AuData.h +@@ -26,22 +26,22 @@ +=20 + // AuMuLawAudioData + typedef AudioDataImpl 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) ; } +=20 + // AuPCM8AudioData + typedef AudioDataImpl 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) ; } +=20 + // AuPCM16AudioData + typedef AudioDataImpl AuPCM16AudioData ; +-inline SWORD16 AuPCM16AudioData::readValue (BinaryIO* io) const { retur= n ((SWORD16) io->read16_be()) ; } +-inline void AuPCM16AudioData::writeValue (BinaryIO* io, SWORD16 v) cons= t { io->write16_be((UWORD16) v) ; } ++template<> inline SWORD16 AuPCM16AudioData::readValue (BinaryIO* io) co= nst { return ((SWORD16) io->read16_be()) ; } ++template<> inline void AuPCM16AudioData::writeValue (BinaryIO* io, SWOR= D16 v) const { io->write16_be((UWORD16) v) ; } +=20 + // AuPCM32AudioData + typedef AudioDataImpl AuPCM32AudioData ; +-inline SWORD32 AuPCM32AudioData::readValue (BinaryIO* io) const { retur= n ((SWORD32) io->read32_be()) ; } +-inline void AuPCM32AudioData::writeValue (BinaryIO* io, SWORD32 v) cons= t { io->write32_be((UWORD32) v) ; } ++template<> inline SWORD32 AuPCM32AudioData::readValue (BinaryIO* io) co= nst { return ((SWORD32) io->read32_be()) ; } ++template<> inline void AuPCM32AudioData::writeValue (BinaryIO* io, SWOR= D32 v) const { io->write32_be((UWORD32) v) ; } +=20 + #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" +=20 + // AuMuLawSampleValue +-const BYTE AuMuLawSampleValue::MinValue =3D 0 ; +-const BYTE AuMuLawSampleValue::MaxValue =3D BYTE_MAX ; ++template<> const BYTE AuMuLawSampleValue::MinValue =3D 0 ; ++template<> const BYTE AuMuLawSampleValue::MaxValue =3D BYTE_MAX ; +=20 + // AuPCM8SampleValue +-const SBYTE AuPCM8SampleValue::MinValue =3D SBYTE_MIN ; +-const SBYTE AuPCM8SampleValue::MaxValue =3D SBYTE_MAX ; ++template<> const SBYTE AuPCM8SampleValue::MinValue =3D SBYTE_MIN ; ++template<> const SBYTE AuPCM8SampleValue::MaxValue =3D SBYTE_MAX ; +=20 + // AuPCM16SampleValue +-const SWORD16 AuPCM16SampleValue::MinValue =3D SWORD16_MIN ; +-const SWORD16 AuPCM16SampleValue::MaxValue =3D SWORD16_MAX ; ++template<> const SWORD16 AuPCM16SampleValue::MinValue =3D SWORD16_MIN ; ++template<> const SWORD16 AuPCM16SampleValue::MaxValue =3D SWORD16_MAX ; +=20 + // AuPCM32SampleValue +-const SWORD32 AuPCM32SampleValue::MinValue =3D SWORD32_MIN ; +-const SWORD32 AuPCM32SampleValue::MaxValue =3D SWORD32_MAX ; ++template<> const SWORD32 AuPCM32SampleValue::MinValue =3D SWORD32_MIN ; ++template<> const SWORD32 AuPCM32SampleValue::MaxValue =3D SWORD32_MAX ; +--- steghide-0.5.1/src/Graph.cc ++++ steghide-0.5.1/src/Graph.cc +@@ -18,6 +18,7 @@ + * + */ +=20 ++#include + #include + #include + #include --=20 2.9.2