svn commit: r404212 - in head/games/xscavenger: . files

Martin Wilke miwi at FreeBSD.org
Tue Dec 22 04:49:26 UTC 2015


Author: miwi
Date: Tue Dec 22 04:49:24 2015
New Revision: 404212
URL: https://svnweb.freebsd.org/changeset/ports/404212

Log:
  - Update to 1.4.5
  - Update WWW
  
  PR:		205208
  Submitted by:	Ports Fury
  Approved by:	mat (mentor)
  Differential Revision:	D4632

Modified:
  head/games/xscavenger/Makefile
  head/games/xscavenger/distinfo
  head/games/xscavenger/files/patch-sound.c
  head/games/xscavenger/pkg-descr

Modified: head/games/xscavenger/Makefile
==============================================================================
--- head/games/xscavenger/Makefile	Tue Dec 22 04:39:55 2015	(r404211)
+++ head/games/xscavenger/Makefile	Tue Dec 22 04:49:24 2015	(r404212)
@@ -2,16 +2,13 @@
 # $FreeBSD$
 
 PORTNAME=	xscavenger
-PORTVERSION=	1.4.4
-PORTREVISION=	2
+PORTVERSION=	1.4.5
 CATEGORIES=	games
-MASTER_SITES=	http://www.xdr.com/dash/
+MASTER_SITES=	http://www.linuxmotors.com/scavenger/downloads/
 
 MAINTAINER=	ports at FreeBSD.org
 COMMENT=	Lode Runner clone for X11
 
-BROKEN=		unfetchable
-
 LICENSE=	GPLv2
 LICENSE_FILE=	${WRKSRC}/../copyright
 
@@ -22,6 +19,18 @@ USE_XORG=	x11 xext
 
 CFLAGS+=	-Wno-return-type -Wno-pointer-sign
 
+DESKTOP_ENTRIES="XScavenger" "" "" "scavenger" "" ""
+
+OPTIONS_DEFINE=		ALSA
+OPTIONS_DEFAULT=	ALSA
+
+ALSA_LIB_DEPENDS=	libasound.so:${PORTSDIR}/audio/alsa-lib
+ALSA_CFLAGS_OFF=	-DNO_ALSA
+
+post-patch-ALSA-off:
+	@${REINPLACE_CMD} -e \
+		's|-lasound||' ${WRKSRC}/Imakefile
+
 pre-configure:
 	@${LN} -sf scavenger.6 ${WRKSRC}/scavenger.man
 	@${ECHO_CMD} "MANSUFFIX=6" >> ${WRKSRC}/Imakefile

Modified: head/games/xscavenger/distinfo
==============================================================================
--- head/games/xscavenger/distinfo	Tue Dec 22 04:39:55 2015	(r404211)
+++ head/games/xscavenger/distinfo	Tue Dec 22 04:49:24 2015	(r404212)
@@ -1,2 +1,2 @@
-SHA256 (xscavenger-1.4.4.tgz) = 65c8d2224068151fcac704f34b91fb46056f77b708b1a60170a955d93751553e
-SIZE (xscavenger-1.4.4.tgz) = 193346
+SHA256 (xscavenger-1.4.5.tgz) = f719ffd4ed2abaed9f34b5d22bc392f3067b5c4b19bea2e9a02be07243a4d406
+SIZE (xscavenger-1.4.5.tgz) = 192990

Modified: head/games/xscavenger/files/patch-sound.c
==============================================================================
--- head/games/xscavenger/files/patch-sound.c	Tue Dec 22 04:39:55 2015	(r404211)
+++ head/games/xscavenger/files/patch-sound.c	Tue Dec 22 04:49:24 2015	(r404212)
@@ -1,11 +1,227 @@
---- sound.c.orig	Tue May 22 17:45:42 2001
-+++ sound.c	Tue May 22 17:45:53 2001
-@@ -5,7 +5,7 @@
- #include <unistd.h>
- #include <fcntl.h>
- #include <sys/ioctl.h>
--#include <linux/soundcard.h>
-+#include <sys/soundcard.h>
- #include <sys/time.h>
- #include <signal.h>
+--- sound.c.orig	2014-11-18 23:26:13 UTC
++++ sound.c
+@@ -10,7 +10,13 @@
  #include <string.h>
+ #include <errno.h>
+ 
++#ifdef NO_ALSA
++#include <sys/ioctl.h>
++#include <sys/soundcard.h>
++#define SOUNDDEV "/dev/dsp"
++#else
+ #include <alsa/asoundlib.h>
++#endif
+ 
+ 
+ #include "scav.h"
+@@ -42,10 +48,14 @@ sample samples[NUMSOUNDS];
+ 
+ int soundworking=0;
+ int fragment;
++#ifdef NO_ALSA
++int dsp;
++#endif
+ int soundwrite,soundread;
+ int *soundbuffer;
+ int soundbufferlen;
+ 
++#ifndef NO_ALSA
+ snd_pcm_t *playback_handle;
+ 
+ void opendsp(int samplerate)
+@@ -122,6 +132,7 @@ void opendsp(int samplerate)
+ 	}
+ 
+ }
++#endif
+ 
+ 
+ void soundinit(void)
+@@ -129,26 +140,50 @@ void soundinit(void)
+ 	int fd[2];
+ 	char devname[256];
+ 	int value;
++#ifndef NO_ALSA
+ 	int res;
++#endif
+ 
+ 	sprintf(dirlist,"%s/%s,%s",localname,localdirname,libname);
+ 	soundworking=0;
++#ifdef NO_ALSA
++	pipe(fd);
++#else
+ 	res=pipe(fd);res=res;//STFU
++#endif
+ 	soundread=fd[0];
+ 	soundwrite=fd[1];
++#ifdef NO_ALSA
++	if(fork())
++#else
+ 	res = fork();
+ 	if(res>0)
++#endif
+ 	{
+ 		close(soundread);
+ 		return;
+ 	}
+ 	close(soundwrite);
+ 	memset(samples,0,sizeof(samples));
++#ifdef NO_ALSA
++	strcpy(devname,SOUNDDEV);
++	dsp=open(devname,O_WRONLY);
++	if(dsp<0) goto failed;
++	fragment=0x20009;
++	ioctl(dsp,SNDCTL_DSP_SETFRAGMENT,&fragment);
++	value=10000;
++	ioctl(dsp,SNDCTL_DSP_SPEED,&value);
++	value=0;
++	ioctl(dsp,SNDCTL_DSP_STEREO,&value);
++	ioctl(dsp,SNDCTL_DSP_GETBLKSIZE,&fragment);
++	if(!fragment) {close(dsp);goto failed;}
++#else
+ 
+ // 10,000 hz mono 8bit samples
+ 	fragment = 256;
+ 	opendsp(10000);
+ 
++#endif
+ 	soundbufferlen=fragment*sizeof(int);
+ 	soundbuffer=malloc(soundbufferlen);
+ 	if(!soundbuffer) goto failed;
+@@ -180,12 +215,21 @@ int i,file,size,len;
+ 	}
+ 	size=lseek(file,0,SEEK_END);
+ 	lseek(file,0,SEEK_SET);
++#ifdef NO_ALSA
++	len=samples[num].len=(size+fragment-1)/fragment;
++#else
+ 	int expand = 1;
+ 	len=samples[num].len=(size*expand+fragment-1)/fragment;
++#endif
+ 	len*=fragment;
+ 	p1=samples[num].data=malloc(len);
+ 	if(p1)
+ 	{
++#ifdef NO_ALSA
++		i=read(file,p1,size);
++		if(len-size) memset(p1+size,0,len-size);
++		while(size--) *p1++ ^= 0x80;
++#else
+ 		memset(p1, 0, len);
+ 		int got=read(file,p1,size);
+ 		for(i=got-1;i>=0;--i)
+@@ -194,6 +238,7 @@ int i,file,size,len;
+ 			for(j=expand-1;j>=0;--j)
+ 				p1[i*expand+j] = p1[i] - 0x80;
+ 		}
++#endif
+ 	} else
+ 		samples[num].data=0;
+ 	close(file);
+@@ -207,8 +252,12 @@ signed char *p;
+ int *ip;
+ int playing[MIXMAX],position[MIXMAX];
+ int which;
++#ifdef NO_ALSA
++unsigned char clip[8192];
++#else
+ int *mixbuffer;
+ short *outbuffer;
++#endif
+ 
+ 	while(!soundworking)
+ 	{
+@@ -223,12 +272,21 @@ short *outbuffer;
+ 		com=*commands;
+ 		if(com==SOUND_EXIT) exit(0);
+ 	}
++#ifdef NO_ALSA
++	for(i=0;i<8192;i++)
++	{
++		j=i-4096;
++		clip[i]=j > 127 ? 255 : (j<-128 ? 0 : j+128);
++	}
++#endif
+ 	for(i=0;i<NUMSOUNDS;++i)
+ 		readsound(i);
+ 	memset(playing,0,sizeof(playing));
+ 	memset(position,0,sizeof(position));
++#ifndef NO_ALSA
+ 	mixbuffer = malloc(fragment * sizeof(*mixbuffer));
+ 	outbuffer = malloc(fragment * sizeof(*outbuffer));
++#endif
+ 	for(;;)
+ 	{
+ 		commandlen=read(soundread,commands,64);
+@@ -238,10 +296,18 @@ short *outbuffer;
+ 			commandlen=0;
+ 			if(errno==EPIPE) exit(0);
+ 		} else if(commandlen==0) exit(0);
++#ifdef NO_ALSA
++		p=commands;
++#else
+ 		signed char *comp=commands;
++#endif
+ 		while(commandlen--)
+ 		{
++#ifdef NO_ALSA
++			com=*p++;
++#else
+ 			com=*comp++;
++#endif
+ 			if(com==SOUND_QUIET) {memset(position,0,sizeof(position));continue;}
+ 			if(com==SOUND_EXIT) exit(0);
+ 			if(com<NUMSOUNDS)
+@@ -261,7 +327,11 @@ short *outbuffer;
+ 						position[i]=0;
+ 			}
+ 		}
++#ifdef NO_ALSA
++		memset(soundbuffer,0,soundbufferlen);
++#else
+ 		memset(mixbuffer, 0, fragment * sizeof(*mixbuffer));
++#endif
+ 		for(i=0;i<MIXMAX;++i)
+ 		{
+ 			if(!position[i]) continue;
+@@ -274,6 +344,17 @@ short *outbuffer;
+ 			p=samples[which].data;
+ 			if(!p) continue;
+ 			p+=fragment*(position[i]++ -1);
++#ifdef NO_ALSA
++			ip=soundbuffer;
++			j=fragment;
++			while(j--) *ip++ += *p++;
++		}
++		j=fragment;
++		ip=soundbuffer;
++		p=(char *) soundbuffer;
++		while(j--) *p++ = clip[4096+*ip++];
++		write(dsp,(char *)soundbuffer,fragment);
++#else
+ 
+ 			for(j=0;j<fragment;++j)
+ 				mixbuffer[j] += 255*p[j];
+@@ -289,15 +370,22 @@ short *outbuffer;
+ 		res = snd_pcm_writei(playback_handle, outbuffer, fragment);
+ //printf("res=%d\n", res);
+ 
++#endif
+ 	}
+ }
+ 
+ void playsound(int n)
+ {
+ 	char c;
++#ifndef NO_ALSA
+ 	int res;
++#endif
+ 	c=n;
++#ifdef NO_ALSA
++	write(soundwrite,&c,1);
++#else
+ 	res=write(soundwrite,&c,1);res=res;//STFU
++#endif
+ }
+ 
+ void endsound(void)

Modified: head/games/xscavenger/pkg-descr
==============================================================================
--- head/games/xscavenger/pkg-descr	Tue Dec 22 04:39:55 2015	(r404211)
+++ head/games/xscavenger/pkg-descr	Tue Dec 22 04:49:24 2015	(r404212)
@@ -1,12 +1,12 @@
-Scavenger is like Lode Runner. You've got to run around gathering objects
-while avoiding enemies. You can dig down through some of the blocks to get
-at buried objects. After you've collected everything, ladders may appear.
-To finish the level you've got to exit through the top of the screen. If
-an enemy falls into a dug brick, he is stunned for a while. If the brick
-fills in with him in it, he is killed, and he will reappear at the top of
-the screen.
+Scavenger is like Lode Runner. You've got to run around gathering
+objects while avoiding enemies. You can dig down through some of the
+blocks to get at buried objects. After you've collected everything,
+ladders may appear. To finish the level you've got to exit through the
+top of the screen. If an enemy falls into a dug brick, he is stunned for
+a while. If the brick fills in with him in it, he is killed, and he will
+reappear at the top of the screen.
 
 This version has a level editor for designing your own levels, and a
 graphics editor for drawing your own artwork.
 
-WWW: http://www.xdr.com/dash/scavenger.html
+WWW: http://www.linuxmotors.com/scavenger/


More information about the svn-ports-head mailing list