Поиск и устранение неисправностей

Проблемы со сборкой пакетов

Пересборка flatpak с использованием локального компонента

Если вы обнаружили проблему сборки с пакетом в вашем flatpak, вам потребуется собрать flatpak, используя локальную копию git для этого пакета, чтобы можно было внести исправления:

  • Получите пакет из dist-git с помощью fedpkg clone

  • Используйте fedpkg switch-branch для переключения на ветку f44 (если она существенно отличается от rawhide)

  • Внесите свои изменения и убедитесь, что исходные файлы загружены с помощью fedpkg sources

  • Соберите локально с помощью flatpak-module build-rpms-local /path/to/checkout

  • При необходимости соберите любые другие пакеты с помощью flatpak-module build-rpms-local --auto

  • После успешной сборки установите локально с помощью flatpak-module build-container-local --install

Быстрая отладка сборок с prefix=/app

Если вы столкнулись с проблемой, когда пакет не собирается с prefix=/app, и вам необходима подробная отладка,

  • Соберите локально с помощью flatpak-module build-rpms-local --auto (или укажите проблемный пакет по имени SRPM)

  • Если сборка завершится ошибкой, вывод в консоли покажет файлы журналов, а также включат инструкции для входа в buildroot:

вывод консоли
  python-pyside6: Ошибка сборки
      x86_64/work/rpms/python-pyside6/build.log
      x86_64/work/rpms/python-pyside6/hw_info.log
      x86_64/work/rpms/python-pyside6/installed_pkgs.log
      x86_64/work/rpms/python-pyside6/mock_output.log
      x86_64/work/rpms/python-pyside6/root.log
      x86_64/work/rpms/python-pyside6/state.log
      chroot: /var/lib/mock/flatpak-module-f44-x86_64-0/root/
      Вход в chroot: mock -r x86_64/work/rpms/mock.cfg --uniqueext 0 --shell

Файлы за пределами /app

Наиболее распространённая причина сбоя сборки пакета заключается в том, что какой-либо файл в пакете устанавливается с жёстко заданным путём /usr вместо использования макросов, таких как %{_prefix}, %{_libdir} и т. д. Это может потребовать корректировки файла спецификации, передачи дополнительных переменных в команду make или, в редких случаях, исправления Makefile.

Проблемы со сборкой контейнера

Сбои при установке пакетов

При установке пакетов для сборки контейнера Flatpak набор пакетов ограничивается пакетами в среде выполнения и пакетами, пересобранными для flatpak. Другие пакеты в Fedora будут игнорироваться. Если вы видите сообщение об отсутствующих зависимостях, которые, как вы знаете, есть в Fedora, это происходит потому, что они игнорируются из-за этого ограничения.

flatpak-module build-rpms --auto должен собрать все необходимые зависимости, отсутствующие в среде выполнения для flatpak. Однако последующие изменения в упаковке могут добавить новые зависимости, и в этом случае вам может потребоваться запустить это несколько раз.

Вы также можете увидеть ошибки, если пакет в среде выполнения получил новую зависимость, а среда выполнения не была обновлена. Если пакет с зависимостью, вызывающей сбой dnf, не является частью вашего flatpak, пожалуйста, создайте задачу в трекере проблем Fedora Flatpaks.