Upstream update available: rust 1.88.0 → 1.95.0 #1

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

Upstream update available: rust 1.88.01.95.0

Package

  • Package: rust
  • RPM name: rust
  • Branch: niceos-5.2
  • Current EVR: 1.88.0-1
  • Update class: minor
  • Compare method: python_rpm
  • Update policy: leaf
  • Risk tags: github-upstream

Upstream

Signals

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

NiceSOFT AI preliminary analysis

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

Обновление Rust с 1.88.0 до 1.95.0 включает стабилизацию новых API, изменение семантики компиляции констант и обновление внутренней зависимости LLVM до версии 22. В релиз включены патчи для уязвимостей CVE-2026-6042 и CVE-2026-40200 в заимствованной библиотеке musl. Обновление классифицировано как minor, однако содержит изменения в поведении компилятора и совместимости, требующие внимания.

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

medium.
Несмотря на статус minor, обновление затрагивает критически важные компоненты: компилятор (изменение логики const-eval и паттернов), стандартную библиотеку (новые методы атомарных типов и векторов) и инструмент сборки (LLVM 22). Наличие флагов безопасности (security_keywords_detected_by_script: True) и исправлений CVE повышает значимость обновления, но требует проверки бинарных артефактов на предмет изменений ABI.

3. Security/CVE

Во входных данных явно указаны исправления для CVE-2026-6042 и CVE-2026-40200, примененные к заимствованной библиотеке musl через PR #155171. Это прямое указание на наличие уязвимостей в предыдущих версиях, которые устраняются в текущем обновлении.

4. ABI/API риск

Высокий потенциал для изменений ABI и API:

  • Стабилизация методов update и try_update для атомарных типов (AtomicPtr, AtomicBool, AtomicIsize, AtomicUsize). Код, использующий эти методы, теперь будет компилироваться без флага нестабильности, что может изменить поведение или требования к зависимостям.
  • Изменения в const-eval (PR #148997) могут привести к ошибкам компиляции в редких случаях, если байты указателей попадают в области заполнения (padding) констант.
  • Изменения в работе с паттернами (#[non_exhaustive] enum) могут повлиять на захват значений в замыканиях.
  • Обновление LLVM до версии 22 может изменить генерируемый машинный код и оптимизации.

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

  • BuildRequires: Возможно потребуется обновление системных зависимостей, связанных с LLVM 22, если они явно указаны или импортируются транзитивно.
  • %check: Тесты, зависящие от старых правил вывода типов или поведения const-eval, могут начать проваливаться из-за ужесточения проверок видимости и жизненных циклов.
  • Патчи: Патчи, применяемые к исходному коду Rust или его подкомпонентам, могут потребовать актуализации из-за изменений в структуре репозитория или номерах PR.

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

  • Проверить наличие и актуальность патчей для CVE-2026-6042 и CVE-2026-40200 в ветке сборки.
  • Запустить %check для всех пакетов, зависящих от rust и rust-std, особенно тех, что используют const fn или сложные паттерны.
  • Провести сравнение бинарных файлов (diff) ключевых утилит (cargo, rustc) между 1.88.0 и 1.95.0 для выявления изменений в ABI.
  • Проверить стабильность сборки пакетов с использованием новых методов атомарных типов (update, try_update).
  • Убедиться, что патч для musl корректно интегрирован и не нарушает работу системных библиотек.

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

blocked manual review

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

Наличие исправлений критических уязвимостей (CVE) диктует необходимость обновления, однако статус minor в сочетании с изменениями в семантике компилятора (const-eval), обновлением LLVM и новыми стабилизированными API требует ручного анализа. Автоматическое обновление рискованно из-за потенциальных ошибок компиляции у зависимых пакетов и изменений в бинарном интерфейсе, которые необходимо верифицировать перед массовым разворачиванием.

Upstream release notes / description

Language

Compiler

Platform Support

Refer to Rust's platform support page for more information on Rust's tiered platform support.

Libraries

Stabilized APIs

...[truncated 5105 chars]

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:13:43Z
<!-- niceos-upstream-monitor:fingerprint=upstream-update:rust:1.95.0 --> <!-- niceos-upstream-monitor:package=rust --> <!-- niceos-upstream-monitor:current=1.88.0 --> <!-- niceos-upstream-monitor:latest=1.95.0 --> # Upstream update available: `rust` `1.88.0` → `1.95.0` ## Package - Package: `rust` - RPM name: `rust` - Branch: `niceos-5.2` - Current EVR: `1.88.0-1` - Update class: `minor` - Compare method: `python_rpm` - Update policy: `leaf` - Risk tags: `github-upstream` ## Upstream - Upstream type: `github` - Upstream project: `rust-lang/rust` - Upstream URL: https://github.com/rust-lang/rust - Detected version: `1.95.0` - Tag/release: `1.95.0` - Source: `github_release_latest` - Published: `2026-04-16T18:19:31Z` - Release URL: https://github.com/rust-lang/rust/releases/tag/1.95.0 - Source URL: https://api.github.com/repos/rust-lang/rust/tarball/1.95.0 - Pre-release: `False` ## Signals - Security-relevant keywords detected: `True` - Policy blocked: `False` - Policy reason: `-` - Labels: `ai-summary, bot, needs-build, needs-triage, priority/high, security-release, update/minor, upstream-update, upstream/github` ## NiceSOFT AI preliminary analysis ### 1. Краткий вывод Обновление Rust с 1.88.0 до 1.95.0 включает стабилизацию новых API, изменение семантики компиляции констант и обновление внутренней зависимости LLVM до версии 22. В релиз включены патчи для уязвимостей CVE-2026-6042 и CVE-2026-40200 в заимствованной библиотеке musl. Обновление классифицировано как minor, однако содержит изменения в поведении компилятора и совместимости, требующие внимания. ### 2. Риск для НАЙС.ОС **medium**. Несмотря на статус minor, обновление затрагивает критически важные компоненты: компилятор (изменение логики const-eval и паттернов), стандартную библиотеку (новые методы атомарных типов и векторов) и инструмент сборки (LLVM 22). Наличие флагов безопасности (`security_keywords_detected_by_script: True`) и исправлений CVE повышает значимость обновления, но требует проверки бинарных артефактов на предмет изменений ABI. ### 3. Security/CVE Во входных данных явно указаны исправления для **CVE-2026-6042** и **CVE-2026-40200**, примененные к заимствованной библиотеке musl через PR #155171. Это прямое указание на наличие уязвимостей в предыдущих версиях, которые устраняются в текущем обновлении. ### 4. ABI/API риск Высокий потенциал для изменений ABI и API: - Стабилизация методов `update` и `try_update` для атомарных типов (`AtomicPtr`, `AtomicBool`, `AtomicIsize`, `AtomicUsize`). Код, использующий эти методы, теперь будет компилироваться без флага нестабильности, что может изменить поведение или требования к зависимостям. - Изменения в `const-eval` (PR #148997) могут привести к ошибкам компиляции в редких случаях, если байты указателей попадают в области заполнения (`padding`) констант. - Изменения в работе с паттернами (`#[non_exhaustive]` enum) могут повлиять на захват значений в замыканиях. - Обновление LLVM до версии 22 может изменить генерируемый машинный код и оптимизации. ### 5. Риск для RPM-сборки - **BuildRequires**: Возможно потребуется обновление системных зависимостей, связанных с LLVM 22, если они явно указаны или импортируются транзитивно. - **%check**: Тесты, зависящие от старых правил вывода типов или поведения `const-eval`, могут начать проваливаться из-за ужесточения проверок видимости и жизненных циклов. - **Патчи**: Патчи, применяемые к исходному коду Rust или его подкомпонентам, могут потребовать актуализации из-за изменений в структуре репозитория или номерах PR. ### 6. Проверки мейнтейнера - [ ] Проверить наличие и актуальность патчей для CVE-2026-6042 и CVE-2026-40200 в ветке сборки. - [ ] Запустить `%check` для всех пакетов, зависящих от `rust` и `rust-std`, особенно тех, что используют `const fn` или сложные паттерны. - [ ] Провести сравнение бинарных файлов (diff) ключевых утилит (cargo, rustc) между 1.88.0 и 1.95.0 для выявления изменений в ABI. - [ ] Проверить стабильность сборки пакетов с использованием новых методов атомарных типов (`update`, `try_update`). - [ ] Убедиться, что патч для `musl` корректно интегрирован и не нарушает работу системных библиотек. ### 7. Рекомендация **blocked manual review** ### 8. Основание рекомендации Наличие исправлений критических уязвимостей (CVE) диктует необходимость обновления, однако статус `minor` в сочетании с изменениями в семантике компилятора (`const-eval`), обновлением LLVM и новыми стабилизированными API требует ручного анализа. Автоматическое обновление рискованно из-за потенциальных ошибок компиляции у зависимых пакетов и изменений в бинарном интерфейсе, которые необходимо верифицировать перед массовым разворачиванием. ## Upstream release notes / description <a id="1.95-Language"></a> ## Language - [Stabilize `if let` guards on match arms](https://github.com/rust-lang/rust/pull/141295) - [`irrefutable_let_patterns` lint no longer lints on let chains](https://github.com/rust-lang/rust/pull/146832) - [Support importing path-segment keywords with renaming](https://github.com/rust-lang/rust/pull/146972) - [Stabilize inline assembly for PowerPC and PowerPC64](https://github.com/rust-lang/rust/pull/147996) - [const-eval: be more consistent in the behavior of padding during typed copies](https://github.com/rust-lang/rust/pull/148967) - [Const blocks are no longer evaluated to determine if expressions involving fallible operations can implicitly be constant-promoted.](https://github.com/rust-lang/rust/pull/150557). Expressions whose ability to implicitly be promoted would depend on the result of a const block are no longer implicitly promoted. - [Make operational semantics of pattern matching independent of crate and module](https://github.com/rust-lang/rust/pull/150681) <a id="1.95-Compiler"></a> ## Compiler - [Stabilize `--remap-path-scope` for controlling the scoping of how paths get remapped in the resulting binary](https://github.com/rust-lang/rust/pull/147611) - [Apply patches for CVE-2026-6042 and CVE-2026-40200 to vendored musl](https://github.com/rust-lang/rust/pull/155171) <a id="1.95-Platform-Support"></a> ## Platform Support - [Promote `powerpc64-unknown-linux-musl` to Tier 2 with host tools](https://github.com/rust-lang/rust/pull/149962) - [Promote `aarch64-apple-tvos` to Tier 2](https://github.com/rust-lang/rust/pull/152021) - [Promote `aarch64-apple-tvos-sim` to Tier 2](https://github.com/rust-lang/rust/pull/152021) - [Promote `aarch64-apple-watchos` to Tier 2](https://github.com/rust-lang/rust/pull/152021) - [Promote `aarch64-apple-watchos-sim` to Tier 2](https://github.com/rust-lang/rust/pull/152021) - [Promote `aarch64-apple-visionos` to Tier 2](https://github.com/rust-lang/rust/pull/152021) - [Promote `aarch64-apple-visionos-sim` to Tier 2](https://github.com/rust-lang/rust/pull/152021) Refer to Rust's [platform support page](https://doc.rust-lang.org/rustc/platform-support.html) for more information on Rust's tiered platform support. <a id="1.95-Libraries"></a> ## Libraries - [`thread::scope`: document how join interacts with TLS destructors](https://github.com/rust-lang/rust/pull/149482) - [Speed up `str::contains` on aarch64 targets with `neon` target feature enabled by default](https://github.com/rust-lang/rust/pull/152176) <a id="1.95-Stabilized-APIs"></a> ## Stabilized APIs - [`MaybeUninit<[T; N]>: From<[MaybeUninit<T>; N]>`](https://doc.rust-lang.org/stable/std/mem/union.MaybeUninit.html#impl-From%3CMaybeUninit%3C%5BT;+N%5D%3E%3E-for-%5BMaybeUninit%3CT%3E;+N%5D) - [`MaybeUninit<[T; N]>: AsRef<[MaybeUninit<T>; N]>`](https://doc.rust-lang.org/stable/std/mem/union.MaybeUninit.html#impl-AsRef%3C%5BMaybeUninit%3CT%3E;+N%5D%3E-for-MaybeUninit%3C%5BT;+N%5D%3E) - [`MaybeUninit<[T; N]>: AsRef<[MaybeUninit<T>]>`](https://doc.rust-lang.org/stable/std/mem/union.MaybeUninit.html#impl-AsRef%3C%5BMaybeUninit%3CT%3E%5D%3E-for-MaybeUninit%3C%5BT;+N%5D%3E) - [`MaybeUninit<[T; N]>: AsMut<[MaybeUninit<T>; N]>`](https://doc.rust-lang.org/beta/std/mem/union.MaybeUninit.html#impl-AsMut%3C%5BMaybeUninit%3CT%3E;+N%5D%3E-for-MaybeUninit%3C%5BT;+N%5D%3E) - [`MaybeUninit<[T; N]>: AsMut<[MaybeUninit<T>]>`](https://doc.rust-lang.org/stable/std/mem/union.MaybeUninit.html#impl-AsMut%3C%5BMaybeUninit%3CT%3E%5D%3E-for-MaybeUninit%3C%5BT;+N%5D%3E) - [`[MaybeUninit<T>; N]: From<MaybeUninit<[T; N]>>`](https://doc.rust-lang.org/stable/std/mem/union.MaybeUninit.html#impl-From%3C%5BMaybeUninit%3CT%3E;+N%5D%3E-for-MaybeUninit%3C%5BT;+N%5D%3E) - [`Cell<[T; N]>: AsRef<[Cell<T>; N]>`](https://doc.rust-lang.org/stable/std/cell/struct.Cell.html#impl-AsRef%3C%5BCell%3CT%3E;+N%5D%3E-for-Cell%3C%5BT;+N%5D%3E) - [`Cell<[T; N]>: AsRef<[Cell<T>]>`](https://doc.rust-lang.org/stable/std/cell/struct.Cell.html#impl-AsRef%3C%5BCell%3CT%3E%5D%3E-for-Cell%3C%5BT;+N%5D%3E) - [`Cell<[T]>: AsRef<[Cell<T>]>`](https://doc.rust-lang.org/stable/std/cell/struct.Cell.html#impl-AsRef%3C%5BCell%3CT%3E%5D%3E-for-Cell%3C%5BT%5D%3E) - [`bool: TryFrom<{integer}>`](https://doc.rust-lang.org/stable/std/primitive.bool.html#impl-TryFrom%3Cu128%3E-for-bool) - [`AtomicPtr::update`](https://doc.rust-lang.org/stable/std/sync/atomic/struct.AtomicPtr.html#method.update) - [`AtomicPtr::try_update`](https://doc.rust-lang.org/stable/std/sync/atomic/struct.AtomicPtr.html#method.try_update) - [`AtomicBool::update`](https://doc.rust-lang.org/stable/std/sync/atomic/struct.AtomicBool.html#method.update) - [`AtomicBool::try_update`](https://doc.rust-lang.org/stable/std/sync/atomic/struct.AtomicBool.html#method.try_update) - [`AtomicIn::update`](https://doc.rust-lang.org/stable/std/sync/atomic/struct.AtomicIsize.html#method.update) - [`AtomicIn::try_update`](https://doc.rust-lang.org/stable/std/sync/atomic/struct.AtomicIsize.html#method.try_update) - [`AtomicUn::update`](https://doc.rust-lang.org/stable/std/sync/atomic/struct.AtomicUsize.html#method.update) - [`AtomicUn::try_update`](https://doc.rust-lang.org/stable/std/sync/atomic/struct.AtomicUsize.html#method.try_update) - [`cfg_select!`](https://doc.rust-lang.org/stable/std/macro.cfg_select.html) - [`mod core::range`](https://doc.rust-lang.org/stable/core/range/index.html) - [`core::range::RangeInclusive`](https://doc.rust-lang.org/stable/core/range/struct.RangeInclusive.html) - [`core::range::RangeInclusiveIter`](https://doc.rust-lang.org/stable/core/range/struct.RangeInclusiveIter.html) - [`core::hint::cold_path`](https://doc.rust-lang.org/stable/core/hint/fn.cold_path.html) - [`<*const T>::as_ref_unchecked`](https://doc.rust-lang.org/stable/std/primitive.pointer.html#method.as_ref_unchecked) - [`<*mut T>::as_ref_unchecked`](https://doc.rust-lang.org/stable/std/primitive.pointer.html#method.as_ref_unchecked-1) - [`<*mut T>::as_mut_unchecked`](ht ...[truncated 5105 chars] ## 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:13:43Z`
Sign in to join this conversation.
No description provided.