Hello community,
here is the log from the commit of package libfilezilla for openSUSE:Factory checked in at 2018-06-20 15:34:19
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/libfilezilla (Old)
and /work/SRC/openSUSE:Factory/.libfilezilla.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "libfilezilla"
Wed Jun 20 15:34:19 2018 rev:18 rq:617867 version:0.12.3
Changes:
--------
--- /work/SRC/openSUSE:Factory/libfilezilla/libfilezilla.changes 2018-05-10 15:48:37.942951690 +0200
+++ /work/SRC/openSUSE:Factory/.libfilezilla.new/libfilezilla.changes 2018-06-20 15:34:20.087593434 +0200
@@ -1,0 +2,9 @@
+Tue Jun 19 21:59:57 UTC 2018 - ecsos@opensuse.org
+
+- update to 0.12.3
+ * New features:
+ - Event handlers can now removed themselves while inside
+ a callback
+ - Added fz::query_string::pairs()
+
+-------------------------------------------------------------------
Old:
----
libfilezilla-0.12.2.tar.bz2
New:
----
libfilezilla-0.12.3.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ libfilezilla.spec ++++++
--- /var/tmp/diff_new_pack.RD1Q8c/_old 2018-06-20 15:34:21.843529719 +0200
+++ /var/tmp/diff_new_pack.RD1Q8c/_new 2018-06-20 15:34:21.847529574 +0200
@@ -20,10 +20,10 @@
%define libname %{name}%{major}
%define develname %{name}-devel
Name: libfilezilla
-Version: 0.12.2
+Version: 0.12.3
Release: 0
Summary: C++ library for filezilla
-License: GPL-2.0+
+License: GPL-2.0-or-later
Group: Development/Libraries/C and C++
Url: https://lib.filezilla-project.org/
Source0: http://download.filezilla-project.org/libfilezilla/%{name}-%{version}.tar.bz2
++++++ libfilezilla-0.12.2.tar.bz2 -> libfilezilla-0.12.3.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libfilezilla-0.12.2/NEWS new/libfilezilla-0.12.3/NEWS
--- old/libfilezilla-0.12.2/NEWS 2018-05-06 11:47:12.000000000 +0200
+++ new/libfilezilla-0.12.3/NEWS 2018-06-08 17:43:23.000000000 +0200
@@ -1,3 +1,8 @@
+0.12.3 (2018-06-08)
+
++ Event handlers can now removed themselves while inside a callback
++ Added fz::query_string::pairs()
+
0.12.2 (2018-05-05)
+ Added parameters to base64_encode to control alphabet and padding
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libfilezilla-0.12.2/configure new/libfilezilla-0.12.3/configure
--- old/libfilezilla-0.12.2/configure 2018-05-06 11:22:50.000000000 +0200
+++ new/libfilezilla-0.12.3/configure 2018-06-08 17:43:27.000000000 +0200
@@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for libfilezilla 0.12.2.
+# Generated by GNU Autoconf 2.69 for libfilezilla 0.12.3.
#
# Report bugs to .
#
@@ -590,8 +590,8 @@
# Identity of this package.
PACKAGE_NAME='libfilezilla'
PACKAGE_TARNAME='libfilezilla'
-PACKAGE_VERSION='0.12.2'
-PACKAGE_STRING='libfilezilla 0.12.2'
+PACKAGE_VERSION='0.12.3'
+PACKAGE_STRING='libfilezilla 0.12.3'
PACKAGE_BUGREPORT='tim.kosse@filezilla-project.org'
PACKAGE_URL='https://lib.filezilla-project.org/'
@@ -1413,7 +1413,7 @@
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
-\`configure' configures libfilezilla 0.12.2 to adapt to many kinds of systems.
+\`configure' configures libfilezilla 0.12.3 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1484,7 +1484,7 @@
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of libfilezilla 0.12.2:";;
+ short | recursive ) echo "Configuration of libfilezilla 0.12.3:";;
esac
cat <<\_ACEOF
@@ -1621,7 +1621,7 @@
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-libfilezilla configure 0.12.2
+libfilezilla configure 0.12.3
generated by GNU Autoconf 2.69
Copyright (C) 2012 Free Software Foundation, Inc.
@@ -2066,7 +2066,7 @@
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
-It was created by libfilezilla $as_me 0.12.2, which was
+It was created by libfilezilla $as_me 0.12.3, which was
generated by GNU Autoconf 2.69. Invocation command line was
$ $0 $@
@@ -2932,7 +2932,7 @@
# Define the identity of the package.
PACKAGE='libfilezilla'
- VERSION='0.12.2'
+ VERSION='0.12.3'
cat >>confdefs.h <<_ACEOF
@@ -20908,7 +20908,7 @@
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
-This file was extended by libfilezilla $as_me 0.12.2, which was
+This file was extended by libfilezilla $as_me 0.12.3, which was
generated by GNU Autoconf 2.69. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -20975,7 +20975,7 @@
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\
-libfilezilla config.status 0.12.2
+libfilezilla config.status 0.12.3
configured by $0, generated by GNU Autoconf 2.69,
with options \\"\$ac_cs_config\\"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libfilezilla-0.12.2/configure.ac new/libfilezilla-0.12.3/configure.ac
--- old/libfilezilla-0.12.2/configure.ac 2018-05-06 11:22:43.000000000 +0200
+++ new/libfilezilla-0.12.3/configure.ac 2018-06-08 17:43:23.000000000 +0200
@@ -1,4 +1,4 @@
-AC_INIT([libfilezilla],[0.12.2],[tim.kosse@filezilla-project.org],[],[https://lib.filezilla-project.org/])
+AC_INIT([libfilezilla],[0.12.3],[tim.kosse@filezilla-project.org],[],[https://lib.filezilla-project.org/])
AC_CONFIG_HEADERS([lib/libfilezilla/private/config.hpp])
AC_CONFIG_MACRO_DIR([m4])
AC_CONFIG_AUX_DIR(config)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libfilezilla-0.12.2/lib/event_loop.cpp new/libfilezilla-0.12.3/lib/event_loop.cpp
--- old/libfilezilla-0.12.2/lib/event_loop.cpp 2017-09-29 10:41:58.000000000 +0200
+++ new/libfilezilla-0.12.3/lib/event_loop.cpp 2018-06-08 17:43:23.000000000 +0200
@@ -72,10 +72,14 @@
deadline_ = monotonic_clock();
}
- while (active_handler_ == handler) {
- l.unlock();
- sleep(duration::from_milliseconds(1));
- l.lock();
+ if (active_handler_ == handler) {
+ if (fz::thread::own_id() != thread_id_) {
+ while (active_handler_ == handler) {
+ l.unlock();
+ sleep(duration::from_milliseconds(1));
+ l.lock();
+ }
+ }
}
}
@@ -164,6 +168,8 @@
void event_loop::entry()
{
+ thread_id_ = thread::own_id();
+
monotonic_clock now;
scoped_lock l(sync_);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libfilezilla-0.12.2/lib/libfilezilla/event_handler.hpp new/libfilezilla-0.12.3/lib/libfilezilla/event_handler.hpp
--- old/libfilezilla-0.12.2/lib/libfilezilla/event_handler.hpp 2016-07-20 10:41:55.000000000 +0200
+++ new/libfilezilla-0.12.3/lib/libfilezilla/event_handler.hpp 2018-06-08 17:43:23.000000000 +0200
@@ -67,20 +67,18 @@
* When function returns, handler is not in its callback anymore.
*
* \warning You _MUST_ call remove_handler no later than inside the destructor of the most derived class.
- *
- * This may deadlock if a handler removes itself inside its own callback.
*/
void remove_handler();
/** \brief Called by the event loop in the worker thread with the event to process
*
* Override in your derived class.
- *
+ *
* Consider using \ref dispatch inside your function.
*/
virtual void operator()(event_base const&) = 0;
- /* \brief Sends the passed event asynchronously to the handler.
+ /** \brief Sends the passed event asynchronously to the handler.
*
* Can be called from any thread.
*
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libfilezilla-0.12.2/lib/libfilezilla/event_loop.hpp new/libfilezilla-0.12.3/lib/libfilezilla/event_loop.hpp
--- old/libfilezilla-0.12.2/lib/libfilezilla/event_loop.hpp 2016-04-15 09:52:15.000000000 +0200
+++ new/libfilezilla-0.12.3/lib/libfilezilla/event_loop.hpp 2018-06-08 17:43:23.000000000 +0200
@@ -102,6 +102,8 @@
monotonic_clock deadline_;
timer_id next_timer_id_{};
+
+ thread::id thread_id_{};
};
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libfilezilla-0.12.2/lib/libfilezilla/thread.hpp new/libfilezilla-0.12.3/lib/libfilezilla/thread.hpp
--- old/libfilezilla-0.12.2/lib/libfilezilla/thread.hpp 2017-10-30 18:14:16.000000000 +0100
+++ new/libfilezilla-0.12.3/lib/libfilezilla/thread.hpp 2018-06-08 17:43:23.000000000 +0200
@@ -3,6 +3,10 @@
#include "libfilezilla.hpp"
+#ifndef FZ_WINDOWS
+#include <thread>
+#endif
+
/** \file
* \brief Declares \ref fz::thread "thread"
*/
@@ -25,6 +29,12 @@
class FZ_PUBLIC_SYMBOL thread
{
public:
+#ifdef FZ_WINDOWS
+ typedef uint32_t id;
+#else
+ typedef std::thread::id id;
+#endif
+
thread() = default;
/** \brief Calls \c std::abort if the thread has not been joined.
@@ -58,6 +68,9 @@
*/
bool joinable() const;
+ /// Returns unique id of the thread calling the function
+ static id own_id();
+
protected:
/// The thread's entry point, override in your derived class.
virtual void entry() = 0;
@@ -67,7 +80,6 @@
friend class impl;
impl* impl_{};
};
-
}
#endif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libfilezilla-0.12.2/lib/libfilezilla/uri.hpp new/libfilezilla-0.12.3/lib/libfilezilla/uri.hpp
--- old/libfilezilla-0.12.2/lib/libfilezilla/uri.hpp 2018-02-16 12:47:48.000000000 +0100
+++ new/libfilezilla-0.12.3/lib/libfilezilla/uri.hpp 2018-06-08 17:43:23.000000000 +0200
@@ -106,8 +106,9 @@
void remove(std::string const& key);
std::string& operator[](std::string const& key);
-private:
+ std::map const& pairs() const { return segments_; }
+private:
std::map segments_;
};
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libfilezilla-0.12.2/lib/libfilezilla/version.hpp new/libfilezilla-0.12.3/lib/libfilezilla/version.hpp
--- old/libfilezilla-0.12.2/lib/libfilezilla/version.hpp 2018-05-06 11:22:53.000000000 +0200
+++ new/libfilezilla-0.12.3/lib/libfilezilla/version.hpp 2018-06-08 17:43:30.000000000 +0200
@@ -9,15 +9,15 @@
#include <tuple>
/// \brief Version string of the libfilezilla headers
-#define LIBFILEZILLA_VERSION "0.12.2"
+#define LIBFILEZILLA_VERSION "0.12.3"
#define LIBFILEZILLA_VERSION_MAJOR 0
#define LIBFILEZILLA_VERSION_MINOR 12
-#define LIBFILEZILLA_VERSION_MICRO 2
+#define LIBFILEZILLA_VERSION_MICRO 3
#define LIBFILEZILLA_VERSION_NANO 0
/// \brief Suffix string, e.g. "rc1"
-#define LIBFILEZILLA_VERSION_SUFFIX "0.12.2"
+#define LIBFILEZILLA_VERSION_SUFFIX "0.12.3"
namespace fz {
/// \brief Get version string of libfilezilla
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libfilezilla-0.12.2/lib/thread.cpp new/libfilezilla-0.12.3/lib/thread.cpp
--- old/libfilezilla-0.12.2/lib/thread.cpp 2017-10-30 18:14:16.000000000 +0100
+++ new/libfilezilla-0.12.3/lib/thread.cpp 2018-06-08 17:43:23.000000000 +0200
@@ -105,6 +105,11 @@
}
}
+thread::id thread::own_id()
+{
+ return static_cast<id>(GetCurrentThreadId());
+}
+
#else
// Canonical implentation for everyone else
@@ -163,6 +168,11 @@
}
}
+thread::id thread::own_id()
+{
+ return std::this_thread::get_id();
+}
+
#endif
thread::~thread()