Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 20 Oct 2013 18:57:18 +0000 (UTC)
From:      Raphael Kubo da Costa <rakuco@FreeBSD.org>
To:        ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org
Subject:   svn commit: r331054 - in head/print/lyx: . files
Message-ID:  <201310201857.r9KIvIvx002541@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: rakuco
Date: Sun Oct 20 18:57:18 2013
New Revision: 331054
URL: http://svnweb.freebsd.org/changeset/ports/331054

Log:
  Fix the build with libc++, and a lot more.
  
  - Support staging.
  - Remove outdated pthread-related variables in Makefile.
  - Sort plist.
  - Sort the USES lines.
  - Switch away from the deprecated USE_GNOME=desktopfileutils.
  - Use the new library format for libraries in LIB_DEPENDS.
  - Use the new syntax for configuration options.

Added:
  head/print/lyx/files/patch-config.h.in   (contents, props changed)
  head/print/lyx/files/patch-src__frontends__qt4__InGuiThread.h   (contents, props changed)
  head/print/lyx/files/patch-src__support__debug.h   (contents, props changed)
  head/print/lyx/files/patch-src__support__strfwd.h   (contents, props changed)
Modified:
  head/print/lyx/Makefile
  head/print/lyx/pkg-plist

Modified: head/print/lyx/Makefile
==============================================================================
--- head/print/lyx/Makefile	Sun Oct 20 18:53:04 2013	(r331053)
+++ head/print/lyx/Makefile	Sun Oct 20 18:57:18 2013	(r331054)
@@ -16,70 +16,45 @@ COMMENT=	Document processor interfaced w
 
 LICENSE=	GPLv2
 
-LIB_DEPENDS=	boost_regex:${PORTSDIR}/devel/boost-libs \
-		mythes-1.2.0:${PORTSDIR}/textproc/mythes
+LIB_DEPENDS=	libboost_regex.so:${PORTSDIR}/devel/boost-libs \
+		libmythes-1.2.so:${PORTSDIR}/textproc/mythes
 
 CONFLICTS=	lyx-1.[0-9]*
 MAJOR_VERSION=	2.0
 MINOR_VERSION=	6
 
-USES=		gmake iconv pkgconfig perl5
-USE_XZ=		yes
-USE_QT4=	corelib gui moc_build uic_build rcc_build
-USE_GNOME=	desktopfileutils
+USES=		desktop-file-utils gmake iconv pkgconfig perl5
 USE_PYTHON=	-2.7
+USE_QT4=	corelib gui moc_build uic_build rcc_build
+USE_XZ=		yes
 GNU_CONFIGURE=	yes
-CPPFLAGS+=	${PTHREAD_CFLAGS}
-LDFLAGS+=	${PTHREAD_LIBS}
 CONFIGURE_ARGS=	--without-included-boost \
 		--without-included-mythes \
 		${ICONV_CONFIGURE_ARG} \
 		--with-extra-prefix=${LOCALBASE}
 
-MAN1=		lyx.1 lyxclient.1 tex2lyx.1
-
 OPTIONS_DEFINE=		ASPELL ENCHANT HUNSPELL NLS
 OPTIONS_DEFAULT=	HUNSPELL NLS
+OPTIONS_SUB=		yes
 ENCHANT_DESC=		Spell checking using Enchant
 
-NO_STAGE=	yes
-.include <bsd.port.options.mk>
+ASPELL_CONFIGURE_OFF=	--without-aspell
+ASPELL_LIB_DEPENDS=	libaspell.so:${PORTSDIR}/textproc/aspell
+ENCHANT_CONFIGURE_OFF=	--without-enchant
+ENCHANT_LIB_DEPENDS=	libenchant.so:${PORTSDIR}/textproc/enchant
+HUNSPELL_CONFIGURE_OFF=	--without-hunspell
+HUNSPELL_LIB_DEPENDS=	libhunspell-1.3.so:${PORTSDIR}/textproc/hunspell
+NLS_CONFIGURE_OFF=	--disable-nls
+NLS_USES=		gettext
 
-.if ${PORT_OPTIONS:MASPELL}
-LIB_DEPENDS+=	aspell.16:${PORTSDIR}/textproc/aspell
-.else
-CONFIGURE_ARGS+=	--without-aspell
-.endif
-
-.if ${PORT_OPTIONS:MENCHANT}
-LIB_DEPENDS+=	enchant.1:${PORTSDIR}/textproc/enchant
-.else
-CONFIGURE_ARGS+=	--without-enchant
-.endif
-
-.if ${PORT_OPTIONS:MHUNSPELL}
-LIB_DEPENDS+=	hunspell-1.3.0:${PORTSDIR}/textproc/hunspell
-.else
-CONFIGURE_ARGS+=	--without-hunspell
-.endif
-
-.if empty(PORT_OPTIONS:MNLS)
-CONFIGURE_ARGS+=	--disable-nls
-PLIST_SUB+=	NLS="@comment "
-.else
-USES+=		gettext
-PLIST_SUB+=	NLS=""
-.endif
+.include <bsd.port.options.mk>
 
 post-install:
 # Manually install the 48x48 icon and .desktop file.
 # Will not be needed in the 2.1 series, see LyX tickets 2820 and 7919.
-	${MKDIR} ${PREFIX}/share/icons/hicolor/48x48/apps
-	${MKDIR} ${PREFIX}/share/applications
-	${INSTALL_DATA} ${WRKSRC}/lib/images/lyx.png ${PREFIX}/share/icons/hicolor/48x48/apps
-	${INSTALL_DATA} ${FILESDIR}/lyx.desktop ${PREFIX}/share/applications
-	${LOCALBASE}/bin/update-desktop-database --quiet
-
-	@${CAT} ${PKGMESSAGE}
+	${MKDIR} ${STAGEDIR}${PREFIX}/share/icons/hicolor/48x48/apps
+	${MKDIR} ${STAGEDIR}${PREFIX}/share/applications
+	${INSTALL_DATA} ${WRKSRC}/lib/images/lyx.png ${STAGEDIR}${PREFIX}/share/icons/hicolor/48x48/apps
+	${INSTALL_DATA} ${FILESDIR}/lyx.desktop ${STAGEDIR}${PREFIX}/share/applications
 
 .include <bsd.port.mk>

Added: head/print/lyx/files/patch-config.h.in
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/print/lyx/files/patch-config.h.in	Sun Oct 20 18:57:18 2013	(r331054)
@@ -0,0 +1,50 @@
+The first change is required to use the C++ tr1 headers only with libstdc++, as
+they are not in C++11.
+
+The second change is required to build with libc++, and is commit
+ca7214b410d80c2108dfb43b89cf3c8fc5073882 upstream:
+
+commit ca7214b410d80c2108dfb43b89cf3c8fc5073882
+Author: Raphael Kubo da Costa <rakuco@FreeBSD.org>
+Date:   Thu Oct 17 23:39:36 2013 +0300
+
+    Remove FreeBSD checks when defining USE_WCHAR_T.
+
+    The problems the comments in the build systems refer to seem to have been
+    fixed for years. [1] says the checks in libstdc++ have been improved, and
+    all supported FreeBSD versions enable wchar_t support unconditionally in
+    libstdc++. Additionally, this needlessly impacts FreeBSD when libc++ is used
+    instead of libstdc++.
+
+    [1] http://gcc.gnu.org/onlinedocs/libstdc++/faq.html#faq.freebsd_wchar
+--- config.h.in.orig	2013-10-20 20:37:35.000000000 +0300
++++ config.h.in	2013-10-20 20:38:41.000000000 +0300
+@@ -633,7 +633,8 @@
+ 
+ // TR1 regex not supported in GCC <= 4.5
+ #ifndef LYX_USE_TR1
+-#  if __GNUC__ == 4 
++#  include <ciso646>
++#  if __GNUC__ == 4 && !defined(_LIBCPP_VERSION)
+ #    define LYX_USE_TR1
+ #  endif
+ #endif
+@@ -645,17 +646,7 @@
+ #  define BOOST_POSIX_PATH 1
+ #endif
+ 
+-/*
+- * the FreeBSD libc uses UCS4, but libstdc++ has no proper wchar_t
+- * support compiled in:
+- * http://gcc.gnu.org/onlinedocs/libstdc++/faq/index.html#3_9
+- * And we are not interested at all what libc
+- * does: What we need is a 32bit wide wchar_t, and a libstdc++ that
+- * has the needed wchar_t support and uses UCS4. Whether it
+- * implements this with the help of libc, or whether it has own code
+- * does not matter for us, because we do not use libc directly (Georg)
+-*/
+-#if defined(HAVE_WCHAR_T) && SIZEOF_WCHAR_T == 4 && !defined(__FreeBSD__) && !defined(__FreeBSD_kernel__)
++#if defined(HAVE_WCHAR_T) && SIZEOF_WCHAR_T == 4
+ #  define USE_WCHAR_T
+ #endif
+ 

Added: head/print/lyx/files/patch-src__frontends__qt4__InGuiThread.h
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/print/lyx/files/patch-src__frontends__qt4__InGuiThread.h	Sun Oct 20 18:57:18 2013	(r331054)
@@ -0,0 +1,97 @@
+From 2b0a7a5e01c71bd0c809844e0c6779f43870077b Mon Sep 17 00:00:00 2001
+From: Vincent van Ravesteijn <vfr@lyx.org>
+Date: Mon, 8 Oct 2012 21:28:55 +0200
+Subject: [PATCH] Disambiguate std::bind, boost::bind, std::ref, boost::ref
+
+This fixes compilation with MSVC2012.
+---
+ src/frontends/qt4/InGuiThread.h | 22 ++++++++++++----------
+ 1 file changed, 12 insertions(+), 10 deletions(-)
+
+diff --git a/src/frontends/qt4/InGuiThread.h b/src/frontends/qt4/InGuiThread.h
+index ea5d64b..0609cb0 100644
+--- src/frontends/qt4/InGuiThread.h
++++ src/frontends/qt4/InGuiThread.h
+@@ -69,25 +69,25 @@ public:
+ 	template<class F, class P1>
+ 	R call(F f, P1& p1)
+ 	{
+-		return call(bind(f, ref(p1)));
++		return call(lyx::bind(f, lyx::ref(p1)));
+ 	}
+ 
+ 	template<class F, class P1, class P2>
+ 	R call(F f, P1& p1, P2& p2)
+ 	{
+-		return call(bind(f, ref(p1), ref(p2)));
++		return call(lyx::bind(f, lyx::ref(p1), lyx::ref(p2)));
+ 	}
+ 
+ 	template<class F, class P1, class P2, class P3>
+ 	R call(F f, P1& p1, P2& p2, P3& p3)
+ 	{
+-		return call(bind(f, ref(p1), ref(p2), ref(p3)));
++		return call(lyx::bind(f, lyx::ref(p1), lyx::ref(p2), lyx::ref(p3)));
+ 	}
+ 
+ 	template<class F, class P1, class P2, class P3, class P4>
+ 	R call(F f, P1& p1, P2& p2, P3& p3, P4& p4)
+ 	{
+-		return call(bind(f, ref(p1), ref(p2), ref(p3), ref(p4)));
++		return call(lyx::bind(f, lyx::ref(p1), lyx::ref(p2), lyx::ref(p3), lyx::ref(p4)));
+ 	}
+ 
+ 	/*
+@@ -97,7 +97,8 @@ public:
+ 	template<class F, class P1, class P2, class P3, class P4, class P5, class P6, class P7, class P8>
+ 	R call(F f, P1& p1, P2& p2, P3& p3, P4& p4, P5& p5, P6& p6, P7& p7, P8& p8)
+ 	{
+-		return call(bind(f, ref(p1), ref(p2), ref(p3), ref(p4), ref(p5), ref(p6), ref(p7), ref(p8)));
++		return call(lyx::bind(f, lyx::ref(p1), lyx::ref(p2), lyx::ref(p3), lyx::ref(p4), 
++			lyx::ref(p5), lyx::ref(p6), lyx::ref(p7), lyx::ref(p8)));
+ 	}
+ 
+ private:
+@@ -131,25 +132,25 @@ public:
+ 	template<class F, class P1>
+ 	void call(F f, P1& p1)
+ 	{
+-		call(bind(f, ref(p1)));
++		call(lyx::bind(f, lyx::ref(p1)));
+ 	}
+ 
+ 	template<class F, class P1, class P2>
+ 	void call(F f, P1& p1, P2& p2)
+ 	{
+-		call(bind(f, ref(p1), ref(p2)));
++		call(lyx::bind(f, lyx::ref(p1), lyx::ref(p2)));
+ 	}
+ 
+ 	template<class F, class P1, class P2, class P3>
+ 	void call(F f, P1& p1, P2& p2, P3& p3)
+ 	{
+-		call(bind(f, ref(p1), ref(p2), ref(p3)));
++		call(lyx::bind(f, lyx::ref(p1), lyx::ref(p2), lyx::ref(p3)));
+ 	}
+ 
+ 	template<class F, class P1, class P2, class P3, class P4>
+ 	void call(F f, P1& p1, P2& p2, P3& p3, P4& p4)
+ 	{
+-		call(bind(f, ref(p1), ref(p2), ref(p3), ref(p4)));
++		call(lyx::bind(f, lyx::ref(p1), lyx::ref(p2), lyx::ref(p3), lyx::ref(p4)));
+ 	}
+ 
+ 	/*
+@@ -159,7 +160,8 @@ public:
+ 	template<class F, class P1, class P2, class P3, class P4, class P5, class P6, class P7, class P8>
+ 	void call(F f, P1& p1, P2& p2, P3& p3, P4& p4, P5& p5, P6& p6, P7& p7, P8& p8)
+ 	{
+-		call(bind(f, ref(p1), ref(p2), ref(p3), ref(p4), ref(p5), ref(p6), ref(p7), ref(p8)));
++		call(bind(f, lyx::ref(p1), lyx::ref(p2), lyx::ref(p3), lyx::ref(p4), lyx::ref(p5),
++			lyx::ref(p6), lyx::ref(p7), lyx::ref(p8)));
+ 	}
+ 
+ private:
+-- 
+1.8.4.1
+

Added: head/print/lyx/files/patch-src__support__debug.h
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/print/lyx/files/patch-src__support__debug.h	Sun Oct 20 18:57:18 2013	(r331054)
@@ -0,0 +1,21 @@
+libc++/C++11 support, obtained from NetBSD.
+http://mail-index.netbsd.org/pkgsrc-changes/2013/05/09/msg088857.html
+--- src/support/debug.h
++++ src/support/debug.h
+@@ -17,14 +17,8 @@
+
+ #include "support/strfwd.h"
+
+-namespace std {
+-
+-class ios_base;
+-
+-template<typename CharT, typename Traits> class basic_streambuf;
+-typedef basic_streambuf<char, char_traits<char> > streambuf;
+-
+-}
++#include <ios>
++#include <streambuf>
+
+
+ namespace lyx {

Added: head/print/lyx/files/patch-src__support__strfwd.h
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/print/lyx/files/patch-src__support__strfwd.h	Sun Oct 20 18:57:18 2013	(r331054)
@@ -0,0 +1,33 @@
+libc++/C++11 support, obtained from NetBSD.
+http://mail-index.netbsd.org/pkgsrc-changes/2012/11/23/msg081094.html
+--- src/support/strfwd.h
++++ src/support/strfwd.h
+@@ -29,26 +29,8 @@ namespace lyx { typedef boost::uint32_t char_type; }
+ #endif
+ 
+ 
+-namespace std {
+-
+-template<typename Alloc> class allocator;
+-
+-template<typename Char> struct char_traits;
+-template<> struct char_traits<char>;
+-#ifdef USE_WCHAR_T
+-template<> struct char_traits<wchar_t>;
+-#endif
+-
+-template<typename Char, typename Traits, typename Alloc> class basic_string;
+-typedef basic_string<char, char_traits<char>, allocator<char> > string;
+-
+-template<class Char, class Traits> class basic_istream;
+-template<class Char, class Traits> class basic_ostream;
+-
+-typedef basic_istream<char, char_traits<char> > istream;
+-typedef basic_ostream<char, char_traits<char> > ostream;
+-
+-} // namepace std
++#include <iostream>
++#include <string>
+ 
+ 
+ namespace lyx {

Modified: head/print/lyx/pkg-plist
==============================================================================
--- head/print/lyx/pkg-plist	Sun Oct 20 18:53:04 2013	(r331053)
+++ head/print/lyx/pkg-plist	Sun Oct 20 18:57:18 2013	(r331054)
@@ -1,6 +1,9 @@
 bin/lyx
 bin/lyxclient
 bin/tex2lyx
+man/man1/lyx.1.gz
+man/man1/lyxclient.1.gz
+man/man1/tex2lyx.1.gz
 %%NLS%%share/locale/ar/LC_MESSAGES/lyx.mo
 %%NLS%%share/locale/ca/LC_MESSAGES/lyx.mo
 %%NLS%%share/locale/cs/LC_MESSAGES/lyx.mo
@@ -1829,10 +1832,10 @@ share/icons/hicolor/48x48/apps/lyx.png
 @dirrm %%DATADIR%%/bind/de
 @dirrm %%DATADIR%%/bind
 @dirrm %%DATADIR%%
+%%NLS%%@dirrmtry share/locale/ia/LC_MESSAGES
+%%NLS%%@dirrmtry share/locale/ia
 @dirrmtry share/icons/hicolor/48x48/apps
 @dirrmtry share/icons/hicolor/48x48
 @dirrmtry share/icons/hicolor
 @dirrmtry share/icons
 @dirrmtry share/applications
-%%NLS%%@dirrmtry share/locale/ia/LC_MESSAGES/
-%%NLS%%@dirrmtry share/locale/ia



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201310201857.r9KIvIvx002541>