Подскажите по сборке программы из исходников

Ответить
Аватара пользователя
Zeffanyx
Сообщения: 1180
Зарегистрирован: 12 сен 2011, 14:25
Operating system: Rosa Fresh R11, OpenMandriva Lx 4 (Cooker)
Откуда: Санкт-Петербург

Подскажите по сборке программы из исходников

Сообщение Zeffanyx » 05 дек 2018, 17:48

Последние 3 дня убил на сборку зависимостей для DNF. И вот, уже почти всё получилось, но в самом конце вываливается ошибка при сборке библиотеки libdnf:
[ 17%] Building CXX object libdnf/CMakeFiles/libdnf.dir/dnf-context.cpp.o
In file included from /home/zeffanyx/Sources/libdnf/libdnf/dnf-context.cpp:37:0:
/usr/include/rpm/rpmts.h:11:42: фатальная ошибка: rpmpgp.h: Нет такого файла или каталога
компиляция прервана.
make[2]: *** [libdnf/CMakeFiles/libdnf.dir/build.make:495: libdnf/CMakeFiles/libdnf.dir/dnf-context.cpp.o] Ошибка 1
make[1]: *** [CMakeFiles/Makefile2:94: libdnf/CMakeFiles/libdnf.dir/all] Ошибка 2
make: *** [Makefile:139: all] Ошибка 2
При этом, в системе имеется файл /usr/include/rpm/rpmpgp.h, но в rpmts.h ссылка на него выглядит так:
#include <rpmpgp.h> /* XXX pgpVSFlags */
и поэтому при сборке он ошибочно ищется в /usr/include/, где его, разумеется, нет.
Я хочу понять, почему возникает эта ошибка, и как правильно её исправить.
Заранее спасибо.

Аватара пользователя
Zeffanyx
Сообщения: 1180
Зарегистрирован: 12 сен 2011, 14:25
Operating system: Rosa Fresh R11, OpenMandriva Lx 4 (Cooker)
Откуда: Санкт-Петербург

Подскажите по сборке программы из исходников

Сообщение Zeffanyx » 05 дек 2018, 18:59

В общем, разобрался, что в CMakeLists.txt нужно было добавить строчку:
INCLUDE_DIRECTORIES ("/usr/include/rpm")
Но сборка по-прежнему не проходит - сыпется множество других ошибок типа
ошибка: «rpmRC» не является именем типа
rpmRC rpmInstallSourcePackage(rpmts ts, void * _fd,
В общем, буду рад если кто-нибудь успешно соберёт данную библиотеку и поделится рецептом!
https://github.com/edynox/libdnf.git

P.S. Может быть где-то есть форк Libdnf, который лучше дружит с RPM5?

Ответить