Bug#1092317: hfst ftbfs with icu-76.1
Matthias Klose
doko at debian.org
Tue Jan 7 12:12:47 GMT 2025
Package: src:hfst
Version: 3.16.1-3
Severity: important
User: debian-devel at lists.debian.org
Usertags: icu76
The package fails to build with icu 76.1-2 from experimental. The most
likely reason is that it's not built for the default C++17 standards,
and manually specifies an earlier standard.
The build log shows the package building with -std=c++11, and failing.
[...]
Making all in python
make[3]: Entering directory '/<<PKGBUILDDIR>>/python'
/usr/bin/python3 setup.py build
/usr/lib/python3/dist-packages/setuptools/dist.py:330: InformationOnly:
Normalizing '3.16.0_beta' to '3.16.0b0'
self.metadata.version = self._normalize_version(self.metadata.version)
file libhfst.py (for module libhfst) not found
file libhfst.py (for module libhfst) not found
libhfst.i:1528: Warning 321: 'compile' conflicts with a built-in name in
python
libhfst.i:1590: Warning 321: 'set' conflicts with a built-in name in python
libhfst.i:1672: Warning 321: 'compile' conflicts with a built-in name in
python
In file included from /usr/include/unicode/unistr.h:37,
from
/<<PKGBUILDDIR>>/libhfst/src/parsers/../implementations/optimized-lookup/transducer.h:39,
from
/<<PKGBUILDDIR>>/libhfst/src/parsers/../implementations/ConvertTransducerFormat.h:39,
from
/<<PKGBUILDDIR>>/libhfst/src/parsers/../implementations/HfstBasicTransducer.h:31,
from
/<<PKGBUILDDIR>>/libhfst/src/parsers/LexcCompiler.h:35,
from /<<PKGBUILDDIR>>/libhfst/src/HfstTransducer.h:21,
from libhfst_wrap.cpp:3981:
/usr/include/unicode/char16ptr.h:317:10: error: ‘is_convertible_v’ is
not a member of ‘std’; did you mean ‘is_convertible’?
317 | std::is_convertible_v<T, std::u16string_view>
| ^~~~~~~~~~~~~~~~
| is_convertible
/usr/include/unicode/char16ptr.h:317:28: error: expected
primary-expression before ‘,’ token
317 | std::is_convertible_v<T, std::u16string_view>
| ^
/usr/include/unicode/char16ptr.h:331:13: error: ‘u16string_view’ in
namespace ‘std’ does not name a type; did you mean ‘u16string’?
331 | inline std::u16string_view toU16StringView(std::u16string_view
sv) { return sv; }
| ^~~~~~~~~~~~~~
| u16string
/usr/include/unicode/char16ptr.h:339:13: error: ‘u16string_view’ in
namespace ‘std’ does not name a type; did you mean ‘u16string’?
339 | inline std::u16string_view
toU16StringView(std::basic_string_view<uint16_t> sv) {
| ^~~~~~~~~~~~~~
| u16string
/usr/include/unicode/char16ptr.h:360:36: error: ‘enable_if_t’ in
namespace ‘std’ does not name a template type
360 | typename = typename
std::enable_if_t<!std::is_pointer_v<std::remove_reference_t<T>>>>
| ^~~~~~~~~~~
/usr/include/unicode/char16ptr.h:360:36: note: ‘std::enable_if_t’ is
only available from C++14 onwards
/usr/include/unicode/char16ptr.h:360:47: error: expected ‘>’ before ‘<’
token
360 | typename = typename
std::enable_if_t<!std::is_pointer_v<std::remove_reference_t<T>>>>
| ^
/usr/include/unicode/char16ptr.h:361:13: error: ‘u16string_view’ in
namespace ‘std’ does not name a type; did you mean ‘u16string’?
361 | inline std::u16string_view toU16StringViewNullable(const T& text) {
| ^~~~~~~~~~~~~~
| u16string
/usr/include/unicode/char16ptr.h:370:36: error: ‘enable_if_t’ in
namespace ‘std’ does not name a template type
370 | typename = typename
std::enable_if_t<std::is_pointer_v<std::remove_reference_t<T>>>,
| ^~~~~~~~~~~
/usr/include/unicode/char16ptr.h:370:36: note: ‘std::enable_if_t’ is
only available from C++14 onwards
/usr/include/unicode/char16ptr.h:370:47: error: expected ‘>’ before ‘<’
token
370 | typename = typename
std::enable_if_t<std::is_pointer_v<std::remove_reference_t<T>>>,
| ^
/usr/include/unicode/char16ptr.h:372:13: error: ‘u16string_view’ in
namespace ‘std’ does not name a type; did you mean ‘u16string’?
372 | inline std::u16string_view toU16StringViewNullable(const T& text) {
| ^~~~~~~~~~~~~~
| u16string
In file included from /usr/include/unicode/unistr.h:40:
/usr/include/unicode/stringpiece.h:134:29: error: ‘enable_if_t’ in
namespace ‘std’ does not name a template type
134 | typename = std::enable_if_t<
| ^~~~~~~~~~~
/usr/include/unicode/stringpiece.h:134:24: note: ‘std::enable_if_t’ is
only available from C++14 onwards
134 | typename = std::enable_if_t<
| ^~~
/usr/include/unicode/stringpiece.h:134:40: error: expected ‘>’ before
‘<’ token
134 | typename = std::enable_if_t<
| ^
/usr/include/unicode/stringpiece.h:185:19: error: expected type-specifier
185 | inline operator std::string_view() const {
| ^~~
/usr/include/unicode/unistr.h:346:40: error: ‘enable_if_t’ in namespace
‘std’ does not name a template type
346 | template<typename S, typename =
std::enable_if_t<ConvertibleToU16StringView<S>>>
| ^~~~~~~~~~~
/usr/include/unicode/unistr.h:346:35: note: ‘std::enable_if_t’ is only
available from C++14 onwards
346 | template<typename S, typename =
std::enable_if_t<ConvertibleToU16StringView<S>>>
| ^~~
/usr/include/unicode/unistr.h:346:51: error: expected ‘>’ before ‘<’ token
346 | template<typename S, typename =
std::enable_if_t<ConvertibleToU16StringView<S>>>
| ^
/usr/include/unicode/unistr.h:381:40: error: ‘enable_if_t’ in namespace
‘std’ does not name a template type
381 | template<typename S, typename =
std::enable_if_t<ConvertibleToU16StringView<S>>>
| ^~~~~~~~~~~
/usr/include/unicode/unistr.h:381:35: note: ‘std::enable_if_t’ is only
available from C++14 onwards
381 | template<typename S, typename =
std::enable_if_t<ConvertibleToU16StringView<S>>>
| ^~~
/usr/include/unicode/unistr.h:381:51: error: expected ‘>’ before ‘<’ token
381 | template<typename S, typename =
std::enable_if_t<ConvertibleToU16StringView<S>>>
| ^
/usr/include/unicode/unistr.h:1959:40: error: ‘enable_if_t’ in namespace
‘std’ does not name a template type
1959 | template<typename S, typename =
std::enable_if_t<ConvertibleToU16StringView<S>>>
| ^~~~~~~~~~~
/usr/include/unicode/unistr.h:1959:35: note: ‘std::enable_if_t’ is only
available from C++14 onwards
1959 | template<typename S, typename =
std::enable_if_t<ConvertibleToU16StringView<S>>>
| ^~~
/usr/include/unicode/unistr.h:1959:51: error: expected ‘>’ before ‘<’ token
1959 | template<typename S, typename =
std::enable_if_t<ConvertibleToU16StringView<S>>>
| ^
/usr/include/unicode/unistr.h:2226:40: error: ‘enable_if_t’ in namespace
‘std’ does not name a template type
2226 | template<typename S, typename =
std::enable_if_t<ConvertibleToU16StringView<S>>>
| ^~~~~~~~~~~
/usr/include/unicode/unistr.h:2226:35: note: ‘std::enable_if_t’ is only
available from C++14 onwards
2226 | template<typename S, typename =
std::enable_if_t<ConvertibleToU16StringView<S>>>
| ^~~
/usr/include/unicode/unistr.h:2226:51: error: expected ‘>’ before ‘<’ token
2226 | template<typename S, typename =
std::enable_if_t<ConvertibleToU16StringView<S>>>
| ^
/usr/include/unicode/unistr.h:2299:40: error: ‘enable_if_t’ in namespace
‘std’ does not name a template type
2299 | template<typename S, typename =
std::enable_if_t<ConvertibleToU16StringView<S>>>
| ^~~~~~~~~~~
/usr/include/unicode/unistr.h:2299:35: note: ‘std::enable_if_t’ is only
available from C++14 onwards
2299 | template<typename S, typename =
std::enable_if_t<ConvertibleToU16StringView<S>>>
| ^~~
/usr/include/unicode/unistr.h:2299:51: error: expected ‘>’ before ‘<’ token
2299 | template<typename S, typename =
std::enable_if_t<ConvertibleToU16StringView<S>>>
| ^
/usr/include/unicode/unistr.h:3035:19: error: expected type-specifier
3035 | inline operator std::u16string_view() const {
| ^~~
/usr/include/unicode/unistr.h:3273:40: error: ‘enable_if_t’ in namespace
‘std’ does not name a template type
3273 | template<typename S, typename =
std::enable_if_t<ConvertibleToU16StringView<S>>>
| ^~~~~~~~~~~
/usr/include/unicode/unistr.h:3273:35: note: ‘std::enable_if_t’ is only
available from C++14 onwards
3273 | template<typename S, typename =
std::enable_if_t<ConvertibleToU16StringView<S>>>
| ^~~
/usr/include/unicode/unistr.h:3273:51: error: expected ‘>’ before ‘<’ token
3273 | template<typename S, typename =
std::enable_if_t<ConvertibleToU16StringView<S>>>
| ^
/usr/include/unicode/unistr.h:3599:40: error: ‘enable_if_t’ in namespace
‘std’ does not name a template type
3599 | template<typename S, typename =
std::enable_if_t<ConvertibleToU16StringView<S>>>
| ^~~~~~~~~~~
/usr/include/unicode/unistr.h:3599:35: note: ‘std::enable_if_t’ is only
available from C++14 onwards
3599 | template<typename S, typename =
std::enable_if_t<ConvertibleToU16StringView<S>>>
| ^~~
/usr/include/unicode/unistr.h:3599:51: error: expected ‘>’ before ‘<’ token
3599 | template<typename S, typename =
std::enable_if_t<ConvertibleToU16StringView<S>>>
| ^
/usr/include/unicode/unistr.h:3755:60: error: ‘std::u16string_view’ has
not been declared
3755 | static UnicodeString
readOnlyAliasFromU16StringView(std::u16string_view text);
|
^~~~~~~~~~~~~~
/usr/include/unicode/unistr.h:3871:64: error: ‘std::u16string_view’ has
not been declared
3871 | UnicodeString& doReplace(int32_t start, int32_t length,
std::u16string_view src);
|
^~~~~~~~~~~~~~
/usr/include/unicode/unistr.h:3875:32: error: ‘std::u16string_view’ has
not been declared
3875 | UnicodeString& doAppend(std::u16string_view src);
| ^~~~~~~~~~~~~~
/usr/include/unicode/unistr.h: In member function ‘bool
icu_76::UnicodeString::operator==(const S&) const’:
/usr/include/unicode/unistr.h:348:10: error: ‘u16string_view’ is not a
member of ‘std’; did you mean ‘u16string’?
348 | std::u16string_view sv(internal::toU16StringView(text));
| ^~~~~~~~~~~~~~
| u16string
/usr/include/unicode/unistr.h:350:46: error: ‘sv’ was not declared in
this scope
350 | return !isBogus() && (len = length()) == sv.length() &&
doEquals(sv.data(), len);
| ^~
/usr/include/unicode/unistr.h: In member function
‘icu_76::UnicodeString& icu_76::UnicodeString::operator=(const S&)’:
/usr/include/unicode/unistr.h:1962:45: error: ‘toU16StringView’ is not a
member of ‘icu_76::internal’
1962 | return doReplace(0, length(), internal::toU16StringView(src));
| ^~~~~~~~~~~~~~~
/usr/include/unicode/unistr.h: In member function
‘icu_76::UnicodeString& icu_76::UnicodeString::operator+=(const S&)’:
/usr/include/unicode/unistr.h:2228:31: error: ‘toU16StringView’ is not a
member of ‘icu_76::internal’
2228 | return doAppend(internal::toU16StringView(src));
| ^~~~~~~~~~~~~~~
/usr/include/unicode/unistr.h: In member function
‘icu_76::UnicodeString& icu_76::UnicodeString::append(const S&)’:
/usr/include/unicode/unistr.h:2301:31: error: ‘toU16StringView’ is not a
member of ‘icu_76::internal’
2301 | return doAppend(internal::toU16StringView(src));
| ^~~~~~~~~~~~~~~
/usr/include/unicode/unistr.h: In constructor
‘icu_76::UnicodeString::UnicodeString(const S&)’:
/usr/include/unicode/unistr.h:3276:24: error: ‘toU16StringViewNullable’
is not a member of ‘icu_76::internal’
3276 | doAppend(internal::toU16StringViewNullable(text));
| ^~~~~~~~~~~~~~~~~~~~~~~
/usr/include/unicode/unistr.h: In static member function ‘static
icu_76::UnicodeString icu_76::UnicodeString::readOnlyAlias(const S&)’:
/usr/include/unicode/unistr.h:3601:53: error: ‘toU16StringView’ is not a
member of ‘icu_76::internal’
3601 | return
readOnlyAliasFromU16StringView(internal::toU16StringView(text));
| ^~~~~~~~~~~~~~~
/usr/include/unicode/unistr.h: At global scope:
/usr/include/unicode/unistr.h:4116:38: error: ‘enable_if_t’ in namespace
‘std’ does not name a template type
4116 | template<typename S, typename =
std::enable_if_t<ConvertibleToU16StringView<S>>>
| ^~~~~~~~~~~
/usr/include/unicode/unistr.h:4116:33: note: ‘std::enable_if_t’ is only
available from C++14 onwards
4116 | template<typename S, typename =
std::enable_if_t<ConvertibleToU16StringView<S>>>
| ^~~
/usr/include/unicode/unistr.h:4116:49: error: expected ‘>’ before ‘<’ token
4116 | template<typename S, typename =
std::enable_if_t<ConvertibleToU16StringView<S>>>
| ^
/usr/include/unicode/unistr.h: In function ‘icu_76::UnicodeString
icu_76::operator+(const UnicodeString&, const S&)’:
/usr/include/unicode/unistr.h:4118:46: error: ‘toU16StringView’ is not a
member of ‘icu_76::internal’
4118 | return unistr_internalConcat(s1, internal::toU16StringView(s2));
| ^~~~~~~~~~~~~~~
/usr/include/unicode/unistr.h:4118:10: error: there are no arguments to
‘unistr_internalConcat’ that depend on a template parameter, so a
declaration of ‘unistr_internalConcat’ must be available [-fpermissive]
4118 | return unistr_internalConcat(s1, internal::toU16StringView(s2));
| ^~~~~~~~~~~~~~~~~~~~~
/usr/include/unicode/unistr.h:4118:10: note: (if you use ‘-fpermissive’,
G++ will accept your code, but allowing the use of an undeclared name is
deprecated)
/usr/include/unicode/unistr.h: At global scope:
/usr/include/unicode/unistr.h:4125:53: error: ‘std::u16string_view’ has
not been declared
4125 | unistr_internalConcat(const UnicodeString &s1,
std::u16string_view s2);
| ^~~~~~~~~~~~~~
In file included from libhfst_wrap.cpp:4008:
hfst_lookup_extensions.cpp:51:140: warning: dynamic exception
specifications are deprecated in C++11 [-Wdeprecated]
51 | HfstOneLevelPaths lookup_vector(const hfst::HfstTransducer *
tr, bool fd, const StringVector& s, int limit = -1, double time_cutoff =
0.0) throw(TransducerIsCyclicException, FunctionNotImplementedException)
|
^~~~~
hfst_lookup_extensions.cpp:69:139: warning: dynamic exception
specifications are deprecated in C++11 [-Wdeprecated]
69 | HfstOneLevelPaths lookup_string(const hfst::HfstTransducer *
tr, bool fd, const std::string& s, int limit = -1, double time_cutoff =
0.0) throw(TransducerIsCyclicException, FunctionNotImplementedException)
|
^~~~~
error: command '/usr/bin/x86_64-linux-gnu-g++' failed with exit code 1
make[3]: *** [Makefile:685: %_wrap.cpp.cpp] Error 1
make[3]: Leaving directory '/<<PKGBUILDDIR>>/python'
make[2]: *** [Makefile:500: all-recursive] Error 1
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[1]: *** [Makefile:411: all] Error 2
make[1]: Leaving directory '/<<PKGBUILDDIR>>'
More information about the debian-science-maintainers
mailing list