openSUSE Commits
Threads by month
- ----- 2025 -----
- February
- 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
March 2016
- 1 participants
- 1605 discussions

29 Mar '16
Hello community,
here is the log from the commit of package compizconfig-settings-manager for openSUSE:Factory checked in at 2016-03-29 14:50:41
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/compizconfig-settings-manager (Old)
and /work/SRC/openSUSE:Factory/.compizconfig-settings-manager.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "compizconfig-settings-manager"
Changes:
--------
--- /work/SRC/openSUSE:Factory/compizconfig-settings-manager/compizconfig-settings-manager.changes 2016-03-26 17:25:10.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.compizconfig-settings-manager.new/compizconfig-settings-manager.changes 2016-03-29 14:50:42.000000000 +0200
@@ -1,0 +2,7 @@
+Mon Mar 28 19:52:19 UTC 2016 - sor.alexei(a)meowr.ru
+
+- Update to version 0.8.12.3:
+ * Gtk3: Fix icons not loading properly on Gtk 3.16 and older.
+ * Gtk3: Fix high CPU load.
+
+-------------------------------------------------------------------
Old:
----
ccsm-0.8.12.2.tar.xz
New:
----
ccsm-0.8.12.3.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ compizconfig-settings-manager.spec ++++++
--- /var/tmp/diff_new_pack.SijirH/_old 2016-03-29 14:50:43.000000000 +0200
+++ /var/tmp/diff_new_pack.SijirH/_new 2016-03-29 14:50:43.000000000 +0200
@@ -18,7 +18,7 @@
%define _name ccsm
Name: compizconfig-settings-manager
-Version: 0.8.12.2
+Version: 0.8.12.3
Release: 0
Summary: Settings Manager for Compiz (CCSM)
License: GPL-2.0+
++++++ ccsm-0.8.12.2.tar.xz -> ccsm-0.8.12.3.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ccsm-0.8.12.2/NEWS new/ccsm-0.8.12.3/NEWS
--- old/ccsm-0.8.12.2/NEWS 2016-03-24 20:37:19.000000000 +0100
+++ new/ccsm-0.8.12.3/NEWS 2016-03-29 00:31:23.000000000 +0200
@@ -1,3 +1,10 @@
+Release 0.8.12.3 (2016-03-28 Sorokin Alexei <sor.alexei(a)meowr.ru>)
+==================================================================
+COMPIZ-RELOADED
+
+Gtk3: Fix icons not loading properly on Gtk 3.16 and older.
+Gtk3: Fix high CPU load.
+
Release 0.8.12.2 (2016-03-24 Sorokin Alexei <sor.alexei(a)meowr.ru>)
==================================================================
COMPIZ-RELOADED
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ccsm-0.8.12.2/PKG-INFO new/ccsm-0.8.12.3/PKG-INFO
--- old/ccsm-0.8.12.2/PKG-INFO 2016-03-24 20:39:43.000000000 +0100
+++ new/ccsm-0.8.12.3/PKG-INFO 2016-03-29 00:34:04.000000000 +0200
@@ -1,6 +1,6 @@
Metadata-Version: 1.0
Name: ccsm
-Version: 0.8.12.2
+Version: 0.8.12.3
Summary: CompizConfig Settings Manager
Home-page: http://github.com/compiz-reloaded/ccsm
Author: Patrick Niklaus
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ccsm-0.8.12.2/VERSION new/ccsm-0.8.12.3/VERSION
--- old/ccsm-0.8.12.2/VERSION 2016-03-24 20:30:38.000000000 +0100
+++ new/ccsm-0.8.12.3/VERSION 2016-03-29 00:31:29.000000000 +0200
@@ -1 +1 @@
-VERSION=0.8.12.2
+0.8.12.3
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ccsm-0.8.12.2/ccm/Constants.py new/ccsm-0.8.12.3/ccm/Constants.py
--- old/ccsm-0.8.12.2/ccm/Constants.py 2016-03-24 20:39:42.000000000 +0100
+++ new/ccsm-0.8.12.3/ccm/Constants.py 2016-03-29 00:34:03.000000000 +0200
@@ -71,7 +71,7 @@
# Version
#
-Version = "0.8.12.2"
+Version = "0.8.12.3"
# Translation
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ccsm-0.8.12.2/ccm/Widgets.py new/ccsm-0.8.12.3/ccm/Widgets.py
--- old/ccsm-0.8.12.2/ccm/Widgets.py 2016-03-24 20:30:22.000000000 +0100
+++ new/ccsm-0.8.12.3/ccm/Widgets.py 2016-03-29 00:27:39.000000000 +0200
@@ -1745,27 +1745,27 @@
if width > rect.width:
ncols -= 1
- pos = 0
- last_box = None
children = self._box.get_children ()
+ real_len = 0
+ for box in self._boxes:
+ if len(box.get_plugins()) != 0:
+ real_len += 1
+ pos = 0
for box in self._boxes:
- plugins = box.get_plugins ()
- if len (plugins) == 0:
+ if len(box.get_plugins()) == 0:
if box in children:
self._box.remove(box)
else:
- if last_box:
- last_box.show_separator (True)
-
if box not in children:
self._box.pack_start (box, False, False, 0)
self._box.reorder_child (box, pos)
box.rebuild_table (ncols)
- box.show_separator (False)
+ if pos + 1 != real_len:
+ box.show_separator(True)
+ else:
+ box.show_separator(False)
pos += 1
- last_box = box
-
def get_categories (self):
return list(self._categories)
1
0
Hello community,
here is the log from the commit of package socket_wrapper for openSUSE:Factory checked in at 2016-03-29 14:50:37
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/socket_wrapper (Old)
and /work/SRC/openSUSE:Factory/.socket_wrapper.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "socket_wrapper"
Changes:
--------
--- /work/SRC/openSUSE:Factory/socket_wrapper/socket_wrapper.changes 2016-02-17 12:24:53.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.socket_wrapper.new/socket_wrapper.changes 2016-03-29 14:50:40.000000000 +0200
@@ -1,0 +2,9 @@
+Mon Mar 21 18:21:00 UTC 2016 - asn(a)cryptomilk.org
+
+- Update to version 1.1.6
+ * Added a wrapper for write()
+ * Added support for automatic binding of ephemeral ports
+ * Fixed recvmsg() with UDP
+ * Fixed AF_NETLINK sockets
+
+-------------------------------------------------------------------
Old:
----
socket_wrapper-1.1.5.tar.gz
New:
----
socket_wrapper-1.1.6.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ socket_wrapper.spec ++++++
--- /var/tmp/diff_new_pack.5xbYYv/_old 2016-03-29 14:50:41.000000000 +0200
+++ /var/tmp/diff_new_pack.5xbYYv/_new 2016-03-29 14:50:41.000000000 +0200
@@ -24,7 +24,7 @@
############################# NOTE ##################################
Name: socket_wrapper
-Version: 1.1.5
+Version: 1.1.6
Release: 0
Summary: A library passing all socket communications trough Unix sockets
License: BSD-3-Clause
++++++ socket_wrapper-1.1.5.tar.gz -> socket_wrapper-1.1.6.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/socket_wrapper-1.1.5/CMakeLists.txt new/socket_wrapper-1.1.6/CMakeLists.txt
--- old/socket_wrapper-1.1.5/CMakeLists.txt 2015-10-15 09:36:23.000000000 +0200
+++ new/socket_wrapper-1.1.6/CMakeLists.txt 2016-03-15 13:54:36.000000000 +0100
@@ -8,7 +8,7 @@
set(APPLICATION_VERSION_MAJOR "1")
set(APPLICATION_VERSION_MINOR "1")
-set(APPLICATION_VERSION_PATCH "5")
+set(APPLICATION_VERSION_PATCH "6")
set(APPLICATION_VERSION "${APPLICATION_VERSION_MAJOR}.${APPLICATION_VERSION_MINOR}.${APPLICATION_VERSION_PATCH}")
@@ -19,7 +19,7 @@
# Increment AGE. Set REVISION to 0
# If the source code was changed, but there were no interface changes:
# Increment REVISION.
-set(LIBRARY_VERSION "0.1.5")
+set(LIBRARY_VERSION "0.1.6")
set(LIBRARY_SOVERSION "0")
# where to look first for cmake modules, before ${CMAKE_ROOT}/Modules/ is checked
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/socket_wrapper-1.1.5/ChangeLog new/socket_wrapper-1.1.6/ChangeLog
--- old/socket_wrapper-1.1.5/ChangeLog 2015-10-15 10:25:33.000000000 +0200
+++ new/socket_wrapper-1.1.6/ChangeLog 2016-03-15 13:54:36.000000000 +0100
@@ -1,6 +1,12 @@
ChangeLog
==========
+version 1.1.6 (released 2016-03-15)
+ * Added a wrapper for write()
+ * Added support for automatic binding of ephemeral ports
+ * Fixed recvmsg() with UDP
+ * Fixed AF_NETLINK sockets
+
version 1.1.5 (released 2015-10-15)
* Added support for TCP_NODELAY in setsockopt/getsockopt
* Fixed cmsg space calculation
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/socket_wrapper-1.1.5/src/socket_wrapper.c new/socket_wrapper-1.1.6/src/socket_wrapper.c
--- old/socket_wrapper-1.1.5/src/socket_wrapper.c 2015-10-15 09:36:23.000000000 +0200
+++ new/socket_wrapper-1.1.6/src/socket_wrapper.c 2016-03-02 09:29:48.000000000 +0100
@@ -398,6 +398,7 @@
#ifdef HAVE_TIMERFD_CREATE
int (*libc_timerfd_create)(int clockid, int flags);
#endif
+ ssize_t (*libc_write)(int fd, const void *buf, size_t count);
ssize_t (*libc_writev)(int fd, const struct iovec *iov, int iovcnt);
};
@@ -837,6 +838,13 @@
}
#endif
+static ssize_t libc_write(int fd, const void *buf, size_t count)
+{
+ swrap_load_lib_function(SWRAP_LIBC, write);
+
+ return swrap.fns.libc_write(fd, buf, count);
+}
+
static ssize_t libc_writev(int fd, const struct iovec *iov, int iovcnt)
{
swrap_load_lib_function(SWRAP_LIBSOCKET, writev);
@@ -1847,11 +1855,10 @@
alloc_len = SWRAP_PACKET_MIN_ALLOC;
}
- base = (uint8_t *)malloc(alloc_len);
+ base = (uint8_t *)calloc(1, alloc_len);
if (base == NULL) {
return NULL;
}
- memset(base, 0x0, alloc_len);
buf = base;
@@ -2376,6 +2383,9 @@
case AF_INET6:
#endif
break;
+#ifdef AF_NETLINK
+ case AF_NETLINK:
+#endif /* AF_NETLINK */
case AF_UNIX:
return libc_socket(family, type, protocol);
default:
@@ -2427,8 +2437,7 @@
swrap_remove_stale(fd);
}
- si = (struct socket_info *)malloc(sizeof(struct socket_info));
- memset(si, 0, sizeof(struct socket_info));
+ si = (struct socket_info *)calloc(1, sizeof(struct socket_info));
if (si == NULL) {
errno = ENOMEM;
return -1;
@@ -2622,8 +2631,12 @@
return ret;
}
- child_si = (struct socket_info *)malloc(sizeof(struct socket_info));
- memset(child_si, 0, sizeof(struct socket_info));
+ child_si = (struct socket_info *)calloc(1, sizeof(struct socket_info));
+ if (child_si == NULL) {
+ close(fd);
+ errno = ENOMEM;
+ return -1;
+ }
child_fi = (struct socket_info_fd *)calloc(1, sizeof(struct socket_info_fd));
if (child_fi == NULL) {
@@ -3146,6 +3159,14 @@
return libc_listen(s, backlog);
}
+ if (si->bound == 0) {
+ ret = swrap_auto_bind(s, si, si->family);
+ if (ret == -1) {
+ errno = EADDRINUSE;
+ return ret;
+ }
+ }
+
ret = libc_listen(s, backlog);
return ret;
@@ -3850,7 +3871,8 @@
msg->msg_iovlen = i;
if (msg->msg_iovlen == 0) {
*tmp_iov = msg->msg_iov[0];
- tmp_iov->iov_len = MIN(tmp_iov->iov_len, (size_t)mtu);
+ tmp_iov->iov_len = MIN((size_t)tmp_iov->iov_len,
+ (size_t)mtu);
msg->msg_iov = tmp_iov;
msg->msg_iovlen = 1;
}
@@ -4067,7 +4089,8 @@
msg->msg_iovlen = i;
if (msg->msg_iovlen == 0) {
*tmp_iov = msg->msg_iov[0];
- tmp_iov->iov_len = MIN(tmp_iov->iov_len, (size_t)mtu);
+ tmp_iov->iov_len = MIN((size_t)tmp_iov->iov_len,
+ (size_t)mtu);
msg->msg_iov = tmp_iov;
msg->msg_iovlen = 1;
}
@@ -4542,6 +4565,58 @@
}
/****************************************************************************
+ * WRITE
+ ***************************************************************************/
+
+static ssize_t swrap_write(int s, const void *buf, size_t len)
+{
+ struct msghdr msg;
+ struct iovec tmp;
+ struct sockaddr_un un_addr;
+ ssize_t ret;
+ int rc;
+ struct socket_info *si;
+
+ si = find_socket_info(s);
+ if (si == NULL) {
+ return libc_write(s, buf, len);
+ }
+
+ tmp.iov_base = discard_const_p(char, buf);
+ tmp.iov_len = len;
+
+ ZERO_STRUCT(msg);
+ msg.msg_name = NULL; /* optional address */
+ msg.msg_namelen = 0; /* size of address */
+ msg.msg_iov = &tmp; /* scatter/gather array */
+ msg.msg_iovlen = 1; /* # elements in msg_iov */
+#if HAVE_STRUCT_MSGHDR_MSG_CONTROL
+ msg.msg_control = NULL; /* ancillary data, see below */
+ msg.msg_controllen = 0; /* ancillary data buffer len */
+ msg.msg_flags = 0; /* flags on received message */
+#endif
+
+ rc = swrap_sendmsg_before(s, si, &msg, &tmp, &un_addr, NULL, NULL, NULL);
+ if (rc < 0) {
+ return -1;
+ }
+
+ buf = msg.msg_iov[0].iov_base;
+ len = msg.msg_iov[0].iov_len;
+
+ ret = libc_write(s, buf, len);
+
+ swrap_sendmsg_after(s, si, &msg, NULL, ret);
+
+ return ret;
+}
+
+ssize_t write(int s, const void *buf, size_t len)
+{
+ return swrap_write(s, buf, len);
+}
+
+/****************************************************************************
* SEND
***************************************************************************/
@@ -4601,6 +4676,9 @@
struct swrap_address from_addr = {
.sa_socklen = sizeof(struct sockaddr_un),
};
+ struct swrap_address convert_addr = {
+ .sa_socklen = sizeof(struct sockaddr_storage),
+ };
struct socket_info *si;
struct msghdr msg;
struct iovec tmp;
@@ -4659,6 +4737,13 @@
}
#endif
+ /*
+ * We convert the unix address to a IP address so we need a buffer
+ * which can store the address in case of SOCK_DGRAM, see below.
+ */
+ msg.msg_name = &convert_addr.sa;
+ msg.msg_namelen = convert_addr.sa_socklen;
+
rc = swrap_recvmsg_after(s,
si,
&msg,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/socket_wrapper-1.1.5/tests/CMakeLists.txt new/socket_wrapper-1.1.6/tests/CMakeLists.txt
--- old/socket_wrapper-1.1.5/tests/CMakeLists.txt 2015-10-14 11:38:17.000000000 +0200
+++ new/socket_wrapper-1.1.6/tests/CMakeLists.txt 2016-02-25 18:00:59.000000000 +0100
@@ -20,6 +20,7 @@
set(SWRAP_TESTS
test_ioctl
+ test_tcp_listen
test_echo_tcp_socket
test_echo_tcp_connect
test_echo_tcp_bind
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/socket_wrapper-1.1.5/tests/test_echo_tcp_bind.c new/socket_wrapper-1.1.6/tests/test_echo_tcp_bind.c
--- old/socket_wrapper-1.1.5/tests/test_echo_tcp_bind.c 2015-10-14 11:38:17.000000000 +0200
+++ new/socket_wrapper-1.1.6/tests/test_echo_tcp_bind.c 2015-10-19 10:43:01.000000000 +0200
@@ -365,7 +365,7 @@
&addr.sa.in.sin_addr);
assert_int_equal(rc, 1);
- rc = connect(s, &addr.sa.in, addr.sa_socklen);
+ rc = connect(s, &addr.sa.s, addr.sa_socklen);
assert_return_code(rc, errno);
close(s);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/socket_wrapper-1.1.5/tests/test_tcp_listen.c new/socket_wrapper-1.1.6/tests/test_tcp_listen.c
--- old/socket_wrapper-1.1.5/tests/test_tcp_listen.c 1970-01-01 01:00:00.000000000 +0100
+++ new/socket_wrapper-1.1.6/tests/test_tcp_listen.c 2016-02-25 18:00:59.000000000 +0100
@@ -0,0 +1,115 @@
+#include <stdarg.h>
+#include <stddef.h>
+#include <setjmp.h>
+#include <cmocka.h>
+
+#include "config.h"
+#include "torture.h"
+
+#include <errno.h>
+#include <sys/types.h>
+#include <sys/socket.h>
+#include <sys/un.h>
+#include <netinet/in.h>
+#include <arpa/inet.h>
+#include <stdlib.h>
+#include <stdio.h>
+#include <unistd.h>
+#ifdef HAVE_RPC_RPC_H
+#include <rpc/rpc.h>
+#endif
+
+static int setup(void **state)
+{
+ torture_setup_socket_dir(state);
+
+ return 0;
+}
+
+static int teardown(void **state)
+{
+ torture_teardown_socket_dir(state);
+
+ return 0;
+}
+
+static void test_listen_unbound_ipv4(void **state)
+{
+ struct torture_address addr = {
+ .sa_socklen = sizeof(struct sockaddr_storage),
+ };
+ int rc;
+ int s1;
+ int s2;
+
+ (void) state; /* unused */
+
+ s1 = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
+ assert_return_code(s1, errno);
+
+ rc = listen(s1, SOMAXCONN);
+ assert_return_code(rc, errno);
+
+ rc = getsockname(s1, &addr.sa.s, &addr.sa_socklen);
+ assert_return_code(rc, errno);
+ assert_int_equal(addr.sa_socklen, sizeof(struct sockaddr_in));
+ assert_in_range(ntohs(addr.sa.in.sin_port), 1024, 65535);
+
+ s2 = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
+ assert_return_code(s2, errno);
+
+ rc = connect(s2, &addr.sa.s, addr.sa_socklen);
+ assert_return_code(rc, errno);
+
+ close(s1);
+ close(s2);
+}
+
+#ifdef HAVE_IPV6
+static void test_listen_unbound_ipv6(void **state)
+{
+ struct torture_address addr = {
+ .sa_socklen = sizeof(struct sockaddr_storage),
+ };
+ int rc;
+ int s1;
+ int s2;
+
+ (void) state; /* unused */
+
+ s1 = socket(AF_INET6, SOCK_STREAM, IPPROTO_TCP);
+ assert_return_code(s1, errno);
+
+ rc = listen(s1, SOMAXCONN);
+ assert_return_code(rc, errno);
+
+ rc = getsockname(s1, &addr.sa.s, &addr.sa_socklen);
+ assert_return_code(rc, errno);
+ assert_int_equal(addr.sa_socklen, sizeof(struct sockaddr_in6));
+ assert_in_range(ntohs(addr.sa.in6.sin6_port), 1024, 65535);
+
+ s2 = socket(AF_INET6, SOCK_STREAM, IPPROTO_TCP);
+ assert_return_code(s2, errno);
+
+ rc = connect(s2, &addr.sa.s, addr.sa_socklen);
+ assert_return_code(rc, errno);
+
+ close(s1);
+ close(s2);
+}
+#endif /* HAVE_IPV6 */
+
+int main(void) {
+ int rc;
+
+ const struct CMUnitTest tcp_listen_tests[] = {
+ cmocka_unit_test(test_listen_unbound_ipv4),
+#ifdef HAVE_IPV6
+ cmocka_unit_test(test_listen_unbound_ipv6),
+#endif /* HAVE_IPV6 */
+ };
+
+ rc = cmocka_run_group_tests(tcp_listen_tests, setup, teardown);
+
+ return rc;
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/socket_wrapper-1.1.5/tests/torture.c new/socket_wrapper-1.1.6/tests/torture.c
--- old/socket_wrapper-1.1.5/tests/torture.c 2015-09-30 14:31:28.000000000 +0200
+++ new/socket_wrapper-1.1.6/tests/torture.c 2015-10-27 14:58:14.000000000 +0100
@@ -55,7 +55,7 @@
#define TORTURE_ECHO_SRV_IPV6 "fd00::5357:5f0a"
#define TORTURE_ECHO_SRV_PORT 7
-#define TORTURE_SOCKET_DIR "/tmp/test_socket_wrapper_XXXXXX"
+#define TORTURE_SOCKET_DIR "/tmp/w_XXXXXX"
#define TORTURE_ECHO_SRV_PIDFILE "echo_srv.pid"
#define TORTURE_PCAP_FILE "socket_trace.pcap"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/socket_wrapper-1.1.5/tests/valgrind.supp new/socket_wrapper-1.1.6/tests/valgrind.supp
--- old/socket_wrapper-1.1.5/tests/valgrind.supp 1970-01-01 01:00:00.000000000 +0100
+++ new/socket_wrapper-1.1.6/tests/valgrind.supp 2015-10-28 11:03:23.000000000 +0100
@@ -0,0 +1,16 @@
+### GLIBC
+{
+ glibc_dlopen_alloc
+ Memcheck:Leak
+ fun:calloc
+ fun:_dlerror_run
+ fun:dlopen@@GLIBC_2.2.5
+}
+
+{
+ glibc_dlclose_alloc
+ Memcheck:Leak
+ fun:calloc
+ fun:_dlerror_run
+ fun:dlclose
+}
1
0
Hello community,
here is the log from the commit of package libGLw for openSUSE:Factory checked in at 2016-03-29 14:50:34
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/libGLw (Old)
and /work/SRC/openSUSE:Factory/.libGLw.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "libGLw"
Changes:
--------
--- /work/SRC/openSUSE:Factory/libGLw/libGLw.changes 2015-01-30 17:50:43.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.libGLw.new/libGLw.changes 2016-03-29 14:50:36.000000000 +0200
@@ -1,0 +2,14 @@
+Sat Mar 19 20:18:54 UTC 2016 - eich(a)suse.com
+
+- Consolidate building of libGLw for Xt and Motif.
+
+-------------------------------------------------------------------
+Wed Mar 16 18:15:24 UTC 2016 - eich(a)suse.com
+
+- n_Use-newly-introduced-GLAPIVAR-for-variables.patch
+ Use newly introduced GLAPIVAR instead of GLAPI for
+ variable declarations. This adds an 'extern' in cases
+ where GLAPI doesn't have one and avoids a variable
+ declarartion to become a definition (bsc#970725).
+
+-------------------------------------------------------------------
New:
----
n_Use-newly-introduced-GLAPIVAR-for-variables.patch
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ libGLw.spec ++++++
--- /var/tmp/diff_new_pack.aQxIWb/_old 2016-03-29 14:50:37.000000000 +0200
+++ /var/tmp/diff_new_pack.aQxIWb/_new 2016-03-29 14:50:37.000000000 +0200
@@ -1,7 +1,7 @@
#
# spec file for package libGLw
#
-# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2016 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
@@ -16,15 +16,21 @@
#
+%if 0%{?suse_version} > 1310
+%define use_motif 1
+%else
+%define use_motif 0
+%endif
+%define libversion 1
+
Name: libGLw
# Needs to be set in buildservice project, see 'osc meta prjconf X11:XOrg'
# for an example
-%if 0%{?use_motif} > 0
-%define lname libGLwM1
+%if 0%{?use_motif} != 0
+%define lname_m libGLwM%{libversion}
BuildRequires: openmotif-devel
-%else
-%define lname libGLw1
%endif
+%define lname libGLw%{libversion}
BuildRequires: pkgconfig
BuildRequires: pkgconfig(gl)
BuildRequires: pkgconfig(x11)
@@ -40,6 +46,7 @@
Group: Development/Libraries/C and C++
Source: glw-%{version}_%{date}_%{sha1}.tar.bz2
Source1: baselibs.conf
+Patch1: n_Use-newly-introduced-GLAPIVAR-for-variables.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-build
%description
@@ -52,57 +59,69 @@
Brian Paul
%package -n %lname
-Summary: Xt/Motif OpenGL drawing area widget library
+Summary: Xt OpenGL drawing area widget library
Group: System/Libraries
# O/P added in 12.2
-Provides: GLw1 = %version-%release
+Provides: GLw%{libversion} = %version-%release
Provides: MesaGLw = %version-%release
Obsoletes: MesaGLw < %version-%release
-%if 0%{?use_motif} > 0
-Provides: libGLw1 = %version-%release
-Obsoletes: libGLw1 < %version-%release
-%endif
+Conflicts: libGLwM%{libversion}
%description -n %lname
-Xt/Motif OpenGL drawing area widget library shipped by the Mesa Project.
+Xt OpenGL drawing area widget library shipped by the Mesa Project.
%package devel
-%if 0%{?use_motif} > 0
-Requires: libGLwM1 = %version
-%else
-Requires: libGLw1 = %version
-%endif
+Requires: GLw%{libversion} = %version
Requires: pkgconfig(gl)
-Summary: Libraries, includes and more to develop MesaGLw applications
+Summary: Includes and more to develop MesaGLw applications
Group: Development/Libraries/C and C++
-Provides: Mesa-devel:%{_libdir}/libGLw.so
%description devel
-This package contains all necessary include files and libraries needed
+This package contains all necessary include files needed
to develop applications that require these.
+%if 0%{?use_motif} != 0
+%package -n %lname_m
+Summary: Motif OpenGL drawing area widget library
+Group: System/Libraries
+# O/P added in 12.2
+Provides: GLw%{libversion} = %version-%release
+Provides: MesaGLw = %version-%release
+Obsoletes: MesaGLw < %version-%release
+Conflicts: libGLw%{libversion}
+Requires: openmotif
-Authors:
---------
- Brian Paul
+%description -n %lname_m
+Motif OpenGL drawing area widget library shipped by the Mesa Project.
+
+%endif
%prep
%setup -q -n glw-%{version}
+%patch1 -p1
%build
-%if 0%{?use_motif} > 0
-%configure --enable-motif
-%else
-%configure
+%__mkdir build-GLw; cd build-GLw; %{__ln_s} -f ../configure
+%{configure} --srcdir=../
+%__make %{?_smp_mflags} OPT_FLAGS="$RPM_OPT_FLAGS"
+%if 0%{?use_motif} != 0
+%__mkdir ../build-GLwM; cd ../build-GLwM; %{__ln_s} -f ../configure
+%{configure} --srcdir=../ --enable-motif
+%__make %{?_smp_mflags} OPT_FLAGS="$RPM_OPT_FLAGS"
%endif
-make %{?_smp_mflags} OPT_FLAGS="$RPM_OPT_FLAGS"
%install
-mkdir -p $RPM_BUILD_ROOT%{_libdir} \
- $RPM_BUILD_ROOT/usr/include/GL
-cp -a .libs/libGLw.so* $RPM_BUILD_ROOT%{_libdir}
-install -m 644 *.h $RPM_BUILD_ROOT/usr/include/GL
+%if 0%{?use_motif} != 0
+cd build-GLwM
+DESTDIR=$RPM_BUILD_ROOT %__make install
+i=$(echo $RPM_BUILD_ROOT%{_libdir}/libGLw.so.*.*.*); mv $i ${i/libGLw.so/libGLwM.so};
+cd ..
+%endif
+cd build-GLw
+DESTDIR=$RPM_BUILD_ROOT %__make install
+i=$(echo $RPM_BUILD_ROOT%{_libdir}/libGLw.so.*.*.*); mv $i ${i/libGLw.so/libGLwXT.so};
+rm -f $RPM_BUILD_ROOT/%{_libdir}/libGLw.la $RPM_BUILD_ROOT/%{_libdir}/libGLw.a $RPM_BUILD_ROOT/%{_libdir}/libGLw.so.? $RPM_BUILD_ROOT/%{_libdir}/libGLw.so
%post -n %lname -p /sbin/ldconfig
@@ -111,11 +130,33 @@
%files -n %lname
%defattr(-,root,root)
%doc README
-%{_libdir}/libGLw.so.1*
+%{_libdir}/libGLwXT.so.*
%files devel
%defattr(-,root,root)
/usr/include/GL
-%{_libdir}/libGLw.so
+%{_libdir}/pkgconfig/glw.pc
+
+%post devel
+ln -sf $(readlink %{_libdir}/libGLw.so.%{libversion}) %{_libdir}/libGLw.so
+
+%preun devel
+ [ $1 -eq 0 ] && rm -f %{_libdir}/libGLw.so || true
+
+%if 0%{?use_motif} != 0
+
+%post -n %lname_m -p /sbin/ldconfig
+
+%postun -n %lname_m -p /sbin/ldconfig
+
+%files -n %lname_m
+%defattr(-,root,root)
+%doc README
+%{_libdir}/libGLwM.so.1*
+
+%endif
+
+%clean
+rm -rf build-GLwM build-GLw
%changelog
++++++ baselibs.conf ++++++
--- /var/tmp/diff_new_pack.aQxIWb/_old 2016-03-29 14:50:37.000000000 +0200
+++ /var/tmp/diff_new_pack.aQxIWb/_new 2016-03-29 14:50:37.000000000 +0200
@@ -3,6 +3,5 @@
requires -libGLw-<targettype>
requires "libGLw1-<targettype> = <version>"
libGLwM1
-libGLwM-devel
requires -libGLwM-<targettype>
requires "libGLwM1-<targettype> = <version>"
++++++ n_Use-newly-introduced-GLAPIVAR-for-variables.patch ++++++
From: Egbert Eich <eich(a)suse.de>
Date: Fri Mar 11 14:04:00 2016 +0100
Subject: [PATCH]Use newly introduced GLAPIVAR for variables
Patch-mainline: never
Git-commit: 7fe20b98de84fad7330cb509cb50a39a390c7314
References: bsc#
Signed-off-by: Egbert Eich <eich(a)suse.com>
GLAPI doesn't have an 'extern' in some circumstances.
This way, variable declarations become definitions.
Signed-off-by: Egbert Eich <eich(a)suse.de>
---
GLwDrawA.h | 4 ++--
GLwDrawAP.h | 4 ++--
2 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/GLwDrawA.h b/GLwDrawA.h
index b9711c2..db4be24 100644
--- a/GLwDrawA.h
+++ b/GLwDrawA.h
@@ -136,7 +136,7 @@
typedef struct _GLwMDrawingAreaClassRec *GLwMDrawingAreaWidgetClass;
typedef struct _GLwMDrawingAreaRec *GLwMDrawingAreaWidget;
-GLAPI WidgetClass glwMDrawingAreaWidgetClass;
+GLAPIVAR WidgetClass glwMDrawingAreaWidgetClass;
#else
@@ -144,7 +144,7 @@ GLAPI WidgetClass glwMDrawingAreaWidgetClass;
typedef struct _GLwDrawingAreaClassRec *GLwDrawingAreaWidgetClass;
typedef struct _GLwDrawingAreaRec *GLwDrawingAreaWidget;
-GLAPI WidgetClass glwDrawingAreaWidgetClass;
+GLAPIVAR WidgetClass glwDrawingAreaWidgetClass;
#endif
diff --git a/GLwDrawAP.h b/GLwDrawAP.h
index 4ff21b4..6d29849 100644
--- a/GLwDrawAP.h
+++ b/GLwDrawAP.h
@@ -59,7 +59,7 @@ typedef struct _GLwMDrawingAreaClassRec {
} GLwMDrawingAreaClassRec;
-GLAPI GLwMDrawingAreaClassRec glwMDrawingAreaClassRec;
+GLAPIVAR GLwMDrawingAreaClassRec glwMDrawingAreaClassRec;
/* XT */
@@ -70,7 +70,7 @@ typedef struct _GLwDrawingAreaClassRec {
GLwDrawingAreaClassPart glwDrawingArea_class;
} GLwDrawingAreaClassRec;
-GLAPI GLwDrawingAreaClassRec glwDrawingAreaClassRec;
+GLAPIVAR GLwDrawingAreaClassRec glwDrawingAreaClassRec;
#endif
1
0
Hello community,
here is the log from the commit of package xf86-video-amdgpu for openSUSE:Factory checked in at 2016-03-29 14:50:33
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/xf86-video-amdgpu (Old)
and /work/SRC/openSUSE:Factory/.xf86-video-amdgpu.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "xf86-video-amdgpu"
Changes:
--------
--- /work/SRC/openSUSE:Factory/xf86-video-amdgpu/xf86-video-amdgpu.changes 2016-02-24 18:43:00.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.xf86-video-amdgpu.new/xf86-video-amdgpu.changes 2016-03-29 14:50:34.000000000 +0200
@@ -1,0 +2,6 @@
+Tue Mar 22 12:48:37 UTC 2016 - eich(a)suse.com
+
+- Add amdgpu.ids which lists all supported PCI Id for server
+ (boo#972126).
+
+-------------------------------------------------------------------
New:
----
amdgpu.ids
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ xf86-video-amdgpu.spec ++++++
--- /var/tmp/diff_new_pack.duP8Yt/_old 2016-03-29 14:50:35.000000000 +0200
+++ /var/tmp/diff_new_pack.duP8Yt/_new 2016-03-29 14:50:35.000000000 +0200
@@ -16,6 +16,11 @@
#
+#
+%if 0%{?suse_version} >= 1330
+%define pci_ids_dir %{_sysconfdir}/X11/xorg_pci_ids
+%endif
+
Name: xf86-video-amdgpu
Version: 1.0.1
Release: 0
@@ -24,6 +29,7 @@
Group: System/X11/Servers/XF86_4
Url: http://xorg.freedesktop.org/
Source0: %{name}-%{version}.tar.bz2
+Source1: amdgpu.ids
BuildRequires: Mesa-devel
BuildRequires: autoconf >= 2.6.0
BuildRequires: automake
@@ -66,6 +72,10 @@
%make_install
find %{buildroot} -type f -name "*.la" -delete -print
rm -f %{buildroot}%{_datadir}/X11/xorg.conf.d/10-amdgpu.conf
+%if 0%{?pci_ids_dir:1}
+%{__mkdir_p} %{buildroot}%{pci_ids_dir}
+cp %{S:1} %{buildroot}%{pci_ids_dir}/
+%endif
%files
%defattr(-,root,root)
@@ -73,5 +83,8 @@
%dir %{_libdir}/xorg/modules/drivers
%{_libdir}/xorg/modules/drivers/amdgpu_drv.so
%{_mandir}/man4/amdgpu.4%{?ext_man}
+%if 0%{?pci_ids_dir:1}
+%{pci_ids_dir}/amdgpu.ids
+%endif
%changelog
++++++ amdgpu.ids ++++++
# AMDGPU PCI Ids. To enable the amdgpu driver for your device
# find the PCI ID in the list and uncomment the entry (remove the '#').
# If your device is not enabled on the list and you find it to be working,
# please let us know in:
# http://bugzilla.opensuse.org/show_bug.cgi?id=972126
#10026640
#10026641
#10026649
#10026650
#10026651
#10026658
#1002665C
#1002665D
#1002665F
#10029830
#10029831
#10029832
#10029833
#10029834
#10029835
#10029836
#10029837
#10029838
#10029839
#1002983A
#1002983B
#1002983C
#1002983D
#1002983E
#1002983F
#10021304
#10021305
#10021306
#10021307
#10021309
#1002130A
#1002130B
#1002130C
#1002130D
#1002130E
#1002130F
#10021310
#10021311
#10021312
#10021313
#10021315
#10021316
#10021317
#1002131B
#1002131C
#1002131D
#100267A0
#100267A1
#100267A2
#100267A8
#100267A9
#100267AA
#100267B0
#100267B1
#100267B8
#100267B9
#100267BA
#100267BE
#10026900
#10026901
#10026902
#10026903
#10026907
#10026920
#10026921
#10026928
#10026929
#1002692B
#1002692F
#10026930
#10026938
10026939
#10029870
#10029874
#10029875
#10029876
#10029877
#10027300
#100298E4
1
0
Hello community,
here is the log from the commit of package python-jmespath for openSUSE:Factory checked in at 2016-03-29 14:50:32
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-jmespath (Old)
and /work/SRC/openSUSE:Factory/.python-jmespath.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-jmespath"
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-jmespath/python-jmespath.changes 2015-05-28 09:57:57.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.python-jmespath.new/python-jmespath.changes 2016-03-29 14:50:33.000000000 +0200
@@ -1,0 +2,33 @@
+Mon Feb 1 11:24:14 UTC 2016 - toddrme2178(a)gmail.com
+
+- Update to version 0.9.0
+ * Add support for new lines with tokens in an expression
+ * Add support for `JEP 9 <http://jmespath.org/proposals/improved-filters.html>`__,
+ which introduces "and" expressions, "unary" expressions, "not" expressions,
+ and "paren" expressions
+ * Fix issue with hardcoded path in ``jp.py`` executable
+ (`issue 90 <https://github.com/jmespath/jmespath.py/issues/90>`__,
+ `issue 88 <https://github.com/jmespath/jmespath.py/issues/88>`__,
+ `issue 82 <https://github.com/jmespath/jmespath.py/issues/82>`__)
+- Update to version 0.8.0
+ * Improve lexing performance (`issue 84 <https://github.com/jmespath/jmespath.py/pull/84>`__)
+ * Fix parsing error for multiselect lists (`issue 86 <https://github.com/jmespath/jmespath.py/issues/86>`__)
+ * Fix issue with escaping single quotes in literal strings (`issue 85 <https://github.com/jmespath/jmespath.py/issues/85>`__)
+ * Add support for providing your own dict cls to support
+ ordered dictionaries (`issue 94 <https://github.com/jmespath/jmespath.py/pull/94>`__)
+ * Add map() function (`issue 95 <https://github.com/jmespath/jmespath.py/pull/95>`__)
+
+-------------------------------------------------------------------
+Wed Jan 20 19:42:39 UTC 2016 - rjschwei(a)suse.com
+
+- Fix build issues for SLE 11
+ + More test dependencies required
+
+-------------------------------------------------------------------
+Wed Jan 20 19:08:32 UTC 2016 - rjschwei(a)suse.com
+
+- Manage the jp executable with update-alternatives now that
+ python3-jmespath exists
+- spec file improvements
+
+-------------------------------------------------------------------
Old:
----
jmespath-0.7.1.tar.gz
New:
----
jmespath-0.9.0.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-jmespath.spec ++++++
--- /var/tmp/diff_new_pack.p1ENnt/_old 2016-03-29 14:50:34.000000000 +0200
+++ /var/tmp/diff_new_pack.p1ENnt/_new 2016-03-29 14:50:34.000000000 +0200
@@ -1,7 +1,7 @@
#
# spec file for package python-jmespath
#
-# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2016 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
@@ -19,19 +19,27 @@
%define baseName jmespath
Name: python-jmespath
-Version: 0.7.1
+Version: 0.9.0
Release: 0
Summary: Extract elements from JSON document
License: MIT
Group: Development/Languages/Python
Url: https://github.com/boto/jmespath
Source0: https://pypi.python.org/packages/source/j/%{baseName}/%{baseName}-%{version…
-Requires: python
+Requires: python-base
Requires: python-ply >= 3.4
-BuildRequires: python
+Requires(post): update-alternatives
+Requires(postun): update-alternatives
BuildRequires: python-devel
-BuildRequires: python-ply
+BuildRequires: python-ply >= 3.4
BuildRequires: python-setuptools
+# For testing
+BuildRequires: python-nose
+%if 0%{?suse_version} && 0%{?suse_version} <= 1110
+BuildRequires: python-ordereddict
+%endif
+BuildRequires: python-simplejson
+BuildRequires: python-unittest2
BuildRoot: %{_tmppath}/%{name}-%{version}-build
%if 0%{?suse_version} && 0%{?suse_version} <= 1110
%{!?python_sitelib: %global python_sitelib %(python -c "from distutils.sysconfig import get_python_lib; print get_python_lib()")}
@@ -79,17 +87,25 @@
%install
python setup.py install --prefix=%{_prefix} --root=%{buildroot} --install-scripts=%{_bindir}
pushd %{buildroot}/%{_bindir}
-ln -s jp.py jp
+mv jp.py jp-%{py_ver}
popd
+%check
+nosetests tests
+
+%post
+"%_sbindir/update-alternatives" --install %{_bindir}/jp jp %{_bindir}/jp-%{py_ver} 30
+
+%postun
+if [ $1 -eq 0 ] ; then
+ "%_sbindir/update-alternatives" --remove jp %{_bindir}/jp-%{py_ver}
+fi
+
%files
%defattr(-,root,root,-)
%doc LICENSE.txt README.rst
-%dir %{python_sitelib}/jmespath
-%dir %{python_sitelib}/%{baseName}-%{version}-py%{py_ver}.egg-info
-%{_bindir}/jp
-%{_bindir}/jp.py
-%{python_sitelib}/jmespath/*
-%{python_sitelib}/*egg-info/*
+%{_bindir}/jp-%{py_ver}
+%{python_sitelib}/jmespath/
+%{python_sitelib}/%{baseName}-%{version}-py%{py_ver}.egg-info/
%changelog
++++++ jmespath-0.7.1.tar.gz -> jmespath-0.9.0.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/jmespath-0.7.1/PKG-INFO new/jmespath-0.9.0/PKG-INFO
--- old/jmespath-0.7.1/PKG-INFO 2015-04-27 19:29:56.000000000 +0200
+++ new/jmespath-0.9.0/PKG-INFO 2015-10-01 06:12:12.000000000 +0200
@@ -1,6 +1,6 @@
Metadata-Version: 1.1
Name: jmespath
-Version: 0.7.1
+Version: 0.9.0
Summary: JSON Matching Expressions
Home-page: https://github.com/jmespath/jmespath.py
Author: James Saryerwinnie
@@ -77,6 +77,26 @@
search multiple documents. This avoids having to reparse the
JMESPath expression each time you search a new document.
+ Options
+ -------
+
+ You can provide an instance of ``jmespath.Options`` to control how
+ a JMESPath expression is evaluated. The most common scenario for
+ using an ``Options`` instance is if you want to have ordered output
+ of your dict keys. To do this you can use either of these options::
+
+ >>> import jmespath
+ >>> jmespath.search('{a: a, b: b},
+ ... mydata,
+ ... jmespath.Options(dict_cls=collections.OrderedDict))
+
+
+ >>> import jmespath
+ >>> parsed = jmespath.compile('{a: a, b: b}')
+ >>> parsed.search('{a: a, b: b},
+ ... mydata,
+ ... jmespath.Options(dict_cls=collections.OrderedDict))
+
Specification
=============
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/jmespath-0.7.1/README.rst new/jmespath-0.9.0/README.rst
--- old/jmespath-0.7.1/README.rst 2015-04-27 19:23:22.000000000 +0200
+++ new/jmespath-0.9.0/README.rst 2015-09-30 06:37:03.000000000 +0200
@@ -69,6 +69,26 @@
search multiple documents. This avoids having to reparse the
JMESPath expression each time you search a new document.
+Options
+-------
+
+You can provide an instance of ``jmespath.Options`` to control how
+a JMESPath expression is evaluated. The most common scenario for
+using an ``Options`` instance is if you want to have ordered output
+of your dict keys. To do this you can use either of these options::
+
+ >>> import jmespath
+ >>> jmespath.search('{a: a, b: b},
+ ... mydata,
+ ... jmespath.Options(dict_cls=collections.OrderedDict))
+
+
+ >>> import jmespath
+ >>> parsed = jmespath.compile('{a: a, b: b}')
+ >>> parsed.search('{a: a, b: b},
+ ... mydata,
+ ... jmespath.Options(dict_cls=collections.OrderedDict))
+
Specification
=============
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/jmespath-0.7.1/bin/jp.py new/jmespath-0.9.0/bin/jp.py
--- old/jmespath-0.7.1/bin/jp.py 2015-04-27 19:27:03.000000000 +0200
+++ new/jmespath-0.9.0/bin/jp.py 2015-09-23 07:05:13.000000000 +0200
@@ -3,6 +3,7 @@
import sys
import json
import argparse
+from pprint import pformat
import jmespath
from jmespath import exceptions
@@ -22,7 +23,7 @@
if args.ast:
# Only print the AST
expression = jmespath.compile(args.expression)
- sys.stdout.write(str(expression))
+ sys.stdout.write(pformat(expression.parsed))
sys.stdout.write('\n')
return 0
if args.filename:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/jmespath-0.7.1/jmespath/__init__.py new/jmespath-0.9.0/jmespath/__init__.py
--- old/jmespath-0.7.1/jmespath/__init__.py 2015-04-27 19:28:36.000000000 +0200
+++ new/jmespath-0.9.0/jmespath/__init__.py 2015-10-01 06:11:26.000000000 +0200
@@ -1,11 +1,12 @@
from jmespath import parser
+from jmespath.visitor import Options
-__version__ = '0.7.1'
+__version__ = '0.9.0'
def compile(expression):
return parser.Parser().parse(expression)
-def search(expression, data):
- return parser.Parser().parse(expression).search(data)
+def search(expression, data, options=None):
+ return parser.Parser().parse(expression).search(data, options=options)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/jmespath-0.7.1/jmespath/ast.py new/jmespath-0.9.0/jmespath/ast.py
--- old/jmespath-0.7.1/jmespath/ast.py 2015-04-14 01:16:58.000000000 +0200
+++ new/jmespath-0.9.0/jmespath/ast.py 2015-10-01 06:11:19.000000000 +0200
@@ -62,6 +62,14 @@
return {"type": "or_expression", "children": [left, right]}
+def and_expression(left, right):
+ return {"type": "and_expression", "children": [left, right]}
+
+
+def not_expression(expr):
+ return {"type": "not_expression", "children": [expr]}
+
+
def pipe(left, right):
return {'type': 'pipe', 'children': [left, right]}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/jmespath-0.7.1/jmespath/functions.py new/jmespath-0.9.0/jmespath/functions.py
--- old/jmespath-0.7.1/jmespath/functions.py 2015-04-27 19:27:03.000000000 +0200
+++ new/jmespath-0.9.0/jmespath/functions.py 2015-09-30 06:37:03.000000000 +0200
@@ -251,6 +251,13 @@
def _func_join(self, separator, array):
return separator.join(array)
+ @builtin_function({'types': ['expref']}, {'types': ['array']})
+ def _func_map(self, expref, arg):
+ result = []
+ for element in arg:
+ result.append(self.interpreter.visit(expref.expression, element))
+ return result
+
@builtin_function({"types": ['array-number', 'array-string']})
def _func_max(self, arg):
if arg:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/jmespath-0.7.1/jmespath/lexer.py new/jmespath-0.9.0/jmespath/lexer.py
--- old/jmespath-0.7.1/jmespath/lexer.py 2015-04-27 19:23:22.000000000 +0200
+++ new/jmespath-0.9.0/jmespath/lexer.py 2015-10-01 06:11:19.000000000 +0200
@@ -1,4 +1,4 @@
-import re
+import string
import warnings
from json import loads
@@ -6,143 +6,172 @@
class Lexer(object):
- TOKENS = (
- r'(?P<number>-?\d+)|'
- r'(?P<unquoted_identifier>([a-zA-Z_][a-zA-Z_0-9]*))|'
- r'(?P<quoted_identifier>("(?:\\\\|\\"|[^"])*"))|'
- r'(?P<string_literal>(\'(?:\\\\|\\\'|[^\'])*\'))|'
- r'(?P<literal>(`(?:\\\\|\\`|[^`])*`))|'
- r'(?P<filter>\[\?)|'
- r'(?P<or>\|\|)|'
- r'(?P<pipe>\|)|'
- r'(?P<ne>!=)|'
- r'(?P<rbrace>\})|'
- r'(?P<eq>==)|'
- r'(?P<dot>\.)|'
- r'(?P<star>\*)|'
- r'(?P<gte>>=)|'
- r'(?P<lparen>\()|'
- r'(?P<lbrace>\{)|'
- r'(?P<lte><=)|'
- r'(?P<flatten>\[\])|'
- r'(?P<rbracket>\])|'
- r'(?P<lbracket>\[)|'
- r'(?P<rparen>\))|'
- r'(?P<comma>,)|'
- r'(?P<colon>:)|'
- r'(?P<lt><)|'
- r'(?P<expref>&)|'
- r'(?P<gt>>)|'
- r'(?P<current>@)|'
- r'(?P<skip>[ \t]+)'
- )
-
- def __init__(self):
- self.master_regex = re.compile(self.TOKENS)
+ START_IDENTIFIER = set(string.ascii_letters + '_')
+ VALID_IDENTIFIER = set(string.ascii_letters + string.digits + '_')
+ START_NUMBER = set(string.digits + '-')
+ VALID_NUMBER = set(string.digits)
+ WHITESPACE = set(" \t\n\r")
+ SIMPLE_TOKENS = {
+ '.': 'dot',
+ '*': 'star',
+ ']': 'rbracket',
+ ',': 'comma',
+ ':': 'colon',
+ '@': 'current',
+ '(': 'lparen',
+ ')': 'rparen',
+ '{': 'lbrace',
+ '}': 'rbrace',
+ }
def tokenize(self, expression):
+ self._initialize_for_expression(expression)
+ while self._current is not None:
+ if self._current in self.SIMPLE_TOKENS:
+ yield {'type': self.SIMPLE_TOKENS[self._current],
+ 'value': self._current,
+ 'start': self._position, 'end': self._position + 1}
+ self._next()
+ elif self._current in self.START_IDENTIFIER:
+ start = self._position
+ buff = self._current
+ while self._next() in self.VALID_IDENTIFIER:
+ buff += self._current
+ yield {'type': 'unquoted_identifier', 'value': buff,
+ 'start': start, 'end': start + len(buff)}
+ elif self._current in self.WHITESPACE:
+ self._next()
+ elif self._current == '[':
+ start = self._position
+ next_char = self._next()
+ if next_char == ']':
+ self._next()
+ yield {'type': 'flatten', 'value': '[]',
+ 'start': start, 'end': start + 2}
+ elif next_char == '?':
+ self._next()
+ yield {'type': 'filter', 'value': '[?',
+ 'start': start, 'end': start + 2}
+ else:
+ yield {'type': 'lbracket', 'value': '[',
+ 'start': start, 'end': start + 1}
+ elif self._current == "'":
+ yield self._consume_raw_string_literal()
+ elif self._current == '|':
+ yield self._match_or_else('|', 'or', 'pipe')
+ elif self._current == '&':
+ yield self._match_or_else('&', 'and', 'expref')
+ elif self._current == '`':
+ yield self._consume_literal()
+ elif self._current in self.START_NUMBER:
+ start = self._position
+ buff = self._current
+ while self._next() in self.VALID_NUMBER:
+ buff += self._current
+ yield {'type': 'number', 'value': int(buff),
+ 'start': start, 'end': start + len(buff)}
+ elif self._current == '"':
+ yield self._consume_quoted_identifier()
+ elif self._current == '<':
+ yield self._match_or_else('=', 'lte', 'lt')
+ elif self._current == '>':
+ yield self._match_or_else('=', 'gte', 'gt')
+ elif self._current == '!':
+ yield self._match_or_else('=', 'ne', 'not')
+ elif self._current == '=':
+ yield self._match_or_else('=', 'eq', 'unknown')
+ else:
+ raise LexerError(lexer_position=self._position,
+ lexer_value=self._current,
+ message="Unknown token %s" % self._current)
+ yield {'type': 'eof', 'value': '',
+ 'start': self._length, 'end': self._length}
+
+ def _initialize_for_expression(self, expression):
if not expression:
raise EmptyExpressionError()
- previous_column = 0
- for match in self.master_regex.finditer(expression):
- value = match.group()
- start = match.start()
- end = match.end()
- if match.lastgroup == 'skip':
- # Ignore whitespace.
- previous_column = end
- continue
- if start != previous_column:
- bad_value = expression[previous_column:start]
- # Try to give a good error message.
- if bad_value == '"':
- raise LexerError(
- lexer_position=previous_column,
- lexer_value=value,
- message='Starting quote is missing the ending quote',
- expression=expression)
- raise LexerError(lexer_position=previous_column,
- lexer_value=value,
- message='Unknown character',
- expression=expression)
- previous_column = end
- token_type = match.lastgroup
- handler = getattr(self, '_token_%s' % token_type.lower(), None)
- if handler is not None:
- value = handler(value, start, end)
- yield {'type': token_type, 'value': value,
- 'start': start, 'end': end}
- # At the end of the loop make sure we've consumed all the input.
- # If we haven't then we have unidentified characters.
- if end != len(expression):
- msg = "Unknown characters at the end of the expression"
- raise LexerError(lexer_position=end,
- lexer_value='',
- message=msg, expression=expression)
+ self._position = 0
+ self._expression = expression
+ self._chars = list(self._expression)
+ self._current = self._chars[self._position]
+ self._length = len(self._expression)
+
+ def _next(self):
+ if self._position == self._length - 1:
+ self._current = None
else:
- yield {'type': 'eof', 'value': '',
- 'start': len(expression), 'end': len(expression)}
-
- def _token_number(self, value, start, end):
- return int(value)
-
- def _token_quoted_identifier(self, value, start, end):
- try:
- return loads(value)
- except ValueError as e:
- error_message = str(e).split(':')[0]
- raise LexerError(lexer_position=start,
- lexer_value=value,
- message=error_message)
-
- def _token_string_literal(self, value, start, end):
- return value[1:-1]
-
- def _token_literal(self, value, start, end):
- actual_value = value[1:-1]
- actual_value = actual_value.replace('\\`', '`').lstrip()
- # First, if it looks like JSON then we parse it as
- # JSON and any json parsing errors propogate as lexing
- # errors.
- if self._looks_like_json(actual_value):
- try:
- return loads(actual_value)
- except ValueError:
+ self._position += 1
+ self._current = self._chars[self._position]
+ return self._current
+
+ def _consume_until(self, delimiter):
+ # Consume until the delimiter is reached,
+ # allowing for the delimiter to be escaped with "\".
+ start = self._position
+ buff = ''
+ self._next()
+ while self._current != delimiter:
+ if self._current == '\\':
+ buff += '\\'
+ self._next()
+ if self._current is None:
raise LexerError(lexer_position=start,
- lexer_value=value,
- message="Bad token %s" % value)
- else:
- potential_value = '"%s"' % actual_value
+ lexer_value=self._expression,
+ message="Unclosed %s delimiter" % delimiter)
+ buff += self._current
+ self._next()
+ # Skip the closing delimiter.
+ self._next()
+ return buff
+
+ def _consume_literal(self):
+ start = self._position
+ lexeme = self._consume_until('`').replace('\\`', '`')
+ try:
+ # Assume it is valid JSON and attempt to parse.
+ parsed_json = loads(lexeme)
+ except ValueError:
try:
- # There's a shortcut syntax where string literals
- # don't have to be quoted. This is only true if the
- # string doesn't start with chars that could start a valid
- # JSON value.
- value = loads(potential_value)
+ # Invalid JSON values should be converted to quoted
+ # JSON strings during the JEP-12 deprecation period.
+ parsed_json = loads('"%s"' % lexeme.lstrip())
warnings.warn("deprecated string literal syntax",
PendingDeprecationWarning)
- return value
except ValueError:
raise LexerError(lexer_position=start,
- lexer_value=value,
- message="Bad token %s" % value)
+ lexer_value=self._expression,
+ message="Bad token %s" % lexeme)
+ token_len = self._position - start
+ return {'type': 'literal', 'value': parsed_json,
+ 'start': start, 'end': token_len}
+
+ def _consume_quoted_identifier(self):
+ start = self._position
+ lexeme = '"' + self._consume_until('"') + '"'
+ try:
+ token_len = self._position - start
+ return {'type': 'quoted_identifier', 'value': loads(lexeme),
+ 'start': start, 'end': token_len}
+ except ValueError as e:
+ error_message = str(e).split(':')[0]
+ raise LexerError(lexer_position=start,
+ lexer_value=lexeme,
+ message=error_message)
- def _looks_like_json(self, value):
- # Figure out if the string "value" starts with something
- # that looks like json.
- if not value:
- return False
- elif value[0] in ['"', '{', '[']:
- return True
- elif value in ['true', 'false', 'null']:
- return True
- elif value[0] in ['-', '0', '1', '2', '3', '4', '5',
- '6', '7', '8', '9']:
- # Then this is JSON, return True.
- try:
- loads(value)
- return True
- except ValueError:
- return False
- else:
- return False
+ def _consume_raw_string_literal(self):
+ start = self._position
+ lexeme = self._consume_until("'").replace("\\'", "'")
+ token_len = self._position - start
+ return {'type': 'literal', 'value': lexeme,
+ 'start': start, 'end': token_len}
+
+ def _match_or_else(self, expected, match_type, else_type):
+ start = self._position
+ current = self._current
+ next_char = self._next()
+ if next_char == expected:
+ self._next()
+ return {'type': match_type, 'value': current + next_char,
+ 'start': start, 'end': start + 1}
+ return {'type': else_type, 'value': current,
+ 'start': start, 'end': start}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/jmespath-0.7.1/jmespath/parser.py new/jmespath-0.9.0/jmespath/parser.py
--- old/jmespath-0.7.1/jmespath/parser.py 2015-04-27 19:27:03.000000000 +0200
+++ new/jmespath-0.9.0/jmespath/parser.py 2015-10-01 06:11:19.000000000 +0200
@@ -48,21 +48,27 @@
'expref': 0,
'colon': 0,
'pipe': 1,
- 'eq': 2,
- 'gt': 2,
- 'lt': 2,
- 'gte': 2,
- 'lte': 2,
- 'ne': 2,
- 'or': 5,
- 'flatten': 6,
+ 'or': 2,
+ 'and': 3,
+ 'eq': 5,
+ 'gt': 5,
+ 'lt': 5,
+ 'gte': 5,
+ 'lte': 5,
+ 'ne': 5,
+ 'flatten': 9,
+ # Everything above stops a projection.
'star': 20,
'filter': 21,
'dot': 40,
+ 'not': 45,
'lbrace': 50,
'lbracket': 55,
'lparen': 60,
}
+ # The maximum binding power for a token that can stop
+ # a projection.
+ _PROJECTION_STOP = 10
# The _MAX_SIZE most recent expressions are cached in
# _CACHE dict.
_CACHE = {}
@@ -161,12 +167,21 @@
def _token_nud_lbrace(self, token):
return self._parse_multi_select_hash()
+ def _token_nud_lparen(self, token):
+ expression = self._expression()
+ self._match('rparen')
+ return expression
+
def _token_nud_flatten(self, token):
left = ast.flatten(ast.identity())
right = self._parse_projection_rhs(
self.BINDING_POWER['flatten'])
return ast.projection(left, right)
+ def _token_nud_not(self, token):
+ expr = self._expression(self.BINDING_POWER['not'])
+ return ast.not_expression(expr)
+
def _token_nud_lbracket(self, token):
if self._current_token() in ['number', 'colon']:
right = self._parse_index_expression()
@@ -254,15 +269,15 @@
right = self._expression(self.BINDING_POWER['or'])
return ast.or_expression(left, right)
+ def _token_led_and(self, left):
+ right = self._expression(self.BINDING_POWER['and'])
+ return ast.and_expression(left, right)
+
def _token_led_lparen(self, left):
name = left['value']
args = []
while not self._current_token() == 'rparen':
- if self._current_token() == 'current':
- expression = ast.current_node()
- self._advance()
- else:
- expression = self._expression()
+ expression = self._expression()
if self._current_token() == 'comma':
self._match('comma')
args.append(expression)
@@ -338,12 +353,13 @@
def _parse_multi_select_list(self):
expressions = []
- while not self._current_token() == 'rbracket':
+ while True:
expression = self._expression()
expressions.append(expression)
- if self._current_token() == 'comma':
+ if self._current_token() == 'rbracket':
+ break
+ else:
self._match('comma')
- self._assert_not_token('rbracket')
self._match('rbracket')
return ast.multi_select_list(expressions)
@@ -369,7 +385,7 @@
def _parse_projection_rhs(self, binding_power):
# Parse the right hand side of the projection.
- if self.BINDING_POWER[self._current_token()] < 10:
+ if self.BINDING_POWER[self._current_token()] < self._PROJECTION_STOP:
# BP of 10 are all the tokens that stop a projection.
right = ast.identity()
elif self._current_token() == 'lbracket':
@@ -503,8 +519,8 @@
self.expression = expression
self.parsed = parsed
- def search(self, value):
- interpreter = visitor.TreeInterpreter()
+ def search(self, value, options=None):
+ interpreter = visitor.TreeInterpreter(options)
result = interpreter.visit(self.parsed, value)
return result
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/jmespath-0.7.1/jmespath/visitor.py new/jmespath-0.9.0/jmespath/visitor.py
--- old/jmespath-0.7.1/jmespath/visitor.py 2015-04-14 01:16:58.000000000 +0200
+++ new/jmespath-0.9.0/jmespath/visitor.py 2015-10-01 06:11:19.000000000 +0200
@@ -33,6 +33,20 @@
return x is True or x is False
+class Options(object):
+ """Options to control how a JMESPath function is evaluated."""
+ def __init__(self, dict_cls):
+ #: The class to use when creating a dict. The interpreter
+ # may create dictionaries during the evalution of a JMESPath
+ # expression. For example, a multi-select hash will
+ # create a dictionary. By default we use a dict() type.
+ # You can set this value to change what dict type is used.
+ # The most common reason you would change this is if you
+ # want to set a collections.OrderedDict so that you can
+ # have predictible key ordering.
+ self.dict_cls = dict_cls
+
+
class _Expression(object):
def __init__(self, expression):
self.expression = expression
@@ -67,14 +81,21 @@
}
MAP_TYPE = dict
- def __init__(self):
+ def __init__(self, options=None):
super(TreeInterpreter, self).__init__()
+ self._options = options
+ self._dict_cls = self.MAP_TYPE
+ if options is not None and options.dict_cls is not None:
+ self._dict_cls = self._options.dict_cls
self._functions = functions.RuntimeFunctions()
# Note that .interpreter is a property that uses
# a weakref so that the cyclic reference can be
# properly freed.
self._functions.interpreter = self
+ def default_visit(self, node, *args, **kwargs):
+ raise NotImplementedError(node['type'])
+
def visit_subexpression(self, node, value):
result = value
for node in node['children']:
@@ -114,7 +135,7 @@
comparator_node = node['children'][2]
collected = []
for element in base:
- if self.visit(comparator_node, element):
+ if self._is_true(self.visit(comparator_node, element)):
current = self.visit(node['children'][1], element)
if current is not None:
collected.append(current)
@@ -167,7 +188,7 @@
def visit_multi_select_dict(self, node, value):
if value is None:
return None
- collected = self.MAP_TYPE()
+ collected = self._dict_cls()
for child in node['children']:
collected[child['value']] = self.visit(child, value)
return collected
@@ -186,6 +207,20 @@
matched = self.visit(node['children'][1], value)
return matched
+ def visit_and_expression(self, node, value):
+ matched = self.visit(node['children'][0], value)
+ if self._is_false(matched):
+ return matched
+ return self.visit(node['children'][1], value)
+
+ def visit_not_expression(self, node, value):
+ original_result = self.visit(node['children'][0], value)
+ if original_result is 0:
+ # Special case for 0, !0 should be false, not true.
+ # 0 is not a special cased integer in jmespath.
+ return False
+ return not original_result
+
def visit_pipe(self, node, value):
result = value
for node in node['children']:
@@ -223,6 +258,9 @@
return (value == '' or value == [] or value == {} or value is None or
value is False)
+ def _is_true(self, value):
+ return not self._is_false(value)
+
class GraphvizVisitor(Visitor):
def __init__(self):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/jmespath-0.7.1/jmespath.egg-info/PKG-INFO new/jmespath-0.9.0/jmespath.egg-info/PKG-INFO
--- old/jmespath-0.7.1/jmespath.egg-info/PKG-INFO 2015-04-27 19:29:56.000000000 +0200
+++ new/jmespath-0.9.0/jmespath.egg-info/PKG-INFO 2015-10-01 06:12:12.000000000 +0200
@@ -1,6 +1,6 @@
Metadata-Version: 1.1
Name: jmespath
-Version: 0.7.1
+Version: 0.9.0
Summary: JSON Matching Expressions
Home-page: https://github.com/jmespath/jmespath.py
Author: James Saryerwinnie
@@ -77,6 +77,26 @@
search multiple documents. This avoids having to reparse the
JMESPath expression each time you search a new document.
+ Options
+ -------
+
+ You can provide an instance of ``jmespath.Options`` to control how
+ a JMESPath expression is evaluated. The most common scenario for
+ using an ``Options`` instance is if you want to have ordered output
+ of your dict keys. To do this you can use either of these options::
+
+ >>> import jmespath
+ >>> jmespath.search('{a: a, b: b},
+ ... mydata,
+ ... jmespath.Options(dict_cls=collections.OrderedDict))
+
+
+ >>> import jmespath
+ >>> parsed = jmespath.compile('{a: a, b: b}')
+ >>> parsed.search('{a: a, b: b},
+ ... mydata,
+ ... jmespath.Options(dict_cls=collections.OrderedDict))
+
Specification
=============
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/jmespath-0.7.1/jmespath.egg-info/SOURCES.txt new/jmespath-0.9.0/jmespath.egg-info/SOURCES.txt
--- old/jmespath-0.7.1/jmespath.egg-info/SOURCES.txt 2015-04-27 19:29:56.000000000 +0200
+++ new/jmespath-0.9.0/jmespath.egg-info/SOURCES.txt 2015-10-01 06:12:12.000000000 +0200
@@ -15,6 +15,7 @@
jmespath.egg-info/PKG-INFO
jmespath.egg-info/SOURCES.txt
jmespath.egg-info/dependency_links.txt
+jmespath.egg-info/pbr.json
jmespath.egg-info/top_level.txt
tests/__init__.py
tests/test_compliance.py
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/jmespath-0.7.1/jmespath.egg-info/pbr.json new/jmespath-0.9.0/jmespath.egg-info/pbr.json
--- old/jmespath-0.7.1/jmespath.egg-info/pbr.json 1970-01-01 01:00:00.000000000 +0100
+++ new/jmespath-0.9.0/jmespath.egg-info/pbr.json 2015-04-21 08:34:36.000000000 +0200
@@ -0,0 +1 @@
+{"is_release": true, "git_version": "0466cc1"}
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/jmespath-0.7.1/setup.py new/jmespath-0.9.0/setup.py
--- old/jmespath-0.7.1/setup.py 2015-04-27 19:28:36.000000000 +0200
+++ new/jmespath-0.9.0/setup.py 2015-10-01 06:11:26.000000000 +0200
@@ -9,7 +9,7 @@
setup(
name='jmespath',
- version='0.7.1',
+ version='0.9.0',
description='JSON Matching Expressions',
long_description=io.open('README.rst', encoding='utf-8').read(),
author='James Saryerwinnie',
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/jmespath-0.7.1/tests/test_compliance.py new/jmespath-0.9.0/tests/test_compliance.py
--- old/jmespath-0.7.1/tests/test_compliance.py 2015-04-27 19:23:22.000000000 +0200
+++ new/jmespath-0.9.0/tests/test_compliance.py 2015-10-01 06:11:19.000000000 +0200
@@ -6,14 +6,14 @@
from nose.tools import assert_equal
import jmespath
-from jmespath.visitor import TreeInterpreter
+from jmespath.visitor import TreeInterpreter, Options
TEST_DIR = os.path.dirname(os.path.abspath(__file__))
COMPLIANCE_DIR = os.path.join(TEST_DIR, 'compliance')
LEGACY_DIR = os.path.join(TEST_DIR, 'legacy')
NOT_SPECIFIED = object()
-TreeInterpreter.MAP_TYPE = OrderedDict
+OPTIONS = Options(dict_cls=OrderedDict)
def test_compliance():
@@ -65,13 +65,13 @@
raise AssertionError(
'jmespath expression failed to compile: "%s", error: %s"' %
(expression, e))
- actual = parsed.search(given)
+ actual = parsed.search(given, options=OPTIONS)
expected_repr = json.dumps(expected, indent=4)
actual_repr = json.dumps(actual, indent=4)
error_msg = ("\n\n (%s) The expression '%s' was suppose to give:\n%s\n"
"Instead it matched:\n%s\nparsed as:\n%s\ngiven:\n%s" % (
filename, expression, expected_repr,
- actual_repr, parsed,
+ actual_repr, pformat(parsed.parsed),
json.dumps(given, indent=4)))
error_msg = error_msg.replace(r'\n', '\n')
assert_equal(actual, expected, error_msg)
@@ -91,6 +91,6 @@
else:
error_msg = ("\n\n (%s) The expression '%s' was suppose to be a "
"syntax error, but it successfully parsed as:\n\n%s" % (
- filename, expression, parsed))
+ filename, expression, pformat(parsed.parsed)))
error_msg = error_msg.replace(r'\n', '\n')
raise AssertionError(error_msg)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/jmespath-0.7.1/tests/test_parser.py new/jmespath-0.9.0/tests/test_parser.py
--- old/jmespath-0.7.1/tests/test_parser.py 2015-04-27 19:23:22.000000000 +0200
+++ new/jmespath-0.9.0/tests/test_parser.py 2015-10-01 06:11:19.000000000 +0200
@@ -1,9 +1,10 @@
#!/usr/bin/env python
import re
-from tests import unittest
+from tests import unittest, OrderedDict
from jmespath import parser
+from jmespath import visitor
from jmespath import ast
from jmespath import exceptions
@@ -94,6 +95,15 @@
result = parsed.search({'foo': {'bar': {'baz': 'CORRECT'}, 'qux': 'qux'}})
self.assertEqual(result, {"bar": "CORRECT", "qux": "qux"})
+ def test_function_call_with_and_statement(self):
+ self.assert_parsed_ast(
+ 'f(@ && @)',
+ {'children': [{'children': [{'children': [], 'type': 'current'},
+ {'children': [], 'type': 'current'}],
+ 'type': 'and_expression'}],
+ 'type': 'function_expression',
+ 'value': 'f'})
+
class TestErrorMessages(unittest.TestCase):
@@ -144,18 +154,12 @@
def test_bad_lexer_values(self):
error_message = (
'Bad jmespath expression: '
- 'Starting quote is missing the ending quote:\n'
+ 'Unclosed " delimiter:\n'
'foo."bar\n'
' ^')
self.assert_error_message('foo."bar', error_message,
exception=exceptions.LexerError)
- def test_bad_lexer_literal_value_with_json_object(self):
- error_message = ('Bad jmespath expression: '
- 'Bad token `{{}`:\n`{{}`\n^')
- self.assert_error_message('`{{}`', error_message,
- exception=exceptions.LexerError)
-
def test_bad_unicode_string(self):
# This error message is straight from the JSON parser
# and pypy has a slightly different error message,
@@ -326,6 +330,18 @@
self.assertEqual(parsed.expression, 'foo.bar')
+class TestParsedResultAddsOptions(unittest.TestCase):
+ def test_can_have_ordered_dict(self):
+ p = parser.Parser()
+ parsed = p.parse('{a: a, b: b, c: c}')
+ options = visitor.Options(dict_cls=OrderedDict)
+ result = parsed.search(
+ {"c": "c", "b": "b", "a": "a"}, options=options)
+ # The order should be 'a', 'b' because we're using an
+ # OrderedDict
+ self.assertEqual(list(result), ['a', 'b', 'c'])
+
+
class TestRenderGraphvizFile(unittest.TestCase):
def test_dot_file_rendered(self):
p = parser.Parser()
1
0
Hello community,
here is the log from the commit of package gcr for openSUSE:Factory checked in at 2016-03-29 14:50:24
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/gcr (Old)
and /work/SRC/openSUSE:Factory/.gcr.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "gcr"
Changes:
--------
--- /work/SRC/openSUSE:Factory/gcr/gcr.changes 2015-10-06 16:36:38.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.gcr.new/gcr.changes 2016-03-29 14:50:26.000000000 +0200
@@ -1,0 +2,14 @@
+Fri Mar 25 15:10:44 UTC 2016 - zaitor(a)opensuse.org
+
+- Update to version 3.20.0:
+ + Build fixes (bgo#763488, bgo#766301).
+ + Updated translations.
+
+-------------------------------------------------------------------
+Tue Jan 19 13:07:06 UTC 2016 - dimstar(a)opensuse.org
+
+- Update to version 3.19.4:
+ + Build fixes (bgo#756235, bgo#755873).
+ + Updated translations.
+
+-------------------------------------------------------------------
Old:
----
gcr-3.18.0.tar.xz
New:
----
gcr-3.20.0.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ gcr.spec ++++++
--- /var/tmp/diff_new_pack.fkICfH/_old 2016-03-29 14:50:27.000000000 +0200
+++ /var/tmp/diff_new_pack.fkICfH/_new 2016-03-29 14:50:27.000000000 +0200
@@ -1,7 +1,7 @@
#
# spec file for package gcr
#
-# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2016 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,14 +17,14 @@
Name: gcr
-Version: 3.18.0
+Version: 3.20.0
Release: 0
# FIXME: Verify if the requires in typelib-1_0-Gcr-3 is still correct and required (see bgo#725501).
Summary: Library for Crypto UI related task
License: LGPL-2.1+
Group: System/Libraries
Url: http://www.gnome.org
-Source0: http://download.gnome.org/sources/gcr/3.18/%{name}-%{version}.tar.xz
+Source0: http://download.gnome.org/sources/gcr/3.20/%{name}-%{version}.tar.xz
Source1: baselibs.conf
# For directory ownership
BuildRequires: dbus-1
++++++ gcr-3.18.0.tar.xz -> gcr-3.20.0.tar.xz ++++++
++++ 22961 lines of diff (skipped)
1
0
Hello community,
here is the log from the commit of package seahorse for openSUSE:Factory checked in at 2016-03-29 14:50:16
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/seahorse (Old)
and /work/SRC/openSUSE:Factory/.seahorse.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "seahorse"
Changes:
--------
--- /work/SRC/openSUSE:Factory/seahorse/seahorse.changes 2015-10-06 16:36:43.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.seahorse.new/seahorse.changes 2016-03-29 14:50:17.000000000 +0200
@@ -1,0 +2,14 @@
+Fri Mar 25 15:43:43 UTC 2016 - zaitor(a)opensuse.org
+
+- Update to version 3.20.0:
+ + Update AppData spec file.
+ + Updated translations.
+
+-------------------------------------------------------------------
+Tue Jan 19 13:10:37 UTC 2016 - dimstar(a)opensuse.org
+
+- Update to version 3.19.4:
+ + Build fixes (bgo#758472).
+ + Updated translations.
+
+-------------------------------------------------------------------
Old:
----
seahorse-3.18.0.tar.xz
New:
----
seahorse-3.20.0.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ seahorse.spec ++++++
--- /var/tmp/diff_new_pack.SQLuwL/_old 2016-03-29 14:50:18.000000000 +0200
+++ /var/tmp/diff_new_pack.SQLuwL/_new 2016-03-29 14:50:18.000000000 +0200
@@ -1,7 +1,7 @@
#
# spec file for package seahorse
#
-# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2016 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,13 +17,13 @@
Name: seahorse
-Version: 3.18.0
+Version: 3.20.0
Release: 0
Summary: GNOME interface for gnupg
License: GPL-2.0+
Group: Productivity/Security
Url: http://projects.gnome.org/seahorse/
-Source: http://download.gnome.org/sources/seahorse/3.18/%{name}-%{version}.tar.xz
+Source: http://download.gnome.org/sources/seahorse/3.20/%{name}-%{version}.tar.xz
# PATCH-FIX-UPSTREAM seahorse-allow-deprecated.patch dimstar(a)opensuse.org -- Allow the usage of deprecated GTK+ symbols
Patch0: seahorse-allow-deprecated.patch
BuildRequires: fdupes
++++++ seahorse-3.18.0.tar.xz -> seahorse-3.20.0.tar.xz ++++++
++++ 23511 lines of diff (skipped)
1
0
Hello community,
here is the log from the commit of package gnome-keyring for openSUSE:Factory checked in at 2016-03-29 14:50:09
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/gnome-keyring (Old)
and /work/SRC/openSUSE:Factory/.gnome-keyring.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "gnome-keyring"
Changes:
--------
--- /work/SRC/openSUSE:Factory/gnome-keyring/gnome-keyring.changes 2016-01-23 01:14:30.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.gnome-keyring.new/gnome-keyring.changes 2016-03-29 14:50:10.000000000 +0200
@@ -1,0 +2,24 @@
+Fri Mar 25 13:14:28 UTC 2016 - zaitor(a)opensuse.org
+
+- Update to version 3.20.0:
+ + Updated translations.
+
+-------------------------------------------------------------------
+Wed Feb 17 14:43:23 UTC 2016 - zaitor(a)opensuse.org
+
+- Update to version 3.19.90:
+ + Accept empty passwords for --unlock (bgo#762095).
+ + srcdir != builddir fixes.
+ + Updated translations.
+
+-------------------------------------------------------------------
+Tue Jan 19 12:59:21 UTC 2016 - dimstar(a)opensuse.org
+
+- Update to version 3.19.4:
+ + Fix up startup and initialization (bgo#756324).
+ + Fix DBus "Type" property of org.freedesktop.Secret.Item
+ (bgo#759399).
+ + Build fixes (bgo#753698).
+ + Updated translations.
+
+-------------------------------------------------------------------
Old:
----
gnome-keyring-3.18.3.tar.xz
New:
----
gnome-keyring-3.20.0.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ gnome-keyring.spec ++++++
--- /var/tmp/diff_new_pack.CGjadX/_old 2016-03-29 14:50:11.000000000 +0200
+++ /var/tmp/diff_new_pack.CGjadX/_new 2016-03-29 14:50:11.000000000 +0200
@@ -17,13 +17,13 @@
Name: gnome-keyring
-Version: 3.18.3
+Version: 3.20.0
Release: 0
Url: http://www.gnome.org/
Summary: GNOME Keyring
License: GPL-2.0+ and LGPL-2.1+
Group: System/GUI/GNOME
-Source: http://download.gnome.org/sources/gnome-keyring/3.18/%{name}-%{version}.tar…
+Source: http://download.gnome.org/sources/gnome-keyring/3.20/%{name}-%{version}.tar…
Source99: baselibs.conf
# PATCH-FIX-OPENSUSE gnome-keyring-pam-auth-prompt-password.patch bnc466732 bgo560488 vuntz(a)novell.com -- Make the pam module prompt the password in auth, so we can use pam-config. This is a workaround until bnc#477488 is implemented.
Patch0: gnome-keyring-pam-auth-prompt-password.patch
++++++ gnome-keyring-3.18.3.tar.xz -> gnome-keyring-3.20.0.tar.xz ++++++
++++ 23932 lines of diff (skipped)
1
0
Hello community,
here is the log from the commit of package gtk3 for openSUSE:Factory checked in at 2016-03-29 14:50:00
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/gtk3 (Old)
and /work/SRC/openSUSE:Factory/.gtk3.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "gtk3"
Changes:
--------
--- /work/SRC/openSUSE:Factory/gtk3/gtk3.changes 2016-02-23 16:52:16.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.gtk3.new/gtk3.changes 2016-03-29 14:50:01.000000000 +0200
@@ -1,0 +2,383 @@
+Fri Mar 25 11:34:21 UTC 2016 - zaitor(a)opensuse.org
+
+- Update to version 3.20.1:
+ + Active GtkSwitch widgets now use the :checked state, to match
+ GtkToggleButton.
+ + Bugs fixed: bgo#641354, bgo#763350, bgo#763604, bgo#763659,
+ bgo#763731, bgo#763741, bgo#763758, bgo#763779, bgo#763802,
+ bgo#763804, bgo#763808, bgo#763859, bgo#763900, bgo#764118.
+ + Updated translations.
+
+-------------------------------------------------------------------
+Mon Mar 21 12:56:24 UTC 2016 - dimstar(a)opensuse.org
+
+- Update to version 3.20.0:
+ + Themes:
+ - The HighContrast theme has been brought back up to par with
+ Adwaita.
+ - Adwaita has received detail fixes for many widgets.
+ - Adwaita now transitions to backdrop.
+ + Bugs fixed: bgo#746490, bgo#763609, bgo#763610, bgo#763612,
+ bgo#763613, bgo#763696, bgo#763706, bgo#763707, bgo#763749,
+ bgo#763774, bgo#763775, bgo#763777, bgo#763781, bgo#763796,
+ bgo#763797, bgo#763823, bgo#763835, bgo#763846, bgo#763955.
+ + Updated translations.
+
+-------------------------------------------------------------------
+Tue Mar 15 09:28:35 UTC 2016 - dimstar(a)opensuse.org
+
+- Update to version 3.19.12:
+ + GTK+ now respects default size even for windows that are not
+ resizable.
+ + GtkScale and GtkScrollbar have received multiple fixes for
+ fallout from the gadget port.
+ + GtkStackSwitcher will now switch pages when hovered during
+ drag-and-drop.
+ + Inspector:
+ - The per-object CSS editor has been dropped; the global one is
+ sufficient.
+ - The sidebar has been replaced by a combo box.
+ - Add a Show Layout option to the Visual tab.
+ - CSS node tree and style properties are now on the same page.
+ - The frame clock is shown in the Miscellaneous page.
+ - Isolate the inspector from visual debugging effects.
+ - Numerous smaller UI improvements.
+ + Themes:
+ - Windows theme: handle spin buttons and switches.
+ - Adwaita: Fixes for scales, combo boxes, info bars, action
+ bars, radio and check buttons, side bars, etc.
+ - Adwaita has gained a new style of drop target highlighting.
+ + Wayland:
+ - Synchronize key repeat with server.
+ - Add a bell request to gtk_shell and use it to implement
+ gdk_window_beep.
+ - Add a focus request to gtk_shell and use it to implement
+ gtk_window_present.
+ - Dropping tabs to create new windows is now supported.
+ + Windows:
+ - Use a custom drag-resize implementation.
+ - Use layered windows.
+ - Provide workarea information.
+ + OS X: Native zoom and rotate gestures are now supported.
+ + Bugs fixed: bgo#583780, bgo#699891, bgo#720950, bgo#748872,
+ bgo#756450, bgo#757942, bgo#759899, bgo#760276, bgo#761629,
+ bgo#762397, bgo#762811, bgo#762820, bgo#762891, bgo#762902,
+ bgo#762907, bgo#762945, bgo#762974, bgo#762996, bgo#763001,
+ bgo#763012, bgo#763017, bgo#763023, bgo#763080, bgo#763103,
+ bgo#763216, bgo#763285, bgo#763287, bgo#763298, bgo#763351,
+ bgo#763380, bgo#763387, bgo#763628, bgo#763650.
+ + Updated translations.
+
+-------------------------------------------------------------------
+Wed Mar 2 08:16:56 UTC 2016 - zaitor(a)opensuse.org
+
+- Update to version 3.19.11:
+ + GtkRange, GtkScale and GtkScrollbar have been ported to use
+ gadgets.
+ + Themes: Windows theme improvements.
+ + Inspector:
+ - Show input device information.
+ - Update monitor information when it changes.
+ + Wayland: Implement primary selection (using a private protocol
+ with mutter for now).
+ + Bugs fixed: bgo#756751, bgo#760482, bgo#761767, bgo#762123,
+ bgo#762561, bgo#762593, bgo#762614, bgo#762629, bgo#762677,
+ bgo#762713, bgo#762720, bgo#762755, bgo#762820, bgo#762887,
+ bgo#762891, bgo#761156, bgo#761686, bgo#762468.
+ + Updated translations.
+
+-------------------------------------------------------------------
+Wed Feb 24 15:24:06 UTC 2016 - zaitor(a)opensuse.org
+
+- Update to version 3.19.10:
+ + GTK+ will now list included backends when seeing the
+ environment variable GDK_BACKEND=help.
+ + Themes:
+ - Windows theme improvements.
+ - Adwaita cleanups.
+ + Wayland: Implement startup notification.
+ + Bugs fixed: bgo#309300, bgo#723659, bgo#754743, bgo#756659,
+ bgo#760714, bgo#761431, bgo#761432, bgo#761760, bgo#762258,
+ bgo#762315, bgo#762319, bgo#762392.
+ + Updated translations.
+
+-------------------------------------------------------------------
+Wed Feb 17 09:41:19 UTC 2016 - zaitor(a)opensuse.org
+
+- Update to version 3.19.9:
+ + gtk-builder-tool can now preview .ui files with custom CSS.
+ + gtk3-demo now demonstrates saving window sizes in the
+ application example, and has many more widgets in the foreign
+ drawing example.
+ + CSS changes:
+ - the rem unit is now supported.
+ - calc() expressions are supported, too.
+ + Themes:
+ - Many fixes to Adwaita.
+ - The Windows theme is now included on all platforms.
+ + Windows
+ - The Classic and XP themes have been dropped.
+ - The remaining theme is being fixed to work with CSS nodes.
+ - React to theme changes.
+ + Quartz: Fix image retrieval from the clipboard.
+ + Wayland: Fix a significant buffer leak.
+ + Bugs fixed: bgo#677329, bgo#698652, bgo#754990, bgo#759657,
+ bgo#760996, bgo#761209, bgo#761309, bgo#761312, bgo#761332,
+ bgo#761339, bgo#761363, bgo#761381, bgo#761402, bgo#761428,
+ bgo#761474, bgo#761476, bgo#761484, bgo#761552, bgo#761571,
+ bgo#761686, bgo#761716, bgo#761757, bgo#761775, bgo#761778,
+ bgo#761791, bgo#761792, bgo#761826, bgo#761828, bgo#761829,
+ bgo#761838, bgo#761900, bgo#761903, bgo#761954, bgo#762021,
+ bgo#762032, bgo#762036, bgo#762067, bgo#762080, bgo#753351,
+ bgo#762120, bgo#762165.
+ + Updated translations.
+
+-------------------------------------------------------------------
+Wed Feb 17 03:19:09 UTC 2016 - zaitor(a)opensuse.org
+
+- Update to version 3.19.8:
+ + GtkEntry:
+ - Complete gadget conversion for entries and spin buttons.
+ - Add a visual hint for scrolling ('undershoot').
+ + GtkStack: Turn into a no-window widget.
+ + CSS changes:
+ - Allow loading svg images.
+ - Fix baseline handling.
+ - -gtk-recolor() works properly with hi-dpi now.
+ - image() can be used in CSS now.
+ + Themes: New radio / check implementation.
+ + Tools: gtk-builder-tool can now preview .ui files.
+ + Bugs fixed: bgo#464528, bgo#608865, bgo#688524, bgo#690791,
+ bgo#727294, bgo#754868, bgo#754990, bgo#760522, bgo#760714,
+ bgo#760754, bgo#760881, bgo#760891, bgo#760897, bgo#760933,
+ bgo#760942, bgo#760967, bgo#761005, bgo#761095, bgo#761128,
+ bgo#761254, bgo#761026, bgo#761318.
+ + Updated translations.
+
+-------------------------------------------------------------------
+Wed Feb 17 03:19:08 UTC 2016 - zaitor(a)opensuse.org
+
+- Update to version 3.19.7:
+ + GtkNotebook:
+ - Has been converted to use gadgets.
+ - Style properties have been deprecated.
+ + GtkTextView: Offers (some) control over cursor blinking.
+ + CSS changes:
+ - Fix rendering of asymmetric borders.
+ - Add CSS names to more widgets.
+ - Support recoloring icons with -gtk-recolor.
+ + Themes: Many Adwaita fixes.
+ + GTK+ widget drawing scalability has been improved (for
+ containers with many children, like large list boxes or flow
+ boxes).
+ + Drag-and-Drop has been rearchitected to move the input handling
+ into GDK, where different backends can handle it according to
+ their needs and capabilities. The new, 'managed' DND is
+ currently implemented for X11 and Wayland.
+ + Wayland:
+ - Support kinetic scrolling, using the new events in version 5
+ of the wl_pointer interface.
+ - Suppport DND actions and drag cancellation that were added in
+ version 3 of the wl_data_offer interface.
+ + Bugs fixed: bgo#722727, bgo#722937, bgo#748327, bgo#756729,
+ bgo#757503, bgo#759785, bgo#759898, bgo#760350, bgo#760388,
+ bgo#760416, bgo#760427, bgo#760445, bgo#760509, bgo#760524,
+ bgo#760525, bgo#760528, bgo#760536, bgo#760572, bgo#760596,
+ bgo#760615, bgo#760640, bgo#760663, bgo#760668, bgo#760680,
+ bgo#760748, bgo#760754, bgo#756729, bgo#760370.
+ + Updated translations.
+- Drop gtk3-qemu-usb-tablet-is-no-real-touchscreen.patch: Fixed
+ upstream.
+
+-------------------------------------------------------------------
+Wed Feb 17 03:19:07 UTC 2016 - damjanovic.ivo(a)gmail.com
+
+- Updated to version 3.19.6:
+ + CSS changes:
+ - CSS margins, border and padding are more consistently
++++ 186 more lines (skipped)
++++ between /work/SRC/openSUSE:Factory/gtk3/gtk3.changes
++++ and /work/SRC/openSUSE:Factory/.gtk3.new/gtk3.changes
Old:
----
gtk+-3.18.7.tar.xz
gtk3-revert-kp_decimal_handling.patch
New:
----
gtk+-3.20.1.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ gtk3.spec ++++++
--- /var/tmp/diff_new_pack.jkbuiX/_old 2016-03-29 14:50:03.000000000 +0200
+++ /var/tmp/diff_new_pack.jkbuiX/_new 2016-03-29 14:50:03.000000000 +0200
@@ -29,13 +29,13 @@
Name: gtk3
%define _name gtk+
-Version: 3.18.7
+Version: 3.20.1
Release: 0
Summary: The GTK+ toolkit library (version 3)
License: LGPL-2.1+
Group: System/Libraries
Url: http://www.gtk.org/
-Source: http://download.gnome.org/sources/gtk+/3.18/%{_name}-%{version}.tar.xz
+Source: http://download.gnome.org/sources/gtk+/3.20/%{_name}-%{version}.tar.xz
Source1: README.SUSE
Source2: settings.ini
Source3: macros.gtk3
@@ -47,8 +47,6 @@
## PATCH-DISABLED gtk3-bnc130159-bgo319483-async-font-selection.patch - Upstream bug was closed as obsolete in 2011, lets see if anyone complains.
# PATCH-FIX-UPSTREAM gtk3-bnc130159-bgo319483-async-font-selection.patch bnc130159 bgo319483 federico(a)novell.com - Load fonts asynchronously in GtkFontSelection to make it appear faster for CJK languages
Patch3: gtk3-bnc130159-bgo319483-async-font-selection.patch
-# PATCH-FIX-UPSTREAM gtk3-revert-kp_decimal_handling.patch bgo#756751 fcrozat(a)suse.com -- Revert local-based kp_decimal handling
-Patch4: gtk3-revert-kp_decimal_handling.patch
BuildRequires: cups-devel >= 1.2
BuildRequires: docbook-xsl-stylesheets
BuildRequires: fdupes
@@ -58,16 +56,16 @@
BuildRequires: hicolor-icon-theme
BuildRequires: translation-update-upstream
BuildRequires: xsltproc
-BuildRequires: pkgconfig(atk) >= 2.12.0
+BuildRequires: pkgconfig(atk) >= 2.15.1
BuildRequires: pkgconfig(atk-bridge-2.0)
BuildRequires: pkgconfig(cairo) >= 1.14.0
BuildRequires: pkgconfig(colord)
BuildRequires: pkgconfig(epoxy) >= 1.0
BuildRequires: pkgconfig(fontconfig)
BuildRequires: pkgconfig(gdk-pixbuf-2.0) >= 2.30.0
-BuildRequires: pkgconfig(glib-2.0) >= 2.43.4
+BuildRequires: pkgconfig(glib-2.0) >= 2.45.8
BuildRequires: pkgconfig(gmodule-2.0)
-BuildRequires: pkgconfig(gobject-introspection-1.0) >= 1.32.0
+BuildRequires: pkgconfig(gobject-introspection-1.0) >= 1.39.0
BuildRequires: pkgconfig(json-glib-1.0)
BuildRequires: pkgconfig(pango) >= 1.37.3
BuildRequires: pkgconfig(pangoft2)
@@ -82,9 +80,10 @@
BuildRequires: pkgconfig(xinerama)
BuildRequires: pkgconfig(xrandr)
%if %{build_wayland_backend}
-BuildRequires: pkgconfig(wayland-client) >= 1.5.91
+BuildRequires: pkgconfig(wayland-client) >= 1.9.90
BuildRequires: pkgconfig(wayland-cursor)
BuildRequires: pkgconfig(wayland-egl)
+BuildRequires: pkgconfig(wayland-protocols) >= 1.0
BuildRequires: pkgconfig(xkbcommon)
%endif
BuildRoot: %{_tmppath}/%{name}-%{version}-build
@@ -340,7 +339,6 @@
%patch1 -p0
## PATCH-DISABLED - Upstream bug was closed as obsolete in 2011, as there was a new fontchooser, lets disable the patch and see if anyone complains.
#%%patch3 -p1
-%patch4 -p1
%build
# Needed for patch1
@@ -586,6 +584,7 @@
%{_bindir}/gtk-encode-symbolic-svg
%{_bindir}/gtk-launch
%{_bindir}/gtk-query-immodules-3.0*
+%{_bindir}/gtk-query-settings
%{_bindir}/gtk-update-icon-cache-3.0
%ghost %{_bindir}/gtk-update-icon-cache
%{_datadir}/applications/gtk3-icon-browser.desktop
@@ -595,6 +594,7 @@
%{_mandir}/man1/gtk-encode-symbolic-svg.1%{?ext_man}
%{_mandir}/man1/gtk-launch.1%{?ext_man}
%{_mandir}/man1/gtk-query-immodules-3.0*.1*
+%{_mandir}/man1/gtk-query-settings.1%{?ext_man}
%{_mandir}/man1/gtk-update-icon-cache-3.0.1*
%ghost %{_mandir}/man1/gtk-update-icon-cache.1*
@@ -659,5 +659,9 @@
%{_libdir}/libgdk-3.so
%{_libdir}/libgtk-3.so
%{_sysconfdir}/rpm/macros.gtk3
+%dir %{_datadir}/gettext/
+%dir %{_datadir}/gettext/its/
+%{_datadir}/gettext/its/gtkbuilder.its
+%{_datadir}/gettext/its/gtkbuilder.loc
%changelog
++++++ gtk+-3.18.7.tar.xz -> gtk+-3.20.1.tar.xz ++++++
/work/SRC/openSUSE:Factory/gtk3/gtk+-3.18.7.tar.xz /work/SRC/openSUSE:Factory/.gtk3.new/gtk+-3.20.1.tar.xz differ: char 25, line 1
1
0
Hello community,
here is the log from the commit of package gdk-pixbuf for openSUSE:Factory checked in at 2016-03-29 14:49:50
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/gdk-pixbuf (Old)
and /work/SRC/openSUSE:Factory/.gdk-pixbuf.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "gdk-pixbuf"
Changes:
--------
--- /work/SRC/openSUSE:Factory/gdk-pixbuf/gdk-pixbuf.changes 2015-12-25 13:05:23.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.gdk-pixbuf.new/gdk-pixbuf.changes 2016-03-29 14:49:52.000000000 +0200
@@ -1,0 +2,25 @@
+Fri Mar 25 00:07:03 UTC 2016 - zaitor(a)opensuse.org
+
+- Update to version 2.34.0:
+ + Don't force no static builds on Win32 (bgo#760369).
+ + Updated translations.
+
+-------------------------------------------------------------------
+Tue Dec 22 20:15:18 UTC 2015 - zaitor(a)opensuse.org
+
+- Update to version 2.33.2:
+ + Fix two crashes in the bmp loader (bgo#747605, bgo#758991).
+ + Updated translations.
+
+-------------------------------------------------------------------
+Mon Dec 22 18:01:04 UTC 2015 - zaitor(a)opensuse.org
+
+- Update to version 2.33.1:
+ + Improve various tests.
+ + ico: integer overflow fixes.
+ + tga: rewrite the loader, introducing a buffer queue
+ abstraction.
+ + gif: fix thumbnailing animations.
+ + Updated translations.
+
+-------------------------------------------------------------------
Old:
----
gdk-pixbuf-2.32.3.tar.xz
New:
----
gdk-pixbuf-2.34.0.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ gdk-pixbuf.spec ++++++
--- /var/tmp/diff_new_pack.yiuzFe/_old 2016-03-29 14:49:53.000000000 +0200
+++ /var/tmp/diff_new_pack.yiuzFe/_new 2016-03-29 14:49:53.000000000 +0200
@@ -1,7 +1,7 @@
#
# spec file for package gdk-pixbuf
#
-# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2016 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
@@ -20,13 +20,13 @@
%define gdk_pixbuf_binary_version 2.10.0
Name: gdk-pixbuf
-Version: 2.32.3
+Version: 2.34.0
Release: 0
Summary: An image loading library
License: LGPL-2.1+
Group: System/Libraries
Url: http://www.gnome.org/
-Source: http://download.gnome.org/sources/gdk-pixbuf/2.32/%{name}-%{version}.tar.xz
+Source: http://download.gnome.org/sources/gdk-pixbuf/2.34/%{name}-%{version}.tar.xz
Source1: macros.gdk-pixbuf
Source2: README.SUSE
Source99: baselibs.conf
++++++ gdk-pixbuf-2.32.3.tar.xz -> gdk-pixbuf-2.34.0.tar.xz ++++++
++++ 30225 lines of diff (skipped)
1
0