commit 5610eaee7c53b4ff00d4b9cf99d6de413e421278
parent 064d728daa64312a6ed72b37bafc6c8b0ab35138
Author: parazyd <parazyd@dyne.org>
Date: Wed, 16 Dec 2020 17:51:51 +0100
app-crypt/steghide: Add 0.5.1.
Diffstat:
6 files changed, 498 insertions(+), 0 deletions(-)
diff --git a/app-crypt/steghide/Manifest b/app-crypt/steghide/Manifest
@@ -0,0 +1 @@
+DIST steghide-0.5.1.tar.bz2 392761 BLAKE2B 7aad153d0831f86be7b4b25588a3110c4e3882433ff23f5f1017ff26732b92bcad3ac55c5876582d405a6727879e7c2b805b16f95cdb7f326006efb0917b430a SHA512 66271e820d7de6de5fe485ae92d1cc1360ad336138d4a5220cfda205cfa465e1ace74e1c832d9a43a71bbbca12426d20baf6433145470f9f32880ca5bf0fea5b
diff --git a/app-crypt/steghide/files/steghide-0.5.1-gcc34.patch b/app-crypt/steghide/files/steghide-0.5.1-gcc34.patch
@@ -0,0 +1,43 @@
+diff -ur a/src/AuSampleValues.cc b/src/AuSampleValues.cc
+--- a/src/AuSampleValues.cc 2003-09-28 19:30:30.000000000 +0400
++++ b/src/AuSampleValues.cc 2019-11-06 18:42:01.574894484 +0300
+@@ -18,20 +18,21 @@
+ *
+ */
+
++#include "common.h"
+ #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 ;
+diff -ur a/src/Makefile.am b/src/Makefile.am
+--- a/src/Makefile.am 2003-09-28 20:33:21.000000000 +0400
++++ b/src/Makefile.am 2019-11-06 18:40:25.141385349 +0300
+@@ -33,5 +33,5 @@
+ WavPCMSampleValue.cc error.cc main.cc msg.cc SMDConstructionHeuristic.cc
+ LIBS = @LIBINTL@ @LIBS@
+ localedir = $(datadir)/locale
+-LIBTOOL = $(SHELL) libtool
++LIBTOOL = $(SHELL) libtool --tag=CXX
+ MAINTAINERCLEANFILES = Makefile.in
diff --git a/app-crypt/steghide/files/steghide-0.5.1-gcc4.patch b/app-crypt/steghide/files/steghide-0.5.1-gcc4.patch
@@ -0,0 +1,46 @@
+diff -Naur steghide-0.5.1-orig/src/AuData.h steghide-0.5.1/src/AuData.h
+--- steghide-0.5.1-orig/src/AuData.h 2003-09-28 09:30:29.000000000 -0600
++++ steghide-0.5.1/src/AuData.h 2007-05-11 22:04:56.000000000 -0600
+@@ -26,22 +26,30 @@
+
+ // AuMuLawAudioData
+ typedef AudioDataImpl<AuMuLaw,BYTE> AuMuLawAudioData ;
++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 ;
++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 ;
++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 ;
++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
+diff -Naur steghide-0.5.1-orig/src/MHashPP.cc steghide-0.5.1/src/MHashPP.cc
+--- steghide-0.5.1-orig/src/MHashPP.cc 2003-10-05 04:17:50.000000000 -0600
++++ steghide-0.5.1/src/MHashPP.cc 2007-05-11 22:07:01.000000000 -0600
+@@ -120,7 +120,7 @@
+
+ std::string MHashPP::getAlgorithmName (hashid id)
+ {
+- char *name = mhash_get_hash_name (id) ;
++ char *name = (char *) mhash_get_hash_name (id) ;
+ std::string retval ;
+ if (name == NULL) {
+ retval = std::string ("<algorithm not found>") ;
diff --git a/app-crypt/steghide/files/steghide-0.5.1-gcc43.patch b/app-crypt/steghide/files/steghide-0.5.1-gcc43.patch
@@ -0,0 +1,349 @@
+--- steghide-0.5.1.old/configure.in 2003-10-15 09:48:52.000000000 +0200
++++ steghide-0.5.1.new/configure.in 2008-05-09 19:04:46.000000000 +0200
+@@ -7,27 +7,26 @@
+ dnl checks for programs.
+ AC_PROG_CXX
+ AC_PROG_INSTALL
+ AC_PROG_AWK
+ AC_PROG_LN_S
++AC_CXX_COMPILE_STDCXX_0X
+
+ dnl GNU gettext
+ AC_CHECK_FUNCS(strchr)
+ AM_GNU_GETTEXT
+ AM_CONDITIONAL(USE_INTLDIR, test "$nls_cv_use_gnu_gettext" = yes)
+
+ dnl check if debugging support is requested
+-AC_MSG_CHECKING([wether to enable debugging])
++AC_MSG_CHECKING([whether to enable debugging])
+ AC_ARG_ENABLE(debug,[ --enable-debug enable debugging],
+ if test "$enableval" = yes ;
+ then
+ AC_MSG_RESULT([yes])
+ AC_DEFINE(DEBUG,1,[enable code used only for debugging])
+- CXXFLAGS="-O2 -Wall -g"
+ else
+ AC_MSG_RESULT([no])
+- CXXFLAGS="-O2 -Wall"
+ fi
+ ,
+ AC_MSG_RESULT([no])
+ CXXFLAGS="-O2 -Wall"
+ )
+@@ -213,7 +212,18 @@
+ echo "libmhash can be downloaded from http://mhash.sourceforge.net/.";
+ echo "**********";
+ AC_MSG_ERROR([[libmhash not found]])
+ fi
+
++dnl Should we add std=c++0x?
++
++if test "$ac_cv_cxx_compile_cxx0x_cxx" = yes;
++then
++ CXXFLAGS="${CXXFLAGS} -std=c++0x -Wall -Wextra"
++else
++ CXXFLAGS="${CXXFLAGS} -Wall -Wextra"
++fi
++
++AC_SUBST(CXXFLAGS)
++
+ dnl create Makefiles
+ AC_OUTPUT([Makefile steghide.spec steghide.doxygen doc/Makefile po/Makefile.in src/Makefile tests/Makefile tests/data/Makefile m4/Makefile intl/Makefile])
+--- steghide-0.5.1.old/m4/ac_cxx_compile_stdcxx_0x.m4 1970-01-01 01:00:00.000000000 +0100
++++ steghide-0.5.1.new/m4/ac_cxx_compile_stdcxx_0x.m4 2008-05-09 19:04:46.000000000 +0200
+@@ -0,0 +1,107 @@
++# ===========================================================================
++# http://autoconf-archive.cryp.to/ac_cxx_compile_stdcxx_0x.html
++# ===========================================================================
++#
++# SYNOPSIS
++#
++# AC_CXX_COMPILE_STDCXX_0X
++#
++# DESCRIPTION
++#
++# Check for baseline language coverage in the compiler for the C++0x
++# standard.
++#
++# LAST MODIFICATION
++#
++# 2008-04-17
++#
++# COPYLEFT
++#
++# Copyright (c) 2008 Benjamin Kosnik <bkoz@redhat.com>
++#
++# Copying and distribution of this file, with or without modification, are
++# permitted in any medium without royalty provided the copyright notice
++# and this notice are preserved.
++
++AC_DEFUN([AC_CXX_COMPILE_STDCXX_0X], [
++ AC_CACHE_CHECK(if g++ supports C++0x features without additional flags,
++ ac_cv_cxx_compile_cxx0x_native,
++ [AC_LANG_SAVE
++ AC_LANG_CPLUSPLUS
++ AC_TRY_COMPILE([
++ template <typename T>
++ struct check
++ {
++ static_assert(sizeof(int) <= sizeof(T), "not big enough");
++ };
++
++ typedef check<check<bool>> right_angle_brackets;
++
++ int a;
++ decltype(a) b;
++
++ typedef check<int> check_type;
++ check_type c;
++ check_type&& cr = c;],,
++ ac_cv_cxx_compile_cxx0x_native=yes, ac_cv_cxx_compile_cxx0x_native=no)
++ AC_LANG_RESTORE
++ ])
++
++ AC_CACHE_CHECK(if g++ supports C++0x features with -std=c++0x,
++ ac_cv_cxx_compile_cxx0x_cxx,
++ [AC_LANG_SAVE
++ AC_LANG_CPLUSPLUS
++ ac_save_CXXFLAGS="$CXXFLAGS"
++ CXXFLAGS="$CXXFLAGS -std=c++0x"
++ AC_TRY_COMPILE([
++ template <typename T>
++ struct check
++ {
++ static_assert(sizeof(int) <= sizeof(T), "not big enough");
++ };
++
++ typedef check<check<bool>> right_angle_brackets;
++
++ int a;
++ decltype(a) b;
++
++ typedef check<int> check_type;
++ check_type c;
++ check_type&& cr = c;],,
++ ac_cv_cxx_compile_cxx0x_cxx=yes, ac_cv_cxx_compile_cxx0x_cxx=no)
++ CXXFLAGS="$ac_save_CXXFLAGS"
++ AC_LANG_RESTORE
++ ])
++
++ AC_CACHE_CHECK(if g++ supports C++0x features with -std=gnu++0x,
++ ac_cv_cxx_compile_cxx0x_gxx,
++ [AC_LANG_SAVE
++ AC_LANG_CPLUSPLUS
++ ac_save_CXXFLAGS="$CXXFLAGS"
++ CXXFLAGS="$CXXFLAGS -std=gnu++0x"
++ AC_TRY_COMPILE([
++ template <typename T>
++ struct check
++ {
++ static_assert(sizeof(int) <= sizeof(T), "not big enough");
++ };
++
++ typedef check<check<bool>> right_angle_brackets;
++
++ int a;
++ decltype(a) b;
++
++ typedef check<int> check_type;
++ check_type c;
++ check_type&& cr = c;],,
++ ac_cv_cxx_compile_cxx0x_gxx=yes, ac_cv_cxx_compile_cxx0x_gxx=no)
++ CXXFLAGS="$ac_save_CXXFLAGS"
++ AC_LANG_RESTORE
++ ])
++
++ if test "$ac_cv_cxx_compile_cxx0x_native" = yes ||
++ test "$ac_cv_cxx_compile_cxx0x_cxx" = yes ||
++ test "$ac_cv_cxx_compile_cxx0x_gxx" = yes; then
++ AC_DEFINE(HAVE_STDCXX_0X,,[Define if g++ supports C++0x features. ])
++ fi
++])
+--- steghide-0.5.1.old/src/Arguments.cc 2003-10-11 23:25:04.000000000 +0200
++++ steghide-0.5.1.new/src/Arguments.cc 2008-05-09 19:04:44.000000000 +0200
+@@ -26,10 +26,12 @@
+ #include "Terminal.h"
+ #include "common.h"
+ #include "error.h"
+ #include "msg.h"
+
++float Arguments::Default_Goal = 100.0 ;
++
+ // the global Arguments object
+ Arguments Args ;
+
+ Arguments::Arguments (int argc, char* argv[])
+ {
+--- steghide-0.5.1.old/src/Arguments.h 2003-10-11 23:23:57.000000000 +0200
++++ steghide-0.5.1.new/src/Arguments.h 2008-05-09 19:04:44.000000000 +0200
+@@ -98,11 +98,11 @@
+ static const bool Default_EmbedEmbFn = true ;
+ static const bool Default_Force = false ;
+ 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 ;
+ static const unsigned int Default_GmlGraphRecDepth = 0 ;
+ static const unsigned int Default_GmlStartVertex = 0 ;
+--- steghide-0.5.1.old/src/EncryptionMode.h 2003-09-28 17:30:30.000000000 +0200
++++ steghide-0.5.1.new/src/EncryptionMode.h 2008-05-09 19:04:46.000000000 +0200
+@@ -69,11 +69,11 @@
+ static const unsigned int NumValues = 8 ;
+ IRep Value ;
+
+ typedef struct struct_Translation {
+ IRep irep ;
+- char* srep ;
++ const char* srep ;
+ } Translation ;
+ static const Translation Translations[] ;
+ } ;
+
+ #endif // ndef SH_ENCMODE_H
+--- steghide-0.5.1.old/src/Graph.cc 2003-10-11 23:54:26.000000000 +0200
++++ steghide-0.5.1.new/src/Graph.cc 2008-05-09 19:04:46.000000000 +0200
+@@ -20,10 +20,12 @@
+
+ #include <ctime>
+ #include <list>
+ #include <map>
+ #include <vector>
++#include <algorithm>
++#include <climits>
+
+ #include "BitString.h"
+ #include "CvrStgFile.h"
+ #include "Edge.h"
+ #include "Graph.h"
+--- steghide-0.5.1.old/src/Matching.cc 2003-10-11 23:54:30.000000000 +0200
++++ steghide-0.5.1.new/src/Matching.cc 2008-05-09 19:04:46.000000000 +0200
+@@ -16,10 +16,11 @@
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ *
+ */
+
++#include <algorithm>
+ #include "Edge.h"
+ #include "Graph.h"
+ #include "Matching.h"
+ #include "ProgressOutput.h"
+ #include "common.h"
+--- steghide-0.5.1.old/src/ProgressOutput.cc 2003-10-11 11:20:51.000000000 +0200
++++ steghide-0.5.1.new/src/ProgressOutput.cc 2008-05-09 19:04:44.000000000 +0200
+@@ -21,10 +21,12 @@
+ #include <cmath>
+
+ #include "ProgressOutput.h"
+ #include "common.h"
+
++float ProgressOutput::NoAvgWeight = 1.0 ;
++
+ ProgressOutput::ProgressOutput ()
+ : Message("__nomessage__")
+ {
+ LastUpdate = time(NULL) - 1 ; // -1 to ensure that message is written first time
+ }
+--- steghide-0.5.1.old/src/ProgressOutput.h 2003-09-28 17:30:30.000000000 +0200
++++ steghide-0.5.1.new/src/ProgressOutput.h 2008-05-09 19:04:44.000000000 +0200
+@@ -60,13 +60,13 @@
+ /**
+ * update the output appending rate, [average edge weight], "done" and a newline
+ * \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 ;
+
+ private:
+--- steghide-0.5.1.old/src/SMDConstructionHeuristic.cc 2003-09-28 17:30:30.000000000 +0200
++++ steghide-0.5.1.new/src/SMDConstructionHeuristic.cc 2008-05-09 19:04:46.000000000 +0200
+@@ -16,10 +16,12 @@
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ *
+ */
+
++#include <algorithm>
++
+ #include "Edge.h"
+ #include "Graph.h"
+ #include "Matching.h"
+ #include "SMDConstructionHeuristic.h"
+ #include "Vertex.h"
+--- steghide-0.5.1.old/src/WavFile.cc 2003-09-28 17:30:30.000000000 +0200
++++ steghide-0.5.1.new/src/WavFile.cc 2008-05-09 19:04:46.000000000 +0200
+@@ -19,10 +19,11 @@
+ */
+
+ #include <cstdio>
+ #include <cstdlib>
+ #include <cstring>
++#include <algorithm>
+
+ #include "CvrStgFile.h"
+ #include "DFSAPHeuristic.h"
+ #include "SampleValueAdjacencyList.h"
+ #include "SMDConstructionHeuristic.h"
+--- steghide-0.5.1.old/src/wrapper_hash_map.h 2003-09-28 17:30:30.000000000 +0200
++++ steghide-0.5.1.new/src/wrapper_hash_map.h 2008-05-09 19:04:46.000000000 +0200
+@@ -25,17 +25,21 @@
+
+ #ifdef __GNUC__
+ # if __GNUC__ < 3
+ # include <hash_map.h>
+ namespace sgi { using ::hash ; using ::hash_map ; } ;
+-# else
++# elif __GNUC__ == 3 || ( __GNUC__ == 4 && __GNUC_MINOR__ < 3 )
+ # 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
+ # endif
++# else
++# include <unordered_map>
++# define hash_map unordered_map
++ namespace sgi = std ;
+ # endif
+ #else
+ namespace sgi = std ;
+ #endif
+
+--- steghide-0.5.1.old/src/wrapper_hash_set.h 2003-09-28 17:30:30.000000000 +0200
++++ steghide-0.5.1.new/src/wrapper_hash_set.h 2008-05-09 19:04:46.000000000 +0200
+@@ -26,17 +26,21 @@
+
+ #ifdef __GNUC__
+ # if __GNUC__ < 3
+ # include <hash_set.h>
+ namespace sgi { using ::hash ; using ::hash_set ; } ;
+-# else
++# elif __GNUC__ == 3 || ( __GNUC__ == 4 && __GNUC_MINOR__ < 3 )
+ # 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
+ # endif
++# else
++# include <unordered_set>
++# define hash_set unordered_set
++ namespace sgi = std ;
+ # endif
+ #else
+ namespace sgi = std ;
+ #endif
+
diff --git a/app-crypt/steghide/metadata.xml b/app-crypt/steghide/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>email@linxon.ru</email>
+ <name>Yury Martynov</name>
+ </maintainer>
+ <maintainer type="project">
+ <email>proxy-maint@gentoo.org</email>
+ <name>Proxy Maintainers</name>
+ </maintainer>
+</pkgmetadata>
diff --git a/app-crypt/steghide/steghide-0.5.1.ebuild b/app-crypt/steghide/steghide-0.5.1.ebuild
@@ -0,0 +1,47 @@
+# Copyright 1999-2019 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit autotools eutils
+
+DESCRIPTION="A steganography program which hides data in various media files"
+HOMEPAGE="https://steghide.sourceforge.net/"
+SRC_URI="mirror://sourceforge/${PN}/${P}.tar.bz2"
+
+KEYWORDS="~amd64 ~x86"
+LICENSE="GPL-2"
+SLOT="0"
+IUSE="debug"
+
+DEPEND="
+ app-crypt/mhash
+ dev-libs/libmcrypt
+ sys-libs/zlib
+ virtual/jpeg"
+
+RDEPEND="${DEPEND}"
+
+src_prepare(){
+ eapply "${FILESDIR}"/${P}-gcc34.patch
+ eapply "${FILESDIR}"/${P}-gcc4.patch
+ eapply "${FILESDIR}"/${P}-gcc43.patch
+
+ eautoreconf
+ default
+}
+
+src_configure() {
+ econf $(use_enable debug)
+}
+
+src_compile() {
+ export CXXFLAGS="$CXXFLAGS -std=c++0x"
+ local libtool
+ [[ ${CHOST} == *-darwin* ]] && libtool=$(type -P glibtool) || libtool=$(type -P libtool)
+ emake LIBTOOL="${libtool}" || die "emake failed"
+}
+
+src_install() {
+ emake DESTDIR="${ED}" docdir="${EPREFIX}/usr/share/doc/${PF}" install || die "emake install failed"
+}