Here's another attempt at updating games/love, this time by using
multiple versions, thfr@ and bentley@ reminded me that's needed to run
more games (retrocompatibility is not really a thing.)

The idea then is to move the current port for the 0.8.0 (assuming we
want to keep it) as games/love/0.8.0 and add some other versions too,
for the time being 0.10.4 and 11.4 (the latest.)  11.1 doesn't compile
out of the box, and we can always add other versions later.

There's some tweaking around to allow multiple versions to be
installed at the same time:

 - love/0.8.0 only ship the bin/love executable.  it gains a @pkgpath
   for the updates (that I've tested successfully with pkg_add -u) and
   it's renamed bin/love-0.8.0.  i've also bumped the revision and
   regenerated the wantlibs, otherwise it's basically the current
   packaged version.

        % cd /usr/ports/packages/amd64/all
        % ls
        love-0.10.2.tgz     love-11.4.tgz
        love-0.8.0p14.tgz   love-mime-0.1.tgz
        % doas env TRUSTED_PKG_PATH=./ pkg_add -u love
        love-0.8.0p13->0.8.0p14: ok

 - love/0.10.4 and 11.4 install a shared library and I had to patch
   the Makefile.am to convince libtool to generate shared libraries
   that the ports tree may like.  They also install a symlink, a
   static library and the .la file that I'm removing in a post-install
   hook.  Playing with --disable-static didn't help.

 - love/0.10.4 and 11.4 (and versions in between) also ship the MIME
   type thingy for the desktops.  I've moved this to a subpackage
   love-mime and added it as RDEP on the affected versions to avoid
   conflicts.  love-mime just ship an icon and the xml for the mime
   type applications/x-love-game definition.

There's no file conflict between the currently packaged love-0.8.0 and
the new set of love ports, hence only the @pkgpath for the update and
no @conflict.  I've added @option is-branch and @option
no-default-conflict that, per pkg_create(1), seems to be needed in
this case, but I'm still getting an error making the packages:

        % make package
        [...]
        Creating package love-0.10.2
        Warning: @option no-default-conflict without @conflict

Anyway, all the versions are installable at the same time and seems to
work:

        % pkg_info | grep love
        love-0.10.2         2D games framework for use with Lua
        love-0.8.0p14       2D games framework for use with Lua
        love-11.4           2D games framework for use with Lua
        love-mime-0.1       MIME definition for applications/x-love-game


Since I'm changing the structure of games/love quite a bit, I'm just
attaching a tarball instead of generating a diff, hope it's fine.

OK/comments welcome!

Attachment: love.tar.gz
Description: GNU Zip compressed data

Reply via email to