summaryrefslogtreecommitdiff
path: root/games-misc/yadex
diff options
context:
space:
mode:
Diffstat (limited to 'games-misc/yadex')
-rw-r--r--games-misc/yadex/Manifest13
-rw-r--r--games-misc/yadex/files/yadex-1.7.0-64bit.patch161
-rw-r--r--games-misc/yadex/files/yadex-1.7.0-datadir.patch55
-rw-r--r--games-misc/yadex/files/yadex-1.7.0-destdir.patch36
-rw-r--r--games-misc/yadex/files/yadex-1.7.0-elif.patch4
-rw-r--r--games-misc/yadex/files/yadex_170-obj-overflow.patch22
-rw-r--r--games-misc/yadex/files/yadex_170_O2.patch14
-rw-r--r--games-misc/yadex/files/yadex_170_wm.patch49
-rw-r--r--games-misc/yadex/yadex-1.7.0-r1.ebuild61
-rw-r--r--games-misc/yadex/yadex-1.7.0.ebuild51
10 files changed, 411 insertions, 55 deletions
diff --git a/games-misc/yadex/Manifest b/games-misc/yadex/Manifest
index 4bc010cb78d6..f594e0c0ebc7 100644
--- a/games-misc/yadex/Manifest
+++ b/games-misc/yadex/Manifest
@@ -1,5 +1,14 @@
+AUX yadex-1.7.0-64bit.patch 6085 BLAKE2B 1df8487ca4e67be00bd7c1f2dc9d503438898d00fddbad82cc898379cf09d065509c524839d3d696d4cb868eda09de2953987989ea46c2fca07878d8b72da0e7 SHA512 9bfd6d4a898ea098faf4b1f28f19f6a53d17845ddb0b65e013138c5d90e72a0d4abedb7efe2a066e92345cbb7f8f51a903dc2cefedb8286cec1b6dff0bca555d
AUX yadex-1.7.0-NULL-is-not-zero.patch 406 BLAKE2B b526bbeb768f49024059beb56270a1ff1c975ed035583b95a2dcb1e70229041da88b086e27f61f5f9604f9e0019f8c6bf3740685e859a704ed5c7dafcfe64d3a SHA512 874fb952496bf87fbe7c2d4e8a2260a0b01841c4e52c9ec40290e2dcef782bbf3618228ff2284dbd0bc4c5bdcac8ac41ebda050a310962ab905b456a4232e4de
-AUX yadex-1.7.0-elif.patch 360 BLAKE2B 1693d8b1f7a1980522ed8c38d07e8000859b0ad9b70c2de4308f5fed185ac4e6f2b78ac2b6876b5cc1aea7dfc1b88701ca1160f9054be02880d7b56d1db9321b SHA512 76020ba5b03bc188479081006f6f3a587d9d17e03a3c38e6d76d4e6571dd9625f81ef6510d58526f7ca15ce4eed2ccfae3ec8b63ff37aedccca91c3723858e70
+AUX yadex-1.7.0-datadir.patch 2284 BLAKE2B 6e6c1f365959549f4d25d8414de23a290da9b469fd1239b3d13e3ab71766971adea7ef226c2cabd59c31315257148ef2dbd19d20f674bfd0ddcdd398a92013a0 SHA512 3178de8d4500aad849c7527cf3baec045f6f9b4028b0b8263f86bc55337b9048f562bae12d8650b7da1be79b2210382fca1e1d3124e6a3e4d9398d9b3139c744
+AUX yadex-1.7.0-destdir.patch 1652 BLAKE2B ef193ec637e5681de4d7614c285812e0c5091008cb548d40d872b4fdd0e44f6550e21bd95a4e0914979502f9ccc2da559d4b36c0a923d1681b3fcd7cf01fa70b SHA512 79cea41ad3a3a948df221c84c27314f85563c8d934513dc50f91a4bcd0d0d772dd42f33a28846b341e18e96b55ef8eafe273712dc3ff47f258017c99a87e51f1
+AUX yadex-1.7.0-elif.patch 364 BLAKE2B 40a888da9af747cf99819fa40a5f3885dd71005cc6d69b95f2e2629dce0d6fa6132a0a440e1a0921cee8b1ee6d61c3bf997f1bae433a7a0f74223f0ed4826a0f SHA512 ca03c8121c9f4689a1e39f3f5d1a37d0a31eddf9e38a507252dc974739ec74cf89cfd88d02b27fc6d02b5897d0e09769345c754e86e41cea598a3ba2e9ceaf4c
+AUX yadex_170-obj-overflow.patch 997 BLAKE2B 6542976c79aa3b369868fb5e9ebfa882b4309de7d467067868934c39e4023e5331e293a71642dcbc3de177a51f4bf5a13fe7157be8e62c6050feac4adb955868 SHA512 d05c56431a14a79abca3a0e2784edee71aa311e9eb78b516cc8a5e0efb2b0d20345c312b4bc9ba8b77bbc316948cea09b1d376475fe10c3fa83468cdd85c3783
+AUX yadex_170_O2.patch 573 BLAKE2B 758aa60ab6cbf6554933f844541f707fa0ac87220a259de8412c6362dde5a72e7e3592551e748e21cbeff381a53ab7dce5614291bf7f20e5a54752a80efae3de SHA512 30f986ef0744e26c043b1221d06bb3f7ec63a2e553ce1de85ac4f38c2ec50e5dbb3cb32bedf396b44d932b683698263c6b3f5d990fa46206805bfbffee71edbc
+AUX yadex_170_wm.patch 2131 BLAKE2B 3331adc1f62f6dfaba8313e91bb8382bf438f229708063b718cc3423068034bfadb229b352f2a3ea02760c521aef854a92b4cb3608986f8c2042fd4d82d1c070 SHA512 1d378c8739b39d35484aff2ba51d24934e20126cca2d3a90e5a99628a9727759e864e484c850cacff1155dbce15ea0ec9984c9eb057871358131585312148ada
+DIST Yadex_170_ALL.diff 73652 BLAKE2B dfead81153d0674d70d6e27b27e5abf0f4834c1e10d874d2c6148b4715539646b1cdf7d65f669413f4814f65e838e1f7031f221ba0baa3f7b248305e3fbe0598 SHA512 0879fa5f62e395d53ee9a004b116fbc0180178f41099876d7fea159c9ced25a54218be787d155895e74707e70a2c2e48f752dcf86aec4d1a8f41f96e2bcbe279
+DIST yadex-1.7.0-mrmeval-differential-patch.patch 128529 BLAKE2B 500df2ed4173f39313416728a70e6fe2823ec604c8ab63076058944cfe83ba8a584276a77ee87a0ac46e635484a2215c96c068e0ee231698b683cb0c65c0f391 SHA512 4ec1d9c452db88dd42c145c04e2ec3f9958e7a462eaa14512cffb57ede1f263d375105917845f52e76e7eb171476d4f44bd95dd8615131ca9fdaf6e229cb53fc
DIST yadex-1.7.0.tar.gz 551318 BLAKE2B c5655c190466419505691762bb6b6641a61f68d80bc8a06f0e600a1e4a562b4989179400a2185104994971eeb55105e5f3691d6286c7431147b97cef0d00b3a2 SHA512 017f0ffc21b7b49e25e81a16c5badc3159f0b34954e278d658175da51b7ecf1e15e12579a244530afb10e133c890761d78c1f1a209a800887c145c5c1af5d317
-EBUILD yadex-1.7.0.ebuild 1161 BLAKE2B 6f26803f47fb11537929c5e4c93685a414844e0cc01f0c11dab4790651b26c0009d957c8c97fcd0e5a88a0a80cc76fc56792e7c0eb1d9e9bfd2e1a45d69bd120 SHA512 d50567ab5e334e11dac5b13d136b3d781490e27a0812f56cd1b7b27f004e37c0e7c63030d916fec4951e2c632f63f355b99036ef53b43c3c4099a386fbee5286
+DIST yadex.png 2229 BLAKE2B 4559d8b134b58231b062e18b0e151a952a42748c7b2ddc9db64fa6456a37b0f4839d92eae92dec66085b1ad5f46f3d50082cd9398cc68713fec431d3e3ee946c SHA512 290cee14dea91ca4fb618f00575351b77b7c63ec155256274f83707d1f457cf4e7a921803203c75b371dc688d2ee90890f943ce3744987840aa1c5e0b5d977ee
+EBUILD yadex-1.7.0-r1.ebuild 1506 BLAKE2B 7ff7c86c7fd161cdb3eebc25fbc7b3b12a98ba059243ba6b12659ac4d93663880d8785eb60078fdfa5d3249c8f7f65e01cc9bffc07ebe335dd5b73728d7e1ad5 SHA512 44f1a82537cdb1dd026ae13bb596f8348458ed31a6464ce32744d054eeac9064bff675fe2dd6abc5118fe4ce8873c5b40d525dbfa6eaeb4be8514f0d80541ae4
MISC metadata.xml 249 BLAKE2B 7113a758d7abc93accec998a8843d8ef51ca8b72d72e659e224d5cec2a1a6a63e6c0605958091532ac6e51fa0d501ca4fd9f3f4a9e55baeb31519a02971b465f SHA512 895577c3a805c40581da03057b94e3f28f05f23012bf350c1e3575847d1a0fe40bb044a46f909012a200d991a400f6389358a60e9c2b5bef0da01fb26f846118
diff --git a/games-misc/yadex/files/yadex-1.7.0-64bit.patch b/games-misc/yadex/files/yadex-1.7.0-64bit.patch
new file mode 100644
index 000000000000..7f6b84216e5a
--- /dev/null
+++ b/games-misc/yadex/files/yadex-1.7.0-64bit.patch
@@ -0,0 +1,161 @@
+diff -Naur yadex-1.7.0/GNUmakefile yadex-1.7.0.new/GNUmakefile
+--- yadex-1.7.0/GNUmakefile 2006-03-16 20:33:36.000000000 -0800
++++ yadex-1.7.0.new/GNUmakefile 2006-03-16 18:37:50.000000000 -0800
+@@ -53,6 +53,7 @@
+
+ # Which OS ?
+ OS := $(shell uname -s | tr A-Z a-z)
++ARCH := $(shell uname -i | tr A-Z a-z)
+
+ # Where your X11 libraries and headers reside.
+ # Current rule:
+@@ -67,7 +68,11 @@
+ X11LIBDIR = /usr/openwin/lib
+ X11INCLUDEDIR = /usr/openwin/include
+ else
+- X11LIBDIR = /usr/X11R6/lib
++ ifeq ($(findstring $(ARCH), x86_64), $(ARCH))
++ X11LIBDIR = /usr/X11R6/lib64
++ else
++ X11LIBDIR = /usr/X11R6/lib
++ endif
+ X11INCLUDEDIR = /usr/X11R6/include
+ endif
+ endif
+diff -Naur yadex-1.7.0/src/levels.cc yadex-1.7.0.new/src/levels.cc
+--- yadex-1.7.0/src/levels.cc 2003-03-28 04:37:32.000000000 -0800
++++ yadex-1.7.0.new/src/levels.cc 2006-03-16 20:38:01.000000000 -0800
+@@ -1387,7 +1387,7 @@
+ }
+ NumWTexture = (int) val + 1;
+ /* read in the offsets for texture1 names */
+- offsets = (i32 *) GetMemory ((long) NumWTexture * 4);
++ offsets = (i32 *) GetMemory ((long) NumWTexture * (sizeof(i32)));
+ wf->read_i32 (offsets + 1, NumWTexture - 1);
+ if (wf->error ())
+ {
+@@ -1445,7 +1445,7 @@
+ }
+ NumWTexture = (int) val + 1;
+ /* read in the offsets for texture1 names */
+- offsets = (i32 *) GetMemory ((long) NumWTexture * 4);
++ offsets = (i32 *) GetMemory ((long) NumWTexture * sizeof(i32));
+ wf->read_i32 (offsets + 1, NumWTexture - 1);
+ {
+ // FIXME
+@@ -1489,7 +1489,7 @@
+ // FIXME
+ }
+ /* read in the offsets for texture2 names */
+- offsets = (i32 *) GetMemory ((long) val * 4);
++ offsets = (i32 *) GetMemory ((long) val * sizeof(i32));
+ wf->read_i32 (offsets, val);
+ if (wf->error ())
+ {
+diff -Naur yadex-1.7.0/src/pic2img.cc yadex-1.7.0.new/src/pic2img.cc
+--- yadex-1.7.0/src/pic2img.cc 2003-03-28 04:37:32.000000000 -0800
++++ yadex-1.7.0.new/src/pic2img.cc 2006-03-16 20:30:40.000000000 -0800
+@@ -192,7 +192,7 @@
+
+ ColumnData = (u8 *) GetMemory (TEX_COLUMNBUFFERSIZE);
+ /* FIXME DOS and pic_width_ > 16000 */
+-NeededOffsets = (i32 *) GetMemory ((long) pic_width_ * 4);
++NeededOffsets = (i32 *) GetMemory ((long) pic_width_ * (sizeof(i32)));
+
+ if (long_offsets)
+ dir->wadfile->read_i32 (NeededOffsets, pic_width_);
+diff -Naur yadex-1.7.0/src/r_images.cc yadex-1.7.0.new/src/r_images.cc
+--- yadex-1.7.0/src/r_images.cc 2006-03-16 20:33:12.000000000 -0800
++++ yadex-1.7.0.new/src/r_images.cc 2006-03-16 20:39:17.000000000 -0800
+@@ -182,7 +182,7 @@
+ dir->wadfile->seek (dir->dir.start);
+ dir->wadfile->read_i32 (&numtex);
+ /* read in the offsets for texture1 names and info. */
+- offsets = (i32 *) GetMemory ((long) numtex * 4);
++ offsets = (i32 *) GetMemory ((long) numtex * sizeof(i32));
+ dir->wadfile->read_i32 (offsets, numtex);
+ for (n = 0; n < numtex && !texofs; n++)
+ {
+@@ -205,7 +205,7 @@
+ dir->wadfile->seek (dir->dir.start);
+ dir->wadfile->read_i32 (&numtex);
+ /* read in the offsets for texture1 names and info. */
+- offsets = (i32 *) GetMemory ((long) numtex * 4);
++ offsets = (i32 *) GetMemory ((long) numtex * sizeof(i32));
+ dir->wadfile->read_i32 (offsets, numtex);
+ for (n = 0; n < numtex && !texofs; n++)
+ {
+@@ -225,7 +225,7 @@
+ dir->wadfile->seek (dir->dir.start);
+ dir->wadfile->read_i32 (&numtex);
+ /* read in the offsets for texture2 names */
+- offsets = (i32 *) GetMemory ((long) numtex * 4);
++ offsets = (i32 *) GetMemory ((long) numtex * sizeof(i32));
+ dir->wadfile->read_i32 (offsets, numtex);
+ for (n = 0; n < numtex && !texofs; n++)
+ {
+diff -Naur yadex-1.7.0/src/textures.cc yadex-1.7.0.new/src/textures.cc
+--- yadex-1.7.0/src/textures.cc 2003-04-24 13:50:36.000000000 -0700
++++ yadex-1.7.0.new/src/textures.cc 2006-03-16 20:38:44.000000000 -0800
+@@ -177,7 +177,7 @@
+ goto textures_done;
+ }
+ // Read in the offsets for texture1 names and info
+- offsets = (i32 *) GetMemory ((long) numtex * 4);
++ offsets = (i32 *) GetMemory ((long) numtex * sizeof(i32));
+ wf->read_i32 (offsets, numtex);
+ if (wf->error ())
+ {
+@@ -233,7 +233,7 @@
+ goto texture1_done;
+ }
+ // Read in the offsets for texture1 names and info
+- offsets = (i32 *) GetMemory ((long) numtex * 4);
++ offsets = (i32 *) GetMemory ((long) numtex * sizeof(i32));
+ wf->read_i32 (offsets, numtex);
+ if (wf->error ())
+ {
+@@ -286,7 +286,7 @@
+ goto texture2_done;
+ }
+ // Read in the offsets for TEXTURE2 names
+- offsets = (i32 *) GetMemory ((long) numtex * 4);
++ offsets = (i32 *) GetMemory ((long) numtex * sizeof(i32));
+ wf->read_i32 (offsets, numtex);
+ if (wf->error ())
+ {
+@@ -514,7 +514,7 @@
+ dir->wadfile->seek (dir->dir.start);
+ dir->wadfile->read_i32 (&numtex);
+ // Read in the offsets for texture1 names and info
+- offsets = (i32 *) GetMemory ((long) numtex * 4);
++ offsets = (i32 *) GetMemory ((long) numtex * sizeof(i32));
+ dir->wadfile->read_i32 (offsets, numtex);
+ for (n = 0; n < numtex && !texofs; n++)
+ {
+@@ -534,7 +534,7 @@
+ dir->wadfile->seek (dir->dir.start);
+ dir->wadfile->read_i32 (&numtex);
+ // Read in the offsets for texture2 names
+- offsets = (i32 *) GetMemory ((long) numtex * 4);
++ offsets = (i32 *) GetMemory ((long) numtex * sizeof(i32));
+ dir->wadfile->read_i32 (offsets);
+ for (n = 0; n < numtex && !texofs; n++)
+ {
+diff -Naur yadex-1.7.0/src/yadex.h yadex-1.7.0.new/src/yadex.h
+--- yadex-1.7.0/src/yadex.h 2006-03-16 20:33:12.000000000 -0800
++++ yadex-1.7.0.new/src/yadex.h 2006-03-16 20:29:15.000000000 -0800
+@@ -98,11 +98,11 @@
+ #define F_I16_D "hd"
+ #define F_I16_H "hX"
+
+-typedef unsigned long u32;
++typedef unsigned int u32;
+ #define F_U32_D "lu"
+ #define F_U32_H "lX"
+
+-typedef signed long i32;
++typedef signed int i32;
+ #define F_I32_D "ld"
+ #define F_I32_H "lX"
+
diff --git a/games-misc/yadex/files/yadex-1.7.0-datadir.patch b/games-misc/yadex/files/yadex-1.7.0-datadir.patch
new file mode 100644
index 000000000000..f7b2ab5fb7ef
--- /dev/null
+++ b/games-misc/yadex/files/yadex-1.7.0-datadir.patch
@@ -0,0 +1,55 @@
+diff -Naur yadex-1.7.0/configure yadex-1.7.0.new/configure
+--- yadex-1.7.0/configure 2006-03-16 18:49:20.000000000 -0800
++++ yadex-1.7.0.new/configure 2006-03-16 16:36:21.000000000 -0800
+@@ -408,16 +408,16 @@
+ ETCDIR=/etc/$APPNAME/%v
+ ETCDIRNV=/etc/$APPNAME
+ MANDIR=/usr/share/man
+- SHAREDIR=/usr/share/games/$APPNAME/%v
+- SHAREDIRNV=/usr/share/games/$APPNAME
++ SHAREDIR=/usr/share/$APPNAME/%v
++ SHAREDIRNV=/usr/share/$APPNAME
+ elif expr "$PREFIX" : '//*usr//*local/*$' >/dev/null
+ then
+ BINDIR=/usr/local/bin # FHS-ly correct is /usr/local/games
+ ETCDIR=/etc/$APPNAME/%v
+ ETCDIRNV=/etc/$APPNAME
+ MANDIR=/usr/local/man
+- SHAREDIR=/usr/local/share/games/$APPNAME/%v
+- SHAREDIRNV=/usr/local/share/games/$APPNAME
++ SHAREDIR=/usr/local/share/$APPNAME/%v
++ SHAREDIRNV=/usr/local/share/$APPNAME
+ elif expr "$PREFIX" : '//*opt/*$' >/dev/null
+ then
+ echo '/opt ? Surely you mean /opt/something, Mr. Feynman !' 1>&2
+diff -Naur yadex-1.7.0/yadex.cfg yadex-1.7.0.new/yadex.cfg
+--- yadex-1.7.0/yadex.cfg 2006-03-16 18:49:20.000000000 -0800
++++ yadex-1.7.0.new/yadex.cfg 2006-03-16 18:49:43.000000000 -0800
+@@ -20,16 +20,17 @@
+ # 9 doompr Doom press release pre-beta (/pub/idgames/historic/doomprbt.zip)
+ # 10 strife10 Strife 1.0 (demo or commercial)
+
+- iwad1 = /usr/local/share/games/doom/doom.wad
+- iwad2 = /usr/local/share/games/doom2/doom2.wad
+- iwad3 = /usr/local/share/games/heretic/heretic.wad
+- iwad4 = /usr/local/share/games/hexen/hexen.wad
+- iwad5 = /usr/local/share/games/strife/strife1.wad
+- iwad6 = /usr/local/share/games/doom02/doom.wad
+- iwad7 = /usr/local/share/games/doom04/doom.wad
+- iwad8 = /usr/local/share/games/doom05/doom.wad
+- iwad9 = /usr/local/share/games/doompr/doompres.wad
+- iwad10 = /usr/local/share/games/strife10/strife1.wad
++ iwad1 = /usr/share/doom/doom.wad
++# iwad2 = /usr/share/doom/doom2.wad
++ iwad2 = /usr/share/doom/freedoom.wad
++ iwad3 = /usr/share/doom/heretic.wad
++ iwad4 = /usr/share/doom/hexen.wad
++ iwad5 = /usr/share/doom/strife1.wad
++ iwad6 = /usr/share/doom/doom.wad
++ iwad7 = /usr/share/doom/doom.wad
++ iwad8 = /usr/share/doom/doom.wad
++ iwad9 = /usr/share/doom/doompres.wad
++ iwad10 = /usr/share/doom/strife1.wad
+
+ # Name of the patch wads you want to load. None by default.
+
diff --git a/games-misc/yadex/files/yadex-1.7.0-destdir.patch b/games-misc/yadex/files/yadex-1.7.0-destdir.patch
new file mode 100644
index 000000000000..a1f430c4bd9f
--- /dev/null
+++ b/games-misc/yadex/files/yadex-1.7.0-destdir.patch
@@ -0,0 +1,36 @@
+diff -Naur yadex-1.7.0/GNUmakefile yadex-1.7.0.new/GNUmakefile
+--- yadex-1.7.0/GNUmakefile 2006-03-16 16:08:10.000000000 -0800
++++ yadex-1.7.0.new/GNUmakefile 2006-03-16 16:11:32.000000000 -0800
+@@ -392,19 +392,19 @@
+
+ .PHONY: install
+ install: $(OBJDIR)/install
+- @scripts/mkinstalldirs $(BINDIR)
+- @scripts/mkinstalldirs $(ETCDIR)
+- @scripts/mkinstalldirs $(MANDIR)
+- @scripts/mkinstalldirs $(MANDIR)/man6
+- @scripts/mkinstalldirs $(SHAREDIR)
+- $(OBJDIR)/install -m 755 $(OBJDIR)/yadex $(BINDIR)/yadex-$(VERSION)
+- rm -f $(BINDIR)/yadex
+- ln -s yadex-$(VERSION) $(BINDIR)/yadex
+- $(OBJDIR)/install -m 644 doc/yadex.6 $(MANDIR)/man6/yadex-$(VERSION).6
+- rm -f $(MANDIR)/man6/yadex.6
+- ln -s yadex-$(VERSION).6 $(MANDIR)/man6/yadex.6
+- $(OBJDIR)/install -m 644 -d $(SHAREDIR) $(YGD)
+- $(OBJDIR)/install -m 644 -d $(ETCDIR) yadex.cfg
++ @scripts/mkinstalldirs $(DESTDIR)$(BINDIR)
++ @scripts/mkinstalldirs $(DESTDIR)$(ETCDIR)
++ @scripts/mkinstalldirs $(DESTDIR)$(MANDIR)
++ @scripts/mkinstalldirs $(DESTDIR)$(MANDIR)/man6
++ @scripts/mkinstalldirs $(DESTDIR)$(SHAREDIR)
++ $(OBJDIR)/install -m 755 $(OBJDIR)/yadex $(DESTDIR)$(BINDIR)/yadex-$(VERSION)
++ rm -f $(DESTDIR)$(BINDIR)/yadex
++ ln -s yadex-$(VERSION) $(DESTDIR)$(BINDIR)/yadex
++ $(OBJDIR)/install -m 644 doc/yadex.6 $(DESTDIR)$(MANDIR)/man6/yadex-$(VERSION).6
++ rm -f $(DESTDIR)$(MANDIR)/man6/yadex.6
++ ln -s yadex-$(VERSION).6 $(DESTDIR)$(MANDIR)/man6/yadex.6
++ $(OBJDIR)/install -m 644 -d $(DESTDIR)$(SHAREDIR) $(YGD)
++ $(OBJDIR)/install -m 644 -d $(DESTDIR)$(ETCDIR) yadex.cfg
+ @echo "---------------------------------------------------------------"
+ @echo " Yadex is now installed."
+ @echo
diff --git a/games-misc/yadex/files/yadex-1.7.0-elif.patch b/games-misc/yadex/files/yadex-1.7.0-elif.patch
index a170cbe0ad77..6674d5becdc2 100644
--- a/games-misc/yadex/files/yadex-1.7.0-elif.patch
+++ b/games-misc/yadex/files/yadex-1.7.0-elif.patch
@@ -1,5 +1,5 @@
---- src/gfx.cc.old 2009-08-01 18:47:46.000000000 +0200
-+++ src/gfx.cc 2009-08-01 18:46:03.000000000 +0200
+--- a/src/gfx.cc.old 2009-08-01 18:47:46.000000000 +0200
++++ b/src/gfx.cc 2009-08-01 18:46:03.000000000 +0200
@@ -310,7 +310,7 @@
win_vis_id = vis_info->visualid;
#if defined _cplusplus || defined __cplusplus
diff --git a/games-misc/yadex/files/yadex_170-obj-overflow.patch b/games-misc/yadex/files/yadex_170-obj-overflow.patch
new file mode 100644
index 000000000000..aba86f1e0e0e
--- /dev/null
+++ b/games-misc/yadex/files/yadex_170-obj-overflow.patch
@@ -0,0 +1,22 @@
+--- yadex-1.7.0/src/objects.cc 2003-03-28 06:37:32.000000000 -0600
++++ yadex-1.7.0/src/objects.cc 2010-05-06 11:42:36.824661556 -0500
+@@ -543,7 +543,7 @@
+ SideDefs[last].yoff = 0;
+ strcpy (SideDefs[last].tex1, "-");
+ strcpy (SideDefs[last].tex2, "-");
+- strcpy (SideDefs[last].tex3, default_middle_texture);
++ strncpy (SideDefs[last].tex3, default_middle_texture, sizeof(SideDefs[last].tex3));
+ SideDefs[last].sector = NumSectors - 1;
+ }
+ MadeMapChanges = 1;
+--- yadex-1.7.0/src/editobj.cc 2003-04-24 15:32:39.000000000 -0500
++++ yadex-1.7.0/src/editobj.cc 2010-05-07 16:36:49.825412601 -0500
+@@ -937,7 +937,7 @@
+ struct SideDef *s = SideDefs + l->sidedef1;
+ strcpy (s->tex1, "-");
+ strcpy (s->tex2, "-");
+- strcpy (s->tex3, default_middle_texture);
++ strncpy (s->tex3, default_middle_texture, sizeof(s->tex3));
+ }
+ /* Don't delete the 2nd sidedef, it could be used
+ by another linedef. And if it isn't, the next
diff --git a/games-misc/yadex/files/yadex_170_O2.patch b/games-misc/yadex/files/yadex_170_O2.patch
new file mode 100644
index 000000000000..5ef90ca94253
--- /dev/null
+++ b/games-misc/yadex/files/yadex_170_O2.patch
@@ -0,0 +1,14 @@
+diff -dupr yadex-1.7.901-patched/src/pic2img.cc yadex-1.7.901/src/pic2img.cc
+--- yadex-1.7.901-patched/src/pic2img.cc 2006-11-06 17:35:03.000000000 +0100
++++ yadex-1.7.901/src/pic2img.cc 2015-11-24 09:54:25.578048649 +0100
+@@ -92,9 +92,9 @@ uint8_t *buf; /* This variable is s
+ should be pasted. It can be off the image buffer! */
+
+ // Locate the lump where the picture is
++ MasterDirectory dirbuf;
+ if (picloc.wad != 0)
+ {
+- MasterDirectory dirbuf;
+ dirbuf.wadfile = picloc.wad;
+ dirbuf.dir.start = picloc.ofs;
+ dirbuf.dir.size = picloc.len;
diff --git a/games-misc/yadex/files/yadex_170_wm.patch b/games-misc/yadex/files/yadex_170_wm.patch
new file mode 100644
index 000000000000..88006a28a2d4
--- /dev/null
+++ b/games-misc/yadex/files/yadex_170_wm.patch
@@ -0,0 +1,49 @@
+diff -dupr yadex-1.7.901-patched/src/gfx.cc yadex-1.7.901/src/gfx.cc
+--- yadex-1.7.901-patched/src/gfx.cc 2015-11-23 15:53:56.087783740 +0100
++++ yadex-1.7.901/src/gfx.cc 2015-11-23 22:17:45.876127582 +0100
+@@ -114,6 +114,7 @@ int win_depth; // The depth of win
+ int x_server_big_endian = 0; // Is the X server big endian ?
+ int ximage_bpp; // Number of bytes per pixels in XImages
+ int ximage_quantum;// Pad XImages lines to a multiple of that many bytes
++Atom wm_delete;
+ static pcolour_t *app_colour = 0; // Pixel values for the app. colours
+ static int DrawingMode = 0; // 0 = copy, 1 = xor
+ static int LineThickness = 0; // 0 = thin, 1 = thick
+@@ -471,6 +472,10 @@ int InitGfx (void)
+ | ExposureMask
+ | StructureNotifyMask);
+
++ // register for message from window manager if the window is closed
++ wm_delete = XInternAtom(dpy, "WM_DELETE_WINDOW", False);
++ XSetWMProtocols(dpy, win, &wm_delete, 1);
++
+ /*
+ * Possibly load and query the font
+ */
+diff -dupr yadex-1.7.901-patched/src/gfx.h yadex-1.7.901/src/gfx.h
+--- yadex-1.7.901-patched/src/gfx.h 2005-02-06 10:45:21.000000000 +0100
++++ yadex-1.7.901/src/gfx.h 2015-11-23 22:16:10.674721105 +0100
+@@ -96,6 +96,7 @@ extern int win_bpp; // The depth of
+ extern int x_server_big_endian; // Is the X server big-endian ?
+ extern int ximage_bpp; // Number of bytes per pixels in XImages
+ extern int ximage_quantum; // Pad XImage lines to a mult of that many B.
++extern Atom wm_delete;
+ #endif // ifdef X_PROTOCOL
+ #endif // ifdef Y_X11
+ extern int text_dot; // DrawScreenText()/DrawScreenString() debug flag
+diff -dupr yadex-1.7.901-patched/src/input.cc yadex-1.7.901/src/input.cc
+--- yadex-1.7.901-patched/src/input.cc 2006-11-03 14:49:01.000000000 +0100
++++ yadex-1.7.901/src/input.cc 2015-11-23 22:15:21.398133938 +0100
+@@ -413,6 +413,12 @@ switch (ev.type)
+ }
+ #endif
+ break;
++
++ case ClientMessage:
++ if ((Atom)ev.xclient.data.l[0] == wm_delete)
++ // window has been closed, simulate ESC keypress
++ is.key = YK_ESC;
++ break;
+ }
+ } /* switch (ev.type) */
+ }
diff --git a/games-misc/yadex/yadex-1.7.0-r1.ebuild b/games-misc/yadex/yadex-1.7.0-r1.ebuild
new file mode 100644
index 000000000000..6cbfd87a8ed0
--- /dev/null
+++ b/games-misc/yadex/yadex-1.7.0-r1.ebuild
@@ -0,0 +1,61 @@
+# Copyright 1999-2018 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+inherit desktop toolchain-funcs
+
+DESCRIPTION="A Doom level (wad) editor"
+HOMEPAGE="http://www.teaser.fr/~amajorel/yadex/"
+SRC_URI="http://www.teaser.fr/~amajorel/yadex/${P}.tar.gz
+ http://www.teaser.fr/~amajorel/yadex/logo_small.png -> ${PN}.png
+ http://glbsp.sourceforge.net/yadex/Yadex_170_ALL.diff
+ https://dev.gentoo.org/~pacho/${PN}/${P}-mrmeval-differential-patch.patch
+"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+RESTRICT="test"
+
+DEPEND="x11-libs/libX11"
+RDEPEND="${DEPEND}
+ games-fps/freedoom
+"
+
+src_prepare() {
+ default
+
+ eapply "${DISTDIR}"/Yadex_170_ALL.diff
+ eapply "${DISTDIR}"/${P}-mrmeval-differential-patch.patch
+ eapply "${FILESDIR}"/*.patch
+
+ # Remove bundled boost
+ rm -rf boost/
+ # Force the patched file to be old, otherwise the compile fails
+ touch -t 197010101010 "${S}"/src/wadlist.cc
+ touch -t 197010101010 "${S}"/src/gfx.cc
+}
+
+src_configure() {
+ tc-export CC CXX LD AR RANLIB
+ # not an autoconf script
+ ./configure --prefix="/usr" || die "configure failed"
+}
+
+src_compile() {
+ emake CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS} -std=gnu++03"
+}
+
+src_install() {
+ dobin obj/0/yadex
+ insinto "/usr/share/${PN}/${PV}"
+ doins ygd/*
+ doman doc/yadex.6
+ HTML_DOCS="docsrc/" einstalldocs
+ insinto /etc/yadex/${PV}
+ doins yadex.cfg
+
+ make_desktop_entry "yadex -i2 /usr/share/doom-data/freedoom/freedm.wad"
+ doicon "${DISTDIR}"/${PN}.png
+}
diff --git a/games-misc/yadex/yadex-1.7.0.ebuild b/games-misc/yadex/yadex-1.7.0.ebuild
deleted file mode 100644
index 306f0a38eae5..000000000000
--- a/games-misc/yadex/yadex-1.7.0.ebuild
+++ /dev/null
@@ -1,51 +0,0 @@
-# Copyright 1999-2015 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=5
-inherit eutils games
-
-DESCRIPTION="A Doom level (wad) editor"
-HOMEPAGE="http://www.teaser.fr/~amajorel/yadex/"
-SRC_URI="http://www.teaser.fr/~amajorel/yadex/${P}.tar.gz"
-
-LICENSE="GPL-2"
-SLOT="0"
-KEYWORDS="~x86"
-IUSE=""
-RESTRICT="test"
-
-DEPEND="x11-libs/libX11"
-RDEPEND="${DEPEND}"
-
-src_prepare() {
- sed -i \
- -e '/iwad/s/local\///' \
- "${S}"/yadex.cfg \
- || die "sed yadex.cfg failed"
- epatch "${FILESDIR}/${P}"-NULL-is-not-zero.patch \
- "${FILESDIR}/${P}"-elif.patch
- # Force the patched file to be old, otherwise the compile fails
- touch -t 197010101010 "${S}"/src/wadlist.cc
- touch -t 197010101010 "${S}"/src/gfx.cc
-}
-
-src_configure() {
- # not an autoconf script
- ./configure --prefix="/usr" || die "configure failed"
-}
-
-src_compile() {
- emake CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}"
-}
-
-src_install() {
- dogamesbin obj/0/yadex
- insinto "${GAMES_DATADIR}/${PN}/${PV}"
- doins ygd/*
- doman doc/yadex.6
- dodoc CHANGES FAQ README TODO VERSION
- dohtml doc/*
- insinto /etc/yadex/${PV}
- doins yadex.cfg
- prepgamesdirs
-}