Qt 5.3 под CentOS 5 - собрано
Qt 5.6 под SLES 11 и openSUSE 11.4 - собрано
Qt 5.9 - в процессе
Когда-то я компилировал каждый релиз Qt5, а теперь - только LTS-релизы. После 5.9 скомпилирую следующий LTS-релиз 5.11
Почему под старые дистры? Для обратной совместимости. Собранное в старом, работает в новом. Например R-Studio имеет низкие системные требования: нужна система то ли с ядром 2.6.9, то ли 2.6.18, и при этом GUI на Qt4. Было бы здорово обновить GUI до Qt5 так, чтобы требования к минимально необходимой ОС не повышались
Во время компилирования Qt 5.9 возникла ошибка сборки с libproxy:
kernel/qnetworkproxy_libproxy.cpp: In member function 'QList<QUrl> QLibProxyWrapper::getProxies(const QUrl&)':
kernel/qnetworkproxy_libproxy.cpp:158:74: error: invalid conversion from 'const char*' to 'char*' [-fpermissive]
data.proxies = px_proxy_factory_get_proxies(factory, data.url);
^
In file included from kernel/qnetworkproxy_libproxy.cpp:52:0:
/usr/include/proxy.h:77:8: error: initializing argument 2 of 'char** px_proxy_factory_get_proxies(pxProxyFactory*, char*)' [-fpermissive]
char **px_proxy_factory_get_proxies(pxProxyFactory *self, char *url);
^
kernel/qnetworkproxy_libproxy.cpp: In member function 'virtual void QLibProxyWrapper::run()':
kernel/qnetworkproxy_libproxy.cpp:182:78: error: invalid conversion from 'const char*' to 'char*' [-fpermissive]
request->proxies = px_proxy_factory_get_proxies(factory, request->url);
^
In file included from kernel/qnetworkproxy_libproxy.cpp:52:0:
/usr/include/proxy.h:77:8: error: initializing argument 2 of 'char** px_proxy_factory_get_proxies(pxProxyFactory*, char*)' [-fpermissive]
char **px_proxy_factory_get_proxies(pxProxyFactory *self, char *url);
^
make[2]: *** [.obj/qnetworkproxy_libproxy.o] Error 1
Причина - в старой версии библиотеки libproxy, и её *.h-файлов. Я из-за этого уже накладывал патч на Firefox 52
Решить можно отключением поддержки libproxy в configure, или обновлением libproxy в OBS-репозитории. Но может возможно пропатчить? Дайте совет :-) У меня ничего не получилось, поэтому я обращаюсь за помощью к вам. Судя по тому, что я нашёл по этой ошибке - она заключается в том, что, в зависимости от настроек компилятора, он может выдавать разный результат на этом месте. Помогите, пожалуйста, исправить!
Исходник вот, а *.h-файлы libproxy доступны по ссылке выше. Может, на решение проблемы натолкнёт патч для Firefox? Там тоже что-то, связанное с «char»