From 6ac6bee2dae33e6ab8981964a168f01549ae4973 Mon Sep 17 00:00:00 2001 From: TheZeldakatze <60302169+TheZeldakatze@users.noreply.github.com> Date: Wed, 10 Jul 2024 10:29:43 +0200 Subject: [PATCH] abaddon: new recipe (#10367) Co-authored-by: zeldakatze --- net-im/abaddon/abaddon-0.2.1.recipe | 150 ++++++++++++++ .../abaddon/additional-files/abaddon.rdef.in | 28 +++ net-im/abaddon/patches/abaddon-0.2.1.patchset | 186 ++++++++++++++++++ 3 files changed, 364 insertions(+) create mode 100644 net-im/abaddon/abaddon-0.2.1.recipe create mode 100644 net-im/abaddon/additional-files/abaddon.rdef.in create mode 100644 net-im/abaddon/patches/abaddon-0.2.1.patchset diff --git a/net-im/abaddon/abaddon-0.2.1.recipe b/net-im/abaddon/abaddon-0.2.1.recipe new file mode 100644 index 000000000..173789192 --- /dev/null +++ b/net-im/abaddon/abaddon-0.2.1.recipe @@ -0,0 +1,150 @@ +SUMMARY="An alternative Discord client made in C++ with GTK" +DESCRIPTION=" +Abaddon is an alternative Discord client which supports most chat message types. + +To Log In, you either have to use the mobile app or extract the login token from +the discord web client. + +Please note that alternative discord clients have a higher risk of tripping discord's +spam filter. If you should get caught in the spam filter, you can usually appeal at +discord. + +NOTE: currently this port does not support sound! +" +HOMEPAGE="https://github.com/uowuo/abaddon/" +COPYRIGHT="2024 uowuo" +LICENSE="GNU GPL v3" +REVISION="1" +SOURCE_URI="https://github.com/uowuo/abaddon/archive/refs/tags/v0.2.1.tar.gz" +CHECKSUM_SHA256="407d14bc7659c65eca1c5266fb96a60b1e169b31c122159ae7f54e69a86e0b45" +SOURCE_URI_2="https://github.com/machinezone/IXWebSocket/archive/refs/tags/v11.4.5.tar.gz" +CHECKSUM_SHA256_2="c5fc225edec32bf7d583e55347ef2c9c4940d005c13ef5e848354a85602f5fd6" +SOURCE_DIR_2="IXWebSocket-11.4.5" +SOURCE_URI_3="https://github.com/mackron/miniaudio/archive/refs/tags/0.11.21.tar.gz" +CHECKSUM_SHA256_3="6afb5c231613d2fab4f1c668b7243ff9a7d6d78a7f5a2692c133f026fe508506" +SOURCE_DIR_3="miniaudio-0.11.21" +SOURCE_URI_4="https://github.com/nayuki/QR-Code-generator/archive/refs/tags/v1.8.0.tar.gz" +CHECKSUM_SHA256_4="2ec0a4d33d6f521c942eeaf473d42d5fe139abcfa57d2beffe10c5cf7d34ae60" +SOURCE_DIR_4="QR-Code-generator-1.8.0" + +PATCHES="abaddon-0.2.1.patchset" +ADDITIONAL_FILES="abaddon.rdef.in" + +ARCHITECTURES="all !x86_gcc2" +SECONDARY_ARCHITECTURES="x86" + +USER_SETTINGS_FILES=" + settings/abaddon directory + " + +PROVIDES=" + abaddon$secondaryArchSuffix + app:Abaddon + " +REQUIRES=" + haiku$secondaryArchSuffix + lib:libatk_1.0$secondaryArchSuffix + lib:libatkmm_1.6$secondaryArchSuffix + lib:libcairo$secondaryArchSuffix + lib:libcairomm_1.0$secondaryArchSuffix + lib:libcrypto$secondaryArchSuffix + lib:libcurl$secondaryArchSuffix + lib:libfmt$secondaryArchSuffix + lib:libfontconfig$secondaryArchSuffix + lib:libfreetype$secondaryArchSuffix + lib:libgdk_3$secondaryArchSuffix + lib:libgdkmm_3.0$secondaryArchSuffix + lib:libgdk_pixbuf_2.0$secondaryArchSuffix + lib:libglib_2.0$secondaryArchSuffix + lib:libglibmm$secondaryArchSuffix + lib:libgtk_3$secondaryArchSuffix + lib:libgtkmm_3.0$secondaryArchSuffix + lib:libhandy_1${secondaryArchSuffix} + lib:libharfbuzz$secondaryArchSuffix + lib:libopus$secondaryArchSuffix + lib:libpango_1.0$secondaryArchSuffix + lib:libpangomm_1.4$secondaryArchSuffix + lib:librnnoise$secondaryArchSuffix + lib:libsigc_2.0$secondaryArchSuffix + lib:libsodium$secondaryArchSuffix + lib:libssl$secondaryArchSuffix + lib:libspdlog$secondaryArchSuffix + lib:libsqlite3$secondaryArchSuffix + lib:libz$secondaryArchSuffix + " + +BUILD_REQUIRES=" + haiku${secondaryArchSuffix}_devel + devel:libatk_1.0$secondaryArchSuffix + devel:libatkmm_1.6$secondaryArchSuffix + devel:libcairo$secondaryArchSuffix + devel:libcrypto$secondaryArchSuffix + devel:libcairomm_1.0$secondaryArchSuffix + devel:libcurl$secondaryArchSuffix + devel:libfmt$secondaryArchSuffix + devel:libfontconfig$secondaryArchSuffix + devel:libfreetype$secondaryArchSuffix + devel:libgdk_3$secondaryArchSuffix + devel:libgdkmm_3.0$secondaryArchSuffix + devel:libgdk_pixbuf_2.0$secondaryArchSuffix + devel:libglib_2.0$secondaryArchSuffix + devel:libglibmm$secondaryArchSuffix + devel:libgtk_3$secondaryArchSuffix + devel:libgtkmm_3.0$secondaryArchSuffix + devel:libhandy_1${secondaryArchSuffix} + devel:libharfbuzz$secondaryArchSuffix + devel:nlohmann_json + devel:libopus$secondaryArchSuffix + devel:libpango_1.0$secondaryArchSuffix + devel:libpangomm_1.4$secondaryArchSuffix + devel:librnnoise$secondaryArchSuffix + devel:libsigc_2.0$secondaryArchSuffix + devel:libsodium$secondaryArchSuffix + devel:libssl$secondaryArchSuffix + devel:libspdlog$secondaryArchSuffix + devel:libsqlite3$secondaryArchSuffix + devel:libz$secondaryArchSuffix + " +BUILD_PREREQUIRES=" + cmd:cmake + cmd:make + cmd:gcc$secondaryArchSuffix + cmd:pkg_config$secondaryArchSuffix + " + +BUILD() { + mkdir -p subprojects/ixwebsocket/ + mkdir -p subprojects/miniaudio/ + mkdir -p subprojects/qrcodegen/ + cp -r $sourceDir2/* subprojects/ixwebsocket/ + cp -r $sourceDir3/* subprojects/miniaudio/ + cp -r $sourceDir4/* subprojects/qrcodegen/ + + cmake -Bbuild \ + -DCMAKE_BUILD_TYPE=Release \ + -DUSE_KEYCHAIN=0 \ + -DENABLE_VOICE=OFF + make -C build $jobArgs +} + +INSTALL() { + local APP_SIGNATURE="application/x-vnd.abaddon" + local MAJOR="`echo "$portVersion" | cut -d. -f1`" + local MIDDLE="`echo "$portVersion" | cut -d. -f2`" + local MINOR="`echo "$portVersion" | cut -d. -f3`" + sed \ + -e "s|@APP_SIGNATURE@|$APP_SIGNATURE|" \ + -e "s|@MAJOR@|$MAJOR|" \ + -e "s|@MIDDLE@|$MIDDLE|" \ + -e "s|@MINOR@|$MINOR|" \ + -e "s|@LONG_INFO@|$SUMMARY|" \ + $portDir/additional-files/abaddon.rdef.in > abaddon.rdef + + mkdir -p $dataDir/abaddon + mkdir -p $appsDir + cp -r res/* $dataDir/abaddon + cp build/abaddon $appsDir/Abaddon + + addResourcesToBinaries abaddon.rdef $appsDir/Abaddon + addAppDeskbarSymlink $appsDir/Abaddon +} diff --git a/net-im/abaddon/additional-files/abaddon.rdef.in b/net-im/abaddon/additional-files/abaddon.rdef.in new file mode 100644 index 000000000..8ce9561e8 --- /dev/null +++ b/net-im/abaddon/additional-files/abaddon.rdef.in @@ -0,0 +1,28 @@ +resource app_flags B_EXCLUSIVE_LAUNCH; + +resource app_version { + major = @MAJOR@, + middle = @MIDDLE@, + minor = @MINOR@, + + variety = B_APPV_FINAL, + + short_info = "Abaddon", + long_info = "@LONG_INFO@" +}; + +resource app_signature "@APP_SIGNATURE@"; + +resource vector_icon { + $"6E63696604050003FFB852038C6F4403900303050000020743274724BE20B7E6" + $"33362F2DBB29BD193E44BDBBC0494D515239C65CBD64CC19B8F94F37C5A137C7" + $"4C374D2EC5DCB9BE4929452CC185B800C456B52F02043824C01524B90A242C34" + $"2CB7722CBE7D4B55C09C55C7A7555B3A5BC0E15BB9D6020D4030C34530BEEC30" + $"2F2AB8F6B672B8FDB7852938B619BC5EB851BD40273BB53BBE09293A294229BF" + $"AC29C126274EB646C429B54DC67EB895C3F8B896C3E7B8934B334AB9DAC444BB" + $"D4C2CC3652BAC9C7C5BCBEC612335EB9BA5EBBE95E4657C1DBC8C4C244C8FA52" + $"4FC58CC5CAC84BC5A95040504350BC3A02044030C34530BC3A30304030BC3A30" + $"C3454050BC3A50C34550504050C34550BC3A050A020103000A010102000A0001" + $"01201F250A0301040238000000000000000037FFFF49E0004860000A03010402" + $"38000000000000000037FFFF4A7000492000" +}; diff --git a/net-im/abaddon/patches/abaddon-0.2.1.patchset b/net-im/abaddon/patches/abaddon-0.2.1.patchset new file mode 100644 index 000000000..d9aa30ca2 --- /dev/null +++ b/net-im/abaddon/patches/abaddon-0.2.1.patchset @@ -0,0 +1,186 @@ +From 0dbd41d190666118220a41e539bd53b90b0486b3 Mon Sep 17 00:00:00 2001 +From: zeldakatze +Date: Wed, 10 Apr 2024 23:11:58 +0200 +Subject: fix build for haiku + + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index d1b56fc..6e1d906 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -74,12 +74,17 @@ endif () + + target_precompile_headers(abaddon PRIVATE src/abaddon.hpp src/util.hpp) + +-if ((CMAKE_CXX_COMPILER_ID STREQUAL "GNU") OR ++if (NOT (CMAKE_SYSTEM_NAME STREQUAL "Haiku") AND ++((CMAKE_CXX_COMPILER_ID STREQUAL "GNU") OR + (CMAKE_CXX_COMPILER_ID STREQUAL "Clang" AND +-((CMAKE_SYSTEM_NAME STREQUAL "Linux") OR (CMAKE_CXX_COMPILER_VERSION LESS 9)))) ++((CMAKE_SYSTEM_NAME STREQUAL "Linux") OR (CMAKE_CXX_COMPILER_VERSION LESS 9))))) + target_link_libraries(abaddon stdc++fs) + endif () + ++if (CMAKE_SYSTEM_NAME STREQUAL "Haiku") ++ target_link_libraries(abaddon network) ++endif () ++ + if (NOT WIN32) + target_sources(abaddon PRIVATE src/notifications/notifier_gio.cpp) + else () +diff --git a/cmake/Findatkmm.cmake b/cmake/Findatkmm.cmake +index 68c3bc6..623d0e1 100644 +--- a/cmake/Findatkmm.cmake ++++ b/cmake/Findatkmm.cmake +@@ -25,7 +25,8 @@ find_path(ATKMM_CONFIG_INCLUDE_DIR + /usr/lib + /usr/local/lib + /opt/local/lib +- PATH_SUFFIXES ${ATKMM_LIBRARY_NAME}/include) ++ PATH_SUFFIXES ${ATKMM_LIBRARY_NAME}/include ++ ${ATKMM_LIBRARY_NAME}) + + find_library(ATKMM_LIBRARY + NAMES ${ATKMM_LIBRARY_NAME} +diff --git a/cmake/Findgdkmm.cmake b/cmake/Findgdkmm.cmake +index 5316bb7..23077ca 100644 +--- a/cmake/Findgdkmm.cmake ++++ b/cmake/Findgdkmm.cmake +@@ -1,4 +1,5 @@ + set(gdkmm_LIBRARY_NAME gdkmm-3.0) ++set(gtkmm_LIBRARY_NAME gtkmm-3.0) + + find_package(PkgConfig) + if (PKG_CONFIG_FOUND) +@@ -23,7 +24,8 @@ find_path(gdkmm_CONFIG_INCLUDE_DIR + /usr/lib + /usr/local/lib + /opt/local/lib +- PATH_SUFFIXES ${gdkmm_LIBRARY_NAME}/include) ++ PATH_SUFFIXES ${gdkmm_LIBRARY_NAME}/include ++ ${gtkmm_LIBRARY_NAME}) + + find_library(gdkmm_LIBRARY + NAMES ${gdkmm_LIBRARY_NAME} +diff --git a/cmake/Findglibmm.cmake b/cmake/Findglibmm.cmake +index 27220e6..11bd996 100644 +--- a/cmake/Findglibmm.cmake ++++ b/cmake/Findglibmm.cmake +@@ -22,7 +22,8 @@ find_path(GLIBMM_INCLUDE_DIR + find_path(GLIBMM_CONFIG_INCLUDE_DIR + NAMES glibmmconfig.h + HINTS ${GLIBMM_LIBRARY_HINTS} +- PATH_SUFFIXES ${GLIBMM_LIBRARY_NAME}/include) ++ PATH_SUFFIXES ${GLIBMM_LIBRARY_NAME}/include ++ ${GLIBMM_LIBRARY_NAME}) + + find_library(GLIBMM_LIBRARY + NAMES ${GLIBMM_LIBRARY_NAME} +diff --git a/cmake/Findgtkmm.cmake b/cmake/Findgtkmm.cmake +index addbede..908a08c 100644 +--- a/cmake/Findgtkmm.cmake ++++ b/cmake/Findgtkmm.cmake +@@ -32,12 +32,15 @@ find_path(GTKMM_INCLUDE_DIR + find_path(GTKMM_CONFIG_INCLUDE_DIR + NAMES gtkmmconfig.h + HINTS ${GTKMM_LIBRARY_HINTS} ++ PATH_SUFFIXES ${GTKMM_LIBRARY_NAME} + PATH_SUFFIXES ${GTKMM_LIBRARY_NAME}/include) + + find_library(GTKMM_LIB + NAMES ${GTKMM_LIBRARY_NAME} + gtkmm + HINTS ${GTKMM_LIBRARY_HINTS} ++ HINTS ${GTKMM_INCLUDE_DIR} ++ PATH ${GTKMM_INCLUDE_DIR} + PATH_SUFFIXES ${GTKMM_LIBRARY_NAME} + ${GTKMM_LIBRARY_NAME}/include) + +diff --git a/cmake/Findsigc++.cmake b/cmake/Findsigc++.cmake +index e0f56c0..d81eb15 100644 +--- a/cmake/Findsigc++.cmake ++++ b/cmake/Findsigc++.cmake +@@ -19,7 +19,8 @@ find_path(SIGC++_INCLUDE_DIR + find_path(SIGC++_CONFIG_INCLUDE_DIR + NAMES sigc++config.h + HINTS ${SIGC++_LIBRARY_HINTS} +- PATH_SUFFIXES ${SIGC++_LIBRARY_NAME}/include) ++ PATH_SUFFIXES ${SIGC++_LIBRARY_NAME}/include ++ ${SIGC++_LIBRARY_NAME}) + + find_library(SIGC++_LIBRARY + NAMES ${SIGC++_LIBRARY_FILE} +-- +2.43.2 + + +From 3059f8468983a8db4bc5bd70768ab004926510a7 Mon Sep 17 00:00:00 2001 +From: zeldakatze +Date: Thu, 11 Apr 2024 00:16:45 +0200 +Subject: abaddon: add haiku platform code + + +diff --git a/src/platform.cpp b/src/platform.cpp +index 0a69721..47b6bbc 100644 +--- a/src/platform.cpp ++++ b/src/platform.cpp +@@ -215,6 +215,56 @@ std::string Platform::FindStateCacheFolder() { + return home_path; + } + ++#elif __HAIKU__ ++#include ++#include ++ ++std::string Platform::FindResourceFolder() { ++ static std::string found_path; ++ static bool found = false; ++ if (found) return found_path; ++ ++ dev_t volume = dev_for_path("/boot"); ++ char buffer[B_PATH_NAME_LENGTH+B_FILE_NAME_LENGTH]; ++ find_directory(B_SYSTEM_DATA_DIRECTORY, volume, false, buffer, sizeof(buffer)); ++ strcat(buffer, "/abaddon/"); ++ found_path = std::string(buffer); ++ return found_path; ++} ++ ++std::string Platform::FindConfigFile() { ++ const auto cfg = std::getenv("ABADDON_CONFIG"); ++ if (cfg != nullptr) return cfg; ++ ++ static std::string found_path; ++ static bool found = false; ++ if (found) return found_path; ++ ++ dev_t volume = dev_for_path("/boot"); ++ char buffer[B_PATH_NAME_LENGTH+B_FILE_NAME_LENGTH]; ++ char cmdbuffer[B_PATH_NAME_LENGTH+B_FILE_NAME_LENGTH] = "mkdir -p "; ++ find_directory(B_USER_SETTINGS_DIRECTORY, volume, false, buffer, sizeof(buffer)); ++ strcat(buffer, "/abaddon/"); ++ strcat(cmdbuffer, buffer); ++ system(cmdbuffer); ++ strcat(buffer, "abaddon.ini"); ++ found_path = std::string(buffer); ++ return found_path; ++} ++ ++std::string Platform::FindStateCacheFolder() { ++ static std::string found_path; ++ static bool found = false; ++ if (found) return found_path; ++ ++ dev_t volume = dev_for_path("/boot"); ++ char buffer[B_PATH_NAME_LENGTH+B_FILE_NAME_LENGTH]; ++ find_directory(B_SYSTEM_CACHE_DIRECTORY, volume, false, buffer, sizeof(buffer)); ++ strcat(buffer, "/abaddon/"); ++ found_path = std::string(buffer); ++ return found_path; ++} ++ + + #else + std::string Platform::FindResourceFolder() { +-- +2.43.2 +