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

Reply via email to