Upstream update available: tdnf 3.5.12 → 3.6.4 #1

Open
opened 2026-04-28 02:19:56 +03:00 by sbelikov · 0 comments
Owner

Upstream update available: tdnf 3.5.123.6.4

Package

  • Package: tdnf
  • RPM name: tdnf
  • Branch: niceos-5.2
  • Current EVR: 3.5.12-1
  • Update class: minor
  • Compare method: python_rpm
  • Update policy: toolchain
  • Risk tags: github-upstream, patch-debt, toolchain

Upstream

Signals

  • Security-relevant keywords detected: False
  • Policy blocked: False
  • Policy reason: -
  • Labels: ai-summary, bot, needs-build, needs-triage, priority/high, update/minor, upstream-update, upstream/github

NiceSOFT AI preliminary analysis

1. Краткий вывод

Обновление tdnf с версии 3.5.12 до 3.6.4 является минорным релизом, содержащим исправления критических багов (segfault при пустой конфигурации, deadlock с RPM 6) и новые функции поддержки репозиториев. Обновление классифицируется как toolchain, что требует осторожности при автоматическом применении в дистрибутиве.

2. Риск для НАЙС.ОС

medium.
Обновление затрагивает инструмент сборки и управления пакетами (tdnf), который является частью цепочки поставок. Наличие тегов patch-debt и toolchain указывает на потенциальные изменения в поведении или зависимостях. Хотя это минорная версия, исправление deadlock с RPM 6 и segfault меняет поведение программы в граничных условиях, что требует тестирования на стабильности сборки и работы менеджера пакетов.

3. Security/CVE

Во входных данных отсутствуют явные указания на уязвимости безопасности. Поле security_keywords_detected_by_script равно False, а в списке изменений (Release notes) нет упоминаний исправлений эксплойтов, утечек памяти или обхода прав доступа, характерных для security-critical патчей.

4. ABI/API риск

Данных недостаточно для оценки ABI/API риска.
Изменения касаются преимущественно логики работы с репозиториями (xml:base), истории транзакций и внутренних вызовов RPM (rpmtsOpenDB). Поскольку tdnf — это бинарный инструмент, а не библиотека с публичным API, прямой ABI-риск для внешних приложений низок, однако изменения в обработке конфигурации и сценариях установки могут повлиять на скрипты пост-установки или пользовательские команды. Требуется проверка совместимости с локальными патчами и сценариями.

5. Риск для RPM-сборки

Возможен риск конфликтов в секции %posttrans и работе с базой данных истории.

  • Удаление %posttrans скриплетa из tdnf.spec может повлиять на пакеты, зависящие от специфического поведения этого скриплета в контексте НАЙС.ОС.
  • Изменения в работе с rpmtsOpenDB() и устранение deadlock'а с RPM 6 могут изменить время выполнения сборки или поведение при параллельной сборке.
  • Новые зависимости или требования к тестам (например, адаптация под unshare в RPM 6) могут потребовать обновления окружения сборки.

6. Проверки мейнтейнера

  • Проверить наличие локальных патчей в tdnf.spec, которые могут быть нарушены удалением %posttrans или изменением логики истории.
  • Протестировать команду tdnf history id и работу с пустым конфигом (-c /dev/null) в среде сборки.
  • Проверить корректность разрешения зависимостей для сценариев "snapshot" (если используются локальные пулы пакетов).
  • Убедиться, что тесты CI адаптированы под новый формат подписи GPG в RPM 6 (если используется локальная версия RPM 6).
  • Проверить отсутствие регрессий в установке пакетов через локальные пути.

7. Рекомендация

update candidate

8. Основание рекомендации

Обновление содержит важные исправления стабильности (segfault, deadlock), которые критичны для надежности toolchain. Текущая версия (3.5.12) старше последней стабильной (3.6.4) более чем на одну минорную версию, что увеличивает технический долг. Несмотря на статус toolchain, отсутствие признаков критической уязвимости и наличие подробного changelog позволяют рекомендовать обновление как кандидата после прохождения стандартных проверок мейнтейнера. Автоматическое применение без проверки рискованно из-за тегов patch-debt, но ручное обновление допустимо.

Upstream release notes / description

🚀 Features & Enhancements

  • Repodata xml:base Support: tdnf now correctly interprets the xml:base (SOLVABLE_MEDIABASE) attribute in package repodata, enabling flexible package location referencing (e.g., shared package pools). Includes a new make-snapshot-repo script for creating filtered repodata.
  • History ID: Implemented the tdnf history id command to retrieve the current transaction ID.
  • Configurable Timeouts: Added a configurable connection timeout for downloads.

🐛 Bug Fixes

  • Snapshot Obsoletes: Fixed dependency resolution for snapshots by filtering out packages from pool->considered in three places, correctly handling scenarios where a package in a snapshot obsoletes a package not in the snapshot.
  • Command Line Installs: Fixed issues with installing packages directly from the command line via local paths.
  • RPM 6 Deadlock: Removed %posttrans scriptlet from tdnf.spec and removed redundant rpmtsOpenDB() calls in the history utility to prevent database lock deadlocks when used alongside RPM 6.
  • Empty Config Segfault: Fixed a segmentation fault that occurred when running tdnf with an empty configuration file (e.g., -c /dev/null).
  • Download Errors: Improved user experience by properly printing the URLs and detailed error messages when HTTP package downloads fail.

🧪 Testing & CI

  • RPM 6 Compatibility: Adjusted the test suite to handle RPM 6's new unshare scriptlet isolation plugin (which caused issues in unprivileged Docker containers) and updated signature tests to accommodate RPM 6's gpg-pubkey fingerprint format upgrades.
  • Test Coverage: Added extensive tests covering xml:base, history id, empty configuration files, HTTP error reporting, and snapshot obsoletes.

Full Changelog: https://github.com/vmware/tdnf/compare/v3.6.3...v3.6.4

NiceOS maintainer checklist

  • Confirm that the detected version is a stable upstream release.
  • Check upstream changelog for security fixes, ABI/API changes and build-system changes.
  • Check ABI/API compatibility and reverse dependencies.
  • Download source into NiceOS lookaside storage.
  • Update Version and related fields in SPECS/*.spec only if policy allows it.
  • Regenerate SOURCES/sources.lock.json, manifests, metadata and SBOM.
  • Build SRPM/RPM in a clean NiceOS buildroot.
  • Run package smoke tests.
  • Link PR/build logs and close this issue after update or triage.

Bot metadata

  • Tool: niceos_upstream_monitor.py 1.4
  • Generated at: 2026-04-27T23:19:56Z
<!-- niceos-upstream-monitor:fingerprint=upstream-update:tdnf:3.6.4 --> <!-- niceos-upstream-monitor:package=tdnf --> <!-- niceos-upstream-monitor:current=3.5.12 --> <!-- niceos-upstream-monitor:latest=3.6.4 --> # Upstream update available: `tdnf` `3.5.12` → `3.6.4` ## Package - Package: `tdnf` - RPM name: `tdnf` - Branch: `niceos-5.2` - Current EVR: `3.5.12-1` - Update class: `minor` - Compare method: `python_rpm` - Update policy: `toolchain` - Risk tags: `github-upstream, patch-debt, toolchain` ## Upstream - Upstream type: `github` - Upstream project: `vmware/tdnf` - Upstream URL: https://github.com/vmware/tdnf - Detected version: `3.6.4` - Tag/release: `v3.6.4` - Source: `github_release_latest` - Published: `2026-04-16T22:52:59Z` - Release URL: https://github.com/vmware/tdnf/releases/tag/v3.6.4 - Source URL: https://api.github.com/repos/vmware/tdnf/tarball/v3.6.4 - Pre-release: `False` ## Signals - Security-relevant keywords detected: `False` - Policy blocked: `False` - Policy reason: `-` - Labels: `ai-summary, bot, needs-build, needs-triage, priority/high, update/minor, upstream-update, upstream/github` ## NiceSOFT AI preliminary analysis ### 1. Краткий вывод Обновление `tdnf` с версии 3.5.12 до 3.6.4 является минорным релизом, содержащим исправления критических багов (segfault при пустой конфигурации, deadlock с RPM 6) и новые функции поддержки репозиториев. Обновление классифицируется как `toolchain`, что требует осторожности при автоматическом применении в дистрибутиве. ### 2. Риск для НАЙС.ОС **medium**. Обновление затрагивает инструмент сборки и управления пакетами (`tdnf`), который является частью цепочки поставок. Наличие тегов `patch-debt` и `toolchain` указывает на потенциальные изменения в поведении или зависимостях. Хотя это минорная версия, исправление deadlock с RPM 6 и segfault меняет поведение программы в граничных условиях, что требует тестирования на стабильности сборки и работы менеджера пакетов. ### 3. Security/CVE Во входных данных отсутствуют явные указания на уязвимости безопасности. Поле `security_keywords_detected_by_script` равно `False`, а в списке изменений (Release notes) нет упоминаний исправлений эксплойтов, утечек памяти или обхода прав доступа, характерных для security-critical патчей. ### 4. ABI/API риск Данных недостаточно для оценки ABI/API риска. Изменения касаются преимущественно логики работы с репозиториями (`xml:base`), истории транзакций и внутренних вызовов RPM (`rpmtsOpenDB`). Поскольку `tdnf` — это бинарный инструмент, а не библиотека с публичным API, прямой ABI-риск для внешних приложений низок, однако изменения в обработке конфигурации и сценариях установки могут повлиять на скрипты пост-установки или пользовательские команды. Требуется проверка совместимости с локальными патчами и сценариями. ### 5. Риск для RPM-сборки Возможен риск конфликтов в секции `%posttrans` и работе с базой данных истории. - Удаление `%posttrans` скриплетa из `tdnf.spec` может повлиять на пакеты, зависящие от специфического поведения этого скриплета в контексте НАЙС.ОС. - Изменения в работе с `rpmtsOpenDB()` и устранение deadlock'а с RPM 6 могут изменить время выполнения сборки или поведение при параллельной сборке. - Новые зависимости или требования к тестам (например, адаптация под `unshare` в RPM 6) могут потребовать обновления окружения сборки. ### 6. Проверки мейнтейнера - [ ] Проверить наличие локальных патчей в `tdnf.spec`, которые могут быть нарушены удалением `%posttrans` или изменением логики истории. - [ ] Протестировать команду `tdnf history id` и работу с пустым конфигом (`-c /dev/null`) в среде сборки. - [ ] Проверить корректность разрешения зависимостей для сценариев "snapshot" (если используются локальные пулы пакетов). - [ ] Убедиться, что тесты CI адаптированы под новый формат подписи GPG в RPM 6 (если используется локальная версия RPM 6). - [ ] Проверить отсутствие регрессий в установке пакетов через локальные пути. ### 7. Рекомендация update candidate ### 8. Основание рекомендации Обновление содержит важные исправления стабильности (segfault, deadlock), которые критичны для надежности toolchain. Текущая версия (3.5.12) старше последней стабильной (3.6.4) более чем на одну минорную версию, что увеличивает технический долг. Несмотря на статус `toolchain`, отсутствие признаков критической уязвимости и наличие подробного changelog позволяют рекомендовать обновление как кандидата после прохождения стандартных проверок мейнтейнера. Автоматическое применение без проверки рискованно из-за тегов `patch-debt`, но ручное обновление допустимо. ## Upstream release notes / description ## 🚀 Features & Enhancements - **Repodata `xml:base` Support**: `tdnf` now correctly interprets the `xml:base` (`SOLVABLE_MEDIABASE`) attribute in package repodata, enabling flexible package location referencing (e.g., shared package pools). Includes a new `make-snapshot-repo` script for creating filtered repodata. - **History ID**: Implemented the `tdnf history id` command to retrieve the current transaction ID. - **Configurable Timeouts**: Added a configurable connection timeout for downloads. ## 🐛 Bug Fixes - **Snapshot Obsoletes**: Fixed dependency resolution for snapshots by filtering out packages from `pool->considered` in three places, correctly handling scenarios where a package in a snapshot obsoletes a package not in the snapshot. - **Command Line Installs**: Fixed issues with installing packages directly from the command line via local paths. - **RPM 6 Deadlock**: Removed `%posttrans` scriptlet from `tdnf.spec` and removed redundant `rpmtsOpenDB()` calls in the history utility to prevent database lock deadlocks when used alongside RPM 6. - **Empty Config Segfault**: Fixed a segmentation fault that occurred when running `tdnf` with an empty configuration file (e.g., `-c /dev/null`). - **Download Errors**: Improved user experience by properly printing the URLs and detailed error messages when HTTP package downloads fail. ## 🧪 Testing & CI - **RPM 6 Compatibility**: Adjusted the test suite to handle RPM 6's new `unshare` scriptlet isolation plugin (which caused issues in unprivileged Docker containers) and updated signature tests to accommodate RPM 6's `gpg-pubkey` fingerprint format upgrades. - **Test Coverage**: Added extensive tests covering `xml:base`, `history id`, empty configuration files, HTTP error reporting, and snapshot obsoletes. **Full Changelog**: https://github.com/vmware/tdnf/compare/v3.6.3...v3.6.4 ## NiceOS maintainer checklist - [ ] Confirm that the detected version is a stable upstream release. - [ ] Check upstream changelog for security fixes, ABI/API changes and build-system changes. - [ ] Check ABI/API compatibility and reverse dependencies. - [ ] Download source into NiceOS lookaside storage. - [ ] Update `Version` and related fields in `SPECS/*.spec` only if policy allows it. - [ ] Regenerate `SOURCES/sources.lock.json`, manifests, metadata and SBOM. - [ ] Build SRPM/RPM in a clean NiceOS buildroot. - [ ] Run package smoke tests. - [ ] Link PR/build logs and close this issue after update or triage. ## Bot metadata - Tool: `niceos_upstream_monitor.py 1.4` - Generated at: `2026-04-27T23:19:56Z`
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
rpms/tdnf#1
No description provided.