Summary: | dev-libs/beecrypt-4.2.1-r4 - include/beecrypt/c++/lang/String.h:76:17: error: ‘UnicodeString’ does not name a type | ||
---|---|---|---|
Product: | Gentoo Linux | Reporter: | Juergen Rose <rose> |
Component: | Current packages | Assignee: | No maintainer - Look at https://wiki.gentoo.org/wiki/Project:Proxy_Maintainers if you want to take care of it <maintainer-needed> |
Status: | RESOLVED FIXED | ||
Severity: | normal | CC: | atoth, candrews, g2boojum, gentoo, jbowler, leio, mgorny, slyfox, viklevin2, zeekec |
Priority: | Normal | ||
Version: | unspecified | ||
Hardware: | All | ||
OS: | Linux | ||
Whiteboard: | |||
Package list: | Runtime testing required: | --- | |
Bug Depends on: | |||
Bug Blocks: | 651698 | ||
Attachments: |
build.log
Patch for ICU 61 'using namespace' change |
Description
Juergen Rose
2018-09-19 08:48:01 UTC
This package lacks a maintainer right now, would you like to proxy maintain it? I'm gonna guess this is fallback from icu upgrade. "Namespace (ICU 61 and later): Since ICU 61, call sites need to qualify ICU types explicitly, for example icu::UnicodeString, or do using icu::UnicodeString; where appropriate. If your code relies on the "using namespace icu;" that used to be in unicode/uversion.h, then you need to update your code." http://source.icu-project.org/repos/icu/trunk/icu4c/readme.html#RecBuild 'using namespace icu;' in include/beecrupt/c++/lang/String.h would probably be an instant work round, but there are only 7 files (six cxx and String.h) so a correct patch should be trivial. Sure it would but it takes somebody to do it. I have serious doubts whether we want to keep dead crypto library with no maintainer and two reverse dependencies (going down to one when we update debugedit). Created attachment 547352 [details, diff] Patch for ICU 61 'using namespace' change Seven files changed (a lucky guess). You may prefer the one-liner but I didn't test that and this is robust; the ICU guys may chose to use their new found freedom to not pollute the namespace by adding more stuff (like they had defined NumberFormat globally in a public head file!) Here's the patch for the ebuild. jbowler@Jule:~> diff -u orig *.ebuild --- orig 2018-09-19 15:51:40.223990200 -0700 +++ beecrypt-4.2.1-r5.ebuild 2018-09-19 15:48:10.679816100 -0700 @@ -39,6 +39,8 @@ # Fixes bug 596904 "${FILESDIR}"/${P}-c++11-allow-throw-in-destructors.patch "${FILESDIR}"/${P}-cast-uchar.patch #618676 + + "${FILESDIR}"/${P}-icu-61.patch #666542 ) pkg_setup() { I agree completely; I just put the patch in an overlay and when the dependency on debugedit goes beecrypt will disappear from my system. (Of course I have to be able to do an emerge --depclean and the problem prevents, or at least discourages, that.) I don't know about the users of sys-cluster/util-vserver though; that package looks dead too, there doesn't even seem to be a gentoo Linux-VServer package. The ebuild is EAPI=6. Therefore it has (mandatory in that EAPI) user-patches support. You can simply make a directory /etc/portage/patches/dev-libs/beecrypt-4.2.1-r4 and put the patch file in that directory. Works for me. I can confirm that today's update to debugedit 4.14.2 (from 0.5.3.5-r1, apparently) resulted in beecrypt being removed from my system by emerge --depclean. (In reply to John Bowler from comment #9) > I can confirm that today's update to debugedit 4.14.2 (from 0.5.3.5-r1, > apparently) resulted in beecrypt being removed from my system by emerge > --depclean. 'emerge -uvDNT world' wants now to downgrade debugedit to version 0.5.3.5-r1, which needs beecrypt-4.2.1-r4, which failes to emerge: root@lynx:/root(42)# emerge -pvuDNt world These are the packages that would be merged, in reverse order: Calculating dependencies... done! [ebuild U ] media-gfx/meshlab-2016.12-r3::local [2016.12-r2::gentoo] USE="-minimal" 0 KiB [ebuild UD ] dev-util/debugedit-0.5.3.5-r1::gentoo [4.14.2::gentoo] 0 KiB [ebuild N ] dev-libs/beecrypt-4.2.1-r4::gentoo USE="cxx doc java python threads -static-libs" PYTHON_TARGETS="python2_7" 0 KiB Total: 3 packages (1 upgrade, 1 downgrade, 1 new), Size of downloads: 0 KiB root@lynx:/root(43)# debugedit-4.14.2 has been masked in /usr/portage/profiles/package.mask, the comment is "Apparently breaks sys-devel/gcc", referencing bug #666954. Of course beecrypt will build with the patch and therefore the downgrade will work (I just verified this). I don't know about the two revs to GCC, 7.3.0-r5 and 8.2.0-r3, yet. They take more than 30s to build ;-) Attached patch seems to work for me The bug has been closed via the following commit(s): https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=46aa079fc5c778a517af846385b728a26e4dd99d commit 46aa079fc5c778a517af846385b728a26e4dd99d Author: Sergei Trofimovich <slyfox@gentoo.org> AuthorDate: 2018-09-27 21:19:00 +0000 Commit: Sergei Trofimovich <slyfox@gentoo.org> CommitDate: 2018-09-27 21:20:40 +0000 dev-libs/beecrypt: tweak for icu-61, bug #666542 On icu-61 built failures look like: include/beecrypt/c++/lang/String.h:76:17: error: ‘UnicodeString’ does not name a type ICU-61 moved all names into icu:: space. The fix is to add 'using icu::<symbol>'. Reported-by: Juergen Rose Closes: https://bugs.gentoo.org/666542 Package-Manager: Portage-2.3.50, Repoman-2.3.11 dev-libs/beecrypt/beecrypt-4.2.1-r5.ebuild | 98 ++++++++++++++++++++++ .../beecrypt/files/beecrypt-4.2.1-icu-61.patch | 51 +++++++++++ 2 files changed, 149 insertions(+) |