Skip to content

Commit

Permalink
games-arcade/xscavenger: add 1.4.5, EAPI 7->8, remove imake
Browse files Browse the repository at this point in the history
imake makes something that's very simple needlessly complicated,
use an implicit make rule instead (fixes bug #739120).

Updated old patch with references and more fixes (notably for
garbled sub-menu text when using gcc7+). Also support prefix, add
previously missing man page, and updated homepage.

This version notably uses ALSA over /dev/dsp.

Closes: https://bugs.gentoo.org/612812
Closes: https://bugs.gentoo.org/739120
Signed-off-by: Ionen Wolkens <[email protected]>
  • Loading branch information
ionenwks committed Jun 28, 2021
1 parent 13a454f commit 59d9c18
Show file tree
Hide file tree
Showing 3 changed files with 183 additions and 0 deletions.
1 change: 1 addition & 0 deletions games-arcade/xscavenger/Manifest
Original file line number Diff line number Diff line change
@@ -1 +1,2 @@
DIST xscavenger-1.4.4.tgz 193346 BLAKE2B eb86b97fad8a9d261935579d298f43e7063fbd0624e8fd654c72b4130e98db38541d54c59938375c8d6df4b50193436f86826c49b8bafe123b4be5c80d3f75d8 SHA512 5f200912b9114ea0c09f0bfcc3f06be2e7c2e1700a744319081f5f3a22c8b93663477076af27837326acf9830af6f597cf8f8fb44562db7d00128321487841ec
DIST xscavenger-1.4.5.tgz 192990 BLAKE2B 5df2ca8b7b331d9c17ef8f287a8967f4f95a8737660fb42e4f5012f00ab24698d555e3f76bd82f3ba7b55423244e9d0a4392ccce99c84bed6cf80dee15ab3bf6 SHA512 ebdde5c74409dc881503ee6eeecb7194218141c6e7c169c2febd1a4339625e1532a654fc1ac2ce7b3256e8a721f656dfb7bddc4394e0513a5130e3cc8795dfe7
130 changes: 130 additions & 0 deletions games-arcade/xscavenger/files/xscavenger-1.4.5-misc-fixes.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,130 @@
* Missing return value (needed by clang)
* Implicit declarations (string.h and doall)
* Datafile loading broken on architectures where sizeof(long)>4
https://bugs.debian.org/56139
* Scavenger leaks file descriptors
https://bugs.debian.org/175128
* Font mapping with clang or gcc-7+
https://svnweb.freebsd.org/ports?view=revision&revision=444423
--- a/src/edit.c
+++ b/src/edit.c
@@ -3,2 +3,3 @@
#include <stdio.h>
+#include <string.h>
#include <unistd.h>
--- a/src/scav.c
+++ b/src/scav.c
@@ -246,7 +246,9 @@

- val1=myci()<<24L;
- val1|=myci()<<16L;
- val1|=myci()<<8;
- val1|=myci();
+ int i,j;

+ for (i=0; i<4; i++) {
+ j = myci();
+ if (j==-1) return -1L;
+ val1 = (val1<<8) + j;
+ }
return val1;
@@ -404,6 +406,6 @@
got=read(input,buff,8);
- if(got!=8) return -2;
- if (strncmp(buff,"SCAV",4)) return -3;
+ if(got!=8) {close(input);return -2;}
+ if (strncmp(buff,"SCAV",4)) {close(input);return -3;}
max=(buff[4]<<24) | (buff[5]<<16) | (buff[6]<<8) | buff[7];
- if(num>=max) return 0;
+ if(num>=max) {close(input);return 0;}
lseek(input,(num+1)<<3,SEEK_SET);
@@ -413,3 +415,3 @@
if(len>length) len=length;
- if(!offset || !len) return 0;
+ if(!offset || !len) {close(input);return 0;}
lseek(input,offset,SEEK_SET);
@@ -450,4 +452,4 @@
got=read(input,buff,8);
- if(got!=8) return -2;
- if(strncmp(buff,"SCAV",4)) return -3;
+ if(got!=8) {close(input);return -2;}
+ if(strncmp(buff,"SCAV",4)) {close(input);return -3;}
output=creat(bakname,00600);
@@ -475,4 +477,4 @@
headers[i+i]+=delta;
- if (write(output,"SCAV",4) != 4) return -200;
- if (!rlout(output,max)) return -200;
+ if (write(output,"SCAV",4) != 4) {close(input);close(output);return -200;}
+ if (!rlout(output,max)) {close(input);close(output);return -200;}
headers[num+num]=0;
@@ -480,3 +482,3 @@
for(i=0;i<max+max;i++)
- if (!rlout(output,headers[i])) return -200;
+ if (!rlout(output,headers[i])) {close(input);close(output);return -200;}

@@ -489,4 +491,4 @@
got=count>1024 ? 1024 : count;
- if (read(input,copybuff,got) != got) return -200;
- if (write(output,copybuff,got) != got) return -200;
+ if (read(input,copybuff,got) != got) {close(input);close(output);return -200;}
+ if (write(output,copybuff,got) != got) {close(input);close(output);return -200;}
count-=got;
@@ -500,3 +502,3 @@
if (!got) break;
- if (write (output, copybuff, got) != got) return -200;
+ if (write (output, copybuff, got) != got) {close(input);close(output);return -200;}
offset += got;
@@ -505,8 +507,8 @@
{
- if (write (output, take, len) != len) return -200;
+ if (write (output, take, len) != len) {close(input);close(output);return -200;}
lseek (output, (num+1) << 3, SEEK_SET);
- if (!rlout (output, offset)) return -200;
+ if (!rlout (output, offset)) {close(input);close(output);return -200;}
}
close (input);
- if (fsync(output)) return -200;
+ if (fsync(output)) {close(output);return -200;}
if (close(output)) return -200;
@@ -1384,2 +1386,3 @@
}
+ close(file);
}
@@ -1418,2 +1421,4 @@
} while(len);
+ close(input);
+ close(output);
return 0;
@@ -1450,3 +1455,3 @@
}
- }
+ } else close(file);

@@ -1487,3 +1492,3 @@
}
- }
+ } else close(file);
}
@@ -1574,3 +1579,3 @@
puts(err);
- return;
+ return 1;
}
--- a/src/sound.c
+++ b/src/sound.c
@@ -50,2 +50,3 @@

+void doall();
void opendsp(int samplerate)
@@ -201,3 +202,3 @@

-doall()
+void doall()
{
--- a/src/x.c
+++ b/src/x.c
@@ -447,3 +447,3 @@
{
- fmap[tolower(*p)]=fmap[*p++]=i++;
+ fmap[tolower(*p)]=fmap[*p]=i++; p++;
}
52 changes: 52 additions & 0 deletions games-arcade/xscavenger/xscavenger-1.4.5.ebuild
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
# Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2

EAPI=8

inherit desktop flag-o-matic toolchain-funcs

DESCRIPTION="Lode-Runner-like arcade game"
HOMEPAGE="https://www.linuxmotors.com/linux/scavenger/index.html"
SRC_URI="https://www.linuxmotors.com/linux/scavenger/downloads/${P}.tgz"

LICENSE="GPL-2"
SLOT="0"
KEYWORDS="~amd64 ~x86"

RDEPEND="
media-libs/alsa-lib
x11-libs/libX11"
DEPEND="
${RDEPEND}
x11-base/xorg-proto"
BDEPEND="virtual/pkgconfig"

PATCHES=(
"${FILESDIR}"/${P}-misc-fixes.patch
)

src_compile() {
tc-export CC

# skip using imake for simplicity
local cppargs=(
-DLIBNAME="'\"${EPREFIX}/usr/share/${PN}\"'"
$($(tc-getPKG_CONFIG) --cflags alsa x11)
)
append-cppflags "${cppargs[@]}"

LDLIBS="$($(tc-getPKG_CONFIG) --libs alsa x11)" \
emake -C src -E "scav: anim.o edit.o x.o sound.o"
}

src_install() {
newbin src/scav scavenger
doman src/scavenger.6

dodoc CREDITS DOC README TODO changelog

insinto /usr/share/${PN}
doins -r data/.

make_desktop_entry scavenger XScavenger applications-games
}

0 comments on commit 59d9c18

Please sign in to comment.