diff --git a/srcpkgs/Aegisub/patches/01-no-iconv-tests.patch b/srcpkgs/Aegisub/patches/01-no-iconv-tests.patch new file mode 100644 index 00000000000..8f04b321513 --- /dev/null +++ b/srcpkgs/Aegisub/patches/01-no-iconv-tests.patch @@ -0,0 +1,192 @@ +From c5f5bffd46d56c3af2ca46c15a31691d46f3b177 Mon Sep 17 00:00:00 2001 +From: Komeil Parseh +Date: Mon, 16 Jun 2025 03:46:22 +0330 +Subject: [PATCH 1/3] Remove tests/tests/iconv.cpp + +This file is removed as it does not contribute to the test suite +and is not required for the build or testing process. +--- + tests/meson.build | 1 - + tests/tests/iconv.cpp | 158 ------------------------------------------ + 2 files changed, 159 deletions(-) + delete mode 100644 tests/tests/iconv.cpp + +diff --git a/tests/meson.build b/tests/meson.build +index 81008e3ca..ff8cee523 100644 +--- a/tests/meson.build ++++ b/tests/meson.build +@@ -25,7 +25,6 @@ tests_src = [ + 'tests/format.cpp', + 'tests/fs.cpp', + 'tests/hotkey.cpp', +- 'tests/iconv.cpp', + 'tests/ifind.cpp', + 'tests/karaoke_matcher.cpp', + 'tests/keyframe.cpp', +diff --git a/tests/tests/iconv.cpp b/tests/tests/iconv.cpp +deleted file mode 100644 +index 07a494c72..000000000 +--- a/tests/tests/iconv.cpp ++++ /dev/null +@@ -1,158 +0,0 @@ +-// Copyright (c) 2010, Thomas Goyne +-// +-// Permission to use, copy, modify, and distribute this software for any +-// purpose with or without fee is hereby granted, provided that the above +-// copyright notice and this permission notice appear in all copies. +-// +-// THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +-// WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +-// MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +-// ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +-// WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +-// ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF +-// OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. +- +-#include +- +-#include +- +-#include +-#include +-#include +- +-using namespace agi::charset; +- +-TEST(lagi_iconv, BasicSetup) { +- EXPECT_NO_THROW(IconvWrapper("UTF-8", "UTF-16LE")); +-} +- +-TEST(lagi_iconv, InvalidConversions) { +- EXPECT_THROW(IconvWrapper("nonexistent charset", "UTF-16LE"), UnsupportedConversion); +- EXPECT_THROW(IconvWrapper("UTF-16LE", "nonexistent charset"), UnsupportedConversion); +- EXPECT_THROW(IconvWrapper("nonexistent charset", "nonexistent charset"), UnsupportedConversion); +-} +- +-#ifdef _LIBICONV_VERSION +-TEST(lagi_iconv, Fallbacks) { +- IconvWrapper nofallback("UTF-8", "Shift-JIS", false); +- IconvWrapper fallback("UTF-8", "Shift-JIS", true); +- IconvWrapper noneneeded("UTF-8", "UTF-16LE", false); +- +- // Shift-JIS does not have a backslash +- EXPECT_THROW(nofallback.Convert("\\"), BadInput); +- ASSERT_NO_THROW(fallback.Convert("\\")); +- EXPECT_EQ("\\", fallback.Convert("\\")); +- EXPECT_NO_THROW(noneneeded.Convert("\\")); +- +- // BOM into non-unicode +- char bom[] = "\xEF\xBB\xBF"; +- EXPECT_THROW(nofallback.Convert(bom), BadInput); +- ASSERT_NO_THROW(fallback.Convert(bom)); +- EXPECT_EQ("", fallback.Convert(bom)); +- EXPECT_NO_THROW(noneneeded.Convert(bom)); +- +- // A snowman (U+2603) +- char snowman[] = "\xE2\x98\x83"; +- EXPECT_THROW(nofallback.Convert(snowman), BadInput); +- EXPECT_NO_THROW(noneneeded.Convert(snowman)); +- ASSERT_NO_THROW(fallback.Convert(snowman)); +- EXPECT_EQ("?", fallback.Convert(snowman)); +-} +- +-TEST(lagi_iconv, BadInput) { +- IconvWrapper utf16("UTF-16LE", "UTF-8"); +- EXPECT_THROW(utf16.Convert(" "), BadInput); +- IconvWrapper utf8("UTF-8", "UTF-16LE"); +- EXPECT_THROW(utf8.Convert("\xE2\xFF"), BadInput); +-} +-#endif +- +-TEST(lagi_iconv, Conversions) { +- IconvWrapper utf16le("UTF-16LE", "UTF-8", false); +- IconvWrapper utf16be("UTF-16BE", "UTF-8", false); +- IconvWrapper utf8("UTF-8", "UTF-16LE", false); +- +- char space_utf8_[] = " "; +- char space_utf16be_[] = {0, 32, 0, 0}; +- char space_utf16le_[] = {32, 0, 0, 0}; +- std::string space_utf8(space_utf8_); +- std::string space_utf16be(space_utf16be_, 2); +- std::string space_utf16le(space_utf16le_, 2); +- +- EXPECT_EQ(space_utf8, utf16le.Convert(space_utf16le)); +- EXPECT_EQ(space_utf8, utf16be.Convert(space_utf16be)); +- EXPECT_EQ(space_utf16le, utf8.Convert(space_utf8)); +-} +- +-// Basic overflow tests +-TEST(lagi_iconv, Buffer) { +- IconvWrapper conv("UTF-8", "UTF-16LE", false); +- std::array buff; +- buff.fill(0xFF); +- std::span sbuff(buff); +- std::string_view src("", 1); +- +- EXPECT_THROW(conv.Convert(src, sbuff.first(0)), BufferTooSmall); +- EXPECT_EQ('\xFF', buff[0]); +- EXPECT_THROW(conv.Convert(src, sbuff.first(1)), BufferTooSmall); +- EXPECT_EQ('\xFF', buff[0]); +- EXPECT_NO_THROW(conv.Convert(src, sbuff.first(2))); +- EXPECT_EQ('\0', buff[0]); +- EXPECT_EQ('\0', buff[1]); +- EXPECT_EQ('\xFF', buff[2]); +-} +- +-TEST(lagi_iconv, LocalSupport) { +- ASSERT_NO_THROW(IconvWrapper("UTF-8", "")); +- IconvWrapper conv("UTF-8", ""); +- ASSERT_NO_THROW(conv.Convert(" ")); +- EXPECT_EQ(" ", conv.Convert(" ")); +-} +-TEST(lagi_iconv, wchar_tSupport) { +- EXPECT_NO_THROW(IconvWrapper("UTF-8", "wchar_t")); +-} +- +-TEST(lagi_iconv, Roundtrip) { +- for (auto const& name : GetEncodingsList>()) { +- ASSERT_NO_THROW(IconvWrapper("utf-8", name.c_str())); +- ASSERT_NO_THROW(IconvWrapper(name.c_str(), "utf-8")); +- EXPECT_EQ( +- "Jackdaws love my big sphinx of quartz", +- IconvWrapper(name.c_str(), "utf-8").Convert( +- IconvWrapper("utf-8", name.c_str()).Convert( +- "Jackdaws love my big sphinx of quartz"))); +- } +-} +- +-TEST(lagi_iconv, Iso6937) { +- ASSERT_NO_THROW(IconvWrapper("UTF-8", "ISO-6937-2")); +- IconvWrapper subst("UTF-8", "ISO-6937-2"); +- IconvWrapper no_subst("UTF-8", "ISO-6937-2", false); +- +- // 7-bit is same as ISO-8859 +- for (int i = 0; i < 128; ++i) { +- const char buf[] = { (char)i, 0 }; +- std::string ret; +- EXPECT_NO_THROW(ret = subst.Convert(buf)); +- EXPECT_STREQ(buf, ret.c_str()); +- } +- +- std::string ret; +- +- // LATIN CAPITAL LETTER D WITH CARON (U+010E) - multibyte char in main block +- EXPECT_NO_THROW(ret = subst.Convert("\xC4\x8E")); +- EXPECT_STREQ("\xCF\x44", ret.c_str()); +- +- // BREVE - multibyte char in extended ranges +- EXPECT_NO_THROW(ret = subst.Convert("\xCB\x98")); +- EXPECT_STREQ("\xC6\x20", ret.c_str()); +- +- // EM DASH - single byte char in extended ranges +- EXPECT_NO_THROW(ret = subst.Convert("\xE2\x80\x94")); +- EXPECT_STREQ("\xD0", ret.c_str()); +- +- // codepoint not in ISO-6937-2 +- EXPECT_NO_THROW(ret = subst.Convert("\xCB\x97")); +- EXPECT_STREQ("?", ret.c_str()); +- EXPECT_THROW(no_subst.Convert("\xCB\x97"), BadInput); +-} +-- +2.49.0 + diff --git a/srcpkgs/Aegisub/patches/02-luajit-5.2.patch b/srcpkgs/Aegisub/patches/02-luajit-5.2.patch new file mode 100644 index 00000000000..ae74ccc85db --- /dev/null +++ b/srcpkgs/Aegisub/patches/02-luajit-5.2.patch @@ -0,0 +1,101 @@ +From 663c2818115316f1cbd4f97324ba2764870b6269 Mon Sep 17 00:00:00 2001 +From: Komeil Parseh +Date: Mon, 16 Jun 2025 15:44:47 +0330 +Subject: [PATCH 2/3] Adjust LuaJIT dependency to avoid cross-build test + failures + +On Void Linux, LuaJIT is consistently provided as version 5.2 (97618aeef1ac02ddc6cc755a8c9c712c7de3bfe2)(#55648) +Aegisub's Meson build system performs an internal check/test +to verify compatibility with LuaJIT 5.2 during configuration. +This test involves running a compiled binary or script for the +target architecture, which invariably fails in a cross-compilation +environment with "Can not run test applications in this cross environment" +errors, even when LuaJIT is correctly installed for the target. + +To resolve this, the Meson build configuration is modified to +bypass this runtime compatibility test. Instead of explicitly +checking for LuaJIT 5.2 support, it now relies on the system's +'luajit' dependency directly. This ensures that the build +process completes successfully without attempting to execute +target binaries/scripts on the host system. + +This addresses the LuaJIT test failures encountered during +aarch64 cross-compilation. +--- + meson.build | 24 +----------------------- + subprojects/luabins/meson.build | 24 +----------------------- + 2 files changed, 2 insertions(+), 46 deletions(-) + +diff --git a/meson.build b/meson.build +index f0e56521c..0af26806e 100644 +--- a/meson.build ++++ b/meson.build +@@ -319,29 +319,7 @@ if get_option('enable_update_checker') + endif + + luajit = dependency('luajit', version: '>=2.0.0', required: get_option('system_luajit')) +-if luajit.found() and luajit.type_name() != 'internal' +- luajit_test = cc.run('''#include +-int main(void) +-{ +- lua_State *L = luaL_newstate(); +- if (!L) return 1; +- // This is valid in lua 5.2, but a syntax error in 5.1 +- const char testprogram[] = "function foo() while true do break return end end"; +- return luaL_loadstring(L, testprogram) == LUA_ERRSYNTAX; +-}''', dependencies: luajit) +- +- if luajit_test.returncode() == 1 +- if get_option('system_luajit') +- error('System luajit found but not compiled in 5.2 mode') +- else +- message('System luajit found but not compiled in 5.2 mode; using built-in luajit') +- endif +- else +- deps += luajit +- endif +-else +- message('System luajit not found; using built-in luajit') +-endif ++deps += luajit # void already uses luajit52 https://github.com/void-linux/void-packages/commit/97618aeef1ac02ddc6cc755a8c9c712c7de3bfe2 + + if not deps.contains(luajit) + deps += subproject('luajit').get_variable('luajit_dep') +diff --git a/subprojects/luabins/meson.build b/subprojects/luabins/meson.build +index 1d87ab2b1..6176a8471 100644 +--- a/subprojects/luabins/meson.build ++++ b/subprojects/luabins/meson.build +@@ -12,29 +12,7 @@ luabins_src = files( + deps = [] + + luajit = dependency('luajit', version: '>=2.0.0') +-if luajit.found() and luajit.type_name() != 'internal' +- luajit_test = meson.get_compiler('c').run('''#include +-int main(void) +-{ +- lua_State *L = luaL_newstate(); +- if (!L) return 1; +- // This is valid in lua 5.2, but a syntax error in 5.1 +- const char testprogram[] = "function foo() while true do break return end end"; +- return luaL_loadstring(L, testprogram) == LUA_ERRSYNTAX; +-}''', dependencies: luajit) +- +- if luajit_test.returncode() == 1 +- message('System luajit found but not compiled in 5.2 mode; using built-in luajit') +- else +- deps += luajit +- endif +-else +- message('System luajit not found; using built-in luajit') +-endif +- +-if not deps.contains(luajit) +- deps += subproject('luajit').get_variable('luajit_dep') +-endif ++deps += luajit # void already uses luajit52 https://github.com/void-linux/void-packages/commit/97618aeef1ac02ddc6cc755a8c9c712c7de3bfe2 + + luabins = static_library('luabins', luabins_src, dependencies: deps) + luabins_dep = declare_dependency(link_with: luabins) +-- +2.49.0 + diff --git a/srcpkgs/Aegisub/patches/allow-cmake-builds-from-tarball.patch b/srcpkgs/Aegisub/patches/allow-cmake-builds-from-tarball.patch deleted file mode 100644 index 705965ca1df..00000000000 --- a/srcpkgs/Aegisub/patches/allow-cmake-builds-from-tarball.patch +++ /dev/null @@ -1,56 +0,0 @@ -From dee94396eee4b67eafae7f00e540cb284769473d Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?=C3=89rico=20Nogueira?= -Date: Wed, 15 Sep 2021 23:54:10 -0300 -Subject: [PATCH] Allow CMake builds from tarball. - -Add environment variable that can be passed to build/version.sh to force -a git version if it can't use git to determine one. - -Since we are here, also fix: - -- use of 'return' in a script, should be 'exit' -- wrong grep command to match numerical version with 3 digits ---- - build/version.sh | 10 +++++----- - 1 file changed, 5 insertions(+), 5 deletions(-) - -diff --git a/build/version.sh b/build/version.sh -index 8cea0a3f3..d505341e4 100755 ---- a/build/version.sh -+++ b/build/version.sh -@@ -10,13 +10,13 @@ if ! test -d "${srcdir}/.git"; then - done < "${version_h_path}" - if test x$BUILD_GIT_VERSION_NUMBER != x -a x$BUILD_GIT_VERSION_STRING != x; then - export VERSION_SOURCE="from cached git_version.h" -- return 0 -+ exit 0 - else - echo "invalid git_version.h" - exit 2 - fi -- else -- echo "git repo not found and no cached git_version.h" -+ elif [ -z "$FORCE_GIT_VERSION" ]; then -+ echo "git repo not found and no cached git_version.h - use FORCE_GIT_VERSION to override" - exit 2 - fi - fi -@@ -25,13 +25,13 @@ last_svn_revision=6962 - last_svn_hash="16cd907fe7482cb54a7374cd28b8501f138116be" - - git_revision=$(expr $last_svn_revision + $(git log --pretty=oneline $last_svn_hash..HEAD 2>/dev/null | wc -l)) --git_version_str=$(git describe --exact-match 2> /dev/null) -+git_version_str=${FORCE_GIT_VERSION:-$(git describe --exact-match 2> /dev/null)} - installer_version='0.0.0' - resource_version='0, 0, 0' - if test x$git_version_str != x; then - git_version_str="${git_version_str##v}" - tagged_release=1 -- if [ $(echo $git_version_str | grep '\d\.\d\.\d') ]; then -+ if [ $(echo $git_version_str | grep '[0-9].[0-9].[0-9]') ]; then - installer_version=$git_version_str - resource_version=$(echo $git_version_str | sed 's/\./, /g') - fi --- -2.33.0 - diff --git a/srcpkgs/Aegisub/patches/boost181.patch b/srcpkgs/Aegisub/patches/boost181.patch deleted file mode 100644 index a62c965fe97..00000000000 --- a/srcpkgs/Aegisub/patches/boost181.patch +++ /dev/null @@ -1,65 +0,0 @@ -Index: Aegisub-3.3.2/src/command/video.cpp -=================================================================== ---- Aegisub-3.3.2.orig/src/command/video.cpp -+++ Aegisub-3.3.2/src/command/video.cpp -@@ -475,7 +475,7 @@ static void save_snapshot(agi::Context * - // If where ever that is isn't defined, we can't save there - if ((basepath == "\\") || (basepath == "/")) { - // So save to the current user's home dir instead -- basepath = wxGetHomeDir().c_str(); -+ basepath = static_cast(wxGetHomeDir().c_str()); - } - } - // Actual fixed (possibly relative) path, decode it -Index: Aegisub-3.3.2/src/dialog_attachments.cpp -=================================================================== ---- Aegisub-3.3.2.orig/src/dialog_attachments.cpp -+++ Aegisub-3.3.2/src/dialog_attachments.cpp -@@ -161,7 +161,7 @@ void DialogAttachments::OnExtract(wxComm - - // Multiple or single? - if (listView->GetNextSelected(i) != -1) -- path = wxDirSelector(_("Select the path to save the files to:"), to_wx(OPT_GET("Path/Fonts Collector Destination")->GetString())).c_str(); -+ path = static_cast(wxDirSelector(_("Select the path to save the files to:"), to_wx(OPT_GET("Path/Fonts Collector Destination")->GetString())).c_str()); - else { - path = SaveFileSelector( - _("Select the path to save the file to:"), -Index: Aegisub-3.3.2/libaegisub/include/libaegisub/lua/utils.h -=================================================================== ---- Aegisub-3.3.2.orig/libaegisub/include/libaegisub/lua/utils.h -+++ Aegisub-3.3.2/libaegisub/include/libaegisub/lua/utils.h -@@ -27,6 +27,7 @@ - #include - #define BOOST_NORETURN BOOST_ATTRIBUTE_NORETURN - #endif -+#include - - namespace agi { namespace lua { - // Exception type for errors where the error details are on the lua stack -@@ -91,6 +92,13 @@ void set_field(lua_State *L, const char - lua_setfield(L, -2, name); - } - -+template<> -+inline void set_field(lua_State *L, const char *name, -+ boost::flyweights::flyweight value) { -+ push_value(L, value.get()); -+ lua_setfield(L, -2, name); -+} -+ - template - void set_field(lua_State *L, const char *name) { - push_value(L, exception_wrapper); -Index: Aegisub-3.3.2/src/auto4_lua.cpp -=================================================================== ---- Aegisub-3.3.2.orig/src/auto4_lua.cpp -+++ Aegisub-3.3.2/src/auto4_lua.cpp -@@ -119,7 +119,7 @@ namespace { - int get_translation(lua_State *L) - { - wxString str(check_wxstring(L, 1)); -- push_value(L, _(str).utf8_str()); -+ push_value(L, static_cast(_(str).utf8_str())); - return 1; - } - diff --git a/srcpkgs/Aegisub/patches/link-icu18n.patch b/srcpkgs/Aegisub/patches/link-icu18n.patch deleted file mode 100644 index e5c037ca1f6..00000000000 --- a/srcpkgs/Aegisub/patches/link-icu18n.patch +++ /dev/null @@ -1,15 +0,0 @@ ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -347,9 +347,9 @@ target_link_libraries(Aegisub PRIVATE "O - find_package(Iconv REQUIRED) - target_link_libraries(libaegisub PRIVATE "Iconv::Iconv") - --find_package(ICU REQUIRED uc) --target_link_libraries(libaegisub PRIVATE "ICU::uc") --target_link_libraries(Aegisub PRIVATE "ICU::uc") -+find_package(ICU REQUIRED uc i18n) -+target_link_libraries(libaegisub PRIVATE "ICU::uc" ICU::i18n) -+target_link_libraries(Aegisub PRIVATE "ICU::uc" ICU::i18n) - - find_package(wxWidgets REQUIRED adv base core gl stc xml) - include(${wxWidgets_USE_FILE}) diff --git a/srcpkgs/Aegisub/patches/remove-busted-luajit-vendor.patch b/srcpkgs/Aegisub/patches/remove-busted-luajit-vendor.patch deleted file mode 100644 index 3ee7588647c..00000000000 --- a/srcpkgs/Aegisub/patches/remove-busted-luajit-vendor.patch +++ /dev/null @@ -1,267 +0,0 @@ -From 72ffe91cf33b2afa7bb1996d1ede9d7b9624c7f0 Mon Sep 17 00:00:00 2001 -From: Daniel Kolesa -Date: Sun, 26 Sep 2021 00:44:01 +0200 -Subject: [PATCH] enforce system luajit - ---- - CMakeLists.txt | 192 ++-------------------------------- - vendor/luabins/CMakeLists.txt | 3 +- - 2 files changed, 13 insertions(+), 182 deletions(-) - -diff --git a/CMakeLists.txt b/CMakeLists.txt -index 4614f6d..0e7bc81 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -3,6 +3,10 @@ cmake_policy(SET CMP0074 NEW) - - project(Aegisub) - -+find_package(PkgConfig) -+ -+pkg_check_modules(LUAJIT REQUIRED luajit) -+ - list(APPEND CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/cmake") - - # Explicitly set the build type to Release if no other type is specified -@@ -12,181 +16,6 @@ if(NOT CMAKE_BUILD_TYPE) - set(CMAKE_BUILD_TYPE Release) - endif() - --add_executable(luajit-minilua vendor/luajit/src/host/minilua.c) --if(NOT WIN32) -- target_link_libraries(luajit-minilua m) --endif() --if(WIN32) -- if(CMAKE_SIZEOF_VOID_P EQUAL 8) -- add_custom_command( -- OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/vendor/luajit/src/gen/buildvm_arch.h" -- COMMAND ${CMAKE_COMMAND} -E make_directory "${CMAKE_CURRENT_BINARY_DIR}/vendor/luajit/src/gen" -- COMMAND luajit-minilua ../dynasm/dynasm.lua -LN -D WIN -D JIT -D FFI -D P64 -o "${CMAKE_CURRENT_BINARY_DIR}/vendor/luajit/src/gen/buildvm_arch.h" vm_x86.dasc -- WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/vendor/luajit/src -- ) -- else() -- add_custom_command( -- OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/vendor/luajit/src/gen/buildvm_arch.h" -- COMMAND ${CMAKE_COMMAND} -E make_directory "${CMAKE_CURRENT_BINARY_DIR}/vendor/luajit/src/gen" -- COMMAND luajit-minilua ../dynasm/dynasm.lua -LN -D WIN -D JIT -D FFI -o "${CMAKE_CURRENT_BINARY_DIR}/vendor/luajit/src/gen/buildvm_arch.h" vm_x86.dasc -- WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/vendor/luajit/src -- ) -- endif() --else() -- if(CMAKE_SIZEOF_VOID_P EQUAL 8) -- add_custom_command( -- OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/vendor/luajit/src/gen/buildvm_arch.h" -- COMMAND ${CMAKE_COMMAND} -E make_directory "${CMAKE_CURRENT_BINARY_DIR}/vendor/luajit/src/gen" -- COMMAND luajit-minilua ../dynasm/dynasm.lua -D P64 -D JIT -D FFI -D FPU -D HFABI -D VER= -o "${CMAKE_CURRENT_BINARY_DIR}/vendor/luajit/src/gen/buildvm_arch.h" vm_x86.dasc -- WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/vendor/luajit/src -- ) -- else() -- add_custom_command( -- OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/vendor/luajit/src/gen/buildvm_arch.h" -- COMMAND ${CMAKE_COMMAND} -E make_directory "${CMAKE_CURRENT_BINARY_DIR}/vendor/luajit/src/gen" -- COMMAND luajit-minilua ../dynasm/dynasm.lua -D JIT -D FFI -D FPU -D HFABI -D VER= -o "${CMAKE_CURRENT_BINARY_DIR}/vendor/luajit/src/gen/buildvm_arch.h" vm_x86.dasc -- WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/vendor/luajit/src -- ) -- endif() --endif() -- --add_executable(luajit-buildvm -- vendor/luajit/src/host/buildvm.c -- vendor/luajit/src/host/buildvm_asm.c -- vendor/luajit/src/host/buildvm_peobj.c -- vendor/luajit/src/host/buildvm_lib.c -- vendor/luajit/src/host/buildvm_fold.c -- -- "${CMAKE_CURRENT_BINARY_DIR}/vendor/luajit/src/gen/buildvm_arch.h" --) --target_compile_definitions(luajit-buildvm PRIVATE LUAJIT_ENABLE_LUA52COMPAT) --target_include_directories(luajit-buildvm PRIVATE vendor/luajit/src "${CMAKE_CURRENT_BINARY_DIR}/vendor/luajit/src/gen") --if(UNIX) -- add_custom_command( -- OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/vendor/luajit/src/lj_vm.s" -- COMMAND luajit-buildvm -m elfasm -o "${CMAKE_CURRENT_BINARY_DIR}/vendor/luajit/src/lj_vm.s" -- ) --elseif(MSVC) -- add_custom_command( -- OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/vendor/luajit/src/lj_vm.obj" -- COMMAND luajit-buildvm -m peobj -o "${CMAKE_CURRENT_BINARY_DIR}/vendor/luajit/src/lj_vm.obj" -- ) --endif() --add_custom_command( -- OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/vendor/luajit/src/gen/lj_ffdef.h" -- COMMAND luajit-buildvm -m ffdef -o "${CMAKE_CURRENT_BINARY_DIR}/vendor/luajit/src/gen/lj_ffdef.h" lib_base.c lib_math.c lib_bit.c lib_string.c lib_table.c lib_io.c lib_os.c lib_package.c lib_debug.c lib_jit.c lib_ffi.c -- WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/vendor/luajit/src --) --add_custom_command( -- OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/vendor/luajit/src/gen/lj_bcdef.h" -- COMMAND luajit-buildvm -m bcdef -o "${CMAKE_CURRENT_BINARY_DIR}/vendor/luajit/src/gen/lj_bcdef.h" lib_base.c lib_math.c lib_bit.c lib_string.c lib_table.c lib_io.c lib_os.c lib_package.c lib_debug.c lib_jit.c lib_ffi.c -- WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/vendor/luajit/src --) --add_custom_command( -- OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/vendor/luajit/src/gen/lj_folddef.h" -- COMMAND luajit-buildvm -m folddef -o "${CMAKE_CURRENT_BINARY_DIR}/vendor/luajit/src/gen/lj_folddef.h" lj_opt_fold.c -- WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/vendor/luajit/src --) --add_custom_command( -- OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/vendor/luajit/src/gen/lj_recdef.h" -- COMMAND luajit-buildvm -m recdef -o "${CMAKE_CURRENT_BINARY_DIR}/vendor/luajit/src/gen/lj_recdef.h" lib_base.c lib_math.c lib_bit.c lib_string.c lib_table.c lib_io.c lib_os.c lib_package.c lib_debug.c lib_jit.c lib_ffi.c -- WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/vendor/luajit/src --) --add_custom_command( -- OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/vendor/luajit/src/gen/lj_libdef.h" -- COMMAND luajit-buildvm -m libdef -o "${CMAKE_CURRENT_BINARY_DIR}/vendor/luajit/src/gen/lj_libdef.h" lib_base.c lib_math.c lib_bit.c lib_string.c lib_table.c lib_io.c lib_os.c lib_package.c lib_debug.c lib_jit.c lib_ffi.c -- WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/vendor/luajit/src --) --add_custom_command( -- OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/vendor/luajit/src/jit/vmdef.lua" -- COMMAND luajit-buildvm -m vmdef -o "${CMAKE_CURRENT_BINARY_DIR}/vendor/luajit/src/jit/vmdef.lua" lib_base.c lib_math.c lib_bit.c lib_string.c lib_table.c lib_io.c lib_os.c lib_package.c lib_debug.c lib_jit.c lib_ffi.c -- WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/vendor/luajit/src --) -- --add_library(luajit STATIC -- vendor/luajit/src/lib_base.c -- vendor/luajit/src/lib_math.c -- vendor/luajit/src/lib_bit.c -- vendor/luajit/src/lib_string.c -- vendor/luajit/src/lib_table.c -- vendor/luajit/src/lib_io.c -- vendor/luajit/src/lib_os.c -- vendor/luajit/src/lib_package.c -- vendor/luajit/src/lib_debug.c -- vendor/luajit/src/lib_jit.c -- vendor/luajit/src/lib_ffi.c -- vendor/luajit/src/lj_gc.c -- vendor/luajit/src/lj_err.c -- vendor/luajit/src/lj_char.c -- vendor/luajit/src/lj_bc.c -- vendor/luajit/src/lj_obj.c -- vendor/luajit/src/lj_buf.c -- vendor/luajit/src/lj_str.c -- vendor/luajit/src/lj_tab.c -- vendor/luajit/src/lj_func.c -- vendor/luajit/src/lj_udata.c -- vendor/luajit/src/lj_meta.c -- vendor/luajit/src/lj_debug.c -- vendor/luajit/src/lj_state.c -- vendor/luajit/src/lj_dispatch.c -- vendor/luajit/src/lj_vmevent.c -- vendor/luajit/src/lj_vmmath.c -- vendor/luajit/src/lj_strscan.c -- vendor/luajit/src/lj_strfmt.c -- vendor/luajit/src/lj_strfmt_num.c -- vendor/luajit/src/lj_api.c -- vendor/luajit/src/lj_profile.c -- vendor/luajit/src/lj_lex.c -- vendor/luajit/src/lj_parse.c -- vendor/luajit/src/lj_bcread.c -- vendor/luajit/src/lj_bcwrite.c -- vendor/luajit/src/lj_load.c -- vendor/luajit/src/lj_ir.c -- vendor/luajit/src/lj_opt_mem.c -- vendor/luajit/src/lj_opt_fold.c -- vendor/luajit/src/lj_opt_narrow.c -- vendor/luajit/src/lj_opt_dce.c -- vendor/luajit/src/lj_opt_loop.c -- vendor/luajit/src/lj_opt_split.c -- vendor/luajit/src/lj_opt_sink.c -- vendor/luajit/src/lj_mcode.c -- vendor/luajit/src/lj_snap.c -- vendor/luajit/src/lj_record.c -- vendor/luajit/src/lj_crecord.c -- vendor/luajit/src/lj_ffrecord.c -- vendor/luajit/src/lj_asm.c -- vendor/luajit/src/lj_trace.c -- vendor/luajit/src/lj_gdbjit.c -- vendor/luajit/src/lj_ctype.c -- vendor/luajit/src/lj_cdata.c -- vendor/luajit/src/lj_cconv.c -- vendor/luajit/src/lj_ccall.c -- vendor/luajit/src/lj_ccallback.c -- vendor/luajit/src/lj_carith.c -- vendor/luajit/src/lj_clib.c -- vendor/luajit/src/lj_cparse.c -- vendor/luajit/src/lj_lib.c -- vendor/luajit/src/lj_alloc.c -- vendor/luajit/src/lib_aux.c -- vendor/luajit/src/lib_init.c -- -- "${CMAKE_CURRENT_BINARY_DIR}/vendor/luajit/src/gen/lj_ffdef.h" -- "${CMAKE_CURRENT_BINARY_DIR}/vendor/luajit/src/gen/lj_bcdef.h" -- "${CMAKE_CURRENT_BINARY_DIR}/vendor/luajit/src/gen/lj_folddef.h" -- "${CMAKE_CURRENT_BINARY_DIR}/vendor/luajit/src/gen/lj_recdef.h" -- "${CMAKE_CURRENT_BINARY_DIR}/vendor/luajit/src/gen/lj_libdef.h" -- # "${CMAKE_CURRENT_BINARY_DIR}/vendor/luajit/src/jit/vmdef.lua" --) --target_compile_definitions(luajit PRIVATE LUAJIT_ENABLE_LUA52COMPAT) --target_include_directories(luajit PRIVATE "${CMAKE_CURRENT_BINARY_DIR}/vendor/luajit/src/gen" PUBLIC "vendor/luajit/src") --if(WIN32) -- target_sources(luajit PRIVATE "${CMAKE_CURRENT_BINARY_DIR}/vendor/luajit/src/lj_vm.obj") --else() -- target_sources(luajit PRIVATE "${CMAKE_CURRENT_BINARY_DIR}/vendor/luajit/src/lj_vm.s") -- set_property(SOURCE "${CMAKE_CURRENT_BINARY_DIR}/vendor/luajit/src/lj_vm.s" PROPERTY LANGUAGE C) -- target_link_libraries(luajit ${CMAKE_DL_LIBS}) --endif() -- - add_subdirectory(vendor/luabins) - - add_library(libaegisub STATIC -@@ -264,20 +93,20 @@ elseif(WIN32) - endif() - set_target_properties(libaegisub PROPERTIES PREFIX "") - target_compile_definitions(libaegisub PRIVATE CMAKE_BUILD) --target_include_directories(libaegisub PUBLIC "libaegisub/include") -+target_include_directories(libaegisub PUBLIC ${LUAJIT_INCLUDE_DIRS} "libaegisub/include") - target_precompile_headers(libaegisub PRIVATE "libaegisub/lagi_pre.h") --target_link_libraries(libaegisub PRIVATE luajit luabins) -+target_link_libraries(libaegisub PRIVATE ${LUAJIT_LIBRARIES} luabins) - - add_custom_command( - OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/src/libresrc/default_config.cpp" "${CMAKE_CURRENT_BINARY_DIR}/src/libresrc/default_config.h" - DEPENDS "${CMAKE_CURRENT_BINARY_DIR}/src/libresrc/default_config_platform.json" -- COMMAND luajit-minilua "${PROJECT_SOURCE_DIR}/tools/respack.lua" manifest.respack default_config.cpp default_config.h -+ COMMAND luajit "${PROJECT_SOURCE_DIR}/tools/respack.lua" manifest.respack default_config.cpp default_config.h - WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/src/libresrc" - ) - - add_custom_command( - OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/src/libresrc/bitmap.cpp" "${CMAKE_CURRENT_BINARY_DIR}/src/libresrc/bitmap.h" -- COMMAND luajit-minilua ../../tools/respack.lua manifest.respack "${CMAKE_CURRENT_BINARY_DIR}/src/libresrc/bitmap.cpp" "${CMAKE_CURRENT_BINARY_DIR}/src/libresrc/bitmap.h" -+ COMMAND luajit ../../tools/respack.lua manifest.respack "${CMAKE_CURRENT_BINARY_DIR}/src/libresrc/bitmap.cpp" "${CMAKE_CURRENT_BINARY_DIR}/src/libresrc/bitmap.h" - WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/src/bitmaps - ) - -@@ -451,8 +280,9 @@ add_executable(Aegisub WIN32 - src/video_slider.cpp - src/visual_feature.cpp - ) --target_link_libraries(Aegisub PRIVATE ${CMAKE_DL_LIBS} libaegisub luajit) -+target_link_libraries(Aegisub PRIVATE ${CMAKE_DL_LIBS} libaegisub ${LUAJIT_LIBRARIES}) - target_compile_definitions(Aegisub PRIVATE CMAKE_BUILD) -+target_include_directories(Aegisub PUBLIC ${LUAJIT_INCLUDE_DIRS}) - target_include_directories(Aegisub PRIVATE "src/libresrc" "${CMAKE_CURRENT_BINARY_DIR}/src/libresrc") - target_precompile_headers(Aegisub PRIVATE "src/agi_pre.h") - -@@ -776,7 +606,7 @@ message(STATUS "\n" - " FFTW3: ${WITH_FFTW3}\n" - " Hunspell: ${WITH_HUNSPELL}\n" - " uchardet: ${WITH_UCHARDET}\n" -- " LuaJIT: bundled\n" -+ " LuaJIT: unfucked\n" - "\n" - "Options\n" - " Startup log: ${WITH_STARTUPLOG}\n" -diff --git a/vendor/luabins/CMakeLists.txt b/vendor/luabins/CMakeLists.txt -index 1fe1d20..e68403c 100644 ---- a/vendor/luabins/CMakeLists.txt -+++ b/vendor/luabins/CMakeLists.txt -@@ -36,4 +36,5 @@ add_library(luabins STATIC - src/savebuffer.c - src/write.c - ) --target_link_libraries(luabins PRIVATE luajit) -\ No newline at end of file -+target_include_directories(luabins PUBLIC ${LUAJIT_INCLUDE_DIRS}) -+target_link_libraries(luabins PRIVATE ${LUAJIT_LIBRARIES}) --- -2.33.0 - diff --git a/srcpkgs/Aegisub/template b/srcpkgs/Aegisub/template index fdd36c53a94..f2cb4406b75 100644 --- a/srcpkgs/Aegisub/template +++ b/srcpkgs/Aegisub/template @@ -1,34 +1,41 @@ # Template file for 'Aegisub' pkgname=Aegisub -version=3.3.2 -revision=11 -build_style=cmake -build_helper=cmake-wxWidgets-gtk3 -cmake_builddir="BUILD" -configure_args="-DwxWidgets_CONFIG_EXECUTABLE=$WX_CONFIG - -DWITH_PORTAUDIO=$(vopt_if portaudio ON OFF) - -DWITH_OPENAL=$(vopt_if openal ON OFF) -DWITH_FFTW3=$(vopt_if fftw ON OFF)" -hostmakedepends="gettext-devel intltool pkg-config git LuaJIT" -makedepends="alsa-lib-devel boost-devel libcurl-devel fontconfig-devel - freetype-devel hunspell-devel icu-devel libass-devel libffms2-devel - MesaLib-devel wxWidgets-gtk3-devel LuaJIT-devel $(vopt_if fftw fftw-devel) - $(vopt_if openal libopenal-devel) $(vopt_if portaudio portaudio-devel)" -short_desc="Subtitle editor (ssa, ass, srt)" -maintainer="Orphaned " -license="BSD-3-Clause, MIT" -homepage="https://github.com/wangqr/Aegisub" -distfiles="https://github.com/wangqr/Aegisub/archive/v${version}.tar.gz" -checksum="9aaab8e66cef2a72368c6b7f79b2f99700321a7b9a1ca623c5e6be0e65418db5" - -build_options="fftw openal portaudio" -build_options_default="fftw" - -desc_option_fftw="Enable support for rendering of audio waveforms/spectrum" -desc_option_openal="Enable support for openal" +version=3.4.2 +revision=1 +build_style=meson +configure_args="-Dsystem_luajit=true" +hostmakedepends="pkg-config gettext meson ninja LuaJIT" +makedepends="libass-devel zlib-devel icu-devel boost-devel + wxWidgets-gtk3-devel MesaLib-devel LuaJIT-devel fontconfig-devel ffmpeg6 + ffmpeg6-devel libffms2-devel fftw-devel hunspell-devel uchardet-devel gtest-devel + pulseaudio-devel alsa-lib-devel libopenal-devel portaudio-devel libcurl-devel" +short_desc="Cross-platform advanced subtitle editor" +maintainer="Komeil Parseh " +license="BSD-3-Clause" +homepage="https://github.com/TypesettingTools/Aegisub" +distfiles="${homepage}/archive/v${version}.tar.gz" +checksum="38731ec76392fe763ce34e34cda6ee233802cf20ef3f380a3998da35a893a5c4" CXXFLAGS="-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64" +pre_configure() { + if [ "$XBPS_CROSS_BUILD" ]; then + cat > cross-wx.ini <<-EOF + [binaries] + wx-config = ['${XBPS_WRAPPERDIR}/wx-config-gtk3'] + EOF + configure_args+=" --cross-file=cross-wx.ini" + fi +} + pre_build() { + cat > build/git_version.h <<-EOF + #define BUILD_GIT_VERSION_NUMBER 0 + #define BUILD_GIT_VERSION_STRING "voidlinux" + #define TAGGED_RELEASE 0 + #define INSTALLER_VERSION "0.0.0" + #define RESOURCE_BASE_VERSION 0, 0, 0 + EOF export FORCE_GIT_VERSION="$version" }