games-engines/odamex: Version bump to 0.8.2
authorWilliam Breathitt Gray <vilhelm.gray@gmail.com>
Sun, 5 Apr 2020 00:34:08 +0000 (20:34 -0400)
committerJames Le Cuirot <chewi@gentoo.org>
Wed, 8 Apr 2020 22:43:38 +0000 (23:43 +0100)
Closes: https://bugs.gentoo.org/716238
Signed-off-by: William Breathitt Gray <vilhelm.gray@gmail.com>
Closes: https://github.com/gentoo/gentoo/pull/15268
Signed-off-by: James Le Cuirot <chewi@gentoo.org>
games-engines/odamex/Manifest
games-engines/odamex/files/odamex-0.8.2-Fix-odamex.wad-build-flow.patch [new file with mode: 0644]
games-engines/odamex/files/odamex-0.8.2-Remove-duplicate-build-rule-for-odamex.wad.patch [new file with mode: 0644]
games-engines/odamex/metadata.xml
games-engines/odamex/odamex-0.8.2.ebuild [new file with mode: 0644]

index 26a10f206ce984afa79a2aa7b57192927068b79c..f7cb0fefbc617f270574ba7249f8454c0e51b8d6 100644 (file)
@@ -1 +1,2 @@
+DIST odamex-src-0.8.2.tar.bz2 8502115 BLAKE2B bf4acaea1c9ce81966886bdfef35d361f84dab02e32ec4fd11fe8d250b76c6ca86c0b2870f38382961949713059a2944eea50c6f4d05a41411799386ab3acc64 SHA512 bb3e2427ede7267afce8bb2b852eed3f8d2ed9cf17c5b15a264d6821d170c49dccea06ea0742d9dc7cfe42518701342572689b57ec6712f4b818bd0e25b436c8
 DIST odamex-src-0.8.1.tar.bz2 8520197 BLAKE2B 9744460f2a2bff375cbf80416a38212e7576a4ef6874d2647c1371dc66b464666d67dd69ac61c918c51bee6da0150cbb70799eb81fc2fd7ff62edaec332241a5 SHA512 5cdd05df9683c9b26cac5e2947f5365405b0c6239890d89ab962f4ac088788148bb1eabc15e80b0f13fca0dea69bffcd9e80e8aa80c6ac0a5d7e63b0bd983642
diff --git a/games-engines/odamex/files/odamex-0.8.2-Fix-odamex.wad-build-flow.patch b/games-engines/odamex/files/odamex-0.8.2-Fix-odamex.wad-build-flow.patch
new file mode 100644 (file)
index 0000000..e90617c
--- /dev/null
@@ -0,0 +1,71 @@
+From 03581f45a3563d3d79075fe0e85e6fb52e864b76 Mon Sep 17 00:00:00 2001
+From: William Breathitt Gray <vilhelm.gray@gmail.com>
+Date: Sat, 4 Apr 2020 22:38:26 -0400
+Subject: [PATCH] Fix odamex.wad build flow
+
+The odamex.wad file should be built in the proper build directory;
+building in the source tree confuses CMake and causes it to attempt to
+rebuild a second time. This patch also removes odawad dependency for the
+Odamex client and server executables.
+---
+ wad/CMakeLists.txt | 40 ++++++++++++++++++++++------------------
+ 1 file changed, 22 insertions(+), 18 deletions(-)
+
+diff --git a/wad/CMakeLists.txt b/wad/CMakeLists.txt
+index c09b0d1a..349ce0df 100644
+--- a/wad/CMakeLists.txt
++++ b/wad/CMakeLists.txt
+@@ -4,28 +4,32 @@ find_program(DEUTEX deutex)
+ if(DEUTEX)
+       message("Found DeuTex: ${DEUTEX}")
+-      file(REMOVE odamex.wad)
+-      add_custom_command(OUTPUT odamex.wad
+-              COMMAND ${DEUTEX} -rgb 0 255 255 -doom2 bootstrap -build wadinfo.txt odamex.wad
++      add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/odamex.wad
++              COMMAND ${DEUTEX} -rgb 0 255 255 -doom2 bootstrap -build wadinfo.txt ${CMAKE_CURRENT_BINARY_DIR}/odamex.wad
+               WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
++              BYPRODUCTS ${CMAKE_CURRENT_BINARY_DIR}/odamex.wad
+               VERBATIM)
+-      add_custom_target(odawad DEPENDS odamex.wad)
++      add_custom_target(odawad ALL
++              DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/odamex.wad)
+-      if(BUILD_CLIENT)
+-        add_dependencies(odamex odawad)
++      if(WIN32)
++              install(FILES ${CMAKE_CURRENT_BINARY_DIR}/odamex.wad
++                      DESTINATION .
++                      COMPONENT common)
++      else()
++              install(FILES ${CMAKE_CURRENT_BINARY_DIR}/odamex.wad
++                      DESTINATION ${CMAKE_INSTALL_DATADIR}/odamex
++                      COMPONENT common)
+       endif()
+-      if(BUILD_SERVER)
+-        add_dependencies(odasrv odawad)
+-      endif()
+-endif()
+-
+-if(WIN32)
+-      install(FILES odamex.wad
+-              DESTINATION .
+-              COMPONENT common)
+ else()
+-      install(FILES odamex.wad
+-              DESTINATION ${CMAKE_INSTALL_DATADIR}/odamex
+-              COMPONENT common)
++      if(WIN32)
++              install(FILES odamex.wad
++                      DESTINATION .
++                      COMPONENT common)
++      else()
++              install(FILES odamex.wad
++                      DESTINATION ${CMAKE_INSTALL_DATADIR}/odamex
++                      COMPONENT common)
++      endif()
+ endif()
+-- 
+2.26.0
+
diff --git a/games-engines/odamex/files/odamex-0.8.2-Remove-duplicate-build-rule-for-odamex.wad.patch b/games-engines/odamex/files/odamex-0.8.2-Remove-duplicate-build-rule-for-odamex.wad.patch
new file mode 100644 (file)
index 0000000..1b1bcf5
--- /dev/null
@@ -0,0 +1,26 @@
+From 2d80f79770f43d19e1af2c7b04a41078b860a46a Mon Sep 17 00:00:00 2001
+From: William Breathitt Gray <vilhelm.gray@gmail.com>
+Date: Wed, 8 Apr 2020 11:47:45 -0400
+Subject: [PATCH] Remove duplicate build rule for odamex.wad
+
+The odamex.wad file shouldn't be listed in BYPRODUCTS because it's
+already listed as the OUTPUT of the add_custom_command.
+---
+ wad/CMakeLists.txt | 1 -
+ 1 file changed, 1 deletion(-)
+
+diff --git a/wad/CMakeLists.txt b/wad/CMakeLists.txt
+index 349ce0df..7b948ea3 100644
+--- a/wad/CMakeLists.txt
++++ b/wad/CMakeLists.txt
+@@ -7,7 +7,6 @@ if(DEUTEX)
+       add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/odamex.wad
+               COMMAND ${DEUTEX} -rgb 0 255 255 -doom2 bootstrap -build wadinfo.txt ${CMAKE_CURRENT_BINARY_DIR}/odamex.wad
+               WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
+-              BYPRODUCTS ${CMAKE_CURRENT_BINARY_DIR}/odamex.wad
+               VERBATIM)
+       add_custom_target(odawad ALL
+-- 
+2.26.0
+
index 608f36b8bc456097e0f574deafd6a02a91d04b16..29a83742d57b44a1e738a01d861a0baa2ec030fe 100644 (file)
@@ -1,10 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
 <pkgmetadata>
-       <maintainer type="project">
-               <email>proxy-maint@gentoo.org</email>
-               <name>Proxy Maintainers</name>
-       </maintainer>
        <maintainer type="person">
                <email>vilhelm.gray@gmail.com</email>
                <name>William Breathitt Gray</name>
@@ -13,6 +9,10 @@
                <email>games@gentoo.org</email>
                <name>Gentoo Games Project</name>
        </maintainer>
+       <maintainer type="project">
+               <email>proxy-maint@gentoo.org</email>
+               <name>Proxy Maintainers</name>
+       </maintainer>
        <use>
                <flag name="client">Build client target</flag>
                <flag name="master">Build master server target (advertises odamex server list)</flag>
diff --git a/games-engines/odamex/odamex-0.8.2.ebuild b/games-engines/odamex/odamex-0.8.2.ebuild
new file mode 100644 (file)
index 0000000..572889e
--- /dev/null
@@ -0,0 +1,77 @@
+# Copyright 1999-2019 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+WX_GTK_VER="3.0-gtk3"
+inherit cmake desktop prefix wxwidgets xdg
+
+DESCRIPTION="Online multiplayer free software engine for DOOM"
+HOMEPAGE="https://odamex.net/"
+SRC_URI="mirror://sourceforge/${PN}/Odamex/${PV}/${PN}-src-${PV}.tar.bz2"
+
+LICENSE="GPL-2+ MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~x86"
+IUSE="+client master +odalaunch portmidi server upnp X"
+REQUIRED_USE="|| ( client master server )"
+
+RDEPEND="
+       client? (
+               media-libs/libpng:0=
+               media-libs/libsdl2[joystick,sound,video]
+               media-libs/sdl2-mixer
+               odalaunch? ( x11-libs/wxGTK:${WX_GTK_VER}[X] )
+               portmidi? ( media-libs/portmidi )
+               X? ( x11-libs/libX11 )
+       )
+       server? (
+               upnp? ( net-libs/miniupnpc:= )
+       )"
+DEPEND="${RDEPEND}"
+BDEPEND="games-util/deutex"
+
+S="${WORKDIR}/${PN}-src-${PV}"
+
+PATCHES=(
+       "${FILESDIR}"/odamex-0.8.1-miniupnpc.patch
+       "${FILESDIR}"/odamex-0.8.1-SearchDir.patch
+       "${FILESDIR}"/odamex-0.8.2-Fix-odamex.wad-build-flow.patch
+       "${FILESDIR}"/odamex-0.8.2-Remove-duplicate-build-rule-for-odamex.wad.patch
+)
+
+src_prepare() {
+       rm -r libraries/libminiupnpc wad/odamex.wad || die
+       hprefixify common/d_main.cpp
+
+       use odalaunch && setup-wxwidgets
+
+       cmake_src_prepare
+}
+
+src_configure() {
+       local mycmakeargs=(
+               -DBUILD_CLIENT=$(usex client)
+               -DBUILD_MASTER=$(usex master)
+               -DBUILD_ODALAUNCH=$(usex odalaunch)
+               -DBUILD_SERVER=$(usex server)
+               -DENABLE_PORTMIDI=$(usex portmidi)
+               -DUSE_MINIUPNP=$(usex upnp)
+       )
+
+       cmake_src_configure
+}
+
+src_install() {
+       if use client ; then
+               newicon -s 128 "${S}/media/icon_${PN}_128.png" "${PN}.png"
+               make_desktop_entry "${PN}" "Odamex"
+
+               if use odalaunch ; then
+                       newicon -s 128 "${S}/media/icon_odalaunch_128.png" "odalaunch.png"
+                       make_desktop_entry odalaunch "Odamex Launcher" odalaunch
+               fi
+       fi
+
+       cmake_src_install
+}