Install this version:
emerge -a =games-simulation/openloco-26.05
If this version is masked, you can unmask it using the autounmask tool or standard emerge options:
autounmask =games-simulation/openloco-26.05
Or alternatively:
emerge --autounmask-write -a =games-simulation/openloco-26.05
| Version | EAPI | Keywords | Slot |
|---|---|---|---|
| 26.05 | 8 | ~amd64 | 0 |
# Copyright 2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
# Source: Written from scratch for sunset-repo overlay
EAPI=8
inherit cmake xdg
MY_PN="OpenLoco"
OG_PN="OpenGraphics"
OG_PV="0.1.8"
DESCRIPTION="An open source re-implementation of Chris Sawyer's Locomotion"
HOMEPAGE="https://openloco.io/"
SRC_URI="https://github.com/${MY_PN}/${MY_PN}/archive/refs/tags/v${PV}.tar.gz -> ${MY_PN}-${PV}.tar.gz
https://github.com/${MY_PN}/${OG_PN}/archive/refs/tags/v${OG_PV}.tar.gz -> ${MY_PN}-${OG_PN}-${OG_PV}.tar.gz"
S="${WORKDIR}/${MY_PN}-${PV}"
LICENSE="MIT"
SLOT="0"
KEYWORDS="~amd64"
RDEPEND="
media-libs/libpng:=
dev-libs/libzip:=
media-libs/openal
media-libs/libsdl3
dev-cpp/yaml-cpp
dev-libs/libfmt
dev-cpp/tbb"
DEPEND="${RDEPEND}
dev-cpp/sfl-library"
src_prepare() {
# Kludge to use system sfl
sed -e "/sfl::sfl/d" -i "${S}/src/Core/CMakeLists.txt"
# Put data files in /usr/share subfolder
sed -e "/install(DIRECTORY/s#_BINDIR}/data#_DATAROOTDIR}/${MY_PN}#g" -i "${S}/CMakeLists.txt"
sed -e 's# / "data"#.parent_path() / "share/OpenLoco"#g' -i "${S}/src/OpenLoco/src/Environment.cpp"
cmake_src_prepare
}
src_configure() {
# Build system supports using ccache automatically if available. We don't want
# to do this, Portage will handle it. However the variable to use ccache is
# only defined by the build system if ccache is installed and found, so we
# need a hack to avoid a QA warning if sys-devel/ccache is not installed.
local ARG_CCACHE=""
has_version -b "sys-devel/ccache" && ARG_CCACHE="-DOPENLOCO_USE_CCACHE=false"
local mycmakeargs=(
-DFETCHCONTENT_FULLY_DISCONNECTED=true
-DFETCHCONTENT_SOURCE_DIR_OPENLOCO_OBJECTS="${WORKDIR}/${OG_PN}-${OG_PV}/"
-DFETCHCONTENT_SOURCE_DIR_SFL="${EPREFIX}/usr/include"
-DOPENLOCO_BUILD_TESTS=false
-DSTRICT=false # Turn off -Werror
$ARG_CCACHE
)
cmake_src_configure
}
pkg_postinst() {
xdg_pkg_postinst
elog "You must provide original game data from Locomotion to play OpenLoco!"
elog "It's possible to unpack from a retail game disc with app-arch/unshield:"
elog " unshield x -g \"Default File Group\" /path/to/cdrom/data1.cab"
elog " unshield x -g \"Default File Group\" /path/to/cdrom/data2.cab"
elog " mv \"Default File Group\" OpenLoco"
elog " cp -R /path/to/cdrom/Data OpenLoco/"
elog "Move this folder somewhere convenient (f.e. ~/.local/share/games/OpenLoco)"
elog "then run OpenLoco for the first time *from a terminal* to provide the"
elog "location of this folder. It prompts *in the terminal* for this path."
}
media-libs/libpng:= dev-libs/libzip:= media-libs/openal media-libs/libsdl3 dev-cpp/yaml-cpp dev-libs/libfmt dev-cpp/tbb dev-cpp/sfl-library
media-libs/libpng:= dev-libs/libzip:= media-libs/openal media-libs/libsdl3 dev-cpp/yaml-cpp dev-libs/libfmt dev-cpp/tbb
| Type | File | Size | Source URLs |
|---|---|---|---|
| DIST | OpenLoco-26.05.tar.gz | 2762519 bytes | https://github.com/OpenLoco/OpenLoco/archive/refs/tags/v26.05.tar.gz |
| DIST | OpenLoco-OpenGraphics-0.1.8.tar.gz | 118000125 bytes | https://github.com/OpenLoco/OpenGraphics/archive/refs/tags/v0.1.8.tar.gz |