www/p5-Starlet: update 0.32 -> 0.33
Changelog: https://metacpan.org/dist/Starlet/changes
Security: prevent excessive CPU use when parsing malformed chunk-size lines
Security: bound read allocations for large Content-Length values
Security: suppress response bodies for HEAD requests and 204/304 responses
Security: stream chunk data to the body buffer and limit chunk-size lines to 4096 bytes
(cherry picked from commit 2d59ccefc7de23da947d3543c2f78f2355c1af98)
Mk: generate SBOM .pc files for all ports
Each package and subpackage now installs an SBOM file in pkg-config
format, see pc(5). The file is installed in ${PREFIX}/share/sbom/pc/.
The framework adds it to the plist automatically.
PR: 300098
Differential Revision: https://reviews.freebsd.org/D60441
devel/codequery: Add missing qt6-tools build dependency
CMake requires Qt6LinguistTools, which was previously pulled in
indirectly and is no longer available, breaking configure.
MFH: 2026Q4
graphics/heimer: Add missing qt6-tools build dependency
CMake requires Qt6LinguistTools, which was previously pulled in
indirectly and is no longer available, breaking configure.
MFH: 2026Q4
linuxkpi: Do not wait for a disabled tasklet in tasklet_unlock_wait()
tasklet_unlock_wait() waited for the tasklet state to become idle. Linux
only waits for TASKLET_STATE_RUN, i.e. for a tasklet that is currently
executing. A tasklet which is scheduled but disabled does not run until
it is enabled again, so in LinuxKPI it stays in the BUSY (queued) state and
the waiter never returns.
This is what happens when unloading i915: execlists_reset_prepare()
disables the engine tasklet with __tasklet_disable_sync_once() while the
tasklet is queued and kldunload loops forever in pause().
Do not wait if the tasklet is only queued and disabled.
Reviewed by: bz
Sponsored by: Beckhoff Automation GmbH & Co. KG
linuxkpi: Fix lkpi_i2c_del_adapter() leaving the devices behind
lkpi_i2c_del_adapter() looked for the lkpi_iic or lkpi_iicbb device to
delete with device_find_child() on increasing unit numbers, and stopped at
the first unit that does not exist. Units are allocated globally per
devclass, so as soon as one adapter was removed (leaving a hole) or when the
units of a parent do not start at 0, the adapter was not found and its
device was never deleted. The i2c devices of a driver such as i915 then
accumulate, with a new set of unit numbers, each time it is loaded.
Walk the children of the parent instead and match on the adapter.
Sponsored by: Beckhoff Automation GmbH & Co. KG
linuxkpi: Release devres on PCI driver detach
linux_pci_detach_device() called the driver remove method and then only
dropped its reference on the device, expecting the devres list to be
released from lkpi_pci_dev_release() once the last reference is gone.
That never happens when a devres action itself holds a reference on the
device. The typical case is devm_drm_dev_alloc(): the drm_device takes a
reference on its parent and the matching drm_dev_put() is a devres
action. The device is thus never released, drm_dev_release() is never
called and the DRM device and everything it owns is leaked, which makes
unloading drm-kmod drivers fail ("failed due to N other pending
references on the LinuxKPI device") and leaves the module unloadable or
crashing.
Linux releases the devres resources when a driver is unbound, so do the
same: call lkpi_devres_release_free_list() right after the remove method.
The list is empty when lkpi_pci_dev_release() runs later.
[2 lines not shown]
linuxkpi: Fix sysfs_remove_group() for groups without a name
sysfs_create_group() handles a group with a NULL name by creating its
attributes directly under the object node, but sysfs_remove_group() passed
the NULL name to sysctl_remove_name(), which then panics in strcmp().
Mirror the creation path: for an unnamed group, remove each attribute and
binary attribute individually.
This was not hit before because the devres actions of a PCI device
(e.g. the one registered by devm_device_add_group()) were not run when
the driver was detached.
Sponsored by: Beckhoff Automation Gmbh & Co. KG
libc/locale: Check EILSEQ return
_citrus_iconv_std_iconv_convert can return EILSEQ without setting
invlen. As a result, we should check EILSEQ in the return value or it
will incorrectly return -2
Reviewed by: kevans
Fixes: e2030ca246a7 ("libc: fix c*rtomb/mbrtoc*")
MFC after: 2 days
Differential Revision: https://reviews.freebsd.org/D61151
textproc/markterm: Update to 0.17.0
- bump the rebased litehtml submodule at d908f3f8
- regenerate patches against the new sources
Sponsored by: SkunkWerks, GmbH