summaryrefslogtreecommitdiff
path: root/games-arcade/xscavenger
diff options
context:
space:
mode:
authorV3n3RiX <venerix@redcorelinux.org>2018-07-14 21:03:06 +0100
committerV3n3RiX <venerix@redcorelinux.org>2018-07-14 21:03:06 +0100
commit8376ef56580626e9c0f796d5b85b53a0a1c7d5f5 (patch)
tree7681bbd4e8b05407772df40a4bf04cbbc8afc3fa /games-arcade/xscavenger
parent30a9caf154332f12ca60756e1b75d2f0e3e1822d (diff)
gentoo resync : 14.07.2018
Diffstat (limited to 'games-arcade/xscavenger')
-rw-r--r--games-arcade/xscavenger/Manifest4
-rw-r--r--games-arcade/xscavenger/files/1.4.4-gentoo.patch200
-rw-r--r--games-arcade/xscavenger/metadata.xml8
-rw-r--r--games-arcade/xscavenger/xscavenger-1.4.4-r1.ebuild48
4 files changed, 260 insertions, 0 deletions
diff --git a/games-arcade/xscavenger/Manifest b/games-arcade/xscavenger/Manifest
new file mode 100644
index 000000000000..07b8dfa819a5
--- /dev/null
+++ b/games-arcade/xscavenger/Manifest
@@ -0,0 +1,4 @@
+AUX 1.4.4-gentoo.patch 5762 BLAKE2B 626debb4f67b0c9b90a783887ae2601cf2750c7358ba03638176e0afe7f2b51fe1e450e6ad56dbdfadbfd4413a31e6014c22b46409afec5ea438546b12338b78 SHA512 95e5c803b4d60b110be44254d1ceb78ea4ba3c7c72d6d95d856616902160141975ee57ee40c4a8c785220d71821531a02d2b823cfa5dca2cbbdd6b8b9bb842a5
+DIST xscavenger-1.4.4.tgz 193346 BLAKE2B eb86b97fad8a9d261935579d298f43e7063fbd0624e8fd654c72b4130e98db38541d54c59938375c8d6df4b50193436f86826c49b8bafe123b4be5c80d3f75d8 SHA512 5f200912b9114ea0c09f0bfcc3f06be2e7c2e1700a744319081f5f3a22c8b93663477076af27837326acf9830af6f597cf8f8fb44562db7d00128321487841ec
+EBUILD xscavenger-1.4.4-r1.ebuild 894 BLAKE2B 0eb536645b6e2fedd209d7236a87034c48e2f96857f20be25cfe708670f09f5d7baf7b5cb9239f5b9055443d08617e08c887f5ad60768617c897769a1e007fd6 SHA512 74ca79787d535b16b741ce5fa3c9a5856aabfc0e51b4ff9cdd3bf1be068a700ce263eee5fa497575986aeb19b9cf8ad1d22815742669db262c17c03857a89020
+MISC metadata.xml 249 BLAKE2B 7113a758d7abc93accec998a8843d8ef51ca8b72d72e659e224d5cec2a1a6a63e6c0605958091532ac6e51fa0d501ca4fd9f3f4a9e55baeb31519a02971b465f SHA512 895577c3a805c40581da03057b94e3f28f05f23012bf350c1e3575847d1a0fe40bb044a46f909012a200d991a400f6389358a60e9c2b5bef0da01fb26f846118
diff --git a/games-arcade/xscavenger/files/1.4.4-gentoo.patch b/games-arcade/xscavenger/files/1.4.4-gentoo.patch
new file mode 100644
index 000000000000..df5936ed3de8
--- /dev/null
+++ b/games-arcade/xscavenger/files/1.4.4-gentoo.patch
@@ -0,0 +1,200 @@
+diff -urN xscavenger-1.4.4.orig/src/Imakefile xscavenger-1.4.4/src/Imakefile
+--- xscavenger-1.4.4.orig/src/Imakefile
++++ xscavenger-1.4.4/src/Imakefile
+@@ -1,20 +1,36 @@
+ # set this to the path where data files should be stored. LIBDIR
+ # is automatically defined by imake, usually to /usr/X11R6/lib/X11, so
+ # this should be a good default.
+-LIBNAME = $(LIBDIR)/scavenger
++LIBNAME = GENTOO_DATADIR/scavenger
+
+ SRCS = anim.c edit.c scav.c x.c sound.c
+ OBJS = $(SRCS:.c=.o)
+
++# the "subst" hack below is because imake uses the C preprocessor, which
++# will interpret an unquoted "/*" as a comment beginning.
++#LIB_DATA = $(subst S,/,..SdataS*)
+ LIB_DATA = \
+- ../data/badguy.lbm ../data/brownblue.lbm ../data/death.raw \
+- ../data/dig.raw ../data/fall.raw ../data/levels.scl \
+- ../data/microman.lbm ../data/pop.raw ../data/redbrick.lbm \
+- ../data/reddevil.lbm ../data/regularguy.lbm ../data/spiralthing.lbm \
++ ../data/badguy.lbm \
++ ../data/brownblue.lbm \
++ ../data/death.raw \
++ ../data/dig.raw \
++ ../data/fall.raw \
++ ../data/flashspiral.lbm \
++ ../data/gems.lbm \
++ ../data/jungle.lbm \
++ ../data/levels.scl \
++ ../data/microman.lbm \
++ ../data/pop.raw \
++ ../data/redbrick.lbm \
++ ../data/reddevil.lbm \
++ ../data/regularguy.lbm \
++ ../data/spiralthing.lbm \
+ ../data/victory.raw
+
+ LOCAL_LIBRARIES = $(XLIB)
+ EXTRA_DEFINES = -DLIBNAME=\"$(LIBNAME)\"
+
+-ComplexProgramTarget(scavenger)
++AllTarget(scavenger)
++NormalProgramTarget(scavenger,$(OBJS),,,$(XLIB))
++InstallProgram(scavenger,GENTOO_BINDIR)
+ InstallMultipleFlags($(LIB_DATA),$(LIBNAME),-m 644)
+diff -urN xscavenger-1.4.4.orig/src/scav.c xscavenger-1.4.4/src/scav.c
+--- xscavenger-1.4.4.orig/src/scav.c
++++ xscavenger-1.4.4/src/scav.c
+@@ -240,15 +240,19 @@
+
+
+
++/* 14 Dec 2002: re-wrote to be more portable - don't assume two's-complement
++ * representation for integers, and fix bug when sizeof(long) > 4.
++ */
+ long readlong()
+ {
+-long val1=0;
+-
+- val1=myci()<<24L;
+- val1|=myci()<<16L;
+- val1|=myci()<<8;
+- val1|=myci();
++ long val1=0;
++ int i,j;
+
++ for (i=0; i<4; i++) {
++ j = myci();
++ if (j==-1) return -1L;
++ val1 = (val1<<8) + j;
++ }
+ return val1;
+ }
+ int rbs()
+@@ -309,7 +313,7 @@
+ bmw=bmh=byteswide=0;
+ while( (type=readlong()) )
+ {
+- if(type==0xffffffffL) break;
++ if(type==-1L) break;
+ size=readlong();
+ if(size&1) size++;
+ if(type==BMHD)
+@@ -402,16 +406,16 @@
+ input=open(resourcename,O_RDONLY);
+ if(input<0) return -1;
+ 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);
+ got=read(input,buff,8);
+ offset=(buff[0]<<24) | (buff[1]<<16) | (buff[2]<<8) | buff[3];
+ length=(buff[4]<<24) | (buff[5]<<16) | (buff[6]<<8) | buff[7];
+ if(len>length) len=length;
+- if(!offset || !len) return 0;
++ if(!offset || !len) {close(input);return 0;}
+ lseek(input,offset,SEEK_SET);
+ got=read(input,put,len);
+ close(input);
+@@ -448,8 +452,8 @@
+ input=open(resourcename,O_RDONLY);
+ if(input==-1) return -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);
+ if(output==-1) {close(input);return -6;}
+
+@@ -473,12 +477,12 @@
+ for(i=0;i<max;i++)
+ if(headers[i+i])
+ 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;
+ headers[num+num+1]=len;
+ 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;}
+
+ if(offset)
+ {
+@@ -487,8 +491,8 @@
+ while(count)
+ {
+ 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;
+ }
+ lseek(input,length,SEEK_CUR);
+@@ -498,17 +502,17 @@
+ {
+ got=read(input, copybuff, 1024);
+ 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;
+ }
+ if(len)
+ {
+- 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;
+ err=rename(bakname,resourcename);
+ if(err) return -1;
+@@ -1382,6 +1386,7 @@
+ break;
+ }
+ }
++ close(file);
+ }
+
+ void remslash(char *str)
+@@ -1416,6 +1421,8 @@
+ return -3;
+ }
+ } while(len);
++ close(input);
++ close(output);
+ return 0;
+ }
+
+@@ -1448,7 +1455,7 @@
+ printf("Failed to create directory %s, exiting\n",temp);
+ exit(1);
+ }
+- }
++ } else close(file);
+
+ sprintf(resourcename,"%s/%s/%s",localname,localdirname,LEVELSNAME);
+ file=open(resourcename,O_RDONLY);
+@@ -1485,7 +1492,7 @@
+ printf("Couldn't create %s\n",temp);
+ exit(1);
+ }
+- }
++ } else close(file);
+ }
+
+ void makercname(char *str)
diff --git a/games-arcade/xscavenger/metadata.xml b/games-arcade/xscavenger/metadata.xml
new file mode 100644
index 000000000000..78274e0fa550
--- /dev/null
+++ b/games-arcade/xscavenger/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<maintainer type="project">
+ <email>games@gentoo.org</email>
+ <name>Gentoo Games Project</name>
+</maintainer>
+</pkgmetadata>
diff --git a/games-arcade/xscavenger/xscavenger-1.4.4-r1.ebuild b/games-arcade/xscavenger/xscavenger-1.4.4-r1.ebuild
new file mode 100644
index 000000000000..6a578398112d
--- /dev/null
+++ b/games-arcade/xscavenger/xscavenger-1.4.4-r1.ebuild
@@ -0,0 +1,48 @@
+# Copyright 1999-2018 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+inherit desktop epatch toolchain-funcs
+
+DESCRIPTION="Lode-Runner-like arcade game"
+HOMEPAGE="http://www.xdr.com/dash/scavenger.html"
+SRC_URI="http://www.xdr.com/dash/${P}.tgz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+RDEPEND="x11-libs/libXext"
+DEPEND="${RDEPEND}
+ x11-misc/imake
+"
+
+S="${WORKDIR}/${P}/src"
+
+src_prepare() {
+ default
+ epatch "${FILESDIR}/${PV}-gentoo.patch"
+ sed -i \
+ -e "s:GENTOO_DATADIR:/usr/share:" \
+ -e "s:GENTOO_BINDIR:/usr/bin:" \
+ Imakefile \
+ || die
+}
+
+src_configure() {
+ xmkmf || die
+}
+
+src_compile() {
+ emake \
+ CC="$(tc-getCC)" \
+ CDEBUGFLAGS="${CFLAGS}" \
+ EXTRA_LDOPTIONS="${LDFLAGS}"
+}
+
+src_install() {
+ emake DESTDIR="${D}" install
+ dodoc ../{CREDITS,DOC,README,TODO,changelog}
+ make_desktop_entry scavenger "XScavenger"
+}