[packages/aegisub] - up to 3.4.0

baggins baggins at pld-linux.org
Sun Dec 22 21:39:00 CET 2024


commit 79f7e7cd00b24ae790d889896709e958cc818a8e
Author: Jan Rękorajski <baggins at pld-linux.org>
Date:   Sun Dec 22 22:30:33 2024 +0100

    - up to 3.4.0

 aegisub.spec     | 69 +++++++++++++++++++-------------------------------
 boost-1.87.patch | 76 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 boost181.patch   | 65 ------------------------------------------------
 make-4.3.patch   | 23 -----------------
 no-tests.patch   | 10 ++++++++
 5 files changed, 112 insertions(+), 131 deletions(-)
---
diff --git a/aegisub.spec b/aegisub.spec
index 3884e80..5ec1c53 100644
--- a/aegisub.spec
+++ b/aegisub.spec
@@ -1,35 +1,28 @@
 # TODO
 # - unvendor vendor/luabins
-# - unvendor vendor/luajit
 # - unvendor vendor/universalchardet
 # - our cxxflags
 
 # Conditional build:
 %bcond_without	ffms2	# build ffms2 A/V provider
 
-%define		snap	85f711f
-%define		gitrev	85f711fccc75f01fd44f25537b8777df10c4b3d1
-
 Summary:	Subtitle editor
 Summary(pl.UTF-8):	Edytor napisów
 Name:		aegisub
-Version:	3.2.2
-Release:	23
+Version:	3.4.0
+Release:	1
 License:	BSD
 Group:		X11/Applications
 #Source0Download: https://aegisub.org/downloads/
-#Source0:	https://github.com/Aegisub/Aegisub/releases/download/v%{version}/%{name}-%{version}.tar.xz
-Source0:	https://github.com/Aegisub/Aegisub/archive/%{snap}/%{name}-%{version}-%{snap}.tar.gz
-# Source0-md5:	ecb9b5441ead4135c9b1baec0abdec49
-Patch0:		make-4.3.patch
-Patch1:		boost181.patch
+Source0:	https://github.com/TypesettingTools/Aegisub/archive/v%{version}/%{name}-%{version}.tar.gz
+# Source0-md5:	850643f17021294aa14891a3fb200888
+Patch0:		no-tests.patch
+Patch1:		boost-1.87.patch
 URL:		https://aegisub.org/
 # AC_AGI_COMPILE tries to run test program which tries to open device and most likely fails
 #BuildRequires:	OpenAL-devel >= 0.0.8
 BuildRequires:	OpenGL-devel
 BuildRequires:	alsa-lib-devel
-BuildRequires:	autoconf >= 2.57
-BuildRequires:	automake
 BuildRequires:	boost-devel >= 1.50.0
 %{?with_ffms2:BuildRequires:	ffms2-devel >= 2.16}
 BuildRequires:	fftw3-devel >= 3.3
@@ -37,18 +30,24 @@ BuildRequires:	fontconfig-devel >= 1:2.4
 # pkgconfig(freetype2) >= 9.7.0
 BuildRequires:	freetype-devel >= 1:2.1.9
 BuildRequires:	gettext-tools >= 0.18.1
+BuildRequires:	gmock-devel
+BuildRequires:	gtest-devel
 BuildRequires:	hunspell-devel >= 1.2.0
 BuildRequires:	intltool
 BuildRequires:	libass-devel >= 0.9.7
 BuildRequires:	libicu-devel >= 4.8.1.1
 BuildRequires:	libstdc++-devel
 BuildRequires:	lua51-devel
+BuildRequires:	luajit-devel
+BuildRequires:	meson
+BuildRequires:	ninja
 BuildRequires:	pkgconfig >= 1:0.20
 BuildRequires:	portaudio-devel >= 19
 BuildRequires:	pulseaudio-devel >= 0.5
 BuildRequires:	sed >= 4.0
 BuildRequires:	tar >= 1:1.22
 BuildRequires:	uchardet-devel
+BuildRequires:	wxGTK3-unicode-devel >= 3.0.0
 BuildRequires:	wxGTK3-unicode-gl-devel >= 3.0.0
 BuildRequires:	wxWidgets-devel >= 3.0.0
 BuildRequires:	xz
@@ -90,46 +89,31 @@ napisach, poza samym powiązaniem z czasem. Celem Aegisubs jest łatwa
 obsługa tych zaawansowanych funkcji.
 
 %prep
-%setup -q -n Aegisub-%{gitrev}
-%patch0 -p1
-%patch1 -p1
+%setup -q -n Aegisub-%{version}
+%patch -P 0 -p1
+%patch -P 1 -p1
+
+%build
+ln -sf %{_bindir}/wx-gtk3-unicode-config ./wx-config
+export PATH=".:$PATH"
+%meson build \
+	-Denable_update_checker=false \
+	-Dsystem_luajit=true
 
 cat <<'EOF' >build/git_version.h
-#define BUILD_GIT_VERSION_NUMBER 9010
-#define BUILD_GIT_VERSION_STRING "3.2.2.6f546951b"
+#define BUILD_GIT_VERSION_NUMBER 9366
+#define BUILD_GIT_VERSION_STRING "9366-v3.4.0-b0fc74109"
 #define TAGGED_RELEASE 0
 #define INSTALLER_VERSION "0.0.0"
 #define RESOURCE_BASE_VERSION 0, 0, 0
 EOF
 
-%{__mv} vendor{,.keep}
-mkdir vendor
-%{__mv} vendor.keep/{luabins,luajit} vendor
-
-%build
-%{__gettextize}
-# po/Makefile is custom file, don't generate it
-%{__sed} -i 's,po/Makefile\.in,,' configure.ac
-%{__aclocal} -I m4macros
-%{__autoconf}
-%{__autoheader}
-export C
-%configure \
-	--disable-compiler-flags \
-	--disable-update-checker \
-	--with-boost-libdir=%{_libdir} \
-	%{__with_without ffms2} \
-	--without-oss \
-	--with-player-audio=PulseAudio \
-	--with-wx-config=wx-gtk3-unicode-config
-
-%{__make}
+%ninja_build -C build
 
 %install
 rm -rf $RPM_BUILD_ROOT
 
-%{__make} install \
-	DESTDIR=$RPM_BUILD_ROOT
+%ninja_install -C build
 
 %{__mv} $RPM_BUILD_ROOT%{_localedir}/{fr_FR,fr}
 %{__mv} $RPM_BUILD_ROOT%{_localedir}/{pt_PT,pt}
@@ -156,5 +140,4 @@ rm -rf $RPM_BUILD_ROOT
 %attr(755,root,root) %{_bindir}/aegisub
 %{_datadir}/%{name}
 %{_desktopdir}/aegisub.desktop
-%{_datadir}/metainfo/aegisub.appdata.xml
 %{_iconsdir}/hicolor/*/apps/aegisub.*
diff --git a/boost-1.87.patch b/boost-1.87.patch
new file mode 100644
index 0000000..67bbed9
--- /dev/null
+++ b/boost-1.87.patch
@@ -0,0 +1,76 @@
+From e89ace7d26081c6227c06f18da1bc0421126042c Mon Sep 17 00:00:00 2001
+From: 0tkl <118708188+0tkl at users.noreply.github.com>
+Date: Sun, 22 Dec 2024 17:08:15 +0800
+Subject: [PATCH] Replace some deprecated facilities from Boost.Asio
+
+---
+ libaegisub/common/dispatch.cpp | 21 +++++++++++----------
+ 1 file changed, 11 insertions(+), 10 deletions(-)
+
+diff --git a/libaegisub/common/dispatch.cpp b/libaegisub/common/dispatch.cpp
+index 424d60e555..ebb9fc769c 100644
+--- a/libaegisub/common/dispatch.cpp
++++ b/libaegisub/common/dispatch.cpp
+@@ -19,14 +19,15 @@
+ #include "libaegisub/util.h"
+ 
+ #include <atomic>
+-#include <boost/asio/io_service.hpp>
++#include <boost/asio/executor_work_guard.hpp>
++#include <boost/asio/io_context.hpp>
+ #include <boost/asio/strand.hpp>
+ #include <condition_variable>
+ #include <mutex>
+ #include <thread>
+ 
+ namespace {
+-	boost::asio::io_service *service;
++	boost::asio::io_context *service;
+ 	std::function<void (agi::dispatch::Thunk)> invoke_main;
+ 	std::atomic<uint_fast32_t> threads_running;
+ 
+@@ -38,28 +39,28 @@ namespace {
+ 
+ 	class BackgroundQueue final : public agi::dispatch::Queue {
+ 		void DoInvoke(agi::dispatch::Thunk&& thunk) override {
+-			service->post(thunk);
++			boost::asio::post(*service, std::move(thunk));
+ 		}
+ 	};
+ 
+ 	class SerialQueue final : public agi::dispatch::Queue {
+-		boost::asio::io_service::strand strand;
++		boost::asio::io_context::strand strand;
+ 
+ 		void DoInvoke(agi::dispatch::Thunk&& thunk) override {
+-			strand.post(thunk);
++			boost::asio::post(strand, std::move(thunk));
+ 		}
+ 	public:
+ 		SerialQueue() : strand(*service) { }
+ 	};
+ 
+ 	struct IOServiceThreadPool {
+-		boost::asio::io_service io_service;
+-		std::unique_ptr<boost::asio::io_service::work> work;
++		boost::asio::io_context io_context;
++		boost::asio::executor_work_guard<boost::asio::io_context::executor_type> work_guard;
+ 		std::vector<std::thread> threads;
+ 
+-		IOServiceThreadPool() : work(new boost::asio::io_service::work(io_service)) { }
++		IOServiceThreadPool() : work_guard(boost::asio::make_work_guard(io_context)) { }
+ 		~IOServiceThreadPool() {
+-			work.reset();
++			work_guard.reset();
+ #ifndef _WIN32
+ 			for (auto& thread : threads) thread.join();
+ #else
+@@ -76,7 +77,7 @@ namespace agi::dispatch {
+ 
+ void Init(std::function<void (Thunk)>&& invoke_main) {
+ 	static IOServiceThreadPool thread_pool;
+-	::service = &thread_pool.io_service;
++	::service = &thread_pool.io_context;
+ 	::invoke_main = invoke_main;
+ 
+ 	thread_pool.threads.reserve(std::max<unsigned>(4, std::thread::hardware_concurrency()));
diff --git a/boost181.patch b/boost181.patch
deleted file mode 100644
index a62c965..0000000
--- a/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<const char *>(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<const char*>(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 <boost/exception/detail/attribute_noreturn.hpp>
- #define BOOST_NORETURN BOOST_ATTRIBUTE_NORETURN
- #endif
-+#include <boost/flyweight.hpp>
- 
- 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<std::string> value) {
-+	push_value(L, value.get());
-+	lua_setfield(L, -2, name);
-+}
-+
- template<int (*func)(lua_State *L)>
- void set_field(lua_State *L, const char *name) {
- 	push_value(L, exception_wrapper<func>);
-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<const char *>(_(str).utf8_str()));
- 		return 1;
- 	}
- 
diff --git a/make-4.3.patch b/make-4.3.patch
deleted file mode 100644
index 6edb8c3..0000000
--- a/make-4.3.patch
+++ /dev/null
@@ -1,23 +0,0 @@
-From f4cc905c69ca69c68cb95674cefce4abc37ce046 Mon Sep 17 00:00:00 2001
-From: wangqr <wangqr at wangqr.tk>
-Date: Mon, 17 Feb 2020 14:42:07 +0800
-Subject: [PATCH] Use target name without directory in $*_OBJ macro
-
-Fix Aegisub/Aegisub#171
----
- Makefile.target | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/Makefile.target b/Makefile.target
-index 516ef3c24..5c4c5d259 100644
---- a/Makefile.target
-+++ b/Makefile.target
-@@ -112,7 +112,7 @@ POST_FLAGS = $($@_FLAGS) -c -o $@ $<
- # Libraries contain all object files they depend on (but they may depend on other files)
- # Not using libtool on OS X because it has an unsilenceable warning about a
- # compatibility issue with BSD 4.3 (wtf)
--lib%.a: $$($$*_OBJ)
-+lib%.a: $$($$(*F)_OBJ)
- 	@$(BIN_MKDIR_P) $(dir $@)
- 	$(BIN_AR) cru $@ $(filter %.o,$^)
- 	$(BIN_RANLIB) $@
diff --git a/no-tests.patch b/no-tests.patch
new file mode 100644
index 0000000..89d52c8
--- /dev/null
+++ b/no-tests.patch
@@ -0,0 +1,10 @@
+--- Aegisub-3.4.0/meson.build~	2024-12-19 00:06:50.000000000 +0100
++++ Aegisub-3.4.0/meson.build	2024-12-22 21:30:24.836666180 +0100
+@@ -382,7 +382,6 @@
+ subdir('packages')
+ subdir('po')
+ subdir('src')
+-subdir('tests')
+ 
+ aegisub_cpp_pch = ['src/include/agi_pre.h']
+ aegisub_c_pch = ['src/include/agi_pre_c.h']
================================================================

---- gitweb:

http://git.pld-linux.org/gitweb.cgi/packages/aegisub.git/commitdiff/79f7e7cd00b24ae790d889896709e958cc818a8e



More information about the pld-cvs-commit mailing list