Planet

Last updated: 2026-07-27 12:45:00 UTC

Valuable News – 2026/07/27

Post by Vermaden via 𝚟𝚎𝚛𝚖𝚊𝚍𝚎𝚗 »

The Valuable News weekly series is dedicated to provide summary about news, articles and other interesting stuff mostly but not always related to the UNIX/BSD/Linux systems. Whenever I stumble upon something worth mentioning on the Internet I just put it here.

Today the amount information that we get using various information streams is at massive overload. Thus one needs to focus only on what is important without the need to grep(1) the Internet everyday. Hence the idea of providing such information ‘bulk’ as I already do that grep(1).

The Usual Suspects section at the end is permanent and have links to other sites with interesting UNIX/BSD/Linux news.

Past releases are available at the dedicated NEWS page.

UNIX

FreeBSD pkg(8) 2.8.0 Released.
https://github.com/freebsd/pkg/releases/tag/2.8.0

Google Summer of Code 2026 Reports: Compat Linux Syscall Testing
https://blog.netbsd.org/tnf/entry/gsoc2026_testing_compat_linux

BoxyBSD Returns to FreeBSD: Migrating from Proxmox VE to Sylve with Bhyve.
https://gyptazy.com/blog/boxybsd-moving-from-proxmox-to-bhyve-with-sylve/

Monitor Your Devices with LibreNMS on FreeBSD.
https://it-notes.dragas.net/2026/05/07/monitor-your-services-with-librenms-on-freebsd/

Install Latest Native Claude Code on FreeBSD.
https://forums.freebsd.org/threads/install-latest-claude-code.103339/

Understanding ZFS Vdev Types.
https://klarasystems.com/articles/openzfs-understanding-zfs-vdev-types/

Game of Trees 0.127 Released.
https://undeadly.org/cgi?action=article;sid=20260721102106

Stalwart Mail Server Now Officially Supports FreeBSD.
https://reddit.com/r/freebsd/comments/1v1nj2k/stalwart_mail_server_now_officially_supports/

My Home Assistant Setup: FreeBSD Bhyve/Jails nad Zigbee/Homematic/Matter.
https://blog.hofstede.it/my-home-assistant-setup-bhyve-freebsd-jails-zigbee-homematic-and-matter-over-thread/

FreeBSD Foundation Welcomes New Board Member: Dave Cottlehuber.
https://freebsdfoundation.org/blog/freebsd-foundation-welcomes-new-board-member-dave-cottlehuber/

If Scrubs Hurt Your ZFS Design is Broken.
https://klarasystems.com/articles/if-scrubs-hurt-your-zfs-design-is-broken/

Ports Repository Freeze.
https://lists.freebsd.org/archives/freebsd-announce/2026-July/000294.html

Wlasny Serwer FreeBSD – Czesc 7 – Serwer Poczty IMAP. [Polish]
https://linuxiarze.pl/wlasny-serwer-freebsd-cz-7-serwer-poczty-imap/

NetBSD 11.0 RC7 Available.
https://blog.netbsd.org/tnf/entry/netbsd_11_0_rc7_available

FreeBSD Jails Architecture – Multiple Applications on Small VPS.
https://x.com/coolgadgetru/status/2080177035402707352/photo/1

Wine 11.14 Brings New WoW64 Mode to FreeBSD.
https://linuxiac.com/wine-11-14-brings-new-wow64-mode-to-freebsd/

Developer Accidentally Commits Copilot Binary to FreeBSD Ports.
https://theregister.com/os-platforms/2026/07/24/dev-commits-copilot-to-freebsd-ports/5278458

AI Generated Experimental musl Port for FreeBSD.
https://lists.freebsd.org/archives/freebsd-hackers/2026-July/006633.html

Wine 11.14 Brings WoW64 to FreeBSD and Start Menu Icons Support.
https://phoronix.com/news/Wine-11.14-Released

I Built FreeBSD Cloud to Use with FreeBSD.
https://interfacecraft.online/blog/2026/i-built-a-freebsd-cloud-to-use-with-freebsd/

User Frustrations Over Tragic State of FreeBSD Audio/Sound Support.
https://phoronix.com/news/Tragic-FreeBSD-Audio-Support

Adding Backup Internet WAN on OPNsense Router.
https://jeffgeerling.com/blog/2026/opnsense-backup-internet-gateway/

Running pkgbasify(8) on FreeBSD 15.0 Host to Convert Jail.
https://dan.langille.org/2026/07/20/running-pkgbasify-on-a-freebsd-15-0-host-to-convert-a-jail/

OpenBSD httpd(8) Gains Custom HTTP Headers Support.
https://undeadly.org/cgi?action=article;sid=20260725103657

Migrating to FreeBSD-CURRENT with PKGBASE Using ZFS Boot Environments.
https://antranigv.am/posts/2025/06/migrating-to-freebsd-current-with-pkgbase-using-boot-environments/

UNIX/Audio/Video

Using and Configuring VLAN on FreeBSD.
https://youtube.com/watch?v=uVMe55XOnE8

What is FreeBSD in 5 Minutes: Introduction/History/Significance.
https://youtube.com/watch?v=gHIyooJQ0ug

FreeBSD 15.0 Installation ana Basic Setup.
https://youtube.com/watch?v=V5zu3ys77fY

FreeBSD 15.0 Desktop Installation.
https://youtube.com/watch?v=NFV9c2l6L10

Look at SweetHome3D on GhostBSD.
https://youtube.com/watch?v=U7r-6Lgdq6E

BSD Now 673: There is Somebody at the Door.
https://www.bsdnow.tv/673

Hardware

Old SSDs Find New Life as Game Cartridges.
https://hackaday.com/2026/07/20/old-ssds-find-new-life-as-game-cartridges/

Commodore: Why Fold When You Can Flip?
https://commodore.net/why-fold-when-you-can-flip/

Interesting Desk Setups with Multiple Computers/Monitors.
https://symless.com/synergy/competition/setups

Do Not Buy LG Spyware TVs/Monitors/Wiretapping Concerns.
https://youtube.com/watch?v=Q9uefFYe6bM

Hard Drive Cartel – Criminal Conspiracy and Price Fixing.
https://youtube.com/watch?v=Zj1mBNjpZ88

Welcome to the Jungle: When Formula 1.5 Came to Spa
https://autosport.com/f1/news/welcome-to-the-jungle-when-formula-15-came-to-spa/10840401/

Why F1 Drivers are Being Beaten by Their Own Power Units.
https://autosport.com/f1/news/why-f1-drivers-are-being-beaten-by-their-own-power-units/10840087/

41 Years of Commodore AMIGA: 41 Facts About Legendary Computer.
https://generationamiga.com/2026/07/25/41-years-of-commodore-amiga-41-facts-about-a-computing-legend/

Photo That Killed KODAK Company.
https://youtube.com/watch?v=M9wf43aoJhU

Life

Systematic Review of Autopsy Findings In Deaths After COVID-19 Vaccination.
https://publichealthpolicyjournal.com/a-systematic-review-of-autopsy-findings-in-deaths-after-covid-19-vaccination/

John C. Dvorak Has Passed Away.
https://twit.community/t/john-c-dvorak-has-passed-away/20291

Panama Approves Prison Sentences of Up to 5 Years for Women Who Deceive About Child Paternity.
https://upsocl.com/en/panama-approves-prison-sentences-of-up-to-5-years-for-women-who-deceive-about-a-childs-paternity/

Other

IPv8: Draft of New Internet.
https://transitai.app/blog/ipv8-draft-zone-server-math/

Huge Firefox Usability Bug in Saving Files.
https://bugzilla.mozilla.org/show_bug.cgi?id=2047865

Usual Suspects

BSD Weekly.
https://bsdweekly.com/

DiscoverBSD.
https://discoverbsd.com/

BSDSec.
https://bsdsec.net/

DragonFly BSD Digest.
https://dragonflydigest.com/

FreeBSD Patch Level Table.
https://bokut.in/freebsd-patch-level-table/

FreeBSD End of Life Date.
https://endoflife.date/freebsd

Phoronix BSD News Archives.
https://phoronix.com/linux/BSD

OpenBSD Journal.
https://undeadly.org/

Call for Testing.
https://callfortesting.org/

Call for Testing – Production Users Call.
https://youtube.com/@callfortesting/videos

BSD Now Weekly Podcast.
https://www.bsdnow.tv/

Nixers Newsletter.
https://newsletter.nixers.net/entries.php

BSD Cafe Journal.
https://journal.bsd.cafe/

DragonFly BSD Digest – Lazy Reading – In Other BSDs.
https://dragonflydigest.com

BSDTV.
https://bsky.app/profile/bsdtv.bsky.social

FreeBSD Git Weekly.
https://freebsd-git-weekly.tarsnap.net/

FreeBSD Meetings.
https://youtube.com/@freebsdmeetings

BSDJedi.
https://youtube.com/@BSDJedi/videos

RoboNuggie.
https://youtube.com/@RoboNuggie/videos

GaryHTech.
https://youtube.com/@GaryHTech/videos

Sheridan Computers.
https://youtube.com/@sheridans/videos

82MHz.
https://82mhz.net/

EOF
Top

April-June 2026 Status Report

Post by FreeBSD Newsflash via FreeBSD News Flash »

The April to June Status Report is now available with 41 entries.
Top

BSDCan 2026 Travel Report – Novković

Post by FreeBSD Foundation via FreeBSD Foundation »

This year, I had the great privilege of receiving the FreeBSD Foundation travel grant to attend BSDCan.

The conference informally kicked off with the traditional gathering at the Father & Sons bar near the 90U residence on Tuesday. The first day of the FreeBSD developer summit opened with Nicholas Carlini’s talk about LLM-driven security analysis in the FreeBSD kernel, setting the tone for the remainder of the first devsummit day. Alpha-Omega’s Michael Winser continued this discussion from an open-source maintainer’s perspective, outlining strategies for dealing with the torrential influx of LLM-reported vulnerabilities. After a brief lunch break, the summit continued with Vince Milum’s presentation about building a Raspberry Pi-based GPS NTP server appliance using FreeBSD. The overview of his journey in applying FreeBSD to such an unorthodox use case was interesting and highlighted a few rough edges when using FreeBSD in embedded computing.


The summit continued with the Foundation’s yearly overview and an update from the srcmgr team, after which I spent some time catching up with a few colleagues in the hallways. The first day was capped off by a pizza dinner at the 90U lounge.

The second day of the devsummit began with an overview of the current state of the FreeBSD project’s infrastructure and the ongoing efforts to expand its use of cloud resources. After two “Have/Need/Want” planning sessions, I attended Olivier Certner’s talk about his ongoing work in the scheduler.
The devsummit concluded with a round of shorter talks about planned work in the network stack, extended kernel errors, and virtual memory improvements from Netflix. The day concluded with a hacking session at the 90U lounge that lasted well into the night.

The first day of the conference began with Sean Howard’s talk about accessibility tooling that allowed them to use OpenBSD while recovering from eye surgery. Next up was Martin Vahlensieck’s talk about his new tool for creating temporary VMs on FreeBSD. After a short lunch break, I attended Henning Brauer’s talk about OpenNTPD and its now 20+ years of history. Following a short break in the quiet room, I attended Colin Percival’s talk about the turbulent FreeBSD 15.0 release process. The day once again concluded in the hacker lounge, where I also spent some time talking to Mark Johnston and John Baldwin about our ongoing srcmgr activities.

The final day of the conference began with Allan Jude’s talk about the recently introduced ZFS AnyRAID feature. Next up was Olivier Certner’s talk about the ongoing work to support hibernation on FreeBSD.
The talk explored the implementation details in a lot of depth, and I was particularly astonished by the amount of groundwork needed to add proper hibernate support in the kernel. After lunch, I attended John Baldwin’s talk on thread-local storage. Another one of John’s fantastic ELF-related talks, it went into the gory details, behind TLS support in various parts of FreeBSD.


The penultimate talk of the day was another by Martin Vahlensieck, this time dealing with a deep dive into a seemingly trivial operation – writing to /dev/null. The talk was put together exceptionally well and did a great job of presenting complicated operating system concepts to a varied audience of users and developers. The last talk of the day was Jaeyoon Choi’s talk about adding Universal Flash Storage support to FreeBSD, after which we slowly started heading to the closing reception.

Attending this year’s BSDCan provided me with plenty of new project ideas for the near future and reinvigorated my drive to contribute to the project.
Once again, thank you to the FreeBSD Foundation for sponsoring my attendance this year.

The post BSDCan 2026 Travel Report – Novković first appeared on FreeBSD Foundation.

Top

Ports Repository Frozen

Post by FreeBSD Newsflash via FreeBSD News Flash »

The ports repository has been frozen to revert a very large commit. There is no concern that the tree has been compromised. More information about the freeze can be found on the 2026 Ports Freeze page.
Top

LG to Ban Residential Proxies from Smart TV Apps

Post by Brian Krebs via Krebs on Security »

The home appliance giant LG Electronics USA said this week it plans to suspend any apps built for its smart TVs that turn one’s television into an always-on residential proxy node. The move comes less than a month after researchers found that more than 42 percent of games and other apps available for download on LG’s webOS store allow unknown third-parties to route their Internet traffic through a user’s TV.

Proxy SDK prevalence among smart TV apps for LG (webOS) and Samsung (Tizen OS) televisions. Image: Spur.us.

On July 2, we featured research by the security firm Spur that examined the prevalence of residential proxy software development kits (SDKs) in smart TV apps. Spur found more than 42 percent of apps available for download on LG smart TVs include SDKs that turn one’s television in a proxy node indefinitely, and that more than a quarter of the apps made for Samsung’s Tizen operating system had similar residential proxy components.

Responding to questions about Spur’s research, LG Senior Vice President John Taylor told KrebsOnSecurity the company was working with app developers to remove the residential proxy option from their apps on the webOS platform. Developers that fail to comply, he said, will find their apps suspended.

“A residential proxy network is not an intended use for LG smart TVs, and LG Electronics is working with developers to remove the residential proxy option from their apps on the webOS platform,” Taylor said. “If this option is not removed, these apps will be suspended.”

Taylor said LG is committed to keeping residential proxy networks out of its smart TV apps going forward, and that the company’s review of those apps is “well underway now.”

“As part of our ongoing efforts to enhance platform quality and the user experience, LG will continue to strengthen our evaluation process for developer-submitted apps, including those that incorporate residential proxy SDKs,” Taylor wrote in an emailed statement.

App makers looking for ways to monetize their creations can turn to residential proxy providers, which pay developers to include SDKs that turn the user’s device into a residential proxy node that is rented to paying customers. In the case of LG and Samsung smart TVs, Spur found residential proxy SDKs bundled with everything from simple games like Pac-Man to screensavers and file utilities.

A Pac-Man smart TV app from Bright Data offers users the choice between viewing ads in the game or agreeing to allow their TV to serve as a residential proxy node. Image: Spur.us.

Spur’s report found the residential proxy network Bright Data accounted for a majority of proxy SDKs across both Samsung and LG smart TVs. In a statement shared with KrebsOnSecurity, Bright Data said its network is built on consent and responsibility and operates by LG and Samsung terms.

“Every peer opts in through a dedicated screen and receives value in return; every customer is vetted, and our practices have now undergone a second independent audit by PwC,” the statement reads. “We remain committed to an open, transparent internet where legitimate businesses, researchers, and institutions can responsibly access data that lives in the public domain.”

Bright Data and other proxy providers named in Spur’s report all say they follow rigorous know-your-customer processes to validate legitimate uses of their services, which is often heavily tied to content-scraping activities by said customers. The proxy companies also say they incorporate technological countermeasures to prevent proxy service customers from being able to interact with and control other devices on the proxy user’s local network.

Spur argues the problem is not that residential proxy networks exist, but rather that they are being embedded at scale in devices that most consumers do not think of as computers and are not equipped to audit.

“A one-time consent prompt buried in a TV app is not a substitute for meaningful transparency, ongoing control, and platform oversight,” Spur’s Trevor Sutter wrote. “The risk is amplified when consent comes from individuals within the household who use the device but shouldn’t give consent, such as minors.”

LG’s announcement that it is culling residential proxy SDKs from its app store is welcome news, but the company recently came under fire for another questionable partnership: Pimping McAfee security products via software drivers included in its high-end LCD monitors.

Earlier this week, the Youtube channel Gamers Nexus showed that certain LG LCD monitors will automatically install an app that promotes paid McAfee antivirus subscriptions, and that the app arrives through Windows Update without an approval prompt.

Update, July 22, 1:06 p.m. ET: Added statement from Bright Data.

Top

BSDCan 2026 Travel Report – Patrick McEvoy

Post by FreeBSD Foundation via FreeBSD Foundation »

The June 2026 FreeBSD DevSummit & BSDCan was again successfully recorded and streamed through longtime streaming sponsor ScaleEngine. The requested DevSummit 2 question microphone system kept our running around to a minimum and fit the two rows of DMS1160. We got to see CheriBSD hardware again, in fact, Brooks Davis presented from a CheriBSD box. This year, the DevSummit focused more on AI integration than in previous years. Community member Warner Losh, in particular, gave an interesting talk about how he has used AI to help resolve an issue he was facing. I will refer you to the video posted to the FreeBSD YouTube channel for more details.

Community members Michael Williams and AV Lead Andrew Fengler lent us the mixing boards, which gave us the control we needed, so speakers, both low and enthusiastic, were heard clearly. This year’s hardware collection included community-donated hardware and personal hardware lent for the event. BSDCan fundraiser-in-chief Michael Dexter brought everything from home that the TSA would let him, and my bags were so full, I didn’t have room for my customary roll(s) of gaffer tape.

BSDCan has been successfully building attendee numbers year over year, with just shy of 170 for 2026. My fondest memory of the conference as part of the very hard working organization committee, was seeing Henning pull our shawarma vendor aside to deliver effusive praise for what many agreed was a fantastic lunch on Saturday.

Other highlights:
– additional sleep support for the Framework laptop (Thank you, Devon!)
– one of the smoothest AV team activations I have ever seen at a conference.
– improved social media tie-in via both IRC and Discord
(Many thanks to Charlie Li, Setesh, & and a team of Discord volunteers)
– Nearly $2,000 raised for local charities.

Now, if you will excuse me, I have 4 days of videos to edit and post to the web.
Be well,
Patrick McEvoy bsdtv / bsdcan 2026 con chair

The post BSDCan 2026 Travel Report – Patrick McEvoy first appeared on FreeBSD Foundation.

Top

BSDCan 2026 Trip Report – ShengYi Hung

Post by FreeBSD Foundation via FreeBSD Foundation »

I’m really grateful to the FreeBSD Foundation for sponsoring my trip to BSDCan 2026 in Ottawa. The conference ran for four days — two days of DevSummit, then two days of the main conference, with many interesting talks throughout. For me, it’s mainly a chance to talk with developers I don’t otherwise get to reach in day-to-day work. This was my third time attending, and I was happy to be back again. 

This year’s DevSummit felt a little different from previous years. A number of sessions touched on how AI is influencing project maintainability. Some of that influence is positive — vulnerability research came up as one example — but it’s also adding real burden on the reviewer side. Hearing different opinions from different people gave me a much broader view of the issue than I had going in. 

This was also my first DevSummit as a src committer, so on day two, I got to take part in “Have Need Want” — the usual BSDCan session for this — and present my own work for review along with my plans for the next release. That covered updates to our USB stack, LLVM, CPU power throttling, and bhyve. I also got some feedback privately afterward, which drew a bit of welcome attention from other developers. 

On the first day of the main conference, the talk I found most interesting was “Heterogeneous Scheduling on FreeBSD” by Minsoo Choo. It wasn’t really about the scheduler itself, but it got into something just as important: how heterogeneous core information should feed into the scheduler, and where and how that should happen.  It reminded me that my CPU throttling work needs the same kind of information.  Right now, the idea is to raise performance parameters as fast as possible under load, and back off while idle to save power. On a non-heterogeneous system, that only means tracking idle time. But on a heterogeneous system, cores differ in performance, which changes how we translate an abstract performance instruction into something a given core can act on — and that in turn affects how the cpufreq interface makes its decisions. I was glad to hear that there are already interfaces that provide heterogeneous-core hints for throttling, and I’m hoping to fold that into my future work. 

On day two, I went to “Return of the Segment: Thread Local Storage” by jhb@. Since I also work on LLVM ELF internals, it was great to finally get a clear picture of how Thread Local Storage actually works under our libc++ ABI. jhb@ walked through it well — starting from thread-local errno and building up to a compiler-guided ELF TLS design. Afterward, we talked about whether we should move errno over to compiler-based TLS. 

All in all, it was a great trip, with many good conversations with other developers.  Thanks again to the Foundation for making it possible for me to be there. 

Respectfully, 

ShengYi Hung

The post BSDCan 2026 Trip Report – ShengYi Hung first appeared on FreeBSD Foundation.

Top

Moore's Law und die AI Blase

Post by Kristian Köhntopp via Die wunderbare Welt von Isotopp »

[basierend auf einer Reihe von Artikeln in Mastodon ]

Compute-Angebot

1965 schrieb Gordon E. Moore den Artikel “Cramming more components onto integrated circuits” . Darin beschreibt er die Beobachtung, die später, ungefähr ab 1975 durch Carver Mead, als “Moore’s Law” bezeichnet wurde.

Moore’s Law sagt im Kern: Alle x Monate verdoppelt sich die Anzahl der Komponenten in einem Prozessor, IC oder Chip, den wir sinnvoll kostendeckend herstellen können.

Das genaue x ist für die Betrachtung gar nicht so wichtig. Man findet 12, 18 oder 24 Monate als häufig zitierte Zahlen, und Moore selbst hat über die Zeit unterschiedliche Basen verwendet. Wichtig ist: Das war ein exponentielles Wachstum über Jahrzehnte.

Entwicklung der Komponentenzahl nach Moore

Kostenentwicklung in der Chipfertigung

Moore’s Beobachtung wurde in der Halbleiterindustrie erst zur Erwartung, dann zur Selbstverpflichtung und schließlich zur Koordination der gesamten Supply Chain. Seit 1992 veröffentlichte die US Semiconductor Industry Association die National Technology Roadmap for Semiconductors. Ab 1999 wurde daraus die ITRS, also eine globale Roadmap, in der Chiphersteller, Zulieferer und Kunden gemeinsame Ziele für Density, Power, Interconnects und Manufacturing Capabilities koordinierten.

Wie genau die Verdopplung erreicht wurde, hat sich mehrfach geändert. Die Tatsache, dass sich pro sinnvoll herstellbarem Chip mehr Transistoren unterbringen ließen, blieb lange erhalten.

Das erste harte Ende war Dennard Scaling . Vor ungefähr 2005 war es so: Kleinere Transistoren brauchten weniger Spannung, verbrauchten weniger Energie und erzeugten weniger Abwärme. Man bekam also kleinere, schnellere und sparsamere Transistoren gleichzeitig. Sehr bequem.

Um 2005 war das vorbei. Die Taktfrequenzen stiegen nicht mehr sinnvoll weiter. Stattdessen wechselte die Industrie von Single Core auf Multi Core.

Das war schmerzhaft. Nahezu keine Software von 2005 konnte gut auf Multicore skalieren. Es hat mehr als zehn Jahre gedauert, bis breite Softwareentwicklung brauchbare Techniken hatte, um den ganzen Bumms in einer CPU parallel, sinnvoll und halbwegs sicher zu verwenden.

Seitdem haben wir Performance per Watt als explizite Größe. Vorher kam das quasi automatisch aus Dennard Scaling. Seitdem haben wir auch Dark Silicon: Teile eines Chips sind vorhanden, können aber aus TDP-Gründen nicht gleichzeitig mit voller Leistung betrieben werden. Man hat Transistoren, aber nicht genug thermisches Budget, um alle jederzeit zu benutzen.

Das zweite harte Ende kam um 2010. Bis dahin wurden dichtere CPUs auch billiger pro Transistor. Danach wurden die Herstellungsverfahren zwar weiter besser, aber auch teurer.

Das führte zur Herstellerkonzentration. Mit Intels Niedergang gibt es weltweit nur noch sehr wenige Firmen, die Spitzenprozesse überhaupt herstellen können. Im praktischen Sinne hängt sehr viel an TSMC. TSMC wiederum existiert nicht als isolierte Zauberfabrik, sondern als Knotenpunkt eines multinationalen Konsortiums aus Firmen, Regierungen, Patenten, Maschinenbau und Supply Chain.

Seit 2015 ist der klassische ITRS-Roadmap-Prozess am Ende. Traditionelles Moore’s Law ist damit ebenfalls am Ende.

Pro Sockel bekommen wir immer noch mehr. Aber das ist inzwischen zu einem guten Teil Packaging: mehrere Dies in einem Package, Chiplets, gestapelte Speicher, Spezialbeschleuniger. Das ist technisch beeindruckend. Es ist aber nicht mehr dieselbe ökonomische Maschine wie früher.

Compute-Bedarf

Seit ungefähr 2010 bis 2015 ist der Compute-Bedarf im Haushalt ausentwickelt.

Selbst Videoschnitt als anspruchsvolle Haushaltsanwendung war auf einem Desktop möglich. Mehr Compute war einem Heimanwender nicht mehr sinnvoll zu verkaufen. Also hat man die Leistungsgewinne kleiner, leiser und weniger leistungshungrig verpackt.

In 2026 kann man Videoschnitt auf einem Mobiltelefon machen, mit einem Powerbudget im einstelligen Wattbereich. E-Mail liest man nicht mehr an einem 150-Watt-Desktop mit Röhrenmonitor, sondern auf einem Telefon, mit einem Verbrauch im Bereich von einigen hundert Milliwatt, inklusive Netzwerk bis zum WLAN-AP oder Cell-Tower.

Der Heimmarkt ist saturiert.

Dasselbe gilt weitgehend für das Büro und große Teile der Enterprise-IT. Nicht für HPC, Finite-Elemente-Analyse, Wettermodelle oder anderen Spezialkram. Aber für sehr viel Large Scale Enterprise IT gilt: 2015 war das Angebot größer als der Bedarf.

Eine Analyse der Booking.com-Flottenworkload auf Instruction-Level zeigte 2018, dass mehr als 80% des Computes Integer- oder String-Workloads waren. “Lade Daten aus der Datenbank und setze sie in Templates ein” wird zu memcpy, und memcpy wird zu REP MOVSB. Booking war eine REP MOVSB-Maschine at scale.

Da war nahezu kein Bedarf an großen FPUs, SIMD-Instruktionen oder anderen Flächenfressern, die auf höherwertigen Xeons viel Platz wegnehmen und viel Geld kosten. Booking hätte von mehr Speicherbandbreite mehr profitiert als von noch tolleren CPUs.

Booking ist ein Webshop. Bei einem sinnvoll konstruierten Webshop sieht das nicht grundsätzlich anders aus.

Ab 2015 ist auch viel Enterprise-IT im Compute-Bedarf ausentwickelt und abgedeckt.

Gleichzeitig wird der Druck auf Chiphersteller größer, Anwendungen für all die Transistoren zu finden. Die Fläche ist da. Die Roadmap will weiter. Also muss irgendetwas diese Transistoren fressen.

Wer am Ende der ITRS-Zeit in Roadmap-Meetings mit HPE, Dell und Intel saß, kannte die Tonlage: mehr FPU, AES- und RSA-Beschleuniger, FPGA-Accelerators, Sonderfunktionen, Spezial-SKUs. Kunde, sag uns bitte, wozu Du diese ganzen Dinger brauchen kannst.

Auf dem Heimanwendermarkt passiert dasselbe: Desktop-CPUs mit 6, 12 oder 48 Cores, 3D V-Cache und anderem Zeug, das außer Gamern und Spezialfällen kaum jemand braucht. Irgendwie muss die Fläche voll werden.

Apple hat das Problem anders gelesen. Man baut ein SoC und zieht alles auf den einen zentralen Die: CPU, GPU, RAM-Anbindung, NVMe-Controller und möglichst viel sonstige Peripherie. Neben der CPU sitzen nur noch wenige tief integrierte Bausteine.

iPhone-Innenleben mit markiertem Nicht-Batterie-Bereich

Aktuelles iPhone. Nur der rot umrandete Bereich ist das Telefon, der Rest ist Batterie. Und im rot umrandeten Bereich sitzen im Grunde nur 2 Chips: Der SoC von Apple, ein A19 und ein SoC von Qualcomm für den ganzen Funk- und Analogmodem-Kram. Den will Apple gerne weg haben und durch was eigenes ersetzen, einmal weil sie Qualcomm nicht gerne Geld geben, und zum anderen weil sie den Kram nur dann mit dem A19 integrieren können.

Wenn ihr also glaubt, dass ihr euren 2015er Laptop in 2026 noch benutzen könnt, dann liegt das nicht daran, dass ihr besonders genügsam seid. Es liegt daran, dass der Compute-Bedarf im Haushalt seit ungefähr 2015 saturiert ist.

Schlecht für eine Industrie, die an dreijährige Replacement-Zyklen gewöhnt war.

Erfundener Bedarf

Blockchain, Metaverse und AI kann man als Reihe erfundener Compute-Bedarfe lesen.

Das sind Wege, mehr Nachfrage nach Compute zu synthetisieren, um das Investorenmärchen von IT als ewiger Wachstumsbranche am Leben zu halten. Nicht Mature Market, sondern Growth. Nicht Dividende, sondern Aktienkursphantasie. Nicht solide Firma, sondern Rakete.

Bei Blockchain und Metaverse sind die Blasen schnell geplatzt. Das ist schlecht, wenn man seine Silicon-Valley-Aktie gern als Wachstumsaktie halten möchte und seine Entwickler-Divas mit Aktienpaketen bezahlen will. Bei einem Mature Enterprise funktioniert das schlechter, weil die Aktie nicht mehr automatisch explodiert.

Bei AI ist die Blase noch nicht geplatzt. Aber die Financials darunter sind kaputt. Da sind Ringfinanzierungen, absurde Capex-Programme, versprochene Effizienzgewinne, die sich in dieser Größenordnung nicht realisieren lassen, und ein Strom- und Hardwarebedarf, der eher nach Schwerindustrie aussieht als nach Software-Marge.

Seit ungefähr 2015 hat die IT also eine Kapitalertragskrise.

Es gibt wortwörtlich Billionen an USD und EUR, die Investitionsgelegenheiten brauchen, damit sie weiter Kapitalertrag bringen. Die Default-Antwort der letzten vierzig Jahre war “IT”. Aber IT als breiter Markt ist saturiert.

Das ist die Verzweiflung, die man riechen kann, wenn man in diesem Markt gearbeitet hat.

Warum AI so gut passt

Für Investoren ist AI ein maßgeschneidertes Versprechen.

  • Es parallelisiert sich hervorragend. Matrizenmultiplikation ist wie dafür gemacht.
  • Qualität wird mit größeren Modellen besser. Mehr ist mehr.
  • Riesenmodelle lassen sich zentral als AIaaS anbieten. Monatliche Mieterlöse, sehr schön.
  • Es gibt kein klar definiertes “fertig”.
  • Die Ersetzung des Menschen als Arbeitskraft klingt nach unendlichem Markt.
  • Endlich gibt es eine Anwendung für absurde Transistorbudgets.

Für viele Firmen ist AI zum letzten Investment geworden, das sie je machen müssen. Alle anderen Projekte werden minimiert, eingestellt oder abgestoßen, um mehr AI finanzieren zu können.

Oracle ist der deutlichste Fall: Die Firma ist komplett von einem Erfolg der AI-Blase abhängig. Wenn diese Blase platzt, platzt Oracle mit.

Microsoft opfert sichtbar Teile des über Jahre konsolidierten Gaming-Business der AI. Xbox, Game Pass und Studios werden sukzessive umgebaut, abgewickelt oder ausgehöhlt. Gaming wird sich davon nicht einfach erholen. AAA-Gaming in der alten Form ist vorbei.

AI hat klaren Wert. AI kann Effizienz steigern. AI ist kein reiner Unsinn.

Aber AI kann diese absurden Investments nicht in dem Umfang zurückverdienen, in dem sie gerade getätigt werden. Das wird ein Blutbad. Und es wird nicht auf IT-Werte beschränkt bleiben, sondern auch Investmentfonds und Rentenfonds treffen.

Schade, wenn man eine Aktienrente hat.

Kein Burggraben

AI hat keinen Burggraben.

Die Technik ist derzeit absurd ineffizient. Wenn es gelingt, sie um Faktor 100 effizienter zu machen, dann ist das nur sieben Verdopplungen oder etwas mehr als drei Vervierfachungen. Was heute auf einem 8x-Nvidia-Cluster läuft, läuft dann auf einem großen Laptop.

Damit ist AIaaS als dauerhaftes Monopolmodell tot.

Es gibt auch kein US-Silicon-Valley-Monopol auf AI. Chinesische Open-Weights-Modelle sind tödliche Raketen auf westliche Überinvestments. Sie können die Blase platzen lassen, weil sie genau den Burggraben zerstören, den Investoren gerade kaufen zu glauben.

Das ist die Lage Mitte 2026.

Gaming als Kollateralschaden

Gaming ist die gleiche Frage wie der Servermarkt, nur marginal anders.

AAA-Gaming mit Windows-Kröte, Nvidia-Grafikkarte und Spielen mit dreistelligem Millionenbudget ist eine Nische geworden. Einigen wenigen PC-Master-Race-Ballermännern stehen Millionen Casual Gamer mit Mobiltelefonen gegenüber. Der mobile Markt macht mehr und konstanteren Umsatz, bei weniger Entwicklungsrisiko.

Unabhängig davon, dass AI gerade Hardware auffrisst, war PC-Gaming also schon angeschossen. Corona hat kurz geholfen: Mehr Spielstunden, mehr Nachfrage, mehr Hardwarekäufe. Der Markt hat das als Strukturtrend gelesen und überinvestiert. War aber ein Einmaleffekt.

Genau in die Korrektur kam dann der AI-Boom: RAM wird teurer, NVMe wird teurer, GPUs werden für AI priorisiert, und die Hersteller strangulieren den Enthusiast-PC-Markt, weil AI-Chips höhere Margen versprechen.

Die Folgen sind sichtbar:

Das zwingt den PC-Gaming-Markt zur Kontraktion. Es wird Studios in die Pleite treiben. Selbst wenn es jetzt sofort besser würde, ist schon viel kaputt.

In fünf Jahren ist AAA/PC-Gaming in dieser Form vorbei. Es kommt auch nicht einfach zurück.

Servermarkt

Was hat das mit Servern zu tun?

Sehr viel.

2018 stellte Intel ungefähr zwei Millionen Xeon-Server-CPUs her. AMD war zu diesem Zeitpunkt kaum noch auf dem Spielfeld. Von diesen zwei Millionen gingen etwa 85% an zehn Firmen. Mehr als 45% gingen an einen einzigen Kunden.

Die CPUs für diesen einen Kunden waren Spezial-SKUs mit Eigenschaften, die normale Xeons zu diesem Zeitpunkt nicht hatten. Einige davon fanden später mit Jahren Verzögerung ihren Weg in normale Produkte.

Eine Firma mit so einer Kundenstruktur ist nicht frei. Sie bekommt Entwicklungsrichtung und Pricing von wenigen Großkunden diktiert. Das ist im Kern krank.

Gleichzeitig ist Intel der letzte große CPU-Hersteller,1 der nicht TSMC ist. Auch nicht gut.

Die ganze IT-Supply-Chain hängt an sehr wenigen Läden. Das ist kein robuster Markt. Das ist ein Klumpenrisiko mit PowerPoint.

Fazit

Der IT-Markt, mit dem viele von uns groß geworden sind, ist seit ungefähr 2015 vorbei.

Was wir gerade beobachten, ist eine Reihe von Blasen, getrieben von Investorenverzweiflung. Da ist sehr viel Kapital, das nicht weiß wohin, aber Erträge liefern muss. Ein Teil gehört Einzelinvestoren. Ein anderer Teil steckt in Fonds, mit denen eine Generation Boomer ihren Ruhestand finanzieren will.

Genau in dem Moment geht der alte Motor aus.

Diese Krise ist technisch und finanziell sichtbar. Alle gucken stur daran vorbei, weil die naheliegenden Schlussfolgerungen politisch unangenehm sind.

Moore’s Law war nicht nur eine technische Beobachtung. Es war vierzig Jahre lang eine industrielle Wachstumsmaschine. Diese Maschine läuft nicht mehr wie früher.

Die AI-Blase ist der Versuch, noch einmal einen Compute-Hunger zu erfinden, der groß genug ist, um die alte Wachstumsstory weiterzuerzählen.

AI wird bleiben. Die Blase nicht.

Quellen


  1. Technisch gesehen gibt es noch Samsung, aber die machen keine Server- oder Desktop CPUs, sondern nur ARM für Mobilegeräte, und Speicher – aber das sind ganz andere Prozesse. ↩︎

Top

Updating a FreeBSD 15.0 jail to FreeBSD 15.1 (via pkgbase)

Post by Dan Langille via Dan Langille's Other Diary »

On Friday, I finished upgrading all my FreeBSD hosts from FreeBSD 15 to FreeBSD 15.1 (the first host I did is in this blog post ).

Before that, I had run pkgbasify on each of those hosts.

I also ran pkgbasify in a jail, but I learned that I can run it from the host, using the -j parameter.

Today, I’m going to update that jail using pkgbase, from outside the jail.

In this post:

I am going to follow the above instructions, duplicating their section names here, for easier cross reference.

I will be running the commands on the host and using the -j parameter.

My commands will use the MYJAIL variable to make your copy/paste easier. Just adjust the export statement to reference your jail.

Introduction

[22:31 r730-03 dvl ~] % export MYJAIL=empty
[22:32 r730-03 dvl ~] % sudo pkg -j $MYJAIL which /usr/bin/uname
/usr/bin/uname was installed by package FreeBSD-runtime-15.0p11

Great. The jail has been pkgbasified. :)

Upgrading with Base System Packages

Snapshot the Current Installation

Well, since it’s a jail:

[22:35 r730-03 dvl ~] % zfs list | grep empty
data01/jails/empty                            41.4G  7.49T  37.2G  /jails/empty
[22:36 r730-03 dvl ~] % sudo zfs snapshot data01/jails/empty@pre-15.1
[22:36 r730-03 dvl ~] % 

Sorry, no variable used there.

Upgrade the Installed System

[22:36 r730-03 dvl ~] % sudo pkg -j $MYJAIL upgrade -r FreeBSD-base
Updating FreeBSD-base repository catalogue...
FreeBSD-base repository is up to date.
FreeBSD-base is up to date.
Checking for upgrades (1 candidates): 100%
Processing candidates (1 candidates): 100%
Checking integrity... done (0 conflicting)
Your packages are up to date.

Upgrade the Base System

Don’t issue this command. See below.

[22:38 r730-03 dvl ~] % sudo pkg -j $MYJAIL -oABI=FreeBSD:15:$(uname -p) -oOSVERSION=1501000 upgrade -r FreeBSD-base
Updating FreeBSD-base repository catalogue...
pkg: Repository FreeBSD-base has a wrong packagesite, need to re-create database
[empty.int.unixathome.org] Fetching meta.conf: 100%     179 B   0.2 kB/s    00:01    
[empty.int.unixathome.org] Fetching data: 100%    82 KiB  84.0 kB/s    00:01    
Processing entries: 100%
FreeBSD-base repository update completed. 509 packages processed.
FreeBSD-base is up to date.
Checking for upgrades (312 candidates): 100%
Processing candidates (312 candidates): 100%
The following 321 package(s) will be affected (of 0 checked):

New packages to be INSTALLED:
        FreeBSD-pam: 15.1 [FreeBSD-base]
        FreeBSD-pam-dev: 15.1 [FreeBSD-base]
        FreeBSD-pam-dev-lib32: 15.1 [FreeBSD-base]
...
        FreeBSD-zoneinfo: 15.0p7 -> 15.1 [FreeBSD-base]

Installed packages to be REMOVED:
        FreeBSD-lldb-dev: 15.0

Number of packages to be removed: 1
Number of packages to be installed: 10
Number of packages to be upgraded: 311

The process will require 2 MiB more space.

Proceed with this action? [y/N]: y
Checking integrity... done (0 conflicting)
pkg: Package FreeBSD-cron has files with flags that cannot be managed in this jail. Set allow.chflags in the jail configuration.

AHH, I have to changeallow.chflags. If you review Running pkgbasify on a FreeBSD 15.0 jail, you’ll see I had to add this to the jail config:

    # added for pkgbasify
    allow.chflags;
    securelevel = -1;

I’ll do that, restart the jail, and try the same command again.

The full output is at: https://gist.github.com/dlangille/de625f5c50a66542567e8862c30da375

[22:41 r730-03 dvl ~] % sudo pkg -j $MYJAIL -oABI=FreeBSD:15:$(uname -p) -oOSVERSION=1501000 upgrade -r FreeBSD-base
Updating FreeBSD-base repository catalogue...
FreeBSD-base repository is up to date.
FreeBSD-base is up to date.
Checking for upgrades (312 candidates): 100%
Processing candidates (312 candidates): 100%
Checking integrity...
  - FreeBSD-zstd-15.1 [FreeBSD-base] conflicts with FreeBSD-utilities-15.0p11 [installed] on /usr/bin/unzstd
  - FreeBSD-clang-15.1p1 [FreeBSD-base] conflicts with FreeBSD-lldb-15.0p11 [installed] on /usr/lib/libprivatelldb.so.19
  - FreeBSD-pam-lib-15.1 [FreeBSD-base] conflicts with FreeBSD-runtime-15.0p11 [installed] on /usr/lib/libpam.so.6
  - FreeBSD-zstd-dev-lib32-15.1 [FreeBSD-base] conflicts with FreeBSD-runtime-dev-lib32-15.0p11 [installed] on /usr/lib32/libprivatezstd.a
  - FreeBSD-pam-lib32-15.1 [FreeBSD-base] conflicts with FreeBSD-runtime-lib32-15.0p11 [installed] on /usr/lib32/libpam.so.6
  - FreeBSD-pam-lib32-15.1 [FreeBSD-base] conflicts with FreeBSD-utilities-lib32-15.0p11 [installed] on /usr/lib32/pam_chroot.so
  - FreeBSD-zstd-lib32-15.1 [FreeBSD-base] conflicts with FreeBSD-runtime-lib32-15.0p11 [installed] on /usr/lib32/libprivatezstd.so.5
  - FreeBSD-zstd-lib-15.1 [FreeBSD-base] conflicts with FreeBSD-runtime-15.0p11 [installed] on /usr/lib/libprivatezstd.so.5
  - FreeBSD-pam-dev-lib32-15.1 [FreeBSD-base] conflicts with FreeBSD-runtime-dev-lib32-15.0p11 [installed] on /usr/lib32/libpam.a
  - FreeBSD-clang-dev-15.1p1 [FreeBSD-base] conflicts with FreeBSD-lldb-dev-15.0 [installed] on /usr/lib/libprivatelldb.so
  - FreeBSD-zstd-dev-15.1 [FreeBSD-base] conflicts with FreeBSD-runtime-dev-15.0p11 [installed] on /usr/include/private/zstd/zstd.h
  - FreeBSD-pam-15.1 [FreeBSD-base] conflicts with FreeBSD-runtime-15.0p11 [installed] on /etc/pam.d/README
  - FreeBSD-pam-15.1 [FreeBSD-base] conflicts with FreeBSD-utilities-15.0p11 [installed] on /usr/lib/pam_chroot.so
  - FreeBSD-pam-dev-15.1 [FreeBSD-base] conflicts with FreeBSD-runtime-dev-15.0p11 [installed] on /usr/include/security/openpam.h
Checking integrity... done (0 conflicting)
The following 322 package(s) will be affected (of 0 checked):

New packages to be INSTALLED:
        FreeBSD-pam: 15.1 [FreeBSD-base]
        FreeBSD-pam-dev: 15.1 [FreeBSD-base]
        FreeBSD-pam-dev-lib32: 15.1 [FreeBSD-base]
        FreeBSD-pam-lib: 15.1 [FreeBSD-base]
        FreeBSD-pam-lib32: 15.1 [FreeBSD-base]
        FreeBSD-zstd: 15.1 [FreeBSD-base]
        FreeBSD-zstd-dev: 15.1 [FreeBSD-base]
        FreeBSD-zstd-dev-lib32: 15.1 [FreeBSD-base]
        FreeBSD-zstd-lib: 15.1 [FreeBSD-base]
        FreeBSD-zstd-lib32: 15.1 [FreeBSD-base]

Installed packages to be UPGRADED:
        FreeBSD-acct: 15.0 -> 15.1 [FreeBSD-base]

...

        FreeBSD-zlib-lib32: 15.0 -> 15.1 [FreeBSD-base]
        FreeBSD-zoneinfo: 15.0p7 -> 15.1 [FreeBSD-base]

Installed packages to be REMOVED:
        FreeBSD-lldb-dev: 15.0

Number of packages to be removed: 1
Number of packages to be installed: 10
Number of packages to be upgraded: 311

The process will require 2 MiB more space.

Proceed with this action? [y/N]: y
[empty.int.unixathome.org] [  1/327] Upgrading FreeBSD-bootloader from 15.0 to 15.1...
[empty.int.unixathome.org] [  1/327] Extracting FreeBSD-bootloader-15.1: 100%

...

[empty.int.unixathome.org] [326/327] Extracting FreeBSD-tests-dbg-15.1p1: 100%
[empty.int.unixathome.org] [327/327] Installing FreeBSD-set-tests-15.1...
==> Running trigger: mandoc.ucl
Generating apropos(1) database for /usr/share/man...
Generating apropos(1) database for /usr/share/openssl/man...
=====
Message from FreeBSD-local-unbound-15.1:

--
After upgrading local-unbound, the configuration file should be regenerated
by running "service local_unbound setup" before restarting the service.

Upgrade Third-party Kernel Modules

This is a jail, no need to do this, but it does run.

[22:45 r730-03 dvl ~] % sudo pkg -j $MYJAIL upgrade -r FreeBSD-ports-kmods
Updating FreeBSD-ports-kmods repository catalogue...
[empty.int.unixathome.org] Fetching meta.conf: 100%     179 B   0.2 kB/s    00:01    
[empty.int.unixathome.org] Fetching data: 100%    35 KiB  35.6 kB/s    00:01    
Processing entries: 100%
FreeBSD-ports-kmods repository update completed. 239 packages processed.
FreeBSD-ports-kmods is up to date.
Updating database digests format: 100%
Checking for upgrades (0 candidates): 100%
Processing candidates (0 candidates): 100%
Checking integrity... done (0 conflicting)
Your packages are up to date.
[22:45 r730-03 dvl ~] % 

Check for Failed Configuration Updates

[22:48 r730-03 dvl ~] % sudo jexec $MYJAIL find /etc /usr/local/etc -name '*.pkgnew' -ls 

Then, I didn’t trust that it did it right, so I did it again.

[22:49 r730-03 dvl ~] % sudo jexec $MYJAIL
[22:50 empty root ~] # find /etc /usr/local/etc -name '*.pkgnew' -ls
[22:50 empty root ~] # 

Upgrade the Boot Loader

This is a jail, nothing to do here.

Finish

I reversed the jail configuration changes I made above, and then did:

[22:51 r730-03 dvl ~] % sudo service jail restart $MYJAIL                                   
Stopping jails: empty.
Starting jails: empty.

Done

This seems right:

[22:52 empty dvl ~] % freebsd-version -ur
15.1-RELEASE-p1
15.1-RELEASE-p1
Top

Running pkgbasify on a FreeBSD 15.0 jail

Post by Dan Langille via Dan Langille's Other Diary »

It’s time.

All my hosts are on 15.0 and on pkgbase.

Next, let’s move a jail to pkgbase.

In this post:

  • FreeBSD 15.0
  • the jail is named empty

NOTE: After running this from within the jail, I learned I should run it from the host and using the -j parameter. I’ll create a new blog post once I do another jail. PLEASE use this updated post instead.

I’m following instructions based on the official docs and copying from a previous post: Running pkgbasify on FreeBSD 15.0

snapshot, not bectl

Because it’a jail, I’m doing this for the filesystem of the jail. The commands are run on the jail host.

data01/jails/empty                            18.3G  7.08T  15.4G  /jails/empty
[23:48 r730-03 dvl ~] % sudo zfs snapshot data01/jails/empty@before-pkgbasify
[23:57 r730-03 dvl ~] % 

Over in the jail

Over in the jail, I did this:

[23:49 empty root ~] # fetch https://github.com/FreeBSDFoundation/pkgbasify/raw/refs/heads/main/pkgbasify.lua
pkgbasify.lua                                           21 kB 8695 kBps    00s
[23:49 empty root ~] # chmod +x ./pkgbasify.lua
[23:49 empty root ~] # tmux
root@empty:~ # ./pkgbasify.lua
Running this tool will irreversibly modify your system to use pkgbase.
This tool and pkgbase are experimental and may result in a broken system.
It is highly recommended to backup your system before proceeding.
Do you accept this risk and wish to continue? (y/n) y
Updating local repository catalogue...
[empty.int.unixathome.org] Fetching meta.conf: 100%     179 B   0.2 kB/s    00:01    
[empty.int.unixathome.org] Fetching data: 100%   358 KiB 366.9 kB/s    00:01    
Processing entries: 100%
local repository update completed. 970 packages processed.
All repositories are up to date.
Checking integrity... done (0 conflicting)
Your packages are up to date.
Updating FreeBSD-ports repository catalogue...
[empty.int.unixathome.org] Fetching meta.conf: 100%     179 B   0.2 kB/s    00:01    
[empty.int.unixathome.org] Fetching data: 100%    10 MiB  11.0 MB/s    00:01    
Processing entries: 100%
FreeBSD-ports repository update completed. 37066 packages processed.
Updating FreeBSD-ports-kmods repository catalogue...
[empty.int.unixathome.org] Fetching meta.conf: 100%     179 B   0.2 kB/s    00:01    
[empty.int.unixathome.org] Fetching data: 100%    35 KiB  35.9 kB/s    00:01    
Processing entries: 100%
FreeBSD-ports-kmods repository update completed. 240 packages processed.
Updating FreeBSD-base repository catalogue...
[empty.int.unixathome.org] Fetching meta.conf: 100%     179 B   0.2 kB/s    00:01    
[empty.int.unixathome.org] Fetching data: 100%    81 KiB  82.5 kB/s    00:01    
Processing entries: 100%
FreeBSD-base repository update completed. 496 packages processed.
All repositories are up to date.
Creating //usr/local/etc/pkg/repos/FreeBSD-base.conf
Adding BACKUP_LIBRARIES=yes to /usr/local/etc/pkg.conf
Updating FreeBSD-base repository catalogue...
[empty.int.unixathome.org] Fetching meta.conf: 100%     179 B   0.2 kB/s    00:01    
[empty.int.unixathome.org] Fetching data: 100%    81 KiB  82.5 kB/s    00:01    
Processing entries: 100%
FreeBSD-base repository update completed. 496 packages processed.
FreeBSD-base is up to date.
The following 312 package(s) will be affected (of 0 checked):

New packages to be INSTALLED:
        FreeBSD-acct: 15.0 [FreeBSD-base]
        FreeBSD-acpi: 15.0 [FreeBSD-base]
...
        FreeBSD-zlib-lib32: 15.0 [FreeBSD-base]
        FreeBSD-zoneinfo: 15.0p7 [FreeBSD-base]

Number of packages to be installed: 312

The process will require 1 GiB more space.
370 MiB to be downloaded.
[empty.int.unixathome.org] [  1/312] Fetching FreeBSD-libmilter-dev-15.0p10: 100%    86 KiB  87.8 kB/s    00:01    
[empty.int.unixathome.org] [  2/312] Fetching FreeBSD-libsqlite3-dev-15.0: 100%  2144 KiB   2.2 MB/s    00:01    
...
[empty.int.unixathome.org] [311/312] Fetching FreeBSD-smbutils-dev-lib32-15.0: 100%    85 KiB  87.2 kB/s    00:01    
[empty.int.unixathome.org] [312/312] Fetching FreeBSD-ctf-dev-15.0: 100%   138 KiB 141.6 kB/s    00:01    
Checking integrity... done (0 conflicting)
pkg: Package FreeBSD-cron has files with flags that cannot be managed in this jail. Set allow.chflags in the jail configuration.
Fetching packages failed, try again? (y/n) 

Because I needed to stop this jail, I replied no:

Fetching packages failed, try again? (y/n) Fetching packages failed, try again? (y/n) Fetching packages failed, try again? (y/n) Fetching packages failed, try again? (y/n) Fetching packages failed, try again? (y/n) n  
Canceled

I added this parameter to the /etc/jail.conf entry for the empty:

    # added for pkgbasify
    allow.chflags;

Then I restarted that jail:

[0:02 r730-03 dvl ~] % sudo service jail restart empty   
Stopping jails: empty.
Starting jails: empty.
[0:03 r730-03 dvl ~] % 

Back into the jail to try again:

[0:03 empty root ~] # ./pkgbasify.lua 
...
Processing entries: 100%
FreeBSD-base repository update completed. 496 packages processed.
All repositories are up to date.
Overwrite //usr/local/etc/pkg/repos/FreeBSD-base.conf? (y/n) y
...
[empty.int.unixathome.org] [ 19/312] Extracting FreeBSD-bmake-15.0: 100%
[empty.int.unixathome.org] [ 20/312] Reinstalling FreeBSD-bootloader-15.0...
[empty.int.unixathome.org] [ 20/312] Extracting FreeBSD-bootloader-15.0:   9%
pkg: openat(boot/device.hints): No such file or directory
[empty.int.unixathome.org] [ 20/312] Extracting FreeBSD-bootloader-15.0: 100%
[empty.int.unixathome.org] [ 21/312] Reinstalling FreeBSD-bootloader-dev-15.0...
[empty.int.unixathome.org] [ 21/312] Extracting FreeBSD-bootloader-dev-15.0: 100%
...
[empty.int.unixathome.org] [ 32/312] Extracting FreeBSD-clibs-15.0p11: 100%
Cannot install /lib/libc.so.7, installed as /lib/libc.so.7.pkgnew
pkg: Failed to chflags /lib/libc.so.7:Operation not permitted
Error: exit
Restarting sshd
Performing sanity check on sshd configuration.
Stopping sshd.
Waiting for PIDS: 34877.
Performing sanity check on sshd configuration.
Starting sshd.
An error occurred during conversion leaving the system in a partially
converted state.

Please determine and resolve the root cause of the error.

When you believe the error will not happen again, run pkgbasify with
the --force argument to try and complete the conversion.

Well. OK then, let’s try:

[0:04 empty root ~] # ./pkgbasify.lua
Error: The system is already using pkgbase.
Pass --force to run pkgbasify anyway, for example to fix a partial conversion.
[0:06 empty root ~] # ./pkgbasify.lua --force
Running this tool will irreversibly modify your system to use pkgbase.
This tool and pkgbase are experimental and may result in a broken system.
It is highly recommended to backup your system before proceeding.
Do you accept this risk and wish to continue? (y/n) y
...
Processing entries: 100%
FreeBSD-base repository update completed. 496 packages processed.
All repositories are up to date.
Overwrite //usr/local/etc/pkg/repos/FreeBSD-base.conf? (y/n) y
...
An error occurred during conversion leaving the system in a partially
converted state.

Please determine and resolve the root cause of the error.

When you believe the error will not happen again, run pkgbasify with
the --force argument to try and complete the conversion.

Hmm.

It seems everything is installed:

[0:08 empty root ~] # pkg info -x FreeBSD | wc -l
     312

That value matches with the host system.

Let’s restart the jail.

After restarting the jail

After restarting the jail, we have:

[0:09 empty dvl ~] % pkg repos -e
FreeBSD-base: { 
    url             : "pkg+https://pkg.FreeBSD.org/FreeBSD:15:amd64/base_release_0",
    enabled         : yes,
    priority        : 0,
    mirror_type     : "SRV",
    signature_type  : "FINGERPRINTS",
    fingerprints    : "/usr/share/keys/pkgbase-15"
  }
local: { 
    url             : "http://fedex.int.unixathome.org/packages/FreeBSD:15:amd64",
    enabled         : yes,
    priority        : 0,
    signature_type  : "PUBKEY",
    pubkey          : "/etc/ssl/slocum.unixathome.org.cert"
  }
[0:09 empty dvl ~] % 

That seems right to me.

How about a pkg-upgrade?

[0:09 empty dvl ~] % sudo pkg upgrade
Updating FreeBSD-base repository catalogue...
FreeBSD-base repository is up to date.
Updating local repository catalogue...
local repository is up to date.
All repositories are up to date.
Checking for upgrades (13 candidates): 100%
Processing candidates (13 candidates): 100%
The following 12 package(s) will be affected (of 0 checked):

Installed packages to be UPGRADED:
	bind-tools: 9.20.23 -> 9.20.24 [local]
	curl: 8.20.0 -> 8.21.0 [local]
	jq: 1.8.1 -> 1.8.2 [local]
	libcbor: 0.13.0 -> 0.14.0 [local]
	libcjson: 1.7.19 -> 1.7.19_1 [local]
	libffi: 3.5.2 -> 3.6.0 [local]
	libpsl: 0.21.5_2 -> 0.22.0 [local]
	libssh2: 1.11.1,3 -> 1.11.1_1,3 [local]
	mosquitto: 2.1.2_2 -> 2.1.2_3 [local]
	p5-IO-Socket-SSL: 2.098 -> 2.099 [local]
	rsync: 3.4.4 -> 3.4.4_1 [local]
	zsh: 5.9_5 -> 5.9.1 [local]

Number of packages to be upgraded: 12

10 MiB to be downloaded.

Proceed with this action? [y/N]: y
[empty.int.unixathome.org] [ 1/12] Fetching mosquitto-2.1.2_3: 100%   476 KiB 487.7 kB/s    00:01    
[empty.int.unixathome.org] [ 2/12] Fetching libcbor-0.14.0: 100%    83 KiB  85.4 kB/s    00:01    
[empty.int.unixathome.org] [ 3/12] Fetching jq-1.8.2: 100%   340 KiB 348.5 kB/s    00:01    
[empty.int.unixathome.org] [ 4/12] Fetching bind-tools-9.20.24: 100%  1579 KiB   1.6 MB/s    00:01    
[empty.int.unixathome.org] [ 5/12] Fetching libpsl-0.22.0: 100%    66 KiB  68.1 kB/s    00:01    
[empty.int.unixathome.org] [ 6/12] Fetching libcjson-1.7.19_1: 100%    39 KiB  39.5 kB/s    00:01    
[empty.int.unixathome.org] [ 7/12] Fetching p5-IO-Socket-SSL-2.099: 100%   198 KiB 202.5 kB/s    00:01    
[empty.int.unixathome.org] [ 8/12] Fetching rsync-3.4.4_1: 100%   401 KiB 410.3 kB/s    00:01    
[empty.int.unixathome.org] [ 9/12] Fetching curl-8.21.0: 100%  1850 KiB   1.9 MB/s    00:01    
[empty.int.unixathome.org] [10/12] Fetching zsh-5.9.1: 100%  5046 KiB   5.2 MB/s    00:01    
[empty.int.unixathome.org] [11/12] Fetching libffi-3.6.0: 100%    50 KiB  51.0 kB/s    00:01    
[empty.int.unixathome.org] [12/12] Fetching libssh2-1.11.1_1,3: 100%   244 KiB 249.6 kB/s    00:01    
Checking integrity... done (0 conflicting)
[empty.int.unixathome.org] [ 1/12] Upgrading bind-tools from 9.20.23 to 9.20.24...
[empty.int.unixathome.org] [ 1/12] Extracting bind-tools-9.20.24: 100%
[empty.int.unixathome.org] [ 2/12] Upgrading jq from 1.8.1 to 1.8.2...
[empty.int.unixathome.org] [ 2/12] Extracting jq-1.8.2: 100%
[empty.int.unixathome.org] [ 3/12] Upgrading libcbor from 0.13.0 to 0.14.0...
[empty.int.unixathome.org] [ 3/12] Extracting libcbor-0.14.0: 100%
[empty.int.unixathome.org] [ 4/12] Upgrading libcjson from 1.7.19 to 1.7.19_1...
[empty.int.unixathome.org] [ 4/12] Extracting libcjson-1.7.19_1: 100%
[empty.int.unixathome.org] [ 5/12] Upgrading libffi from 3.5.2 to 3.6.0...
[empty.int.unixathome.org] [ 5/12] Extracting libffi-3.6.0: 100%
[empty.int.unixathome.org] [ 6/12] Upgrading libpsl from 0.21.5_2 to 0.22.0...
[empty.int.unixathome.org] [ 6/12] Extracting libpsl-0.22.0: 100%
[empty.int.unixathome.org] [ 7/12] Upgrading libssh2 from 1.11.1,3 to 1.11.1_1,3...
[empty.int.unixathome.org] [ 7/12] Extracting libssh2-1.11.1_1,3: 100%
[empty.int.unixathome.org] [ 8/12] Upgrading curl from 8.20.0 to 8.21.0...
[empty.int.unixathome.org] [ 8/12] Extracting curl-8.21.0: 100%
[empty.int.unixathome.org] [ 9/12] Upgrading mosquitto from 2.1.2_2 to 2.1.2_3...
===> Creating users
Using existing user 'nobody'
[empty.int.unixathome.org] [ 9/12] Extracting mosquitto-2.1.2_3: 100%
[empty.int.unixathome.org] [10/12] Upgrading p5-IO-Socket-SSL from 2.098 to 2.099...
[empty.int.unixathome.org] [10/12] Extracting p5-IO-Socket-SSL-2.099: 100%
[empty.int.unixathome.org] [11/12] Upgrading rsync from 3.4.4 to 3.4.4_1...
[empty.int.unixathome.org] [11/12] Extracting rsync-3.4.4_1: 100%
[empty.int.unixathome.org] [12/12] Upgrading zsh from 5.9_5 to 5.9.1...
[empty.int.unixathome.org] [12/12] Extracting zsh-5.9.1: 100%
You may need to manually remove /usr/local/etc/mosquitto/mosquitto.conf if it is no longer needed.

That seems good too.

So, what went wrong?

But wait, that error!

I just noticed this error, which appears in both of the last runs:

[empty.int.unixathome.org] [ 32/312] Extracting FreeBSD-clibs-15.0p11: 100%
Cannot install /lib/libc.so.7, installed as /lib/libc.so.7.pkgnew
pkg: Failed to chflags /lib/libc.so.7:Operation not permitted
Error: exit
Restarting sshd

I think chflags is still an issue.

Let’s try adding this to the jail configuration and restart it:

    securelevel = -1;

This is the full run:

[0:29 empty root ~] # ./pkgbasify.lua --force
Running this tool will irreversibly modify your system to use pkgbase.
This tool and pkgbase are experimental and may result in a broken system.
It is highly recommended to backup your system before proceeding.
Do you accept this risk and wish to continue? (y/n) y
Updating FreeBSD-base repository catalogue...
FreeBSD-base repository is up to date.
Updating local repository catalogue...
local repository is up to date.
All repositories are up to date.
Checking integrity... done (0 conflicting)
Your packages are up to date.
Updating FreeBSD-ports repository catalogue...
[empty.int.unixathome.org] Fetching meta.conf: 100%     179 B   0.2 kB/s    00:01    
[empty.int.unixathome.org] Fetching data: 100%    10 MiB  11.0 MB/s    00:01    
Processing entries: 100%
FreeBSD-ports repository update completed. 37066 packages processed.
Updating FreeBSD-ports-kmods repository catalogue...
[empty.int.unixathome.org] Fetching meta.conf: 100%     179 B   0.2 kB/s    00:01    
[empty.int.unixathome.org] Fetching data: 100%    35 KiB  35.9 kB/s    00:01    
Processing entries: 100%
FreeBSD-ports-kmods repository update completed. 240 packages processed.
Updating FreeBSD-base repository catalogue...
[empty.int.unixathome.org] Fetching meta.conf: 100%     179 B   0.2 kB/s    00:01    
[empty.int.unixathome.org] Fetching data: 100%    81 KiB  82.5 kB/s    00:01    
Processing entries: 100%
FreeBSD-base repository update completed. 496 packages processed.
All repositories are up to date.
Overwrite //usr/local/etc/pkg/repos/FreeBSD-base.conf? (y/n) y
Overwriting //usr/local/etc/pkg/repos/FreeBSD-base.conf
Updating FreeBSD-base repository catalogue...
FreeBSD-base repository is up to date.
FreeBSD-base is up to date.
Checking integrity... done (0 conflicting)
The most recent versions of packages are already installed
Checking integrity... done (0 conflicting)
The most recent versions of packages are already installed
Checking integrity... done (0 conflicting)
The following 312 package(s) will be affected (of 0 checked):

Installed packages to be REINSTALLED:
	FreeBSD-acct-15.0 [FreeBSD-base]
...
	FreeBSD-zoneinfo-15.0p7 [FreeBSD-base]

Number of packages to be reinstalled: 312
[empty.int.unixathome.org] [  1/312] Reinstalling FreeBSD-acct-15.0...
[empty.int.unixathome.org] [  1/312] Extracting FreeBSD-acct-15.0: 100%
...
[empty.int.unixathome.org] [215/312] Reinstalling FreeBSD-caroot-15.0...
[empty.int.unixathome.org] [215/312] Extracting FreeBSD-caroot-15.0: 100%
certctl: legacy directory /etc/ssl/blacklisted can safely be deleted
[empty.int.unixathome.org] [216/312] Reinstalling FreeBSD-openssl-dev-15.0p10...
...
[empty.int.unixathome.org] [311/312] Extracting FreeBSD-tests-dbg-15.0p11: 100%
[empty.int.unixathome.org] [312/312] Reinstalling FreeBSD-set-tests-15.0...
==> Running trigger: mandoc.ucl
=====
Message from FreeBSD-local-unbound-15.0p10:

--
After upgrading local-unbound, the configuration file should be regenerated
by running "service local_unbound setup" before restarting the service.
Restarting sshd
Performing sanity check on sshd configuration.
Stopping sshd.
Waiting for PIDS: 50722.
Performing sanity check on sshd configuration.
Starting sshd.
Conversion finished.

Please verify that the contents of the following critical files are as expected:
/etc/master.passwd
/etc/group
/etc/ssh/sshd_config

After verifying those files, restart the system.

I raised an issue.

Top

Running pkgbasify on a FreeBSD 15.0 host to convert a jail

Post by Dan Langille via Dan Langille's Other Diary »

Not long ago, I ran pkgbasify on a FreeBSD 15.0 jail – this time I’m going to do it slightly differently. I’m going to run the script on the host.

In this post:

  • FreeBSD 15.0
  • the jail is named dns1
  • I’ll use the variable MYJAIL to make your copy/paste easier and my future runs easier

Following the instructions at https://github.com/FreeBSDFoundation/pkgbasify I did the following.

Download

[23:03 r730-01 dvl ~/bin] % fetch https://github.com/FreeBSDFoundation/pkgbasify/raw/refs/heads/main/pkgbasify.lua
pkgbasify.lua                                           21 kB 5699 kBps    00s
[23:03 r730-01 dvl ~/bin] % chmod +x ./pkgbasify.lua

Prepare the jail

Based on previous runs, I added the following to my jail configuration and restarted the jail:

# added for pkgbasify
allow.chflags;
securelevel = -1;

Snapshot the jail

[23:12 r730-01 dvl ~/bin] % sudo zfs snapshot data02/jails/dns1@before.pkgbasify
[23:12 r730-01 dvl ~/bin] % 

Run the script

[23:13 r730-01 dvl ~/bin] % export MYJAIL=dns1
[23:13 r730-01 dvl ~/bin] % sudo ./pkgbasify.lua --jail $MYJAIL                
Running this tool will irreversibly modify your system to use pkgbase.
This tool and pkgbase are experimental and may result in a broken system.
It is highly recommended to backup your system before proceeding.
Do you accept this risk and wish to continue? (y/n) y
Updating FreeBSD-base repository catalogue...
FreeBSD-base repository is up to date.
Updating local repository catalogue...
Fetching meta.conf: 100%     179 B   0.2 kB/s    00:01    
Fetching data: 100%   378 KiB 386.6 kB/s    00:01    
Processing entries: 100%
local repository update completed. 1119 packages processed.
All repositories are up to date.
Checking integrity... done (0 conflicting)
Your packages are up to date.
Updating FreeBSD-ports repository catalogue...
Fetching meta.conf: 100%     179 B   0.2 kB/s    00:01    
Fetching data: 100%    11 MiB  11.2 MB/s    00:01    
Processing entries: 100%
FreeBSD-ports repository update completed. 37824 packages processed.
Updating FreeBSD-ports-kmods repository catalogue...
Fetching meta.conf: 100%     179 B   0.2 kB/s    00:01    
Fetching data: 100%    35 KiB  35.6 kB/s    00:01    
Processing entries: 100%
FreeBSD-ports-kmods repository update completed. 239 packages processed.
Updating FreeBSD-base repository catalogue...
Fetching meta.conf: 100%     179 B   0.2 kB/s    00:01    
Fetching data: 100%    82 KiB  84.0 kB/s    00:01    
Processing entries: 100%
FreeBSD-base repository update completed. 509 packages processed.
All repositories are up to date.
Creating /jails/dns1/usr/local/etc/pkg/repos/FreeBSD-base.conf
Updating FreeBSD-base repository catalogue...
Fetching meta.conf: 100%     179 B   0.2 kB/s    00:01    
Fetching data: 100%    81 KiB  82.5 kB/s    00:01    
Processing entries: 100%
FreeBSD-base repository update completed. 496 packages processed.
FreeBSD-base is up to date.
The following 311 package(s) will be affected (of 0 checked):

New packages to be INSTALLED:
        FreeBSD-acct: 15.0 [FreeBSD-base]
        FreeBSD-acpi: 15.0 [FreeBSD-base]
        FreeBSD-apm: 15.0 [FreeBSD-base]
...
        FreeBSD-zoneinfo: 15.0p7 [FreeBSD-base]

Number of packages to be installed: 311

The process will require 994 MiB more space.
325 MiB to be downloaded.
[  1/311] Fetching FreeBSD-libmilter-dev-15.0p10: 100%    86 KiB  87.8 kB/s    00:01    
[  2/311] Fetching FreeBSD-libsqlite3-dev-15.0: 100%  2144 KiB   2.2 MB/s    00:01    
[  3/311] Fetching FreeBSD-libldns-dev-15.0p10: 100%   669 KiB 684.8 kB/s    00:01    
[  4/311] Fetching FreeBSD-tcpd-15.0: 100%    44 KiB  44.6 kB/s    00:01    
...
[311/311] Fetching FreeBSD-ctf-dev-15.0: 100%   138 KiB 141.6 kB/s    00:01    
Checking integrity... done (0 conflicting)
Checking integrity... done (0 conflicting)
The following 311 package(s) will be affected (of 0 checked):

New packages to be INSTALLED:
        FreeBSD-acct: 15.0 [FreeBSD-base]
        FreeBSD-acpi: 15.0 [FreeBSD-base]
        FreeBSD-apm: 15.0 [FreeBSD-base]
        FreeBSD-at: 15.0 [FreeBSD-base]
        FreeBSD-atf: 15.0 [FreeBSD-base]
        FreeBSD-atf-dev: 15.0 [FreeBSD-base]
        FreeBSD-atf-lib: 15.0 [FreeBSD-base]
        FreeBSD-audit: 15.0p10 [FreeBSD-base]
        FreeBSD-audit-dev: 15.0 [FreeBSD-base]
        FreeBSD-audit-dev-lib32: 15.0 [FreeBSD-base]
        FreeBSD-audit-lib: 15.0 [FreeBSD-base]
        FreeBSD-audit-lib32: 15.0 [FreeBSD-base]
        FreeBSD-autofs: 15.0 [FreeBSD-base]
        FreeBSD-bhyve: 15.0 [FreeBSD-base]
        FreeBSD-blocklist: 15.0p3 [FreeBSD-base]
        FreeBSD-blocklist-dev: 15.0 [FreeBSD-base]
 ...
        FreeBSD-zlib-lib32: 15.0 [FreeBSD-base]
        FreeBSD-zoneinfo: 15.0p7 [FreeBSD-base]

Number of packages to be installed: 311

The process will require 994 MiB more space.
[  1/311] Installing FreeBSD-acct-15.0...
[  2/311] Installing FreeBSD-acpi-15.0...
[  3/311] Installing FreeBSD-apm-15.0...
[  4/311] Installing FreeBSD-atf-15.0...
...
[311/311] Installing FreeBSD-set-tests-15.0...
Checking integrity... done (0 conflicting)
The following 311 package(s) will be affected (of 0 checked):

Installed packages to be REINSTALLED:
        FreeBSD-acct-15.0 [FreeBSD-base]
        FreeBSD-acpi-15.0 [FreeBSD-base]
        FreeBSD-apm-15.0 [FreeBSD-base]
        FreeBSD-at-15.0 [FreeBSD-base]
...
        FreeBSD-zoneinfo-15.0p7 [FreeBSD-base]

Number of packages to be reinstalled: 311
[  1/311] Reinstalling FreeBSD-acct-15.0...

...

[310/311] Extracting FreeBSD-tests-dbg-15.0p11: 100%
[311/311] Reinstalling FreeBSD-set-tests-15.0...
==> Running trigger: mandoc.ucl
=====
Message from FreeBSD-local-unbound-15.0p10:

--
After upgrading local-unbound, the configuration file should be regenerated
by running "service local_unbound setup" before restarting the service.
Conversion finished.

Please verify that the contents of the following critical files are as expected:
/jails/dns1/etc/master.passwd
/jails/dns1/etc/group
/jails/dns1/etc/ssh/sshd_config

After verifying those files, restart the system.

I looked at those first three files. Seemed OK.

Then I restarted sshd in that jail, just to be sure.

[23:20 r730-01 dvl ~/bin] % sudo jexec $MYJAIL service sshd restart
Performing sanity check on sshd configuration.
Stopping sshd.
Waiting for PIDS: 98398.
Performing sanity check on sshd configuration.
Starting sshd.

After restarting that jail, I confirmed it was done:

[23:21 r730-01 dvl ~/bin] % sudo pkg -j $MYJAIL which /usr/bin/uname
/usr/bin/uname was installed by package FreeBSD-runtime-15.0p11

Now I can update that jail to FreeBSD 15.1 via pkgbase.

Top

Valuable News – 2026/07/20

Post by Vermaden via 𝚟𝚎𝚛𝚖𝚊𝚍𝚎𝚗 »

The Valuable News weekly series is dedicated to provide summary about news, articles and other interesting stuff mostly but not always related to the UNIX/BSD/Linux systems. Whenever I stumble upon something worth mentioning on the Internet I just put it here.

Today the amount information that we get using various information streams is at massive overload. Thus one needs to focus only on what is important without the need to grep(1) the Internet everyday. Hence the idea of providing such information ‘bulk’ as I already do that grep(1).

The Usual Suspects section at the end is permanent and have links to other sites with interesting UNIX/BSD/Linux news.

Past releases are available at the dedicated NEWS page.

UNIX

FreeBSD Git Weekly: 2026-07-06 to 2026-07-12.
https://freebsd-git-weekly.tarsnap.net/2026-07-06.html

FreeBSD Git Weekly: 2026-07-13 to 2026-07-19.
https://freebsd-git-weekly.tarsnap.net/2026-07-13.html

FreeBSD Desktop Installer Option Working Through NVIDIA Driver Handling/Licensing.
https://phoronix.com/news/FreeBSD-Desktop-Install-NVIDIA

Virtual Keypunch – Make Your Personal Punch Card.
https://masswerk.at/keypunch/

How Early SunOS Did Diskless Workstations Before NFS.
https://utcc.utoronto.ca/~cks/space/blog/solaris/SunOSDisklessWithoutNFS

Measuring Input Latency on Linux: X11/Wayland/XWayland/VRR/DXVK.
https://marco-nett.de/blog/measuring-input-latency-on-linux-x11-vs-wayland-vrr-dxvk/

FreeBSD UNIX is Finally Free from Any GPL Licensed Software in Base System.
https://github.com/freebsd/freebsd-src/commit/134a4c78d070f8c4ea43a060a7ae28d22ac39558

FreeBSD 16 Retires Last of Its GPL Code from Base System.
https://phoronix.com/news/FreeBSD-16-Goes-GPL-Free

OpenZFS on FSKit PoC – Mounts ZFS Pools Using Apple FSKit Framework.
https://github.com/openzfsonosx/openzfs-fork/tree/FSKit#openzfs-on-fskit–proof-of-concept

FreeBSD Jails with Single Public IP Address.
https://davd.io/posts-freebsd-jails-with-a-single-public-ip-address/

ET++ 2.2 Restoration and Port of Historic Object Oriented C++ Application Framework Originally Released in 1991.
https://github.com/redporter/ETPlusPlus

FreeBSD Foundation 2026/06 Laptop Update.
https://github.com/FreeBSDFoundation/proj-laptop/blob/main/monthly-updates/2026-06.md

FreeBSD Laptop Support Continues Improving with WiFi/GPU/Audio Driver Work.
https://phoronix.com/news/FreeBSD-Laptops-June-2026

FreeBSD 16 Cleans House: No GPL Left in Base System.
https://fossforce.com/2026/07/freebsd-16-cleans-house-no-gpl-left-in-the-base-system/

The chroot_env Helps Create chroot(8) Environments for Applications on FreeBSD.
https://github.com/rozhuk-im/chroot_env

FreeBSD 15.2-RELEASE Schedule.
https://lists.freebsd.org/archives/freebsd-stable/2026-July/004186.html

Frame New X11 Server Implemented Directly in Assembly.
https://theregister.com/software/2026/07/14/frame-x11-server-assembly/5270498

Frame First Linux Assembly X11 Server.
https://isene.org/2026/07/Frame.html

Pure Assembly tile Tiling Window Manager.
https://github.com/isene/tile

Pure Assembly glass Terminal Emulator.
https://github.com/isene/glass

Pure Assembly bare Shell.
https://github.com/isene/bare

OPNsense 26.7 Debuts on FreeBSD 15.1 with Firewall/Networking/Enhancements.
https://alternativeto.net/news/2026/7/opnsense-26-7-debuts-on-freebsd-15-1-with-firewall-networking-and-future-proof-enhancements/

OPNsense 26.7 Xenial Xenops Community Edition.
https://deciso.com/building-the-foundation-for-the-next-generation-of-open-network-security/

OpenBSD Moves to 8.0-beta Version.
https://undeadly.org/cgi?action=article;sid=20260716115231

More Security on FreeBSD.
https://linkedin.com/pulse/more-security-freebsd-ivan-rozhuk-xgiff/

Enterprise FreeBSD Report Available.
https://netactuate.com/blog/enterprise-users-of-freebsd-report-high-satisfaction-and-usability

Represent FreeBSD in Your Community.
https://freebsdfoundation.org/blog/represent-freebsd-in-your-community/

FreeBSD Intern Working on Porting AMD ROCm.
https://phoronix.com/news/FreeBSD-Intern-AMD-ROCm

FreeBSD Base System is Now Free of GPL Licensed Software.
https://linuxiac.com/freebsd-base-system-is-now-free-of-gpl-licensed-software/

NextBSD Returns to Dollop Apple Source on FreeBSD.
https://theregister.com/os-platforms/2026/07/18/nextbsd-returns-to-dollop-apple-source-on-freebsd/5273788

WPA3 Support Coming to OpenBSD.
https://undeadly.org/cgi?action=article;sid=20260719093851

Early Research Unix exec(2) argv Size Limit
https://utcc.utoronto.ca/~cks/space/blog/unix/EarlyUnixExecArgvSizeLimit

The argc and argv in Early Research Unix.
https://utcc.utoronto.ca/~cks/space/blog/unix/EarlyUnixArgcAndArgv

Updating FreeBSD 15.0 to 15.1 via PKGBASE.
https://dan.langille.org/2026/07/17/updating-freebsd-15-0-to-freebsd-15-1-via-pkgbase/

Understanding Foundation Board Role in FreeBSD Ecosystem.
https://freebsdfoundation.org/blog/understanding-the-foundation-boards-role-in-the-freebsd-ecosystem/

Setup Simple Self Hosted Web Server with OpenBSD.
https://btxx.org/posts/self-hosted-openbsd/

Tragic State of FreeBSD Audio/Sound.
https://lists.freebsd.org/archives/freebsd-hackers/2026-July/006586.html

UNIX/Audio/Video

GhostBSD FAQ.
https://youtube.com/watch?v=87vIaARGpY4

BSD Now 67: Kitchen Calculator.
https://www.bsdnow.tv/672

Hardware

AMD EPYC/AWS Graviton5/Intel Xeon Benchmarks.
https://phoronix.com/review/graviton5-epyc-xeon/10

Life

The Father of the Internet is Finally Retiring.
https://techcrunch.com/2026/06/30/the-father-of-the-internet-is-finally-retiring/

Sam Neill Star of Jurassic Park/Peaky Blinders/Piano Dies Aged 78.
https://theguardian.com/film/2026/jul/13/sam-neill-death-actor-dies-aged-78

Wine Moms Switched to Weed But Their Wounds Have Not Changed.
https://ifstudies.org/blog/wine-moms-switched-to-weed-but-their-wounds-havent-changed

Other

UK Government Wants ID for Internet … and Its Already Started.
https://youtube.com/watch?v=f36LJKL8_pQ

Microsoft Secure Boot Was Broken for Decade and No One Noticed Until Now.
https://arstechnica.com/security/2026/07/microsoft-secure-boot-has-been-broken-for-most-of-its-existence/

Usual Suspects

BSD Weekly.
https://bsdweekly.com/

DiscoverBSD.
https://discoverbsd.com/

BSDSec.
https://bsdsec.net/

DragonFly BSD Digest.
https://dragonflydigest.com/

FreeBSD Patch Level Table.
https://bokut.in/freebsd-patch-level-table/

FreeBSD End of Life Date.
https://endoflife.date/freebsd

Phoronix BSD News Archives.
https://phoronix.com/linux/BSD

OpenBSD Journal.
https://undeadly.org/

Call for Testing.
https://callfortesting.org/

Call for Testing – Production Users Call.
https://youtube.com/@callfortesting/videos

BSD Now Weekly Podcast.
https://www.bsdnow.tv/

Nixers Newsletter.
https://newsletter.nixers.net/entries.php

BSD Cafe Journal.
https://journal.bsd.cafe/

DragonFly BSD Digest – Lazy Reading – In Other BSDs.
https://dragonflydigest.com

BSDTV.
https://bsky.app/profile/bsdtv.bsky.social

FreeBSD Git Weekly.
https://freebsd-git-weekly.tarsnap.net/

FreeBSD Meetings.
https://youtube.com/@freebsdmeetings

BSDJedi.
https://youtube.com/@BSDJedi/videos

RoboNuggie.
https://youtube.com/@RoboNuggie/videos

GaryHTech.
https://youtube.com/@GaryHTech/videos

Sheridan Computers.
https://youtube.com/@sheridans/videos

82MHz.
https://82mhz.net/

EOF
Top

DFG Heisenberg project post-mortem

Post by Andreas K. Hüttel via the dilfridge blog »

This post is an excerpt from the formally non-public part of my DFG Heisenberg grant final report (about half of the actually interesting part). I hope it will help people do better. Some personal information has been redacted.

The backstory

In 2018, when I first submitted a Heisenberg program proposal, funding was declined. One referee report was full of misinformation and misinterpretations, the other criticized the methods in one of the suggested research subtopics. Overall this sufficiently lowered the ranking of the entire submission. Anyway, as the saying goes, stand up again, brush down coat, re-adjust crown, keep going. The proposal was updated, the doubtful part replaced, a response to the misinformation added, and of course also some more exciting research ideas included.

At that point I decided to go for full risk. While the DFG Emmy Noether program deliberately funds a junior research group consisting of a PI and PhD students or a post-doc, the DFG Heisenberg program is more adjusted along the customs of humanities and funds the PI alone. It is still supposed to provide a base for independent research at the level of associate professor though, which is why one can concurrently submit a supporting research grant proposal for equipment and personnel. The advantage of doing so is that this can form a coherent overall funding package, the disadvantage is that a negative review of any part of the package will drag it down in its entirety, see above.

Complementing the overarching Heisenberg proposal for my own position and its research, I submitted in 2019 two additional research proposals ("Einzelanträge"). One focused on the continuation of the Emmy Noether project, tuning optomechanics of single-wall carbon nanotubes towards strong coupling and coherent control, and including such nice ideas as, e.g., coupling mechanics with coherent states in double quantum dots. This was a highly complex project, intended for two PhD students (and the two students were really required because of the combination of multi-step fabrication and complicated experiment). In addition, it was adjusted to fit to the topic of a Graduate Research School (GRK) proposal under preparation back then in Regensburg. The idea of the second grant was to try out something new, and establish quantum transport measurements on MoS2 nanotubes – a material where already a lot of optical measurements existed but the transport physics of quantum dots was so far completely unexplored. Here, one PhD student was requested; furthermore the topic was deliberately chosen to be in the area of interest of a new Regensburg Collaborative Research Centre (SFB), SFB 1277, in the hope of further financial support options.

Because of the significant amount of university-bound equipment acquired from SFB funds, and the potential difficulties of moving “my” large dilution refrigerator, I chose again Universität Regensburg as host institution.

In the meantime, my employment contract in Regensburg ran out (thanks Wissenschaftszeitvertragsgesetz), so I went to the Low Temperature Laboratory, Department of Applied Physics, Aalto University, Finland for one year as full-time employed visiting professor; my thanks go to Prof. Pertti Hakonen for making this possible. Two weeks later COVID broke out, but Aalto was a great place to be both scientifically and to sit out the pandemic. And in autumn a sequence of excellent news followed; the Heisenberg grant was approved, and in addition the Emmy Noether work on microwave optomechanics was awarded the Walter Schottky Prize 2021 of the German Physical Society. So, things were clearly brightening up, or so I thought.

A more detailed inspection of the grant approval letter provided a somewhat more mixed image. One referee explicitly and clearly supported the request for two PhD students in the optomechanics project, the other also explicitly lauded all details, including the excellent funding plan, of the optomechanics project, but additionally stated that the impact of the MoS2 nanotube project would be larger (this was likely written before the announcement of the Walter Schottky Prize). As result, only one PhD position for optomechanics was granted by the funding committee. Hope always dies last, but in retrospect I can now confirm my immediate suspicion that this reduction of funding killed the optomechanics project from the start. My initial “plan B” for additional optomechanics funds was not available anymore, since the Regensburg Graduate Research School had in the meantime made an ultrafast turn towards other research topics. Further, even though this project was the direct continuation of the Walter Schottky Prize work, it turned out to be extremely difficult to find and hire a PhD student for it. The project started on 16 March 2021, and only on 1 August 2022 a PhD student arrived.

In comparison, the MoS2 nanotube project start-up went much more smooth, and [...] started work on his PhD straight on the 16 March 2021. All hope of a financially significant participation in the Regensburg SFB 1277 was however shattered already by a brief conversation with the back then SFB speaker, who made clear that nothing beyond appointing me “associated member” would even be considered. Well, you can't allow “junior scientists” to become too successful…

Scientific progress

I had attempted to keep the optomechanics project going in Regensburg during my time in Finland via a remotely-supervised MSc student, who successfully optimized coplanar waveguide resonator geometries and produced and tested the corresponding devices. When I came back, I quickly found another MSc student who was very enthusiastic to start with optomechanics experiments. However, we also quickly found out that the nanotube growth oven had broken in the meantime, requiring the whole process to be optimized from the start, and the MSc project literally became a year of getting carbon nanotube growth going again from zero. Now in 2026 (!) the quality of nanotubes transferred into a circuit is finally showing excellent results again. That said, the nanotube optomechanics project had many delicate parts, from nanotube growth and transfer to coplanar resonator chip design and fabrication, and no number of MSc students recruited into my group could really replace the missing second PhD student.

[...] On the MoS2 nanotube side, progress was slow but steady, and the PhD student did excellent work. Making contacts to MoS2 nanotubes turned out to be even more complex than contacts to carbon nanotubes or a 2D MoS2 monolayer. A technical breakthrough in the latter system by researchers from MIT and TSMC, among others, provided a path forward, and indeed their approach also led to occasional good results with the MoS2 nanotubes. Obtaining these good results reproducibly, however, was again another complex optimization step; we solved that in 2025 and subsequently managed first physically interesting low-temperature measurements.

In general, across both subprojects, work was slowed down very much by continuous equipment break-downs and oddities in the Regensburg cleanroom. "The SEM for e-beam writing is down" turned out to be one highly regular e-mail subject (for any possible value of "the SEM"). Mystery changes in resist properties, micrometer-scale shifts in the written structures, interruptions in the air conditioning that led to water condensation in the whole cleanroom, ... The department bought a Heidelberg Instruments mask-less aligner (a laser writer for lithography), which was nice but of limited usefulness – since for nanophysics you actually need nano-resolution! Plus there were some other annoying events; e.g., during the installation of a new dilution refrigerator next door someone opened up our (then evacuated) 3He/4He circuit in the pump room to air, which we only noticed when we tried to cool down and suddenly were pumping air into the cold dilution refrigerator insert. Luckily, nearly no isotope mixture was lost.

Experimental work took significantly longer than expected, but eventually did yield interesting results right at the end. As stated above, for the research details of the two subprojects, I refer to the final reports of the research grants [...] and [...].

[...]

Early career stage researchers

I am proud to be able to say that during my ~16 years in Regensburg I have supervised 7 PhD students and 27 MSc or Diplom students. During the Heisenberg period specifically, two PhD students should be named, [...] and [...]. [...] is currently helping a new professor in Regensburg build up his lab on a post-doc position and considering remaining in academia (which he would definitely be suited for). [...] is still busy measuring beautiful data and writing up his dissertation, while being paid by SFB1277.

At the end of the official project runtime (and my employment) in March three MSc students were still active; two have graduated by now, the third one recently handed in his thesis.

Top

Using AI to understand kernel crashes

Post by Alexander Leidinger via Alexander Leidinger »

While doing some performance tracing of an application with the FreeBSD hwpmc subsystem as a normal user in a jail, I tripped over a kernel crash (this only happens if INVARIANTS is compiled into the kernel, so not with a RELEASE kernel).

I reported that about a week ago on the FreeBSD-current mailing list. I got feedback with a suspicion, but nothing specific.

Last night the same system crashed again, this time in nullfs (and again, this only happens if INVARIANTS is compiled into the kernel, so not with a RELEASE kernel).

As I was playing around with Claude Code (this performance tracing), and already had a nice setup (one week of teaching Claude “my way” of using WSL, compilers, some developer tools, a development and testing methodology, connect to particular FreeBSD jails and the tools to use there, create unit tests, spin-up test VMs, build harnesses, test harnesses, and so on), I thought I should give Claude (Fable) temporary read access to the git tree of the crashed kernel, the coredump and the debug symbols. Here is what it did:

StageDurationNotes
Analysis & root-cause (both panics)~27 min
Implement + verify-build + stage 2 patches~5 minbuilds were 31 s + 11 s of it
Hardening (reviewer/width research, ATF test, reproducers, review by user)~40 mininterleaved
Rig validation of 2 patches (reproduce → build WRAPFIX → confirm)~19 min
3rd bug: surfaced by the test, root-caused, reproduced~7 minprogramming bug in the unit-test by Claude caused a 3rd crash its his test VM
Draft + implement + build + stage detach fix 3rd patch~24 minincl. finalizing the other two patches; build 30 s
Rig validation of 3rd patch (build + deploy + test)~10 min
Totals~2 h 14 minwall clock ~4 h 42 min (usage limit exceeded)

This included some back-and-forth with me, some questions from and to me, and some decisionsby me (I have some guidelines for Claude to discuss some stuff with me instead of blindly going forward, and I reviewed the output and sometimes intervene directly when I don’t like something).

The results were opened for review, and some moments ago (less than 12h since I noticed it this morning) I committed the fix for the nullfs issue (no unit test, as this was a race issue and may run for a long time before triggering). The other two hwpmc issues are under review (including unit-tests).

About 2h to fix three kernel crashes, including reproducer/unit-tests (we will see if the reviewers are OK with the fix or not, but at least it does not panic my system anymore).

I have to say I’m impressed. I didn’t expect much, I told Claude to have a go at it, went to take a shower, and came back to see Claude had validated the reproducer for the nullfs+inotify issue, and a unit-test for the first issue (which then crashed into the 3rd issue).

This was the fastest turnaround for a fix of one of the crashes I was able to trigger on my systems. Well… three fixes for three crashes.

Share/Save

The post Using AI to understand kernel crashes first appeared on Alexander Leidinger.

Top

Updating FreeBSD 15.0 to FreeBSD 15.1 (via pkgbase)

Post by Dan Langille via Dan Langille's Other Diary »

I decided that Thursday morning at 8:27 AM was the right time to start my first update from FreeBSD 15.0 to 15.1 – all my hosts are now on pkgbase. I used the pgkbasify script. Now it’s time to update again.

In this post:

In the following sections, I am showing the steps I carried out. The section names here have the same names as the instructions.

Is it really pkgbase?

As seen under Introduction, I will be following the Upgrading with Base System Packages instructions:

[12:31 nagios04 dvl ~] % pkg which /usr/bin/uname
/usr/bin/uname was installed by package FreeBSD-runtime-15.0p11

Snapshot the Current Installation

I create a new boot environment; this is the fallback position.

[12:33 nagios04 root ~] # bectl create -r pre-15.1
[12:33 nagios04 root ~] # 

Upgrade the Installed System

[12:33 nagios04 root ~] # pkg upgrade -r FreeBSD-base
Updating FreeBSD-base repository catalogue...
FreeBSD-base repository is up to date.
FreeBSD-base is up to date.
Checking for upgrades (1 candidates): 100%
Processing candidates (1 candidates): 100%
Checking integrity... done (0 conflicting)
Your packages are up to date.

Upgrade the Base System

The main thing to take note of in the paste below, this removal. Everything else seems OK. Turns out, it was of no consequence

Installed packages to be REMOVED:
	FreeBSD-lldb-dev: 15.0

The full output is in this gist.

[12:34 nagios04 root ~] # pkg -oABI=FreeBSD:15:$(uname -p) -oOSVERSION=1501000 upgrade -r FreeBSD-base
Updating FreeBSD-base repository catalogue...
pkg: Repository FreeBSD-base has a wrong packagesite, need to re-create database
Fetching meta.conf: 100%     179 B   0.2 kB/s    00:01    
Fetching data: 100%    82 KiB  84.0 kB/s    00:01    
Processing entries: 100%
FreeBSD-base repository update completed. 509 packages processed.
FreeBSD-base is up to date.
Checking for upgrades (486 candidates): 100%
Processing candidates (486 candidates): 100%
The following 499 package(s) will be affected (of 0 checked):

New packages to be INSTALLED:
	FreeBSD-pam: 15.1 [FreeBSD-base]
	FreeBSD-pam-dbg: 15.1 [FreeBSD-base]
	FreeBSD-pam-dbg-lib32: 15.1 [FreeBSD-base]
	FreeBSD-pam-dev: 15.1 [FreeBSD-base]
	FreeBSD-pam-dev-lib32: 15.1 [FreeBSD-base]
	FreeBSD-pam-lib: 15.1 [FreeBSD-base]
	FreeBSD-pam-lib32: 15.1 [FreeBSD-base]
	FreeBSD-zstd: 15.1 [FreeBSD-base]
	FreeBSD-zstd-dbg: 15.1 [FreeBSD-base]
	FreeBSD-zstd-dbg-lib32: 15.1 [FreeBSD-base]
	FreeBSD-zstd-dev: 15.1 [FreeBSD-base]
	FreeBSD-zstd-dev-lib32: 15.1 [FreeBSD-base]
	FreeBSD-zstd-lib: 15.1 [FreeBSD-base]
	FreeBSD-zstd-lib32: 15.1 [FreeBSD-base]

Installed packages to be UPGRADED:
	FreeBSD-acct: 15.0 -> 15.1 [FreeBSD-base]
	FreeBSD-acct-dbg: 15.0 -> 15.1 [FreeBSD-base]
	FreeBSD-acpi: 15.0 -> 15.1 [FreeBSD-base]
...
	FreeBSD-zlib-lib32: 15.0 -> 15.1 [FreeBSD-base]
	FreeBSD-zoneinfo: 15.0p7 -> 15.1 [FreeBSD-base]

Number of packages to be installed: 14
Number of packages to be upgraded: 485

The process will require 12 MiB more space.
672 MiB to be downloaded.

Proceed with this action? [y/N]: y
[  1/499] Fetching FreeBSD-libmilter-dev-15.1: 100%    86 KiB  87.8 kB/s    00:01    
...
[499/499] Fetching FreeBSD-ctf-dev-15.1: 100%   138 KiB 141.1 kB/s    00:01    
Checking integrity... done (24 conflicting)
  - FreeBSD-sound-15.1 [FreeBSD-base] conflicts with FreeBSD-rc-15.0 [installed] on /etc/rc.d/mixer
  - FreeBSD-atf-15.1 [FreeBSD-base] conflicts with FreeBSD-tests-15.0p11 [installed] on /usr/share/atf/libatf-sh.subr
  - FreeBSD-pam-dbg-lib32-15.1 [FreeBSD-base] conflicts with FreeBSD-runtime-dbg-lib32-15.0p11 [installed] on /usr/lib/debug/usr/lib32/libpam.so.6.debug
  - FreeBSD-pam-dbg-lib32-15.1 [FreeBSD-base] conflicts with FreeBSD-utilities-dbg-lib32-15.0p11 [installed] on /usr/lib/debug/usr/lib32/pam_chroot.so.6.debug
  - FreeBSD-zstd-15.1 [FreeBSD-base] conflicts with FreeBSD-utilities-15.0p11 [installed] on /usr/bin/unzstd
  - FreeBSD-pam-dbg-15.1 [FreeBSD-base] conflicts with FreeBSD-runtime-dbg-15.0p11 [installed] on /usr/lib/debug/usr/lib/libpam.so.6.debug
  - FreeBSD-pam-dbg-15.1 [FreeBSD-base] conflicts with FreeBSD-utilities-dbg-15.0p11 [installed] on /usr/lib/debug/usr/lib/pam_chroot.so.6.debug
  - FreeBSD-clang-15.1p1 [FreeBSD-base] conflicts with FreeBSD-lldb-15.0p11 [installed] on /usr/lib/libprivatelldb.so.19
  - FreeBSD-pam-lib-15.1 [FreeBSD-base] conflicts with FreeBSD-runtime-15.0p11 [installed] on /usr/lib/libpam.so.6
  - FreeBSD-zstd-dev-lib32-15.1 [FreeBSD-base] conflicts with FreeBSD-runtime-dev-lib32-15.0p11 [installed] on /usr/lib32/libprivatezstd.a
  - FreeBSD-pam-lib32-15.1 [FreeBSD-base] conflicts with FreeBSD-runtime-lib32-15.0p11 [installed] on /usr/lib32/libpam.so.6
  - FreeBSD-pam-lib32-15.1 [FreeBSD-base] conflicts with FreeBSD-utilities-lib32-15.0p11 [installed] on /usr/lib32/pam_chroot.so
  - FreeBSD-zstd-lib32-15.1 [FreeBSD-base] conflicts with FreeBSD-runtime-lib32-15.0p11 [installed] on /usr/lib32/libprivatezstd.so.5
  - FreeBSD-zstd-lib-15.1 [FreeBSD-base] conflicts with FreeBSD-runtime-15.0p11 [installed] on /usr/lib/libprivatezstd.so.5
  - FreeBSD-pam-dev-lib32-15.1 [FreeBSD-base] conflicts with FreeBSD-runtime-dev-lib32-15.0p11 [installed] on /usr/lib32/libpam.a
  - FreeBSD-zstd-dbg-lib32-15.1 [FreeBSD-base] conflicts with FreeBSD-runtime-dbg-lib32-15.0p11 [installed] on /usr/lib/debug/usr/lib32/libprivatezstd.so.5.debug
  - FreeBSD-clang-dbg-15.1p1 [FreeBSD-base] conflicts with FreeBSD-lldb-dbg-15.0p11 [installed] on /usr/lib/debug/usr/lib/libprivatelldb.so.19.debug
  - FreeBSD-clang-dev-15.1p1 [FreeBSD-base] conflicts with FreeBSD-lldb-dev-15.0 [installed] on /usr/lib/libprivatelldb.so
  - FreeBSD-zstd-dev-15.1 [FreeBSD-base] conflicts with FreeBSD-runtime-dev-15.0p11 [installed] on /usr/include/private/zstd/zstd.h
  - FreeBSD-pam-15.1 [FreeBSD-base] conflicts with FreeBSD-runtime-15.0p11 [installed] on /etc/pam.d/README
  - FreeBSD-pam-15.1 [FreeBSD-base] conflicts with FreeBSD-utilities-15.0p11 [installed] on /usr/lib/pam_chroot.so
  - FreeBSD-zstd-dbg-15.1 [FreeBSD-base] conflicts with FreeBSD-utilities-dbg-15.0p11 [installed] on /usr/lib/debug/usr/bin/zstd.debug
  - FreeBSD-zstd-dbg-15.1 [FreeBSD-base] conflicts with FreeBSD-runtime-dbg-15.0p11 [installed] on /usr/lib/debug/usr/lib/libprivatezstd.so.5.debug
  - FreeBSD-pam-dev-15.1 [FreeBSD-base] conflicts with FreeBSD-runtime-dev-15.0p11 [installed] on /usr/include/security/openpam.h
Checking integrity... done (0 conflicting)
Conflicts with the existing packages have been found.
One more solver iteration is needed to resolve them.
The following 500 package(s) will be affected (of 0 checked):

New packages to be INSTALLED:
	FreeBSD-pam: 15.1 [FreeBSD-base]
	FreeBSD-pam-dbg: 15.1 [FreeBSD-base]
	FreeBSD-pam-dbg-lib32: 15.1 [FreeBSD-base]
	FreeBSD-pam-dev: 15.1 [FreeBSD-base]
	FreeBSD-pam-dev-lib32: 15.1 [FreeBSD-base]
	FreeBSD-pam-lib: 15.1 [FreeBSD-base]
	FreeBSD-pam-lib32: 15.1 [FreeBSD-base]
	FreeBSD-zstd: 15.1 [FreeBSD-base]
	FreeBSD-zstd-dbg: 15.1 [FreeBSD-base]
	FreeBSD-zstd-dbg-lib32: 15.1 [FreeBSD-base]
	FreeBSD-zstd-dev: 15.1 [FreeBSD-base]
	FreeBSD-zstd-dev-lib32: 15.1 [FreeBSD-base]
	FreeBSD-zstd-lib: 15.1 [FreeBSD-base]
	FreeBSD-zstd-lib32: 15.1 [FreeBSD-base]

Installed packages to be UPGRADED:
	FreeBSD-acct: 15.0 -> 15.1 [FreeBSD-base]
...
	FreeBSD-zoneinfo: 15.0p7 -> 15.1 [FreeBSD-base]

Installed packages to be REMOVED:
	FreeBSD-lldb-dev: 15.0

Number of packages to be removed: 1
Number of packages to be installed: 14
Number of packages to be upgraded: 485

The process will require 12 MiB more space.

Proceed with this action? [y/N]: y
Checking integrity... done (0 conflicting)
[  1/507] Upgrading FreeBSD-bootloader from 15.0 to 15.1...
[  1/507] Extracting FreeBSD-bootloader-15.1: 100%
...
[506/507] Installing FreeBSD-set-optional-dbg-15.1...
[507/507] Installing FreeBSD-set-base-dbg-15.1...
==> Running trigger: mandoc.ucl
Generating apropos(1) database for /usr/share/man...
Generating apropos(1) database for /usr/share/openssl/man...
=====
Message from FreeBSD-local-unbound-15.1:

--
After upgrading local-unbound, the configuration file should be regenerated
by running "service local_unbound setup" before restarting the service.

Upgrade Third-party Kernel Modules

[12:43 nagios04 root ~] # pkg upgrade -r FreeBSD-ports-kmods
Updating FreeBSD-ports-kmods repository catalogue...
pkg: Repository FreeBSD-ports-kmods has a wrong packagesite, need to re-create database
Fetching meta.conf: 100%     179 B   0.2 kB/s    00:01    
Fetching data: 100%    35 KiB  35.6 kB/s    00:01    
Processing entries: 100%
FreeBSD-ports-kmods repository update completed. 239 packages processed.
FreeBSD-ports-kmods is up to date.
Checking for upgrades (0 candidates): 100%
Processing candidates (0 candidates): 100%
Checking integrity... done (0 conflicting)
Your packages are up to date.
[12:44 nagios04 root ~] # 

Check for Failed Configuration Updates

[12:44 nagios04 root ~] # find /etc /usr/local/etc -name '*.pkgnew' -ls
[12:46 nagios04 root ~] # 
[12:46 nagios04 root ~] # sysctl machdep.bootmethod
machdep.bootmethod: UEFI

Identifying the ESP

[12:46 nagios04 root ~] # efibootmgr -v
Boot to FW : false
BootCurrent: 0001
Timeout    : 0 seconds
BootOrder  : 0001, 0000
+Boot0001* EFI SCSI Device AcpiEx(@@@0000,@@@0000,0x0,VMBus,,)/VenHw(9b17e5a2-0891-42dd-b653-80b5c22809ba,d96361baa104294db60572e2ffb1dc7f1a78b3f8821e1848a1c363d806ec15bb)/Scsi(0x0,0x0)
 Boot0000* EFI Network AcpiEx(@@@0000,@@@0000,0x0,VMBus,,)/VenHw(9b17e5a2-0891-42dd-b653-80b5c22809ba,635161f83edfc546913ff2d2f965ed0ed63a0d000bbd0d003ad6bd0b000d3ad6)/MAC(000000000000,0x0)/IPv4(0.0.0.0,0x0,DHCP,0.0.0.0,0.0.0.0,0.0.0.0)


Unreferenced Variables:
 Boot0002* EFI SCSI Device AcpiEx(@@@0000,@@@0000,0x0,VMBus,,)/VenHw(9b17e5a2-0891-42dd-b653-80b5c22809ba,d96361baa104294db60572e2ffb1dc7f1a78b3f8821e1848a1c363d806ec15bb)/Scsi(0x0,0x1)
[12:49 nagios04 root ~] # 

Eh? That doesn’t resemble the documented output at all. The drive device is not mentioned.

I know I have this:

[12:49 nagios04 root ~] # gpart show
=>       40  134217648  da0  GPT  (64G)
         40       2008       - free -  (1004K)
       2048        348    1  freebsd-boot  (174K)
       2396      66584    2  efi  (33M)
      68980   62914560    3  freebsd-zfs  (30G)
   62983540   71234148       - free -  (34G)

=>      40  33554352  da1  GPT  (16G)
        40  29360048    1  freebsd-ufs  (14G)
  29360088   4194304    2  freebsd-swap  (2.0G)

[12:50 nagios04 root ~] # zpool list

As such, I’d expect to see da0p2 in the output above.

I sought advice via IRC. The consensus was: proceed using da0p2.

Mounting the ESP

[13:28 nagios04 root ~] # mount_msdosfs /dev/da0p2 /boot/efi
mount_msdosfs: /dev/da0p2: Operation not permitted

[13:28 nagios04 root ~] # mount | grep /boot/efi 
/dev/gpt/efiboot0 on /boot/efi (msdosfs, local)

Eh? What’s that? Oh, it’s da0p2 by another name:

[13:28 nagios04 root ~] # gpart show -l
=>       40  134217648  da0  GPT  (64G)
         40       2008       - free -  (1004K)
       2048        348    1  bootfs  (174K)
       2396      66584    2  efiboot0  (33M)
      68980   62914560    3  rootfs  (30G)
   62983540   71234148       - free -  (34G)

=>      40  33554352  da1  GPT  (16G)
        40  29360048    1  (null)  (14G)
  29360088   4194304    2  (null)  (2.0G)

[13:29 nagios04 root ~] # 

See efiboot0 mentioned there… same thing as da0p2

Install the Boot Loader

The instructions say (for me, on amd64) to do this:

cp /boot/loader.efi /boot/efi/efi/freebsd/loader.efi
cp /boot/loader.efi /boot/efi/efi/boot/bootx64.efi

However, the /boot/efi/efi/freebsd directory does not exist on my host.

Consultations indicated that this system does not have an efi boot entry and is relying on bootx64.efi

… it is now Friday morning, and I have resumed my quest. In the meantime, the host has been performing as expected.

Back to my directories.

Is this a situation to be fixed?

Answer was: no particular need to fix it if the system boots fine.

Onward I go!

[16:07 nagios04 root ~] # cp /boot/loader.efi /boot/efi/efi/boot/bootx64.efi
[16:10 nagios04 root ~] # 

NOTE: that is an MSDOS file system:

[16:13 nagios04 root ~] # mount | grep /boot/efi
/dev/gpt/efiboot0 on /boot/efi (msdosfs, local)

Finish

Before you reboot, I didn’t do the following on this host, but I did on the next host. I set the BE to boot one time (-t). In case there was a problem, the next boot would be back on FreeBSD 15.0. This is how I did that:

[16:42 r730-03 root ~] # bectl list 
BE                                Active Mountpoint Space Created
15.0-RELEASE-p9_2026-06-10_111727 -      -          468M  2026-06-10 11:17
default                           NR     /          15.1G 2023-08-10 21:51
pre-15.1                          -      -          948K  2026-07-17 16:37
pre-pkgbasify_2026-06-30_152431   -      -          397M  2026-06-30 15:24

[16:42 r730-03 root ~] # bectl activate pre-15.1
Successfully activated boot environment pre-15.1
[16:42 r730-03 root ~] # bectl activate -t default
Successfully activated boot environment default for next boot
[16:42 r730-03 root ~] # sudo shutdown -r now
Shutdown NOW!
shutdown: [pid 37935]

....

[12:46 pro05 dvl ~] % r730-03
Last login: Fri Jul 17 16:37:25 2026 from pro05.startpoint.vpn.unixathome.org
[16:46 r730-03 dvl ~] % uptime
 4:46PM  up 42 secs, 1 user, load averages: 0.35, 0.09, 0.03
[16:46 r730-03 dvl ~] % freebsd-version -ukr
15.1-RELEASE-p1
15.1-RELEASE-p1
15.1-RELEASE-p1


[16:46 r730-03 dvl ~] % uname -a
FreeBSD r730-03.int.unixathome.org 15.1-RELEASE-p1 FreeBSD 15.1-RELEASE-p1 releng/15.1-n283582-0f691888dc56 GENERIC amd64
[16:46 r730-03 dvl ~] % bectl list
BE                                Active Mountpoint Space Created
15.0-RELEASE-p9_2026-06-10_111727 -      -          468M  2026-06-10 11:17
default                           N      /          1.49G 2023-08-10 21:51
pre-15.1                          R      -          13.6G 2026-07-17 16:37
pre-pkgbasify_2026-06-30_152431   -      -          397M  2026-06-30 15:24
[16:46 r730-03 dvl ~] % sudo bectl activate default
Successfully activated boot environment default
[16:47 r730-03 dvl ~] % bectl list                 
BE                                Active Mountpoint Space Created
15.0-RELEASE-p9_2026-06-10_111727 -      -          468M  2026-06-10 11:17
default                           NR     /          15.1G 2023-08-10 21:51
pre-15.1                          -      -          952K  2026-07-17 16:37
pre-pkgbasify_2026-06-30_152431   -      -          397M  2026-06-30 15:24
[16:47 r730-03 dvl ~] % 

I’m happy with the boot, so I made default the next boot for the BE.

This is what I did with this host:

[16:14 nagios04 root ~] # shutdown -r now
Shutdown NOW!
shutdown: [pid 7690]
[16:14 nagios04 root ~] #                                                                                
*** FINAL System shutdown message from dvl@nagios04.unixathome.org ***       

System going down IMMEDIATELY                                                  

                                                                               
                                                                               
*** FINAL System shutdown message from dvl@nagios04.unixathome.org ***       

System going down IMMEDIATELY                                                  

                                                                               

System shutdown time has arrived
Connection to nagios04.unixathome.org closed by remote host.
Connection to nagios04.unixathome.org closed.
[12:15 pro05 dvl ~] % 

Success

Welcome to my first FreeBSD 15.1 host:

[12:15 pro05 dvl ~] % nagios04 
Last login: Fri Jul 17 15:55:22 2026 from tallboy.unixathome.org
[16:15 nagios04 dvl ~] % uptime
 4:15PM  up 37 secs, 1 user, load averages: 0.30, 0.08, 0.03
[16:15 nagios04 dvl ~] % freebsd-version -urk
15.1-RELEASE-p1
15.1-RELEASE-p1
15.1-RELEASE-p1
[16:15 nagios04 dvl ~] % 

Things which go wrong

Sometimes, there is an Authentication error. Perhaps multiple times during one update. For this host, it was 4 times.

In which case, just try again:

[17:21 zuul root ~] # pkg -oABI=FreeBSD:15:$(uname -p) -oOSVERSION=1501000 upgrade -r FreeBSD-base
Updating FreeBSD-base repository catalogue...
pkg: Repository FreeBSD-base has a wrong packagesite, need to re-create database
Fetching meta.conf: 100%     179 B   0.2 kB/s    00:01    
Fetching data: 100%    82 KiB  84.0 kB/s    00:01    

...

[123/340] Fetching FreeBSD-clang-15.1p1: 100%    38 MiB   6.6 MB/s    00:06    
[124/340] Fetching FreeBSD-cron-15.1: 100%    39 KiB  40.1 kB/s    00:01    
pkg: https://pkgmir.geo.freebsd.org/FreeBSD:15:amd64/base_release_1/Hashed/FreeBSD-utilities-dbg-15.1p1~2f499f2b0b.pkg: Authentication error
[17:22 zuul root ~] # pkg -oABI=FreeBSD:15:$(uname -p) -oOSVERSION=1501000 upgrade -r FreeBSD-base
Updating FreeBSD-base repository catalogue...
FreeBSD-base repository is up to date.
FreeBSD-base is up to date.
Checking for upgrades (333 candidates): 100%
Processing candidates (333 candidates): 100%
The following 340 package(s) will be affected (of 0 checked):

New packages to be INSTALLED:
	FreeBSD-pam: 15.1 [FreeBSD-base]

...
	FreeBSD-zoneinfo: 15.0p7 -> 15.1 [FreeBSD-base]

Number of packages to be installed: 8
Number of packages to be upgraded: 332

The operation will free 1 MiB.
359 MiB to be downloaded.

Proceed with this action? [y/N]: y
[  1/216] Fetching FreeBSD-utilities-dbg-15.1p1: 100%    13 MiB   4.7 MB/s    00:03    
[  2/216] Fetching FreeBSD-xz-dbg-15.1: 100%   298 KiB 305.5 kB/s    00:01    
...
[ 48/216] Fetching FreeBSD-hast-15.1: 100%   102 KiB 104.8 kB/s    00:01    
pkg: https://pkgmir.geo.freebsd.org/FreeBSD:15:amd64/base_release_1/Hashed/FreeBSD-bluetooth-15.1~e5694024a5.pkg: Authentication error

Repeat.. etc. Eventually, you’ll get them all downloaded.

For more bootloader fun, see https://forums.freebsd.org/threads/bootloader-issue-on-freebsd-15-0-15-1-upgrade.103300/

Top

Understanding the Foundation Board’s Role in the FreeBSD Ecosystem

Post by FreeBSD Foundation via FreeBSD Foundation »

During BSDCan, the FreeBSD Foundation holds its annual meeting and Board elections. Following this year’s meeting, we are pleased to welcome Dave Cottlehuber to the FreeBSD Foundation Board of Directors. Take a minute to read this interview with Dave to learn more about his involvement with FreeBSD and why he joined the Foundation Board of Directors. 

This transition also provides an opportunity to explain how the Foundation Board operates, how board members are elected, and how the Board’s role differs from Foundation staff and FreeBSD Project leadership. These distinctions are not always obvious from the outside, and we want to provide a clearer explanation of how the Foundation is governed.

The Foundation Board exists to help the organization make thoughtful, responsible decisions for the long term. It brings together people with different experiences and perspectives to help the Foundation stay focused, accountable, and connected to the broader FreeBSD ecosystem.

Project Leadership, Foundation Staff, and the Foundation Board

The FreeBSD Foundation is part of the broader FreeBSD ecosystem, working alongside the FreeBSD Project, contributors, users, companies, and community members to help FreeBSD thrive.

The FreeBSD Project leads the operating system’s technical direction, including the source tree, releases, technical priorities, and Project governance.

The Foundation is a separate nonprofit organization with its own programs, staff, and Board. Foundation staff carry out the organization’s day-to-day work, including software development work, advocacy, fundraising, communications, events, operations, grants, partnerships, and program management.

The Foundation Board provides governance, oversight, and strategic direction for the Foundation. The Board does not govern the FreeBSD Project, make technical decisions for FreeBSD, direct committers, or manage staff’s daily work. Instead, it approves the annual budget, helps guide the Foundation’s priorities, and ensures the organization is using its resources responsibly and in alignment with its mission.

Each group has a distinct role, but all are part of the same FreeBSD ecosystem and are working toward FreeBSD’s long-term success.

What the Foundation Board Does

The Foundation Board exists to help the organization make thoughtful, responsible decisions for the long term. It brings together people with different experiences and perspectives to help the Foundation stay focused, accountable, and connected to the broader FreeBSD ecosystem.

Board members review and approve the Foundation’s annual budget, provide input on organizational strategy, and help evaluate major priorities. They also support the Foundation’s work in areas such as fundraising, governance, sustainability, community relationships, and long-term planning.

A strong Board brings a mix of experience and perspective. This may include knowledge of FreeBSD and open source communities, nonprofit governance, finance, fundraising, legal and policy issues, business development, technology strategy, security, and organizational growth.

As the Foundation and the FreeBSD ecosystem continue to evolve, the Board considers what skills and perspectives would strengthen its ability to guide the organization. This helps ensure the Board remains well-positioned to provide thoughtful oversight and help the Foundation plan responsibly for the future.

How Board Members Are Identified and Elected

Board members are elected by the current Board at the Foundation’s annual meeting. 

The process leading up to the election is intentional and ongoing. Current board members discuss the needs of the organization, consider the experience already represented on the Board, and identify areas where additional expertise or perspective may be useful.

The Board also meets with individuals who may be interested in serving. These conversations may include people from within the FreeBSD community as well as individuals outside the community who bring relevant experience that could benefit the Foundation.

The goal is not simply to fill a seat. It is to build and maintain a Board that can provide thoughtful governance, contribute useful perspectives, and help guide the Foundation in ways that benefit the long-term health of FreeBSD.

Potential board members are generally people who understand the importance of FreeBSD, care about the Foundation’s work, and are willing to take an active role in helping the organization succeed.

What Board Members Are Expected to Do

Serving on the FreeBSD Foundation Board is a volunteer role, but it carries important responsibilities.

Board members are expected to attend meetings, review materials in advance, participate in discussions, and remain engaged between meetings. They are also expected to bring their experience, judgment, and networks to the Foundation’s work when those contributions are helpful.

This may include providing feedback on strategic questions, helping think through organizational challenges, supporting fundraising efforts, making introductions, or advising staff and fellow board members on areas where they have relevant expertise.

Effective board service does not mean directing staff’s daily work. It means helping ensure the Foundation has the resources, structure, guidance, and accountability needed to carry out its work well.

Why This Matters

Good governance is not always the most visible part of the Foundation’s work, but it is essential.

The Foundation is trusted with donor funds, community expectations, and an important role within the FreeBSD ecosystem. A strong Board helps ensure the Foundation is planning responsibly, making thoughtful decisions, and remaining focused on work that benefits FreeBSD.

As the needs of the FreeBSD ecosystem continue to grow and change, the Foundation Board will continue to look for the right mix of experience, perspective, and commitment to help guide the organization forward.

We are grateful to everyone who serves or has expressed interest in serving the Foundation in this capacity. While much of this work happens behind the scenes, it plays an important role in keeping the Foundation strong, sustainable, and prepared to contribute to FreeBSD’s long-term success.

The post Understanding the Foundation Board’s Role in the FreeBSD Ecosystem first appeared on FreeBSD Foundation.

Top

FreeBSD Foundation Welcomes New Board Member: Dave Cottlehuber

Post by FreeBSD Foundation via FreeBSD Foundation »

FreeBSD Community member and former Core Representative, Dave Cottlehuber, was elected to the FreeBSD Foundation Board during the Annual Meeting on June 15, 2026. We sat down with Dave to learn more about his history with FreeBSD and what he’s most looking forward to accomplishing during his tenure. 

Tell us a little about yourself, and how you got involved with FreeBSD?

I’m a relative newcomer to FreeBSD. I didn’t use it at university, and I only started my UNIX experience in early 2001, with an OpenBSD 2.8 CD and poster.

I spent most of my teens and early twenties climbing mountains and skiing down them. Computers were of little interest to me at that time, but midway through a Science degree, I found my niche, and eventually started working part time at the University computer centre. 

I remember a colleague eagerly rushing through with a FreeBSD CD, probably 3.something, in 1998 or 1999, but that was as close as I came.

The next decade was a move from New Zealand through France, Slovak Republic, and back to New Zealand, and in parallel, shifting from hands-on tech, into middle management, at various large corporations and telcos.

In 2010 I made an intentional decision to move away from that, and moved to working with open source software projects, and communities, in part to allow us to relocate back to Europe.

Around 2013 I actively switched to FreeBSD, and made it to my first BSDCan conference in 2016. The first people I met there were Peter Hessler from OpenBSD, Mark Linimon and Li-Wen Hsu from FreeBSD. With such friendly introductions, I was hooked!

Under Joseph Mingrone’s mentorship, I gained a ports commit bit in 2017, and became progressively more involved. In 2024, I began helping out with release engineering, under Colin Percival’s watchful eye, and in mid 2024 I also joined the FreeBSD Core team, for my first term.

This brought me into contact with a much broader range of people, within the community, the Foundation, and the wider project, and the complexities of both understanding and running such a distributed group of people.

Why are you passionate about serving on the FreeBSD Foundation Board?

The FreeBSD community was an unexpected, but very welcome, engagement later in my life. 

Much of our daily commercial work is necessarily focused on delivering to shareholders and customers, and it’s both satisfying and important to do things for the long term, to contribute to the common good. I get a great deal of personal satisfaction out of helping and seeing people, and the project itself, thrive.

What excites you about our work?

The Foundation operates on a longer timescale than most of us get to work on day-to-day — funding development that wouldn’t otherwise happen, supporting infrastructure, advocacy, and the conferences that hold the community together. Bringing people and organisations together for that kind of long-term work doesn’t happen overnight, and being part of it is a unique opportunity.

What are you hoping to bring to the organization and the community through your new leadership role?

I don’t see this as a new leadership role so much as a continuation — a branch, if you will, of my existing involvement. Coming to the board directly from Core, I hope to help strengthen the connections between the Foundation, the developers, our users, and the wider community, and to keep fostering a shared sense of identity and purpose across them all.

How do you see your background and experience complementing the current board? 

Helping people understand each other’s strengths and perspectives, and finding ways to be successful together as FreeBSD, is challenging work — and genuinely rewarding.

I’ve worked on a number of transition and transformation programmes over the years, both technical and people-focused, and more recently in open source community building. I’m looking to bring both a community context and an active contributor’s viewpoint to the board, and to continue working across ‘the whole project’ in the widest possible sense.

The post FreeBSD Foundation Welcomes New Board Member: Dave Cottlehuber first appeared on FreeBSD Foundation.

Top

Represent FreeBSD in Your Community

Post by FreeBSD Foundation via FreeBSD Foundation »

Teaching others about FreeBSD and helping it grow doesn’t require a developer background — it just takes someone willing to show up and talk about why this project matters. Whether that’s presenting at a local meetup or bringing FreeBSD into a classroom, community advocacy is one of the most effective ways we grow the project.

Is There a Local Event Where You Could Represent FreeBSD?

Is there a meetup, conference, or user group in your area where FreeBSD could use a voice? We’re always looking for community members willing to represent the project locally, whether that means giving a talk, staffing a table, or simply striking up conversations about FreeBSD. If you’re speaking about FreeBSD at an upcoming event, let us know; we can help spread the word, and our Travel Grant program may be able to help cover the cost of getting there.

Thinking About Hosting a Table or Booth?

If you’d like to run a FreeBSD community table at an event, you don’t have to figure it out from scratch. We’ve put together a set of Community Table Guidelines covering everything from talking points and etiquette to what to bring and how to handle tricky questions, so you can focus on the conversations instead of the logistics. Reach out to marketing@freebsdfoundation.org for a copy, and don’t forget to grab logos, stickers, and other materials before you go.

Bring FreeBSD to Your Class or Club

We’re also launching a new way to connect with students directly. If you’re a student who’d like someone from the FreeBSD community to speak virtually to your class or club, you can now request a virtual speaker through our new speaker request form. Whether your group wants an introduction to FreeBSD, a walkthrough of installing it for the first time, or a conversation about careers in open source, we’ll match you with someone from the community who can join your class or meeting remotely.

Advocacy doesn’t have to be complicated. A five-minute conversation with a professor, a slide deck at a local user group, or a sticker handed out at a hackathon all move the project forward. Ready to get involved? 

Request a virtual speaker, tell us about your event, or reach out to marketing@freebsdfoundation.org with questions.

The post Represent FreeBSD in Your Community first appeared on FreeBSD Foundation.

Top

Microsoft Patches a Record 570 Security Flaws

Post by Brian Krebs via Krebs on Security »

Microsoft Corp. today released software updates to plug at least 570 security holes in its Windows operating systems and other software, almost triple the number of vulnerabilities the software giant fixed in its record-smashing Patch Tuesday release last month. Microsoft attributed the burgeoning patch counts to vulnerability discoveries aided by artificial intelligence.

A picture of a windows laptop in its updating stage, saying do not turn off the computer.

Nearly 60 of the bugs quashed in July’s Patch Tuesday earned a “critical” severity rating, meaning miscreants or malware could use them to seize remote control over a Windows device with little or no help from the user. Microsoft also addressed three zero-day flaws, including two that are already being exploited in the wild.

Two of the zero-day weaknesses allow an attacker to elevate their user rights on a Windows system, as do approximately 250 other elevation of privilege flaws fixed this month; they include CVE-2026-56155 — an Active Directory Federation Services bug — and CVE-2026-56164, a Microsoft Sharepoint vulnerability.

CVE-2026-50661 is a security feature bypass in Windows BitLocker that could allow attackers to gain access to encrypted data if they have physical access to the device. Microsoft said this bug has been detailed publicly, but that it is not aware of any active exploitation.

In a blog post on July 9, Microsoft Executive Vice President Pavan Davuluri wrote that Windows users will notice “a higher volume of security updates included in each security release” as a result of AI aiding in the discovery of vulnerabilities.

“The pace of vulnerability discovery is changing with advances in AI making it possible to find more issues, faster, across more code, with new mechanisms that can accelerate both discovery and analysis,” Davuluri wrote.

Jack Bicer, director of vulnerability research at Action1, called attention to CVE-2026-48561, a remote code execution flaw in Microsoft Copilot (with a 9.6 CVSS threat score) that allows an unauthorized attacker to execute code over the network. Microsoft says an attacker could exploit this bug by hosting a malicious website that causes Microsoft Edge for Android to automatically send crafted prompts to Copilot when a user visits the site.

As AI advances the state of vulnerability discovery and remediation, it is also making it easier for attackers to quickly devise working exploits for known software flaws. Microsoft has long labeled security bugs using its “exploitability index,” which is Redmond’s best guess as to how likely it is that attackers will be able to figure out a reliable way to exploit a given vulnerability.

But Satnam Narang, senior staff research engineer at Tenable, argues that Microsoft’s exploitability index needs to do a better job of shifting with the machine speed of discovery. For example, Microsoft originally gave this month’s SharePoint zero-day an exploitability rating of “less likely,” although the flaw was added to CISA’s Known Exploited Vulnerabilities list on July 1.

“Anthropic’s Red Team’s own findings for known vulnerabilities (n-days) revealed how fragile this system has become, with its Mythos Preview model being able to produce proof-of-concept exploits for 13 of 14 vulnerabilities that were rated ‘Exploitation Less Likely’ or ‘Exploitation Unlikely,'” Narang said. “What this means is that our way of looking at Patch Tuesday has changed, because the exploitability index is centered around humans, not AI tools, and as these tools continue to improve, defense needs to improve alongside it.”

Chris Goettl at Ivanti observed that the record patch numbers from Microsoft come as a number of other major software makers are increasing their patch cadence, including Adobe which announced today it is moving to twice-monthly security bulletins published on the 2nd and 4th Tuesday of each month (Adobe also cited AI for accelerating their patch cycles). Cisco, Mozilla and Oracle also are shipping updates more frequently, while Google’s patch batches in June 2026 totaled more than 900 security fixes, Goettl noted.

Backing up your Windows system and/or data is always a good idea before applying operating system updates. Given the volume of patches addressed this month it may be wise for end users to wait a few days before applying these fixes. It’s not uncommon for security patches to introduce system stability issues, and those chances probably increase quite a bit with the gigantic patch count released today.

Further reading:

Action1’s Patch Tuesday blog

Automox’s rundown

Top

Lessons Learned from CISA’s Recent GitHub Leak

Post by Brian Krebs via Krebs on Security »

The Cybersecurity and Infrastructure Security Agency (CISA) has issued a postmortem on a recent data leak in which a contractor published dozens of internal CISA credentials — including AWS Govcloud keys — in a public GitHub repository for almost six months before being notified by KrebsOnSecurity. Experts say the gaps identified in the agency’s initial response provide important lessons that all security teams should absorb.

On May 15, 2026, the security firm GitGuardian asked for help in notifying CISA about the existence of a public GitHub repository called “Private CISA” that included 844 MB of sensitive CISA-related data. One of the exposed files, titled “importantAWStokens,” included the administrative credentials to three Amazon AWS GovCloud servers. Another file — “AWS-Workspace-Firefox-Passwords.csv” — listed plaintext usernames and passwords for dozens of internal CISA systems.

CISA quickly acknowledged our initial alert, but took more than 48 hours to invalidate the AWS keys and many other important secrets leaked in the GitHub repo. In its report on the data leak, CISA said the complexities of the agency’s systems and interconnections with federal and industry partners caused its key rotation to take longer than anticipated.

“Drawing on this experience, CISA encourages others to maintain mature and well-tested key management capabilities,” the report notes.

CISA also admitted it can do better when it comes to responding to security incident notifications from external parties. The postmortem stresses that clear and distinct reporting channels are essential to ensure that incidents affecting the organization itself are handled differently from those involving its products or customers.

“In CISA’s case, these channels were not well defined, leading the security researcher to try multiple avenues – including emailing the contractor, submitting through CISA’s vulnerability disclosure platform (which is intended for vulnerabilities impacting the broader cybersecurity community), and ultimately involving a reporter,” reads the analysis written by Preston Werntz and Brad Libbey, the acting chief information officer and acting chief information security officer at CISA, respectively.

CISA said it is refining its reporting channels to make them easier and faster for researchers. “Additionally, while many researchers rely on the security.txt file, organizations can ensure clarity by publishing reporting instructions in multiple prominent locations,” the CISA authors wrote.

Guillaume Valadon, the GitGuardian researcher who first contacted KrebsOnSecurity about the exposed CISA credentials, said CISA ignored nine automated alerts about the exposed credentials prior to our notification on May 15. Valadon’s company constantly scans public code repositories at GitHub and elsewhere for exposed secrets, automatically alerting the offending accounts of any apparent sensitive data exposures.

“Letting nine notification emails go unanswered is how a one-day incident becomes a six-month exposure,” Valadon wrote in an analysis of CISA’s report. “Make it trivial to report a leak about you, not just about your products. The person reporting a leak to you is not the threat. Publish a security.txt, but do not stop there. Put reporting instructions in several prominent places, and make sure a report about your own infrastructure does not land in a product-bug queue.”

The report’s authors also emphasized the importance of continuously scanning public code repositories like GitHub for exposed secrets, and said CISA has since rotated all secrets and created an action plan to improve management of developer secrets and to better monitor for them going forward.

The report notes that while CISA had developed a playbook for responding to cybersecurity incidents, that playbook somehow didn’t include what to do in situations involving GitHub or other cloud services. Valadon said the report validates the need to scan continuously — not just quarterly — for exposed secrets.

“The Private-CISA repository sat public for six months,” Valadon wrote. “Continuous monitoring of public GitHub surfaced it. Comprehensive internal scanning could have caught the plaintext passwords and committed backups long before they left the building.”

CISA gave itself passing grades on several areas of security preparedness that it said helped the agency gauge the scope and impact of the exposed secrets, including enhanced logging capabilities, and the adoption of zero-trust principles in both its production and development systems. CISA said those detailed logs allowed it to show that no customer or mission data was exposed, and that the leaked credentials were not used outside of CISA’s environments. The agency said the contractor who exposed the secrets had their system access revoked.

Valadon reckons the biggest takeaway is the CISA postmortem itself, and praised the agency for being transparent about what worked and what didn’t.

“To my knowledge, it is also the first time a national cybersecurity agency has publicly advocated for secrets scanning and for simplifying relations with security researchers,” Valadon wrote. “That is exactly the incident communication we should expect from every organization.”

Top

Valuable News – 2026/07/13

Post by Vermaden via 𝚟𝚎𝚛𝚖𝚊𝚍𝚎𝚗 »

The Valuable News weekly series is dedicated to provide summary about news, articles and other interesting stuff mostly but not always related to the UNIX/BSD/Linux systems. Whenever I stumble upon something worth mentioning on the Internet I just put it here.

Today the amount information that we get using various information streams is at massive overload. Thus one needs to focus only on what is important without the need to grep(1) the Internet everyday. Hence the idea of providing such information ‘bulk’ as I already do that grep(1).

The Usual Suspects section at the end is permanent and have links to other sites with interesting UNIX/BSD/Linux news.

Past releases are available at the dedicated NEWS page.

UNIX

Hunting Memory Leaks in bsnmpd(8) with DTrace.
https://oshogbo.com/blog/92/

OpenSSH 10.4/10.4p1 Released.
https://undeadly.org/cgi?action=article;sid=20260706190144

FreeBSD Git Weekly: 2026-06-29 to 2026-07-05.
https://freebsd-git-weekly.tarsnap.net/2026-06-29.html

FreeBSD Foundation Laptop 2026/05 Update.
https://freebsdfoundation.github.io/proj-laptop/monthly-updates/2026-05

OpenBSD pledge(2) and unveil(2) are Developer Friendly Study Finds.
https://undeadly.org/cgi?action=article;sid=20260708055608

NetBSD 11.0 RC6 Available.
https://blog.netbsd.org/tnf/entry/netbsd_11_0_rc6_available

UNIX V4 (1973) Source Code Commentary.
https://github.com/unix-v4-commentary/unix-v4-source-commentary

After Years of Linux I Tried GhostBSD and Found it Incredibly Stable and Nearly Unbreakable.
https://zdnet.com/article/i-tried-ghostbsd-found-it-incredibly-stable-nearly-unbreakable/

Stremio Build Scripts for FreeBSD.
https://github.com/demirkolak0/stremio-build-scripts/

Moving to FreeBSD from Linux.
https://kuon.ch/post/2026-07-02-moving-freebsd/

LibreOffice 26.8 Release Notes.
https://wiki.documentfoundation.org/ReleaseNotes/26.8

Darktable 5.6 Brings Optional AI Tools.
https://linuxiac.com/darktable-5-6-open-source-raw-editor-brings-optional-ai-tools/

Hosting DokuWiki on FreeBSD with Bastille/Nginx/Caddy.
https://blog.hofstede.it/hosting-dokuwiki-on-freebsd-with-bastille-nginx-and-caddy/

FreeBSD git-daemon Leak.
https://tunbury.org/2026/06/24/leaking-jails/

Where Unix Runs Today.
https://vivianvoss.net/blog/where-unix-runs-today

UNIX/Audio/Video

Using Synth to Compile Ports on FreeBSD.
https://youtube.com/watch?v=V24vFrPxzOc

Updating FreeBSD Ports.
https://youtube.com/watch?v=faQruKpURpQ

Linux Mint Says Wayland Worse Experience than X11.
https://youtube.com/watch?v=p8OFa5TemmE

2026-07-08 OpenZFS Production User Call.
https://youtube.com/watch?v=znwpN2eid0o

I WIll Try FreeBSD (Again).
https://youtube.com/watch?v=NAkSaFWEciw

BSD Now 671: Rage Against the Machine.
https://www.bsdnow.tv/671

Hardware

AT&T Security Plus Telephone.
https://electrospaces.net/2025/10/an-interesting-advertisement-for-stu.html

Single vs. Dual Channel Memory Performance (9%).
https://phoronix.com/review/single-dual-memory-linux/

Sony RX10 V Shows How Far Cameras Have Come in Past Decade.
https://dpreview.com/reviews/sony-rx10-v-review/

Open Source Printer without Subscriptions.
https://opensourceforu.com/2026/07/open-source-printer-without-subscriptions/

Life

Bobby Prince Legendary Composer of DOOM/Wolfenstein 3D/Duke Nukem 3D Has Died.
https://generationamiga.com/2026/06/19/bobby-prince-legendary-composer-of-doom-wolfenstein-3d-and-duke-nukem-3d-has-died/

Other

Hate The Algorithm? RSS is What You Have Been Looking For.
https://eff.org/deeplinks/2026/06/hate-algorithm-rss-one-tools-youve-been-looking

Ladybird Browser Adds Downloads/History/Linux Sandboxing.
https://linuxiac.com/ladybird-browser-adds-downloads-history-and-linux-sandboxing/

Stefano Marinelli _ Barista/Sysadmin/Problem Solver.
https://stefanomarinelli.it/

Rediscovering Converting reveal.js Slides to PDF.
https://jpmens.net/2026/07/11/rediscovering-reveal-js-to-pdf/

Ghostbusters Remastered: New C64 Footage Shows Two Player Gameplay.
https://generationamiga.com/2026/07/11/ghostbusters-remastered-new-commodore-64-footage-shows-two-player-gameplay/

Email Passwords Keep Getting Stolen.
https://blog.feld.me/posts/2026/07/email-passwords-stolen/

Usual Suspects

BSD Weekly.
https://bsdweekly.com/

DiscoverBSD.
https://discoverbsd.com/

BSDSec.
https://bsdsec.net/

DragonFly BSD Digest.
https://dragonflydigest.com/

FreeBSD Patch Level Table.
https://bokut.in/freebsd-patch-level-table/

FreeBSD End of Life Date.
https://endoflife.date/freebsd

Phoronix BSD News Archives.
https://phoronix.com/linux/BSD

OpenBSD Journal.
https://undeadly.org/

Call for Testing.
https://callfortesting.org/

Call for Testing – Production Users Call.
https://youtube.com/@callfortesting/videos

BSD Now Weekly Podcast.
https://www.bsdnow.tv/

Nixers Newsletter.
https://newsletter.nixers.net/entries.php

BSD Cafe Journal.
https://journal.bsd.cafe/

DragonFly BSD Digest – Lazy Reading – In Other BSDs.
https://dragonflydigest.com

BSDTV.
https://bsky.app/profile/bsdtv.bsky.social

FreeBSD Git Weekly.
https://freebsd-git-weekly.tarsnap.net/

FreeBSD Meetings.
https://youtube.com/@freebsdmeetings

BSDJedi.
https://youtube.com/@BSDJedi/videos

RoboNuggie.
https://youtube.com/@RoboNuggie/videos

GaryHTech.
https://youtube.com/@GaryHTech/videos

Sheridan Computers.
https://youtube.com/@sheridans/videos

82MHz.
https://82mhz.net/

EOF
Top

Season 4 ist Geschichte

Post by Bernd Dau via Zockertown: Nerten News »

Die vierte Spielrunde ging zu Ende. Zeit für eine kurze Bilanz. Die Teilnahme war stabil, die Kämpfe um die vorderen Plätze bis zuletzt eng. Am Ende setzte sich M0n1y durch und sicherte sich den ersten Platz.

Die Top 3 sowie alle weiteren Platzierungen sind in der Grafik zu sehen. Wer genau wie viele Punkte gesammelt hat und wie die Bewegungen in den letzten Tagen aussahen, lässt sich dort nachvollziehen.

 

 


Der Start von MMO-2044 V2 steht in ein paar Wochen bevor. Die Grundmechanik bleibt, aber es gibt einige Anpassungen unter der Haube. Die wichtigsten Änderungen betreffen die Ressourcenlogistik und die Flottenbewegungen. Wer in der letzten Runde mit Spielmechaniken zu kämpfen hatte, wird einige Verbesserungen bemerken.
Mehr Details gibt es mit dem Starttermin.

Bis dahin bleibt die aktuelle Instanz noch online, für alle, die die letzten Punkte sichern oder einfach nur noch ein paar Runden drehen wollen.

Vielen Dank an alle Teilnehmer und auch danke für die Feedbacks!

 

Top

GitLab on FreeBSD

Post by Vermaden via 𝚟𝚎𝚛𝚖𝚊𝚍𝚎𝚗 »

Today I will share how to install and setup a GitLab server on FreeBSD. Most people just use Microslopft GitHub these days but this approach has one big drawback – its cloud only solution. When it comes to on premise solutions there are GitLab and there is also Gitea. GitLab is closest to what GitHub provides while Gitea is very light and smaller brother trying to achieve the same goals by doing less. Good to have alternatives.

 

The Table of Contents is more or less like that:

  • Bhyve VM
  • Packages
  • PostgreSQL
  • Redis
  • GitLab
  • Nginx
  • Final GitLab Tweaks
  • GitLab Web Interface
  • Summary

This guide was inspired by information from many places – but the biggest one is Matthias Fechner https://gitlab.com/mfechner/freebsd-gitlab-docu page.

Bhyve VM

We will use a dedicated Bhyve VM for that – with sysutils/vm-bhyve-devel help.

FreeBSD project provided ready to use FreeBSD-15.1-RELEASE-amd64-zfs.raw.xz VM image will be a good starting point.

host # vm create -t freebsd gitlab

host # env EDITOR=cat vm config gitlab
loader="bhyveload"
cpu=4
memory=16G
network0_type="virtio-net"
network0_switch="public"
network0_mac="58:9c:fc:01:fb:f8"
disk0_type="nvme"
disk0_name="disk0.img"
uuid="15cd2fff-7942-4ca4-a29f-6ed48f063371"

host # xz -d -c FreeBSD-15.1-RELEASE-amd64-zfs.raw.xz > /vm/gitlab/disk0.img

host # truncate -s 30g /vm/gitlab/disk0.img

host # vm start gitlab   
Starting gitlab
  * found guest in /vm/gitlab
  * booting...

host # vm console gitlab   

login: root

root@gitlab:~ # :> ~/.hushlogin

root@gitlab:~ # gpart show -p
=>      34  62914486    nda0  GPT  (30G)
        34       347  nda0p1  freebsd-boot  (174K)
       381     66584  nda0p2  efi  (33M)
     66965   2097152  nda0p3  freebsd-swap  (1.0G)
   2164117  60750403  nda0p4  freebsd-zfs  (29G)

To expand the disk/partition/pool this is the guide You are looking for – Expand GELI Encrypted Bhyve VM ZFS Disk – just omit the GELI part as its not used here.

Back to the VM configuration.

root@gitlab:~ # cat /etc/rc.conf
# NETWORK
  hostname="gitlab.local"
  ifconfig_vtnet0="inet 10.1.1.44/24 up"
  defaultrouter="10.1.1.1"

# DAEMONS
  zfs_enable="YES"

root@gitlab:~ # sed -i '' s/quarterly/latest/g /etc/pkg/FreeBSD.conf

root@gitlab:~ # echo nameserver 1.1.1.1 > /etc/resolv.conf

root@gitlab:~ # netstat -Win -f inet
Name     Mtu Network      Address      Ipkts Ierrs Idrop    Opkts Oerrs  Coll
vtnet0     - 10.1.1.0/24  10.1.1.44      905     -     -      466     -     -
lo0        - 127.0.0.0/8  127.0.0.1   633774     -     -   633774     -     -

Packages

Needed packages installation.

root@gitlab:~ # \
  pkg install -y \
    gitlab-ce \
    postgresql18-server \
    postgresql18-client \
    postgresql18-contrib \
    nginx \
    redis

PostgreSQL

Now PostgreSQL database setup.

root@gitlab:~ # service postgresql enable
root@gitlab:~ # service postgresql initdb
root@gitlab:~ # service postgresql start
root@gitlab:~ # psql -d template1 -U postgres \
                     -c "CREATE USER git CREATEDB SUPERUSER PASSWORD 'password';"
root@gitlab:~ # psql -d template1 -U postgres \
                     -c "CREATE DATABASE gitlabhq_production OWNER git;"

Now lets try to connect to new database with new user.

root@gitlab:~ # psql -U git -d gitlabhq_production
psql (18.4)
Type "help" for help.

gitlabhq_production=# 

Seems to work.

Now connect to PostgreSQL GitLab database and enable pg_trgm extension.

root@gitlab:~ # psql -U postgres -d gitlabhq_production \
                     -c "CREATE EXTENSION IF NOT EXISTS pg_trgm;"
root@gitlab:~ # psql -U postgres -d gitlabhq_production \
                     -c "CREATE EXTENSION IF NOT EXISTS btree_gist;"
root@gitlab:~ # psql -U postgres -d gitlabhq_production \
                     -c "CREATE EXTENSION IF NOT EXISTS plpgsql;"

Next enable 200 connections to PostgreSQL database.

root@gitlab:~ # psql -U postgres -c "ALTER SYSTEM SET max_connections TO '200';"
root@gitlab:~ # psql -U postgres -c "SELECT pg_reload_conf();"
root@gitlab:~ # service postgresql restart

Verify it is now set to 200.

root@gitlab:~ # psql -U postgres -c "show max_connections;"
 max_connections 
-----------------
 200
(1 row)

Redis

Setup Redis config.

root@gitlab:~ # echo 'unixsocket /var/run/redis/redis.sock' >> /usr/local/etc/redis.conf

Grant permission to socket to all members of the redis group.

root@gitlab:~ # echo 'unixsocketperm 770' >> /usr/local/etc/redis.conf

Add git user to redis group.

root@gitlab:~ # pw groupmod redis -m git

Allow Redis to be started and start it.

root@gitlab:~ # service redis enable
root@gitlab:~ # service redis start

GitLab

Find number of CPU cores.

root@gitlab:~ # sysctl hw.ncpu
hw.ncpu: 4

Change amount of workers to 4 next.

root@gitlab:~ # grep '^workers' /usr/local/www/gitlab/config/puma.rb
workers 4

Configure Git global settings for git user.

root@gitlab:~ # su -l git -c "git config --global core.autocrlf input"

Disable 'git gc --auto' because GitLab already runs 'git gc' when needed.

root@gitlab:~ # su -l git -c "git config --global gc.auto 0"

Enable packfile bitmaps.

root@gitlab:~ # su -l git -c "git config --global repack.writeBitmaps true"

Enable push options.

root@gitlab:~ # su -l git -c "git config --global receive.advertisePushOptions true"

Enable fsyncObjectFiles to reduce risk of repository corruption if server crashes.

root@gitlab:~ # su -l git -c "git config --global core.fsync objects,derived-metadata,reference"

Make sure SSH directory exists for GitLab user.

root@gitlab:~ # su -l git -c "mkdir -p /usr/local/git/.ssh"

Make sure repositories directory exists with correct permissions.

root@gitlab:~ # su -l git -c "mkdir -p /usr/local/git/repositories"
root@gitlab:~ # chown git:git /usr/local/git/repositories
root@gitlab:~ # chmod 2770 /usr/local/git/repositories

Change passwords.

root@gitlab:~ # sed -i '' -e 's/secure password/password/g' \
                  /usr/local/www/gitlab/config/database.yml

Show used passwords.

root@gitlab:~ # grep password: /usr/local/www/gitlab/config/database.yml
    password: "password"
    password: "password"
    password: "password"
    password: "password"
    password: "password"
    password: "password"
    password:
    password:

Proper owner for GitLab shell.

root@gitlab:~ # chown git /usr/local/share/gitlab-shell

Setup GitLab with its password.

root@gitlab:~ # su -l git -c "cd /usr/local/www/gitlab \
                  && env DISABLE_DATABASE_ENVIRONMENT_CHECK=1 \
                  rake gitlab:setup RAILS_ENV=production \
                  GITLAB_ROOT_PASSWORD=password"
(...)
Do you want to continue (yes/no)? yes
(...)

Could not create the default administrator account:

--> Password must not contain commonly used combinations of words and letters

I wanted this guide to be a generic setup – with ‘must to change’ password as password but GitLab knows better – lets cope with that.

Lets try something more sophisticated:

root@gitlab:~ # su -l git -c "cd /usr/local/www/gitlab \
                  && env DISABLE_DATABASE_ENVIRONMENT_CHECK=1 \
                  rake gitlab:setup RAILS_ENV=production \
                  GITLAB_ROOT_PASSWORD=GtFO/wTh!sBu112!t"

(...)
Do you want to continue (yes/no)? yes

Dropped database 'gitlabhq_production'
Created database 'gitlabhq_production'

== Seed from /usr/local/www/gitlab/db/fixtures/production/001_application_settings.rb
Creating the default ApplicationSetting record.
== /usr/local/www/gitlab/db/fixtures/production/001_application_settings.rb took 0.70 seconds

== Seed from /usr/local/www/gitlab/db/fixtures/production/002_default_organization.rb

OK
== /usr/local/www/gitlab/db/fixtures/production/002_default_organization.rb took 0.08 seconds

== Seed from /usr/local/www/gitlab/db/fixtures/production/003_admin.rb
Administrator account created:

login:    root
password: ******

== /usr/local/www/gitlab/db/fixtures/production/003_admin.rb took 2.61 seconds

== Seed from /usr/local/www/gitlab/db/fixtures/production/010_settings.rb
Saved CI JWT signing key
Saved CI Job Token signing key
== /usr/local/www/gitlab/db/fixtures/production/010_settings.rb took 0.67 seconds
== Seeding took 4.06 seconds
root@gitlab:~ # echo $?
0

root@gitlab:~ # su -l git -c "cd /usr/local/www/gitlab && rake gitlab:env:info RAILS_ENV=production"
you have mail

System information
System:         
Current User:   git
Using RVM:      no
Ruby Version:   3.4.9
Gem Version:    4.0.15
Bundler Version:4.0.15
Rake Version:   13.4.2
Redis Version:  8.8.0
Sidekiq Version:7.3.9
Go Version:     unknown

GitLab information
Version:        19.1.1
Revision:       Unknown
Directory:      /usr/local/www/gitlab
DB Adapter:     PostgreSQL
DB Version:     18.4
URL:            http://localhost
HTTP Clone URL: http://localhost/some-group/some-project.git
SSH Clone URL:  git@localhost:some-group/some-project.git
Using LDAP:     no
Using Omniauth: yes
Omniauth Providers: 

GitLab Shell
Version:        14.54.0
Repository storages:
- default:      unix:/usr/local/www/gitlab/tmp/sockets/private/gitaly.socket
GitLab Shell path:              /usr/local/share/gitlab-shell

(...)

The terminal output is much more colorful.

 

Better.

Now lets start it.

root@gitlab:~ # su -l git -c "cd /usr/local/www/gitlab \
                  && rake gitlab:env:info RAILS_ENV=production"

Compile needed assets … it will take some time.

If something breaks … just run it again – should help.

root@gitlab:~ # su -l git -c "cd /usr/local/www/gitlab \
                  && yarn config set python /usr/local/bin/python3.12"
root@gitlab:~ # su -l git -c "cd /usr/local/www/gitlab \
                  && yarn install --production --pure-lockfile --ignore-optional"
root@gitlab:~ # su -l git -c "cd /usr/local/www/gitlab \
                  && node scripts/frontend/infection_scanner/infection_scanner.mjs"
root@gitlab:~ # su -l git -c "cd /usr/local/www/gitlab \
                  && RAILS_ENV=production NODE_ENV=production \
                  USE_DB=false SKIP_STORAGE_VALIDATION=true \
                  bundle exec rake gitlab:assets:compile"

Remove superuser rights from PostgreSQL database user.

root@gitlab:~ # psql -d template1 -U postgres -c "ALTER USER git WITH NOSUPERUSER;"

… and enable and start GitLab service.

root@gitlab:~ # service gitlab enable
root@gitlab:~ # service gitlab start
GitLab Registry Key missing. Generating...
(...)
Starting GitLab web server (puma)
Starting GitLab Sidekiq
Starting GitLab Workhorse
Starting Gitaly
(...)
Started in 53s.
The GitLab web server with pid 70182 is running.
The GitLab Sidekiq job dispatcher with pid 72791 is running.
The GitLab Workhorse with pid 74932 is running.
Gitaly with pid 76120 is running.
GitLab and all its components are up and running.

Nginx

Site Configuration – include provided configuration in your Nginx configuration.

root@gitlab:~ # vi /usr/local/etc/nginx/nginx.conf

Within 'http' configuration block add this:

include       /usr/local/www/gitlab/lib/support/nginx/gitlab;

Looks more or less like this.

root@gitlab:~ # diff -u /usr/local/etc/nginx/nginx.conf.ORG /usr/local/etc/nginx/nginx.conf
--- /usr/local/etc/nginx/nginx.conf.ORG 2026-07-07 09:46:08.835333000 +0000
+++ /usr/local/etc/nginx/nginx.conf     2026-07-07 09:46:32.884929000 +0000
@@ -37,6 +37,8 @@
 
     #gzip  on;
 
+    include       /usr/local/www/gitlab/lib/support/nginx/gitlab;
+
     server {
         listen       80;
         server_name  localhost;

Validate Nginx config file.

root@gitlab:~ # nginx -t
nginx: the configuration file /usr/local/etc/nginx/nginx.conf syntax is ok
nginx: configuration file /usr/local/etc/nginx/nginx.conf test is successful

This above is the message You expect to see.

Next enable and start Nginx server.

root@gitlab:~ # service nginx enable
root@gitlab:~ # service nginx restart

Final GitLab Tweaks

Next create GitLab secret.

root@gitlab:~ # su -l git -c "openssl rand -base64 32 > /usr/local/www/gitlab/.gitlab_pages_secret"

root@gitlab:~ # chmod 640          /usr/local/www/gitlab/.gitlab_pages_secret

root@gitlab:~ # chgrp gitlab-pages /usr/local/www/gitlab/.gitlab_pages_secret

root@gitlab:~ # cat /usr/local/www/gitlab/.gitlab_pages_secret
p+IUsbCnDrpltlyPGq8gBzrHIkKN3++/CD+4C76Wlnw=

Lets check who is listening and on which port.

root@gitlab:~ # sockstat -l4
USER     COMMAND      PID FD PROTO LOCAL ADDRESS         FOREIGN ADDRESS      
www      nginx      15826  8 tcp4  *:80                  *:*                  
root     nginx      15825  8 tcp4  *:80                  *:*                  
git      ruby34      2224 11 tcp4  127.0.0.1:8082        *:*                  
git      ruby34      2223 16 tcp4  127.0.0.1:8092        *:*                  
redis    redis-serv  1143  6 tcp4  127.0.0.1:6379        *:*                  
postgres postgres    1084  7 tcp4  127.0.0.1:5432        *:*                  
root     syslogd      914  7 udp4  *:514   

GitLab Web Interface

We can now access the GitLab web interface finally.

Login with root user and GtFO/wTh!sBu112!t password.

 

You can just click Skip here and cover it later.

 

Same here.

 

There are some Acknowledgements here to be taken care of.

 

Seems its all ready.

 

You now have your GitLab instance ready to be used for whatever you want to use it for.

The final /etc/rc.conf config file after all these actions looks as follows.

root@gitlab:~ # cat /etc/rc.conf
# NETWORK
  hostname="gitlab.local"
  ifconfig_vtnet0="inet 10.1.1.44/24 up"
  defaultrouter="10.1.1.1"

# DAEMONS
  zfs_enable="YES"
  postgresql_enable="YES"
  redis_enable="YES"
  gitlab_enable="YES"
  nginx_enable="YES"

Summary

I assume You will want to add some certificate to Nginx config to make it HTTPS way … and that is a good thing to start.

Not much more to be added here – feel free to share Your thoughts of course.

 

EOF
Top

Felons, Fraudsters Flog Offensive Cybersecurity Startup

Post by Brian Krebs via Krebs on Security »

A cybersecurity startup dangling millions of dollars to acquire zero-day security vulnerabilities in popular software is run by a pair of far-right conspiracy theorists and convicted felons whose most recent ventures included fake intelligence companies and a now-defunct AI-based lobbying platform they operated under assumed names.

The X/Twitter account IRIS C2 (@C2IRIS) has gained more than 4,000 followers since its creation in January 2025, posting frequently about security vulnerabilities, AI and software exploits. IRIS C2 says it is a company in McLean, Va. that sells offensive cybersecurity capabilities.

The IRIS C2 website dangles the possibility of million-dollar payouts for exploits to attract talent.

“Our business model is this,” reads a pinned post on top of the IRIS C2 account on X. “Attract the very best vulnerability researchers and exploit developers in the world to join our company. This mostly revolves around junior engineers with raw talent/extremely high IQ. We don’t care if they have a college degree/industry experience.”

The website linked in that profile — irisc2[.]com — says the company is hiring for a number of open positions, and a recent post on its LinkedIn page enthuses about an overwhelming number of applications from potential employees. The website claims IRIS C2 is in the business of acquiring “zero-day exploits, individual primitives, partial chains, and full capabilities across all major platforms. Payouts range from $10,000 to $7 million depending on target, reliability, and operational value.”

The government contracting portal g2exchange.com reports that irisc2[.]com is operated by a business based in Virginia called Calvexa Group LLC. The “contact” link on the website for Calvexa Group — calvexagroup[.]com — forwards visitors to irisc2[.]com. G2Exchange shows that while Calvexa Group LLC is registered as a federal contractor, it does not appear to be working on any direct government contracts.

A search on the Arlington, Va. address listed in the incorporation records for Calvexa Group LLC finds the property is occupied by Jack Burkman, the 60-year-old founder and managing partner of the lobbying firm Burkman & Associates. When approached with questions about IRIS C2, Burkman referred further inquiries to his longtime associate, 28-year-old Jacob Wohl.

Jack Burkman (left) and Jacob Wohl, at a press conference in August 2020. Image: Wikipedia.

Burkman and Wohl have a storied history of creating fake intelligence companies and using them to spread false claims about and frame public figures, including fabricated sexual assault claims against then FBI director Robert Mueller, and Pete Buttigieg, then mayor of South Bend, Indiana and a Democratic candidate for the presidency. In 2019, Burkman and Wohl held press conferences falsely alleging extramarital affairs by Sen. Elizabeth Warren (D-Mass.) and then-2020 presidential candidate Kamala Harris.

In the wake of the 2020 presidential election, Wohl and Burkman were prosecuted by multiple U.S. states for making thousands of robocalls to residents of battleground states and disseminating false claims about mail-in ballots. They were indicted in Cleveland on 15 felony counts of orchestrating a robocall scheme aimed at suppressing the black vote in Detroit, and were sentenced in late 2025 to probation after their appeals to dismiss the charges were rejected.

In 2022, Wohl and Burkman both pleaded guilty to a single felony charge of telecommunications fraud in Ohio, and sentenced to a fine, probation, and community service. In March 2023, a judge in a New York civil case ruled that Wohl and Burkman had violated federal and state civil rights laws, and the two agreed to pay a $1 million settlement.

In June 2023, the Federal Communications Commission (FCC) imposed a $5.1 million fine against Wohl and Burkman for their robocall campaigns, at the time the largest fine ever sought by the FCC under the Telephone Consumer Protection Act.

Jacob “Jay” Wohl’s GitHub account.

By the age of 17, Wohl had started multiple investment firms, and cultivated the nickname “Wohl of Wall Street” after appearing on Fox News in 2015 to discuss his new hedge funds. In 2017, the Arizona Corporation Commission charged Wohl and his investment funds with 14 counts of securities fraud, and ordered him to pay $35,000 in restitution. In 2019, Wohl pleaded guilty in California to four felony counts of selling unregistered securities and was sentenced to two years of probation.

The market for previously unknown security vulnerabilities has always been populated by a colorful mix of researchers, academics, charlatans, clout-chasers and people actively involved in cybercrime communities. But the market for selling offensive security services to the U.S. government tends to be far more circumspect. Plenty of government contractors recruit vulnerability researchers and pay for the exclusive rights to novel software exploits, yet none of them do so quite as brazenly and openly as IRIS C2.

Recent posts from the Twitter/X account IRISC2 (@c2iris).

Indeed, KrebsOnSecurity was unaware of IRIS C2 until last month, when an attendee at a regional cybersecurity conference shared that Wohl and Calvexa Group were pestering people at the conference about selling their vulnerability research.

In an interview with KrebsOnSecurity, Wohl said Mr. Burkman was not involved in the day-to-day operations of IRIS C2. Wohl shared that IRIS C2 originally began as a penetration testing company, but shifted its focus recently to selling phone-hacking services to the government. Several times throughout the interview, Mr. Wohl mentioned working on federal government contracts, but when pressed for specifics said he was not at liberty to speak publicly about them.

Mr. Wohl said he does not have any formal education or training in computer science or information security, and that most of his knowledge on the matter is self-taught.

“I know more about tech than anyone,” Wohl bragged. “My background has always been extremely technical, and I’ve always been deeply into tech. People know me as someone who is able to create spectacularly exquisite capabilities that would make your head spin.”

Wohl said security researchers bring the company unique vulnerability findings “on a regular basis,” but that in many cases those findings are preliminary and not fully fleshed-out.

“Let’s say someone finds a flaw in a media decoder on a phone,” Wohl said. “A lot of times what we receive is an exploit primitive, where the idea is there but the [execution] needs work. You need that exploit to be stable and reliable, and that’s what we do.”

Wohl claims IRIS C2 has approximately 40 employees, although he said none of them are allowed to list their employment on LinkedIn for operational security reasons. In May, the author of the IRIS C2 account on X said that his girlfriend had no idea what he did for a living. But if IRIS C2 has any other employees, they may be similarly unaware of Mr. Wohl’s history of outright fabrications — or even his real name.

In September 2024, Politico reported that Burkman and Wohl were bragging about big companies supposedly buying services from their now-defunct company LobbyMatic, which claimed to use artificial intelligence to assist in political lobbying efforts. However, Politico found the pair were running the company using pseudonyms, with Wohl reportedly adopting the name “Jay Klein” and Burkman using the moniker “Bill Sanders.” Politico reported that two of the former LobbyMatic employees resigned after learning of their true identities, while other employees only learned after they had left the company.

Update, July 9, 9:44 a.m. ET: Several readers pointed our attention to a March 31 publication from journalist Molly White, which reported that Burkman and Wohl were paid a $300,000 retainer by a Canadian cryptocurrency fraudster wanted by the United States and several other countries for allegedly stealing $65 million from the crypto platforms KyberSwap and Indexed Finance. According to that report, the two were hired to pursue a “presidential pardon to avert a miscarriage of justice” on behalf of the accused hacker, who has not yet been convicted.

Top

Hunting Memory Leaks in bsnmpd with DTrace

Post by Mariusz Zaborski via oshogbo web »

One of my FreeBSD boxes runs `bsnmpd`, the base system SNMP daemon. The machine is on 15.0-p2, and the daemon kept growing until the kernel ran out of patience and OOM-killed it. That is not a good feature for a daemon. I could have just added a cron job to restart it and called it a day. But a leak that kills a long-running daemon is exactly the kind of thing I like to chase, and I already had a tool for it.
Top

FBI Seizes NetNut Proxy Platform, Popa Botnet

Post by Brian Krebs via Krebs on Security »

The Federal Bureau of Investigation (FBI) said today it worked with industry partners to seize hundreds of domains associated with NetNut, a sprawling residential proxy service operated by the publicly-traded Israeli company Alarum Technologies [NASDAQ: ALAR]. The action comes roughly two weeks after KrebsOnSecurity published findings from multiple security firms connecting NetNut to the Popa botnet, a collection of at least two million devices that have been compromised by malicious software with little or no consent from victims.

The NetNut homepage today was replaced by this seizure banner from the FBI.

On June 19, three different security firms issued similar findings: That NetNut is a residential proxy network which populates a botnet called Popa, and distributes software for devices commonly found in homes, such as smart TVs and streaming boxes. NetNut’s software turns those systems into always-on residential proxy nodes that are rented to others, who predominantly use them to relay abusive and intrusive Internet traffic, such as mass content scraping, advertising fraud, and account takeover activity.

Earlier today, NetNut’s homepage was replaced with a seizure notice from the FBI and the Internal Revenue Service Criminal Investigation division. The seizure notice thanked Google, Lumen, Shadowserver and other industry partners for their help in dismantling hundreds of domains tied to the Popa botnet, which experts say has long been synonymous with NetNut’s residential proxy infrastructure.

In a blog post published today, the Google Threat Intelligence Group (GTIG) said NetNut’s proxy network is widely resold and white-labeled by a number of third-party proxy providers, and that its services are heavily sought out by cybercriminals seeking to obfuscate the source of their malicious traffic. The GTIG said that in a single week during June 2026, they observed 316 distinct clusters of threat actors using suspected NetNut exit nodes, including cybercriminal and espionage groups.

“These bad actors can use NetNut to mask their origin IP address when accessing victim environments, accessing their own infrastructure, and conducting password spray attacks,” Google’s GTIG wrote. “Furthermore, when a consumer device becomes an exit node, unauthorized network traffic passes through it. This means bad actors can access other private devices on the same home network, effectively exposing them to Internet threats.”

Google said it disabled Google accounts and services used by NetNut for malware command and control, and that it shared technical intelligence on NetNut’s software development kits (SDKs) and backend infrastructure with platform providers, law enforcement and research firms. The company also disabled apps known to bundle NetNut’s various SDKs.

Omer Weiss, legal counsel for NetNut parent Alarum Technologies, said the company was aware of the FBI seizure and cooperating with investigators.

“Alarum takes this matter seriously and will fully cooperate with law enforcement to ensure any misuse of its infrastructure is thoroughly investigated and those responsible are held to account,” Weiss said in a written statement.

Benjamin Brundage is founder of the proxy tracking service Synthient, one of the companies that published evidence last month linking the Popa botnet to NetNut and Alarum Technologies. Brundage said the domain seizures appear to have disrupted both the Popa botnet and the NetNut proxy network that rides on top of it.

Brundage said NetNut’s apparent demise is likely to be a great disadvantage for the cybercrime community, which was already reeling from legal actions by Google earlier this year that seized infrastructure for NetNut’s biggest competitor — IPIDEA.

“I think this takedown is going to have a big impact, because NetNut gained significant popularity after the IPIDEA takedown,” he said. “Also NetNut has been incredibly common among resellers, and they were on par with IPIDEA in terms of their daily traffic, quality, size, price per gigabyte, all of it.”

NetNut’s infrastructure, in a nutshell. Image: Black Lotus Labs, Lumen.

The NetNut and Popa botnet takedown may have another added benefit, Brundage said: Lessening the impact of large distributed denial-of-service botnets that have been built on the backs of poorly configured residential proxy services. In January, Synthient revealed how cybercriminals had built the world’s largest DDoS botnet (Kimwolf) by tunneling through IPIDEA proxy connections into the local networks of TV box owners, and infecting other Android-based devices behind the victim’s firewall.

While many of the bigger proxy providers took steps to block this activity, resellers of the major proxy networks have been far slower to respond to the threat, Brundage said.

“In terms of all these TV box devices getting compromised from the proxy network, it will have an impact on the DDoS botnets out there,” he said.

For its part, Google reckons today’s actions have caused “significant degradation to NetNut’s proxy network and its business operations, reducing the available pool of devices for the proxy operator by millions.” But the company warns that proxy networks can rebuild themselves by effectively reselling other proxy services, as IPIDEA has done over the past few months.

“Google has high confidence that many popular residential proxy brands are in fact whitelabeling the NetNut botnet,” the GTIG report concludes. “While we expect this disruption to have a larger ripple effect across the residential proxy ecosystem, observations after the disruption of IPIDEA proved that individual networks can appear resilient. What we have observed is that when faced with the degradation of their own botnet, proxy operators begin buying capacity from their competitors, effectively becoming a reseller. We recognize that creating a lasting disruption in this fluid ecosystem means we must scale our efforts to target the infrastructure of several interconnected providers.”

As KrebsOnSecurity has warned repeatedly, most of the no-name TV streaming boxes for sale on the major e-commerce websites either come pre-installed with residential proxy software, or require the installation of proxy SDKs in order to use the device for its stated purpose (streaming pirated movies, sporting events and TV shows). Google’s advice here is sound: When it comes to TV boxes, stick to name brands from reputable manufacturers, and then be sparing and judicious with any apps you choose to install.

The sketchy TV boxes that are being commandeered by the Popa botnet and other threats all come with or require the user to install unofficial Android operating systems that do not operate within the confines of Google’s Official Play Protect store. Google says consumers can confirm whether or not a device is built with the official Android TV OS and Play Protect certification by following these instructions.

Even people without TV streaming boxes can find their smart TVs enrolled in residential proxy networks, just by installing one of thousands of apps available for download on Samsung and LG smart TVs. In a report released last month, the proxy tracking company Spur found 42 percent of apps available for download via the webOS operating system on LG smart TVs include SDKs that turn one’s television into an always-on residential proxy node. More than a quarter of the apps made for Samsung’s Tizen operating system had similar residential proxy components, Spur found.

Image: Spur.us.

Update, 4:24 p.m. ET: Included a statement shared post-publication from an attorney representing NetNut parent Alarum Technologies.

Update, July 8, 2:34 p.m. ET: The website for Alarum Technologies — alarum[.]io — now also features a seizure notice from the FBI. The company’s stock has taken a beating since the FBI action, and is currently trading at $2.62 a share, a roughly 67 percent decline over the past week.

Top

During a power outage, how do the three servers in the basement react?

Post by Dan Langille via Dan Langille's Other Diary »

Over the weekend, some branches fell on a neighbor’s power service line. They still had power, but the branches had to be removed. That removal occurred this morning. I saw the trucks at about 6:45 AM as I walked past. I suspected I might lose power, and I did. This post records the shutdown and power on times/sequences. I might find this useful should I need to reevaluate the power-outage procedures.

My thought: Perhaps just shutdown the big servers, but keep the gateway, wireless access points, and switches running. The goal being: shutdown the heavy stuff, keep the light stuff going, perhaps for an hour or so. The actual time, I don’t know because I’ve never tried. I could judge that based on power consumption by those units… the information is all there in the PDU graphs…

In this post:

  • FreeBSD 15.0
  • nut-2.8.5_1

gw01

/var/log/messages shows:

Jul  6 11:09:53 gw01 upsmon[3974]: UPS heartbeat on line power
Jul  6 11:09:58 gw01 upsmon[3974]: UPS ups04 on battery
Jul  6 11:14:53 gw01 upsmon[3974]: UPS heartbeat on battery
Jul  6 11:17:38 gw01 upsmon[3974]: UPS ups04 battery is low
Jul  6 11:17:38 gw01 upsmon[3974]: Too few UPS(es) are healthy (0<1), initiating forced shutdown
Jul  6 11:17:38 gw01 upsmon[3974]: UPS ups04: forced shutdown in progress
Jul  6 11:17:38 gw01 upsmon[3974]: UPS heartbeat: forced shutdown in progress
Jul  6 11:17:38 gw01 upsmon[3974]: Shutdown initiated; primary system is waiting for secondaries to log out or time out
Jul  6 11:17:45 gw01 upsmon[3974]: Executing automatic power-fail shutdown
Jul  6 11:17:45 gw01 upsmon[3974]: Auto logout and shutdown proceeding
Jul  6 11:35:49 gw01 syslogd: kernel boot file is /boot/kernel/kernel
Jul  6 11:35:49 gw01 kernel: ---<<BOOT>>---

r730-01

Logs show:

Jul  6 11:09:35 r730-01 upsmon[2468]: UPS heartbeat on line power
Jul  6 11:10:00 r730-01 upsmon[2468]: UPS ups04@gw01.int.unixathome.org on battery
Jul  6 11:14:35 r730-01 upsmon[2468]: UPS heartbeat on battery
Jul  6 11:17:35 r730-01 upsmon[2468]: UPS ups04@gw01.int.unixathome.org battery is low
Jul  6 11:17:40 r730-01 upsmon[2468]: UPS ups04@gw01.int.unixathome.org: forced shutdown in progress
Jul  6 11:17:40 r730-01 upsmon[2468]: Too few UPS(es) are healthy (0<1), initiating forced shutdown
Jul  6 11:17:40 r730-01 upsmon[2468]: UPS heartbeat: forced shutdown in progress
Jul  6 11:17:40 r730-01 upsmon[2468]: Executing automatic power-fail shutdown
Jul  6 11:17:40 r730-01 upsmon[2468]: Auto logout and shutdown proceeding
Jul  6 11:17:45 r730-01 upsmon[2468]: doshutdown: call parent pipe for shutdown (async)
Jul  6 11:17:45 r730-01 upsmon[2468]: Exiting upsmon program after initiating shutdown
Jul  6 11:17:45 r730-01 upsmon[2466]: upsmon parent: Unable to call shutdown command: /sbin/shutdown
Jul  6 11:17:45 r730-01 upsmon[2466]: upsmon parent: Exiting after trying to call (256) shutdown command: /sbin/shutdown
Jul  6 11:42:00 r730-01 syslogd: kernel boot file is /boot/kernel/kernel
Jul  6 11:42:00 r730-01 kernel: ---<<BOOT>>---

r730-03

Logs show:

Jul  6 11:08:59 r730-03 upsmon[2142]: UPS heartbeat on line power
Jul  6 11:09:59 r730-03 upsmon[2142]: UPS ups04@gw01.int.unixathome.org on battery
Jul  6 11:13:59 r730-03 upsmon[2142]: UPS heartbeat on battery
Jul  6 11:17:39 r730-03 upsmon[2142]: UPS ups04@gw01.int.unixathome.org: forced shutdown in progress
Jul  6 11:17:39 r730-03 upsmon[2142]: UPS ups04@gw01.int.unixathome.org battery is low
Jul  6 11:17:39 r730-03 upsmon[2142]: Too few UPS(es) are healthy (0<1), initiating forced shutdown
Jul  6 11:17:39 r730-03 upsmon[2142]: UPS heartbeat: forced shutdown in progress
Jul  6 11:17:39 r730-03 upsmon[2142]: Executing automatic power-fail shutdown
Jul  6 11:17:39 r730-03 upsmon[2142]: Auto logout and shutdown proceeding
Jul  6 11:17:44 r730-03 upsmon[2142]: doshutdown: call parent pipe for shutdown (async)
Jul  6 11:17:44 r730-03 upsmon[2142]: Exiting upsmon program after initiating shutdown
Jul  6 11:17:44 r730-03 upsmon[2140]: upsmon parent: Unable to call shutdown command: /sbin/shutdown
Jul  6 11:17:44 r730-03 upsmon[2140]: upsmon parent: Exiting after trying to call (256) shutdown command: /sbin/shutdown
Jul  6 11:37:26 r730-03 syslogd: kernel boot file is /boot/kernel/kernel
Jul  6 11:37:26 r730-03 kernel: ---<<BOOT>>---

Summary

This is an overview of the shutdowns.

  1. Host all get notice of on batter at about 11:09:59
  2. At 11:17:38, nut on gw01 decides it’s low battery time
  3. A forced shutdown in progress appears at the same time
  4. r730-03 gets told that at 11:17:39
  5. 11:17:39 r730-03 upsmon[2142]: UPS heartbeat: forced shutdown in progress
  6. r730-01 gets that message at 11:17:40
  7. 11:17:38 gw01 upsmon[3974]: UPS heartbeat: forced shutdown in progress
  8. 11:17:38 gw01 upsmon[3974]: Shutdown initiated; primary system is waiting for secondaries to log out or time out
  9. 11:17:40 r730-01 upsmon[2468]: UPS heartbeat: forced shutdown in progress
  10. 11:17:44 r730-03 upsmon[2140]: upsmon parent: Unable to call shutdown command: /sbin/shutdown
  11. 11:17:45 r730-01 upsmon[2466]: upsmon parent: Unable to call shutdown command: /sbin/shutdown
  12. 11:17:44 r730-03 upsmon[2140]: upsmon parent: Exiting after trying to call (256) shutdown command: /sbin/shutdown
  13. 11:17:45 r730-01 upsmon[2466]: upsmon parent: Exiting after trying to call (256) shutdown command: /sbin/shutdown
  14. 11:17:45 gw01 upsmon[3974]: Executing automatic power-fail shutdown
  15. 11:17:45 gw01 upsmon[3974]: Auto logout and shutdown proceeding

Elapsed time between on-battery and start-shutdown: 11:09:59 – 11:17:39 = 00:05:40

This is the order of boots. The PDU power on sequences are timed to allow gw01 to get up and running before the two main servers are powered on.

  • Jul 6 11:35:49 gw01 kernel: —<>—
  • Jul 6 11:42:00 r730-01 kernel: —<>—
  • Jul 6 11:37:26 r730-03 kernel: —<>—

Battery charge

This is the graph pulled created by LibreNMS:

Battery charge
Battery charge

Battery time remaining

Again, from LibreNMS:

Battery time remaining
Battery time remaining

Percentage load

From LibreNMS:

Percentage load
Percentage load

Power consumption (watts)

What can’t LibreNMS do?

Power consumption (watts)
Power consumption (watts)

Action items for me

  • Why does “upsmon parent: Unable to call shutdown command: /sbin/shutdown” occur?
  • How about shutting down r730-01 and r730-03 first, then delaying the shutdown of gw01?

I wonder…

Could it be a simple permissions issue?

[14:06 r730-03 dvl ~] % ps auwwx | grep nut
nut      2123    0.0  0.0   21920   5276  -  Ss   11:37       0:00.29 /usr/local/libexec/nut/dummy-ups -a heartbeat
nut      2125    0.0  0.0   21920   8628  -  Ss   11:37       0:04.91 /usr/local/libexec/nut/dummy-ups -a ups04
nut      2127    0.0  0.0  146760   8192  -  Ss   11:37       0:00.83 /usr/local/sbin/upsd
nut      2141    0.0  0.0   21884   8560  -  S    11:37       0:00.40 /usr/local/sbin/upsmon localhost
dvl     23237    0.0  0.0   14164   2664  0  S+   14:10       0:00.00 grep nut
[14:10 r730-03 dvl ~] % id nut
uid=316(nut) gid=316(nut) groups=316(nut),68(dialer)

The nut< user can't invoke shutdown:

[14:15 r730-03 dvl ~] % ls -l /sbin/shutdown 
-r-sr-xr--  2 root operator 16152 2026.06.29 19:16 /sbin/shutdown

I’m sure that’s it. A shutdown usually includes:

Jun 29 17:58:06 r730-01 shutdown[72325]: reboot by dvl: 
Jun 29 17:58:06 r730-01 root[72379]: shutting down jail stage-nginx01
Jun 29 17:58:07 r730-01 root[72634]: jail stage-nginx01 has shut down
Jun 29 17:58:08 r730-01 root[72679]: shutting down jail test-nginx01
Jun 29 17:58:08 r730-01 kernel:  test-nginx01
Jun 29 17:58:08 r730-01 root[72920]: jail test-nginx01 has shut down
Jun 29 17:58:10 r730-01 root[73043]: shutting down jail dvl-nginx01
Jun 29 17:58:10 r730-01 kernel:  dvl-nginx01
Jun 29 17:58:10 r730-01 root[73280]: jail dvl-nginx01 has shut down
Jun 29 17:58:11 r730-01 root[73380]: shutting down jail dev-nginx01
Jun 29 17:58:11 r730-01 kernel:  dev-nginx01
Jun 29 17:58:21 r730-01 root[73986]: jail dev-nginx01 has shut down

None of those jail shutdown messages appear during power-outage related shutdown.

Top

Valuable News – 2026/07/06

Post by Vermaden via 𝚟𝚎𝚛𝚖𝚊𝚍𝚎𝚗 »

The Valuable News weekly series is dedicated to provide summary about news, articles and other interesting stuff mostly but not always related to the UNIX/BSD/Linux systems. Whenever I stumble upon something worth mentioning on the Internet I just put it here.

Today the amount information that we get using various information streams is at massive overload. Thus one needs to focus only on what is important without the need to grep(1) the Internet everyday. Hence the idea of providing such information ‘bulk’ as I already do that grep(1).

The Usual Suspects section at the end is permanent and have links to other sites with interesting UNIX/BSD/Linux news.

Past releases are available at the dedicated NEWS page.

UNIX

FreeBSD Foundationals: Boot Process – From Loader to Boot Environments.
https://blog.hofstede.it/freebsd-foundationals-the-boot-process-from-the-loader-to-boot-environments/

Running pkgbasify(8) on FreeBSD 15.1.
https://dan.langille.org/2026/06/29/running-pkgbasify-on-freebsd-15-1/

Linux io_uring(7) versus FreeBSD kqueue(9).
https://linkedin.com/posts/vvoss_freebsd-security-linux-share-7476205343635812354-o6uG/

End of ARM64 Desktop Experiment.
https://marcin.juszkiewicz.com.pl/2026/06/26/the-end-of-the-aarch64-desktop-experiment/

Red Hat ARM Engineer Abandons ARM64 Linux Personal Desktop and Goes Back to AMD Ryzen.
https://phoronix.com/news/Red-Hat-ARM-Engineer-Back-Ryzen

GhostBSD 2026/03 Finance Report.
https://ghostbsd.org/news/March_2026_Finance_Report

Replacing systemd(1) with OpenRC in Debian.
https://danielcordova.me/blog/debian-openrc/

Upgrading FreeBSD 15.0-RELEASE to 15.1-RELEASE: Official Paths.
https://blog.hofstede.it/upgrading-freebsd-150-release-to-151-release-the-official-paths/

Modern Email Server Setup Script for FreeBSD.
https://github.com/sizeofnull/bsdmail

Make Your Own Read Only Device with NetBSD.
https://it-notes.dragas.net/2024/09/10/make-your-own-readonly-device-with-netbsd/

‪How Degraded ZFS Pool Affect Your Upcoming Holiday Weekend?
https://dan.langille.org/2026/07/02/data04-degraded/

Vibe (Claude) Coded X11 Server Written in Rust with Xinerama and FreeBSD Support.
https://phoronix.com/news/YSERVER-1.3-Released

Attempt to Get Vulkan Going on NetBSD.
https://github.com/segaboy/vulkan-netbsd

Memory Efficiency of awk(1)/mawk(1)/gawk(1) Tools.
https://awklab.com/memory-efficiency-awk-mawk-gawk

Unix Pipes Under Load: Streaming/Barriers/Backpressure.
https://awklab.com/unix-pipes-under-load

The htop(1) Explained.
https://peteris.rocks/blog/htop/

FreeBSD Ate My RAM.
https://crocidb.com/post/freebsd-ate-my-ram/

NFS Problems I Did Not Expect at All.
https://niels.kobschaetzki.net/2026/07/03/nfsproblems-i-didnt-expect-at.html

FFmpeg 9.1 New AAC Encoder.
https://hydrogenaudio.org/index.php/topic,129691.0.html

ch32fun Stack for RISC-V Microcontrollers Adds FreeBSD Support.
https://github.com/cnlohr/ch32fun/pull/918

Monitoring FreeBSD Mastodon Instance with Prometheus/Grafana/Loki.
https://blog.hofstede.it/monitoring-a-freebsd-mastodon-instance-with-prometheus-grafana-and-loki/

FreeBSD on Framework Systems.
https://github.com/FrameworkComputer/freebsd-on-framework

AutoBSD is FreeBSD Auto Installer Using bsdinstall(8)/nuageinit(7)/mfsBSD.
https://github.com/geekobiloba/autobsd

FreeIPA Server Now Builds Successfully on FreeBSD with Poudriere!
https://linkedin.com/feed/update/urn:li:activity:7479104100295606273/

pkgbasify(8): Read Only /var/empty ZFS Filesystem.
https://dan.langille.org/2026/06/30/pkgbasify-var-empty-is-a-readonly-zfs-filesystem/

Running pkgbasify(8) on FreeBSD 15.0 Jail.
https://dan.langille.org/2026/06/30/running-pkgbasify-on-a-freebsd-15-0-jail/

Experimental BSDun Kernel Module Runs FreeBSD Binaries on Linux.
https://linuxiac.com/experimental-bsdun-kernel-module-runs-freebsd-binaries-on-linux/

UNIX/Audio/Video

FreeBSD After Hours AMA: Post BSDCan Recap.
https://youtube.com/watch?v=7XbPCjJB1cw

FreeBSD Laptop and Desktop Workgroup Call 19.
https://youtube.com/watch?v=SxRQyma_p5A

Route All TCP Traffic from Isolated Machine Through HTTP Proxy on FreeBSD.
https://youtube.com/watch?v=7T8F99zILvk

Git w/o Rust Libre-WD40 from XLibre Dev.
https://youtube.com/watch?v=SsMczeCEAwQ

I Tried FreeBSD After Years of Linux.
https://youtube.com/watch?v=6bhVbgTHv3M

BSD Now 670: Failure is Not an Option.
https://www.bsdnow.tv/670

Hardware

Device Sense Hardware Verifier that Reads from Chip and Detects Registry Tricks.
https://github.com/jeffreyon/device-sense

ThinkPad Endgame.
https://williamjansson.com/posts/thinkpad_endgame/

Life

Formula 1 Champion We Never Got to See.
https://youtube.com/watch?v=pPqMa2nqLw8

Other

May in Servo: User Scripts/MP4 Compat/Blackboxing and More.
https://servo.org/blog/2026/06/30/may-in-servo/

Wordgard 0.1 Release.
https://marijnhaverbeke.nl/blog/wordgard-0.1.html

ReactOS Implements First Windows NT6 System Call in Step Toward Vista Compatibility.
https://phoronix.com/news/ReactOS-First-NT6-Syscall

Colin McRae Rally Retrospective: 1998 PlayStation Classic that Redefined Rally Racing.
https://generationamiga.com/2026/07/04/colin-mcrae-rally-retrospective-the-1998-playstation-classic-that-redefined-rally-racing/

Lamborghini American Challenge Retrospective: Story Behind Titus Classic AMIGA Racer.
https://generationamiga.com/2026/05/10/lamborghini-american-challenge-retrospective-the-story-behind-titus-classic-amiga-racer/

Chaos Engine Retrospective: AMIGA Classic That Redefined Co-Op Action.
https://generationamiga.com/2026/07/05/the-chaos-engine-retrospective-the-amiga-classic-that-redefined-co-op-action/

Usual Suspects

BSD Weekly.
https://bsdweekly.com/

DiscoverBSD.
https://discoverbsd.com/

BSDSec.
https://bsdsec.net/

DragonFly BSD Digest.
https://dragonflydigest.com/

FreeBSD Patch Level Table.
https://bokut.in/freebsd-patch-level-table/

FreeBSD End of Life Date.
https://endoflife.date/freebsd

Phoronix BSD News Archives.
https://phoronix.com/linux/BSD

OpenBSD Journal.
https://undeadly.org/

Call for Testing.
https://callfortesting.org/

Call for Testing – Production Users Call.
https://youtube.com/@callfortesting/videos

BSD Now Weekly Podcast.
https://www.bsdnow.tv/

Nixers Newsletter.
https://newsletter.nixers.net/entries.php

BSD Cafe Journal.
https://journal.bsd.cafe/

DragonFly BSD Digest – Lazy Reading – In Other BSDs.
https://dragonflydigest.com

BSDTV.
https://bsky.app/profile/bsdtv.bsky.social

FreeBSD Git Weekly.
https://freebsd-git-weekly.tarsnap.net/

FreeBSD Meetings.
https://youtube.com/@freebsdmeetings

BSDJedi.
https://youtube.com/@BSDJedi/videos

RoboNuggie.
https://youtube.com/@RoboNuggie/videos

GaryHTech.
https://youtube.com/@GaryHTech/videos

Sheridan Computers.
https://youtube.com/@sheridans/videos

82MHz.
https://82mhz.net/

EOF
Top

data04: DEGRADED

Post by Dan Langille via Dan Langille's Other Diary »

This morning I noticed this in the logs after doing some pkg upgrade. I was mainly updating openvpn, but in that operation, fail2ban was removed (because I went from python312 to python314). I noticed it missing on one host:

Can't exec "/usr/local/bin/fail2ban-client": No such file or directory at /usr/local/etc/snmp/fail2ban line 116.

I ran this grep to verify fail2ban had been removed from another host:

[12:31 r730-01 dvl ~] % grep fail /var/log/messages
Jun 30 15:38:58 r730-01 upsmon[2715]: Poll UPS [ups04@gw01.int.unixathome.org] failed - Driver not connected
Jun 30 15:39:03 r730-01 upsmon[2715]: UPS [ups04@gw01.int.unixathome.org]: connect failed: Connection failure: Connection refused
Jun 30 15:39:28 r730-01 upsmon[2715]: UPS [ups04@gw01.int.unixathome.org]: connect failed: Connection failure: Operation timed out
Jun 30 15:40:18 r730-01 upsmon[2715]: UPS [ups04@gw01.int.unixathome.org]: connect failed: Connection failure: Operation timed out
Jun 30 15:40:43 r730-01 upsmon[2715]: UPS [ups04@gw01.int.unixathome.org]: connect failed: Connection failure: Operation timed out
Jun 30 15:40:53 r730-01 upsmon[2715]: UPS [ups04@gw01.int.unixathome.org]: connect failed: Connection failure: Connection refused
Jun 30 21:07:06 r730-01 upsmon[2715]: Poll UPS [ups04@gw01.int.unixathome.org] failed - Driver not connected
Jun 30 21:07:06 r730-01 kernel: Jun 30 21:07:06 r730-01 upsmon[2715]: Poll UPS [ups04@gw01.int.unixathome.org] failed - Driver not connected
Jun 30 21:07:23 r730-01 upsmon[2715]: UPS [ups04@gw01.int.unixathome.org]: connect failed: Connection failure: Operation timed out
Jun 30 21:07:23 r730-01 kernel: Jun 30 21:07:23 r730-01 upsmon[2715]: UPS [ups04@gw01.int.unixathome.org]: connect failed: Connection failure: Operation timed out
Jun 30 21:07:50 r730-01 upsmon[2715]: UPS [ups04@gw01.int.unixathome.org]: connect failed: Connection failure: Operation timed out
Jun 30 21:08:44 r730-01 upsmon[2715]: UPS [ups04@gw01.int.unixathome.org]: connect failed: Connection failure: Operation timed out
Jun 30 21:08:51 r730-01 upsmon[2715]: UPS [ups04@gw01.int.unixathome.org]: connect failed: Connection failure: Connection refused
Jun 30 21:08:58 r730-01 upsmon[2715]: UPS [ups04@gw01.int.unixathome.org]: connect failed: Connection failure: Connection refused
Jul  2 04:21:50 r730-01 kernel: nvme3: failing outstanding i/o
Jul  2 04:21:50 r730-01 kernel: nvme3: failing queued i/o
Jul  2 04:21:50 r730-01 kernel: nvme3: failing outstanding i/o
Jul  2 04:21:50 r730-01 kernel: nvme3: failing outstanding i/o
Jul  2 04:21:50 r730-01 kernel: nvme3: failing outstanding i/o
Jul  2 04:21:50 r730-01 kernel: nvme3: failing outstanding i/o
Jul  2 04:21:50 r730-01 kernel: nvme3: failing outstanding i/o
Jul  2 04:21:50 r730-01 kernel: nvme3: failing outstanding i/o
Jul  2 04:21:50 r730-01 kernel: nvme3: failing outstanding i/o
Jul  2 04:21:50 r730-01 kernel: nvme3: failing outstanding i/o

Well, this host doesn’t run fail2ban, but those messages are “interesting”.

How much is nvme mentioned in the logs?

[12:31 r730-01 dvl ~] % grep nvme3 /var/log/messages
Jun 29 18:02:51 r730-01 kernel: nvme3:  mem 0x92000000-0x92003fff at device 0.0 numa-domain 0 on pci7
Jun 29 18:02:51 r730-01 kernel: nda3 at nvme3 bus 0 scbus19 target 0 lun 1
Jun 30 21:11:44 r730-01 kernel: nvme3:  mem 0x92000000-0x92003fff at device 0.0 numa-domain 0 on pci7
Jun 30 21:11:44 r730-01 kernel: nda3 at nvme3 bus 0 scbus19 target 0 lun 1
Jul  2 04:21:30 r730-01 kernel: nvme3: Resetting controller due to a timeout.
Jul  2 04:21:30 r730-01 kernel: nvme3: event="start"
Jul  2 04:21:30 r730-01 kernel: nvme3: Waiting for reset to complete
Jul  2 04:21:50 r730-01 kernel: nvme3: Waiting for reset to complete
Jul  2 04:21:50 r730-01 kernel: nvme3: controller ready did not become 0 within 20500 ms
Jul  2 04:21:50 r730-01 kernel: nvme3: event="timed_out"
Jul  2 04:21:50 r730-01 kernel: nvme3: failing outstanding i/o
Jul  2 04:21:50 r730-01 kernel: nvme3: READ (02) sqid:1 cid:126 nsid:1 lba:5816680880 len:8
Jul  2 04:21:50 r730-01 kernel: nvme3: ABORTED_BY_REQUEST (00/07) crd:0 m:0 dnr:1 p:0 sqid:1 cid:126 cdw0:0
Jul  2 04:21:50 r730-01 kernel: nvme3: READ (02) sqid:1 cid:125 nsid:1 lba:5819691576 len:8
Jul  2 04:21:50 r730-01 kernel: nvme3: ABORTED_BY_REQUEST (00/07) crd:0 m:0 dnr:1 p:0 sqid:1 cid:125 cdw0:0
Jul  2 04:21:50 r730-01 kernel: (nda3:nvme3:0:0:1): READ (02). NCB: opc=2 fuse=0 nsid=1 prp1=0 prp2=0 cdw=5ab381b0 1 7 0 0 0
Jul  2 04:21:50 r730-01 kernel: nvme3: READ (02) sqid:1 cid:119 nsid:1 lba:7155944008 len:8
Jul  2 04:21:50 r730-01 kernel: (nda3:nvme3:0:0:1): CAM status: NVME Status Error
Jul  2 04:21:50 r730-01 kernel: (nda3:nvme3:0:0:1): NVMe status: ABORTED_BY_REQUEST (00/07) DNR
Jul  2 04:21:50 r730-01 kernel: (nda3:nvme3:0:0:1): Error 5, Retries exhausted
Jul  2 04:21:50 r730-01 kernel: (nda3:nvme3:0:0:1): READ (02). NCB: opc=2 fuse=0 nsid=1 prp1=0 prp2=0 cdw=5ae17238 1 7 0 0 0
Jul  2 04:21:50 r730-01 kernel: nvme3: ABORTED_BY_REQUEST (00/07) crd:0 m:0 dnr:1 p:0 sqid:1 cid:119 cdw0:0
Jul  2 04:21:50 r730-01 kernel: (nda3:nvme3:0:0:1): CAM status: NVME Status Error
Jul  2 04:21:50 r730-01 kernel: (nda3:nvme3:0:0:1): NVMe status: ABORTED_BY_REQUEST (00/07) DNR
Jul  2 04:21:50 r730-01 kernel: (nda3:nvme3:0:0:1): Error 5, Retries exhausted
Jul  2 04:21:50 r730-01 kernel: nvme3: failing queued i/o
Jul  2 04:21:50 r730-01 kernel: nvme3: READ (02) sqid:2 cid:0 nsid:1 lba:3948824896 len:8
Jul  2 04:21:50 r730-01 kernel: nvme3: ABORTED_BY_REQUEST (00/07) crd:0 m:0 dnr:1 p:0 sqid:2 cid:0 cdw0:0
Jul  2 04:21:50 r730-01 kernel: (nda3:nvme3:0:0:1): READ (02). NCB: opc=2 fuse=0 nsid=1 prp1=0 prp2=0 cdw=aa870a48 1 7 0 0 0
Jul  2 04:21:50 r730-01 kernel: nvme3: failing outstanding i/o
Jul  2 04:21:50 r730-01 kernel: (nda3:nvme3:0:0:1): CAM status: NVME Status Error
Jul  2 04:21:50 r730-01 kernel: (nda3:nvme3:0:0:1): NVMe status: ABORTED_BY_REQUEST (00/07) DNR
Jul  2 04:21:50 r730-01 kernel: (nda3:nvme3:0:0:1): Error 5, Retries exhausted
Jul  2 04:21:50 r730-01 kernel: (nda3:nvme3:0:0:1): READ (02). NCB: opc=2 fuse=0 nsid=1 prp1=0 prp2=0 cdw=eb5e4940 0 7 0 0 0
Jul  2 04:21:50 r730-01 kernel: (nda3:nvme3:0:0:1): CAM status: NVME Status Error
Jul  2 04:21:50 r730-01 kernel: (nda3:nvme3:0:0:1): NVMe status: ABORTED_BY_REQUEST (00/07) DNR
Jul  2 04:21:50 r730-01 kernel: (nda3:nvme3:0:0:1): Error 5, Retries exhausted
Jul  2 04:21:50 r730-01 kernel: nvme3: READ (02) sqid:2 cid:121 nsid:1 lba:5969482320 len:8
Jul  2 04:21:50 r730-01 kernel: nvme3: ABORTED_BY_REQUEST (00/07) crd:0 m:0 dnr:1 p:0 sqid:2 cid:121 cdw0:0
Jul  2 04:21:50 r730-01 kernel: nda3 at nvme3 bus 0 scbus19 target 0 lun 1
Jul  2 04:21:50 r730-01 kernel: nvme3: failing outstanding i/o
Jul  2 04:21:50 r730-01 kernel: nvme3: READ (02) sqid:3 cid:125 nsid:1 lba:2128907408 len:1360
Jul  2 04:21:50 r730-01 kernel: nvme3: ABORTED_BY_REQUEST (00/07) crd:0 m:0 dnr:1 p:0 sqid:3 cid:125 cdw0:0
Jul  2 04:21:50 r730-01 kernel: nvme3: WRITE (01) sqid:3 cid:116 nsid:1 lba:4236260504 len:16
Jul  2 04:21:50 r730-01 kernel: nvme3: ABORTED_BY_REQUEST (00/07) crd:0 m:0 dnr:1 p:0 sqid:3 cid:116 cdw0:0
Jul  2 04:21:50 r730-01 kernel: (nda3:nvme3:0:0:1): READ (02). NCB: opc=2 fuse=0 nsid=1 prp1=0 prp2=0 cdw=63cf1250 1 7 0 0 0
Jul  2 04:21:50 r730-01 kernel: nvme3: READ (02) sqid:3 cid:121 nsid:1 lba:3846619816 len:8
Jul  2 04:21:50 r730-01 kernel: (nda3:nvme3:0:0:1): CAM status: NVME Status Error
Jul  2 04:21:50 r730-01 kernel: (nda3:nvme3:0:0:1): NVMe status: ABORTED_BY_REQUEST (00/07) DNR
Jul  2 04:21:50 r730-01 kernel: (nda3:nvme3:0:0:1): Error 6, Periph was invalidated
Jul  2 04:21:50 r730-01 kernel: (nda3:nvme3:0:0:1): READ (02). NCB: opc=2 fuse=0 nsid=1 prp1=0 prp2=0 cdw=7ee48c90 0 54f 0 0 0
Jul  2 04:21:50 r730-01 kernel: (nda3:nvme3:0:0:1): CAM status: NVME Status Error
Jul  2 04:21:50 r730-01 kernel: (nda3:nvme3:0:0:1): NVMe status: ABORTED_BY_REQUEST (00/07) DNR
Jul  2 04:21:50 r730-01 kernel: (nda3:nvme3:0:0:1): Error 6, Periph was invalidated
Jul  2 04:21:50 r730-01 kernel: (nda3:nvme3:0:0:1): WRITE (01). NCB: opc=1 fuse=0 nsid=1 prp1=0 prp2=0 cdw=fc803498 0 f 0 0 0
Jul  2 04:21:50 r730-01 kernel: (nda3:nvme3:0:0:1): CAM status: NVME Status Error
Jul  2 04:21:50 r730-01 kernel: (nda3:nvme3:0:0:1): NVMe status: ABORTED_BY_REQUEST (00/07) DNR
Jul  2 04:21:50 r730-01 kernel: (nda3:nvme3:0:0:1): Error 6, Periph was invalidated
Jul  2 04:21:50 r730-01 kernel: nvme3: ABORTED_BY_REQUEST (00/07) crd:0 m:0 dnr:1 p:0 sqid:3 cid:121 cdw0:0
Jul  2 04:21:50 r730-01 kernel: nvme3: failing outstanding i/o
Jul  2 04:21:50 r730-01 kernel: (nda3:nvme3:0:0:1): READ (02). NCB: opc=2 fuse=0 nsid=1 prp1=0 prp2=0 cdw=e546c2a8 0 7 0 0 0
Jul  2 04:21:50 r730-01 kernel: nvme3: READ (02) sqid:4 cid:112 nsid:1 lba:923353176 len:8
Jul  2 04:21:50 r730-01 kernel: (nda3:nvme3:0:0:1): CAM status: NVME Status Error
Jul  2 04:21:50 r730-01 kernel: (nda3:nvme3:0:0:1): NVMe status: ABORTED_BY_REQUEST (00/07) DNR
Jul  2 04:21:50 r730-01 kernel: (nda3:nvme3:0:0:1): Error 6, Periph was invalidated
Jul  2 04:21:50 r730-01 kernel: nvme3: ABORTED_BY_REQUEST (00/07) crd:0 m:0 dnr:1 p:0 sqid:4 cid:112 cdw0:0
Jul  2 04:21:50 r730-01 kernel: nvme3: READ (02) sqid:4 cid:115 nsid:1 lba:7403218720 len:8
Jul  2 04:21:50 r730-01 kernel: (nda3:nvme3:0:0:1): READ (02). NCB: opc=2 fuse=0 nsid=1 prp1=0 prp2=0 cdw=37094058 0 7 0 0 0
Jul  2 04:21:50 r730-01 kernel: nvme3: ABORTED_BY_REQUEST (00/07) crd:0 m:0 dnr:1 p:0 sqid:4 cid:115 cdw0:0
Jul  2 04:21:50 r730-01 kernel: (nda3:nvme3:0:0:1): CAM status: NVME Status Error
Jul  2 04:21:50 r730-01 kernel: (nda3:nvme3:0:0:1): NVMe status: ABORTED_BY_REQUEST (00/07) DNR
Jul  2 04:21:50 r730-01 kernel: (nda3:nvme3:0:0:1): Error 6, Periph was invalidated
Jul  2 04:21:50 r730-01 kernel: nvme3: failing outstanding i/o
Jul  2 04:21:50 r730-01 kernel: (nda3:nvme3:0:0:1): READ (02). NCB: opc=2 fuse=0 nsid=1 prp1=0 prp2=0 cdw=b9442720 1 7 0 0 0
Jul  2 04:21:50 r730-01 kernel: nvme3: READ (02) sqid:6 cid:123 nsid:1 lba:4092436328 len:8
Jul  2 04:21:50 r730-01 kernel: (nda3:nvme3:0:0:1): CAM status: NVME Status Error
Jul  2 04:21:50 r730-01 kernel: (nda3:nvme3:0:0:1): NVMe status: ABORTED_BY_REQUEST (00/07) DNR
Jul  2 04:21:50 r730-01 kernel: (nda3:nvme3:0:0:1): Error 6, Periph was invalidated
Jul  2 04:21:50 r730-01 kernel: nvme3: ABORTED_BY_REQUEST (00/07) crd:0 m:0 dnr:1 p:0 sqid:6 cid:123 cdw0:0
Jul  2 04:21:50 r730-01 kernel: nvme3: READ (02) sqid:6 cid:117 nsid:1 lba:4119853392 len:8
Jul  2 04:21:50 r730-01 kernel: (nda3:nvme3:0:0:1): READ (02). NCB: opc=2 fuse=0 nsid=1 prp1=0 prp2=0 cdw=f3ed9f68 0 7 0 0 0
Jul  2 04:21:50 r730-01 kernel: nvme3: ABORTED_BY_REQUEST (00/07) crd:0 m:0 dnr:1 p:0 sqid:6 cid:117 cdw0:0
Jul  2 04:21:50 r730-01 kernel: (nda3:nvme3:0:0:1): CAM status: NVME Status Error
Jul  2 04:21:50 r730-01 kernel: (nda3:nvme3:0:0:1): NVMe status: ABORTED_BY_REQUEST (00/07) DNR
Jul  2 04:21:50 r730-01 kernel: (nda3:nvme3:0:0:1): Error 6, Periph was invalidated
Jul  2 04:21:50 r730-01 kernel: nvme3: failing outstanding i/o
Jul  2 04:21:50 r730-01 kernel: (nda3:nvme3:0:0:1): READ (02). NCB: opc=2 fuse=0 nsid=1 prp1=0 prp2=0 cdw=f58ff950 0 7 0 0 0
Jul  2 04:21:50 r730-01 kernel: nvme3: FLUSH (00) sqid:11 cid:123 nsid:1
Jul  2 04:21:50 r730-01 kernel: (nda3:nvme3:0:0:1): CAM status: NVME Status Error
Jul  2 04:21:50 r730-01 kernel: (nda3:nvme3:0:0:1): NVMe status: ABORTED_BY_REQUEST (00/07) DNR
Jul  2 04:21:50 r730-01 kernel: (nda3:nvme3:0:0:1): Error 6, Periph was invalidated
Jul  2 04:21:50 r730-01 kernel: nvme3: ABORTED_BY_REQUEST (00/07) crd:0 m:0 dnr:1 p:0 sqid:11 cid:123 cdw0:0
Jul  2 04:21:50 r730-01 kernel: nvme3: failing outstanding i/o
Jul  2 04:21:50 r730-01 kernel: (nda3:nvme3:0:0:1): FLUSH (00). NCB: opc=0 fuse=0 nsid=1 prp1=0 prp2=0 cdw=0 0 0 0 0 0
Jul  2 04:21:50 r730-01 kernel: nvme3: READ (02) sqid:14 cid:119 nsid:1 lba:2128908768 len:2048
Jul  2 04:21:50 r730-01 kernel: (nda3:nvme3:0:0:1): CAM status: NVME Status Error
Jul  2 04:21:50 r730-01 kernel: (nda3:nvme3:0:0:1): NVMe status: ABORTED_BY_REQUEST (00/07) DNR
Jul  2 04:21:50 r730-01 kernel: (nda3:nvme3:0:0:1): Error 6, Periph was invalidated
Jul  2 04:21:50 r730-01 kernel: nvme3: ABORTED_BY_REQUEST (00/07) crd:0 m:0 dnr:1 p:0 sqid:14 cid:119 cdw0:0
Jul  2 04:21:50 r730-01 kernel: nvme3: READ (02) sqid:14 cid:121 nsid:1 lba:2128910816 len:2048
Jul  2 04:21:50 r730-01 kernel: nvme3: ABORTED_BY_REQUEST (00/07) crd:0 m:0 dnr:1 p:0 sqid:14 cid:121 cdw0:0
Jul  2 04:21:50 r730-01 kernel: nvme3: READ (02) sqid:14 cid:123 nsid:1 lba:2128912864 len:1368
Jul  2 04:21:50 r730-01 kernel: nvme3: ABORTED_BY_REQUEST (00/07) crd:0 m:0 dnr:1 p:0 sqid:14 cid:123 cdw0:0
Jul  2 04:21:50 r730-01 kernel: nvme3: READ (02) sqid:14 cid:122 nsid:1 lba:2128914232 len:2048
Jul  2 04:21:50 r730-01 kernel: (nda3:nvme3:0:0:1): READ (02). NCB: opc=2 fuse=0 nsid=1 prp1=0 prp2=0 cdw=7ee491e0 0 7ff 0 0 0
Jul  2 04:21:50 r730-01 kernel: nvme3: ABORTED_BY_REQUEST (00/07) crd:0 m:0 dnr:1 p:0 sqid:14 cid:122 cdw0:0
Jul  2 04:21:50 r730-01 kernel: (nda3:nvme3:0:0:1): CAM status: NVME Status Error
Jul  2 04:21:50 r730-01 kernel: (nda3:nvme3:0:0:1): NVMe status: ABORTED_BY_REQUEST (00/07) DNR
Jul  2 04:21:50 r730-01 kernel: (nda3:nvme3:0:0:1): Error 6, Periph was invalidated
Jul  2 04:21:50 r730-01 kernel: (nda3:nvme3:0:0:1): READ (02). NCB: opc=2 fuse=0 nsid=1 prp1=0 prp2=0 cdw=7ee499e0 0 7ff 0 0 0
Jul  2 04:21:50 r730-01 kernel: (nda3:nvme3:0:0:1): CAM status: NVME Status Error
Jul  2 04:21:50 r730-01 kernel: (nda3:nvme3:0:0:1): NVMe status: ABORTED_BY_REQUEST (00/07) DNR
Jul  2 04:21:50 r730-01 kernel: (nda3:nvme3:0:0:1): Error 6, Periph was invalidated
Jul  2 04:21:50 r730-01 kernel: (nda3:nvme3:0:0:1): READ (02). NCB: opc=2 fuse=0 nsid=1 prp1=0 prp2=0 cdw=7ee4a1e0 0 557 0 0 0
Jul  2 04:21:50 r730-01 kernel: (nda3:nvme3:0:0:1): CAM status: NVME Status Error
Jul  2 04:21:50 r730-01 kernel: (nda3:nvme3:0:0:1): NVMe status: ABORTED_BY_REQUEST (00/07) DNR
Jul  2 04:21:50 r730-01 kernel: (nda3:nvme3:0:0:1): Error 6, Periph was invalidated
Jul  2 04:21:50 r730-01 kernel: nvme3: READ (02) sqid:14 cid:126 nsid:1 lba:2128916280 len:2048
Jul  2 04:21:50 r730-01 kernel: nvme3: ABORTED_BY_REQUEST (00/07) crd:0 m:0 dnr:1 p:0 sqid:14 cid:126 cdw0:0
Jul  2 04:21:50 r730-01 kernel: (nda3:nvme3:0:0:1): READ (02). NCB: opc=2 fuse=0 nsid=1 prp1=0 prp2=0 cdw=7ee4a738 0 7ff 0 0 0
Jul  2 04:21:50 r730-01 kernel: nvme3: READ (02) sqid:14 cid:125 nsid:1 lba:2128918328 len:1368
Jul  2 04:21:50 r730-01 kernel: nvme3: ABORTED_BY_REQUEST (00/07) crd:0 m:0 dnr:1 p:0 sqid:14 cid:125 cdw0:0
Jul  2 04:21:50 r730-01 kernel: nvme3: failing outstanding i/o
Jul  2 04:21:50 r730-01 kernel: nvme3: READ (02) sqid:15 cid:121 nsid:1 lba:7603680584 len:8
Jul  2 04:21:50 r730-01 kernel: nvme3: ABORTED_BY_REQUEST (00/07) crd:0 m:0 dnr:1 p:0 sqid:15 cid:121 cdw0:0
Jul  2 04:21:50 r730-01 kernel: nvme3: failing outstanding i/o
Jul  2 04:21:50 r730-01 kernel: nvme3: READ (02) sqid:16 cid:126 nsid:1 lba:4406184968 len:8
Jul  2 04:21:50 r730-01 kernel: nvme3: ABORTED_BY_REQUEST (00/07) crd:0 m:0 dnr:1 p:0 sqid:16 cid:126 cdw0:0
Jul  2 04:21:50 r730-01 kernel: (nda3:nvme3:0:0:1): CAM status: NVME Status Error
Jul  2 04:21:50 r730-01 kernel: (nda3:nvme3:0:0:1): NVMe status: ABORTED_BY_REQUEST (00/07) DNR
Jul  2 04:21:50 r730-01 kernel: (nda3:nvme3:0:0:1): Error 6, Periph was invalidated
Jul  2 04:21:50 r730-01 kernel: (nda3:nvme3:0:0:1): READ (02). NCB: opc=2 fuse=0 nsid=1 prp1=0 prp2=0 cdw=7ee4af38 0 7ff 0 0 0
Jul  2 04:21:50 r730-01 kernel: (nda3:nvme3:0:0:1): CAM status: NVME Status Error
Jul  2 04:21:50 r730-01 kernel: (nda3:nvme3:0:0:1): NVMe status: ABORTED_BY_REQUEST (00/07) DNR
Jul  2 04:21:50 r730-01 kernel: (nda3:nvme3:0:0:1): Error 6, Periph was invalidated
Jul  2 04:21:50 r730-01 kernel: (nda3:nvme3:0:0:1): READ (02). NCB: opc=2 fuse=0 nsid=1 prp1=0 prp2=0 cdw=7ee4b738 0 557 0 0 0
Jul  2 04:21:50 r730-01 kernel: (nda3:nvme3:0:0:1): CAM status: NVME Status Error
Jul  2 04:21:50 r730-01 kernel: (nda3:nvme3:0:0:1): NVMe status: ABORTED_BY_REQUEST (00/07) DNR
Jul  2 04:21:50 r730-01 kernel: (nda3:nvme3:0:0:1): Error 6, Periph was invalidated
Jul  2 04:21:50 r730-01 kernel: (nda3:nvme3:0:0:1): READ (02). NCB: opc=2 fuse=0 nsid=1 prp1=0 prp2=0 cdw=c536f548 1 7 0 0 0
Jul  2 04:21:50 r730-01 kernel: (nda3:nvme3:0:0:1): CAM status: NVME Status Error
Jul  2 04:21:50 r730-01 kernel: (nda3:nvme3:0:0:1): NVMe status: ABORTED_BY_REQUEST (00/07) DNR
Jul  2 04:21:50 r730-01 kernel: (nda3:nvme3:0:0:1): Error 6, Periph was invalidated
Jul  2 04:21:50 r730-01 kernel: (nda3:nvme3:0:0:1): READ (02). NCB: opc=2 fuse=0 nsid=1 prp1=0 prp2=0 cdw=6a10c08 1 7 0 0 0
Jul  2 04:21:50 r730-01 kernel: (nda3:nvme3:0:0:1): CAM status: NVME Status Error
Jul  2 04:21:50 r730-01 kernel: (nda3:nvme3:0:0:1): NVMe status: ABORTED_BY_REQUEST (00/07) DNR
Jul  2 04:21:50 r730-01 kernel: (nda3:nvme3:0:0:1): Error 6, Periph was invalidated
Jul  2 04:21:50 r730-01 kernel: nvme3: Failed controller, stopping watchdog timeout.
Jul  2 04:21:50 r730-01 kernel: (nda3:nvme3:0:0:1): Periph destroyed
Jul  2 04:21:50 r730-01 kernel: nvme3: Failed controller, stopping watchdog timeout.

Well, that’s a lot. How’s the status?

[12:31 r730-01 dvl ~] % zpool status
  pool: data01
 state: ONLINE
  scan: scrub repaired 0B in 00:00:07 with 0 errors on Thu Jul  2 03:48:55 2026
config:

	NAME                  STATE     READ WRITE CKSUM
	data01                ONLINE       0     0     0
	  raidz2-0            ONLINE       0     0     0
	    gpt/Y7P0A022TEVE  ONLINE       0     0     0
	    gpt/Y7P0A02ATEVE  ONLINE       0     0     0
	    gpt/Y7P0A02DTEVE  ONLINE       0     0     0
	    gpt/Y7P0A02GTEVE  ONLINE       0     0     0
	    gpt/Y7P0A02LTEVE  ONLINE       0     0     0
	    gpt/Y7P0A02MTEVE  ONLINE       0     0     0
	    gpt/Y7P0A02QTEVE  ONLINE       0     0     0
	    gpt/Y7P0A033TEVE  ONLINE       0     0     0

errors: No known data errors

  pool: data02
 state: ONLINE
  scan: scrub repaired 0B in 00:03:59 with 0 errors on Thu Jul  2 03:52:59 2026
config:

	NAME                     STATE     READ WRITE CKSUM
	data02                   ONLINE       0     0     0
	  mirror-0               ONLINE       0     0     0
	    gpt/S6WSNJ0T208743F  ONLINE       0     0     0
	    gpt/S6WSNJ0T207774T  ONLINE       0     0     0

errors: No known data errors

  pool: data03
 state: ONLINE
  scan: scrub repaired 0B in 01:16:19 with 0 errors on Thu Jul  2 05:05:31 2026
config:

	NAME                     STATE     READ WRITE CKSUM
	data03                   ONLINE       0     0     0
	  mirror-0               ONLINE       0     0     0
	    gpt/WD_22492H800867  ONLINE       0     0     0
	    gpt/WD_230151801284  ONLINE       0     0     0
	  mirror-1               ONLINE       0     0     0
	    gpt/WD_230151801478  ONLINE       0     0     0
	    gpt/WD_230151800473  ONLINE       0     0     0

errors: No known data errors

  pool: data04
 state: DEGRADED
status: One or more devices have been removed.
	Sufficient replicas exist for the pool to continue functioning in a
	degraded state.
action: Online the device using zpool online' or replace the device with
	'zpool replace'.
  scan: scrub repaired 0B in 01:11:17 with 0 errors on Thu Jul  2 05:00:37 2026
config:

	NAME                     STATE     READ WRITE CKSUM
	data04                   DEGRADED     0     0     0
	  raidz2-0               DEGRADED     0     0     0
	    gpt/S7KGNU0Y722875X  ONLINE       0     0     0
	    gpt/S7KGNU0Y915666E  ONLINE       0     0     0
	    gpt/S7KGNU0Y912937J  ONLINE       0     0     0
	    gpt/S7KGNU0Y912955D  REMOVED      0     0     0
	    gpt/S7U8NJ0Y716854P  ONLINE       0     0     0
	    gpt/S7U8NJ0Y716801F  ONLINE       0     0     0
	    gpt/S757NS0Y700758M  ONLINE       0     0     0
	    gpt/S757NS0Y700760R  ONLINE       0     0     0

errors: No known data errors

  pool: zroot
 state: ONLINE
status: Some supported and requested features are not enabled on the pool.
	The pool can still be used, but some features are unavailable.
action: Enable all features using 'zpool upgrade'. Once this is done,
	the pool may no longer be accessible by software that does not support
	the features. See zpool-features(7) for details.
  scan: scrub repaired 0B in 00:00:53 with 0 errors on Thu Jul  2 03:50:16 2026
config:

	NAME                               STATE     READ WRITE CKSUM
	zroot                              ONLINE       0     0     0
	  mirror-0                         ONLINE       0     0     0
	    gpt/zfs0_20170718AA0000185556  ONLINE       0     0     0
	    gpt/zfs1_20170719AA1178164201  ONLINE       0     0     0

errors: No known data errors

Then I checked Nagios – it had found the same issue. I hadn’t check Nagios before today. Oh oh.

Let’s look at that device:

[12:47 r730-01 dvl ~] % sudo nvmecontrol identify nvme3
nvmecontrol: Identify request failed
[12:47 r730-01 dvl ~] % 

I went to LibreNMS to see if there was any trending information about that drive. It was not found. I suspect when it dropped out, LibreNMS also dropped it. If that’s the case, that’s not helpful.

Let’s try a reboot.

After a reboot, that drive (S7KGNU0Y912955D) was not found. My next idea: open up the case and reseat that device.

I’m hoping that device is not dead. It went into service 7 months ago and priced have jumped more than slightly lately.

When I checked another device:

[13:16 r730-01 dvl ~] % sudo smartctl -a /dev/nvme4
smartctl 7.5 2025-04-30 r5714 [FreeBSD 15.0-RELEASE-p11 amd64] (local build)
Copyright (C) 2002-25, Bruce Allen, Christian Franke, www.smartmontools.org

=== START OF INFORMATION SECTION ===
Model Number:                       Samsung SSD 990 EVO Plus 4TB
...
Available Spare:                    100%
Available Spare Threshold:          10%
Percentage Used:                    1%
Data Units Read:                    76,836,586 [39.3 TB]
Data Units Written:                 47,333,046 [24.2 TB]
Host Read Commands:                 2,617,490,888
Host Write Commands:                1,200,934,619
Controller Busy Time:               8,225
Power Cycles:                       23
Power On Hours:                     6,562
...

That usage level is not outrageous. All units in this zpool should be more-or-less identically used.

Drive is not dead

I powered off the host, and pulled out the ASUS Hyper M.2 X16 Gen 4 card. I move the NVMe card in question to a portable carrier. I hooked that up to my Macbook. It was identified as a “Samsung SSD 990 PRO 4TB” – that tells me it’s not completely dead.

bsdimp suggested I hook that up to a FreeBSD box.

While monitoring /var/log/messages, I did just not. Nothing. :(

I tried another USB port; nothing. I then tried a USB port on the back of the host:

Jul  2 15:02:59 r730-03 kernel: da8 at umass-sim1 bus 1 scbus19 target 0 lun 0
Jul  2 15:02:59 r730-03 kernel: da8: <Samsung SSD 990 PRO 4TB 1.00> Fixed Direct Access SPC-4 SCSI device
Jul  2 15:02:59 r730-03 kernel: da8: Serial Number 01293805127E
Jul  2 15:02:59 r730-03 kernel: da8: 40.000MB/s transfers
Jul  2 15:02:59 r730-03 kernel: da8: 3815447MB (7814037168 512 byte sectors)
Jul  2 15:02:59 r730-03 kernel: da8: quirks=0x2<NO_6_BYTE>

That give me hope. As does this:

[15:03 r730-03 dvl ~] % sudo smartctl -a /dev/da8
smartctl 7.5 2025-04-30 r5714 [FreeBSD 15.0-RELEASE-p11 amd64] (local build)
Copyright (C) 2002-25, Bruce Allen, Christian Franke, www.smartmontools.org

=== START OF INFORMATION SECTION ===
Model Number:                       Samsung SSD 990 PRO 4TB
Serial Number:                      S7KGNU0Y912955D
Firmware Version:                   4B2QJXD7
PCI Vendor/Subsystem ID:            0x144d
IEEE OUI Identifier:                0x002538
Total NVM Capacity:                 4,000,787,030,016 [4.00 TB]
Unallocated NVM Capacity:           0
Controller ID:                      1
NVMe Version:                       2.0
Number of Namespaces:               1
Namespace 1 Size/Capacity:          4,000,787,030,016 [4.00 TB]
Namespace 1 Utilization:            3,057,326,026,752 [3.05 TB]
Namespace 1 Formatted LBA Size:     512
Namespace 1 IEEE EUI-64:            002538 4951a0eec6
Local Time is:                      Thu Jul  2 15:03:56 2026 UTC
Firmware Updates (0x16):            3 Slots, no Reset required
Optional Admin Commands (0x0017):   Security Format Frmw_DL Self_Test
Optional NVM Commands (0x0055):     Comp DS_Mngmt Sav/Sel_Feat Timestmp
Log Page Attributes (0x2f):         S/H_per_NS Cmd_Eff_Lg Ext_Get_Lg Telmtry_Lg Log0_FISE_MI
Maximum Data Transfer Size:         512 Pages
Warning  Comp. Temp. Threshold:     82 Celsius
Critical Comp. Temp. Threshold:     85 Celsius

Supported Power States
St Op     Max   Active     Idle   RL RT WL WT  Ent_Lat  Ex_Lat
 0 +     9.39W       -        -    0  0  0  0        0       0
 1 +     9.39W       -        -    1  1  1  1        0       0
 2 +     9.39W       -        -    2  2  2  2        0       0
 3 -   0.0400W       -        -    3  3  3  3     4200    2700
 4 -   0.0050W       -        -    4  4  4  4      500   21800

Supported LBA Sizes (NSID 0x1)
Id Fmt  Data  Metadt  Rel_Perf
 0 +     512       0         0

=== START OF SMART DATA SECTION ===
SMART overall-health self-assessment test result: PASSED

SMART/Health Information (NVMe Log 0x02, NSID 0xffffffff)
Critical Warning:                   0x00
Temperature:                        34 Celsius
Available Spare:                    100%
Available Spare Threshold:          10%
Percentage Used:                    0%
Data Units Read:                    56,743,286 [29.0 TB]
Data Units Written:                 11,391,387 [5.83 TB]
Host Read Commands:                 2,383,774,544
Host Write Commands:                425,045,375
Controller Busy Time:               802
Power Cycles:                       21
Power On Hours:                     5,614
Unsafe Shutdowns:                   10
Media and Data Integrity Errors:    0
Error Information Log Entries:      0
Warning  Comp. Temperature Time:    0
Critical Comp. Temperature Time:    0
Temperature Sensor 1:               34 Celsius
Temperature Sensor 2:               36 Celsius

Warning: NVMe Get Log truncated to 0x200 bytes, 0x200 bytes zero filled
Error Information (NVMe Log 0x01, 16 of 64 entries)
No Errors Logged

Warning: NVMe Get Log truncated to 0x200 bytes, 0x034 bytes zero filled
Self-test Log (NVMe Log 0x06, NSID 0xffffffff)
Self-test status: No self-test in progress
No Self-tests Logged

Back into the box

I disconnected that mobile carrier from the FreeBSD USB port. I installed it back onto the PCIe card, swapping it with another device. It was in the slot farthest from the fan. Now it’s one slow closer to the fan.

I booted up the host. And I see:

[15:29 r730-01 dvl ~] % zpool status data04
  pool: data04
 state: ONLINE
status: One or more devices is currently being resilvered.  The pool will
	continue to function, possibly in a degraded state.
action: Wait for the resilver to complete.
  scan: resilver in progress since Thu Jul  2 15:28:49 2026
	1.73T / 9.30T scanned, 10.9G / 7.58T issued at 1.81G/s
	1.84G resilvered, 0.14% done, 01:11:23 to go
config:

	NAME                     STATE     READ WRITE CKSUM
	data04                   ONLINE       0     0     0
	  raidz2-0               ONLINE       0     0     0
	    gpt/S7KGNU0Y722875X  ONLINE       0     0     0
	    gpt/S7KGNU0Y915666E  ONLINE       0     0     0
	    gpt/S7KGNU0Y912937J  ONLINE       0     0     0
	    gpt/S7KGNU0Y912955D  ONLINE       0     0     2  (resilvering)
	    gpt/S7U8NJ0Y716854P  ONLINE       0     0     0
	    gpt/S7U8NJ0Y716801F  ONLINE       0     0     0
	    gpt/S757NS0Y700758M  ONLINE       0     0     0
	    gpt/S757NS0Y700760R  ONLINE       0     0     0

errors: No known data errors

This is as good as can be expected. :)

About 10 minutes later:

[15:29 r730-01 dvl ~] % zpool status data04
  pool: data04
 state: ONLINE
status: One or more devices has experienced an unrecoverable error.  An
	attempt was made to correct the error.  Applications are unaffected.
action: Determine if the device needs to be replaced, and clear the errors
	using 'zpool clear' or replace the device with 'zpool replace'.
   see: https://openzfs.github.io/openzfs-docs/msg/ZFS-8000-9P
  scan: resilvered 1.84G in 00:00:20 with 0 errors on Thu Jul  2 15:29:09 2026
config:

	NAME                     STATE     READ WRITE CKSUM
	data04                   ONLINE       0     0     0
	  raidz2-0               ONLINE       0     0     0
	    gpt/S7KGNU0Y722875X  ONLINE       0     0     0
	    gpt/S7KGNU0Y915666E  ONLINE       0     0     0
	    gpt/S7KGNU0Y912937J  ONLINE       0     0     0
	    gpt/S7KGNU0Y912955D  ONLINE       0     0     2
	    gpt/S7U8NJ0Y716854P  ONLINE       0     0     0
	    gpt/S7U8NJ0Y716801F  ONLINE       0     0     0
	    gpt/S757NS0Y700758M  ONLINE       0     0     0
	    gpt/S757NS0Y700760R  ONLINE       0     0     0

errors: No known data errors

All good. Let’s do a scrub before I clear out those errors.

[15:39 r730-01 dvl ~] % sudo zpool scrub data04
[15:40 r730-01 dvl ~] % zpool status data04    
  pool: data04
 state: ONLINE
status: One or more devices has experienced an unrecoverable error.  An
	attempt was made to correct the error.  Applications are unaffected.
action: Determine if the device needs to be replaced, and clear the errors
	using 'zpool clear' or replace the device with 'zpool replace'.
   see: https://openzfs.github.io/openzfs-docs/msg/ZFS-8000-9P
  scan: scrub in progress since Thu Jul  2 15:40:05 2026
	182G / 9.30T scanned at 45.6G/s, 0B / 9.30T issued
	0B repaired, 0.00% done, no estimated completion time
config:

	NAME                     STATE     READ WRITE CKSUM
	data04                   ONLINE       0     0     0
	  raidz2-0               ONLINE       0     0     0
	    gpt/S7KGNU0Y722875X  ONLINE       0     0     0
	    gpt/S7KGNU0Y915666E  ONLINE       0     0     0
	    gpt/S7KGNU0Y912937J  ONLINE       0     0     0
	    gpt/S7KGNU0Y912955D  ONLINE       0     0     2
	    gpt/S7U8NJ0Y716854P  ONLINE       0     0     0
	    gpt/S7U8NJ0Y716801F  ONLINE       0     0     0
	    gpt/S757NS0Y700758M  ONLINE       0     0     0
	    gpt/S757NS0Y700760R  ONLINE       0     0     0

errors: No known data errors

Logs

Let’s find that device.

[15:41 r730-01 dvl ~] % grep S7KGNU0Y912955D /var/run/dmesg.boot 
nda2: <Samsung SSD 990 PRO 4TB 4B2QJXD7 S7KGNU0Y912955D>
nda2: Serial Number S7KGNU0Y912955D

It is now nda2 – given it was : failing outstanding i/o
Jul 2 04:21:50 r730-01 kernel: nvme3: failing outstanding i/o
Jul 2 04:21:50 r730-01 kernel: nvme3: failing outstanding i/o
Jul 2 04:21:50 r730-01 kernel: nvme3: failing outstanding i/o
Jul 2 04:21:50 r730-01 kernel: nvme3: failing outstanding i/o
Jul 2 04:21:50 r730-01 kernel: nvme3: failing outstanding i/o
Jul 2 04:21:50 r730-01 kernel: nvme3: failing outstanding i/o
Jul 2 04:21:50 r730-01 kernel: nvme3: failing outstanding i/o
[/sourcecode]

Well, this host doesn’t run fail2ban, but those messages are “interesting”.

How much is nvme mentioned in the logs?

[12:31 r730-01 dvl ~] % grep nvme3 /var/log/messages
Jun 29 18:02:51 r730-01 kernel: nvme3:  mem 0x92000000-0x92003fff at device 0.0 numa-domain 0 on pci7
Jun 29 18:02:51 r730-01 kernel: nda3 at nvme3 bus 0 scbus19 target 0 lun 1
Jun 30 21:11:44 r730-01 kernel: nvme3:  mem 0x92000000-0x92003fff at device 0.0 numa-domain 0 on pci7
Jun 30 21:11:44 r730-01 kernel: nda3 at nvme3 bus 0 scbus19 target 0 lun 1
Jul  2 04:21:30 r730-01 kernel: nvme3: Resetting controller due to a timeout.
Jul  2 04:21:30 r730-01 kernel: nvme3: event="start"
Jul  2 04:21:30 r730-01 kernel: nvme3: Waiting for reset to complete
Jul  2 04:21:50 r730-01 kernel: nvme3: Waiting for reset to complete
Jul  2 04:21:50 r730-01 kernel: nvme3: controller ready did not become 0 within 20500 ms
Jul  2 04:21:50 r730-01 kernel: nvme3: event="timed_out"
Jul  2 04:21:50 r730-01 kernel: nvme3: failing outstanding i/o
Jul  2 04:21:50 r730-01 kernel: nvme3: READ (02) sqid:1 cid:126 nsid:1 lba:5816680880 len:8
Jul  2 04:21:50 r730-01 kernel: nvme3: ABORTED_BY_REQUEST (00/07) crd:0 m:0 dnr:1 p:0 sqid:1 cid:126 cdw0:0
Jul  2 04:21:50 r730-01 kernel: nvme3: READ (02) sqid:1 cid:125 nsid:1 lba:5819691576 len:8
Jul  2 04:21:50 r730-01 kernel: nvme3: ABORTED_BY_REQUEST (00/07) crd:0 m:0 dnr:1 p:0 sqid:1 cid:125 cdw0:0
Jul  2 04:21:50 r730-01 kernel: (nda3:nvme3:0:0:1): READ (02). NCB: opc=2 fuse=0 nsid=1 prp1=0 prp2=0 cdw=5ab381b0 1 7 0 0 0
Jul  2 04:21:50 r730-01 kernel: nvme3: READ (02) sqid:1 cid:119 nsid:1 lba:7155944008 len:8
Jul  2 04:21:50 r730-01 kernel: (nda3:nvme3:0:0:1): CAM status: NVME Status Error
Jul  2 04:21:50 r730-01 kernel: (nda3:nvme3:0:0:1): NVMe status: ABORTED_BY_REQUEST (00/07) DNR
Jul  2 04:21:50 r730-01 kernel: (nda3:nvme3:0:0:1): Error 5, Retries exhausted
Jul  2 04:21:50 r730-01 kernel: (nda3:nvme3:0:0:1): READ (02). NCB: opc=2 fuse=0 nsid=1 prp1=0 prp2=0 cdw=5ae17238 1 7 0 0 0
Jul  2 04:21:50 r730-01 kernel: nvme3: ABORTED_BY_REQUEST (00/07) crd:0 m:0 dnr:1 p:0 sqid:1 cid:119 cdw0:0
Jul  2 04:21:50 r730-01 kernel: (nda3:nvme3:0:0:1): CAM status: NVME Status Error
Jul  2 04:21:50 r730-01 kernel: (nda3:nvme3:0:0:1): NVMe status: ABORTED_BY_REQUEST (00/07) DNR
Jul  2 04:21:50 r730-01 kernel: (nda3:nvme3:0:0:1): Error 5, Retries exhausted
Jul  2 04:21:50 r730-01 kernel: nvme3: failing queued i/o
Jul  2 04:21:50 r730-01 kernel: nvme3: READ (02) sqid:2 cid:0 nsid:1 lba:3948824896 len:8
Jul  2 04:21:50 r730-01 kernel: nvme3: ABORTED_BY_REQUEST (00/07) crd:0 m:0 dnr:1 p:0 sqid:2 cid:0 cdw0:0
Jul  2 04:21:50 r730-01 kernel: (nda3:nvme3:0:0:1): READ (02). NCB: opc=2 fuse=0 nsid=1 prp1=0 prp2=0 cdw=aa870a48 1 7 0 0 0
Jul  2 04:21:50 r730-01 kernel: nvme3: failing outstanding i/o
Jul  2 04:21:50 r730-01 kernel: (nda3:nvme3:0:0:1): CAM status: NVME Status Error
Jul  2 04:21:50 r730-01 kernel: (nda3:nvme3:0:0:1): NVMe status: ABORTED_BY_REQUEST (00/07) DNR
Jul  2 04:21:50 r730-01 kernel: (nda3:nvme3:0:0:1): Error 5, Retries exhausted
Jul  2 04:21:50 r730-01 kernel: (nda3:nvme3:0:0:1): READ (02). NCB: opc=2 fuse=0 nsid=1 prp1=0 prp2=0 cdw=eb5e4940 0 7 0 0 0
Jul  2 04:21:50 r730-01 kernel: (nda3:nvme3:0:0:1): CAM status: NVME Status Error
Jul  2 04:21:50 r730-01 kernel: (nda3:nvme3:0:0:1): NVMe status: ABORTED_BY_REQUEST (00/07) DNR
Jul  2 04:21:50 r730-01 kernel: (nda3:nvme3:0:0:1): Error 5, Retries exhausted
Jul  2 04:21:50 r730-01 kernel: nvme3: READ (02) sqid:2 cid:121 nsid:1 lba:5969482320 len:8
Jul  2 04:21:50 r730-01 kernel: nvme3: ABORTED_BY_REQUEST (00/07) crd:0 m:0 dnr:1 p:0 sqid:2 cid:121 cdw0:0
Jul  2 04:21:50 r730-01 kernel: nda3 at nvme3 bus 0 scbus19 target 0 lun 1
Jul  2 04:21:50 r730-01 kernel: nvme3: failing outstanding i/o
Jul  2 04:21:50 r730-01 kernel: nvme3: READ (02) sqid:3 cid:125 nsid:1 lba:2128907408 len:1360
Jul  2 04:21:50 r730-01 kernel: nvme3: ABORTED_BY_REQUEST (00/07) crd:0 m:0 dnr:1 p:0 sqid:3 cid:125 cdw0:0
Jul  2 04:21:50 r730-01 kernel: nvme3: WRITE (01) sqid:3 cid:116 nsid:1 lba:4236260504 len:16
Jul  2 04:21:50 r730-01 kernel: nvme3: ABORTED_BY_REQUEST (00/07) crd:0 m:0 dnr:1 p:0 sqid:3 cid:116 cdw0:0
Jul  2 04:21:50 r730-01 kernel: (nda3:nvme3:0:0:1): READ (02). NCB: opc=2 fuse=0 nsid=1 prp1=0 prp2=0 cdw=63cf1250 1 7 0 0 0
Jul  2 04:21:50 r730-01 kernel: nvme3: READ (02) sqid:3 cid:121 nsid:1 lba:3846619816 len:8
Jul  2 04:21:50 r730-01 kernel: (nda3:nvme3:0:0:1): CAM status: NVME Status Error
Jul  2 04:21:50 r730-01 kernel: (nda3:nvme3:0:0:1): NVMe status: ABORTED_BY_REQUEST (00/07) DNR
Jul  2 04:21:50 r730-01 kernel: (nda3:nvme3:0:0:1): Error 6, Periph was invalidated
Jul  2 04:21:50 r730-01 kernel: (nda3:nvme3:0:0:1): READ (02). NCB: opc=2 fuse=0 nsid=1 prp1=0 prp2=0 cdw=7ee48c90 0 54f 0 0 0
Jul  2 04:21:50 r730-01 kernel: (nda3:nvme3:0:0:1): CAM status: NVME Status Error
Jul  2 04:21:50 r730-01 kernel: (nda3:nvme3:0:0:1): NVMe status: ABORTED_BY_REQUEST (00/07) DNR
Jul  2 04:21:50 r730-01 kernel: (nda3:nvme3:0:0:1): Error 6, Periph was invalidated
Jul  2 04:21:50 r730-01 kernel: (nda3:nvme3:0:0:1): WRITE (01). NCB: opc=1 fuse=0 nsid=1 prp1=0 prp2=0 cdw=fc803498 0 f 0 0 0
Jul  2 04:21:50 r730-01 kernel: (nda3:nvme3:0:0:1): CAM status: NVME Status Error
Jul  2 04:21:50 r730-01 kernel: (nda3:nvme3:0:0:1): NVMe status: ABORTED_BY_REQUEST (00/07) DNR
Jul  2 04:21:50 r730-01 kernel: (nda3:nvme3:0:0:1): Error 6, Periph was invalidated
Jul  2 04:21:50 r730-01 kernel: nvme3: ABORTED_BY_REQUEST (00/07) crd:0 m:0 dnr:1 p:0 sqid:3 cid:121 cdw0:0
Jul  2 04:21:50 r730-01 kernel: nvme3: failing outstanding i/o
Jul  2 04:21:50 r730-01 kernel: (nda3:nvme3:0:0:1): READ (02). NCB: opc=2 fuse=0 nsid=1 prp1=0 prp2=0 cdw=e546c2a8 0 7 0 0 0
Jul  2 04:21:50 r730-01 kernel: nvme3: READ (02) sqid:4 cid:112 nsid:1 lba:923353176 len:8
Jul  2 04:21:50 r730-01 kernel: (nda3:nvme3:0:0:1): CAM status: NVME Status Error
Jul  2 04:21:50 r730-01 kernel: (nda3:nvme3:0:0:1): NVMe status: ABORTED_BY_REQUEST (00/07) DNR
Jul  2 04:21:50 r730-01 kernel: (nda3:nvme3:0:0:1): Error 6, Periph was invalidated
Jul  2 04:21:50 r730-01 kernel: nvme3: ABORTED_BY_REQUEST (00/07) crd:0 m:0 dnr:1 p:0 sqid:4 cid:112 cdw0:0
Jul  2 04:21:50 r730-01 kernel: nvme3: READ (02) sqid:4 cid:115 nsid:1 lba:7403218720 len:8
Jul  2 04:21:50 r730-01 kernel: (nda3:nvme3:0:0:1): READ (02). NCB: opc=2 fuse=0 nsid=1 prp1=0 prp2=0 cdw=37094058 0 7 0 0 0
Jul  2 04:21:50 r730-01 kernel: nvme3: ABORTED_BY_REQUEST (00/07) crd:0 m:0 dnr:1 p:0 sqid:4 cid:115 cdw0:0
Jul  2 04:21:50 r730-01 kernel: (nda3:nvme3:0:0:1): CAM status: NVME Status Error
Jul  2 04:21:50 r730-01 kernel: (nda3:nvme3:0:0:1): NVMe status: ABORTED_BY_REQUEST (00/07) DNR
Jul  2 04:21:50 r730-01 kernel: (nda3:nvme3:0:0:1): Error 6, Periph was invalidated
Jul  2 04:21:50 r730-01 kernel: nvme3: failing outstanding i/o
Jul  2 04:21:50 r730-01 kernel: (nda3:nvme3:0:0:1): READ (02). NCB: opc=2 fuse=0 nsid=1 prp1=0 prp2=0 cdw=b9442720 1 7 0 0 0
Jul  2 04:21:50 r730-01 kernel: nvme3: READ (02) sqid:6 cid:123 nsid:1 lba:4092436328 len:8
Jul  2 04:21:50 r730-01 kernel: (nda3:nvme3:0:0:1): CAM status: NVME Status Error
Jul  2 04:21:50 r730-01 kernel: (nda3:nvme3:0:0:1): NVMe status: ABORTED_BY_REQUEST (00/07) DNR
Jul  2 04:21:50 r730-01 kernel: (nda3:nvme3:0:0:1): Error 6, Periph was invalidated
Jul  2 04:21:50 r730-01 kernel: nvme3: ABORTED_BY_REQUEST (00/07) crd:0 m:0 dnr:1 p:0 sqid:6 cid:123 cdw0:0
Jul  2 04:21:50 r730-01 kernel: nvme3: READ (02) sqid:6 cid:117 nsid:1 lba:4119853392 len:8
Jul  2 04:21:50 r730-01 kernel: (nda3:nvme3:0:0:1): READ (02). NCB: opc=2 fuse=0 nsid=1 prp1=0 prp2=0 cdw=f3ed9f68 0 7 0 0 0
Jul  2 04:21:50 r730-01 kernel: nvme3: ABORTED_BY_REQUEST (00/07) crd:0 m:0 dnr:1 p:0 sqid:6 cid:117 cdw0:0
Jul  2 04:21:50 r730-01 kernel: (nda3:nvme3:0:0:1): CAM status: NVME Status Error
Jul  2 04:21:50 r730-01 kernel: (nda3:nvme3:0:0:1): NVMe status: ABORTED_BY_REQUEST (00/07) DNR
Jul  2 04:21:50 r730-01 kernel: (nda3:nvme3:0:0:1): Error 6, Periph was invalidated
Jul  2 04:21:50 r730-01 kernel: nvme3: failing outstanding i/o
Jul  2 04:21:50 r730-01 kernel: (nda3:nvme3:0:0:1): READ (02). NCB: opc=2 fuse=0 nsid=1 prp1=0 prp2=0 cdw=f58ff950 0 7 0 0 0
Jul  2 04:21:50 r730-01 kernel: nvme3: FLUSH (00) sqid:11 cid:123 nsid:1
Jul  2 04:21:50 r730-01 kernel: (nda3:nvme3:0:0:1): CAM status: NVME Status Error
Jul  2 04:21:50 r730-01 kernel: (nda3:nvme3:0:0:1): NVMe status: ABORTED_BY_REQUEST (00/07) DNR
Jul  2 04:21:50 r730-01 kernel: (nda3:nvme3:0:0:1): Error 6, Periph was invalidated
Jul  2 04:21:50 r730-01 kernel: nvme3: ABORTED_BY_REQUEST (00/07) crd:0 m:0 dnr:1 p:0 sqid:11 cid:123 cdw0:0
Jul  2 04:21:50 r730-01 kernel: nvme3: failing outstanding i/o
Jul  2 04:21:50 r730-01 kernel: (nda3:nvme3:0:0:1): FLUSH (00). NCB: opc=0 fuse=0 nsid=1 prp1=0 prp2=0 cdw=0 0 0 0 0 0
Jul  2 04:21:50 r730-01 kernel: nvme3: READ (02) sqid:14 cid:119 nsid:1 lba:2128908768 len:2048
Jul  2 04:21:50 r730-01 kernel: (nda3:nvme3:0:0:1): CAM status: NVME Status Error
Jul  2 04:21:50 r730-01 kernel: (nda3:nvme3:0:0:1): NVMe status: ABORTED_BY_REQUEST (00/07) DNR
Jul  2 04:21:50 r730-01 kernel: (nda3:nvme3:0:0:1): Error 6, Periph was invalidated
Jul  2 04:21:50 r730-01 kernel: nvme3: ABORTED_BY_REQUEST (00/07) crd:0 m:0 dnr:1 p:0 sqid:14 cid:119 cdw0:0
Jul  2 04:21:50 r730-01 kernel: nvme3: READ (02) sqid:14 cid:121 nsid:1 lba:2128910816 len:2048
Jul  2 04:21:50 r730-01 kernel: nvme3: ABORTED_BY_REQUEST (00/07) crd:0 m:0 dnr:1 p:0 sqid:14 cid:121 cdw0:0
Jul  2 04:21:50 r730-01 kernel: nvme3: READ (02) sqid:14 cid:123 nsid:1 lba:2128912864 len:1368
Jul  2 04:21:50 r730-01 kernel: nvme3: ABORTED_BY_REQUEST (00/07) crd:0 m:0 dnr:1 p:0 sqid:14 cid:123 cdw0:0
Jul  2 04:21:50 r730-01 kernel: nvme3: READ (02) sqid:14 cid:122 nsid:1 lba:2128914232 len:2048
Jul  2 04:21:50 r730-01 kernel: (nda3:nvme3:0:0:1): READ (02). NCB: opc=2 fuse=0 nsid=1 prp1=0 prp2=0 cdw=7ee491e0 0 7ff 0 0 0
Jul  2 04:21:50 r730-01 kernel: nvme3: ABORTED_BY_REQUEST (00/07) crd:0 m:0 dnr:1 p:0 sqid:14 cid:122 cdw0:0
Jul  2 04:21:50 r730-01 kernel: (nda3:nvme3:0:0:1): CAM status: NVME Status Error
Jul  2 04:21:50 r730-01 kernel: (nda3:nvme3:0:0:1): NVMe status: ABORTED_BY_REQUEST (00/07) DNR
Jul  2 04:21:50 r730-01 kernel: (nda3:nvme3:0:0:1): Error 6, Periph was invalidated
Jul  2 04:21:50 r730-01 kernel: (nda3:nvme3:0:0:1): READ (02). NCB: opc=2 fuse=0 nsid=1 prp1=0 prp2=0 cdw=7ee499e0 0 7ff 0 0 0
Jul  2 04:21:50 r730-01 kernel: (nda3:nvme3:0:0:1): CAM status: NVME Status Error
Jul  2 04:21:50 r730-01 kernel: (nda3:nvme3:0:0:1): NVMe status: ABORTED_BY_REQUEST (00/07) DNR
Jul  2 04:21:50 r730-01 kernel: (nda3:nvme3:0:0:1): Error 6, Periph was invalidated
Jul  2 04:21:50 r730-01 kernel: (nda3:nvme3:0:0:1): READ (02). NCB: opc=2 fuse=0 nsid=1 prp1=0 prp2=0 cdw=7ee4a1e0 0 557 0 0 0
Jul  2 04:21:50 r730-01 kernel: (nda3:nvme3:0:0:1): CAM status: NVME Status Error
Jul  2 04:21:50 r730-01 kernel: (nda3:nvme3:0:0:1): NVMe status: ABORTED_BY_REQUEST (00/07) DNR
Jul  2 04:21:50 r730-01 kernel: (nda3:nvme3:0:0:1): Error 6, Periph was invalidated
Jul  2 04:21:50 r730-01 kernel: nvme3: READ (02) sqid:14 cid:126 nsid:1 lba:2128916280 len:2048
Jul  2 04:21:50 r730-01 kernel: nvme3: ABORTED_BY_REQUEST (00/07) crd:0 m:0 dnr:1 p:0 sqid:14 cid:126 cdw0:0
Jul  2 04:21:50 r730-01 kernel: (nda3:nvme3:0:0:1): READ (02). NCB: opc=2 fuse=0 nsid=1 prp1=0 prp2=0 cdw=7ee4a738 0 7ff 0 0 0
Jul  2 04:21:50 r730-01 kernel: nvme3: READ (02) sqid:14 cid:125 nsid:1 lba:2128918328 len:1368
Jul  2 04:21:50 r730-01 kernel: nvme3: ABORTED_BY_REQUEST (00/07) crd:0 m:0 dnr:1 p:0 sqid:14 cid:125 cdw0:0
Jul  2 04:21:50 r730-01 kernel: nvme3: failing outstanding i/o
Jul  2 04:21:50 r730-01 kernel: nvme3: READ (02) sqid:15 cid:121 nsid:1 lba:7603680584 len:8
Jul  2 04:21:50 r730-01 kernel: nvme3: ABORTED_BY_REQUEST (00/07) crd:0 m:0 dnr:1 p:0 sqid:15 cid:121 cdw0:0
Jul  2 04:21:50 r730-01 kernel: nvme3: failing outstanding i/o
Jul  2 04:21:50 r730-01 kernel: nvme3: READ (02) sqid:16 cid:126 nsid:1 lba:4406184968 len:8
Jul  2 04:21:50 r730-01 kernel: nvme3: ABORTED_BY_REQUEST (00/07) crd:0 m:0 dnr:1 p:0 sqid:16 cid:126 cdw0:0
Jul  2 04:21:50 r730-01 kernel: (nda3:nvme3:0:0:1): CAM status: NVME Status Error
Jul  2 04:21:50 r730-01 kernel: (nda3:nvme3:0:0:1): NVMe status: ABORTED_BY_REQUEST (00/07) DNR
Jul  2 04:21:50 r730-01 kernel: (nda3:nvme3:0:0:1): Error 6, Periph was invalidated
Jul  2 04:21:50 r730-01 kernel: (nda3:nvme3:0:0:1): READ (02). NCB: opc=2 fuse=0 nsid=1 prp1=0 prp2=0 cdw=7ee4af38 0 7ff 0 0 0
Jul  2 04:21:50 r730-01 kernel: (nda3:nvme3:0:0:1): CAM status: NVME Status Error
Jul  2 04:21:50 r730-01 kernel: (nda3:nvme3:0:0:1): NVMe status: ABORTED_BY_REQUEST (00/07) DNR
Jul  2 04:21:50 r730-01 kernel: (nda3:nvme3:0:0:1): Error 6, Periph was invalidated
Jul  2 04:21:50 r730-01 kernel: (nda3:nvme3:0:0:1): READ (02). NCB: opc=2 fuse=0 nsid=1 prp1=0 prp2=0 cdw=7ee4b738 0 557 0 0 0
Jul  2 04:21:50 r730-01 kernel: (nda3:nvme3:0:0:1): CAM status: NVME Status Error
Jul  2 04:21:50 r730-01 kernel: (nda3:nvme3:0:0:1): NVMe status: ABORTED_BY_REQUEST (00/07) DNR
Jul  2 04:21:50 r730-01 kernel: (nda3:nvme3:0:0:1): Error 6, Periph was invalidated
Jul  2 04:21:50 r730-01 kernel: (nda3:nvme3:0:0:1): READ (02). NCB: opc=2 fuse=0 nsid=1 prp1=0 prp2=0 cdw=c536f548 1 7 0 0 0
Jul  2 04:21:50 r730-01 kernel: (nda3:nvme3:0:0:1): CAM status: NVME Status Error
Jul  2 04:21:50 r730-01 kernel: (nda3:nvme3:0:0:1): NVMe status: ABORTED_BY_REQUEST (00/07) DNR
Jul  2 04:21:50 r730-01 kernel: (nda3:nvme3:0:0:1): Error 6, Periph was invalidated
Jul  2 04:21:50 r730-01 kernel: (nda3:nvme3:0:0:1): READ (02). NCB: opc=2 fuse=0 nsid=1 prp1=0 prp2=0 cdw=6a10c08 1 7 0 0 0
Jul  2 04:21:50 r730-01 kernel: (nda3:nvme3:0:0:1): CAM status: NVME Status Error
Jul  2 04:21:50 r730-01 kernel: (nda3:nvme3:0:0:1): NVMe status: ABORTED_BY_REQUEST (00/07) DNR
Jul  2 04:21:50 r730-01 kernel: (nda3:nvme3:0:0:1): Error 6, Periph was invalidated
Jul  2 04:21:50 r730-01 kernel: nvme3: Failed controller, stopping watchdog timeout.
Jul  2 04:21:50 r730-01 kernel: (nda3:nvme3:0:0:1): Periph destroyed
Jul  2 04:21:50 r730-01 kernel: nvme3: Failed controller, stopping watchdog timeout.

Well, that’s a lot. How’s the status?

[12:31 r730-01 dvl ~] % zpool status
  pool: data01
 state: ONLINE
  scan: scrub repaired 0B in 00:00:07 with 0 errors on Thu Jul  2 03:48:55 2026
config:

	NAME                  STATE     READ WRITE CKSUM
	data01                ONLINE       0     0     0
	  raidz2-0            ONLINE       0     0     0
	    gpt/Y7P0A022TEVE  ONLINE       0     0     0
	    gpt/Y7P0A02ATEVE  ONLINE       0     0     0
	    gpt/Y7P0A02DTEVE  ONLINE       0     0     0
	    gpt/Y7P0A02GTEVE  ONLINE       0     0     0
	    gpt/Y7P0A02LTEVE  ONLINE       0     0     0
	    gpt/Y7P0A02MTEVE  ONLINE       0     0     0
	    gpt/Y7P0A02QTEVE  ONLINE       0     0     0
	    gpt/Y7P0A033TEVE  ONLINE       0     0     0

errors: No known data errors

  pool: data02
 state: ONLINE
  scan: scrub repaired 0B in 00:03:59 with 0 errors on Thu Jul  2 03:52:59 2026
config:

	NAME                     STATE     READ WRITE CKSUM
	data02                   ONLINE       0     0     0
	  mirror-0               ONLINE       0     0     0
	    gpt/S6WSNJ0T208743F  ONLINE       0     0     0
	    gpt/S6WSNJ0T207774T  ONLINE       0     0     0

errors: No known data errors

  pool: data03
 state: ONLINE
  scan: scrub repaired 0B in 01:16:19 with 0 errors on Thu Jul  2 05:05:31 2026
config:

	NAME                     STATE     READ WRITE CKSUM
	data03                   ONLINE       0     0     0
	  mirror-0               ONLINE       0     0     0
	    gpt/WD_22492H800867  ONLINE       0     0     0
	    gpt/WD_230151801284  ONLINE       0     0     0
	  mirror-1               ONLINE       0     0     0
	    gpt/WD_230151801478  ONLINE       0     0     0
	    gpt/WD_230151800473  ONLINE       0     0     0

errors: No known data errors

  pool: data04
 state: DEGRADED
status: One or more devices have been removed.
	Sufficient replicas exist for the pool to continue functioning in a
	degraded state.
action: Online the device using zpool online' or replace the device with
	'zpool replace'.
  scan: scrub repaired 0B in 01:11:17 with 0 errors on Thu Jul  2 05:00:37 2026
config:

	NAME                     STATE     READ WRITE CKSUM
	data04                   DEGRADED     0     0     0
	  raidz2-0               DEGRADED     0     0     0
	    gpt/S7KGNU0Y722875X  ONLINE       0     0     0
	    gpt/S7KGNU0Y915666E  ONLINE       0     0     0
	    gpt/S7KGNU0Y912937J  ONLINE       0     0     0
	    gpt/S7KGNU0Y912955D  REMOVED      0     0     0
	    gpt/S7U8NJ0Y716854P  ONLINE       0     0     0
	    gpt/S7U8NJ0Y716801F  ONLINE       0     0     0
	    gpt/S757NS0Y700758M  ONLINE       0     0     0
	    gpt/S757NS0Y700760R  ONLINE       0     0     0

errors: No known data errors

  pool: zroot
 state: ONLINE
status: Some supported and requested features are not enabled on the pool.
	The pool can still be used, but some features are unavailable.
action: Enable all features using 'zpool upgrade'. Once this is done,
	the pool may no longer be accessible by software that does not support
	the features. See zpool-features(7) for details.
  scan: scrub repaired 0B in 00:00:53 with 0 errors on Thu Jul  2 03:50:16 2026
config:

	NAME                               STATE     READ WRITE CKSUM
	zroot                              ONLINE       0     0     0
	  mirror-0                         ONLINE       0     0     0
	    gpt/zfs0_20170718AA0000185556  ONLINE       0     0     0
	    gpt/zfs1_20170719AA1178164201  ONLINE       0     0     0

errors: No known data errors

Then I checked Nagios – it had found the same issue. I hadn’t check Nagios before today. Oh oh.

Let’s look at that device:

[12:47 r730-01 dvl ~] % sudo nvmecontrol identify nvme3
nvmecontrol: Identify request failed
[12:47 r730-01 dvl ~] % 

I went to LibreNMS to see if there was any trending information about that drive. It was not found. I suspect when it dropped out, LibreNMS also dropped it. If that’s the case, that’s not helpful.

Let’s try a reboot.

After a reboot, that drive (S7KGNU0Y912955D) was not found. My next idea: open up the case and reseat that device.

I’m hoping that device is not dead. It went into service 7 months ago and priced have jumped more than slightly lately.

When I checked another device:

[13:16 r730-01 dvl ~] % sudo smartctl -a /dev/nvme4
smartctl 7.5 2025-04-30 r5714 [FreeBSD 15.0-RELEASE-p11 amd64] (local build)
Copyright (C) 2002-25, Bruce Allen, Christian Franke, www.smartmontools.org

=== START OF INFORMATION SECTION ===
Model Number:                       Samsung SSD 990 EVO Plus 4TB
...
Available Spare:                    100%
Available Spare Threshold:          10%
Percentage Used:                    1%
Data Units Read:                    76,836,586 [39.3 TB]
Data Units Written:                 47,333,046 [24.2 TB]
Host Read Commands:                 2,617,490,888
Host Write Commands:                1,200,934,619
Controller Busy Time:               8,225
Power Cycles:                       23
Power On Hours:                     6,562
...

That usage level is not outrageous. All units in this zpool should be more-or-less identically used.

Drive is not dead

I powered off the host, and pulled out the ASUS Hyper M.2 X16 Gen 4 card. I move the NVMe card in question to a portable carrier. I hooked that up to my Macbook. It was identified as a “Samsung SSD 990 PRO 4TB” – that tells me it’s not completely dead.

bsdimp suggested I hook that up to a FreeBSD box.

While monitoring /var/log/messages, I did just not. Nothing. :(

I tried another USB port; nothing. I then tried a USB port on the back of the host:

Jul  2 15:02:59 r730-03 kernel: da8 at umass-sim1 bus 1 scbus19 target 0 lun 0
Jul  2 15:02:59 r730-03 kernel: da8: <Samsung SSD 990 PRO 4TB 1.00> Fixed Direct Access SPC-4 SCSI device
Jul  2 15:02:59 r730-03 kernel: da8: Serial Number 01293805127E
Jul  2 15:02:59 r730-03 kernel: da8: 40.000MB/s transfers
Jul  2 15:02:59 r730-03 kernel: da8: 3815447MB (7814037168 512 byte sectors)
Jul  2 15:02:59 r730-03 kernel: da8: quirks=0x2<NO_6_BYTE>

That give me hope. As does this:

[15:03 r730-03 dvl ~] % sudo smartctl -a /dev/da8
smartctl 7.5 2025-04-30 r5714 [FreeBSD 15.0-RELEASE-p11 amd64] (local build)
Copyright (C) 2002-25, Bruce Allen, Christian Franke, www.smartmontools.org

=== START OF INFORMATION SECTION ===
Model Number:                       Samsung SSD 990 PRO 4TB
Serial Number:                      S7KGNU0Y912955D
Firmware Version:                   4B2QJXD7
PCI Vendor/Subsystem ID:            0x144d
IEEE OUI Identifier:                0x002538
Total NVM Capacity:                 4,000,787,030,016 [4.00 TB]
Unallocated NVM Capacity:           0
Controller ID:                      1
NVMe Version:                       2.0
Number of Namespaces:               1
Namespace 1 Size/Capacity:          4,000,787,030,016 [4.00 TB]
Namespace 1 Utilization:            3,057,326,026,752 [3.05 TB]
Namespace 1 Formatted LBA Size:     512
Namespace 1 IEEE EUI-64:            002538 4951a0eec6
Local Time is:                      Thu Jul  2 15:03:56 2026 UTC
Firmware Updates (0x16):            3 Slots, no Reset required
Optional Admin Commands (0x0017):   Security Format Frmw_DL Self_Test
Optional NVM Commands (0x0055):     Comp DS_Mngmt Sav/Sel_Feat Timestmp
Log Page Attributes (0x2f):         S/H_per_NS Cmd_Eff_Lg Ext_Get_Lg Telmtry_Lg Log0_FISE_MI
Maximum Data Transfer Size:         512 Pages
Warning  Comp. Temp. Threshold:     82 Celsius
Critical Comp. Temp. Threshold:     85 Celsius

Supported Power States
St Op     Max   Active     Idle   RL RT WL WT  Ent_Lat  Ex_Lat
 0 +     9.39W       -        -    0  0  0  0        0       0
 1 +     9.39W       -        -    1  1  1  1        0       0
 2 +     9.39W       -        -    2  2  2  2        0       0
 3 -   0.0400W       -        -    3  3  3  3     4200    2700
 4 -   0.0050W       -        -    4  4  4  4      500   21800

Supported LBA Sizes (NSID 0x1)
Id Fmt  Data  Metadt  Rel_Perf
 0 +     512       0         0

=== START OF SMART DATA SECTION ===
SMART overall-health self-assessment test result: PASSED

SMART/Health Information (NVMe Log 0x02, NSID 0xffffffff)
Critical Warning:                   0x00
Temperature:                        34 Celsius
Available Spare:                    100%
Available Spare Threshold:          10%
Percentage Used:                    0%
Data Units Read:                    56,743,286 [29.0 TB]
Data Units Written:                 11,391,387 [5.83 TB]
Host Read Commands:                 2,383,774,544
Host Write Commands:                425,045,375
Controller Busy Time:               802
Power Cycles:                       21
Power On Hours:                     5,614
Unsafe Shutdowns:                   10
Media and Data Integrity Errors:    0
Error Information Log Entries:      0
Warning  Comp. Temperature Time:    0
Critical Comp. Temperature Time:    0
Temperature Sensor 1:               34 Celsius
Temperature Sensor 2:               36 Celsius

Warning: NVMe Get Log truncated to 0x200 bytes, 0x200 bytes zero filled
Error Information (NVMe Log 0x01, 16 of 64 entries)
No Errors Logged

Warning: NVMe Get Log truncated to 0x200 bytes, 0x034 bytes zero filled
Self-test Log (NVMe Log 0x06, NSID 0xffffffff)
Self-test status: No self-test in progress
No Self-tests Logged

Back into the box

I disconnected that mobile carrier from the FreeBSD USB port. I installed it back onto the PCIe card, swapping it with another device. It was in the slot farthest from the fan. Now it’s one slow closer to the fan.

I booted up the host. And I see:

[15:29 r730-01 dvl ~] % zpool status data04
  pool: data04
 state: ONLINE
status: One or more devices is currently being resilvered.  The pool will
	continue to function, possibly in a degraded state.
action: Wait for the resilver to complete.
  scan: resilver in progress since Thu Jul  2 15:28:49 2026
	1.73T / 9.30T scanned, 10.9G / 7.58T issued at 1.81G/s
	1.84G resilvered, 0.14% done, 01:11:23 to go
config:

	NAME                     STATE     READ WRITE CKSUM
	data04                   ONLINE       0     0     0
	  raidz2-0               ONLINE       0     0     0
	    gpt/S7KGNU0Y722875X  ONLINE       0     0     0
	    gpt/S7KGNU0Y915666E  ONLINE       0     0     0
	    gpt/S7KGNU0Y912937J  ONLINE       0     0     0
	    gpt/S7KGNU0Y912955D  ONLINE       0     0     2  (resilvering)
	    gpt/S7U8NJ0Y716854P  ONLINE       0     0     0
	    gpt/S7U8NJ0Y716801F  ONLINE       0     0     0
	    gpt/S757NS0Y700758M  ONLINE       0     0     0
	    gpt/S757NS0Y700760R  ONLINE       0     0     0

errors: No known data errors

This is as good as can be expected. :)

About 10 minutes later:

[15:29 r730-01 dvl ~] % zpool status data04
  pool: data04
 state: ONLINE
status: One or more devices has experienced an unrecoverable error.  An
	attempt was made to correct the error.  Applications are unaffected.
action: Determine if the device needs to be replaced, and clear the errors
	using 'zpool clear' or replace the device with 'zpool replace'.
   see: https://openzfs.github.io/openzfs-docs/msg/ZFS-8000-9P
  scan: resilvered 1.84G in 00:00:20 with 0 errors on Thu Jul  2 15:29:09 2026
config:

	NAME                     STATE     READ WRITE CKSUM
	data04                   ONLINE       0     0     0
	  raidz2-0               ONLINE       0     0     0
	    gpt/S7KGNU0Y722875X  ONLINE       0     0     0
	    gpt/S7KGNU0Y915666E  ONLINE       0     0     0
	    gpt/S7KGNU0Y912937J  ONLINE       0     0     0
	    gpt/S7KGNU0Y912955D  ONLINE       0     0     2
	    gpt/S7U8NJ0Y716854P  ONLINE       0     0     0
	    gpt/S7U8NJ0Y716801F  ONLINE       0     0     0
	    gpt/S757NS0Y700758M  ONLINE       0     0     0
	    gpt/S757NS0Y700760R  ONLINE       0     0     0

errors: No known data errors

All good. Let’s do a scrub before I clear out those errors.

[15:39 r730-01 dvl ~] % sudo zpool scrub data04
[15:40 r730-01 dvl ~] % zpool status data04    
  pool: data04
 state: ONLINE
status: One or more devices has experienced an unrecoverable error.  An
	attempt was made to correct the error.  Applications are unaffected.
action: Determine if the device needs to be replaced, and clear the errors
	using 'zpool clear' or replace the device with 'zpool replace'.
   see: https://openzfs.github.io/openzfs-docs/msg/ZFS-8000-9P
  scan: scrub in progress since Thu Jul  2 15:40:05 2026
	182G / 9.30T scanned at 45.6G/s, 0B / 9.30T issued
	0B repaired, 0.00% done, no estimated completion time
config:

	NAME                     STATE     READ WRITE CKSUM
	data04                   ONLINE       0     0     0
	  raidz2-0               ONLINE       0     0     0
	    gpt/S7KGNU0Y722875X  ONLINE       0     0     0
	    gpt/S7KGNU0Y915666E  ONLINE       0     0     0
	    gpt/S7KGNU0Y912937J  ONLINE       0     0     0
	    gpt/S7KGNU0Y912955D  ONLINE       0     0     2
	    gpt/S7U8NJ0Y716854P  ONLINE       0     0     0
	    gpt/S7U8NJ0Y716801F  ONLINE       0     0     0
	    gpt/S757NS0Y700758M  ONLINE       0     0     0
	    gpt/S757NS0Y700760R  ONLINE       0     0     0

errors: No known data errors

Logs

Let’s find that device.

[15:41 r730-01 dvl ~] % grep S7KGNU0Y912955D /var/run/dmesg.boot 
nda2: <Samsung SSD 990 PRO 4TB 4B2QJXD7 S7KGNU0Y912955D>
nda2: Serial Number S7KGNU0Y912955D

It is now nda2 – given it was nvme3 before, and it moved slots, I figure that’s our device.

[15:43 r730-01 dvl ~] % sudo nvmecontrol logpage -p 2 nvme2
SMART/Health Information Log
============================
Critical Warning State:         0x00
 Available spare:               0
 Temperature:                   0
 Device reliability:            0
 Read only:                     0
 Volatile memory backup:        0
Temperature:                    313 K, 39.85 C, 103.73 F
Available spare:                100
Available spare threshold:      10
Percentage used:                0
Data units (512,000 byte) read: 56780042
Data units written:             11396179
Host read commands:             2385648136
Host write commands:            425345148
Controller busy time (minutes): 802
Power cycles:                   22
Power on hours:                 5614
Unsafe shutdowns:               10
Media errors:                   0
No. error info log entries:     0
Warning Temp Composite Time:    0
Error Temp Composite Time:      0
Temperature Sensor 1:           313 K, 39.85 C, 103.73 F
Temperature Sensor 2:           326 K, 52.85 C, 127.13 F
Temperature 1 Transition Count: 0
Temperature 2 Transition Count: 0
Total Time For Temperature 1:   0
Total Time For Temperature 2:   0

An hour or so later

Phew.


[16:50 r730-01 dvl ~/bin] % zpool status data04
  pool: data04
 state: ONLINE
status: One or more devices has experienced an unrecoverable error.  An
	attempt was made to correct the error.  Applications are unaffected.
action: Determine if the device needs to be replaced, and clear the errors
	using 'zpool clear' or replace the device with 'zpool replace'.
   see: https://openzfs.github.io/openzfs-docs/msg/ZFS-8000-9P
  scan: scrub repaired 0B in 01:10:47 with 0 errors on Thu Jul  2 16:50:52 2026
config:

	NAME                     STATE     READ WRITE CKSUM
	data04                   ONLINE       0     0     0
	  raidz2-0               ONLINE       0     0     0
	    gpt/S7KGNU0Y722875X  ONLINE       0     0     0
	    gpt/S7KGNU0Y915666E  ONLINE       0     0     0
	    gpt/S7KGNU0Y912937J  ONLINE       0     0     0
	    gpt/S7KGNU0Y912955D  ONLINE       0     0     2
	    gpt/S7U8NJ0Y716854P  ONLINE       0     0     0
	    gpt/S7U8NJ0Y716801F  ONLINE       0     0     0
	    gpt/S757NS0Y700758M  ONLINE       0     0     0
	    gpt/S757NS0Y700760R  ONLINE       0     0     0

errors: No known data errors
[16:51 r730-01 dvl ~/bin] % sudo zpool clear data04
[16:51 r730-01 dvl ~/bin] % zpool status data04    
  pool: data04
 state: ONLINE
  scan: scrub repaired 0B in 01:10:47 with 0 errors on Thu Jul  2 16:50:52 2026
config:

	NAME                     STATE     READ WRITE CKSUM
	data04                   ONLINE       0     0     0
	  raidz2-0               ONLINE       0     0     0
	    gpt/S7KGNU0Y722875X  ONLINE       0     0     0
	    gpt/S7KGNU0Y915666E  ONLINE       0     0     0
	    gpt/S7KGNU0Y912937J  ONLINE       0     0     0
	    gpt/S7KGNU0Y912955D  ONLINE       0     0     0
	    gpt/S7U8NJ0Y716854P  ONLINE       0     0     0
	    gpt/S7U8NJ0Y716801F  ONLINE       0     0     0
	    gpt/S757NS0Y700758M  ONLINE       0     0     0
	    gpt/S757NS0Y700760R  ONLINE       0     0     0

errors: No known data errors
[16:51 r730-01 dvl ~/bin] % 

Seems OK now.

The next day

The next day, Friday Jul 3 2026, all was still well. I went looking for temperatures spikes.

I found on, only for the basement room temperature. It had hit 80F for the first time since last summer. See graphs below.

It could be that was enough to loosen the connection between that M.2 device and its connector. This device, and others, were installed in December of 2025 (about 5 months ago) when the temperature was about 55F. NOTE: This stick was the farthest from the fan. If the next device to drop is S7KGNU0Y912937J, we’ll know the position is relevant.

7 day trend
7 day trend
the past year
the past year
Top

Identity Crisis In The Age of AI

Post by Diego Elio Pettenò via Flameeyes's Weblog »

Usual caveat emptor here: what Im writing here is my personal opinion, and while it does relate to a field my current employer (Meta) has interest in, it does not represent the views of my current, past, or future employers. Yes we all get bored by these preambles, but if you want to still be able to hear the opinions of seasoned engineers you’ll have to live with them. I personally would not want to lose my job because my posts are reported as being related to it. They’re not.

Over the past year, if you are a tech enthusiast, you cannot have missed the raise of a new class of software, which I personally started referring to as APA, Artificial Personal Assistant. Both because I dislike the “claws” name, and because as it was predicable a number of projects are now spawning to refine (pun intended) the concept and in some case “productify” it. I have played around with a couple of these projects (harnesses? frameworks?) if nothing else because in my profession I don’t get to choose not to engage at all with the newest hype without a good reason. I even engaged, at one time, with Bitcoin, if nothing else to know exactly why I did not want to ever touch any other carboncurrencies in my life.

I could be writing about what I expect these APAs to achieve, both in terms of wins and losses for society, of course. But that’s not honestly something I have enough expertise to write about. I’m sure that there are plenty of opinionists that will provide their hot takes as time goes by, and about as many actual researchers looking to make a study of them that will not get as many readers as the scary headlines. (Yes I’m being a bit cynical here.) Instead, I want to focus on one problem that has been nibbling at the back of my mind for many years now: who is the identity behind an account?

You may remember that a few years back I have written about my difficulties with setting up password sharing with my then-girlfriend (and now wife), as well as with my mother and my sister for different sets of accounts. The solution I’m using to this day is not really my favourite: for most (but not all, for various reasons) accounts, we now use shared email aliases, some of which go to me and my wife, others to me, my mother and sister, and some others going to my wife and her mother. This allows us to at least receive all the required notifications to handle these “shared” accounts, but they are, still, in an individual name. These become annoying when you have to call and they request to talk to the account holder.

I have to say I’m particularly surprised that, after this many years of digital life, we still haven’t solved the problem that many accounts belong to a family, more than to an individual. I know quite a few services allow supervised accounts for minors (my employer does that for Instagram, to the best of my understanding — I don’t work on that product and I have no need for supervised accounts so I have no idea how any of that works), and I believe Apple is the state of the art in terms of “family accounts”, but I have not used an Apple product outside of work for over ten years. Google theoretically supports “Google One Family” accounts, but the only features that appear to be useful at that point are Google Play paid-app sharing (which is also almost impossible to confirm before buying the app!) At the very least I would enjoy having a “Family Drive” where the files are organized together, instead of being shared “individually”, but I fear that particular feature is still gated behind the professional Workspace product (which explicitly shed any notion of being usable for families years back.)

Banks and other financial institutions, of course, already mostly know how to deal with this. Joint current accounts have been a thing for decades, and most credit card issuers have a concept of “additional cardholders” with more or less access to the card’s information. For example, American Express allows my wife to see all of her transactions in real time, as well as the offers and membership points, while my “main cardholder” account includes both our transactions, statements and so on. But somehow most of the household bills end up in a single account holder: power, broadband, mobile phones… Octopus is at least a little better in terms of being able to put both names on the account and thus count us both as account holders, but even that required us to send an email as it is not part of the normal flow of operations online.

But how does this even connect to APAs? Well, from a certain point of view, APAs could be considered similar to supervised minors. And my personal preference when playing with them, is for them to get their own accounts and identities, even though the default path that most people seem to take is to provide them with full access to their own (the user’s) accounts. This is understandable, as often registering a second account for the same service is considered a violation of the Terms of Service. Or it’s just incredibly complicated and fraught with issues. For instance, I tried providing my most recent APA with its own GitHub account – both so that it is very clear for the receiving end that they are interacting with an APA, and to make it clear on who the person responsible for the APA’s behaviour is (me) – but at first the account has been restricted and left pending review for nearly a month. I don’t blame GitHub: ensuring fairness for contributors on both the executing and receiving side requires a complex balance of intention and letter of the terms. Eventually, the account was reinstated, and even made its first contributions.

As an aside, I’m very much throwing anything that the APA is generating to the public as 0BSD, the most accepted intentionally permissive license I’m aware of.

Part of the problem is that the type of accounts that APAs would end up using are not new for most of these services, they just are not the kind of accounts those services have wanted to have in the first place: bot accounts. For the longest time, bot accounts have been the adversary, bringing nothing but spam and negative value content, at least outside of the enterprise space, which is why often the APIs for supervised bot accounts actually exist, but they’re behind a paywall, or at least restricted to use in ringfenced aspects, such as GitHub organizations. It also meant that the “valid” bot accounts would be balanced against the number of users they supported. A company with a dozen employees and a couple of bots is easier to support than a reality where every geek out there ends up with their own personal bot, or even more than one.

But to be clear, the problems and limitations around supervised bot identities do not stop at commercial services. Even when taking my least favourite option, the self-hosted path, there rarely are proper paths for these bots to be supervised: Nextcloud doesn’t have this as an option (though at least in some features it supports delegates), Home Assistant has an extremely coarse-grained permission system (at least for now, who knows, they can change it next month for all I know!), and good luck trying to get a read-only password set up with Mail-U.

And some of these end up being a horrible game of ping-pong between them. I would like for my household-wide APA to have access to both my and my wife’s calendars, and the shared “Family” calendar. We share each other calendars’ already, but we have our own mostly so that we don’t get reminded to go to an appointment than the other is due for…

… but it turned out to be a lot more complex than that. Google Calendar APIs require OAuth2 permissions to access the calendar in read-write mode. You can get a testing API key for that, but it needs reauthentication every seven days which is completely pointless for an APA. And for companies (Office APA? More like an Artificial Receptionist then) you have the option to make the key internal — but if you need to share it with two consumer accounts? You need to go through the whole verification as if the app was a launched startup! Ridiculous!

So I looked into alternative solutions and tried Radicale… and it’s almost as terrible. Well, it’s not as much terrible as it is not designed for either humans or bots. It’s over complicated to set up, with custom configuration languages and direct filesystem access, but also still relies on you providing authentication separately (okay that’s “easy” with Authelia thankfully) and even then you get no UI so you need to find something you can use with it, because sure as heck you can’t use Google Calendar on Android for that.

I have, eventually, found a half-decent way to test this out with aCalendar+ and DAVx⁵, but besides both apps costing money (sure, you can get DAVx⁵ on F-Droid, or build it yourself, but that’s not feasible for most people), they’re just… clunky. The fact that you need two separate apps to be able to get there is already annoying, but even then… oh and let’s not forget that Nextcloud doesn’t do calendar from their own Android app! Maybe everyone is using Macs and iPhones so they don’t care about the rest of us normies?

And this is without going back to “What is an email?” and the fact that oh-so-many authentication services require a strict correlation between email addresses and accounts — which doesn’t really work when you decide to use shared email aliases, and in particular, per-service shared email aliases.

For instance, any Shopify shop ends up recognizing you by email address, to the point that if you pay with PayPal, it will just use that email address for your order. Which is fine for an individual, but quite a lot more annoying when my wife wants to know when the thing I ordered arrives, while I’m on the other side of the world for a work trip. And it became annoying to me because, up until recently, my Shop app recognized email wasn’t the same as PayPal — mostly as a result of my having had PayPal now in four separate countries (and not having been able to immediately delete the old accounts when creating a new one.)

None of these are particularly novel problems, none of these are Earth-shattering, but they’re definitely going to be the kind of problem a lot of engineers will have to solve, or at least attempt to solve, if they want their software to fit in with a world that, whether we like it or not, is going to adopt some level of LLM automation, in form of Artificial Personal Assistants and the like.

Because the alternative, which is scary to me but unfortunately extremely likely, is that users of these artificial assistants will simply give them the passwords of their main accounts. Which is both risky for the users’ data (would you really let an LLM delete your emails without you?), and a bad experience for whoever is on the other side of a conversation (are you talking to a person, or to a bot?)

Or maybe Douglas Adams was right once again, and we’re on our way to have electric monks. On horses, of course.

Top

MMO 20044: Season 4 startet

Post by Bernd Dau via Zockertown: Nerten News »

🚀 MMO 20044: Season 4 startet – Neue Features & Balance-Änderungen

Die vierte Runde unseres strategischen Browser-MMO geht an den Start! Season 4 bringt spannende Neuerungen, verbessertes Balancing und mehr Interaktion zwischen den Spielern.

---

📢 Was ist neu in Season 4?

⚔️ Genesis-Angriffe: Strategische Sabotage

Ab sofort können Spieler mit aktivem Genesis-Projekt direkt angegriffen werden! Ein erfolgreicher Genesis-Angriff:

  • Verzögert das Genesis-Projekt des Verteidigers um 18 Stunden
  • Kostet den Angreifer 300 Ticks
  • Setzt einen 24-Stunden-Cooldown für den Angreifer
  • Garantiert den Sieg für den Angreifer (kein Zufall)

⚠️ Wichtig: Die maximale Bauzeit ist auf 24 Stunden gedeckelt – kein Spieler kann durch multiple Angriffe dauerhaft blockiert werden!

🛒 Gadget-Händler: Spezialfähigkeiten kaufen

Besuche den Gadget-Händler (alle 8 Stunden verfügbar) und kaufe nützliche Einmal-Effekte:

  • Schnellsonde: 10 Rohstoffe + 1 Artefakt → Alle laufenden Erkundungen sofort abschließen
  • Notschild: 50 Kristalle → +50% Verteidigungsbonus für den nächsten Angriff
  • Boost-Triebwerk: 200 Rohstoffe → Nächste Reise kostet nur die Hälfte Ticks
  • Saboteur-Sonde: 5 Artefakte → Verzögert fremdes Genesis-Projekt um 3 Stunden

⚖️ Balancing-Anpassungen

  • Materieumwandler: Kostet jetzt 15 Ticks + 1 Stunde Cooldown pro Umwandlung (verhindert Missbrauch)
  • Genesis-Upkeep: Kosten halbiert (z. B. Level 3: 100 Rohstoffe + 10 Artefakte/Stunde statt 200+20)

---

🏆 Hall of Fame – Die Sieger der vorherigen Seasons

Die Trophäen der letzten drei Seasons gehen an:

  • Season 3: onli (Kael) – Erste(r) mit Genesis Level 5!
  • Season 2: femur (Cyborg)
  • Season 1: M0nly (Kael)

Möge die beste Strategie gewinnen! 🎯

---

🎯 Tipps für Season 4

  • Nicht zu früh mit Genesis starten! Erst Planeten besiedeln und Produktion aufbauen.
  • Ressourcen managen: Die neuen Upkeep-Kosten erfordern gute Planung.
  • Gadgets strategisch einsetzen: Saboteur-Sonden können den Unterschied machen!

Viel Erfolg in Season 4!


– Das MMO-20044 Team

Top

EuroBSDCon 2026 Travel Grant Open

Post by FreeBSD Foundation via FreeBSD Foundation »

The Travel Grant Application for EuroBSDCon 2026 is now open. The Foundation can help you attend EuroBSDCon through our travel grant program. Travel grants are available to FreeBSD developers and advocates who need assistance with travel expenses for attending conferences related to FreeBSD development. Applications are due July 7, 2026Find out more and apply today.

Did you know the Foundation also provides grants for other technical events? If you feel that your attendance at one of these events will benefit the FreeBSD Project and Community, and you need assistance getting there, please fill out the general travel grant application. Your application must be received 7 weeks prior to the event.

The post EuroBSDCon 2026 Travel Grant Open first appeared on FreeBSD Foundation.

Top

after pkgbasify – not finding all the repos?

Post by Dan Langille via Dan Langille's Other Diary »

If, after moving to pkgbase (for me, that was via pkgbasify), you discover you can’t find the package in question, you might, like me, run this command:

% pkg repos -e
[18:25 r720-02 dvl ~] % pkg repos -e
local: { 
    url             : "https://fedex.example.org/packages/FreeBSD:15:amd64/",
    enabled         : yes,
    priority        : 0,
    signature_type  : "PUBKEY",
    pubkey          : "/etc/ssl/slocum.unixathome.org.cert"
  }

Not to worry, that’s my local repo. What’s missing there is pkgbase. When I compare this to another host, I saw:

[18:25 gw01 dvl ~] % pkg repos -e
FreeBSD-base: { 
    url             : "pkg+https://pkg.FreeBSD.org/FreeBSD:15:amd64/base_release_0",
    enabled         : yes,
    priority        : 0,
    mirror_type     : "SRV",
    signature_type  : "FINGERPRINTS",
    fingerprints    : "/usr/share/keys/pkgbase-15"
  }
local: { 
    url             : "http://fedex.int.example.org/packages/FreeBSD:15:amd64/",
    enabled         : yes,
    priority        : 0,
    signature_type  : "PUBKEY",
    pubkey          : "/etc/ssl/slocum.unixathome.org.cert"
  }
[18:25 gw01 dvl ~] % sudoedit /usr/local/etc/pkg/repos/FreeBSD-base.conf 

Where is FreeBSD-base in the first host?

Checking:

[18:25 gw01 dvl ~] % cat /usr/local/etc/pkg/repos/FreeBSD.conf     
FreeBSD-ports: { enabled: no }
FreeBSD-ports-kmods: { enabled: no }

OK, I’ve disable those two, on purpose.

I had the same thing on r720-02

This took me a while to figure out. It was /usr/local/etc/pkg.conf, which contained:

REPOS_DIR               : [
  /usr/local/etc/pkg/repos/,
]
BACKUP_LIBRARIES=yes

I’ve been using that approach for many years. It’s not the best. I’m now using the enabled: no approach instead.

My solution:

[18:35 r720-02 dvl /usr/local/etc] % sudo mv pkg.conf.sample pkg.conf

Now I have:

[18:36 r720-02 dvl /usr/local/etc] % pkg repos -e
FreeBSD-base: { 
    url             : "pkg+https://pkg.FreeBSD.org/FreeBSD:15:amd64/base_release_0",
    enabled         : yes,
    priority        : 0,
    mirror_type     : "SRV",
    signature_type  : "FINGERPRINTS",
    fingerprints    : "/usr/share/keys/pkgbase-15"
  }
local: { 
    url             : "https://fedex.unixathome.org/packages/FreeBSD:15:amd64/",
    enabled         : yes,
    priority        : 0,
    signature_type  : "PUBKEY",
    pubkey          : "/etc/ssl/slocum.unixathome.org.cert"
  }

Success.

Top

Running pkgbasify on FreeBSD 15.0

Post by Dan Langille via Dan Langille's Other Diary »

At BSDCan 2026, I attended the pkgbase in Production: A Practical Overview talk. What impressed me was the ease with which one could upgrade from 15.0 to 15.1 etc. Included in the demonstration was pkgbasify (“Automatically convert a FreeBSD system to use pkgbase”).

In this post:

  • the host being modified is running FreeBSD 15.0

Today, I took the plunge on my r730-01 host.

Following the instructions at https://github.com/FreeBSDFoundation/pkgbasify I did the following.

I created my own new boot environment (BE). This is where I could fall back, should the upgrade fail. The upgrade process will ask if you want to create a new BE. See blow.

[17:39 r730-01 dvl ~] % sudo bectl create before-pkgbasify
[17:39 r730-01 dvl ~] % uname -a
FreeBSD r730-01.int.unixathome.org 15.0-RELEASE-p10 FreeBSD 15.0-RELEASE-p10 GENERIC amd64

This is not in the instructions, but I did it anyway.

[17:41 r730-01 dvl ~] % sudo freebsd-update fetch install 
src component not installed, skipped
Looking up update.FreeBSD.org mirrors... 3 mirrors found.
Fetching public key from update2.freebsd.org... done.
Fetching metadata signature for 15.0-RELEASE from update2.freebsd.org... done.
Fetching metadata index... done.
Fetching 2 metadata files... done.
Inspecting system... done.
Preparing to download files... done.

No updates needed to update system to 15.0-RELEASE-p10.
No updates are available to install.

All this was done as root. I did not want to invoke sudo for this.

[17:42 r730-01 dvl ~] % su
Password:
root@r730-01:/home/dvl # cd
root@r730-01:~ # fetch https://github.com/FreeBSDFoundation/pkgbasify/raw/refs/heads/main/pkgbasify.lua
pkgbasify.lua                                           21 kB 6069 kBps    00s
root@r730-01:~ # chmod +x ./pkgbasify.lua
root@r730-01:~ # 

Let’s hit tmux in case my session gets dropped.

root@r730-01:~ # tmux

root@r730-01:~ # ./pkgbasify.lua

Running this tool will irreversibly modify your system to use pkgbase.
This tool and pkgbase are experimental and may result in a broken system.
It is highly recommended to backup your system before proceeding.
Do you accept this risk and wish to continue? (y/n) y

Found unexpected symlinks in /etc
    /etc/aliases.db
These symlinks will be overwritten by pkg(8) if they conflict with files in
base system packages. Please ensure that your system configuration will not be
broken if these symlinks are overwritten.
Continue and overwrite symlinks in /etc? (y/n) y

No big deal, go ahead.

Here’s what I had before:

[17:52 r730-01 dvl ~] % ls -l /etc/aliases.db
lrwxr-xr-x  1 root wheel 15 2024.08.08 11:47 /etc/aliases.db -> mail/aliases.db
[17:52 r730-01 dvl ~] % 

Continuing:

Updating FreeBSD-base repository catalogue...
FreeBSD-base repository is up to date.
Updating local repository catalogue...
Fetching meta.conf: 100%     179 B   0.2 kB/s    00:01    
Fetching data: 100%   357 KiB 365.8 kB/s    00:01    
Processing entries: 100%
local repository update completed. 967 packages processed.
All repositories are up to date.
Checking integrity... done (0 conflicting)
Your packages are up to date.
Updating FreeBSD-ports repository catalogue...
Fetching meta.conf: 100%     179 B   0.2 kB/s    00:01    
Fetching data: 100%    10 MiB  11.0 MB/s    00:01    
Processing entries: 100%
FreeBSD-ports repository update completed. 37066 packages processed.
Updating FreeBSD-ports-kmods repository catalogue...
Fetching meta.conf: 100%     179 B   0.2 kB/s    00:01    
Fetching data: 100%    35 KiB  35.9 kB/s    00:01    
Processing entries: 100%
FreeBSD-ports-kmods repository update completed. 240 packages processed.
Updating FreeBSD-base repository catalogue...
Fetching meta.conf: 100%     179 B   0.2 kB/s    00:01    
Fetching data: 100%    80 KiB  82.3 kB/s    00:01    
Processing entries: 100%
FreeBSD-base repository update completed. 496 packages processed.
All repositories are up to date.
Create a boot environment before conversion? (y/n) y

Another BE is created. I’m OK with that. Now we have:

[17:52 r730-01 dvl ~] % bectl list
BE                              Active Mountpoint Space Created
before-pkgbasify                -      -          3.85M 2026-06-29 17:39
default                         NR     /          16.3G 2025-11-25 17:17
pre-pkgbasify_2026-06-29_175241 -      -          344K  2026-06-29 17:52

Now for the big stuff:

Creating //usr/local/etc/pkg/repos/FreeBSD-base.conf
Adding BACKUP_LIBRARIES=yes to /usr/local/etc/pkg.conf
Updating FreeBSD-base repository catalogue...
FreeBSD-base repository is up to date.
FreeBSD-base is up to date.
The following 312 package(s) will be affected (of 0 checked):

New packages to be INSTALLED:
        FreeBSD-acct: 15.0 [FreeBSD-base]
        FreeBSD-acpi: 15.0 [FreeBSD-base]
        FreeBSD-apm: 15.0 [FreeBSD-base]
        FreeBSD-at: 15.0 [FreeBSD-base]
        FreeBSD-atf: 15.0 [FreeBSD-base]
        FreeBSD-atf-dev: 15.0 [FreeBSD-base]
        FreeBSD-atf-lib: 15.0 [FreeBSD-base]
        FreeBSD-audit: 15.0p10 [FreeBSD-base]
        FreeBSD-audit-dev: 15.0 [FreeBSD-base]
        FreeBSD-audit-dev-lib32: 15.0 [FreeBSD-base]
        FreeBSD-audit-lib: 15.0 [FreeBSD-base]
        FreeBSD-audit-lib32: 15.0 [FreeBSD-base]
        FreeBSD-autofs: 15.0 [FreeBSD-base]
        FreeBSD-bhyve: 15.0 [FreeBSD-base]
        FreeBSD-blocklist: 15.0p3 [FreeBSD-base]
        FreeBSD-blocklist-dev: 15.0 [FreeBSD-base]
        FreeBSD-blocklist-dev-lib32: 15.0 [FreeBSD-base]
        FreeBSD-blocklist-lib32: 15.0 [FreeBSD-base]
        FreeBSD-bluetooth: 15.0 [FreeBSD-base]
        FreeBSD-bluetooth-dev: 15.0 [FreeBSD-base]
        FreeBSD-bluetooth-dev-lib32: 15.0 [FreeBSD-base]
        FreeBSD-bluetooth-lib: 15.0 [FreeBSD-base]
        FreeBSD-bluetooth-lib32: 15.0 [FreeBSD-base]
        FreeBSD-bmake: 15.0 [FreeBSD-base]
        FreeBSD-bootloader: 15.0 [FreeBSD-base]
        FreeBSD-bootloader-dev: 15.0 [FreeBSD-base]
        FreeBSD-bsdconfig: 15.0p9 [FreeBSD-base]
        FreeBSD-bsdinstall: 15.0p9 [FreeBSD-base]
        FreeBSD-bsnmp: 15.0p10 [FreeBSD-base]
        FreeBSD-bsnmp-dev: 15.0p10 [FreeBSD-base]
        FreeBSD-bsnmp-dev-lib32: 15.0p10 [FreeBSD-base]
        FreeBSD-bsnmp-lib32: 15.0p10 [FreeBSD-base]
        FreeBSD-bzip2: 15.0 [FreeBSD-base]
        FreeBSD-bzip2-dev: 15.0 [FreeBSD-base]
        FreeBSD-bzip2-dev-lib32: 15.0 [FreeBSD-base]
        FreeBSD-bzip2-lib: 15.0 [FreeBSD-base]
        FreeBSD-bzip2-lib32: 15.0 [FreeBSD-base]
        FreeBSD-caroot: 15.0 [FreeBSD-base]
        FreeBSD-ccdconfig: 15.0 [FreeBSD-base]
        FreeBSD-certctl: 15.0p10 [FreeBSD-base]
        FreeBSD-clang: 15.0 [FreeBSD-base]
        FreeBSD-clang-dev: 15.0 [FreeBSD-base]
        FreeBSD-clibs: 15.0 [FreeBSD-base]
        FreeBSD-clibs-dev: 15.0p10 [FreeBSD-base]
        FreeBSD-clibs-dev-lib32: 15.0 [FreeBSD-base]
        FreeBSD-clibs-lib32: 15.0 [FreeBSD-base]
        FreeBSD-console-tools: 15.0 [FreeBSD-base]
        FreeBSD-cron: 15.0 [FreeBSD-base]
        FreeBSD-csh: 15.0 [FreeBSD-base]
        FreeBSD-ctf: 15.0 [FreeBSD-base]
        FreeBSD-ctf-dev: 15.0 [FreeBSD-base]
        FreeBSD-ctf-dev-lib32: 15.0 [FreeBSD-base]
        FreeBSD-ctf-lib: 15.0 [FreeBSD-base]
        FreeBSD-ctf-lib32: 15.0 [FreeBSD-base]
        FreeBSD-ctl: 15.0 [FreeBSD-base]
        FreeBSD-cxgbe-tools: 15.0 [FreeBSD-base]
        FreeBSD-devd: 15.0 [FreeBSD-base]
        FreeBSD-devmatch: 15.0p2 [FreeBSD-base]
        FreeBSD-devmatch-dev: 15.0 [FreeBSD-base]
        FreeBSD-devmatch-dev-lib32: 15.0 [FreeBSD-base]
        FreeBSD-devmatch-lib32: 15.0 [FreeBSD-base]
        FreeBSD-dhclient: 15.0p8 [FreeBSD-base]
        FreeBSD-diff3: 15.0 [FreeBSD-base]
        FreeBSD-dma: 15.0p10 [FreeBSD-base]
        FreeBSD-dtrace: 15.0 [FreeBSD-base]
        FreeBSD-dtrace-dev: 15.0 [FreeBSD-base]
        FreeBSD-dtrace-dev-lib32: 15.0 [FreeBSD-base]
        FreeBSD-dtrace-lib32: 15.0 [FreeBSD-base]
        FreeBSD-dwatch: 15.0 [FreeBSD-base]
        FreeBSD-ee: 15.0 [FreeBSD-base]
        FreeBSD-efi-tools: 15.0 [FreeBSD-base]
        FreeBSD-efi-tools-dev: 15.0 [FreeBSD-base]
        FreeBSD-examples: 15.0 [FreeBSD-base]
        FreeBSD-fd: 15.0 [FreeBSD-base]
        FreeBSD-fetch: 15.0p10 [FreeBSD-base]
        FreeBSD-fetch-dev: 15.0p10 [FreeBSD-base]
        FreeBSD-fetch-dev-lib32: 15.0p10 [FreeBSD-base]
        FreeBSD-fetch-lib32: 15.0p10 [FreeBSD-base]
        FreeBSD-firmware-iwm: 15.0 [FreeBSD-base]
        FreeBSD-flua: 15.0 [FreeBSD-base]
        FreeBSD-flua-dev: 15.0 [FreeBSD-base]
        FreeBSD-ftp: 15.0 [FreeBSD-base]
        FreeBSD-fwget: 15.0 [FreeBSD-base]
        FreeBSD-games: 15.0 [FreeBSD-base]
        FreeBSD-geom: 15.0p10 [FreeBSD-base]
        FreeBSD-geom-lib32: 15.0p10 [FreeBSD-base]
        FreeBSD-ggate: 15.0 [FreeBSD-base]
        FreeBSD-gssd: 15.0 [FreeBSD-base]
        FreeBSD-hast: 15.0 [FreeBSD-base]
        FreeBSD-hostapd: 15.0p10 [FreeBSD-base]
        FreeBSD-hyperv-tools: 15.0 [FreeBSD-base]
        FreeBSD-inetd: 15.0 [FreeBSD-base]
        FreeBSD-ipf: 15.0 [FreeBSD-base]
        FreeBSD-ipfw: 15.0 [FreeBSD-base]
        FreeBSD-iscsi: 15.0 [FreeBSD-base]
        FreeBSD-jail: 15.0 [FreeBSD-base]
        FreeBSD-kerberos: 15.0 [FreeBSD-base]
        FreeBSD-kerberos-dev: 15.0p10 [FreeBSD-base]
        FreeBSD-kerberos-dev-lib32: 15.0p10 [FreeBSD-base]
        FreeBSD-kerberos-kdc: 15.0p10 [FreeBSD-base]
        FreeBSD-kerberos-lib: 15.0p10 [FreeBSD-base]
        FreeBSD-kerberos-lib32: 15.0p10 [FreeBSD-base]
        FreeBSD-kernel-generic: 15.0p10 [FreeBSD-base]
        FreeBSD-kernel-man: 15.0 [FreeBSD-base]
        FreeBSD-kyua: 15.0 [FreeBSD-base]
        FreeBSD-lib9p: 15.0 [FreeBSD-base]
        FreeBSD-lib9p-dev: 15.0 [FreeBSD-base]
        FreeBSD-lib9p-dev-lib32: 15.0 [FreeBSD-base]
        FreeBSD-lib9p-lib32: 15.0 [FreeBSD-base]
        FreeBSD-libarchive: 15.0p10 [FreeBSD-base]
        FreeBSD-libarchive-dev: 15.0p10 [FreeBSD-base]
        FreeBSD-libarchive-dev-lib32: 15.0p10 [FreeBSD-base]
        FreeBSD-libarchive-lib32: 15.0p10 [FreeBSD-base]
        FreeBSD-libbegemot: 15.0 [FreeBSD-base]
        FreeBSD-libbegemot-dev: 15.0 [FreeBSD-base]
        FreeBSD-libbegemot-dev-lib32: 15.0 [FreeBSD-base]
        FreeBSD-libbegemot-lib32: 15.0 [FreeBSD-base]
        FreeBSD-libblocksruntime: 15.0 [FreeBSD-base]
        FreeBSD-libblocksruntime-dev: 15.0 [FreeBSD-base]
        FreeBSD-libblocksruntime-dev-lib32: 15.0 [FreeBSD-base]
        FreeBSD-libblocksruntime-lib32: 15.0 [FreeBSD-base]
        FreeBSD-libbsdstat: 15.0 [FreeBSD-base]
        FreeBSD-libbsdstat-dev: 15.0 [FreeBSD-base]
        FreeBSD-libbsdstat-dev-lib32: 15.0 [FreeBSD-base]
        FreeBSD-libbsdstat-lib32: 15.0 [FreeBSD-base]
        FreeBSD-libcasper: 15.0p9 [FreeBSD-base]
        FreeBSD-libcasper-dev: 15.0 [FreeBSD-base]
        FreeBSD-libcasper-dev-lib32: 15.0 [FreeBSD-base]
        FreeBSD-libcasper-lib32: 15.0p9 [FreeBSD-base]
        FreeBSD-libcompat-dev: 15.0 [FreeBSD-base]
        FreeBSD-libcompat-dev-lib32: 15.0 [FreeBSD-base]
        FreeBSD-libcompiler_rt-dev: 15.0 [FreeBSD-base]
        FreeBSD-libcompiler_rt-dev-lib32: 15.0 [FreeBSD-base]
        FreeBSD-libcuse: 15.0 [FreeBSD-base]
        FreeBSD-libcuse-dev: 15.0 [FreeBSD-base]
        FreeBSD-libcuse-dev-lib32: 15.0 [FreeBSD-base]
        FreeBSD-libcuse-lib32: 15.0 [FreeBSD-base]
        FreeBSD-libdwarf: 15.0 [FreeBSD-base]
        FreeBSD-libdwarf-dev: 15.0 [FreeBSD-base]
        FreeBSD-libdwarf-dev-lib32: 15.0 [FreeBSD-base]
        FreeBSD-libdwarf-lib32: 15.0 [FreeBSD-base]
        FreeBSD-libevent1: 15.0 [FreeBSD-base]
        FreeBSD-libevent1-dev: 15.0 [FreeBSD-base]
        FreeBSD-libevent1-dev-lib32: 15.0 [FreeBSD-base]
        FreeBSD-libevent1-lib32: 15.0 [FreeBSD-base]
        FreeBSD-libexecinfo: 15.0 [FreeBSD-base]
        FreeBSD-libexecinfo-dev: 15.0 [FreeBSD-base]
        FreeBSD-libexecinfo-dev-lib32: 15.0 [FreeBSD-base]
        FreeBSD-libexecinfo-lib32: 15.0 [FreeBSD-base]
        FreeBSD-libipt: 15.0 [FreeBSD-base]
        FreeBSD-libipt-dev: 15.0 [FreeBSD-base]
        FreeBSD-libldns: 15.0p10 [FreeBSD-base]
        FreeBSD-libldns-dev: 15.0p10 [FreeBSD-base]
        FreeBSD-libldns-dev-lib32: 15.0p10 [FreeBSD-base]
        FreeBSD-libldns-lib32: 15.0p10 [FreeBSD-base]
        FreeBSD-libmagic: 15.0 [FreeBSD-base]
        FreeBSD-libmagic-dev: 15.0 [FreeBSD-base]
        FreeBSD-libmagic-dev-lib32: 15.0 [FreeBSD-base]
        FreeBSD-libmagic-lib32: 15.0 [FreeBSD-base]
        FreeBSD-libmilter: 15.0p10 [FreeBSD-base]
        FreeBSD-libmilter-dev: 15.0p10 [FreeBSD-base]
        FreeBSD-libmilter-dev-lib32: 15.0p10 [FreeBSD-base]
        FreeBSD-libmilter-lib32: 15.0p10 [FreeBSD-base]
        FreeBSD-libpathconv: 15.0 [FreeBSD-base]
        FreeBSD-libpathconv-dev: 15.0 [FreeBSD-base]
        FreeBSD-libpathconv-dev-lib32: 15.0 [FreeBSD-base]
        FreeBSD-libpathconv-lib32: 15.0 [FreeBSD-base]
        FreeBSD-librpcsec_gss: 15.0p5 [FreeBSD-base]
        FreeBSD-librpcsec_gss-dev: 15.0p5 [FreeBSD-base]
        FreeBSD-librpcsec_gss-dev-lib32: 15.0p5 [FreeBSD-base]
        FreeBSD-librpcsec_gss-lib32: 15.0p5 [FreeBSD-base]
        FreeBSD-librss: 15.0 [FreeBSD-base]
        FreeBSD-librss-dev: 15.0 [FreeBSD-base]
        FreeBSD-librss-dev-lib32: 15.0 [FreeBSD-base]
        FreeBSD-librss-lib32: 15.0 [FreeBSD-base]
        FreeBSD-libsqlite3: 15.0 [FreeBSD-base]
        FreeBSD-libsqlite3-dev: 15.0 [FreeBSD-base]
        FreeBSD-libsqlite3-dev-lib32: 15.0 [FreeBSD-base]
        FreeBSD-libsqlite3-lib32: 15.0 [FreeBSD-base]
        FreeBSD-libthread_db: 15.0 [FreeBSD-base]
        FreeBSD-libthread_db-dev: 15.0 [FreeBSD-base]
        FreeBSD-libthread_db-dev-lib32: 15.0 [FreeBSD-base]
        FreeBSD-libthread_db-lib32: 15.0 [FreeBSD-base]
        FreeBSD-libucl: 15.0 [FreeBSD-base]
        FreeBSD-libucl-dev: 15.0 [FreeBSD-base]
        FreeBSD-libucl-dev-lib32: 15.0 [FreeBSD-base]
        FreeBSD-libucl-lib32: 15.0 [FreeBSD-base]
        FreeBSD-libvgl: 15.0 [FreeBSD-base]
        FreeBSD-libvgl-dev: 15.0 [FreeBSD-base]
        FreeBSD-libvgl-dev-lib32: 15.0 [FreeBSD-base]
        FreeBSD-libvgl-lib32: 15.0 [FreeBSD-base]
        FreeBSD-libvmmapi: 15.0 [FreeBSD-base]
        FreeBSD-libvmmapi-dev: 15.0 [FreeBSD-base]
        FreeBSD-libyaml: 15.0 [FreeBSD-base]
        FreeBSD-libyaml-dev: 15.0 [FreeBSD-base]
        FreeBSD-libyaml-dev-lib32: 15.0 [FreeBSD-base]
        FreeBSD-libyaml-lib32: 15.0 [FreeBSD-base]
        FreeBSD-lld: 15.0 [FreeBSD-base]
        FreeBSD-lldb: 15.0 [FreeBSD-base]
        FreeBSD-lldb-dev: 15.0 [FreeBSD-base]
        FreeBSD-local-unbound: 15.0p10 [FreeBSD-base]
        FreeBSD-local-unbound-dev: 15.0p10 [FreeBSD-base]
        FreeBSD-local-unbound-dev-lib32: 15.0p10 [FreeBSD-base]
        FreeBSD-local-unbound-lib32: 15.0p10 [FreeBSD-base]
        FreeBSD-locales: 15.0 [FreeBSD-base]
        FreeBSD-lp: 15.0 [FreeBSD-base]
        FreeBSD-mandoc: 15.0 [FreeBSD-base]
        FreeBSD-mlx-tools: 15.0 [FreeBSD-base]
        FreeBSD-mtree: 15.0 [FreeBSD-base]
        FreeBSD-natd: 15.0 [FreeBSD-base]
        FreeBSD-natd-dev: 15.0 [FreeBSD-base]
        FreeBSD-natd-dev-lib32: 15.0 [FreeBSD-base]
        FreeBSD-natd-lib32: 15.0 [FreeBSD-base]
        FreeBSD-ncurses: 15.0 [FreeBSD-base]
        FreeBSD-ncurses-dev: 15.0 [FreeBSD-base]
        FreeBSD-ncurses-dev-lib32: 15.0 [FreeBSD-base]
        FreeBSD-ncurses-lib: 15.0 [FreeBSD-base]
        FreeBSD-ncurses-lib32: 15.0 [FreeBSD-base]
        FreeBSD-netmap: 15.0 [FreeBSD-base]
        FreeBSD-netmap-dev: 15.0 [FreeBSD-base]
        FreeBSD-netmap-dev-lib32: 15.0 [FreeBSD-base]
        FreeBSD-netmap-lib32: 15.0 [FreeBSD-base]
        FreeBSD-newsyslog: 15.0 [FreeBSD-base]
        FreeBSD-nfs: 15.0 [FreeBSD-base]
        FreeBSD-ntp: 15.0p10 [FreeBSD-base]
        FreeBSD-nuageinit: 15.0 [FreeBSD-base]
        FreeBSD-nvme-tools: 15.0 [FreeBSD-base]
        FreeBSD-openssl: 15.0p10 [FreeBSD-base]
        FreeBSD-openssl-dev: 15.0p10 [FreeBSD-base]
        FreeBSD-openssl-dev-lib32: 15.0p10 [FreeBSD-base]
        FreeBSD-openssl-lib: 15.0p10 [FreeBSD-base]
        FreeBSD-openssl-lib32: 15.0p10 [FreeBSD-base]
        FreeBSD-periodic: 15.0 [FreeBSD-base]
        FreeBSD-pf: 15.0p5 [FreeBSD-base]
        FreeBSD-pf-dev: 15.0 [FreeBSD-base]
        FreeBSD-pkg-bootstrap: 15.0p10 [FreeBSD-base]
        FreeBSD-pmc: 15.0 [FreeBSD-base]
        FreeBSD-pmc-dev: 15.0 [FreeBSD-base]
        FreeBSD-pmc-dev-lib32: 15.0 [FreeBSD-base]
        FreeBSD-pmc-lib32: 15.0 [FreeBSD-base]
        FreeBSD-powerd: 15.0 [FreeBSD-base]
        FreeBSD-ppp: 15.0 [FreeBSD-base]
        FreeBSD-quotacheck: 15.0 [FreeBSD-base]
        FreeBSD-rc: 15.0 [FreeBSD-base]
        FreeBSD-rcmds: 15.0p9 [FreeBSD-base]
        FreeBSD-rdma: 15.0 [FreeBSD-base]
        FreeBSD-rescue: 15.0p10 [FreeBSD-base]
        FreeBSD-resolvconf: 15.0 [FreeBSD-base]
        FreeBSD-rip: 15.0 [FreeBSD-base]
        FreeBSD-runtime: 15.0p10 [FreeBSD-base]
        FreeBSD-runtime-dev: 15.0p10 [FreeBSD-base]
        FreeBSD-runtime-dev-lib32: 15.0p10 [FreeBSD-base]
        FreeBSD-runtime-lib32: 15.0p7 [FreeBSD-base]
        FreeBSD-sendmail: 15.0p10 [FreeBSD-base]
        FreeBSD-set-base: 15.0 [FreeBSD-base]
        FreeBSD-set-devel: 15.0 [FreeBSD-base]
        FreeBSD-set-lib32: 15.0 [FreeBSD-base]
        FreeBSD-set-minimal: 15.0 [FreeBSD-base]
        FreeBSD-set-optional: 15.0 [FreeBSD-base]
        FreeBSD-set-tests: 15.0 [FreeBSD-base]
        FreeBSD-smbutils: 15.0 [FreeBSD-base]
        FreeBSD-smbutils-dev: 15.0 [FreeBSD-base]
        FreeBSD-smbutils-dev-lib32: 15.0 [FreeBSD-base]
        FreeBSD-smbutils-lib32: 15.0 [FreeBSD-base]
        FreeBSD-sound: 15.0 [FreeBSD-base]
        FreeBSD-sound-dev: 15.0 [FreeBSD-base]
        FreeBSD-sound-dev-lib32: 15.0 [FreeBSD-base]
        FreeBSD-sound-lib32: 15.0 [FreeBSD-base]
        FreeBSD-ssh: 15.0p10 [FreeBSD-base]
        FreeBSD-ssh-dev: 15.0p10 [FreeBSD-base]
        FreeBSD-ssh-dev-lib32: 15.0p10 [FreeBSD-base]
        FreeBSD-ssh-lib32: 15.0p10 [FreeBSD-base]
        FreeBSD-syscons-data: 15.0 [FreeBSD-base]
        FreeBSD-syslogd: 15.0p10 [FreeBSD-base]
        FreeBSD-tcpd: 15.0 [FreeBSD-base]
        FreeBSD-tcpd-dev: 15.0 [FreeBSD-base]
        FreeBSD-tcpd-dev-lib32: 15.0 [FreeBSD-base]
        FreeBSD-tcpd-lib32: 15.0 [FreeBSD-base]
        FreeBSD-telnet: 15.0 [FreeBSD-base]
        FreeBSD-tests: 15.0p10 [FreeBSD-base]
        FreeBSD-tests-dbg: 15.0p10 [FreeBSD-base]
        FreeBSD-toolchain: 15.0 [FreeBSD-base]
        FreeBSD-toolchain-dev: 15.0 [FreeBSD-base]
        FreeBSD-toolchain-dev-lib32: 15.0 [FreeBSD-base]
        FreeBSD-ufs: 15.0 [FreeBSD-base]
        FreeBSD-ufs-dev: 15.0 [FreeBSD-base]
        FreeBSD-ufs-dev-lib32: 15.0 [FreeBSD-base]
        FreeBSD-ufs-lib: 15.0 [FreeBSD-base]
        FreeBSD-ufs-lib32: 15.0 [FreeBSD-base]
        FreeBSD-utilities: 15.0p10 [FreeBSD-base]
        FreeBSD-utilities-dev: 15.0p10 [FreeBSD-base]
        FreeBSD-utilities-dev-lib32: 15.0p10 [FreeBSD-base]
        FreeBSD-utilities-lib32: 15.0p10 [FreeBSD-base]
        FreeBSD-vi: 15.0 [FreeBSD-base]
        FreeBSD-vt-data: 15.0 [FreeBSD-base]
        FreeBSD-wpa: 15.0p10 [FreeBSD-base]
        FreeBSD-xz: 15.0 [FreeBSD-base]
        FreeBSD-xz-dev: 15.0 [FreeBSD-base]
        FreeBSD-xz-dev-lib32: 15.0 [FreeBSD-base]
        FreeBSD-xz-lib: 15.0 [FreeBSD-base]
        FreeBSD-xz-lib32: 15.0 [FreeBSD-base]
        FreeBSD-yp: 15.0 [FreeBSD-base]
        FreeBSD-zfs: 15.0p10 [FreeBSD-base]
        FreeBSD-zfs-dev: 15.0p10 [FreeBSD-base]
        FreeBSD-zfs-dev-lib32: 15.0p10 [FreeBSD-base]
        FreeBSD-zfs-lib: 15.0p10 [FreeBSD-base]
        FreeBSD-zfs-lib32: 15.0p10 [FreeBSD-base]
        FreeBSD-zlib: 15.0 [FreeBSD-base]
        FreeBSD-zlib-dev: 15.0 [FreeBSD-base]
        FreeBSD-zlib-dev-lib32: 15.0 [FreeBSD-base]
        FreeBSD-zlib-lib32: 15.0 [FreeBSD-base]
        FreeBSD-zoneinfo: 15.0p7 [FreeBSD-base]

Number of packages to be installed: 312

The process will require 1 GiB more space.
370 MiB to be downloaded.
[  1/312] Fetching FreeBSD-libmilter-dev-15.0p10: 100%    86 KiB  87.8 kB/s    00:01    
[  2/312] Fetching FreeBSD-libsqlite3-dev-15.0: 100%  2144 KiB   2.2 MB/s    00:01    
[  3/312] Fetching FreeBSD-libldns-dev-15.0p10: 100%   669 KiB 684.8 kB/s    00:01    
[  4/312] Fetching FreeBSD-tcpd-15.0: 100%    44 KiB  44.6 kB/s    00:01    
[  5/312] Fetching FreeBSD-nvme-tools-15.0: 100%    84 KiB  85.9 kB/s    00:01    
[  6/312] Fetching FreeBSD-smbutils-lib32-15.0: 100%    22 KiB  22.6 kB/s    00:01    
[  7/312] Fetching FreeBSD-libipt-dev-15.0: 100%   253 KiB 258.8 kB/s    00:01    
[  8/312] Fetching FreeBSD-ntp-15.0p10: 100%  1906 KiB   2.0 MB/s    00:01    
[  9/312] Fetching FreeBSD-bsdconfig-15.0p9: 100%   184 KiB 188.8 kB/s    00:01    
[ 10/312] Fetching FreeBSD-tcpd-dev-15.0: 100%    65 KiB  67.1 kB/s    00:01    
[ 11/312] Fetching FreeBSD-atf-lib-15.0: 100%    67 KiB  69.0 kB/s    00:01    
[ 12/312] Fetching FreeBSD-netmap-15.0: 100%    18 KiB  18.0 kB/s    00:01    
[ 13/312] Fetching FreeBSD-openssl-15.0p10: 100%   635 KiB 650.2 kB/s    00:01    
[ 14/312] Fetching FreeBSD-lldb-15.0: 100%  4698 KiB   4.8 MB/s    00:01    
[ 15/312] Fetching FreeBSD-librss-lib32-15.0: 100%    3458 B   3.5 kB/s    00:01    
[ 16/312] Fetching FreeBSD-sound-15.0: 100%  1387 KiB   1.4 MB/s    00:01    
[ 17/312] Fetching FreeBSD-librpcsec_gss-dev-lib32-15.0p5: 100%    45 KiB  45.6 kB/s    00:01    
[ 18/312] Fetching FreeBSD-rip-15.0: 100%    90 KiB  92.7 kB/s    00:01    
[ 19/312] Fetching FreeBSD-utilities-dev-lib32-15.0p10: 100%  2981 KiB   3.1 MB/s    00:01    
[ 20/312] Fetching FreeBSD-libipt-15.0: 100%    47 KiB  47.7 kB/s    00:01    
[ 21/312] Fetching FreeBSD-ee-15.0: 100%    61 KiB  62.9 kB/s    00:01    
[ 22/312] Fetching FreeBSD-openssl-lib32-15.0p10: 100%  2038 KiB   2.1 MB/s    00:01    
[ 23/312] Fetching FreeBSD-libbegemot-15.0: 100%    5628 B   5.6 kB/s    00:01    
[ 24/312] Fetching FreeBSD-libvmmapi-dev-15.0: 100%    53 KiB  54.6 kB/s    00:01    
[ 25/312] Fetching FreeBSD-libsqlite3-15.0: 100%   545 KiB 557.9 kB/s    00:01    
[ 26/312] Fetching FreeBSD-natd-dev-15.0: 100%   164 KiB 167.5 kB/s    00:01    
[ 27/312] Fetching FreeBSD-atf-15.0: 100%    47 KiB  48.5 kB/s    00:01    
[ 28/312] Fetching FreeBSD-audit-lib32-15.0: 100%    42 KiB  43.2 kB/s    00:01    
[ 29/312] Fetching FreeBSD-libldns-15.0p10: 100%   158 KiB 161.3 kB/s    00:01    
[ 30/312] Fetching FreeBSD-smbutils-15.0: 100%    40 KiB  40.6 kB/s    00:01    
[ 31/312] Fetching FreeBSD-bsnmp-lib32-15.0p10: 100%    32 KiB  33.2 kB/s    00:01    
[ 32/312] Fetching FreeBSD-bzip2-lib32-15.0: 100%    32 KiB  32.4 kB/s    00:01    
[ 33/312] Fetching FreeBSD-devmatch-dev-15.0: 100%    14 KiB  14.8 kB/s    00:01    
[ 34/312] Fetching FreeBSD-pmc-dev-lib32-15.0: 100%   631 KiB 646.1 kB/s    00:01    
[ 35/312] Fetching FreeBSD-lib9p-15.0: 100%    37 KiB  37.9 kB/s    00:01    
[ 36/312] Fetching FreeBSD-libexecinfo-dev-lib32-15.0: 100%    14 KiB  14.0 kB/s    00:01    
[ 37/312] Fetching FreeBSD-libbsdstat-lib32-15.0: 100%    3646 B   3.7 kB/s    00:01    
[ 38/312] Fetching FreeBSD-ssh-lib32-15.0p10: 100%   379 KiB 387.8 kB/s    00:01    
[ 39/312] Fetching FreeBSD-mlx-tools-15.0: 100%    6616 B   6.6 kB/s    00:01    
[ 40/312] Fetching FreeBSD-audit-15.0p10: 100%   111 KiB 113.7 kB/s    00:01    
[ 41/312] Fetching FreeBSD-toolchain-dev-15.0: 100%    19 KiB  20.0 kB/s    00:01    
[ 42/312] Fetching FreeBSD-fetch-dev-15.0p10: 100%   117 KiB 119.8 kB/s    00:01    
[ 43/312] Fetching FreeBSD-mandoc-15.0: 100%   300 KiB 307.4 kB/s    00:01    
[ 44/312] Fetching FreeBSD-devmatch-15.0p2: 100%    17 KiB  17.4 kB/s    00:01    
[ 45/312] Fetching FreeBSD-zoneinfo-15.0p7: 100%   121 KiB 123.8 kB/s    00:01    
[ 46/312] Fetching FreeBSD-set-minimal-15.0: 100%     789 B   0.8 kB/s    00:01    
[ 47/312] Fetching FreeBSD-librss-15.0: 100%    3444 B   3.4 kB/s    00:01    
[ 48/312] Fetching FreeBSD-ncurses-lib-15.0: 100%   222 KiB 227.8 kB/s    00:01    
[ 49/312] Fetching FreeBSD-natd-15.0: 100%    57 KiB  58.4 kB/s    00:01    
[ 50/312] Fetching FreeBSD-libcuse-dev-lib32-15.0: 100%    12 KiB  11.8 kB/s    00:01    
[ 51/312] Fetching FreeBSD-examples-15.0: 100%   141 KiB 144.1 kB/s    00:01    
[ 52/312] Fetching FreeBSD-librss-dev-15.0: 100%    8206 B   8.2 kB/s    00:01    
[ 53/312] Fetching FreeBSD-libmilter-lib32-15.0p10: 100%    22 KiB  22.9 kB/s    00:01    
[ 54/312] Fetching FreeBSD-diff3-15.0: 100%    14 KiB  13.9 kB/s    00:01    
[ 55/312] Fetching FreeBSD-hostapd-15.0p10: 100%   431 KiB 440.9 kB/s    00:01    
[ 56/312] Fetching FreeBSD-openssl-dev-lib32-15.0p10: 100%  9054 KiB   9.3 MB/s    00:01    
[ 57/312] Fetching FreeBSD-tcpd-lib32-15.0: 100%    15 KiB  14.9 kB/s    00:01    
[ 58/312] Fetching FreeBSD-inetd-15.0: 100%    31 KiB  32.1 kB/s    00:01    
[ 59/312] Fetching FreeBSD-firmware-iwm-15.0: 100%  1531 KiB   1.6 MB/s    00:01    
[ 60/312] Fetching FreeBSD-ncurses-dev-15.0: 100%  1820 KiB   1.9 MB/s    00:01    
[ 61/312] Fetching FreeBSD-resolvconf-15.0: 100%    20 KiB  20.8 kB/s    00:01    
[ 62/312] Fetching FreeBSD-libbsdstat-dev-15.0: 100%    10 KiB  10.2 kB/s    00:01    
[ 63/312] Fetching FreeBSD-zlib-lib32-15.0: 100%    44 KiB  44.9 kB/s    00:01    
[ 64/312] Fetching FreeBSD-libcuse-dev-15.0: 100%    18 KiB  18.9 kB/s    00:01    
[ 65/312] Fetching FreeBSD-librpcsec_gss-dev-15.0p5: 100%    73 KiB  74.7 kB/s    00:01    
[ 66/312] Fetching FreeBSD-xz-lib-15.0: 100%    94 KiB  95.9 kB/s    00:01    
[ 67/312] Fetching FreeBSD-zfs-lib32-15.0p10: 100%  1548 KiB   1.6 MB/s    00:01    
[ 68/312] Fetching FreeBSD-lld-15.0: 100%   730 KiB 747.3 kB/s    00:01    
[ 69/312] Fetching FreeBSD-bootloader-15.0: 100%  1350 KiB   1.4 MB/s    00:01    
[ 70/312] Fetching FreeBSD-dtrace-dev-lib32-15.0: 100%  1175 KiB   1.2 MB/s    00:01    
[ 71/312] Fetching FreeBSD-blocklist-dev-lib32-15.0: 100%    19 KiB  19.7 kB/s    00:01    
[ 72/312] Fetching FreeBSD-libldns-dev-lib32-15.0p10: 100%   618 KiB 632.7 kB/s    00:01    
[ 73/312] Fetching FreeBSD-utilities-dev-15.0p10: 100%  5403 KiB   5.5 MB/s    00:01    
[ 74/312] Fetching FreeBSD-iscsi-15.0: 100%    43 KiB  44.1 kB/s    00:01    
[ 75/312] Fetching FreeBSD-zlib-dev-lib32-15.0: 100%   129 KiB 131.8 kB/s    00:01    
[ 76/312] Fetching FreeBSD-bootloader-dev-15.0: 100%    8253 B   8.3 kB/s    00:01    
[ 77/312] Fetching FreeBSD-libucl-dev-15.0: 100%   241 KiB 247.2 kB/s    00:01    
[ 78/312] Fetching FreeBSD-rescue-15.0p10: 100%  6733 KiB   6.9 MB/s    00:01    
[ 79/312] Fetching FreeBSD-lib9p-dev-15.0: 100%   170 KiB 174.0 kB/s    00:01    
[ 80/312] Fetching FreeBSD-natd-dev-lib32-15.0: 100%   136 KiB 139.0 kB/s    00:01    
[ 81/312] Fetching FreeBSD-ufs-dev-lib32-15.0: 100%    77 KiB  78.6 kB/s    00:01    
[ 82/312] Fetching FreeBSD-libucl-15.0: 100%    60 KiB  61.1 kB/s    00:01    
[ 83/312] Fetching FreeBSD-telnet-15.0: 100%    67 KiB  68.4 kB/s    00:01    
[ 84/312] Fetching FreeBSD-zfs-15.0p10: 100%   614 KiB 629.2 kB/s    00:01    
[ 85/312] Fetching FreeBSD-libvgl-15.0: 100%    20 KiB  20.1 kB/s    00:01    
[ 86/312] Fetching FreeBSD-libsqlite3-dev-lib32-15.0: 100%  1969 KiB   2.0 MB/s    00:01    
[ 87/312] Fetching FreeBSD-blocklist-lib32-15.0: 100%    5624 B   5.6 kB/s    00:01    
[ 88/312] Fetching FreeBSD-libcuse-15.0: 100%    6158 B   6.2 kB/s    00:01    
[ 89/312] Fetching FreeBSD-netmap-lib32-15.0: 100%    12 KiB  11.8 kB/s    00:01    
[ 90/312] Fetching FreeBSD-kyua-15.0: 100%   515 KiB 527.4 kB/s    00:01    
[ 91/312] Fetching FreeBSD-libdwarf-dev-lib32-15.0: 100%   620 KiB 635.1 kB/s    00:01    
[ 92/312] Fetching FreeBSD-geom-15.0p10: 100%   149 KiB 152.7 kB/s    00:01    
[ 93/312] Fetching FreeBSD-kerberos-kdc-15.0p10: 100%   339 KiB 347.2 kB/s    00:01    
[ 94/312] Fetching FreeBSD-zfs-dev-15.0p10: 100%  7859 KiB   8.1 MB/s    00:01    
[ 95/312] Fetching FreeBSD-libmagic-lib32-15.0: 100%    72 KiB  73.3 kB/s    00:01    
[ 96/312] Fetching FreeBSD-libmagic-15.0: 100%   820 KiB 839.4 kB/s    00:01    
[ 97/312] Fetching FreeBSD-ufs-lib-15.0: 100%    27 KiB  27.4 kB/s    00:01    
[ 98/312] Fetching FreeBSD-nfs-15.0: 100%   169 KiB 173.1 kB/s    00:01    
[ 99/312] Fetching FreeBSD-fetch-15.0p10: 100%    47 KiB  48.5 kB/s    00:01    
[100/312] Fetching FreeBSD-xz-dev-15.0: 100%   494 KiB 505.5 kB/s    00:01    
[101/312] Fetching FreeBSD-ufs-dev-15.0: 100%    87 KiB  89.2 kB/s    00:01    
[102/312] Fetching FreeBSD-rc-15.0: 100%   142 KiB 145.4 kB/s    00:01    
[103/312] Fetching FreeBSD-local-unbound-dev-15.0p10: 100%  2136 KiB   2.2 MB/s    00:01    
[104/312] Fetching FreeBSD-bluetooth-dev-lib32-15.0: 100%    44 KiB  44.8 kB/s    00:01    
[105/312] Fetching FreeBSD-natd-lib32-15.0: 100%    36 KiB  37.3 kB/s    00:01    
[106/312] Fetching FreeBSD-xz-dev-lib32-15.0: 100%   420 KiB 430.2 kB/s    00:01    
[107/312] Fetching FreeBSD-clang-15.0: 100%    35 MiB  37.0 MB/s    00:01    
[108/312] Fetching FreeBSD-cron-15.0: 100%    39 KiB  39.6 kB/s    00:01    
[109/312] Fetching FreeBSD-dtrace-lib32-15.0: 100%   228 KiB 233.2 kB/s    00:01    
[110/312] Fetching FreeBSD-pmc-lib32-15.0: 100%   401 KiB 410.1 kB/s    00:01    
[111/312] Fetching FreeBSD-clibs-dev-lib32-15.0: 100%    12 MiB  12.5 MB/s    00:01    
[112/312] Fetching FreeBSD-jail-15.0: 100%    66 KiB  67.5 kB/s    00:01    
[113/312] Fetching FreeBSD-libsqlite3-lib32-15.0: 100%   538 KiB 550.8 kB/s    00:01    
[114/312] Fetching FreeBSD-audit-dev-15.0: 100%   245 KiB 250.7 kB/s    00:01    
[115/312] Fetching FreeBSD-geom-lib32-15.0p10: 100%    69 KiB  70.8 kB/s    00:01    
[116/312] Fetching FreeBSD-audit-lib-15.0: 100%    37 KiB  37.8 kB/s    00:01    
[117/312] Fetching FreeBSD-libevent1-lib32-15.0: 100%    17 KiB  17.6 kB/s    00:01    
[118/312] Fetching FreeBSD-set-base-15.0: 100%     571 B   0.6 kB/s    00:01    
[119/312] Fetching FreeBSD-pf-15.0p5: 100%   281 KiB 288.1 kB/s    00:01    
[120/312] Fetching FreeBSD-libcasper-dev-15.0: 100%    32 KiB  33.1 kB/s    00:01    
[121/312] Fetching FreeBSD-zlib-15.0: 100%    49 KiB  50.4 kB/s    00:01    
[122/312] Fetching FreeBSD-fetch-dev-lib32-15.0p10: 100%    99 KiB 101.3 kB/s    00:01    
[123/312] Fetching FreeBSD-syscons-data-15.0: 100%    85 KiB  87.3 kB/s    00:01    
[124/312] Fetching FreeBSD-local-unbound-15.0p10: 100%   666 KiB 681.5 kB/s    00:01    
[125/312] Fetching FreeBSD-ctf-lib-15.0: 100%    29 KiB  29.6 kB/s    00:01    
[126/312] Fetching FreeBSD-libcompat-dev-lib32-15.0: 100%    15 KiB  14.9 kB/s    00:01    
[127/312] Fetching FreeBSD-librss-dev-lib32-15.0: 100%    6497 B   6.5 kB/s    00:01    
[128/312] Fetching FreeBSD-tests-15.0p10: 100%    19 MiB  19.9 MB/s    00:01    
[129/312] Fetching FreeBSD-libarchive-dev-15.0p10: 100%  1656 KiB   1.7 MB/s    00:01    
[130/312] Fetching FreeBSD-kernel-generic-15.0p10: 100%    45 MiB  47.1 MB/s    00:01    
[131/312] Fetching FreeBSD-set-devel-15.0: 100%     977 B   1.0 kB/s    00:01    
[132/312] Fetching FreeBSD-periodic-15.0: 100%    22 KiB  23.0 kB/s    00:01    
[133/312] Fetching FreeBSD-tests-dbg-15.0p10: 100%    65 MiB  34.1 MB/s    00:02    
[134/312] Fetching FreeBSD-libyaml-lib32-15.0: 100%    43 KiB  44.0 kB/s    00:01    
[135/312] Fetching FreeBSD-xz-15.0: 100%    69 KiB  70.4 kB/s    00:01    
[136/312] Fetching FreeBSD-libarchive-lib32-15.0p10: 100%   358 KiB 366.9 kB/s    00:01    
[137/312] Fetching FreeBSD-syslogd-15.0p10: 100%    42 KiB  43.0 kB/s    00:01    
[138/312] Fetching FreeBSD-libevent1-dev-lib32-15.0: 100%    56 KiB  57.7 kB/s    00:01    
[139/312] Fetching FreeBSD-ncurses-15.0: 100%   219 KiB 224.3 kB/s    00:01    
[140/312] Fetching FreeBSD-utilities-lib32-15.0p10: 100%  1049 KiB   1.1 MB/s    00:01    
[141/312] Fetching FreeBSD-at-15.0: 100%    21 KiB  21.6 kB/s    00:01    
[142/312] Fetching FreeBSD-autofs-15.0: 100%    36 KiB  36.6 kB/s    00:01    
[143/312] Fetching FreeBSD-libcasper-lib32-15.0p9: 100%    38 KiB  38.6 kB/s    00:01    
[144/312] Fetching FreeBSD-ggate-15.0: 100%    26 KiB  27.1 kB/s    00:01    
[145/312] Fetching FreeBSD-pmc-dev-15.0: 100%   859 KiB 879.8 kB/s    00:01    
[146/312] Fetching FreeBSD-local-unbound-dev-lib32-15.0p10: 100%  1991 KiB   2.0 MB/s    00:01    
[147/312] Fetching FreeBSD-xz-lib32-15.0: 100%    95 KiB  97.0 kB/s    00:01    
[148/312] Fetching FreeBSD-zfs-dev-lib32-15.0p10: 100%  7496 KiB   7.7 MB/s    00:01    
[149/312] Fetching FreeBSD-kerberos-dev-15.0p10: 100%  3878 KiB   4.0 MB/s    00:01    
[150/312] Fetching FreeBSD-set-lib32-15.0: 100%    1120 B   1.1 kB/s    00:01    
[151/312] Fetching FreeBSD-ssh-dev-15.0p10: 100%  1441 KiB   1.5 MB/s    00:01    
[152/312] Fetching FreeBSD-libvgl-lib32-15.0: 100%    18 KiB  18.2 kB/s    00:01    
[153/312] Fetching FreeBSD-libexecinfo-lib32-15.0: 100%    5070 B   5.1 kB/s    00:01    
[154/312] Fetching FreeBSD-bluetooth-lib32-15.0: 100%    15 KiB  14.9 kB/s    00:01    
[155/312] Fetching FreeBSD-smbutils-dev-15.0: 100%    96 KiB  98.0 kB/s    00:01    
[156/312] Fetching FreeBSD-apm-15.0: 100%    8408 B   8.4 kB/s    00:01    
[157/312] Fetching FreeBSD-libpathconv-dev-15.0: 100%    9914 B   9.9 kB/s    00:01    
[158/312] Fetching FreeBSD-libdwarf-15.0: 100%    70 KiB  71.6 kB/s    00:01    
[159/312] Fetching FreeBSD-acpi-15.0: 100%   593 KiB 607.5 kB/s    00:01    
[160/312] Fetching FreeBSD-hast-15.0: 100%   103 KiB 105.2 kB/s    00:01    
[161/312] Fetching FreeBSD-flua-15.0: 100%   154 KiB 158.1 kB/s    00:01    
[162/312] Fetching FreeBSD-bluetooth-15.0: 100%   218 KiB 223.2 kB/s    00:01    
[163/312] Fetching FreeBSD-dwatch-15.0: 100%    27 KiB  27.9 kB/s    00:01    
[164/312] Fetching FreeBSD-bsnmp-dev-15.0p10: 100%   179 KiB 183.5 kB/s    00:01    
[165/312] Fetching FreeBSD-bzip2-lib-15.0: 100%    36 KiB  37.0 kB/s    00:01    
[166/312] Fetching FreeBSD-runtime-15.0p10: 100%  2968 KiB   3.0 MB/s    00:01    
[167/312] Fetching FreeBSD-libarchive-15.0p10: 100%   373 KiB 382.0 kB/s    00:01    
[168/312] Fetching FreeBSD-caroot-15.0: 100%   385 KiB 394.3 kB/s    00:01    
[169/312] Fetching FreeBSD-tcpd-dev-lib32-15.0: 100%    57 KiB  58.3 kB/s    00:01    
[170/312] Fetching FreeBSD-bhyve-15.0: 100%   261 KiB 267.1 kB/s    00:01    
[171/312] Fetching FreeBSD-libblocksruntime-15.0: 100%    4893 B   4.9 kB/s    00:01    
[172/312] Fetching FreeBSD-wpa-15.0p10: 100%   593 KiB 607.7 kB/s    00:01    
[173/312] Fetching FreeBSD-libyaml-dev-lib32-15.0: 100%   149 KiB 152.3 kB/s    00:01    
[174/312] Fetching FreeBSD-libcuse-lib32-15.0: 100%    5621 B   5.6 kB/s    00:01    
[175/312] Fetching FreeBSD-bzip2-dev-15.0: 100%    94 KiB  96.5 kB/s    00:01    
[176/312] Fetching FreeBSD-bmake-15.0: 100%   234 KiB 239.2 kB/s    00:01    
[177/312] Fetching FreeBSD-bsnmp-dev-lib32-15.0p10: 100%    95 KiB  97.2 kB/s    00:01    
[178/312] Fetching FreeBSD-nuageinit-15.0: 100%    14 KiB  14.8 kB/s    00:01    
[179/312] Fetching FreeBSD-libmagic-dev-lib32-15.0: 100%   271 KiB 277.2 kB/s    00:01    
[180/312] Fetching FreeBSD-sound-dev-15.0: 100%  1352 KiB   1.4 MB/s    00:01    
[181/312] Fetching FreeBSD-ssh-dev-lib32-15.0p10: 100%  1314 KiB   1.4 MB/s    00:01    
[182/312] Fetching FreeBSD-blocklist-15.0p3: 100%    52 KiB  53.8 kB/s    00:01    
[183/312] Fetching FreeBSD-ufs-15.0: 100%   249 KiB 255.4 kB/s    00:01    
[184/312] Fetching FreeBSD-set-tests-15.0: 100%     429 B   0.4 kB/s    00:01    
[185/312] Fetching FreeBSD-openssl-lib-15.0p10: 100%  2258 KiB   2.3 MB/s    00:01    
[186/312] Fetching FreeBSD-bsnmp-15.0p10: 100%   389 KiB 398.8 kB/s    00:01    
[187/312] Fetching FreeBSD-vi-15.0: 100%   279 KiB 285.7 kB/s    00:01    
[188/312] Fetching FreeBSD-certctl-15.0p10: 100%    13 KiB  13.3 kB/s    00:01    
[189/312] Fetching FreeBSD-flua-dev-15.0: 100%    5290 B   5.3 kB/s    00:01    
[190/312] Fetching FreeBSD-toolchain-15.0: 100%   565 KiB 578.9 kB/s    00:01    
[191/312] Fetching FreeBSD-toolchain-dev-lib32-15.0: 100%    3293 B   3.3 kB/s    00:01    
[192/312] Fetching FreeBSD-sound-lib32-15.0: 100%  1312 KiB   1.3 MB/s    00:01    
[193/312] Fetching FreeBSD-games-15.0: 100%    15 KiB  15.3 kB/s    00:01    
[194/312] Fetching FreeBSD-mtree-15.0: 100%    45 KiB  45.8 kB/s    00:01    
[195/312] Fetching FreeBSD-libdwarf-lib32-15.0: 100%    73 KiB  75.1 kB/s    00:01    
[196/312] Fetching FreeBSD-fwget-15.0: 100%    8294 B   8.3 kB/s    00:01    
[197/312] Fetching FreeBSD-dtrace-dev-15.0: 100%  1247 KiB   1.3 MB/s    00:01    
[198/312] Fetching FreeBSD-libexecinfo-dev-15.0: 100%    18 KiB  18.7 kB/s    00:01    
[199/312] Fetching FreeBSD-devmatch-dev-lib32-15.0: 100%    9783 B   9.8 kB/s    00:01    
[200/312] Fetching FreeBSD-ssh-15.0p10: 100%  1018 KiB   1.0 MB/s    00:01    
[201/312] Fetching FreeBSD-pf-dev-15.0: 100%    12 KiB  12.6 kB/s    00:01    
[202/312] Fetching FreeBSD-rcmds-15.0p9: 100%    39 KiB  40.1 kB/s    00:01    
[203/312] Fetching FreeBSD-dtrace-15.0: 100%   302 KiB 309.0 kB/s    00:01    
[204/312] Fetching FreeBSD-csh-15.0: 100%   373 KiB 382.4 kB/s    00:01    
[205/312] Fetching FreeBSD-libexecinfo-15.0: 100%    5242 B   5.2 kB/s    00:01    
[206/312] Fetching FreeBSD-ipf-15.0: 100%   299 KiB 305.9 kB/s    00:01    
[207/312] Fetching FreeBSD-fd-15.0: 100%    27 KiB  27.9 kB/s    00:01    
[208/312] Fetching FreeBSD-efi-tools-dev-15.0: 100%   111 KiB 113.4 kB/s    00:01    
[209/312] Fetching FreeBSD-audit-dev-lib32-15.0: 100%   152 KiB 155.7 kB/s    00:01    
[210/312] Fetching FreeBSD-local-unbound-lib32-15.0p10: 100%   471 KiB 481.8 kB/s    00:01    
[211/312] Fetching FreeBSD-libmilter-dev-lib32-15.0p10: 100%    73 KiB  75.1 kB/s    00:01    
[212/312] Fetching FreeBSD-libvgl-dev-15.0: 100%    62 KiB  63.3 kB/s    00:01    
[213/312] Fetching FreeBSD-libucl-dev-lib32-15.0: 100%   207 KiB 212.0 kB/s    00:01    
[214/312] Fetching FreeBSD-libthread_db-lib32-15.0: 100%    12 KiB  12.0 kB/s    00:01    
[215/312] Fetching FreeBSD-hyperv-tools-15.0: 100%    19 KiB  19.4 kB/s    00:01    
[216/312] Fetching FreeBSD-powerd-15.0: 100%    12 KiB  12.5 kB/s    00:01    
[217/312] Fetching FreeBSD-libyaml-15.0: 100%    43 KiB  44.1 kB/s    00:01    
[218/312] Fetching FreeBSD-newsyslog-15.0: 100%    30 KiB  31.1 kB/s    00:01    
[219/312] Fetching FreeBSD-bzip2-dev-lib32-15.0: 100%    83 KiB  84.7 kB/s    00:01    
[220/312] Fetching FreeBSD-libbegemot-dev-lib32-15.0: 100%    11 KiB  11.3 kB/s    00:01    
[221/312] Fetching FreeBSD-clang-dev-15.0: 100%    15 MiB  15.6 MB/s    00:01    
[222/312] Fetching FreeBSD-locales-15.0: 100%  1577 KiB   1.6 MB/s    00:01    
[223/312] Fetching FreeBSD-libmagic-dev-15.0: 100%   296 KiB 303.0 kB/s    00:01    
[224/312] Fetching FreeBSD-kerberos-lib32-15.0p10: 100%   578 KiB 591.5 kB/s    00:01    
[225/312] Fetching FreeBSD-ctf-15.0: 100%    62 KiB  63.0 kB/s    00:01    
[226/312] Fetching FreeBSD-libblocksruntime-dev-15.0: 100%    14 KiB  14.7 kB/s    00:01    
[227/312] Fetching FreeBSD-efi-tools-15.0: 100%    56 KiB  57.2 kB/s    00:01    
[228/312] Fetching FreeBSD-kerberos-lib-15.0p10: 100%   576 KiB 589.4 kB/s    00:01    
[229/312] Fetching FreeBSD-ftp-15.0: 100%    82 KiB  83.9 kB/s    00:01    
[230/312] Fetching FreeBSD-libbegemot-lib32-15.0: 100%    5583 B   5.6 kB/s    00:01    
[231/312] Fetching FreeBSD-netmap-dev-15.0: 100%    46 KiB  47.3 kB/s    00:01    
[232/312] Fetching FreeBSD-atf-dev-15.0: 100%   654 KiB 669.9 kB/s    00:01    
[233/312] Fetching FreeBSD-openssl-dev-15.0p10: 100%    13 MiB  13.4 MB/s    00:01    
[234/312] Fetching FreeBSD-utilities-15.0p10: 100%  8052 KiB   8.2 MB/s    00:01    
[235/312] Fetching FreeBSD-runtime-dev-lib32-15.0p10: 100%  3747 KiB   3.8 MB/s    00:01    
[236/312] Fetching FreeBSD-ncurses-lib32-15.0: 100%   214 KiB 219.2 kB/s    00:01    
[237/312] Fetching FreeBSD-libpathconv-dev-lib32-15.0: 100%    5213 B   5.2 kB/s    00:01    
[238/312] Fetching FreeBSD-lldb-dev-15.0: 100%     702 B   0.7 kB/s    00:01    
[239/312] Fetching FreeBSD-libthread_db-dev-15.0: 100%    50 KiB  51.6 kB/s    00:01    
[240/312] Fetching FreeBSD-libblocksruntime-lib32-15.0: 100%    4921 B   4.9 kB/s    00:01    
[241/312] Fetching FreeBSD-blocklist-dev-15.0: 100%    27 KiB  27.2 kB/s    00:01    
[242/312] Fetching FreeBSD-libldns-lib32-15.0p10: 100%   155 KiB 158.3 kB/s    00:01    
[243/312] Fetching FreeBSD-libthread_db-15.0: 100%    11 KiB  11.1 kB/s    00:01    
[244/312] Fetching FreeBSD-cxgbe-tools-15.0: 100%   476 KiB 487.9 kB/s    00:01    
[245/312] Fetching FreeBSD-acct-15.0: 100%    47 KiB  48.1 kB/s    00:01    
[246/312] Fetching FreeBSD-gssd-15.0: 100%    16 KiB  16.3 kB/s    00:01    
[247/312] Fetching FreeBSD-libbsdstat-15.0: 100%    3751 B   3.8 kB/s    00:01    
[248/312] Fetching FreeBSD-librpcsec_gss-15.0p5: 100%    13 KiB  13.4 kB/s    00:01    
[249/312] Fetching FreeBSD-libcompiler_rt-dev-lib32-15.0: 100%   137 KiB 140.4 kB/s    00:01    
[250/312] Fetching FreeBSD-libevent1-dev-15.0: 100%    65 KiB  66.9 kB/s    00:01    
[251/312] Fetching FreeBSD-bluetooth-lib-15.0: 100%    15 KiB  15.5 kB/s    00:01    
[252/312] Fetching FreeBSD-libpathconv-lib32-15.0: 100%    2774 B   2.8 kB/s    00:01    
[253/312] Fetching FreeBSD-quotacheck-15.0: 100%    13 KiB  13.3 kB/s    00:01    
[254/312] Fetching FreeBSD-bzip2-15.0: 100%    24 KiB  25.0 kB/s    00:01    
[255/312] Fetching FreeBSD-libyaml-dev-15.0: 100%   163 KiB 166.8 kB/s    00:01    
[256/312] Fetching FreeBSD-ncurses-dev-lib32-15.0: 100%  1390 KiB   1.4 MB/s    00:01    
[257/312] Fetching FreeBSD-sound-dev-lib32-15.0: 100%  1339 KiB   1.4 MB/s    00:01    
[258/312] Fetching FreeBSD-libblocksruntime-dev-lib32-15.0: 100%    11 KiB  11.5 kB/s    00:01    
[259/312] Fetching FreeBSD-ppp-15.0: 100%   260 KiB 266.5 kB/s    00:01    
[260/312] Fetching FreeBSD-rdma-15.0: 100%    61 KiB  62.0 kB/s    00:01    
[261/312] Fetching FreeBSD-runtime-dev-15.0p10: 100%  4198 KiB   4.3 MB/s    00:01    
[262/312] Fetching FreeBSD-dma-15.0p10: 100%    36 KiB  36.9 kB/s    00:01    
[263/312] Fetching FreeBSD-libucl-lib32-15.0: 100%    60 KiB  61.4 kB/s    00:01    
[264/312] Fetching FreeBSD-libcasper-dev-lib32-15.0: 100%    1371 B   1.4 kB/s    00:01    
[265/312] Fetching FreeBSD-lp-15.0: 100%   122 KiB 125.1 kB/s    00:01    
[266/312] Fetching FreeBSD-libcompiler_rt-dev-15.0: 100%   233 KiB 238.7 kB/s    00:01    
[267/312] Fetching FreeBSD-kernel-man-15.0: 100%  2772 KiB   2.8 MB/s    00:01    
[268/312] Fetching FreeBSD-bluetooth-dev-15.0: 100%    64 KiB  65.9 kB/s    00:01    
[269/312] Fetching FreeBSD-fetch-lib32-15.0p10: 100%    32 KiB  33.1 kB/s    00:01    
[270/312] Fetching FreeBSD-ctl-15.0: 100%   178 KiB 182.6 kB/s    00:01    
[271/312] Fetching FreeBSD-libvmmapi-15.0: 100%    13 KiB  13.1 kB/s    00:01    
[272/312] Fetching FreeBSD-kerberos-15.0: 100%   183 KiB 187.6 kB/s    00:01    
[273/312] Fetching FreeBSD-libthread_db-dev-lib32-15.0: 100%    46 KiB  46.7 kB/s    00:01    
[274/312] Fetching FreeBSD-libdwarf-dev-15.0: 100%   866 KiB 887.1 kB/s    00:01    
[275/312] Fetching FreeBSD-libarchive-dev-lib32-15.0p10: 100%  1475 KiB   1.5 MB/s    00:01    
[276/312] Fetching FreeBSD-lib9p-dev-lib32-15.0: 100%   154 KiB 157.2 kB/s    00:01    
[277/312] Fetching FreeBSD-libbsdstat-dev-lib32-15.0: 100%    7254 B   7.3 kB/s    00:01    
[278/312] Fetching FreeBSD-bsdinstall-15.0p9: 100%    82 KiB  84.4 kB/s    00:01    
[279/312] Fetching FreeBSD-zfs-lib-15.0p10: 100%  1558 KiB   1.6 MB/s    00:01    
[280/312] Fetching FreeBSD-vt-data-15.0: 100%   119 KiB 122.3 kB/s    00:01    
[281/312] Fetching FreeBSD-pmc-15.0: 100%   564 KiB 577.1 kB/s    00:01    
[282/312] Fetching FreeBSD-pkg-bootstrap-15.0p10: 100%   153 KiB 156.8 kB/s    00:01    
[283/312] Fetching FreeBSD-yp-15.0: 100%   152 KiB 155.2 kB/s    00:01    
[284/312] Fetching FreeBSD-sendmail-15.0p10: 100%   539 KiB 551.5 kB/s    00:01    
[285/312] Fetching FreeBSD-clibs-lib32-15.0: 100%  1297 KiB   1.3 MB/s    00:01    
[286/312] Fetching FreeBSD-librpcsec_gss-lib32-15.0p5: 100%    12 KiB  12.7 kB/s    00:01    
[287/312] Fetching FreeBSD-ccdconfig-15.0: 100%    9083 B   9.1 kB/s    00:01    
[288/312] Fetching FreeBSD-ctf-dev-lib32-15.0: 100%   116 KiB 119.1 kB/s    00:01    
[289/312] Fetching FreeBSD-libmilter-15.0p10: 100%    24 KiB  24.1 kB/s    00:01    
[290/312] Fetching FreeBSD-devd-15.0: 100%    42 KiB  42.8 kB/s    00:01    
[291/312] Fetching FreeBSD-zlib-dev-15.0: 100%   174 KiB 178.1 kB/s    00:01    
[292/312] Fetching FreeBSD-devmatch-lib32-15.0: 100%    4494 B   4.5 kB/s    00:01    
[293/312] Fetching FreeBSD-dhclient-15.0p8: 100%    70 KiB  72.0 kB/s    00:01    
[294/312] Fetching FreeBSD-libpathconv-15.0: 100%    2798 B   2.8 kB/s    00:01    
[295/312] Fetching FreeBSD-libbegemot-dev-15.0: 100%    16 KiB  16.1 kB/s    00:01    
[296/312] Fetching FreeBSD-libcasper-15.0p9: 100%    40 KiB  40.7 kB/s    00:01    
[297/312] Fetching FreeBSD-libevent1-15.0: 100%    18 KiB  18.4 kB/s    00:01    
[298/312] Fetching FreeBSD-console-tools-15.0: 100%   118 KiB 121.0 kB/s    00:01    
[299/312] Fetching FreeBSD-ctf-lib32-15.0: 100%    27 KiB  28.0 kB/s    00:01    
[300/312] Fetching FreeBSD-clibs-15.0: 100%  1340 KiB   1.4 MB/s    00:01    
[301/312] Fetching FreeBSD-ipfw-15.0: 100%   130 KiB 132.7 kB/s    00:01    
[302/312] Fetching FreeBSD-libvgl-dev-lib32-15.0: 100%    49 KiB  50.2 kB/s    00:01    
[303/312] Fetching FreeBSD-ufs-lib32-15.0: 100%    29 KiB  30.0 kB/s    00:01    
[304/312] Fetching FreeBSD-set-optional-15.0: 100%    1112 B   1.1 kB/s    00:01    
[305/312] Fetching FreeBSD-lib9p-lib32-15.0: 100%    35 KiB  36.3 kB/s    00:01    
[306/312] Fetching FreeBSD-runtime-lib32-15.0p7: 100%   800 KiB 818.7 kB/s    00:01    
[307/312] Fetching FreeBSD-kerberos-dev-lib32-15.0p10: 100%  3435 KiB   3.5 MB/s    00:01    
[308/312] Fetching FreeBSD-netmap-dev-lib32-15.0: 100%    35 KiB  35.9 kB/s    00:01    
[309/312] Fetching FreeBSD-libcompat-dev-15.0: 100%    20 KiB  20.8 kB/s    00:01    
[310/312] Fetching FreeBSD-clibs-dev-15.0p10: 100%    17 MiB  17.5 MB/s    00:01    
[311/312] Fetching FreeBSD-smbutils-dev-lib32-15.0: 100%    85 KiB  87.2 kB/s    00:01    
[312/312] Fetching FreeBSD-ctf-dev-15.0: 100%   138 KiB 141.6 kB/s    00:01    
Checking integrity... done (0 conflicting)
Checking integrity... done (0 conflicting)
The following 312 package(s) will be affected (of 0 checked):

New packages to be INSTALLED:
        FreeBSD-acct: 15.0 [FreeBSD-base]
        FreeBSD-acpi: 15.0 [FreeBSD-base]
        FreeBSD-apm: 15.0 [FreeBSD-base]
        FreeBSD-at: 15.0 [FreeBSD-base]
        FreeBSD-atf: 15.0 [FreeBSD-base]
        FreeBSD-atf-dev: 15.0 [FreeBSD-base]
        FreeBSD-atf-lib: 15.0 [FreeBSD-base]
        FreeBSD-audit: 15.0p10 [FreeBSD-base]
        FreeBSD-audit-dev: 15.0 [FreeBSD-base]
        FreeBSD-audit-dev-lib32: 15.0 [FreeBSD-base]
        FreeBSD-audit-lib: 15.0 [FreeBSD-base]
        FreeBSD-audit-lib32: 15.0 [FreeBSD-base]
        FreeBSD-autofs: 15.0 [FreeBSD-base]
        FreeBSD-bhyve: 15.0 [FreeBSD-base]
        FreeBSD-blocklist: 15.0p3 [FreeBSD-base]
        FreeBSD-blocklist-dev: 15.0 [FreeBSD-base]
        FreeBSD-blocklist-dev-lib32: 15.0 [FreeBSD-base]
        FreeBSD-blocklist-lib32: 15.0 [FreeBSD-base]
        FreeBSD-bluetooth: 15.0 [FreeBSD-base]
        FreeBSD-bluetooth-dev: 15.0 [FreeBSD-base]
        FreeBSD-bluetooth-dev-lib32: 15.0 [FreeBSD-base]
        FreeBSD-bluetooth-lib: 15.0 [FreeBSD-base]
        FreeBSD-bluetooth-lib32: 15.0 [FreeBSD-base]
        FreeBSD-bmake: 15.0 [FreeBSD-base]
        FreeBSD-bootloader: 15.0 [FreeBSD-base]
        FreeBSD-bootloader-dev: 15.0 [FreeBSD-base]
        FreeBSD-bsdconfig: 15.0p9 [FreeBSD-base]
        FreeBSD-bsdinstall: 15.0p9 [FreeBSD-base]
        FreeBSD-bsnmp: 15.0p10 [FreeBSD-base]
        FreeBSD-bsnmp-dev: 15.0p10 [FreeBSD-base]
        FreeBSD-bsnmp-dev-lib32: 15.0p10 [FreeBSD-base]
        FreeBSD-bsnmp-lib32: 15.0p10 [FreeBSD-base]
        FreeBSD-bzip2: 15.0 [FreeBSD-base]
        FreeBSD-bzip2-dev: 15.0 [FreeBSD-base]
        FreeBSD-bzip2-dev-lib32: 15.0 [FreeBSD-base]
        FreeBSD-bzip2-lib: 15.0 [FreeBSD-base]
        FreeBSD-bzip2-lib32: 15.0 [FreeBSD-base]
        FreeBSD-caroot: 15.0 [FreeBSD-base]
        FreeBSD-ccdconfig: 15.0 [FreeBSD-base]
        FreeBSD-certctl: 15.0p10 [FreeBSD-base]
        FreeBSD-clang: 15.0 [FreeBSD-base]
        FreeBSD-clang-dev: 15.0 [FreeBSD-base]
        FreeBSD-clibs: 15.0 [FreeBSD-base]
        FreeBSD-clibs-dev: 15.0p10 [FreeBSD-base]
        FreeBSD-clibs-dev-lib32: 15.0 [FreeBSD-base]
        FreeBSD-clibs-lib32: 15.0 [FreeBSD-base]
        FreeBSD-console-tools: 15.0 [FreeBSD-base]
        FreeBSD-cron: 15.0 [FreeBSD-base]
        FreeBSD-csh: 15.0 [FreeBSD-base]
        FreeBSD-ctf: 15.0 [FreeBSD-base]
        FreeBSD-ctf-dev: 15.0 [FreeBSD-base]
        FreeBSD-ctf-dev-lib32: 15.0 [FreeBSD-base]
        FreeBSD-ctf-lib: 15.0 [FreeBSD-base]
        FreeBSD-ctf-lib32: 15.0 [FreeBSD-base]
        FreeBSD-ctl: 15.0 [FreeBSD-base]
        FreeBSD-cxgbe-tools: 15.0 [FreeBSD-base]
        FreeBSD-devd: 15.0 [FreeBSD-base]
        FreeBSD-devmatch: 15.0p2 [FreeBSD-base]
        FreeBSD-devmatch-dev: 15.0 [FreeBSD-base]
        FreeBSD-devmatch-dev-lib32: 15.0 [FreeBSD-base]
        FreeBSD-devmatch-lib32: 15.0 [FreeBSD-base]
        FreeBSD-dhclient: 15.0p8 [FreeBSD-base]
        FreeBSD-diff3: 15.0 [FreeBSD-base]
        FreeBSD-dma: 15.0p10 [FreeBSD-base]
        FreeBSD-dtrace: 15.0 [FreeBSD-base]
        FreeBSD-dtrace-dev: 15.0 [FreeBSD-base]
        FreeBSD-dtrace-dev-lib32: 15.0 [FreeBSD-base]
        FreeBSD-dtrace-lib32: 15.0 [FreeBSD-base]
        FreeBSD-dwatch: 15.0 [FreeBSD-base]
        FreeBSD-ee: 15.0 [FreeBSD-base]
        FreeBSD-efi-tools: 15.0 [FreeBSD-base]
        FreeBSD-efi-tools-dev: 15.0 [FreeBSD-base]
        FreeBSD-examples: 15.0 [FreeBSD-base]
        FreeBSD-fd: 15.0 [FreeBSD-base]
        FreeBSD-fetch: 15.0p10 [FreeBSD-base]
        FreeBSD-fetch-dev: 15.0p10 [FreeBSD-base]
        FreeBSD-fetch-dev-lib32: 15.0p10 [FreeBSD-base]
        FreeBSD-fetch-lib32: 15.0p10 [FreeBSD-base]
        FreeBSD-firmware-iwm: 15.0 [FreeBSD-base]
        FreeBSD-flua: 15.0 [FreeBSD-base]
        FreeBSD-flua-dev: 15.0 [FreeBSD-base]
        FreeBSD-ftp: 15.0 [FreeBSD-base]
        FreeBSD-fwget: 15.0 [FreeBSD-base]
        FreeBSD-games: 15.0 [FreeBSD-base]
        FreeBSD-geom: 15.0p10 [FreeBSD-base]
        FreeBSD-geom-lib32: 15.0p10 [FreeBSD-base]
        FreeBSD-ggate: 15.0 [FreeBSD-base]
        FreeBSD-gssd: 15.0 [FreeBSD-base]
        FreeBSD-hast: 15.0 [FreeBSD-base]
        FreeBSD-hostapd: 15.0p10 [FreeBSD-base]
        FreeBSD-hyperv-tools: 15.0 [FreeBSD-base]
        FreeBSD-inetd: 15.0 [FreeBSD-base]
        FreeBSD-ipf: 15.0 [FreeBSD-base]
        FreeBSD-ipfw: 15.0 [FreeBSD-base]
        FreeBSD-iscsi: 15.0 [FreeBSD-base]
        FreeBSD-jail: 15.0 [FreeBSD-base]
        FreeBSD-kerberos: 15.0 [FreeBSD-base]
        FreeBSD-kerberos-dev: 15.0p10 [FreeBSD-base]
        FreeBSD-kerberos-dev-lib32: 15.0p10 [FreeBSD-base]
        FreeBSD-kerberos-kdc: 15.0p10 [FreeBSD-base]
        FreeBSD-kerberos-lib: 15.0p10 [FreeBSD-base]
        FreeBSD-kerberos-lib32: 15.0p10 [FreeBSD-base]
        FreeBSD-kernel-generic: 15.0p10 [FreeBSD-base]
        FreeBSD-kernel-man: 15.0 [FreeBSD-base]
        FreeBSD-kyua: 15.0 [FreeBSD-base]
        FreeBSD-lib9p: 15.0 [FreeBSD-base]
        FreeBSD-lib9p-dev: 15.0 [FreeBSD-base]
        FreeBSD-lib9p-dev-lib32: 15.0 [FreeBSD-base]
        FreeBSD-lib9p-lib32: 15.0 [FreeBSD-base]
        FreeBSD-libarchive: 15.0p10 [FreeBSD-base]
        FreeBSD-libarchive-dev: 15.0p10 [FreeBSD-base]
        FreeBSD-libarchive-dev-lib32: 15.0p10 [FreeBSD-base]
        FreeBSD-libarchive-lib32: 15.0p10 [FreeBSD-base]
        FreeBSD-libbegemot: 15.0 [FreeBSD-base]
        FreeBSD-libbegemot-dev: 15.0 [FreeBSD-base]
        FreeBSD-libbegemot-dev-lib32: 15.0 [FreeBSD-base]
        FreeBSD-libbegemot-lib32: 15.0 [FreeBSD-base]
        FreeBSD-libblocksruntime: 15.0 [FreeBSD-base]
        FreeBSD-libblocksruntime-dev: 15.0 [FreeBSD-base]
        FreeBSD-libblocksruntime-dev-lib32: 15.0 [FreeBSD-base]
        FreeBSD-libblocksruntime-lib32: 15.0 [FreeBSD-base]
        FreeBSD-libbsdstat: 15.0 [FreeBSD-base]
        FreeBSD-libbsdstat-dev: 15.0 [FreeBSD-base]
        FreeBSD-libbsdstat-dev-lib32: 15.0 [FreeBSD-base]
        FreeBSD-libbsdstat-lib32: 15.0 [FreeBSD-base]
        FreeBSD-libcasper: 15.0p9 [FreeBSD-base]
        FreeBSD-libcasper-dev: 15.0 [FreeBSD-base]
        FreeBSD-libcasper-dev-lib32: 15.0 [FreeBSD-base]
        FreeBSD-libcasper-lib32: 15.0p9 [FreeBSD-base]
        FreeBSD-libcompat-dev: 15.0 [FreeBSD-base]
        FreeBSD-libcompat-dev-lib32: 15.0 [FreeBSD-base]
        FreeBSD-libcompiler_rt-dev: 15.0 [FreeBSD-base]
        FreeBSD-libcompiler_rt-dev-lib32: 15.0 [FreeBSD-base]
        FreeBSD-libcuse: 15.0 [FreeBSD-base]
        FreeBSD-libcuse-dev: 15.0 [FreeBSD-base]
        FreeBSD-libcuse-dev-lib32: 15.0 [FreeBSD-base]
        FreeBSD-libcuse-lib32: 15.0 [FreeBSD-base]
        FreeBSD-libdwarf: 15.0 [FreeBSD-base]
        FreeBSD-libdwarf-dev: 15.0 [FreeBSD-base]
        FreeBSD-libdwarf-dev-lib32: 15.0 [FreeBSD-base]
        FreeBSD-libdwarf-lib32: 15.0 [FreeBSD-base]
        FreeBSD-libevent1: 15.0 [FreeBSD-base]
        FreeBSD-libevent1-dev: 15.0 [FreeBSD-base]
        FreeBSD-libevent1-dev-lib32: 15.0 [FreeBSD-base]
        FreeBSD-libevent1-lib32: 15.0 [FreeBSD-base]
        FreeBSD-libexecinfo: 15.0 [FreeBSD-base]
        FreeBSD-libexecinfo-dev: 15.0 [FreeBSD-base]
        FreeBSD-libexecinfo-dev-lib32: 15.0 [FreeBSD-base]
        FreeBSD-libexecinfo-lib32: 15.0 [FreeBSD-base]
        FreeBSD-libipt: 15.0 [FreeBSD-base]
        FreeBSD-libipt-dev: 15.0 [FreeBSD-base]
        FreeBSD-libldns: 15.0p10 [FreeBSD-base]
        FreeBSD-libldns-dev: 15.0p10 [FreeBSD-base]
        FreeBSD-libldns-dev-lib32: 15.0p10 [FreeBSD-base]
        FreeBSD-libldns-lib32: 15.0p10 [FreeBSD-base]
        FreeBSD-libmagic: 15.0 [FreeBSD-base]
        FreeBSD-libmagic-dev: 15.0 [FreeBSD-base]
        FreeBSD-libmagic-dev-lib32: 15.0 [FreeBSD-base]
        FreeBSD-libmagic-lib32: 15.0 [FreeBSD-base]
        FreeBSD-libmilter: 15.0p10 [FreeBSD-base]
        FreeBSD-libmilter-dev: 15.0p10 [FreeBSD-base]
        FreeBSD-libmilter-dev-lib32: 15.0p10 [FreeBSD-base]
        FreeBSD-libmilter-lib32: 15.0p10 [FreeBSD-base]
        FreeBSD-libpathconv: 15.0 [FreeBSD-base]
        FreeBSD-libpathconv-dev: 15.0 [FreeBSD-base]
        FreeBSD-libpathconv-dev-lib32: 15.0 [FreeBSD-base]
        FreeBSD-libpathconv-lib32: 15.0 [FreeBSD-base]
        FreeBSD-librpcsec_gss: 15.0p5 [FreeBSD-base]
        FreeBSD-librpcsec_gss-dev: 15.0p5 [FreeBSD-base]
        FreeBSD-librpcsec_gss-dev-lib32: 15.0p5 [FreeBSD-base]
        FreeBSD-librpcsec_gss-lib32: 15.0p5 [FreeBSD-base]
        FreeBSD-librss: 15.0 [FreeBSD-base]
        FreeBSD-librss-dev: 15.0 [FreeBSD-base]
        FreeBSD-librss-dev-lib32: 15.0 [FreeBSD-base]
        FreeBSD-librss-lib32: 15.0 [FreeBSD-base]
        FreeBSD-libsqlite3: 15.0 [FreeBSD-base]
        FreeBSD-libsqlite3-dev: 15.0 [FreeBSD-base]
        FreeBSD-libsqlite3-dev-lib32: 15.0 [FreeBSD-base]
        FreeBSD-libsqlite3-lib32: 15.0 [FreeBSD-base]
        FreeBSD-libthread_db: 15.0 [FreeBSD-base]
        FreeBSD-libthread_db-dev: 15.0 [FreeBSD-base]
        FreeBSD-libthread_db-dev-lib32: 15.0 [FreeBSD-base]
        FreeBSD-libthread_db-lib32: 15.0 [FreeBSD-base]
        FreeBSD-libucl: 15.0 [FreeBSD-base]
        FreeBSD-libucl-dev: 15.0 [FreeBSD-base]
        FreeBSD-libucl-dev-lib32: 15.0 [FreeBSD-base]
        FreeBSD-libucl-lib32: 15.0 [FreeBSD-base]
        FreeBSD-libvgl: 15.0 [FreeBSD-base]
        FreeBSD-libvgl-dev: 15.0 [FreeBSD-base]
        FreeBSD-libvgl-dev-lib32: 15.0 [FreeBSD-base]
        FreeBSD-libvgl-lib32: 15.0 [FreeBSD-base]
        FreeBSD-libvmmapi: 15.0 [FreeBSD-base]
        FreeBSD-libvmmapi-dev: 15.0 [FreeBSD-base]
        FreeBSD-libyaml: 15.0 [FreeBSD-base]
        FreeBSD-libyaml-dev: 15.0 [FreeBSD-base]
        FreeBSD-libyaml-dev-lib32: 15.0 [FreeBSD-base]
        FreeBSD-libyaml-lib32: 15.0 [FreeBSD-base]
        FreeBSD-lld: 15.0 [FreeBSD-base]
        FreeBSD-lldb: 15.0 [FreeBSD-base]
        FreeBSD-lldb-dev: 15.0 [FreeBSD-base]
        FreeBSD-local-unbound: 15.0p10 [FreeBSD-base]
        FreeBSD-local-unbound-dev: 15.0p10 [FreeBSD-base]
        FreeBSD-local-unbound-dev-lib32: 15.0p10 [FreeBSD-base]
        FreeBSD-local-unbound-lib32: 15.0p10 [FreeBSD-base]
        FreeBSD-locales: 15.0 [FreeBSD-base]
        FreeBSD-lp: 15.0 [FreeBSD-base]
        FreeBSD-mandoc: 15.0 [FreeBSD-base]
        FreeBSD-mlx-tools: 15.0 [FreeBSD-base]
        FreeBSD-mtree: 15.0 [FreeBSD-base]
        FreeBSD-natd: 15.0 [FreeBSD-base]
        FreeBSD-natd-dev: 15.0 [FreeBSD-base]
        FreeBSD-natd-dev-lib32: 15.0 [FreeBSD-base]
        FreeBSD-natd-lib32: 15.0 [FreeBSD-base]
        FreeBSD-ncurses: 15.0 [FreeBSD-base]
        FreeBSD-ncurses-dev: 15.0 [FreeBSD-base]
        FreeBSD-ncurses-dev-lib32: 15.0 [FreeBSD-base]
        FreeBSD-ncurses-lib: 15.0 [FreeBSD-base]
        FreeBSD-ncurses-lib32: 15.0 [FreeBSD-base]
        FreeBSD-netmap: 15.0 [FreeBSD-base]
        FreeBSD-netmap-dev: 15.0 [FreeBSD-base]
        FreeBSD-netmap-dev-lib32: 15.0 [FreeBSD-base]
        FreeBSD-netmap-lib32: 15.0 [FreeBSD-base]
        FreeBSD-newsyslog: 15.0 [FreeBSD-base]
        FreeBSD-nfs: 15.0 [FreeBSD-base]
        FreeBSD-ntp: 15.0p10 [FreeBSD-base]
        FreeBSD-nuageinit: 15.0 [FreeBSD-base]
        FreeBSD-nvme-tools: 15.0 [FreeBSD-base]
        FreeBSD-openssl: 15.0p10 [FreeBSD-base]
        FreeBSD-openssl-dev: 15.0p10 [FreeBSD-base]
        FreeBSD-openssl-dev-lib32: 15.0p10 [FreeBSD-base]
        FreeBSD-openssl-lib: 15.0p10 [FreeBSD-base]
        FreeBSD-openssl-lib32: 15.0p10 [FreeBSD-base]
        FreeBSD-periodic: 15.0 [FreeBSD-base]
        FreeBSD-pf: 15.0p5 [FreeBSD-base]
        FreeBSD-pf-dev: 15.0 [FreeBSD-base]
        FreeBSD-pkg-bootstrap: 15.0p10 [FreeBSD-base]
        FreeBSD-pmc: 15.0 [FreeBSD-base]
        FreeBSD-pmc-dev: 15.0 [FreeBSD-base]
        FreeBSD-pmc-dev-lib32: 15.0 [FreeBSD-base]
        FreeBSD-pmc-lib32: 15.0 [FreeBSD-base]
        FreeBSD-powerd: 15.0 [FreeBSD-base]
        FreeBSD-ppp: 15.0 [FreeBSD-base]
        FreeBSD-quotacheck: 15.0 [FreeBSD-base]
        FreeBSD-rc: 15.0 [FreeBSD-base]
        FreeBSD-rcmds: 15.0p9 [FreeBSD-base]
        FreeBSD-rdma: 15.0 [FreeBSD-base]
        FreeBSD-rescue: 15.0p10 [FreeBSD-base]
        FreeBSD-resolvconf: 15.0 [FreeBSD-base]
        FreeBSD-rip: 15.0 [FreeBSD-base]
        FreeBSD-runtime: 15.0p10 [FreeBSD-base]
        FreeBSD-runtime-dev: 15.0p10 [FreeBSD-base]
        FreeBSD-runtime-dev-lib32: 15.0p10 [FreeBSD-base]
        FreeBSD-runtime-lib32: 15.0p7 [FreeBSD-base]
        FreeBSD-sendmail: 15.0p10 [FreeBSD-base]
        FreeBSD-set-base: 15.0 [FreeBSD-base]
        FreeBSD-set-devel: 15.0 [FreeBSD-base]
        FreeBSD-set-lib32: 15.0 [FreeBSD-base]
        FreeBSD-set-minimal: 15.0 [FreeBSD-base]
        FreeBSD-set-optional: 15.0 [FreeBSD-base]
        FreeBSD-set-tests: 15.0 [FreeBSD-base]
        FreeBSD-smbutils: 15.0 [FreeBSD-base]
        FreeBSD-smbutils-dev: 15.0 [FreeBSD-base]
        FreeBSD-smbutils-dev-lib32: 15.0 [FreeBSD-base]
        FreeBSD-smbutils-lib32: 15.0 [FreeBSD-base]
        FreeBSD-sound: 15.0 [FreeBSD-base]
        FreeBSD-sound-dev: 15.0 [FreeBSD-base]
        FreeBSD-sound-dev-lib32: 15.0 [FreeBSD-base]
        FreeBSD-sound-lib32: 15.0 [FreeBSD-base]
        FreeBSD-ssh: 15.0p10 [FreeBSD-base]
        FreeBSD-ssh-dev: 15.0p10 [FreeBSD-base]
        FreeBSD-ssh-dev-lib32: 15.0p10 [FreeBSD-base]
        FreeBSD-ssh-lib32: 15.0p10 [FreeBSD-base]
        FreeBSD-syscons-data: 15.0 [FreeBSD-base]
        FreeBSD-syslogd: 15.0p10 [FreeBSD-base]
        FreeBSD-tcpd: 15.0 [FreeBSD-base]
        FreeBSD-tcpd-dev: 15.0 [FreeBSD-base]
        FreeBSD-tcpd-dev-lib32: 15.0 [FreeBSD-base]
        FreeBSD-tcpd-lib32: 15.0 [FreeBSD-base]
        FreeBSD-telnet: 15.0 [FreeBSD-base]
        FreeBSD-tests: 15.0p10 [FreeBSD-base]
        FreeBSD-tests-dbg: 15.0p10 [FreeBSD-base]
        FreeBSD-toolchain: 15.0 [FreeBSD-base]
        FreeBSD-toolchain-dev: 15.0 [FreeBSD-base]
        FreeBSD-toolchain-dev-lib32: 15.0 [FreeBSD-base]
        FreeBSD-ufs: 15.0 [FreeBSD-base]
        FreeBSD-ufs-dev: 15.0 [FreeBSD-base]
        FreeBSD-ufs-dev-lib32: 15.0 [FreeBSD-base]
        FreeBSD-ufs-lib: 15.0 [FreeBSD-base]
        FreeBSD-ufs-lib32: 15.0 [FreeBSD-base]
        FreeBSD-utilities: 15.0p10 [FreeBSD-base]
        FreeBSD-utilities-dev: 15.0p10 [FreeBSD-base]
        FreeBSD-utilities-dev-lib32: 15.0p10 [FreeBSD-base]
        FreeBSD-utilities-lib32: 15.0p10 [FreeBSD-base]
        FreeBSD-vi: 15.0 [FreeBSD-base]
        FreeBSD-vt-data: 15.0 [FreeBSD-base]
        FreeBSD-wpa: 15.0p10 [FreeBSD-base]
        FreeBSD-xz: 15.0 [FreeBSD-base]
        FreeBSD-xz-dev: 15.0 [FreeBSD-base]
        FreeBSD-xz-dev-lib32: 15.0 [FreeBSD-base]
        FreeBSD-xz-lib: 15.0 [FreeBSD-base]
        FreeBSD-xz-lib32: 15.0 [FreeBSD-base]
        FreeBSD-yp: 15.0 [FreeBSD-base]
        FreeBSD-zfs: 15.0p10 [FreeBSD-base]
        FreeBSD-zfs-dev: 15.0p10 [FreeBSD-base]
        FreeBSD-zfs-dev-lib32: 15.0p10 [FreeBSD-base]
        FreeBSD-zfs-lib: 15.0p10 [FreeBSD-base]
        FreeBSD-zfs-lib32: 15.0p10 [FreeBSD-base]
        FreeBSD-zlib: 15.0 [FreeBSD-base]
        FreeBSD-zlib-dev: 15.0 [FreeBSD-base]
        FreeBSD-zlib-dev-lib32: 15.0 [FreeBSD-base]
        FreeBSD-zlib-lib32: 15.0 [FreeBSD-base]
        FreeBSD-zoneinfo: 15.0p7 [FreeBSD-base]

Number of packages to be installed: 312

The process will require 1 GiB more space.
[  1/312] Installing FreeBSD-acct-15.0...
[  2/312] Installing FreeBSD-acpi-15.0...
[  3/312] Installing FreeBSD-apm-15.0...
[  4/312] Installing FreeBSD-atf-15.0...
[  5/312] Installing FreeBSD-atf-dev-15.0...
[  6/312] Installing FreeBSD-atf-lib-15.0...
[  7/312] Installing FreeBSD-audit-15.0p10...
[  8/312] Installing FreeBSD-audit-dev-15.0...
[  9/312] Installing FreeBSD-audit-dev-lib32-15.0...
[ 10/312] Installing FreeBSD-audit-lib-15.0...
[ 11/312] Installing FreeBSD-audit-lib32-15.0...
[ 12/312] Installing FreeBSD-autofs-15.0...
[ 13/312] Installing FreeBSD-bhyve-15.0...
[ 14/312] Installing FreeBSD-blocklist-15.0p3...
[ 15/312] Installing FreeBSD-blocklist-dev-15.0...
[ 16/312] Installing FreeBSD-blocklist-dev-lib32-15.0...
[ 17/312] Installing FreeBSD-blocklist-lib32-15.0...
[ 18/312] Installing FreeBSD-bluetooth-lib-15.0...
[ 19/312] Installing FreeBSD-bmake-15.0...
[ 20/312] Installing FreeBSD-bootloader-15.0...
[ 21/312] Installing FreeBSD-bootloader-dev-15.0...
[ 22/312] Installing FreeBSD-bsnmp-15.0p10...
[ 23/312] Installing FreeBSD-bsnmp-dev-15.0p10...
[ 24/312] Installing FreeBSD-bsnmp-dev-lib32-15.0p10...
[ 25/312] Installing FreeBSD-bsnmp-lib32-15.0p10...
[ 26/312] Installing FreeBSD-bzip2-15.0...
[ 27/312] Installing FreeBSD-bzip2-dev-15.0...
[ 28/312] Installing FreeBSD-bzip2-dev-lib32-15.0...
[ 29/312] Installing FreeBSD-bzip2-lib-15.0...
[ 30/312] Installing FreeBSD-bzip2-lib32-15.0...
[ 31/312] Installing FreeBSD-ccdconfig-15.0...
[ 32/312] Installing FreeBSD-clibs-15.0...
[ 33/312] Installing FreeBSD-clibs-dev-15.0p10...
[ 34/312] Installing FreeBSD-clibs-dev-lib32-15.0...
[ 35/312] Installing FreeBSD-clibs-lib32-15.0...
[ 36/312] Installing FreeBSD-console-tools-15.0...
[ 37/312] Installing FreeBSD-cron-15.0...
[ 38/312] Installing FreeBSD-csh-15.0...
[ 39/312] Installing FreeBSD-ctf-15.0...
[ 40/312] Installing FreeBSD-ctf-dev-15.0...
[ 41/312] Installing FreeBSD-ctf-dev-lib32-15.0...
[ 42/312] Installing FreeBSD-ctf-lib-15.0...
[ 43/312] Installing FreeBSD-ctf-lib32-15.0...
[ 44/312] Installing FreeBSD-ctl-15.0...
[ 45/312] Installing FreeBSD-cxgbe-tools-15.0...
[ 46/312] Installing FreeBSD-devmatch-15.0p2...
[ 47/312] Installing FreeBSD-devmatch-dev-15.0...
[ 48/312] Installing FreeBSD-devmatch-dev-lib32-15.0...
[ 49/312] Installing FreeBSD-devmatch-lib32-15.0...
[ 50/312] Installing FreeBSD-diff3-15.0...
[ 51/312] Installing FreeBSD-dma-15.0p10...
[ 52/312] Installing FreeBSD-dtrace-15.0...
[ 53/312] Installing FreeBSD-dtrace-dev-15.0...
[ 54/312] Installing FreeBSD-dtrace-dev-lib32-15.0...
[ 55/312] Installing FreeBSD-dtrace-lib32-15.0...
[ 56/312] Installing FreeBSD-dwatch-15.0...
[ 57/312] Installing FreeBSD-ee-15.0...
[ 58/312] Installing FreeBSD-efi-tools-15.0...
[ 59/312] Installing FreeBSD-efi-tools-dev-15.0...
[ 60/312] Installing FreeBSD-examples-15.0...
[ 61/312] Installing FreeBSD-fd-15.0...
[ 62/312] Installing FreeBSD-fetch-15.0p10...
[ 63/312] Installing FreeBSD-fetch-dev-15.0p10...
[ 64/312] Installing FreeBSD-fetch-dev-lib32-15.0p10...
[ 65/312] Installing FreeBSD-fetch-lib32-15.0p10...
[ 66/312] Installing FreeBSD-firmware-iwm-15.0...
[ 67/312] Installing FreeBSD-flua-15.0...
[ 68/312] Installing FreeBSD-flua-dev-15.0...
[ 69/312] Installing FreeBSD-ftp-15.0...
[ 70/312] Installing FreeBSD-fwget-15.0...
[ 71/312] Installing FreeBSD-games-15.0...
[ 72/312] Installing FreeBSD-geom-15.0p10...
[ 73/312] Installing FreeBSD-geom-lib32-15.0p10...
[ 74/312] Installing FreeBSD-ggate-15.0...
[ 75/312] Installing FreeBSD-gssd-15.0...
[ 76/312] Installing FreeBSD-hast-15.0...
[ 77/312] Installing FreeBSD-hostapd-15.0p10...
[ 78/312] Installing FreeBSD-hyperv-tools-15.0...
[ 79/312] Installing FreeBSD-inetd-15.0...
[ 80/312] Installing FreeBSD-ipf-15.0...
[ 81/312] Installing FreeBSD-ipfw-15.0...
[ 82/312] Installing FreeBSD-iscsi-15.0...
[ 83/312] Installing FreeBSD-jail-15.0...
[ 84/312] Installing FreeBSD-kerberos-15.0...
[ 85/312] Installing FreeBSD-kerberos-dev-15.0p10...
[ 86/312] Installing FreeBSD-kerberos-dev-lib32-15.0p10...
[ 87/312] Installing FreeBSD-kerberos-kdc-15.0p10...
[ 88/312] Installing FreeBSD-kerberos-lib-15.0p10...
[ 89/312] Installing FreeBSD-kerberos-lib32-15.0p10...
[ 90/312] Installing FreeBSD-kernel-generic-15.0p10...
[ 91/312] Installing FreeBSD-kernel-man-15.0...
[ 92/312] Installing FreeBSD-kyua-15.0...
[ 93/312] Installing FreeBSD-lib9p-15.0...
[ 94/312] Installing FreeBSD-lib9p-dev-15.0...
[ 95/312] Installing FreeBSD-lib9p-dev-lib32-15.0...
[ 96/312] Installing FreeBSD-lib9p-lib32-15.0...
[ 97/312] Installing FreeBSD-libarchive-15.0p10...
[ 98/312] Installing FreeBSD-libarchive-dev-15.0p10...
[ 99/312] Installing FreeBSD-libarchive-dev-lib32-15.0p10...
[100/312] Installing FreeBSD-libarchive-lib32-15.0p10...
[101/312] Installing FreeBSD-libbegemot-15.0...
[102/312] Installing FreeBSD-libbegemot-dev-15.0...
[103/312] Installing FreeBSD-libbegemot-dev-lib32-15.0...
[104/312] Installing FreeBSD-libbegemot-lib32-15.0...
[105/312] Installing FreeBSD-libblocksruntime-15.0...
[106/312] Installing FreeBSD-libblocksruntime-dev-15.0...
[107/312] Installing FreeBSD-libblocksruntime-dev-lib32-15.0...
[108/312] Installing FreeBSD-libblocksruntime-lib32-15.0...
[109/312] Installing FreeBSD-libbsdstat-15.0...
[110/312] Installing FreeBSD-libbsdstat-dev-15.0...
[111/312] Installing FreeBSD-libbsdstat-dev-lib32-15.0...
[112/312] Installing FreeBSD-libbsdstat-lib32-15.0...
[113/312] Installing FreeBSD-libcasper-15.0p9...
[114/312] Installing FreeBSD-libcasper-dev-15.0...
[115/312] Installing FreeBSD-libcasper-dev-lib32-15.0...
[116/312] Installing FreeBSD-libcasper-lib32-15.0p9...
[117/312] Installing FreeBSD-libcompat-dev-15.0...
[118/312] Installing FreeBSD-libcompat-dev-lib32-15.0...
[119/312] Installing FreeBSD-libcompiler_rt-dev-15.0...
[120/312] Installing FreeBSD-libcompiler_rt-dev-lib32-15.0...
[121/312] Installing FreeBSD-libcuse-15.0...
[122/312] Installing FreeBSD-libcuse-dev-15.0...
[123/312] Installing FreeBSD-libcuse-dev-lib32-15.0...
[124/312] Installing FreeBSD-libcuse-lib32-15.0...
[125/312] Installing FreeBSD-libdwarf-15.0...
[126/312] Installing FreeBSD-libdwarf-dev-15.0...
[127/312] Installing FreeBSD-libdwarf-dev-lib32-15.0...
[128/312] Installing FreeBSD-libdwarf-lib32-15.0...
[129/312] Installing FreeBSD-libevent1-15.0...
[130/312] Installing FreeBSD-libevent1-dev-15.0...
[131/312] Installing FreeBSD-libevent1-dev-lib32-15.0...
[132/312] Installing FreeBSD-libevent1-lib32-15.0...
[133/312] Installing FreeBSD-libexecinfo-15.0...
[134/312] Installing FreeBSD-libexecinfo-dev-15.0...
[135/312] Installing FreeBSD-libexecinfo-dev-lib32-15.0...
[136/312] Installing FreeBSD-libexecinfo-lib32-15.0...
[137/312] Installing FreeBSD-libipt-15.0...
[138/312] Installing FreeBSD-libipt-dev-15.0...
[139/312] Installing FreeBSD-libldns-15.0p10...
[140/312] Installing FreeBSD-libldns-dev-15.0p10...
[141/312] Installing FreeBSD-libldns-dev-lib32-15.0p10...
[142/312] Installing FreeBSD-libldns-lib32-15.0p10...
[143/312] Installing FreeBSD-libmagic-15.0...
[144/312] Installing FreeBSD-libmagic-dev-15.0...
[145/312] Installing FreeBSD-libmagic-dev-lib32-15.0...
[146/312] Installing FreeBSD-libmagic-lib32-15.0...
[147/312] Installing FreeBSD-libmilter-15.0p10...
[148/312] Installing FreeBSD-libmilter-dev-15.0p10...
[149/312] Installing FreeBSD-libmilter-dev-lib32-15.0p10...
[150/312] Installing FreeBSD-libmilter-lib32-15.0p10...
[151/312] Installing FreeBSD-libpathconv-15.0...
[152/312] Installing FreeBSD-libpathconv-dev-15.0...
[153/312] Installing FreeBSD-libpathconv-dev-lib32-15.0...
[154/312] Installing FreeBSD-libpathconv-lib32-15.0...
[155/312] Installing FreeBSD-librpcsec_gss-15.0p5...
[156/312] Installing FreeBSD-librpcsec_gss-dev-15.0p5...
[157/312] Installing FreeBSD-librpcsec_gss-dev-lib32-15.0p5...
[158/312] Installing FreeBSD-librpcsec_gss-lib32-15.0p5...
[159/312] Installing FreeBSD-librss-15.0...
[160/312] Installing FreeBSD-librss-dev-15.0...
[161/312] Installing FreeBSD-librss-dev-lib32-15.0...
[162/312] Installing FreeBSD-librss-lib32-15.0...
[163/312] Installing FreeBSD-libsqlite3-15.0...
[164/312] Installing FreeBSD-libsqlite3-dev-15.0...
[165/312] Installing FreeBSD-libsqlite3-dev-lib32-15.0...
[166/312] Installing FreeBSD-libsqlite3-lib32-15.0...
[167/312] Installing FreeBSD-libthread_db-15.0...
[168/312] Installing FreeBSD-libthread_db-dev-15.0...
[169/312] Installing FreeBSD-libthread_db-dev-lib32-15.0...
[170/312] Installing FreeBSD-libthread_db-lib32-15.0...
[171/312] Installing FreeBSD-libucl-15.0...
[172/312] Installing FreeBSD-libucl-dev-15.0...
[173/312] Installing FreeBSD-libucl-dev-lib32-15.0...
[174/312] Installing FreeBSD-libucl-lib32-15.0...
[175/312] Installing FreeBSD-libvgl-15.0...
[176/312] Installing FreeBSD-libvgl-dev-15.0...
[177/312] Installing FreeBSD-libvgl-dev-lib32-15.0...
[178/312] Installing FreeBSD-libvgl-lib32-15.0...
[179/312] Installing FreeBSD-libvmmapi-15.0...
[180/312] Installing FreeBSD-libvmmapi-dev-15.0...
[181/312] Installing FreeBSD-libyaml-15.0...
[182/312] Installing FreeBSD-libyaml-dev-15.0...
[183/312] Installing FreeBSD-libyaml-dev-lib32-15.0...
[184/312] Installing FreeBSD-libyaml-lib32-15.0...
[185/312] Installing FreeBSD-lld-15.0...
[186/312] Installing FreeBSD-clang-15.0...
[187/312] Installing FreeBSD-clang-dev-15.0...
[188/312] Installing FreeBSD-lldb-15.0...
[189/312] Installing FreeBSD-lldb-dev-15.0...
[190/312] Installing FreeBSD-locales-15.0...
[191/312] Installing FreeBSD-lp-15.0...
[192/312] Installing FreeBSD-mandoc-15.0...
[193/312] Installing FreeBSD-mlx-tools-15.0...
[194/312] Installing FreeBSD-mtree-15.0...
[195/312] Installing FreeBSD-natd-15.0...
[196/312] Installing FreeBSD-natd-dev-15.0...
[197/312] Installing FreeBSD-natd-dev-lib32-15.0...
[198/312] Installing FreeBSD-natd-lib32-15.0...
[199/312] Installing FreeBSD-ncurses-15.0...
[200/312] Installing FreeBSD-ncurses-dev-15.0...
[201/312] Installing FreeBSD-ncurses-dev-lib32-15.0...
[202/312] Installing FreeBSD-ncurses-lib-15.0...
[203/312] Installing FreeBSD-ncurses-lib32-15.0...
[204/312] Installing FreeBSD-netmap-15.0...
[205/312] Installing FreeBSD-netmap-dev-15.0...
[206/312] Installing FreeBSD-netmap-dev-lib32-15.0...
[207/312] Installing FreeBSD-netmap-lib32-15.0...
[208/312] Installing FreeBSD-newsyslog-15.0...
[209/312] Installing FreeBSD-nfs-15.0...
[210/312] Installing FreeBSD-ntp-15.0p10...
[211/312] Installing FreeBSD-nuageinit-15.0...
[212/312] Installing FreeBSD-nvme-tools-15.0...
[213/312] Installing FreeBSD-openssl-15.0p10...
[214/312] Installing FreeBSD-certctl-15.0p10...
[215/312] Installing FreeBSD-caroot-15.0...
[216/312] Installing FreeBSD-openssl-dev-15.0p10...
[217/312] Installing FreeBSD-openssl-dev-lib32-15.0p10...
[218/312] Installing FreeBSD-openssl-lib-15.0p10...
[219/312] Installing FreeBSD-openssl-lib32-15.0p10...
[220/312] Installing FreeBSD-periodic-15.0...
[221/312] Installing FreeBSD-pf-15.0p5...
[222/312] Installing FreeBSD-pf-dev-15.0...
[223/312] Installing FreeBSD-pkg-bootstrap-15.0p10...
[224/312] Installing FreeBSD-pmc-15.0...
[225/312] Installing FreeBSD-pmc-dev-15.0...
[226/312] Installing FreeBSD-pmc-dev-lib32-15.0...
[227/312] Installing FreeBSD-pmc-lib32-15.0...
[228/312] Installing FreeBSD-powerd-15.0...
[229/312] Installing FreeBSD-ppp-15.0...
[230/312] Installing FreeBSD-bluetooth-15.0...
[231/312] Installing FreeBSD-bluetooth-dev-15.0...
[232/312] Installing FreeBSD-bluetooth-dev-lib32-15.0...
[233/312] Installing FreeBSD-bluetooth-lib32-15.0...
[234/312] Installing FreeBSD-quotacheck-15.0...
[235/312] Installing FreeBSD-rdma-15.0...
[236/312] Installing FreeBSD-rescue-15.0p10...
[237/312] Installing FreeBSD-resolvconf-15.0...
[238/312] Installing FreeBSD-dhclient-15.0p8...
[239/312] Installing FreeBSD-local-unbound-15.0p10...
[240/312] Installing FreeBSD-local-unbound-dev-15.0p10...
[241/312] Installing FreeBSD-local-unbound-dev-lib32-15.0p10...
[242/312] Installing FreeBSD-local-unbound-lib32-15.0p10...
[243/312] Installing FreeBSD-rip-15.0...
[244/312] Installing FreeBSD-runtime-15.0p10...
[245/312] Installing FreeBSD-at-15.0...
[246/312] Installing FreeBSD-bsdconfig-15.0p9...
[247/312] Installing FreeBSD-bsdinstall-15.0p9...
[248/312] Installing FreeBSD-devd-15.0...
[249/312] Installing FreeBSD-rc-15.0...
[250/312] Installing FreeBSD-runtime-dev-15.0p10...
[251/312] Installing FreeBSD-runtime-dev-lib32-15.0p10...
[252/312] Installing FreeBSD-runtime-lib32-15.0p7...
[253/312] Installing FreeBSD-sendmail-15.0p10...
[254/312] Installing FreeBSD-smbutils-15.0...
[255/312] Installing FreeBSD-smbutils-dev-15.0...
[256/312] Installing FreeBSD-smbutils-dev-lib32-15.0...
[257/312] Installing FreeBSD-smbutils-lib32-15.0...
[258/312] Installing FreeBSD-sound-15.0...
[259/312] Installing FreeBSD-sound-dev-15.0...
[260/312] Installing FreeBSD-sound-dev-lib32-15.0...
[261/312] Installing FreeBSD-sound-lib32-15.0...
[262/312] Installing FreeBSD-ssh-15.0p10...
[263/312] Installing FreeBSD-ssh-dev-15.0p10...
[264/312] Installing FreeBSD-ssh-dev-lib32-15.0p10...
[265/312] Installing FreeBSD-ssh-lib32-15.0p10...
[266/312] Installing FreeBSD-syscons-data-15.0...
[267/312] Installing FreeBSD-syslogd-15.0p10...
[268/312] Installing FreeBSD-tcpd-15.0...
[269/312] Installing FreeBSD-tcpd-dev-15.0...
[270/312] Installing FreeBSD-tcpd-dev-lib32-15.0...
[271/312] Installing FreeBSD-tcpd-lib32-15.0...
[272/312] Installing FreeBSD-telnet-15.0...
[273/312] Installing FreeBSD-tests-15.0p10...
[274/312] Installing FreeBSD-toolchain-15.0...
[275/312] Installing FreeBSD-toolchain-dev-15.0...
[276/312] Installing FreeBSD-toolchain-dev-lib32-15.0...
[277/312] Installing FreeBSD-ufs-15.0...
[278/312] Installing FreeBSD-ufs-dev-15.0...
[279/312] Installing FreeBSD-ufs-dev-lib32-15.0...
[280/312] Installing FreeBSD-ufs-lib-15.0...
[281/312] Installing FreeBSD-ufs-lib32-15.0...
[282/312] Installing FreeBSD-utilities-15.0p10...
[283/312] Installing FreeBSD-rcmds-15.0p9...
[284/312] Installing FreeBSD-utilities-dev-15.0p10...
[285/312] Installing FreeBSD-utilities-dev-lib32-15.0p10...
[286/312] Installing FreeBSD-utilities-lib32-15.0p10...
[287/312] Installing FreeBSD-vi-15.0...
[288/312] Installing FreeBSD-vt-data-15.0...
[289/312] Installing FreeBSD-wpa-15.0p10...
[290/312] Installing FreeBSD-xz-15.0...
[291/312] Installing FreeBSD-xz-dev-15.0...
[292/312] Installing FreeBSD-xz-dev-lib32-15.0...
[293/312] Installing FreeBSD-xz-lib-15.0...
[294/312] Installing FreeBSD-xz-lib32-15.0...
[295/312] Installing FreeBSD-yp-15.0...
[296/312] Installing FreeBSD-zfs-15.0p10...
[297/312] Installing FreeBSD-zfs-dev-15.0p10...
[298/312] Installing FreeBSD-zfs-dev-lib32-15.0p10...
[299/312] Installing FreeBSD-zfs-lib-15.0p10...
[300/312] Installing FreeBSD-zfs-lib32-15.0p10...
[301/312] Installing FreeBSD-zlib-15.0...
[302/312] Installing FreeBSD-zlib-dev-15.0...
[303/312] Installing FreeBSD-set-devel-15.0...
[304/312] Installing FreeBSD-zlib-dev-lib32-15.0...
[305/312] Installing FreeBSD-zlib-lib32-15.0...
[306/312] Installing FreeBSD-set-lib32-15.0...
[307/312] Installing FreeBSD-zoneinfo-15.0p7...
[308/312] Installing FreeBSD-set-minimal-15.0...
[309/312] Installing FreeBSD-set-optional-15.0...
[310/312] Installing FreeBSD-set-base-15.0...
[311/312] Installing FreeBSD-tests-dbg-15.0p10...
[312/312] Installing FreeBSD-set-tests-15.0...
Checking integrity... done (0 conflicting)
The following 312 package(s) will be affected (of 0 checked):

Installed packages to be REINSTALLED:
        FreeBSD-acct-15.0 [FreeBSD-base]
        FreeBSD-acpi-15.0 [FreeBSD-base]
        FreeBSD-apm-15.0 [FreeBSD-base]
        FreeBSD-at-15.0 [FreeBSD-base]
        FreeBSD-atf-15.0 [FreeBSD-base]
        FreeBSD-atf-dev-15.0 [FreeBSD-base]
        FreeBSD-atf-lib-15.0 [FreeBSD-base]
        FreeBSD-audit-15.0p10 [FreeBSD-base]
        FreeBSD-audit-dev-15.0 [FreeBSD-base]
        FreeBSD-audit-dev-lib32-15.0 [FreeBSD-base]
        FreeBSD-audit-lib-15.0 [FreeBSD-base]
        FreeBSD-audit-lib32-15.0 [FreeBSD-base]
        FreeBSD-autofs-15.0 [FreeBSD-base]
        FreeBSD-bhyve-15.0 [FreeBSD-base]
        FreeBSD-blocklist-15.0p3 [FreeBSD-base]
        FreeBSD-blocklist-dev-15.0 [FreeBSD-base]
        FreeBSD-blocklist-dev-lib32-15.0 [FreeBSD-base]
        FreeBSD-blocklist-lib32-15.0 [FreeBSD-base]
        FreeBSD-bluetooth-15.0 [FreeBSD-base]
        FreeBSD-bluetooth-dev-15.0 [FreeBSD-base]
        FreeBSD-bluetooth-dev-lib32-15.0 [FreeBSD-base]
        FreeBSD-bluetooth-lib-15.0 [FreeBSD-base]
        FreeBSD-bluetooth-lib32-15.0 [FreeBSD-base]
        FreeBSD-bmake-15.0 [FreeBSD-base]
        FreeBSD-bootloader-15.0 [FreeBSD-base]
        FreeBSD-bootloader-dev-15.0 [FreeBSD-base]
        FreeBSD-bsdconfig-15.0p9 [FreeBSD-base]
        FreeBSD-bsdinstall-15.0p9 [FreeBSD-base]
        FreeBSD-bsnmp-15.0p10 [FreeBSD-base]
        FreeBSD-bsnmp-dev-15.0p10 [FreeBSD-base]
        FreeBSD-bsnmp-dev-lib32-15.0p10 [FreeBSD-base]
        FreeBSD-bsnmp-lib32-15.0p10 [FreeBSD-base]
        FreeBSD-bzip2-15.0 [FreeBSD-base]
        FreeBSD-bzip2-dev-15.0 [FreeBSD-base]
        FreeBSD-bzip2-dev-lib32-15.0 [FreeBSD-base]
        FreeBSD-bzip2-lib-15.0 [FreeBSD-base]
        FreeBSD-bzip2-lib32-15.0 [FreeBSD-base]
        FreeBSD-caroot-15.0 [FreeBSD-base]
        FreeBSD-ccdconfig-15.0 [FreeBSD-base]
        FreeBSD-certctl-15.0p10 [FreeBSD-base]
        FreeBSD-clang-15.0 [FreeBSD-base]
        FreeBSD-clang-dev-15.0 [FreeBSD-base]
        FreeBSD-clibs-15.0 [FreeBSD-base]
        FreeBSD-clibs-dev-15.0p10 [FreeBSD-base]
        FreeBSD-clibs-dev-lib32-15.0 [FreeBSD-base]
        FreeBSD-clibs-lib32-15.0 [FreeBSD-base]
        FreeBSD-console-tools-15.0 [FreeBSD-base]
        FreeBSD-cron-15.0 [FreeBSD-base]
        FreeBSD-csh-15.0 [FreeBSD-base]
        FreeBSD-ctf-15.0 [FreeBSD-base]
        FreeBSD-ctf-dev-15.0 [FreeBSD-base]
        FreeBSD-ctf-dev-lib32-15.0 [FreeBSD-base]
        FreeBSD-ctf-lib-15.0 [FreeBSD-base]
        FreeBSD-ctf-lib32-15.0 [FreeBSD-base]
        FreeBSD-ctl-15.0 [FreeBSD-base]
        FreeBSD-cxgbe-tools-15.0 [FreeBSD-base]
        FreeBSD-devd-15.0 [FreeBSD-base]
        FreeBSD-devmatch-15.0p2 [FreeBSD-base]
        FreeBSD-devmatch-dev-15.0 [FreeBSD-base]
        FreeBSD-devmatch-dev-lib32-15.0 [FreeBSD-base]
        FreeBSD-devmatch-lib32-15.0 [FreeBSD-base]
        FreeBSD-dhclient-15.0p8 [FreeBSD-base]
        FreeBSD-diff3-15.0 [FreeBSD-base]
        FreeBSD-dma-15.0p10 [FreeBSD-base]
        FreeBSD-dtrace-15.0 [FreeBSD-base]
        FreeBSD-dtrace-dev-15.0 [FreeBSD-base]
        FreeBSD-dtrace-dev-lib32-15.0 [FreeBSD-base]
        FreeBSD-dtrace-lib32-15.0 [FreeBSD-base]
        FreeBSD-dwatch-15.0 [FreeBSD-base]
        FreeBSD-ee-15.0 [FreeBSD-base]
        FreeBSD-efi-tools-15.0 [FreeBSD-base]
        FreeBSD-efi-tools-dev-15.0 [FreeBSD-base]
        FreeBSD-examples-15.0 [FreeBSD-base]
        FreeBSD-fd-15.0 [FreeBSD-base]
        FreeBSD-fetch-15.0p10 [FreeBSD-base]
        FreeBSD-fetch-dev-15.0p10 [FreeBSD-base]
        FreeBSD-fetch-dev-lib32-15.0p10 [FreeBSD-base]
        FreeBSD-fetch-lib32-15.0p10 [FreeBSD-base]
        FreeBSD-firmware-iwm-15.0 [FreeBSD-base]
        FreeBSD-flua-15.0 [FreeBSD-base]
        FreeBSD-flua-dev-15.0 [FreeBSD-base]
        FreeBSD-ftp-15.0 [FreeBSD-base]
        FreeBSD-fwget-15.0 [FreeBSD-base]
        FreeBSD-games-15.0 [FreeBSD-base]
        FreeBSD-geom-15.0p10 [FreeBSD-base]
        FreeBSD-geom-lib32-15.0p10 [FreeBSD-base]
        FreeBSD-ggate-15.0 [FreeBSD-base]
        FreeBSD-gssd-15.0 [FreeBSD-base]
        FreeBSD-hast-15.0 [FreeBSD-base]
        FreeBSD-hostapd-15.0p10 [FreeBSD-base]
        FreeBSD-hyperv-tools-15.0 [FreeBSD-base]
        FreeBSD-inetd-15.0 [FreeBSD-base]
        FreeBSD-ipf-15.0 [FreeBSD-base]
        FreeBSD-ipfw-15.0 [FreeBSD-base]
        FreeBSD-iscsi-15.0 [FreeBSD-base]
        FreeBSD-jail-15.0 [FreeBSD-base]
        FreeBSD-kerberos-15.0 [FreeBSD-base]
        FreeBSD-kerberos-dev-15.0p10 [FreeBSD-base]
        FreeBSD-kerberos-dev-lib32-15.0p10 [FreeBSD-base]
        FreeBSD-kerberos-kdc-15.0p10 [FreeBSD-base]
        FreeBSD-kerberos-lib-15.0p10 [FreeBSD-base]
        FreeBSD-kerberos-lib32-15.0p10 [FreeBSD-base]
        FreeBSD-kernel-generic-15.0p10 [FreeBSD-base]
        FreeBSD-kernel-man-15.0 [FreeBSD-base]
        FreeBSD-kyua-15.0 [FreeBSD-base]
        FreeBSD-lib9p-15.0 [FreeBSD-base]
        FreeBSD-lib9p-dev-15.0 [FreeBSD-base]
        FreeBSD-lib9p-dev-lib32-15.0 [FreeBSD-base]
        FreeBSD-lib9p-lib32-15.0 [FreeBSD-base]
        FreeBSD-libarchive-15.0p10 [FreeBSD-base]
        FreeBSD-libarchive-dev-15.0p10 [FreeBSD-base]
        FreeBSD-libarchive-dev-lib32-15.0p10 [FreeBSD-base]
        FreeBSD-libarchive-lib32-15.0p10 [FreeBSD-base]
        FreeBSD-libbegemot-15.0 [FreeBSD-base]
        FreeBSD-libbegemot-dev-15.0 [FreeBSD-base]
        FreeBSD-libbegemot-dev-lib32-15.0 [FreeBSD-base]
        FreeBSD-libbegemot-lib32-15.0 [FreeBSD-base]
        FreeBSD-libblocksruntime-15.0 [FreeBSD-base]
        FreeBSD-libblocksruntime-dev-15.0 [FreeBSD-base]
        FreeBSD-libblocksruntime-dev-lib32-15.0 [FreeBSD-base]
        FreeBSD-libblocksruntime-lib32-15.0 [FreeBSD-base]
        FreeBSD-libbsdstat-15.0 [FreeBSD-base]
        FreeBSD-libbsdstat-dev-15.0 [FreeBSD-base]
        FreeBSD-libbsdstat-dev-lib32-15.0 [FreeBSD-base]
        FreeBSD-libbsdstat-lib32-15.0 [FreeBSD-base]
        FreeBSD-libcasper-15.0p9 [FreeBSD-base]
        FreeBSD-libcasper-dev-15.0 [FreeBSD-base]
        FreeBSD-libcasper-dev-lib32-15.0 [FreeBSD-base]
        FreeBSD-libcasper-lib32-15.0p9 [FreeBSD-base]
        FreeBSD-libcompat-dev-15.0 [FreeBSD-base]
        FreeBSD-libcompat-dev-lib32-15.0 [FreeBSD-base]
        FreeBSD-libcompiler_rt-dev-15.0 [FreeBSD-base]
        FreeBSD-libcompiler_rt-dev-lib32-15.0 [FreeBSD-base]
        FreeBSD-libcuse-15.0 [FreeBSD-base]
        FreeBSD-libcuse-dev-15.0 [FreeBSD-base]
        FreeBSD-libcuse-dev-lib32-15.0 [FreeBSD-base]
        FreeBSD-libcuse-lib32-15.0 [FreeBSD-base]
        FreeBSD-libdwarf-15.0 [FreeBSD-base]
        FreeBSD-libdwarf-dev-15.0 [FreeBSD-base]
        FreeBSD-libdwarf-dev-lib32-15.0 [FreeBSD-base]
        FreeBSD-libdwarf-lib32-15.0 [FreeBSD-base]
        FreeBSD-libevent1-15.0 [FreeBSD-base]
        FreeBSD-libevent1-dev-15.0 [FreeBSD-base]
        FreeBSD-libevent1-dev-lib32-15.0 [FreeBSD-base]
        FreeBSD-libevent1-lib32-15.0 [FreeBSD-base]
        FreeBSD-libexecinfo-15.0 [FreeBSD-base]
        FreeBSD-libexecinfo-dev-15.0 [FreeBSD-base]
        FreeBSD-libexecinfo-dev-lib32-15.0 [FreeBSD-base]
        FreeBSD-libexecinfo-lib32-15.0 [FreeBSD-base]
        FreeBSD-libipt-15.0 [FreeBSD-base]
        FreeBSD-libipt-dev-15.0 [FreeBSD-base]
        FreeBSD-libldns-15.0p10 [FreeBSD-base]
        FreeBSD-libldns-dev-15.0p10 [FreeBSD-base]
        FreeBSD-libldns-dev-lib32-15.0p10 [FreeBSD-base]
        FreeBSD-libldns-lib32-15.0p10 [FreeBSD-base]
        FreeBSD-libmagic-15.0 [FreeBSD-base]
        FreeBSD-libmagic-dev-15.0 [FreeBSD-base]
        FreeBSD-libmagic-dev-lib32-15.0 [FreeBSD-base]
        FreeBSD-libmagic-lib32-15.0 [FreeBSD-base]
        FreeBSD-libmilter-15.0p10 [FreeBSD-base]
        FreeBSD-libmilter-dev-15.0p10 [FreeBSD-base]
        FreeBSD-libmilter-dev-lib32-15.0p10 [FreeBSD-base]
        FreeBSD-libmilter-lib32-15.0p10 [FreeBSD-base]
        FreeBSD-libpathconv-15.0 [FreeBSD-base]
        FreeBSD-libpathconv-dev-15.0 [FreeBSD-base]
        FreeBSD-libpathconv-dev-lib32-15.0 [FreeBSD-base]
        FreeBSD-libpathconv-lib32-15.0 [FreeBSD-base]
        FreeBSD-librpcsec_gss-15.0p5 [FreeBSD-base]
        FreeBSD-librpcsec_gss-dev-15.0p5 [FreeBSD-base]
        FreeBSD-librpcsec_gss-dev-lib32-15.0p5 [FreeBSD-base]
        FreeBSD-librpcsec_gss-lib32-15.0p5 [FreeBSD-base]
        FreeBSD-librss-15.0 [FreeBSD-base]
        FreeBSD-librss-dev-15.0 [FreeBSD-base]
        FreeBSD-librss-dev-lib32-15.0 [FreeBSD-base]
        FreeBSD-librss-lib32-15.0 [FreeBSD-base]
        FreeBSD-libsqlite3-15.0 [FreeBSD-base]
        FreeBSD-libsqlite3-dev-15.0 [FreeBSD-base]
        FreeBSD-libsqlite3-dev-lib32-15.0 [FreeBSD-base]
        FreeBSD-libsqlite3-lib32-15.0 [FreeBSD-base]
        FreeBSD-libthread_db-15.0 [FreeBSD-base]
        FreeBSD-libthread_db-dev-15.0 [FreeBSD-base]
        FreeBSD-libthread_db-dev-lib32-15.0 [FreeBSD-base]
        FreeBSD-libthread_db-lib32-15.0 [FreeBSD-base]
        FreeBSD-libucl-15.0 [FreeBSD-base]
        FreeBSD-libucl-dev-15.0 [FreeBSD-base]
        FreeBSD-libucl-dev-lib32-15.0 [FreeBSD-base]
        FreeBSD-libucl-lib32-15.0 [FreeBSD-base]
        FreeBSD-libvgl-15.0 [FreeBSD-base]
        FreeBSD-libvgl-dev-15.0 [FreeBSD-base]
        FreeBSD-libvgl-dev-lib32-15.0 [FreeBSD-base]
        FreeBSD-libvgl-lib32-15.0 [FreeBSD-base]
        FreeBSD-libvmmapi-15.0 [FreeBSD-base]
        FreeBSD-libvmmapi-dev-15.0 [FreeBSD-base]
        FreeBSD-libyaml-15.0 [FreeBSD-base]
        FreeBSD-libyaml-dev-15.0 [FreeBSD-base]
        FreeBSD-libyaml-dev-lib32-15.0 [FreeBSD-base]
        FreeBSD-libyaml-lib32-15.0 [FreeBSD-base]
        FreeBSD-lld-15.0 [FreeBSD-base]
        FreeBSD-lldb-15.0 [FreeBSD-base]
        FreeBSD-lldb-dev-15.0 [FreeBSD-base]
        FreeBSD-local-unbound-15.0p10 [FreeBSD-base]
        FreeBSD-local-unbound-dev-15.0p10 [FreeBSD-base]
        FreeBSD-local-unbound-dev-lib32-15.0p10 [FreeBSD-base]
        FreeBSD-local-unbound-lib32-15.0p10 [FreeBSD-base]
        FreeBSD-locales-15.0 [FreeBSD-base]
        FreeBSD-lp-15.0 [FreeBSD-base]
        FreeBSD-mandoc-15.0 [FreeBSD-base]
        FreeBSD-mlx-tools-15.0 [FreeBSD-base]
        FreeBSD-mtree-15.0 [FreeBSD-base]
        FreeBSD-natd-15.0 [FreeBSD-base]
        FreeBSD-natd-dev-15.0 [FreeBSD-base]
        FreeBSD-natd-dev-lib32-15.0 [FreeBSD-base]
        FreeBSD-natd-lib32-15.0 [FreeBSD-base]
        FreeBSD-ncurses-15.0 [FreeBSD-base]
        FreeBSD-ncurses-dev-15.0 [FreeBSD-base]
        FreeBSD-ncurses-dev-lib32-15.0 [FreeBSD-base]
        FreeBSD-ncurses-lib-15.0 [FreeBSD-base]
        FreeBSD-ncurses-lib32-15.0 [FreeBSD-base]
        FreeBSD-netmap-15.0 [FreeBSD-base]
        FreeBSD-netmap-dev-15.0 [FreeBSD-base]
        FreeBSD-netmap-dev-lib32-15.0 [FreeBSD-base]
        FreeBSD-netmap-lib32-15.0 [FreeBSD-base]
        FreeBSD-newsyslog-15.0 [FreeBSD-base]
        FreeBSD-nfs-15.0 [FreeBSD-base]
        FreeBSD-ntp-15.0p10 [FreeBSD-base]
        FreeBSD-nuageinit-15.0 [FreeBSD-base]
        FreeBSD-nvme-tools-15.0 [FreeBSD-base]
        FreeBSD-openssl-15.0p10 [FreeBSD-base]
        FreeBSD-openssl-dev-15.0p10 [FreeBSD-base]
        FreeBSD-openssl-dev-lib32-15.0p10 [FreeBSD-base]
        FreeBSD-openssl-lib-15.0p10 [FreeBSD-base]
        FreeBSD-openssl-lib32-15.0p10 [FreeBSD-base]
        FreeBSD-periodic-15.0 [FreeBSD-base]
        FreeBSD-pf-15.0p5 [FreeBSD-base]
        FreeBSD-pf-dev-15.0 [FreeBSD-base]
        FreeBSD-pkg-bootstrap-15.0p10 [FreeBSD-base]
        FreeBSD-pmc-15.0 [FreeBSD-base]
        FreeBSD-pmc-dev-15.0 [FreeBSD-base]
        FreeBSD-pmc-dev-lib32-15.0 [FreeBSD-base]
        FreeBSD-pmc-lib32-15.0 [FreeBSD-base]
        FreeBSD-powerd-15.0 [FreeBSD-base]
        FreeBSD-ppp-15.0 [FreeBSD-base]
        FreeBSD-quotacheck-15.0 [FreeBSD-base]
        FreeBSD-rc-15.0 [FreeBSD-base]
        FreeBSD-rcmds-15.0p9 [FreeBSD-base]
        FreeBSD-rdma-15.0 [FreeBSD-base]
        FreeBSD-rescue-15.0p10 [FreeBSD-base]
        FreeBSD-resolvconf-15.0 [FreeBSD-base]
        FreeBSD-rip-15.0 [FreeBSD-base]
        FreeBSD-runtime-15.0p10 [FreeBSD-base]
        FreeBSD-runtime-dev-15.0p10 [FreeBSD-base]
        FreeBSD-runtime-dev-lib32-15.0p10 [FreeBSD-base]
        FreeBSD-runtime-lib32-15.0p7 [FreeBSD-base]
        FreeBSD-sendmail-15.0p10 [FreeBSD-base]
        FreeBSD-set-base-15.0 [FreeBSD-base]
        FreeBSD-set-devel-15.0 [FreeBSD-base]
        FreeBSD-set-lib32-15.0 [FreeBSD-base]
        FreeBSD-set-minimal-15.0 [FreeBSD-base]
        FreeBSD-set-optional-15.0 [FreeBSD-base]
        FreeBSD-set-tests-15.0 [FreeBSD-base]
        FreeBSD-smbutils-15.0 [FreeBSD-base]
        FreeBSD-smbutils-dev-15.0 [FreeBSD-base]
        FreeBSD-smbutils-dev-lib32-15.0 [FreeBSD-base]
        FreeBSD-smbutils-lib32-15.0 [FreeBSD-base]
        FreeBSD-sound-15.0 [FreeBSD-base]
        FreeBSD-sound-dev-15.0 [FreeBSD-base]
        FreeBSD-sound-dev-lib32-15.0 [FreeBSD-base]
        FreeBSD-sound-lib32-15.0 [FreeBSD-base]
        FreeBSD-ssh-15.0p10 [FreeBSD-base]
        FreeBSD-ssh-dev-15.0p10 [FreeBSD-base]
        FreeBSD-ssh-dev-lib32-15.0p10 [FreeBSD-base]
        FreeBSD-ssh-lib32-15.0p10 [FreeBSD-base]
        FreeBSD-syscons-data-15.0 [FreeBSD-base]
        FreeBSD-syslogd-15.0p10 [FreeBSD-base]
        FreeBSD-tcpd-15.0 [FreeBSD-base]
        FreeBSD-tcpd-dev-15.0 [FreeBSD-base]
        FreeBSD-tcpd-dev-lib32-15.0 [FreeBSD-base]
        FreeBSD-tcpd-lib32-15.0 [FreeBSD-base]
        FreeBSD-telnet-15.0 [FreeBSD-base]
        FreeBSD-tests-15.0p10 [FreeBSD-base]
        FreeBSD-tests-dbg-15.0p10 [FreeBSD-base]
        FreeBSD-toolchain-15.0 [FreeBSD-base]
        FreeBSD-toolchain-dev-15.0 [FreeBSD-base]
        FreeBSD-toolchain-dev-lib32-15.0 [FreeBSD-base]
        FreeBSD-ufs-15.0 [FreeBSD-base]
        FreeBSD-ufs-dev-15.0 [FreeBSD-base]
        FreeBSD-ufs-dev-lib32-15.0 [FreeBSD-base]
        FreeBSD-ufs-lib-15.0 [FreeBSD-base]
        FreeBSD-ufs-lib32-15.0 [FreeBSD-base]
        FreeBSD-utilities-15.0p10 [FreeBSD-base]
        FreeBSD-utilities-dev-15.0p10 [FreeBSD-base]
        FreeBSD-utilities-dev-lib32-15.0p10 [FreeBSD-base]
        FreeBSD-utilities-lib32-15.0p10 [FreeBSD-base]
        FreeBSD-vi-15.0 [FreeBSD-base]
        FreeBSD-vt-data-15.0 [FreeBSD-base]
        FreeBSD-wpa-15.0p10 [FreeBSD-base]
        FreeBSD-xz-15.0 [FreeBSD-base]
        FreeBSD-xz-dev-15.0 [FreeBSD-base]
        FreeBSD-xz-dev-lib32-15.0 [FreeBSD-base]
        FreeBSD-xz-lib-15.0 [FreeBSD-base]
        FreeBSD-xz-lib32-15.0 [FreeBSD-base]
        FreeBSD-yp-15.0 [FreeBSD-base]
        FreeBSD-zfs-15.0p10 [FreeBSD-base]
        FreeBSD-zfs-dev-15.0p10 [FreeBSD-base]
        FreeBSD-zfs-dev-lib32-15.0p10 [FreeBSD-base]
        FreeBSD-zfs-lib-15.0p10 [FreeBSD-base]
        FreeBSD-zfs-lib32-15.0p10 [FreeBSD-base]
        FreeBSD-zlib-15.0 [FreeBSD-base]
        FreeBSD-zlib-dev-15.0 [FreeBSD-base]
        FreeBSD-zlib-dev-lib32-15.0 [FreeBSD-base]
        FreeBSD-zlib-lib32-15.0 [FreeBSD-base]
        FreeBSD-zoneinfo-15.0p7 [FreeBSD-base]

Number of packages to be reinstalled: 312
[  1/312] Reinstalling FreeBSD-acct-15.0...
[  1/312] Extracting FreeBSD-acct-15.0: 100%
[  2/312] Reinstalling FreeBSD-acpi-15.0...
[  2/312] Extracting FreeBSD-acpi-15.0: 100%
[  3/312] Reinstalling FreeBSD-apm-15.0...
[  3/312] Extracting FreeBSD-apm-15.0: 100%
[  4/312] Reinstalling FreeBSD-atf-15.0...
[  4/312] Extracting FreeBSD-atf-15.0: 100%
[  5/312] Reinstalling FreeBSD-atf-dev-15.0...
[  5/312] Extracting FreeBSD-atf-dev-15.0: 100%
[  6/312] Reinstalling FreeBSD-atf-lib-15.0...
[  6/312] Extracting FreeBSD-atf-lib-15.0: 100%
[  7/312] Reinstalling FreeBSD-audit-15.0p10...
[  7/312] Extracting FreeBSD-audit-15.0p10: 100%
[  8/312] Reinstalling FreeBSD-audit-dev-15.0...
[  8/312] Extracting FreeBSD-audit-dev-15.0: 100%
[  9/312] Reinstalling FreeBSD-audit-dev-lib32-15.0...
[  9/312] Extracting FreeBSD-audit-dev-lib32-15.0: 100%
[ 10/312] Reinstalling FreeBSD-audit-lib-15.0...
[ 10/312] Extracting FreeBSD-audit-lib-15.0: 100%
[ 11/312] Reinstalling FreeBSD-audit-lib32-15.0...
[ 11/312] Extracting FreeBSD-audit-lib32-15.0: 100%
[ 12/312] Reinstalling FreeBSD-autofs-15.0...
[ 12/312] Extracting FreeBSD-autofs-15.0: 100%
[ 13/312] Reinstalling FreeBSD-bhyve-15.0...
[ 13/312] Extracting FreeBSD-bhyve-15.0: 100%
[ 14/312] Reinstalling FreeBSD-blocklist-15.0p3...
[ 14/312] Extracting FreeBSD-blocklist-15.0p3: 100%
[ 15/312] Reinstalling FreeBSD-blocklist-dev-15.0...
[ 15/312] Extracting FreeBSD-blocklist-dev-15.0: 100%
[ 16/312] Reinstalling FreeBSD-blocklist-dev-lib32-15.0...
[ 16/312] Extracting FreeBSD-blocklist-dev-lib32-15.0: 100%
[ 17/312] Reinstalling FreeBSD-blocklist-lib32-15.0...
[ 17/312] Extracting FreeBSD-blocklist-lib32-15.0: 100%
[ 18/312] Reinstalling FreeBSD-bluetooth-lib-15.0...
[ 18/312] Extracting FreeBSD-bluetooth-lib-15.0: 100%
[ 19/312] Reinstalling FreeBSD-bmake-15.0...
[ 19/312] Extracting FreeBSD-bmake-15.0: 100%
[ 20/312] Reinstalling FreeBSD-bootloader-15.0...
[ 20/312] Extracting FreeBSD-bootloader-15.0: 100%
[ 21/312] Reinstalling FreeBSD-bootloader-dev-15.0...
[ 21/312] Extracting FreeBSD-bootloader-dev-15.0: 100%
[ 22/312] Reinstalling FreeBSD-bsnmp-15.0p10...
[ 22/312] Extracting FreeBSD-bsnmp-15.0p10: 100%
[ 23/312] Reinstalling FreeBSD-bsnmp-dev-15.0p10...
[ 23/312] Extracting FreeBSD-bsnmp-dev-15.0p10: 100%
[ 24/312] Reinstalling FreeBSD-bsnmp-dev-lib32-15.0p10...
[ 24/312] Extracting FreeBSD-bsnmp-dev-lib32-15.0p10: 100%
[ 25/312] Reinstalling FreeBSD-bsnmp-lib32-15.0p10...
[ 25/312] Extracting FreeBSD-bsnmp-lib32-15.0p10: 100%
[ 26/312] Reinstalling FreeBSD-bzip2-15.0...
[ 26/312] Extracting FreeBSD-bzip2-15.0: 100%
[ 27/312] Reinstalling FreeBSD-bzip2-dev-15.0...
[ 27/312] Extracting FreeBSD-bzip2-dev-15.0: 100%
[ 28/312] Reinstalling FreeBSD-bzip2-dev-lib32-15.0...
[ 28/312] Extracting FreeBSD-bzip2-dev-lib32-15.0: 100%
[ 29/312] Reinstalling FreeBSD-bzip2-lib-15.0...
[ 29/312] Extracting FreeBSD-bzip2-lib-15.0: 100%
[ 30/312] Reinstalling FreeBSD-bzip2-lib32-15.0...
[ 30/312] Extracting FreeBSD-bzip2-lib32-15.0: 100%
[ 31/312] Reinstalling FreeBSD-ccdconfig-15.0...
[ 31/312] Extracting FreeBSD-ccdconfig-15.0: 100%
[ 32/312] Reinstalling FreeBSD-clibs-15.0...
[ 32/312] Extracting FreeBSD-clibs-15.0: 100%
[ 33/312] Reinstalling FreeBSD-clibs-dev-15.0p10...
[ 33/312] Extracting FreeBSD-clibs-dev-15.0p10: 100%
[ 34/312] Reinstalling FreeBSD-clibs-dev-lib32-15.0...
[ 34/312] Extracting FreeBSD-clibs-dev-lib32-15.0: 100%
[ 35/312] Reinstalling FreeBSD-clibs-lib32-15.0...
[ 35/312] Extracting FreeBSD-clibs-lib32-15.0: 100%
[ 36/312] Reinstalling FreeBSD-console-tools-15.0...
[ 36/312] Extracting FreeBSD-console-tools-15.0: 100%
[ 37/312] Reinstalling FreeBSD-cron-15.0...
[ 37/312] Extracting FreeBSD-cron-15.0: 100%
[ 38/312] Reinstalling FreeBSD-csh-15.0...
[ 38/312] Extracting FreeBSD-csh-15.0: 100%
[ 39/312] Reinstalling FreeBSD-ctf-15.0...
[ 39/312] Extracting FreeBSD-ctf-15.0: 100%
[ 40/312] Reinstalling FreeBSD-ctf-dev-15.0...
[ 40/312] Extracting FreeBSD-ctf-dev-15.0: 100%
[ 41/312] Reinstalling FreeBSD-ctf-dev-lib32-15.0...
[ 41/312] Extracting FreeBSD-ctf-dev-lib32-15.0: 100%
[ 42/312] Reinstalling FreeBSD-ctf-lib-15.0...
[ 42/312] Extracting FreeBSD-ctf-lib-15.0: 100%
[ 43/312] Reinstalling FreeBSD-ctf-lib32-15.0...
[ 43/312] Extracting FreeBSD-ctf-lib32-15.0: 100%
[ 44/312] Reinstalling FreeBSD-ctl-15.0...
[ 44/312] Extracting FreeBSD-ctl-15.0: 100%
[ 45/312] Reinstalling FreeBSD-cxgbe-tools-15.0...
[ 45/312] Extracting FreeBSD-cxgbe-tools-15.0: 100%
[ 46/312] Reinstalling FreeBSD-devmatch-15.0p2...
[ 46/312] Extracting FreeBSD-devmatch-15.0p2: 100%
[ 47/312] Reinstalling FreeBSD-devmatch-dev-15.0...
[ 47/312] Extracting FreeBSD-devmatch-dev-15.0: 100%
[ 48/312] Reinstalling FreeBSD-devmatch-dev-lib32-15.0...
[ 48/312] Extracting FreeBSD-devmatch-dev-lib32-15.0: 100%
[ 49/312] Reinstalling FreeBSD-devmatch-lib32-15.0...
[ 49/312] Extracting FreeBSD-devmatch-lib32-15.0: 100%
[ 50/312] Reinstalling FreeBSD-diff3-15.0...
[ 50/312] Extracting FreeBSD-diff3-15.0: 100%
[ 51/312] Reinstalling FreeBSD-dma-15.0p10...
[ 51/312] Extracting FreeBSD-dma-15.0p10: 100%
[ 52/312] Reinstalling FreeBSD-dtrace-15.0...
[ 52/312] Extracting FreeBSD-dtrace-15.0: 100%
[ 53/312] Reinstalling FreeBSD-dtrace-dev-15.0...
[ 53/312] Extracting FreeBSD-dtrace-dev-15.0: 100%
[ 54/312] Reinstalling FreeBSD-dtrace-dev-lib32-15.0...
[ 54/312] Extracting FreeBSD-dtrace-dev-lib32-15.0: 100%
[ 55/312] Reinstalling FreeBSD-dtrace-lib32-15.0...
[ 55/312] Extracting FreeBSD-dtrace-lib32-15.0: 100%
[ 56/312] Reinstalling FreeBSD-dwatch-15.0...
[ 56/312] Extracting FreeBSD-dwatch-15.0: 100%
[ 57/312] Reinstalling FreeBSD-ee-15.0...
[ 57/312] Extracting FreeBSD-ee-15.0: 100%
[ 58/312] Reinstalling FreeBSD-efi-tools-15.0...
[ 58/312] Extracting FreeBSD-efi-tools-15.0: 100%
[ 59/312] Reinstalling FreeBSD-efi-tools-dev-15.0...
[ 59/312] Extracting FreeBSD-efi-tools-dev-15.0: 100%
[ 60/312] Reinstalling FreeBSD-examples-15.0...
[ 60/312] Extracting FreeBSD-examples-15.0: 100%
[ 61/312] Reinstalling FreeBSD-fd-15.0...
[ 61/312] Extracting FreeBSD-fd-15.0: 100%
[ 62/312] Reinstalling FreeBSD-fetch-15.0p10...
[ 62/312] Extracting FreeBSD-fetch-15.0p10: 100%
[ 63/312] Reinstalling FreeBSD-fetch-dev-15.0p10...
[ 63/312] Extracting FreeBSD-fetch-dev-15.0p10: 100%
[ 64/312] Reinstalling FreeBSD-fetch-dev-lib32-15.0p10...
[ 64/312] Extracting FreeBSD-fetch-dev-lib32-15.0p10: 100%
[ 65/312] Reinstalling FreeBSD-fetch-lib32-15.0p10...
[ 65/312] Extracting FreeBSD-fetch-lib32-15.0p10: 100%
[ 66/312] Reinstalling FreeBSD-firmware-iwm-15.0...
[ 66/312] Extracting FreeBSD-firmware-iwm-15.0: 100%
[ 67/312] Reinstalling FreeBSD-flua-15.0...
[ 67/312] Extracting FreeBSD-flua-15.0: 100%
[ 68/312] Reinstalling FreeBSD-flua-dev-15.0...
[ 68/312] Extracting FreeBSD-flua-dev-15.0: 100%
[ 69/312] Reinstalling FreeBSD-ftp-15.0...
[ 69/312] Extracting FreeBSD-ftp-15.0: 100%
[ 70/312] Reinstalling FreeBSD-fwget-15.0...
[ 70/312] Extracting FreeBSD-fwget-15.0: 100%
[ 71/312] Reinstalling FreeBSD-games-15.0...
[ 71/312] Extracting FreeBSD-games-15.0: 100%
[ 72/312] Reinstalling FreeBSD-geom-15.0p10...
[ 72/312] Extracting FreeBSD-geom-15.0p10: 100%
[ 73/312] Reinstalling FreeBSD-geom-lib32-15.0p10...
[ 73/312] Extracting FreeBSD-geom-lib32-15.0p10: 100%
[ 74/312] Reinstalling FreeBSD-ggate-15.0...
[ 74/312] Extracting FreeBSD-ggate-15.0: 100%
[ 75/312] Reinstalling FreeBSD-gssd-15.0...
[ 75/312] Extracting FreeBSD-gssd-15.0: 100%
[ 76/312] Reinstalling FreeBSD-hast-15.0...
[ 76/312] Extracting FreeBSD-hast-15.0: 100%
[ 77/312] Reinstalling FreeBSD-hostapd-15.0p10...
[ 77/312] Extracting FreeBSD-hostapd-15.0p10: 100%
[ 78/312] Reinstalling FreeBSD-hyperv-tools-15.0...
[ 78/312] Extracting FreeBSD-hyperv-tools-15.0: 100%
[ 79/312] Reinstalling FreeBSD-inetd-15.0...
[ 79/312] Extracting FreeBSD-inetd-15.0: 100%
[ 80/312] Reinstalling FreeBSD-ipf-15.0...
[ 80/312] Extracting FreeBSD-ipf-15.0: 100%
[ 81/312] Reinstalling FreeBSD-ipfw-15.0...
[ 81/312] Extracting FreeBSD-ipfw-15.0: 100%
[ 82/312] Reinstalling FreeBSD-iscsi-15.0...
[ 82/312] Extracting FreeBSD-iscsi-15.0: 100%
[ 83/312] Reinstalling FreeBSD-jail-15.0...
[ 83/312] Extracting FreeBSD-jail-15.0: 100%
[ 84/312] Reinstalling FreeBSD-kerberos-15.0...
[ 84/312] Extracting FreeBSD-kerberos-15.0: 100%
[ 85/312] Reinstalling FreeBSD-kerberos-dev-15.0p10...
[ 85/312] Extracting FreeBSD-kerberos-dev-15.0p10: 100%
[ 86/312] Reinstalling FreeBSD-kerberos-dev-lib32-15.0p10...
[ 86/312] Extracting FreeBSD-kerberos-dev-lib32-15.0p10: 100%
[ 87/312] Reinstalling FreeBSD-kerberos-kdc-15.0p10...
[ 87/312] Extracting FreeBSD-kerberos-kdc-15.0p10: 100%
[ 88/312] Reinstalling FreeBSD-kerberos-lib-15.0p10...
[ 88/312] Extracting FreeBSD-kerberos-lib-15.0p10: 100%
[ 89/312] Reinstalling FreeBSD-kerberos-lib32-15.0p10...
[ 89/312] Extracting FreeBSD-kerberos-lib32-15.0p10: 100%
[ 90/312] Reinstalling FreeBSD-kernel-generic-15.0p10...
[ 90/312] Extracting FreeBSD-kernel-generic-15.0p10: 100%
[ 91/312] Reinstalling FreeBSD-kernel-man-15.0...
[ 91/312] Extracting FreeBSD-kernel-man-15.0: 100%
[ 92/312] Reinstalling FreeBSD-kyua-15.0...
[ 92/312] Extracting FreeBSD-kyua-15.0: 100%
[ 93/312] Reinstalling FreeBSD-lib9p-15.0...
[ 93/312] Extracting FreeBSD-lib9p-15.0: 100%
[ 94/312] Reinstalling FreeBSD-lib9p-dev-15.0...
[ 94/312] Extracting FreeBSD-lib9p-dev-15.0: 100%
[ 95/312] Reinstalling FreeBSD-lib9p-dev-lib32-15.0...
[ 95/312] Extracting FreeBSD-lib9p-dev-lib32-15.0: 100%
[ 96/312] Reinstalling FreeBSD-lib9p-lib32-15.0...
[ 96/312] Extracting FreeBSD-lib9p-lib32-15.0: 100%
[ 97/312] Reinstalling FreeBSD-libarchive-15.0p10...
[ 97/312] Extracting FreeBSD-libarchive-15.0p10: 100%
[ 98/312] Reinstalling FreeBSD-libarchive-dev-15.0p10...
[ 98/312] Extracting FreeBSD-libarchive-dev-15.0p10: 100%
[ 99/312] Reinstalling FreeBSD-libarchive-dev-lib32-15.0p10...
[ 99/312] Extracting FreeBSD-libarchive-dev-lib32-15.0p10: 100%
[100/312] Reinstalling FreeBSD-libarchive-lib32-15.0p10...
[100/312] Extracting FreeBSD-libarchive-lib32-15.0p10: 100%
[101/312] Reinstalling FreeBSD-libbegemot-15.0...
[101/312] Extracting FreeBSD-libbegemot-15.0: 100%
[102/312] Reinstalling FreeBSD-libbegemot-dev-15.0...
[102/312] Extracting FreeBSD-libbegemot-dev-15.0: 100%
[103/312] Reinstalling FreeBSD-libbegemot-dev-lib32-15.0...
[103/312] Extracting FreeBSD-libbegemot-dev-lib32-15.0: 100%
[104/312] Reinstalling FreeBSD-libbegemot-lib32-15.0...
[104/312] Extracting FreeBSD-libbegemot-lib32-15.0: 100%
[105/312] Reinstalling FreeBSD-libblocksruntime-15.0...
[105/312] Extracting FreeBSD-libblocksruntime-15.0: 100%
[106/312] Reinstalling FreeBSD-libblocksruntime-dev-15.0...
[106/312] Extracting FreeBSD-libblocksruntime-dev-15.0: 100%
[107/312] Reinstalling FreeBSD-libblocksruntime-dev-lib32-15.0...
[107/312] Extracting FreeBSD-libblocksruntime-dev-lib32-15.0: 100%
[108/312] Reinstalling FreeBSD-libblocksruntime-lib32-15.0...
[108/312] Extracting FreeBSD-libblocksruntime-lib32-15.0: 100%
[109/312] Reinstalling FreeBSD-libbsdstat-15.0...
[109/312] Extracting FreeBSD-libbsdstat-15.0: 100%
[110/312] Reinstalling FreeBSD-libbsdstat-dev-15.0...
[110/312] Extracting FreeBSD-libbsdstat-dev-15.0: 100%
[111/312] Reinstalling FreeBSD-libbsdstat-dev-lib32-15.0...
[111/312] Extracting FreeBSD-libbsdstat-dev-lib32-15.0: 100%
[112/312] Reinstalling FreeBSD-libbsdstat-lib32-15.0...
[112/312] Extracting FreeBSD-libbsdstat-lib32-15.0: 100%
[113/312] Reinstalling FreeBSD-libcasper-15.0p9...
[113/312] Extracting FreeBSD-libcasper-15.0p9: 100%
[114/312] Reinstalling FreeBSD-libcasper-dev-15.0...
[114/312] Extracting FreeBSD-libcasper-dev-15.0: 100%
[115/312] Reinstalling FreeBSD-libcasper-dev-lib32-15.0...
[115/312] Extracting FreeBSD-libcasper-dev-lib32-15.0: 100%
[116/312] Reinstalling FreeBSD-libcasper-lib32-15.0p9...
[116/312] Extracting FreeBSD-libcasper-lib32-15.0p9: 100%
[117/312] Reinstalling FreeBSD-libcompat-dev-15.0...
[117/312] Extracting FreeBSD-libcompat-dev-15.0: 100%
[118/312] Reinstalling FreeBSD-libcompat-dev-lib32-15.0...
[118/312] Extracting FreeBSD-libcompat-dev-lib32-15.0: 100%
[119/312] Reinstalling FreeBSD-libcompiler_rt-dev-15.0...
[119/312] Extracting FreeBSD-libcompiler_rt-dev-15.0: 100%
[120/312] Reinstalling FreeBSD-libcompiler_rt-dev-lib32-15.0...
[120/312] Extracting FreeBSD-libcompiler_rt-dev-lib32-15.0: 100%
[121/312] Reinstalling FreeBSD-libcuse-15.0...
[121/312] Extracting FreeBSD-libcuse-15.0: 100%
[122/312] Reinstalling FreeBSD-libcuse-dev-15.0...
[122/312] Extracting FreeBSD-libcuse-dev-15.0: 100%
[123/312] Reinstalling FreeBSD-libcuse-dev-lib32-15.0...
[123/312] Extracting FreeBSD-libcuse-dev-lib32-15.0: 100%
[124/312] Reinstalling FreeBSD-libcuse-lib32-15.0...
[124/312] Extracting FreeBSD-libcuse-lib32-15.0: 100%
[125/312] Reinstalling FreeBSD-libdwarf-15.0...
[125/312] Extracting FreeBSD-libdwarf-15.0: 100%
[126/312] Reinstalling FreeBSD-libdwarf-dev-15.0...
[126/312] Extracting FreeBSD-libdwarf-dev-15.0: 100%
[127/312] Reinstalling FreeBSD-libdwarf-dev-lib32-15.0...
[127/312] Extracting FreeBSD-libdwarf-dev-lib32-15.0: 100%
[128/312] Reinstalling FreeBSD-libdwarf-lib32-15.0...
[128/312] Extracting FreeBSD-libdwarf-lib32-15.0: 100%
[129/312] Reinstalling FreeBSD-libevent1-15.0...
[129/312] Extracting FreeBSD-libevent1-15.0: 100%
[130/312] Reinstalling FreeBSD-libevent1-dev-15.0...
[130/312] Extracting FreeBSD-libevent1-dev-15.0: 100%
[131/312] Reinstalling FreeBSD-libevent1-dev-lib32-15.0...
[131/312] Extracting FreeBSD-libevent1-dev-lib32-15.0: 100%
[132/312] Reinstalling FreeBSD-libevent1-lib32-15.0...
[132/312] Extracting FreeBSD-libevent1-lib32-15.0: 100%
[133/312] Reinstalling FreeBSD-libexecinfo-15.0...
[133/312] Extracting FreeBSD-libexecinfo-15.0: 100%
[134/312] Reinstalling FreeBSD-libexecinfo-dev-15.0...
[134/312] Extracting FreeBSD-libexecinfo-dev-15.0: 100%
[135/312] Reinstalling FreeBSD-libexecinfo-dev-lib32-15.0...
[135/312] Extracting FreeBSD-libexecinfo-dev-lib32-15.0: 100%
[136/312] Reinstalling FreeBSD-libexecinfo-lib32-15.0...
[136/312] Extracting FreeBSD-libexecinfo-lib32-15.0: 100%
[137/312] Reinstalling FreeBSD-libipt-15.0...
[137/312] Extracting FreeBSD-libipt-15.0: 100%
[138/312] Reinstalling FreeBSD-libipt-dev-15.0...
[138/312] Extracting FreeBSD-libipt-dev-15.0: 100%
[139/312] Reinstalling FreeBSD-libldns-15.0p10...
[139/312] Extracting FreeBSD-libldns-15.0p10: 100%
[140/312] Reinstalling FreeBSD-libldns-dev-15.0p10...
[140/312] Extracting FreeBSD-libldns-dev-15.0p10: 100%
[141/312] Reinstalling FreeBSD-libldns-dev-lib32-15.0p10...
[141/312] Extracting FreeBSD-libldns-dev-lib32-15.0p10: 100%
[142/312] Reinstalling FreeBSD-libldns-lib32-15.0p10...
[142/312] Extracting FreeBSD-libldns-lib32-15.0p10: 100%
[143/312] Reinstalling FreeBSD-libmagic-15.0...
[143/312] Extracting FreeBSD-libmagic-15.0: 100%
[144/312] Reinstalling FreeBSD-libmagic-dev-15.0...
[144/312] Extracting FreeBSD-libmagic-dev-15.0: 100%
[145/312] Reinstalling FreeBSD-libmagic-dev-lib32-15.0...
[145/312] Extracting FreeBSD-libmagic-dev-lib32-15.0: 100%
[146/312] Reinstalling FreeBSD-libmagic-lib32-15.0...
[146/312] Extracting FreeBSD-libmagic-lib32-15.0: 100%
[147/312] Reinstalling FreeBSD-libmilter-15.0p10...
[147/312] Extracting FreeBSD-libmilter-15.0p10: 100%
[148/312] Reinstalling FreeBSD-libmilter-dev-15.0p10...
[148/312] Extracting FreeBSD-libmilter-dev-15.0p10: 100%
[149/312] Reinstalling FreeBSD-libmilter-dev-lib32-15.0p10...
[149/312] Extracting FreeBSD-libmilter-dev-lib32-15.0p10: 100%
[150/312] Reinstalling FreeBSD-libmilter-lib32-15.0p10...
[150/312] Extracting FreeBSD-libmilter-lib32-15.0p10: 100%
[151/312] Reinstalling FreeBSD-libpathconv-15.0...
[151/312] Extracting FreeBSD-libpathconv-15.0: 100%
[152/312] Reinstalling FreeBSD-libpathconv-dev-15.0...
[152/312] Extracting FreeBSD-libpathconv-dev-15.0: 100%
[153/312] Reinstalling FreeBSD-libpathconv-dev-lib32-15.0...
[153/312] Extracting FreeBSD-libpathconv-dev-lib32-15.0: 100%
[154/312] Reinstalling FreeBSD-libpathconv-lib32-15.0...
[154/312] Extracting FreeBSD-libpathconv-lib32-15.0: 100%
[155/312] Reinstalling FreeBSD-librpcsec_gss-15.0p5...
[155/312] Extracting FreeBSD-librpcsec_gss-15.0p5: 100%
[156/312] Reinstalling FreeBSD-librpcsec_gss-dev-15.0p5...
[156/312] Extracting FreeBSD-librpcsec_gss-dev-15.0p5: 100%
[157/312] Reinstalling FreeBSD-librpcsec_gss-dev-lib32-15.0p5...
[157/312] Extracting FreeBSD-librpcsec_gss-dev-lib32-15.0p5: 100%
[158/312] Reinstalling FreeBSD-librpcsec_gss-lib32-15.0p5...
[158/312] Extracting FreeBSD-librpcsec_gss-lib32-15.0p5: 100%
[159/312] Reinstalling FreeBSD-librss-15.0...
[159/312] Extracting FreeBSD-librss-15.0: 100%
[160/312] Reinstalling FreeBSD-librss-dev-15.0...
[160/312] Extracting FreeBSD-librss-dev-15.0: 100%
[161/312] Reinstalling FreeBSD-librss-dev-lib32-15.0...
[161/312] Extracting FreeBSD-librss-dev-lib32-15.0: 100%
[162/312] Reinstalling FreeBSD-librss-lib32-15.0...
[162/312] Extracting FreeBSD-librss-lib32-15.0: 100%
[163/312] Reinstalling FreeBSD-libsqlite3-15.0...
[163/312] Extracting FreeBSD-libsqlite3-15.0: 100%
[164/312] Reinstalling FreeBSD-libsqlite3-dev-15.0...
[164/312] Extracting FreeBSD-libsqlite3-dev-15.0: 100%
[165/312] Reinstalling FreeBSD-libsqlite3-dev-lib32-15.0...
[165/312] Extracting FreeBSD-libsqlite3-dev-lib32-15.0: 100%
[166/312] Reinstalling FreeBSD-libsqlite3-lib32-15.0...
[166/312] Extracting FreeBSD-libsqlite3-lib32-15.0: 100%
[167/312] Reinstalling FreeBSD-libthread_db-15.0...
[167/312] Extracting FreeBSD-libthread_db-15.0: 100%
[168/312] Reinstalling FreeBSD-libthread_db-dev-15.0...
[168/312] Extracting FreeBSD-libthread_db-dev-15.0: 100%
[169/312] Reinstalling FreeBSD-libthread_db-dev-lib32-15.0...
[169/312] Extracting FreeBSD-libthread_db-dev-lib32-15.0: 100%
[170/312] Reinstalling FreeBSD-libthread_db-lib32-15.0...
[170/312] Extracting FreeBSD-libthread_db-lib32-15.0: 100%
[171/312] Reinstalling FreeBSD-libucl-15.0...
[171/312] Extracting FreeBSD-libucl-15.0: 100%
[172/312] Reinstalling FreeBSD-libucl-dev-15.0...
[172/312] Extracting FreeBSD-libucl-dev-15.0: 100%
[173/312] Reinstalling FreeBSD-libucl-dev-lib32-15.0...
[173/312] Extracting FreeBSD-libucl-dev-lib32-15.0: 100%
[174/312] Reinstalling FreeBSD-libucl-lib32-15.0...
[174/312] Extracting FreeBSD-libucl-lib32-15.0: 100%
[175/312] Reinstalling FreeBSD-libvgl-15.0...
[175/312] Extracting FreeBSD-libvgl-15.0: 100%
[176/312] Reinstalling FreeBSD-libvgl-dev-15.0...
[176/312] Extracting FreeBSD-libvgl-dev-15.0: 100%
[177/312] Reinstalling FreeBSD-libvgl-dev-lib32-15.0...
[177/312] Extracting FreeBSD-libvgl-dev-lib32-15.0: 100%
[178/312] Reinstalling FreeBSD-libvgl-lib32-15.0...
[178/312] Extracting FreeBSD-libvgl-lib32-15.0: 100%
[179/312] Reinstalling FreeBSD-libvmmapi-15.0...
[179/312] Extracting FreeBSD-libvmmapi-15.0: 100%
[180/312] Reinstalling FreeBSD-libvmmapi-dev-15.0...
[180/312] Extracting FreeBSD-libvmmapi-dev-15.0: 100%
[181/312] Reinstalling FreeBSD-libyaml-15.0...
[181/312] Extracting FreeBSD-libyaml-15.0: 100%
[182/312] Reinstalling FreeBSD-libyaml-dev-15.0...
[182/312] Extracting FreeBSD-libyaml-dev-15.0: 100%
[183/312] Reinstalling FreeBSD-libyaml-dev-lib32-15.0...
[183/312] Extracting FreeBSD-libyaml-dev-lib32-15.0: 100%
[184/312] Reinstalling FreeBSD-libyaml-lib32-15.0...
[184/312] Extracting FreeBSD-libyaml-lib32-15.0: 100%
[185/312] Reinstalling FreeBSD-lld-15.0...
[185/312] Extracting FreeBSD-lld-15.0: 100%
[186/312] Reinstalling FreeBSD-clang-15.0...
[186/312] Extracting FreeBSD-clang-15.0: 100%
[187/312] Reinstalling FreeBSD-clang-dev-15.0...
[187/312] Extracting FreeBSD-clang-dev-15.0: 100%
[188/312] Reinstalling FreeBSD-lldb-15.0...
[188/312] Extracting FreeBSD-lldb-15.0: 100%
[189/312] Reinstalling FreeBSD-lldb-dev-15.0...
[189/312] Extracting FreeBSD-lldb-dev-15.0: 100%
[190/312] Reinstalling FreeBSD-locales-15.0...
[190/312] Extracting FreeBSD-locales-15.0: 100%
[191/312] Reinstalling FreeBSD-lp-15.0...
[191/312] Extracting FreeBSD-lp-15.0: 100%
[192/312] Reinstalling FreeBSD-mandoc-15.0...
[192/312] Extracting FreeBSD-mandoc-15.0: 100%
[193/312] Reinstalling FreeBSD-mlx-tools-15.0...
[193/312] Extracting FreeBSD-mlx-tools-15.0: 100%
[194/312] Reinstalling FreeBSD-mtree-15.0...
[194/312] Extracting FreeBSD-mtree-15.0: 100%
[195/312] Reinstalling FreeBSD-natd-15.0...
[195/312] Extracting FreeBSD-natd-15.0: 100%
[196/312] Reinstalling FreeBSD-natd-dev-15.0...
[196/312] Extracting FreeBSD-natd-dev-15.0: 100%
[197/312] Reinstalling FreeBSD-natd-dev-lib32-15.0...
[197/312] Extracting FreeBSD-natd-dev-lib32-15.0: 100%
[198/312] Reinstalling FreeBSD-natd-lib32-15.0...
[198/312] Extracting FreeBSD-natd-lib32-15.0: 100%
[199/312] Reinstalling FreeBSD-ncurses-15.0...
[199/312] Extracting FreeBSD-ncurses-15.0: 100%
[200/312] Reinstalling FreeBSD-ncurses-dev-15.0...
[200/312] Extracting FreeBSD-ncurses-dev-15.0: 100%
[201/312] Reinstalling FreeBSD-ncurses-dev-lib32-15.0...
[201/312] Extracting FreeBSD-ncurses-dev-lib32-15.0: 100%
[202/312] Reinstalling FreeBSD-ncurses-lib-15.0...
[202/312] Extracting FreeBSD-ncurses-lib-15.0: 100%
[203/312] Reinstalling FreeBSD-ncurses-lib32-15.0...
[203/312] Extracting FreeBSD-ncurses-lib32-15.0: 100%
[204/312] Reinstalling FreeBSD-netmap-15.0...
[204/312] Extracting FreeBSD-netmap-15.0: 100%
[205/312] Reinstalling FreeBSD-netmap-dev-15.0...
[205/312] Extracting FreeBSD-netmap-dev-15.0: 100%
[206/312] Reinstalling FreeBSD-netmap-dev-lib32-15.0...
[206/312] Extracting FreeBSD-netmap-dev-lib32-15.0: 100%
[207/312] Reinstalling FreeBSD-netmap-lib32-15.0...
[207/312] Extracting FreeBSD-netmap-lib32-15.0: 100%
[208/312] Reinstalling FreeBSD-newsyslog-15.0...
[208/312] Extracting FreeBSD-newsyslog-15.0: 100%
[209/312] Reinstalling FreeBSD-nfs-15.0...
[209/312] Extracting FreeBSD-nfs-15.0: 100%
[210/312] Reinstalling FreeBSD-ntp-15.0p10...
[210/312] Extracting FreeBSD-ntp-15.0p10: 100%
[211/312] Reinstalling FreeBSD-nuageinit-15.0...
[211/312] Extracting FreeBSD-nuageinit-15.0: 100%
[212/312] Reinstalling FreeBSD-nvme-tools-15.0...
[212/312] Extracting FreeBSD-nvme-tools-15.0: 100%
[213/312] Reinstalling FreeBSD-openssl-15.0p10...
[213/312] Extracting FreeBSD-openssl-15.0p10: 100%
[214/312] Reinstalling FreeBSD-certctl-15.0p10...
[214/312] Extracting FreeBSD-certctl-15.0p10: 100%
[215/312] Reinstalling FreeBSD-caroot-15.0...
[215/312] Extracting FreeBSD-caroot-15.0: 100%
[216/312] Reinstalling FreeBSD-openssl-dev-15.0p10...
[216/312] Extracting FreeBSD-openssl-dev-15.0p10: 100%
[217/312] Reinstalling FreeBSD-openssl-dev-lib32-15.0p10...
[217/312] Extracting FreeBSD-openssl-dev-lib32-15.0p10: 100%
[218/312] Reinstalling FreeBSD-openssl-lib-15.0p10...
[218/312] Extracting FreeBSD-openssl-lib-15.0p10: 100%
[219/312] Reinstalling FreeBSD-openssl-lib32-15.0p10...
[219/312] Extracting FreeBSD-openssl-lib32-15.0p10: 100%
[220/312] Reinstalling FreeBSD-periodic-15.0...
[220/312] Extracting FreeBSD-periodic-15.0: 100%
[221/312] Reinstalling FreeBSD-pf-15.0p5...
[221/312] Extracting FreeBSD-pf-15.0p5: 100%
[222/312] Reinstalling FreeBSD-pf-dev-15.0...
[222/312] Extracting FreeBSD-pf-dev-15.0: 100%
[223/312] Reinstalling FreeBSD-pkg-bootstrap-15.0p10...
[223/312] Extracting FreeBSD-pkg-bootstrap-15.0p10: 100%
[224/312] Reinstalling FreeBSD-pmc-15.0...
[224/312] Extracting FreeBSD-pmc-15.0: 100%
[225/312] Reinstalling FreeBSD-pmc-dev-15.0...
[225/312] Extracting FreeBSD-pmc-dev-15.0: 100%
[226/312] Reinstalling FreeBSD-pmc-dev-lib32-15.0...
[226/312] Extracting FreeBSD-pmc-dev-lib32-15.0: 100%
[227/312] Reinstalling FreeBSD-pmc-lib32-15.0...
[227/312] Extracting FreeBSD-pmc-lib32-15.0: 100%
[228/312] Reinstalling FreeBSD-powerd-15.0...
[228/312] Extracting FreeBSD-powerd-15.0: 100%
[229/312] Reinstalling FreeBSD-ppp-15.0...
[229/312] Extracting FreeBSD-ppp-15.0: 100%
[230/312] Reinstalling FreeBSD-bluetooth-15.0...
[230/312] Extracting FreeBSD-bluetooth-15.0: 100%
[231/312] Reinstalling FreeBSD-bluetooth-dev-15.0...
[231/312] Extracting FreeBSD-bluetooth-dev-15.0: 100%
[232/312] Reinstalling FreeBSD-bluetooth-dev-lib32-15.0...
[232/312] Extracting FreeBSD-bluetooth-dev-lib32-15.0: 100%
[233/312] Reinstalling FreeBSD-bluetooth-lib32-15.0...
[233/312] Extracting FreeBSD-bluetooth-lib32-15.0: 100%
[234/312] Reinstalling FreeBSD-quotacheck-15.0...
[234/312] Extracting FreeBSD-quotacheck-15.0: 100%
[235/312] Reinstalling FreeBSD-rdma-15.0...
[235/312] Extracting FreeBSD-rdma-15.0: 100%
[236/312] Reinstalling FreeBSD-rescue-15.0p10...
[236/312] Extracting FreeBSD-rescue-15.0p10: 100%
[237/312] Reinstalling FreeBSD-resolvconf-15.0...
[237/312] Extracting FreeBSD-resolvconf-15.0: 100%
[238/312] Reinstalling FreeBSD-dhclient-15.0p8...
[238/312] Extracting FreeBSD-dhclient-15.0p8: 100%
[239/312] Reinstalling FreeBSD-local-unbound-15.0p10...
[239/312] Extracting FreeBSD-local-unbound-15.0p10: 100%
[240/312] Reinstalling FreeBSD-local-unbound-dev-15.0p10...
[240/312] Extracting FreeBSD-local-unbound-dev-15.0p10: 100%
[241/312] Reinstalling FreeBSD-local-unbound-dev-lib32-15.0p10...
[241/312] Extracting FreeBSD-local-unbound-dev-lib32-15.0p10: 100%
[242/312] Reinstalling FreeBSD-local-unbound-lib32-15.0p10...
[242/312] Extracting FreeBSD-local-unbound-lib32-15.0p10: 100%
[243/312] Reinstalling FreeBSD-rip-15.0...
[243/312] Extracting FreeBSD-rip-15.0: 100%
[244/312] Reinstalling FreeBSD-runtime-15.0p10...
[244/312] Extracting FreeBSD-runtime-15.0p10: 100%
[245/312] Reinstalling FreeBSD-at-15.0...
[245/312] Extracting FreeBSD-at-15.0: 100%
[246/312] Reinstalling FreeBSD-bsdconfig-15.0p9...
[246/312] Extracting FreeBSD-bsdconfig-15.0p9: 100%
[247/312] Reinstalling FreeBSD-bsdinstall-15.0p9...
[247/312] Extracting FreeBSD-bsdinstall-15.0p9: 100%
[248/312] Reinstalling FreeBSD-devd-15.0...
[248/312] Extracting FreeBSD-devd-15.0: 100%
[249/312] Reinstalling FreeBSD-rc-15.0...
[249/312] Extracting FreeBSD-rc-15.0: 100%
[250/312] Reinstalling FreeBSD-runtime-dev-15.0p10...
[250/312] Extracting FreeBSD-runtime-dev-15.0p10: 100%
[251/312] Reinstalling FreeBSD-runtime-dev-lib32-15.0p10...
[251/312] Extracting FreeBSD-runtime-dev-lib32-15.0p10: 100%
[252/312] Reinstalling FreeBSD-runtime-lib32-15.0p7...
[252/312] Extracting FreeBSD-runtime-lib32-15.0p7: 100%
[253/312] Reinstalling FreeBSD-sendmail-15.0p10...
[253/312] Extracting FreeBSD-sendmail-15.0p10: 100%
[254/312] Reinstalling FreeBSD-smbutils-15.0...
[254/312] Extracting FreeBSD-smbutils-15.0: 100%
[255/312] Reinstalling FreeBSD-smbutils-dev-15.0...
[255/312] Extracting FreeBSD-smbutils-dev-15.0: 100%
[256/312] Reinstalling FreeBSD-smbutils-dev-lib32-15.0...
[256/312] Extracting FreeBSD-smbutils-dev-lib32-15.0: 100%
[257/312] Reinstalling FreeBSD-smbutils-lib32-15.0...
[257/312] Extracting FreeBSD-smbutils-lib32-15.0: 100%
[258/312] Reinstalling FreeBSD-sound-15.0...
[258/312] Extracting FreeBSD-sound-15.0: 100%
[259/312] Reinstalling FreeBSD-sound-dev-15.0...
[259/312] Extracting FreeBSD-sound-dev-15.0: 100%
[260/312] Reinstalling FreeBSD-sound-dev-lib32-15.0...
[260/312] Extracting FreeBSD-sound-dev-lib32-15.0: 100%
[261/312] Reinstalling FreeBSD-sound-lib32-15.0...
[261/312] Extracting FreeBSD-sound-lib32-15.0: 100%
[262/312] Reinstalling FreeBSD-ssh-15.0p10...
[262/312] Extracting FreeBSD-ssh-15.0p10: 100%
[263/312] Reinstalling FreeBSD-ssh-dev-15.0p10...
[263/312] Extracting FreeBSD-ssh-dev-15.0p10: 100%
[264/312] Reinstalling FreeBSD-ssh-dev-lib32-15.0p10...
[264/312] Extracting FreeBSD-ssh-dev-lib32-15.0p10: 100%
[265/312] Reinstalling FreeBSD-ssh-lib32-15.0p10...
[265/312] Extracting FreeBSD-ssh-lib32-15.0p10: 100%
[266/312] Reinstalling FreeBSD-syscons-data-15.0...
[266/312] Extracting FreeBSD-syscons-data-15.0: 100%
[267/312] Reinstalling FreeBSD-syslogd-15.0p10...
[267/312] Extracting FreeBSD-syslogd-15.0p10: 100%
[268/312] Reinstalling FreeBSD-tcpd-15.0...
[268/312] Extracting FreeBSD-tcpd-15.0: 100%
[269/312] Reinstalling FreeBSD-tcpd-dev-15.0...
[269/312] Extracting FreeBSD-tcpd-dev-15.0: 100%
[270/312] Reinstalling FreeBSD-tcpd-dev-lib32-15.0...
[270/312] Extracting FreeBSD-tcpd-dev-lib32-15.0: 100%
[271/312] Reinstalling FreeBSD-tcpd-lib32-15.0...
[271/312] Extracting FreeBSD-tcpd-lib32-15.0: 100%
[272/312] Reinstalling FreeBSD-telnet-15.0...
[272/312] Extracting FreeBSD-telnet-15.0: 100%
[273/312] Reinstalling FreeBSD-tests-15.0p10...
[273/312] Extracting FreeBSD-tests-15.0p10: 100%
[274/312] Reinstalling FreeBSD-toolchain-15.0...
[274/312] Extracting FreeBSD-toolchain-15.0: 100%
[275/312] Reinstalling FreeBSD-toolchain-dev-15.0...
[275/312] Extracting FreeBSD-toolchain-dev-15.0: 100%
[276/312] Reinstalling FreeBSD-toolchain-dev-lib32-15.0...
[276/312] Extracting FreeBSD-toolchain-dev-lib32-15.0: 100%
[277/312] Reinstalling FreeBSD-ufs-15.0...
[277/312] Extracting FreeBSD-ufs-15.0: 100%
[278/312] Reinstalling FreeBSD-ufs-dev-15.0...
[278/312] Extracting FreeBSD-ufs-dev-15.0: 100%
[279/312] Reinstalling FreeBSD-ufs-dev-lib32-15.0...
[279/312] Extracting FreeBSD-ufs-dev-lib32-15.0: 100%
[280/312] Reinstalling FreeBSD-ufs-lib-15.0...
[280/312] Extracting FreeBSD-ufs-lib-15.0: 100%
[281/312] Reinstalling FreeBSD-ufs-lib32-15.0...
[281/312] Extracting FreeBSD-ufs-lib32-15.0: 100%
[282/312] Reinstalling FreeBSD-utilities-15.0p10...
[282/312] Extracting FreeBSD-utilities-15.0p10: 100%
[283/312] Reinstalling FreeBSD-rcmds-15.0p9...
[283/312] Extracting FreeBSD-rcmds-15.0p9: 100%
[284/312] Reinstalling FreeBSD-utilities-dev-15.0p10...
[284/312] Extracting FreeBSD-utilities-dev-15.0p10: 100%
[285/312] Reinstalling FreeBSD-utilities-dev-lib32-15.0p10...
[285/312] Extracting FreeBSD-utilities-dev-lib32-15.0p10: 100%
[286/312] Reinstalling FreeBSD-utilities-lib32-15.0p10...
[286/312] Extracting FreeBSD-utilities-lib32-15.0p10: 100%
[287/312] Reinstalling FreeBSD-vi-15.0...
[287/312] Extracting FreeBSD-vi-15.0: 100%
[288/312] Reinstalling FreeBSD-vt-data-15.0...
[288/312] Extracting FreeBSD-vt-data-15.0: 100%
[289/312] Reinstalling FreeBSD-wpa-15.0p10...
[289/312] Extracting FreeBSD-wpa-15.0p10: 100%
[290/312] Reinstalling FreeBSD-xz-15.0...
[290/312] Extracting FreeBSD-xz-15.0: 100%
[291/312] Reinstalling FreeBSD-xz-dev-15.0...
[291/312] Extracting FreeBSD-xz-dev-15.0: 100%
[292/312] Reinstalling FreeBSD-xz-dev-lib32-15.0...
[292/312] Extracting FreeBSD-xz-dev-lib32-15.0: 100%
[293/312] Reinstalling FreeBSD-xz-lib-15.0...
[293/312] Extracting FreeBSD-xz-lib-15.0: 100%
[294/312] Reinstalling FreeBSD-xz-lib32-15.0...
[294/312] Extracting FreeBSD-xz-lib32-15.0: 100%
[295/312] Reinstalling FreeBSD-yp-15.0...
[295/312] Extracting FreeBSD-yp-15.0: 100%
[296/312] Reinstalling FreeBSD-zfs-15.0p10...
[296/312] Extracting FreeBSD-zfs-15.0p10: 100%
[297/312] Reinstalling FreeBSD-zfs-dev-15.0p10...
[297/312] Extracting FreeBSD-zfs-dev-15.0p10: 100%
[298/312] Reinstalling FreeBSD-zfs-dev-lib32-15.0p10...
[298/312] Extracting FreeBSD-zfs-dev-lib32-15.0p10: 100%
[299/312] Reinstalling FreeBSD-zfs-lib-15.0p10...
[299/312] Extracting FreeBSD-zfs-lib-15.0p10: 100%
[300/312] Reinstalling FreeBSD-zfs-lib32-15.0p10...
[300/312] Extracting FreeBSD-zfs-lib32-15.0p10: 100%
[301/312] Reinstalling FreeBSD-zlib-15.0...
[301/312] Extracting FreeBSD-zlib-15.0: 100%
[302/312] Reinstalling FreeBSD-zlib-dev-15.0...
[302/312] Extracting FreeBSD-zlib-dev-15.0: 100%
[303/312] Reinstalling FreeBSD-set-devel-15.0...
[304/312] Reinstalling FreeBSD-zlib-dev-lib32-15.0...
[304/312] Extracting FreeBSD-zlib-dev-lib32-15.0: 100%
[305/312] Reinstalling FreeBSD-zlib-lib32-15.0...
[305/312] Extracting FreeBSD-zlib-lib32-15.0: 100%
[306/312] Reinstalling FreeBSD-set-lib32-15.0...
[307/312] Reinstalling FreeBSD-zoneinfo-15.0p7...
[307/312] Extracting FreeBSD-zoneinfo-15.0p7: 100%
[308/312] Reinstalling FreeBSD-set-minimal-15.0...
[309/312] Reinstalling FreeBSD-set-optional-15.0...
[310/312] Reinstalling FreeBSD-set-base-15.0...
[311/312] Reinstalling FreeBSD-tests-dbg-15.0p10...
[311/312] Extracting FreeBSD-tests-dbg-15.0p10: 100%
[312/312] Reinstalling FreeBSD-set-tests-15.0...
==> Running trigger: mandoc.ucl
=====
Message from FreeBSD-local-unbound-15.0p10:

--
After upgrading local-unbound, the configuration file should be regenerated
by running "service local_unbound setup" before restarting the service.
Restarting sshd
Performing sanity check on sshd configuration.
Stopping sshd.
Waiting for PIDS: 2760.
Performing sanity check on sshd configuration.
Starting sshd.
Conversion finished.

Please verify that the contents of the following critical files are as expected:
/etc/master.passwd
/etc/group
/etc/ssh/sshd_config

After verifying those files, restart the system.

root@r730-01:~ # 

All seems good.

I looked through /etc/master.passwd, looked right to me. I ssh’d from a new terminal session. Worked. I tried su, worked. Seems good there.

/etc/group looked right too. I didn’t check /etc/ssh/sshd_config, but ssh worked. Even after restarting sshd.

Well. Here goes:

[17:58 r730-01 dvl ~] % sudo shutdown -r now
Shutdown NOW!
shutdown: [pid 72325]
[17:58 r730-01 dvl ~] %                                                                                
*** FINAL System shutdown message from dvl@r730-01.int.unixathome.org ***    

System going down IMMEDIATELY                                                  

                                                                               
Connection to r730-01.int.unixathome.org closed by remote host.
Connection to r730-01.int.unixathome.org closed.

After reboot

This seems fine.

[14:00 pro05 dvl ~] % r730
Last login: Mon Jun 29 17:58:06 2026 from pro05.startpoint.vpn.unixathome.org
[18:03 r730-01 dvl ~] % uptime
 6:03PM  up 1 min, 1 user, load averages: 3.17, 0.83, 0.31

And after, the same symlink:

[18:06 r730-01 dvl ~] % ls -l /etc/aliases.db 
lrwxr-xr-x  1 root wheel 15 2024.08.08 11:47 /etc/aliases.db -> mail/aliases.db

Oh, look here:

[18:21 r730-01 dvl ~] % pkg which /bin/sh
/bin/sh was installed by package FreeBSD-runtime-15.0p10

Done. This was easy. I suppose I could have done it earlier.

/etc/mail/aliases

I see that /etc/mail/aliases has been updated:

postfix/smtpd[5054]: warning: database /etc/mail/aliases.db is older than source file /etc/mail/aliases

My post, since I am using postfix was:

sudo postalias /etc/mail/aliases

I looked to see what changes occurred. I did not notice any when compared to last night’s snapshot (using a host I updated today):

[15:49 gw01 dvl /.zfs/snapshot/autosnap_2026-06-30_00:00:01_daily/etc/mail] % diff -ruN aliases /etc/mail/aliases 
[15:49 gw01 dvl /.zfs/snapshot/autosnap_2026-06-30_00:00:01_daily/etc/mail] % ls -l aliases /etc/mail/aliases 
-rw-r--r--  1 root wheel 1596 2026.06.08 18:53 /etc/mail/aliases
-rw-r--r--  1 root wheel 1596 2026.02.15 19:11 aliases
Top

pkgbasify: Authentication error

Post by Dan Langille via Dan Langille's Other Diary »

In this post:

  • FreeBSD 15.0

If you’re running pkgbasify, and you hit this message:

[15:02 zuul dvl ~/tmp] % fetch https://github.com/FreeBSDFoundation/pkgbasify/raw/refs/heads/main/pkgbasify.lua
fetch: https://github.com/FreeBSDFoundation/pkgbasify/raw/refs/heads/main/pkgbasify.lua: Authentication error

… my “fix” was:

[15:04 zuul dvl ~/tmp] % fetch --no-verify-peer https://github.com/FreeBSDFoundation/pkgbasify/raw/refs/heads/main/pkgbasify.lua
fetch: https://github.com/FreeBSDFoundation/pkgbasify/raw/refs/heads/main/pkgbasify.lua: Authentication error
[15:04 zuul dvl ~/tmp] % fetch --no-verify-peer https://github.com/FreeBSDFoundation/pkgbasify/raw/refs/heads/main/pkgbasify.lua
fetch: https://github.com/FreeBSDFoundation/pkgbasify/raw/refs/heads/main/pkgbasify.lua: Authentication error
[15:04 zuul dvl ~/tmp] % fetch --no-verify-peer https://github.com/FreeBSDFoundation/pkgbasify/raw/refs/heads/main/pkgbasify.lua
pkgbasify.lua                                           21 kB   25 MBps    00s
[15:04 zuul dvl ~/tmp] % 

As you can see, it took a few tries to be successful.

So I thought, do I need the –no-verify-peer?

[15:04 zuul dvl ~/tmp] % fetch https://github.com/FreeBSDFoundation/pkgbasify/raw/refs/heads/main/pkgbasify.lua                 
fetch: https://github.com/FreeBSDFoundation/pkgbasify/raw/refs/heads/main/pkgbasify.lua: Authentication error
[15:05 zuul dvl ~/tmp] % fetch https://github.com/FreeBSDFoundation/pkgbasify/raw/refs/heads/main/pkgbasify.lua
fetch: https://github.com/FreeBSDFoundation/pkgbasify/raw/refs/heads/main/pkgbasify.lua: Authentication error
[15:05 zuul dvl ~/tmp] % fetch https://github.com/FreeBSDFoundation/pkgbasify/raw/refs/heads/main/pkgbasify.lua
fetch: https://github.com/FreeBSDFoundation/pkgbasify/raw/refs/heads/main/pkgbasify.lua: Authentication error
[15:05 zuul dvl ~/tmp] % fetch https://github.com/FreeBSDFoundation/pkgbasify/raw/refs/heads/main/pkgbasify.lua
fetch: https://github.com/FreeBSDFoundation/pkgbasify/raw/refs/heads/main/pkgbasify.lua: Authentication error
[15:05 zuul dvl ~/tmp] % fetch https://github.com/FreeBSDFoundation/pkgbasify/raw/refs/heads/main/pkgbasify.lua
pkgbasify.lua                                           21 kB   59 MBps    00s
[15:05 zuul dvl ~/tmp] % 

No, I don’t. I just have to keep trying.

But wait, there’s more

If, during the run of pkgbasify, you get an Authentication error, just try again:

[107/332] Fetching FreeBSD-libmagic-15.0: 100%   820 KiB 839.4 kB/s    00:01    
[108/332] Fetching FreeBSD-ufs-lib-15.0: 100%    27 KiB  27.4 kB/s    00:01    
[109/332] Fetching FreeBSD-nfs-15.0: 100%   169 KiB 173.1 kB/s    00:01    
pkg: https://pkgmir.geo.freebsd.org/FreeBSD:15:amd64/base_release_0/Hashed/FreeBSD-libexecinfo-dbg-15.0~f2fa18c92f.pkg: Authentication error
Fetching packages failed, try again? (y/n) y

Later, we go:

[120/223] Fetching FreeBSD-bmake-dbg-15.0: 100%   295 KiB 302.3 kB/s    00:01    
[121/223] Fetching FreeBSD-hyperv-tools-15.0: 100%    19 KiB  19.4 kB/s    00:01    
[122/223] Fetching FreeBSD-powerd-15.0: 100%    12 KiB  12.5 kB/s    00:01    
pkg: https://pkgmir.geo.freebsd.org/FreeBSD:15:amd64/base_release_0/Hashed/FreeBSD-libyaml-15.0~30c135ea22.pkg: Authentication error
Fetching packages failed, try again? (y/n) 

Hit ‘y’ again.

Notice how it’s now 223 packages, not the original 332. It’s grabbing only the ones it didn’t get downloaded…

Again:

[ 63/101] Fetching FreeBSD-bsdinstall-15.0p9: 100%    82 KiB  84.4 kB/s    00:01    
[ 64/101] Fetching FreeBSD-tcpd-dbg-15.0: 100%    67 KiB  68.2 kB/s    00:01    
[ 65/101] Fetching FreeBSD-lp-dbg-15.0: 100%   302 KiB 308.8 kB/s    00:01    
pkg: https://pkgmir.geo.freebsd.org/FreeBSD:15:amd64/base_release_0/Hashed/FreeBSD-zfs-lib-15.0p10~f98e68ab91.pkg: Authentication error
Fetching packages failed, try again? (y/n) 

Repeat as necessary.

Top

pkgbasify: /var/empty is a readonly zfs filesystem.

Post by Dan Langille via Dan Langille's Other Diary »

After my initial success yesterday with pkgbasify, today, I hit a block. This was my fourth host conversion.

In this post:

  • FreeBSD 15.0

The block

There I was, minding my own business, when this jumped up and hit me.

[root@tallboy:~] # sudo bectl create before-pkgbasify
[root@tallboy:~] # uname -a
FreeBSD tallboy.unixathome.org 15.0-RELEASE-p10 FreeBSD 15.0-RELEASE-p10 GENERIC amd64
[root@tallboy:~] # fetch https://github.com/FreeBSDFoundation/pkgbasify/raw/refs/heads/main/pkgbasify.lua
pkgbasify.lua                                           21 kB 1910 kBps    00s
[root@tallboy:~] # chmod +x ./pkgbasify.lua
[root@tallboy:~] # ./pkgbasify.lua 
/var/empty is a readonly zfs filesystem.
This will cause conversion to fail as pkg will be unable to set the time of
/var/empty. Set readonly=off and run pkgbasify again.

[root@tallboy:~] # 

So, what do we have here?

[root@tallboy:~] # zfs list | grep /var/empty
system/var/empty                   96K   262G    96K  /var/empty
[root@tallboy:~] # zfs get readonly system/var/empty
NAME              PROPERTY  VALUE   SOURCE
system/var/empty  readonly  on      local
[root@tallboy:~] # 

This is an 11 year old system:

[root@tallboy:~] # zfs get creation system
NAME    PROPERTY  VALUE                  SOURCE
system  creation  Tue Feb 17 23:44 2015  -

It is not the only such host I have with this filesystem. See:

[14:21 zuul dvl ~] % zfs list | grep empty
system/var/empty                                   144K   150G   144K  /var/empty
[14:21 zuul dvl ~] % zfs get readonly system/var/empty
NAME              PROPERTY  VALUE   SOURCE
system/var/empty  readonly  on      local
[14:22 zuul dvl ~] % zfs get creation system          
NAME    PROPERTY  VALUE                  SOURCE
system  creation  Sat Dec  7  0:28 2013  -

Even older, but that host (zuul) has not been updated yet.

Either this is lingering issue from how zroot used to be set out, or it’s something I did myself, way-back-when.

What is this used for?

This is where /var/empty comes in:

[14:21 tallboy dvl ~] % grep empty /etc/passwd 
sshd:*:22:22:Secure Shell Daemon:/var/empty:/usr/sbin/nologin
_pflogd:*:64:64:pflogd privsep user:/var/empty:/usr/sbin/nologin
_dhcp:*:65:65:dhcp programs:/var/empty:/usr/sbin/nologin
auditdistd:*:78:77:Auditdistd unprivileged user:/var/empty:/usr/sbin/nologin
_ypldap:*:160:160:YP LDAP unprivileged user:/var/empty:/usr/sbin/nologin
hast:*:845:845:HAST unprivileged user:/var/empty:/usr/sbin/nologin
dovecot:*:143:143:Dovecot User:/var/empty:/usr/sbin/nologin
dovenull:*:144:144:Dovecot login User:/var/empty:/usr/sbin/nologin
_tss:*:601:601:TCG Software Stack user:/var/empty:/usr/sbin/nologin
[14:28 tallboy dvl ~] % 

The simple attempt

Let’s try this:

[14:28 tallboy dvl ~] % sudo zfs set readonly=off system/var/empty
[14:29 tallboy dvl ~] % 

To be reversed after the update.

Not shown

The rest of the pkgbasify process went as describe in Running pkgbasify on FreeBSD 15.0 – then I rebooted.

After boot

[10:40 pro05 dvl ~] % tallboy
Last login: Tue Jun 30 14:43:17 2026 from tmux(2182).%0
[14:43 tallboy dvl ~] % uptime
 2:44PM  up 2 mins, 2 users, load averages: 0.77, 0.29, 0.11
[14:44 tallboy dvl ~] % sudo zfs set readonly=on system/var/empty         
[14:44 tallboy dvl ~] % sudo shutdown -r now                     
Shutdown NOW!
shutdown: [pid 6922]

Perhaps I could have reset readonly before reboot… however….

After the reboot, all was well.

Top

Did VictoriaLogs miss any logs during the reboot?

Post by Dan Langille via Dan Langille's Other Diary »

Yesterday, I modified r730-01 by Running pkgbasify on FreeBSD 15.0 – as a consequence, my log collecting jail was offline. Did it miss any logs?

Let’s find out.

In this post:

  • FreeBSD 15.0
  • syslog-ng-4.11.0_2 (sending logs from FreshPorts production)
  • victoria-logs-1.50.0_2 (receiving logs in the logs jail

The period in question

Looking at /var/log/messages, I see:

Jun 29 17:58:06 r730-01 shutdown[72325]: reboot by dvl: 
Jun 29 17:58:06 r730-01 root[72379]: shutting down jail stage-nginx01
Jun 29 17:58:07 r730-01 root[72634]: jail stage-nginx01 has shut down
Jun 29 17:58:08 r730-01 root[72679]: shutting down jail test-nginx01
Jun 29 17:58:08 r730-01 kernel:  test-nginx01
...
Jun 29 17:59:08 r730-01 root[83022]: jail dns1 has shut down
Jun 29 17:59:09 r730-01 nrpe[2797]: Caught SIGTERM - shutting down...
Jun 29 17:59:09 r730-01 nrpe[2797]: Daemon shutdown
Jun 29 17:59:09 r730-01 kernel: .
Jun 29 17:59:09 r730-01 bacula-fd[2557]: Shutting down Bacula service: r730-01-fd ...
Jun 29 17:59:09 r730-01 ntpd[2546]: ntpd exiting on signal 15 (Terminated)
Jun 29 17:59:09 r730-01 ntpd[2546]: ntpd exiting on signal 15 (Terminated)
Jun 29 18:00:06 r730-01 syslogd: exiting on signal 15

With syslogd now stopped, there are no further logs until:

Jun 29 18:02:51 r730-01 syslogd: kernel boot file is /boot/kernel/kernel
Jun 29 18:02:51 r730-01 kernel: Jun 29 18:00:06 r730-01 syslogd: exiting on signal 15
Jun 29 18:02:51 r730-01 kernel: pflog0: promiscuous mode disabled
Jun 29 18:02:51 r730-01 kernel: tap0: link state changed to DOWN
Jun 29 18:02:51 r730-01 kernel: Waiting (max 60 seconds) for system process `vnlru' to stop... done
...
Jun 29 18:03:49 r730-01 kernel:  stage-nginx01.
Jun 29 18:05:11 r730-01 dvl[81436]: trying to start jail logs...
Jun 29 18:05:11 r730-01 dvl[81891]: jail logs has started

NOTE: I had not set the logs jail to start automatically. The above was me starting the jail from the command line.

What I’m looking for

I want to know if there are any logs between 18:00:06 and

18:05:11

in VictoriaLogs.

If there are, it means VictoriaLogs caught up after being offline. More precisely, the log submitters kept track of what had and had not been sent during the downtime.

Here we go:

Victoria logs for 18:00:00 to 18:06:00 showing 4,223 entries - the graph at the top of the page has no gaps.
Victoria logs for 18:00:00 to 18:06:00 showing 4,223 entries – the graph at the top of the page has no gaps.

So now I know. At present, I’m using only syslog-ng to forward logs into VictoriaLogs. If I start using another tool, I’ll want to confirm it also has buffering.

Top

Valuable News – 2026/06/29

Post by Vermaden via 𝚟𝚎𝚛𝚖𝚊𝚍𝚎𝚗 »

The Valuable News weekly series is dedicated to provide summary about news, articles and other interesting stuff mostly but not always related to the UNIX/BSD/Linux systems. Whenever I stumble upon something worth mentioning on the Internet I just put it here.

Today the amount information that we get using various information streams is at massive overload. Thus one needs to focus only on what is important without the need to grep(1) the Internet everyday. Hence the idea of providing such information ‘bulk’ as I already do that grep(1).

The Usual Suspects section at the end is permanent and have links to other sites with interesting UNIX/BSD/Linux news.

Past releases are available at the dedicated NEWS page.

UNIX

What Has (Can) EU Cyber Resilience Act Done (Do) for You?
https://bsdly.blogspot.com/2026/06/what-has-can-eu-cyber-resilience-act.html

[PATCH] Fix Missing PKGBASE FreeBSD Jail Packages.
https://lists.freebsd.org/archives/freebsd-stable/2026-June/004180.html

FreeBSD Git Weekly: 2026-06-15 to 2026-06-21.
https://freebsd-git-weekly.tarsnap.net/2026-06-15.html

OpenBSD_amd64 Kernel Virtual Address Space is Now 512GB.
https://undeadly.org/cgi?action=article;sid=20260623114653

Nova Desk is Secure Desktop Cryptocurrency Wallet for Linux/FreeBSD.
https://inferenco.com/nova-desk

FreeBSD vs Linux: Eternal Open Source Showdown.
https://roethof.net/posts/2025/07/freebsd-vs-linux-comparison/

DragonFly BSD Digest – Lazy Reading for 2026/06/28.
https://dragonflydigest.com/2026/06/28/lazy-reading-for-2026-06-28/

DragonFly BSD Digest – Lazy Reading for 2026/06/14
https://dragonflydigest.com/2026/06/14/29912/

FreeBSD sh(1) Shell Port for Use on Mac OS X.
https://github.com/dotike/fsh

Understanding /bin /sbin /usr/bin /usr/sbin Split. [2010]
https://lists.busybox.net/pipermail/busybox/2010-December/074114.html

FreeBSD Git Weekly: 2026-06-22 to 2026-06-28.
https://freebsd-git-weekly.tarsnap.net/2026-06-22.html

FreeBSD Multi Installer at BSDCan 2026.
https://alfonsosiciliano.gitlab.io/posts/2026-06-26-bsdcan26-installer.html

GixSQL/COBOL/FreeBSD.
https://tara.sh/posts/2026/2026-06-22_gixsql_cobol_freebsd/

Linux Containers (LXC) on Slackware.
https://tumfatig.net/2026/linux-containers-lxc-on-slackware/

How Changes to poudriere.conf Affect Build Time.
https://dan.langille.org/2026/06/11/how-changes-to-poudriere-conf-affect-the-build-time/

New FreeBSD Core core.14 Team Elected.
https://bsdsec.net/articles/new-freebsd-core-team-elected-b731fb97-d290-45d0-8893-5fca12be0711

Sylve 0.3.0 Adds Lightweight PF Firewall and WireGuard Manager.
https://mastodon.bsd.cafe/@hayzam/116487611925742119

UNIX/Audio/Video

Create Local Cache for FreeBSD pkg(8).
https://youtube.com/watch?v=zyJ1s6eu0l8

Awesome Book on FreeBSD Device Drivers.
https://youtube.com/watch?v=0FlvQh9CyKE

XLibre – Fork of Xorg – Has Yet Another Major New Release.
https://youtube.com/watch?v=PK4szC2OPeY

2026-06-25 Bhyve Production User Call.
https://youtube.com/watch?v=sfjpe8oDZCE

GhostBSD Firewall.
https://youtube.com/watch?v=ld-1cUxpTp8

XFCE Wayland Preview Release is Horribly and Expectedly Broken as Fuck.
https://youtube.com/watch?v=o9RYK7lgWP4

BSD Now 669: Poudriere Speed Run.
https://www.bsdnow.tv/669

Hardware

How to Revive Mockingbird.
https://vivapowerpc.eu/20260608-1200_How_to_revive_a_mockingbird

Blackbird Power Consumption.
https://vivapowerpc.eu/20240607-1730_Blackbird_power_consumption

GIGABYTE Confirms UEFI Password Bypass Possible and Calls it Design Issue.
https://cyberinsider.com/gigabyte-confirms-uefi-password-bypass-possible-calls-it-a-design-issue/

You Can Not Always Trust BMC Server Inventory.
https://utcc.utoronto.ca/~cks/space/blog/tech/BMCDontTrustHardwareInventory

Life

Other

Wikipedia Bans Wikipedia Co-Founder for Saying Wikipedia Should be Neutral.
https://youtube.com/watch?v=zVpg8XOUoc8

Servo 0.3 Released with Demo Browser Becoming More Useful.
https://phoronix.com/news/Servo-0.3-Released

Usual Suspects

BSD Weekly.
https://bsdweekly.com/

DiscoverBSD.
https://discoverbsd.com/

BSDSec.
https://bsdsec.net/

DragonFly BSD Digest.
https://dragonflydigest.com/

FreeBSD Patch Level Table.
https://bokut.in/freebsd-patch-level-table/

FreeBSD End of Life Date.
https://endoflife.date/freebsd

Phoronix BSD News Archives.
https://phoronix.com/linux/BSD

OpenBSD Journal.
https://undeadly.org/

Call for Testing.
https://callfortesting.org/

Call for Testing – Production Users Call.
https://youtube.com/@callfortesting/videos

BSD Now Weekly Podcast.
https://www.bsdnow.tv/

Nixers Newsletter.
https://newsletter.nixers.net/entries.php

BSD Cafe Journal.
https://journal.bsd.cafe/

DragonFly BSD Digest – Lazy Reading – In Other BSDs.
https://dragonflydigest.com

BSDTV.
https://bsky.app/profile/bsdtv.bsky.social

FreeBSD Git Weekly.
https://freebsd-git-weekly.tarsnap.net/

FreeBSD Meetings.
https://youtube.com/@freebsdmeetings

BSDJedi.
https://youtube.com/@BSDJedi/videos

RoboNuggie.
https://youtube.com/@RoboNuggie/videos

GaryHTech.
https://youtube.com/@GaryHTech/videos

Sheridan Computers.
https://youtube.com/@sheridans/videos

82MHz.
https://82mhz.net/

EOF
Top

MMO 20044: Season 3 endet – onli siegt! Was Season 4 bringt

Post by Bernd Dau via Zockertown: Nerten News »

Die dritte Runde unseres browserbasierten MMO-Strategiespiels geht zu Ende, und wir haben einen klaren Sieger: onli hat als Erster Level 5 der Genesis erreicht und damit Season 3 für sich entschieden! 🎉

Rückblick: Season 3

Season 3 war geprägt von einer deutlich größeren Galaxie mit 100 Sternensystemen (doppelt so groß wie zuvor) und wichtigen Spielverbesserungen:

  • Aktions-Warteschlange: Endlich kein Warten mehr! Bis zu vier Reisen und vier Forschungsaufträge lassen sich vorausplanen. Flotte und Labor arbeiten unabhängig – simultaneously reisen und forschen war erstmals möglich.
  • Verbesserte Galaxiekarte: Laufende Reisen werden als Linien angezeigt, Piratenschätze sind markiert, und eine Legende erklärt alle Symbole.
  • Erweiterter Chat: Längere, mehrzeilige Nachrichten für bessere Koordination.
  • Kleine, aber feine Anpassungen: Konkrete Reisezeiten an Warptoren, höherer Ertrag beim Abbau der Heimatwelt, zuverlässige Produktionszyklen.

Trotz der größeren Galaxie hat onli als Kael-Spieler die Konkurrenz hinter sich gelassen und den Countdown ausgelöst. Herzlichen Glückwunsch! 🏆

Die Trophäe für Season 3 geht damit an onli! und ja, wir haben nicht vergessen, sie zu vergeben!

Vorschau: Was Season 4 bringt

Während Season 3 noch ohne direkte Interaktion zwischen den Genesis-Projekten auskam, wird Season 4 mit einem spannenden neuen Feature aufwarten: Genesis-Angriffe!

⚡ Genesis-Angriffe: Strategische Sabotage

Ab Season 4 können Spieler mit aktivem Genesis-Projekt direkt angegriffen werden! erfolgreicher Genesis-Angriff kostet den Angreifer 300 Ticks und:

  • Verzögert das Genesis-Projekt des Verteidigers um 18 Stunden
  • Setzt einen 24-Stunden-Cooldown für den Angreifer (pro Ziel)
  • Garantiert den Sieg für den Angreifer (kein Zufall – reine Tick-Kosten)
  • Erscheint in der Kampfhistorie mit eigenem Battle-Report

Wichtig: Um die Balance zu wahren und sicherzustellen, dass alle Spieler fair Ära-Galaxie 5 erreichen können, gibt es eine maximale Bauzeit von 24 Stunden. Das bedeutet:

  • Genesis-Angriffe setzen die Bauzeit auf mindestens 18 Stunden
  • Mehrere Angriffe hintereinander können die Bauzeit nicht ins Unendliche treiben
  • Sabotage-Sonden (neues Gadget, siehe unten) verlängern um 3 Stunden – aber nie über 24 Stunden hinaus
  • Jeder kann ÄG5 erreichen – strategische Angriffe verzögern den Fortschritt, blockieren ihn aber nicht dauerhaft

Diese Deckelung verhindert, dass die Bauzeit durch koordinierte Angriffe multiple Spieler „ausgesperrt“ werden können. Fairplay steht im Vordergrund!

🎁 Gadget-Händler: Spezialeffekte für Ressourcen

Season 4 führt ein neues Wirtschaftssystem ein: den Gadget-Händler. besuchen des Händlers (über das Dashboard) bietet spezielle Gadgets zum Kauf an – nützliche Einmal-Effekte, die Ressourcen verbrauchen:

  • Schnellsonde: 10 Rohstoffe + 1 Artefakt → Alle laufenden Erkundungen sofort abschließen
  • Notschild: 50 Kristalle → +50% Verteidigungsbonus für den nächsten eingehenden Angriff
  • Boost-Triebwerk: 200 Rohstoffe → Nächste Reise kostet nur die Hälfte an Ticks
  • Saboteur-Sonde: 5 Artefakte → Verzögert fremdes Genesis-Projekt um 3 Stunden

Jeder Gadget-Typ kann nur begrenzt gelagert werden (z. B. max. 2 Saboteur-Sonden), was den strategischen Einsatz fördert.

🌌 Weitere Verbesserungen

Nebst den großen Features gibt es weitere Optimierungen:

  • Rassen-Boni: Jede Rasse hat nun einzigartige Stärken – Ashar mit Angriffsbonus, Kael mit Produktionsvorteilen, Cyborg mit Ausdauer, Mensch als Allrounder
  • Genesis-Seite: Übersichtlicher Fortschritt, Upkeep-Kosten und Bauzeit-Informationen auf einen Blick
  • Kampfberichte: Genesis-Angriffe erhalten eigene Berichte mit klarer Kennzeichnung
  • Dashboard: Genesis-Angriffs-Checkbox direkt im Angriffsformular

Fazit & Ausblick

Season 3 war ein voller Erfolg mit onli als verdientem Sieger. Season 4 wird mit Genesis-Angriffen und dem Gadget-System noch mehr strategische Tiefe und Interaktion zwischen den Spielern bringen – ohne dabei den Fortschritt anderer dauerhaft zu blockieren.

Die wichtigste Botschaft: Ära-Galaxie 5 bleibt für alle erreichbar! Die 24-Stunden-Deckelung der Bauzeit stellt sicher, dass auch bei intensiver Sabotage niemand permanent aus dem Rennen geworfen wird.

Wir freuen uns auf eine spannende Season 4 – möge die beste Strategie gewinnen! 🚀


– Das MMO-20044 Team

Top

Expat 2.8.2 released, fixes 13 vulnerabilities

Post by Sebastian Pipping via Hartwork Blog »

For readers new to Expat:

libexpat is a fast streaming XML parser. Alongside libxml2, Expat is one of the most widely used software libre XML parsers written in C, specifically C99. It is cross-platform and licensed under the MIT license.

Expat 2.8.2 was released today. The key motivation for cutting a release and doing so now was getting security and non-security bugfixes out to users. On the security side, 13 vulnerabilities have been fixed:

The missing control flow integrity checks were brought to light by Steve Stagg in CPython, by Yousef Shanableh, Asher Darden, Haris Hussain, Sajin S of Astra Security and fixed by Kartik Kenchi, Haris Hussain and me.

The out-of-bounds write was reported and fixed by Alessandro Gario of Trail of Bits, Anthropic and Matthew Fernandez.

The integer overflows were reported and fixed by Kartik Kenchi and me.

Thanks to everyone who contributed to this release of Expat!

It it worth reminding that:

For more details about this release, please check out the change log.

If you maintain Expat packaging, a bundled copy of Expat, or a pinned version of Expat, please update to version 2.8.2. Thank you!

Sebastian Pipping

Top

Scattered Spider Hackers Plead Guilty on Day 1 of Trial

Post by Brian Krebs via Krebs on Security »

Two men pleaded guilty in the United Kingdom this week to criminal charges stemming from an August 2024 cyberattack that crippled Transport for London, the entity responsible for the public transport network in the Greater London area. The duo were key members of a prolific cybercrime group known as Scattered Spider, and their guilty pleas came on the first day of what was expected to be a six-week trial.

Owen Flowers (left) 18, and Thalha Jubair, 20. Image: UK National Crime Agency (NCA).

Thalha Jubair, 20, of East London and 18-year-old Owen Flowers of Walsall admitted conspiring to commit unauthorized acts against Transport for London computer systems and causing risk of serious damage to human welfare. According to a report from the BBC, Flowers alone admitted to being part of a conspiracy to hack into U.S. based healthcare providers SSM Health Care Corporation and Sutter Health in September 2024.

Jubair is also wanted by U.S. law enforcement agencies. In September 2025, prosecutors in New Jersey unsealed an indictment alleging Jubair and other Scattered Spider members committed computer fraud, wire fraud, and money laundering in relation to 120 computer network intrusions involving 47 U.S. entities between May 2022 and September 2025, and that the group’s victims paid at least $115 million in ransom payments.

In July 2025, KrebsOnSecurity reported that Flowers and Jubair were arrested in the United Kingdom in connection with Scattered Spider ransom attacks against the retailers Marks & Spencer and Harrods, and the British food retailer Co-op Group. Multiple sources familiar with those investigations said Flowers was the Scattered Spider member who anonymously gave interviews to the media in the days after the group’s September 2023 ransomware attacks disrupted operations at Las Vegas casinos operated by MGM Resorts and Caesars Entertainment.

According to prosecutors, Jubair co-ran a bustling Telegram channel called Star Chat, the home of a SIM-swapping group that used voice- and SMS-based phishing attacks to steal credentials from employees at the major wireless providers in the U.S. and U.K. The group would then use that access to sell a service that could redirect a target’s phone number to a device the attackers controlled and intercept the victim’s calls and text messages (including one-time codes for multi-factor authentication).

A receipt from Star Fraud Chat’s SIM-swapping service targeting a T-Mobile customer after the group gained access to internal T-Mobile employee tools. “Rocket Ace” was one of Jubair’s hacker handles, according to U.S. prosecutors.

New Jersey prosecutors also allege Jubair also was involved in a mass SMS phishing campaign during the summer of 2022 that stole single sign-on credentials from employees at hundreds of companies. That weeks-long SMS phishing campaign led to intrusions and data thefts at more than 130 organizations, including LastPassDoorDashMailchimpPlex and Signal.

KrebsOnSecurity reported last year that one of Jubair’s alter egos at age 15 was “Everlynn,” a hacker who sold fraudulent “emergency data requests” that used compromised police and government email addresses to demand subscriber data (e.g. username, IP/email address) from major tech companies, claiming the requests concerned urgent matters of life and death and could not wait for a court order.

In April 2026, 24-year-old British national and Scattered Spider member Tyler “Tylerb” Buchanan pleaded guilty to wire fraud conspiracy and aggravated identity theft for participating in the group’s SMS phishing spree in the summer of 2022. The government said Buchanan, Jubair and others used the credentials harvested in that phishing campaign to steal at least $8 million in cryptocurrency from victims throughout the United States. Buchanan is currently scheduled to be sentenced on October 2.

In August 2025, 20-year-old Scattered Spider member from Florida named Noah Michael Urban was sentenced to 10 years in federal prison and ordered to pay $13 million in restitution, after pleading guilty to charges of wire fraud and conspiracy.

The U.S. Department of Justice says three alleged Scattered Spider defendants indicted along with Buchanan still face charges, including Ahmed Hossam Eldin Elbadawy, 24, a.k.a. “AD,” of College Station, Texas; Evans Onyeaka Osiebo, 21, of Dallas, Texas; and Joel Martin Evans, 26, a.k.a. “joeleoli,” of Jacksonville, North Carolina.

Flowers and Jubair are slated to be sentenced in a London court on July 15, 2026.

Top

Zusammenfassung Fossilfrei

Post by Kristian Köhntopp via Die wunderbare Welt von Isotopp »

[basierend auf einem Mastodon-Thread ]

Wir haben im März 2025 die Gasheizung abgeschaltet. Seitdem - also seit mehr als einem Jahr - heizen und kühlen wir das Haus mit Klimageräten, also Luft-Luft-Wärmepumpen. Die erste Beschreibung der Installation steht in Going fully electric , die Auswertung nach einem Jahr in One year gas-free .

Das kurze Ergebnis: Es funktioniert. Im Winter wird das Haus schnell warm. Im Sommer bleibt der Arbeitsplatz unter dem Dach bei 23,5 Grad stabil, auch wenn es draußen heiß ist.

Temperatur am Arbeitsplatz unter dem Dach: Morgens fällt die Temperatur nach dem Einschalten des Klimagerätes von 26 Grad auf 23,5 Grad und bleibt dort stabil.

Ausgangslage

Das Projekt ist nicht nur “Gasheizung raus, Klimageräte rein”. Es ist Teil einer fast fünf Jahre langen Umstellung:

  • Test mit einem Carver S+ als kleinem Elektrofahrzeug für lokale Fahrten.
  • Installation einer Ost-West-Solaranlage mit 3,3 kWp auf der Ostseite und 6,6 kWp auf der Westseite, zusammen 9.250 Wp.
  • Installation eines 11-kW-Ladeanschlusses und Kauf eines gebrauchten Megane e-Tech 60 kWh (Jahreswagen).
  • Abschalten der Gasheizung und Umstellung auf Luft-Luft-Wärmepumpen.
  • Senkung der elektrischen Grundlast des Hauses von etwa 5,5 MWh/Jahr auf etwa 4,0 MWh/Jahr durch Austausch ineffizienter Komponenten (der Haus-Server war 12 Jahre alt).

Der alte Renault Scenic Diesel ist weggefallen. 12.000 km/Jahr bei 7 l/100 km waren 840 Liter Diesel, also grob 8,4 MWh Primärenergie. Der Megane braucht etwa 14 kWh/100 km im Sommer und 18 kWh/100 km im Winter. Das sind ungefähr 2 MWh elektrische Energie pro Jahr.

Die Solaranlage produziert etwa 7 MWh/Jahr. In den Niederlanden wirkt Net Metering bis Ende 2026 noch wie eine virtuelle Batterie: eingespeiste kWh werden für das Intervall Juli-Juni des Folgejahres gegen bezogene kWh gerechnet. Die eingespeiste Solarproduktion wird also voll auf den Verbrauch angerechnet.

Die Anlage

Installiert sind zwei Panasonic-Multisplit-Systeme.

An der Südseite:

  • Panasonic RAC Free Multi 5-Port BU R32
  • 9,00 kW Kühlen
  • 10,40 kW Heizen

An der Nordseite:

  • Panasonic RAC Free Multi 3-Port BU R32
  • 5,20 kW Kühlen
  • 6,80 kW Heizen

Innen hängen sieben Etherea-Wandgeräte mit WLAN:

  • 3x 1,6 kW Kühlen / 2,6 kW Heizen
  • 4x 2,5 kW Kühlen / 3,6 kW Heizen

Dazu kommt ein Panasonic Aquarea DHW Wärmepumpenboiler mit 200 Litern. Das ursprüngliche Angebot enthielt 270 Liter; wir haben auf 200 Liter reduziert.

Die Außengeräte versorgen die Innengeräte mit Strom, Kältemittel-Vor- und Rücklauf sowie Kondensatableitung. Dafür braucht jedes Innengerät einen Wanddurchbruch von etwa 5 bis 8 cm. Durch den laufen Stromkabel, zwei dünne Kupferrohre und ein Kondensatschlauch. Der Durchbruch wird danach wieder isoliert und innen vom Gerät verdeckt.

Teileliste und Preise aus dem Angebot, ohne Mehrwertsteuer.

Kosten und Nebenarbeiten

Die Wärmepumpenanlage selbst lag bei etwa 17.700 Euro inklusive Installation. Davon waren rund 5.000 Euro Arbeitskosten.

Dazu kamen Arbeiten, die nicht direkt Wärmepumpe sind, aber in der Praxis zu diesem Umbau gehörten:

  • neue HRV, also mechanische Hauslüftung mit Wärmezurückgewinnung von Duco;
  • Bau eines Dachbodens als Zwischendecke mit Isolierung;
  • komplette Erneuerung des Sicherungskastens;
  • späteres Entfernen der Radiatoren und des Gasbrenners.

Am Ende sind etwa 25.000 Euro abgeflossen. Das waren ungefähr 5% des Hauswerts. Nicht wenig, aber für das Ergebnis auch nicht absurd.

Der Sicherungskasten war von 2002 und über Jahre inkrementell erweitert worden: Solar, Ladeanschluss, Klima, Zusatzteile auf die Wand. Das war selbst nach niederländischem Maßstab nicht mehr tragbar. Die Kontoauszüge legen nahe, daß die Erneuerung des Sicherungskastens etwa 2.500 Euro gekostet hat. Der lokale Satz lag bei 70 Euro/Stunde. 3 x 8 Stunden Elektrikerarbeit wären also 1.680 Euro netto.

In den Niederlanden gibt es kein deutsches Zunftsystem und keine so strenge Trennung nach Gewerken. Die Arbeiten hat ein Unternehmer gemacht, der Klimatechnik, Trockenbau, Elektro und noch ein bischen abdeckt: Flink Duurzaam . Das ist quasi ein neues, modernes Gewerk: Nämlich ganzheitliche Energiesanierung von Häusern.

Plan des neuen Sicherungskastens.

Das spätere Entfernen der alten Heizung war noch einmal ein eigener Eingriff. Die Radiatoren vor den Fenstern wurden abgeflext und entfernt, der Gasbrenner kam raus. Das hat in den Räumen spürbar Platz geschaffen und die Hauswirtschaftskammer unter dem Dach etwa zur Hälfte freigemacht.

Das Kündigen des Gasliefervertrages war überraschend zäh. Auch ohne Gasverbrauch liefen Bereitstellungskosten von ziemlich genau 1 Euro pro Tag. Der Zähler ist jetzt stillgelegt. Aus dem P1-Interface des Stromzählers kommen im Home Assistant jetzt keine Gas-Pakete mehr, nur noch Strom-Pakete.

Warum Luft-Luft funktioniert

Das funktioniert bei uns aus drei Gründen:

  • Das Haus ist kein Altbau.
  • Die Deckenhöhe liegt bei 2,65 m.
  • Die Winter hier sind nicht sehr kalt.

Die Anlage ist für +45 Grad bis -15 Grad spezifiziert. Bei -10 Grad wird sie aber deutlich ineffizient. Eine solche Nacht hatten wir im Januar: zusammen 45 kWh für die Heizung und 88 kWh für das ganze Haus, weil auch das Auto geladen werden mußte.

Wer in einer Gegend mit längeren tiefen Minusgraden lebt, ist mit einer Luft-Wasser-Wärmepumpe, Pufferspeicher und Heizstab vermutlich besser bedient. Die kann dann aber nicht trivial kühlen, weil Kondensat behandelt werden muß.


EDIT: Weil es im Fedi immer wieder diskutiert wird.

Man kann theoretisch mit einer Wärmepumpe und einer Fußbodenheizung oder Radiatoren kühlen. Jedenfalls kann eine Luft-Wasser-Wärmepumpe auch invers laufen und kaltes Wasser produzieren, das man dann in den Heizkreislauf pumpt.

Dabei kommt es aber zur Bildung von Konsensat, falls die kältesten Stellen des Heizkreislaufes (also gleich hinter der Wärmepumpe) kälter als der aktuelle Taupunkt (plus 3ºC Marge) werden. Meist heißt das, dass man zum Beispiel bei 17ºC Taupunkt kaltes Wasser von 20ºC erzeugen kann, welches dann mit sagen wir 22ºC in den Radiatoren oder den Fußbodenheizungs-Schleifen ankommt. Man wird einen Ventilator brauchen, um die Schichtung zu durchbrechen und der Wärmetransport hält sich in Grenzen. Es ist besser als gar keine Kühlung, aber es ist nicht sehr leistungsfähig im Vergleich zu einer Luft-Luft-Wärmepumpe (aka Split-Airco).

Es ist außerdem wirkungslos bei Wärme mit hohem Taupunkt, also bei schwülem Wetter, wo eine Split-Airco im Trockungsbetrieb aggressiv das Wasser aus der Luft zieht ohne die Temperatur viel zu senken.


Eine Split-Airco ist dagegen anders beschränkt: Sie kann im Winter nicht mit einem Heizstab unterstützt werden. Wenn die untere Temperaturgrenze der Anlage nicht reicht, braucht man eine andere Zusatzheizung.

Alle Wärmepumpen werden am unteren Ende ihres Spezifikationsbereichs ineffizienter. Bei Luft-Wasser-Anlagen legt man deshalb auf einen großzügigen Durchschnitt aus und läßt sehr kalte Tage selten vom Heizstab abfangen. Der Heizstab ist dann zwar nur 100% effizient, läuft aber kaum, und die auf den Durchschnitt statt den Extremwert skalierte Anlage macht das an den nicht so kalten Tagen durch höhere Effizienz wieder wett.

Generell gilt als Faustregel: Bei weniger als 100 kWh/(m² Jahr) Heizenergiebedarf kann eine Wärmepumpe meist stressarm installiert werden. Bei mehr als 100 kWh/(m² Jahr) sind Energiesparmaßnahmen wichtiger. Unser Haus lag vorher bei etwa 1.000 bis 1.200 m³ Gas pro Jahr, also 10 bis 12 MWh. Bei 156 m² sind das etwa 64 bis 77 kWh/(m² Jahr).

Hub, Vorlauf und Effizienz

Der zentrale Begriff ist der Hub. Die Wärmepumpe muß eine Temperatur von einem Eingangswert auf einen Ausgangswert anheben: zum Beispiel von 5 Grad Außenluft auf 45 Grad Vorlauf. Das sind 40 Grad Hub.

Diesen Hub zu verringern ist der Kern der Effizienz. Bei einer Luft-Wasser-Wärmepumpe heißt das meistens: Vorlauf runter. In einem Berliner Altbau würde ich vorhandene Rippenheizkörper vermutlich durch Typ-33-Heizkörper ersetzen lassen und in einigen Räumen generell mehr Fläche installieren. Wenn man im kältesten Raum die Heizkörper aufrüstet und dadurch den Vorlauf absenken kann, hilft das dem ganzen Haus.

Klimageräte sind hier “verschweint effizient”, weil der Hub klein ist. Sie müssen nicht Wasser auf Vorlauftemperatur bringen, sondern Innenluft zwangsbelüftet auf die Zieltemperatur plus etwas Reserve. Es muß keine Konvektion über Radiatoren unterhalten werden.

Der Nachteil ist Schichtung. Warme Luft steigt, kalte Luft sinkt. Das gibt es bei Radiatoren auch, aber dort gibt es keinen Ventilator, der die Luft aktiv mischt. Niedrige Räume sind für Luft-Luft deshalb besser als Altbauzimmer mit 3,5 m Deckenhöhe.

Zonen und Trägheit

Wir mußten das Haus stockwerkweise in Temperaturzonen unterteilen. Sonst fällt kalte Luft ins Erdgeschoss, oder die ganze warme Luft sammelt sich im Dachgeschoss und der Rest bleibt kalt. Man kann das mit Türen oder mit Umbauten an Treppenhäusern lösen. Bei uns reichen an einigen Stellen Vorhänge.

Eine Luft-Luft-Wärmepumpe hat praktisch keine thermische Trägheit. Die Lufttemperatur reagiert binnen Minuten. Möbel, Wände und andere Massen brauchen Stunden bis einen Tag, bis sie thermisch nachgezogen haben. Das merkt man daran, daß die Temperatur nach kurzem Betrieb schnell wieder auf den alten Wert zurückfällt.

Im Winter ist genau diese geringe Trägheit angenehm. Man kommt morgens in ein 18 Grad warmes Wohnzimmer und hat es in weniger als zehn Minuten angenehm. Es dauert länger, bis die Wärme in Möbel und Wände eingezogen ist, aber Frühstück im Erdgeschoss ist sofort besser.

Im Sommer ist es noch deutlicher: Die Westseite und das Dachgeschoss bleiben unter 24 Grad. Für einen Arbeitsplatz unter dem Dach, der vorher gerne auch mal 35 Grad am Platz hatte, ist das kein Komfortdetail, sondern der Unterschied zwischen benutzbar und unbenutzbar.

Geräusch und Luftbewegung

Die Innengeräte haben mehrere Betriebsarten, darunter “Quiet”. In dieser Einstellung wird die Lüfterdrehzahl begrenzt. Dann hört man den Lüfter bestenfalls flüstern. Wenn die Lamellenverschwenkung aktiv ist, ist die Mechanik lauter als der Lüfter in Quiet.

Am Ende bleibt es aber ein Lüfter. Er bewegt Luft. Wer das nicht mag, braucht eine Radiatorheizung mit Wärmepumpe. Die kann dann aber nicht kühlen.

Gemessener Verbrauch

Die alte Gasheizung brauchte je nach Jahr 1.000 bis 1.200 m³ Gas, also 10 bis 12 MWh Primärenergie.

Nach der Umstellung liefen durch die Klimageräte:

  • 3.370 kWh für Heizung und Kühlung auf der Südseite;
  • 469 kWh auf der Nordseite.

Zieht man die Kühlung ab, landen wir bei etwa 3.500 kWh für Heizung. Dazu kommen etwa 800 kWh für Brauchwasser.

Monatlicher Stromverbrauch der Klimageräte. Der größte Teil fällt im Winter auf der Südseite an.

Der Gesamtbedarf sieht damit so aus:

4,0 MWh Haus
+3,5 MWh Heizung
+0,8 MWh Warmwasser
+2,0 MWh Auto
=10,3 MWh Gesamtbedarf

Dem stehen etwa 7 MWh Solarertrag gegenüber. Unter Net Metering haben wir also etwa 3,3 MWh Strom bezahlt. Das sind deutlich unter 1.000 Euro Gesamtenergiekosten pro Jahr, inklusive Fahren.

Ohne Net Metering sieht die Rechnung anders aus: 7 MWh produziert, 4 MWh eingespeist, 7,3 MWh bezogen. Dann würden 7,3 MWh Strom bezahlt, also grob 1.800 Euro im Jahr bei einem Vertrag mit Festkosten. Das ist immer noch nicht extrem teuer, aber es ist nicht mehr dieselbe einfache Jahresbilanz.

Batterie

Eine Batterie kommt im August. Geplant sind 30 kWh als Teil einer VPP, also einer Virtual Power Plant. Der Lieferant der Solaranlage, des Ladeanschlusses, der Batterie und des Stroms kann die Batterie aus Solar oder aus dem Netz laden und ins Haus oder ins Netz entladen, je nachdem, was wirtschaftlich besser ist. In Deutschland würde man sagen: Die Batterie wird netzdienlich betrieben.

Eine 30-kWh-Batterie für ein Haus mit 350 bis 400 W Nachtgrundlast wäre als reine Eigenverbrauchsbatterie Quatsch. Acht Monate im Jahr kann der Tagesertrag der Solaranlage den Akku nicht voll machen. Wenn der Akku aber auch aus dem Netz geladen und wieder ins Netz abgegeben wird, kann das sinnvoll sein.

Wie lange hält so ein Akku?

Wenn das Auto lädt: weniger als 3 Stunden. Das Auto zieht 11 kW. 30 kWh sind bei 11 kW in unter 3 Stunden weg.

Im Sommer: etwa 3 Tage.

Im Winter bei etwa 0 Grad draußen: 0,75 bis 1,25 Tage. Bei 2.000 W Heizleistung im Haus und 400 bis 600 W Grundlast gehen rund 2.500 W ins Haus. Eine 10-kWh-Batterie ist dann in 4 Stunden leer, eine 30-kWh-Batterie in 12 Stunden.

Am 11. März, einem normalen kühlen Tag mit 8 bis 9 Grad, zog die Südseiten-Anlage 400 bis 800 W. Das Haus lag damit vermutlich bei 800 bis 1.200 W total. Bei 10 kWh kommt man damit etwa 10 Stunden hin, bei 30 kWh etwa 30 Stunden.

Leistungsaufnahme der Südseiten-Anlage am 11. März 2026: meist 400 bis 800 W.

Perioden mit sehr hohen Stundenpreisen dauern typischerweise 2 bis 4 Stunden. Schon 10 kWh reichen, um solche Phasen zu überbrücken, solange man in dieser Zeit nicht das Auto laden will.

Die wichtige Regel bleibt: Erst messen, dann planen. Ohne Messwerte schätzt man schlecht und kauft sich Angstprodukte.

Ergebnis

Die Lebensqualität ist deutlich besser. Das Haus ist im Winter schnell warm, im Sommer kühlbar, und Gas ist weg.

Die Umstellung hat den Energiebedarf nicht verschwinden lassen. Sie hat ihn von Gas und Diesel auf Strom verschoben und die Effizienz erhöht, also die Primärenergie deutlich verkleinert. Dazu kommt der Eigenverbrauch selbst generierten Stromes aus der Solaranlage, der die Kostendeckung noch weiter erhöht.

Das ist genau der Punkt: Strom ist messbar, lokal teilweise selbst erzeugbar und mit Batterie zeitlich verschiebbar.

Die nächste Optimierung ist nicht mehr die Heizung. Die funktioniert. Die nächste Optimierung ist Timing: mehr eigenen Solarstrom selbst nutzen, teure Stunden überbrücken und nach Ende von Net Metering nicht unnötig viel Strom durch das Netz hin und her schieben.

Quellen: Mastodon-Thread , Going fully electric , One year gas-free .

Top

Valuable News – 2026/06/22

Post by Vermaden via 𝚟𝚎𝚛𝚖𝚊𝚍𝚎𝚗 »

The Valuable News weekly series is dedicated to provide summary about news, articles and other interesting stuff mostly but not always related to the UNIX/BSD/Linux systems. Whenever I stumble upon something worth mentioning on the Internet I just put it here.

Today the amount information that we get using various information streams is at massive overload. Thus one needs to focus only on what is important without the need to grep(1) the Internet everyday. Hence the idea of providing such information ‘bulk’ as I already do that grep(1).

The Usual Suspects section at the end is permanent and have links to other sites with interesting UNIX/BSD/Linux news.

Past releases are available at the dedicated NEWS page.

UNIX

Difference Between FreeBSD New rcd(8) and launchd(8) from Mac OS X.
https://lists.freebsd.org/archives/freebsd-hackers/2026-June/006439.html

BSDCan 2026 All Days.
https://bsdcan.org/2026/timetable/timetable-all.html

FreeBSD 15 on Laptop.
https://sacredheartsc.com/blog/freebsd-15-on-a-laptop/

FreeBSD 15.1-RELEASE Now Available.
https://lists.freebsd.org/archives/freebsd-announce/2026-June/000274.html

FreeBSD 15.1-RELEASE Release Notes.
https://freebsd.org/releases/15.1R/relnotes/

FreeBSD 15.1-RELEASE Upgrading Instructions.
https://freebsd.org/releases/15.1R/upgrading/

FreeBSD 15.1 Released with Updated WiFi Drivers and Better C23 Support and Other Improvements.
https://phoronix.com/news/FreeBSD-15.1-Released

RedBSD – FreeBSD for Red Team Penetration Testing.
https://redbsd.org/

FreeBSD AI Assisted Vulnerability Discovery Project Launch.
https://freebsdfoundation.org/blog/freebsd-ai-assisted-vulnerability-discovery-project-launch/

FreeBSD Receives Funding to Launch AI Assisted Vulnerability Discovery.
https://phoronix.com/news/FreeBSD-AI-Bug-Discovery

FreeBSD Graphics Port Upgraded to Linux 6.12.
https://freebsdfoundation.org/blog/freebsd-graphics-port-upgraded-to-linux-6-12/

FreeBSD Updates Its Graphics Driver Port from Linux 6.12 LTS.
https://phoronix.com/news/FreeBSD-drm-kmod-Linux-6.12

Replacing syslogd(8) with syslog-ng(8) on FreeBSD.
https://dan.langille.org/2026/06/16/replacing-syslogd-with-syslog-ng-sysutils-syslog-ng-on-freebsd/

Adding Nginx Proxy in Front of Victoria Labs.
https://dan.langille.org/2026/06/17/adding-an-nginx-proxy-in-front-of-victoria-labs/

Getting Nginx Logs into Victoria Logs.
https://dan.langille.org/2026/06/17/getting-nginx-logs-into-victoria-logs/

FreeBSD Kernel Zero Days Found by AI Agent.
https://praetorian.com/blog/ai-vulnerability-research-freebsd-kernel/

How to Fetch Moving Target with Poudriere.
https://oshogbo.com/blog/91/

Tribblix Milestone 40 for x86 Released.
https://osnews.com/story/145304/tribblix-milestone-40-for-x86-released/

Code That Built Internet – Impact of BSD – Part 1.
https://lpi.org/blog/2026/06/19/code-that-built-the-internet-the-impact-of-bsd-part-1/

Cactus Complete Rewrite for Linux/FreeBSD in Zig/DVUI.
https://ziggit.dev/t/cactus-complete-rewrite-for-linux-freebsd-zig-dvui/16244

Running HomeAssistant Core in FreeBSD Jails with BastilleBSD.
https://dkade.com/posts/homeassistant_freebsd_jail/

Join Us to Celebrate FreeBSD Day!
https://freebsdfoundation.org/freebsd-day/

Sex Microkernel.
https://github.com/xirtus/sex

FreeBSD 15.1-RELEASE Goes Official.
https://officialaptivi.wordpress.com/2026/06/16/freebsd-15-1-goes-official/

Upgrading FreeBSD PKGBASE System from FreeBSD 15.0-RELEASE to 15.1-RELEASE.
https://officialaptivi.wordpress.com/2026/06/16/upgrading-freebsd-pkgbase-system-from-freebsd-v15-0-to-v15-1/

FreeBSD 15.1-RELEASE. [Polish]
https://linuxiarze.pl/freebsd-15-1/

NextBSD – BSD of 21st Century.
https://nextbsd.org/

Extending ZFS Performance without Hardware Upgrades.
https://klarasystems.com/articles/extending-zfs-performance-without-hardware-upgrades/

GhostBSD 2026/02 Finance Report.
https://ghostbsd.org/news/February_2026_Finance_Report

Definition of Unix.
https://vivianvoss.net/blog/definition-of-unix

ZFS vs Ceph: Do You Actually Need Ceph?
https://klarasystems.com/articles/zfs-vs-ceph-do-you-actually-need-ceph/

NetBSD 11.0 RC5 Available.
https://blog.netbsd.org/tnf/entry/netbsd_11_0_rc5_available

MidnightBSD 4.0.6 RELEASE.
https://bsdsec.net/articles/midnightbsd-security-midnightbsd-4-0-6-release

The pkgb-update(8) Tool to Make Upgrade with PKGBASE Easy.
https://github.com/Emrion/pkgb-update/

XLibre XServer 25.2 Changes.
https://github.com/X11Libre/xserver/wiki/XLibre-XServer-25.2-Changes

UNIX/Audio/Video

Slackware Tests Replacing Xorg X11 with XLibre X11.
https://youtube.com/watch?v=C1a5VVp97w8

Port Knocking and SSH Tarpit on FreeBSD.
https://youtube.com/watch?v=9Oyo2vVkGEs

2026 FreeBSD Developer Summit – Day 1/2.
https://youtube.com/live/A6L_ErsheVM

2026 FreeBSD Developer Summit – Day 2/2.
https://youtube.com/live/0H7FXntNSIw

BSD Now 668: Wiring Up BSDs.
https://www.bsdnow.tv/668

FreeBSD Music Collection.
https://interfacecraft.online/blog/2026/freebsd-music-collection/

The freebsd-update(8) Screensaver.
https://vermaden.wordpress.com/2026/06/19/freebsd-update-screensaver/

Expand GELI Encrypted Bhyve VM ZFS Disk.
https://vermaden.wordpress.com/2026/06/17/expand-geli-encrypted-bhyve-vm-zfs-disk/

Hardware

Juncheng Vehicle Replicating Car Icons.
https://youtube.com/watch?v=cBBZrjwqWZc

Keep Android Open.
https://keepandroidopen.org/

Commodore Callback Phone.
https://youtube.com/watch?v=ixD_fqrnA_c

Life

Signal/DuckDuckGo/NordVPN Threaten to Exit Canada if Metadata Surveillance Law Passes.
https://techspot.com/news/112672-signal-duckduckgo-nordvpn-threaten-exit-canada-if-metadata.html

Scientists Pour Cold Water on Claims Phones are Rewiring Kids Brains.
https://theregister.com/personal-tech/2026/06/14/scientists-pour-cold-water-on-claims-phones-are-rewiring-kids-brains/5254792

51 Million Person Study Finds COVID-19 Vaccines Increase Risk of Respiratory Infections by Up to 559%.
https://thefocalpoints.com/p/breaking-51-million-person-study

Nobody is Prisoner of Their IQ.
https://robkhenderson.com/p/nobody-is-a-prisoner-of-their-iq

Chernobyl Forgotten Internet.
https://youtube.com/watch?v=iZKw2H6d1SU

Other

Firefox 152 Adds JPEG XL Support and Redesigned Settings.
https://linuxiac.com/firefox-152-adds-jpeg-xl-support-and-redesigned-settings/

Firefox 153 Nightly Rolls Out New Settings UI.
https://phoronix.com/news/Firefox-Nightly-New-Settings

This is How We Found Heaven Sword East Asia Tallest Tree After Years of Looking.
https://frontiersin.org/news/2026/06/05/how-we-found-east-asias-tallest-tree

AMIGA Wallpapers.
https://andreas.blazer.nu/wallpapers.php

Best Racing Games of All Time.
https://club386.com/best-racing-games/

Usual Suspects

BSD Weekly.
https://bsdweekly.com/

DiscoverBSD.
https://discoverbsd.com/

BSDSec.
https://bsdsec.net/

DragonFly BSD Digest.
https://dragonflydigest.com/

FreeBSD Patch Level Table.
https://bokut.in/freebsd-patch-level-table/

FreeBSD End of Life Date.
https://endoflife.date/freebsd

Phoronix BSD News Archives.
https://phoronix.com/linux/BSD

OpenBSD Journal.
https://undeadly.org/

Call for Testing.
https://callfortesting.org/

Call for Testing – Production Users Call.
https://youtube.com/@callfortesting/videos

BSD Now Weekly Podcast.
https://www.bsdnow.tv/

Nixers Newsletter.
https://newsletter.nixers.net/entries.php

BSD Cafe Journal.
https://journal.bsd.cafe/

DragonFly BSD Digest – Lazy Reading – In Other BSDs.
https://dragonflydigest.com

BSDTV.
https://bsky.app/profile/bsdtv.bsky.social

FreeBSD Git Weekly.
https://freebsd-git-weekly.tarsnap.net/

FreeBSD Meetings.
https://youtube.com/@freebsdmeetings

BSDJedi.
https://youtube.com/@BSDJedi/videos

RoboNuggie.
https://youtube.com/@RoboNuggie/videos

GaryHTech.
https://youtube.com/@GaryHTech/videos

Sheridan Computers.
https://youtube.com/@sheridans/videos

82MHz.
https://82mhz.net/

EOF
Top

Replacing syslogd with syslog-ng (sysutils/syslog-ng) on FreeBSD

Post by Dan Langille via Dan Langille's Other Diary »

I just got Victoria Logs running. Now I want to get logs into it. For starters, I want to get the logs on the host itself into Victoria Logs. I figure this is a log-risk experiment.

However, this post has been deprecated by a newer post which covers more material.

In this post:

  • FreeBSD 15.0
  • victoria-logs-1.50.0_2
  • syslog-ng-4.11.0_2

I will be using TLS between syslog-ng and victoria-logs – you will notice this is all on the same host, and some of you might say: you don’t need TLS for that. However, this is a proof-of-concept for remote hosts. They will be passing traffic through my VPN and my network. Or perhaps over the Internet. Things change. Let’s start with TLS.

The install

I installed:

[20:08 logs dvl ~] % sudo pkg install syslog-ng
Updating local repository catalogue...
[logs.int.unixathome.org] Fetching meta.conf: 100%     179 B   0.2 kB/s    00:01    
[logs.int.unixathome.org] Fetching data: 100%   352 KiB 360.5 kB/s    00:01    
Processing entries: 100%
local repository update completed. 953 packages processed.
All repositories are up to date.
The following 7 package(s) will be affected (of 0 checked):

New packages to be INSTALLED:
	glib: 2.86.4,2 [local]
	ivykis: 0.43.2_1 [local]
	json-c: 0.18 [local]
	libuuid: 2.42.1 [local]
	py314-packaging: 26.2 [local]
	python314: 3.14.6 [local]
	syslog-ng: 4.11.0_2 [local]

Number of packages to be installed: 7

The process will require 360 MiB more space.
53 MiB to be downloaded.

Proceed with this action? [y/N]: y
[logs.int.unixathome.org] [1/7] Fetching ivykis-0.43.2_1: 100%    70 KiB  71.3 kB/s    00:01    
[logs.int.unixathome.org] [2/7] Fetching py314-packaging-26.2: 100%   203 KiB 208.0 kB/s    00:01    
[logs.int.unixathome.org] [3/7] Fetching glib-2.86.4,2: 100%    11 MiB  11.0 MB/s    00:01    
[logs.int.unixathome.org] [4/7] Fetching syslog-ng-4.11.0_2: 100%  1102 KiB   1.1 MB/s    00:01    
[logs.int.unixathome.org] [5/7] Fetching libuuid-2.42.1: 100%    48 KiB  49.2 kB/s    00:01    
[logs.int.unixathome.org] [6/7] Fetching json-c-0.18: 100%    71 KiB  73.1 kB/s    00:01    
[logs.int.unixathome.org] [7/7] Fetching python314-3.14.6: 100%    41 MiB  42.6 MB/s    00:01    
Checking integrity... done (0 conflicting)
[logs.int.unixathome.org] [1/7] Installing ivykis-0.43.2_1...
[logs.int.unixathome.org] [1/7] Extracting ivykis-0.43.2_1: 100%
[logs.int.unixathome.org] [2/7] Installing json-c-0.18...
[logs.int.unixathome.org] [2/7] Extracting json-c-0.18: 100%
[logs.int.unixathome.org] [3/7] Installing libuuid-2.42.1...
[logs.int.unixathome.org] [3/7] Extracting libuuid-2.42.1: 100%
[logs.int.unixathome.org] [4/7] Installing python314-3.14.6...
[logs.int.unixathome.org] [4/7] Extracting python314-3.14.6: 100%
[logs.int.unixathome.org] [5/7] Installing py314-packaging-26.2...
[logs.int.unixathome.org] [5/7] Extracting py314-packaging-26.2: 100%
[logs.int.unixathome.org] [6/7] Installing glib-2.86.4,2...
[logs.int.unixathome.org] [6/7] Extracting glib-2.86.4,2: 100%
[logs.int.unixathome.org] [7/7] Installing syslog-ng-4.11.0_2...
[logs.int.unixathome.org] [7/7] Extracting syslog-ng-4.11.0_2: 100%
==> Running trigger: glib-schemas.ucl
Compiling glib schemas
No schema files found: doing nothing.
==> Running trigger: gio-modules.ucl
Generating GIO modules cache
=====
Message from python314-3.14.6:

--
Note that some standard Python modules are provided as separate ports
as they require additional dependencies. They are available as:

py314-gdbm       databases/py-gdbm@py314
py314-sqlite3    databases/py-sqlite3@py314
py314-tkinter    x11-toolkits/py-tkinter@py314
=====
Message from syslog-ng-4.11.0_2:

--
syslog-ng is now installed!  To replace FreeBSD's standard syslogd
(/usr/sbin/syslogd), complete these steps:

1. Create a configuration file named /usr/local/etc/syslog-ng.conf
   (a sample named syslog-ng.conf.sample has been included in
   /usr/local/etc). Note that this is a change in 2.0.2
   version, previous ones put the config file in
   /usr/local/etc/syslog-ng/syslog-ng.conf, so if this is an update
   move that file in the right place

2. Configure syslog-ng to start automatically by adding the following
   to /etc/rc.conf:

        syslog_ng_enable="YES"

3. Prevent the standard FreeBSD syslogd from starting automatically by
   adding a line to the end of your /etc/rc.conf file that reads:

        syslogd_enable="NO"

4. Shut down the standard FreeBSD syslogd:

     kill `cat /var/run/syslog.pid`

5. Start syslog-ng:

     /usr/local/etc/rc.d/syslog-ng start
[20:32 logs dvl ~] % 

Configuration tweaks & permissions issues

I added this section after publishing the post. There are some permission issues and local logging issues for me to fix. This is how I did that.

By default, syslog-ng does a chmod 0700 when it opens the file. I wanted to preserve existing permissions, mostly for logcheck usage, but also for my sanity. Here are those changes:

[0:36 dev-nginx01 dvl /usr/local/etc/freshports] % diff -ruN  /usr/local/etc/syslog-ng.conf.sample /usr/local/etc/syslog-ng.conf
--- /usr/local/etc/syslog-ng.conf.sample	2026-06-16 16:53:53.000000000 +0000
+++ /usr/local/etc/syslog-ng.conf	2026-06-18 00:31:23.783717000 +0000
@@ -20,10 +20,10 @@
 #
 # destinations
 #
-destination messages { file("/var/log/messages"); };
+destination messages { file("/var/log/messages" perm(0644)); };
 destination security { file("/var/log/security"); };
-destination authlog { file("/var/log/auth.log"); };
-destination maillog { file("/var/log/maillog"); };
+destination authlog { file("/var/log/auth.log" perm(0640)); };
+destination maillog { file("/var/log/maillog"perm(0640)); };
 destination lpd-errs { file("/var/log/lpd-errs"); };
 destination xferlog { file("/var/log/xferlog"); };
 destination cron { file("/var/log/cron"); };

Ignoring local7

Sometimes, you want local7 to go somewhere special. Or perhaps local6 (see https://dan.langille.org/2026/03/15/hacking-openvpn-to-use-syslog-with-something-other-than-facility-daemon/).

These are my local changes for that:

@@ -78,6 +80,9 @@
 filter f_debug { level(debug..emerg); };
 filter f_is_debug { level(debug); };
 
+filter f_ignore_local3 { not facility(local3); };
+
+
 #
 # program filters
 #
@@ -95,11 +100,11 @@
 #
 # *.notice;authpriv.none;kern.debug;lpr.info;mail.crit;news.err	/var/log/messages
 #
-log { source(src); filter(f_notice); filter(f_not_authpriv); destination(messages); };
-log { source(src); filter(f_kern); filter(f_debug); destination(messages); };
-log { source(src); filter(f_lpr); filter(f_info); destination(messages); };
-log { source(src); filter(f_mail); filter(f_crit); destination(messages); };
-log { source(src); filter(f_news); filter(f_err); destination(messages); };
+log { source(src); filter(f_ignore_local3); filter(f_notice); filter(f_not_authpriv); destination(messages); };
+log { source(src); filter(f_ignore_local3); filter(f_kern);   filter(f_debug);        destination(messages); };
+log { source(src); filter(f_ignore_local3); filter(f_lpr);    filter(f_info);         destination(messages); };
+log { source(src); filter(f_ignore_local3); filter(f_mail);   filter(f_crit);         destination(messages); };
+log { source(src); filter(f_ignore_local3); filter(f_news);   filter(f_err);          destination(messages); };
@@ -181,3 +186,64 @@
 # *.*							/var/log/ppp.log
 #
 log { source(src); filter(f_ppp); destination(ppp); };
+
+
+# local3.*                /var/log/freshports/freshports.log
+
+log { source(src); filter(f_local3); destination(freshports); };
+

Getting ready

Here, I disable the built-in syslogd and enable the new syslog-ng.

[20:33 logs dvl ~] % sudo service syslogd disable
syslogd disabled in /etc/rc.conf
[20:33 logs dvl ~] % sudo service syslog-ng enable
syslog_ng enabled in /etc/rc.conf

I’m told the default configuration file works as a drop-in replacement for the system defaults.

This is a new host (jail), so everything should be default.

Stop, and start

[20:35 logs dvl ~] % sudo service syslogd onestop
Stopping syslogd.
Waiting for PIDS: 33023.
[20:36 logs dvl ~] % sudo service syslog-ng start
Starting syslog_ng.
[20:36 logs dvl ~] % ps auwwxd | grep syslog     
root          40254  0.2  0.0   27040 11292  -  SJ   20:36   0:00.00 /usr/local/sbin/syslog-ng -f /usr/local/etc/syslog-ng.conf -p /var/run/syslog.pid
root          40255  1.3  0.0   36552 15152  -  SsJ  20:36   0:00.04 - /usr/local/sbin/syslog-ng -f /usr/local/etc/syslog-ng.conf -p /var/run/syslog.pid
dvl           40300  0.0  0.0   14216  2648  4  R+J  20:36   0:00.00     `-- grep syslog
[20:36 logs dvl ~] % 

Well, that was painless. However, let’s check logs.

[20:36 logs dvl ~] % logger testing
[20:37 logs dvl ~] % tail /var/log/messages 
tail: /var/log/messages: Permission denied

That permission issue is the one I fixed with the perm(0644) fix above.

[20:37 logs dvl ~] % sudo tail /var/log/messages
Jun 14 20:32:48 logs pkg[16341]: ivykis-0.43.2_1 installed
Jun 14 20:32:48 logs pkg[16341]: json-c-0.18 installed
Jun 14 20:32:48 logs pkg[16341]: libuuid-2.42.1 installed
Jun 14 20:32:50 logs pkg[16341]: python314-3.14.6 installed
Jun 14 20:32:50 logs pkg[16341]: py314-packaging-26.2 installed
Jun 14 20:32:50 logs pkg[16341]: glib-2.86.4,2 installed
Jun 14 20:32:51 logs pkg[16341]: syslog-ng-4.11.0_2 installed
Jun 14 20:36:42 logs syslogd: exiting on signal 15
Jun 14 20:36:47 logs syslog-ng[40255]: syslog-ng starting up; version='4.11.0'
Jun 14 20:37:22 logs dvl[40791]: testing
[20:37 logs dvl ~] % 

That seems to be working.

Next step get logs into victoria-logs.

I did some reading at https://docs.victoriametrics.com/victorialogs/data-ingestion/syslog/#syslog-ng but in the end, Google AI helped me find the right configuration I needed.

That did not help. What did help was this search: sending syslog-ng to victorialogs

That brought up this AI Overview from Google (don’t use this, instead, see Getting Nginx logs into Victoria-Logs where I also cover regular non-Nginx logs):

# Define the VictoriaLogs target destination
destination d_victorialogs {
    network("your-victorialogs-server-ip" port(29514) transport("tcp"));
};

# Log path linking your sources to VictoriaLogs
log {
    source(s_sys); # Use your existing system source name here
    destination(d_victorialogs);
};

I used this in /usr/local/etc/syslog-ng.conf:

destination d_victorialogs {
    network("logs.int.unixathome.org" port(29514) transport("tcp"));
};

# Log path linking your sources to VictoriaLogs
log {
    source(src); # Use your existing system source name here
    destination(d_victorialogs);
};

Notes:

  • I changed your-victorialogs-server-ip to logs.int.unixathome.org
  • source(s_sys) was modified to match the default syslog_ng configuration: source(src)

TLS?

Not shown, but if you want TLS and have told VictoriaLogs to provide TLS, the above configuration becomes:

destination d_victorialogs {
    network("logs.int.unixathome.org" 
            port(29514)
            transport("tls")
            tls(peer-verify(required-trusted) ca-file("/usr/local/etc/ssl/cert.pem"))
    );
};

victoria-labs on TLS

Next, I told victoria-logs to listen on port 29514 (as specified above):

% sudo sysrc victoria_logs_args="-storageDataPath=/var/db/victoria-logs -retentionPeriod=1 -httpListenAddr=:9428 -syslog.listenAddr.tcp=:29514"

The first three clauses on that string were pulled from the default value for victoria_logs_args as found in /usr/local/etc/rc.d/victoria-logs.

I restarted syslog_ng, ran a logger test and data started showing up. As shown here:

victoria-logs first data
victoria-logs first data

Log rotation

Originally, I thought I needed to do this, but it’s wrong. syslog-ng uses /var/run/syslog.pid which means changes like this are not required.

Don’t do this:

I also added /var/run/syslog-ng.pid to the end of each line in /etc/newsyslog.conf – I was seeing some permission issues on the logs. Time will tell if this change fixes that.

Top

Getting Nginx logs into Victoria-Logs

Post by Dan Langille via Dan Langille's Other Diary »

My goal today: get nginx logs into Victoria-Logs. I’ve already gotten Victoria-Logs running on FreeBSD and replaced syslog with syslog-ng to get TLS

NOTE: This post was originally only about Nginx. I’ve since added general syslog messages to the configuration.

However, this post has been deprecated by a newer post which covers more material.

Also, the Adding an nginx proxy in front of Victoria-Labs post might be helpful before proceeding here.

Over the past 48 hours or so, I’ve managed to get Nginx logs flowing from an Nginx host on dev.freshports.org into Victoria-Logs via syslog-ng.

Why syslog-ng? It can do TLS.

In this post:

  • FreeBSD 15.0
  • victoria-logs-1.50.0_2 (running on logs.int.unixathome.org)
  • nginx-1.30.2_2,3 (running on dev.freshports.org)
  • syslog-ng-4.11.0_2 (also running on that host)

First test: can it POST?

My first test, which I should have done ages ago, not this afternoon. This is curl posting into the Victoria-Logs instance.

NOTE: this test does not use TLS, which had not yet been configured.

[13:35 logs dvl ~] % curl -i -X POST "http://logs.int.unixathome.org:9428/insert/jsonline" \
  -H "Content-Type: application/json" \
  -d "{\"_msg\":\"GET /commit.php?category=net-p2p HTTP/1.1\",\"_time\":\"$(date -u +%Y-%m-%dT%H:%M:%SZ)\",\"_stream\":{\"app\":\"nginx\"},\"status\":\"200\",\"remote_addr\":\"127.0.0.1\",\"body_bytes_sent\":\"1245\",\"request_time\":\"0.015\",\"http_user_agent\":\"CurlLiveTimeClientDVL/1.0\"}"

HTTP/1.1 200 OK
Content-Type: application/json
Vary: Accept-Encoding
X-Server-Hostname: logs.int.unixathome.org
Date: Wed, 17 Jun 2026 13:36:05 GMT
Content-Length: 0

That is a sample post which gave me this within the Victoria-Logs UI:

{
  "_msg": "GET /commit.php?category=net-p2p HTTP/1.1",
  "_stream": "{}",
  "_stream.app": "nginx",
  "_stream_id": "0000000000000000e934a84adb05276890d7f7bfcadabe92",
  "_time": "2026-06-17T13:36:05Z",
  "body_bytes_sent": "1245",
  "http_user_agent": "CurlLiveTimeClientDVL/1.0",
  "remote_addr": "127.0.0.1",
  "request_time": "0.015",
  "status": "200"
}

Which seems accurate.

The UI looks like this:

That sample post
That sample post

Now, let’s convert that into something syslog-ng can use.

Getting raw metrics

This section is just FYI.

At one point, the debugging led me to running this query. Over time, I could see that none of these metrics were changing. That helped me to confirm that data wasn’t getting there. Something else was wrong.

[14:08 logs dvl ~] % curl -ks "https://logs.int.unixathome.org/metrics" | grep vl_rows
vl_rows_dropped_total{reason="debug"} 0
vl_rows_dropped_total{reason="too_many_fields"} 0
vl_rows_ingested_total{type="elasticsearch_bulk"} 1
vl_rows_ingested_total{type="jsonline"} 6922
vl_rows_ingested_total{type="syslog_tcp"} 52692
vl_rows_merged_total{type="storage/inmemory"} 5808
vl_rows_merged_total{type="storage/small"} 202451
vl_rows_merged_total{type="storage/big"} 0
vl_rows_merged_total{type="indexdb/inmemory"} 8417
vl_rows_merged_total{type="indexdb/file"} 35921
vl_rows_dropped_total{reason="too_big_timestamp"} 0
vl_rows_dropped_total{reason="too_small_timestamp"} 0

Nginx configuration

This is the configuration on the nginx instance which will be sending logs to Victoria-Logs.

EDIT: Since writing this post, I’ve added host to the format specification.

# this defines the format Nginx will save to disk.

log_format victorialogs_json escape=json '{'
    '"_time":"$time_iso8601",'
    '"_msg":"$request",'
    '"status":"$status",'
    '"remote_addr":"$remote_addr",'
    '"body_bytes_sent":"$body_bytes_sent",'
    '"request_time":"$request_time",'
    '"http_user_agent":"$http_user_agent",'
    '"_stream.app":"nginx",'
    '"http_referer":"$http_referer",'
    '"request_method":"$request_method",'
    '"host":"$host",'
    '"hostname":"$hostname",'
    '"server_name":"$server_name"'
'}';

# the above goes outside the vhost definition.
# the following goes inside the vhost

  # the regular logs, already in place
  error_log     /var/log/nginx/freshports.org-error.log;
  access_log    /var/log/nginx/freshports.org-access.log combined;

  # the addition, which syslog-ng will read
  access_log /var/log/nginx/access_json.log victorialogs_json;

syslog-ng config

This is the syslog-ng config, which is configured for TLS.

EDIT: Similarly, as above, host was added to the body after first publishing this post.

EDIT 2: This configuration has been simplified. I suggest not using this configuration. Instead, see Getting Nginx logs into Victoria-Logs – v2.

parser p_json {
    # Read the JSON from $MESSAGE because flags(no-parse) leaves $MSG empty
    json-parser(prefix(".json."));
};

source s_nginx_json {
    file("/var/log/nginx/access_json.log" flags(no-parse));
};

destination d_victorialogs_json {
    http(
        url("https://logs.int.unixathome.org:9428/insert/jsonline")
        method("POST")
 
        headers("Content-Type: application/x-ndjson")
        body("{\"_msg\":\"${.json._msg}\",\"_time\":\"${.json._time}\",\"_stream.app\":\"${.json._stream.app}\",\"status\":\"${.json.status}\",\"remote_addr\":\"${.json.remote_addr}\",\"body_bytes_sent\":\"${.json.body_bytes_sent}\",\"http_user_agent\":\"${.json.http_user_agent}\",\"request_time\":\"${.json.request_time}\",\"request_method\":\"${.json.request_method}\",\"host\":\"${.json.host}\",\"hostname\":\"${.json.hostname}\",\"server_name\":\"${.json.server_name}\"}\n")

        tls(
            peer-verify(yes)
        )

        # LOG LOSS PROTECTION:
        disk-buffer(
            disk-buf-size(1073741824)        # 1 GB max buffer storage size
            reliable(yes)                    # Synchronous disk writes protect against power loss
        )
        workers(2)
    );
};

log {
    source(s_nginx_json);
    parser(p_json);
    destination(d_victorialogs_json);
};

In short, syslog-ng is tailing the log, which is already in JSON, then pulling fields out, and putting them into the fields which Victoria-Logs expect. The data is transmitted via https.

General syslog configuration

For the general syslog messages, not just nginx, these are my settings.

These are the settings I added to /etc/rc.conf so Victoria-Logs will present an incoming TLS connection. Again, this was all on one line.

-syslog.listenAddr.tcp=:29514 -syslog.tls=true \
-syslog.tlsCertFile=/usr/local/etc/ssl/logs.int.unixathome.org.fullchain.cer \
-syslog.tlsKeyFile=/usr/local/etc/ssl/logs.int.unixathome.org.key

The complete setting is (again, this should be all on one line)

[11:33 logs dvl ~] % sysrc victoria_logs_args         
victoria_logs_args: -storageDataPath=/var/db/victoria-logs -retentionPeriod=1 
-httpListenAddr=:9428 -syslog.listenAddr.tcp=:29514 
-syslog.tls=true 
-syslog.tlsCertFile=/usr/local/etc/ssl/logs.int.unixathome.org.fullchain.cer 
-syslog.tlsKeyFile=/usr/local/etc/ssl/logs.int.unixathome.org.key 
-tls=true 
-tlsCertFile=/usr/local/etc/ssl/logs.int.unixathome.org.fullchain.cer
-tlsKeyFile=/usr/local/etc/ssl/logs.int.unixathome.org.key 

On the dev.freshports.org server sending syslog messages to Victoria-Logs, I added these entries to /usr/local/etc/syslog-ng.conf:

destination d_victorialogs_syslog {
    syslog("logs.int.unixathome.org"
        port(29514) 
        transport("tls")
        tls(
            # Path to the FreeBSD master trust store we verified earlier
            ca-file("/usr/local/share/certs/ca-root-nss.crt")
            # Enforce peer validation using the trusted certs
            peer-verify(yes)
        )
    );
};


# Log path linking your sources to VictoriaLogs
log {
    source(src);
    destination(d_victorialogs_syslog);
};

Verifying the TLS

This was the tcpdump command I was using to verify nothing was in clear-text:

[21:05 r730-01 dvl ~] % sudo tcpdump -Ani lo0 host 10.55.0.39 and port 29514
Top

VictoriaLogs: Adding syslog-ng to a host and ingesting nginx log from jails

Post by Dan Langille via Dan Langille's Other Diary »

This post is more self-documentation than anything else. The links in this post might be useful than the content.

However, this post has been deprecated by a newer post which covers more material.

Today I’ll start pulling production FreshPorts nginx logs into VictoriaLogs. Over the past few days, I’ve configured a proof-of-concept and now I’m ready to try this in prod.

In this post:

  • FreeBSD 15.0 (installed on the host aws-1)
  • nginx-1.30.2_2,3 (running in a jail, aws-1-nginx01, on the host aws-1)
  • syslog-ng-4.11.0_2 (running on the host aws-1, pulling logs from the jail)

For the initial syslog-ng install and config, I’m following my blog post Replacing syslogd with syslog-ng (sysutils/syslog-ng) on FreeBSD. That work is not shown here.

Connection

This proves the host can connect to the VictoriaLogs host:

[11:41 aws-1 dvl ~] % nc -zv logs.int.unixathome.org 9428
Connection to logs.int.unixathome.org 9428 port [tcp/*] succeeded!

Next, let’s try a curl POST.

curl --cacert /etc/ssl/cert.pem -i -X POST "https://logs.int.unixathome.org:9428/insert/jsonline" \
  -H "Content-Type: application/json" \
  -d "{\"_msg\":\"GET /commit.php?category=net-p2p HTTP/1.1\",\"_time\":\"$(date -u +%Y-%m-%dT%H:%M:%SZ)\",\"_stream.app\":\"nginx\",\"status\":\"200\",\"remote_addr\":\"127.0.0.1\",\"body_bytes_sent\":\"1245\",\"request_time\":\"0.015\",\"http_user_agent\":\"CurlLiveTimeClientDVL/2.0\"}"

When run, it looks like this:

[11:43 aws-1 dvl ~] % curl --cacert /etc/ssl/cert.pem -i -X POST "https://logs.int.unixathome.org:9428/insert/jsonline" \
  -H "Content-Type: application/json" \
  -d "{\"_msg\":\"GET /commit.php?category=net-p2p HTTP/1.1\",\"_time\":\"$(date -u +%Y-%m-%dT%H:%M:%SZ)\",\"_stream.app\":\"nginx\",\"status\":\"200\",\"remote_addr\":\"127.0.0.1\",\"body_bytes_sent\":\"1245\",\"request_time\":\"0.015\",\"http_user_agent\":\"CurlLiveTimeClientDVL/2.0\"}"

HTTP/1.1 200 OK
Content-Type: application/json
Vary: Accept-Encoding
X-Server-Hostname: logs.int.unixathome.org
Date: Thu, 18 Jun 2026 11:44:36 GMT
Content-Length: 0

[11:44 aws-1 dvl ~] % 

Within VictoriaLogs, that looks like this:

{
  "_msg": "GET /commit.php?category=net-p2p HTTP/1.1",
  "_stream": "{}",
  "_stream.app": "nginx",
  "_stream_id": "0000000000000000e934a84adb05276890d7f7bfcadabe92",
  "_time": "2026-06-18T11:44:36Z",
  "body_bytes_sent": "1245",
  "http_user_agent": "CurlLiveTimeClientDVL/2.0",
  "remote_addr": "127.0.0.1",
  "request_time": "0.015",
  "status": "200"
}

Good. Now let’s get syslog-ng sending data to that host.

nginx json logs

It is rather easy to get syslog-ng to send JSON logs and VictoriaLogs is quite happy to ingest them. This seems to be both the recommended and the easiest approach.

To the nginx config in the jail (of aws-1-nginx01), I followed that Getting Nginx logs into Victoria-Logs for the nginx configuration. I won’t duplicate that here.

syslog-ng

The change for syslog-ng was very similar to what in Getting Nginx logs into Victoria-Logs, apart from appending /jails/nginx01 to the path.

It just worked.

With the work done above, the following entry (from the nginx logs)

{
   "_time":"2026-06-18T12:30:12+00:00",
   "_msg":"GET /commit.php?category=devel&files=yes&message_id=201505061516.t46FGsGM055119%40svn.freebsd.org&port=py-liblarch HTTP/2.0",
   "status":"401",
   "remote_addr":"185.106.30.60",
   "body_bytes_sent":"42",
   "request_time":"0.008",
   "http_user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36",
   "_stream.app":"nginx",
   "http_referer":"http://freshports.org/commit.php?category=devel&files=yes&message_id=201505061516.t46FGsGM055119%40svn.freebsd.org&port=py-liblarch",
   "request_method":"GET",
   "host":"www.freshports.org",
   "hostname":"aws-1-nginx01.vpn.unixathome.org",
   "server_name":"www.freshports.org"
}

Becomes this, in VictoriaLogs:

{
  "_msg": "GET /commit.php?category=devel&files=yes&message_id=201505061516.t46FGsGM055119%40svn.freebsd.org&port=py-liblarch HTTP/2.0",
  "_stream": "{}",
  "_stream.app": "nginx",
  "_stream_id": "0000000000000000e934a84adb05276890d7f7bfcadabe92",
  "_time": "2026-06-18T12:30:12Z",
  "body_bytes_sent": "42",
  "host": "www.freshports.org",
  "hostname": "aws-1-nginx01.vpn.unixathome.org",
  "http_user_agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36",
  "remote_addr": "185.106.30.60",
  "request_method": "GET",
  "request_time": "0.008",
  "server_name": "www.freshports.org",
  "status": "401"
}

The query I used to find that entry: hostname: aws-1-nginx01.vpn.unixathome.org remote_addr: 185.106.30.60

Lightning talk

I’m fairly impress by this so far. I’m going to give a lighting talk on Saturday for BSDCan 2026.

Top

Getting Nginx logs into Victoria-Logs – v2

Post by Dan Langille via Dan Langille's Other Diary »

VictoriaLogs is feature rich, which means at this point, I know very little about it.

However, this post has been deprecated by a newer post which covers more material.

I do know that the original syslog-ng configuration I supplied in Getting Nginx logs into Victoria-Logs is now less complicated. With the help of duck.ai, I managed to reduce it. Now it’s sending the json without running it through a parser.

In this post:

  • FreeBSD 15.1
  • syslog-ng-4.11.0_2
  • victoria-logs-1.50.0_2

The original configuration

The original configuration from the above post looked like this:

parser p_json {
    # Read the JSON from $MESSAGE because flags(no-parse) leaves $MSG empty
    json-parser(prefix(".json."));
};

source s_nginx_json {
    file("/var/log/nginx/access_json.log" flags(no-parse));
};

destination d_victorialogs_json {
    http(
        url("https://logs.int.unixathome.org:9428/insert/jsonline")
        method("POST")
 
        headers("Content-Type: application/x-ndjson")
        body("{\"_msg\":\"${.json._msg}\",\"_time\":\"${.json._time}\",\"_stream.app\":\"${.json._stream.app}\",\"status\":\"${.json.status}\",\"remote_addr\":\"${.json.remote_addr}\",\"body_bytes_sent\":\"${.json.body_bytes_sent}\",\"http_user_agent\":\"${.json.http_user_agent}\",\"request_time\":\"${.json.request_time}\",\"request_method\":\"${.json.request_method}\",\"host\":\"${.json.host}\",\"hostname\":\"${.json.hostname}\",\"server_name\":\"${.json.server_name}\"}\n")

        tls(
            peer-verify(yes)
        )

        # LOG LOSS PROTECTION:
        disk-buffer(
            disk-buf-size(1073741824)        # 1 GB max buffer storage size
            reliable(yes)                    # Synchronous disk writes protect against power loss
        )
        workers(2)
    );
};

log {
    source(s_nginx_json);
    parser(p_json);
    destination(d_victorialogs_json);
};

Of note: look at the body directive… all that text manipulation. There is an easier way.

The easier way

This is the new improved super duper syslog-ng configuration.

[11:47 aws-1 dvl /usr/local/etc] % tail -1 syslog-ng.conf                              
@include "/usr/local/etc/syslog-ng-nginx-simple-duck-duck.conf.works-fine"
[11:53 aws-1 dvl /usr/local/etc] % cat syslog-ng-nginx-simple-duck-duck.conf.works-fine
source s_nginx_json {
  file("/jails/nginx01/var/log/nginx/access_json.log" flags(no-parse) log-msg-size(65536));
};

destination d_debug_file {
  file("/tmp/victorialogs_debug.ndjson");
};

destination d_victorialogs_json {
  http(
    url("https://logs.int.unixathome.org:9428/insert/jsonline")
    method("POST")
    headers("Content-Type: application/json")
    body("${MESSAGE}\n")
    tls(peer-verify(yes))
  );
};

log {
  source(s_nginx_json);
  destination(d_debug_file);
  destination(d_victorialogs_json);
};
[11:53 aws-1 dvl /usr/local/etc] % 

Notes:

  1. I’ve started using include statements in the syslog-ng configuration – it makes it much easier to save changes, copy them to a new file and refine.
  2. The source file is no longer parsed – it’s JSON; we use it. The parse declaration is gone.
  3. There is no text processing in the body declaration. The incoming log file is JSON, we send out it as JSON – no transformation.
  4. The content type is now json (was x-ndjson)
  5. I added a debug output – /tmp/victorialogs_debug.ndjson contains the output being sent to VictoriaLogs – this can be safely removed.

And it works. Hope this helps.

Top

Adding syslog-ng to a host to extract Nginx logs

Post by Dan Langille via Dan Langille's Other Diary »

This replaces and combines two earlier posts:

  1. Replacing syslogd with syslog-ng (sysutils/syslog-ng) on FreeBSD.
  2. Getting Nginx logs into Victoria-Logs

I just got Victoria Logs running. Now I want to get logs into it. For starters, I want to get the logs on the host itself into Victoria Logs. I figure this is a log-risk experiment.

In this post:

  • FreeBSD 15.0
  • victoria-logs-1.50.0_2
  • syslog-ng-4.11.0_2
  • I’m installing syslog-ng on a host (x8dtu)
  • The nginx logs reside in a jail (nginx01) on that host

I will be using TLS between syslog-ng and victoria-logs – you will notice this is all on the same host, and some of you might say: you don’t need TLS for that. However, this is a proof-of-concept for remote hosts. They will be passing traffic through my VPN and my network. Or perhaps over the Internet. Things change. Let’s start with TLS.

I know that various tools can be used for testing logs to VictoriaLogs. I should investigate that. Filebeat (now known as beats) has been mentioned.

The install

I installed:

[17:03 x8dtu dvl ~] % sudo pkg install syslog-ng
Updating local repository catalogue...
Fetching meta.conf: 100%     179 B   0.2 kB/s    00:01    
Fetching data: 100%   353 KiB 361.3 kB/s    00:01    
Processing entries: 100%
local repository update completed. 955 packages processed.
All repositories are up to date.
The following 6 package(s) will be affected (of 0 checked):

New packages to be INSTALLED:
	glib: 2.86.4,2 [local]
	ivykis: 0.43.2_1 [local]
	json-c: 0.18 [local]
	libuuid: 2.42.1 [local]
	py312-packaging: 26.2 [local]
	syslog-ng: 4.11.0_2 [local]

Number of packages to be installed: 6

The process will require 112 MiB more space.
12 MiB to be downloaded.

Proceed with this action? [y/N]: y
[1/6] Fetching ivykis-0.43.2_1: 100%    70 KiB  71.3 kB/s    00:01    
[2/6] Fetching py312-packaging-26.2: 100%   189 KiB 193.9 kB/s    00:01    
[3/6] Fetching glib-2.86.4,2: 100%    10 MiB   5.5 MB/s    00:02    
[4/6] Fetching syslog-ng-4.11.0_2: 100%  1102 KiB   1.1 MB/s    00:01    
[5/6] Fetching libuuid-2.42.1: 100%    48 KiB  49.5 kB/s    00:01    
[6/6] Fetching json-c-0.18: 100%    71 KiB  73.1 kB/s    00:01    
Checking integrity... done (0 conflicting)
[1/6] Installing ivykis-0.43.2_1...
[1/6] Extracting ivykis-0.43.2_1: 100%
[2/6] Installing json-c-0.18...
[2/6] Extracting json-c-0.18: 100%
[3/6] Installing libuuid-2.42.1...
[3/6] Extracting libuuid-2.42.1: 100%
[4/6] Installing py312-packaging-26.2...
[4/6] Extracting py312-packaging-26.2: 100%
[5/6] Installing glib-2.86.4,2...
[5/6] Extracting glib-2.86.4,2: 100%
[6/6] Installing syslog-ng-4.11.0_2...
[6/6] Extracting syslog-ng-4.11.0_2: 100%
==> Running trigger: glib-schemas.ucl
Compiling glib schemas
No schema files found: doing nothing.
==> Running trigger: gio-modules.ucl
Generating GIO modules cache
=====
Message from syslog-ng-4.11.0_2:

--
syslog-ng is now installed!  To replace FreeBSD's standard syslogd
(/usr/sbin/syslogd), complete these steps:

1. Create a configuration file named /usr/local/etc/syslog-ng.conf
   (a sample named syslog-ng.conf.sample has been included in
   /usr/local/etc). Note that this is a change in 2.0.2
   version, previous ones put the config file in
   /usr/local/etc/syslog-ng/syslog-ng.conf, so if this is an update
   move that file in the right place

2. Configure syslog-ng to start automatically by adding the following
   to /etc/rc.conf:

        syslog_ng_enable="YES"

3. Prevent the standard FreeBSD syslogd from starting automatically by
   adding a line to the end of your /etc/rc.conf file that reads:

        syslogd_enable="NO"

4. Shut down the standard FreeBSD syslogd:

     kill `cat /var/run/syslog.pid`

5. Start syslog-ng:

     /usr/local/etc/rc.d/syslog-ng start

Configuration tweaks & permissions issues

I added this section after publishing the post. There are some permission issues and local logging issues for me to fix. This is how I did that.

By default, syslog-ng does a chmod 0700 when it opens the file. I wanted to preserve existing permissions, mostly for logcheck usage, but also for my sanity. Here are those changes:

[17:18 x8dtu dvl ~] % diff -ruN  /usr/local/etc/syslog-ng.conf.sample /usr/local/etc/syslog-ng.conf

--- /usr/local/etc/syslog-ng.conf.sample	2026-06-18 00:42:01.000000000 +0000
+++ /usr/local/etc/syslog-ng.conf	2026-06-20 17:18:32.813616000 +0000
@@ -20,10 +20,10 @@
 #
 # destinations
 #
-destination messages { file("/var/log/messages"); };
+destination messages { file("/var/log/messages" perm(0644)); };
 destination security { file("/var/log/security"); };
-destination authlog { file("/var/log/auth.log"); };
-destination maillog { file("/var/log/maillog"); };
+destination authlog { file("/var/log/auth.log" perm(0640)); };
+destination maillog { file("/var/log/maillog" perm(0640)); };
 destination lpd-errs { file("/var/log/lpd-errs"); };
 destination xferlog { file("/var/log/xferlog"); };
 destination cron { file("/var/log/cron"); };
[17:18 x8dtu dvl ~] % 

Getting ready

Here, I disable the built-in syslogd and enable the new syslog-ng.

[17:19 x8dtu dvl ~] % sudo service syslogd disable
syslogd disabled in /etc/rc.conf
[17:19 x8dtu dvl ~] % sudo service syslog-ng enable
syslog_ng enabled in /etc/rc.conf
[17:19 x8dtu dvl ~] % 

I’m told the default configuration file works as a drop-in replacement for the system defaults.

Stop, and start:

[17:16 x8dtu dvl ~] % sudo service syslogd onestop
Stopping syslogd.
Waiting for PIDS: 3138.
[17:18 x8dtu dvl ~] % sudo service syslog-ng start
Starting syslog_ng.
[17:19 x8dtu dvl ~] % ps auwwxd | grep syslog
root      845    0.0  0.0  14368   2888  -  Is   10Jun26      0:01.46 |-- rtsold: system.syslog (rtsold)
dvl     21692    0.0  0.0  14164   2680  0  S+   17:19        0:00.00 |       `-- grep syslog
root     4517    0.0  0.0  14428   3216  -  ICsJ 10Jun26      0:06.39 |-- /usr/sbin/syslogd -s
root     4520    0.0  0.0  14428   3076  -  IJ   10Jun26      0:00.01 |-- syslogd: syslogd.casper (syslogd)
root     4521    0.0  0.0  14428   3036  -  IsJ  10Jun26      0:00.00 |-- syslogd: system.net (syslogd)
root     5945    0.0  0.0  14428   3212  -  ICsJ 10Jun26      2:24.58 |-- /usr/sbin/syslogd -s
root     5971    0.0  0.0  14428   3068  -  IJ   10Jun26      0:00.01 |-- syslogd: syslogd.casper (syslogd)
root     5974    0.0  0.0  14428   3032  -  IsJ  10Jun26      0:00.00 |-- syslogd: system.net (syslogd)
root     7993    0.0  0.0  14428   3208  -  SCsJ 10Jun26      0:01.30 |-- /usr/sbin/syslogd -s
root     7996    0.0  0.0  14428   3080  -  IJ   10Jun26      0:00.01 |-- syslogd: syslogd.casper (syslogd)
root     7997    0.0  0.0  14428   3036  -  IsJ  10Jun26      0:00.00 |-- syslogd: system.net (syslogd)
root     8549    0.0  0.0  14428   3296  -  ICsJ 10Jun26      0:16.94 |-- /usr/sbin/syslogd -s
root     8552    0.0  0.0  14428   3132  -  IJ   10Jun26      0:00.02 |-- syslogd: syslogd.casper (syslogd)
root     8553    0.0  0.0  14428   3096  -  IsJ  10Jun26      0:00.00 |-- syslogd: system.net (syslogd)
root    10829    0.0  0.0  14428   3280  -  SCsJ 10Jun26      0:28.53 |-- /usr/sbin/syslogd -s
root    10832    0.0  0.0  14428   3148  -  IJ   10Jun26      0:00.01 |-- syslogd: syslogd.casper (syslogd)
root    10833    0.0  0.0  14428   3104  -  IsJ  10Jun26      0:00.00 |-- syslogd: system.net (syslogd)
root    21680    0.0  0.0  27040  12368  -  S    17:19        0:00.00 |-- /usr/local/sbin/syslog-ng -f /usr/local/etc/syslog-ng.conf -p /var/run/syslog.pid
root    21681    0.0  0.0  40776  15476  -  Ss   17:19        0:00.04 | `-- /usr/local/sbin/syslog-ng -f /usr/local/etc/syslog-ng.conf -p /var/run/syslog.pid

Well, that was painless. However, let’s check logs.

[17:19 x8dtu dvl ~] % logger testing
[17:20 x8dtu dvl ~] % sudo tail /var/log/messages
Jun 20 16:50:46 x8dtu openvpn[3319]: Control Channel: TLSv1.3, cipher TLSv1.3 TLS_AES_256_GCM_SHA384, peer certificate: 4096 bits RSA, signature: RSA-SHA256, peer signing digest/type: rsa_pss_rsae_sha256 RSASSA-PSS, key agreement: X25519MLKEM768
Jun 20 17:08:34 x8dtu pkg[12806]: ivykis-0.43.2_1 installed
Jun 20 17:08:34 x8dtu pkg[12806]: json-c-0.18 installed
Jun 20 17:08:34 x8dtu pkg[12806]: libuuid-2.42.1 installed
Jun 20 17:08:34 x8dtu pkg[12806]: py312-packaging-26.2 installed
Jun 20 17:08:36 x8dtu pkg[12806]: glib-2.86.4,2 installed
Jun 20 17:08:36 x8dtu pkg[12806]: syslog-ng-4.11.0_2 installed
Jun 20 17:17:54 x8dtu syslogd: exiting on signal 15
Jun 20 17:19:22 x8dtu syslog-ng[21681]: syslog-ng starting up; version='4.11.0'
Jun 20 17:20:00 x8dtu dvl[21757]: testing

That seems to be working.

Next step get logs into victoria-logs.

syslog messages

I’m using include files with my configuration. This is the first of such files. This sends the syslog messages to VictoriaLogs.

[17:32 x8dtu dvl /usr/local/etc] % cat syslog-ng-local-syslog.conf 
template t_victoria_syslog_json {
    template("$(format-json
        _time=$ISODATE
        _msg=$MESSAGE
        host=$HOST
        program=$PROGRAM
    )\n");
};

destination d_victorialogs_syslog_json {
  http(
    persist-name("d_victorialogs_syslog_json")
    url("https://logs.int.unixathome.org:9428/insert/jsonline?_stream_fields=host,program")
    method("POST")
    headers("Content-Type: application/json")
    body(t_victoria_syslog_json)
    tls(peer-verify(yes))
    disk-buffer(
      disk-buf-size(1073741824)
      reliable(yes)
    )
    workers(2)
  );
};

log {
    source(src);
    destination(d_victorialogs_syslog_json);
};

I added the following line to the bottom of /usr/local/etc/syslog-ng.conf:

@include "/usr/local/etc/syslog-ng-local-syslog.conf"

After restarting syslog-ng on x8dtu, I started to see these messages in VictoriaLogs:

{
  "_msg": "syslog-ng starting up; version='4.11.0'",
  "_stream": "{host=\"x8dtu\",program=\"syslog-ng\"}",
  "_stream_id": "0000000000000000f5ee0a1fa8262b11ba75d81442c00a6f",
  "_time": "2026-06-20T17:37:15Z",
  "host": "x8dtu",
  "program": "syslog-ng"
}

Success. Next, nginx logs.

Telling nginx to do JSON

This is the log format I use to tell nginx how to produce JSON:

log_format victorialogs_json escape=json '{'
    '"_time":"$time_iso8601",'
    '"_msg":"$request",'
    '"status":"$status",'
    '"remote_addr":"$remote_addr",'
    '"body_bytes_sent":"$body_bytes_sent",'
    '"request_time":"$request_time",'
    '"http_user_agent":"$http_user_agent",'
    '"app":"nginx",'
    '"http_referer":"$http_referer",'
    '"request_method":"$request_method",'
    '"host":"$host",'
    '"hostname":"$hostname",'
    '"server_name":"$server_name"'
'}';

Note the hardcoded app field.

The log_format statement goes outside the server declaration but inside the http directive.

The log directive, as shown below, goes inside the server declaration. I keep the existing original logs (lines 1-2). The new lines are lines 4-5.

  error_log     /var/log/nginx/freshports.org-error.log;
  access_log    /var/log/nginx/freshports.org-access.log combined;

  # Send JSON format to a log agent or Syslog endpoint handled by VictoriaLogs
  access_log /var/log/nginx/access_json.log victorialogs_json;

Issuing a reload (or restart) will start logging to the new file. That has to be done inside the jail, in my case. I think I could do it from outside, but not today.

Checking the log file, I see this (newlines added to fit on a page):

[17:58 x8dtu-nginx01 dvl /usr/local/etc/freshports] % tail -1  /var/log/nginx/access_json.log
{"_time":"2026-06-20T17:59:14+00:00","_msg":"GET /foo/?branch=2026Q2 HTTP/1.1","status":"403","remote_addr":"71.168.156.244","body_bytes_sent":"183","request_time":"0.000",
"http_user_agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 14_3_1) AppleWebKit/537.36 (KHTML, like Gecko) 
Chrome/131.0.6778.204 Safari/537.36","app":"nginx","http_referer":"","request_method":"GET",
"host":"x8dtu.example.org","hostname":"x8dtu-nginx01.vpn.unixathome.org","server_name":"x8dtu.example.org"}

Good.

Next, we tell syslog-ng to pick up and transmit that file to the server.

Sending nginx logs to the server

The following instructs syslog-ng to send the nginx logs to the server.

[17:30 x8dtu dvl ~] % cat /usr/local/etc/syslog-ng-nginx-to-victoria-logs.conf
source s_nginx_json {
  file("/jails/nginx01/var/log/nginx/access_json.log" flags(no-parse) log-msg-size(65536));
};
 
destination d_victorialogs_nginx_json {
  http(
    persist-name("d_victorialogs_nginx_json")
    url("https://logs.int.unixathome.org:9428/insert/jsonline?_stream_fields=host,program")
    method("POST")
    headers("Content-Type: application/json")
    body("${MESSAGE}\n")
    tls(peer-verify(yes))
  );
};
 
log {
  source(s_nginx_json);
  destination(d_victorialogs_nginx_json);
};

Notes:

  • _stream_fields tells VictoriaLogs to use host and program for the _stream value in the stored record.

I added the following line to the bottom of /usr/local/etc/syslog-ng.conf:

@include "syslog-ng-nginx-to-victoria-logs.conf"

Let’s pick up the changes:

[17:57 x8dtu dvl /usr/local/etc] % sudo service syslog-ng restart
Stopping syslog_ng.
Waiting for PIDS: 41691.
Starting syslog_ng.

And boom, this entry was located in VictoriaLogs:

{
  "_msg": "GET /foo/?branch=2026Q2 HTTP/1.1",
  "_stream": "{host=\"x8dtu.example.org\"}",
  "_stream_id": "0000000000000000ad432b7122308cfa678384b77ffc7f89",
  "_time": "2026-06-20T17:59:14Z",
  "app": "nginx",
  "body_bytes_sent": "183",
  "host": "x8dtu.example.org",
  "hostname": "x8dtu-nginx01.vpn.unixathome.org",
  "http_user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 14_3_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.6778.204 Safari/537.36",
  "remote_addr": "71.168.156.244",
  "request_method": "GET",
  "request_time": "0.000",
  "server_name": "x8dtu.example.org",
  "status": "403"
}

Success!

Notice how _stream is only the host. Later logs contained both app and host: _stream: “{app=\”nginx\”,host=\”www.freshports.org\”}”

Hope that helps.

Top

MMO-20044 läuft, und der Quellcode liegt offen

Post by Bernd Dau via Zockertown: Nerten News »

In Season 3 sind aktuell bereits wieder 8 Spieler dabei, die um die Vorherrschaft in der Galaxie ringen. Das ist ein guter Anlass für einen Hinweis, der bisher nur am Rande gefallen ist: MMO-20044 ist Open Source.

Der komplette Quellcode steht auf Codeberg unter der AGPL-3.0:

https://codeberg.org/Wh1sper/mmo-20044

Das Spiel ist in Python geschrieben, FastAPI im Backend, SQLAlchemy für die Datenbank, HTMX im Frontend. Wer wissen will, wie der Tick-Scheduler arbeitet, wie die Forschungsbäume aufgebaut sind oder wie die Piraten ihre Beute verstecken, kann das jetzt nachlesen. Wer einen eigenen Server aufsetzen oder einen Patch beisteuern will, ebenso. Eine README mit Einrichtungshinweisen und eine .env.example liegen bei.

Mir geht es dabei weniger um Sterne auf Codeberg als um Rückmeldungen. Neue Ideen, frische Augen auf den Code, vielleicht ein zweiter Sprachzweig. Wer reinschaut und etwas findet, das besser gelöst werden könnte: Issues und Pull Requests sind willkommen.

Mitspielen geht weiterhin direkt im Browser unter https://zockertown.de/mmo/

Top

Bloke On A Trike

Post by Diego Elio Pettenò via Flameeyes's Weblog »

I feel bad for missing my schedule earlier this month, but life got int he way, and things have been a tad complicated. But things are still mostly chugging along.

As it became apparent a few months ago, my wife and I left London and moved a little further North, to Milton Keynes. A city that, before moving to England, I only heard mentioned by Terry Pratchett and Neil Gaiman in Good Omens. As it turns out, the choice was in part influenced by having multiple colleagues, including teammates, in the city already, and in part by the fact that the city strikes a balance for one very important aspect: transports.

As you may remember, I still don’t have a driving license. Not entirely for lack of trying: I have passed my theory test now in three countries, including the UK, but I also had limited needs for it. Dublin first, and London second, are cities in which you really don’t want to be driving. And while for Ireland the ability to leave the city is fairly constrained by the access to cars, England and Great Britain have more than decent train and bus connections, so over the seven years I spent in London I have not felt particularly constrained by the lack of a license.

But Milton Keynes is not London. While there is some level of public transport, it is neither as frequent or capillary as London, despite being more expensive. Busses going into and out of the city centre are at least reliable, but if you’re trying to hop between the satellite villages where the majority of the housing is, you’re quite out of luck. The nearest high-street from our house is in a village that is less than 15 minutes drive, but would take over an hour to get there by bus — and two rides, there’s no “Hopper Fare” in Milton Keynes. Which is why I have started a (probably pipe-dream) petition to get a new bus route.

But I did say that there’s a balance to be stricken here, and the answer to that is that Milton Keynes has a terrific, if a bit ran down and in need of further investment, network of pedestrian and cycle roads called Redways. Do not confuse them for the “cycle superhighways” that London has been building into the existing road network over the past ten years or so: these roads are significantly larger, and (for the official part at least) do not cross motor traffic at level at all, going either below or over it.

While not all of the satellite villages are connected directly with the “official” Redways, at the very least the new built areas tend to provide comparable cycle and pedestrian spaces to the side of their main roads. It means that, if you’re okay with long walks, you can safely stroll from a historical village as Stony Stratford to the centre:mk shopping centre in the middle of the city, never having to cross the dual carriageway at level! (There are, though, a few level crossing with side streets as well as the parking lots, which are impractical to avoid. Still, those are definitely more acceptable in my views.)

And this is where I fell in love with the idea of moving to Milton Keynes. While cycling has never been one of my hobbies, talking about it with a friend gave me an interesting idea. My main issue with cycling has always been my personal lack of balance – I’m not sure if it’s an actual physical issue or just a lack of skill, to be honest – but that means a trike (a three-wheels cycle) would make the issue moot for me. Unfortunately, trikes are exceedingly rare to begin with, in no small part because, in London, there’s no way you would be able to ride one on the cycle lane.

But, the Milton Keynes Redways are much wider, designed for families. So I went and looked, and eventually picked up a Cube Family Trike – not because I plan to use it to take kids in it, but because the Electric Bike Shop recommended it over the “Cargo” branded version, which just has a slightly different cover, and costed 20% extra – which is roughly the same width as a two-seater pram, and thus fits comfortably on Redways and similar cycleways in the area.

Why was I looking at a cargo trike, though? Well, as I said I don’t have a license, and neither does my wife. In London, our daily “top up” shopping was either done on the tube and bus, or by walking down to the Sainsbury’s Local corner shop. In our village in Milton Keynes, we currently don’t have an equivalent shop. There is a temporary shop, but the selection, quality, and pricing of the items sold is not great, and it’s not really suitable for the type of top-up shops we found ourselves needing. But there’s a Co-Op just 14 minutes cycle, almost all of which is on pedestrian/cycle shared ways, requiring only three motor traffic level crossings. So when we find ourselves needing something, that’s where I go.

Quite a few people, when they heard about my plan to buy a cargo trike, tried to dissuade me at it. Even the shop (who has been extraordinary in their customer service!) was not convinced I would be happy with it (but I am!) And I sort of see their point, because admittedly, a trike is not the easiest of the cycles to own.

Even though Milton Keynes is so much better than London when it comes to cycleways, the infrastructure is not really “designed” for trikes, obviously. It is rather than trikes are “compatible” for the most part with what is there. But for instance, good luck finding a good way to park and lock your trike. I have at this point learnt which places I feel comfortable enough to just leave the trike alarm “armed”, but they are few and far between, sometimes I find myself taking a car parking space to lock it, as the cycle bays are too small for it.

In one particular case, in an industrial estate where a coffee shop I enjoy is, the cycle parking space is almost perfect: it has a canopy to cover it up at least a bit, it has enough space in-between the locking places that even my trike fits… but then it suffers from two problems: the first is that even though you can see it from the Redway, you can’t reach it until you go all the way around the block, and the second is that the curb isn’t cut, and try as I might, I couldn’t get my trike onto it to lock it. I instead leave the trike in the front of the coffee shop even when I go to the stores (I checked with the owners that it’s okay for me to!)

There’s also a not-great issue when trying to cross the dual carriageway on one side of our village: you get to choose between going through an underpass and having to go uphill in one direction, or you can cross at level with a protected (traffic light) crossing. Except the protected crossing has an island in the middle, and my trike can’t turn into it. I did it once, feared for my life, and now take the underpass.

And, frankly speaking, the economics are not there, again almost certainly because there’s so little market for these. When I pre-ordered the trike in London, they did accept holding it for me for nearly six months (until we received the keys to the garage to safely store it in!) because they knew it would be unlikely they would sell it anyway — turns out they were wrong with that, they did sell it (but since I was not in a rush to receive it, everything was fine.) But that means there’s only a handful of these trikes in England, as they are, to my understanding, the only retailer holding them at least in London.

Cube is a German company, and while their ebike products are much closer to affordable, their etrike are still niche products. You can see how part of the trike frame is re-purposed from their bikes, including the in-tube storage, which takes the place of the battery (the trike has two battery bays under the cargo, though I only have one battery on mine, I don’t need that long of a range.) Thankfully most of everything that is specific to the trike is well engineered and implemented. The most annoying part is the Kiox display unit, that is supplied directly by Bosch. While the small display is meant to be able to handle turn-by-turn navigation with a compatible app, my experience with it has been quite terrible. I’m glad I took the suggestion of buying a Garmin bike computer instead, as its navigation is significantly more reliable, even if the UX itself is not something i’m raving about.

Speaking of navigation, Google Maps is completely useless in this part of England, when it comes to cycling (and to be honest also still a bit broken even just to find stores!) Despite the presence of Redways, Google tries to send you through dual carriageways when cycling. I have asked a few suggestions of other cyclists, and after trying a few I settled on Komoot. It integrates nicely with both Garmin (using their GPS) and Bosch’s own computer (for recording trips when I don’t need directions), and I believe leverages OpenStreetMap, which is much more aware of local conditions, and allows me to properly plan a nice bike ride out there.

With this taken care of, the feeling of freedom of being able to just grab the bike and go is actually quite exhilarating. And it has been very useful to have, particularly as for the first few months after moving in, we couldn’t get deliveries to the house from Evri, and I had instead to go up to a not-so-local shop to pick them up. And even after that, one delivery driver decided to not even try, and have me ride to the other side of Western Milton Keynes to pick it up, through a muddy trail that I’m not going to ride through again (I’m lucky my trike didn’t end up getting stuck in the mud, that was not a fun ride, and on the way back I updated Komoot to avoid that particular trail, it only did that because the main road that connects us to that side of the city is still not open, and the more bearable path is just… longer.)

If anything, the larger problem I found with having a cargo trike rather than a normal bike is that the accessories ecosystem is a bit more barebone. I’m using a GoPro as a dash cam (which doubled as a touristy action cam when we last visited Taiwan), but I looked at front-and-back bike dashcams before, but none are suitable to be positioned on the back of the cargo bay. Similar for bike lights, although the trike has already suitable lights wired in, which makes it a bit of a moot point (plus I only ever used the bike in the dark to pick up pizza at our local truck, and that truck is gone unfortunately.)

Anyway, so it is, my cycling story began, making me a bloke on a trike.

Top