Для того, чтобы иметь возможность навигации по исходникам Qt4 в QtCreator (не только по h-файлам), мне нужно собрать этот Qt4 из исходников.
Я получил исходники штатным для Debian 9 способом, описанным здесь:
Как в Debian 9 прописать каталог исходников Qt4 (4.8.7) в QtCreator 4.9 ?
А так как простое прописывание путей к исходникам в QtCreator не помогает, я попытался собрать пакет из этих исходников самостоятельно. Для этого, сначала надо доустановить все зависимости:
apt-get build-dep qt4-default
А потом в каталоге с исходниками надо запустить:
fakeroot ./debian/rules binary
И сборка даже идет, но затыкается на отсутствии некоторых *.h-файлов. Все, какие возможно *.h-файлы я нашел через команды:
apt-file update
apt-file search <имя файла>
И вручную доустановил соответствующие пакеты. Однако оказалось, что в исходниках используются h-файлы, которых просто нет в системе ни в одном пакете.
Тогда я решил проверить, может быть удастся собрать через configure & make, благо configure есть в каталоге исходников. И это сработало. Тоже была пара ошибок, забыли положить исходники jquery в демопримеры, еще что-то, но сборка прошла.
Далее нужно сделать пакет. Традиционно, команда checkinstall -D обосралась и не смогла создать каталоги. Поэтому пришлось сделать make install, и потом запустить checkinstall -D. Но пакет собрать не получилось - система зависает на выхлопе:
/doc/html/declarative-modelviews-stringlistmodel.html
./doc/html/demos-embedded-embeddedsvgviewer-spheres-svg.html
./INSTALL
Файлы копируются во временный каталог...
Ждал полтора часа, толку нет. Пробовал и такую команду:
checkinstall -D --install=no
Виснет на том же месте.
Тогда попробовал опять дать команду:
fakeroot ./debian/rules binary
типа исходники уже собраны, должна пройти только сборка пакета. Так и получилось, исходники уже не собирались, однако процесс сборки пакета завершился ошибкой:
# Fix wrong path in pkgconfig files
find /opt/qt_4_8_7/src/qt4-x11-4.8.7+dfsg/debian/tmp/usr/lib/*/pkgconfig -type f -name '*.pc' \
-exec perl -pi -e "s, -L/opt/qt_4_8_7/src/qt4-x11-4.8.7+dfsg/?\S+,,g" {} \;
find: ‘/opt/qt_4_8_7/src/qt4-x11-4.8.7+dfsg/debian/tmp/usr/lib/*/pkgconfig’: Нет такого файла или каталога
debian/rules:261: ошибка выполнения рецепта для цели «override_dh_auto_install»
make[1]: *** [override_dh_auto_install] Ошибка 1
И действительно, в файле /debian/rules написано следующее:
override_dh_auto_install:
dh_auto_install -Smakefile -- INSTALL_ROOT=$(CURDIR)/debian/tmp/
# Remove libtool-like files
rm -fv debian/tmp/usr/lib/$(DEB_HOST_MULTIARCH)/*.la
# Fix wrong path in pkgconfig files
find $(CURDIR)/debian/tmp/usr/lib/*/pkgconfig -type f -name '*.pc' \
-exec perl -pi -e "s, -L$(CURDIR)/?\S+,,g" {} \;
И проблема в том, что каталог ./debian/tmp/usr есть, а каталога ./debian/tmp/usr/lib/ - нет. Вообще-то, есть ./debian/tmp/usr/local/Trolltech/Qt-4.8.7/lib, но непонятно он ли имеется в виду. То есть, что-то где-то напутали.
В общем, я так и не могу собрать пакет с Qt4, чтобы не засирать систему через make install.
Вопрос: как блин получить самосборный пакет Qt4 с исходниками? Что еще и где надо дописывать доконфигурировать?