BSD News 05/01/2016

Last week in BSD

Releases: none
Other news:FreshPorts, FreeBSD, DragonFly BSD, BSDnow, NetBSD, POSIX, MirOS, Wallpaper, DiscoverBSD



Not all ports have packages

Sir l33tname asked: @DLangille is it possible to show on freshports when there is no package for a port? — Sir l33tname (@l33tname) December 29, 2015 That’s a good question. It took some more questions on IRC for me to figure it out. Here is what I know. The port in question is net-p2p/btsync and [...]

The BSD Black Box | BSD Now 122

This week on the show, we will be interviewing Alex Rosenberg to discuss his work on LLVM/Clang & his work with BSD at a large console gaming company. (Hint, it wasn’t Microsoft). All this, and the latest BSD news coming your way right now!

Introducing HardenedBSD's New Binary Updater

One feature our users have been asking us ever since we officially launched over a year ago was to provide binary updates for base and kernel. We are excited to announce that we are launching the framework for binary updates today! We still need to tie in the update build script to our continuous integration infrastructure. For now, updates for the hardened/current/master branch of the HardenedBSD repo will be done manually. When we create the next installers/distsets for the HardenedBSD-stable repo, we'll also support updates there. You will notice two new programs, /usr/sbin/hbsd-update and /usr/sbin/hbsd-update-build, which apply and build update packages, respectively. This work was sponsored by G2, Inc, who has an immediate need for binary updates.
Please note that this feature is still experimental.
Here's the design of the update mechanisms:
  1. Provide binary updates for base and kernel
  2. Cryptographically sign binary updates
  3. Support mirrors and a massively scalable design
  4. Easy maintenance
  5. Supports jails
  6. Support ZFS BEs

Stable pkgsrc-2015Q4 branch released

The pkgsrc developers are proud to announce the pkgsrc-2015Q3 branch. There are 16846 possible packages in pkgsrc-2015Q4, up from 16764 last quarter. Notable new packages this quarter include kodi (home media center software previously known as xbmc), php-baikal (a CardDAV/CalDAV server), freecol (a Colonization clone), unicorn (a CPU emulator framework), and clang-static-analyzer.
See the release announcement for more information.

NetBSD New Developers

The NetBSD project is pleased to welcome the following new developers:

  • Ritesh Agrawal (login: ragrawal), who will be working on networking.
  • Guilherme Salazar (login: salazar), who will be working on kernel.

POSIX locales; POSIX shell and `…` command substitutions

izabera did make a good point in IRC the other day for why we will need to have two locales at the very least in MirBSD – C and C.UTF-8 (the latter being widespread enough by now, thanks to me, interestingly enough. He uses code which leads to unexpected results…
 $ generate() { tr -dc "[:alnum:]" < /dev/urandom | dd bs="$len" count=1; }
 $ len=10; echo $(generate 2>/dev/null)
… because tr(1) was the first utility I converted to Unicode, to explore possibilities and craft the OPTU encoding and, thus, “流” is, indeed, an alphanumeric character.
This implies two things: we need to change MirBSD libc locale functions back to support two charsets (and make setlocale(3) match), and mksh(1) should implement locale tracking (to change set ±U whenever one of the relevant parameters (${LC_ALL:-${LC_CTYPE:-${LANG:-C}}}) changes in the session; users could still set utf8-mode manually though). For this to not break anything, we’ll have to audit scripts in MirBSD though (usually adding export LC_ALL=C at their begin is enough, and we need this for portable scripts anyway) and remove all occurrences of #ifndef __MirBSD__ before setlocale(3) calls in applications. This will take a while.

Secondly, I opened an issue with POSIX about handling of the (deprecated, and for good reason) `-style command substitutions. The GNU autoconf texinfo manual gives good advice for portable shell scripts, and we all knew that foo="bar `echo \"baz\"`" wasn’t portable due to use of more than one set of double quotes, but my (and the yash authors’) reading of the standard (and mksh R52’s POSIX mode) make it set $foo to bar "baz" instead of the historic bar baz now, and I wish to get this clarified (and, possibly, the standard changed to match historic practice, as this breaks at least the Acrobat Reader 5 start script). Nothing has been decided yet (due to the holidays, I’m sure), but we got input from some other people involved in shell.
So, if any #!/bin/sh scripts break or behave weirdly with R52, you now know why. I’m waiting for an official statement.

Early days of Unix and design of sh

Abstract for talk:
  • my history and background
  • how and why we had to re write the shell
  • why I wrote my own memory management
  • key language design decisions
  • where those ideas came from
  • what was hard to get right
  • system changes we made to accommodate sh
  • what the rules were in UNIX group
  • what would I do differently today


Code stuff 

Interesting articles

The Most Popular BSD Stories Of 2015

Wallpaper of the week 


Jan Hovancik

software developer - guitar player - poetry lover