Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package limine for openSUSE:Factory checked in at 2025-10-29 21:09:09 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/limine (Old) and /work/SRC/openSUSE:Factory/.limine.new.1980 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "limine" Wed Oct 29 21:09:09 2025 rev:23 rq:1314391 version:10.2.1 Changes: -------- --- /work/SRC/openSUSE:Factory/limine/limine.changes 2025-10-27 14:43:22.623852576 +0100 +++ /work/SRC/openSUSE:Factory/.limine.new.1980/limine.changes 2025-10-29 21:10:22.872018980 +0100 @@ -1,0 +2,8 @@ +Wed Oct 29 13:34:51 UTC 2025 - Marvin Friedrich <[email protected]> + +- Update to 10.2.1: + * Add workaround for skipping SPI flash devices exposed as EFI volumes. + This fixes the hanging issues on many ARM laptops, without breaking + U-Boot unlike the previous workaround. + +------------------------------------------------------------------- Old: ---- limine-10.2.0.tar.gz New: ---- limine-10.2.1.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ limine.spec ++++++ --- /var/tmp/diff_new_pack.91ATdF/_old 2025-10-29 21:10:23.376040168 +0100 +++ /var/tmp/diff_new_pack.91ATdF/_new 2025-10-29 21:10:23.376040168 +0100 @@ -15,7 +15,7 @@ # Name: limine -Version: 10.2.0 +Version: 10.2.1 Release: 0 Summary: Modern, advanced, portable, multiprotocol bootloader and boot manager License: BSD-2-Clause ++++++ limine-10.2.0.tar.gz -> limine-10.2.1.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/limine-10.2.0/ChangeLog new/limine-10.2.1/ChangeLog --- old/limine-10.2.0/ChangeLog 2025-10-26 22:03:57.000000000 +0100 +++ new/limine-10.2.1/ChangeLog 2025-10-29 11:34:14.000000000 +0100 @@ -1,3 +1,14 @@ +2025-10-29 Mintsuki <[email protected]> + + *** Release 10.2.1 *** + + Noteworthy changes compared to the previous release, 10.2.0: + + Bug fixes: + - Add workaround for skipping SPI flash devices exposed as EFI volumes. + This fixes the hanging issues on many ARM laptops, without breaking + U-Boot unlike the previous workaround. + 2025-10-26 Mintsuki <[email protected]> *** Release 10.2.0 *** diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/limine-10.2.0/common/drivers/disk.s2.c new/limine-10.2.1/common/drivers/disk.s2.c --- old/limine-10.2.0/common/drivers/disk.s2.c 2025-10-26 22:03:57.000000000 +0100 +++ new/limine-10.2.1/common/drivers/disk.s2.c 2025-10-29 11:34:14.000000000 +0100 @@ -408,6 +408,47 @@ return NULL; } +static bool is_efi_handle_to_skip(EFI_HANDLE efi_handle) { + EFI_STATUS status; + + EFI_GUID dp_guid = EFI_DEVICE_PATH_PROTOCOL_GUID; + EFI_DEVICE_PATH_PROTOCOL *dp = NULL; + + EFI_GUID guids_to_skip[] = { + // skip 7CCE9C94-983F-4D0A-8143-B6C05545B223 since it is apparently used by exposed + // ROM devices that we do not want to touch + // (see https://github.com/limine-bootloader/limine/issues/521#issuecomment-3160168795) + {0x7CCE9C94, 0x983F, 0x4D0A, {0x81, 0x43, 0xB6, 0xC0, 0x55, 0x45, 0xB2, 0x23}}, + }; + + status = gBS->HandleProtocol(efi_handle, &dp_guid, (void **)&dp); + if (status) { + return false; + } + + for (;; dp = (void *)dp + *(uint16_t *)dp->Length) { + if (dp->Type == END_DEVICE_PATH_TYPE && dp->SubType == END_ENTIRE_DEVICE_PATH_SUBTYPE) { + break; + } + + if (dp->Type != HARDWARE_DEVICE_PATH) { + continue; + } + + if (dp->SubType == HW_VENDOR_DP) { + EFI_GUID *vendor_guid = (void *)dp + sizeof(EFI_DEVICE_PATH_PROTOCOL); + + for (size_t i = 0; i < SIZEOF_ARRAY(guids_to_skip); i++) { + if (memcmp(vendor_guid, &guids_to_skip[i], sizeof(EFI_GUID)) == 0) { + return true; + } + } + } + } + + return false; +} + static bool is_efi_handle_hdd(EFI_HANDLE efi_handle) { EFI_STATUS status; @@ -445,6 +486,10 @@ EFI_GUID block_io_guid = BLOCK_IO_PROTOCOL; EFI_BLOCK_IO *block_io = NULL; + if (is_efi_handle_to_skip(efi_handle)) { + return NULL; + } + status = gBS->HandleProtocol(efi_handle, &block_io_guid, (void **)&block_io); if (status) { return pxe_from_efi_handle(efi_handle); @@ -655,6 +700,10 @@ for (size_t i = 0; i < handle_count; i++) { EFI_BLOCK_IO *drive = NULL; + if (is_efi_handle_to_skip(handles[i])) { + continue; + } + status = gBS->HandleProtocol(handles[i], &block_io_guid, (void **)&drive); if (status != 0 || drive == NULL || drive->Media->LastBlock == 0) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/limine-10.2.0/configure new/limine-10.2.1/configure --- old/limine-10.2.0/configure 2025-10-26 22:04:02.000000000 +0100 +++ new/limine-10.2.1/configure 2025-10-29 11:34:18.000000000 +0100 @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.72 for Limine 10.2.0. +# Generated by GNU Autoconf 2.72 for Limine 10.2.1. # # Report bugs to <https://codeberg.org/Limine/Limine/issues>. # @@ -604,8 +604,8 @@ # Identity of this package. PACKAGE_NAME='Limine' PACKAGE_TARNAME='limine' -PACKAGE_VERSION='10.2.0' -PACKAGE_STRING='Limine 10.2.0' +PACKAGE_VERSION='10.2.1' +PACKAGE_STRING='Limine 10.2.1' PACKAGE_BUGREPORT='https://codeberg.org/Limine/Limine/issues' PACKAGE_URL='https://limine-bootloader.org/' @@ -1324,7 +1324,7 @@ # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -'configure' configures Limine 10.2.0 to adapt to many kinds of systems. +'configure' configures Limine 10.2.1 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1390,7 +1390,7 @@ if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of Limine 10.2.0:";; + short | recursive ) echo "Configuration of Limine 10.2.1:";; esac cat <<\_ACEOF @@ -1509,7 +1509,7 @@ test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -Limine configure 10.2.0 +Limine configure 10.2.1 generated by GNU Autoconf 2.72 Copyright (C) 2023 Free Software Foundation, Inc. @@ -1621,7 +1621,7 @@ This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by Limine $as_me 10.2.0, which was +It was created by Limine $as_me 10.2.1, which was generated by GNU Autoconf 2.72. Invocation command line was $ $0$ac_configure_args_raw @@ -6334,7 +6334,7 @@ # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by Limine $as_me 10.2.0, which was +This file was extended by Limine $as_me 10.2.1, which was generated by GNU Autoconf 2.72. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -6390,7 +6390,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config='$ac_cs_config_escaped' ac_cs_version="\\ -Limine config.status 10.2.0 +Limine config.status 10.2.1 configured by $0, generated by GNU Autoconf 2.72, with options \\"\$ac_cs_config\\" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/limine-10.2.0/host/limine.c new/limine-10.2.1/host/limine.c --- old/limine-10.2.0/host/limine.c 2025-10-26 22:03:57.000000000 +0100 +++ new/limine-10.2.1/host/limine.c 2025-10-29 11:34:14.000000000 +0100 @@ -223,7 +223,7 @@ static bool device_init(void) { size_t guesses[] = { 512, 2048, 4096 }; - for (size_t i = 0; i < sizeof(guesses) / sizeof(size_t); i++) { + for (size_t i = 0; i < SIZEOF_ARRAY(guesses); i++) { void *tmp = realloc(cache, guesses[i]); if (tmp == NULL) { perror_wrap("error: device_init(): realloc()"); @@ -728,7 +728,7 @@ struct gpt_table_header gpt_header; uint64_t lb_guesses[] = { 512, 4096 }; uint64_t lb_size = 0; - for (size_t i = 0; i < sizeof(lb_guesses) / sizeof(uint64_t); i++) { + for (size_t i = 0; i < SIZEOF_ARRAY(lb_guesses); i++) { device_read(&gpt_header, lb_guesses[i], sizeof(struct gpt_table_header)); if (!strncmp(gpt_header.signature, "EFI PART", 8)) { lb_size = lb_guesses[i]; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/limine-10.2.0/timestamps new/limine-10.2.1/timestamps --- old/limine-10.2.0/timestamps 2025-10-26 22:03:59.000000000 +0100 +++ new/limine-10.2.1/timestamps 2025-10-29 11:34:15.000000000 +0100 @@ -1,3 +1,3 @@ REGEN_DATE="October 2025" -SOURCE_DATE_EPOCH="1761512290" -SOURCE_DATE_EPOCH_TOUCH="202510262158" +SOURCE_DATE_EPOCH="1761733642" +SOURCE_DATE_EPOCH_TOUCH="202510291127" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/limine-10.2.0/version new/limine-10.2.1/version --- old/limine-10.2.0/version 2025-10-26 22:04:02.000000000 +0100 +++ new/limine-10.2.1/version 2025-10-29 11:34:19.000000000 +0100 @@ -1 +1 @@ -10.2.0 +10.2.1
