Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 15 Jun 2014 02:21:59 +0200
From:      Dimitry Andric <dim@FreeBSD.org>
To:        Cy Schubert <Cy.Schubert@komquats.com>
Cc:        Greg Rivers <gcr+freebsd-ports@tharned.org>, freebsd-ports@freebsd.org, cy@FreeBSD.org
Subject:   Re: security/tripwire compile error
Message-ID:  <7B4D49CC-FBB0-4930-8045-23F69BCC2EB3@FreeBSD.org>
In-Reply-To: <201406140542.s5E5gBJX023371@slippy.cwsent.com>
References:  <201406140542.s5E5gBJX023371@slippy.cwsent.com>

next in thread | previous in thread | raw e-mail | index | archive | help

--Apple-Mail=_E85F31BE-685C-439C-8798-84D376960C2E
Content-Type: multipart/mixed;
	boundary="Apple-Mail=_CC8CCFCF-BFF7-41F5-B574-F1FABF1D86C2"


--Apple-Mail=_CC8CCFCF-BFF7-41F5-B574-F1FABF1D86C2
Content-Transfer-Encoding: 7bit
Content-Type: text/plain;
	charset=us-ascii

On 14 Jun 2014, at 07:42, Cy Schubert <Cy.Schubert@komquats.com> wrote:
> In message <alpine.BSF.2.00.1406140011020.29299@angus.tharned.org>, Greg 
> Rivers
> writes:
>> On Fri, 13 Jun 2014, Cy Schubert wrote:
>> 
>>> Try it with gcc 4.6.
>>> 
>> That works fine.  I see you've already updated the make file too.
>> Thanks a lot for your work.
> 
> Ultimately work needs to be put in to get it to compile with a newer gcc 
> and with clang. It's on my todo list.

I spent a bit of time to make it compile with clang, and also gcc 4.8;
please review the attached diff.  This also fixes several of the most
egregious warnings.

-Dimitry

--Apple-Mail=_CC8CCFCF-BFF7-41F5-B574-F1FABF1D86C2
Content-Disposition: attachment;
	filename=security__tripwire-fix-c++-problems-1.diff
Content-Type: application/octet-stream;
	x-unix-mode=0644;
	name="security__tripwire-fix-c++-problems-1.diff"
Content-Transfer-Encoding: 7bit

Index: security/tripwire/Makefile
===================================================================
--- security/tripwire/Makefile	(revision 357663)
+++ security/tripwire/Makefile	(working copy)
@@ -18,7 +18,6 @@
 MAKE_JOBS_UNSAFE=	yes
 USES=		gmake tar:bzip2
 GNU_CONFIGURE=	yes
-USE_GCC=	any
 MAKE_ARGS=	SYSPRE=${ARCH}-unknown-freebsd \
 		DESTDIR=${STAGEDIR}
 IS_INTERACTIVE=	yes
Index: security/tripwire/files/patch-src-core-archive.cpp
===================================================================
--- security/tripwire/files/patch-src-core-archive.cpp	(revision 0)
+++ security/tripwire/files/patch-src-core-archive.cpp	(working copy)
@@ -0,0 +1,13 @@
+--- src/core/archive.cpp.orig	2011-11-21 17:06:56.000000000 +0100
++++ src/core/archive.cpp	2014-06-15 01:45:01.000000000 +0200
+@@ -886,8 +886,8 @@ void cLockedTemporaryFileArchive::OpenRe
+         catch( eFSServices& e)
+           {
+             TSTRING errStr = TSS_GetString( cCore, core::STR_BAD_TEMPDIRECTORY );
+-            eArchiveOpen e(strTempFile, errStr);
+-            throw e;
++            eArchiveOpen e2(strTempFile, errStr);
++            throw e2;
+           }
+       }
+     ///////////////////////////////////////////////////////////////////////////////
Index: security/tripwire/files/patch-src-core-archive.h
===================================================================
--- security/tripwire/files/patch-src-core-archive.h	(revision 0)
+++ security/tripwire/files/patch-src-core-archive.h	(working copy)
@@ -0,0 +1,11 @@
+--- src/core/archive.h.orig	2011-11-21 17:06:56.000000000 +0100
++++ src/core/archive.h	2014-06-15 01:51:40.000000000 +0200
+@@ -85,6 +85,8 @@ TSS_EXCEPTION( eArchiveStringTooLong, eA
+ class cArchive
+ {
+ public:
++    virtual ~cArchive() {}
++
+ 	// convenience methods
+     //
+     // Specific Read functions throw(eArchive) if EOF is reached because
Index: security/tripwire/files/patch-src-core-displayencoder.cpp
===================================================================
--- security/tripwire/files/patch-src-core-displayencoder.cpp	(revision 0)
+++ security/tripwire/files/patch-src-core-displayencoder.cpp	(working copy)
@@ -0,0 +1,16 @@
+--- src/core/displayencoder.cpp.orig	2011-11-21 17:06:56.000000000 +0100
++++ src/core/displayencoder.cpp	2014-06-15 01:46:55.000000000 +0200
+@@ -825,11 +825,10 @@ bool cEncoder::OnlyOneCatagoryPerChar() 
+         {
+             bool fFailedATest = false;
+ 
+-            ach[0] = ch;
++            TSTRING ach(1, ch);
+             for( sack_type::const_iterator atE = m_encodings.begin(); atE != m_encodings.end(); atE++ )
+             {
+-		TSTRING::const_iterator first(&ach[0]), last(&ach[1]);
+-                if( (*atE)->NeedsEncoding( first, last ) )
++                if( (*atE)->NeedsEncoding( ach.begin(), ach.end() ) )
+                 {
+                     if( fFailedATest )
+                         return false; // each char can only fail one test
Index: security/tripwire/files/patch-src-core-fsservices.h
===================================================================
--- security/tripwire/files/patch-src-core-fsservices.h	(revision 0)
+++ security/tripwire/files/patch-src-core-fsservices.h	(working copy)
@@ -0,0 +1,19 @@
+--- src/core/fsservices.h.orig	2011-11-21 17:06:56.000000000 +0100
++++ src/core/fsservices.h	2014-06-15 01:54:49.000000000 +0200
+@@ -177,6 +177,7 @@ TSS_FILE_EXCEPTION( eFSServicesGeneric, 
+ class iFSServices 
+ {
+  public:
++  virtual ~iFSServices() {}
+     
+   ///////////////////////////////////////////////////////////////
+   // ENUMS
+@@ -219,7 +220,7 @@ class iFSServices 
+   // returns true if the file system is case sensitive
+   virtual TCHAR       GetPathSeperator() const = 0;
+   // returns "/" for unix and "\\" for win32
+-  virtual TCHAR*      GetStandardBackupExtension() const = 0;
++  virtual const TCHAR* GetStandardBackupExtension() const = 0;
+   // returns normal string to append to backup files for this os.
+     
+   ////////////////////////////////////////
Index: security/tripwire/files/patch-src-core-tw_signal.cpp
===================================================================
--- security/tripwire/files/patch-src-core-tw_signal.cpp	(revision 0)
+++ security/tripwire/files/patch-src-core-tw_signal.cpp	(working copy)
@@ -0,0 +1,11 @@
+--- src/core/tw_signal.cpp.orig	2011-11-21 17:06:56.000000000 +0100
++++ src/core/tw_signal.cpp	2014-06-15 01:48:28.000000000 +0200
+@@ -79,7 +79,7 @@ void util_SignalHandler( int sig )
+ #if IS_UNIX
+ void tw_psignal(int sig, const TCHAR *str)
+ {
+-    TCHAR *siglist[NSIG] = {
++    const TCHAR *siglist[NSIG] = {
+         _T("Unknown Signal"),
+         _T("Hangup"),
+         _T("Interrupt"),
Index: security/tripwire/files/patch-src-core-twlocale.h
===================================================================
--- security/tripwire/files/patch-src-core-twlocale.h	(revision 0)
+++ security/tripwire/files/patch-src-core-twlocale.h	(working copy)
@@ -0,0 +1,11 @@
+--- src/core/twlocale.h.orig	2011-11-21 17:06:56.000000000 +0100
++++ src/core/twlocale.h	2014-06-15 01:48:46.000000000 +0200
+@@ -110,7 +110,7 @@ namespace tss
+ #if USE_STD_CPP_LOCALE_WORKAROUND
+             return std::use_facet( l, pf );
+ #else
+-            return std::use_facet< FacetT >( l ); pf;  // This is C++ standard
++            return std::use_facet< FacetT >( l ); (void)pf;  // This is C++ standard
+ #endif
+     }
+ }
Index: security/tripwire/files/patch-src-core-unixfsservices.cpp
===================================================================
--- security/tripwire/files/patch-src-core-unixfsservices.cpp	(revision 0)
+++ security/tripwire/files/patch-src-core-unixfsservices.cpp	(working copy)
@@ -0,0 +1,11 @@
+--- src/core/unixfsservices.cpp.orig	2011-11-21 17:06:56.000000000 +0100
++++ src/core/unixfsservices.cpp	2014-06-15 01:44:45.000000000 +0200
+@@ -792,7 +792,7 @@ bool cUnixFSServices::FullPath( TSTRING&
+ // Returns normal string to append to backup files for this os.
+ // (e.g. "~" for unix and ".bak" for winos)
+ ///////////////////////////////////////////////////////////////////////////////
+-TCHAR* cUnixFSServices::GetStandardBackupExtension() const
++const TCHAR* cUnixFSServices::GetStandardBackupExtension() const
+ {
+     return _T(".bak");
+ }
Index: security/tripwire/files/patch-src-core-unixfsservices.h
===================================================================
--- security/tripwire/files/patch-src-core-unixfsservices.h	(revision 0)
+++ security/tripwire/files/patch-src-core-unixfsservices.h	(working copy)
@@ -0,0 +1,11 @@
+--- src/core/unixfsservices.h.orig	2011-11-21 17:06:56.000000000 +0100
++++ src/core/unixfsservices.h	2014-06-15 01:44:45.000000000 +0200
+@@ -99,7 +99,7 @@ class cUnixFSServices : public iFSServic
+   ////////////////////////////////////////
+   virtual bool    IsCaseSensitive() const;
+   // returns true if the file system is case sensitive
+-  virtual TCHAR*      GetStandardBackupExtension() const;
++  virtual const TCHAR* GetStandardBackupExtension() const;
+   // returns normal string to append to backup files for this os.
+   // (e.g. "~" for unix and ".bak" for winos)
+   virtual TCHAR       GetPathSeperator() const;
Index: security/tripwire/files/patch-src-cryptlib-algebra.h
===================================================================
--- security/tripwire/files/patch-src-cryptlib-algebra.h	(revision 0)
+++ security/tripwire/files/patch-src-cryptlib-algebra.h	(working copy)
@@ -0,0 +1,11 @@
+--- src/cryptlib/algebra.h.orig	2011-11-21 17:06:56.000000000 +0100
++++ src/cryptlib/algebra.h	2014-06-15 01:42:42.000000000 +0200
+@@ -273,7 +273,7 @@ template <class T> T AbstractEuclideanDo
+ 	Element g[3]={b, a};
+ 	unsigned int i0=0, i1=1, i2=2;
+ 
+-	while (!Equal(g[i1], this->Zero()))
++	while (!this->Equal(g[i1], this->Zero()))
+ 	{
+ 		g[i2] = Mod(g[i0], g[i1]);
+ 		unsigned int t = i0; i0 = i1; i1 = i2; i2 = t;
Index: security/tripwire/files/patch-src-cryptlib-cryptlib.cpp
===================================================================
--- security/tripwire/files/patch-src-cryptlib-cryptlib.cpp	(revision 0)
+++ security/tripwire/files/patch-src-cryptlib-cryptlib.cpp	(working copy)
@@ -0,0 +1,13 @@
+--- src/cryptlib/cryptlib.cpp.orig	2011-11-21 17:06:56.000000000 +0100
++++ src/cryptlib/cryptlib.cpp	2014-06-15 01:42:35.000000000 +0200
+@@ -43,8 +43,8 @@ void StreamCipher::ProcessString(byte *o
+ 
+ void StreamCipher::ProcessString(byte *inoutString, unsigned int length)
+ {
+-	while(length--)
+-		*inoutString++ = ProcessByte(*inoutString);
++	for(;length--; inoutString++)
++		*inoutString = ProcessByte(*inoutString);
+ }
+ 
+ bool MessageAuthenticationCode::Verify(const byte *macIn)
Index: security/tripwire/files/patch-src-fco-fcospec.cpp
===================================================================
--- security/tripwire/files/patch-src-fco-fcospec.cpp	(revision 0)
+++ security/tripwire/files/patch-src-fco-fcospec.cpp	(working copy)
@@ -0,0 +1,10 @@
+--- src/fco/fcospec.cpp.orig	2011-11-21 17:06:56.000000000 +0100
++++ src/fco/fcospec.cpp	2014-06-15 01:50:46.000000000 +0200
+@@ -51,6 +51,7 @@
+ class cDefaultSpecMask : public iFCOSpecMask
+ {
+ public:
++	cDefaultSpecMask() {}
+ 	virtual const TSTRING& GetName() const;
+ 	virtual bool Accept(const iFCO* pFCO) const;
+ private:
Index: security/tripwire/files/patch-src-fco-parsergenreutil.h
===================================================================
--- security/tripwire/files/patch-src-fco-parsergenreutil.h	(revision 0)
+++ security/tripwire/files/patch-src-fco-parsergenreutil.h	(working copy)
@@ -0,0 +1,10 @@
+--- src/fco/parsergenreutil.h.orig	2011-11-21 17:06:56.000000000 +0100
++++ src/fco/parsergenreutil.h	2014-06-15 01:55:46.000000000 +0200
+@@ -53,6 +53,7 @@ class cFCOName;
+ class iParserGenreUtil
+ {
+ public:
++    virtual ~iParserGenreUtil() {}
+     virtual bool MapStringToProperty( const TSTRING& str, int& propIndex ) const = 0;
+         // maps the given string  to an index into a property vector for the genre
+     virtual void AddSubTypeProps( cFCOPropVector& v ) const = 0;
Index: security/tripwire/files/patch-src-tripwire-mailmessage.cpp
===================================================================
--- security/tripwire/files/patch-src-tripwire-mailmessage.cpp	(revision 0)
+++ security/tripwire/files/patch-src-tripwire-mailmessage.cpp	(working copy)
@@ -0,0 +1,11 @@
+--- src/tripwire/mailmessage.cpp.orig	2011-11-21 17:06:56.000000000 +0100
++++ src/tripwire/mailmessage.cpp	2014-06-15 01:56:20.000000000 +0200
+@@ -258,7 +258,7 @@ bool cMailMessageUtil::ReadDate( TSTRING
+ }
+ 
+ 
+-static char* util_Get_IANA_CharSet()
++static const char* util_Get_IANA_CharSet()
+ {
+     const char* pCP = setlocale( LC_CTYPE, NULL );
+ 

--Apple-Mail=_CC8CCFCF-BFF7-41F5-B574-F1FABF1D86C2
Content-Transfer-Encoding: 7bit
Content-Type: text/plain;
	charset=us-ascii



--Apple-Mail=_CC8CCFCF-BFF7-41F5-B574-F1FABF1D86C2--

--Apple-Mail=_E85F31BE-685C-439C-8798-84D376960C2E
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment;
	filename=signature.asc
Content-Type: application/pgp-signature;
	name=signature.asc
Content-Description: Message signed with OpenPGP using GPGMail

-----BEGIN PGP SIGNATURE-----
Version: GnuPG/MacGPG2 v2.0.22 (Darwin)

iEYEARECAAYFAlOc5zQACgkQsF6jCi4glqNRUACfc/MsFfbBFdK2eZj+xtdOJ49R
QksAoImZmhoXbwug7PappXDB224sXK3N
=5tR5
-----END PGP SIGNATURE-----

--Apple-Mail=_E85F31BE-685C-439C-8798-84D376960C2E--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?7B4D49CC-FBB0-4930-8045-23F69BCC2EB3>