sysutils/coxswain: Add new port
Coxswain is a two-panel file manager in the Norton Commander tradition,
built for developers. The panels show git status for every file, the
function keys copy, move and delete, and archives (zip, 7z, tar) open
like folders.
WWW: https://github.com/mwo-dk/coxswain
PR: 299198
Approved by: osa, vvd (Mentors, implicit)
lang/swift6: Update to 6.4.1
While here, import some patches from devel/libdispatch for avoiding
hang up during `swift build` and `swift test`.
Release Announcement: https://forums.swift.org/t/announcing-swift-6-4-1/90029
PR: 299843
Reported by: GitHub (watch releases)
Reviewed by: pkubaj
Obtained from: devel/libdispatch (patches for swift-corelibs-libdispatch)
Co-authored-by: Piotr Kubaj <pkubaj at FreeBSD.org>
www/mod_tls: Remove port
Project is no longer maintained
API changes in rustls prevent builing
Removed (as experimental module) from Apache httpd in 2025-01-23
amd64: Make the SYSENTER and INTn action same as for IDT case.
Fixes: 6e93f5e4d693 ("amd64: FRED support")
Sponsored by: The FreeBSD Foundation
MFC after: 1 week
amd64: do not pass SYSENTER frame to FRED fast syscall handler
With FRED, SYSCALL is delivered as event type syscall (7) and vector 1.
SYSENTER is syscall with vector 2. Handle SYSENTER in slow path,
otherwise 32bit code is able to execute 64bit syscalls.
Also check that SYSCALL comes from the 64bit mode. Intel already
specifies that SYSCALL causes #UD in compatibility mode, but there is no
AMD specification for SYSCALL under FRED yet, and SYSCALL is allowed
in compatibility mode on AMD with IDT event delivery.
Fixes: 6e93f5e4d693 ("amd64: FRED support")
Sponsored by: The FreeBSD Foundation
MFC after: 1 week
amd64: fixes for register handling of syscall entry for FRED
- Save %r10 into tf_rcx. This is the location for the 4th arg.
libsys stubs do 'movq %rcx, %r10' so the fast syscall path works
as is. But Go binaries directly put arg 4 into %r10.
Also save %r11 into tf_r11 for the duration of syscall handler.
- Somewhat improve binary compatibility with IDT SYSCALL fast return,
by copying userspace return %rip into %rcx, and %rflags into %r11,
emulating SYSCALL IDT delivery.
Fixes: 6e93f5e4d693 ("amd64: FRED support")
Sponsored by: The FreeBSD Foundation
MFC after: 1 week
amd64: do not allow to set IOPL to 3 when FRED is used
SDM requires that IOPL is zero when returning to usermode with ERETU.
Do not set rflags.iopl for FreeBSD io(4) open.
This might be changed to disallow io(4) open for FRED at all with a
knob, if there is a real need.
Return ENOSYS from linux iopl(2), apparently Linux kernel can be
configured without iopl(2) support, so linux programs should be prepared
for this error.
Return EINVAL from vt(4)/syscons(4) ioctl(KDENABIO).
Fixes: 6e93f5e4d693 ("amd64: FRED support")
Sponsored by: The FreeBSD Foundation
MFC after: 1 week
amd64_cpu_init_fred(): set stack level for NMI and not #NM
Fixes: 6e93f5e4d693 ("amd64: FRED support")
Sponsored by: The FreeBSD Foundation
MFC after: 1 week
graphics/py-svg.path: Update to 7.1
graphics/py-svg.path 4.0.2 cannot be imported on Python 3.10 and
later (3.12, the current default, shown):
$ python3.12 -c 'import svg.path'
ImportError: cannot import name 'MutableSequence' from 'collections' (/usr/local/lib/python3.12/collections/__init__.py)
svg/path/path.py does "from collections import MutableSequence", which
Python 3.10 removed. svg.path, svg.path.path and svg.path.parser all
fail, so the package is unusable.
Upstream fixed this in 4.1 (2021-02-16). The patch updates the port to
the latest release, 7.1 (2026-07-07):
- the sdist is now svg_path-*, so the DISTNAME override goes away;
- the port builds with pep517; upstream's pyproject needs
setuptools>=61.2, which the tree's 63.1.0 satisfies, plus wheel;
- setuptools 63 names the wheel and dist-info after the project name
(svg.path) while the framework expects ${PORTNAME} (svg_path), so
[15 lines not shown]
sound tests: Check the return value of close(2)
While here, remove two munmap(2) calls on mappings the tests require to
have failed, since they are practically dead.
MFC after: 1 week
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D60800
sound: Let pcm_unregister() tear down a partially initialized device
Since 3107b952f534 ("sound: Merge PCM_ALIVE() with PCM_REGISTERED()"),
pcm_unregister() is gated on PCM_REGISTERED(), so it cannot run unless
pcm_register() has already succeeded, which means drivers will leak
resources if a failure happened prior to this.
Reintroduce PCM_ALIVE(), but test dev rather than the lock. pcm_init()
assigns dev before anything else, so it can tell us whether pcm_init()
has run or not. Make sure to clear it in pcm_unregister() so that a
second call to pcm_unregister() cannot double-free.
While here, publish to sndstat(4) only once pcm_register() has
succeeded.
Reported by: jah
Fixes: 3107b952f534 ("sound: Merge PCM_ALIVE() with PCM_REGISTERED()")
MFC after: 1 week
Sponsored by: The FreeBSD Foundation
[2 lines not shown]
sysutils/py-salt: Update to 3008.5
While here:
- Restore the FreeBSD default paths. Since the switch to
USE_PYTHON=pep517 in 3008.2, PYDISTUTILS_INSTALL_TARGET is no longer
used, so the --salt-*-dir options were silently ignored and
salt/_syspaths.py was not generated. Salt fell back to the upstream
defaults (/srv/salt, /srv/pillar) instead of
/usr/local/etc/salt/states and /usr/local/etc/salt/pillar, as
documented in master.sample. Ship _syspaths.py from files/ instead.
Users of 3008.2 - 3008.4 who keep states or pillars in /srv without
setting file_roots/pillar_roots explicitly have to move them to
/usr/local/etc/salt/{states,pillar} or set these options.
- Mention sysutils/py-saltext.freebsd in pkg-message. Since 3008 the
FreeBSD-specific modules (service, sysrc, sysctl, kmod, jail, ports,
freebsd_update, shadow) are provided by this extension. It cannot be
added to RUN_DEPENDS, as it depends on py-salt itself.