Всем привет! Решил запустить 2GIS в Opensuse 11.4 Evergreen. Команды file, ldd и «strings 2gis | grep LIB» дали понять что нужно glibc 2.15 и C++ Runtime 4.9. Склонировал в репозиторий OBS binutils и glibc из Opensuse 12.2 (я это сделал ещё для Steam), GCC 4.9 из репозитория devel:gcc для Opensuse 13.1 - эти зависимости удовлетворены. Теперь «ldd 2gis» - хочет Qt 5.4. Не беда, компильнул. Программа работает, но плохо: справочник пустой, поле «Отправить отзыв» не обновляется.
Наверное в Qt, идущем в составе программы, есть какие-то патчи - а может быть ДубльГИС-у не понравились мои патчи для «отвязывания» QtWebkit от ICU. Решил удовлетворять зависимости для Qt из архива с программой. libjpeg8, icu 52 и Gstreamer 1.x. Первое нашлось в репозитории, второе компильнул, третье компильнуть не удалось - нужен Glib 2.32, а в системе 2.28. К счастью, эта библиотека нашлась в стороннем репозитории, её не пришлось компилировать самостоятельно. И Gstreamer 1.4.3 компильнулся.
Наконец, /usr/lib/2GIS/v4/plugins/platforms/libqxcb.so захотел несколько недостающих библиотек libxcb - компильнул. Вот ошибки при запуске:
$ LD_LIBRARY_PATH=/usr/src/packages/BUILDROOT/gcc49-4.9.2+r216911-51.1.x86_64/usr/lib64/:/home/zenitur/icu/usr/local/lib:/home/zenitur/xcb/usr/local/lib 2gis
2gis: /usr/lib64/libxml2.so.2: no version information available (required by /usr/lib/2GIS/v4/lib/libQt5WebKit.so.5)
2gis: /usr/lib64/libxml2.so.2: no version information available (required by /usr/lib/2GIS/v4/lib/libQt5WebKit.so.5)
2gis: /usr/lib64/libxml2.so.2: no version information available (required by /usr/lib/2GIS/v4/lib/libQt5WebKit.so.5)
(2gis:12742): GStreamer-WARNING **: External plugin loader failed. This most likely means that the plugin loader helper binary was not found or could not be run. You might need to set the GST_PLUGIN_SCANNER environment variable if your setup is unusual. This should normally not be required though.
Ошибка сегментирования
Во втором и последующих запусках ошибка с Gstreamer больше не появлялась.
$ LD_LIBRARY_PATH=/usr/src/packages/BUILDROOT/gcc49-4.9.2+r216911-51.1.x86_64/usr/lib64/:/home/zenitur/icu/usr/local/lib:/home/zenitur/xcb/usr/local/lib 2gis
2gis: /usr/lib64/libxml2.so.2: no version information available (required by /usr/lib/2GIS/v4/lib/libQt5WebKit.so.5)
2gis: /usr/lib64/libxml2.so.2: no version information available (required by /usr/lib/2GIS/v4/lib/libQt5WebKit.so.5)
2gis: /usr/lib64/libxml2.so.2: no version information available (required by /usr/lib/2GIS/v4/lib/libQt5WebKit.so.5)
QSslSocket: cannot resolve TLSv1_1_client_method
QSslSocket: cannot resolve TLSv1_2_client_method
QSslSocket: cannot resolve TLSv1_1_server_method
QSslSocket: cannot resolve TLSv1_2_server_method
QSslSocket: cannot resolve SSL_select_next_proto
QSslSocket: cannot resolve SSL_CTX_set_next_proto_select_cb
QSslSocket: cannot resolve SSL_get0_next_proto_negotiated
QThread::start: Thread creation error: Ресурс временно недоступен
1 0x7fc34bde07b7 /usr/lib/2GIS/v4/lib/libQt5WebKit.so.5(WTFCrash+0x17) [0x7fc34bde07b7]
2 0x7fc34bdf9c83 /usr/lib/2GIS/v4/lib/libQt5WebKit.so.5(_ZN3WTF10fastMallocEm+0x423) [0x7fc34bdf9c83]
3 0x7fc34bdfa4be /usr/lib/2GIS/v4/lib/libQt5WebKit.so.5(_ZN3WTF16fastZeroedMallocEm+0xe) [0x7fc34bdfa4be]
4 0x7fc34bda0422 /usr/lib/2GIS/v4/lib/libQt5WebKit.so.5(+0x17e8422) [0x7fc34bda0422]
5 0x7fc34bdbf562 /usr/lib/2GIS/v4/lib/libQt5WebKit.so.5(_ZN3JSC9Structure22materializePropertyMapERNS_2VME+0x3f2) [0x7fc34bdbf562]
6 0x7fc34adc0b90 /usr/lib/2GIS/v4/lib/libQt5WebKit.so.5(+0x808b90) [0x7fc34adc0b90]
7 0x7fc34bc3dbca /usr/lib/2GIS/v4/lib/libQt5WebKit.so.5(+0x1685bca) [0x7fc34bc3dbca]
8 0x7fc34bc3df55 /usr/lib/2GIS/v4/lib/libQt5WebKit.so.5(+0x1685f55) [0x7fc34bc3df55]
9 0x7fc2f6aa8b29 [0x7fc2f6aa8b29]
Ошибка сегментирования
После этой ошибки я обновил Openssl с 1.0.0 до 1.0.1 из этого репозитория. Вот как стало:
$ LD_LIBRARY_PATH=/usr/src/packages/BUILDROOT/gcc49-4.9.2+r216911-51.1.x86_64/usr/lib64/:/home/zenitur/icu/usr/local/lib:/home/zenitur/xcb/usr/local/lib 2gis
2gis: /usr/lib64/libxml2.so.2: no version information available (required by /usr/lib/2GIS/v4/lib/libQt5WebKit.so.5)
2gis: /usr/lib64/libxml2.so.2: no version information available (required by /usr/lib/2GIS/v4/lib/libQt5WebKit.so.5)
2gis: /usr/lib64/libxml2.so.2: no version information available (required by /usr/lib/2GIS/v4/lib/libQt5WebKit.so.5)
QThread::start: Thread creation error: Ресурс временно недоступен
1 0x7fe8018557b7 /usr/lib/2GIS/v4/lib/libQt5WebKit.so.5(WTFCrash+0x17) [0x7fe8018557b7]
2 0x7fe80189b085 /usr/lib/2GIS/v4/lib/libQt5WebKit.so.5(_ZN3WTF11OSAllocator18reserveUncommittedEmNS0_5UsageEbbb+0x55) [0x7fe80189b085]
3 0x7fe80188265c /usr/lib/2GIS/v4/lib/libQt5WebKit.so.5(_ZN3WTF21PageAllocationAligned8allocateEmmNS_11OSAllocator5UsageEb+0x4c) [0x7fe80188265c]
4 0x7fe801586505 /usr/lib/2GIS/v4/lib/libQt5WebKit.so.5(+0x1559505) [0x7fe801586505]
5 0x7fe801585d19 /usr/lib/2GIS/v4/lib/libQt5WebKit.so.5(+0x1558d19) [0x7fe801585d19]
6 0x7fe80158647b /usr/lib/2GIS/v4/lib/libQt5WebKit.so.5(_ZN3JSC15MarkedAllocator16allocateSlowCaseEm+0x11b) [0x7fe80158647b]
7 0x7fe8016bb25c /usr/lib/2GIS/v4/lib/libQt5WebKit.so.5(+0x168e25c) [0x7fe8016bb25c]
8 0x7fe7ac0ca891 [0x7fe7ac0ca891]
Ошибка сегментирования