Ticket #22631 (closed defect: fixed)
Boost 1.41 iostreams has broken header
| Reported by: | dbsgeo@… | Owned by: | nox@… |
|---|---|---|---|
| Priority: | Normal | Milestone: | |
| Component: | ports | Version: | 1.8.1 |
| Keywords: | Cc: | ||
| Port: | boost |
Description
upstream let a bug slip through which prevents the compilation of py26-mapnik.
Would it be possible to include the patch from https://svn.boost.org/trac/boost/ticket/3010 to the macports 1.41 boost port?
I took a crack at patching but I'm not quite sure how to clean up the git based patch to work with macports:
Index: dports/devel/boost/files/boost_iostrems_missing_include_guard.patch
===================================================================
--- dports/devel/boost/files/boost_iostrems_missing_include_guard.patch (revision 0)
+++ dports/devel/boost/files/boost_iostrems_missing_include_guard.patch (revision 0)
@@ -0,0 +1,20 @@
+diff --git a/boost/iostreams/device/mapped_file.hpp b/boost/iostreams/device/mapped_file.hpp
+index aae9dab..be656ef 100644
+--- a/boost/iostreams/device/mapped_file.hpp
++++ b/boost/iostreams/device/mapped_file.hpp
+@@ -4,6 +4,9 @@
+ // Distributed under 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.)
+
++#ifndef BOOST_IOSTREAMS_MAPPED_FILE_HPP_INCLUDED
++#define BOOST_IOSTREAMS_MAPPED_FILE_HPP_INCLUDED
++
+ #if defined(_MSC_VER) && (_MSC_VER >= 1020)
+ # pragma once
+ #endif
+@@ -591,3 +594,5 @@ operator^=(mapped_file::mapmode& a, mapped_file::mapmode b)
+ } } // End namespaces iostreams, boost.
+
+ #include <boost/config/abi_suffix.hpp> // pops abi_suffix.hpp pragmas
++
++#endif // #ifndef BOOST_IOSTREAMS_MAPPED_FILE_HPP_INCLUDED
Index: dports/devel/boost/Portfile
===================================================================
--- dports/devel/boost/Portfile (revision 60726)
+++ dports/devel/boost/Portfile (working copy)
@@ -25,6 +25,7 @@
rmd160 a604ef5a6f6f5bf50be59206c8534258ab431aea
patchfiles patch-libs-random-random_device.cpp.diff \
+ boost_iostrems_missing_include_guard.patch
post-extract {
file mkdir ${worksrcpath}/libs/random/build
the above results in:
---> Applying patches to boost Error: Target org.macports.patch returned: shell command " cd "/opt/local/var/macports/build/_opt_mports_trunk_dports_devel_boost/work/boost_1_41_0" && /usr/bin/patch -p0 < '/opt/mports/trunk/dports/devel/boost/files/boost_iostrems_missing_include_guard.patch'" returned error 1 Command output: can't find file to patch at input line 5 Perhaps you used the wrong -p or --strip option? The text leading up to this was: -------------------------- |diff --git a/boost/iostreams/device/mapped_file.hpp b/boost/iostreams/device/mapped_file.hpp |index aae9dab..be656ef 100644 |--- a/boost/iostreams/device/mapped_file.hpp |+++ b/boost/iostreams/device/mapped_file.hpp -------------------------- File to patch: Skip this patch? [y] Skipping patch. 2 out of 2 hunks ignored Error: Status 1 encountered during processing.
Change History
comment:4 Changed 3 years ago by dbsgeo@…
Okay, I recreated the patch and this now works:
Index: dports/devel/boost/files/boost_iostreams_missing_include_guard.diff
===================================================================
--- dports/devel/boost/files/boost_iostreams_missing_include_guard.diff (revision 0)
+++ dports/devel/boost/files/boost_iostreams_missing_include_guard.diff (revision 0)
@@ -0,0 +1,18 @@
+--- boost/iostreams/device/mapped_file.hpp 2009-11-22 11:32:31.000000000 -0800
++++ boost/iostreams/device/mapped_file.hpp 2009-11-22 11:24:25.000000000 -0800
+@@ -4,6 +4,9 @@
+ // Distributed under 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.)
+
++#ifndef BOOST_IOSTREAMS_MAPPED_FILE_HPP_INCLUDED
++#define BOOST_IOSTREAMS_MAPPED_FILE_HPP_INCLUDED
++
+ #if defined(_MSC_VER) && (_MSC_VER >= 1020)
+ # pragma once
+ #endif
+@@ -591,3 +594,5 @@
+ } } // End namespaces iostreams, boost.
+
+ #include <boost/config/abi_suffix.hpp> // pops abi_suffix.hpp pragmas
++
++#endif // #ifndef BOOST_IOSTREAMS_MAPPED_FILE_HPP_INCLUDED
Index: dports/devel/boost/Portfile
===================================================================
--- dports/devel/boost/Portfile (revision 60763)
+++ dports/devel/boost/Portfile (working copy)
@@ -24,7 +24,8 @@
sha1 31134e28866b90c39ca4a903c263e036bb25550c \
rmd160 a604ef5a6f6f5bf50be59206c8534258ab431aea
-patchfiles patch-libs-random-random_device.cpp.diff
+patchfiles patch-libs-random-random_device.cpp.diff \
+ boost_iostreams_missing_include_guard.diff
post-extract {
file mkdir ${worksrcpath}/libs/random/build
Note: See
TracTickets for help on using
tickets.


seems odd that this was missed, so I went and confirmed that allow it was applied to boost trunk before the 1.41 release, it did not make it into the release:
https://svn.boost.org/trac/boost/browser/tags/release/Boost_1_41_0/boost/iostreams/device/mapped_file.hpp