commit 8691f54c24ff0bee5d0a0a6d3afad7711cc32da7
Author: Jakub Bogusz <[email protected]>
Date:   Sat Oct 26 15:09:02 2024 +0200

    - disable (Xevie dependent) gpresagemate by default, updated to build in 
current environment; release 3

 presage-build.patch  |  11 +++
 presage-c++17.patch  | 207 +++++++++++++++++++++++++++++++++++++++++++++++++++
 presage-format.patch |  47 ++++++++++++
 presage.spec         |  22 +++++-
 4 files changed, 284 insertions(+), 3 deletions(-)
---
diff --git a/presage.spec b/presage.spec
index 3dd64fd..98b078e 100644
--- a/presage.spec
+++ b/presage.spec
@@ -3,12 +3,13 @@
 %bcond_without apidocs         # API documentation
 %bcond_without ngram           # ARPA ngram language model
 %bcond_without static_libs     # static library
+%bcond_with    xevie           # Xevie based gpresagemate app
 #
 Summary:       Presage - the intelligent predictive text entry system
 Summary(pl.UTF-8):     Presage - inteligentny, przewidujący system 
wprowadzania tekstu
 Name:          presage
 Version:       0.9.1
-Release:       2
+Release:       3
 License:       GPL v2+
 Group:         Libraries
 Source0:       
http://downloads.sourceforge.net/presage/%{name}-%{version}.tar.gz
@@ -17,6 +18,8 @@ Patch0:               %{name}-link.patch
 Patch1:                %{name}-configure.patch
 Patch2:                %{name}-build.patch
 Patch3:                %{name}-cmuclmtk.patch
+Patch4:                %{name}-c++17.patch
+Patch5:                %{name}-format.patch
 URL:           http://presage.sourceforge.net/
 BuildRequires: autoconf >= 2.50
 BuildRequires: automake >= 1:1.9
@@ -40,7 +43,7 @@ BuildRequires:        sqlite3-devel >= 3
 BuildRequires: swig-python >= 2.0
 BuildRequires: tinyxml-devel
 BuildRequires: xorg-lib-libX11-devel
-BuildRequires: xorg-lib-libXevie-devel
+%{?with_xevie:BuildRequires:   xorg-lib-libXevie-devel}
 Requires:      %{name}-libs = %{version}-%{release}
 BuildRoot:     %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
 
@@ -136,13 +139,17 @@ Requires: %{name} = %{version}-%{release}
 
 %description gtk
 GTK+ presage applications:
+%if %{with xevie}
 - gpresagemate: user input predictions using XEvIE extension
+%endif
 - gprompter: intelligent predictive GTK+ text editor
 
 %description gtk -l pl.UTF-8
 Aplikacje presage oparte na GTK+:
+%if %{with xevie}
 - gpresagemate - przewidywanie wejścia użytkownika z wykorzystaniem
   rozszerzenia XEvIE
+%endif
 - gprompter - inteligenty, przewidujący edytor tekstu oparty na GTK+
 
 %package -n python-presage
@@ -194,8 +201,13 @@ bibliotekę wxPython.
 %patch1 -p1
 %patch2 -p1
 %patch3 -p1
+%patch4 -p1
+%patch5 -p1
 
-%{__sed} -i -e '1s,/usr/bin/env python,%{__python},' 
apps/dbus/{presage_dbus_python_demo,presage_dbus_service,presage_dbus_service.py}
+%{__sed} -i -e '1s,/usr/bin/env python,%{__python},' \
+       
apps/dbus/{presage_dbus_python_demo.in,presage_dbus_service,presage_dbus_service.py}
+%{__sed} -i -e '1s,/usr/bin/python$,%{__python},' \
+       apps/python/pypresagemate.in
 
 %build
 %{__libtoolize}
@@ -204,7 +216,9 @@ bibliotekę wxPython.
 %{__autoheader}
 %{__automake}
 %configure \
+       PYTHON=%{__python} \
        %{!?with_apidocs:--disable-documentation} \
+       %{!?with_xevie:--disable-gpresagemate} \
        %{!?with_static_libs:--disable-static}
 %{__make}
 
@@ -290,7 +304,9 @@ rm -rf $RPM_BUILD_ROOT
 
 %files gtk
 %defattr(644,root,root,755)
+%if %{with xevie}
 %attr(755,root,root) %{_bindir}/gpresagemate
+%endif
 %attr(755,root,root) %{_bindir}/gprompter
 %{_desktopdir}/gprompter.desktop
 %{_iconsdir}/hicolor/scalable/apps/gprompter.svg
diff --git a/presage-build.patch b/presage-build.patch
index 6c60ebc..14c6fc5 100644
--- a/presage-build.patch
+++ b/presage-build.patch
@@ -135,3 +135,14 @@
  
      '\0' };
  
+--- presage-0.9.1/apps/gtk/gprompter/scintilla/gtk/ScintillaGTK.cxx.orig       
2015-04-21 13:31:43.000000000 +0200
++++ presage-0.9.1/apps/gtk/gprompter/scintilla/gtk/ScintillaGTK.cxx    
2024-10-26 14:38:10.956803818 +0200
+@@ -1626,7 +1626,7 @@ void ScintillaGTK::ReceivedDrop(GtkSelec
+               drop.push_back('\0');
+               NotifyURIDropped(&drop[0]);
+       } else if ((TypeOfGSD(selection_data) == GDK_TARGET_STRING) || 
(TypeOfGSD(selection_data) == atomUTF8)) {
+-              if (TypeOfGSD(selection_data) > 0) {
++              if (LengthOfGSD(selection_data) > 0) {
+                       SelectionText selText;
+                       GetGtkSelectionText(selection_data, selText);
+                       DropAt(posDrop, selText.Data(), selText.Length(), 
false, selText.rectangular);
diff --git a/presage-c++17.patch b/presage-c++17.patch
new file mode 100644
index 0000000..6d6f387
--- /dev/null
+++ b/presage-c++17.patch
@@ -0,0 +1,207 @@
+--- presage-0.9.1/src/lib/presage.h.orig       2015-02-09 12:45:19.000000000 
+0100
++++ presage-0.9.1/src/lib/presage.h    2024-10-26 14:21:31.014370037 +0200
+@@ -112,7 +112,7 @@ public:
+      * 
+      * Presage does not take ownership of the callback object.
+      */
+-    Presage(PresageCallback* callback) throw (PresageException);
++    Presage(PresageCallback* callback);
+ 
+ 
+     /** Creates and initializes presage with supplied configuration.
+@@ -122,7 +122,7 @@ public:
+      *
+      * Presage does not take ownership of the callback object.
+      */
+-    Presage(PresageCallback* callback, const std::string config) throw 
(PresageException);
++    Presage(PresageCallback* callback, const std::string config);
+ 
+ 
+     /** Destroys presage.
+@@ -138,7 +138,7 @@ public:
+      * context.
+      *
+      */
+-    std::vector<std::string> predict() throw (PresageException);
++    std::vector<std::string> predict();
+ 
+     /** \brief Obtain a prediction that matches the supplied token
+      *         filter.
+@@ -153,7 +153,7 @@ public:
+      * of the filter tokens.
+      *
+      */
+-    std::multimap<double, std::string> predict(std::vector<std::string> 
filter) throw (PresageException);
++    std::multimap<double, std::string> predict(std::vector<std::string> 
filter);
+ 
+     /** \brief Learn from text offline.
+      *
+@@ -167,7 +167,7 @@ public:
+      * \param text a text string to learn from.
+      *
+      */
+-    void learn(const std::string text) const throw (PresageException);
++    void learn(const std::string text) const;
+ 
+     /** \brief Callback getter/setter.
+      *
+@@ -176,7 +176,7 @@ public:
+      *
+      * \return pointer to previously used callback
+      */
+-    PresageCallback* callback(PresageCallback* callback) throw 
(PresageException);
++    PresageCallback* callback(PresageCallback* callback);
+ 
+     /** \brief Request presage to return the completion string for the given 
predicted token.
+      *
+@@ -190,26 +190,26 @@ public:
+      *
+      * \return completion string
+      */
+-    std::string completion(std::string str) throw (PresageException);
++    std::string completion(std::string str);
+ 
+     /** \brief Returns the text entered so far.
+      *
+      * \return context, text entered so far.
+      */
+-    std::string context() const throw (PresageException);
++    std::string context() const;
+ 
+     /** \brief Returns true if a context change occured.
+      *
+      * \return true if a context change occured after the last update
+      * or predict calls, or false otherwise.
+      */
+-    bool context_change() const throw (PresageException);
++    bool context_change() const;
+ 
+     /** \brief Returns the current prefix.
+      *
+      * \return prefix
+      */
+-    std::string prefix() const throw (PresageException);
++    std::string prefix() const;
+ 
+     /** \brief Gets the value of specified configuration variable.
+      *
+@@ -218,7 +218,7 @@ public:
+      *
+      * \return value assigned to configuration variable.
+      */
+-    std::string config(const std::string variable) const throw 
(PresageException);
++    std::string config(const std::string variable) const;
+ 
+     /** \brief Sets the value of specified configuration variable.
+      *
+@@ -227,7 +227,7 @@ public:
+      * from the configuration file in use.
+      *
+      */
+-    void config(const std::string variable, const std::string value) const 
throw (PresageException);
++    void config(const std::string variable, const std::string value) const;
+ 
+     /** \brief Save current configuration to file.
+      *
+@@ -236,7 +236,7 @@ public:
+      * active XML profile.
+      *
+      */
+-    void save_config() const throw (PresageException);
++    void save_config() const;
+ 
+     /*
+      * Presage public API ends here
+--- presage-0.9.1/src/lib/presage.cpp.orig     2015-02-25 16:20:39.000000000 
+0100
++++ presage-0.9.1/src/lib/presage.cpp  2024-10-26 14:22:09.537925820 +0200
+@@ -31,7 +31,6 @@
+ #include "core/predictorActivator.h"
+ 
+ Presage::Presage (PresageCallback* callback)
+-    throw (PresageException)
+ {
+     profileManager = new ProfileManager();
+     configuration = profileManager->get_configuration();
+@@ -42,7 +41,6 @@ Presage::Presage (PresageCallback* callb
+ }
+ 
+ Presage::Presage (PresageCallback* callback, const std::string 
config_filename)
+-    throw (PresageException)
+ {
+     profileManager = new ProfileManager(config_filename);
+     configuration = profileManager->get_configuration();
+@@ -62,7 +60,6 @@ Presage::~Presage()
+ }
+ 
+ std::vector<std::string> Presage::predict ()
+-    throw (PresageException)
+ {
+     std::vector<std::string> result;
+ 
+@@ -88,7 +85,6 @@ std::vector<std::string> Presage::predic
+ }
+ 
+ std::multimap<double, std::string> Presage::predict (std::vector<std::string> 
filter)
+-    throw (PresageException)
+ {
+     std::multimap<double, std::string> result;
+ 
+@@ -137,20 +133,17 @@ std::multimap<double, std::string> Presa
+ }
+ 
+ void Presage::learn(const std::string text) const
+-    throw (PresageException)
+ {
+     contextTracker->learn(text); // TODO: can pass additional param to
+                                // learn to specify offline learning
+ }
+ 
+ PresageCallback* Presage::callback (PresageCallback* callback)
+-    throw (PresageException)
+ {
+     return const_cast<PresageCallback*>(contextTracker->callback(callback));
+ }
+ 
+ std::string Presage::completion (const std::string str)
+-    throw (PresageException)
+ {
+     // There are two types of completions: normal and erasing.
+     // normal_completion  = prefix + remainder
+@@ -198,37 +191,31 @@ std::string Presage::completion (const s
+ }
+ 
+ std::string Presage::context () const
+-    throw (PresageException)
+ {
+     return contextTracker->getPastStream();
+ }
+ 
+ bool Presage::context_change () const
+-    throw (PresageException)
+ {
+     return contextTracker->contextChange();
+ }
+ 
+ std::string Presage::prefix () const
+-    throw (PresageException)
+ {
+     return contextTracker->getPrefix();
+ }
+ 
+ std::string Presage::config (const std::string variable) const
+-    throw (PresageException)
+ {
+     return configuration->find (variable)->get_value ();
+ }
+ 
+ void Presage::config (const std::string variable, const std::string value) 
const
+-    throw (PresageException)
+ {
+     configuration->insert (variable, value);
+ }
+ 
+ void Presage::save_config () const
+-    throw (PresageException)
+ {
+     profileManager->save_profile ();
+ }
diff --git a/presage-format.patch b/presage-format.patch
new file mode 100644
index 0000000..f724aab
--- /dev/null
+++ b/presage-format.patch
@@ -0,0 +1,47 @@
+--- presage-0.9.1/src/tools/presageDemo.cpp.orig       2012-05-25 
10:50:55.000000000 +0200
++++ presage-0.9.1/src/tools/presageDemo.cpp    2024-10-26 14:27:16.673032668 
+0200
+@@ -173,7 +173,7 @@ int main(int argc, char** argv)
+           // key corresponding to desired token. selecting
+           // suggestion.
+           std::string message = "Last selected word: " + words[c - KEY_F0 - 
1];
+-          mvprintw(LINES - 3, 0, message.c_str());
++          mvprintw(LINES - 3, 0, "%s", message.c_str());
+             clrtoeol();
+           move(LINES, COLS);
+ 
+@@ -213,7 +213,7 @@ void draw_context_win(WINDOW* win, std::
+ {
+     wclear( win );
+     box( win, 0, 0 );
+-    mvwprintw( win, 1, 1, str.c_str() );
++    mvwprintw( win, 1, 1, "%s", str.c_str() );
+     wrefresh( win );
+ }
+ 
+@@ -226,7 +226,7 @@ void drawMsgWin( WINDOW* win, std::vecto
+     int i = 1;
+     std::vector<std::string>::const_iterator j = words.begin();
+     while( j != words.end() ) {
+-      mvwprintw( win, i, 1, j->c_str() );
++      mvwprintw( win, i, 1, "%s", j->c_str() );
+       i++;
+       j++;
+     }
+@@ -241,7 +241,7 @@ void draw_function_keys(WINDOW* win)
+     for (int i = 1; i <= atoi(suggestions.c_str()); i++) {
+         std::stringstream ss;
+         ss << 'F' << i;
+-        mvwprintw(win, i, 1, ss.str().c_str());
++        mvwprintw(win, i, 1, "%s", ss.str().c_str());
+     }
+     wrefresh(win);
+ }
+@@ -291,7 +291,7 @@ void draw_previous_suggestions(std::vect
+            strit != listit->end();
+            strit++) {
+           
+-          mvwprintw(win, line, 1, strit->c_str());
++          mvwprintw(win, line, 1, "%s", strit->c_str());
+           line++;
+       }
+ 
================================================================

---- gitweb:

http://git.pld-linux.org/gitweb.cgi/packages/presage.git/commitdiff/8691f54c24ff0bee5d0a0a6d3afad7711cc32da7

_______________________________________________
pld-cvs-commit mailing list
[email protected]
http://lists.pld-linux.org/mailman/listinfo/pld-cvs-commit

Reply via email to