public inbox for git-commits@fedoraproject.org
help / color / mirror / Atom feed
* [rpms/rust-bootupd] f44: Release 0.3.2
@ 2026-09-14 10:20 Pragyan Poudyal
0 siblings, 0 replies; only message in thread
From: Pragyan Poudyal @ 2026-09-14 10:20 UTC (permalink / raw)
To: git-commits
A new commit has been pushed.
Repo : rpms/rust-bootupd
Branch : f44
Commit : 0c793fae7988adc93ffc6556cd7bc8cc936f7f49
Author : Pragyan Poudyal <pragyanpoudyal41999@gmail.com>
Date : 2026-09-11T12:51:34+05:30
Stats : +9/-530 in 7 file(s)
URL : https://src.fedoraproject.org/rpms/rust-bootupd/c/0c793fae7988adc93ffc6556cd7bc8cc936f7f49?branch=f44
Log:
Release 0.3.2
---
diff --git a/.gitignore b/.gitignore
index f66307f..6346912 100644
--- a/.gitignore
+++ b/.gitignore
@@ -71,3 +71,9 @@
/bootupd-0.2.35-vendor.tar.zstd
/bootupd-0.2.36.crate
/bootupd-0.2.36-vendor.tar.zstd
+/bootupd-0.3.0.crate
+/bootupd-0.3.0-vendor.tar.zstd
+/bootupd-0.3.1.crate
+/bootupd-0.3.1-vendor.tar.zstd
+/bootupd-0.3.2.crate
+/bootupd-0.3.2-vendor.tar.zstd
diff --git a/0001-Revert-Fix-grub-static-config-install.patch b/0001-Revert-Fix-grub-static-config-install.patch
deleted file mode 100644
index c9750fe..0000000
--- a/0001-Revert-Fix-grub-static-config-install.patch
+++ /dev/null
@@ -1,171 +0,0 @@
-From cd7b27e6c4dfcd28848fa98f19981e9d5af9451a Mon Sep 17 00:00:00 2001
-From: Adam Williamson <awilliam@redhat.com>
-Date: Fri, 21 Aug 2026 15:08:18 -0700
-Subject: [PATCH 1/4] Revert "Fix grub static config install"
-
-This reverts commit 883c7a888d16991672cf9b9d06ff74a4d2b11297.
----
- src/bios.rs | 2 +-
- src/bootupd.rs | 25 -------------------------
- src/efi.rs | 11 +++--------
- src/grubconfigs.rs | 21 ++++++---------------
- 4 files changed, 10 insertions(+), 49 deletions(-)
-
-diff --git a/src/bios.rs b/src/bios.rs
-index 1263d8a..a638df6 100644
---- a/src/bios.rs
-+++ b/src/bios.rs
-@@ -211,7 +211,7 @@ impl Component for Bios {
- .context("Failed to backup GRUB config")?;
- }
-
-- crate::grubconfigs::install(&destdir, None, None, true, None)?;
-+ crate::grubconfigs::install(&destdir, None, None, true)?;
-
- // Remove the real config if it is symlink and will not
- // if /boot/grub2/grub.cfg is file
-diff --git a/src/bootupd.rs b/src/bootupd.rs
-index bdad9ff..72266a3 100644
---- a/src/bootupd.rs
-+++ b/src/bootupd.rs
-@@ -276,36 +276,11 @@ pub(crate) fn install(opts: &InstallOpts, devices: &[Device], configs: ConfigMod
- Some(uuid) => {
- let meta = get_static_config_meta()?;
- state.static_configs = Some(meta);
--
-- let mut esp_dir = None;
--
-- #[cfg(efi_arch)]
-- {
-- for c in &target_components {
-- use crate::efi::Efi;
--
-- if let Some(efi) = c.as_any().downcast_ref::<Efi>() {
-- let mounted_esp_path = efi.get_esp_mountpoint();
-- let mounted_esp_path = mounted_esp_path.as_ref().ok_or_else(|| {
-- anyhow!("Mounted ESP not found to install static grub config")
-- })?;
--
-- esp_dir = Some(
-- Dir::open_ambient_dir(mounted_esp_path, ambient_authority())
-- .context("Opening mounted ESP dir")?,
-- );
--
-- break;
-- }
-- }
-- }
--
- crate::grubconfigs::install(
- sysroot,
- Some(&source_root_dir),
- installed_efi_vendor.as_deref(),
- uuid,
-- esp_dir.as_ref(),
- )?;
- }
- // On other architectures, assume that there's nothing to do.
-diff --git a/src/efi.rs b/src/efi.rs
-index 834e35f..4c9d2cc 100644
---- a/src/efi.rs
-+++ b/src/efi.rs
-@@ -181,11 +181,6 @@ impl Efi {
- }
- }
-
-- /// Returns the ESP's mountpoint if present
-- pub(crate) fn get_esp_mountpoint(&self) -> std::cell::Ref<'_, Option<PathBuf>> {
-- self.mountpoint.borrow()
-- }
--
- /// Checks if we have already mounted the ESP
- /// If not, checks if the ESP is mounted at common mountpoints, i.e. /boot, /boot/efi
- /// Else, mounts the ESP at a temp path
-@@ -374,7 +369,7 @@ impl Component for Efi {
-
- // Backup "/boot/efi/EFI/{vendor}/grub.cfg" to "/boot/efi/EFI/{vendor}/grub.cfg.bak"
- // Replace "/boot/efi/EFI/{vendor}/grub.cfg" with new static "grub.cfg"
-- fn migrate_static_grub_config(&self, sysroot_path: &str, dest_efi_dir: &Dir) -> Result<()> {
-+ fn migrate_static_grub_config(&self, sysroot_path: &str, destdir: &Dir) -> Result<()> {
- let sysroot = Dir::open_ambient_dir(sysroot_path, ambient_authority())
- .with_context(|| format!("Opening {sysroot_path}"))?;
- let Some(vendor) = self.get_efi_vendor(&Path::new(sysroot_path))? else {
-@@ -382,7 +377,7 @@ impl Component for Efi {
- };
-
- // destdir is /boot/efi/EFI
-- let efidir = dest_efi_dir
-+ let efidir = destdir
- .open_dir(&vendor)
- .with_context(|| format!("Opening EFI/{}", vendor))?;
-
-@@ -397,7 +392,7 @@ impl Component for Efi {
- .context("Failed to backup GRUB config")?;
- }
-
-- grubconfigs::install(&sysroot, None, Some(&vendor), true, Some(&efidir))?;
-+ grubconfigs::install(&sysroot, None, Some(&vendor), true)?;
- // Synchronize the filesystem containing /boot/efi/EFI/{vendor} to disk.
- fsfreeze_thaw_cycle(efidir.reopen_as_ownedfd()?)?;
-
-diff --git a/src/grubconfigs.rs b/src/grubconfigs.rs
-index f06180e..476f934 100644
---- a/src/grubconfigs.rs
-+++ b/src/grubconfigs.rs
-@@ -34,7 +34,6 @@ pub(crate) fn install(
- src_root: Option<&Dir>,
- installed_efi_vendor: Option<&str>,
- write_uuid: bool,
-- mounted_esp: Option<&Dir>,
- ) -> Result<()> {
- let bootdir = &target_root.open_dir("boot").context("Opening /boot")?;
- let boot_is_mount = {
-@@ -44,7 +43,6 @@ pub(crate) fn install(
- root_dev != boot_dev
- };
-
-- // This is in /sysroot/boot
- if !bootdir.exists(GRUB2DIR) {
- let mut dir_options = DirBuilder::new();
- dir_options.recursive(true).mode(0o700);
-@@ -132,16 +130,16 @@ pub(crate) fn install(
-
- if let Some(vendordir) = installed_efi_vendor {
- log::debug!("vendordir={:?}", &vendordir);
-- let vendor = PathBuf::from("EFI").join(vendordir);
-+ let vendor = PathBuf::from(vendordir);
- let target = &vendor.join("grub.cfg");
--
-- if let Some(efidir) = mounted_esp {
-+ let dest_efidir = target_root
-+ .open_dir_optional("boot/efi/EFI")
-+ .context("Opening /boot/efi/EFI")?;
-+ if let Some(efidir) = dest_efidir {
- configdir
- .copy("grub-static-efi.cfg", &efidir, target)
- .context("Copying static EFI")?;
--
- println!("Installed: {target:?}");
--
- if let Some(uuid_path) = uuid_path {
- let target = &vendor.join(uuid_path);
- grub2dir
-@@ -218,14 +216,7 @@ mod tests {
- std::fs::create_dir_all(tdp.join("boot/grub2"))?;
- std::fs::create_dir_all(tdp.join("boot/efi/EFI/BOOT"))?;
- std::fs::create_dir_all(tdp.join("boot/efi/EFI/fedora"))?;
-- install(
-- &td,
-- None,
-- Some("fedora"),
-- false,
-- Some(&td.open_dir("boot/efi").unwrap()),
-- )
-- .unwrap();
-+ install(&td, None, Some("fedora"), false).unwrap();
-
- assert!(td.exists("boot/grub2/grub.cfg"));
- assert!(td.exists("boot/efi/EFI/fedora/grub.cfg"));
---
-2.55.0
-
diff --git a/0002-Revert-component-Add-as_any-method-for-downcasting.patch b/0002-Revert-component-Add-as_any-method-for-downcasting.patch
deleted file mode 100644
index 7ef29a9..0000000
--- a/0002-Revert-component-Add-as_any-method-for-downcasting.patch
+++ /dev/null
@@ -1,66 +0,0 @@
-From fa7905a4c9296e09a4daf12b73cf45dd6c226327 Mon Sep 17 00:00:00 2001
-From: Adam Williamson <awilliam@redhat.com>
-Date: Fri, 21 Aug 2026 15:08:22 -0700
-Subject: [PATCH 2/4] Revert "component: Add `as_any` method for downcasting"
-
-This reverts commit d59fb20db75c553a750b45830ddd671cd5cae702.
----
- src/bios.rs | 4 ----
- src/component.rs | 3 ---
- src/efi.rs | 4 ----
- 3 files changed, 11 deletions(-)
-
-diff --git a/src/bios.rs b/src/bios.rs
-index a638df6..03a3408 100644
---- a/src/bios.rs
-+++ b/src/bios.rs
-@@ -99,10 +99,6 @@ impl Bios {
- }
-
- impl Component for Bios {
-- fn as_any(&self) -> &dyn std::any::Any {
-- self
-- }
--
- fn name(&self) -> &'static str {
- self.component_type().into()
- }
-diff --git a/src/component.rs b/src/component.rs
-index 73043c3..23a14b5 100644
---- a/src/component.rs
-+++ b/src/component.rs
-@@ -10,7 +10,6 @@ use cap_std::{ambient_authority, fs::Permissions};
- use cap_std_ext::dirext::CapStdExtDirExt;
- use fn_error_context::context;
- use serde::{Deserialize, Serialize};
--use std::any::Any;
- use std::path::{Path, PathBuf};
-
- use bootc_internal_blockdev::Device;
-@@ -54,8 +53,6 @@ impl std::fmt::Display for ComponentType {
- /// handles installing bootloader files during image builds, applying updates at runtime,
- /// and optionally adopting existing installations not originally managed by bootupd.
- pub(crate) trait Component {
-- fn as_any(&self) -> &dyn Any;
--
- /// Returns the name of the component; this will be used for serialization
- /// and should remain stable.
- fn name(&self) -> &'static str;
-diff --git a/src/efi.rs b/src/efi.rs
-index 4c9d2cc..d1d911c 100644
---- a/src/efi.rs
-+++ b/src/efi.rs
-@@ -330,10 +330,6 @@ fn skip_systemd_bootloaders() -> bool {
- }
-
- impl Component for Efi {
-- fn as_any(&self) -> &dyn std::any::Any {
-- self
-- }
--
- fn name(&self) -> &'static str {
- self.component_type().into()
- }
---
-2.55.0
-
diff --git a/0003-Revert-esp-Update-unmount-method.patch b/0003-Revert-esp-Update-unmount-method.patch
deleted file mode 100644
index e156277..0000000
--- a/0003-Revert-esp-Update-unmount-method.patch
+++ /dev/null
@@ -1,76 +0,0 @@
-From 7dfcb94b589e88fc61a589ee3184fd075b018d91 Mon Sep 17 00:00:00 2001
-From: Adam Williamson <awilliam@redhat.com>
-Date: Fri, 21 Aug 2026 15:09:02 -0700
-Subject: [PATCH 3/4] Revert "esp: Update `unmount` method"
-
-This reverts commit 85053a8a72aad8082097566871a08bf5a9e4b271.
----
- src/efi.rs | 28 ++++++++++++++++++++++++----
- 1 file changed, 24 insertions(+), 4 deletions(-)
-
-diff --git a/src/efi.rs b/src/efi.rs
-index d1d911c..72ac5d5 100644
---- a/src/efi.rs
-+++ b/src/efi.rs
-@@ -93,6 +93,9 @@ pub(crate) fn is_efi_booted() -> Result<bool> {
- #[derive(Default, Debug)]
- pub(crate) struct Efi {
- mountpoint: RefCell<Option<PathBuf>>,
-+ /// Whether the above mountpoint was already mounted or not
-+ /// Won't unmount if it was already mounted
-+ was_mounted: RefCell<bool>,
- /// Guard for ESP mounted at a temporary location
- tempmount_guard: RefCell<Option<TempMount>>,
- }
-@@ -149,6 +152,7 @@ impl Efi {
-
- // Only borrow mutably if we found a mount point
- log::debug!("Reusing existing mount point {mnt:?}");
-+ *self.was_mounted.borrow_mut() = true;
- *self.mountpoint.borrow_mut() = Some(mnt.clone());
- Ok(Some(mnt))
- }
-@@ -159,7 +163,9 @@ impl Efi {
- match self.search_common_esp_mountpoints(root)? {
- Some(mnt) => {
- log::debug!("Mounted at {:?}", mnt);
-+ *self.was_mounted.borrow_mut() = true;
- *self.mountpoint.borrow_mut() = Some(mnt.clone());
-+
- Ok(mnt)
- }
- None => {
-@@ -198,12 +204,26 @@ impl Efi {
- }
-
- pub(crate) fn unmount(&self) -> Result<()> {
-- if let Some(tmpmount) = self.tempmount_guard.borrow_mut().take() {
-- drop(tmpmount);
-- log::trace!("Dropped tempmount");
-+ if *self.was_mounted.borrow() {
-+ log::debug!("Mountpoint was already mounted, won't unmount");
-+ return Ok(());
- }
-
-- *self.mountpoint.borrow_mut() = None;
-+ *self.was_mounted.borrow_mut() = false;
-+
-+ if let Some(mount) = self.mountpoint.borrow_mut().take() {
-+ if let Some(tmpmount) = self.tempmount_guard.borrow_mut().take() {
-+ drop(tmpmount);
-+ log::trace!("Dropped tempmount");
-+ return Ok(());
-+ }
-+
-+ Command::new("umount")
-+ .arg(&mount)
-+ .run_inherited()
-+ .with_context(|| format!("Failed to unmount {mount:?}"))?;
-+ log::trace!("Unmounted");
-+ }
-
- Ok(())
- }
---
-2.55.0
-
diff --git a/0004-Revert-esp-TempMount-ESP-if-not-already-mounted.patch b/0004-Revert-esp-TempMount-ESP-if-not-already-mounted.patch
deleted file mode 100644
index 5192b89..0000000
--- a/0004-Revert-esp-TempMount-ESP-if-not-already-mounted.patch
+++ /dev/null
@@ -1,207 +0,0 @@
-From e8eeb12e79330385a15f765d1cf7ee8ac3516736 Mon Sep 17 00:00:00 2001
-From: Adam Williamson <awilliam@redhat.com>
-Date: Fri, 21 Aug 2026 15:09:07 -0700
-Subject: [PATCH 4/4] Revert "esp: TempMount ESP if not already mounted"
-
-This reverts commit 150ae3281407f315d131674e0e5cc758c4ee0746.
----
- src/efi.rs | 123 +++++++++++++++++++++--------------------------------
- 1 file changed, 48 insertions(+), 75 deletions(-)
-
-diff --git a/src/efi.rs b/src/efi.rs
-index 72ac5d5..fceecd9 100644
---- a/src/efi.rs
-+++ b/src/efi.rs
-@@ -10,7 +10,6 @@ use std::path::{Path, PathBuf};
- use std::process::Command;
-
- use anyhow::{bail, Context, Result};
--use bootc_internal_mount::tempmount::TempMount;
- use bootc_internal_utils::CommandRunExt;
- use camino::{Utf8Path, Utf8PathBuf};
- use cap_std::ambient_authority;
-@@ -19,8 +18,6 @@ use cap_std_ext::cap_std;
- use cap_std_ext::dirext::CapStdExtDirExt;
- use fn_error_context::context;
- use os_release::OsRelease;
--use rustix::mount::MountFlags;
--use rustix::path::Arg;
- use rustix::{fd::AsFd, fd::BorrowedFd, fs::StatVfsMountFlags};
- use walkdir::WalkDir;
- use widestring::U16CString;
-@@ -96,25 +93,13 @@ pub(crate) struct Efi {
- /// Whether the above mountpoint was already mounted or not
- /// Won't unmount if it was already mounted
- was_mounted: RefCell<bool>,
-- /// Guard for ESP mounted at a temporary location
-- tempmount_guard: RefCell<Option<TempMount>>,
--}
--
--/// Mount flags shared by all ESP mounts: non-executable, no setuid.
--const ESP_MOUNT_FLAGS: MountFlags =
-- MountFlags::from_bits_retain(MountFlags::NOEXEC.bits() | MountFlags::NOSUID.bits());
--
--/// FAT mount options: owner-only permissions on files (0600) and dirs (0700).
--const ESP_MOUNT_DATA: &std::ffi::CStr = c"fmask=0177,dmask=0077";
--
--/// Mount the ESP from the provided device into a temporary directory.
--fn mount_esp(device: &str) -> Result<TempMount> {
-- TempMount::mount_dev(device, "vfat", ESP_MOUNT_FLAGS, Some(ESP_MOUNT_DATA))
- }
-
- impl Efi {
-- #[context("Searching common ESP mountpoints")]
-- fn search_common_esp_mountpoints(&self, root: &Path) -> Result<Option<PathBuf>> {
-+ // Get mounted point for esp
-+ pub(crate) fn get_mounted_esp(&self, root: &Path) -> Result<Option<PathBuf>> {
-+ // First check all potential mount points without holding the borrow
-+ let mut found_mount = None;
- for &mnt in ESP_MOUNTS.iter() {
- let path = root.join(mnt);
- if !path.exists() {
-@@ -134,63 +119,59 @@ impl Efi {
- continue;
- }
- util::ensure_writable_mount(&path)?;
-- return Ok(Some(path));
-+ *self.was_mounted.borrow_mut() = true;
-+ found_mount = Some(path);
-+ break;
- }
- }
-
-- Ok(None)
-- }
--
-- /// Get mounted point for ESP
-- /// NOTE: This function only searches the common ESP mountpoints and returns
-- /// the path of the mountpoint, if there is one
-- #[context("Getting mounted ESP")]
-- pub(crate) fn get_mounted_esp(&self, root: &Path) -> Result<Option<PathBuf>> {
-- let Some(mnt) = self.search_common_esp_mountpoints(root)? else {
-- return Ok(None);
-- };
--
- // Only borrow mutably if we found a mount point
-- log::debug!("Reusing existing mount point {mnt:?}");
-- *self.was_mounted.borrow_mut() = true;
-- *self.mountpoint.borrow_mut() = Some(mnt.clone());
-- Ok(Some(mnt))
-+ if let Some(mnt) = found_mount {
-+ log::debug!("Reusing existing mount point {mnt:?}");
-+ *self.mountpoint.borrow_mut() = Some(mnt.clone());
-+ Ok(Some(mnt))
-+ } else {
-+ Ok(None)
-+ }
- }
-
-- /// Mount the passed esp_device, return mount point
-- #[context("Mounting ESP device at {}", root.display())]
-+ // Mount the passed esp_device, return mount point
- pub(crate) fn mount_esp_device(&self, root: &Path, esp_device: &Path) -> Result<PathBuf> {
-- match self.search_common_esp_mountpoints(root)? {
-- Some(mnt) => {
-- log::debug!("Mounted at {:?}", mnt);
-- *self.was_mounted.borrow_mut() = true;
-- *self.mountpoint.borrow_mut() = Some(mnt.clone());
-+ let mut mountpoint = None;
-
-- Ok(mnt)
-+ for &mnt in ESP_MOUNTS.iter() {
-+ let mnt = root.join(mnt);
-+ if !mnt.exists() {
-+ continue;
- }
-- None => {
-- // If the ESP isn't already mounted at /boot, /boot/efi mount it at a temporary point
-- // This is so that we don't shadow existing files in the above directories
-- let esp_mount = mount_esp(
-- esp_device
-- .as_str()
-- .context("Converting esp_device path to str")?,
-- )
-- .context("Creating temp ESP mount")?;
--
-- let mnt_path = esp_mount.dir.path().to_path_buf();
-- *self.mountpoint.borrow_mut() = Some(mnt_path.clone());
-- *self.tempmount_guard.borrow_mut() = Some(esp_mount);
-
-- Ok(mnt_path)
-+ // Check if the target is already a mounted ESP (e.g. the host
-+ // already has the ESP mounted when running install-to-filesystem).
-+ let st = rustix::fs::statfs(&mnt)?;
-+ if st.f_type == libc::MSDOS_SUPER_MAGIC {
-+ if is_mount_point(&mnt)? {
-+ log::debug!("ESP already mounted at {mnt:?}, reusing");
-+ mountpoint = Some(mnt);
-+ *self.was_mounted.borrow_mut() = true;
-+ break;
-+ }
- }
-+
-+ std::process::Command::new("mount")
-+ .arg(&esp_device)
-+ .arg(&mnt)
-+ .run_inherited()
-+ .with_context(|| format!("Failed to mount {:?}", esp_device))?;
-+ log::debug!("Mounted at {mnt:?}");
-+ mountpoint = Some(mnt);
-+ break;
- }
-+ let mnt = mountpoint.ok_or_else(|| anyhow::anyhow!("No mount point found"))?;
-+ *self.mountpoint.borrow_mut() = Some(mnt.clone());
-+ Ok(mnt)
- }
-
-- /// Checks if we have already mounted the ESP
-- /// If not, checks if the ESP is mounted at common mountpoints, i.e. /boot, /boot/efi
-- /// Else, mounts the ESP at a temp path
-- #[context("Ensuring mounted ESP")]
-+ // Firstly check if esp is already mounted, then mount the passed esp device
- pub(crate) fn ensure_mounted_esp(&self, root: &Path, esp_device: &Path) -> Result<PathBuf> {
- if let Some(mountpoint) = self.mountpoint.borrow().as_deref() {
- return Ok(mountpoint.to_owned());
-@@ -204,27 +185,14 @@ impl Efi {
- }
-
- pub(crate) fn unmount(&self) -> Result<()> {
-- if *self.was_mounted.borrow() {
-- log::debug!("Mountpoint was already mounted, won't unmount");
-- return Ok(());
-- }
--
- *self.was_mounted.borrow_mut() = false;
--
- if let Some(mount) = self.mountpoint.borrow_mut().take() {
-- if let Some(tmpmount) = self.tempmount_guard.borrow_mut().take() {
-- drop(tmpmount);
-- log::trace!("Dropped tempmount");
-- return Ok(());
-- }
--
- Command::new("umount")
- .arg(&mount)
- .run_inherited()
- .with_context(|| format!("Failed to unmount {mount:?}"))?;
- log::trace!("Unmounted");
- }
--
- Ok(())
- }
-
-@@ -783,6 +751,11 @@ impl Component for Efi {
-
- impl Drop for Efi {
- fn drop(&mut self) {
-+ if *self.was_mounted.borrow() {
-+ log::debug!("mountpoint was already mounted. Won't unmount",);
-+ return;
-+ }
-+
- log::debug!("Unmounting {:?}", self.mountpoint);
- let _ = self.unmount();
- }
---
-2.55.0
-
diff --git a/rust-bootupd.spec b/rust-bootupd.spec
index 370012e..b457c1c 100644
--- a/rust-bootupd.spec
+++ b/rust-bootupd.spec
@@ -3,7 +3,7 @@
%global crate bootupd
Name: rust-%{crate}
-Version: 0.2.36
+Version: 0.3.2
Release: %autorelease
Summary: Bootloader updater
@@ -11,13 +11,6 @@ License: Apache-2.0
URL: https://github.com/coreos/bootupd
Source0: %{crates_source}
Source1: %{url}/releases/download/v%{version}/bootupd-%{version}-vendor.tar.zstd
-# Revert https://github.com/coreos/bootupd/pull/1126
-# to fix UEFI installs - see
-# https://github.com/coreos/bootupd/issues/1139
-Patch: 0001-Revert-Fix-grub-static-config-install.patch
-Patch: 0002-Revert-component-Add-as_any-method-for-downcasting.patch
-Patch: 0003-Revert-esp-Update-unmount-method.patch
-Patch: 0004-Revert-esp-TempMount-ESP-if-not-already-mounted.patch
ExcludeArch: %{ix86}
diff --git a/sources b/sources
index 3335386..def7517 100644
--- a/sources
+++ b/sources
@@ -1,2 +1,2 @@
-SHA512 (bootupd-0.2.36.crate) = 2ee451f486ef35a1978731657fcbbd964f525e29b73a603b72250f84518bfc1afb13acb0ef9b2ae96ac4be4efb586c516d4c7f88605c990ed241b57c1edd6d7e
-SHA512 (bootupd-0.2.36-vendor.tar.zstd) = daa3b5cbe09780f414be889d05ff28167932c7ccfa202a2be0144d9223b950491cb700f46503c6d62cc34bb88a52a49f1eca6a29c1dc7ac565197640b9996d5e
+SHA512 (bootupd-0.3.2.crate) = 52e6f482d780a1746845733c3c579a5524787a2e048f424c60d52120e744794fbd01509eb70e21cf381b27c0e7739c71d54c80c2cb718e7ea6bc17a0df74ea38
+SHA512 (bootupd-0.3.2-vendor.tar.zstd) = 365ac8ec890c2bd395c8a238e147b1ba8693cc5734a735f1106ddf2da5b971679dfd39d8d5563807bd442c8125191932e98af9ab22833b080dfb6c8bb536f1c9
^ permalink raw reply related [flat|nested] only message in thread
only message in thread, other threads:[~2026-09-14 10:20 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-09-14 10:20 [rpms/rust-bootupd] f44: Release 0.3.2 Pragyan Poudyal
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox