Update editors/abiword to 3.0.1
Ben Woods
woodsb02 at gmail.com
Tue Mar 31 22:31:09 UTC 2015
Thanks for the feedback Gleb. I am compiling with clang 3.4.1 in FreeBSD
10.1 base.
I have since spoken to an Abiword developer, who kindly helped me fix this
issue with the following patch (which I will include in the PR I will
submit to update this port):
diff --git a/src/text/ptbl/xp/pd_DocumentRDF.cpp
b/src/text/ptbl/xp/pd_DocumentRDF.cpp
index 798e262..3406b88 100644
--- a/src/text/ptbl/xp/pd_DocumentRDF.cpp
+++ b/src/text/ptbl/xp/pd_DocumentRDF.cpp
@@ -570,6 +570,11 @@ bool PD_URI::operator==(const std::string& b) const
return m_value == b;
}
+bool PD_URI::operator<(const PD_URI& b) const
+{
+ return m_value < b.m_value;
+}
+
PD_URI
PD_URI::prefixedToURI( PD_RDFModelHandle model ) const
{
@@ -611,11 +616,6 @@ bool PD_URI::write( std::ostream& ss ) const
return true;
}
-bool operator<( PD_URI a, PD_URI b)
-{
- return a.toString() < b.toString();
-}
-
bool operator<( std::pair< PD_URI, PD_URI > a, PD_URI b)
{
return a.first.toString() < b.toString();
diff --git a/src/text/ptbl/xp/pd_DocumentRDF.h
b/src/text/ptbl/xp/pd_DocumentRDF.h
index 66e9fd6..3e6b8ef 100644
--- a/src/text/ptbl/xp/pd_DocumentRDF.h
+++ b/src/text/ptbl/xp/pd_DocumentRDF.h
@@ -68,6 +68,7 @@ class ABI_EXPORT PD_URI
bool isValid() const;
bool operator==(const PD_URI& b) const;
bool operator==(const std::string& b) const;
+ bool operator<(const PD_URI& b) const;
virtual bool read( std::istream& ss );
virtual bool write( std::ostream& ss ) const;
Regards,
Ben
On Wed, Apr 1, 2015 at 2:22 AM Gleb Popov <6yearold at gmail.com> wrote:
> On Tue, Mar 31, 2015 at 6:00 PM, Ben Woods <woodsb02 at gmail.com> wrote:
>
>> I am trying to update editors/abiword from 2.8.6 to 3.0.1.
>>
>> Part way through compiling my new test port, I get the following errors:
>>
>> gmake[7]: Entering directory
>> '/wrkdirs/usr/ports/editors/abiword/work/abiword-3.0.1/src/text/fmt/xp'
>> CXX fl_Squiggles.lo
>> CXX fb_Alignment.lo
>> In file included from fb_Alignment.cpp:22:
>> ./fb_Alignment.h:114:8: warning: private field 'm_iSpaceCountLeft' is
>> not used [-Wunused-private-field]
>> int m_iSpaceCountLeft;
>> ^
>> ./fb_Alignment.h:115:8: warning: private field 'm_iSpaceCount' is not
>> used [-Wunused-private-field]
>> int m_iSpaceCount;
>> ^
>> 2 warnings generated.
>> CXX fb_ColumnBreaker.lo
>> In file included from fb_ColumnBreaker.cpp:22:
>> ./fb_ColumnBreaker.h:53:24: warning: private field 'm_pCurrentBlock'
>> is not used [-Wunused-private-field]
>> fl_BlockLayout * m_pCurrentBlock;
>> ^
>> 1 warning generated.
>> CXX fb_LineBreaker.lo
>> CXX fg_Graphic.lo
>> CXX fg_GraphicRaster.lo
>> CXX fg_GraphicVector.lo
>> CXX fl_AutoLists.lo
>> CXX fl_AutoNum.lo
>> CXX fl_BlockLayout.lo
>> CXX fl_ContainerLayout.lo
>> CXX fl_DocLayout.lo
>> CXX fl_DocListener.lo
>> CXX fl_FootnoteLayout.lo
>> CXX fl_FrameLayout.lo
>> CXX fl_Layout.lo
>> CXX fl_SectionLayout.lo
>> CXX fl_SelectionPreserver.lo
>> CXX fl_TableLayout.lo
>> CXX fl_TestRoutines.lo
>> CXX fl_TOCLayout.lo
>> In file included from fl_TOCLayout.cpp:32:
>> ./fl_TOCLayout.h:82:20: warning: private field 'm_iStartAt' is not
>> used [-Wunused-private-field]
>> UT_sint32 m_iStartAt;
>> ^
>> 1 warning generated.
>> CXX fp_AnnotationRun.lo
>> CXX fp_RDFAnchorRun.lo
>> In file included from fp_RDFAnchorRun.cpp:23:
>> In file included from ./fp_Run.h:33:
>> In file included from ../../../../src/af/util/xp/ut_misc.h:39:
>> In file included from /usr/include/c++/v1/string:439:
>> In file included from /usr/include/c++/v1/algorithm:627:
>> In file included from /usr/include/c++/v1/memory:601:
>> /usr/include/c++/v1/__functional_base:63:21: error: invalid operands
>> to binary expression ('const PD_URI' and 'const PD_URI')
>> {return __x < __y;}
>> ~~~ ^ ~~~
>> /usr/include/c++/v1/map:457:17: note: in instantiation of member
>> function 'std::__1::less<PD_URI>::operator()' requested here
>> {return static_cast<const _Compare&>(*this)(__x.__cc.first,
>> __y.__cc.first);}
>> ^
>> /usr/include/c++/v1/__tree:1573:29: note: in instantiation of member
>> function 'std::__1::__map_value_compare<PD_URI,
>> std::__1::__value_type<PD_URI, PD_Object>, std::__1::less<PD_URI>,
>> true>::operator()' requested here
>> if (__hint == end() || !value_comp()(*__hint, __v)) // check before
>> ^
>> /usr/include/c++/v1/__tree:1912:36: note: in instantiation of member
>> function 'std::__1::__tree<std::__1::__value_type<PD_URI, PD_Object>,
>> std::__1::__map_value_compare<PD_URI, std::__1::__value_type<PD_URI,
>> PD_Object>, std::__1::less<PD_URI>, true>,
>> std::__1::allocator<std::__1::__value_type<PD_URI, PD_Object> >
>> >::__find_leaf' requested here
>> __node_base_pointer& __child = __find_leaf(__p, __parent, __v);
>> ^
>> /usr/include/c++/v1/map:1779:25: note: in instantiation of member
>> function 'std::__1::__tree<std::__1::__value_type<PD_URI, PD_Object>,
>> std::__1::__map_value_compare<PD_URI, std::__1::__value_type<PD_URI,
>> PD_Object>, std::__1::less<PD_URI>, true>,
>> std::__1::allocator<std::__1::__value_type<PD_URI, PD_Object> >
>> >::__insert_multi' requested here
>> __tree_.__insert_multi(__e.__i_, *__f);
>> ^
>> /usr/include/c++/v1/map:1612:13: note: in instantiation of function
>> template specialization 'std::__1::multimap<PD_URI, PD_Object,
>> std::__1::less<PD_URI>, std::__1::allocator<std::__1::pair<const
>> PD_URI, PD_Object> >
>>
>> >::insert<std::__1::__map_const_iterator<std::__1::__tree_const_iterator<std::__1::__value_type<PD_URI,
>> PD_Object>, std::__1::__tree_node<std::__1::__value_type<PD_URI,
>> PD_Object>, void *> *, long> > >' requested here
>> insert(__m.begin(), __m.end());
>> ^
>> ../../../../src/text/ptbl/xp/pd_DocumentRDF.h:198:18: note: in
>> instantiation of member function 'std::__1::multimap<PD_URI,
>> PD_Object, std::__1::less<PD_URI>,
>> std::__1::allocator<std::__1::pair<const PD_URI, PD_Object> >
>> >::multimap' requested here
>> class ABI_EXPORT PD_RDFModelIterator
>> ^
>> ../../../../src/af/util/xp/ut_string_class.h:124:17: note: candidate
>> function not viable: no known conversion from 'const PD_URI' to 'const
>> UT_String' for 1st argument
>> ABI_EXPORT bool operator<(const UT_String& s1, const UT_String& s2);
>> ^
>> ../../../../src/af/util/xp/ut_string_class.h:277:17: note: candidate
>> function not viable: no known conversion from 'const PD_URI' to 'const
>> UT_UTF8String' for 1st argument
>> ABI_EXPORT bool operator<(const UT_UTF8String& s1, const UT_UTF8String&
>> s2);
>> ^
>> ../../../../src/af/util/xp/ut_string_class.h:394:6: note: candidate
>> function not viable: no known conversion from 'const PD_URI' to 'const
>> UT_UCS4String' for 1st argument
>> bool operator<(const UT_UCS4String& s1, const UT_UCS4String& s2);
>> ^
>> /usr/include/c++/v1/utility:419:1: note: candidate template ignored:
>> could not match 'pair<type-parameter-0-0, type-parameter-0-1>' against
>> 'const PD_URI'
>> operator< (const pair<_T1,_T2>& __x, const pair<_T1,_T2>& __y)
>> ^
>> /usr/include/c++/v1/iterator:582:1: note: candidate template ignored:
>> could not match 'reverse_iterator<type-parameter-0-0>' against 'const
>> PD_URI'
>> operator<(const reverse_iterator<_Iter1>& __x, const
>> reverse_iterator<_Iter2>& __y)
>> ^
>> /usr/include/c++/v1/iterator:977:1: note: candidate template ignored:
>> could not match 'move_iterator<type-parameter-0-0>' against 'const
>> PD_URI'
>> operator<(const move_iterator<_Iter1>& __x, const move_iterator<_Iter2>&
>> __y)
>> ^
>> /usr/include/c++/v1/iterator:1293:1: note: candidate template ignored:
>> could not match '__wrap_iter<type-parameter-0-0>' against 'const
>> PD_URI'
>> operator<(const __wrap_iter<_Iter1>& __x, const __wrap_iter<_Iter2>&
>> __y) _NOEXCEPT
>> ^
>> 1 error generated.
>> Makefile:823: recipe for target 'fp_RDFAnchorRun.lo' failed
>> gmake[7]: *** [fp_RDFAnchorRun.lo] Error 1
>> gmake[7]: Leaving directory
>> '/wrkdirs/usr/ports/editors/abiword/work/abiword-3.0.1/src/text/fmt/xp'
>> Makefile:842: recipe for target 'all-recursive' failed
>> gmake[6]: *** [all-recursive] Error 1
>> gmake[6]: Leaving directory
>> '/wrkdirs/usr/ports/editors/abiword/work/abiword-3.0.1/src/text/fmt/xp'
>> Makefile:529: recipe for target 'all-recursive' failed
>> gmake[5]: *** [all-recursive] Error 1
>> gmake[5]: Leaving directory
>> '/wrkdirs/usr/ports/editors/abiword/work/abiword-3.0.1/src/text/fmt'
>> Makefile:528: recipe for target 'all-recursive' failed
>> gmake[4]: *** [all-recursive] Error 1
>> gmake[4]: Leaving directory
>> '/wrkdirs/usr/ports/editors/abiword/work/abiword-3.0.1/src/text'
>> Makefile:1157: recipe for target 'all-recursive' failed
>> gmake[3]: *** [all-recursive] Error 1
>> gmake[3]: Leaving directory
>> '/wrkdirs/usr/ports/editors/abiword/work/abiword-3.0.1/src'
>> Makefile:774: recipe for target 'all-recursive' failed
>> gmake[2]: *** [all-recursive] Error 1
>> gmake[2]: Leaving directory
>> '/wrkdirs/usr/ports/editors/abiword/work/abiword-3.0.1'
>> Makefile:593: recipe for target 'all' failed
>> gmake[1]: *** [all] Error 2
>> gmake[1]: Leaving directory
>> '/wrkdirs/usr/ports/editors/abiword/work/abiword-3.0.1'
>> *** Error code 1
>>
>> Stop.
>> make: stopped in /usr/ports/editors/abiword
>>
>>
>> Is this an issue with the new C++ stack libc++ referring to the std::__1
>> namespace, not just std::, as explained at the link below?
>> https://wiki.freebsd.org/NewC++Stack
>>
>> Regards,
>> Ben
>>
> _______________________________________________
>> freebsd-ports at freebsd.org mailing list
>> http://lists.freebsd.org/mailman/listinfo/freebsd-ports
>> To unsubscribe, send any mail to "freebsd-ports-unsubscribe at freebsd.org"
>>
>
> Nope, the error is that there is no operator< for operands with types
> ('const PD_URI' and 'const PD_URI'). They, probably, should be implicitly
> casted to something else, but something goes wrong. What compiler are you
> building with?
>
More information about the freebsd-ports
mailing list