Subject: pkg/25695: pkgsrc/editors/lyx-qt
To: None <gnats-bugs@gnats.NetBSD.org>
From: None <john@johnrshannon.com>
List: pkgsrc-bugs
Date: 05/24/2004 11:01:29
>Number:         25695
>Category:       pkg
>Synopsis:       pkgsrc/editors/lyx-qt fails to compile with gcc-3.4.0
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    pkg-manager
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Mon May 24 17:02:00 UTC 2004
>Closed-Date:
>Last-Modified:
>Originator:     John R. Shannon
>Release:        NetBSD 2.0_BETA
>Organization:
	johnrshannon.com
>Environment:
System: NetBSD colleen.internal.johnrshannon.com 2.0_BETA NetBSD 2.0_BETA (KERNEL) #0: Mon May 24 05:31:10 MDT 2004 root@colleen.internal.johnrshannon.com:/usr/obj/usr/src/sys/arch/i386/compile/KERNEL i386
Architecture: i386
Machine: i386
gcc (GCC) 3.4.0
>Description:
	Several compilation errors occur. The patches below fix the problems.
>How-To-Repeat:
	Build with wip/gcc-3.4
>Fix:
	Apply the following patches:


$NetBSD$

--- ./src/BoostFormat.h.orig	2002-11-25 12:44:44.000000000 -0700
+++ ./src/BoostFormat.h
@@ -15,7 +15,7 @@ namespace boost
 {
 
 extern
-template basic_format<char>;
+template class basic_format<char>;
 
 extern template
 std::ostream &


$NetBSD$

--- ./src/frontends/controllers/ControlDialog.tmpl.orig	2004-05-24 07:01:53.000000000 -0600
+++ ./src/frontends/controllers/ControlDialog.tmpl
@@ -4,7 +4,7 @@
  * This file is part of LyX, the document processor.
  * Licence details can be found in the file COPYING.
  *
- * \author Angus Leeming 
+ * \author Angus Leeming
  *
  * Full author contact details are available in file CREDITS
  *
@@ -14,7 +14,7 @@
 
 #include "ControlDialog.h"
 
-#include "ButtonControllerBase.h"
+#include "ButtonController.h"
 #include "ViewBase.h"
 
 
@@ -27,54 +27,56 @@ ControlDialog<Base>::ControlDialog(LyXVi
 template <class Base>
 void ControlDialog<Base>::show()
 {
-	if (isBufferDependent() && !bufferIsAvailable())
+	if (this->isBufferDependent() && !this->bufferIsAvailable())
 		return;
 
-	connect();
+	this->connect();
 
 	if (!dialog_built_) {
-		view().build();
+		this->view().build();
 		dialog_built_ = true;
 	}
 
 	setParams();
-	if (emergency_exit_) {
+	if (this->emergency_exit_) {
 		hide();
 		return;
 	}
 
-	bc().readOnly(bufferIsReadonly());
-	view().show();
+	this->bc().readOnly(this->bufferIsReadonly());
+	this->view().show();
 
 	// The widgets may not be valid, so refresh the button controller
-	bc().refresh();
+	this->bc().refresh();
 }
 
+
 template <class Base>
 void ControlDialog<Base>::update()
 {
-	if (isBufferDependent() && !bufferIsAvailable())
+	if (this->isBufferDependent() && !this->bufferIsAvailable())
 		return;
 
 	setParams();
-	if (emergency_exit_) {
+	if (this->emergency_exit_) {
 		hide();
 		return;
 	}
 
-	bc().readOnly(bufferIsReadonly());
-	view().update();
+	this->bc().readOnly(this->bufferIsReadonly());
+	this->view().update();
 
 	// The widgets may not be valid, so refresh the button controller
-	bc().refresh();
+	this->bc().refresh();
 }
 
+
 template <class Base>
 void ControlDialog<Base>::hide()
 {
-	emergency_exit_ = false;
+	this->emergency_exit_ = false;
 	clearParams();
 
-	disconnect();
-	view().hide();
+	this->disconnect();
+	this->view().hide();
 }



$NetBSD$

--- ./src/frontends/xforms/FormBase.h.orig	2003-02-01 17:48:38.000000000 -0700
+++ ./src/frontends/xforms/FormBase.h
@@ -188,14 +188,14 @@ FormCB<Controller, Base>::FormCB(string 
 template <class Controller, class Base>
 Controller & FormCB<Controller, Base>::controller()
 {
-	return static_cast<Controller &>(getController());
+	return static_cast<Controller &>(this->getController());
 }
 
 
 template <class Controller, class Base>
 Controller const & FormCB<Controller, Base>::controller() const
 {
-	return static_cast<Controller const &>(getController());
+	return static_cast<Controller const &>(this->getController());
 }
 
 
$NetBSD$

--- ./src/frontends/qt2/Qt2Base.h.orig	2003-02-01 17:48:38.000000000 -0700
+++ ./src/frontends/qt2/Qt2Base.h
@@ -174,14 +174,14 @@ Qt2CB<Controller, Base>::Qt2CB(QString c
 template <class Controller, class Base>
 Controller & Qt2CB<Controller, Base>::controller()
 {
-	return static_cast<Controller &>(getController());
+	return static_cast<Controller &>(this->getController());
 }
 
 
 template <class Controller, class Base>
 Controller const & Qt2CB<Controller, Base>::controller() const
 {
-	return static_cast<Controller const &>(getController());
+	return static_cast<Controller const &>(this->getController());
 }
 
 
$NetBSD$

--- ./boost/boost/format/feed_args.hpp.orig	2002-11-20 10:20:54.000000000 -0700
+++ ./boost/boost/format/feed_args.hpp
@@ -34,7 +34,7 @@ namespace  {
 
   template<class Tr, class Ch> inline
   void empty_buf(BOOST_IO_STD basic_ostringstream<Ch,Tr> & os) {
-    static const std::basic_string<Ch, Tr> emptyStr; // avoids 2 cases ( "" and  L"" )
+    const std::basic_string<Ch, Tr> emptyStr; // avoids 2 cases ( "" and  L"" )
     os.str(emptyStr);
   }
 

$NetBSD$

--- ./boost/boost/format/format_implementation.hpp.orig	2002-11-21 11:33:01.000000000 -0700
+++ ./boost/boost/format/format_implementation.hpp
@@ -151,7 +151,7 @@ basic_format<Ch,Tr>& basic_format<Ch,Tr>
 {
     if(argN<1 || argN > num_args_ || bound_.size()==0 || !bound_[argN-1] )
       {
-	if( exceptions() & out_of_range_bit )
+	if( exceptions() & io::out_of_range_bit )
 	  boost::throw_exception(io::out_of_range()); // arg not in range.
 	else return *this;
       }


$NetBSD$

--- ./boost/boost/config/compiler/gcc.hpp.orig	2004-05-24 06:14:18.000000000 -0600
+++ ./boost/boost/config/compiler/gcc.hpp
@@ -1,7 +1,13 @@
-//  (C) Copyright Boost.org 2001. Permission to copy, use, modify, sell and
-//  distribute this software is granted provided this copyright notice appears
-//  in all copies. This software is provided "as is" without express or implied
-//  warranty, and with no claim as to its suitability for any purpose.
+//  (C) Copyright John Maddock 2001 - 2003. 
+//  (C) Copyright Darin Adler 2001 - 2002. 
+//  (C) Copyright Jens Maurer 2001 - 2002. 
+//  (C) Copyright Beman Dawes 2001 - 2003. 
+//  (C) Copyright Douglas Gregor 2002. 
+//  (C) Copyright David Abrahams 2002 - 2003. 
+//  (C) Copyright Synge Todo 2003. 
+//  Use, modification and distribution are subject to the 
+//  Boost Software License, Version 1.0. (See accompanying file 
+//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
 //  See http://www.boost.org for most recent version.
 
@@ -23,24 +29,53 @@
 #     endif
 #   endif
 
+#   if __GNUC__ == 2 && __GNUC_MINOR__ < 96
+#     define BOOST_NO_SFINAE
+#   endif
+
 #   if __GNUC__ == 2 && __GNUC_MINOR__ <= 97
 #     define BOOST_NO_MEMBER_TEMPLATE_FRIENDS
 #     define BOOST_NO_OPERATORS_IN_NAMESPACE
 #   endif
 
+#   if __GNUC__ < 3
+#      define BOOST_NO_USING_DECLARATION_OVERLOADS_FROM_TYPENAME_BASE
+#      define BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL
+#   endif
+
+#
+#
+#
+
 //
-// Threading support:
-// Turn this on unconditionally here, it will get turned off again later
-// if no threading API is detected.
+// Bug specific to gcc 3.1 and 3.2:
 //
-#define BOOST_HAS_THREADS
+#if (__GNUC__ == 3) && ((__GNUC_MINOR__ == 1) || (__GNUC_MINOR__ == 2))
+#  define BOOST_NO_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS
+#endif
+
+//
+// Threading support: Turn this on unconditionally here (except for
+// those platforms where we can know for sure). It will get turned off again
+// later if no threading API is detected.
+//
+#if !defined(__MINGW32__) && !defined(linux) && !defined(__linux) && !defined(__linux__)
+# define BOOST_HAS_THREADS
+#endif 
 
 //
 // gcc has "long long"
 //
 #define BOOST_HAS_LONG_LONG
 
-#define BOOST_COMPILER "GNU C++ version " BOOST_STRINGIZE(__GNUC__) "." BOOST_STRINGIZE(__GNUC_MINOR__)
+//
+// gcc implements the named return value optimization since version 3.1
+//
+#if __GNUC__ > 3 || ( __GNUC__ == 3 && __GNUC_MINOR__ >= 1 )
+#define BOOST_HAS_NRVO
+#endif
+
+#define BOOST_COMPILER "GNU C++ version " __VERSION__
 
 //
 // versions check:
@@ -49,11 +84,13 @@
 #  error "Compiler not configured - please reconfigure"
 #endif
 //
-// last known and checked version is 3.2:
-#if (__GNUC__ > 3) || ((__GNUC__ == 3) && (__GNUC_MINOR__ > 3))
+// last known and checked version is 3.4:
+#if (__GNUC__ > 3) || ((__GNUC__ == 3) && (__GNUC_MINOR__ > 4))
 #  if defined(BOOST_ASSERT_CONFIG)
 #     error "Unknown compiler version - please run the configure tests and report the results"
 #  else
 #     warning "Unknown compiler version - please run the configure tests and report the results"
 #  endif
 #endif
+
+
>Release-Note:
>Audit-Trail:
>Unformatted: