Проблема и окружающая среда
Korora 23 (Fedora 23)
rpmbuild --versionRPM version 4.13.0-rc1
Я пытаюсь сделать локальный пакетfreefilesyncдля себя. Сайт предлагает версию openSUSE, которую я пытаюсь упаковать для Fedora.
Ошибка
Processing files: freefilesync-8.2-1.fc23.x86_64
Provides: config(freefilesync) = 8.2-1.fc23 freefilesync = 8.2-1.fc23 freefilesync(x86-64) = 8.2-1.fc23
Requires(interp): /bin/sh /bin/sh
Requires(rpmlib): rpmlib(CompressedFileNames) <= 3.0.4-1 rpmlib(FileDigests) <= 4.6.0-1 rpmlib(PayloadFilesHavePrefix) <= 4.0-1
Requires(post): /bin/sh
Requires(postun): /bin/sh
Requires: libX11.so.6()(64bit) libXxf86vm.so.1()(64bit) libatk-1.0.so.0()(64bit) libc.so.6()(64bit) libc.so.6(GLIBC_2.10)(64bit) libc.so.6(GLIBC_2.14)(64bit) libc.so.6(GLIBC_2.17)(64bit) libc.so.6(GLIBC_2.2.5)(64bit) libc.so.6(GLIBC_2.3)(64bit) libc.so.6(GLIBC_2.3.2)(64bit) libc.so.6(GLIBC_2.4)(64bit) libc.so.6(GLIBC_2.6)(64bit) libcairo.so.2()(64bit) libdl.so.2()(64bit) libdl.so.2(GLIBC_2.2.5)(64bit) libexpat.so.1()(64bit) libfontconfig.so.1()(64bit) libfreetype.so.6()(64bit) libgcc_s.so.1()(64bit) libgcc_s.so.1(GCC_3.0)(64bit) libgdk-x11-2.0.so.0()(64bit) libgdk_pixbuf-2.0.so.0()(64bit) libgio-2.0.so.0()(64bit) libglib-2.0.so.0()(64bit) libgobject-2.0.so.0()(64bit) libgthread-2.0.so.0()(64bit) libgtk-x11-2.0.so.0()(64bit) libm.so.6()(64bit) libm.so.6(GLIBC_2.2.5)(64bit) libpango-1.0.so.0()(64bit) libpangocairo-1.0.so.0()(64bit) libpangoft2-1.0.so.0()(64bit) libpng16.so.16()(64bit) libpng16.so.16(PNG16_0)(64bit) libpthread.so.0()(64bit) libpthread.so.0(GLIBC_2.2.5)(64bit) libpthread.so.0(GLIBC_2.3.2)(64bit) libstdc++.so.6()(64bit) libstdc++.so.6(CXXABI_1.3)(64bit) libstdc++.so.6(CXXABI_1.3.2)(64bit) libstdc++.so.6(CXXABI_1.3.3)(64bit) libstdc++.so.6(CXXABI_1.3.5)(64bit) libstdc++.so.6(CXXABI_1.3.9)(64bit) libstdc++.so.6(GLIBCXX_3.4)(64bit) libstdc++.so.6(GLIBCXX_3.4.11)(64bit) libstdc++.so.6(GLIBCXX_3.4.14)(64bit) libstdc++.so.6(GLIBCXX_3.4.15)(64bit) libstdc++.so.6(GLIBCXX_3.4.18)(64bit) libstdc++.so.6(GLIBCXX_3.4.19)(64bit) libstdc++.so.6(GLIBCXX_3.4.20)(64bit) libstdc++.so.6(GLIBCXX_3.4.21)(64bit) libstdc++.so.6(GLIBCXX_3.4.9)(64bit) libz.so.1()(64bit) libz.so.1(ZLIB_1.2.0)(64bit)
Processing files: freefilesync-debuginfo-8.2-1.fc23.x86_64
error: Empty %files file /home/bgstack15-local/rpmbuild/BUILD/freefilesync-8.2/debugfiles.list
RPM build errors:
Empty %files file /home/bgstack15-local/rpmbuild/BUILD/freefilesync-8.2/debugfiles.list
Что я уже пробовал
Заhttps://lists.opensuse.org/opensuse-buildservice/2015-11/msg00016.htmlКак вы видите, я уже пытался добавить эту строку в свою спецификацию, но это не помогло:
%global debug_package %{nil}
По какой-то причине эта страница не предоставляет мне полезной информации. Может быть, я неправильно читаю?https://fedoraproject.org/wiki/Packaging:Debuginfo
Дополнительная информация
На самом деле я не программирую. Я просто упаковываю двоичные файлы, уже предоставленные фирмой, и упаковываю все для себя для моих домашних развертываний GNU/Linux.
решение1
В RPM порядок разделов и макросов имеет значение. Особенно для %define
-s и %global
-s («глобальные определения»).
Перемещение (или добавление, если у вас его еще нет) указанных %global debug_package %{nil}
выше разделов %prep
и %setup
должно решить эту задачу.
решение2
Если вы не хотите вносить изменения в файл спецификаций, вы можете выполнить команду следующим образом:
rpmbuild -ba -D 'debug_package %{nil}' package_name.spec
решение3
Моя проблема была решена перемещением директивы %global прямо под директиву %description. Я не знаю, почему размещение имеет значение.
решение4
На основе ответа @MrTau, но для пересборки из .src.rpm:
rpmbuild -D 'debug_package %{nil}' --rebuild <package>.src.rpm