From 72c928db620885e48c75a3c2e01122767f06fe21 Mon Sep 17 00:00:00 2001 From: Pete Walter Date: Mon, 30 Apr 2018 20:44:58 +0100 Subject: [PATCH 01/58] Rebuild for ICU 61.1 --- xiphos.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/xiphos.spec b/xiphos.spec index a73fca4..b9d5785 100644 --- a/xiphos.spec +++ b/xiphos.spec @@ -1,6 +1,6 @@ Name: xiphos Version: 4.0.7 -Release: 5%{?dist} +Release: 6%{?dist} Summary: Bible study and research tool License: GPLv2+ URL: http://xiphos.org/ @@ -104,6 +104,9 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %{_datadir}/xiphos/ %changelog +* 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 From e0471489cfe02149ccba578faf86bd462cab2a35 Mon Sep 17 00:00:00 2001 From: Gregory Hellings Date: Mon, 14 May 2018 22:47:55 -0500 Subject: [PATCH 02/58] Upstream version 4.1.0 --- .gitignore | 1 + sources | 2 +- xiphos.spec | 11 +++++++---- 3 files changed, 9 insertions(+), 5 deletions(-) diff --git a/.gitignore b/.gitignore index e14bfdb..7c894ce 100644 --- a/.gitignore +++ b/.gitignore @@ -17,3 +17,4 @@ xiphos-3.1.3.tar.gz /4.0.5.tar.gz /4.0.6.tar.gz /4.0.7.tar.gz +/4.1.0.tar.gz diff --git a/sources b/sources index fac913b..f0c6c3e 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (4.0.7.tar.gz) = 041e0e9c6a7406b02c5b45066b44a3d44c37a34a799c3dfd617b6aa52dc50efbf800e475e107108fcf1d0d23a3522d0a9fa0838c474d2e4dd39f3af9d3429bd4 +SHA512 (4.1.0.tar.gz) = f2da65a0cf10cda5ca471a09d351be8e2e5601857b4cb363ba45865e4595bebbc9b8cfa47660a1106b1521b4059d341c7e8c04c0c712387b913bdf994d1c6400 diff --git a/xiphos.spec b/xiphos.spec index 632ae92..e3d7b7b 100644 --- a/xiphos.spec +++ b/xiphos.spec @@ -1,11 +1,11 @@ Name: xiphos -Version: 4.0.7 -Release: 4%{?dist} +Version: 4.1.0 +Release: 1%{?dist} Summary: Bible study and research tool License: GPLv2+ URL: http://xiphos.org/ Source0: https://github.com/crosswire/%{name}/archive/%{version}.tar.gz -BuildRequires: biblesync-devel >= 1.1.2 +BuildRequires: biblesync-devel >= 1.2 BuildRequires: desktop-file-utils BuildRequires: dbus-glib-devel BuildRequires: docbook-utils @@ -17,7 +17,7 @@ BuildRequires: intltool BuildRequires: libgsf-devel BuildRequires: libuuid-devel BuildRequires: rarian-compat -BuildRequires: sword-devel >= 1.7.3 +BuildRequires: sword-devel >= 1.8 BuildRequires: gtk3-devel BuildRequires: webkit2gtk3-devel BuildRequires: gtkhtml3-devel @@ -104,6 +104,9 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %{_datadir}/xiphos/ %changelog +* Mon May 14 2018 Greg Hellings - 4.1.0-1 +- Upstream release 4.1.0 + * Mon Jan 15 2018 Greg Hellings - 4.0.7-4 - Rebuild for SWORD 1.8 From 9c728cbdd8bf98645669742f9da99735a027ca11 Mon Sep 17 00:00:00 2001 From: Gregory Hellings Date: Mon, 14 May 2018 23:12:21 -0500 Subject: [PATCH 03/58] Correct several lint issues --- xiphos.spec | 22 +++++++++------------- 1 file changed, 9 insertions(+), 13 deletions(-) diff --git a/xiphos.spec b/xiphos.spec index 79f3adc..0b0c4b3 100644 --- a/xiphos.spec +++ b/xiphos.spec @@ -1,6 +1,6 @@ Name: xiphos Version: 4.1.0 -Release: 1%{?dist} +Release: 2%{?dist} Summary: Bible study and research tool License: GPLv2+ URL: http://xiphos.org/ @@ -22,13 +22,9 @@ BuildRequires: gtk3-devel BuildRequires: webkit2gtk3-devel BuildRequires: gtkhtml3-devel Requires: yelp -Provides: xiphos -Provides: xiphos-common -Provides: xiphos-gtk2 -Provides: xiphos-gtk3 -Obsoletes: xiphos-gtk2 -Obsoletes: xiphos-gtk3 -Obsoletes: xiphos-common +Obsoletes: xiphos-gtk2 < 4.1 +Obsoletes: xiphos-gtk3 < 4.1 +Obsoletes: xiphos-common < 4.1 %if 0%{?rhel} > 0 && 0%{?rhel} <= 7 ExcludeArch: ppc64 @@ -66,11 +62,11 @@ LDFLAGS='%{?__global_ldflags}' \ ./waf install --destdir %{buildroot} 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} From e11279c0bca51a49d543048e4bdcfb05412e8ff6 Mon Sep 17 00:00:00 2001 From: Pete Walter Date: Tue, 10 Jul 2018 22:05:54 +0100 Subject: [PATCH 04/58] Rebuild for ICU 62 --- xiphos.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/xiphos.spec b/xiphos.spec index 0b0c4b3..a76095c 100644 --- a/xiphos.spec +++ b/xiphos.spec @@ -1,6 +1,6 @@ Name: xiphos Version: 4.1.0 -Release: 2%{?dist} +Release: 3%{?dist} Summary: Bible study and research tool License: GPLv2+ URL: http://xiphos.org/ @@ -100,6 +100,9 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %{_datadir}/xiphos/ %changelog +* 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 From e5e43dcff2214fe9934ca44f6d4a23b56ac7e422 Mon Sep 17 00:00:00 2001 From: Gregory Hellings Date: Thu, 12 Jul 2018 13:41:27 -0500 Subject: [PATCH 05/58] Rebuild for SWORD 1.8.1-7 --- xiphos.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/xiphos.spec b/xiphos.spec index a76095c..dd4eada 100644 --- a/xiphos.spec +++ b/xiphos.spec @@ -1,6 +1,6 @@ Name: xiphos Version: 4.1.0 -Release: 3%{?dist} +Release: 4%{?dist} Summary: Bible study and research tool License: GPLv2+ URL: http://xiphos.org/ @@ -100,6 +100,9 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %{_datadir}/xiphos/ %changelog +* Thu Jul 12 2018 Greg Hellings - 4.1.1-2 +- Rebuild for SWORD 1.8.1-7 + * Tue Jul 10 2018 Pete Walter - 4.1.0-3 - Rebuild for ICU 62 From fb30d64e2e583f6c0dcb12d85ae03bbc6f8140b5 Mon Sep 17 00:00:00 2001 From: Gregory Hellings Date: Thu, 12 Jul 2018 14:10:45 -0500 Subject: [PATCH 06/58] Fix %changelog version name --- xiphos.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/xiphos.spec b/xiphos.spec index dd4eada..1a93728 100644 --- a/xiphos.spec +++ b/xiphos.spec @@ -100,7 +100,7 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %{_datadir}/xiphos/ %changelog -* Thu Jul 12 2018 Greg Hellings - 4.1.1-2 +* 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 From fae7108249d70f8fe6584881bea97d906d387a3a Mon Sep 17 00:00:00 2001 From: Gregory Hellings Date: Sat, 28 Jul 2018 22:28:33 -0500 Subject: [PATCH 07/58] Switch build to CMake --- cmake.patch | 124109 +++++++++++++++++++++++++++++++++++++++++++++++++ xiphos.spec | 48 +- 2 files changed, 124144 insertions(+), 13 deletions(-) create mode 100644 cmake.patch diff --git a/cmake.patch b/cmake.patch new file mode 100644 index 0000000..ca63bad --- /dev/null +++ b/cmake.patch @@ -0,0 +1,124109 @@ +diff --git a/.bzrignore b/.bzrignore +index 1425fec6..67dc79cd 100644 +--- a/.bzrignore ++++ b/.bzrignore +@@ -34,12 +34,12 @@ po/.intltool-merge-cache + po/Makefile.in.in + po/POTFILES + po/stamp-it +-src/gnome2/.libs/ +-src/gnome2/ipc-interface.h +-src/gnome2/locale_set.c +-src/gnome2/marshal.c +-src/gnome2/marshal.h +-src/gnome2/xiphos ++src/gtk/.libs/ ++src/gtk/ipc-interface.h ++src/gtk/locale_set.c ++src/gtk/marshal.c ++src/gtk/marshal.h ++src/gtk/xiphos + .waf* + build + .lock-wscript +diff --git a/CMakeLists.txt b/CMakeLists.txt +new file mode 100644 +index 00000000..02073f1d +--- /dev/null ++++ b/CMakeLists.txt +@@ -0,0 +1,109 @@ ++# Xiphos build script ++# ++# Copyright (C) 2018 Xiphos Development Team ++# ++# This program is free software; you can redistribute it and/or modify ++# it under the terms of the GNU General Public License as published by ++# the Free Software Foundation; either version 2 of the License, or ++# (at your option) any later version. ++# ++# This program is distributed in the hope that it will be useful, ++# but WITHOUT ANY WARRANTY; without even the implied warranty of ++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++# GNU Library General Public License for more details. ++# ++# You should have received a copy of the GNU General Public License ++# along with this program; if not, write to the Free Software ++# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. ++# ++ ++# the oldest stable cmake version we support ++cmake_minimum_required (VERSION 3.6 FATAL_ERROR) ++cmake_policy(VERSION 3.6) ++ ++ ++### set project name and version HERE ### ++project (xiphos ++ VERSION "4.1.0" ++ LANGUAGES C CXX) ++ ++ ++# set commonly used Xiphos variables: ++# Xiphos website ++set (XIPHOS_WEBSITE "http://xiphos.org") ++ ++# Xiphos issues report website ++set (XIPHOS_BUG_REPORT "https://github.com/crosswire/xiphos/issues") ++ ++# Xiphos release date, (read from 'ChangeLog') ++# read last entry in ChangeLog ++file(STRINGS ${PROJECT_SOURCE_DIR}/ChangeLog ++ ChangeLog_lastentry REGEX "^20[0-9][0-9]-[0-9][0-9]" LIMIT_COUNT 1) ++# get year ++string(SUBSTRING ${ChangeLog_lastentry} 0 4 ChangeLog_year) ++# get month's number ++string(SUBSTRING ${ChangeLog_lastentry} 5 2 ChangeLog_month) ++# transform month's number into month's name ++list(APPEND month_names "XXX;Jan;Feb;Mar;Apr;May;Jun;Jul;Aug;Sep;Oct;Nov;Dec") ++list(GET month_names ${ChangeLog_month} ChangeLog_month) ++# generate release date string ++string(CONFIGURE "@ChangeLog_month@ @ChangeLog_year@" XIPHOS_RELEASE_DATE) ++ ++ ++# make sure it's an out-of-stream build ++file(TO_CMAKE_PATH "${PROJECT_BINARY_DIR}/CMakeLists.txt" LOC_PATH) ++if(EXISTS "${LOC_PATH}") ++ message(FATAL_ERROR "You cannot build in the source directory (or any directory with a CMakeLists.txt file). Please make an out-of-stream build subdirectory.") ++endif() ++ ++ ++# tell cmake where its modules can be found in our project directory ++list (APPEND CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake) ++list (APPEND CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake/modules) ++ ++# set install directory variables as defined by the GNU Coding Standards. ++# e.g. CMAKE_INSTALL_DATAROOTDIR; CMAKE_INSTALL_FULL_BINDIR; ++# CMAKE_INSTALL_FULL_DOCDIR... ++include (GNUInstallDirs) ++ ++# set CMAKE options that the user can optionally select ON or OFF. ++include (XiphosOptions) ++ ++# find needed tools for building Xiphos ++include (XiphosBuildTools) ++ ++# find dependencies ++include (XiphosDependencies) ++ ++# set flags ++include (XiphosFlags) ++ ++# create config.h ++include (XiphosConfig_h) ++ ++# build xiphos ++add_subdirectory(win32) ++add_subdirectory(src/backend) ++add_subdirectory(src/editor) ++add_subdirectory(src/main) ++add_subdirectory(src/webkit) ++add_subdirectory(src/xiphos_html) ++add_subdirectory(src/gtk) ++ ++# build xiphos-nav ++add_subdirectory(src/examples) ++ ++# build other stuff ++add_subdirectory(pixmaps) ++add_subdirectory(ui) ++add_subdirectory(po) ++add_subdirectory(desktop) ++add_subdirectory(doc) ++add_subdirectory(mhelp) ++ ++# create packages ++add_subdirectory(cpack) ++ ++# report ++include (XiphosReport) ++# End +diff --git a/INSTALL-cmake.md b/INSTALL-cmake.md +new file mode 100644 +index 00000000..d0f601d9 +--- /dev/null ++++ b/INSTALL-cmake.md +@@ -0,0 +1,232 @@ ++Installation instructions ++========================== ++ ++On Linux install Xiphos through you package manager, for example on Fedora: ++ ++ $ sudo dnf install xiphos-gtk3 ++ ++Or on Debian, Ubuntu, or Linux Mint: ++ ++ $ sudo apt-get update ++ $ sudo apt-get install xiphos ++ ++If you use Windows download the .exe file from: http://xiphos.org/download/ ++ ++Compile Xiphos from source ++========================== ++ ++Get source ++---------- ++ ++To compile Xiphos from source you will need to get a checkout of Xiphos from ++GitHub. To do so, do: ++ ++ $ git clone https://github.com/crosswire/xiphos.git ++ ++Dependencies ++------------ ++ ++Before building Xiphos with CMake, please ensure that you have the platform ++specific dependencies installed: ++ ++ gcc GCC, the GNU Compiler Collection ++ intltool Set of tools to centralize translation ++ libxml2 XML C parser and toolkit ++ libgsf The G Structured File Library ++ gconfmm C++ wrappers for GConf ++ libuuid universally unique identifier library ++ sword >= 1.8.0 CrossWire Bible Society's Bible software ++ biblesync Protocol to support Bible software shared co-navigation ++ Gtk+-2.0 or GTK+-3.0 The GIMP Toolkit ++ WebKit1 or Webkit2 Port to Gtk+ of the WebKit rendering engine ++ ++Optional Dependencies: ++ ++ gtkhtml Lightweight HTML rendering/editing engine ++ dbus-glib API for use of D-Bus from GLib applications ++ ++Recommended tools: ++ ++ intltool An internationalization tool ++ appstream-util Utility to validate AppStream metadata ++ desktop-file-validate Validates a desktop file ++ itstool Translates XML documents with PO files ++ xmllint Validates an XML file against an XSD schema ++ yelp-build Creates HTML, EPUB, and other files from help files ++ chmcmd Creates a Compressed HTML help file (chm) ++ ++For *Fedora*, you need to make sure you have these packages installed: ++ ++ $ sudo dnf install cmake gcc-c++ intltool gtk3-devel dbus-glib-devel gtkhtml3-devel webkitgtk4-devel libxml2-devel libgsf-devel gconfmm26-devel sword-devel libuuid-devel biblesync-devel intltool libappstream-glib-devel desktop-file-utils itstool yelp-tools fpc ++ ++Or for *Ubuntu*, both GTK3 and GTK2 versions, install: ++ ++ $ sudo apt-get install cmake cpp intltool libdbus-glib-1-dev libwebkitgtk-3.0-dev libxml2-dev libgsf-1-dev libgconfmm-2.6-dev libsword-dev uuid-dev libwebkitgtk-dev libglade2-dev intltool appstream-util desktop-file-utils itstool libxml2-utils yelp-tools fp-utils uuid-runtime ++ ++ ++Building Xiphos with CMake ++-------------------------- ++ ++CMake is a cross-platform tool for generating makefiles (as well as project files ++used by IDEs). ++ ++The current version of the buildsystem is capable of building and packaging ++Xiphos for the following platforms: ++ ++- Linux (GNU Makefiles, Ninja) ++ ++Should work, but untested: ++- FreeBSD (GNU Makefiles) ++ ++Work in progress: ++- Linux Cross compiling for Windows (GNU Makefiles, Ninja) ++ ++While the legacy build systems typically used in-source builds, it's highly ++recommended to use *out-of-source* builds with CMake. ++ ++The necessary runtime dependencies such as generated source files, static ++libraries, translated files are copied over to the build directory automatically ++during the build process. ++ ++ ++Commands for building Xiphos ++---------------------------- ++ ++This section lists the necessary commands for building Xiphos with CMake. ++CMake supports different generators (like GNU/NMake Makefiles or Ninja). ++ ++The cmake command-line tool --help output lists available generators on the ++current platform. Use its -G option to specify the generator for a new build tree. ++ ++Set-up the out-of-source build. Using a build tree that is separate from the ++source tree will prevent CMake from generating any files in the source tree. ++Create a completely separate directory: ++ ++ ++ mkdir xiphos-build && cd xiphos-build ++ ++ ++All examples below are for out-of-source builds with Xiphos checked out to ++``: ++ ++### Linux build with Ninja ++ ++ ++ cmake -G Ninja ++ cmake --build . -- -v # or: ninja -v all ++ ++`CMAKE_BUILD_TYPE` defaults to `Release` (or to `Debug` if a .git dir exists) ++ ++### Linux build with Makefiles ++ ++ cmake ++ cmake --build . -- VERBOSE=1 -j$(nproc) # or: make VERBOSE=1 -j$(nproc) ++ ++ ++Build Options ++------------- ++ ++Xiphos supports a number of build options that can enable or disable certain ++functionality. These options must be set when running CMake with ++`-DENABLE_