Open SopaDeMacaco-UmaDelicia opened 8 months ago
inflate
Функция относиться к библиотеке zlib, https://github.com/madler/zlib/blob/ac8f12c97d1afd9bafa9c710f827d40a407d3266/inflate.c#L590 которая используется в libEngine.so для распаковки gro файлов схатых в формате zip. https://github.com/tx00100xt/SeriousSamClassic-VK/blob/70c4bbeb424c9809fba80c57d2d2b9e89680ceeb/SamTFE/Sources/Engine/Base/Unzip.cpp#L796
Для начала стоит переустановить zlib. Проверить наличие всех файлов.
└── usr ├── include │ ├── zconf.h │ └── zlib.h ├── lib │ ├── libz.a │ ├── libz.so -> libz.so.1.3 │ ├── libz.so.1 -> libz.so.1.3 │ ├── libz.so.1.3 │ └── pkgconfig │ └── zlib.pc └── share ├── licenses │ └── zlib │ └── LICENSE └── man └── man3 └── zlib.3.gz
10 directories, 9 files
После этого попробовать собрать Serious Sam.
zlib на месте, переустановил, пересобрал сэма, ничего не изменилось, вот ещё лог сборки https://pastebin.com/LWEqGKYV
Лог сборки нормальный.
Странно что всего на один символ ругается. Обычно когда проблемы с zlib ругается сразу на целую кучу функций. И сборка при этом не идет.
Буквально два дня назад собирал под Arch Linux на виртуалке версию 1.10.6 и всё работало. Игра запускалась. Работали обе версии OpenGL и Vulкат. Но есть одно но, я не обновлял свой Arch на виртуалке несколько месяцев. Версия zlib 1.3 вышла в августе, возможно они что-то намудрили. Обновлю систему и посмотрю что к чему.
А пока есть временное решение. Движок может использовать внешнюю библиотеку zlib, а так же внутреннюю. Код zlib включен в исходники движка, и достаточно поменять лишь один параметр для сборки со встроенной zlib.
https://github.com/tx00100xt/SeriousSamClassic-VK/blob/main/SamTFE/Sources/CMakeLists.txt#L13 https://github.com/tx00100xt/SeriousSamClassic-VK/blob/main/SamTSE/Sources/CMakeLists.txt#L13
Нужно параметр On перевести на OFF
Для этого в PKGBUILD нудно сразу после prepare() вставить строчки:
prepare(){
# Build with internal zlib
cd "$srcdir/$_srcname"
find . -name "CMakeLists.txt" -exec sed -i 's/zlib development files" On/zlib development files" OFF/g' {} +
# Making building TFE scripts.
cd "$srcdir/$_srcname/SamTFE/Sources/"
Сейчас собрал у себя на генту со встроенным zlib. Тоже работает нормально.
Запустил сборку с внешним zlib на виртуалке с Arch. Версия zlib тоже 1.3
-- Found SDL2: /usr/lib/libSDL2main.a;/usr/lib/libSDL2.so
-- Found ZLIB: /usr/lib/libz.so (found version "1.3")
->- Found Vulkan: /lib/libvulkan.soЗначит последнее обновление делал в конце августа начале сентября. Всё работает и с внешним zlib. В любом случае только после обновления системы всё станет ясно
И еще. вот предыдущая версия с aur https://aur.archlinux.org/cgit/aur.git/snapshot/aur-aa676baa24a5404fbe914ec85a84f258b21332e2.tar.gz Будет ли она нормально работать?
И еще. вот предыдущая версия с aur https://aur.archlinux.org/cgit/aur.git/snapshot/aur-aa676baa24a5404fbe914ec85a84f258b21332e2.tar.gz Будет ли она нормально работать?
Попробовал, тоже самое. Как я говорил, прошлая версия была версия скомпилирована в июне, а вот zlib обновился в августе, так что может zlib чудит.
Попробовал, тоже самое. Как я говорил, прошлая версия была версия скомпилирована в июне, а вот zlib обновился в августе, так что может zlib чудит.
Предполагаю что проблема где-то в самой системе.
Я только-что сделал полное обновление системы. Собрал с внешним zlib. и всё работает нормально.
Могу пока что предложить как временное решение - PKGBUILD с использование встроенного zlib: serioussam-vk-1.10.6-1-x86_64-with-internal-zlib.tar.gz У себя собрал - работает без внешнего zlib.
В Арче уже не первый раз zlib у людей ломается. https://aur.archlinux.org/packages/serioussam#comment-903474 Может починится следующими обновлениями.
У себя собрал - работает без внешнего zlib.
Т.е. работает чисто с системной zlib?
Собрал со встроенной в движок zlib, заработало
Т.е. работает чисто с системной zlib?
Наоборот - вообще не использует системный zlib. Использует свой внутренний.
Собрал со встроенной в движок zlib, заработало
Отлично.
После обновления до версии 1.10.6 из AUR сэм отказывается запускаться. Терминал выдаёт
serioussam: symbol lookup error: /usr/lib/libEngine.so: undefined symbol: inflate
До этого стояла июньская версия и всё работало отлично.