After prodding from bentley@ about modified chunk canary crashes, when running with 'ln -s S /etc/malloc.conf', I had a go at resolving it. Lucky for me, the new sdl2-branch of chocolate-doom seems to neatly skirt around the issue.
I first had a go at seeing if the current release could just be patched, but I got lost with no usable results. Here is an update to chocolate-doom 3.0.0beta1, which works with malloc S option set. I tested doom2, and a local chocolate-server + connect to localhost via chocolate-doom-setup. I quickly ran the heretic, hexen, and strife games and confirmed they start and the games play. For the port, I used the latest github sdl2-branch as a base, rather than an available chocolate-doom-3.0.0beta1 prerolled tarball from February 2017. This is because various little fixes to that branch have rolled in since then, and it is more or less stable until the actual release happens. The manpages were not available pre-built, and thus I had to do some dancing around with making sure its little manpage generator could successfully use a python2 executable. I am not sure if I did this right at all, and was having issues finding other examples in-tree. A push in the right direction appreciated if necessary. That all said, comments or OK? :-) -ryan ? chocolate-doom-3.0.0beta1.diff Index: Makefile =================================================================== RCS file: /cvs/ports/games/chocolate-doom/Makefile,v retrieving revision 1.22 diff -u -p -r1.22 Makefile --- Makefile 13 Nov 2017 11:25:27 -0000 1.22 +++ Makefile 22 Nov 2017 03:03:41 -0000 @@ -1,10 +1,13 @@ # $OpenBSD: Makefile,v 1.22 2017/11/13 11:25:27 bentley Exp $ COMMENT = portable release of Doom, Heretic, Hexen, and Strife -V = 2.3.0 -DISTNAME = chocolate-doom-${V} +DISTNAME = chocolate-doom-3.0.0beta1 + +GH_ACCOUNT = chocolate-doom +GH_PROJECT = chocolate-doom +GH_COMMIT = 413f4ecd7aae41229cc7b40ea3275970dc18cdb4 + CATEGORIES = games x11 -REVISION = 0 HOMEPAGE = https://www.chocolate-doom.org/ @@ -13,42 +16,41 @@ MAINTAINER = Ryan Freeman <ryan@slipgate # GPLv2+ PERMIT_PACKAGE_CDROM = Yes -WANTLIB += SDL SDL_mixer SDL_net c m png pthread samplerate z +WANTLIB += SDL2 SDL2_mixer SDL2_net c m png samplerate z -LIB_DEPENDS = devel/sdl-mixer \ - devel/sdl-net \ +LIB_DEPENDS = devel/sdl2-mixer \ + devel/sdl2-net \ audio/libsamplerate \ graphics/png -MASTER_SITES = https://www.chocolate-doom.org/downloads/${V}/ - RUN_DEPENDS = devel/desktop-file-utils - CONFIGURE_STYLE = gnu +AUTOMAKE_VERSION = 1.15 +AUTOCONF_VERSION = 2.69 -# we don't need to require python to build -CONFIGURE_ENV += HAVE_PYTHON=false +CONFIGURE_ARGS += --mandir="${LOCALBASE}/man" -MAN_5 = chocolate-doom.cfg default.cfg \ - chocolate-heretic.cfg heretic.cfg \ - chocolate-hexen.cfg hexen.cfg \ - chocolate-strife.cfg strife.cfg -MAN_6 = chocolate-doom chocolate-server chocolate-setup \ - chocolate-heretic chocolate-hexen chocolate-strife +# just used for generating manpages +BUILD_DEPENDS = lang/python/2.7 post-extract: # set correct data directory @sed -i 's,"/games/doom","/doom",g' ${WRKSRC}/src/d_iwad.c + # set correct python binary name + @sed -i 's/HAVE_PYTHON, python/HAVE_PYTHON, python2/' \ + ${WRKSRC}/configure.ac + @sed -i 's,/usr/bin/env python,/usr/bin/env python2,' \ + ${WRKSRC}/man/docgen + @sed -i 's,/usr/bin/env python,/usr/bin/env python2,' \ + ${WRKSRC}/man/simplecpp + +pre-configure: + @cd ${WRKSRC}; AUTOMAKE_VERSION=${AUTOMAKE_VERSION} \ + AUTOCONF_VERSION=${AUTOCONF_VERSION} autoreconf -fi post-install: # Data files get installed to this directory. ${INSTALL_DATA_DIR} ${PREFIX}/share/doom/ -.for m in ${MAN_5} - ${INSTALL_MAN} ${WRKBUILD}/man/$m.5 ${PREFIX}/man/man5/ -.endfor -.for m in ${MAN_6} - ${INSTALL_MAN} ${WRKBUILD}/man/$m.6 ${PREFIX}/man/man6/ -.endfor .include <bsd.port.mk> Index: distinfo =================================================================== RCS file: /cvs/ports/games/chocolate-doom/distinfo,v retrieving revision 1.8 diff -u -p -r1.8 distinfo --- distinfo 3 Jan 2017 00:28:53 -0000 1.8 +++ distinfo 22 Nov 2017 03:03:41 -0000 @@ -1,2 +1,2 @@ -SHA256 (chocolate-doom-2.3.0.tar.gz) = Pm0agqxciwJalpXOHkfQ3G7RQuuxEpseSnDidA95FQw= -SIZE (chocolate-doom-2.3.0.tar.gz) = 2190744 +SHA256 (chocolate-doom-3.0.0beta1-413f4ecd.tar.gz) = sk9/S4B4hHH6vQ50L79qTeAPLZn+s04N7p/ND2T/YJA= +SIZE (chocolate-doom-3.0.0beta1-413f4ecd.tar.gz) = 2245692 Index: pkg/PLIST =================================================================== RCS file: /cvs/ports/games/chocolate-doom/pkg/PLIST,v retrieving revision 1.7 diff -u -p -r1.7 PLIST --- pkg/PLIST 3 Jan 2017 00:28:54 -0000 1.7 +++ pkg/PLIST 22 Nov 2017 03:03:41 -0000 @@ -16,11 +16,15 @@ @man man/man5/heretic.cfg.5 @man man/man5/hexen.cfg.5 @man man/man5/strife.cfg.5 +@man man/man6/chocolate-doom-setup.6 @man man/man6/chocolate-doom.6 +@man man/man6/chocolate-heretic-setup.6 @man man/man6/chocolate-heretic.6 +@man man/man6/chocolate-hexen-setup.6 @man man/man6/chocolate-hexen.6 @man man/man6/chocolate-server.6 @man man/man6/chocolate-setup.6 +@man man/man6/chocolate-strife-setup.6 @man man/man6/chocolate-strife.6 share/appdata/ share/appdata/chocolate-doom.appdata.xml @@ -34,27 +38,39 @@ share/applications/chocolate-setup.deskt share/applications/chocolate-strife.desktop share/applications/screensavers/ share/applications/screensavers/chocolate-doom-screensaver.desktop +share/bash-completion/completions/chocolate-doom +share/bash-completion/completions/chocolate-heretic +share/bash-completion/completions/chocolate-hexen +share/bash-completion/completions/chocolate-strife share/doc/chocolate-doom/ +share/doc/chocolate-doom/CMDLINE.doom share/doc/chocolate-doom/ChangeLog +share/doc/chocolate-doom/INSTALL.doom share/doc/chocolate-doom/NEWS.md share/doc/chocolate-doom/NOT-BUGS.md share/doc/chocolate-doom/PHILOSOPHY.md share/doc/chocolate-doom/README.Music.md share/doc/chocolate-doom/README.md share/doc/chocolate-heretic/ +share/doc/chocolate-heretic/CMDLINE.heretic share/doc/chocolate-heretic/ChangeLog +share/doc/chocolate-heretic/INSTALL.heretic share/doc/chocolate-heretic/NEWS.md share/doc/chocolate-heretic/PHILOSOPHY.md share/doc/chocolate-heretic/README.Music.md share/doc/chocolate-heretic/README.md share/doc/chocolate-hexen/ +share/doc/chocolate-hexen/CMDLINE.hexen share/doc/chocolate-hexen/ChangeLog +share/doc/chocolate-hexen/INSTALL.hexen share/doc/chocolate-hexen/NEWS.md share/doc/chocolate-hexen/PHILOSOPHY.md share/doc/chocolate-hexen/README.Music.md share/doc/chocolate-hexen/README.md share/doc/chocolate-strife/ +share/doc/chocolate-strife/CMDLINE.strife share/doc/chocolate-strife/ChangeLog +share/doc/chocolate-strife/INSTALL.strife share/doc/chocolate-strife/NEWS.md share/doc/chocolate-strife/PHILOSOPHY.md share/doc/chocolate-strife/README.Music.md