Fix segfault caused by our patch, bug #326861
authorTristan Heaven <tristan@gentoo.org>
Thu, 8 Jul 2010 13:13:07 +0000 (13:13 +0000)
committerTristan Heaven <tristan@gentoo.org>
Thu, 8 Jul 2010 13:13:07 +0000 (13:13 +0000)
Package-Manager: portage-2.2_rc67/cvs/Linux x86_64

games-arcade/epiar/ChangeLog
games-arcade/epiar/Manifest
games-arcade/epiar/epiar-0.5-r1.ebuild [new file with mode: 0644]
games-arcade/epiar/files/epiar-0.5-paths.patch [new file with mode: 0644]

index d886b88e86ffe5a87f23c1b5171439df7c4ade75..b621a87c0bc6baf4f32845ba064d1f6b0c16381c 100644 (file)
@@ -1,9 +1,15 @@
 # ChangeLog for games-arcade/epiar
 # Copyright 1999-2010 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/games-arcade/epiar/ChangeLog,v 1.14 2010/01/07 21:52:18 josejx Exp $
+# $Header: /var/cvsroot/gentoo-x86/games-arcade/epiar/ChangeLog,v 1.15 2010/07/08 13:13:07 nyhm Exp $
+
+*epiar-0.5-r1 (08 Jul 2010)
+
+  08 Jul 2010; Tristan Heaven <nyhm@gentoo.org> +epiar-0.5-r1.ebuild,
+  +files/epiar-0.5-paths.patch:
+  Fix segfault caused by our patch, bug #326861
 
   07 Jan 2010; Joseph Jezak <josejx@gentoo.org> epiar-0.5.ebuild:
-  Marked ppc stable for bug #295639.
+  Marked ppc stable for bug #294554.
 
   26 Nov 2009; Markus Meier <maekke@gentoo.org> epiar-0.5.ebuild:
   x86 stable, bug #294554
index 2f0a8824b47fcc01ce45d4f1a055ace121dc99af..94bbe212db714d34fdc40b97ce9511f47249d998 100644 (file)
@@ -4,14 +4,16 @@ Hash: SHA1
 AUX 0.5-gentoo-paths.patch 1710 RMD160 dc7b1435d8fc27d36fa5d7892f9c9b1b1aa52828 SHA1 aa509a701b9e8d0d13a2963984c184e2c03a512c SHA256 fc0a76176bf28b68a568c6bd8a4f6efebf4473ac095b83db8bf38f67d6434be5
 AUX epiar-0.5-Makefile.linux.patch 682 RMD160 a099c3bd9ac6a01031ac91d6a585f76a504d6aa9 SHA1 6cec7633589ee801d642f4a3b902bb03941f4c90 SHA256 ff81c159a228fa0ea37e472229752b726bd17bdb20e05542d10b3c6311b5207e
 AUX epiar-0.5-gcc41.patch 332 RMD160 c3039e2f47952264b0ec7d6c9ce81cbd75145f38 SHA1 740683d4c222ceaba21a4b98cf2461c8fffc5dad SHA256 d42c3b853ae9267cf6b7e5d2043bd2a7c7cf3975f3a52219ef7208b898104323
+AUX epiar-0.5-paths.patch 2195 RMD160 1173294c407c3100f47a1ea67f6b5d7b2587c9df SHA1 b14f260acafc83ed8ed658e023a7eef61f9db14a SHA256 9f23077e8efc4a741414dc3f8692681f570fc129a7e47cc9904e75b790890831
 DIST epiar-0.5.0-src.zip 8809392 RMD160 5e4d827784ede521156bb1d637fd9af5e9cf07eb SHA1 a23fc30bed38a6685d8808c523cde2bc51ba8d1c SHA256 ec81babd5e5149d1104264fe218bebf83b84e1819c50066d17f71fb2184b21a4
+EBUILD epiar-0.5-r1.ebuild 1245 RMD160 7940e78546ccf2584bc82f37563da983bbf603e3 SHA1 8cdb8f742f6ba4eeaf7eb3628c661e86e5a09446 SHA256 1c7b6da0f2ba6861d2ae2f4cf6380be96d3a1ca5e4c73afb76fe4e5ac3cc6b7e
 EBUILD epiar-0.5.ebuild 1324 RMD160 2c770e83f9b158615f3ca1b139cc806751e88171 SHA1 e1f8d98c82e66fd767883cca8c0f27f6c587809f SHA256 2a4deeab25af758d012a9779f77c4fe875f06410af0c7648a23a3fabafad1bbd
-MISC ChangeLog 1671 RMD160 ab63b50e07cb1dc91bec61bf6a8e766a7a3a7bda SHA1 8ade70ff5e8370e647d6a391a0aee81c66ff827d SHA256 ab00dc49768de410f7681a03ea2f173c9ecd0e625121972b1e1bc3291c4e8e49
+MISC ChangeLog 1849 RMD160 1167d0b9ca5e4bb5f69d8e8c7b90cf272625c9e7 SHA1 b21c10dc1bde78b760e6de5811809b0c51dab0cb SHA256 3e00888b41f06993ccfe947867e786411d06bd1076d6474a9dd48eaf9a3be106
 MISC metadata.xml 652 RMD160 7335260707b67f833cf4e750370c37d712e4779c SHA1 c81cff514e2d3304eca2639f446f91ef067036c4 SHA256 9f8b08a2b1c1ffd922168a1de3586d3b5ad2aea2ec2a4a4dc91ab7a43b6a71a5
 -----BEGIN PGP SIGNATURE-----
-Version: GnuPG v2.0.11 (GNU/Linux)
+Version: GnuPG v2.0.15 (GNU/Linux)
 
-iEYEARECAAYFAktGVysACgkQcsIHjyDViGRyrgCgkERcqpE4kLLUunQqX7HuCYvm
-/igAnjFd3uxVfgu3u/6XYI1Tb9As8XDN
-=dlLq
+iEYEARECAAYFAkw1zukACgkQdz7hIScOURHVrgCfdJpJ0V+2F5RIjSG079/yxHPt
+PckAn13QRiiPEEjdsMDsdJZEjk6qCaes
+=sPJP
 -----END PGP SIGNATURE-----
diff --git a/games-arcade/epiar/epiar-0.5-r1.ebuild b/games-arcade/epiar/epiar-0.5-r1.ebuild
new file mode 100644 (file)
index 0000000..828a6cb
--- /dev/null
@@ -0,0 +1,52 @@
+# Copyright 1999-2010 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/games-arcade/epiar/epiar-0.5-r1.ebuild,v 1.1 2010/07/08 13:13:07 nyhm Exp $
+
+EAPI=2
+inherit flag-o-matic eutils games
+
+DESCRIPTION="A space adventure/combat game"
+HOMEPAGE="http://epiar.net/"
+SRC_URI="mirror://sourceforge/epiar/${P}.0-src.zip"
+
+LICENSE="GPL-2 LGPL-2.1"
+SLOT="0"
+KEYWORDS="~ppc ~x86 ~x86-fbsd"
+IUSE=""
+
+RDEPEND="media-libs/libsdl[video]
+       media-libs/sdl-image[png]"
+DEPEND="${RDEPEND}
+       x11-libs/libX11
+       virtual/opengl
+       app-arch/unzip"
+
+S=${WORKDIR}
+
+src_prepare() {
+       sed -i \
+               -e "/^CFLAGS/s:-pg -g:${CFLAGS} ${LDFLAGS}:" \
+               Makefile.linux \
+               || die "sed failed"
+       epatch \
+               "${FILESDIR}"/${P}-paths.patch \
+               "${FILESDIR}"/${P}-gcc41.patch \
+               "${FILESDIR}"/${P}-Makefile.linux.patch
+       sed -i \
+               -e "s:GENTOO_DATADIR:${GAMES_DATADIR}/${PN}/:" \
+               src/main.c \
+               || die "sed failed"
+}
+
+src_compile() {
+       emake -f Makefile.linux || die "emake failed"
+}
+
+src_install() {
+       dogamesbin epiar || die "dogamesbin failed"
+       insinto "${GAMES_DATADIR}"/${PN}
+       doins -r missions *.eaf || die "doins failed"
+       keepdir "${GAMES_DATADIR}"/${PN}/plugins
+       dodoc AUTHORS ChangeLog README
+       prepgamesdirs
+}
diff --git a/games-arcade/epiar/files/epiar-0.5-paths.patch b/games-arcade/epiar/files/epiar-0.5-paths.patch
new file mode 100644 (file)
index 0000000..41266c7
--- /dev/null
@@ -0,0 +1,86 @@
+--- src/input/input.c
++++ src/input/input.c
+@@ -240,7 +240,10 @@
+ *\r
+ ******************************************************************************/\r
+ int load_input_cfg(void) {\r
+-      FILE *fp = fopen("./.epiar-input.ecf", "rb");\r
++      char filename[PATH_MAX];
++      FILE *fp;
++      snprintf(filename, sizeof(filename), "%s/.epiar-input.ecf", getenv("HOME"));
++      fp = fopen(filename, "rb");\r
+ \r
+       /* make sure all keys are enabled */\r
+       unlock_keys();\r
+@@ -282,7 +285,7 @@
+       } else {\r
+               float file_version = 0.0f;\r
+               /* read the file into the struct */\r
+-              fp = fopen("./.epiar-input.ecf", "rb");\r
++              fp = fopen(filename, "rb");\r
+ \r
+               if (fp == NULL) {\r
+                       fprintf(stdout, "Could not open \"./.epiar-input.ecf\" for reading, assuming default bindings.\n");\r
+@@ -472,10 +475,12 @@
+ }\r
+ \r
+ void save_keybindings(void) {\r
++      char filename[PATH_MAX];
+       float file_version = 0.2f;\r
+       FILE *fp;\r
+ \r
+-      fp = fopen("./.epiar-input.ecf", "wb");\r
++      snprintf(filename, sizeof(filename), "%s/.epiar-input.ecf", getenv("HOME"));
++      fp = fopen(filename, "wb");\r
+       if (fp == NULL) {\r
+               fprintf(stdout, "Could not create '~/.epiar-input.ecf' to save keybindings\n");\r
+               return;\r
+--- src/main.c
++++ src/main.c
+@@ -16,7 +16,7 @@
+ unsigned char view_mode = 0;\r
+ int ship_to_follow = 0;\r
+ int desired_bpp = 16;\r
+-char *game_path;\r
++const char * const game_path = "GENTOO_DATADIR";\r
+ unsigned char use_ogl = 0;\r
+ unsigned char skip_intro = 0;\r
+ FILE *epiar_eaf = NULL, *main_eaf = NULL;\r
+@@ -78,8 +78,6 @@
+ \r
+       parse_commandline(argc, argv);\r
+ \r
+-      get_absolute_path(argv[0]);\r
+-\r
+       init(desired_bpp);\r
+ \r
+       menu();\r
+--- src/main.h
++++ src/main.h
+@@ -1,2 +1,2 @@
+ extern char epiar_version[6];\r
+-extern char *game_path;\r
++extern const char * const game_path;\r
+--- src/system/init.c
++++ src/system/init.c
+@@ -89,9 +89,6 @@
+               main_eaf = NULL;\r
+       }\r
+ \r
+-      assert(game_path != NULL);\r
+-      free(game_path);\r
+-      game_path = NULL;\r
+ \r
+       if (average_loop_time == 0) average_loop_time = 18; /* in case they quit on menu */\r
+ #ifndef NDEBUG\r
+--- src/system/path.c
++++ src/system/path.c
+@@ -45,7 +45,7 @@
+ }\r
+ #endif\r
+ \r
+-#ifdef LINUX\r
++#if 0\r
+ char *strip_path_of_binary(char *argv) {\r
+       int len = 0, i, blen = 0;\r
+       char *stripped = NULL;\r