Table of Contents

FreBSD Ports workshops

Documentation

Outlines of suggested workflows

General instructions on how you can start hacking on the FreeBSD Ports.

Creating a new port

  1. Prepare your environment.
    1. Create a new directory for your new port somewhere. For example in your home directory.
mkdir ~/newport
  1. Go to the newport directory and create a Makefile there.
cd ~/newport
touch Makefile
  1. See FreeBSD Porter's Handbook: Chapter 3. Quick Porting and try to work on your Makefile as much as you can.
  2. Let's try to build and install the new port. Normally, it is done by running make install inside the port's directory. For development purposes it might be easier to run every command involved in the process manually.
    1. Run
make fetch

Troubleshooting:

  1. Run
make extract
  1. Run
make build
  1. Run
make install
  1. At this point you've managed to build and install that new port on the system. It is time to clean up the files you've created and do some testing.
    1. Run
portlint

Fix everything this tool complains about.

  1. Run
port test

Fix everything this tool complains about.

Updating a port

:!: TODO

Simple tasks and issues for first timers

Ideas for (potentially) fun ports contributions

New ports
Abricotine Open-source markdown editor built for desktop.
Antares Tactical space combat game.
Beaker Peer-to-peer Web browser.
Communi IRC client for desktop environments.
eplot Ruby script which allows to pipe data easily through gnuplot and create plots quickly, which can be saved in PostScript, PDF, PNG or EMF files.
escrotum Screen capture using pygtk, inspired by scrot.
hyperfine Command-line benchmarking tool.
modernish Cross-platform POSIX shell feature detection and language extension library.
PowerShell Task-based command-line shell and scripting language built on the .NET Framework to help IT professionals control and automate the administration of MS-Windows and (now) other platforms.
progress(1) from NetBSD (archive.org alternative) Feed input to a command, displaying a progress bar.
PyTorch Tensors and dynamic neural networks in Python with strong GPU acceleration. :( The 201802 workshop participants started to work on this port but it turned out to be a little bit too big to fit in one workshop.
Although CUDA is not supported on FreeBSD it might be nice to have at least some of the PyTorch functionalities available on FreeBSD.
quark Extremely small and simple HTTP GET-only web server. It only serves static pages on a single host. ;) The participants of the 201802 workshop have managed to successfully port this software. See the port submission on FreeBSD Bugzilla.
rentry Markdown pastebin from command line.
saait Static site generator in C.
shellen Interactive shellcoding environment to easily craft shellcodes.
shellharden Corrective Bash syntax highlighter.
slstatus Suckless status monitor for window managers that use WM_NAME (e.g. dwm) or stdin to fill the status bar.
st Simple terminal from https://suckless.org.
There already exists a port of st (x11/sterm) but its version is 0.7, which is the latest release. It'd be nice to have a port of the bleeding-edge version of st.
When x11/sterm-devel is ready then the next goal might adding some of the community patches as port options. For example: scrollback, right click to plumb.
tootstream Command line interface for interacting with Mastodon instances.
whohas Command line tool that allows querying several package lists at once written in Perl.
vim-anywhere Integrate Vim editing capabilities into any text buffer
Will It Scale Benchmark utility which takes a testcase and runs it from 1 through to n parallel copies to see if the testcase.
There is a NetBSD port, which might be helpful. Ping MateuszPiotrowski for details.
MateuszGuzik is using it for benchmarking. He might have some patches laying aroud.
with Command prefixing for continuous workflow using a single tool. ;) The participants of the 201802 workshop have managed to successfully port this software. See the port submission on FreeBSD Bugzilla.
New features and modifications
Ding Dictionary lookup program.
Add a toki pona dictionary to the existing german/ding port.
The license set in the german/ding Makefile is not 100% correct. Fix it.
dwm It might be fun to make port options from some of the patches: noborder, fakefullscreen.
intel-backlight The task is to get interesting commits from the jcs's fork of intel-backlight, send a PR with to upstream and then submit an update to the intel-backlight port itself.
JonoF's Shadow Warrior Jonathon Fowler's port of the 3D Realms game “Shadow Warrior”. <:( As of the 201802 workshop, the game does not start. It is probably related to the fact that you need to obtain a couple of extra files to run this game (namely, sw.grp and sw.rts)