doom2d.org

Главная база плоских морпехов
It is currently 22 Apr 2025, 22:50

All times are UTC + 3 hours




Post new topic Reply to topic  [ 112 posts ]  Go to page Previous  1, 2, 3, 4, 5, 6  Next
Author Message
PostPosted: 18 Feb 2025, 11:52 
Offline

Joined: 27 Apr 2020, 20:02
Posts: 537
Чёрный Думер» Напоследок заметил неожиданную особенность у GitHub.
Можно делать обычные релизы. Разница небольшая.

Чёрный Думер» Ну и вчерашняя проблема у Win64-версии с именами DLL-файлов - EXE'шник почему-то требует другие.
Надо бы понять, в чём дело, потому что в идеале хотелось бы те имена, которые сами разработчики этих библиотек в своих сборках для Windows используют

Это не совсем то, что разработчики библиотек хотели. Для mingw по-дефолту включены версиониование библиотек с помощью SONAME. Только на юниксах это обычно делается симлинками, которые сидят рядом с основным файлом, но для винды тут как есть. Это фиксится выключением этой фишки.


Top
 Profile  
 
PostPosted: 18 Feb 2025, 12:25 
Offline

Joined: 27 Apr 2020, 20:02
Posts: 537
Хотя я посмотрел, это сама игра требует дллки с SONAME. Наверное, когда кто-то добавлял поддержку этих библиотек в игру, просто скачал с MSYS2 дллки и по их подобию назвал импорты. Такого делать, наверное, не стоит. Нужно исправить


Top
 Profile  
 
PostPosted: 18 Feb 2025, 12:39 
Offline
Принципиально неуничтожаем
User avatar

Joined: 18 Oct 2009, 04:01
Posts: 7215
Location: Владивосток
Макс wrote:
Можно делать обычные релизы. Разница небольшая.
Это я скорее к тому, чтобы никто не удивлялся нерабочим ссылкам. На stackoverflow вон люди уже озадачивались просто.

Макс wrote:
Это не совсем то, что разработчики библиотек хотели. Для mingw по-дефолту включены версиониование библиотек с помощью SONAME. Только на юниксах это обычно делается симлинками, которые сидят рядом с основным файлом, но для винды тут как есть. Это фиксится выключением этой фишки.
Да, про версионирование я знаю. Но мой тезис был в том, что имя файла библиотеки в Delphi/FPC обычно прописывается прямо в сигнатуре функции. Следовательно, надо менять либо имя файла, либо сигнатуру. И если менять, то лучше брать такое же, которое используют разработчики самой библиотеки в своих сборках под Windows. Если там есть номер в имени - пусть будет, значит нужен. А если нет, то и славно.

Макс wrote:
Хотя я посмотрел, это сама игра требует дллки с SONAME. Наверное, когда кто-то добавлял поддержку этих библиотек в игру, просто скачал с MSYS2 дллки и по их подобию назвал импорты. Такого делать, наверное, не стоит. Нужно исправить
Сделай PR, если не затруднит.

_________________
Чёрный Думер, Чёрный Думер
С монстрами сражается.
Чёрный Думер, Чёрный Думер
Рокетланчер плавится.


Top
 Profile  
 
PostPosted: 18 Feb 2025, 14:42 
Offline

Joined: 27 Apr 2020, 20:02
Posts: 537
Jabberwock wrote:
Тогда жду.

Cделал релиз как релиз, а не пререлиз. Теперь есть постоянные ссылки


Top
 Profile  
 
PostPosted: 18 Feb 2025, 14:48 
Offline
Принципиально неуничтожаем
User avatar

Joined: 18 Oct 2009, 04:01
Posts: 7215
Location: Владивосток
Сейчас ещё недочёт заметил, пишу сюда, чтобы не забыть потом. По всей видимости, наши нынешние zip'ы не умеют в символьные ссылки.

https://superuser.com/questions/128969/symbolic-links-and-7zip
https://serverfault.com/questions/265675/how-can-i-zip-compress-a-symlink

Из-за чего выходит, что архивы для маковерсий раздуты где-то втрое. Потому что там лежат одинаковые библиотеки, которые отличаются лишь именами.
Предлагаю использовать для них не .zip, а .tar.gz, потому как эти сборки всё равно второстепенные (для основной массы пользователей есть .dmg).

_________________
Чёрный Думер, Чёрный Думер
С монстрами сражается.
Чёрный Думер, Чёрный Думер
Рокетланчер плавится.


Top
 Profile  
 
PostPosted: 18 Feb 2025, 17:51 
Offline
Приколист

Joined: 04 Feb 2010, 14:42
Posts: 992
Чёрный Думер wrote:
Это я скорее к тому, чтобы никто не удивлялся нерабочим ссылкам. На stackoverflow вон люди уже озадачивались просто.
Поставьте на главной doom2d.org линк https://github.com/Doom2D/nix_actions/releases и всё.


Top
 Profile  
 
PostPosted: 23 Feb 2025, 07:32 
Offline
Принципиально неуничтожаем
User avatar

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, потому что в закрытых экосистемах лучше всего в первую очередь обращаться к имеющимся решениям - они, как правило, лучше и надёжнее.

По поводу сборки для Apple silicon уже говорил тебе, но запишу ещё сюда на всякий. Думал о подписывании Mach-O под системами, отличными от MacOS, и вспомнил, что эту проблему вроде бы решили для Zig. Погуглил и нашёл вот такое - глянь, как время будет. Там вроде есть что-то, похожее на решения.
https://news.ycombinator.com/item?id=32386762
https://news.ycombinator.com/item?id=27400368
https://github.com/ziglang/zig/issues/7103
https://ziggit.dev/t/zig-on-macos-not-signed-cant-execute/410

Ещё напиши, пожалуйста, как обновлять или фиксировать версии библиотек. Потому что 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

DeaDDooMER wrote:
Поставьте на главной doom2d.org линк https://github.com/Doom2D/nix_actions/releases и всё.
Не стоит, это лишнее перенаправление. Для скачивания игры должно быть достаточно одного клика на сайте.

_________________
Чёрный Думер, Чёрный Думер
С монстрами сражается.
Чёрный Думер, Чёрный Думер
Рокетланчер плавится.


Top
 Profile  
 
PostPosted: 23 Feb 2025, 13:04 
Offline

Joined: 27 Apr 2020, 20:02
Posts: 537
С каждой серией замечаний всё больше убеждаюсь, насколько несостоятельна данная итерация автосборки. Прошу Джа пока что даже не задумываться о выкладывании на сайт, потому что работы тут ещё непочатый край.


Top
 Profile  
 
PostPosted: 23 Feb 2025, 18:49 
Offline
Принципиально неуничтожаем
User avatar

Joined: 18 Oct 2009, 04:01
Posts: 7215
Location: Владивосток
Макс wrote:
С каждой серией замечаний всё больше убеждаюсь, насколько несостоятельна данная итерация автосборки. Прошу Джа пока что даже не задумываться о выкладывании на сайт, потому что работы тут ещё непочатый край.
Для выкладывания на сайт так-то достаточно починить только первые два из предыдущего сообщения.

_________________
Чёрный Думер, Чёрный Думер
С монстрами сражается.
Чёрный Думер, Чёрный Думер
Рокетланчер плавится.


Top
 Profile  
 
PostPosted: 23 Feb 2025, 18:59 
Offline

Joined: 27 Apr 2020, 20:02
Posts: 537
Я не понимаю, зачем нужен хедлесс в стандартной сборке. Он только путает.


Top
 Profile  
 
PostPosted: 25 Feb 2025, 17:45 
Offline
Принципиально неуничтожаем
User avatar

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 он присутствовал всегда. Хотя вот иконку ему бы и впрямь сменить не помешало, это правда.

_________________
Чёрный Думер, Чёрный Думер
С монстрами сражается.
Чёрный Думер, Чёрный Думер
Рокетланчер плавится.


Top
 Profile  
 
PostPosted: 25 Feb 2025, 23:56 
Offline
Site Admin
User avatar

Joined: 17 Oct 2009, 23:43
Posts: 7843
Location: \\HULK
Пусть будет. Полезный.

_________________
И неважно, что нет морей на Марсе, каждый морпех носит море в сердце.


Top
 Profile  
 
PostPosted: 26 Feb 2025, 05:20 
Offline
Принципиально неуничтожаем
User avatar

Joined: 18 Oct 2009, 04:01
Posts: 7215
Location: Владивосток
Jabberwock wrote:
Пусть будет. Полезный.
Уже. Разве что мы сошлись на названии headless.exe, потому что DF_headless.exe было бы выше самой игры в списке файлов при упорядочиванию по имени.

_________________
Чёрный Думер, Чёрный Думер
С монстрами сражается.
Чёрный Думер, Чёрный Думер
Рокетланчер плавится.


Top
 Profile  
 
PostPosted: 27 Feb 2025, 12:09 
Offline
Приколист

Joined: 04 Feb 2010, 14:42
Posts: 992
server.exe - и всем было бы понятно.


Top
 Profile  
 
PostPosted: 27 Feb 2025, 14:14 
Offline
Принципиально неуничтожаем
User avatar

Joined: 18 Oct 2009, 04:01
Posts: 7215
Location: Владивосток
DeaDDooMER wrote:
server.exe - и всем было бы понятно.
Так-то оно так, но у меня пока язык не поворачивается назвать его ни server, ни dedicated. Там надо для начала сделать хотя бы так, чтобы он карту сразу стартовал, а не по указке.

_________________
Чёрный Думер, Чёрный Думер
С монстрами сражается.
Чёрный Думер, Чёрный Думер
Рокетланчер плавится.


Top
 Profile  
 
PostPosted: 27 Feb 2025, 23:50 
Offline
Site Admin
User avatar

Joined: 17 Oct 2009, 23:43
Posts: 7843
Location: \\HULK
DeaDDooMER» server.exe - и всем было бы понятно.
Doom2DF_server.exe тогда уж.

ЧД» Там надо для начала сделать хотя бы так, чтобы он карту сразу стартовал, а не по указке.
Вот вообще не обязательно.

_________________
И неважно, что нет морей на Марсе, каждый морпех носит море в сердце.


Top
 Profile  
 
PostPosted: 28 Feb 2025, 14:23 
Offline
Site Admin
User avatar

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_* я обновлю и выложу в эту тему.

_________________
И неважно, что нет морей на Марсе, каждый морпех носит море в сердце.


Top
 Profile  
 
PostPosted: 28 Feb 2025, 15:01 
Offline

Joined: 27 Apr 2020, 20:02
Posts: 537
Jabberwock» Manual_* и Readme_* я обновлю и выложу в эту тему.
В каком году?)


Top
 Profile  
 
PostPosted: 28 Feb 2025, 17:01 
Offline
Site Admin
User avatar

Joined: 17 Oct 2009, 23:43
Posts: 7843
Location: \\HULK
Макс wrote:
Jabberwock» Manual_* и Readme_* я обновлю и выложу в эту тему.
В каком году?)
В каком-нибудь благоприятном для этого события.

_________________
И неважно, что нет морей на Марсе, каждый морпех носит море в сердце.


Top
 Profile  
 
PostPosted: 01 Mar 2025, 09:55 
Offline
Принципиально неуничтожаем
User avatar

Joined: 18 Oct 2009, 04:01
Posts: 7215
Location: Владивосток
YE0F тут новых замечаний подвёз:


А сам Макс, кажется, нашёл причину отсутствия строк кода в распечатках стека:
https://wiki.freepascal.org/FPC_New_Features_Trunk#Support_for_symbolicating_Dwarf_backtraces
Ключ -Xg - это "Create debuginfo in a separate file and add a debuglink section to executable". Не знаю, почему для MacOS это принципиально, но сам факт.

_________________
Чёрный Думер, Чёрный Думер
С монстрами сражается.
Чёрный Думер, Чёрный Думер
Рокетланчер плавится.


Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 112 posts ]  Go to page Previous  1, 2, 3, 4, 5, 6  Next

All times are UTC + 3 hours


Who is online

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

Search for:
Jump to:  
cron
doom2d.org, since 2007