sm-commit AT lists.ibiblio.org
Subject: Source Mage code commit list
List archive
[[SM-Commit] ] GIT changes to master grimoire by Ismael Luceno (9614402ecaeebbb31a86613e8af72cdefa9d54ff)
- From: Ismael Luceno <scm AT sourcemage.org>
- To: sm-commit AT lists.ibiblio.org, sm-commit AT lists.sourcemage.org
- Subject: [[SM-Commit] ] GIT changes to master grimoire by Ismael Luceno (9614402ecaeebbb31a86613e8af72cdefa9d54ff)
- Date: Tue, 6 Oct 2026 20:31:14 +0000
GIT changes to master grimoire by Ismael Luceno <ismael AT sourcemage.org>:
ChangeLog | 2
editors/wordtsar/BUILD | 9 ++
editors/wordtsar/CONFIGURE | 1
editors/wordtsar/DEPENDS | 7 +
editors/wordtsar/DETAILS | 30 ++++++++
editors/wordtsar/HISTORY | 3
editors/wordtsar/INSTALL | 10 ++
editors/wordtsar/PRE_BUILD | 15 ++++
editors/wordtsar/patches/0001-Use-system-pugixml.patch | 61
+++++++++++++++++
9 files changed, 138 insertions(+)
New commits:
commit 9614402ecaeebbb31a86613e8af72cdefa9d54ff
Author: Ismael Luceno <ismael AT sourcemage.org>
Commit: Ismael Luceno <ismael AT sourcemage.org>
wordtsar: new spell, modern, cross-platform WordStar 7.0D document-mode
clone
diff --git a/ChangeLog b/ChangeLog
index 29f7533..ffd5a49 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -77,6 +77,8 @@
2026-09-12 Ismael Luceno <ismael AT sourcemage.org>
* FUNCTIONS: added passing of CFLAGS to Makefile.PL
* editors/micro: new spell, modern and intuitive TUI editor
+ * editors/wordtsar: new spell, modern, cross-platform WordStar 7.0D
+ document-mode clone
2026-09-10 Pavel Vinogradov <public AT sourcemage.org>
* gnu.gpg: added Kamila Szcewczyk's key
diff --git a/editors/wordtsar/BUILD b/editors/wordtsar/BUILD
new file mode 100755
index 0000000..a51eb33
--- /dev/null
+++ b/editors/wordtsar/BUILD
@@ -0,0 +1,9 @@
+OPTS+=" -DDISABLE_DEPLOY_SCRIPT=ON" &&
+OPTS+=" -DCHECK_DEPENDENCY_UPDATES=OFF" &&
+OPTS+=" -DBUILD_TUI=OFF" &&
+OPTS+=" -DFETCHCONTENT_FULLY_DISCONNECTED=ON" &&
+OPTS+="
-DFETCHCONTENT_SOURCE_DIR_SIMPLEINI=$SOURCE_DIRECTORY/${SOURCE2%.tar.gz}" &&
+OPTS+="
-DFETCHCONTENT_SOURCE_DIR_EXPRTK=$SOURCE_DIRECTORY/${SOURCE3%.tar.gz}" &&
+OPTS+="
-DFETCHCONTENT_SOURCE_DIR_KUBAZIP=$SOURCE_DIRECTORY/${SOURCE4%.tar.gz}" &&
+OPTS+="
-DFETCHCONTENT_SOURCE_DIR_CPP-UNICODELIB=$SOURCE_DIRECTORY/${SOURCE5%.tar.gz}"
&&
+cmake_build
diff --git a/editors/wordtsar/CONFIGURE b/editors/wordtsar/CONFIGURE
new file mode 100755
index 0000000..b1e2770
--- /dev/null
+++ b/editors/wordtsar/CONFIGURE
@@ -0,0 +1 @@
+. "$GRIMOIRE"/CMAKE_CONFIGURE
diff --git a/editors/wordtsar/DEPENDS b/editors/wordtsar/DEPENDS
new file mode 100755
index 0000000..ef97a05
--- /dev/null
+++ b/editors/wordtsar/DEPENDS
@@ -0,0 +1,7 @@
+. "$GRIMOIRE/CMAKE_DEPENDS" &&
+depends freetype2 &&
+depends hunspell &&
+depends libexecinfo &&
+depends pugixml &&
+depends qt6base &&
+depends tbb
diff --git a/editors/wordtsar/DETAILS b/editors/wordtsar/DETAILS
new file mode 100755
index 0000000..175a29c
--- /dev/null
+++ b/editors/wordtsar/DETAILS
@@ -0,0 +1,30 @@
+. "$GRIMOIRE"/CMAKE_FUNCTIONS
+# Watch: https://sourceforge.net/projects/wordtsar/files/Releases/
WordTsar-([0-9.]+)/
+ SPELL=wordtsar
+ VERSION=0.4.1505
+
SOURCE_HASH=sha512:7689ff34bc4eef74d6b29b96451319212bd75a444a8838a89c43fd569929a67bb8ae47f7cb12fbba0c2fbf2922b4d07e4923fed8636477d90ceb82590986a0e5
+ REF=325ab4049bbb3c9d6d21a3adfef7790001ce7040
+ SOURCE=$SPELL-mercurial-$REF.zip
+SOURCE_DIRECTORY=$BUILD_DIRECTORY/${SOURCE%.zip}
+
SOURCE_URL[0]=https://sourceforge.net/code-snapshots/hg/w/wo/wordtsar/mercurial/$SOURCE
+ SOURCE2=simpleini-4.22.tar.gz
+
SOURCE2_HASH=sha512:6c198636816a0018adbf7f735d402c64245c6fcd540b7360d4388d46f007f3a520686cdaec4705cb8cb31401b2cb4797a80b42ea5d08a6a5807c0848386f7ca1
+
SOURCE2_URL[0]=https://github.com/brofield/simpleini/archive/refs/tags/v${SOURCE2#*-}
+ SOURCE3=exprtk-0.0.3.tar.gz
+
SOURCE3_HASH=sha512:1493b68929d3cb4e97c0180ef6f111ae4edbbee072ab78223976005b8402e4e7b56d94f013fbbc009f4db2652167fa3b4ba3c33d4029572ebbe61a36df9da9e4
+
SOURCE3_URL[0]=https://github.com/ArashPartow/exprtk/archive/refs/tags/${SOURCE3#*-}
+ SOURCE4=zip-0.3.5.tar.gz
+
SOURCE4_HASH=sha512:2bd11d2f7c33a882a32da764c1b19cb6fad3d2453e6d2004b60d6986c098dd5df5d66171857fd2737125622e7d17fc35e851e7ef0e0315e227bf69458518b5da
+
SOURCE4_URL[0]=https://github.com/kuba--/zip/archive/refs/tags/v${SOURCE4#*-}
+
SOURCE5=cpp-unicodelib-160b901244de959fa54bdfe110f1b7cd02902bd9.tar.gz
+
SOURCE5_HASH=sha512:050c424e1568a8c0e312e07a26e8cf9e944c03932a83466104f8a8e91d9fdbb287a79ae1df86324486b710be365ca86260e8c955e4000a265af89fe8019169d5
+
SOURCE5_URL[0]=https://github.com/yhirose/cpp-unicodelib/archive/${SOURCE5##*-}
+ LICENSE[0]=AGPL-3.0-or-later
+ WEB_SITE=https://wordtsar.ca/
+ KEYWORDS="editor word-processor wordstar qt"
+ SHORT="WordStar 7.0D document-mode clone"
+cat << EOF
+WordTsar is an open-source, cross-platform WordStar 7.0D document-mode
+clone. It loads WordStar 4, WordStar 7, RTF (partial) and DOCX (partial)
+files, and saves in WordStar 7 and RTF format.
+EOF
diff --git a/editors/wordtsar/HISTORY b/editors/wordtsar/HISTORY
new file mode 100644
index 0000000..96e7109
--- /dev/null
+++ b/editors/wordtsar/HISTORY
@@ -0,0 +1,3 @@
+2026-10-06 Ismael Luceno <ismael AT sourcemage.org>
+ * BUILD, CONFIGURE, DEPENDS, DETAILS, INSTALL, PRE_BUILD,
+ patches/0001-Use-system-pugixml.patch: spell created
diff --git a/editors/wordtsar/INSTALL b/editors/wordtsar/INSTALL
new file mode 100755
index 0000000..3719ef5
--- /dev/null
+++ b/editors/wordtsar/INSTALL
@@ -0,0 +1,10 @@
+cd "$SOURCE_DIRECTORY/builddir" &&
+default_install &&
+if [[ -f "$SOURCE_DIRECTORY/linuxdeploy/WordTsar.desktop" ]]; then
+ install -vm444 "$SOURCE_DIRECTORY/linuxdeploy/WordTsar.desktop" \
+ -Dt "$INSTALL_ROOT/usr/share/applications"
+fi &&
+if [[ -f "$SOURCE_DIRECTORY/linuxdeploy/wordtsar.png" ]]; then
+ install -vm444 "$SOURCE_DIRECTORY/linuxdeploy/wordtsar.png" \
+ -Dt "$INSTALL_ROOT/usr/share/pixmaps"
+fi
diff --git a/editors/wordtsar/PRE_BUILD b/editors/wordtsar/PRE_BUILD
new file mode 100755
index 0000000..469dc8a
--- /dev/null
+++ b/editors/wordtsar/PRE_BUILD
@@ -0,0 +1,15 @@
+default_pre_build &&
+cd "$SOURCE_DIRECTORY" &&
+unpack_file 2 &&
+unpack_file 3 &&
+unpack_file 4 &&
+unpack_file 5 &&
+apply_patch_dir patches &&
+sedit '/^# Generate deployment script/i\if(NOT DISABLE_DEPLOY_SCRIPT)'
CMakeLists.txt &&
+sedit '/^install(SCRIPT ${deploy_script})$/a\endif()' CMakeLists.txt &&
+sedit '/#include "document.h"/a\#include <climits>'
src/core/document/document.cpp &&
+sedit
's/static_cast<QChar>(mDocument->GetControlChar(mCurrentPosition))/static_cast<QChar>(static_cast<uint16_t>(mDocument->GetControlChar(mCurrentPosition)))/'
\
+ src/files/rtf/write/rtfwriter.cpp &&
+sedit '/#include <memory>/a\#include <unistd.h>' \
+ src/third-party/chillout/src/chillout/posix/posixcrashhandler.cpp &&
+sedit 's/^ hunspell$/ hunspell-1.7\n execinfo\n tbb/'
CMakeLists.txt
diff --git a/editors/wordtsar/patches/0001-Use-system-pugixml.patch
b/editors/wordtsar/patches/0001-Use-system-pugixml.patch
new file mode 100644
index 0000000..28fe4d5
--- /dev/null
+++ b/editors/wordtsar/patches/0001-Use-system-pugixml.patch
@@ -0,0 +1,61 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: Ismael Luceno <ismael AT sourcemage.org>
+Date: Mon, 31 Aug 2026 18:31:00 +0200
+Subject: [PATCH] Use system pugixml
+
+Use the system package instead of FetchContent.
+
+Upstream-Status: Pending
+Origin: Source Mage
+Signed-off-by: Ismael Luceno <ismael AT sourcemage.org>
+---
+ CMakeLists.txt | 12 ++++--------
+ 1 file changed, 4 insertions(+), 8 deletions(-)
+
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -154,11 +154,7 @@
+ set(FETCHCONTENT_BASE_DIR "${CMAKE_SOURCE_DIR}/third-party")
+
+ # pugixml - XML parsing for DOCX files
+-FetchContent_Declare(pugixml
+- GIT_REPOSITORY https://github.com/zeux/pugixml.git
+- GIT_TAG v${PUGIXML_VERSION}
+- SOURCE_DIR "${CMAKE_SOURCE_DIR}/third-party/pugixml"
+-)
++find_package(pugixml REQUIRED)
+
+ # chillout - Using local version with custom createCrashDump implementation
+
+@@ -193,7 +191,6 @@
+
+ # Download dependencies but don't include their CMake files
+ # (we'll compile source files directly to avoid conflicts)
+-FetchContent_Populate(pugixml)
+ FetchContent_Populate(cpp-unicodelib)
+ FetchContent_Populate(simpleini)
+ FetchContent_Populate(exprtk)
+@@ -350,7 +347,6 @@
+
+ # Third-party sources that need to be compiled directly
+ # (libraries without CMake targets or header-only libs)
+- ${pugixml_SOURCE_DIR}/src/pugixml.cpp
+ src/third-party/chillout/src/chillout/chillout.cpp
+ src/third-party/chillout/src/chillout/common/common.cpp
+ ${kubazip_SOURCE_DIR}/src/zip.c
+@@ -397,7 +393,6 @@
+
+ target_include_directories(WordTsar PRIVATE
+ src/third-party/chillout/src
+- ${pugixml_SOURCE_DIR}/src
+ ${cpp-unicodelib_SOURCE_DIR}
+ ${simpleini_SOURCE_DIR}
+ ${exprtk_SOURCE_DIR}
+@@ -408,6 +403,7 @@
+ Qt::Core
+ Qt::Gui
+ Qt::PrintSupport
++ pugixml::pugixml
+ )
+
+ if (WIN32)
- [[SM-Commit] ] GIT changes to master grimoire by Ismael Luceno (9614402ecaeebbb31a86613e8af72cdefa9d54ff), Ismael Luceno, 10/06/2026
Archive powered by MHonArc 2.6.24.