I had a very productive hackathon and worked on a lot of different
areas.

I started out p2k17 by removing ruby 1.8, 2.1, and 2.2 from the ports
tree, along with some ruby 1.8-specific ports. I also removed some old
ruby database drivers that are no longer used by anything in the tree.

I also updated quirks so that all ruby19-*, ruby20-*, ruby21-*, and
ruby22-* ports are marked as obsolete, which has been requested by a few
people. Thankfully that turned out to be easy as it was just the
modifying of a regular expression.

I switched the default version of ruby in the tree from 2.3 to 2.4 in
ruby.port.mk. This caused a little bit of followout, which was pointed
out by naddy@ and fixed by me (I think ajacoutot@ fixed one of the
issues as well). Around the same time I modified the package name for a
few ruby library packages from ruby-* to rubyXY-*, so they are more
similar to how all of our other ruby library packages are named. I also
simplified a lot of ruby.port.mk now that we don't need to support older
ruby versions. In addition, I simplified the ruby 2.3 and 2.4 port
Makefiles, moving most of the shared code into ruby's Makefile.inc.

That change to Makefile.inc made it easier for me when I worked on a
port for ruby 2.5.0-preview1. This was not intended for commit, but for
early testing by people who develop ruby software on OpenBSD. I also
worked on a small change to ruby.port.mk to build ruby25-* packages
along side ruby23-* and ruby24-* packages, and tested all of the ruby
gem ports with native extensions on ruby 2.5.

I worked on a port for PostgreSQL 10.0, as well as updates to some of
the ports depending on it so that they continue to work. pea@, our
PostgreSQL maintainer, is looking at my port and comparing it to his own
port, and hopefully that update will go in sometime soon (maybe after
10.1). I upgraded all of my personal databases from PostgreSQL 9.6 to
PostgreSQL 10 using pg_upgrade, and all of that went smoothly.

Related to PostgreSQL, I imported postgresql-plr, a procedural language
for PostgreSQL that integrates with R. This port was interesting because
I had originally worked on it at p2k12. After some recent interest on
the mailing list, feinerer@ updated it to the current version, and gave
me the OK to import it.

Another new port I imported during the hackathon is ruby-tk. ruby-tk
used to be shipped with ruby up until ruby 2.3, but starting in ruby 2.4
it was moved to a separate download. I originally worked on a port for
it at b2k16, but it segfaulted at exit, so I didn't submit it. The
segfault at exit issue was fixed in the most recent release, and I
imported the port after jasper@ gave me the OK.

One of the things that has bothered me for years when upgrading my home
network is that I use scp in my PKG_PATH (now TRUSTED_PKG_PATH). This
used to cause pkg_add to spew lots of ugly warnings on stderr. I sent
espie@ a patch to silence the warnings, which he rightly rejected, but
he was able to track down the underlying issue and send me a diff to fix
it, which got committed after testing.

I spent a lot of time in the last half of the hackathon building and
rebuilding chrome and firefox in order to enable chromedriver and
geckodriver, their respective WebDriver implementations. The
chromedriver fix was committed with some help from robert@. ian@ was
able to test that chromedriver works from Java using Maven, and I
tested that it works from ruby using selenium-webdriver.

geckodriver was not committed. There is an underlying build issue that
is prepending a space to the compiler path that I was never able to
track down despite many hours of trying to debug the combination of
Makefile, python, and rust used. I did eventually get geckodriver
building reliably using an ugly workaround that builds it before the
normal build instead of during the normal build, which I sent to
landry@. It may be committed alongside the Firefox 57 update or not,
that depends on landry@. I did test that geckodriver does work
correctly in ruby using selenium-webdriver.

While waiting for chrome and firefox to compile, I started work on
updating our MariaDB port from 10.0.33 to 10.2.10. Upstream made many
backwards incompatible changes between the two versions that are going
to cause a lot of ports tree churn. In addition to updating MariaDB
itself, I also updated about 10 or so dependencies, including the
database drivers for perl, python, php, and ruby. I also spent way more
time than I wanted to getting mysqlcc updated to support MariaDB 10.2,
though after running the software I'd be surprised if anyone still uses
it. I sent that diff to the maintainers of the affected ports, but
don't plan on working on it more myself as I don't use it at all outside
of testing.

I did some regular port updates to the latest version, including updates
to Scintilla, SciTE, mruby, libv8, and updates to all of the ruby gem
ports with compiled code. This included an update to ruby-passenger,
the most difficult ruby port to update, which thankfully was less
difficult than in previous upgrades. It also included updating and
renabling ruby-therubyracer, which had been marked broken for a while.

I worked on an update to the xapian search engine that brings it to the
latest version, enabling support for extracting snippets from search
results. It also enables the building of the ruby binding, which I
tested and confirmed worked correctly in a small project. This wasn't
committed during p2k17 as I didn't get feedback, but will probably be
committed in a week or so unless I receive an objection.

I looked at the list of ports I maintain, and found that I hadn't
updated c3270 (a mainframe terminal emulator) in quite a while, so I
updated that. I still need to test it against a real mainframe before I
can commit it. I also worked on a minor update for mednafen (an
emulator for multiple video game systems), which should significantly
improve the Saturn support added recently. I need to do more testing on
that before committing it.

I worked on adding support for the headers_more module to our nginx port
as an additional subpackage, and hopefully I can commit that after
getting an OK from one of the maintainers.

I did some review of other ports so that they can be imported, including
reviewing bentley@'s ppsspp port, which is the ports tree's first Sony
PSP emulator.

I spent some time analyzing all of the pure ruby gems in the ports tree
so I could find ones that weren't required by another port and were very
old. I found over 20 ports that are over 7 years old and basically
untouched other than housekeeing since import. I emailed ports@ with
this list asking if anyone wants to keep the ports. Unless someone
responds affirmatively, those ports will be removed soon.

I finished up p2k17 working on an update for ruby-rack (the underlying
gem used by pretty much all ruby web stuff). This caused a cascade of
updates for ports that depend on rack, one of which has a new dependency
which requires the import of a new port. I'm still waiting on an OK to
import the dependency before I can commit those updates.

Finally, I'd like to thank stsp@, benno@, The OpenBSD Foundation,
IN-Berlin, and everyone else who made p2k17 possible.