diff --git a/CMakeLists.txt b/CMakeLists.txt
index 636bb9b..4a34e0c 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -191,7 +191,7 @@ elseif(CMAKE_SYSTEM_NAME STREQUAL "Linux")
list(APPEND MAIN_HEADERS src/xdg-user-dir-lookup.h)
elseif(CMAKE_SYSTEM_NAME STREQUAL "FreeBSD")
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})
@@ -454,7 +454,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/PEOPLES.md b/PEOPLES.md
index 79f2f0e..ef97c49 100644
--- a/PEOPLES.md
+++ b/PEOPLES.md
@@ -4,7 +4,7 @@
* "Визя"
* DepressedTWM
* referr
-* MeTLAaaaaa
+* блинчек
## Artists
@@ -19,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
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% |
diff --git a/binding-mri/binding-mri.cpp b/binding-mri/binding-mri.cpp
index d484746..7b7b5f0 100644
--- a/binding-mri/binding-mri.cpp
+++ b/binding-mri/binding-mri.cpp
@@ -398,7 +398,7 @@ static void runCustomScript(const std::string &filename){
std::string scriptData;
if (!readFileSDL(filename.c_str(), scriptData)){
- crash(Exception::NoFileError, false, "Unable to open %s", filename);
+ crash(Exception::NoFileError, false, "Unable to open %s", filename.c_str());
return;
}
@@ -430,7 +430,7 @@ static void runRMXPScripts(BacktraceData &btData){
try{
scriptArray = kernelLoadDataInt(scriptPack.c_str(), false);
}catch (const Exception &e){
- crash(Exception::IOError, false ,"Failed to read script data: %s", e.msg);
+ crash(Exception::IOError, false, "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 1cc9657..b7f7036 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -284,7 +284,7 @@ int main(int argc, char *argv[]){
if (!conf.gameFolder.empty()){
if (chdir(conf.gameFolder.c_str()) != 0){
- crash(Exception::SDLError, false, "Unable to switch into gameFolder %s", conf.gameFolder);
+ crash(Exception::SDLError, false, "Unable to switch into gameFolder %s", conf.gameFolder.c_str());
return 0;
}
}
diff --git a/src/meow.cpp b/src/meow.cpp
index 35caba2..f6eea92 100644
--- a/src/meow.cpp
+++ b/src/meow.cpp
@@ -24,6 +24,9 @@
#include
#undef vsnprintf
#undef snprintf
+#if defined(__FreeBSD__) || defined(__DragonFly__) || defined(__OpenBSD__) || defined(__NetBSD__)
+#define BOOST_STACKTRACE_GNU_SOURCE_NOT_REQUIRED
+#endif
#include
#include
#include
diff --git a/src/modloader.cpp b/src/modloader.cpp
index 9507b56..17d488f 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 85e7df1..ebf99f8 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
#include
/**