PC-BSD Feature Digest 31 — Warden CLI upgrade + IRC Announcement

Hey everyone!  After a brief hiatus from feature updates we are back!  We’ve switched from Fridays to Mondays and rather than trying to get an update out every week we aren’t on a specific schedule.  We will continue to push out these feature updates when we have some cool new features come out we think you’ll want to know about.

The Warden and PBI_add backend (CLI)  management tools have received some exciting new features we’d like to tell you about.  You can now create jails on the fly when adding a new PBI to your application library.  For instance say you’re adding a PBI using the “pbi_add” command and you want to install the PBI into a new jail that you haven’t created yet.  You would specify:  “sudo pbi_add –J apache” without the quotes to create a default named jail with the PBI apache installed directly into it.  The –J being the new flag that specifies the creation of the new jail.

There’s also a new option now to do a bulk jail creation.  By simply using the new –bulk and –ip4pool flag you can easily roll out your preset number of jails quickly and efficiently.  To use this cool new feature just type:  “warden create <jailname> –bulk 5 –ip4pool 192.168.0.2″ and voila you’ve got 5 brand spanking new jails created in no time starting at IP address 192.168.0.2 .

The PC-BSD team is now hanging out in IRC!  Get involved in the conversation and come  visit us on Freenode in channel #pcbsd.  We look forward to seeing you there!

FreeBSD 9.3-RC3 Now Available

FreeBSD 9.3-RC3 Now Available


The third RC build of the 9.3-RELEASE release cycle is now available on the FTP servers for the amd64, i386, ia64, powerpc, powerpc64 and sparc64 architectures.

The image checksums can be found in the PGP-signed announcement email.

ISO images and, for architectures that support it, the memory stick images are available here:

    http://ftp.freebsd.org/pub/FreeBSD/releases/ISO-IMAGES/9.3/

(or any of the FreeBSD mirror sites).

If you notice problems you can report them through the normal Bugzilla PR system or on the -stable mailing list.

If you would like to use SVN to do a source based update of an existing system, use the "releng/9.3" branch.

A list of changes since 9.2-RELEASE are available on the 9.3-RELEASE release notes page here:


Changes between 9.3-RC2 and 9.3-RC3 include:

  • Bug fix for axge(4) range checks and receive loop header parsing.
  • Bug fix to exclude loopback addresses rather than loopback interfaces has been fixed.
  • Bug fix in uhso(4) to prevent memory use after free() and mtx_destroy().
  • Bug fix in bsdinstall(8) where certain conditions could prevent directory creation before use.
  • Bug fix for DNS-based load balancing.
  • Vendor update to oce(4).

The freebsd-update(8) utility supports binary upgrades of amd64 and i386 systems running earlier FreeBSD releases.  Systems running earlier FreeBSD releases can upgrade as follows:

    # freebsd-update upgrade -r 9.3-RC3

During this process, freebsd-update(8) may ask the user to help by merging some configuration files or by confirming that the automatically performed merging was done correctly.

    # freebsd-update install

The system must be rebooted with the newly installed kernel before continuing.

    # shutdown -r now

After rebooting, freebsd-update needs to be run again to install the new userland components:

    # freebsd-update install

It is recommended to rebuild and install all applications if possible, especially if upgrading from an earlier FreeBSD release, for example, FreeBSD 8.x.  Alternatively, the misc/compat8x port can be installed to provide other compatibility libraries, afterwards the system must be rebooted into the new userland:

    # shutdown -r now

Finally, after rebooting, freebsd-update needs to be run again to remove stale files:

    # freebsd-update install

Love FreeBSD?  Support this and future releases with a donation to the FreeBSD Foundation!

FreeBSD 9.3-RC3 Available

The third RC build for the FreeBSD-9.3 release cycle is now available. ISO images for the amd64, i386, ia64, powerpc, powerpc64 and sparc64 architectures are available on most of our FreeBSD mirror sites.

BSDday

BSDday (http://bsdday.org/), University of Buenos Aires' Faculty of natural and exact sciences, Buenos Aires, Argentina 9 August, 2014. BSDday Argentina is a conference for users, sysadmins and developers of BSD software and based systems. The conference is for anyone developing, deploying and using systems based on FreeBSD, NetBSD, OpenBSD, DragonFlyBSD and others *BSD. BSDday Argentina is a technical conference and aims to collect the best technical papers and presentations available to ensure that the latest developments in our open source community are shared with the widest possible audience.

Getting to know your portmgr-lurker: William Grzybowski

From July to the end of October two new lurkers will have the opportunity to get insights into FreeBSD portmgr internals, namely William Grzybowski and Nicola Vitale. William was the first to answer our interview so let’s get to know him a bit better.

 

Name

William Grzybowski

Committer name

wg

Inspiration for your IRC nick

my name initials

 TLD of origin

.br

 Current TLD (if different from above)

Occupation

Software engineer

 Blog

None

Inspiration for using FreeBSD

Stability and simplicity

Who was your first contact in FreeBSD

I don’t recall, too long ago!

Who was your mentor(s)

culot, jpaetzel

What was your most embarrassing moment in FreeBSD

Breaking INDEX, but hey, who ever didn’t? ;)

vi(m) /  emacs / other

vim

What keeps you motivated in FreeBSD

The passion of everyone in the zoo about it. You can very easily see a
guy angry by someone’s else commit like stealing candy from his son :)

Favorite musician/band

AC/DC

What book do you have on your bedside table

book? what is that? :)

coffee / tea / other

coffee, beer (but real beer, no corn!)

How would you describe yourself

Calm and mind-centered

sendmail / postfix / other

postfix

Do you have a hobby outside of FreeBSD

Play soccer, gym

What is your favorite TV show

Fringe

Claim to Fame

I was mentored by culot and I survived! Just kidding, I have none, I am a joke!

What did you have for breakfast today

An orange and a slice of yogurt cake

What sports team do you support

Gremio Foot-Ball Porto Alegrense, brazillian soccer team

What else do you do in the world of FreeBSD

I do work mostly in python ports and help closing PRs.

2014Q3 Branched

The 2014Q3 branch has just been branched and the package builder has been
updated to use that branch. This means that the next update on the quarterly
packages will be on the 2014Q3 branch.

What happened during the last 3 months:
- 177 different committers have participated
- 9918 commits happened
- diffstat says: 23646 files changed, 554070 insertions(+), 577210 deletions(-)

What does that means for users:
- default Java is now 1.7
- massive conversion to stagedir (93% of the ports are now properly staged)
- massive improvement of the usage of libtool (which reduces a lot overlinking)
- new USES: mono, objc, drupal, gecko, cpe, gssapi, makeinfo
- new Keywords for plist: @sample, @shell
- LibreOffice has been updated to 4.2.5
- Firefox has been updated to 30.0
- Firefox-esr has been updated to 24.6
- Default postgresql has moved from 9.0 to 9.2
- nginx has been updated to 1.6.0
- Default lua is 5.2
- subversion has been split into multiple ports for each features
- On FreeBSD 9-STABLE and 10-STABLE the default xorg 1.12.4 (for default binary
packages it is still 1.7.7)
- Improved QA checking in the infrastructure
- Info files are handle correctly even if base has been built WITHOUT_INFO
- Ancient emacs version has been cleaned out

FreeBSD 9.3-RC2 Now Available

FreeBSD 9.3-RC2 Now Available


The second RC build of the 9.3-RELEASE release cycle is now available on the FTP servers for the amd64, i386, ia64, powerpc, powerpc64 and sparc64 architectures.

The image checksums can be found in the PGP-signed announcement email.

ISO images and, for architectures that support it, the memory stick images are available here:

    http://ftp.freebsd.org/pub/FreeBSD/releases/ISO-IMAGES/9.3/

(or any of the FreeBSD mirror sites).

If you notice problems you can report them through the normal Bugzilla PR system or on the -stable mailing list.

If you would like to use SVN to do a source based update of an existing system, use the "releng/9.3" branch.

A list of changes since 9.2-RELEASE are available on the 9.3-RELEASE release notes page here:


Changes between 9.3-RC1 and 9.3-RC2 include:
  • A bug in the fast rx buffer recycle path has been fixed in the cxgbe(4) driver.
  • A bug that would incorrectly allow two listening SCTP sockets on the same port bound to the wildcard address has been fixed.
  • Multiple vulnerabilities have been fixed in file(1) and libmagic(3).  [FreeBSD-SA-14:16.file]
  • A workaround has been implemented to fix serial ports on certain motherboards, in particular the Intel D2500CCE board.
  • A bug in bsdgrep(1) that would prevent certain pattern matching has been fixed.
  • The bsdconfig(8) utility has been updated to support pkg(8)-format packages.
  • Firmware for the cxgbe(4) Chelsio T4 and T5 cards has been updated to version 1.11.27.0.
The freebsd-update(8) utility supports binary upgrades of amd64 and i386 systems running earlier FreeBSD releases.  Systems running earlier FreeBSD releases can upgrade as follows:

    # freebsd-update upgrade -r 9.3-RC2

During this process, freebsd-update(8) may ask the user to help by merging some configuration files or by confirming that the automatically performed merging was done correctly.

    # freebsd-update install

The system must be rebooted with the newly installed kernel before continuing.

    # shutdown -r now

After rebooting, freebsd-update needs to be run again to install the new userland components:

    # freebsd-update install

It is recommended to rebuild and install all applications if possible, especially if upgrading from an earlier FreeBSD release, for example, FreeBSD 8.x.  Alternatively, the misc/compat8x port can be installed to provide other compatibility libraries, afterwards the system must be rebooted into the new userland:

    # shutdown -r now

Finally, after rebooting, freebsd-update needs to be run again to remove stale files:

    # freebsd-update install

Love FreeBSD?  Support this and future releases with a donation to the FreeBSD Foundation!

FreeBSD 9.3-RC2 Available

The second RC build for the FreeBSD-9.3 release cycle is now available. ISO images for the amd64, i386, ia64, powerpc, powerpc64 and sparc64 architectures are available on most of our FreeBSD mirror sites.

fossil in prison

Since my last post about how I do host fossil I have been asked write about the new setup I do have

The jail content

I have created a minimal jail:

$ find /usr/local/jails/fossil -print
/usr/local/jails/fossil/var
/usr/local/jails/fossil/var/tmp
/usr/local/jails/fossil/libexec
/usr/local/jails/fossil/libexec/ld-elf.so.1
/usr/local/jails/fossil/bin
/usr/local/jails/fossil/bin/sh
/usr/local/jails/fossil/bin/fossil
/usr/local/jails/fossil/lib
/usr/local/jails/fossil/lib/libc.so.7
/usr/local/jails/fossil/lib/libssl.so.7
/usr/local/jails/fossil/lib/libreadline.so.8
/usr/local/jails/fossil/lib/libz.so.6
/usr/local/jails/fossil/lib/libcrypto.so.7
/usr/local/jails/fossil/lib/libncurses.so.8
/usr/local/jails/fossil/lib/libedit.so.7
/usr/local/jails/fossil/data
/usr/local/jails/fossil/dev

/bin/sh is necessary to get the exec.start jail argument to work /var/tmp is necessary to get fossil to open his temporary files (I created it with 1777 credential) /data is a empty directory where the fossil files will be stored

Jail configuration

The configuration file is the following:

fossil {
	path = "/usr/local/jails/fossil";
	host.hostname = "fossil.etoilebsd.net";
	mount.devfs;
	ip4.addr="127.0.0.1";
	exec.start = "/bin/fossil server -P 8084 --localhost --files *.json,*.html,*.js,*.css,*.txt --notfound /index.html /data &";
	exec.system_jail_user = "true";
	exec.jail_user = "www";
	exec.consolelog = "/var/log/jails/fossil.log" ;
}

More about fossil itself

In /data I created an index.html which is an almost empty html with a bit of Javascript.

When loading the javascript will request a list.txt file.

This file contain the list of repositories I want to show publically (one per line).

For each of them the javascript will use the json interface of fossil (meaning your fossil has to be built with json) and gather the name and the description of the repo to print them on the index.

Starting/Stopping the service

2 simple command are necessary to manage the service:

Starting up:

# jail -c fossil

Stopping:

# jail -r fossil

The service is only listening on the localhost, it is up to you to create your reverse proxy, in my case I do use nginx with the following config:

server {
	server_name fossil.etoilebsd.net;
	listen       [::]:443 ssl;
	listen       443 ssl;
	ssl_certificate     ssl/fossil.crt;
	ssl_certificate_key ssl/fossil.key;

	location / {
		client_max_body_size 10M;
		proxy_buffering off;
		proxy_pass http://127.0.0.1:8084/;
		proxy_set_header HTTPS on;
		proxy_set_header   Host             $host;
		proxy_set_header   X-Real-IP        $remote_addr;
		proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;
	}
}

PC-BSD 10.0.2 Released!

The PC-BSD team is pleased to announce the availability of the next PC-BSD quarterly update, version 10.0.2!

This update includes a number of important bug fixes as well as newer packages and desktops, such as KDE 4.12.5, Cinnamon 2.2.13, Gnome 3.12.2, and more. This release also includes an alpha release of the new Lumina desktop which is being developed on PC-BSD. For more details and updating instructions, refer to the notes below.

Notable Changes:

  • KDE 4.12.5
  • Cinnamon 2.2.13
  • Gnome 3.12.2
  • Alpha release of Lumina desktop
  • Revamped AppCafe and PBI subsystems, integrated fully with FreeBSD’s PKGNG
  • AppCafe support for application screenshots, 5-Star rating system and comments integrated with our Wiki
  • Unified various UI elements and keyboard shortcuts
  • Integrated package cleanup functionality into AppCafe / PBI system
  • Updated Control Panel UI with additional view options and asynchronous item reading
  • Improved UI notification between applications and tray notification systems
  • Added PulseAudio as default audio backend for all packages which can support it
  • Added full-disk encryption options with GELI, which does *not* require a separate un-encrypted /boot partition
  • Support for automatic boot-environment creation before doing any upgrades or updates to the system or packages
  • Boot-environment support for full-disk encrypted installations
  • Added support for adding snapshot “Comments”
  • Options to set L2Arc / ZIL devices during installation
  • Many other bugfixes and improvements to Life-Preserver, Warden and more

A more detailed list of changes can be found in What’s New in 10.0.2.

Updating:

Desktop users already running 10.0 can update via Control Panel -> Package Manager -> Updates. Server users can update via the “pc-updatemanager” command-line utility.

If package updating fails due to conflict errors, please be sure to apply all system updates first before trying again.

After updating and rebooting, please run the AppCafe once to begin the conversion process from the old style PBIs to 10.0.2 packages.

Installing:

10.0.2 DVD/USB media can be downloaded from here.

Reporting Bugs:

Found a bug in 10.0.2? Please report it (in as much detail as possible) to our Trac Database.

VC4 driver week 1

It's been a week now, and I've made surprising amounts of progress on the project.

I came in with this giant task list I'd been jotting down in Workflowy (Thanks for the emphatic recommendation of that, Qiaochu!). Each of the tasks I had were things where I'd have been perfectly unsurprised if they'd taken a week or two. Instead, I've knocked out about 5 of them, and by Friday I had phire's "hackdriver" triangle code running on a kernel with a relocations-based GEM interface. Oh, sure, the code's full of XXX comments, insecure, and synchronous, but again, a single triangle rendering in a month would have been OK with me.

I've been incredibly lucky, really -- I think I had reasonable expectations given my knowledge going in. One of the ways I'm lucky is that my new group is extremely helpful. Some of it is things like "oh, just go talk to Dom about how to set up your serial console" (turns out minicom fails hard, use gtkterm instead. Also, someone else will hand you a cable instead of having to order one, and Derek will solder you a connector. Also, we hid your precious dmesg from the console after boot, sorry), but it extends to "Let's go have a chat with Tim about how to get modesetting up and running fast." (We came up with a plan that involves understanding what the firmware does with the code I had written already, and basically whacking a register beyond that. More importantly, they handed me a git tree full of sample code for doing real modesetting, whenever I'm ready.).

But I'm also lucky that there's been this community of outsiders reverse engineering the hardware. It meant that I had this sample "hackdriver" code for drawing a triangle with the hardware entirely from userspace, that I could incrementally modify to sit on top of more and more kernel code. Each step of the way I got to just debug that one step to go from "does not render a triangle" back to "renders that one triangle." (Note: When a bug in your command validator results in pointing the framebuffer at physical address 0 and storing the clear color to it, the computer will go away and stop talking to you. Related note: When a bug in your command validator results in reading your triangle from physical address 0, you don't get a triangle. It's like a I need a command validator for my command validator.).

https://github.com/anholt/linux/tree/vc4 is the code I've published so far. Starting Thursday night I've been hacking together the gallium driver. I haven't put it up yet because 1) it doesn't even initialize, but more importantly 2) I've been using freedreno as my main reference, and I need to update copyrights instead of just having my boilerplate at the top of everything. But next week I hope to be incrementally deleting parts of hackdriver's triangle code and replacing it with actual driver code.

FreeBSD 9.3-RC1 Now Available

FreeBSD 9.3-RC1 Now Available

The first RC build of the 9.3-RELEASE release cycle is now available on the FTP servers for the amd64, i386, ia64, powerpc, powerpc64 and sparc64 architectures.

The image checksums can be found in the PGP-signed announcement email.

ISO images and, for architectures that support it, the memory stick images are available here:

    http://ftp.freebsd.org/pub/FreeBSD/releases/ISO-IMAGES/9.3/

(or any of the FreeBSD mirror sites).

If you notice problems you can report them through the normal Bugzilla PR system or on the -stable mailing list.

If you would like to use SVN to do a source based update of an existing system, use the "releng/9.3" branch.

A list of changes since 9.2-RELEASE are available on the stable/9 release notes page here:


Changes between 9.3-BETA3 and 9.3-RC1 include:
  • Various bug fixes in the hptrr(4) driver.
  • Time zone data has been updated to tzdata2014e.
  • Handling of the '-P' flag without '-p' or '-r' has been fixed in the daemon(8) utility.
  • A bug in the nvme(4) controller initialization path has been fixed.
  • A bug in the fast receive buffer recycle path has been fixed in the cxgbe(4) driver.
The freebsd-update(8) utility supports binary upgrades of amd64 and i386 systems running earlier FreeBSD releases.  Systems running earlier FreeBSD releases can upgrade as follows:

    # freebsd-update upgrade -r 9.3-RC1

During this process, freebsd-update(8) may ask the user to help by merging some configuration files or by confirming that the automatically performed merging was done correctly.

    # freebsd-update install

The system must be rebooted with the newly installed kernel before continuing.

    # shutdown -r now

After rebooting, freebsd-update needs to be run again to install the new userland components:

    # freebsd-update install

It is recommended to rebuild and install all applications if possible, especially if upgrading from an earlier FreeBSD release, for example, FreeBSD 8.x.  Alternatively, the misc/compat8x port can be installed to provide other compatibility libraries, afterwards the system must be rebooted into the new userland:

    # shutdown -r now

Finally, after rebooting, freebsd-update needs to be run again to remove stale files:

    # freebsd-update install

Love FreeBSD?  Support this and future releases with a donation to the FreeBSD Foundation!

FreeBSD 9.3-RC1 Available

The first RC build for the FreeBSD-9.3 release cycle is now available. ISO images for the amd64, i386, ia64, powerpc, powerpc64 and sparc64 architectures are available on most of our FreeBSD mirror sites.

new job!

Yesterday was my first day working at Broadcom. I've taken on a new role as an open source developer there. I'm going to be working on building an MIT-licensed Mesa and kernel DRM driver for the 2708 (aka the 2835), the chip that's in the Raspberry Pi.

It's going to be a long process. What I have to work with to start is basically sample code. Talking to the engineers who wrote the code drops we've seen released from Broadcom so far, they're happy to tell me about the clever things they did (their IR is pretty cool for the target subset of their architecture they chose, and it makes instruction scheduling and register allocation *really* easy), but I've had universal encouragement so far to throw it all away and start over.

So far, I'm just beginning. I'm still working on getting a useful development environment set up and building my first bits of stub DRM code. There are a lot of open questions still as to how we'll manage the transition from having most of the graphics hardware communication managed by the VPU to having it run on the ARM (since the VPU code is a firmware blob currently, we have to be careful to figure out when it will stomp on various bits of hardware as I incrementally take over things that used to be its job).

I'll have repos up as soon as I have some code that does anything.

PC-BSD at SouthEast LinuxFest

SouthEast LinuxFest will take place June 20–22 at the Sheraton Charlotte Airport in Charlotte, NC. Registration for this event  is free.

There will be a BSD booth in the expo area on both Friday and Saturday from 9:00–17:00. As usual, we’ll be giving out a bunch of cool swag, PC-BSD DVDs, and FreeNAS CDs, as well as accepting donations for the FreeBSD Foundation. Ken Moore will present “PBI v10: Application Management Made Easy” at 13:30 on Friday and Dru Lavigne will present “ZFS 101″ at 13:30 on Saturday. The BSDA certification exam will also be held at 11:00 On Sunday.