some fixes to make it build on Factory
OBS-URL: https://build.opensuse.org/package/show/Publishing/lyx?expand=0&rev=102
This commit is contained in:
parent
6567c53762
commit
ac16df7e5e
11
Automake-15.patch
Normal file
11
Automake-15.patch
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
--- lyx-2.1.3/autogen.sh.orig 2015-02-07 16:25:07.000000000 +0100
|
||||||
|
+++ lyx-2.1.3/autogen.sh 2015-06-21 23:37:56.961228499 +0200
|
||||||
|
@@ -16,7 +16,7 @@
|
||||||
|
}
|
||||||
|
|
||||||
|
case $automake_version in
|
||||||
|
- *' '1.[8-9]*|*' '1.1[01234]*)
|
||||||
|
+ *' '1.[8-9]*|*' '1.1[012345]*)
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
|
195
Fix-build-with-GNU-libstdc++-C++11-ABI.patch
Normal file
195
Fix-build-with-GNU-libstdc++-C++11-ABI.patch
Normal file
@ -0,0 +1,195 @@
|
|||||||
|
diff --git a/config/lyxinclude.m4 b/config/lyxinclude.m4
|
||||||
|
index 61ea48d..a0094c1 100644
|
||||||
|
--- a/config/lyxinclude.m4
|
||||||
|
+++ b/config/lyxinclude.m4
|
||||||
|
@@ -120,37 +120,65 @@ done
|
||||||
|
])dnl
|
||||||
|
|
||||||
|
|
||||||
|
-AC_DEFUN([LYX_PROG_CXX_WORKS],
|
||||||
|
-[rm -f conftest.C
|
||||||
|
-cat >conftest.C <<EOF
|
||||||
|
-class foo {
|
||||||
|
- // we require the mutable keyword
|
||||||
|
- mutable int bar;
|
||||||
|
- };
|
||||||
|
- // we require namespace support
|
||||||
|
- namespace baz {
|
||||||
|
- int bar;
|
||||||
|
- }
|
||||||
|
- int main() {
|
||||||
|
- return(0);
|
||||||
|
- }
|
||||||
|
-EOF
|
||||||
|
-$CXX -c $CXXFLAGS $CPPFLAGS conftest.C >&5 || CXX=
|
||||||
|
-rm -f conftest.C conftest.o conftest.obj || true
|
||||||
|
+dnl Usage: LYX_PROG_CLANG: set lyx_cv_prog_clang to yes if the compiler is clang.
|
||||||
|
+AC_DEFUN([LYX_PROG_CLANG],
|
||||||
|
+[AC_CACHE_CHECK([whether the compiler is clang],
|
||||||
|
+ [lyx_cv_prog_clang],
|
||||||
|
+[AC_TRY_COMPILE([], [
|
||||||
|
+#ifndef __clang__
|
||||||
|
+ this is not clang
|
||||||
|
+#endif
|
||||||
|
+],
|
||||||
|
+[lyx_cv_prog_clang=yes ; CLANG=yes], [lyx_cv_prog_clang=no ; CLANG=no])])
|
||||||
|
])
|
||||||
|
|
||||||
|
|
||||||
|
-AC_DEFUN([LYX_PROG_CXX],
|
||||||
|
-[AC_MSG_CHECKING([for a good enough C++ compiler])
|
||||||
|
-LYX_SEARCH_PROG(CXX, $CXX $CCC g++ gcc c++ CC cxx xlC cc++, [LYX_PROG_CXX_WORKS])
|
||||||
|
+dnl Usage: LYX_LIB_STDCXX: set lyx_cv_lib_stdcxx to yes if the STL library is libstdc++.
|
||||||
|
+AC_DEFUN([LYX_LIB_STDCXX],
|
||||||
|
+[AC_CACHE_CHECK([whether STL is libstdc++],
|
||||||
|
+ [lyx_cv_lib_stdcxx],
|
||||||
|
+[AC_TRY_COMPILE([#include<vector>], [
|
||||||
|
+#if ! defined(__GLIBCXX__) && ! defined(__GLIBCPP__)
|
||||||
|
+ this is not libstdc++
|
||||||
|
+#endif
|
||||||
|
+],
|
||||||
|
+[lyx_cv_lib_stdcxx=yes], [lyx_cv_lib_stdcxx=no])])
|
||||||
|
+])
|
||||||
|
|
||||||
|
-if test -z "$CXX" ; then
|
||||||
|
- AC_MSG_ERROR([Unable to find a good enough C++ compiler])
|
||||||
|
-fi
|
||||||
|
-AC_MSG_RESULT($CXX)
|
||||||
|
|
||||||
|
-AC_PROG_CXX
|
||||||
|
-AC_PROG_CXXCPP
|
||||||
|
+dnl Usage: LYX_LIB_STDCXX_CXX11_ABI: set lyx_cv_lib_stdcxx_cxx11_abi to yes
|
||||||
|
+dnl if the STL library is GNU libstdc++ and the C++11 ABI is used.
|
||||||
|
+AC_DEFUN([LYX_LIB_STDCXX_CXX11_ABI],
|
||||||
|
+[AC_CACHE_CHECK([whether STL is libstdc++ using the C++11 ABI],
|
||||||
|
+ [lyx_cv_lib_stdcxx_cxx11_abi],
|
||||||
|
+[AC_TRY_COMPILE([#include<vector>], [
|
||||||
|
+#if ! defined(_GLIBCXX_USE_CXX11_ABI) || ! _GLIBCXX_USE_CXX11_ABI
|
||||||
|
+ this is not libstdc++ using the C++11 ABI
|
||||||
|
+#endif
|
||||||
|
+],
|
||||||
|
+[lyx_cv_lib_stdcxx_cxx11_abi=yes], [lyx_cv_lib_stdcxx_cxx11_abi=no])])
|
||||||
|
+])
|
||||||
|
+
|
||||||
|
+
|
||||||
|
+AC_DEFUN([LYX_PROG_CXX],
|
||||||
|
+[AC_REQUIRE([AC_PROG_CXX])
|
||||||
|
+AC_REQUIRE([AC_PROG_CXXCPP])
|
||||||
|
+
|
||||||
|
+AC_LANG_PUSH(C++)
|
||||||
|
+LYX_PROG_CLANG
|
||||||
|
+LYX_LIB_STDCXX
|
||||||
|
+LYX_LIB_STDCXX_CXX11_ABI
|
||||||
|
+AC_LANG_POP(C++)
|
||||||
|
+
|
||||||
|
+if test $lyx_cv_lib_stdcxx = "yes" ; then
|
||||||
|
+ if test $lyx_cv_lib_stdcxx_cxx11_abi = "yes" ; then
|
||||||
|
+ AC_DEFINE(USE_GLIBCXX_CXX11_ABI, 1, [use GNU libstdc++ with C++11 ABI])
|
||||||
|
+ fi
|
||||||
|
+else
|
||||||
|
+ if test $lyx_cv_prog_clang = "yes" ; then
|
||||||
|
+ AC_DEFINE(USE_LLVM_LIBCPP, 1, [use libc++ provided by llvm instead of GNU libstdc++])
|
||||||
|
+ fi
|
||||||
|
+fi
|
||||||
|
|
||||||
|
### We might want to get or shut warnings.
|
||||||
|
AC_ARG_ENABLE(warnings,
|
||||||
|
diff --git a/development/cmake/ConfigureChecks.cmake b/development/cmake/ConfigureChecks.cmake
|
||||||
|
index 71291a5..a738160 100644
|
||||||
|
--- a/development/cmake/ConfigureChecks.cmake
|
||||||
|
+++ b/development/cmake/ConfigureChecks.cmake
|
||||||
|
@@ -112,3 +112,49 @@ check_cxx_source_compiles(
|
||||||
|
"
|
||||||
|
SIZEOF_WCHAR_T_IS_4)
|
||||||
|
|
||||||
|
+# Check whether STL is libstdc++
|
||||||
|
+check_cxx_source_compiles(
|
||||||
|
+ "
|
||||||
|
+ #include <vector>
|
||||||
|
+ int main() {
|
||||||
|
+ #if ! defined(__GLIBCXX__) && ! defined(__GLIBCPP__)
|
||||||
|
+ this is not libstdc++
|
||||||
|
+ #endif
|
||||||
|
+ return(0);
|
||||||
|
+ }
|
||||||
|
+ "
|
||||||
|
+lyx_cv_lib_stdcxx)
|
||||||
|
+
|
||||||
|
+# Check whether STL is libstdc++ with C++11 ABI
|
||||||
|
+check_cxx_source_compiles(
|
||||||
|
+ "
|
||||||
|
+ #include <vector>
|
||||||
|
+ int main() {
|
||||||
|
+ #if ! defined(_GLIBCXX_USE_CXX11_ABI) || ! _GLIBCXX_USE_CXX11_ABI
|
||||||
|
+ this is not libstdc++ using the C++11 ABI
|
||||||
|
+ #endif
|
||||||
|
+ return(0);
|
||||||
|
+ }
|
||||||
|
+ "
|
||||||
|
+USE_GLIBCXX_CXX11_ABI)
|
||||||
|
+
|
||||||
|
+check_cxx_source_compiles(
|
||||||
|
+ "
|
||||||
|
+ #ifndef __clang__
|
||||||
|
+ this is not clang
|
||||||
|
+ #endif
|
||||||
|
+ int main() {
|
||||||
|
+ return(0);
|
||||||
|
+ }
|
||||||
|
+ "
|
||||||
|
+lyx_cv_prog_clang)
|
||||||
|
+
|
||||||
|
+set(USE_LLVM_LIBCPP)
|
||||||
|
+set(USE_GLIBCXX_CXX11_ABI)
|
||||||
|
+if(NOT lyx_cv_lib_stdcxx)
|
||||||
|
+ if(lyx_cv_prog_clang)
|
||||||
|
+ # use libc++ provided by llvm instead of GNU libstdc++
|
||||||
|
+ set(USE_LLVM_LIBCPP 1)
|
||||||
|
+ endif()
|
||||||
|
+endif()
|
||||||
|
+
|
||||||
|
diff --git a/development/cmake/config.h.cmake b/development/cmake/config.h.cmake
|
||||||
|
index 7bbe09e..a392b51 100644
|
||||||
|
--- a/development/cmake/config.h.cmake
|
||||||
|
+++ b/development/cmake/config.h.cmake
|
||||||
|
@@ -57,6 +57,9 @@
|
||||||
|
#cmakedefine LYX_USE_TR1 1
|
||||||
|
#cmakedefine LYX_USE_TR1_REGEX 1
|
||||||
|
|
||||||
|
+// use GNU libstdc++ with C++11 ABI
|
||||||
|
+#cmakedefine USE_GLIBCXX_CXX11_ABI 1
|
||||||
|
+
|
||||||
|
#cmakedefine Z_PREFIX 1
|
||||||
|
|
||||||
|
#cmakedefine ASPELL_FOUND 1
|
||||||
|
diff --git a/src/support/strfwd.h b/src/support/strfwd.h
|
||||||
|
index de8588c..f39426e 100644
|
||||||
|
--- a/src/support/strfwd.h
|
||||||
|
+++ b/src/support/strfwd.h
|
||||||
|
@@ -13,14 +13,6 @@
|
||||||
|
#ifndef STRFWD_H
|
||||||
|
#define STRFWD_H
|
||||||
|
|
||||||
|
-// This includes does nothing but defining _LIBCPP_VERSION
|
||||||
|
-// if libc++ is used (rather than libstdc++) - we first
|
||||||
|
-// check if we have at least a c++03 standard before
|
||||||
|
-// including the file
|
||||||
|
-#if (__cplusplus > 19971L)
|
||||||
|
-#include <ciso646>
|
||||||
|
-#endif
|
||||||
|
-
|
||||||
|
#ifdef USE_WCHAR_T
|
||||||
|
|
||||||
|
// Prefer this if possible because GNU libstdc++ has usable
|
||||||
|
@@ -36,8 +28,10 @@ namespace lyx { typedef boost::uint32_t char_type; }
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
-// Forward definitions do not work with libc++
|
||||||
|
-#ifdef _LIBCPP_VERSION
|
||||||
|
+// For gcc5 with the new std::string ABI forward declarations would work in
|
||||||
|
+// principle, but I am not sure whether we want non-standard
|
||||||
|
+// "namespace __cxx11" in our sources.
|
||||||
|
+#if defined(USE_LLVM_LIBCPP) || defined(USE_GLIBCXX_CXX11_ABI)
|
||||||
|
#include <string>
|
||||||
|
#else
|
@ -1,3 +1,11 @@
|
|||||||
|
-------------------------------------------------------------------
|
||||||
|
Mon Jun 22 13:08:54 UTC 2015 - cornelis@solcon.nl
|
||||||
|
|
||||||
|
- Added Fix-build-with-GNU-libstdc++-C++11-ABI.patch and
|
||||||
|
Automake-15.patch to fix build with Factory (gcc5).
|
||||||
|
- Disabled system boost for Factory, because the 2.1.x branch does
|
||||||
|
not build with boost 1.58.
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Fri Feb 6 09:50:49 UTC 2015 - cornelis@solcon.nl
|
Fri Feb 6 09:50:49 UTC 2015 - cornelis@solcon.nl
|
||||||
|
|
||||||
|
16
lyx.spec
16
lyx.spec
@ -1,7 +1,7 @@
|
|||||||
#
|
#
|
||||||
# spec file for package lyx
|
# spec file for package lyx
|
||||||
#
|
#
|
||||||
# Copyright (c) 2015 SUSE LINUX Products GmbH, Nuernberg, Germany.
|
# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany.
|
||||||
#
|
#
|
||||||
# All modifications and additions to the file contributed by third parties
|
# All modifications and additions to the file contributed by third parties
|
||||||
# remain the property of their copyright owners, unless otherwise agreed
|
# remain the property of their copyright owners, unless otherwise agreed
|
||||||
@ -18,8 +18,12 @@
|
|||||||
|
|
||||||
Name: lyx
|
Name: lyx
|
||||||
#!BuildIgnore: lyx
|
#!BuildIgnore: lyx
|
||||||
|
BuildRequires: autoconf
|
||||||
|
BuildRequires: automake
|
||||||
BuildRequires: bc
|
BuildRequires: bc
|
||||||
|
%if %{?suse_version} <1330
|
||||||
BuildRequires: boost-devel
|
BuildRequires: boost-devel
|
||||||
|
%endif
|
||||||
BuildRequires: enchant-devel
|
BuildRequires: enchant-devel
|
||||||
BuildRequires: fdupes
|
BuildRequires: fdupes
|
||||||
BuildRequires: file-devel
|
BuildRequires: file-devel
|
||||||
@ -42,6 +46,10 @@ Source3: ftp://ftp.lyx.org/pub/lyx/stable/2.1.x/lyx-%{version}.tar.xz.sig
|
|||||||
# This was rejected by upstream (http://www.mail-archive.com/lyx-devel@lists.lyx.org/msg133878.html)
|
# This was rejected by upstream (http://www.mail-archive.com/lyx-devel@lists.lyx.org/msg133878.html)
|
||||||
Patch0: lyx-2.1.2-xdg_open.patch
|
Patch0: lyx-2.1.2-xdg_open.patch
|
||||||
Patch1: lyx-2.1.2.2-remove-date-time.patch
|
Patch1: lyx-2.1.2.2-remove-date-time.patch
|
||||||
|
# PATCH-FIX-UPSTREAM backported fix for switch to gcc5 (will be part of 2.1.4)
|
||||||
|
Patch2: Fix-build-with-GNU-libstdc++-C++11-ABI.patch
|
||||||
|
# PATCH-FIX-UPSTREAM build with automake 15 (fixed in 2.1.4)
|
||||||
|
Patch3: Automake-15.patch
|
||||||
BuildRoot: %{_tmppath}/%{name}-%{version}-build
|
BuildRoot: %{_tmppath}/%{name}-%{version}-build
|
||||||
Requires: ImageMagick
|
Requires: ImageMagick
|
||||||
%if 0%{?suse_version} < 1230
|
%if 0%{?suse_version} < 1230
|
||||||
@ -110,12 +118,16 @@ document under "Help" on the menubar.
|
|||||||
%setup -q
|
%setup -q
|
||||||
%patch0 -p1
|
%patch0 -p1
|
||||||
%patch1 -p1
|
%patch1 -p1
|
||||||
|
%patch2 -p1
|
||||||
|
%patch3 -p1
|
||||||
|
|
||||||
%build
|
%build
|
||||||
#./autogen.sh
|
./autogen.sh
|
||||||
TEXMF=%{_datadir}/texmf
|
TEXMF=%{_datadir}/texmf
|
||||||
%configure \
|
%configure \
|
||||||
|
%if %{?suse_version} < 1330
|
||||||
--without-included-boost \
|
--without-included-boost \
|
||||||
|
%endif
|
||||||
--without-aspell \
|
--without-aspell \
|
||||||
--with-hunspell \
|
--with-hunspell \
|
||||||
--with-enchant
|
--with-enchant
|
||||||
|
Loading…
x
Reference in New Issue
Block a user