svn commit: r307068 - in head/games/doomlegacy: . files
Alexey Dokuchaev
danfe at FreeBSD.org
Tue Nov 6 13:15:41 UTC 2012
Author: danfe
Date: Tue Nov 6 13:15:40 2012
New Revision: 307068
URL: http://svnweb.freebsd.org/changeset/ports/307068
Log:
Overhaul the port to make it usable and up-to-date with the reality:
- Update to version 1.44 alpha3 (unfortunately, for the sake of sane version
number, have to bump PORTEPOCH)
- Switch to unified SDL media interface (this is what all modern systems
should use) and stop building and installing no longer required stuff; now
both sound and music works as expected out of the box
- Switch from kvm(3) kernel memory interface calls to obtain memory stats to
sysctl(3) to avoid kmem group privileges (setgid bit) requirement
- Get rid of wrapper script by providing better default value of DOOMWADDIR
- Rename X86_ASM option to standard ASM (which already has nice description)
- Change USE_GL knob value from umbrella "yes" to more specific "glu"
- Adjust COMMENT and define LICENSE (GPLv2); really honor CC and CFLAGS
- Utilize PORTDOCS and PLIST_FILES and thus purge pkg-plist
- Trim Makefile header while I'm here per new world order
- Provide better and cleaner port description
Feature safe: yes
Inspired by: http://lists.freebsd.org/pipermail/freebsd-questions/2012-August/244371.html
Tested on: i386 only :(
Added:
head/games/doomlegacy/files/patch-Makefile (contents, props changed)
head/games/doomlegacy/files/patch-sdl+i_system.c (contents, props changed)
Deleted:
head/games/doomlegacy/files/patch-byteptr.h
head/games/doomlegacy/files/patch-i_sound.c
head/games/doomlegacy/files/patch-i_tcp.c
head/games/doomlegacy/files/patch-makefile
head/games/doomlegacy/files/patch-sndserv_Makefile
Modified:
head/games/doomlegacy/Makefile
head/games/doomlegacy/distinfo
head/games/doomlegacy/pkg-descr
Modified: head/games/doomlegacy/Makefile
==============================================================================
--- head/games/doomlegacy/Makefile Tue Nov 6 12:49:10 2012 (r307067)
+++ head/games/doomlegacy/Makefile Tue Nov 6 13:15:40 2012 (r307068)
@@ -1,78 +1,71 @@
-# New ports collection makefile for: doomlegacy
-# Date Created: 10 April 2002
-# Whom: Alexander G. Chetirbock <bock at bock.nnov.ru>
-#
+# Created by: Alexander G. Chetirbock <bock at bock.nnov.ru>
# $FreeBSD$
PORTNAME= doomlegacy
-PORTVERSION= 142
-PORTREVISION= 7
+DISTVERSION= 1.44_alpha3
+PORTEPOCH= 1
CATEGORIES= games
-MASTER_SITES= SF/${PORTNAME}/DooM%20Legacy%20source%20code/1.42
-DISTNAME= legacy_${PORTVERSION}_src
-DISTFILES= ${DISTNAME}${EXTRACT_SUFX} ${WADFILE}
+MASTER_SITES= http://doomlegacy.sourceforge.net/releases/ \
+ http://freebsd.nsu.ru/distfiles/legacy.wad:wad
+DISTNAME= ${PORTNAME}_${DISTVERSION}_src_r${SVN_REV}
+DISTFILES= ${DISTNAME}${EXTRACT_SUFX} legacy.wad:wad
+DIST_SUBDIR= ${PORTNAME}
EXTRACT_ONLY= ${DISTNAME}${EXTRACT_SUFX}
MAINTAINER= ports at FreeBSD.org
-COMMENT= DooM Legacy: popular DooM clone!
+COMMENT= Improved and extended version of Doom
-EXTRACT_DEPENDS=unzip:${PORTSDIR}/archivers/unzip
+LICENSE= GPLv2
-USE_GL= yes
+USE_ZIP= yes
+USE_GL= glu
USE_GMAKE= yes
USE_SDL= mixer sdl
-MAKEFILE= makefile
-MAKE_ENV= FREEBSD=1 FBSD_SDL=1 PTHREAD_CFLAGS="${PTHREAD_CFLAGS}" \
- PTHREAD_LIBS="${PTHREAD_LIBS}"
-WRKSRC= ${WRKDIR}/doomlegacy_${PORTVERSION}_src
-
-OPTIONS_DEFINE= X86_ASM DOCS
-OPTIONS_DEFAULT= X86_ASM
-X86_ASM_DESC= Enable use of x86 assembly code
-DATADIR= ${PREFIX}/lib/${PORTNAME}
-SUB_FILES= legacy
+MAKE_ENV= OLD_DEPENDENCIES=1 # since .dep file is removed
+CFLAGS+= -DSVN_REV=\\\"${SVN_REV}\\\"
+WRKSRC= ${WRKDIR}/${PORTNAME}_${DISTVERSION:S/.//}/src
-WADFILE= legacy_dat.zip
+PLIST_FILES= bin/${PORTNAME} share/doom/legacy.wad
+PORTDOCS= *
-.include "${.CURDIR}/../doom-data/Makefile.include"
+SVN_REV= 845
+
+OPTIONS_DEFINE= ASM DOCS
+OPTIONS_DEFAULT= ASM
.include <bsd.port.pre.mk>
-.if ${PORT_OPTIONS:MX86_ASM} && ${ARCH} == "i386"
-BUILD_DEPENDS+= nasm:${PORTSDIR}/devel/nasm
-MAKE_ARGS+= USEASM=1
+.if ${PORT_OPTIONS:MASM} && ${ARCH} == "i386"
+BUILD_DEPENDS= nasm:${PORTSDIR}/devel/nasm
+MAKE_ENV+= USEASM=1
.endif
-post-extract:
- @${UNZIP_CMD} -q ${DISTDIR}/${WADFILE} -d ${WRKDIR}/bin
-
post-patch:
- @${REINPLACE_CMD} -e \
- 's|-I/usr/local/include/SDL11|`${SDL_CONFIG} --cflags`|; \
- s|-lSDL-1\.1|`${SDL_CONFIG} --libs`|; \
- s|/usr/local|${LOCALBASE}|; \
- s|/usr/X11R6|${LOCALBASE}|' \
- ${WRKSRC}/${MAKEFILE}
-
-pre-build:
- @cd ${WRKSRC}/linux_x/sndserv && ${GMAKE} clean
-
-post-build:
- @${LN} -sf ${WRKSRC}/linux_x/sndserv/linux/llsndserv ${WRKDIR}/bin
+ @${REINPLACE_CMD} -e 's|<malloc|<stdlib|' ${WRKSRC}/p_setup.c \
+ ${WRKSRC}/r_data.c ${WRKSRC}/w_wad.c
+# Unbreak the build when using optimized assembly routines
+ @${REINPLACE_CMD} -e 's|dc_transmap|dc_translucentmap| ; \
+ s|colormaps|reg_&|' ${WRKSRC}/tmap.nas
+# Ensure that gathered memory stats are printed correctly
+ @${REINPLACE_CMD} -e 's|total, free|(int)total, (int)free|' \
+ ${WRKSRC}/z_zone.c
+# Adjust config and save games directory name to be less ambiguous
+ @${REINPLACE_CMD} -e 's|\.legacy|.${PORTNAME}|' ${WRKSRC}/doomdef.h
+# Change default value of DOOMWADDIR
+ @${REINPLACE_CMD} -e 's,\(doomwaddir = \)"\.",\1"${DMDIR}", ; \
+ 1306,1309d' ${WRKSRC}/d_main.c
+# Remove broken dependency file (wrong paths inside) and copy of GPL
+ @${RM} ${WRKSRC}/sdl.dep ; ${TOUCH} ${WRKSRC}/sdl.dep
+ @${RM} ${WRKSRC}/_doc/LICENSE.txt
do-install:
- ${MKDIR} ${DATADIR}
- cd ${WRKDIR}/bin && ${INSTALL_PROGRAM} llsndserv r_opengl.so ${DATADIR}
- ${INSTALL} -c -s -o root -g kmem -m 2555 ${WRKDIR}/bin/lsdldoom \
- ${DATADIR}
- ${INSTALL_DATA} ${WRKDIR}/bin/legacy.dat ${DATADIR}
- ${INSTALL_SCRIPT} ${WRKDIR}/legacy ${PREFIX}/bin/${PORTNAME}
+ ${INSTALL_PROGRAM} ${WRKSRC}/../bin/doomlegacy ${PREFIX}/bin
+ ${INSTALL_DATA} ${_DISTDIR}/legacy.wad ${DMDIR}
.if ${PORT_OPTIONS:MDOCS}
- ${MKDIR} ${DOCSDIR}
-. for f in *.html *.txt *.cfg README_SDL copying
- ${INSTALL_DATA} ${WRKSRC}/_doc/${f} ${DOCSDIR}
-. endfor
+ @${MKDIR} ${DOCSDIR}
+ cd ${WRKSRC}/_doc && ${COPYTREE_SHARE} . ${DOCSDIR}
.endif
+.include "${.CURDIR}/../doom-data/Makefile.include"
.include <bsd.port.post.mk>
Modified: head/games/doomlegacy/distinfo
==============================================================================
--- head/games/doomlegacy/distinfo Tue Nov 6 12:49:10 2012 (r307067)
+++ head/games/doomlegacy/distinfo Tue Nov 6 13:15:40 2012 (r307068)
@@ -1,4 +1,4 @@
-SHA256 (legacy_142_src.tar.gz) = f5d80aaafddb1a9525af72f118cc63f724f3542c9f58496ad5eabd334b8e2d98
-SIZE (legacy_142_src.tar.gz) = 1687954
-SHA256 (legacy_dat.zip) = 2904fb4e14f60b85aeb49b4fe046ac360156dbe79acb26b640507d00ab949dfb
-SIZE (legacy_dat.zip) = 340934
+SHA256 (doomlegacy/doomlegacy_1.44_alpha3_src_r845.zip) = d5ac03ceab68f586ce7282fab1975bbbdbd83b093dd3fa55a8e5317892f61436
+SIZE (doomlegacy/doomlegacy_1.44_alpha3_src_r845.zip) = 2530660
+SHA256 (doomlegacy/legacy.wad) = 3670caff9432155487be2622b7e77ee6fe356f21fd09e8733bf95b58d2df5f5f
+SIZE (doomlegacy/legacy.wad) = 952918
Added: head/games/doomlegacy/files/patch-Makefile
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ head/games/doomlegacy/files/patch-Makefile Tue Nov 6 13:15:40 2012 (r307068)
@@ -0,0 +1,41 @@
+--- Makefile.orig
++++ Makefile
+@@ -76,7 +76,7 @@
+ # std=c89, does not support // commments, no inline, no asm
+
+ # gcc or g++
+-CC=gcc
++CC?=gcc
+
+ # End of User tunable settings
+
+@@ -116,9 +116,9 @@
+ LIBS := -lopengl32 -lglu32 -lwsock32 -lm
+ else
+ # default is Linux, for all unix SDL
+- OPTS := -DLINUX
++ OPTS := -DLINUX -DFREEBSD
+ LDFLAGS=-L/usr/X11R6/lib
+- LIBS := -lGL -lGLU -lm
++ LIBS := -lGL -lGLU -lm -lipx
+ # -L/usr/X11R6/lib is needed by Linux 2.4 and others that still have
+ # the GLU libraries in an X11 directory.
+ # -lm is needed for pow, powf, and other MATH1 functions.
+@@ -296,7 +296,7 @@
+
+
+ # compiler and linker flags
+-CFLAGS = $(WFLAGS)
++#CFLAGS = $(WFLAGS)
+
+ ifdef PROFILEMODE
+ # build with gprof profiling information
+@@ -309,7 +309,7 @@
+ else
+ # build a normal optimized version
+ #CFLAGS += -O3
+- CFLAGS += $(OPTLEV) -fomit-frame-pointer
++ #CFLAGS += $(OPTLEV) -fomit-frame-pointer
+ endif
+ endif
+
Added: head/games/doomlegacy/files/patch-sdl+i_system.c
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ head/games/doomlegacy/files/patch-sdl+i_system.c Tue Nov 6 13:15:40 2012 (r307068)
@@ -0,0 +1,54 @@
+--- sdl/i_system.c.orig
++++ sdl/i_system.c
+@@ -83,10 +83,7 @@
+ # include <sys/mount.h>
+ /*For meminfo*/
+ # include <sys/types.h>
+-# include <kvm.h>
+-# include <nlist.h>
+-# include <sys/vmmeter.h>
+-# include <fcntl.h>
++# include <sys/sysctl.h>
+ # endif
+ #endif
+
+@@ -832,30 +829,16 @@ uint64_t I_GetFreeMem(uint64_t *total)
+ // LINUX covers all the unix-type OS's.
+
+ #ifdef FREEBSD
+- struct vmmeter sum;
+- kvm_t *kd;
+- struct nlist namelist[]= {
+-#define X_SUM 0
+- {"_cnt"},
+- { NULL }
+- };
+- if ((kd = kvm_open(NULL, NULL, NULL, O_RDONLY, "kvm_open")) == NULL)
++ unsigned long page_count, free_count, pagesize;
++ size_t len = sizeof(unsigned long);
++ if (sysctlbyname("vm.stats.vm.v_page_count", &page_count, &len, NULL, 0))
+ goto guess;
+-
+- if (kvm_nlist(kd, namelist) != 0)
+- {
+- kvm_close (kd);
+- goto guess;
+- }
+- if (kvm_read(kd,namelist[X_SUM].n_value ,&sum, sizeof(sum)) != sizeof(sum))
+- {
+- kvm_close (kd);
+- goto guess;
+- }
+- kvm_close (kd);
+-
+- *total = sum.v_page_count * sum.v_page_size;
+- return sum.v_free_count * sum.v_page_size;
++ if (sysctlbyname("vm.stats.vm.v_free_count", &free_count, &len, NULL, 0))
++ goto guess;
++ if (sysctlbyname("hw.pagesize", &pagesize, &len, NULL, 0))
++ goto guess;
++ *total = page_count * pagesize;
++ return free_count * pagesize;
+ #elif defined(SOLARIS)
+ goto guess;
+ #else
Modified: head/games/doomlegacy/pkg-descr
==============================================================================
--- head/games/doomlegacy/pkg-descr Tue Nov 6 12:49:10 2012 (r307067)
+++ head/games/doomlegacy/pkg-descr Tue Nov 6 13:15:40 2012 (r307068)
@@ -1,12 +1,17 @@
-DooM Legacy is a DooM port. Some of the supported features are:
- * VIDEO OPTIONS MENU
- * TRANSLUCENCY ON SPRITES AND WALLS
- * SETUP CONTROLS MENU
- * LOOK UP AND DOWN (FREELOOK)
- * CHASE-CAM : also called a 'third-person' view, or 'Tomb Raider' view.
- * CONSOLE
- * STATUS BAR OVERLAY
- * SKINS
+Doom Legacy is a source port of Doom available for various operating systems
+which was originally written as a fork of DOSDoom introducing lots of useful
+improvements yet retaining original feel of the game. It currently features:
-WWW: http://legacy.newdoom.com/
-WWW: http://sourceforge.net/projects/doomlegacy
+ * TCP/IP multiplayer networking (including a master server for Internet
+ game searches)
+ * Nearly complete Boom and Heretic support
+ * OpenGL rendering
+ * Higher resolutions
+ * Console with support for key bindings (Quake-style)
+ * FraggleScript for scripting
+ * 3D floors, water, and coloured lighting
+ * Mouse aim and crosshairs
+ * Jumping
+ * 32 players (including support for custom skins)
+
+WWW: http://doomlegacy.sourceforge.net/
More information about the svn-ports-head
mailing list