aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--debian/changelog4
-rw-r--r--debian/patches/605_nxcomp_Types.h-dont-use-STL-internals-on-libc++.full.patch52
-rw-r--r--debian/patches/series1
3 files changed, 57 insertions, 0 deletions
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 <mike.gabriel@das-netzwerkteam.de> 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 <cal@macports.org>
+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