Усування проблем

Проблеми з побудовою модуля

Перебудова модуля проти локального компонента

Якщо ви знайдете проблему збірки з компонентом у своєму модулі, вам захочеться створити модуль, використовуючи локальний git checkout для модуля, тож ви можете помістити виправлення там:

  • Перевіряти модуль з dist-git використовуючи fedpkg clone`як підкаталог `<path to checkouts>

  • Якщо ви не використовуєте fedora-packager-container, відредагуйте /etc/module-build-service/config.py, змініть RPMS_ALLOW_REPOSITORY = False на RPMS_ALLOW_REPOSITORY = True та в кінці додайте:

LocalBuildConfiguration.DISTGITS = {
    'https://src.fedoraproject.org': ('fedpkg clone --anonymous {}',
                                     'fedpkg --release module sources'),
    'file:///<path to checkouts>/': ('git clone file:///<path to checkouts>/{0}; git -C {0} remote set-url origin ssh://<username>@pkgs.fedoraproject.org/rpms/{0}',
                                     'fedpkg --release module sources'),
}
  • ВІдредагуйте ваш <application>.yaml та додайте рядок сховища:

    rpms:
      libpeas:
        repository: file:///<шлях_до_копії>/libpeas
        rationale: Runtime dependency
        ref: f33
  • Використовуйте fedpkg switch-branch, щоб перейти на rfe з <application.yaml> ( або змініть ref: у <application.yaml> на master)

  • Внесіть свої зміни та зробіть комміт

  • Спробуйте створити модуль ще раз

Швидке відлагодження prefix=/app збірки

Якщо у вас виникли проблеми зі збиранням компонента із префіксом prefix=/app і вам потрібні докладні діагностичні дані, швидким вирішенням буде тимчасово dnf install ~/modulebuild/cache/koji_tags/module-flatpak-runtime-f33-<найсвіжіша-версія>/flatpak-rpm-macros-*.x86_64.rpm, спроба повторного збирання пакунка із fedpkg local, виправлення проблем, а потім вилучення flatpak-rpm-macros. Якщо не вилучити flatpak-rpm-macros, усі зібрані вами локально пакунки буде зібрано із _prefix=/app, і вони не працюватимуть.

Файли за межами /app

Найпоширенішою причиною помилок при збиранні пакунків є те, що якийсь з файлів пакунка встановлюється до жорстко визначеного каталогу у /usr, а не з використанням визначення каталогу макросами, зокрема %{_prefix}, `%{_libdir}`тощо. Виправлення помилки може потребувати коригування файла spec, передавання додаткових параметрів команді make і, у рідкісних випадках, виправлення файлів Makefile.

Нестиснені сторінки підручника

У поточній версії RPM-сценарії, які стискають сторінки підручника, не стискають сторінки підручника в /app. Отже, якщо є RPM

%files
[...]
%{_mandir}/man1/<command>.1.gz

Він не зможе побудувати модуль Flatpak. Рекомендація, у правилах пакування Fedora, це мати:

%{_mandir}/man1/<command>.1*

що є більш надійним, натомість майбутніх змін RPM-сценаріїв для використання різного стиснення.

Проблеми зі складанням контейнеру

Збої при встановленні пакету

Під час встановлення пакетів для складання контейнера Flatpak, набір пакунків обмежений пакетами під час виконання та пакетами вбудованими у ваш модуль. Інщі пакети у Fedora будуть ігноровані. Якщо ви бачите повідомлення про відсутні залежності, які як ви знаєте є у Fedora, це відбувається тому, що їх ігнорують через це обмеження.

fedmod rpm2flatpak повинен був додати всі необхідні залежності не під час виконання вашого модуля. Однак, наступні зміни пакування можуть вимагати оновлення вашого модуля.

Ви також можете побачити збої, якщо пакет під час виконання зростав у нову залежність та час виконання не було оновлено. Якщо пакет із залежністю, що спричиняє збій dnf не є частиною вашого модуля, необхідно помітити проблему навпроти flatpak-runtime.