Hello community,

here is the log from the commit of package twinkle for openSUSE:Factory checked 
in at 2015-07-25 07:44:34
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/twinkle (Old)
 and      /work/SRC/openSUSE:Factory/.twinkle.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "twinkle"

Changes:
--------
--- /work/SRC/openSUSE:Factory/twinkle/twinkle.changes  2015-06-09 
08:48:54.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.twinkle.new/twinkle.changes     2015-07-25 
07:44:35.000000000 +0200
@@ -1,0 +2,19 @@
+Sat Jul 18 15:15:32 UTC 2015 - [email protected]
+
+- update to version 1.9.0
+  * migration to Qt5 and cmake
+  * added in-call OSD
+  * remember window geometry and state
+  * visual feedback when entering DTMF from keyboard
+  * support past into DTMF window
+  * remove boost dependency (if gcc >= 4.9)
+  * eliminated some GUI freezes/stalls
+- dependencies and build phase cleanup
+- twinkle-ucommon.diff:
+  removed (no longer needed)
+- Revert-Build-fix-for-a-probably-broken-std-match_res.patch:
+  Revert-Replaced-Boost-regex-dependency-with-C-11-reg.patch:
+  use boost regex for gcc 4.8 distributions (std::regex is broken
+  in gcc 4.8)
+
+-------------------------------------------------------------------

Old:
----
  twinkle-1.4.2.tar.bz2
  twinkle-ucommon.diff

New:
----
  Revert-Build-fix-for-a-probably-broken-std-match_res.patch
  Revert-Replaced-Boost-regex-dependency-with-C-11-reg.patch
  twinkle-1.9.0.tar.xz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ twinkle.spec ++++++
--- /var/tmp/diff_new_pack.t6E8d0/_old  2015-07-25 07:44:36.000000000 +0200
+++ /var/tmp/diff_new_pack.t6E8d0/_new  2015-07-25 07:44:36.000000000 +0200
@@ -16,30 +16,42 @@
 #
 
 
-%define _prefix /opt/kde3
 Name:           twinkle
-# BRs in openSUSE:
+BuildRequires:  alsa-devel
 BuildRequires:  bison
-BuildRequires:  boost-devel
+BuildRequires:  cmake
+BuildRequires:  fdupes
 BuildRequires:  file-devel
-BuildRequires:  ilbc-devel
-BuildRequires:  kdelibs3-devel
+BuildRequires:  flex
+BuildRequires:  libqt5-qtbase-devel
+BuildRequires:  libqt5-qttools-devel
 BuildRequires:  libsndfile-devel
-BuildRequires:  qt3-devel-tools
+BuildRequires:  libzrtpcpp-devel >= 2.0.0
+BuildRequires:  pkgconfig
 BuildRequires:  readline-devel
+BuildRequires:  update-desktop-files
 BuildRequires:  xorg-x11-devel
-# BRs in network:telephony
-BuildRequires:  libzrtpcpp2-devel >= 2.0.0
-BuildRequires:  speex-devel
+BuildRequires:  pkgconfig(Qt5Declarative)
+BuildRequires:  pkgconfig(Qt5Quick)
+BuildRequires:  pkgconfig(commoncpp)
+BuildRequires:  pkgconfig(libxml-2.0)
+BuildRequires:  pkgconfig(speex)
+BuildRequires:  pkgconfig(speexdsp)
+%if %{?suse_version} > 1320
+BuildRequires:  ilbc-devel
+%else
+BuildRequires:  boost-devel
+BuildRequires:  ilbc
+%endif
 Summary:        A SIP Soft Phone
 License:        GPL-2.0+
 Group:          Productivity/Telephony/SIP/Clients
-Version:        1.4.2
+Version:        1.9.0
 Release:        0
-Source:         %{name}-%{version}.tar.bz2
-Patch0:         twinkle-ucommon.diff
-BuildRoot:      %{_tmppath}/%{name}-%{version}-build
-Url:            http://www.twinklephone.com
+Source:         %{name}-%{version}.tar.xz
+Patch11:        Revert-Build-fix-for-a-probably-broken-std-match_res.patch
+Patch12:        Revert-Replaced-Boost-regex-dependency-with-C-11-reg.patch
+Url:            https://twinkle.dolezel.info/
 
 %description
 Twinkle is a SIP-based soft phone for making telephone calls over IP
@@ -47,30 +59,33 @@
 
 %prep
 %setup -q
-%patch0 -p1
+# workaround for broken std::regex in gcc 4.8
+%if 0%{?suse_version} <= 1320
+%patch11 -p1
+%patch12 -p1
+%endif
 
 %build
-autoreconf -fi
-. /etc/opt/kde3/common_options
-export QTDIR=/usr/lib/qt3
-export CFLAGS="$RPM_OPT_FLAGS" CPPFLAGS="$RPM_OPT_FLAGS" 
-%configure \
-        --without-arts --with-qt-libraries=/usr/lib/qt3/%{_lib}
-make
+cmake \
+  -DCMAKE_INSTALL_PREFIX=%{_prefix} \
+  -DCMAKE_CXX_FLAGS="$RPM_OPT_FLAGS" \
+  -DWITH_ZRTP=ON -DWITH_SPEEX=ON -DWITH_ILBC=ON \
+  -DWITH_ALSA=ON -DWITH_QT5=ON .
+make %{?_smp_mflags}
 
 %install
 %makeinstall
 install -d 755 %{buildroot}%{_datadir}/pixmaps
-install -m 644 src/gui/images/twinkle48.png 
%{buildroot}%{_datadir}/pixmaps/twinkle.png
 %suse_update_desktop_file -c twinkle Twinkle "SIP VoIP Phone" twinkle twinkle 
Network Telephony 
+%fdupes %{buildroot}%{_prefix}
 
 %files
 %defattr(-, root, root)
-%doc AUTHORS COPYING README ChangeLog
-%{_bindir}/%{name}
+%doc AUTHORS COPYING README.md
+%{_bindir}/twinkle
+%{_bindir}/twinkle-console
 %{_datadir}/%{name}
 %{_datadir}/pixmaps/twinkle.png
-/usr/share/applications/twinkle.desktop
-%dir %{_datadir}/pixmaps
+%{_datadir}/applications/twinkle.desktop
 
 %changelog

++++++ Revert-Build-fix-for-a-probably-broken-std-match_res.patch ++++++
From: Michal Kubecek <[email protected]>
Date: Tue, 14 Jul 2015 08:44:08 +0200
Subject: Revert "Build fix for a (probably?) broken 
std::match_results::format() overload"
Patch-mainline: Never, workaround for gcc 4.8 bug

This reverts commit db51799e5b64e406bb83576ad609075142c26a86.

As std::regex is broken in gcc < 4.9, we need to stick with boost regex
for gcc 4.8 builds.
---
 src/user.cpp | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

diff --git a/src/user.cpp b/src/user.cpp
index ed24674f888a..206cf7ef1719 100644
--- a/src/user.cpp
+++ b/src/user.cpp
@@ -3105,9 +3105,7 @@ string t_user::convert_number(const string &number, const 
list<t_number_conversi
                
                try {
             if (std::regex_match(number, m, std::regex(i->re))) {
-                               string result;
-
-                               m.format(std::back_inserter(result), i->fmt);
+                               string result = m.format(i->fmt);
                        
                                
log_file->write_header("t_user::convert_number", 
                                        LOG_NORMAL, LOG_DEBUG);
-- 
2.4.5

++++++ Revert-Replaced-Boost-regex-dependency-with-C-11-reg.patch ++++++
From: Michal Kubecek <[email protected]>
Date: Tue, 14 Jul 2015 08:45:28 +0200
Subject: Revert "Replaced Boost regex dependency with C++11 regex"
Patch-mainline: Never, workaround for gcc 4.8 bug

This reverts commit 4ec69237e6b777df818bc95bd46a58448340b30d.

As std::regex is broken in gcc < 4.9, we need to stick with boost regex
for gcc 4.8 builds.
---
 CMakeLists.txt                   |  3 ++-
 README.md                        |  1 +
 src/CMakeLists.txt               |  2 +-
 src/call_history.cpp             |  6 +++---
 src/gui/CMakeLists.txt           |  2 +-
 src/gui/numberconversionform.cpp |  4 ++--
 src/gui/userprofileform.cpp      |  4 ++--
 src/mwi/simple_msg_sum_body.cpp  | 20 ++++++++++----------
 src/user.cpp                     |  8 ++++----
 src/user.h                       |  8 ++++----
 10 files changed, 30 insertions(+), 28 deletions(-)

diff --git a/CMakeLists.txt b/CMakeLists.txt
index d41f74945364..4bf8cbf9fce2 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -29,6 +29,7 @@ find_package(LibSndfile REQUIRED)
 find_package(Readline REQUIRED)
 find_package(BISON REQUIRED)
 find_package(FLEX REQUIRED)
+find_package(Boost REQUIRED COMPONENTS regex)
 find_package(Commoncpp REQUIRED)
 find_package(Ccrtp REQUIRED)
 find_package(Ucommon REQUIRED)
@@ -42,8 +43,8 @@ if (WITH_QT4)
 elseif (WITH_QT5)
        find_package(Qt5Widgets REQUIRED)
        find_package(Qt5LinguistTools REQUIRED)
-       find_package(Qt5Declarative REQUIRED)
        find_package(Qt5Quick REQUIRED)
+       find_package(Qt5Declarative REQUIRED)
        set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} 
${Qt5Widgets_EXECUTABLE_COMPILE_FLAGS} 
${Qt5Declarative_EXECUTABLE_COMPILE_FLAGS}")
        include_directories(${Qt5Widgets_INCLUDES} ${Qt5Declarative_INCLUDES})
        add_definitions(${Qt5Widgets_DEFINITIONS} ${Qt5Declarative_DEFINITIONS})
diff --git a/README.md b/README.md
index 15891ff05dcd..2caba485d321 100644
--- a/README.md
+++ b/README.md
@@ -9,6 +9,7 @@ To compile Twinkle you need the following libraries:
 * commoncpp2 and ucommon (version >= 1.4.2) - [GNU Common 
C++](http://www.gnu.org/software/commoncpp/)
 * ccRTP (version >= 1.5.0) [GNU RTP Stack](http://www.gnu.org/software/ccrtp/)
 * libxml2
+* Boost regex
 * libsndfile
 * Qt 4 or Qt 5
 
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index b1b06071b4ab..ec3aa62206d8 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -79,7 +79,7 @@ endif (WITH_QT4 OR WITH_QT5)
 target_link_libraries(twinkle-console -lpthread -lresolv ${LibMagic_LIBRARY} 
${LIBXML2_LIBRARIES}
        ${Readline_LIBRARY} ${ILBC_LIBRARIES} ${SPEEX_LIBRARIES} 
${ZRTPCPP_LIBRARIES}
        ${CCRTP_LIBRARIES} ${COMMONCPP_LIBRARIES} ${UCOMMON_LIBRARIES} 
${LIBSNDFILE_LIBRARY}
-       ${ALSA_LIBRARY} ${G729_LIBRARY})
+       ${Boost_LIBRARIES} ${ALSA_LIBRARY} ${G729_LIBRARY})
 
 install(TARGETS twinkle-console DESTINATION bin)
 
diff --git a/src/call_history.cpp b/src/call_history.cpp
index cf9ff5cbebd4..4fa4af789f11 100644
--- a/src/call_history.cpp
+++ b/src/call_history.cpp
@@ -296,9 +296,9 @@ bool t_call_record::populate_from_file_record(const 
vector<string> &v) {
        // Check number of fields
        if (v.size() != 20) return false;
        
-    time_start = std::stoul(v[0], NULL, 10);
-    time_answer = std::stoul(v[1], NULL, 10);
-    time_end = std::stoul(v[2], NULL, 10);
+       time_start = strtoul(v[0].c_str(), NULL, 10);
+       time_answer = strtoul(v[1].c_str(), NULL, 10);
+       time_end = strtoul(v[2].c_str(), NULL, 10);
        
        if (!set_direction(v[3])) return false;
        
diff --git a/src/gui/CMakeLists.txt b/src/gui/CMakeLists.txt
index c178b9c9aced..57b8a195813f 100644
--- a/src/gui/CMakeLists.txt
+++ b/src/gui/CMakeLists.txt
@@ -134,7 +134,7 @@ add_executable(twinkle ${TWINKLE_GUI-SRCS})
 target_link_libraries(twinkle -lpthread -lresolv ${LibMagic_LIBRARY} 
${LIBXML2_LIBRARIES}
        ${Readline_LIBRARY} ${ILBC_LIBRARIES} ${SPEEX_LIBRARIES} 
${ZRTPCPP_LIBRARIES}
        ${CCRTP_LIBRARIES} ${COMMONCPP_LIBRARIES} ${UCOMMON_LIBRARIES} 
${LIBSNDFILE_LIBRARY}
-       ${ALSA_LIBRARY} ${qt_LIBS} ${G729_LIBRARY})
+       ${Boost_LIBRARIES} ${ALSA_LIBRARY} ${qt_LIBS} ${G729_LIBRARY})
 
 install(TARGETS twinkle DESTINATION bin)
 install(FILES ${twinkle_LANG} DESTINATION share/twinkle/lang)
diff --git a/src/gui/numberconversionform.cpp b/src/gui/numberconversionform.cpp
index f8ae64c59a30..af95dd2ff1a8 100644
--- a/src/gui/numberconversionform.cpp
+++ b/src/gui/numberconversionform.cpp
@@ -67,8 +67,8 @@ void NumberConversionForm::validate()
        }
 
        try {
-        std::regex re(expr.toStdString());
-    } catch (std::regex_error) {
+        boost::regex re(expr.toStdString());
+       } catch (boost::bad_expression) {
                ((t_gui *)ui)->cb_show_msg(this,
             tr("Invalid regular expression.").toStdString(), MSG_CRITICAL);
                exprLineEdit->setFocus();
diff --git a/src/gui/userprofileform.cpp b/src/gui/userprofileform.cpp
index 788d87b1b983..d7f39a0091ac 100644
--- a/src/gui/userprofileform.cpp
+++ b/src/gui/userprofileform.cpp
@@ -598,7 +598,7 @@ void UserProfileForm::populate()
     int j = 0;
     for (list<t_number_conversion>::reverse_iterator i = conversions.rbegin(); 
i != conversions.rend(); i++, j++)
        {
-        QTableWidgetItem* item = new 
QTableWidgetItem(QString::fromStdString(i->re));
+        QTableWidgetItem* item = new 
QTableWidgetItem(QString::fromStdString(i->re.str()));
         conversionListView->setItem(j, 0, item);
         item = new QTableWidgetItem(QString::fromStdString(i->fmt));
         conversionListView->setItem(j, 1, item);
@@ -712,7 +712,7 @@ list<t_number_conversion> 
UserProfileForm::get_number_conversions()
             item = conversionListView->item(0, 1);
             c.fmt = item->text().toStdString();
                        conversions.push_back(c);
-        } catch (std::regex_error) {
+               } catch (boost::bad_expression) {
                        // Should never happen as validity has been
                        // checked already. Just being defensive here.
                }
diff --git a/src/mwi/simple_msg_sum_body.cpp b/src/mwi/simple_msg_sum_body.cpp
index 1d206092009e..33683f7a07ee 100644
--- a/src/mwi/simple_msg_sum_body.cpp
+++ b/src/mwi/simple_msg_sum_body.cpp
@@ -20,7 +20,7 @@
 
 #include <iostream>
 #include <cstdlib>
-#include <regex>
+#include <boost/regex.hpp>
 
 #include "protocol.h"
 #include "util.h"
@@ -43,20 +43,20 @@ bool t_msg_summary::parse(const string &s) {
        // msg-summary-line = message-context-class HCOLON newmsgs SLASH oldmsgs
         //                    [ LPAREN new-urgentmsgs SLASH old-urgentmsgs 
RPAREN ]
         // This regex matches the part after HCOLON
-    std::regex 
re("(\\d+)\\s*/\\s*(\\d+)(?:\\s*\\((\\d+)\\s*/\\s*(\\d+)\\s*\\))?");
+       boost::regex 
re("(\\d+)\\s*/\\s*(\\d+)(?:\\s*\\((\\d+)\\s*/\\s*(\\d+)\\s*\\))?");
        
-    std::smatch m;
-    if (!std::regex_match(s, m, re)) return false;
+       boost::smatch m;
+       if (!boost::regex_match(s, m, re)) return false;
        
        if (m.size() == 3) {
-        newmsgs = std::stoul(m.str(1), NULL, 10);
-        oldmsgs = std::stoul(m.str(2), NULL, 10);
+               newmsgs = strtoul(m.str(1).c_str(), NULL, 10);
+               oldmsgs = strtoul(m.str(2).c_str(), NULL, 10);
                return true;
        } else if (m.size() == 5) {
-        newmsgs = std::stoul(m.str(1), NULL, 10);
-        oldmsgs = std::stoul(m.str(2), NULL, 10);
-        newmsgs_urgent = std::stoul(m.str(3), NULL, 10);
-        oldmsgs_urgent = std::stoul(m.str(4), NULL, 10);
+               newmsgs = strtoul(m.str(1).c_str(), NULL, 10);
+               oldmsgs = strtoul(m.str(2).c_str(), NULL, 10);
+               newmsgs_urgent = strtoul(m.str(3).c_str(), NULL, 10);
+               oldmsgs_urgent = strtoul(m.str(4).c_str(), NULL, 10);
                return true;
        }
        
diff --git a/src/user.cpp b/src/user.cpp
index 206cf7ef1719..a6a2a95a7c5e 100644
--- a/src/user.cpp
+++ b/src/user.cpp
@@ -309,7 +309,7 @@ bool t_user::parse_num_conversion(const string &value, 
t_number_conversion &c) {
        try {
                c.re.assign(l[0]);
                c.fmt = l[1];
-    } catch (std::regex_error) {
+       } catch (boost::bad_expression) {
                // Invalid regular expression
                log_file->write_header("t_user::parse_num_conversion", 
                                LOG_NORMAL, LOG_WARNING);
@@ -2832,7 +2832,7 @@ bool t_user::write_config(const string &filename, string 
&error_msg) {
             i != number_conversions.end(); i++)
        {
                config << FLD_NUMBER_CONVERSION << '=';
-        config << escape(i->re, ',');
+               config << escape(i->re.str(), ',');
                config << ',';
                config << escape(i->fmt, ',');
                config << endl;
@@ -3101,10 +3101,10 @@ string t_user::convert_number(const string &number, 
const list<t_number_conversi
        for (list<t_number_conversion>::const_iterator i = l.begin();
             i != l.end(); i++)
        {
-        std::smatch m;
+               boost::smatch m;
                
                try {
-            if (std::regex_match(number, m, std::regex(i->re))) {
+                       if (boost::regex_match(number, m, i->re)) {
                                string result = m.format(i->fmt);
                        
                                
log_file->write_header("t_user::convert_number", 
diff --git a/src/user.h b/src/user.h
index 2e9c2ca9b2a6..f78652d4a35b 100644
--- a/src/user.h
+++ b/src/user.h
@@ -30,7 +30,7 @@
 #include "audio/audio_codecs.h"
 #include "sockets/url.h"
 #include "threads/mutex.h"
-#include <regex>
+#include "boost/regex.hpp"
 
 // Forward declaration
 class t_request;
@@ -91,10 +91,10 @@ enum t_g726_packing {
 };
 
 struct t_number_conversion {
-    string re;
-    string fmt;
+       boost::regex    re;
+       string          fmt;
        
-    string str(void) const { return re + " --> " + fmt; }
+       string str(void) const { return re.str() + " --> " + fmt; }
 };
 
 
-- 
2.4.5


Reply via email to