Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 668296 - app-text/sword-1.8.1 fails build with icu-62.1 due to UnicodeString icu namespace error
Summary: app-text/sword-1.8.1 fails build with icu-62.1 due to UnicodeString icu names...
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All Linux
: Normal normal (vote)
Assignee: Theology Herd (disbanded)
URL:
Whiteboard:
Keywords: PATCH
Depends on:
Blocks: icu-61 668282
  Show dependency tree
 
Reported: 2018-10-11 10:42 UTC by Duncan
Modified: 2018-10-13 06:59 UTC (History)
1 user (show)

See Also:
Package list:
Runtime testing required: ---


Attachments
full build log (app-text:sword-1.8.1:20181011-092707.log,71.60 KB, text/x-log)
2018-10-11 10:42 UTC, Duncan
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Duncan 2018-10-11 10:42:39 UTC
Created attachment 550570 [details]
full build log

Thanks for the work on bug#666518 but the fix there seems to be incomplete.  I still get a similar error, tho further down in the compile, now, and the same ...

append-cxxflags -DU_USING_ICU_NAMESPACE=1

... band-aid seems to fix it.


In file included from ../src/mgr/swmgr.cpp:108:
../include/utf8transliterator.h:53:2: error: 'UnicodeString' does not name a type; did you mean 'uset_addString'?
UnicodeString resource;
^~~~~~~~~~~~~
uset_addString
../include/utf8transliterator.h:56:24: error: ISO C++ forbids declaration of 'type name' with no type [-fpermissive]
typedef std::map<const UnicodeString, SWTransData> SWTransMap;
^~~~~~~~~~~~~
../include/utf8transliterator.h:56:50: error: wrong number of template arguments (1, should be at least 2)
typedef std::map<const UnicodeString, SWTransData> SWTransMap;
^
In file included from /lib64/gcc/x86_64-pc-linux-gnu/8.2.0/include/g++-v8/map:61,
from ../include/swmgr.h:60,
from ../src/mgr/swmgr.cpp:33:
/lib64/gcc/x86_64-pc-linux-gnu/8.2.0/include/g++-v8/bits/stl_map.h:100:11: note: provided for 'template<class _Key, class _Tp, class _Compare, class _Alloc> class std::map'
class map
^~~
In file included from ../src/mgr/swmgr.cpp:108:
../include/utf8transliterator.h:57:19: error: 'UnicodeString' was not declared in this scope
typedef std::pair<UnicodeString, SWTransData> SWTransPair;
^~~~~~~~~~~~~
../include/utf8transliterator.h:57:19: note: suggested alternative:
In file included from ../include/utf8transliterator.h:41,
from ../src/mgr/swmgr.cpp:108:
/include/unicode/unistr.h:286:20: note:   'icu::UnicodeString'
class U_COMMON_API UnicodeString : public Replaceable
^~~~~~~~~~~~~
In file included from ../src/mgr/swmgr.cpp:108:
../include/utf8transliterator.h:57:45: error: template argument 1 is invalid
typedef std::pair<UnicodeString, SWTransData> SWTransPair;
^
../include/utf8transliterator.h:84:2: error: 'Transliterator' does not name a type; did you mean 'UTransliterator'?
Transliterator *createTrans(const UnicodeString& ID, UTransDirection dir, UErrorCode &status);
^~~~~~~~~~~~~~
UTransliterator
make[1]: *** [Makefile:1335: swmgr.lo] Error 1
make[1]: *** Waiting for unfinished jobs....


Package USE flags: USE="curl icu -clucene -debug -doc -static-libs"
Comment 1 Chris Reffett (RETIRED) gentoo-dev Security 2018-10-11 21:19:55 UTC
That's strange, the patch should have added U_USING_ICU_NAMESPACE to definitions. What ICU version do you have installed?
Comment 2 Duncan 2018-10-12 04:08:44 UTC
(In reply to Chris Reffett from comment #1)
> That's strange, the patch should have added U_USING_ICU_NAMESPACE to
> definitions.

While this is definitely beyond my knowledge comfort zone, see if the theory fits...

Based on the fact that the first bug's error was while using libtool in compile mode, while this one seems to be while using libtool to link already built binary object files, at a guess the problem may be that the patch applied the definition only to the compile step and here it's needed with the linker step as well.

But simply doing the append-cxxflags adds it at a different level so it gets applied to both, explaining why that works while the patch didn't.

... If that makes any sense at all...

> What ICU version do you have installed?

It's in the title/summary. icu-62.1 =:^)
Comment 3 Chris Reffett (RETIRED) gentoo-dev Security 2018-10-12 21:31:36 UTC
> But simply doing the append-cxxflags adds it at a different level so it gets
> applied to both, explaining why that works while the patch didn't.
> 
> ... If that makes any sense at all...
Sounds plausible enough. I just noticed that you have USE=icu and I didn't when testing, so I suppose that's why this slipped by before. Investigating further now.

> 
> > What ICU version do you have installed?
> 
> It's in the title/summary. icu-62.1 =:^)

Whoops. So you did.
Comment 4 Chris Reffett (RETIRED) gentoo-dev Security 2018-10-12 21:33:27 UTC
Also, looks like the Fedora build doesn't enable -DWITH_ICU either, so I suspect that they just didn't define it somewhere they needed to. Probably will end up re-spinning their patch.
Comment 5 Chris Reffett (RETIRED) gentoo-dev Security 2018-10-12 22:39:48 UTC
...Or it could be that Fedora is using the cmake build system and we're using the make build system (why on earth do they have two build systems!?) Oh well. We're using cmake now! Fixed in the revbump, please reopen if this still doesn't fix it.
Comment 6 Larry the Git Cow gentoo-dev 2018-10-12 22:40:02 UTC
The bug has been referenced in the following commit(s):

https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=6a34df8eae4ad4debd0d170f1fe73cc0b3e62ff8

commit 6a34df8eae4ad4debd0d170f1fe73cc0b3e62ff8
Author:     Chris Reffett <creffett@gentoo.org>
AuthorDate: 2018-10-12 22:37:53 +0000
Commit:     Chris Reffett <creffett@gentoo.org>
CommitDate: 2018-10-12 22:38:46 +0000

    app-text/sword: Revbump, switch to cmake build
    
    Switch to using CMake build system. Incidentally fixes 668296.
    
    Bug: https://bugs.gentoo.org/668296
    Signed-off-by: Chris Reffett <creffett@gentoo.org>
    Package-Manager: Portage-2.3.51, Repoman-2.3.11

 .../{sword-1.8.1.ebuild => sword-1.8.1-r1.ebuild}  | 41 +++++++++-------------
 1 file changed, 16 insertions(+), 25 deletions(-)
Comment 7 Duncan 2018-10-13 06:59:49 UTC
(In reply to Chris Reffett from comment #5)
> Oh well. We're using cmake now! Fixed in the revbump, please reopen if this
> still doesn't fix it.

It does.  Thanks again. =:^)