From 0675571b2e6513b17fe1b02fa041cfe54f00489a Mon Sep 17 00:00:00 2001 From: niko Date: Mon, 3 Aug 2026 16:34:53 +0300 Subject: [PATCH 1/3] Delete PORTING.md --- PORTING.md | 48 ------------------------------------------------ 1 file changed, 48 deletions(-) delete mode 100644 PORTING.md diff --git a/PORTING.md b/PORTING.md deleted file mode 100644 index 395b9c4..0000000 --- a/PORTING.md +++ /dev/null @@ -1,48 +0,0 @@ - -## Операционные системы | Operating Systems -| Платформа
Platform | Завершено
Done % | Состояние
State | -| :--- | :---: | :--- | -| Windows | 100% | Играбельно | -| Linux | 91% | В работе, но уже играбельно
TODO:
 \* Fix Wallpaper manager -| *BSD | 15% | не в работе | -| GNU/Hurd | 0% | не в работеm не хватает библеотек | -| Solaris/OpenSolaris | 1% | не в работе | -| RedoxOS | 0% | Не хватает библеотек | -| Android | 4% | В работе | -| PS Vita | 1% | не в работе | -| PSP | 1% | не в работе | -| Emspritein(web) | 11% | Нет хватает библеотек
 \* Нужно написать порт библеотеки libsigc++2
(А лучше 3 и переписать движок)
 \* Проблемы с компиляцией и зависимостями | -| HaikuOS | 1% | не в работе | -| DOS | 1% | Не в работе | -| Ubuntu Touch | 60% | Будет почти готово тогда когда Linux порт будет доведён до ума | -| Аврора ОС | 0% | не в работе | -| ChromeOS/ChromiumOS | 0.4% | Неизвестное | -| MacOS | 10.5% | Неизвестное, но работа ведётся | -| Kyronix | 10% | В работе сторонней командой разработчиков| -| PS2 | 40% | В работе сторонним человеком| - -## Окружения рабочего стола | Desktop Environments -| Окружение
Environments | Завершено
Done % | -| :--- | :---: | -| X11 standalone window managers | 0% | -| Wayland standalone window managers | 0% | -| LXDE | 100% | -| XFCE | 10% | -| GNOME | 10% | -| KDE | 10% | -| LXQT | 0% | -| MATE | 100% | -| Cinnamon | 10% | -| Budgie | 0% | -| Deepin | 10% | -| COSMIC | 0% | -| Pantheon | 0% | -| Enlightenment | 0% | -| Unity | 0% | -| Sugar Desktop | 0% | -| ROX Desktop | 0% | -| Fluxbox | 0% | -| Trinity | 0% | -| Fish | 0% | -| Lumina | 0% | -| IceWM | 0% | From 48f50c6f72b4f6f95b35646e2f69cf52936a901d Mon Sep 17 00:00:00 2001 From: niko Date: Mon, 3 Aug 2026 22:17:01 +0300 Subject: [PATCH 2/3] Update PEOPLES.md --- PEOPLES.md | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/PEOPLES.md b/PEOPLES.md index f1f6c5a..ef97c49 100644 --- a/PEOPLES.md +++ b/PEOPLES.md @@ -4,6 +4,7 @@ * "Визя" * DepressedTWM * referr +* блинчек ## Artists @@ -18,15 +19,16 @@ ## Testers and helpers: * Rubik * Prime 223432 - -## Donators -* Kodu +* Алула(from Oneshot) +* Охотник +* Ouzly ## Telegram moderators * Creature_of_steel1 * Обси(ENG channel) * Freskovich * "Визя" +* Ouzly ## Matrix moderators * referr From 42b87478c0e43c9d649eeacd373ad9b00606578e Mon Sep 17 00:00:00 2001 From: AnmiTaliDev Date: Tue, 4 Aug 2026 10:12:40 +0500 Subject: [PATCH 3/3] fix(freebsd): correct platform macros, missing includes, and printf/variadic bugs --- CMakeLists.txt | 4 ++-- binding-mri/binding-mri.cpp | 5 ++--- binding-mri/binding-util.h | 1 + binding-mri/journal-binding.cpp | 4 ++-- binding-mri/niko-binding.cpp | 2 +- binding-mri/screen-binding.cpp | 21 +++++++++++++++++---- src/main.cpp | 2 +- src/meow.cpp | 27 +++++++++++++++++---------- src/modloader.cpp | 1 - src/xdg-user-dir-lookup.c | 1 + 10 files changed, 44 insertions(+), 24 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index fea6217..0aea0ea 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -153,7 +153,7 @@ elseif(LINUX) list(APPEND MAIN_HEADERS src/xdg-user-dir-lookup.h) elseif(BSD) find_package(PkgConfig REQUIRED) - pkg_check_modules(LINUXPKGS REQUIRED gtk+-3.0) + pkg_check_modules(LINUXPKGS REQUIRED gtk+-3.0 libxfconf-0) include_directories(${LINUXPKGS_INCLUDE_DIRS}) add_compile_options(${LINUXPKGS_CFLAGS_OTHER}) list(APPEND PLATFORM_LIBRARIES ${LINUXPKGS_LDFLAGS}) @@ -421,7 +421,7 @@ find_package(Ruby 3.0 REQUIRED COMPONENTS Development) pkg_check_modules(VORBISFILE REQUIRED vorbisfile) find_package_handle_standard_args(pixman-1 DEFAULT_MSG PIXMAN_LIBRARY PIXMAN_INCLUDE_DIR) mark_as_advanced(PIXMAN_INCLUDE_DIR PIXMAN_LIBRARY) -find_package(OpenSSL CONFIG REQUIRED COMPONENTS Crypto) +find_package(OpenSSL REQUIRED COMPONENTS Crypto) pkg_check_modules(SIGC2 REQUIRED sigc++-2.0) target_compile_definitions(${PROJECT_NAME} PRIVATE ${DEFINES}) diff --git a/binding-mri/binding-mri.cpp b/binding-mri/binding-mri.cpp index f70b5db..0a760c5 100644 --- a/binding-mri/binding-mri.cpp +++ b/binding-mri/binding-mri.cpp @@ -36,7 +36,6 @@ #include "sunshine.h" #include "modloader.h" -#include #include #include #include @@ -380,7 +379,7 @@ static void runCustomScript(const std::string &filename){ std::string scriptData; if (!readFileSDL(filename.c_str(), scriptData)){ - crash(Exception::MEOW, "Unable to open %s", filename); + crash(Exception::MEOW, "Unable to open %s", filename.c_str()); return; } @@ -412,7 +411,7 @@ static void runRMXPScripts(BacktraceData &btData){ try{ scriptArray = kernelLoadDataInt(scriptPack.c_str(), false); }catch (const Exception &e){ - crash(Exception::MEOW, "Failed to read script data: %s", e.msg); + crash(Exception::MEOW, "Failed to read script data: %s", e.msg.c_str()); return; } diff --git a/binding-mri/binding-util.h b/binding-mri/binding-util.h index 8964139..d549bc1 100644 --- a/binding-mri/binding-util.h +++ b/binding-mri/binding-util.h @@ -26,6 +26,7 @@ //костыль ебаный сука #undef snprintf #undef inline +#undef close #include "exception.h" diff --git a/binding-mri/journal-binding.cpp b/binding-mri/journal-binding.cpp index 0f84e1a..ce91ace 100644 --- a/binding-mri/journal-binding.cpp +++ b/binding-mri/journal-binding.cpp @@ -19,7 +19,7 @@ #include #include #include - #ifdef OS_LINUX + #ifdef __linux__ #include #endif #include @@ -164,7 +164,7 @@ void journalBindingInit(){ mutex = SDL_CreateMutex(); SDL_memset((char*)lang_buffer, 0, BUFFER_SIZE); lang_buffer[0] = '_'; -#if defined __linux +#ifdef unix_like mkfifo(PIPE_PATH.c_str(), 0666); atexit(cleanup_pipe); #endif diff --git a/binding-mri/niko-binding.cpp b/binding-mri/niko-binding.cpp index ec8e169..33e0d8e 100644 --- a/binding-mri/niko-binding.cpp +++ b/binding-mri/niko-binding.cpp @@ -19,7 +19,7 @@ #include #include #include - #ifdef OS_LINUX + #ifdef __linux__ #include #endif #include diff --git a/binding-mri/screen-binding.cpp b/binding-mri/screen-binding.cpp index 92c2551..cbcd18e 100644 --- a/binding-mri/screen-binding.cpp +++ b/binding-mri/screen-binding.cpp @@ -6,6 +6,10 @@ #include "sharedstate.h" #include "pipe.h" +#if defined __FreeBSD__ || defined __DragonFly__ +#include +#endif + static Pipe ipc; static void start(){ @@ -29,10 +33,19 @@ static void start(){ #else #if defined unix_like char path[PATH_MAX]; - ssize_t len = readlink("/proc/self/exe", path, PATH_MAX); - if (len == -1) - rb_raise(rb_eRuntimeError, "Cannot determine path of running executable"); - std::string exename = std::string(path, len); + std::string exename; + #if defined __FreeBSD__ || defined __DragonFly__ + int mib[4] = {CTL_KERN, KERN_PROC, KERN_PROC_PATHNAME, -1}; + size_t size = sizeof(path); + if (sysctl(mib, 4, path, &size, NULL, 0) != 0) + rb_raise(rb_eRuntimeError, "Cannot determine path of running executable"); + exename = std::string(path); + #else + ssize_t len = readlink("/proc/self/exe", path, PATH_MAX); + if (len == -1) + rb_raise(rb_eRuntimeError, "Cannot determine path of running executable"); + exename = std::string(path, len); + #endif #else #endif diff --git a/src/main.cpp b/src/main.cpp index 7444034..e31d06f 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -293,7 +293,7 @@ int main(int argc, char *argv[]){ if (!conf.gameFolder.empty()){ if (chdir(conf.gameFolder.c_str()) != 0){ - crash(Exception::MEOW, "Unable to switch into gameFolder %s", conf.gameFolder); + crash(Exception::MEOW, "Unable to switch into gameFolder %s", conf.gameFolder.c_str()); return 0; } } diff --git a/src/meow.cpp b/src/meow.cpp index 58a3b62..98943c1 100644 --- a/src/meow.cpp +++ b/src/meow.cpp @@ -23,6 +23,9 @@ #include #include #include +#if defined(__FreeBSD__) || defined(__DragonFly__) || defined(__OpenBSD__) || defined(__NetBSD__) +#define BOOST_STACKTRACE_GNU_SOURCE_NOT_REQUIRED +#endif #include #include #include "sunshine.h" @@ -83,15 +86,19 @@ void crash(Exception::Type t, const char *fmt, ...){ o << "[BOOST stacktrace()]" << std::endl; o << boost::stacktrace::stacktrace() << std::endl; o << "[OpenGL]" << std::endl; - try{ - o << "GL Vendor: " << glGetStringInt(GL_VENDOR) << std::endl; - o << "GL Renderer: " << glGetStringInt(GL_RENDERER) << std::endl; - o << "GL Version: " << glGetStringInt(GL_VERSION) << std::endl; - o << "GLSL Version: " << glGetStringInt(GL_SHADING_LANGUAGE_VERSION) << std::endl; - o << "Shading language version: " << glGetStringInt(GL_SHADING_LANGUAGE_VERSION) << std::endl; - o << "GL Extensions: " << glGetStringInt(GL_EXTENSIONS) << std::endl; - }catch(const std::exception& e){ - o << "Crashed before OpenGL initialization: " << e.what() << std::endl; + if (gl.GetString){ + try{ + o << "GL Vendor: " << glGetStringInt(GL_VENDOR) << std::endl; + o << "GL Renderer: " << glGetStringInt(GL_RENDERER) << std::endl; + o << "GL Version: " << glGetStringInt(GL_VERSION) << std::endl; + o << "GLSL Version: " << glGetStringInt(GL_SHADING_LANGUAGE_VERSION) << std::endl; + o << "Shading language version: " << glGetStringInt(GL_SHADING_LANGUAGE_VERSION) << std::endl; + o << "GL Extensions: " << glGetStringInt(GL_EXTENSIONS) << std::endl; + }catch(const std::exception& e){ + o << "Crashed before OpenGL initialization: " << e.what() << std::endl; + } + }else{ + o << "OpenGL not initialized yet" << std::endl; } o << "[Versions of libs]" << std::endl; const int sdlcompiled = SDL_VERSION; @@ -146,7 +153,7 @@ void crash(Exception::Type t, const char *fmt, ...){ } } - if(!t == Exception::MEOW) + if(t != Exception::MEOW) throw Exception(t, msg); } diff --git a/src/modloader.cpp b/src/modloader.cpp index b641ffe..6ed87a2 100644 --- a/src/modloader.cpp +++ b/src/modloader.cpp @@ -17,7 +17,6 @@ #include #include #include -#include #include #include #include diff --git a/src/xdg-user-dir-lookup.c b/src/xdg-user-dir-lookup.c index c3b5d2f..0250a55 100644 --- a/src/xdg-user-dir-lookup.c +++ b/src/xdg-user-dir-lookup.c @@ -27,6 +27,7 @@ #include "xdg-user-dir-lookup.h" +#include #include /** * xdg_user_dir_lookup_with_fallback: