Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package pmbootstrap for openSUSE:Factory checked in at 2026-05-04 12:54:06 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/pmbootstrap (Old) and /work/SRC/openSUSE:Factory/.pmbootstrap.new.30200 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "pmbootstrap" Mon May 4 12:54:06 2026 rev:6 rq:1350522 version:3.10.2 Changes: -------- --- /work/SRC/openSUSE:Factory/pmbootstrap/pmbootstrap.changes 2026-04-09 16:22:09.100116164 +0200 +++ /work/SRC/openSUSE:Factory/.pmbootstrap.new.30200/pmbootstrap.changes 2026-05-04 12:57:23.051029058 +0200 @@ -1,0 +2,15 @@ +Sun May 3 11:04:40 UTC 2026 - Martin Hauke <[email protected]> + +- Update to version 3.10.2 + * pmb.config: Set correct permissions on /dev/random and + /dev/urandom. + * pmb.aportgen: generate gcc packages with the "toolchain" + option. + * pmb.helpers.run_core: fix fd leak in foreground_pipe(). + * pmb.flasher: Update deviceinfo reference links + * pmb.flasher.variables: Fix fastboot variable used in + mtkclient block. + * pmb.flasher.variables: Default to "vendor_boot" in mtkclient + too. + +------------------------------------------------------------------- Old: ---- pmbootstrap-3.10.1.tar.gz New: ---- pmbootstrap-3.10.2.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ pmbootstrap.spec ++++++ --- /var/tmp/diff_new_pack.po6PPh/_old 2026-05-04 12:57:24.907105449 +0200 +++ /var/tmp/diff_new_pack.po6PPh/_new 2026-05-04 12:57:24.935106602 +0200 @@ -21,9 +21,9 @@ %define pythons %{primary_python} -%define commit a72d80ee0101e7fe7b9361b63f3b2f4046ef40a6 +%define commit 021ed2f5e15fa70f1543997fc76c7e9f8b8c8e68 Name: pmbootstrap -Version: 3.10.1 +Version: 3.10.2 Release: 0 Summary: Sophisticated chroot/build/flash tool to develop and install postmarketOS License: GPL-3.0-or-later ++++++ pmbootstrap-3.10.1.tar.gz -> pmbootstrap-3.10.2.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pmbootstrap-3.10.1-a72d80ee0101e7fe7b9361b63f3b2f4046ef40a6/pmb/__init__.py new/pmbootstrap-3.10.2-021ed2f5e15fa70f1543997fc76c7e9f8b8c8e68/pmb/__init__.py --- old/pmbootstrap-3.10.1-a72d80ee0101e7fe7b9361b63f3b2f4046ef40a6/pmb/__init__.py 2026-04-07 17:52:19.000000000 +0200 +++ new/pmbootstrap-3.10.2-021ed2f5e15fa70f1543997fc76c7e9f8b8c8e68/pmb/__init__.py 2026-05-03 11:31:16.000000000 +0200 @@ -23,7 +23,7 @@ from .helpers import logging, mount, other, status # pmbootstrap version -__version__ = "3.10.1" +__version__ = "3.10.2" # Python version check # === CHECKLIST FOR UPGRADING THE REQUIRED PYTHON VERSION === diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pmbootstrap-3.10.1-a72d80ee0101e7fe7b9361b63f3b2f4046ef40a6/pmb/aportgen/gcc.py new/pmbootstrap-3.10.2-021ed2f5e15fa70f1543997fc76c7e9f8b8c8e68/pmb/aportgen/gcc.py --- old/pmbootstrap-3.10.1-a72d80ee0101e7fe7b9361b63f3b2f4046ef40a6/pmb/aportgen/gcc.py 2026-04-07 17:52:19.000000000 +0200 +++ new/pmbootstrap-3.10.2-021ed2f5e15fa70f1543997fc76c7e9f8b8c8e68/pmb/aportgen/gcc.py 2026-05-03 11:31:16.000000000 +0200 @@ -98,7 +98,7 @@ # gcc6: options is already there, so we need to replace it and not only # set it below the header like done below. # !tracedeps: workaround for issue 2517 - "options": "!strip !tracedeps", + "options": "!strip !tracedeps toolchain", "LIBGOMP": "false", "LIBGCC": "false", "LIBATOMIC": "false", diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pmbootstrap-3.10.1-a72d80ee0101e7fe7b9361b63f3b2f4046ef40a6/pmb/config/__init__.py new/pmbootstrap-3.10.2-021ed2f5e15fa70f1543997fc76c7e9f8b8c8e68/pmb/config/__init__.py --- old/pmbootstrap-3.10.1-a72d80ee0101e7fe7b9361b63f3b2f4046ef40a6/pmb/config/__init__.py 2026-04-07 17:52:19.000000000 +0200 +++ new/pmbootstrap-3.10.2-021ed2f5e15fa70f1543997fc76c7e9f8b8c8e68/pmb/config/__init__.py 2026-05-03 11:31:16.000000000 +0200 @@ -208,8 +208,8 @@ [666, "c", 1, 3, "null"], [666, "c", 1, 5, "zero"], [666, "c", 1, 7, "full"], - [644, "c", 1, 8, "random"], - [644, "c", 1, 9, "urandom"], + [666, "c", 1, 8, "random"], + [666, "c", 1, 9, "urandom"], [666, "c", 5, 0, "tty"], [666, "c", 5, 2, "ptmx"], ] diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pmbootstrap-3.10.1-a72d80ee0101e7fe7b9361b63f3b2f4046ef40a6/pmb/flasher/frontend.py new/pmbootstrap-3.10.2-021ed2f5e15fa70f1543997fc76c7e9f8b8c8e68/pmb/flasher/frontend.py --- old/pmbootstrap-3.10.1-a72d80ee0101e7fe7b9361b63f3b2f4046ef40a6/pmb/flasher/frontend.py 2026-04-07 17:52:19.000000000 +0200 +++ new/pmbootstrap-3.10.2-021ed2f5e15fa70f1543997fc76c7e9f8b8c8e68/pmb/flasher/frontend.py 2026-05-03 11:31:16.000000000 +0200 @@ -48,7 +48,7 @@ ): raise NonBugError( "deviceinfo_header_version' <= 2 is currently only supported with fastboot. See also:" - " <https://wiki.postmarketos.org/wiki/Deviceinfo_reference>" + " <https://postmarketos.org/deviceinfo>" ) # Generate the paths and run the flasher diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pmbootstrap-3.10.1-a72d80ee0101e7fe7b9361b63f3b2f4046ef40a6/pmb/flasher/run.py new/pmbootstrap-3.10.2-021ed2f5e15fa70f1543997fc76c7e9f8b8c8e68/pmb/flasher/run.py --- old/pmbootstrap-3.10.1-a72d80ee0101e7fe7b9361b63f3b2f4046ef40a6/pmb/flasher/run.py 2026-04-07 17:52:19.000000000 +0200 +++ new/pmbootstrap-3.10.2-021ed2f5e15fa70f1543997fc76c7e9f8b8c8e68/pmb/flasher/run.py 2026-05-03 11:31:16.000000000 +0200 @@ -60,7 +60,7 @@ "Your device does not have 'vbmeta' partition specified; set" " 'deviceinfo_flash_fastboot_partition_vbmeta' or" " 'deviceinfo_flash_heimdall_partition_vbmeta' in deviceinfo file. See also:" - " <https://wiki.postmarketos.org/wiki/Deviceinfo_reference>" + " <https://postmarketos.org/deviceinfo>" ) if ( @@ -71,8 +71,7 @@ raise NonBugError( "'vendor_boot' is only supported with" " 'deviceinfo_header_version' >= 3. See also:" - " <https://wiki.postmarketos.org/wiki/" - "Deviceinfo_reference>" + " <https://postmarketos.org/deviceinfo>" ) # dtbo flasher requires dtbo partition to be explicitly specified @@ -82,8 +81,7 @@ " specified; set" " 'deviceinfo_flash_fastboot_partition_dtbo'" " in deviceinfo file. See also:" - " <https://wiki.postmarketos.org/wiki/" - "Deviceinfo_reference>" + " <https://postmarketos.org/deviceinfo>" ) if no_reboot and ("flash" not in action or method != "heimdall-bootimg"): diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pmbootstrap-3.10.1-a72d80ee0101e7fe7b9361b63f3b2f4046ef40a6/pmb/flasher/variables.py new/pmbootstrap-3.10.2-021ed2f5e15fa70f1543997fc76c7e9f8b8c8e68/pmb/flasher/variables.py --- old/pmbootstrap-3.10.1-a72d80ee0101e7fe7b9361b63f3b2f4046ef40a6/pmb/flasher/variables.py 2026-04-07 17:52:19.000000000 +0200 +++ new/pmbootstrap-3.10.2-021ed2f5e15fa70f1543997fc76c7e9f8b8c8e68/pmb/flasher/variables.py 2026-05-03 11:31:16.000000000 +0200 @@ -50,9 +50,7 @@ partition_dtbo = None elif method.startswith("mtkclient"): partition_kernel = deviceinfo.flash_mtkclient_partition_kernel or "boot" - partition_vendor_boot = ( - deviceinfo.flash_fastboot_partition_vendor_boot or None - ) # TODO: is there a default? + partition_vendor_boot = deviceinfo.flash_mtkclient_partition_vendor_boot or "vendor_boot" partition_rootfs = deviceinfo.flash_mtkclient_partition_rootfs or "userdata" partition_vbmeta = deviceinfo.flash_mtkclient_partition_vbmeta or None partition_dtbo = deviceinfo.flash_mtkclient_partition_dtbo or None diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pmbootstrap-3.10.1-a72d80ee0101e7fe7b9361b63f3b2f4046ef40a6/pmb/helpers/run_core.py new/pmbootstrap-3.10.2-021ed2f5e15fa70f1543997fc76c7e9f8b8c8e68/pmb/helpers/run_core.py --- old/pmbootstrap-3.10.1-a72d80ee0101e7fe7b9361b63f3b2f4046ef40a6/pmb/helpers/run_core.py 2026-04-07 17:52:19.000000000 +0200 +++ new/pmbootstrap-3.10.2-021ed2f5e15fa70f1543997fc76c7e9f8b8c8e68/pmb/helpers/run_core.py 2026-05-03 11:31:16.000000000 +0200 @@ -264,40 +264,40 @@ # While process exists wait for output (with timeout) output_buffer: list[bytes] = [] - sel = selectors.DefaultSelector() - sel.register(stdout, selectors.EVENT_READ) - while process.poll() is None: - if context.command_timeout is not None: - wait_start = time.perf_counter() - timeout = context.command_timeout.length - try: - sel.select(timeout) - except OverflowError as exception: - raise NonBugError( - f"Specified timeout ({timeout}) isn't valid on this platform, maybe try something smaller ({exception})." - ) from exception + with selectors.DefaultSelector() as sel: + sel.register(stdout, selectors.EVENT_READ) + while process.poll() is None: + if context.command_timeout is not None: + wait_start = time.perf_counter() + timeout = context.command_timeout.length + try: + sel.select(timeout) + except OverflowError as exception: + raise NonBugError( + f"Specified timeout ({timeout}) isn't valid on this platform, maybe try something smaller ({exception})." + ) from exception - # On timeout raise error (we need to measure time on our own, because - # select() may exit early even if there is no data to read and the - # timeout was not reached.) - if output_timeout: - wait_end = time.perf_counter() - if wait_end - wait_start >= timeout: - logging.info( - f"Process did not write any output for {timeout} seconds. Killing it. Reason: {context.command_timeout.reason}" - ) - logging.info("NOTE: The timeout can be increased with 'pmbootstrap -t'.") - kill_command(process.pid, sudo) - continue - else: - # Block until output is received when no timeout is configured - sel.select(None) + # On timeout raise error (we need to measure time on our own, because + # select() may exit early even if there is no data to read and the + # timeout was not reached.) + if output_timeout: + wait_end = time.perf_counter() + if wait_end - wait_start >= timeout: + logging.info( + f"Process did not write any output for {timeout} seconds. Killing it. Reason: {context.command_timeout.reason}" + ) + logging.info("NOTE: The timeout can be increased with 'pmbootstrap -t'.") + kill_command(process.pid, sudo) + continue + else: + # Block until output is received when no timeout is configured + sel.select(None) - # Read all currently available output - pipe_read(process, output_to_stdout, output_log, output_return, output_buffer) + # Read all currently available output + pipe_read(process, output_to_stdout, output_log, output_return, output_buffer) - # There may still be output after the process quit - pipe_read(process, output_to_stdout, output_log, output_return, output_buffer) + # There may still be output after the process quit + pipe_read(process, output_to_stdout, output_log, output_return, output_buffer) # Return the return code and output (the output gets built as list of # output chunks and combined at the end, this is faster than extending the
