Чёрный Думер» Напоследок заметил неожиданную особенность у GitHub. Можно делать обычные релизы. Разница небольшая.
Чёрный Думер» Ну и вчерашняя проблема у Win64-версии с именами DLL-файлов - EXE'шник почему-то требует другие. Надо бы понять, в чём дело, потому что в идеале хотелось бы те имена, которые сами разработчики этих библиотек в своих сборках для Windows используют Это не совсем то, что разработчики библиотек хотели. Для mingw по-дефолту включены версиониование библиотек с помощью SONAME. Только на юниксах это обычно делается симлинками, которые сидят рядом с основным файлом, но для винды тут как есть. Это фиксится выключением этой фишки.
Хотя я посмотрел, это сама игра требует дллки с SONAME. Наверное, когда кто-то добавлял поддержку этих библиотек в игру, просто скачал с MSYS2 дллки и по их подобию назвал импорты. Такого делать, наверное, не стоит. Нужно исправить
Joined: 18 Oct 2009, 04:01 Posts: 7215 Location: Владивосток
Макс wrote:
Можно делать обычные релизы. Разница небольшая.
Это я скорее к тому, чтобы никто не удивлялся нерабочим ссылкам. На stackoverflow вон люди уже озадачивались просто.
Макс wrote:
Это не совсем то, что разработчики библиотек хотели. Для mingw по-дефолту включены версиониование библиотек с помощью SONAME. Только на юниксах это обычно делается симлинками, которые сидят рядом с основным файлом, но для винды тут как есть. Это фиксится выключением этой фишки.
Да, про версионирование я знаю. Но мой тезис был в том, что имя файла библиотеки в Delphi/FPC обычно прописывается прямо в сигнатуре функции. Следовательно, надо менять либо имя файла, либо сигнатуру. И если менять, то лучше брать такое же, которое используют разработчики самой библиотеки в своих сборках под Windows. Если там есть номер в имени - пусть будет, значит нужен. А если нет, то и славно.
Макс wrote:
Хотя я посмотрел, это сама игра требует дллки с SONAME. Наверное, когда кто-то добавлял поддержку этих библиотек в игру, просто скачал с MSYS2 дллки и по их подобию назвал импорты. Такого делать, наверное, не стоит. Нужно исправить
Из-за чего выходит, что архивы для маковерсий раздуты где-то втрое. Потому что там лежат одинаковые библиотеки, которые отличаются лишь именами. Предлагаю использовать для них не .zip, а .tar.gz, потому как эти сборки всё равно второстепенные (для основной массы пользователей есть .dmg).
Joined: 18 Oct 2009, 04:01 Posts: 7215 Location: Владивосток
Новая серия путевых заметок.
1. Как-то само собой забылось, что вообще-то надо собирать ещё и dedicated-сервер (с -dHEADLESS)! Пусть он называется DF_headless.exe, потому что назвать его полноценным выделенным пока язык не поворачивается.
2. Всё ещё неправильно пакуются анимтекстуры. Редактор их не видит, а dfwadup при попытке распаковать выдаёт вот такое:
Code:
Версия WAD: 1 Всего записей: 4
Название секции: TEXT Название каталога: \TEXT
! Section=TEXT Resource=ANIM.txt ! Ошибка DFWAD: Resource not found Название секции: TEXTURES Название каталога: \TEXTURES
! Section=TEXTURES Resource=WALL02_3.tga ! Ошибка DFWAD: Resource not found
*** DFWAD распакован ***
Изучение в hex-редакторе выявило проблему: ресурсы ANIM и TEXT кладутся туда с расширениями. Если вручную забить их нулями, то всё приходит в порядок.
3. Надо убрать openal-soft из сборок для MacOS, потому что в Darwin есть собственный framework с ним от самого Apple. Выявилось при попытке проигрывания на MacOS wav-звуков с двумя каналами (стерео) на версии, которая линковалась одновременно и к framework'у (через директиву LINKFRAMEWORK), и к openal-soft 1.24 (через автосборщик). Что самое интересное, alGetString() при этом всё равно сообщал версию от Apple, а понижение openal-soft до 1.22 избавило от проблемы. По горячим следам был написан и вот этот реквест: viewtopic.php?f=12&t=3493 В чём непосредственная причина - так и осталось непонятным, но очевидно, что две разные библиотеки с одинаковым набором функций компоновать в одной сборке не стоит. Я за использование OpenAL от Apple, потому что в закрытых экосистемах лучше всего в первую очередь обращаться к имеющимся решениям - они, как правило, лучше и надёжнее.
Ещё напиши, пожалуйста, как обновлять или фиксировать версии библиотек. Потому что ENet, например, у тебя сейчас цепляется 1.3.18, а мы сидим на 1.3.17 пока. Сейчас это не критично, но вообще в таких случаях могут вылезать разные несовместимости, например, из-за несовпадения заголовков.
Что ещё отмечу на всякий:
- Мой друг попробовал запустить родную arm64-сборку на своём Mac с Apple M1, разрешив выполнение через Privacy & Security. Однако она сначала пожаловалась на "libminiupnpc.19.dylib is damaged and can't be opened - eason: tried: 'libminiupnpc.19.dylib' (no such file)", а после переноса библиотек в домашнюю папку начала просто падать, даже при запуске через sudo. Возможно, проблема в отсутствии подписей у библиотек.
sudo ./Doom2DF [1] 41441 killed sudo ./Doom2DF
- Когда мы тестировали звуки, то у тебя на Mac (я так понял, Intel'овом) стек вызовов при падениях выводился в лог без соответствующих им строк кода. Возможно, это как-то связано с ASLR: https://forum.lazarus.freepascal.org/index.php?topic=63571.0
С каждой серией замечаний всё больше убеждаюсь, насколько несостоятельна данная итерация автосборки. Прошу Джа пока что даже не задумываться о выкладывании на сайт, потому что работы тут ещё непочатый край.
Joined: 18 Oct 2009, 04:01 Posts: 7215 Location: Владивосток
Макс wrote:
С каждой серией замечаний всё больше убеждаюсь, насколько несостоятельна данная итерация автосборки. Прошу Джа пока что даже не задумываться о выкладывании на сайт, потому что работы тут ещё непочатый край.
Для выкладывания на сайт так-то достаточно починить только первые два из предыдущего сообщения.
Joined: 18 Oct 2009, 04:01 Posts: 7215 Location: Владивосток
Чёрный Думер wrote:
Ещё напиши, пожалуйста, как обновлять или фиксировать версии библиотек. Потому что ENet, например, у тебя сейчас цепляется 1.3.18, а мы сидим на 1.3.17 пока. Сейчас это не критично, но вообще в таких случаях могут вылезать разные несовместимости, например, из-за несовпадения заголовков.
Как ни странно, сегодня вылез именно такой случай - из-за изменения сигнатуры функции UPNP_GetValidIGD() игра из автосборки начала падать при запуске сервера. Хорошо хоть вовремя отловили. Пример такого в другом проекте: https://github.com/hrydgard/ppsspp/issues/19333 - Build error with miniupnpc 2.2.8 (changed API for UPNP_GetValidIGD)
Ещё выяснилось, что на встроенном OpenAL от Apple безо всяких намёков на openal-soft всё равно почему-то не играются звуки в формате stereo signed 16-bit WAV. В самих исходниках вроде есть вызовы DebugMessage(), но что-то мы как-то не осилили даже посмотреть на выхлоп. Видимо, придётся всё же смириться с openal-soft.
Макс wrote:
Я не понимаю, зачем нужен хедлесс в стандартной сборке. Он только путает.
Начиная с версии 0.666 он присутствовал всегда. Хотя вот иконку ему бы и впрямь сменить не помешало, это правда.
Joined: 18 Oct 2009, 04:01 Posts: 7215 Location: Владивосток
DeaDDooMER wrote:
server.exe - и всем было бы понятно.
Так-то оно так, но у меня пока язык не поворачивается назвать его ни server, ни dedicated. Там надо для начала сделать хотя бы так, чтобы он карту сразу стартовал, а не по указке.
Joined: 17 Oct 2009, 23:43 Posts: 7843 Location: \\HULK
У нас, кстати, там нет никакого ридми.
Думаю, там нужны build.txt с описанием конкретно билда, с технической инфой и обновленные Manual_* и Readme_* из 666. В build.txt чисто информация о билде, например, просто как тут:
Code:
0.667b-2025.02.28-1 a309628 This build has the following inputs: Doom2D-Forever: b19d4587b924ab6823ce559b8210efbdfd8b8e47 d2df-editor: 7fe67265f79c80b0263dff8645faf299962efbb2 DF-Assets: 2ffc08a80d6b529880cbe9cf7ac26475b04e9d1d nixpkgs: 5daaa32204e9c46b05cd709218b7ba733d07e80c df_distro_content.rar: 01 January 2025 14:13 UTC df_midi_bank.rar: 17 February 2025 15:58 UTC
Manual_* и Readme_* я обновлю и выложу в эту тему.
_________________ И неважно, что нет морей на Марсе, каждый морпех носит море в сердце.
Users browsing this forum: No registered users and 1 guest
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot post attachments in this forum