Verlihub / verlihub

Verlihub 1.5.0.0
https://github.com/verlihub/
GNU General Public License v3.0
57 stars 15 forks source link

problem with unicode when compiling #206

Open 1o1o1 opened 5 months ago

1o1o1 commented 5 months ago

Verlihub_ERRORS.log

we have a problem with unicode when compiling
Archlihux gcc-14.1.1 & icu-75.1-1

==> Сборка пакета verlihub git.939.006c2ee-1 (Пт 24 мая 2024 23:19:37) ==> Проверка зависимостей для запуска... ==> Проверка зависимостей для сборки... ==> Получение исходных файлов... -> Клонирование репозитория 'verlihub' (git)... Клонирование в голый репозиторий «/usr/public/.works/verlihub-git/verlihub»... -> Найден verlihub.service -> Найден disable_redirects.patch -> Найден donat.patch ==> Проверка файлов source с использованием md5sums... verlihub ... Пропущено verlihub.service ... Готово disable_redirects.patch ... Готово donat.patch ... Готово ==> Распаковка исходных файлов... -> Создание рабочей копии репозитория 'verlihub' (git)... Клонирование в «verlihub»... готово. ==> Запускается prepare()... patching file share/sql/default_custom_redirects.sql patching file src/cdcconsole.cpp ==> Запускается pkgver()... ==> Запускается build()... CMake Deprecation Warning at CMakeLists.txt:19 (cmake_minimum_required): Compatibility with CMake < 3.5 will be removed from a future version of CMake.

Update the VERSION argument value or use a ... suffix to tell CMake that the project does not need compatibility with older versions.

-- The C compiler identification is GNU 14.1.1 -- The CXX compiler identification is GNU 14.1.1 -- Detecting C compiler ABI info -- Detecting C compiler ABI info - done -- Check for working C compiler: /usr/bin/cc - skipped -- Detecting C compile features -- Detecting C compile features - done -- Detecting CXX compiler ABI info -- Detecting CXX compiler ABI info - done -- Check for working CXX compiler: /usr/bin/c++ - skipped -- Detecting CXX compile features -- Detecting CXX compile features - done -- -- You can change build options with: -D{OPTION}=ON OFF -- You can turn on debug build with: -DDEFINE_DEBUG=ON -- You can disable all plugins with: -DWITHPLUGINS=OFF -- NOTE: Plugins other than LUA are now DEPRECATED -- You can enable or disable specific plugin with: -DWITH{NAME}=[ON/OFF] -- Plugin names: LUA PYTHON PERL FORBID CHATROOM IPLOG ISP MESSENGER STATS REPLACER FLOODPROT -- If you get errors related to autosprintf, please try with: -DUSE_CUSTOM_AUTOSPRINTF=ON

-- [ OK ] Library directory: /usr/lib -- Found OpenSSL: /usr/lib/libcrypto.so (found suitable version "3.3.0", minimum required is "1.1.0") -- [ OK ] Found Crypt: /usr/lib/libcrypt.so -- [ OK ] Found MySQL: /usr/include/mysql, /usr/lib/libmysqlclient.so -- Found ZLIB: /usr/lib/libz.so (found version "1.3.1") -- [ OK ] Found MaxMindDB: /usr/include, /usr/lib/libmaxminddb.so -- [ OK ] Found ICU libraries: [ OK ] /usr/lib/libicudata.so [ OK ] /usr/lib/libicui18n.so [ OK ] /usr/lib/libicuuc.so [ OK ] /usr/lib/libicuio.so -- Found ICU: /usr/lib/libicudata.so;/usr/lib/libicui18n.so;/usr/lib/libicuuc.so;/usr/lib/libicuio.so (found version "75.1.0") -- [ OK ] Found DL: /usr/include, /usr/lib/libdl.a -- [ OK ] Found PCRE: /usr/include, /usr/lib/libpcre.so;/usr/lib/libpcreposix.so -- Performing Test CMAKE_HAVE_LIBC_PTHREAD -- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Success -- Found Threads: TRUE -- Found Gettext: /usr/bin/msgmerge (found version "0.22.5") -- Looking for gettext -- Looking for gettext - found -- [ OK ] Found GetText: /usr/include -- Looking for dgettext -- Looking for dgettext - found -- Found Libintl: /usr/include -- [ OK ] Using custom internal autosprintf implementation. -- Looking for include file errno.h -- Looking for include file errno.h - found -- Looking for include file sys/poll.h -- Looking for include file sys/poll.h - found -- Looking for include file getopt.h -- Looking for include file getopt.h - found -- Looking for include file syslog.h -- Looking for include file syslog.h - found -- [ OK ] Build type: Release -- [ OK ] Generating configuration file: /usr/public/.works/verlihub-git/src/verlihub/build/config.h -- [ OK ] Generating directory settings file: /usr/public/.works/verlihub-git/src/verlihub/build/dirsettings.h -- [ OK ] Generating configuration file: /usr/public/.works/verlihub-git/src/verlihub/build/verlihub_config -- [ OK ] Building PLUGMAN plugin -- Found Lua: /usr/lib/liblua5.4.so;/usr/lib/libm.so (found suitable version "5.4.6", minimum required is "5.2") -- [ OK ] Building LUA plugin -- Not building PYTHON plugin because DEPRECATED, to enable please use: -DWITH_PYTHON=ON -- Not building PERL plugin because DEPRECATED, to enable please use: -DWITH_PERL=ON -- Not building FORBID plugin because DEPRECATED, to enable please use: -DWITH_FORBID=ON -- Not building CHATROOM plugin because DEPRECATED, to enable please use: -DWITH_CHATROOM=ON -- Not building IPLOG plugin because DEPRECATED, to enable please use: -DWITH_IPLOG=ON -- Not building ISP plugin because DEPRECATED, to enable please use: -DWITH_ISP=ON -- Not building MESSENGER plugin because DEPRECATED, to enable please use: -DWITH_MESSENGER=ON -- Not building STATS plugin because DEPRECATED, to enable please use: -DWITH_STATS=ON -- Not building REPLACER plugin because DEPRECATED, to enable please use: -DWITH_REPLACER=ON -- Not building FLOODPROT plugin because DEPRECATED, to enable please use: -DWITH_FLOODPROT=ON -- Generating vh_daemon -- Generating vh_lib -- Generating vh_gui -- Generating vh -- Generating vhm -- Generating vh_regimporter -- Generating vh_migration_0.9.8eto1.0 -- -- ========== Build information ========== -- -- [ OK ] Hub version: 1.5.0.2 -- [ OK ] CMAKE_INSTALL_PREFIX: /usr -- [ OK ] Building plugins: 2 of 12 -- [ OK ] Now please run "make" as current user and "make install" as super user. -- -- ================= End ================= -- -- Configuring done (11.5s) -- Generating done (0.3s) -- Build files have been written to: /usr/public/.works/verlihub-git/src/verlihub/build [ 0%] Built target make_time.h [ 0%] Building CXX object src/CMakeFiles/libverlihub.dir/casyncconn.cpp.o In file included from /usr/include/unicode/unistr.h:39, from /usr/include/unicode/translit.h:27, from /usr/public/.works/verlihub-git/src/verlihub/src/cicuconvert.h:27, from /usr/public/.works/verlihub-git/src/verlihub/src/cserverdc.h:42, from /usr/public/.works/verlihub-git/src/verlihub/src/casyncconn.cpp:27: /usr/include/unicode/stringpiece.h:133:29: ошибка: «enable_if_t» в пространстве имен «std» не именует тип шаблона 133 | typename = std::enable_if_t< | ^~~ /usr/include/unicode/stringpiece.h:133:24: замечание: «std::enable_if_t» is only available from C++14 onwards 133 | typename = std::enable_if_t< | ^~~ /usr/include/unicode/stringpiece.h:133:40: ошибка: expected «>» before «<» token 133 | typename = std::enable_if_t< | ^ In file included from /usr/include/unicode/uenum.h:25, from /usr/include/unicode/utrans.h:22, from /usr/include/unicode/translit.h:29: /usr/include/unicode/localpointer.h:561:26: ошибка: параметр декларирован «auto» 561 | template <typename Type, auto closeFunction> | ^~~~ /usr/include/unicode/localpointer.h:573:76: ошибка: некорректный аргумент шаблона 2 573 | explicit LocalOpenPointer(std::unique_ptr<Type, decltype(closeFunction)> &&p) | ^ /usr/include/unicode/localpointer.h:583:78: ошибка: некорректный аргумент шаблона 2 583 | LocalOpenPointer &operator=(std::unique_ptr<Type, decltype(closeFunction)> &&p) { | ^ /usr/include/unicode/localpointer.h:599:59: ошибка: некорректный аргумент шаблона 2 599 | operator std::unique_ptr<Type, decltype(closeFunction)> () && { | ^ /usr/include/unicode/uenum.h:69:1: замечание: некорректный нетиповый параметр шаблона 69 | U_DEFINE_LOCAL_OPEN_POINTER(LocalUEnumerationPointer, UEnumeration, uenum_close); | ^~~~~~~ /usr/include/unicode/uset.h:358:1: замечание: некорректный нетиповый параметр шаблона 358 | U_DEFINE_LOCAL_OPEN_POINTER(LocalUSetPointer, USet, uset_close); | ^~~~~~~ /usr/include/unicode/utrans.h:258:1: замечание: некорректный нетиповый параметр шаблона 258 | U_DEFINE_LOCAL_OPEN_POINTER(LocalUTransliteratorPointer, UTransliterator, utrans_close); | ^~~~~~~ /usr/include/unicode/ucnv.h:597:1: замечание: некорректный нетиповый параметр шаблона 597 | U_DEFINE_LOCAL_OPEN_POINTER(LocalUConverterPointer, UConverter, ucnv_close); | ^~~~~~~ make[2]: [src/CMakeFiles/libverlihub.dir/build.make:76: src/CMakeFiles/libverlihub.dir/casyncconn.cpp.o] Ошибка 1 make[1]: [CMakeFiles/Makefile2:281: src/CMakeFiles/libverlihub.dir/all] Ошибка 2 make: *** [Makefile:156: all] Ошибка 2 ==> ОШИБКА: Произошел сбой в build(). Прерывание...

RoLex commented 5 months ago

[ICU 75.1]

C++ code now requires C++17 and is being made more robust.

👎

RoLex commented 5 months ago

Same issue as we had with ICU 60 few years ago.

Please play with C++ standard flags:

cmake -DCMAKE_CXX_STANDARD=17 ..

1o1o1 commented 5 months ago

:( No! It's not working with cmake -DCMAKE_CXX_STANDARD=xx ..

RoLex commented 5 months ago

Please show fresh build log. If you have changed the standard, then you should be able to get rid of error like this one:

/usr/include/unicode/stringpiece.h:133:24: замечание: «std::enable_if_t» is only available from C++14 onwards
133 | typename = std::enable_if_t<
1o1o1 commented 5 months ago

you will see In file Verlihub_ERRORS.log

RoLex commented 5 months ago
==> Сборка пакета verlihub git.939.006c2ee-1 (Пт 24 мая 2024 23:19:37)

This is not fresh log.

1o1o1 commented 1 month ago

there's still error with new icu-75.1-1 ! :(

[ 0%] Built target make_time.h [ 0%] Building CXX object src/CMakeFiles/libverlihub.dir/casyncconn.cpp.o In file included from /usr/include/unicode/unistr.h:39, from /usr/include/unicode/translit.h:27, from /srv/apps/verlihub-git/src/verlihub/src/cicuconvert.h:27, from /srv/apps/verlihub-git/src/verlihub/src/cserverdc.h:42, from /srv/apps/verlihub-git/src/verlihub/src/casyncconn.cpp:27: /usr/include/unicode/stringpiece.h:133:29: ошибка: «enable_if_t» в пространстве имен «std» не именует тип шаблона 133 | typename = std::enable_if_t< | ^~~ /usr/include/unicode/stringpiece.h:133:24: замечание: «std::enable_if_t» is only available from C++14 onwards 133 | typename = std::enable_if_t< | ^~~ /usr/include/unicode/stringpiece.h:133:40: ошибка: expected «>» before «<» token 133 | typename = std::enable_if_t< | ^ In file included from /usr/include/unicode/uenum.h:25, from /usr/include/unicode/utrans.h:22, from /usr/include/unicode/translit.h:29: /usr/include/unicode/localpointer.h:561:26: ошибка: параметр декларирован «auto» 561 | template <typename Type, auto closeFunction> | ^~~~ /usr/include/unicode/localpointer.h:573:76: ошибка: некорректный аргумент шаблона 2 573 | explicit LocalOpenPointer(std::unique_ptr<Type, decltype(closeFunction)> &&p) | ^ /usr/include/unicode/localpointer.h:583:78: ошибка: некорректный аргумент шаблона 2 583 | LocalOpenPointer &operator=(std::unique_ptr<Type, decltype(closeFunction)> &&p) { | ^ /usr/include/unicode/localpointer.h:599:59: ошибка: некорректный аргумент шаблона 2 599 | operator std::unique_ptr<Type, decltype(closeFunction)> () && { | ^ /usr/include/unicode/uenum.h:69:1: замечание: некорректный нетиповый параметр шаблона 69 | U_DEFINE_LOCAL_OPEN_POINTER(LocalUEnumerationPointer, UEnumeration, uenum_close); | ^~~~~~~ /usr/include/unicode/uset.h:358:1: замечание: некорректный нетиповый параметр шаблона 358 | U_DEFINE_LOCAL_OPEN_POINTER(LocalUSetPointer, USet, uset_close); | ^~~~~~~ /usr/include/unicode/utrans.h:258:1: замечание: некорректный нетиповый параметр шаблона 258 | U_DEFINE_LOCAL_OPEN_POINTER(LocalUTransliteratorPointer, UTransliterator, utrans_close); | ^~~~~~~ /usr/include/unicode/ucnv.h:597:1: замечание: некорректный нетиповый параметр шаблона 597 | U_DEFINE_LOCAL_OPEN_POINTER(LocalUConverterPointer, UConverter, ucnv_close); | ^~~~~~~ make[2]: [src/CMakeFiles/libverlihub.dir/build.make:76: src/CMakeFiles/libverlihub.dir/casyncconn.cpp.o] Ошибка 1 make[1]: [CMakeFiles/Makefile2:281: src/CMakeFiles/libverlihub.dir/all] Ошибка 2 make: *** [Makefile:156: all] Ошибка 2 ==> ОШИБКА: Произошел сбой в build(). Прерывание...

1o1o1 commented 1 month ago

I had install library icu 74 for working with old compiled pkg verlihub with icu 74 with this pkg make by with AUR https://aur.archlinux.org/packages/icu74

could you make possible to specify the exact files ICU 74 for compiling
(/usr/lib/libicudata.so.74 /usr/lib/libicui18n.so.74 /usr/lib/libicuuc.so.74 /usr/lib/libicuio.so .74)

https://cmake.org/cmake/help/latest/module/FindICU.html

like that its possible?

-- [ OK ] Found ICU libraries: [ OK ] /usr/lib/libicudata.so.74 [ OK ] /usr/lib/libicui18n.so.74 [ OK ] /usr/lib/libicuuc.so.74 [ OK ] /usr/lib/libicuio.so .74