Wire Desktop is available for linux, mac os and windows. I figured
adding darwin support would be cromulent. Note that the versions don't
align 100%, this is how it's released upstream.
I refactored the derivation to seperate all the linux-specific parts. I
also sorted the dependencies and grouped them.
The changes were based on the derivation for electron. I changed the
construction from calling `mkDerivation` on a conditional merger of two
sets by moving the `mkDerivation` calls into the conditional and up to
the local bindings for `linux` and `darwin`. This required moving
`pname` and `meta` up to local bindings.
Added a `longDescription` and `downloadPage`. Also added myself to
`maintainers`.
I fixed up the `license` because it's actually GPLv3 *or later*.
Note that terms and conditions apply though I don't feel like they
violate the GPL-ness of the code.
To get PostGIS going on Darwin:
1. Add libiconv, as is often required.
2. Expand platforms to `platforms.all`.
3. Deal with PostGIS' quirky build system.
PostGIS' configure.ac has the following gem:
AC_MSG_RESULT([------------------------------------------------------------------------])
AC_MSG_RESULT([ WARNING: You have set the --prefix to '$prefix'. But we mostly ])
AC_MSG_RESULT([ ignore the --prefix. For your info, using the values determined from ])
AC_MSG_RESULT([ $PG_CONFIG we will be installing: ])
AC_MSG_RESULT([ * postgis shared library in $PGSQL_LIBDIR ])
AC_MSG_RESULT([ * postgis SQL files in $PGSQL_SHAREDIR/contrib/postgis-$POSTGIS_MAJOR_VERSION.$POSTGIS_MINOR_VERSION ])
AC_MSG_RESULT([ * postgis executables in $PGSQL_BINDIR ])
AC_MSG_RESULT([------------------------------------------------------------------------])
This is suggestive of some assumptions in the build system, which are
revealed when building in Nix on Darwin: the build fails because the
postgres binary cannot be found in the install prefix specified for
postgis; vis.
cc x -bundle_loader $POSTGIS_PREFIX/bin/postgres
This bundle_loader parameter is only available on Darwin, and this
problem doesn't appear to affect Linux systems.
The solution presented here is to symlink the postgres binary where
PostGIS expects it to be, and then remove it after the build completes.
Upstream switched to a different type of ipset table, whereas we
create ipset in post-start which overrides upstream, and renders
sshguard ineffective.
Remove ipset creation from post-start, and let it get automatically
by upstream script (sshg-fw-ipset) as part of startup