The build instructions for usbserup have changed. You no longer need an old copy of libopencm3, see README.
Reflecting a bit on all the little details to make this new boot loader practical, here are the key TODO's, I think:
* switch to the STK500 protocol, so uploads can be done with avrdude
* put the boot code in high-flash, so sketches can be loaded at 0x08000000, as usual
* listen to DTR and RTS low, to act as self-reset request (if possible, need to investigate)
* find a way for the loaded sketch to re-use the open serial connection
That last one is actually optional. With a sketch which simply re-inits the USB device, things already work. And if that sketch also includes the logic to listen to DTR+RTS, then it would be able to self-reset just like the Maple boot loader does. No more button pressing, which was one of the goals for all this.
With the above changes, a new upload method needs to be added, called "Serial (avrdude)". Since the load offset will be gone, the same code can then also be uploaded using Serial, ST-Link, or BMP. The only difference in the IDE is which TRANSPORT is used to get the code into the µC. This will make build settings and upload settings independent (orthogonal).
There's an interesting feature in avrdude to connect to a remote network port and upload the sketch there. Maybe one day we can get that going as well. I've been using socket-based uploads in other contexts, and in fact the "esp-link" (https://github.com/jeelabs/esp-link
) project also supports it.