_____________________________________________

            MY FIRST PORT FOR FREEBSD IS NOW AVAILABLE!

                           Nicolas Herry
           _____________________________________________


                            2017/12/10





1 My first port for FreeBSD is now available!
=============================================

  Glee and happiness: my first port for FreeBSD has been validated
  and accepted! You can now enjoy [audio/wmmp] to control
  `musicpd', [the music player daemon]. Because it's a pretty
  effective stacking window manager (and also probably because it
  reminds me of my first steps on Unix), I've always kept a copy of
  Window Maker on my systems. There are a few dockapps that I
  consider part of my default setup, and WMmp was one of them. Was,
  because with the demise of the dockapps repository dockapps.org,
  I thought I had lost it forever. Luckily, I managed to find the
  sources somewhere and uploaded the thing first to my private git
  repository, then to my public Github account. One day, I decided
  the decent thing to do would be to make a port for FreeBSD. By
  doing so, I found out that:
  - `autoconf', `automake' and `libtool' are treacherous tools,
    kind of a cross between [Nyarlatothep] and [Shub-Niggurath],
    where they would pretend to help you when they are in fact
    laying millions of eggs everywhere, under the names
    "configure.am", "configure.ac", "Makefile.am". Things look good
    until you realise that half of your disk is cluttered by all
    this mess. Also, I am now pretty sure the [Necronomicon] is
    actually a configure script written in m4.
  - The documentation for contributing a port could be clearer:
    given the above and following [the guide for doing a quick
    port] I ended up missing the fact that I already had some
    version of `autoconf' installed, and thus didn't think to
    include it as an explicit dependency. As a result, my first
    submission was quickly dismissed. So, if the guide could be
    clearer to help half-wit like me prepare ports, what is great
    is that bogus ports are effectively filtered out before they
    can reach the official ports repository. It would seem to me
    that following [the guide to slow porting] is not just the
    best, but the only way to go. It's a bit more involved, as you
    must set up an instance of `poudriere', but it's really worth
    it.
  - CMake is the way to go. Instead of just fixing the
    dependencies, I ended up migrating the thing to `cmake'. It's
    cleaner, quicker and much, much easier to maintain.

  I still need to update the port to point to the latest release,
  which only cleans up a few uncessary files, and, as soon as I
  have time, rework the application itself to have it rely on
  `libmpdclient' proper, instead of the old `libmpdclient.c'
  interface file that comes bundled with it, and that dates back to
  the dawn of time.

  Also, [this].


[audio/wmmp] <https://www.freshports.org/audio/wmmp/>

[the music player daemon] <https://www.musicpd.org/>

[Nyarlatothep] <https://en.wikipedia.org/wiki/Nyarlathotep>

[Shub-Niggurath] <https://en.wikipedia.org/wiki/Shub-Niggurath>

[Necronomicon] <https://en.wikipedia.org/wiki/Necronomicon>

[the guide for doing a quick port]
<https://www.freebsd.org/doc/en/books/porters-handbook/quick-porting.html>

[the guide to slow porting]
<https://www.freebsd.org/doc/en/books/porters-handbook/slow-porting.html>

[this] <https://twitter.com/YouHadOneJ0B/status/939200409129725952>