[continued from previous message]   
      
   Contact: Isaac Freund    
      
   Some problems blocking progress on the PkgBase project are caused by   
   shortcomings of pkg(8). The primary goal of my work on pkg is to unblock   
   PkgBase progress. However, all users of pkg will benefit even if they do not   
   use PkgBase.   
      
   The scheduler for pkg’s install/upgrade/delete jobs has been rewritten,   
   motivated by solving PR259785. The new scheduler models the scheduling problem   
   as a directed graph and splits upgrade jobs into delete/install halves only   
   when necessary to break a cycle in the graph. This formal model gives strong   
   guarantees about ordering that the old scheduler was not able to provide and   
   prevents unnecessary splitting of upgrade jobs. It also fixes longstanding bugs   
   where the old scheduler would bail out and cause the entire upgrade to fail.   
   The new scheduler is included in pkg version 1.21.99.3 (pkg-devel).   
      
   The rest of my work this quarter has been related to pkg’s automatic tracking   
   of shared library dependencies, which PkgBase heavily relies on. The initial   
   motivating problem was PR265061 but it was necessary to make more fundamental   
   changes to how pkg tracks shlibs before cleanly solving that problem became   
   possible.   
      
   When a package is created with pkg-create(8), pkg scans the included files and   
   generates shlibs_provided/shlibs_required lists based on the executables/shared   
   libraries found. Before my changes, pkg would use the elf hints file of the   
   host system as an input to pkg-create in order to filter out shlibs provided by   
   the base system from the generated shlibs_required list. An ALLOW_BASE_SHLIBS   
   option disabled this filtering for the purpose of building PkgBase packages.   
      
   After my changes, pkg-create no longer reads the elf hints file of the host   
   system and base system shlibs are included in the generated shlibs_required   
   list. When pkg-install(8)/pkg-upgrade(8)/etc. invoke the solver on an   
   non-PkgBase system, pkg generates a list of shlibs provided by the base system   
   as an input to the solver by scanning /lib and /usr/lib. On a PkgBase system,   
   the PkgBase packages provide all base system shlibs.   
      
   This allows the ALLOW_BASE_SHLIBS option to be eliminated. It also gives better   
   integration between the ports packages and PkgBase packages as shlib   
   dependencies of ports packages on PkgBase packages are now tracked rather than   
   ignored. Finally, this change significantly simplifies the pkg codebase and   
   improves portability. This change was implemented in   
   https://github.com/freebsd/pkg/pull/2386 and is not yet included in a pkg   
   release.   
      
   With that change and other internal improvements I was able to add support for   
   tracking lib32 and Linuxulator shlibs, which should resolve the problem that   
   originally motivated my work on pkg’s shlib handling (PR265061). This support   
   is implemented in https://github.com/freebsd/pkg/pull/2387 and is not yet   
   included in a pkg release.   
      
   Sponsor: The FreeBSD Foundation   
      
   ━━━━━━━━━━━━━━━━━━━━━   
   ━━━━━━━━━━━━━━━━━━━━━   
   ━━━━━━━━━━━━━━━━━━━━   
   ━━━━━━━━━━━━━━   
      
   Progress on the FreeBSD installer   
      
   Links:   
   Improving Repair Ability of the FreeBSD Installer URL:   
   https://wiki.freebsd.org/SummerOfCode2024Projects/ImprovingRepai   
   AbilityOfTheFreeBSDInstaller   
   GSoC 2024 - Improving Installer with Repair and Upgrade Ability (#1395) URL:   
   https://github.com/freebsd/freebsd-src/pull/1395   
   bsdinstall: Add pkg install support in live env (#1424) URL:   
   https://github.com/freebsd/freebsd-src/pull/1424   
   bsdinstall: Add repair scripts to installer menu (#1427) URL:   
   https://github.com/freebsd/freebsd-src/pull/1427   
   Laptop and Desktop Working Group URL: https://wiki.freebsd.org/L   
   ptopDesktopWorkingGroup   
      
   Contact: Pierre Pronchery    
      
   As part of 2024’s GSoC Project on the FreeBSD installer, I had the pleasure   
   to   
   mentor Chun Cheng Yeh (aka "Leaf") with his implementation of additional   
   capabilities. The aim was to add support for repairing or updating an existing   
   installation of FreeBSD, as well as allowing packages to be installed in the   
   Live environment. This work has been consolidated into three distinct   
   pull-requests, available on GitHub. While some aspects probably still require   
   additional polishing before a possible merge, the possibility to significantly   
   extend the installer images into a potentially life-saving tool is within   
   reach.   
      
   This is particularly relevant given the ongoing efforts to improve support for   
   laptop and desktop use of FreeBSD. In this context, I am currently resuming   
   work on the graphical version of the installer. The most immediate challenge   
   includes shaping it suitably for integration into the next major release.   
      
   Combining the two initiatives above should help FreeBSD close some gaps with   
   its competition amongst other modern Operating Systems, for the enterprise as   
   well as for laptop and desktop use.   
      
   Sponsored by: The FreeBSD Foundation   
      
   ━━━━━━━━━━━━━━━━━━━━━   
   ━━━━━━━━━━━━━━━━━━━━━   
   ━━━━━━━━━━━━━━━━━━━━   
   ━━━━━━━━━━━━━━   
      
   Kernel   
      
   Updates to kernel subsystems/features, driver support, filesystems, and more.   
      
   ━━━━━━━━━━━━━━━━━━━━━   
   ━━━━━━━━━━━━━━━━━━━━━   
   ━━━━━━━━━━━━━━━━━━━━   
   ━━━━━━━━━━━━━━   
      
   Audio Stack Improvements   
      
   Contact: Christos Margiolis    
      
   The FreeBSD audio stack is one of those fields that does not attract the same   
   attention and development as others do, since it has been left largely   
   unmaintained, and, although high in quality, there is still room for   
   improvement — from lack of audio development frameworks, to missing   
   userland   
   utilities and kernel driver-related bugs. This project is meant to touch on all   
   those areas, and as such, is more of a general improvement project, than an   
   implementation of a specific feature.   
      
   Important work since last report:   
      
    • sound(4) and driver bug fixes, including panics and races. Several   
   cleanup   
    and refactor patches.   
      
    • Committed mididump(1). Ships with 14.2-RELEASE and 14-STABLE.   
      
    • Implementing AFMT_FLOAT support. This fixes ports, such as   
   emulators/wine,   
    that require AFMT_FLOAT support from OSS. Related bug reports: PR 184380,   
    PR 281390, PR 264973, PR 157050.   
      
   Future work includes:   
      
    • More bug fixes, optimizations and general improvements.   
      
    • Implement a generic MIDI layer, similar to pcm/, and improve/modernize   
   the   
    MIDI codebase in general.   
      
    • Implement a bluetooth device management utility.   
      
    • virtual_oss patches and improvements.   
      
    • Attempt to automate snd_hda(4) pin-patching.   
      
    • Investigate SOF/DMIC support.   
      
   You can also follow the development process in freebsd-multimedia@, where I   
   post regular reports.   
      
   Sponsor: The FreeBSD Foundation   
      
   ━━━━━━━━━━━━━━━━━━━━━   
   ━━━━━━━━━━━━━━━━━━━━━   
   ━━━━━━━━━━━━━━━━━━━━   
   ━━━━━━━━━━━━━━   
      
   mac_do(4), setcred(2), mdo(1)   
      
   Contact: Olivier Certner    
      
   [continued in next message]   
      
   --- SoupGate-DOS v1.05   
    * Origin: you cannot sedate... all the things you hate (1:229/2)   
|