Первоначальная упаковка

  • Проверен upstream source URL, source archive не является prebuilt binary/wheel/jar-only.
  • License указан SPDX-совместимо; license files добавлены через %license.
  • Spec называется %{name}.spec; .changes создан через osc vc.
  • BuildRequires минимальны и достаточны.
  • %prep использует %autosetup -p1, если нет причины иначе.
  • %build уважает %{optflags}.
  • %install пишет только в %{buildroot}.
  • %check включён или отключение тестов объяснено.
  • Все файлы принадлежат пакету; нет unowned directories.
  • rpmlint просмотрен; каждый rpmlintrc filter обоснован.
  • Локально проверены минимум Tumbleweed x86_64; для библиотек - ещё aarch64 в OBS.

Пример стартовой сессии:

osc mkpac foo
cd foo
cp ~/Downloads/foo-1.0.0.tar.zst .
rpmdev-newspec foo
osc add foo.spec foo.changes foo-1.0.0.tar.zst
osc build openSUSE_Tumbleweed x86_64 foo.spec
osc vc
osc ci -m "Add foo"

Изменение существующего пакета

  • osc up; проверен diff до изменений.
  • Изменение минимально и соответствует ветке: Factory можно обновлять, Leap update требует bugfix/security rationale.
  • .changes содержит версию, bug/CVE, patch names.
  • Старые patches пересмотрены, лишние удалены.
  • Reverse dependencies оценены при SONAME/API change.
  • osc build и osc buildlog чистые.

Отправка на Factory / Leap

  • Для Factory: package принят в devel project, SR идёт из devel project, не из home:.
  • Legal/source validator ожидаемо проходят.
  • Новые shared libraries названы по policy.
  • Для Leap: проверено, не inherited ли пакет из SLE; выбран правильный update target.
  • Для maintenance: patchinfo содержит category, rating, summary, description, bug/CVE.

Где искать дополнительно