ncal(1): handle Sweden's transitional calendar (1700-1712)
Sweden used a unique intermediate calendar during 1700-1712. In 1700,
Sweden omitted the Julian leap day (Feb 29, 1700) to begin a gradual
transition to the Gregorian calendar. The transition was abandoned
mid-way due to the Great Northern War; to revert to the Julian calendar,
an extra day "Feb 30, 1712" was added. Sweden finally adopted the
Gregorian calendar in 1753 (already handled correctly by ncal).
ncal previously displayed Feb 1700 as a 29-day month and Feb 1712 as a
29-day month, both incorrect for the Swedish (-s SE) calendar mode.
Add flag_sweden, which is set when the SE country code is selected (via
-s SE or the locale) and cleared by -J, since -J selects the plain
Julian calendar. When active, sndaysr() and sdater() apply the one-day
offset that characterised the Swedish transitional calendar:
- Feb 1700: displayed with 28 days (no leap day)
- 1700-03-01 to 1712-02-30: dates run one day ahead of Julian, so
[15 lines not shown]
net/norm: use upstream divert(4) patch to make it working on modern FreeBSD
This was accepted upstream to the protolib and added to the port in
ab6be4dbf3bb. Recently the patching was silently deleted in 5963119a132c.
The update of norm to 1.5.9 did not update the bundled dependency protolib
to a version that includes ba9ca1ca7d73592268ebfd5a43271303e76f461e,
instead it tied protolib to an older version.
Fixes: 5963119a132cd71510998f9173c54522a8e56678
mbuf: simplify m_free
The check for (M_PKTHDR|M_NOFREE) was added by np@ in
"91d1b03d3617 Merge r254736 from user/np/cxl_tuning."
in order to support a clever rx mode optimization used
by cxgbe at the time. That optimization was removed in
46e1e307edb6 several years ago. This check is otherwise
unneeded and adds an extraneous test to every mbuf free,
so let's remove it.
Reviewed by: glebius, np
Differential Revision: https://reviews.freebsd.org/D60686
Sponsored by: Netflix
iflib: unify prefetching
This change makes all prefetching use the iflib prefetch wrappers, rather
than using prefetch() in some places and __builtin_prefetch() in others.
Note that __builtin_prefetch() does not work in the kernel on amd64 as clang
disables it when -mnosse is specified, so we must use the asm directives there,
and builtin_prefetch() elsewhere.
This change enables prefetching on non-x86 (notably arm64), and it enables
prefetching in netmap that has been there since day one, but which has never worked.
This is a no-op on non-netmap amd64 and i386
Differential Revision: https://reviews.freebsd.org/D60602
Reviewed by: glebius, kbowling
Sponsored by: Netflix
games/vkquake: Update to 1.36.0 + take maintainer
Notable changes:
+ Support for 30th anniversary remaster
+ New level select menu
+ 5 new selectable crosshairs
+ more UI graphics filtering options
+ quake console seriously improved
+ multiplayer menu enhanced
+ lots of performance fixes, which were noticable on my laptop
PR: 298434
Approved by: Amelia Marsh <seafork at disroot.org> (maintainer timeout)
(cherry picked from commit 058caa7c245ccafcd5105d8afad84a1a91fbafed)
www/{nginx,nginx-devel,freenginx}: 3rd-party modules management
- Announce the removal of the HTTP_NOTICE option after 2026-12-31.
nginx can return a fixed body itself.
- Announce the removal of the HTTP_UPSTREAM_STICKY option after
2026-12-31 in nginx and nginx-devel. nginx has its own sticky
directive since 1.29.6, freenginx does not.
Sponsored by: Netzkommune GmbH
rms: Order a writer's stores before its readers see it leave
Readers check rms->writers without a fence, and rms_wunlock() drops
it with a plain store. rms_wlock() interrupts every CPU before the
first writer blocks readers, but nothing orders them when the last
writer leaves: on a weakly ordered CPU a reader can see the count
reach zero and still read what the writer replaced, such as callbacks
of a module unloaded under the lock.
Fence every CPU before the last writer drops the count: rename
rms_wlock_switch() to rms_block_readers() and add
rms_unblock_readers(), a wrapper for cpus_fence_seq_cst(). Readers
stay fence-free; the cost lands on the rare unlock.
Reviewed by: mjg
Discussed with: kib
Fixes: 1f162fef76a0 ("Add read-mostly sleepable locks")
MFC after: 2 weeks
Sponsored by: Rubicon Communications, LLC ("Netgate")
Differential Revision: https://reviews.freebsd.org/D60658
graphics/feh: Fix build with DOCS or EXAMPLES off
Upstream 3.13 moved the list of install targets from the Makefile to
INSTALL_TARGETS in config.mk. This meant the
install-doc/install-examples substitutions only deleted the rules and
left the upstream Makefile dependencies in place.
Edit INSTALL_TARGETS instead, and replace the config.mk patch with
example_dir passed via MAKE_ARGS.
Reported by: Dan Allen <danallen46 at gmail.com>
Sponsored by: The FreeBSD Foundation
Revert "net/libmodbus: [NEW PORT] Modbus TCP/RTU library for industrial communications"
* This is the duplicate of comms/libmodbus
This reverts commit 6479175b5c5c80fd1b9912cc30d925ec16b76af7.
PR: 299193
databases/mysql267-{server|client}: Add New Port
Welcome MySQL 26.7
MySQL switched to calendar versioning (YY.M) after the 9.7 LTS series,
so 26.7.0 is the first Innovation release after 9.7; there is no 9.8.
What is new in MySQL 26.7:
https://dev.mysql.com/doc/relnotes/mysql/26.7/en/news-26-7-0.html
Compared to mysql97:
- Drop patches for backup_page_tracker.cc and stdx/filesystem.cc,
merged upstream
- Add a missing <time.h> include to mgmapi.h, needed for the new
time_t member of ndb_mgm_cert_table
- Build as C++23 like upstream and drop USE_CXXSTD=c++20
- Drop -malign-double, an i386 workaround while i386 is excluded
- Drop WITH_BOOST, boost is bundled under extra/boost now
- Drop -DWITH_xxx=system already covered by WITH_SYSTEM_LIBS
[6 lines not shown]
x11/framework-laptop12: New port
Meta-port for the Framework Laptop 12 on FreeBSD X11
Reviewed by: jrm
Differential Revision: https://reviews.freebsd.org/D60627
x11/framework-keyboard: New port
Meta-port for the Framework laptop Fn row and media keys.
Reviewed by: jrm
Differential Revision: https://reviews.freebsd.org/D60618
arm64: Fix and rename midr_check_var_part_range()
At the lowest and highest variants in the specified range,
midr_check_var_part_range() was comparing the part number, rather than
the revision, against the bounds. In other words, the "Y" in "rXpY"
should be compared to CPU_REV() instead of CPU_PART(). Apply this
correction, and rename the function to midr_check_var_rev_range() to
better reflect the field that we are checking.
Reported by: Claude Code (Opus 5.5)
Reviewed by: andrew
MFC after: 1 week
Differential Revision: https://reviews.freebsd.org/D60624