From 08312e2e16fe5fe97b0c887353ac77457b4f5a0f Mon Sep 17 00:00:00 2001 From: Mike Gabriel Date: Tue, 3 Dec 2013 21:33:08 +0100 Subject: Add patch 605_nxcomp_Types.h-dont-use-STL-internals-on-libc++.full.patch. Fix FTBFS of nx-libs-lite on Mac OS X Mavericks. (Fixes: #337). --- debian/changelog | 4 ++ ...s.h-dont-use-STL-internals-on-libc++.full.patch | 52 ++++++++++++++++++++++ debian/patches/series | 1 + 3 files changed, 57 insertions(+) create mode 100644 debian/patches/605_nxcomp_Types.h-dont-use-STL-internals-on-libc++.full.patch diff --git a/debian/changelog b/debian/changelog index a4c78fbdd..78ce45e73 100644 --- a/debian/changelog +++ b/debian/changelog @@ -13,6 +13,10 @@ nx-libs (2:3.5.0.22-0x2go1) UNRELEASED; urgency=low * debian/control: + Add libfreetype6-dev to Build-Depends: field. + [ Clemens Lang ] + * Add patch 605_nxcomp_Types.h-dont-use-STL-internals-on-libc++.full.patch. Fix + FTBFS of nx-libs-lite on Mac OS X Mavericks. (Fixes: #337). + -- Mike Gabriel Fri, 30 Aug 2013 16:20:18 +0200 nx-libs (2:3.5.0.21-0) unstable; urgency=low diff --git a/debian/patches/605_nxcomp_Types.h-dont-use-STL-internals-on-libc++.full.patch b/debian/patches/605_nxcomp_Types.h-dont-use-STL-internals-on-libc++.full.patch new file mode 100644 index 000000000..60f33ce3f --- /dev/null +++ b/debian/patches/605_nxcomp_Types.h-dont-use-STL-internals-on-libc++.full.patch @@ -0,0 +1,52 @@ +Description: In Types.h, don't use STL internals on libc++. +Author: Clemens Lang +Abstract: + The nx-libs-lite package does not compile on OS X Mavericks because + Apple's clang compilers now default to compiling against the libc++ STL + rather than (their outdated copy of) libstdc++. + . + While the compiler still allows changing that, we should not rely on + this being possible forever. + . + The compiler chokes in Types.h, specifically the clear() methods in + subclasses of vectors that use implementation details of the GNU STL. + The attached patch fixes these compilation issues by not overriding the + clear() method when compiling against libc++, since the libc++ headers + seem to do essentially the same as the overriden method. +--- a/nxcomp/Types.h 2013-11-05 01:35:22.000000000 +0100 ++++ b/nxcomp/Types.h 2013-11-05 01:37:30.000000000 +0100 +@@ -55,6 +55,9 @@ + return &*(vector < unsigned char >::begin()); + } + ++ // Avoid overriding clear() when using libc++. Fiddling with STL internals ++ // doesn't really seem like a good idea to me anyway. ++ #ifndef _LIBCPP_VECTOR + void clear() + { + #if defined(__STL_USE_STD_ALLOCATORS) || defined(__GLIBCPP_INTERNAL_VECTOR_H) +@@ -95,12 +98,16 @@ + + #endif /* #if defined(__STL_USE_STD_ALLOCATORS) || defined(__GLIBCPP_INTERNAL_VECTOR_H) */ + } ++ #endif /* #ifdef _LIBCPP_VECTOR */ + }; + + class T_messages : public vector < Message * > + { + public: + ++ // Avoid overriding clear() when using libc++. Fiddling with STL internals ++ // doesn't really seem like a good idea to me anyway. ++ #ifndef _LIBCPP_VECTOR + void clear() + { + #if defined(__STL_USE_STD_ALLOCATORS) || defined(__GLIBCPP_INTERNAL_VECTOR_H) +@@ -141,6 +148,7 @@ + + #endif /* #if defined(__STL_USE_STD_ALLOCATORS) || defined(__GLIBCPP_INTERNAL_VECTOR_H) */ + } ++ #endif /* #ifndef _LIBCPP_VECTOR */ + }; + + typedef md5_byte_t * T_checksum; diff --git a/debian/patches/series b/debian/patches/series index 9e49395ed..ce5237ffd 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -50,6 +50,7 @@ 602_nx-X11_initgroups.full.patch 603_nx-X11_compilation_warnings.full.patch 604_nx-X11_recent-freetype-API.full.patch +605_nxcomp_Types.h-dont-use-STL-internals-on-libc++.full.patch 999_nxagent_unbrand-nxagent-brand-x2goagent.full.patch 016_nx-X11_install-location.debian.patch 102_xserver-xext_set-securitypolicy-path.debian.patch -- cgit v1.2.3