GOPHERSPACE.DE - P H O X Y
gophering on gopher.beastieboy.net
     _____________________________________________

      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 same "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