diff --git a/.gitignore b/.gitignore
index 52ed481..718a5bb 100644
--- a/.gitignore
+++ b/.gitignore
@@ -14,11 +14,3 @@ xiphos-3.1.3.tar.gz
/xiphos-4.0.2.tar.gz
/xiphos-4.0.3.tar.gz
/xiphos-4.0.4.tar.gz
-/4.0.5.tar.gz
-/4.0.6.tar.gz
-/4.0.7.tar.gz
-/4.1.0.tar.gz
-/xiphos-4.2.1.tar.xz
-/xiphos-4.3.1.tar.xz
-/xiphos-4.3.2.tar.xz
-/xiphos-4.4.0.tar.xz
diff --git a/format-warning.patch b/format-warning.patch
new file mode 100644
index 0000000..5549b68
--- /dev/null
+++ b/format-warning.patch
@@ -0,0 +1,24 @@
+diff --git a/src/gnome2/dialog.c b/src/gnome2/dialog.c
+index d13df3f..ccf161d 100644
+--- a/src/gnome2/dialog.c
++++ b/src/gnome2/dialog.c
+@@ -656,18 +656,13 @@ void gui_generic_warning(char *message)
+ {
+ #if 1
+ GtkWidget *dialog;
+- gchar *dialog_text;
+-
+- dialog_text = g_strdup_printf
+- ("Xiphos\n\n%s", message); /* ξίφος */
+
+ dialog = gtk_message_dialog_new_with_markup
+ (NULL, /* no need for a parent window */
+ GTK_DIALOG_DESTROY_WITH_PARENT,
+ GTK_MESSAGE_INFO,
+ GTK_BUTTONS_OK,
+- dialog_text);
+- g_free(dialog_text);
++ "Xiphos\n\n%s", message);
+
+ g_signal_connect_swapped (dialog, "response",
+ G_CALLBACK (gtk_widget_destroy),
diff --git a/sources b/sources
index 7341878..c95f5e1 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-SHA512 (xiphos-4.4.0.tar.xz) = d5647c90a75897a03ef06219bb2773199bd44b83a79a0be74a378d57f8169c8919a989f43475c71e84e5cb1dfc23029f68ed6d51d7cd5f1837f737ea7e59ff49
+a1d88b7d6812fd261d71a229999c669d xiphos-4.0.4.tar.gz
diff --git a/xiphos.spec b/xiphos.spec
index a934d17..9263d45 100644
--- a/xiphos.spec
+++ b/xiphos.spec
@@ -1,39 +1,38 @@
-%undefine __cmake_in_source_build
+# Define whether or not we are building for GTK3
+%if 0%{?rhel} > 0 && 0%{?rhel} <= 6
+%define build3 0
+%else
+%define build3 1
+%endif
-Name: xiphos
-Version: 4.4.0
-Release: 1%{?dist}
+Name: xiphos
+Version: 4.0.4
+Release: 4%{?dist}
Summary: Bible study and research tool
-# Automatically converted from old format: GPLv2+ - review is highly recommended.
-License: GPL-2.0-or-later
+License: GPLv2+
URL: http://xiphos.org/
-Source0: https://github.com/crosswire/%{name}/releases/download/%{version}/%{name}-%{version}.tar.xz
-BuildRequires: appstream
-BuildRequires: biblesync-devel >= 2.0.1-3
-BuildRequires: cmake
+Source0: http://downloads.sourceforge.net/gnomesword/xiphos-%{version}.tar.gz
+BuildRequires: biblesync-devel >= 1.1.2
BuildRequires: desktop-file-utils
BuildRequires: dbus-glib-devel
BuildRequires: docbook-utils
-BuildRequires: gcc
-BuildRequires: gcc-c++
+BuildRequires: GConf2-devel
BuildRequires: gettext
-BuildRequires: gtk3-devel
+BuildRequires: gnome-doc-utils
+BuildRequires: libglade2-devel
+BuildRequires: gtkhtml3-devel
+BuildRequires: compat-gtkhtml314-devel
BuildRequires: intltool
-BuildRequires: itstool
-BuildRequires: libappstream-glib
+BuildRequires: libgsf-devel
BuildRequires: libuuid-devel
-BuildRequires: minizip-ng-compat-devel
BuildRequires: rarian-compat
-BuildRequires: speech-dispatcher-devel
-BuildRequires: sword-devel >= 1.8
-BuildRequires: util-linux
-BuildRequires: webkit2gtk4.1-devel
-BuildRequires: yelp-tools
-BuildRequires: libzip-devel
+BuildRequires: sword-devel >= 1.7.3
+BuildRequires: webkitgtk-devel
+%if 0%{build3} > 0
+BuildRequires: gtk3-devel
+BuildRequires: webkitgtk3-devel
+%endif
Requires: yelp
-Obsoletes: xiphos-gtk2 < 4.1
-Obsoletes: xiphos-gtk3 < 4.1
-Obsoletes: xiphos-common < 4.1
%if 0%{?rhel} > 0 && 0%{?rhel} <= 7
ExcludeArch: ppc64
@@ -45,13 +44,50 @@ UNIX, and Windows under the GNOME toolkit, offering a rich and featureful
environment for reading, study, and research using modules from The SWORD
Project and elsewhere.
+%package gtk2
+Obsoletes: xiphos < 4.0.0
+Requires: %{name}-common = %{version}-%{release}
+Summary: A version of Xiphos built against the GTK2 toolkit
+
+%description gtk2
+Xiphos is a Bible study tool written for Linux,
+UNIX, and Windows under the GNOME toolkit, offering a rich and featureful
+environment for reading, study, and research using modules from The SWORD
+Project and elsewhere.
+
+%if 0%{build3} > 0
+%package gtk3
+Requires: %{name}-common = %{version}-%{release}
+Summary: A version of Xiphos built against the GTK3 toolkit
+
+%description gtk3
+Xiphos is a Bible study tool written for Linux,
+UNIX, and Windows under the GNOME toolkit, offering a rich and featureful
+environment for reading, study, and research using modules from The SWORD
+Project and elsewhere.
+%endif
+
+%package common
+Summary: Common files for all versions of Xiphos
+
+%description common
+Xiphos is a Bible study tool written for Linux,
+UNIX, and Windows under the GNOME toolkit, offering a rich and featureful
+environment for reading, study, and research using modules from The SWORD
+Project and elsewhere.
+
%prep
%setup -q
rm -rf src/biblesync
+# Ugly hack because of bugs in this version of waf
+mkdir gtk2
+cp -r * gtk2 || true
+mkdir gtk3
+cp -r gtk2/* gtk3
%build
-export CFLAGS="$CFLAGS -fPIC"
-export CXXFLAGS="$CXXFLAGS -fPIC"
+export CC="gcc -fPIC"
+export CXX="g++ -fPIC"
%ifarch %{power64}
CFLAGS="$CFLAGS -D__SANE_USERSPACE_TYPES__"
CXXFLAGS="$CXXFLAGS -D__SANE_USERSPACE_TYPES__"
@@ -59,248 +95,118 @@ export CXXFLAGS="$CXXFLAGS -fPIC"
export CXXFLAGS
export CFLAGS
-LDFLAGS='%{?__global_ldflags}' \
-%cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo \
- -DGTKTVEDITOR=ON \
- %{nil}
-%cmake_build
+# Build GTK2 version
+pushd gtk2
+LDFLAGS='%{?__global_ldflags}' \
+./waf configure \
+ --prefix=%{_prefix} \
+ --gtk=2 || cat build/config.log
+
+./waf build -v
+popd
+
+# Build GTK3 version
+%if 0%{build3} > 0
+pushd gtk3
+LDFLAGS='%{?__global_ldflags}' \
+./waf configure \
+ --prefix=%{_prefix} \
+ --gtk=3 || cat build/config.log
+
+./waf build -v
+popd
+%endif
%install
-%cmake_install
+# Install GTK2 version
+pushd gtk2
+./waf install -b . --destdir %{buildroot}
+mv %{buildroot}%{_bindir}/xiphos %{buildroot}%{_bindir}/xiphos-gtk2
+mv %{buildroot}%{_bindir}/xiphos-nav %{buildroot}%{_bindir}/xiphos-nav-gtk2
+touch %{buildroot}%{_bindir}/xiphos
+popd
+
+# Install GTK3 version
+%if 0%{build3} > 0
+pushd gtk3
+./waf install --destdir %{buildroot}
+mv %{buildroot}%{_bindir}/xiphos %{buildroot}%{_bindir}/xiphos-gtk3
+mv %{buildroot}%{_bindir}/xiphos-nav %{buildroot}%{_bindir}/xiphos-nav-gtk3
+touch %{buildroot}%{_bindir}/xiphos
+popd
+%endif
desktop-file-install --delete-original \
- --add-category=X-Bible \
- --add-category=X-Religion \
- --dir=%{buildroot}%{_datadir}/applications \
- --copy-name-to-generic-name \
- %{buildroot}%{_datadir}/applications/xiphos.desktop
+ --add-category=X-Bible \
+ --add-category=X-Religion \
+ --dir=%{buildroot}%{_datadir}/applications \
+ --copy-name-to-generic-name \
+ %{buildroot}%{_datadir}/applications/xiphos.desktop
# package docs with macro
rm -frv %{buildroot}%{_docdir}/%{name}
%find_lang %{name}
-%files -f %{name}.lang
-%doc AUTHORS ChangeLog README.md RELEASE-NOTES TODO
-%license COPYING
-%{_bindir}/xiphos
-%{_bindir}/xiphos-nav
-%{_datadir}/metainfo/xiphos.appdata.xml
+# Post-install options
+%post common
+touch --no-create %{_datadir}/icons/hicolor &>/dev/null || :
+
+%if 0%{build3} > 0
+%post gtk3
+%{_sbindir}/update-alternatives --install %{_bindir}/xiphos xiphos %{_bindir}/xiphos-gtk3 10 \
+ --slave %{_bindir}/xiphos-nav xiphos-nav %{_bindir}/xiphos-nav-gtk3
+%endif
+
+%post gtk2
+%{_sbindir}/update-alternatives --install %{_bindir}/xiphos xiphos %{_bindir}/xiphos-gtk2 10 \
+ --slave %{_bindir}/xiphos-nav xiphos-nav %{_bindir}/xiphos-nav-gtk2
+
+# Post-uninstall options
+%postun common
+if [ $1 -eq 0 ] ; then
+ touch --no-create %{_datadir}/icons/hicolor &>/dev/null
+ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || :
+fi
+
+%if 0%{build3} > 0
+# Pre-uninstall options
+%preun gtk3
+if [ $1 -eq 0 ]; then
+ %{_sbindir}/update-alternatives --remove xiphos %{_bindir}/xiphos-gtk3
+fi
+%endif
+
+%preun gtk2
+if [ $1 -eq 0 ]; then
+ %{_sbindir}/update-alternatives --remove xiphos %{_bindir}/xiphos-gtk2
+fi
+
+%posttrans
+gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || :
+
+%files gtk2
+%{_bindir}/xiphos-gtk2
+%{_bindir}/xiphos-nav-gtk2
+%ghost %{_bindir}/xiphos
+%{_datadir}/appdata/xiphos.appdata.xml
%{_datadir}/applications/xiphos.desktop
+
+%if 0%{build3} > 0
+%files gtk3
+%{_bindir}/xiphos-gtk3
+%{_bindir}/xiphos-nav-gtk3
+%ghost %{_bindir}/xiphos
+%endif
+
+%files -f %{name}.lang common
+%doc AUTHORS COPYING ChangeLog README RELEASE-NOTES TODO Xiphos.ogg
+%{_datadir}/gnome/help/xiphos
%{_datadir}/icons/hicolor/scalable/apps/xiphos.svg
+%{_datadir}/omf/xiphos/
%{_datadir}/xiphos/
-%{_datadir}/help/C/xiphos
-%{_datadir}/help/fa/xiphos
-%{_datadir}/help/fr/xiphos
-%{_datadir}/help/it/xiphos
-%{_mandir}/man1/%{name}.1.gz
-%{_mandir}/man1/%{name}-nav.1.gz
%changelog
-* Sun Aug 02 2026 Greg Hellings - 4.4.0-1
-- New upstream release 4.4.0
-- Introduction of speech services for TTS
-- Restoration of editor through GTK-native technologies
-
-* Fri Jul 17 2026 Fedora Release Engineering - 4.3.2-7
-- Rebuilt for https://fedoraproject.org/wiki/Fedora_45_Mass_Rebuild
-
-* Mon Jun 08 2026 František Zatloukal - 4.3.2-6
-- Rebuilt for icu 78.3
-
-* Sat Jan 17 2026 Fedora Release Engineering - 4.3.2-5
-- Rebuilt for https://fedoraproject.org/wiki/Fedora_44_Mass_Rebuild
-
-* Wed Aug 06 2025 František Zatloukal - 4.3.2-4
-- Rebuilt for icu 77.1
-
-* Sat Aug 2 2025 Aaron Rainbolt - 4.3.2-3
-- Switch to webkitgtk4.1 since webkitgtk4.0 has been retired (rhbz#2385989)
-
-* Fri Jul 25 2025 Fedora Release Engineering - 4.3.2-2
-- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild
-
-* Mon Jun 02 2025 Aaron Rainbolt - 4.3.2-1
-- New upstream version 4.3.2
-
-* Sun Mar 23 2025 Greg Hellings - 4.3.1-1
-- New upstream version 4.3.1 which already has editor fixed
-- Updated dependencies
-- Removed all patches
-
-* Wed Jan 29 2025 Aaron Rainbolt - 4.2.1-28
-- Strip out editor component to resolve FTBFS
-
-* Sun Jan 19 2025 Fedora Release Engineering - 4.2.1-27
-- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild
-
-* Sun Dec 08 2024 Pete Walter - 4.2.1-26
-- Rebuild for ICU 76
-
-* Fri Jul 26 2024 Miroslav Suchý - 4.2.1-25
-- convert license to SPDX
-
-* Sat Jul 20 2024 Fedora Release Engineering - 4.2.1-24
-- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild
-
-* Thu Feb 01 2024 Pete Walter - 4.2.1-23
-- Rebuild for ICU 74
-
-* Sat Jan 27 2024 Fedora Release Engineering - 4.2.1-22
-- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
-
-* Mon Dec 04 2023 Lukas Javorsky - 4.2.1-21
-- Rebuilt for minizip-ng transition Fedora change
-- Fedora Change: https://fedoraproject.org/wiki/Changes/MinizipNGTransition
-
-* Sat Jul 22 2023 Fedora Release Engineering - 4.2.1-20
-- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
-
-* Tue Jul 11 2023 František Zatloukal - 4.2.1-19
-- Rebuilt for ICU 73.2
-
-* Sat Jan 21 2023 Fedora Release Engineering - 4.2.1-18
-- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
-
-* Sat Dec 31 2022 Pete Walter - 4.2.1-17
-- Rebuild for ICU 72
-
-* Tue Nov 15 2022 Sandro Mani - 4.2.1-16
-- Rebuild (minizip-ng)
-
-* Mon Aug 01 2022 Frantisek Zatloukal - 4.2.1-15
-- Rebuilt for ICU 71.1
-
-* Sat Jul 23 2022 Fedora Release Engineering - 4.2.1-14
-- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
-
-* Fri Mar 18 2022 Greg Hellings - 4.2.1-13
-- Add minizip patch to fix FTBFS
-
-* Sat Jan 22 2022 Fedora Release Engineering - 4.2.1-12
-- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
-
-* Fri Jul 23 2021 Fedora Release Engineering - 4.2.1-11
-- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
-
-* Thu May 20 2021 Pete Walter - 4.2.1-10
-- Rebuild for ICU 69
-
-* Thu Apr 22 2021 Greg Hellings - 4.2.1-9
-- Added patch for glib version incompatibility
-
-* Thu Jan 28 2021 Fedora Release Engineering - 4.2.1-8
-- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
-
-* Mon Dec 14 2020 Greg Hellings - 4.2.1-7
-- Force rebuild against SWORD 1.9.0
-
-* Sat Aug 01 2020 Fedora Release Engineering - 4.2.1-6
-- Second attempt - Rebuilt for
- https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
-
-* Wed Jul 29 2020 Fedora Release Engineering - 4.2.1-5
-- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
-
-* Thu Jun 11 2020 Greg Hellings - 4.2.1-4
-- Remove libglade2 from BR
-
-* Sun May 17 2020 Pete Walter - 4.2.1-3
-- Rebuild for ICU 67
-
-* Sat May 16 2020 Pete Walter - 4.2.1-2
-- Rebuild for ICU 67
-
-* Thu May 14 2020 Greg Hellings - 4.2.1-1
-- Upstream release 4.2.1
-- Remove patches
-- Remove GConf2 and libgsf dependencies
-- Removed Xiphos.ogg doc
-- Added Italian help translation
-
-* Thu Apr 02 2020 Greg Hellings - 4.1.0-12
-- Added fix_nasb.patch
-
-* Fri Jan 31 2020 Fedora Release Engineering - 4.1.0-11
-- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
-
-* Fri Nov 01 2019 Pete Walter - 4.1.0-10
-- Rebuild for ICU 65
-
-* Sat Jul 27 2019 Fedora Release Engineering - 4.1.0-9
-- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
-
-* Sun Feb 03 2019 Fedora Release Engineering - 4.1.0-8
-- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
-
-* Wed Jan 23 2019 Pete Walter - 4.1.0-7
-- Rebuild for ICU 63
-
-* Tue Jul 31 2018 Florian Weimer - 4.1.0-6
-- Rebuild with fixed binutils
-
-* Thu Jul 26 2018 Greg Hellings - 4.1.0-5
-- Change to CMake build process
-- Add several BRs
-- Include patch from upstream that adds CMake (TBR 4.1.1 or later)
-
-* Thu Jul 12 2018 Greg Hellings - 4.1.0-2
-- Rebuild for SWORD 1.8.1-7
-
-* Tue Jul 10 2018 Pete Walter - 4.1.0-3
-- Rebuild for ICU 62
-
-* Mon May 14 2018 Greg Hellings - 4.1.0-1
-- Upstream release 4.1.0
-
-* Mon Apr 30 2018 Pete Walter - 4.0.7-6
-- Rebuild for ICU 61.1
-
-* Fri Feb 09 2018 Fedora Release Engineering - 4.0.7-5
-- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
-
-* Mon Jan 15 2018 Greg Hellings - 4.0.7-4
-- Rebuild for SWORD 1.8
-
-* Fri Jan 12 2018 Tomas Popela - 4.0.7-3
-- Adapt to the webkitgtk4 rename
-
-* Thu Nov 30 2017 Pete Walter - 4.0.7-2
-- Rebuild for ICU 60.1
-
-* Mon Sep 25 2017 Greg Hellings - 4.0.7-1
-- Upstream release 4.0.7
-
-* Sat Aug 12 2017 Greg Hellings - 4.0.6-1
-- Upstream release 4.0.6
-- Addresses display bug BZ1448623
-
-* Thu Aug 03 2017 Fedora Release Engineering - 4.0.5-4
-- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild
-
-* Thu Jul 27 2017 Fedora Release Engineering - 4.0.5-3
-- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild
-
-* Tue Jul 11 2017 Greg Hellings - 4.0.5-2
-- Fix post install scripts for upgrades
-- Added obsoletes for xiphos-common to stop collision issues
-- Partially addresses BZ1448623
-
-* Sun Apr 23 2017 Greg Hellings - 4.0.5-1
-- Upstream version 4.0.5
-- Added extra Provides lines
-- Updated URL for source tarball
-
-* Sat Feb 11 2017 Fedora Release Engineering - 4.0.4-7
-- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild
-
-* Mon Jan 09 2017 Greg Hellings - 4.0.4-6
-- Dropped GTK2 support
-- Dropped WebKitGTK support
-
-* Mon Sep 19 2016 Greg Hellings - 4.0.4-5
-- Moved to WebKit2
-
* Wed Jun 01 2016 Greg Hellings - 4.0.4-4
- Moved appdata and desktop files to gtk2 build, allowing
proper auto-discovery by gnome-software. BZ#1330096
@@ -311,7 +217,7 @@ rm -frv %{buildroot}%{_docdir}/%{name}
* Fri Feb 05 2016 Fedora Release Engineering - 4.0.4-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild
-* Tue Sep 01 2015 Greg Hellings - 4.0.4-1
+* Tue Sep 02 2015 Greg Hellings - 4.0.4-1
- Update to new upstream version
* Fri Aug 07 2015 Greg Hellings - 4.0.3-1