openSUSE Commits
Threads by month
- ----- 2025 -----
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2008 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2007 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2006 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
February 2017
- 1 participants
- 1918 discussions
Hello community,
here is the log from the commit of package usb_modeswitch for openSUSE:Factory checked in at 2017-02-26 17:04:32
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/usb_modeswitch (Old)
and /work/SRC/openSUSE:Factory/.usb_modeswitch.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "usb_modeswitch"
Changes:
--------
--- /work/SRC/openSUSE:Factory/usb_modeswitch/usb_modeswitch.changes 2017-02-14 00:35:53.572189468 +0100
+++ /work/SRC/openSUSE:Factory/.usb_modeswitch.new/usb_modeswitch.changes 2017-02-26 17:04:33.462663870 +0100
@@ -1,0 +2,7 @@
+Fri Feb 24 18:57:27 UTC 2017 - joerg.lorenzen(a)ki.tng.de
+
+- Update usb-modeswitch-data package to version 20170205
+ * Bugfix release: Removed all catch-all fallback config files as
+ they can affect unrelated devices - fixes (rh#1374913).
+
+-------------------------------------------------------------------
Old:
----
usb-modeswitch-data-20170120.tar.bz2
New:
----
usb-modeswitch-data-20170205.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ usb_modeswitch.spec ++++++
--- /var/tmp/diff_new_pack.Q418Hk/_old 2017-02-26 17:04:33.874601386 +0100
+++ /var/tmp/diff_new_pack.Q418Hk/_new 2017-02-26 17:04:33.878600780 +0100
@@ -17,7 +17,7 @@
%define source_name usb-modeswitch
-%define date 20170120
+%define date 20170205
%define _udevdir %(pkg-config --variable=udevdir udev)
Name: usb_modeswitch
Version: 2.5.0
++++++ usb-modeswitch-data-20170120.tar.bz2 -> usb-modeswitch-data-20170205.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/usb-modeswitch-data-20170120/40-usb_modeswitch.rules new/usb-modeswitch-data-20170205/40-usb_modeswitch.rules
--- old/usb-modeswitch-data-20170120/40-usb_modeswitch.rules 2017-01-20 22:41:17.000000000 +0100
+++ new/usb-modeswitch-data-20170205/40-usb_modeswitch.rules 2017-02-05 10:18:50.000000000 +0100
@@ -1,4 +1,4 @@
-# Part of usb-modeswitch-data, version 20170120
+# Part of usb-modeswitch-data, version 20170205
#
# Works with usb_modeswitch versions >= 2.4.0. Slash before %k parameter
# is for compatibility only. Versions >= 2.5.0 don't need it.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/usb-modeswitch-data-20170120/ChangeLog new/usb-modeswitch-data-20170205/ChangeLog
--- old/usb-modeswitch-data-20170120/ChangeLog 2017-01-20 22:40:12.000000000 +0100
+++ new/usb-modeswitch-data-20170205/ChangeLog 2017-02-05 10:21:57.000000000 +0100
@@ -1,3 +1,7 @@
+20170205:
+ Bugfix release: removed all catch-all fallback config files as they can
+ affect unrelated devices - fixes
+ https://bugzilla.redhat.com/show_bug.cgi?id=1374913
20170120:
Added devices: [03f0:032a] HP LaserJet Professional P1102w, [03f0:9d1d]
HP lt4120, [0586:2030] ZyXel WAH1004/WAH3004, [148f:2878] RaLink
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/usb-modeswitch-data-20170120/Makefile new/usb-modeswitch-data-20170205/Makefile
--- old/usb-modeswitch-data-20170120/Makefile 2017-01-19 21:51:05.000000000 +0100
+++ new/usb-modeswitch-data-20170205/Makefile 2017-02-05 10:07:51.000000000 +0100
@@ -1,5 +1,5 @@
PROG = usb-modeswitch-data
-VERS = 20170120
+VERS = 20170205
RM = /bin/rm -f
PREFIX = $(DESTDIR)/usr
ETCDIR = $(DESTDIR)/etc
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/usb-modeswitch-data-20170120/README new/usb-modeswitch-data-20170205/README
--- old/usb-modeswitch-data-20170120/README 2016-08-03 20:03:50.000000000 +0200
+++ new/usb-modeswitch-data-20170205/README 2017-02-05 10:10:34.000000000 +0100
@@ -83,7 +83,11 @@
Huawei devices, the switching method is uniform and not likely to change,
so it is possible to provide a generic configuration.
-Example files: see "12d1:#android" and "12d1:#linux"
+Example file names: "12d1:#android" and "12d1:#linux"
+
+Note that these files have to be created explicitely on demand. Their default
+inclusion has led to unwanted switching attempts with unrelated devices like
+phones.
Parameters used only in config files:
@@ -136,4 +140,4 @@
-Last revised: 2016-08-03, Josua Dietze
+Last revised: 2017-02-05, Josua Dietze
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/usb-modeswitch-data-20170120/gen-rules.tcl new/usb-modeswitch-data-20170205/gen-rules.tcl
--- old/usb-modeswitch-data-20170120/gen-rules.tcl 2017-01-20 22:37:48.000000000 +0100
+++ new/usb-modeswitch-data-20170205/gen-rules.tcl 2017-02-05 10:07:20.000000000 +0100
@@ -11,7 +11,7 @@
# Default version string
-set version "20170120"
+set version "20170205"
# Devices excluded from Huawei catch-all rule
set x_huaweiList {12d1:1573 12d1:15c1}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/usb-modeswitch-data-20170120/usb_modeswitch.d/12d1:#android new/usb-modeswitch-data-20170205/usb_modeswitch.d/12d1:#android
--- old/usb-modeswitch-data-20170120/usb_modeswitch.d/12d1:#android 2016-03-05 11:08:30.000000000 +0100
+++ new/usb-modeswitch-data-20170205/usb_modeswitch.d/12d1:#android 1970-01-01 01:00:00.000000000 +0100
@@ -1,3 +0,0 @@
-# Huawei generic for Android
-TargetVendor= 0x12d1
-MessageContent="55534243123456780000000000000011063000000100010000000000000000"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/usb-modeswitch-data-20170120/usb_modeswitch.d/12d1:#linux new/usb-modeswitch-data-20170205/usb_modeswitch.d/12d1:#linux
--- old/usb-modeswitch-data-20170120/usb_modeswitch.d/12d1:#linux 2016-03-05 11:08:30.000000000 +0100
+++ new/usb-modeswitch-data-20170205/usb_modeswitch.d/12d1:#linux 1970-01-01 01:00:00.000000000 +0100
@@ -1,3 +0,0 @@
-# Huawei generic for Linux (fall-back for unknown products)
-TargetVendor= 0x12d1
-HuaweiNewMode=1
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/usb-modeswitch-data-20170120/usb_modeswitch.d/19d2:#linux new/usb-modeswitch-data-20170205/usb_modeswitch.d/19d2:#linux
--- old/usb-modeswitch-data-20170120/usb_modeswitch.d/19d2:#linux 2016-03-05 11:08:30.000000000 +0100
+++ new/usb-modeswitch-data-20170205/usb_modeswitch.d/19d2:#linux 1970-01-01 01:00:00.000000000 +0100
@@ -1,7 +0,0 @@
-# ZTE generic for Linux (fall-back for unknown products)
-
-# Uncomment the following lines to activate
-
-#TargetVendor= 0x19d2
-#StandardEject=1
-#MessageContent="55534243123456702000000080000c85010101180101010101000000000000"
1
0
Hello community,
here is the log from the commit of package speex for openSUSE:Factory checked in at 2017-02-26 17:04:20
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/speex (Old)
and /work/SRC/openSUSE:Factory/.speex.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "speex"
Changes:
--------
--- /work/SRC/openSUSE:Factory/speex/speex.changes 2015-08-28 08:24:09.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.speex.new/speex.changes 2017-02-26 17:04:21.684450426 +0100
@@ -1,0 +2,5 @@
+Sun Feb 19 17:19:52 UTC 2017 - tom.mbrt(a)googlemail.com
+
+- Update to stable 1.2 release
+
+-------------------------------------------------------------------
Old:
----
speex-1.2rc2.tar.gz
New:
----
speex-1.2.0.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ speex.spec ++++++
--- /var/tmp/diff_new_pack.VFUfEh/_old 2017-02-26 17:04:22.052394616 +0100
+++ /var/tmp/diff_new_pack.VFUfEh/_new 2017-02-26 17:04:22.052394616 +0100
@@ -16,10 +16,10 @@
#
-%define upstream_version 1.2rc2
+%define upstream_version 1.2.0
%define libname libspeex1
Name: speex
-Version: 1.2~rc2
+Version: 1.2
Release: 0
Summary: An Open Source, Patent Free Speech Codec
License: BSD-3-Clause
++++++ speex-1.2rc2.tar.gz -> speex-1.2.0.tar.gz ++++++
++++ 29847 lines of diff (skipped)
1
0
Hello community,
here is the log from the commit of package llvm3_9 for openSUSE:Factory checked in at 2017-02-26 17:04:07
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/llvm3_9 (Old)
and /work/SRC/openSUSE:Factory/.llvm3_9.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "llvm3_9"
Changes:
--------
--- /work/SRC/openSUSE:Factory/llvm3_9/llvm3_9.changes 2017-02-03 17:49:18.542194229 +0100
+++ /work/SRC/openSUSE:Factory/.llvm3_9.new/llvm3_9.changes 2017-02-26 17:04:09.182346785 +0100
@@ -1,0 +2,5 @@
+Fri Feb 24 13:26:11 UTC 2017 - idonmez(a)suse.com
+
+- Enable BPF for all arches bsc#1026191
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ llvm3_9.spec ++++++
--- /var/tmp/diff_new_pack.VyySnc/_old 2017-02-26 17:04:11.022067730 +0100
+++ /var/tmp/diff_new_pack.VyySnc/_new 2017-02-26 17:04:11.026067124 +0100
@@ -419,7 +419,7 @@
%ifarch %{ix86} x86_64
TARGETS_TO_BUILD="all"
%else
-TARGETS_TO_BUILD=host
+TARGETS_TO_BUILD="host;BPF"
%endif
# do not eat all memory
@@ -442,6 +442,7 @@
%cmake \
-DCMAKE_C_FLAGS="$flags" \
-DCMAKE_CXX_FLAGS="$flags" \
+ -DENABLE_LINKER_BUILD_ID=ON \
-DLLVM_ENABLE_ASSERTIONS=OFF \
-DLLVM_TARGETS_TO_BUILD=host \
-DLLDB_DISABLE_PYTHON=ON \
1
0
Hello community,
here is the log from the commit of package curl for openSUSE:Factory checked in at 2017-02-26 17:03:55
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/curl (Old)
and /work/SRC/openSUSE:Factory/.curl.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "curl"
Changes:
--------
--- /work/SRC/openSUSE:Factory/curl/curl.changes 2017-02-08 11:01:52.604084181 +0100
+++ /work/SRC/openSUSE:Factory/.curl.new/curl.changes 2017-02-26 17:03:56.936204319 +0100
@@ -1,0 +2,119 @@
+Fri Feb 24 11:42:10 UTC 2017 - idonmez(a)suse.com
+
+- Update to 7.53.1
+ Bugfixes:
+ * url: Improve CURLOPT_PROXY_CAPATH error handling
+ * urldata: include curl_sspi.h when Windows SSPI is enabled
+ * formdata: check for EOF when reading from stdin
+ * tests: Set CHARSET & LANG to UTF-8 in 1035, 2046 and 2047
+ * url: Default the proxy CA bundle location to CURL_CA_BUNDLE
+ * rand: added missing #ifdef HAVE_FCNTL_H around fcntl.h header
+
+-------------------------------------------------------------------
+Wed Feb 22 09:49:12 UTC 2017 - idonmez(a)suse.com
+
+- Update to 7.53.0
+ Changes:
+ * unix_socket: added --abstract-unix-socket and
+ CURLOPT_ABSTRACT_UNIX_SOCKET
+ * CURLOPT_BUFFERSIZE: support enlarging receive buffer
+
+ Bugfixes:
+ * CVE-2017-2629: make SSL_VERIFYSTATUS work again
+ * gnutls-random: check return code for failed random
+ * openssl-random: check return code when asking for random
+ * http: remove "Curl_http_done: called premature" message
+ * cyassl: use time_t instead of long for timeout
+ * build-wolfssl: Sync config with wolfSSL 3.10
+ * ftp-gss: check for init before use
+ * configure: accept --with-libidn2 instead
+ * ftp: failure to resolve proxy should return that error code
+ * curl.1: add three more exit codes
+ * docs/ciphers: link to our own new page about ciphers
+ * vtls: s/SSLEAY/OPENSSL - fixes multi_socket timeouts with openssl
+ * darwinssl: fix iOS build
+ * darwinssl: fix CFArrayRef leak
+ * cmake: use crypt32.lib when building with OpenSSL on windows
+ * curl_formadd.3: CURLFORM_CONTENTSLENGTH not needed when chunked
+ * digest_sspi: copy terminating NUL as well
+ * curl: fix --remote-time incorrect times on Windows
+ * curl.1: several updates and corrections
+ * content_encoding: change return code on a failure
+ * curl.h: CURLE_FUNCTION_NOT_FOUND is no longer in use
+ * docs: TCP_KEEPALIVE start and interval default to 60
+ * darwinssl: --insecure overrides --cacert if both settings are in use
+ * TheArtOfHttpScripting: grammar
+ * CIPHERS.md: document GSKit ciphers
+ * wolfssl: support setting cipher list
+ * wolfssl: display negotiated SSL version and cipher
+ * lib506: fix build for Open Watcom
+ * asiohiper: improved socket handling
+ * examples: make the C++ examples follow our code style too
+ * tests/sws: retry send() on EWOULDBLOCK
+ * cmake: Fix passing _WINSOCKAPI_ macro to compiler
+ * smtp: Fix STARTTLS denied error message
+ * imap/pop3: don't print response character in STARTTLS denied messages
+ * rand: make it work without TLS backing
+ * url: fix parsing for when 'file' is the default protocol
+ * url: allow file://X:/path URLs on windows again
+ * gnutls: check for alpn and ocsp in configure
+ * IDN: Use TR46 'non-transitional' for toASCII translations
+ * url: Fix NO_PROXY env var to work properly with --proxy option
+ * CURLOPT_PREQUOTE.3: takes a struct curl_slist*, not a char*
+ * docs: Add note about libcurl copying strings to CURLOPT_* manpages
+ * curl: reset the easy handle at --next
+ * --next docs: --trace and --trace-ascii are also global
+ * --write-out docs: 'time_total' is not always shown with ms precision
+ * http: print correct HTTP string in verbose output when using HTTP/2
+ * docs: improved language in README.md HISTORY.md CONTRIBUTE.md
+ * http2: disable server push if not requested
+ * nss: use the correct lock in nss_find_slot_by_name()
+ * usercertinmem.c: improve the short description
+ * CURLOPT_CONNECT_TO: Fix compile warnings
+ * docs: non-blocking SSL handshake is now supported with NSS
+ * *.rc: escape non-ASCII/non-UTF-8 character for clarity
+ * mbedTLS: fix multi interface non-blocking handshake
+ * PolarSSL: fix multi interface non-blocking handshake
+ * VC: remove the makefile.vc6 build infra
+ * telnet: fix windows compiler warnings
+ * cookies: do not assume a valid domain has a dot
+ * polarssl: fix hangs
+ * gnutls: disable TLS session tickets
+ * mbedtls: disable TLS session tickets
+ * mbedtls: implement CTR-DRBG and HAVEGE random generators
+ * openssl: Don't use certificate after transferring ownership
+ * cmake: Support curl --xattr when built with cmake
+ * OS400: Fix symbols
+ * docs: Add more HTTPS proxy documentation
+ * docs: use more HTTPS links
+ * cmdline-opts: Fixed build and test in out of source tree builds
+ * CHANGES.0: removed
+ * schannel: Remove incorrect SNI disabled message
+ * darwinssl: Avoid parsing certificates when not in verbose mode
+ * test552: Fix typos
+ * telnet: Fix typos
+ * transfer: only retry nobody-requests for HTTP
+ * http2: reset push header counter fixes crash
+ * nss: make FTPS work with --proxytunnel
+ * test1139: Added the --manual keyword since the manual is required
+ * polarssl, mbedtls: Fix detection of pending data
+ * http_proxy: Fix tiny memory leak upon edge case connecting to proxy
+ * URL: only accept ";options" in SMTP/POP3/IMAP URL schemes
+ * curl.1: ftp.sunet.se is no longer an FTP mirror
+ * tool_operate: Show HTTPS-Proxy options on CURLE_SSL_CACERT
+ * http2: fix memory-leak when denying push streams
+ * configure: Allow disabling pthreads, fall back on Win32 threads
+ * curl: fix typo in time condition warning message
+ * axtls: adapt to API changes
+ * tool_urlglob: Allow a glob range with the same start and stop
+ * winbuild: add note on auto-detection of MACHINE in Makefile.vc
+ * http: fix missing 'Content-Length: 0' while negotiating auth
+ * proxy: fix hostname resolution and IDN conversion
+ * docs: fix timeout handling in multi-uv example
+ * digest_sspi: Fix nonce-count generation in HTTP digest
+ * sftp: improved checks for create dir failures
+ * smb: use getpid replacement for windows UWP builds
+ * digest_sspi: Handle 'stale=TRUE' directive in HTTP digest
+- Remove curl-7.52.1-idn-fixes.patch, fixed upstream.
+
+-------------------------------------------------------------------
Old:
----
curl-7.52.1-idn-fixes.patch
curl-7.52.1.tar.lzma
curl-7.52.1.tar.lzma.asc
New:
----
curl-7.53.1.tar.lzma
curl-7.53.1.tar.lzma.asc
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ curl.spec ++++++
--- /var/tmp/diff_new_pack.7x4SZS/_old 2017-02-26 17:03:57.560109683 +0100
+++ /var/tmp/diff_new_pack.7x4SZS/_new 2017-02-26 17:03:57.564109076 +0100
@@ -20,7 +20,7 @@
%bcond_with mozilla_nss
%bcond_without testsuite
Name: curl
-Version: 7.52.1
+Version: 7.53.1
Release: 0
Summary: A Tool for Transferring Data from URLs
License: BSD-3-Clause and MIT
@@ -32,8 +32,7 @@
Source4: https://daniel.haxx.se/mykey.asc#/%{name}.keyring
Patch0: libcurl-ocloexec.patch
Patch1: dont-mess-with-rpmoptflags.diff
-Patch3: curl-secure-getenv.patch
-Patch5: curl-7.52.1-idn-fixes.patch
+Patch2: curl-secure-getenv.patch
BuildRequires: groff
BuildRequires: krb5-mini-devel
BuildRequires: libidn2-devel
@@ -97,8 +96,7 @@
%setup -q
%patch0
%patch1
-%patch3
-%patch5 -p1
+%patch2
%build
# curl complains if macro definition is contained in CFLAGS
@@ -127,7 +125,8 @@
%endif
%endif
--with-gssapi=%{_libexecdir}/mit \
- --with-libssh2\
+ --with-libidn2 \
+ --with-libssh2 \
--enable-hidden-symbols \
--disable-static \
--enable-threaded-resolver \
1
0
Hello community,
here is the log from the commit of package libcryptopp for openSUSE:Factory checked in at 2017-02-26 17:03:38
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/libcryptopp (Old)
and /work/SRC/openSUSE:Factory/.libcryptopp.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "libcryptopp"
Changes:
--------
--- /work/SRC/openSUSE:Factory/libcryptopp/libcryptopp.changes 2017-02-07 11:57:21.797505927 +0100
+++ /work/SRC/openSUSE:Factory/.libcryptopp.new/libcryptopp.changes 2017-02-26 17:03:45.493939918 +0100
@@ -1,0 +2,8 @@
+Thu Feb 23 23:16:02 UTC 2017 - adam(a)mizerski.pl
+
+- update to 5.6.5
+ * Rebase libcryptopp-shared.patch
+ * Rebase 0001-disable_os_rng_test.patch
+- enable openmp usage
+
+-------------------------------------------------------------------
Old:
----
cryptopp564.zip
New:
----
cryptopp565.zip
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ libcryptopp.spec ++++++
--- /var/tmp/diff_new_pack.nC6fc3/_old 2017-02-26 17:03:45.973867121 +0100
+++ /var/tmp/diff_new_pack.nC6fc3/_new 2017-02-26 17:03:45.977866514 +0100
@@ -18,7 +18,7 @@
%define major 5
%define minor 6
-%define patch 4
+%define patch 5
Name: libcryptopp
# When updating, remember to update cryptopp.pc and baselibs.conf as well.
@@ -74,7 +74,7 @@
%build
make %{?_smp_mflags} \
- CXXFLAGS="-DNDEBUG %{optflags} -fPIC" \
+ CXXFLAGS="-DNDEBUG %{optflags} -fPIC -pthread -fopenmp" \
CXX="g++" \
all
++++++ 0001-disable_os_rng_test.patch ++++++
--- /var/tmp/diff_new_pack.nC6fc3/_old 2017-02-26 17:03:46.013861054 +0100
+++ /var/tmp/diff_new_pack.nC6fc3/_new 2017-02-26 17:03:46.017860448 +0100
@@ -1,8 +1,8 @@
-Index: libcryptopp-5.6.4/test.cpp
+Index: libcryptopp-5.6.5/test.cpp
===================================================================
---- libcryptopp-5.6.4.orig/test.cpp
-+++ libcryptopp-5.6.4/test.cpp
-@@ -882,7 +882,7 @@ bool Validate(int alg, bool thorough, co
+--- libcryptopp-5.6.5.orig/test.cpp
++++ libcryptopp-5.6.5/test.cpp
+@@ -898,7 +898,7 @@ bool Validate(int alg, bool thorough, co
{
case 0: result = ValidateAll(thorough); break;
case 1: result = TestSettings(); break;
@@ -11,11 +11,11 @@
case 3: result = ValidateMD5(); break;
case 4: result = ValidateSHA(); break;
case 5: result = ValidateDES(); break;
-Index: libcryptopp-5.6.4/validat1.cpp
+Index: libcryptopp-5.6.5/validat1.cpp
===================================================================
---- libcryptopp-5.6.4.orig/validat1.cpp
-+++ libcryptopp-5.6.4/validat1.cpp
-@@ -73,7 +73,8 @@ USING_NAMESPACE(std)
+--- libcryptopp-5.6.5.orig/validat1.cpp
++++ libcryptopp-5.6.5/validat1.cpp
+@@ -69,7 +69,8 @@ USING_NAMESPACE(std)
bool ValidateAll(bool thorough)
{
bool pass=TestSettings();
++++++ libcryptopp-shared.patch ++++++
--- /var/tmp/diff_new_pack.nC6fc3/_old 2017-02-26 17:03:46.061853775 +0100
+++ /var/tmp/diff_new_pack.nC6fc3/_new 2017-02-26 17:03:46.065853168 +0100
@@ -1,14 +1,14 @@
-Index: libcryptopp-5.6.4/GNUmakefile
+Index: libcryptopp-5.6.5/GNUmakefile
===================================================================
---- libcryptopp-5.6.4.orig/GNUmakefile
-+++ libcryptopp-5.6.4/GNUmakefile
-@@ -646,8 +646,8 @@ endif
+--- libcryptopp-5.6.5.orig/GNUmakefile
++++ libcryptopp-5.6.5/GNUmakefile
+@@ -640,8 +640,8 @@ endif
libcryptopp.dylib: $(LIBOBJS)
$(CXX) -dynamiclib -o $@ $(CXXFLAGS) -install_name "$@" -current_version "$(LIB_MAJOR).$(LIB_MINOR).$(LIB_PATCH)" -compatibility_version "$(LIB_MAJOR).$(LIB_MINOR)" -headerpad_max_install_names $(LDFLAGS) $(LIBOBJS)
--cryptest.exe: libcryptopp.a $(TESTOBJS) | config_warning
+-cryptest.exe: libcryptopp.a $(TESTOBJS)
- $(CXX) -o $@ $(CXXFLAGS) $(TESTOBJS) ./libcryptopp.a $(LDFLAGS) $(LDLIBS)
-+cryptest.exe: libcryptopp.so$(SOLIB_VERSION_SUFFIX) $(TESTOBJS) | config_warning
++cryptest.exe: libcryptopp.so$(SOLIB_VERSION_SUFFIX) $(TESTOBJS)
+ $(CXX) -o $@ $(CXXFLAGS) $(TESTOBJS) -L. -lcryptopp $(LDFLAGS) $(LDLIBS)
# Makes it faster to test changes
1
0
Hello community,
here is the log from the commit of package rsyslog for openSUSE:Factory checked in at 2017-02-26 17:02:31
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/rsyslog (Old)
and /work/SRC/openSUSE:Factory/.rsyslog.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "rsyslog"
Changes:
--------
--- /work/SRC/openSUSE:Factory/rsyslog/rsyslog.changes 2017-02-15 10:01:40.544170519 +0100
+++ /work/SRC/openSUSE:Factory/.rsyslog.new/rsyslog.changes 2017-02-26 17:02:32.457018400 +0100
@@ -1,0 +2,22 @@
+Thu Feb 23 16:18:08 UTC 2017 - astieger(a)suse.com
+
+- rsyslog 8.25.0:
+ * imfile: add support for wildcards in directory names
+ * add new global option "parser.PermitSlashInProgramname"
+ * mmdblookup: fix build issues, code cleanup
+ * improved debug output for queue corruption cases
+ * an error message is now displayed when a directory owner cannot be set
+ * rainerscript: add new function ipv42num
+ * rainerscript: add new function num2ipv4
+ * bugfix: ratelimiter does not work correctly is time is set back
+ * core: fix potential message loss in old-style transactional interface
+ * bugfix queue subsystem: queue corrupted if certain msg props are used
+ * bugfix imjournal: fixed situation when time goes backwards
+ * bugfix: bFlushOnTxEnd == 0 not honored when writing w/o async writer
+ * bugfix core: str2num mishandling empty strings
+ * bugfix rainerscript: set/unset statement do not check variable name validity
+ * bugfix mmrm1stspace: last character of rawmsg property was doubled
+ * bugfix imtcp: fix very small (cosmetic) memory leak
+ * However, the leak breaks memleak checks in the testbench.
+
+-------------------------------------------------------------------
Old:
----
rsyslog-8.24.0.tar.gz
New:
----
rsyslog-8.25.0.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ rsyslog.spec ++++++
--- /var/tmp/diff_new_pack.thn0we/_old 2017-02-26 17:02:33.212903744 +0100
+++ /var/tmp/diff_new_pack.thn0we/_new 2017-02-26 17:02:33.212903744 +0100
@@ -20,7 +20,7 @@
Summary: The enhanced syslogd for Linux and Unix
License: (GPL-3.0+ and Apache-2.0)
Group: System/Daemons
-Version: 8.24.0
+Version: 8.25.0
Release: 0
%if 0%{?suse_version} >= 1210
%bcond_without systemd
@@ -235,7 +235,8 @@
Source7: module-mysql
Source8: module-snmp
Source9: module-udpspoof
-Source14: http://www.rsyslog.com/files/download/rsyslog/rsyslog-doc-%{version}.tar.gz
+#Source14: http://www.rsyslog.com/files/download/rsyslog/rsyslog-doc-%{version}.tar.gz
+Source14: http://www.rsyslog.com/files/download/rsyslog/rsyslog-doc-8.24.0.tar.gz
Source15: rsyslog.firewall
# PATCH-FIX-OPENSUSE rsyslog-unit.patch crrodriguez(a)opensuse.org Customize upstream systemd unit for openSUSE needs.
++++++ rsyslog-8.24.0.tar.gz -> rsyslog-8.25.0.tar.gz ++++++
++++ 7154 lines of diff (skipped)
1
0
Hello community,
here is the log from the commit of package apache2 for openSUSE:Factory checked in at 2017-02-26 17:02:16
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/apache2 (Old)
and /work/SRC/openSUSE:Factory/.apache2.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "apache2"
Changes:
--------
--- /work/SRC/openSUSE:Factory/apache2/apache2.changes 2017-02-22 13:52:36.116279612 +0100
+++ /work/SRC/openSUSE:Factory/.apache2.new/apache2.changes 2017-02-26 17:02:17.419299372 +0100
@@ -1,0 +2,6 @@
+Thu Feb 23 14:12:48 UTC 2017 - pgajdos(a)suse.com
+
+- revert an attempt to fix PR 60458
+ + httpd-cache-revert-svn1773397.patch
+
+-------------------------------------------------------------------
New:
----
httpd-cache-revert-svn1773397.patch
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ apache2.spec ++++++
--- /var/tmp/diff_new_pack.vP9QZK/_old 2017-02-26 17:02:21.726646019 +0100
+++ /var/tmp/diff_new_pack.vP9QZK/_new 2017-02-26 17:02:21.730645412 +0100
@@ -131,6 +131,8 @@
Patch115: httpd-2.4.x-fate317766-config-control-two-protocol-options.diff
# https://bz.apache.org/bugzilla/show_bug.cgi?id=60577 comment 5
Patch116: httpd-cache-forward-http-proxy.patch
+# http://svn.apache.org/viewvc?view=revision&revision=1781324
+Patch117: httpd-cache-revert-svn1773397.patch
BuildRequires: apache-rpm-macros-control
BuildRequires: automake
BuildRequires: db-devel
@@ -323,6 +325,7 @@
%patch114 -p1
%patch115 -p1
%patch116 -p0
+%patch117 -p1
cat $RPM_SOURCE_DIR/SUSE-NOTICE >> NOTICE
# install READMEs
a=$(basename %{SOURCE22})
++++++ httpd-cache-revert-svn1773397.patch ++++++
Index: httpd-2.4.25/modules/proxy/mod_proxy.c
===================================================================
--- httpd-2.4.25.orig/modules/proxy/mod_proxy.c 2016-12-12 16:20:04.000000000 +0100
+++ httpd-2.4.25/modules/proxy/mod_proxy.c 2017-02-23 15:02:21.509606618 +0100
@@ -771,29 +771,18 @@ static int proxy_trans(request_rec *r)
*/
dconf = ap_get_module_config(r->per_dir_config, &proxy_module);
- conf = (proxy_server_conf *) ap_get_module_config(r->server->module_config,
- &proxy_module);
+
/* short way - this location is reverse proxied? */
if (dconf->alias) {
int rv = ap_proxy_trans_match(r, dconf->alias, dconf);
- if (OK == rv) {
- /* Got a hit. Need to make sure it's not explicitly declined */
- if (conf->aliases->nelts) {
- ent = (struct proxy_alias *) conf->aliases->elts;
- for (i = 0; i < conf->aliases->nelts; i++) {
- int rv = ap_proxy_trans_match(r, &ent[i], dconf);
- if (DECLINED == rv) {
- return DECLINED;
- }
- }
- }
- return OK;
- }
if (DONE != rv) {
return rv;
}
}
+ conf = (proxy_server_conf *) ap_get_module_config(r->server->module_config,
+ &proxy_module);
+
/* long way - walk the list of aliases, find a match */
if (conf->aliases->nelts) {
ent = (struct proxy_alias *) conf->aliases->elts;
1
0
Hello community,
here is the log from the commit of package librelp for openSUSE:Factory checked in at 2017-02-26 17:02:00
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/librelp (Old)
and /work/SRC/openSUSE:Factory/.librelp.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "librelp"
Changes:
--------
--- /work/SRC/openSUSE:Factory/librelp/librelp.changes 2017-02-04 18:00:58.636165549 +0100
+++ /work/SRC/openSUSE:Factory/.librelp.new/librelp.changes 2017-02-26 17:02:01.373733218 +0100
@@ -1,0 +2,6 @@
+Thu Feb 23 13:28:52 UTC 2017 - astieger(a)suse.com
+
+- librelp 1.2.13:
+ * bugfix: duplicated lines after server reconnect
+
+-------------------------------------------------------------------
Old:
----
librelp-1.2.12.tar.gz
New:
----
librelp-1.2.13.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ librelp.spec ++++++
--- /var/tmp/diff_new_pack.FGCOx6/_old 2017-02-26 17:02:01.765673767 +0100
+++ /var/tmp/diff_new_pack.FGCOx6/_new 2017-02-26 17:02:01.765673767 +0100
@@ -18,7 +18,7 @@
%define library_name librelp0
Name: librelp
-Version: 1.2.12
+Version: 1.2.13
Release: 0
Summary: A reliable logging library
License: GPL-3.0+
@@ -113,7 +113,7 @@
make %{?_smp_mflags} V=1
%install
-make %{?_smp_mflags} DESTDIR=%{buildroot} install
+%make_install
rm %{buildroot}%{_libdir}/librelp.la
%post -n %{library_name} -p /sbin/ldconfig
++++++ librelp-1.2.12.tar.gz -> librelp-1.2.13.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/librelp-1.2.12/ChangeLog new/librelp-1.2.13/ChangeLog
--- old/librelp-1.2.12/ChangeLog 2016-07-07 13:25:48.000000000 +0200
+++ new/librelp-1.2.13/ChangeLog 2017-02-20 08:08:42.000000000 +0100
@@ -1,4 +1,9 @@
----------------------------------------------------------------------
+Version 1.2.13 - 2017-02-20
+- make build under BSD
+- bugfix: duplicated lines after server reconnect
+ Thanks to Hervé for the patch.
+----------------------------------------------------------------------
Version 1.2.12 - 2016-07-07
- API enhancement: permit to set connection timeout
Thanks to Nathan Brown for the patch.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/librelp-1.2.12/configure new/librelp-1.2.13/configure
--- old/librelp-1.2.12/configure 2016-07-07 14:18:43.000000000 +0200
+++ new/librelp-1.2.13/configure 2017-02-20 08:10:48.000000000 +0100
@@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for librelp 1.2.12.
+# Generated by GNU Autoconf 2.69 for librelp 1.2.13.
#
# Report bugs to <rgerhards(a)adiscon.com>.
#
@@ -590,8 +590,8 @@
# Identity of this package.
PACKAGE_NAME='librelp'
PACKAGE_TARNAME='librelp'
-PACKAGE_VERSION='1.2.12'
-PACKAGE_STRING='librelp 1.2.12'
+PACKAGE_VERSION='1.2.13'
+PACKAGE_STRING='librelp 1.2.13'
PACKAGE_BUGREPORT='rgerhards(a)adiscon.com'
PACKAGE_URL=''
@@ -1337,7 +1337,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 librelp 1.2.12 to adapt to many kinds of systems.
+\`configure' configures librelp 1.2.13 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1408,7 +1408,7 @@
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of librelp 1.2.12:";;
+ short | recursive ) echo "Configuration of librelp 1.2.13:";;
esac
cat <<\_ACEOF
@@ -1528,7 +1528,7 @@
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-librelp configure 1.2.12
+librelp configure 1.2.13
generated by GNU Autoconf 2.69
Copyright (C) 2012 Free Software Foundation, Inc.
@@ -2054,7 +2054,7 @@
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
-It was created by librelp $as_me 1.2.12, which was
+It was created by librelp $as_me 1.2.13, which was
generated by GNU Autoconf 2.69. Invocation command line was
$ $0 $@
@@ -2917,7 +2917,7 @@
# Define the identity of the package.
PACKAGE='librelp'
- VERSION='1.2.12'
+ VERSION='1.2.13'
cat >>confdefs.h <<_ACEOF
@@ -3032,7 +3032,7 @@
# Define the identity of the package.
PACKAGE='librelp'
- VERSION='1.2.12'
+ VERSION='1.2.13'
cat >>confdefs.h <<_ACEOF
@@ -13785,7 +13785,7 @@
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
-This file was extended by librelp $as_me 1.2.12, which was
+This file was extended by librelp $as_me 1.2.13, which was
generated by GNU Autoconf 2.69. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -13851,7 +13851,7 @@
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\
-librelp config.status 1.2.12
+librelp config.status 1.2.13
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/librelp-1.2.12/configure.ac new/librelp-1.2.13/configure.ac
--- old/librelp-1.2.12/configure.ac 2016-07-07 13:24:53.000000000 +0200
+++ new/librelp-1.2.13/configure.ac 2017-02-20 08:09:22.000000000 +0100
@@ -2,7 +2,7 @@
# Process this file with autoconf to produce a configure script.
AC_PREREQ(2.61)
-AC_INIT([librelp], [1.2.12], [rgerhards(a)adiscon.com]
+AC_INIT([librelp], [1.2.13], [rgerhards(a)adiscon.com]
AM_INIT_AUTOMAKE
AM_INIT_AUTOMAKE
m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/librelp-1.2.12/src/librelp.h new/librelp-1.2.13/src/librelp.h
--- old/librelp-1.2.12/src/librelp.h 2016-07-07 07:30:41.000000000 +0200
+++ new/librelp-1.2.13/src/librelp.h 2016-11-23 13:52:21.000000000 +0100
@@ -3,7 +3,7 @@
* This file is meant to be included by applications using the relp library.
* For relp library files themselves, include "relp.h".
*
- * Copyright 2008-2013 by Rainer Gerhards and Adiscon GmbH.
+ * Copyright 2008-2016 by Rainer Gerhards and Adiscon GmbH.
*
* This file is part of librelp.
*
@@ -143,7 +143,8 @@
#define RELP_RET_AUTH_ERR_FP RELPERR_BASE + 33 /**< auth failed: non-permitted peer fingerprint */
#define RELP_RET_AUTH_ERR_NAME RELPERR_BASE + 34 /**< auth failed: no permitted peer name found */
#define RELP_RET_AUTH_NO_CERT RELPERR_BASE + 35 /**< auth failed: peer did not present a certificate */
-#define RELP_RET_AUTH_CERT_INVL RELPERR_BASE + 36 /**< auth failed: peer certificate invalid (did not pass validation) */
+#define RELP_RET_AUTH_CERT_INVL RELPERR_BASE + 36 /**< auth failed: peer certificate invalid
+ (did not pass validation) */
#define RELP_RET_INVLD_AUTH_MD RELPERR_BASE + 37 /**< lib user tried to set invalid auth mode */
#define RELP_RET_INVLD_WILDCARD RELPERR_BASE + 38 /**< invalid wildcard given in permitted peer name */
#define RELP_RET_ERR_TLS_HANDS RELPERR_BASE + 39 /**< TLS handshake failed */
@@ -166,7 +167,8 @@
void relpEngineSetShutdownImmdtPtr(relpEngine_t *pThis, int *ptr);
relpRetVal relpEngineConstruct(relpEngine_t **ppThis);
relpRetVal relpEngineDestruct(relpEngine_t **ppThis);
-relpRetVal relpEngineSetDbgprint(relpEngine_t *pThis, void (*dbgprint)(char *fmt, ...) __attribute__((format(printf, 1, 2))));
+relpRetVal relpEngineSetDbgprint(relpEngine_t *pThis,
+ void (*dbgprint)(char *fmt, ...) __attribute__((format(printf, 1, 2))));
relpRetVal relpEngineAddListner(relpEngine_t *pThis, unsigned char *pLstnPort) __attribute__ ((deprecated));
relpRetVal relpEngineAddListner2(relpEngine_t *pThis, unsigned char *pLstnPort, void*) __attribute__ ((deprecated));
relpRetVal relpEngineListnerConstruct(relpEngine_t *pThis, relpSrv_t **ppSrv);
@@ -197,7 +199,8 @@
relpRetVal relpSrvEnableTLS2(relpSrv_t *pThis);
relpRetVal relpSrvEnableTLSZip2(relpSrv_t *pThis);
void relpSrvSetDHBits(relpSrv_t *pThis, int bits);
-void relpSrvSetKeepAlive(relpSrv_t *pThis, const int bEnabled, const int iKeepAliveIntvl, const int iKeepAliveProbes, const int iKeepAliveTime);
+void relpSrvSetKeepAlive(relpSrv_t *pThis, const int bEnabled, const int iKeepAliveIntvl,
+ const int iKeepAliveProbes, const int iKeepAliveTime);
relpRetVal relpSrvSetGnuTLSPriString(relpSrv_t *pThis, char *pristr);
relpRetVal relpSrvSetCACert(relpSrv_t *pThis, char *cert);
relpRetVal relpSrvSetOwnCert(relpSrv_t *pThis, char *cert);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/librelp-1.2.12/src/offers.h new/librelp-1.2.13/src/offers.h
--- old/librelp-1.2.12/src/offers.h 2016-04-15 09:32:11.000000000 +0200
+++ new/librelp-1.2.13/src/offers.h 2016-11-22 18:18:02.000000000 +0100
@@ -51,7 +51,7 @@
} relpOfferValue_t;
-/* the RELPOFFER object
+/* the RELPOFFER object
* rgerhards, 2008-03-24
*/
struct relpOffer_s {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/librelp-1.2.12/src/relp.c new/librelp-1.2.13/src/relp.c
--- old/librelp-1.2.12/src/relp.c 2016-06-10 12:04:04.000000000 +0200
+++ new/librelp-1.2.13/src/relp.c 2016-11-23 13:52:21.000000000 +0100
@@ -1,6 +1,6 @@
/* The RELP (reliable event logging protocol) core protocol library.
*
- * Copyright 2008-2013 by Rainer Gerhards and Adiscon GmbH.
+ * Copyright 2008-2016 by Rainer Gerhards and Adiscon GmbH.
*
* This file is part of librelp.
*
@@ -69,6 +69,7 @@
}
}
+#if defined(HAVE_EPOLL_CREATE1) || defined(HAVE_EPOLL_CREATE)
static char *
relpEngine_strerror_r(int errnum, char *buf, size_t buflen) {
#ifndef HAVE_STRERROR_R
@@ -91,7 +92,6 @@
return buf;
}
-#if defined(HAVE_EPOLL_CREATE1) || defined(HAVE_EPOLL_CREATE)
static relpRetVal
addToEpollSet(relpEngine_t *pThis, epolld_type_t typ, void *ptr, int sock, epolld_t **pepd)
{
@@ -272,7 +272,7 @@
/** Destruct a RELP engine instance
* Should be called only a after all RELP functions have been terminated.
- * Terminates librelp operations, no calls are permitted after engine
+ * Terminates librelp operations, no calls are permitted after engine
* destruction.
*/
relpRetVal
@@ -362,7 +362,7 @@
}
/* unfortunately, we need to duplicate some functionality to support the <= 0.1.2
- * callback interface (which did not contain a user pointer) and the >= 0.1.3
+ * callback interface (which did not contain a user pointer) and the >= 0.1.3
* callback interface. I have thought a lot about doing this smarter, but there
* is no better way the API offers. The functions ending in ...2() are the new
* interface. -- rgerhards, 2008-07-08
@@ -379,7 +379,8 @@
* not implemented dummy.
*/
relpRetVal
-relpEngineSetSyslogRcv2(relpEngine_t *pThis, relpRetVal (*pCB)(void *, unsigned char*, unsigned char*, unsigned char*, size_t))
+relpEngineSetSyslogRcv2(relpEngine_t *pThis, relpRetVal (*pCB)(void *, unsigned char*,
+ unsigned char*, unsigned char*, size_t))
{
ENTER_RELPFUNC;
RELPOBJ_assert(pThis, Engine);
@@ -400,12 +401,12 @@
*
* This handler will only be called in a mode with authenticaton.
* Practically, this means when TLS support is enabled.
- *
+ *
* Callback parameters:
*
* pUsr - the user pointer set
* authinfo - the credentials that have been used to authenticate
- * the remote peer. This may be a fingerprint or something
+ * the remote peer. This may be a fingerprint or something
* else, depending on authentication settings.
* errmsg - error message as far as librelp is concerned
* errcode - contains librelp error status that lead to the failed auth.
@@ -444,7 +445,7 @@
}
/**
- * Set an event handler that shall receive information when some GENERIC
+ * Set an event handler that shall receive information when some GENERIC
* error occured for which no special handler exists. A generic error is
* one that cannot be assigned to a specific listener or session.
* Callback parameters:
@@ -600,7 +601,8 @@
{
ENTER_RELPFUNC;
/* TODO: remove the status dbgprint's once we have some practice drill 2013-07-05 */
- pThis->dbgprint("librelp: epoll_set_events sock %d, target bits %2.2x, current %2.2x\n", sock, events, pSessEtry->epevt->ev.events);
+ pThis->dbgprint("librelp: epoll_set_events sock %d, target bits %2.2x, current %2.2x\n",
+ sock, events, pSessEtry->epevt->ev.events);
if(pSessEtry->epevt->ev.events != events) {
pSessEtry->epevt->ev.events = events;
pThis->dbgprint("librelp: epoll_set_events sock %d, setting new bits\n", sock);
@@ -701,7 +703,7 @@
# else
pThis->dbgprint("librelp error: handshake retry requested in "
"non-TLS mode");
-
+
# endif /* #ifdef ENABLE_TLS */
}
} else {
@@ -902,7 +904,7 @@
# else
pThis->dbgprint("librelp error: handshake retry requested in "
"non-TLS mode");
-
+
# endif /* #ifdef ENABLE_TLS */
}
}
@@ -984,18 +986,18 @@
pThis->dbgprint("relp engine is dispatching frame with command '%s'\n", pFrame->cmd);
- /* currently, we hardcode the commands. Over time, they may be dynamically
+ /* currently, we hardcode the commands. Over time, they may be dynamically
* loaded and, when so, should come from a linked list.
* NOTE: the command handler are sorted so that most frequently used are
* at the top of the list!
*/
if(!strcmp((char*)pFrame->cmd, "syslog")) {
- /* When processing Syslog frames, we ignore return code.
- * Otherwise valid messages in the frame buffer will be
- * discarded. And it's better to have duplicated messages
- * instead of losing them.
+ /* When processing Syslog frames, we ignore return code.
+ * Otherwise valid messages in the frame buffer will be
+ * discarded. And it's better to have duplicated messages
+ * instead of losing them.
*/
- relpSCSyslog(pFrame, pSess);
+ relpSCSyslog(pFrame, pSess);
} else if(!strcmp((char*)pFrame->cmd, "rsp")) {
CHKRet(relpSCRsp(pFrame, pSess));
} else if(!strcmp((char*)pFrame->cmd, "open")) {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/librelp-1.2.12/src/relp.h new/librelp-1.2.13/src/relp.h
--- old/librelp-1.2.12/src/relp.h 2016-04-15 09:32:11.000000000 +0200
+++ new/librelp-1.2.13/src/relp.h 2016-11-23 13:52:21.000000000 +0100
@@ -1,6 +1,6 @@
/* The RELP (reliable event logging protocol) core protocol library.
*
- * Copyright 2008-2013 by Rainer Gerhards and Adiscon GmbH.
+ * Copyright 2008-2016 by Rainer Gerhards and Adiscon GmbH.
*
* This file is part of librelp.
*
@@ -106,7 +106,7 @@
} relpEngSessLst_t;
-/* the RELP engine object
+/* the RELP engine object
* Having a specific engine object enables multiple plugins to call the
* RELP engine at the same time. The core idea of librelp is to have no
* static data at all and everything stored in RELP engine objects. Every
@@ -213,13 +213,13 @@
((txnr > 999999999) ? 1 : txnr + 1)
static inline int relpEngineShouldStop(relpEngine_t *pThis) {
-//pThis->dbgprint("DDDD: librelp bStop %d, ShutdownImmdt %p, immdet result %d\n", pThis->bStop, pThis->bShutdownImmdt, (pThis->bShutdownImmdt == NULL) ? 0 : *pThis->bShutdownImmdt);
return pThis->bStop
|| (pThis->bShutdownImmdt != NULL && *pThis->bShutdownImmdt);
}
/* prototypes needed by library itself (rest is in librelp.h) */
relpRetVal relpEngineDispatchFrame(relpEngine_t *pThis, relpSess_t *pSess, relpFrame_t *pFrame);
-void __attribute__((format(printf, 4, 5))) relpEngineCallOnGenericErr(relpEngine_t *pThis, char *eobj, relpRetVal ecode, char *fmt, ...);
+void __attribute__((format(printf, 4, 5))) relpEngineCallOnGenericErr(relpEngine_t *pThis,
+ char *eobj, relpRetVal ecode, char *fmt, ...);
#endif /* #ifndef RELP_H_INCLUDED */
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/librelp-1.2.12/src/relpclt.c new/librelp-1.2.13/src/relpclt.c
--- old/librelp-1.2.12/src/relpclt.c 2016-07-07 07:30:41.000000000 +0200
+++ new/librelp-1.2.13/src/relpclt.c 2016-11-22 18:18:02.000000000 +0100
@@ -258,7 +258,7 @@
{
ENTER_RELPFUNC;
RELPOBJ_assert(pThis, Clt);
- if(mode == NULL)
+ if(mode == NULL)
FINALIZE;
if(!strcasecmp(mode, "fingerprint"))
@@ -267,7 +267,7 @@
pThis->authmode = eRelpAuthMode_Name;
else
ABORT_FINALIZE(RELP_RET_INVLD_AUTH_MD);
-
+
finalize_it:
LEAVE_RELPFUNC;
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/librelp-1.2.12/src/relpclt.h new/librelp-1.2.13/src/relpclt.h
--- old/librelp-1.2.12/src/relpclt.h 2016-07-07 07:30:41.000000000 +0200
+++ new/librelp-1.2.13/src/relpclt.h 2016-11-22 18:18:02.000000000 +0100
@@ -33,7 +33,7 @@
#ifndef RELPCLT_H_INCLUDED
#define RELPCLT_H_INCLUDED
-/* the RELPCLT object
+/* the RELPCLT object
* rgerhards, 2008-03-16
*/
struct relpClt_s {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/librelp-1.2.12/src/relpframe.c new/librelp-1.2.13/src/relpframe.c
--- old/librelp-1.2.12/src/relpframe.c 2016-04-15 09:32:11.000000000 +0200
+++ new/librelp-1.2.13/src/relpframe.c 2016-11-22 18:18:02.000000000 +0100
@@ -89,7 +89,7 @@
* This is a state machine. The transport driver needs to pass in octets received
* one after the other. This function builds frames and submits them for processing
* as need arises. Please note that the frame pointed to be ppThis may change during
- * processing. It may be NULL after a frame has fully be processed. On Init, the
+ * processing. It may be NULL after a frame has fully be processed. On Init, the
* caller can pass in a NULL pointer.
* rgerhards, 2008-03-16
*/
@@ -102,7 +102,7 @@
assert(ppThis != NULL);
pThis = *ppThis;
- /* we allow NULL pointers, as we would not like to have unprocessed frame.
+ /* we allow NULL pointers, as we would not like to have unprocessed frame.
* Instead, a NULL frame pointer means that we have finished the previous frame
* (or did never before receive one) and so this character must be the first
* of a new frame. -- rgerhards, 2008-03-17
@@ -407,7 +407,7 @@
pSendbuf->lenData += 1 + lenData;
if((pSendbuf->pData = malloc(pSendbuf->lenData + (9 - lenTxnr) + 1)) == NULL)
- // remove +1 above (for debugging only!)
+ // remove +1 above (for debugging only!)
ABORT_FINALIZE(RELP_RET_OUT_OF_MEMORY);
ptrMembuf = pSendbuf->pData + 9 - lenTxnr; /* set ptr to start of area we intend to write to */
@@ -502,7 +502,7 @@
/* we got everything, so now let's get our membuf */
lenMembuf = lenTxnr + 1 + lenCmd + 1 +
lenDatalen + 1 + pThis->lenData + 1; /* +1 for SP and TRAILER */
- if((pMembuf = malloc(lenMembuf)) == NULL)
+ if((pMembuf = malloc(lenMembuf)) == NULL)
ABORT_FINALIZE(RELP_RET_OUT_OF_MEMORY);
ptrMembuf = pMembuf;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/librelp-1.2.12/src/relpframe.h new/librelp-1.2.13/src/relpframe.h
--- old/librelp-1.2.12/src/relpframe.h 2016-05-24 08:05:38.000000000 +0200
+++ new/librelp-1.2.13/src/relpframe.h 2016-11-22 18:18:02.000000000 +0100
@@ -46,7 +46,7 @@
} relpFrameRcvState_t;
-/* the RELPFRAME object
+/* the RELPFRAME object
* rgerhards, 2008-03-16
*/
struct relpFrame_s {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/librelp-1.2.12/src/relpsess.c new/librelp-1.2.13/src/relpsess.c
--- old/librelp-1.2.12/src/relpsess.c 2016-07-07 07:30:41.000000000 +0200
+++ new/librelp-1.2.13/src/relpsess.c 2017-02-20 08:07:05.000000000 +0100
@@ -308,7 +308,7 @@
}
-/* Send a command hint to the remote peer. This function works for the
+/* Send a command hint to the remote peer. This function works for the
* server-side of the connection. A modified version must be used for the
* client side (because we have different ways of sending the data). We do
* not yet need the client side. If we do, way should think about a generic
@@ -493,11 +493,6 @@
ENTER_RELPFUNC;
RELPOBJ_assert(pThis, Sess);
- /* are we already ready? */
- if(pThis->sessState == stateExpected || pThis->sessState == eRelpSessState_BROKEN) {
- FINALIZE;
- }
-
/* first read any outstanding data and process the packets. Note that this
* call DOES NOT block.
*/
@@ -505,7 +500,7 @@
if(localRet != RELP_RET_OK && localRet != RELP_RET_SESSION_BROKEN)
ABORT_FINALIZE(localRet);
- /* re-check if we are already in the desired state. If so, we can immediately
+ /* check if we are already in the desired state. If so, we can immediately
* return. That saves us doing a costly clock call to set the timeout. As a
* side-effect, the timeout is actually applied without the time needed for
* above reception. I think is is OK, even a bit logical ;)
@@ -538,7 +533,7 @@
ABORT_FINALIZE(RELP_RET_SESSION_BROKEN);
}
}
- else
+ else
pThis->pEngine->dbgprint("relpSessWaitRsp poll returns, "
"nfds %d, errno %d\n", nfds, errno);
if(relpEngineShouldStop(pThis->pEngine))
@@ -556,8 +551,8 @@
finalize_it:
pThis->pEngine->dbgprint("relpSessWaitState returns %d\n", iRet);
- if( iRet == RELP_RET_TIMED_OUT ||
- iRet == RELP_RET_SESSION_BROKEN ||
+ if( iRet == RELP_RET_TIMED_OUT ||
+ iRet == RELP_RET_SESSION_BROKEN ||
relpEngineShouldStop(pThis->pEngine)) {
/* the session is broken! */
pThis->sessState = eRelpSessState_BROKEN;
@@ -685,7 +680,7 @@
/* callback when the "open" command has been processed
- * Most importantly, this function needs to check if we are
+ * Most importantly, this function needs to check if we are
* compatible with the server-provided offers and terminate if
* not. If we are, we must set our own parameters to match the
* server-provided ones. Please note that the offer processing here
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/librelp-1.2.12/src/relpsess.h new/librelp-1.2.13/src/relpsess.h
--- old/librelp-1.2.12/src/relpsess.h 2016-07-07 07:30:41.000000000 +0200
+++ new/librelp-1.2.13/src/relpsess.h 2016-11-22 18:18:02.000000000 +0100
@@ -63,7 +63,7 @@
} relpSessType_t; /* what type of session are we? */
-/* the RELPSESS object
+/* the RELPSESS object
* rgerhards, 2008-03-16
*/
struct relpSess_s {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/librelp-1.2.12/src/relpsrv.c new/librelp-1.2.13/src/relpsrv.c
--- old/librelp-1.2.12/src/relpsrv.c 2016-04-15 09:32:11.000000000 +0200
+++ new/librelp-1.2.13/src/relpsrv.c 2016-11-23 13:52:21.000000000 +0100
@@ -1,6 +1,6 @@
/* The relp server.
*
- * Copyright 2008-2014 by Rainer Gerhards and Adiscon GmbH.
+ * Copyright 2008-2016 by Rainer Gerhards and Adiscon GmbH.
*
* This file is part of librelp.
*
@@ -177,7 +177,7 @@
if((pThis->pLstnPort = (unsigned char*) strdup((char*)pLstnPort)) == NULL)
ABORT_FINALIZE(RELP_RET_OUT_OF_MEMORY);
}
-
+
finalize_it:
LEAVE_RELPFUNC;
}
@@ -188,7 +188,7 @@
{
ENTER_RELPFUNC;
RELPOBJ_assert(pThis, Srv);
- if(mode == NULL)
+ if(mode == NULL)
FINALIZE;
if(!strcasecmp(mode, "fingerprint"))
@@ -197,7 +197,7 @@
pThis->authmode = eRelpAuthMode_Name;
else
ABORT_FINALIZE(RELP_RET_INVLD_AUTH_MD);
-
+
finalize_it:
LEAVE_RELPFUNC;
}
@@ -356,8 +356,9 @@
CHKRet(relpTcpSetPrivKey(pTcp, pThis->privKey));
CHKRet(relpTcpSetPermittedPeers(pTcp, &(pThis->permittedPeers)));
}
- CHKRet(relpTcpLstnInit(pTcp, (pThis->pLstnPort == NULL) ? (unsigned char*) RELP_DFLT_PORT : pThis->pLstnPort, pThis->ai_family));
-
+ CHKRet(relpTcpLstnInit(pTcp, (pThis->pLstnPort == NULL) ?
+ (unsigned char*) RELP_DFLT_PORT : pThis->pLstnPort, pThis->ai_family));
+
pThis->pTcp = pTcp;
finalize_it:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/librelp-1.2.12/src/relpsrv.h new/librelp-1.2.13/src/relpsrv.h
--- old/librelp-1.2.12/src/relpsrv.h 2016-04-15 09:32:11.000000000 +0200
+++ new/librelp-1.2.13/src/relpsrv.h 2016-11-22 18:18:02.000000000 +0100
@@ -36,7 +36,7 @@
#include "relp.h"
#include "tcp.h"
-/* the RELPSRV object
+/* the RELPSRV object
* rgerhards, 2008-03-17
*/
struct relpSrv_s {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/librelp-1.2.12/src/sendbuf.c new/librelp-1.2.13/src/sendbuf.c
--- old/librelp-1.2.12/src/sendbuf.c 2016-06-22 12:29:08.000000000 +0200
+++ new/librelp-1.2.13/src/sendbuf.c 2016-11-23 13:52:21.000000000 +0100
@@ -1,6 +1,6 @@
/* The relp send buffer object.
*
- * Copyright 2008-2013 by Rainer Gerhards and Adiscon GmbH.
+ * Copyright 2008-2016 by Rainer Gerhards and Adiscon GmbH.
*
* This file is part of librelp.
*
@@ -208,7 +208,8 @@
relpSessUnacked_t *pUnackedEtry;
pUnackedEtry = pThis->pUnackedLstRoot;
if(pUnackedEtry != NULL) {
-pThis->pEngine->dbgprint("resending frame '%s'\n", pUnackedEtry->pSendbuf->pData + 9 - pUnackedEtry->pSendbuf->lenTxnr);
+ pThis->pEngine->dbgprint("resending frame '%s'\n",
+ pUnackedEtry->pSendbuf->pData + 9 - pUnackedEtry->pSendbuf->lenTxnr);
CHKRet(relpFrameRewriteTxnr(pUnackedEtry->pSendbuf, pThis->txnr));
pThis->txnr = relpEngineNextTXNR(pThis->txnr);
CHKRet(relpSendbufSendAll(pUnackedEtry->pSendbuf, pThis, 0));
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/librelp-1.2.12/src/sendbuf.h new/librelp-1.2.13/src/sendbuf.h
--- old/librelp-1.2.12/src/sendbuf.h 2016-04-15 09:32:11.000000000 +0200
+++ new/librelp-1.2.13/src/sendbuf.h 2016-11-22 18:18:02.000000000 +0100
@@ -35,7 +35,7 @@
#include "relpsess.h"
-/* the RELPSENDBUF object
+/* the RELPSENDBUF object
* rgerhards, 2008-03-16
*/
struct relpSendbuf_s {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/librelp-1.2.12/src/sendq.h new/librelp-1.2.13/src/sendq.h
--- old/librelp-1.2.12/src/sendq.h 2016-04-15 09:32:11.000000000 +0200
+++ new/librelp-1.2.13/src/sendq.h 2016-11-22 18:18:02.000000000 +0100
@@ -48,7 +48,7 @@
relpSendbuf_t *pBuf; /* our send buffer */
} relpSendqe_t;
-/* the RELPSENDQ object
+/* the RELPSENDQ object
* This provides more or less just the root of the sendq entries.
* rgerhards, 2008-03-16
*/
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/librelp-1.2.12/src/tcp.c new/librelp-1.2.13/src/tcp.c
--- old/librelp-1.2.12/src/tcp.c 2016-07-07 13:24:53.000000000 +0200
+++ new/librelp-1.2.13/src/tcp.c 2016-11-22 18:18:02.000000000 +0100
@@ -64,6 +64,9 @@
#endif
+#ifndef SOL_TCP
+# define SOL_TCP (getprotobyname("tcp")->p_proto)
+#endif
#ifdef ENABLE_TLS
/* forward definitions */
@@ -209,8 +212,8 @@
#ifdef ENABLE_TLS
-/* helper to call an error code handler if gnutls failed. If there is a failure,
- * an error message is pulled form gnutls and the error message properly
+/* helper to call an error code handler if gnutls failed. If there is a failure,
+ * an error message is pulled form gnutls and the error message properly
* populated.
* Returns 1 if an error was detected, 0 otherwise. This can be used as a
* shortcut for error handling (safes doing it twice).
@@ -260,7 +263,7 @@
if((*ppThis)->sock != -1) {
ling.l_onoff = 1;
ling.l_linger = 0;
- if(setsockopt((*ppThis)->sock, SOL_SOCKET, SO_LINGER, &ling, sizeof(ling)) < 0 ) {
+ if(setsockopt((*ppThis)->sock, SOL_SOCKET, SO_LINGER, &ling, sizeof(ling)) < 0 ) {
(*ppThis)->pEngine->dbgprint("could not set SO_LINGER, errno %d\n", errno);
}
}
@@ -491,7 +494,7 @@
if(cert == NULL) {
pThis->privKeyFile = NULL;
} else {
-# ifdef HAVE_GNUTLS_CERTIFICATE_SET_VERIFY_FUNCTION
+# ifdef HAVE_GNUTLS_CERTIFICATE_SET_VERIFY_FUNCTION
if((pThis->privKeyFile = strdup(cert)) == NULL)
ABORT_FINALIZE(RELP_RET_OUT_OF_MEMORY);
# else
@@ -625,7 +628,7 @@
pThis->bTLSActive = 1;
finalize_it:
- LEAVE_RELPFUNC;
+ LEAVE_RELPFUNC;
}
#pragma GCC diagnostic pop
#endif /* #ifdef ENABLE_TLS */
@@ -700,7 +703,7 @@
// pThis->pEngine->dbgprint("KEEPALIVE enabled for socket %d\n", sock);
done:
- return;
+ return;
}
/* a portable way to put the current thread asleep. Note that
@@ -791,7 +794,7 @@
}
#ifdef ENABLE_TLS
-#ifdef HAVE_GNUTLS_CERTIFICATE_SET_VERIFY_FUNCTION
+#ifdef HAVE_GNUTLS_CERTIFICATE_SET_VERIFY_FUNCTION
/* Convert a fingerprint to printable data. The function must be provided a
* sufficiently large buffer. 512 bytes shall always do.
*/
@@ -964,7 +967,7 @@
/* now check if we have an empty component at end of string */
if(*pC == '.' && *(pC + 1) == '\0') {
/* pStart is a dummy, it is not used if length is 0 */
- CHKRet(AddPermittedPeerWildcard(pEtry, pStart, 0));
+ CHKRet(AddPermittedPeerWildcard(pEtry, pStart, 0));
}
if(*pC != '\0')
++pC;
@@ -974,7 +977,7 @@
LEAVE_RELPFUNC;
}
-#ifdef HAVE_GNUTLS_CERTIFICATE_SET_VERIFY_FUNCTION
+#ifdef HAVE_GNUTLS_CERTIFICATE_SET_VERIFY_FUNCTION
/* check a peer against a wildcard entry. This is a more lengthy
* operation.
*/
@@ -1090,7 +1093,7 @@
}
/* Obtain the CN from the DN field and hand it back to the caller
- * (which is responsible for destructing it). We try to follow
+ * (which is responsible for destructing it). We try to follow
* RFC2253 as far as it makes sense for our use-case. This function
* is considered a compromise providing good-enough correctness while
* limiting code size and complexity. If a problem occurs, we may enhance
@@ -1254,7 +1257,7 @@
r = GNUTLS_E_CERTIFICATE_ERROR; goto done;
}
- /* If we reach this point, we have at least one valid certificate.
+ /* If we reach this point, we have at least one valid certificate.
* We always use only the first certificate. As of GnuTLS documentation, the
* first certificate always contains the remote peer's own certificate. All other
* certificates are issuer's certificates (up the chain). We are only interested
@@ -1321,7 +1324,7 @@
}
gnutls_anon_set_server_dh_params(pThis->anoncredSrv, pThis->dh_params);
} else {
-# ifdef HAVE_GNUTLS_CERTIFICATE_SET_VERIFY_FUNCTION
+# ifdef HAVE_GNUTLS_CERTIFICATE_SET_VERIFY_FUNCTION
r = gnutls_certificate_allocate_credentials(&pThis->xcred);
if(chkGnutlsCode(pThis, "Failed to allocate certificate credentials", RELP_RET_ERR_TLS_SETUP, r)) {
ABORT_FINALIZE(RELP_RET_ERR_TLS_SETUP);
@@ -1360,8 +1363,8 @@
relpRetVal
relpTcpLstnInit(relpTcp_t *pThis, unsigned char *pLstnPort, int ai_family)
{
- struct addrinfo hints, *res, *r;
- int error, maxs, *s, on = 1;
+ struct addrinfo hints, *res, *r;
+ int error, maxs, *s, on = 1;
int sockflags;
unsigned char *pLstnPt;
@@ -1373,54 +1376,54 @@
pThis->pEngine->dbgprint("creating relp tcp listen socket on port %s\n", pLstnPt);
- memset(&hints, 0, sizeof(hints));
- hints.ai_flags = AI_PASSIVE;
- hints.ai_family = ai_family;
- hints.ai_socktype = SOCK_STREAM;
+ memset(&hints, 0, sizeof(hints));
+ hints.ai_flags = AI_PASSIVE;
+ hints.ai_family = ai_family;
+ hints.ai_socktype = SOCK_STREAM;
- error = getaddrinfo(NULL, (char*) pLstnPt, &hints, &res);
- if(error) {
+ error = getaddrinfo(NULL, (char*) pLstnPt, &hints, &res);
+ if(error) {
pThis->pEngine->dbgprint("error %d querying port '%s'\n", error, pLstnPt);
ABORT_FINALIZE(RELP_RET_INVALID_PORT);
}
- /* Count max number of sockets we may open */
- for(maxs = 0, r = res; r != NULL ; r = r->ai_next, maxs++)
+ /* Count max number of sockets we may open */
+ for(maxs = 0, r = res; r != NULL ; r = r->ai_next, maxs++)
/* EMPTY */;
- pThis->socks = malloc((maxs+1) * sizeof(int));
- if (pThis->socks == NULL) {
- pThis->pEngine->dbgprint("couldn't allocate memory for TCP listen sockets, suspending RELP message reception.");
- freeaddrinfo(res);
- ABORT_FINALIZE(RELP_RET_OUT_OF_MEMORY);
- }
+ pThis->socks = malloc((maxs+1) * sizeof(int));
+ if (pThis->socks == NULL) {
+ pThis->pEngine->dbgprint("couldn't allocate memory for TCP listen sockets, suspending RELP message reception.");
+ freeaddrinfo(res);
+ ABORT_FINALIZE(RELP_RET_OUT_OF_MEMORY);
+ }
- *pThis->socks = 0; /* num of sockets counter at start of array */
- s = pThis->socks + 1;
+ *pThis->socks = 0; /* num of sockets counter at start of array */
+ s = pThis->socks + 1;
for(r = res; r != NULL ; r = r->ai_next) {
- *s = socket(r->ai_family, r->ai_socktype, r->ai_protocol);
- if (*s < 0) {
+ *s = socket(r->ai_family, r->ai_socktype, r->ai_protocol);
+ if (*s < 0) {
if(!(r->ai_family == PF_INET6 && errno == EAFNOSUPPORT))
pThis->pEngine->dbgprint("creating relp tcp listen socket");
/* it is debatable if PF_INET with EAFNOSUPPORT should
* also be ignored...
*/
- continue;
- }
+ continue;
+ }
#ifdef IPV6_V6ONLY
- if (r->ai_family == AF_INET6) {
- int iOn = 1;
+ if (r->ai_family == AF_INET6) {
+ int iOn = 1;
if (setsockopt(*s, IPPROTO_IPV6, IPV6_V6ONLY,
- (char *)&iOn, sizeof (iOn)) < 0) {
- close(*s);
- *s = -1;
- continue;
- }
- }
+ (char *)&iOn, sizeof (iOn)) < 0) {
+ close(*s);
+ *s = -1;
+ continue;
+ }
+ }
#endif
- if(setsockopt(*s, SOL_SOCKET, SO_REUSEADDR, (char *) &on, sizeof(on)) < 0 ) {
+ if(setsockopt(*s, SOL_SOCKET, SO_REUSEADDR, (char *) &on, sizeof(on)) < 0 ) {
pThis->pEngine->dbgprint("error %d setting relp/tcp socket option\n", errno);
- close(*s);
+ close(*s);
*s = -1;
continue;
}
@@ -1435,7 +1438,7 @@
}
if(sockflags == -1) {
pThis->pEngine->dbgprint("error %d setting fcntl(O_NONBLOCK) on relp socket", errno);
- close(*s);
+ close(*s);
*s = -1;
continue;
}
@@ -1456,10 +1459,10 @@
"on port '%s'", pLstnPort);
msgbuf[sizeof(msgbuf)-1] = '\0';
callOnErr(pThis, msgbuf, errno);
- close(*s);
+ close(*s);
*s = -1;
- continue;
- }
+ continue;
+ }
if(listen(*s,pThis->iSessMax / 10 + 5) < 0) {
/* If the listen fails, it most probably fails because we ask
@@ -1473,7 +1476,7 @@
pThis->pEngine->dbgprint("relp listen error %d, suspending\n", errno);
close(*s);
*s = -1;
- continue;
+ continue;
}
}
@@ -1481,17 +1484,17 @@
s++;
}
- if(res != NULL)
- freeaddrinfo(res);
+ if(res != NULL)
+ freeaddrinfo(res);
if(*pThis->socks != maxs)
pThis->pEngine->dbgprint("We could initialize %d RELP TCP listen sockets out of %d we received "
"- this may or may not be an error indication.\n", *pThis->socks, maxs);
- if(*pThis->socks == 0) {
+ if(*pThis->socks == 0) {
pThis->pEngine->dbgprint("No RELP TCP listen socket could successfully be initialized, "
"message reception via RELP disabled.\n");
- free(pThis->socks);
+ free(pThis->socks);
ABORT_FINALIZE(RELP_RET_COULD_NOT_BIND);
}
@@ -1554,7 +1557,7 @@
#endif
}
/* this function is called to hint librelp that a "burst" of data is to be
- * sent. librelp can than try to optimize it's handling. Right now, this
+ * sent. librelp can than try to optimize it's handling. Right now, this
* means we turn on the CORK option and will turn it off when we are
* hinted that the burst is over.
* The function is intentionally void as it must operate in a way that
@@ -1683,7 +1686,7 @@
ABORT_FINALIZE(RELP_RET_ERR_TLS_SETUP);
}
} else {
-# ifdef HAVE_GNUTLS_CERTIFICATE_SET_VERIFY_FUNCTION
+#ifdef HAVE_GNUTLS_CERTIFICATE_SET_VERIFY_FUNCTION
r = gnutls_certificate_allocate_credentials(&pThis->xcred);
if(chkGnutlsCode(pThis, "Failed to allocate certificate credentials", RELP_RET_ERR_TLS_SETUP, r)) {
ABORT_FINALIZE(RELP_RET_ERR_TLS_SETUP);
@@ -1817,10 +1820,10 @@
finalize_it:
if(res != NULL)
- freeaddrinfo(res);
+ freeaddrinfo(res);
if(reslocal != NULL)
- freeaddrinfo(reslocal);
-
+ freeaddrinfo(reslocal);
+
if(iRet != RELP_RET_OK) {
if(pThis->sock != -1) {
close(pThis->sock);
@@ -1849,7 +1852,7 @@
ENTER_RELPFUNC;
r = gnutls_handshake(pThis->session);
if(r < 0) {
- pThis->pEngine->dbgprint("librelp: state %d during retry handshake: %s\n", r, gnutls_strerror(r));
+ pThis->pEngine->dbgprint("librelp: state %d during retry handshake: %s\n", r, gnutls_strerror(r));
}
if(r == GNUTLS_E_INTERRUPTED || r == GNUTLS_E_AGAIN) {
; /* nothing to do, just keep our status... */
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/librelp-1.2.12/src/tcp.h new/librelp-1.2.13/src/tcp.h
--- old/librelp-1.2.12/src/tcp.h 2016-07-07 07:30:41.000000000 +0200
+++ new/librelp-1.2.13/src/tcp.h 2016-11-23 13:52:21.000000000 +0100
@@ -1,6 +1,6 @@
/* The mapping for relp over TCP.
*
- * Copyright 2008-2013 by Rainer Gerhards and Adiscon GmbH.
+ * Copyright 2008-2016 by Rainer Gerhards and Adiscon GmbH.
*
* This file is part of librelp.
*
@@ -40,12 +40,12 @@
#include "relp.h"
typedef enum { relpTCP_RETRY_none = 0,
- relpTCP_RETRY_handshake = 1,
- relpTCP_RETRY_recv = 2,
- relpTCP_RETRY_send = 3 } relpTcpRtryState_t;
+ relpTCP_RETRY_handshake = 1,
+ relpTCP_RETRY_recv = 2,
+ relpTCP_RETRY_send = 3 } relpTcpRtryState_t;
#define RELP_SRV_CONN 0 /**< this conection is a server connection */
-#define RELP_CLT_CONN 1 /**< this conection is a client connection */
+#define RELP_CLT_CONN 1 /**< this conection is a client connection */
/* The tcp module uses an extended version of the permittedPeers structure,
@@ -83,7 +83,7 @@
tcpPermittedPeerEntry_t *peer;
} tcpPermittedPeers_t;
-/* the RELPTCP object
+/* the RELPTCP object
* rgerhards, 2008-03-16
*/
typedef struct relpTcp_s {
@@ -144,7 +144,8 @@
relpRetVal relpTcpAcceptConnReq(relpTcp_t **ppThis, int sock, relpSrv_t *pSrv);
relpRetVal relpTcpRcv(relpTcp_t *pThis, relpOctet_t *pRcvBuf, ssize_t *pLenBuf);
relpRetVal relpTcpSend(relpTcp_t *pThis, relpOctet_t *pBuf, ssize_t *pLenBuf);
-relpRetVal relpTcpConnect(relpTcp_t *pThis, int family, unsigned char *port, unsigned char *host, unsigned char *clientIP);
+relpRetVal relpTcpConnect(relpTcp_t *pThis, int family, unsigned char *port,
+ unsigned char *host, unsigned char *clientIP);
relpRetVal relpTcpEnableTLS(relpTcp_t *pThis);
relpRetVal relpTcpEnableTLSZip(relpTcp_t *pThis);
relpRetVal relpTcpSetDHBits(relpTcp_t *pThis, int bits);
1
0
Hello community,
here is the log from the commit of package libreoffice for openSUSE:Factory checked in at 2017-02-26 17:01:25
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/libreoffice (Old)
and /work/SRC/openSUSE:Factory/.libreoffice.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "libreoffice"
Changes:
--------
--- /work/SRC/openSUSE:Factory/libreoffice/libreoffice.changes 2017-02-22 13:47:01.111968253 +0100
+++ /work/SRC/openSUSE:Factory/.libreoffice.new/libreoffice.changes 2017-02-26 17:01:26.874966112 +0100
@@ -133 +133 @@
-- Version update to 5.2.2.2 CVE-2017-3157:
+- Version update to 5.2.2.2 bsc#1026640 CVE-2017-3157:
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
1
0
Hello community,
here is the log from the commit of package xf86-input-libinput for openSUSE:Factory checked in at 2017-02-26 17:01:14
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/xf86-input-libinput (Old)
and /work/SRC/openSUSE:Factory/.xf86-input-libinput.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "xf86-input-libinput"
Changes:
--------
--- /work/SRC/openSUSE:Factory/xf86-input-libinput/xf86-input-libinput.changes 2016-12-14 10:48:40.679541443 +0100
+++ /work/SRC/openSUSE:Factory/.xf86-input-libinput.new/xf86-input-libinput.changes 2017-02-26 17:01:15.816643477 +0100
@@ -1,0 +2,12 @@
+Mon Feb 20 21:37:53 UTC 2017 - zaitor(a)opensuse.org
+
+- Update to version 0.24.0:
+ + Tablets now support a configurable pressure curve.
+ + Tablets now have a 'area ratio' setting to be able to match the
+ tablet aspect ratio with that of the screen.
+ + The mouse wheel's click angle now (correctly) affects how fast
+ the scroll wheel triggers. In particular, if you have a wheel
+ with a very small click angle, it won't trigger for every click
+ anymore.
+
+-------------------------------------------------------------------
Old:
----
xf86-input-libinput-0.23.0.tar.bz2
xf86-input-libinput-0.23.0.tar.bz2.sig
New:
----
xf86-input-libinput-0.24.0.tar.bz2
xf86-input-libinput-0.24.0.tar.bz2.sig
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ xf86-input-libinput.spec ++++++
--- /var/tmp/diff_new_pack.tgzsF2/_old 2017-02-26 17:01:16.204584633 +0100
+++ /var/tmp/diff_new_pack.tgzsF2/_new 2017-02-26 17:01:16.204584633 +0100
@@ -1,7 +1,7 @@
#
# spec file for package xf86-input-libinput
#
-# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -17,7 +17,7 @@
Name: xf86-input-libinput
-Version: 0.23.0
+Version: 0.24.0
Release: 0
Summary: Libinput driver for the Xorg X server
License: MIT
++++++ xf86-input-libinput-0.23.0.tar.bz2 -> xf86-input-libinput-0.24.0.tar.bz2 ++++++
++++ 1677 lines of diff (skipped)
++++ retrying with extended exclude list
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xf86-input-libinput-0.23.0/ChangeLog new/xf86-input-libinput-0.24.0/ChangeLog
--- old/xf86-input-libinput-0.23.0/ChangeLog 2016-12-12 06:00:47.000000000 +0100
+++ new/xf86-input-libinput-0.24.0/ChangeLog 2017-02-09 07:17:09.000000000 +0100
@@ -1,3 +1,156 @@
+commit 2eb5a2f0c08747df44eba6faff95cc9ce24b78ed
+Author: Peter Hutterer <peter.hutterer(a)who-t.net>
+Date: Thu Feb 9 16:16:34 2017 +1000
+
+ xf86-input-libinput 0.24.0
+
+ Signed-off-by: Peter Hutterer <peter.hutterer(a)who-t.net>
+
+commit 19ceef972e76bc491438198659748786d9457668
+Author: Peter Hutterer <peter.hutterer(a)who-t.net>
+Date: Fri Jan 27 10:24:08 2017 +1000
+
+ Drop unnecessary function declaration
+
+ Signed-off-by: Peter Hutterer <peter.hutterer(a)who-t.net>
+
+commit 07f30ea049303739bf6006d23ac924971a19d778
+Author: Mihail Konev <k.mvc(a)ya.ru>
+Date: Thu Jan 26 14:00:21 2017 +1000
+
+ autogen: add default patch prefix
+
+ Signed-off-by: Mihail Konev <k.mvc(a)ya.ru>
+
+commit 6187ed0450e68aaf727779ad61b50b0b70a1122e
+Author: Emil Velikov <emil.l.velikov(a)gmail.com>
+Date: Mon Mar 9 12:00:52 2015 +0000
+
+ autogen.sh: use quoted string variables
+
+ Place quotes around the $srcdir, $ORIGDIR and $0 variables to prevent
+ fall-outs, when they contain space.
+
+ Signed-off-by: Emil Velikov <emil.l.velikov(a)gmail.com>
+ Reviewed-by: Peter Hutterer <peter.hutterer(a)who-t.net>
+ Signed-off-by: Peter Hutterer <peter.hutterer(a)who-t.net>
+
+commit 974ab6b62bd2af97e1556314df28fe9f3b816e54
+Author: Peter Hutterer <peter.hutterer(a)who-t.net>
+Date: Fri Oct 28 11:20:22 2016 +1000
+
+ Add tablet tool area ratio property
+
+ By default, the X server maps the tablet axes to the available screen area.
+ When a tablet is mapped to the screen but has a different aspect ratio than
+ the screen, input data is skewed. Expose an area ratio property to map the
+ a subsection of the available tablet area into the desired ratio.
+
+ Differences to the wacom driver: there the x/y min/max values must be
+ specified manually and in device coordinates. For this driver we merely
+ provide the area ratio (e.g. 4:3) and let the driver work out the rest.
+
+ Signed-off-by: Peter Hutterer <peter.hutterer(a)who-t.net>
+ Reviewed-by: Jason Gerecke <jason.gerecke(a)wacom.com>
+
+commit 5d0470738125243c98f7a8cc40d62f53604a8051
+Author: Peter Hutterer <peter.hutterer(a)who-t.net>
+Date: Mon Oct 24 14:41:51 2016 +1000
+
+ Implement stylus pressure curve support
+
+ Takes a 4-point cubic bezier curve as input and maps the pressure coordinates
+ to the values outlined by this curve. This is an extension of the current
+ implementation in the xf86-input-wacom driver which only allows the two center
+ control points to be modified.
+
+ Over the years a few users have noted that the wacom driver's pressure curve
+ makes it impossible to cap the pressure at a given value. Given our bezier
+ implementation here, it's effectively a freebie to add configurability of the
+ first and last control points. We do require all control points' x coordinates
+ to be in ascending order.
+
+ Signed-off-by: Peter Hutterer <peter.hutterer(a)who-t.net>
+
+commit f65a5c50224efc34414f44c86700e15392b7039b
+Author: Peter Hutterer <peter.hutterer(a)who-t.net>
+Date: Wed Oct 26 11:57:49 2016 +1000
+
+ Add a bezier curve implementation
+
+ Needed for the wacom stylus pressure curve
+
+ Signed-off-by: Peter Hutterer <peter.hutterer(a)who-t.net>
+
+commit 0dad7408fac3b69c4b6ab7705f39f790d7ba20c2
+Author: Peter Hutterer <peter.hutterer(a)who-t.net>
+Date: Mon Nov 28 14:09:06 2016 +1000
+
+ Calculate the required scroll distance based on the angle
+
+ For a mouse with a click angle of 15 degrees things are unchanged. For devices
+ with angles less than 10, the current code scrolled way too fast. Because the
+ angle wasn't used anywhere, each tick would count as full scroll wheel event,
+ a slight movement of the wheel would thus scroll as much as a large movement
+ on a normal mouse.
+
+ Fix this by taking the actual click angle of the device into account. We
+ calculate some multiple of the angle that's close enough to the default 15
+ degrees of the wheel and then require that many click events to hit the full
+ scroll distance. For example, a mouse with a click angle of 3 degrees now
+ requires 5 clicks to trigger a full legacy scroll button event.
+
+ XI2.1 clients get the intermediate events (i.e. in this case five times
+ one-fifth of the scroll distance) and can thus scroll smoothly, or more
+ specifically in smaller events than usual.
+
+ https://bugs.freedesktop.org/show_bug.cgi?id=92772
+
+ Signed-off-by: Peter Hutterer <peter.hutterer(a)who-t.net>
+ Reviewed-by: Hans de Goede <hdegoede(a)redhat.com>
+
+commit ea02578a4e888d9908eb6bed6dcb858f78acb8bb
+Author: Peter Hutterer <peter.hutterer(a)who-t.net>
+Date: Tue Nov 29 08:31:32 2016 +1000
+
+ Move axis value calculation into a helper function
+
+ The only difference here is the axis number.
+
+ Signed-off-by: Peter Hutterer <peter.hutterer(a)who-t.net>
+ Reviewed-by: Hans de Goede <hdegoede(a)redhat.com>
+
+commit 2ceb2e1b18b6f971706230d16a2a5665d87aabd4
+Author: Peter Hutterer <peter.hutterer(a)who-t.net>
+Date: Tue Nov 29 09:21:24 2016 +1000
+
+ Add a comment regarding scroll dist default values
+
+ Changed this during development because I forgot that the value actually
+ matters (for touchpads anyway).
+
+ Signed-off-by: Peter Hutterer <peter.hutterer(a)who-t.net>
+ Reviewed-by: Hans de Goede <hdegoede(a)redhat.com>
+
+commit f47f78eb0bd9fba455f01c8c6dead3bd75242b2b
+Author: Peter Hutterer <peter.hutterer(a)who-t.net>
+Date: Tue Dec 20 15:36:55 2016 +1000
+
+ Ignore LED updates for disabled devices
+
+ If an XKB AccessX timeout is set and a VT switch is triggered, the
+ AccessXTimeoutExpire function may be called after the device has already been
+ disabled. This can cause a null-pointer dereference as our shared libinput
+ device may have been released by then.
+
+ In the legacy drivers this would've simply caused a write to an invalid fd
+ (-1), not a crash. Here we need to be more careful.
+
+ https://bugs.freedesktop.org/show_bug.cgi?id=98464
+
+ Signed-off-by: Peter Hutterer <peter.hutterer(a)who-t.net>
+ Reviewed-by: Hans de Goede <hdegoede(a)redhat.com>
+
commit 1c3ce3ce3c315213511735db1b0fdd74ca8442d0
Author: Peter Hutterer <peter.hutterer(a)who-t.net>
Date: Mon Dec 12 14:54:00 2016 +1000
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xf86-input-libinput-0.23.0/configure.ac new/xf86-input-libinput-0.24.0/configure.ac
--- old/xf86-input-libinput-0.23.0/configure.ac 2016-12-12 05:53:55.000000000 +0100
+++ new/xf86-input-libinput-0.24.0/configure.ac 2017-02-09 07:17:00.000000000 +0100
@@ -23,7 +23,7 @@
# Initialize Autoconf
AC_PREREQ([2.60])
AC_INIT([xf86-input-libinput],
- [0.23.0],
+ [0.24.0],
[https://bugs.freedesktop.org/enter_bug.cgi?product=xorg]
[xf86-input-libinput])
AC_CONFIG_SRCDIR([Makefile.am])
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xf86-input-libinput-0.23.0/include/libinput-properties.h new/xf86-input-libinput-0.24.0/include/libinput-properties.h
--- old/xf86-input-libinput-0.23.0/include/libinput-properties.h 2016-11-28 04:25:03.000000000 +0100
+++ new/xf86-input-libinput-0.24.0/include/libinput-properties.h 2017-02-09 07:17:00.000000000 +0100
@@ -183,4 +183,14 @@
/* Device rotation: FLOAT, 1 value, 32 bit, read-only */
#define LIBINPUT_PROP_ROTATION_ANGLE_DEFAULT "libinput Rotation Angle Default"
+/* Tablet tool pressure curve: float, 8 values, 32 bit
+ * Value range is [0.0, 1.0], the values specify the x/y of the four
+ * control points for a cubic bezier curve.
+ * Default value: 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0
+ */
+#define LIBINPUT_PROP_TABLET_TOOL_PRESSURECURVE "libinput Tablet Tool Pressurecurve"
+
+/* Tablet tool area ratio: CARD32, 2 values, w and h */
+#define LIBINPUT_PROP_TABLET_TOOL_AREA_RATIO "libinput Tablet Tool Area Ratio"
+
#endif /* _LIBINPUT_PROPERTIES_H_ */
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xf86-input-libinput-0.23.0/man/libinput.man new/xf86-input-libinput-0.24.0/man/libinput.man
--- old/xf86-input-libinput-0.23.0/man/libinput.man 2016-11-28 04:25:03.000000000 +0100
+++ new/xf86-input-libinput-0.24.0/man/libinput.man 2017-02-09 07:17:00.000000000 +0100
@@ -155,6 +155,20 @@
Sets the send events mode to disabled, enabled, or "disable when an external
mouse is connected".
.TP 7
+.BI "Option \*qTabletToolPressureCurve\*q \*q" "x0/y0 x1/y1 x2/y2 x3/y3" \*q
+Set the pressure curve for a tablet stylus to the bezier formed by the four
+points. The respective x/y coordinate must be in the [0.0, 1.0] range. For
+more information see section
+.B TABLET STYLUS PRESSURE CURVE.
+.TP 7
+.BI "Option \*qTabletToolAreaRatio\*q \*q" "w:h" \*q
+Sets the area ratio for a tablet tool. The area always starts at the
+origin (0/0) and expands to the largest available area with the specified
+aspect ratio. Events outside this area are cropped to the area. The special
+value "default" is used for the default mapping (i.e. the device-native
+mapping). For more information see section
+.B TABLET TOOL AREA RATIO.
+.TP 7
.BI "Option \*qTapping\*q \*q" bool \*q
Enables or disables tap-to-click behavior.
.TP 7
@@ -252,6 +266,16 @@
"disabled-on-external-mouse". Indicates which send-event modes is currently
enabled on this device.
.TP 7
+.BI "libinput Tablet Tool Pressurecurve"
+4 32-bit float values [0.0 to 1.0]. See section
+.B TABLET TOOL PRESSURE CURVE
+.TP7
+.BI "libinput Tablet Tool Area Ratio"
+2 32-bit values, corresponding to width and height. Special value 0, 0
+resets to the default ratio. See section
+.B TABLET TOOL AREA RATIO
+for more information.
+.TP 7
.BI "libinput Tapping Enabled"
1 boolean value (8 bit, 0 or 1). 1 enables tapping
.TP 7
@@ -313,6 +337,42 @@
.TP
This feature is provided by this driver, not by libinput.
+.SH TABLET TOOL PRESSURECURVE
+The pressure curve affects how stylus pressure is reported. By default, the
+hardware pressure is reported as-is. By setting a pressure curve, the feel
+of the stylus can be adjusted to be more like e.g. a pencil or a brush.
+.PP
+The pressure curve is a cubic Bezier curve, drawn within a normalized range
+of 0.0 to 1.0 between the four points provided. This normalized range is
+applied to the tablet's pressure input so that the highest pressure maps to
+1.0. The points must have increasing x coordinates, if x0 is larger than 0.0
+all pressure values lower than x0 are equivalent to y0. If x3 is less than
+1.0, all pressure values higher than x3 are equivalent to y3.
+
+The input for a linear curve (default) is "0.0/0.0 0.0/0.0 1.0/1.0 1.0/1.0";
+a slightly
+depressed curve (firmer) might be "0.0/0.0 0.05/0.0 1.0/0.95 1.0/1.0"; a slightly raised
+curve (softer) might be "0.0/0.0 0.0/0.05 0.95/1.0 1.0/1.0".
+.TP
+This feature is provided by this driver, not by libinput.
+
+.SH TABLET TOOL AREA RATIO
+By default, a tablet tool can access the whole sensor area and the tablet
+area is mapped to the available screen area. For external tablets like
+the Wacom Intuos series, the height:width ratio of the tablet may be
+different to that of the monitor, causing the skew of input data.
+.PP
+To avoid this skew of input data, an area ratio may be set to match the
+ratio of the screen device. For example, a ratio of 4:3 will reduce the
+available area of the tablet to the largest available area with a ratio of
+4:3. Events within this area will scale to the tablet's announced axis
+range, the area ratio is thus transparent to the X server. Any events
+outside this area will send events equal to the maximum value of that axis.
+The area always starts at the device's origin in it's current rotation, i.e.
+it takes left-handed-ness into account.
+.TP
+This feature is provided by this driver, not by libinput.
+
.SH AUTHORS
Peter Hutterer
.SH "SEE ALSO"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xf86-input-libinput-0.23.0/src/Makefile.am new/xf86-input-libinput-0.24.0/src/Makefile.am
--- old/xf86-input-libinput-0.23.0/src/Makefile.am 2016-11-14 04:27:06.000000000 +0100
+++ new/xf86-input-libinput-0.24.0/src/Makefile.am 2017-02-09 07:17:00.000000000 +0100
@@ -30,10 +30,11 @@
@DRIVER_NAME@_drv_la_LTLIBRARIES = @DRIVER_NAME@_drv.la
@DRIVER_NAME@_drv_la_LDFLAGS = -module -avoid-version
-@DRIVER_NAME@_drv_la_LIBADD = $(LIBINPUT_LIBS) libdraglock.la
+@DRIVER_NAME@_drv_la_LIBADD = $(LIBINPUT_LIBS) libdraglock.la libbezier.la -lm
@DRIVER_NAME@_drv_ladir = @inputdir@
@DRIVER_NAME@_drv_la_SOURCES = xf86libinput.c
-noinst_LTLIBRARIES = libdraglock.la
+noinst_LTLIBRARIES = libdraglock.la libbezier.la
libdraglock_la_SOURCES = draglock.c draglock.h
+libbezier_la_SOURCES = bezier.c bezier.h
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xf86-input-libinput-0.23.0/src/bezier.c new/xf86-input-libinput-0.24.0/src/bezier.c
--- old/xf86-input-libinput-0.23.0/src/bezier.c 1970-01-01 01:00:00.000000000 +0100
+++ new/xf86-input-libinput-0.24.0/src/bezier.c 2017-02-09 07:17:00.000000000 +0100
@@ -0,0 +1,177 @@
+/*
+ * Copyright © 2016 Red Hat, Inc.
+ *
+ * Permission to use, copy, modify, distribute, and sell this software
+ * and its documentation for any purpose is hereby granted without
+ * fee, provided that the above copyright notice appear in all copies
+ * and that both that copyright notice and this permission notice
+ * appear in supporting documentation, and that the name of Red Hat
+ * not be used in advertising or publicity pertaining to distribution
+ * of the software without specific, written prior permission. Red
+ * Hat makes no representations about the suitability of this software
+ * for any purpose. It is provided "as is" without express or implied
+ * warranty.
+ *
+ * THE AUTHORS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+ * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN
+ * NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+ * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
+ * OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
+ * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
+ * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#include <assert.h>
+#include <math.h>
+#include <stdio.h>
+
+#include "bezier.h"
+
+const struct bezier_control_point bezier_defaults[4] = {
+ { 0.0, 0.0 },
+ { 0.0, 0.0 },
+ { 1.0, 1.0 },
+ { 1.0, 1.0 },
+};
+
+struct point {
+ int x, y;
+};
+
+/**
+ * de Casteljau's algorithm. See this page here
+ * https://pomax.github.io/bezierinfo/#extended
+ *
+ * To play with bezier curve shapes, I used
+ * http://cubic-bezier.com/
+ */
+static struct point
+decasteljau(const struct point *controls,
+ size_t ncontrols,
+ double t)
+{
+ struct point new_controls[ncontrols];
+
+ if (ncontrols == 1)
+ return controls[0];
+
+ for (int i = 0; i < ncontrols - 1; i++) {
+ new_controls[i].x = (1.0 - t) * controls[i].x + t * controls[i + 1].x;
+ new_controls[i].y = (1.0 - t) * controls[i].y + t * controls[i + 1].y;
+ }
+
+ return decasteljau(new_controls, ncontrols - 1, t);
+}
+
+/**
+ * Given a Bézier curve defined by the control points, reduce the curve to
+ * one with ncurve_points.
+ */
+static void
+flatten_curve(const struct point *controls,
+ size_t ncontrols,
+ struct point *curve,
+ size_t ncurve_points)
+{
+ ncurve_points--; /* make sure we end up with 100/100 as last point */
+
+ for (int i = 0; i <= ncurve_points; i++) {
+ double t = 1.0 * i/ncurve_points;
+ struct point p;
+
+ p = decasteljau(controls, ncontrols, t);
+ curve[i] = p;
+ }
+}
+
+/**
+ * Calculate line through a and b, set curve[x] for each x between
+ * [a.x, b.x].
+ *
+ * Note: pcurve must be at least b.x size.
+ */
+static void
+line_between(struct point a, struct point b,
+ struct point *curve, size_t curve_sz)
+{
+ double slope;
+ double offset;
+
+ assert(b.x < curve_sz);
+
+ if (a.x == b.x) {
+ curve[a.x].x = a.x;
+ curve[a.x].y = a.y;
+ return;
+ }
+
+ slope = (double)(b.y - a.y)/(b.x - a.x);
+ offset = a.y - slope * a.x;
+
+ for (int x = a.x; x <= b.x; x++) {
+ struct point p;
+ p.x = x;
+ p.y = slope * x + offset;
+ curve[x] = p;
+ }
+}
+
+bool
+cubic_bezier(const struct bezier_control_point controls[4],
+ int *bezier_out,
+ size_t bezier_sz)
+{
+ const int nsegments = 50;
+ const int range = bezier_sz - 1;
+ struct point curve[nsegments];
+ struct point bezier[bezier_sz];
+ struct point zero = { 0, 0 },
+ max = { range, range};
+
+ /* Scale control points into the [0, bezier_sz) range */
+ struct point ctrls[4];
+
+ for (int i = 0; i < 4; i++) {
+ if (controls[i].x < 0.0 || controls[i].x > 1.0 ||
+ controls[i].y < 0.0 || controls[i].y > 1.0)
+ return false;
+
+ ctrls[i].x = controls[i].x * range;
+ ctrls[i].y = controls[i].y * range;
+ }
+
+ for (int i = 0; i < 3; i++) {
+ if (ctrls[i].x > ctrls[i+1].x)
+ return false;
+ }
+
+ /* Reduce curve to nsegments, because this isn't a drawing program */
+ flatten_curve(ctrls, 4, curve, nsegments);
+
+ /* we now have nsegments points in curve that represent the bezier
+ curve (already in the [0, bezier_sz) range). Run through the
+ points and draw a straight line between each point and voila, we
+ have our curve.
+
+ If the first control points (x0/y0) is not at x == 0 or the last
+ control point (x3/y3) is not at the max value, draw a line
+ between from 0/0 to x0/y0 and from x3/y3 to xmax/y3.
+ */
+
+ line_between(zero, curve[0], bezier, bezier_sz);
+
+ for (int i = 0; i < nsegments - 1; i++)
+ line_between(curve[i], curve[i+1], bezier, bezier_sz);
+
+ if (curve[nsegments - 1].x < max.x)
+ line_between(curve[nsegments - 1], max, bezier, bezier_sz);
+
+ for (int i = 0; i < bezier_sz; i++)
+ bezier_out[i] = bezier[i].y;
+
+ return true;
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xf86-input-libinput-0.23.0/src/bezier.h new/xf86-input-libinput-0.24.0/src/bezier.h
--- old/xf86-input-libinput-0.23.0/src/bezier.h 1970-01-01 01:00:00.000000000 +0100
+++ new/xf86-input-libinput-0.24.0/src/bezier.h 2017-02-09 07:17:00.000000000 +0100
@@ -0,0 +1,69 @@
+/*
+ * Copyright © 2016 Red Hat, Inc.
+ *
+ * Permission to use, copy, modify, distribute, and sell this software
+ * and its documentation for any purpose is hereby granted without
+ * fee, provided that the above copyright notice appear in all copies
+ * and that both that copyright notice and this permission notice
+ * appear in supporting documentation, and that the name of Red Hat
+ * not be used in advertising or publicity pertaining to distribution
+ * of the software without specific, written prior permission. Red
+ * Hat makes no representations about the suitability of this software
+ * for any purpose. It is provided "as is" without express or implied
+ * warranty.
+ *
+ * THE AUTHORS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+ * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN
+ * NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+ * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
+ * OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
+ * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
+ * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#ifndef BEZIER_H
+#define BEZIER_H
+
+#include <stdlib.h>
+#include <stdbool.h>
+
+struct bezier_control_point {
+ double x, y;
+};
+
+extern const struct bezier_control_point bezier_defaults[4];
+
+/**
+ * Given four control points in the range [(0.0/0.0), (1.0/1.0)]
+ * construct a Bézier curve.
+ *
+ * ^
+ *1.0 | c2 ______ c3
+ * | _/
+ * | /
+ * |c1 /
+ * | /
+ * | /
+ * |/_________________>
+ * c0 1.0
+ *
+ * This function requires that c[i].x <= c[i+1].x
+ *
+ * The curve is mapped into a canvas size [0, bezier_sz)². For each x
+ * coordiante in [0, bezier_sz), the matching y coordinate is thus
+ * bezier[x].
+ *
+ * In other words, if you have a range [0,2048) input possible values,
+ * the output is a list of 2048 points in a [0, 2048) range.
+ *
+ * @return true on success, false otherwise
+ */
+bool
+cubic_bezier(const struct bezier_control_point controls[4],
+ int *bezier,
+ size_t bezier_sz);
+#endif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xf86-input-libinput-0.23.0/src/xf86libinput.c new/xf86-input-libinput-0.24.0/src/xf86libinput.c
--- old/xf86-input-libinput-0.23.0/src/xf86libinput.c 2016-12-05 05:26:14.000000000 +0100
+++ new/xf86-input-libinput-0.24.0/src/xf86libinput.c 2017-02-09 07:17:00.000000000 +0100
@@ -42,6 +42,7 @@
#include <X11/Xatom.h>
+#include "bezier.h"
#include "draglock.h"
#include "libinput-properties.h"
@@ -126,6 +127,9 @@
struct {
int vdist;
int hdist;
+
+ double vdist_fraction;
+ double hdist_fraction;
} scroll;
struct {
@@ -162,6 +166,10 @@
BOOL horiz_scrolling_enabled;
float rotation_angle;
+ struct bezier_control_point pressurecurve[4];
+ struct ratio {
+ int x, y;
+ } area;
} options;
struct draglock draglock;
@@ -172,6 +180,17 @@
struct libinput_tablet_tool *tablet_tool;
bool allow_mode_group_updates;
+
+ /* Pre-calculated pressure curve.
+ In the 0...TABLET_AXIS_MAX range */
+ struct {
+ int *values;
+ size_t sz;
+ } pressurecurve;
+
+ struct scale_factor {
+ double x, y;
+ } area_scale_factor;
};
enum event_handling {
@@ -382,6 +401,59 @@
return shared_device->enabled_count > 0;
}
+static inline bool
+xf86libinput_set_pressurecurve(struct xf86libinput *driver_data,
+ const struct bezier_control_point controls[4])
+{
+ if (memcmp(controls, bezier_defaults, sizeof(bezier_defaults)) == 0) {
+ free(driver_data->pressurecurve.values);
+ driver_data->pressurecurve.values = NULL;
+ return true;
+ }
+
+ if (!driver_data->pressurecurve.values) {
+ int *vals = calloc(TABLET_PRESSURE_AXIS_MAX + 1, sizeof(int));
+ if (!vals)
+ return false;
+
+ driver_data->pressurecurve.values = vals;
+ driver_data->pressurecurve.sz = TABLET_PRESSURE_AXIS_MAX + 1;
+ }
+
+ return cubic_bezier(controls,
+ driver_data->pressurecurve.values,
+ driver_data->pressurecurve.sz);
+}
+
+static inline void
+xf86libinput_set_area_ratio(struct xf86libinput *driver_data,
+ const struct ratio *ratio)
+{
+ double f;
+ double w, h;
+
+ if (libinput_device_get_size(driver_data->shared_device->device, &w, &h) != 0)
+ return;
+
+ driver_data->options.area = *ratio;
+
+ if (ratio->y == 0) {
+ driver_data->area_scale_factor.x = 1.0;
+ driver_data->area_scale_factor.y = 1.0;
+ return;
+ }
+
+ f = 1.0 * (ratio->x * h)/(ratio->y * w);
+
+ if (f <= 1.0) {
+ driver_data->area_scale_factor.x = 1.0/f;
+ driver_data->area_scale_factor.y = 1.0;
+ } else {
+ driver_data->area_scale_factor.x = 1.0;
+ driver_data->area_scale_factor.y = f;
+ }
+}
+
static int
LibinputSetProperty(DeviceIntPtr dev, Atom atom, XIPropertyValuePtr val,
BOOL checkonly);
@@ -785,6 +857,9 @@
struct xf86libinput *driver_data = pInfo->private;
struct libinput_device *ldevice = driver_data->shared_device->device;
+ if (!device->enabled)
+ return;
+
while (bits[i].xbit) {
if (ctrl->leds & bits[i].xbit)
leds |= bits[i].code;
@@ -1320,6 +1395,92 @@
xf86PostKeyboardEvent(dev, key, is_press);
}
+/*
+ * The scroll fraction is the value we divide the scroll dist with to
+ * accommodate for wheels with a small click angle. On these devices,
+ * multiple clicks of small angle accumulate to the XI 2.1 scroll distance.
+ * This gives us smooth scrolling on those wheels for small movements, the
+ * legacy button events are generated whenever the full distance is reached.
+ * e.g. a 2 degree click angle requires 8 clicks before a legacy event is
+ * sent, but each of those clicks will send XI2.1 smooth scroll data for
+ * compatible clients.
+ */
+static inline double
+get_scroll_fraction(struct xf86libinput *driver_data,
+ struct libinput_event_pointer *event,
+ enum libinput_pointer_axis axis)
+{
+ double *fraction;
+ double f;
+ double angle;
+ int discrete;
+
+ switch (axis) {
+ case LIBINPUT_POINTER_AXIS_SCROLL_HORIZONTAL:
+ fraction = &driver_data->scroll.hdist_fraction;
+ break;
+ case LIBINPUT_POINTER_AXIS_SCROLL_VERTICAL:
+ fraction = &driver_data->scroll.vdist_fraction;
+ break;
+ default:
+ return 0.0;
+ }
+
+ if (*fraction != 0.0)
+ return *fraction;
+
+ /* Calculate the angle per single scroll event */
+ angle = libinput_event_pointer_get_axis_value(event, axis);
+ discrete = libinput_event_pointer_get_axis_value_discrete(event, axis);
+ angle /= discrete;
+
+ /* We only do magic for click angles smaller than 10 degrees */
+ if (angle >= 10) {
+ *fraction = 1.0;
+ return 1.0;
+ }
+
+ /* Figure out something that gets close to 15 degrees (the general
+ * wheel default) with a number of clicks. This formula gives us
+ * between 12 and and 20 degrees for the range of 1-10. See
+ * https://bugs.freedesktop.org/attachment.cgi?id=128256 for a
+ * graph.
+ */
+ f = round(15.0/angle);
+
+ *fraction = f;
+
+ return f;
+}
+
+static inline bool
+calculate_axis_value(struct xf86libinput *driver_data,
+ enum libinput_pointer_axis axis,
+ struct libinput_event_pointer *event,
+ double *value_out)
+{
+ enum libinput_pointer_axis_source source;
+ double value;
+
+ if (!libinput_event_pointer_has_axis(event, axis))
+ return false;
+
+ source = libinput_event_pointer_get_axis_source(event);
+ if (source == LIBINPUT_POINTER_AXIS_SOURCE_WHEEL) {
+ double scroll_fraction;
+
+ value = libinput_event_pointer_get_axis_value_discrete(event, axis);
+ scroll_fraction = get_scroll_fraction(driver_data, event, axis);
+ value *= driver_data->scroll.vdist/scroll_fraction;
+ } else {
+ value = libinput_event_pointer_get_axis_value(event, axis);
+ }
+
+ *value_out = value;
+
+ return true;
+}
+
static void
xf86libinput_handle_axis(InputInfoPtr pInfo, struct libinput_event_pointer *event)
{
@@ -1327,7 +1488,6 @@
struct xf86libinput *driver_data = pInfo->private;
ValuatorMask *mask = driver_data->valuators;
double value;
- enum libinput_pointer_axis axis;
enum libinput_pointer_axis_source source;
if ((driver_data->capabilities & CAP_POINTER) == 0)
@@ -1345,30 +1505,20 @@
return;
}
- axis = LIBINPUT_POINTER_AXIS_SCROLL_VERTICAL;
- if (libinput_event_pointer_has_axis(event, axis)) {
- if (source == LIBINPUT_POINTER_AXIS_SOURCE_WHEEL) {
- value = libinput_event_pointer_get_axis_value_discrete(event, axis);
- value *= driver_data->scroll.vdist;
- } else {
- value = libinput_event_pointer_get_axis_value(event, axis);
- }
+ if (calculate_axis_value(driver_data,
+ LIBINPUT_POINTER_AXIS_SCROLL_VERTICAL,
+ event,
+ &value))
valuator_mask_set_double(mask, 3, value);
- }
if (!driver_data->options.horiz_scrolling_enabled)
goto out;
- axis = LIBINPUT_POINTER_AXIS_SCROLL_HORIZONTAL;
- if (libinput_event_pointer_has_axis(event, axis)) {
- if (source == LIBINPUT_POINTER_AXIS_SOURCE_WHEEL) {
- value = libinput_event_pointer_get_axis_value_discrete(event, axis);
- value *= driver_data->scroll.hdist;
- } else {
- value = libinput_event_pointer_get_axis_value(event, axis);
- }
+ if (calculate_axis_value(driver_data,
+ LIBINPUT_POINTER_AXIS_SCROLL_HORIZONTAL,
+ event,
+ &value))
valuator_mask_set_double(mask, 2, value);
- }
out:
xf86PostMotionEventM(dev, Relative, mask);
@@ -1603,6 +1753,26 @@
return EVENT_HANDLED;
}
+static void
+xf86libinput_apply_area(InputInfoPtr pInfo, double *x, double *y)
+{
+ struct xf86libinput *driver_data = pInfo->private;
+ const struct scale_factor *f = &driver_data->area_scale_factor;
+ double sx, sy;
+
+ if (driver_data->options.area.x == 0)
+ return;
+
+ /* In left-handed mode, libinput already gives us transformed
+ * coordinates, so we can clip the same way. */
+
+ sx = min(*x * f->x, TABLET_AXIS_MAX);
+ sy = min(*y * f->y, TABLET_AXIS_MAX);
+
+ *x = sx;
+ *y = sy;
+}
+
static enum event_handling
xf86libinput_handle_tablet_axis(InputInfoPtr pInfo,
struct libinput_event_tablet_tool *event)
@@ -1612,22 +1782,25 @@
ValuatorMask *mask = driver_data->valuators;
struct libinput_tablet_tool *tool;
double value;
+ double x, y;
if (xf86libinput_tool_queue_event(event))
return EVENT_QUEUED;
- value = libinput_event_tablet_tool_get_x_transformed(event,
- TABLET_AXIS_MAX);
- valuator_mask_set_double(mask, 0, value);
- value = libinput_event_tablet_tool_get_y_transformed(event,
- TABLET_AXIS_MAX);
- valuator_mask_set_double(mask, 1, value);
+ x = libinput_event_tablet_tool_get_x_transformed(event,
+ TABLET_AXIS_MAX);
+ y = libinput_event_tablet_tool_get_y_transformed(event,
+ TABLET_AXIS_MAX);
+ xf86libinput_apply_area(pInfo, &x, &y);
+ valuator_mask_set_double(mask, 0, x);
+ valuator_mask_set_double(mask, 1, y);
tool = libinput_event_tablet_tool_get_tool(event);
if (libinput_tablet_tool_has_pressure(tool)) {
- value = libinput_event_tablet_tool_get_pressure(event);
- value *= TABLET_PRESSURE_AXIS_MAX;
+ value = TABLET_PRESSURE_AXIS_MAX * libinput_event_tablet_tool_get_pressure(event);
+ if (driver_data->pressurecurve.values)
+ value = driver_data->pressurecurve.values[(int)value];
valuator_mask_set_double(mask, 2, value);
}
@@ -2060,13 +2233,7 @@
.close_restricted = close_restricted,
};
-static void
-xf86libinput_log_handler(struct libinput *libinput,
- enum libinput_log_priority priority,
- const char *format,
- va_list args)
- _X_ATTRIBUTE_PRINTF(3, 0);
-
+_X_ATTRIBUTE_PRINTF(3, 0)
static void
xf86libinput_log_handler(struct libinput *libinput,
enum libinput_log_priority priority,
@@ -2609,6 +2776,111 @@
}
static void
+xf86libinput_parse_pressurecurve_option(InputInfoPtr pInfo,
+ struct xf86libinput *driver_data,
+ struct bezier_control_point pcurve[4])
+{
+ struct bezier_control_point controls[4] = {
+ { 0.0, 0.0 },
+ { 0.0, 0.0 },
+ { 1.0, 1.0 },
+ { 1.0, 1.0 },
+ };
+ float points[8];
+ char *str;
+ int rc = 0;
+ int test_bezier[64];
+ struct libinput_tablet_tool *tool = driver_data->tablet_tool;
+
+ if ((driver_data->capabilities & CAP_TABLET_TOOL) == 0)
+ return;
+
+ if (!tool || !libinput_tablet_tool_has_pressure(tool))
+ return;
+
+ str = xf86SetStrOption(pInfo->options,
+ "TabletToolPressureCurve",
+ NULL);
+ if (!str)
+ goto out;
+
+ rc = sscanf(str, "%f/%f %f/%f %f/%f %f/%f",
+ &points[0], &points[1], &points[2], &points[3],
+ &points[4], &points[5], &points[6], &points[7]);
+ if (rc != 8)
+ goto out;
+
+ for (int i = 0; i < 4; i++) {
+ if (points[i] < 0.0 || points[i] > 1.0)
+ goto out;
+ }
+
+ controls[0].x = points[0];
+ controls[0].y = points[1];
+ controls[1].x = points[2];
+ controls[1].y = points[3];
+ controls[2].x = points[4];
+ controls[2].y = points[5];
+ controls[3].x = points[6];
+ controls[3].y = points[7];
+
+ if (!cubic_bezier(controls, test_bezier, ARRAY_SIZE(test_bezier))) {
+ memcpy(controls, bezier_defaults, sizeof(controls));
+ goto out;
+ }
+
+ rc = 0;
+out:
+ if (rc != 0)
+ xf86IDrvMsg(pInfo, X_ERROR, "Invalid pressure curve: %s\n", str);
+ free(str);
+ memcpy(pcurve, controls, sizeof(controls));
+ xf86libinput_set_pressurecurve(driver_data, controls);
+}
+
+static inline bool
+want_area_handling(struct xf86libinput *driver_data)
+{
+ struct libinput_device *device = driver_data->shared_device->device;
+
+ if ((driver_data->capabilities & CAP_TABLET_TOOL) == 0)
+ return false;
+
+ /* If we have a calibration matrix, it's a built-in tablet and we
+ * don't need to set the area ratio on those */
+ return !libinput_device_config_calibration_has_matrix(device);
+}
+
+static void
+xf86libinput_parse_tablet_area_option(InputInfoPtr pInfo,
+ struct xf86libinput *driver_data,
+ struct ratio *area_out)
+{
+ char *str;
+ int rc;
+ struct ratio area;
+
+ if (!want_area_handling(driver_data))
+ return;
+
+ str = xf86SetStrOption(pInfo->options,
+ "TabletToolAreaRatio",
+ NULL);
+ if (!str || strcmp(str, "default") == 0)
+ goto out;
+
+ rc = sscanf(str, "%d:%d", &area.x, &area.y);
+ if (rc != 2 || area.x <= 0 || area.y <= 0) {
+ xf86IDrvMsg(pInfo, X_ERROR, "Invalid tablet tool area ratio: %s\n", str);
+ } else {
+ *area_out = area;
+ }
+
+out:
+ free(str);
+}
+
+static void
xf86libinput_parse_options(InputInfoPtr pInfo,
struct xf86libinput *driver_data,
struct libinput_device *device)
@@ -2641,6 +2913,13 @@
xf86libinput_parse_draglock_option(pInfo, driver_data);
options->horiz_scrolling_enabled = xf86libinput_parse_horiz_scroll_option(pInfo);
}
+
+ xf86libinput_parse_pressurecurve_option(pInfo,
+ driver_data,
+ options->pressurecurve);
+ xf86libinput_parse_tablet_area_option(pInfo,
+ driver_data,
+ &options->area);
}
static const char*
@@ -2928,13 +3207,19 @@
pInfo->private = driver_data;
driver_data->pInfo = pInfo;
- driver_data->scroll.vdist = 15;
- driver_data->scroll.hdist = 15;
driver_data->path = path;
driver_data->shared_device = shared_device;
xorg_list_append(&driver_data->shared_device_link,
&shared_device->device_list);
+ /* Scroll dist value matters for source finger/continuous. For those
+ * devices libinput provides pixel-like data, changing this will
+ * affect touchpad scroll speed. For wheels it doesn't matter as
+ * we're using the discrete value only.
+ */
+ driver_data->scroll.vdist = 15;
+ driver_data->scroll.hdist = 15;
+
if (!is_subdevice) {
if (libinput_device_has_capability(device, LIBINPUT_DEVICE_CAP_POINTER))
driver_data->capabilities |= CAP_POINTER;
@@ -3093,6 +3378,8 @@
/* driver properties */
static Atom prop_draglock;
static Atom prop_horiz_scroll;
+static Atom prop_pressurecurve;
+static Atom prop_area_ratio;
/* general properties */
static Atom prop_float;
@@ -3843,6 +4130,108 @@
return Success;
}
+static inline int
+LibinputSetPropertyPressureCurve(DeviceIntPtr dev,
+ Atom atom,
+ XIPropertyValuePtr val,
+ BOOL checkonly)
+{
+ InputInfoPtr pInfo = dev->public.devicePrivate;
+ struct xf86libinput *driver_data = pInfo->private;
+ float *vals;
+ struct bezier_control_point controls[4];
+
+ if (val->format != 32 || val->size != 8 || val->type != prop_float)
+ return BadMatch;
+
+ vals = val->data;
+ controls[0].x = vals[0];
+ controls[0].y = vals[1];
+ controls[1].x = vals[2];
+ controls[1].y = vals[3];
+ controls[2].x = vals[4];
+ controls[2].y = vals[5];
+ controls[3].x = vals[6];
+ controls[3].y = vals[7];
+
+ if (checkonly) {
+ int test_bezier[64];
+
+ for (int i = 0; i < val->size; i++) {
+ if (vals[i] < 0.0 || vals[i] > 1.0)
+ return BadValue;
+ }
+
+ if (!xf86libinput_check_device (dev, atom))
+ return BadMatch;
+
+ if (!cubic_bezier(controls, test_bezier, ARRAY_SIZE(test_bezier)))
+ return BadValue;
+ } else {
+ xf86libinput_set_pressurecurve(driver_data, controls);
+ memcpy(driver_data->options.pressurecurve, controls,
+ sizeof(controls));
+ }
+
+ return Success;
+}
+
+static inline int
+LibinputSetPropertyAreaRatio(DeviceIntPtr dev,
+ Atom atom,
+ XIPropertyValuePtr val,
+ BOOL checkonly)
+{
+ InputInfoPtr pInfo = dev->public.devicePrivate;
+ struct xf86libinput *driver_data = pInfo->private;
+ uint32_t *vals;
+ struct ratio area = { 0, 0 };
+
+ if (val->format != 32 || val->size != 2 || val->type != XA_CARDINAL)
+ return BadMatch;
+
+ vals = val->data;
+ area.x = vals[0];
+ area.y = vals[1];
+
+ if (checkonly) {
+ if (area.x < 0 || area.y < 0)
+ return BadValue;
+
+ if ((area.x != 0 && area.y == 0) ||
+ (area.x == 0 && area.y != 0))
+ return BadValue;
+
+ if (!xf86libinput_check_device (dev, atom))
+ return BadMatch;
+ } else {
+ struct xf86libinput *other;
+
+ xf86libinput_set_area_ratio(driver_data, &area);
+
+ xorg_list_for_each_entry(other,
+ &driver_data->shared_device->device_list,
+ shared_device_link) {
+ DeviceIntPtr other_device = other->pInfo->dev;
+
+ if (other->options.area.x == area.x &&
+ other->options.area.y == area.y)
+ continue;
+
+ XIChangeDeviceProperty(other_device,
+ atom,
+ val->type,
+ val->format,
+ PropModeReplace,
+ val->size,
+ val->data,
+ TRUE);
+ }
+ }
+
+ return Success;
+}
+
static int
LibinputSetProperty(DeviceIntPtr dev, Atom atom, XIPropertyValuePtr val,
BOOL checkonly)
@@ -3895,6 +4284,10 @@
}
else if (atom == prop_rotation_angle)
rc = LibinputSetPropertyRotationAngle(dev, atom, val, checkonly);
+ else if (atom == prop_pressurecurve)
+ rc = LibinputSetPropertyPressureCurve(dev, atom, val, checkonly);
+ else if (atom == prop_area_ratio)
+ rc = LibinputSetPropertyAreaRatio(dev, atom, val, checkonly);
else if (atom == prop_device || atom == prop_product_id ||
atom == prop_tap_default ||
atom == prop_tap_drag_default ||
@@ -4720,6 +5113,54 @@
}
static void
+LibinputInitPressureCurveProperty(DeviceIntPtr dev,
+ struct xf86libinput *driver_data)
+{
+ const struct bezier_control_point *curve = driver_data->options.pressurecurve;
+ struct libinput_tablet_tool *tool = driver_data->tablet_tool;
+ float data[8];
+
+ if ((driver_data->capabilities & CAP_TABLET_TOOL) == 0)
+ return;
+
+ if (!tool || !libinput_tablet_tool_has_pressure(tool))
+ return;
+
+ data[0] = curve[0].x;
+ data[1] = curve[0].y;
+ data[2] = curve[1].x;
+ data[3] = curve[1].y;
+ data[4] = curve[2].x;
+ data[5] = curve[2].y;
+ data[6] = curve[3].x;
+ data[7] = curve[3].y;
+
+ prop_pressurecurve = LibinputMakeProperty(dev,
+ LIBINPUT_PROP_TABLET_TOOL_PRESSURECURVE,
+ prop_float, 32,
+ 8, data);
+}
+
+static void
+LibinputInitTabletAreaRatioProperty(DeviceIntPtr dev,
+ struct xf86libinput *driver_data)
+{
+ const struct ratio *ratio = &driver_data->options.area;
+ uint32_t data[2];
+
+ if (!want_area_handling(driver_data))
+ return;
+
+ data[0] = ratio->x;
+ data[1] = ratio->y;
+
+ prop_area_ratio = LibinputMakeProperty(dev,
+ LIBINPUT_PROP_TABLET_TOOL_AREA_RATIO,
+ XA_CARDINAL, 32,
+ 2, data);
+}
+
+static void
LibinputInitProperty(DeviceIntPtr dev)
{
InputInfoPtr pInfo = dev->public.devicePrivate;
@@ -4775,4 +5216,6 @@
LibinputInitDragLockProperty(dev, driver_data);
LibinputInitHorizScrollProperty(dev, driver_data);
+ LibinputInitPressureCurveProperty(dev, driver_data);
+ LibinputInitTabletAreaRatioProperty(dev, driver_data);
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xf86-input-libinput-0.23.0/test/Makefile.am new/xf86-input-libinput-0.24.0/test/Makefile.am
--- old/xf86-input-libinput-0.23.0/test/Makefile.am 2016-11-14 04:27:06.000000000 +0100
+++ new/xf86-input-libinput-0.24.0/test/Makefile.am 2017-02-09 07:17:00.000000000 +0100
@@ -3,11 +3,14 @@
-I$(top_srcdir)/include \
-I$(top_srcdir)/src
-tests = test-draglock
+tests = test-draglock test-bezier
noinst_PROGRAMS = $(tests)
test_draglock_SOURCES = test-draglock.c
test_draglock_LDADD = ../src/libdraglock.la
+test_bezier_SOURCES = test-bezier.c
+test_bezier_LDADD = ../src/libbezier.la -lm
+
TESTS = $(tests)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xf86-input-libinput-0.23.0/test/test-bezier.c new/xf86-input-libinput-0.24.0/test/test-bezier.c
--- old/xf86-input-libinput-0.23.0/test/test-bezier.c 1970-01-01 01:00:00.000000000 +0100
+++ new/xf86-input-libinput-0.24.0/test/test-bezier.c 2017-02-09 07:17:00.000000000 +0100
@@ -0,0 +1,199 @@
+/*
+ * Copyright © 2016 Red Hat, Inc.
+ *
+ * Permission to use, copy, modify, distribute, and sell this software
+ * and its documentation for any purpose is hereby granted without
+ * fee, provided that the above copyright notice appear in all copies
+ * and that both that copyright notice and this permission notice
+ * appear in supporting documentation, and that the name of Red Hat
+ * not be used in advertising or publicity pertaining to distribution
+ * of the software without specific, written prior permission. Red
+ * Hat makes no representations about the suitability of this software
+ * for any purpose. It is provided "as is" without express or implied
+ * warranty.
+ *
+ * THE AUTHORS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+ * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN
+ * NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+ * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
+ * OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
+ * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
+ * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+
+#include "bezier.h"
+
+#include <assert.h>
+#include <string.h>
+#include <stdio.h>
+
+static inline void
+print_curve(int *bezier, size_t size)
+{
+ /* look at it with gnuplot, "plot 'output-file.txt'" */
+ for (int i = 0; i < size; i++)
+ printf("%d %d\n", i, bezier[i]);
+}
+
+static void
+test_linear(void)
+{
+ const int size = 2048;
+ int bezier[size];
+
+ struct bezier_control_point controls[] = {
+ { 0.0, 0.0 },
+ { 0.0, 0.0 },
+ { 1.0, 1.0 },
+ { 1.0, 1.0 }
+ };
+
+ cubic_bezier(controls, bezier, size);
+
+ assert(bezier[0] == 0);
+ assert(bezier[size - 1] == size - 1);
+
+ for (int x = 1; x < size; x++)
+ assert(bezier[x] == x);
+}
+
+/* Center point pulled down towards X axis */
+static void
+test_flattened(void)
+{
+ const int size = 2048;
+ int bezier[size];
+
+ struct bezier_control_point controls[] = {
+ { 0.0, 0.0 },
+ { 0.1, 0.0 },
+ { 1.0, 0.9 },
+ { 1.0, 1.0 }
+ };
+
+ cubic_bezier(controls, bezier, size);
+
+ assert(bezier[0] == 0);
+ assert(bezier[size - 1] == size - 1);
+
+ for (int x = 1; x < size - 1; x++) {
+ assert(bezier[x] < x);
+ }
+}
+
+/* Center point pulled up from X axis */
+static void
+test_raised(void)
+{
+ const int size = 2048;
+ int bezier[size];
+
+ struct bezier_control_point controls[] = {
+ { 0.0, 0.0 },
+ { 0.1, 0.4 },
+ { 0.4, 1.0 },
+ { 1.0, 1.0 }
+ };
+
+ cubic_bezier(controls, bezier, size);
+
+ assert(bezier[0] == 0);
+ assert(bezier[size - 1] == size - 1);
+
+ for (int x = 1; x < size; x++)
+ assert(bezier[x] >= x);
+
+ for (int x = 10; x < size - 10; x++)
+ assert(bezier[x] > x);
+}
+
+static void
+test_windy(void)
+{
+ const int size = 2048;
+ int bezier[size];
+
+ struct bezier_control_point controls[] = {
+ { 0.0, 0.0 },
+ { 0.0, 0.3 },
+ { 1.0, 0.7 },
+ { 1.0, 1.0 }
+ };
+
+ cubic_bezier(controls, bezier, size);
+
+ assert(bezier[0] == 0);
+ assert(bezier[size - 1] == size - 1);
+
+ for (int x = 1; x < size/2 - 20; x++)
+ assert(bezier[x] > x);
+
+ for (int x = size/2 + 20; x < size - 1; x++)
+ assert(bezier[x] < x);
+}
+
+static void
+test_nonzero_x_linear(void)
+{
+ const int size = 2048;
+ int bezier[size];
+ int x;
+
+ struct bezier_control_point controls[] = {
+ { 0.2, 0.0 },
+ { 0.2, 0.0 },
+ { 0.8, 1.0 },
+ { 0.8, 1.0 }
+ };
+
+ cubic_bezier(controls, bezier, size);
+
+ x = 0;
+ do {
+ assert(bezier[x] == 0);
+ } while (++x < size * 0.2 - 1);
+
+ do {
+ assert(bezier[x] > bezier[x-1]);
+ } while (++x < size * 0.8 - 1);
+
+ do {
+ assert(bezier[x] == size - 1);
+ } while (++x < size);
+}
+
+static void
+test_nonzero_y_linear(void)
+{
+ const int size = 2048;
+ int bezier[size];
+
+ struct bezier_control_point controls[] = {
+ { 0.0, 0.2 },
+ { 0.0, 0.2 },
+ { 1.0, 0.8 },
+ { 1.0, 0.8 }
+ };
+
+ cubic_bezier(controls, bezier, size);
+
+ assert(bezier[0] == (int)(size * 0.2));
+
+ for (int x = 1; x < size; x++) {
+ assert(bezier[x - 1] <= bezier[x]);
+ assert(bezier[x] >= (int)(size * 0.2));
+ }
+}
+
+int
+main(int argc, char **argv)
+{
+ test_linear();
+ test_flattened();
+ test_raised();
+ test_windy();
+ test_nonzero_x_linear();
+ test_nonzero_y_linear();
+
+ return 0;
+}
1
0