Install this version:
emerge -a =games-engines/odamex-12.2.0
If this version is masked, you can unmask it using the autounmask tool or standard emerge options:
autounmask =games-engines/odamex-12.2.0
Or alternatively:
emerge --autounmask-write -a =games-engines/odamex-12.2.0
# Copyright 1999-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
PYTHON_COMPAT=( python3_{12..14} )
WX_GTK_VER="3.2-gtk3"
inherit cmake desktop prefix python-any-r1 wxwidgets xdg
DESCRIPTION="Online multiplayer free software engine for DOOM"
HOMEPAGE="https://odamex.net/"
SRC_URI="https://github.com/${PN}/${PN}/releases/download/${PV}/${PN}-src-${PV}.tar.xz"
S="${WORKDIR}/${PN}-src-${PV}"
LICENSE="GPL-2+ MIT"
SLOT="0"
KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~x86"
IUSE="+client master +odalaunch portmidi server test upnp"
REQUIRED_USE="|| ( client master server )"
RESTRICT="!test? ( test )"
# protobuf is still bundled. Unfortunately an old version is required for C++98
# compatibility. We could use C++11, but upstream is concerned about using a
# completely different protobuf version on a multiplayer-focused engine.
RDEPEND="
client? (
dev-cpp/cpptrace
dev-libs/jsoncpp:=
media-libs/libpng:0=
media-libs/libsdl2[joystick,sound,video]
media-libs/sdl2-mixer
net-misc/curl
>=x11-libs/fltk-1.4.3-r1:1=
x11-libs/libX11
portmidi? ( media-libs/portmidi )
)
odalaunch? (
x11-libs/wxGTK:${WX_GTK_VER}=
)
server? (
dev-libs/jsoncpp:=
virtual/zlib:=
upnp? ( net-libs/miniupnpc:= )
)
"
DEPEND="
${RDEPEND}
test? (
dev-cpp/cpptrace
dev-libs/jsoncpp
net-misc/curl
virtual/zlib
)
"
BDEPEND="
${PYTHON_DEPS}
"
PATCHES=(
"${FILESDIR}"/${PN}-cmake-tests.patch
)
src_prepare() {
# All this is unneeded and includes old CMake declarations.
rm -r libraries/{cpptrace,curl,fltk,googletest,jsoncpp,libadlmidi/android,libpng,miniupnp,portmidi,protobuf/{examples,third_party},zlib}/ || die
cmake_src_prepare
hprefixify common/d_main.cpp
}
src_configure() {
use odalaunch && setup-wxwidgets
local mycmakeargs=(
-DUSE_INTERNAL_CPPTRACE=0
-DUSE_INTERNAL_FLTK=0
-DUSE_INTERNAL_GTEST=0
-DUSE_INTERNAL_JSONCPP=0
-DUSE_INTERNAL_LIBS=0
-DUSE_INTERNAL_MINIUPNP=0
-DBUILD_CLIENT=$(usex client)
-DBUILD_LAUNCHER=$(usex odalaunch)
-DBUILD_MASTER=$(usex master)
-DBUILD_SERVER=$(usex server)
-DBUILD_TESTS=$(usex test)
-DBUILD_OR_FAIL=1
-DENABLE_PORTMIDI=$(usex portmidi)
-DUSE_MINIUPNP=$(usex upnp)
)
cmake_src_configure
}
src_install() {
if use client ; then
for size in 96 128 256 512; do
newicon -s ${size} "${S}/media/icon_${PN}_${size}.png" "${PN}.png"
done
make_desktop_entry "${PN}" "Odamex"
if use odalaunch ; then
for size in 96 128 256 512; do
newicon -s ${size} "${S}/media/icon_odalaunch_${size}.png" "odalaunch.png"
done
make_desktop_entry odalaunch "Odamex Launcher" odalaunch
fi
fi
cmake_src_install
}
src_test() {
"${BUILD_DIR}"/tests/unit-tests/odagtest || die
}
Manage flags for this package:
euse -i <flag> -p games-engines/odamex |
euse -E <flag> -p games-engines/odamex |
euse -D <flag> -p games-engines/odamex
client? ( dev-cpp/cpptrace dev-libs/jsoncpp:= media-libs/libpng:0= media-libs/libsdl2[joystick,sound,video] media-libs/sdl2-mixer net-misc/curl >=x11-libs/fltk-1.4.3-r1:1= x11-libs/libX11 portmidi? ( media-libs/portmidi ) ) odalaunch? ( x11-libs/wxGTK:3.2-gtk3= ) server? ( dev-libs/jsoncpp:= virtual/zlib:= upnp? ( net-libs/miniupnpc:= ) ) test? ( dev-cpp/cpptrace dev-libs/jsoncpp net-misc/curl virtual/zlib )
client? ( dev-cpp/cpptrace dev-libs/jsoncpp:= media-libs/libpng:0= media-libs/libsdl2[joystick,sound,video] media-libs/sdl2-mixer net-misc/curl >=x11-libs/fltk-1.4.3-r1:1= x11-libs/libX11 portmidi? ( media-libs/portmidi ) ) odalaunch? ( x11-libs/wxGTK:3.2-gtk3= ) server? ( dev-libs/jsoncpp:= virtual/zlib:= upnp? ( net-libs/miniupnpc:= ) )
| Type | File | Size | Source URLs |
|---|---|---|---|
| DIST | odamex-src-12.2.0.tar.xz | 29556076 bytes | https://github.com/odamex/odamex/releases/download/12.2.0/odamex-src-12.2.0.tar.xz |