LINUX.ORG.RU
решено ФорумGames

OpenRiichi: проблема запуска

 , , ,


0

2

В продолжение темы Риичи маджонг и linux?

Есть такой проект https://github.com/FluffyStuff/OpenRiichi (на языке vala). У меня он после сборки и запуска завершается с ошибками «Could not init SDL» + «Could not init engine». Сборка с опцией debug не вносит ясности из-за чего не инициализировался SDL и, следовательно, engine. DEBUG только сообщает, что найден каталог Data и не найден конфиг, но автор в одном из issue пишет, что он создаётся при первом успешном запуске.

У самой игры ранее были какие-то проблемы с линуксовым драйвером для карт amd, но насколько они решены из последних коммитов непонятно. По крайней мере я не видел сообщений, что это мешало запуску.

Может кто-нибудь попробовать собрать и если запустится, то отписаться какие версии библиотек из списка зависимостей используются в системе?

P.S. Тэг gentoo указан не случайно, т.к. есть готовый тестовый ebuild, который собирает и распихивает по нужным директориям в системе. Могу потом его выложить здесь, как до него доберусь. Добавление desktop-файла в нём пока нет, поэтому запуск из командной строки.

В AUR есть какой-то скрипт, но там была проблема сборки, возможно, после его обновления она исчезла.

Update
Pазмещаю подправленный ebuild games-board/openriichi-0.2.1.1.ebuild c учётом подсказки по зависимостям:

# Copyright 1999-2020 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2

EAPI=7

inherit desktop meson vala xdg

Engine_sha="e495846970a1b38d00c81a3f74568030f976ed31"
MY_PN="OpenRiichi"

DESCRIPTION="OpenRiichi is an open source Japanese Mahjong client"
HOMEPAGE="https://github.com/FluffyStuff/${MY_PN}"
SRC_URI="
        https://github.com/FluffyStuff/${MY_PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz
        https://github.com/FluffyStuff/Engine/archive/${Engine_sha}.tar.gz -> ${P}-Engine.tar.gz
"

LICENSE="GPL-3"
SLOT="0"
KEYWORDS="~amd64 ~x86"

RESTRICT="mirror"

S="${WORKDIR}/${MY_PN}-${PV}"

RDEPEND="
        dev-libs/libgee:0.8
        media-libs/glew:0
        media-libs/libsdl2[haptic,joystick,opengl,sound,threads,video]
        media-libs/sdl2-image[jpeg,png,tiff,webp]
        media-libs/sdl2-mixer
        x11-libs/gtk+:3
        x11-libs/pango
"
DEPEND="${RDEPEND}"
BDEPEND="virtual/pkgconfig"

src_prepare() {
        default
        mv -T "${WORKDIR}/Engine-${Engine_sha}" "${S}/Engine" || die

        vala_src_prepare
}

src_install() {
        meson_src_install

        newicon -s 64 "bin/Data/Icon.png" "${MY_PN}.png"
        make_desktop_entry "${MY_PN}" "${MY_PN}" "${MY_PN}" "Game;BoardGame" || die "Failed making desktop entry!"

Также ebuild отправлен в Gentoo GURU overlay -> games-board/openriichi

★★★★★

Последнее исправление: grem (всего исправлений: 3)
Build type: native build
Project name: OpenRiichi
Project version: undefined
C compiler for the host machine: ccache cc (gcc 10.2.0 "cc (GCC) 10.2.0")
C linker for the host machine: cc ld.bfd 2.35
Vala compiler for the host machine: valac (valac 0.50.0)
Host machine cpu family: x86_64
Host machine cpu: x86_64
Found pkg-config: /usr/bin/pkg-config (0.29.2)
Run-time dependency glib-2.0 found: YES 2.66.0
Run-time dependency gobject-2.0 found: YES 2.66.0
Run-time dependency gio-2.0 found: YES 2.66.0
Run-time dependency gee-0.8 found: YES 0.20.3
Run-time dependency gtk+-3.0 found: YES 3.24.23
Run-time dependency glew found: YES 2.1.0
Run-time dependency sdl2_image found: YES 2.0.5
Run-time dependency sdl2_mixer found: YES 2.0.4
Run-time dependency sdl2 found: YES 2.0.12
Run-time dependency pangoft2 found: YES 1.47.0
Run-time dependency zlib found: YES 1.2.11
Library m found: YES
Library stb found: YES
Run-time dependency gl found: YES 1.2
Library os found: YES
/Riichi/usr/local/bin ]$ ldd OpenRiichi
        linux-vdso.so.1 (0x00007fffe4779000)
        libglib-2.0.so.0 => /usr/lib64/libglib-2.0.so.0 (0x00007f36356ce000)
        libgobject-2.0.so.0 => /usr/lib64/libgobject-2.0.so.0 (0x00007f3635675000)
        libgio-2.0.so.0 => /usr/lib64/libgio-2.0.so.0 (0x00007f36354a9000)
        libgee-0.8.so.2 => /usr/lib64/libgee-0.8.so.2 (0x00007f36353d9000)
        libgtk-3.so.0 => /usr/lib64/libgtk-3.so.0 (0x00007f3634c45000)
        libz.so.1 => /lib64/libz.so.1 (0x00007f3634bcc000)
        libpango-1.0.so.0 => /usr/lib64/libpango-1.0.so.0 (0x00007f3634b78000)
        libGLEW.so.2.1 => /usr/lib64/libGLEW.so.2.1 (0x00007f3634acc000)
        libGL.so.1 => /usr/lib64/libGL.so.1 (0x00007f3634a3e000)
        libSDL2_image-2.0.so.0 => /usr/lib64/libSDL2_image-2.0.so.0 (0x00007f3634a1b000)
        libSDL2-2.0.so.0 => /usr/lib64/libSDL2-2.0.so.0 (0x00007f36348ba000)
        libSDL2_mixer-2.0.so.0 => /usr/lib64/libSDL2_mixer-2.0.so.0 (0x00007f3634899000)
        libpangoft2-1.0.so.0 => /usr/lib64/libpangoft2-1.0.so.0 (0x00007f363487e000)
        libfontconfig.so.1 => /usr/lib64/libfontconfig.so.1 (0x00007f3634837000)
        libm.so.6 => /lib64/libm.so.6 (0x00007f36346f2000)
        libc.so.6 => /lib64/libc.so.6 (0x00007f363452c000)
        libpcre.so.1 => /lib64/libpcre.so.1 (0x00007f36344e7000)
        libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f36344c6000)
        libffi.so.7 => /usr/lib64/libffi.so.7 (0x00007f36344b7000)
        libgmodule-2.0.so.0 => /usr/lib64/libgmodule-2.0.so.0 (0x00007f36344b1000)
        libmount.so.1 => /lib64/libmount.so.1 (0x00007f3634455000)
        libresolv.so.2 => /lib64/libresolv.so.2 (0x00007f363443b000)
        libgdk-3.so.0 => /usr/lib64/libgdk-3.so.0 (0x00007f3634343000)
        libpangocairo-1.0.so.0 => /usr/lib64/libpangocairo-1.0.so.0 (0x00007f3634332000)
        libharfbuzz.so.0 => /usr/lib64/libharfbuzz.so.0 (0x00007f363424f000)
        libcairo.so.2 => /usr/lib64/libcairo.so.2 (0x00007f3634129000)
        libfreetype.so.6 => /usr/lib64/libfreetype.so.6 (0x00007f3634067000)
        libfribidi.so.0 => /usr/lib64/libfribidi.so.0 (0x00007f3634048000)
        libcairo-gobject.so.2 => /usr/lib64/libcairo-gobject.so.2 (0x00007f363403c000)
        libgdk_pixbuf-2.0.so.0 => /usr/lib64/libgdk_pixbuf-2.0.so.0 (0x00007f3634016000)
        libatk-1.0.so.0 => /usr/lib64/libatk-1.0.so.0 (0x00007f3633fea000)
        libepoxy.so.0 => /usr/lib64/libepoxy.so.0 (0x00007f3633eb7000)
        libXi.so.6 => /usr/lib64/libXi.so.6 (0x00007f3633ea4000)
        libX11.so.6 => /usr/lib64/libX11.so.6 (0x00007f3633d91000)
        libatk-bridge-2.0.so.0 => /usr/lib64/libatk-bridge-2.0.so.0 (0x00007f3633d5a000)
        libXfixes.so.3 => /usr/lib64/libXfixes.so.3 (0x00007f3633d52000)
        libGLX.so.0 => /usr/lib64/libGLX.so.0 (0x00007f3633d1c000)
        libXext.so.6 => /usr/lib64/libXext.so.6 (0x00007f3633d08000)
        libGLdispatch.so.0 => /usr/lib64/libGLdispatch.so.0 (0x00007f3633c4f000)
        libdl.so.2 => /lib64/libdl.so.2 (0x00007f3633c49000)
        librt.so.1 => /lib64/librt.so.1 (0x00007f3633c3f000)
        libexpat.so.1 => /usr/lib64/libexpat.so.1 (0x00007f3633c0f000)
        libuuid.so.1 => /lib64/libuuid.so.1 (0x00007f3633c06000)
        /lib64/ld-linux-x86-64.so.2 (0x00007f36357fe000)
        libblkid.so.1 => /lib64/libblkid.so.1 (0x00007f3633bb6000)
        libxkbcommon.so.0 => /usr/lib64/libxkbcommon.so.0 (0x00007f3633b73000)
        libwayland-client.so.0 => /usr/lib64/libwayland-client.so.0 (0x00007f3633b62000)
        libwayland-cursor.so.0 => /usr/lib64/libwayland-cursor.so.0 (0x00007f3633b56000)
        libwayland-egl.so.1 => /usr/lib64/libwayland-egl.so.1 (0x00007f3633b51000)
        libXcursor.so.1 => /usr/lib64/libXcursor.so.1 (0x00007f3633b45000)
        libXdamage.so.1 => /usr/lib64/libXdamage.so.1 (0x00007f3633b40000)
        libXcomposite.so.1 => /usr/lib64/libXcomposite.so.1 (0x00007f3633b3b000)
        libXrandr.so.2 => /usr/lib64/libXrandr.so.2 (0x00007f3633b2e000)
        libXinerama.so.1 => /usr/lib64/libXinerama.so.1 (0x00007f3633b27000)
        libgraphite2.so.3 => /usr/lib64/libgraphite2.so.3 (0x00007f3633afe000)
        libpixman-1.so.0 => /usr/lib64/libpixman-1.so.0 (0x00007f3633a58000)
        libEGL.so.1 => /usr/lib64/libEGL.so.1 (0x00007f3633a43000)
        libpng16.so.16 => /usr/lib64/libpng16.so.16 (0x00007f3633a0b000)
        libxcb-shm.so.0 => /usr/lib64/libxcb-shm.so.0 (0x00007f3633a04000)
        libX11-xcb.so.1 => /usr/lib64/libX11-xcb.so.1 (0x00007f36339ff000)
        libxcb.so.1 => /usr/lib64/libxcb.so.1 (0x00007f36339d6000)
        libxcb-render.so.0 => /usr/lib64/libxcb-render.so.0 (0x00007f36339c6000)
        libXrender.so.1 => /usr/lib64/libXrender.so.1 (0x00007f36339b9000)
        libbz2.so.1.0 => /lib64/libbz2.so.1.0 (0x00007f36339a6000)
        libbrotlidec.so.1 => /usr/lib64/libbrotlidec.so.1 (0x00007f3633996000)
        libdbus-1.so.3 => /lib64/libdbus-1.so.3 (0x00007f3633942000)
        libatspi.so.0 => /usr/lib64/libatspi.so.0 (0x00007f363390a000)
        libXau.so.6 => /usr/lib64/libXau.so.6 (0x00007f3633905000)
        libXdmcp.so.6 => /usr/lib64/libXdmcp.so.6 (0x00007f36338fb000)
        libbrotlicommon.so.1 => /usr/lib64/libbrotlicommon.so.1 (0x00007f36338d8000)
        libelogind.so.0 => /lib64/libelogind.so.0 (0x00007f363383c000)
        libcap.so.2 => /lib64/libcap.so.2 (0x00007f3633831000)

там же на гитхабе указаны все зависимости, что сложного то?

ну и запускать там же и написано «как»:

OpenRiichi --search-directory /<path to data folder>/OpenRiichi

OpenRiichi requires the Data folder (found inside the bin folder) to be in the one of the search directories. OpenRiichi will add the OpenRiichi subdirectory of the default data directory of the OS (usually /usr/share/OpenRiichi) to the search path, along with the the current working directory and the executable directory. An additional search path can be added during runtime by running OpenRiichi with the --search-directory some_custom_directory flag.

Gramozeka ★★
()
Последнее исправление: Gramozeka (всего исправлений: 1)
Ответ на: комментарий от Gramozeka

Со сборкой то всё норм, и data лежит там, где он ожидает и сообщает, что находит её в /usr/share/OpenRiichi

ldd тоже рапортует, емнип, что все библиотеки находит.

Какой дистрибутив и видеодрайвер?

grem ★★★★★
() автор топика
Последнее исправление: grem (всего исправлений: 1)
Ответ на: комментарий от Gramozeka

Собиралась определённая версия?

grem ★★★★★
() автор топика
Ответ на: комментарий от grem

Какой дистрибутив и видеодрайвер?

nvidia blob(проверял и на nouveau на старенькой, 2005 года, соньке)

а вот с дистром... у мну свой лисапед(из говна, палок и синий изоленты) - BLFS с мультилибом(версии всех пакетов из текущей http://www.linuxfromscratch.org/blfs/view/svn/ , буквально неделю назад обновил. Как и что собиралось можно у меня на гитлабе глянуть, но там ничего волшебного, всё буднично дефолтно и уныло.

Собиралась определённая версия?

так по твоей ссылке(с гитом) и собрал, там делов то три минуты.

могу тебе бинарник выслать, сам проверишь чего ему не хватает, скажи только кудыть.

Gramozeka ★★
()
Последнее исправление: Gramozeka (всего исправлений: 1)
Ответ на: комментарий от Gramozeka

Да бинарник у меня собирается. Даже сообщает при запуске, что sdl того (это сообщение от Engine). Опакетить хотел, но что-то не так. Буду сверять версии либ. Но libgee:0.8 у меня точно.

Но я тащу определённую версию Engine, которая соответствует коммиту релиза самой игры.

Собирал и в домашнем каталоге, пенеопределяя переменную для VAPI или что-то такое, т.к. у меня он номер версии содержит, а ищется без неё.

Только не помню, собирал ли из master, чтобы последнюю версию engine брал наверняка. Надо перепроверить.

Вот ebuild, может кто в генту проверит тоже:

# Copyright 1999-2020 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2

EAPI=7

inherit eutils meson vala xdg

Engine_sha="e495846970a1b38d00c81a3f74568030f976ed31"

DESCRIPTION="OpenRiichi is an open source Japanese Mahjong"
HOMEPAGE="https://github.com/FluffyStuff/OpenRiichi"
SRC_URI="
	https://github.com/FluffyStuff/OpenRiichi/archive/v${PV}.tar.gz -> ${P}.tar.gz
	https://github.com/FluffyStuff/Engine/archive/${Engine_sha}.tar.gz -> ${P}-Engine-e495846.tar.gz
"

S="${WORKDIR}/OpenRiichi-${PV}"

LICENSE="GPL-3"
SLOT="0"
KEYWORDS="~amd64"

RESTRICT="mirror"

RDEPEND="
	dev-libs/glib
	dev-libs/gobject-introspection
	dev-libs/libgee:0.8
	media-libs/glew
	media-libs/libsdl2
	media-libs/sdl2-image
	media-libs/sdl2-mixer
	sys-libs/glibc
	sys-libs/zlib
	x11-libs/gtk+:3
	x11-libs/pango
"
DEPEND="${RDEPEND}"
BDEPEND="virtual/pkgconfig"

src_prepare() {
	mv -T "${WORKDIR}"/Engine-"${Engine_sha}" "${S}"/Engine
	default
	vala_src_prepare
}

src_configure() {
	local emesonargs=(
		--buildtype debug
	)
	meson_src_configure
}

Либы у меня из стабильной ветки стоят.

src_configure() задан исключительно ради --buildtype debug, эта секция не обязательна.

grem ★★★★★
() автор топика
Ответ на: комментарий от grem

... как всё не просто у вас в генте...

Но я тащу определённую версию Engine, которая соответствует коммиту релиза самой игры.

судя по самому гиту, релиз был ещё в мае, тогда и амд он поровнял:

v0.2.1.1 @FluffyStuff FluffyStuff released this on 4 May Fixed Rendering issue on AMD GPUs.

так что смотри что у тебя не так, там собсно и ломаться то особо не чему.

Gramozeka ★★
()
Последнее исправление: Gramozeka (всего исправлений: 2)
Ответ на: комментарий от Gramozeka

Это скрипт для сборки пакетным менеджером, можно и руками.

У меня pango старее и glew чуть новее. Версия vala не должна влиять так сильно. Остальное на вид совпадает.

Буду ковырять и проверю ещё раз сборку из master.

Сам автор программы, похоже из под windows её пишет и собирает.

grem ★★★★★
() автор топика
Последнее исправление: grem (всего исправлений: 1)
Ответ на: комментарий от grem

Версия vala не должна влиять так сильно.

вот тут можно поосторожничать, относительно не так давно(год-полтора) при сборке чего-то гномьего, там где вала нужна была, словил лютую траблу из неё, они там какую-то «мелочь» поменяли, и вала отказалась её компилять, гранаты не той системы, говорит.. Судя по релизу, vala должна быть минимум 0.46.13(последний стебл прошлого года).

Но это мысли вслух, проблемы такого рода обычно пустяковые и не в софте, а во внимании к мелочам про которые просто забыл.

Gramozeka ★★
()
Ответ на: комментарий от grem

Он хотя бы играбелен? Боты работают?

так да. Только я игрочишка ещё тот, они меня как дитё делают, десяток партий сыграл... да ну их в пень!(жулики ускоглазые)

Gramozeka ★★
()

я там быстро код глянул

Flags, CCode (cname="int", cprefix="SDL_INIT_")]
	public enum InitFlag {
		TIMER, AUDIO, VIDEO, JOYSTICK, HAPTIC,
		GAMECONTROLLER, NOPARACHUTE, EVERYTHING
	}// InitFlag

	[CCode (cname="SDL_Init")]
	public static int init(uint32 flags = SDL.InitFlag.EVERYTHING);

TIMER, AUDIO, VIDEO, JOYSTICK, HAPTIC,GAMECONTROLLER, NOPARACHUTE, EVERYTHING. Какой-то из них не инициализируется. Проверяй, что собраны все.

arrecck ★★★
()
Ответ на: комментарий от arrecck

NOPARACHUTE

О_о

Спасибо. Попробую проверить

В багтреккер в один из багов я отписывался, но лучше отдельный создам, т.к. ошибка чуть иная. Но разработчик пока молчит. У него как раз в апреле период активности был, когда пару версий он обновил.

strace ещё внимательнее посмотрю, может что замечу

grem ★★★★★
() автор топика
Ответ на: комментарий от arrecck

[opengl] скорее тоже.

Спасибо, вечером проверю. В крайнем случае можно почти всё включить начала.

grem ★★★★★
() автор топика
Последнее исправление: grem (всего исправлений: 1)
Ответ на: комментарий от arrecck

Спасибо большое. Добавление [haptic] помогло. Подправленный ebuild разместил в шапке и закинул в Gentoo Guru overlay. Как перенесут из ветки dev в master, он там будет пакетом games-board/openriichi

grem ★★★★★
() автор топика
Ответ на: комментарий от Gramozeka

Поиграл несколько партий. Шрифт в центре мелковат и иероглифы ветров у имён игроков отличаются от тех, что на тайлах.

Не очень понятное управление при выборе «что сбросить в чи» при наличии выбора и при объявлении риичи.

Один раз случайно повезло и с учётом красных пятёрок и пятёрок дом насобирал аж на байман (8 хан, 16000).

Если включить всякие сглаживания, то начинает слишком гонять видеокарту, даже с включенной верт. синхронизацией.

А так теперь ещё один рииичи есть в генту в дополнение к rmahjong, портированному на python3 - не уверен, что не накосячил при этом с подсчётом очков. Но в rmahjong многие правила не реализованы, особенно фуритен.

grem ★★★★★
() автор топика
Последнее исправление: grem (всего исправлений: 3)
Ответ на: комментарий от grem

https://i.ibb.co/b7hDq7Z/Screenshot-20201103-051949.png

не без того. Я одно понял - век живи, век учись, а помрёшь один хрен дураком. В который раз пытаюсь осознать правила и прихожу к идеи двадцатилетней давности - надо учить японский((дочь хохочет)

Но для практики игруха вполне пойдёт. Для себя опакетил, пусть будет.

Gramozeka ★★
()
Ответ на: комментарий от Gramozeka

Я в другом поиложении (rmahjong) тоже привык, что тайлы Ман с цифрами, поэтому некоторые неудобства сначала испытывал. Да и набор для игры искал пронумерованный. Только поиграть им чуть удалось и то втроём, из которых никто толком правила не знаю и всё собирали якухай, таняо и саншоку. Иногда пытались собрать 7 пар.

grem ★★★★★
() автор топика
Последнее исправление: grem (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.