Усування проблем
Перебудова модуля проти локального компонента
Якщо ви знайдете проблему збірки з компонентом у своєму модулі, вам захочеться створити модуль, використовуючи локальний 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.