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
March 2015
- 1 participants
- 2208 discussions
Hello community,
here is the log from the commit of package xen for openSUSE:Factory checked in at 2015-03-30 19:31:25
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/xen (Old)
and /work/SRC/openSUSE:Factory/.xen.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "xen"
Changes:
--------
--- /work/SRC/openSUSE:Factory/xen/xen.changes 2015-03-09 10:00:12.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.xen.new/xen.changes 2015-03-30 19:31:26.000000000 +0200
@@ -1,0 +2,14 @@
+Mon Mar 16 10:14:15 MDT 2015 - carnold(a)suse.com
+
+- Enable spice support in qemu for x86_64
+ 5124efbe-add-qxl-support.patch
+ qemu-xen-enable-spice-support.patch
+
+-------------------------------------------------------------------
+Wed Mar 11 13:15:07 MDT 2015 - carnold(a)suse.com
+
+- bnc#921842 - Xentop doesn't display disk statistics for VMs using
+ qdisks
+ xentop-add-support-for-qdisk.patch
+
+-------------------------------------------------------------------
New:
----
5124efbe-add-qxl-support.patch
qemu-xen-enable-spice-support.patch
xentop-add-support-for-qdisk.patch
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ xen.spec ++++++
--- /var/tmp/diff_new_pack.PCEqP5/_old 2015-03-30 19:31:29.000000000 +0200
+++ /var/tmp/diff_new_pack.PCEqP5/_new 2015-03-30 19:31:29.000000000 +0200
@@ -1,7 +1,7 @@
#
# spec file for package xen
#
-# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2015 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -98,6 +98,13 @@
BuildRequires: libuuid-devel
BuildRequires: libxml2-devel
BuildRequires: libyajl-devel
+%ifarch x86_64
+%if 0%{?suse_version} > 1230
+BuildRequires: libspice-server-devel
+BuildRequires: spice-protocol-devel
+BuildRequires: usbredir-devel
+%endif
+%endif
%if %{?with_qemu_traditional}0
BuildRequires: SDL-devel
BuildRequires: pciutils-devel
@@ -193,6 +200,7 @@
# http://xenbits.xensource.com/ext/xenalyze
Source20000: xenalyze.hg.tar.bz2
# Upstream patches
+Patch1: 5124efbe-add-qxl-support.patch
# Upstream qemu
Patch250: VNC-Support-for-ExtendedKeyEvent-client-message.patch
Patch251: 0001-net-move-the-tap-buffer-into-TAPState.patch
@@ -214,6 +222,7 @@
Patch330: suspend_evtchn_lock.patch
Patch331: xenpaging.doc.patch
Patch332: local_attach_support_for_phy.patch
+Patch333: xentop-add-support-for-qdisk.patch
# Qemu traditional
Patch350: blktap.patch
Patch351: cdrom-removable.patch
@@ -267,6 +276,7 @@
Patch466: aarch64-rename-PSR_MODE_ELxx-to-match-linux-headers.patch
Patch467: libxl.add-option-to-disable-disk-cache-flushes-in-qdisk.patch
Patch470: qemu-xen-upstream-qdisk-cache-unsafe.patch
+Patch471: qemu-xen-enable-spice-support.patch
Patch472: tigervnc-long-press.patch
# Hypervisor and PV driver Patches
Patch501: x86-ioapic-ack-default.patch
@@ -487,6 +497,7 @@
%prep
%setup -q -n %xen_build_dir -a 1 -a 2 -a 3 -a 4 -a 5 -a 57 -a 20000
# Upstream patches
+%patch1 -p1
# Upstream qemu patches
%patch250 -p1
%patch251 -p1
@@ -507,6 +518,7 @@
%patch330 -p1
%patch331 -p1
%patch332 -p1
+%patch333 -p1
# Qemu traditional
%patch350 -p1
%patch351 -p1
@@ -560,6 +572,7 @@
%patch466 -p1
%patch467 -p1
%patch470 -p1
+%patch471 -p1
%patch472 -p1
# Hypervisor and PV driver Patches
%patch501 -p1
@@ -636,6 +649,11 @@
then
: no changes?
fi
+%ifarch x86_64
+%if 0%{?suse_version} > 1230
+export QEMU_XEN_ENABLE_SPICE="--enable-spice --enable-usb-redir"
+%endif
+%endif
configure_flags=
%if %{?with_stubdom}0
configure_flags=--enable-stubdom
++++++ 5124efbe-add-qxl-support.patch ++++++
Usage:
vga="qxl"
Qxl vga support many resolutions that not supported by stdvga,
mainly the 16:9 ones and other high up to 2560x1600.
With QXL you can get improved performance and smooth video also
with high resolutions and high quality.
Require their drivers installed in the domU and spice used
otherwise act as a simple stdvga.
Signed-off-by: Fabio Fantoni <fabio.fantoni@xxxxxxx>
Signed-off-by: Zhou Peng <zpengxen@xxxxxxxxx>
Acked-by: Stefano Stabellini <stefano.stabellini@xxxxxxxxxxxxx>
Acked-by: Ian Jackson <ian.jackson@xxxxxxxxxxxxx>
Acked-by: George Dunlap <george.dunlap@xxxxxxxxxxxxx>
---
Changes in v16:
- refresh
- improved commit description
Changes in v15:
- refresh
- small code improvements in libxl_dm.c
Changes in v14:
- refresh
- update qemu parameters (from -vga to -device)
NOTES:
Works correctly with windows domUs, tested on windows 7 64 bit
with qxl driver from spice guest tools 0.74.
I tested some resolution not supported by stdvga (1366x768, 1600x900
and 1920x1080) with 32 bit color and all works good equal to kvm.
For now not works on linux domUs when xorg have 100% cpu and black
screen with qxl driver installed.
Seems needed other changes/fixes on xen and/or xorg/qxl driver side
before have it full working with linux domUs.
---
docs/man/xl.cfg.pod.5 | 10 +++++++++-
tools/libxl/libxl_create.c | 13 +++++++++++++
tools/libxl/libxl_dm.c | 8 ++++++++
tools/libxl/libxl_types.idl | 1 +
tools/libxl/xl_cmdimpl.c | 2 ++
5 files changed, 33 insertions(+), 1 deletion(-)
Index: xen-4.5.0-testing/docs/man/xl.cfg.pod.5
===================================================================
--- xen-4.5.0-testing.orig/docs/man/xl.cfg.pod.5
+++ xen-4.5.0-testing/docs/man/xl.cfg.pod.5
@@ -1292,6 +1292,9 @@ qemu-xen-traditional device-model, the a
which is sufficient for 1024x768 at 32 bpp. For the upstream qemu-xen
device-model, the default and minimum is 8 MB.
+For B<qxl> vga, the default is both default and minimal 128MB.
+If B<videoram> is set less than 128MB, an error will be triggered.
+
=item B<stdvga=BOOLEAN>
Select a standard VGA card with VBE (VESA BIOS Extensions) as the
@@ -1303,9 +1306,14 @@ This option is deprecated, use vga="stdv
=item B<vga="STRING">
-Selects the emulated video card (none|stdvga|cirrus).
+Selects the emulated video card (none|stdvga|cirrus|qxl).
The default is cirrus.
+In general, QXL should work with the Spice remote display protocol
+for acceleration, and QXL driver is necessary in guest in this case.
+QXL can also work with the VNC protocol, but it will be like a standard
+VGA without acceleration.
+
=item B<vnc=BOOLEAN>
Allow access to the display via the VNC protocol. This enables the
Index: xen-4.5.0-testing/tools/libxl/libxl_create.c
===================================================================
--- xen-4.5.0-testing.orig/tools/libxl/libxl_create.c
+++ xen-4.5.0-testing/tools/libxl/libxl_create.c
@@ -240,6 +240,10 @@ int libxl__domain_build_info_setdefault(
if (b_info->video_memkb == LIBXL_MEMKB_DEFAULT)
b_info->video_memkb = 0;
break;
+ case LIBXL_VGA_INTERFACE_TYPE_QXL:
+ LOG(ERROR,"qemu upstream required for qxl vga");
+ return ERROR_INVAL;
+ break;
case LIBXL_VGA_INTERFACE_TYPE_STD:
if (b_info->video_memkb == LIBXL_MEMKB_DEFAULT)
b_info->video_memkb = 8 * 1024;
@@ -264,6 +268,15 @@ int libxl__domain_build_info_setdefault(
if (b_info->video_memkb == LIBXL_MEMKB_DEFAULT)
b_info->video_memkb = 0;
break;
+ case LIBXL_VGA_INTERFACE_TYPE_QXL:
+ if (b_info->video_memkb == LIBXL_MEMKB_DEFAULT) {
+ b_info->video_memkb = (128 * 1024);
+ } else if (b_info->video_memkb < (128 * 1024)) {
+ LOG(ERROR,
+ "128 Mib videoram is the minimum for qxl default");
+ return ERROR_INVAL;
+ }
+ break;
case LIBXL_VGA_INTERFACE_TYPE_STD:
if (b_info->video_memkb == LIBXL_MEMKB_DEFAULT)
b_info->video_memkb = 16 * 1024;
Index: xen-4.5.0-testing/tools/libxl/libxl_dm.c
===================================================================
--- xen-4.5.0-testing.orig/tools/libxl/libxl_dm.c
+++ xen-4.5.0-testing/tools/libxl/libxl_dm.c
@@ -244,6 +244,8 @@ static char ** libxl__build_device_model
case LIBXL_VGA_INTERFACE_TYPE_NONE:
flexarray_append_pair(dm_args, "-vga", "none");
break;
+ case LIBXL_VGA_INTERFACE_TYPE_QXL:
+ break;
}
if (b_info->u.hvm.boot) {
@@ -590,6 +592,12 @@ static char ** libxl__build_device_model
break;
case LIBXL_VGA_INTERFACE_TYPE_NONE:
break;
+ case LIBXL_VGA_INTERFACE_TYPE_QXL:
+ /* QXL have 2 ram regions, ram and vram */
+ flexarray_append_pair(dm_args, "-device",
+ GCSPRINTF("qxl-vga,vram_size_mb=%"PRIu64",ram_size_mb=%"PRIu64,
+ (b_info->video_memkb/2/1024), (b_info->video_memkb/2/1024) ) );
+ break;
}
if (b_info->u.hvm.boot) {
Index: xen-4.5.0-testing/tools/libxl/libxl_types.idl
===================================================================
--- xen-4.5.0-testing.orig/tools/libxl/libxl_types.idl
+++ xen-4.5.0-testing/tools/libxl/libxl_types.idl
@@ -181,6 +181,7 @@ libxl_vga_interface_type = Enumeration("
(1, "CIRRUS"),
(2, "STD"),
(3, "NONE"),
+ (4, "QXL"),
], init_val = "LIBXL_VGA_INTERFACE_TYPE_CIRRUS")
libxl_vendor_device = Enumeration("vendor_device", [
Index: xen-4.5.0-testing/tools/libxl/xl_cmdimpl.c
===================================================================
--- xen-4.5.0-testing.orig/tools/libxl/xl_cmdimpl.c
+++ xen-4.5.0-testing/tools/libxl/xl_cmdimpl.c
@@ -1910,6 +1910,8 @@ skip_vfb:
b_info->u.hvm.vga.kind = LIBXL_VGA_INTERFACE_TYPE_CIRRUS;
} else if (!strcmp(buf, "none")) {
b_info->u.hvm.vga.kind = LIBXL_VGA_INTERFACE_TYPE_NONE;
+ } else if (!strcmp(buf, "qxl")) {
+ b_info->u.hvm.vga.kind = LIBXL_VGA_INTERFACE_TYPE_QXL;
} else {
fprintf(stderr, "Unknown vga \"%s\" specified\n", buf);
exit(1);
++++++ libxl.pvscsi.patch ++++++
--- /var/tmp/diff_new_pack.PCEqP5/_old 2015-03-30 19:31:29.000000000 +0200
+++ /var/tmp/diff_new_pack.PCEqP5/_new 2015-03-30 19:31:29.000000000 +0200
@@ -503,7 +503,7 @@
===================================================================
--- xen-4.5.0-testing.orig/tools/libxl/libxl_create.c
+++ xen-4.5.0-testing/tools/libxl/libxl_create.c
-@@ -1128,6 +1128,7 @@ static void domcreate_rebuild_done(libxl
+@@ -1141,6 +1141,7 @@ static void domcreate_rebuild_done(libxl
libxl__multidev_begin(ao, &dcs->multidev);
dcs->multidev.callback = domcreate_launch_dm;
libxl__add_disks(egc, ao, domid, d_config, &dcs->multidev);
@@ -594,7 +594,7 @@
===================================================================
--- xen-4.5.0-testing.orig/tools/libxl/libxl_types.idl
+++ xen-4.5.0-testing/tools/libxl/libxl_types.idl
-@@ -539,6 +539,26 @@ libxl_device_channel = Struct("device_ch
+@@ -540,6 +540,26 @@ libxl_device_channel = Struct("device_ch
])),
])
@@ -621,7 +621,7 @@
libxl_domain_config = Struct("domain_config", [
("c_info", libxl_domain_create_info),
("b_info", libxl_domain_build_info),
-@@ -552,6 +572,8 @@ libxl_domain_config = Struct("domain_con
+@@ -553,6 +573,8 @@ libxl_domain_config = Struct("domain_con
# a channel manifests as a console with a name,
# see docs/misc/channels.txt
("channels", Array(libxl_device_channel, "num_channels")),
@@ -630,7 +630,7 @@
("on_poweroff", libxl_action_on_shutdown),
("on_reboot", libxl_action_on_shutdown),
-@@ -594,6 +616,28 @@ libxl_vtpminfo = Struct("vtpminfo", [
+@@ -595,6 +617,28 @@ libxl_vtpminfo = Struct("vtpminfo", [
("uuid", libxl_uuid),
], dir=DIR_OUT)
@@ -904,7 +904,7 @@
if (!xlu_cfg_get_list(config, "vtpm", &vtpms, 0, 0)) {
d_config->num_vtpms = 0;
d_config->vtpms = NULL;
-@@ -6490,6 +6668,256 @@ int main_blockdetach(int argc, char **ar
+@@ -6492,6 +6670,256 @@ int main_blockdetach(int argc, char **ar
return rc;
}
++++++ libxl.set-migration-constraints-from-cmdline.patch ++++++
--- /var/tmp/diff_new_pack.PCEqP5/_old 2015-03-30 19:31:29.000000000 +0200
+++ /var/tmp/diff_new_pack.PCEqP5/_new 2015-03-30 19:31:29.000000000 +0200
@@ -387,7 +387,7 @@
===================================================================
--- xen-4.5.0-testing.orig/tools/libxl/xl_cmdimpl.c
+++ xen-4.5.0-testing/tools/libxl/xl_cmdimpl.c
-@@ -3878,6 +3878,8 @@ static void migrate_do_preamble(int send
+@@ -3880,6 +3880,8 @@ static void migrate_do_preamble(int send
}
static void migrate_domain(uint32_t domid, const char *rune, int debug,
@@ -396,7 +396,7 @@
const char *override_config_file)
{
pid_t child = -1;
-@@ -3886,7 +3888,13 @@ static void migrate_domain(uint32_t domi
+@@ -3888,7 +3890,13 @@ static void migrate_domain(uint32_t domi
char *away_domname;
char rc_buf;
uint8_t *config_data;
@@ -411,7 +411,7 @@
save_domain_core_begin(domid, override_config_file,
&config_data, &config_len);
-@@ -3905,10 +3913,13 @@ static void migrate_domain(uint32_t domi
+@@ -3907,10 +3915,13 @@ static void migrate_domain(uint32_t domi
xtl_stdiostream_adjust_flags(logger, XTL_STDIOSTREAM_HIDE_PROGRESS, 0);
if (debug)
@@ -428,7 +428,7 @@
" (rc=%d)\n", rc);
if (rc == ERROR_GUEST_TIMEDOUT)
goto failed_suspend;
-@@ -4295,13 +4306,18 @@ int main_migrate(int argc, char **argv)
+@@ -4297,13 +4308,18 @@ int main_migrate(int argc, char **argv)
char *rune = NULL;
char *host;
int opt, daemonize = 1, monitor = 1, debug = 0;
@@ -448,7 +448,7 @@
case 'C':
config_filename = optarg;
break;
-@@ -4318,6 +4334,18 @@ int main_migrate(int argc, char **argv)
+@@ -4320,6 +4336,18 @@ int main_migrate(int argc, char **argv)
case 0x100:
debug = 1;
break;
@@ -467,7 +467,7 @@
}
domid = find_domain(argv[optind]);
-@@ -4348,7 +4376,8 @@ int main_migrate(int argc, char **argv)
+@@ -4350,7 +4378,8 @@ int main_migrate(int argc, char **argv)
return 1;
}
++++++ qemu-xen-enable-spice-support.patch ++++++
Index: xen-4.5.0-testing/tools/Makefile
===================================================================
--- xen-4.5.0-testing.orig/tools/Makefile
+++ xen-4.5.0-testing/tools/Makefile
@@ -222,6 +222,7 @@ subdir-all-qemu-xen-dir: qemu-xen-dir-fi
--datadir=$(SHAREDIR)/qemu-xen \
--localstatedir=$(localstatedir) \
--disable-kvm \
+ $(QEMU_XEN_ENABLE_SPICE) \
--disable-docs \
--disable-guest-agent \
--python=$(PYTHON) \
++++++ xentop-add-support-for-qdisk.patch ++++++
Index: xen-4.5.0-testing/tools/xenstat/libxenstat/Makefile
===================================================================
--- xen-4.5.0-testing.orig/tools/xenstat/libxenstat/Makefile
+++ xen-4.5.0-testing/tools/xenstat/libxenstat/Makefile
@@ -24,7 +24,7 @@ MINOR=0
LIB=src/libxenstat.a
SHLIB=src/libxenstat.so.$(MAJOR).$(MINOR)
SHLIB_LINKS=src/libxenstat.so.$(MAJOR) src/libxenstat.so
-OBJECTS-y=src/xenstat.o
+OBJECTS-y=src/xenstat.o src/xenstat_qmp.o
OBJECTS-$(CONFIG_Linux) += src/xenstat_linux.o
OBJECTS-$(CONFIG_SunOS) += src/xenstat_solaris.o
OBJECTS-$(CONFIG_NetBSD) += src/xenstat_netbsd.o
Index: xen-4.5.0-testing/tools/xenstat/xentop/Makefile
===================================================================
--- xen-4.5.0-testing.orig/tools/xenstat/xentop/Makefile
+++ xen-4.5.0-testing/tools/xenstat/xentop/Makefile
@@ -19,7 +19,7 @@ all install xentop:
else
CFLAGS += -DGCC_PRINTF -Werror $(CFLAGS_libxenstat)
-LDLIBS += $(LDLIBS_libxenstat) $(CURSES_LIBS) $(SOCKET_LIBS) -lm
+LDLIBS += $(LDLIBS_libxenstat) $(CURSES_LIBS) $(SOCKET_LIBS) -lm -lyajl
CFLAGS += -DHOST_$(XEN_OS)
# Include configure output (config.h) to headers search path
Index: xen-4.5.0-testing/tools/xenstat/libxenstat/src/xenstat_priv.h
===================================================================
--- xen-4.5.0-testing.orig/tools/xenstat/libxenstat/src/xenstat_priv.h
+++ xen-4.5.0-testing/tools/xenstat/libxenstat/src/xenstat_priv.h
@@ -109,5 +109,7 @@ extern int xenstat_collect_networks(xens
extern void xenstat_uninit_networks(xenstat_handle * handle);
extern int xenstat_collect_vbds(xenstat_node * node);
extern void xenstat_uninit_vbds(xenstat_handle * handle);
+extern void read_attributes_qdisk(xenstat_node * node);
+extern xenstat_vbd *xenstat_save_vbd(xenstat_domain * domain, xenstat_vbd * vbd);
#endif /* XENSTAT_PRIV_H */
Index: xen-4.5.0-testing/tools/xenstat/libxenstat/src/xenstat.c
===================================================================
--- xen-4.5.0-testing.orig/tools/xenstat/libxenstat/src/xenstat.c
+++ xen-4.5.0-testing/tools/xenstat/libxenstat/src/xenstat.c
@@ -657,6 +657,24 @@ static void xenstat_uninit_xen_version(x
* VBD functions
*/
+/* Save VBD information */
+xenstat_vbd *xenstat_save_vbd(xenstat_domain *domain, xenstat_vbd *vbd)
+{
+ if (domain->vbds == NULL) {
+ domain->num_vbds = 1;
+ domain->vbds = malloc(sizeof(xenstat_vbd));
+ } else {
+ domain->num_vbds++;
+ domain->vbds = realloc(domain->vbds,
+ domain->num_vbds *
+ sizeof(xenstat_vbd));
+ }
+ if (domain->vbds != NULL)
+ domain->vbds[domain->num_vbds - 1] = *vbd;
+
+ return domain->vbds;
+}
+
/* Free VBD information */
static void xenstat_free_vbds(xenstat_node * node)
{
Index: xen-4.5.0-testing/tools/xenstat/libxenstat/src/xenstat_linux.c
===================================================================
--- xen-4.5.0-testing.orig/tools/xenstat/libxenstat/src/xenstat_linux.c
+++ xen-4.5.0-testing/tools/xenstat/libxenstat/src/xenstat_linux.c
@@ -417,6 +417,9 @@ int xenstat_collect_vbds(xenstat_node *
}
}
+ /* Get qdisk statistics */
+ read_attributes_qdisk(node);
+
rewinddir(priv->sysfsvbd);
for(dp = readdir(priv->sysfsvbd); dp != NULL ;
@@ -477,18 +480,10 @@ int xenstat_collect_vbds(xenstat_node *
continue;
}
- if (domain->vbds == NULL) {
- domain->num_vbds = 1;
- domain->vbds = malloc(sizeof(xenstat_vbd));
- } else {
- domain->num_vbds++;
- domain->vbds = realloc(domain->vbds,
- domain->num_vbds *
- sizeof(xenstat_vbd));
- }
- if (domain->vbds == NULL)
+ if ((xenstat_save_vbd(domain, &vbd)) == NULL) {
+ perror("Allocation error");
return 0;
- domain->vbds[domain->num_vbds - 1] = vbd;
+ }
}
return 1;
Index: xen-4.5.0-testing/tools/xenstat/libxenstat/src/xenstat_qmp.c
===================================================================
--- /dev/null
+++ xen-4.5.0-testing/tools/xenstat/libxenstat/src/xenstat_qmp.c
@@ -0,0 +1,387 @@
+/* libxenstat: statistics-collection library for Xen
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ */
+
+#include <fcntl.h>
+#include <sys/types.h>
+#include <sys/socket.h>
+#include <sys/poll.h>
+#include <sys/un.h>
+#include <stdlib.h>
+#include <string.h>
+#include <unistd.h>
+#include "yajl/yajl_tree.h"
+
+#include <xenctrl.h>
+
+#include "xenstat_priv.h"
+
+static unsigned char *qmp_query(int, char *);
+
+enum query_blockstats {
+ QMP_STATS_RETURN = 0,
+ QMP_STATS_DEVICE = 1,
+ QMP_STATS = 2,
+ QMP_RD_BYTES = 3,
+ QMP_WR_BYTES = 4,
+ QMP_RD_OPERATIONS = 5,
+ QMP_WR_OPERATIONS = 6,
+};
+
+enum query_block {
+ QMP_BLOCK_RETURN = 0,
+ QMP_BLOCK_DEVICE = 1,
+ QMP_INSERTED = 2,
+ QMP_FILE = 3,
+};
+
+
+/* Given the qmp device name, get the image filename associated with it */
+static char *qmp_get_block_image(xenstat_node *node, char *qmp_devname, int qfd)
+{
+ char errbuf[1024], *tmp, *file = NULL;
+ char *query_block_cmd = "{ \"execute\": \"query-block\" }";
+ static const char *const qblock[] = {
+ [ QMP_BLOCK_RETURN ] = "return",
+ [ QMP_BLOCK_DEVICE ] = "device",
+ [ QMP_INSERTED ] = "inserted",
+ [ QMP_FILE ] = "file",
+ };
+ const char *ptr[] = {0, 0};
+ unsigned char *qmp_stats;
+ yajl_val info, ret_obj, dev_obj, n;
+ int i;
+
+ if ((qmp_stats = qmp_query(qfd, query_block_cmd)) == NULL)
+ return NULL;
+
+ /* Use libyajl version 2.1.x or newer for the tree parser feature with bug fixes */
+ if ((info = yajl_tree_parse((char *)qmp_stats, errbuf, sizeof(errbuf))) == NULL) {
+ free(qmp_stats);
+ return NULL;
+ }
+
+ ptr[0] = qblock[QMP_BLOCK_RETURN]; /* "return" */
+ if ((ret_obj = yajl_tree_get(info, ptr, yajl_t_array)) == NULL)
+ goto done;
+
+ for (i=0; i<YAJL_GET_ARRAY(ret_obj)->len; i++) {
+ n = YAJL_GET_ARRAY(ret_obj)->values[i];
+
+ ptr[0] = qblock[QMP_BLOCK_DEVICE]; /* "device" */
+ if ((dev_obj = yajl_tree_get(n, ptr, yajl_t_any)) != NULL) {
+ tmp = YAJL_GET_STRING(dev_obj);
+ if (strcmp(qmp_devname, tmp))
+ continue;
+ }
+ else
+ continue;
+
+ ptr[0] = qblock[QMP_INSERTED]; /* "inserted" */
+ n = yajl_tree_get(n, ptr, yajl_t_any);
+ if (n) {
+ ptr[0] = qblock[QMP_FILE]; /* "file" */
+ n = yajl_tree_get(n, ptr, yajl_t_any);
+ if (n && YAJL_IS_STRING(n)) {
+ tmp = YAJL_GET_STRING(n);
+ file = malloc(strlen(tmp)+1);
+ if (file != NULL)
+ strcpy(file, tmp);
+ goto done;
+ }
+ }
+ }
+done:
+ yajl_tree_free(info);
+ return file;
+}
+
+
+/* Given a QMP device name, find the associated xenstore qdisk device id */
+static void get_xs_devid_from_qmp_devname(xenstat_node * node, unsigned int domid, char *qmp_devname,
+ unsigned int *dev, unsigned int *sector_size, int qfd)
+{
+ char **dev_ids, *tmp, *ptr, *image, path[80];
+ unsigned int num_dev_ids;
+ int i, devid;
+
+ /* Get all the qdisk dev IDs associated with the this VM */
+ snprintf(path, sizeof(path),"/local/domain/0/backend/qdisk/%i", domid);
+ dev_ids = xs_directory(node->handle->xshandle, XBT_NULL, path, &num_dev_ids);
+ if (dev_ids == NULL) {
+ return;
+ }
+
+ /* Get the filename of the image associated with this QMP device */
+ image = qmp_get_block_image(node, qmp_devname, qfd);
+ if (image == NULL) {
+ free(dev_ids);
+ return;
+ }
+
+ /* Look for a matching image in xenstore */
+ for (i=0; i<num_dev_ids; i++) {
+ devid = atoi(dev_ids[i]);
+ /* Get the xenstore name of the image */
+ snprintf(path, sizeof(path),"/local/domain/0/backend/qdisk/%i/%i/params", domid, devid);
+ if ((ptr = xs_read(node->handle->xshandle, XBT_NULL, path, NULL)) == NULL)
+ continue;
+
+ /* Get to actual path in string */
+ if ((tmp = strchr(ptr, '/')) == NULL)
+ tmp = ptr;
+ if (!strcmp(tmp,image)) {
+ *dev = devid;
+ free(ptr);
+
+ /* Get the xenstore sector size of the image while we're here */
+ snprintf(path, sizeof(path),"/local/domain/0/backend/qdisk/%i/%i/sector-size", domid, devid);
+ if ((ptr = xs_read(node->handle->xshandle, XBT_NULL, path, NULL)) != NULL) {
+ *sector_size = atoi((char *)ptr);
+ free(ptr);
+ }
+ break;
+ }
+ free(ptr);
+ }
+
+ free(image);
+ free(dev_ids);
+}
+
+/* Parse the stats buffer which contains I/O data for all the disks belonging to domid */
+static void qmp_parse_stats(xenstat_node *node, unsigned int domid, unsigned char *stats_buf, int qfd)
+{
+ char *qmp_devname, errbuf[1024];
+ static const char *const qstats[] = {
+ [ QMP_STATS_RETURN ] = "return",
+ [ QMP_STATS_DEVICE ] = "device",
+ [ QMP_STATS ] = "stats",
+ [ QMP_RD_BYTES ] = "rd_bytes",
+ [ QMP_WR_BYTES ] = "wr_bytes",
+ [ QMP_RD_OPERATIONS ] = "rd_operations",
+ [ QMP_WR_OPERATIONS ] = "wr_operations",
+ };
+ const char *ptr[] = {0, 0};
+ yajl_val info, ret_obj, stats_obj, n;
+ xenstat_vbd vbd;
+ xenstat_domain *domain;
+ unsigned int sector_size = 512;
+ int i, j;
+
+ /* Use libyajl version 2.0.3 or newer for the tree parser feature */
+ if ((info = yajl_tree_parse((char *)stats_buf, errbuf, sizeof(errbuf))) == NULL)
+ return;
+
+ ptr[0] = qstats[QMP_STATS_RETURN]; /* "return" */
+ if ((ret_obj = yajl_tree_get(info, ptr, yajl_t_array)) == NULL)
+ goto done;
+
+ /* Array of devices */
+ for (i=0; i<YAJL_GET_ARRAY(ret_obj)->len; i++) {
+ memset(&vbd, 0, sizeof(xenstat_vbd));
+ qmp_devname = NULL;
+ stats_obj = YAJL_GET_ARRAY(ret_obj)->values[i];
+
+ ptr[0] = qstats[QMP_STATS_DEVICE]; /* "device" */
+ if ((n = yajl_tree_get(stats_obj, ptr, yajl_t_any)) != NULL)
+ qmp_devname = YAJL_GET_STRING(n);
+
+ ptr[0] = qstats[QMP_STATS]; /* "stats" */
+ stats_obj = yajl_tree_get(stats_obj, ptr, yajl_t_object);
+ if (stats_obj && YAJL_IS_OBJECT(stats_obj)) {
+ for (j=3; j<7; j++) {
+ ptr[0] = qstats[j];
+ n = yajl_tree_get(stats_obj, ptr, yajl_t_number);
+ if (n && YAJL_IS_NUMBER(n)) {
+ switch(j) {
+ case QMP_RD_BYTES: /* "rd_bytes" */
+ vbd.rd_sects = YAJL_GET_INTEGER(n) / sector_size;
+ break;
+ case QMP_WR_BYTES: /* "wr_bytes" */
+ vbd.wr_sects = YAJL_GET_INTEGER(n) / sector_size;
+ break;
+ case QMP_RD_OPERATIONS: /* "rd_operations" */
+ vbd.rd_reqs = YAJL_GET_INTEGER(n);
+ break;
+ case QMP_WR_OPERATIONS: /* "wr_operations" */
+ vbd.wr_reqs = YAJL_GET_INTEGER(n);
+ break;
+ }
+ }
+ }
+ /* With the QMP device name, lookup the xenstore qdisk device ID and set vdb.dev */
+ if (qmp_devname)
+ get_xs_devid_from_qmp_devname(node, domid, qmp_devname, &vbd.dev, §or_size, qfd);
+ if ((domain = xenstat_node_domain(node, domid)) == NULL)
+ continue;
+ if ((xenstat_save_vbd(domain, &vbd)) == NULL)
+ goto done;
+ }
+ }
+done:
+ yajl_tree_free(info);
+}
+
+/* Write a command via the QMP */
+static size_t qmp_write(int qfd, char *cmd, size_t cmd_len)
+{
+ size_t pos = 0;
+ ssize_t res;
+
+ while (cmd_len > pos) {
+ res = write(qfd, cmd + pos, cmd_len - pos);
+ switch (res) {
+ case -1:
+ if (errno == EINTR || errno == EAGAIN)
+ continue;
+ return 0;
+ case 0:
+ errno = EPIPE;
+ return pos;
+ default:
+ pos += (size_t)res;
+ }
+ }
+ return pos;
+}
+
+/* Read the data sent in response to a QMP execute query. Returns 1 for success */
+static int qmp_read(int qfd, unsigned char **qstats)
+{
+ unsigned char buf[1024], *ptr = NULL;
+ struct pollfd pfd[2];
+ int n, qsize = 0;
+
+ pfd[0].fd = qfd;
+ pfd[0].events = POLLIN;
+ while ((n = poll(pfd, POLLIN, 10)) > 0) {
+ if (pfd[0].revents & POLLIN) {
+ if ((n = read(qfd, buf, sizeof(buf))) < 0) {
+ return 0;
+ }
+ if (ptr == NULL)
+ ptr = malloc(n+1);
+ else
+ ptr = realloc(ptr, qsize+n+1);
+ if (ptr == NULL)
+ return 0;
+ memcpy(&ptr[qsize], buf, n);
+ qsize += n;
+ ptr[qsize] = 0;
+ *qstats = ptr;
+ }
+ }
+ return 1;
+}
+
+/* With the given cmd, query QMP for requested data. Returns allocated buffer containing data or NULL */
+static unsigned char *qmp_query(int qfd, char *cmd)
+{
+ unsigned char *qstats = NULL;
+ int n;
+
+ n = strlen(cmd);
+ if (qmp_write(qfd, cmd, n) != n)
+ return NULL;
+ if (!qmp_read(qfd, &qstats))
+ return NULL;
+ return qstats;
+}
+
+/* Returns a socket connected to the QMP socket. Returns -1 on failure. */
+static int qmp_connect(char *path)
+{
+ struct sockaddr_un sun;
+ int s;
+
+ if ((s = socket(AF_UNIX, SOCK_STREAM, 0)) < 0)
+ return -1;
+ (void)fcntl(s, F_SETFD, 1);
+
+ memset(&sun, 0, sizeof(struct sockaddr_un));
+ sun.sun_family = AF_UNIX;
+
+ if (strlen(path) >= sizeof(sun.sun_path)) {
+ close(s);
+ return -1;
+ }
+
+ strcpy(sun.sun_path, path);
+ if (connect(s, (struct sockaddr *)&sun, SUN_LEN(&sun)) < 0) {
+ close(s);
+ return -1;
+ }
+
+ return s;
+}
+
+/* Get all the active domains */
+static xc_domaininfo_t *get_domain_ids(int *num_doms)
+{
+ xc_domaininfo_t *dominfo;
+ xc_interface *xc_handle;
+
+ dominfo = calloc(1024, sizeof(xc_domaininfo_t));
+ if (dominfo == NULL)
+ return NULL;
+ xc_handle = xc_interface_open(0,0,0);
+ *num_doms = xc_domain_getinfolist(xc_handle, 0, 1024, dominfo);
+ xc_interface_close(xc_handle);
+ return dominfo;
+}
+
+/* Gather the qdisk statistics by querying QMP */
+void read_attributes_qdisk(xenstat_node * node)
+{
+ char *cmd_mode = "{ \"execute\": \"qmp_capabilities\" }";
+ char *query_blockstats_cmd = "{ \"execute\": \"query-blockstats\" }";
+ xc_domaininfo_t *dominfo = NULL;
+ unsigned char *qmp_stats, *val;
+ char path[80];
+ int i, qfd, num_doms;
+
+ dominfo = get_domain_ids(&num_doms);
+ if (dominfo == NULL)
+ return;
+
+ for (i=0; i<num_doms; i++) {
+ if (dominfo[i].domain <= 0)
+ continue;
+
+ /* Verify that qdisk disks are used with this VM */
+ snprintf(path, sizeof(path),"/local/domain/0/backend/qdisk/%i", dominfo[i].domain);
+ if ((val = xs_read(node->handle->xshandle, XBT_NULL, path, NULL)) == NULL)
+ continue;
+ free(val);
+
+ /* Connect to this VMs QMP socket */
+ snprintf(path, sizeof(path), "/var/run/xen/qmp-libxl-%i", dominfo[i].domain);
+ if ((qfd = qmp_connect(path)) < 0) {
+ continue;
+ }
+
+ /* First enable QMP capabilities so that we can query for data */
+ if ((qmp_stats = qmp_query(qfd, cmd_mode)) != NULL) {
+ free(qmp_stats);
+ /* Query QMP for this VMs blockstats */
+ if ((qmp_stats = qmp_query(qfd, query_blockstats_cmd)) != NULL) {
+ qmp_parse_stats(node, dominfo[i].domain, qmp_stats, qfd);
+ free(qmp_stats);
+ }
+ }
+ close(qfd);
+ }
+
+ free(dominfo);
+}
+
++++++ xl-coredump-file-location.patch ++++++
--- /var/tmp/diff_new_pack.PCEqP5/_old 2015-03-30 19:31:29.000000000 +0200
+++ /var/tmp/diff_new_pack.PCEqP5/_new 2015-03-30 19:31:29.000000000 +0200
@@ -10,7 +10,7 @@
===================================================================
--- xen-4.5.0-testing.orig/tools/libxl/xl_cmdimpl.c
+++ xen-4.5.0-testing/tools/libxl/xl_cmdimpl.c
-@@ -2092,7 +2092,7 @@ static int handle_domain_death(uint32_t
+@@ -2094,7 +2094,7 @@ static int handle_domain_death(uint32_t
char *corefile;
int rc;
1
0
Hello community,
here is the log from the commit of package libgexiv2 for openSUSE:Factory checked in at 2015-03-30 19:31:18
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/libgexiv2 (Old)
and /work/SRC/openSUSE:Factory/.libgexiv2.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "libgexiv2"
Changes:
--------
--- /work/SRC/openSUSE:Factory/libgexiv2/libgexiv2.changes 2015-02-16 21:21:44.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.libgexiv2.new/libgexiv2.changes 2015-03-30 19:31:20.000000000 +0200
@@ -1,0 +2,9 @@
+Tue Mar 24 13:47:01 UTC 2015 - zaitor(a)opensuse.org
+
+- Update to version 0.10.3:
+ + Retrieve XMP tag's structure type (bgo#736799).
+ + Generate XMP packet as NUL-terminated string (bgo#736587).
+ + Retrieve tag's raw value as GBytes (bgo#730136).
+ + Fix gexiv2_metadata_get_fnumber() (bgo#745347).
+
+-------------------------------------------------------------------
@@ -4 +13 @@
-- Update to version 0.10.2
+- Update to version 0.10.2:
Old:
----
gexiv2-0.10.2.tar.xz
New:
----
gexiv2-0.10.3.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ libgexiv2.spec ++++++
--- /var/tmp/diff_new_pack.iaWSBo/_old 2015-03-30 19:31:20.000000000 +0200
+++ /var/tmp/diff_new_pack.iaWSBo/_new 2015-03-30 19:31:20.000000000 +0200
@@ -19,7 +19,7 @@
%define tarname gexiv2
Name: libgexiv2
-Version: 0.10.2
+Version: 0.10.3
Release: 0
Summary: A GObject-based Exiv2 wrapper
License: GPL-2.0+
++++++ gexiv2-0.10.2.tar.xz -> gexiv2-0.10.3.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gexiv2-0.10.2/GExiv2.py new/gexiv2-0.10.3/GExiv2.py
--- old/gexiv2-0.10.2/GExiv2.py 2014-08-08 21:12:46.000000000 +0200
+++ new/gexiv2-0.10.3/GExiv2.py 2015-03-24 00:05:49.000000000 +0100
@@ -78,6 +78,9 @@
def get(self, key, default=None):
return self.get_tag_string(key) if self.has_tag(key) else default
+
+ def get_raw(self, key):
+ return self.get_tag_raw(key).get_data()
def __iter__(self):
return iter(self.get_tags())
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gexiv2-0.10.2/Makefile.am new/gexiv2-0.10.3/Makefile.am
--- old/gexiv2-0.10.2/Makefile.am 2014-09-17 00:07:53.000000000 +0200
+++ new/gexiv2-0.10.3/Makefile.am 2015-03-24 00:05:49.000000000 +0100
@@ -16,7 +16,10 @@
@PACKAGE_NAME@.vapi \
gexiv2/gexiv2-version.m4 \
$(TYPELIB_FILES) \
- test/gexiv2-dump.vala
+ test/sample-author-badencoding.jpg \
+ test/gexiv2-dump.vala \
+ test/python/gexiv2.py
+
# Installed Files #
pkgconfig_DATA = @PACKAGE_NAME@.pc
@@ -105,16 +108,24 @@
rm -f gexiv2/gexiv2-version.h
rm -f gexiv2.pc
rm -f test/gexiv2-dump
+ rm -rf test/python/gi test/python/__pycache__
# Tests and utilities #
if ENABLE_TESTS
-tests: test/gexiv2-dump
+tests: test/gexiv2-dump test/python2 test/python3
test/gexiv2-dump: test/gexiv2-dump.vala
valac -g --enable-checking --vapidir=. --pkg gexiv2 $< -o $@
+test/python/gi/overrides/GExiv2.py:
+ [ -d $(dir $@) ] || mkdir -p $(dir $@)
+ ln -sf ../../../../GExiv2.py $@
+
+test/python%: $(TYPELIB_FILES) test/python/gi/overrides/GExiv2.py
+ LD_LIBRARY_PATH=.libs GI_TYPELIB_PATH=. PYTHONPATH=test/python python$* -m unittest gexiv2
+
endif
# Optional Introspection #
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gexiv2-0.10.2/Makefile.in new/gexiv2-0.10.3/Makefile.in
--- old/gexiv2-0.10.2/Makefile.in 2014-09-17 00:15:53.000000000 +0200
+++ new/gexiv2-0.10.3/Makefile.in 2015-03-24 00:14:23.000000000 +0100
@@ -425,7 +425,9 @@
@PACKAGE_NAME@.vapi \
gexiv2/gexiv2-version.m4 \
$(TYPELIB_FILES) \
- test/gexiv2-dump.vala
+ test/sample-author-badencoding.jpg \
+ test/gexiv2-dump.vala \
+ test/python/gexiv2.py
# Installed Files #
@@ -1243,14 +1245,22 @@
rm -f gexiv2/gexiv2-version.h
rm -f gexiv2.pc
rm -f test/gexiv2-dump
+ rm -rf test/python/gi test/python/__pycache__
# Tests and utilities #
-@ENABLE_TESTS_TRUE@tests: test/gexiv2-dump
+@ENABLE_TESTS_TRUE@tests: test/gexiv2-dump test/python2 test/python3
@ENABLE_TESTS_TRUE@test/gexiv2-dump: test/gexiv2-dump.vala
@ENABLE_TESTS_TRUE@ valac -g --enable-checking --vapidir=. --pkg gexiv2 $< -o $@
+@ENABLE_TESTS_TRUE@test/python/gi/overrides/GExiv2.py:
+@ENABLE_TESTS_TRUE@ [ -d $(dir $@) ] || mkdir -p $(dir $@)
+@ENABLE_TESTS_TRUE@ ln -sf ../../../../GExiv2.py $@
+
+@ENABLE_TESTS_TRUE@test/python%: $(TYPELIB_FILES) test/python/gi/overrides/GExiv2.py
+@ENABLE_TESTS_TRUE@ LD_LIBRARY_PATH=.libs GI_TYPELIB_PATH=. PYTHONPATH=test/python python$* -m unittest gexiv2
+
%.typelib: %.gir
g-ir-compiler --includedir=$(BUILD_DIR) -o $@ $<
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gexiv2-0.10.2/NEWS new/gexiv2-0.10.3/NEWS
--- old/gexiv2-0.10.2/NEWS 2014-09-17 00:14:13.000000000 +0200
+++ new/gexiv2-0.10.3/NEWS 2015-03-24 00:10:48.000000000 +0100
@@ -1,3 +1,12 @@
+gexiv2 0.10.3 - 23 March 2015
+-----------------------------
+
+ * Retrieve XMP tag's structure type (#736799)
+ * Generate XMP packet as NUL-terminated string (#736587)
+ * Retrieve tag's raw value as GBytes (#730136)
+ * Fix gexiv2_metadata_get_fnumber() (#745347)
+
+
gexiv2 0.10.2 - 16 September 2014
---------------------------------
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gexiv2-0.10.2/README new/gexiv2-0.10.3/README
--- old/gexiv2-0.10.2/README 2014-02-04 21:59:05.000000000 +0100
+++ new/gexiv2-0.10.3/README 2015-03-24 00:06:08.000000000 +0100
@@ -26,5 +26,5 @@
- Copyright 2011-2014 Yorba Foundation
+ Copyright 2011-2015 Yorba Foundation
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gexiv2-0.10.2/THANKS new/gexiv2-0.10.3/THANKS
--- old/gexiv2-0.10.2/THANKS 2014-09-17 00:07:44.000000000 +0200
+++ new/gexiv2-0.10.3/THANKS 2015-03-24 00:05:49.000000000 +0100
@@ -3,6 +3,7 @@
Robert Ancell <robert.ancell(a)canonical.com>
Dan Callaghan <djc(a)djc.id.au>
Luca Falavigna <dktrkranz(a)debian.org>
+Hartmut Kuhse <hk_priv(a)gmx.de>
Petr Morávek <petr(a)pada.cz>
Michael Natterer <mitch(a)gimp.org>
Jehan Pagès <jehan(a)girinstud.io>
@@ -11,6 +12,7 @@
John Ralls <jralls(a)ceridwen.us>
Akhil Ravidas <deepblue.ar(a)gmail.com>
Clint Rogers <clinton(a)yorba.org>
+Alexandre Rossi <alexandre.rossi(a)gmail.com>
Alexandre Rostovtsev <tetromino(a)gmail.com>
Ankur Sinha <sanjay.ankur(a)gmail.com>
Alexander Steffen
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gexiv2-0.10.2/configure new/gexiv2-0.10.3/configure
--- old/gexiv2-0.10.2/configure 2014-09-17 00:15:53.000000000 +0200
+++ new/gexiv2-0.10.3/configure 2015-03-24 00:14:23.000000000 +0100
@@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for gexiv2 0.10.2.
+# Generated by GNU Autoconf 2.69 for gexiv2 0.10.3.
#
# Report bugs to <gexiv2-list(a)gnome.org>.
#
@@ -590,8 +590,8 @@
# Identity of this package.
PACKAGE_NAME='gexiv2'
PACKAGE_TARNAME='gexiv2'
-PACKAGE_VERSION='0.10.2'
-PACKAGE_STRING='gexiv2 0.10.2'
+PACKAGE_VERSION='0.10.3'
+PACKAGE_STRING='gexiv2 0.10.3'
PACKAGE_BUGREPORT='gexiv2-list(a)gnome.org'
PACKAGE_URL='https://wiki.gnome.org/Projects/gexiv2'
@@ -1362,7 +1362,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 gexiv2 0.10.2 to adapt to many kinds of systems.
+\`configure' configures gexiv2 0.10.3 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1432,7 +1432,7 @@
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of gexiv2 0.10.2:";;
+ short | recursive ) echo "Configuration of gexiv2 0.10.3:";;
esac
cat <<\_ACEOF
@@ -1554,7 +1554,7 @@
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-gexiv2 configure 0.10.2
+gexiv2 configure 0.10.3
generated by GNU Autoconf 2.69
Copyright (C) 2012 Free Software Foundation, Inc.
@@ -2136,7 +2136,7 @@
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
-It was created by gexiv2 $as_me 0.10.2, which was
+It was created by gexiv2 $as_me 0.10.3, which was
generated by GNU Autoconf 2.69. Invocation command line was
$ $0 $@
@@ -3004,7 +3004,7 @@
# Define the identity of the package.
PACKAGE='gexiv2'
- VERSION='0.10.2'
+ VERSION='0.10.3'
# Some tools Automake needs.
@@ -16040,8 +16040,8 @@
GEXIV2_MAJOR_VERSION=0
GEXIV2_MINOR_VERSION=10
-GEXIV2_MICRO_VERSION=2
-GEXIV2_VERSION=0.10.2
+GEXIV2_MICRO_VERSION=3
+GEXIV2_VERSION=0.10.3
@@ -17155,7 +17155,7 @@
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
-This file was extended by gexiv2 $as_me 0.10.2, which was
+This file was extended by gexiv2 $as_me 0.10.3, which was
generated by GNU Autoconf 2.69. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -17213,7 +17213,7 @@
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\
-gexiv2 config.status 0.10.2
+gexiv2 config.status 0.10.3
configured by $0, generated by GNU Autoconf 2.69,
with options \\"\$ac_cs_config\\"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gexiv2-0.10.2/configure.ac new/gexiv2-0.10.3/configure.ac
--- old/gexiv2-0.10.2/configure.ac 2014-09-17 00:09:05.000000000 +0200
+++ new/gexiv2-0.10.3/configure.ac 2015-03-24 00:13:08.000000000 +0100
@@ -1,4 +1,4 @@
-AC_INIT([gexiv2], [0.10.2], [gexiv2-list(a)gnome.org] [gexiv2], [https://wiki.gnome.org/Projects/gexiv2]
+AC_INIT([gexiv2], [0.10.3], [gexiv2-list(a)gnome.org] [gexiv2], [https://wiki.gnome.org/Projects/gexiv2]
AC_PREREQ(2.54)
AC_CONFIG_MACRO_DIR([m4])
@@ -20,7 +20,7 @@
m4_define([gexiv2_major_version], [0])
m4_define([gexiv2_minor_version], [10])
-m4_define([gexiv2_micro_version], [2])
+m4_define([gexiv2_micro_version], [3])
m4_define([gexiv2_real_version],
[gexiv2_major_version.gexiv2_minor_version.gexiv2_micro_version])
m4_define([gexiv2_version], [gexiv2_real_version])
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gexiv2-0.10.2/gexiv2/gexiv2-metadata-exif.cpp new/gexiv2-0.10.3/gexiv2/gexiv2-metadata-exif.cpp
--- old/gexiv2-0.10.2/gexiv2/gexiv2-metadata-exif.cpp 2014-09-17 00:07:34.000000000 +0200
+++ new/gexiv2-0.10.3/gexiv2/gexiv2-metadata-exif.cpp 2015-03-24 00:05:49.000000000 +0100
@@ -293,4 +293,31 @@
return NULL;
}
+GBytes* gexiv2_metadata_get_exif_tag_raw (GExiv2Metadata *self, const gchar* tag) {
+ g_return_val_if_fail(GEXIV2_IS_METADATA (self), NULL);
+ g_return_val_if_fail(tag != NULL, NULL);
+ g_return_val_if_fail(self->priv->image.get() != NULL, NULL);
+
+ Exiv2::ExifData &exif_data = self->priv->image->exifData();
+
+ try {
+ Exiv2::ExifData::iterator it = exif_data.findKey(Exiv2::ExifKey(tag));
+ while (it != exif_data.end() && it->count() == 0)
+ it++;
+
+ if (it != exif_data.end()) {
+ long size = it->size();
+ if( size > 0 ) {
+ gpointer data = g_malloc(size);
+ it->copy((Exiv2::byte*)data, Exiv2::invalidByteOrder);
+ return g_bytes_new_take(data, size);
+ }
+ }
+ } catch (Exiv2::Error& e) {
+ LOG_ERROR(e);
+ }
+
+ return NULL;
+}
+
G_END_DECLS
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gexiv2-0.10.2/gexiv2/gexiv2-metadata-iptc.cpp new/gexiv2-0.10.3/gexiv2/gexiv2-metadata-iptc.cpp
--- old/gexiv2-0.10.2/gexiv2/gexiv2-metadata-iptc.cpp 2014-05-13 01:25:21.000000000 +0200
+++ new/gexiv2-0.10.3/gexiv2/gexiv2-metadata-iptc.cpp 2015-03-24 00:05:49.000000000 +0100
@@ -277,4 +277,31 @@
return NULL;
}
+GBytes* gexiv2_metadata_get_iptc_tag_raw (GExiv2Metadata *self, const gchar* tag) {
+ g_return_val_if_fail(GEXIV2_IS_METADATA (self), NULL);
+ g_return_val_if_fail(tag != NULL, NULL);
+ g_return_val_if_fail(self->priv->image.get() != NULL, NULL);
+
+ Exiv2::IptcData& iptc_data = self->priv->image->iptcData();
+
+ try {
+ Exiv2::IptcData::iterator it = iptc_data.findKey(Exiv2::IptcKey(tag));
+ while (it != iptc_data.end() && it->count() == 0)
+ it++;
+
+ if (it != iptc_data.end()) {
+ long size = it->size();
+ if( size > 0 ) {
+ gpointer data = g_malloc(size);
+ it->copy((Exiv2::byte*)data, Exiv2::invalidByteOrder);
+ return g_bytes_new_take(data, size);
+ }
+ }
+ } catch (Exiv2::Error& e) {
+ LOG_ERROR(e);
+ }
+
+ return NULL;
+}
+
G_END_DECLS
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gexiv2-0.10.2/gexiv2/gexiv2-metadata-private.h new/gexiv2-0.10.3/gexiv2/gexiv2-metadata-private.h
--- old/gexiv2-0.10.2/gexiv2/gexiv2-metadata-private.h 2014-01-17 21:14:49.000000000 +0100
+++ new/gexiv2-0.10.3/gexiv2/gexiv2-metadata-private.h 2015-03-24 00:05:49.000000000 +0100
@@ -50,6 +50,8 @@
const gchar* gexiv2_metadata_get_exif_tag_description (const gchar* tag);
const gchar* gexiv2_metadata_get_exif_tag_type (const gchar* tag);
+GBytes* gexiv2_metadata_get_exif_tag_raw (GExiv2Metadata *self, const gchar* tag);
+
/* private XMP functions */
gboolean gexiv2_metadata_clear_xmp_tag (GExiv2Metadata *self, const gchar* tag);
@@ -66,6 +68,8 @@
const gchar* gexiv2_metadata_get_xmp_tag_description (const gchar* tag);
const gchar* gexiv2_metadata_get_xmp_tag_type (const gchar* tag);
+GBytes* gexiv2_metadata_get_xmp_tag_raw (GExiv2Metadata *self, const gchar* tag);
+
/* private IPTC functions */
gboolean gexiv2_metadata_clear_iptc_tag (GExiv2Metadata *self, const gchar* tag);
@@ -80,6 +84,7 @@
const gchar* gexiv2_metadata_get_iptc_tag_description (const gchar* tag);
const gchar* gexiv2_metadata_get_iptc_tag_type (const gchar* tag);
+GBytes* gexiv2_metadata_get_iptc_tag_raw (GExiv2Metadata *self, const gchar* tag);
G_END_DECLS
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gexiv2-0.10.2/gexiv2/gexiv2-metadata-xmp.cpp new/gexiv2-0.10.3/gexiv2/gexiv2-metadata-xmp.cpp
--- old/gexiv2-0.10.2/gexiv2/gexiv2-metadata-xmp.cpp 2014-09-16 22:31:19.000000000 +0200
+++ new/gexiv2-0.10.3/gexiv2/gexiv2-metadata-xmp.cpp 2015-03-24 00:05:49.000000000 +0100
@@ -30,6 +30,22 @@
self->priv->image->xmpData().clear();
}
+gchar *gexiv2_metadata_generate_xmp_packet(GExiv2Metadata *self,
+ GExiv2XmpFormatFlags xmp_format_flags, guint32 padding) {
+ g_return_val_if_fail(GEXIV2_IS_METADATA (self), NULL);
+ g_return_val_if_fail(self->priv->image.get() != NULL, NULL);
+
+ Exiv2::XmpData &xmp_data = self->priv->image->xmpData();
+ try {
+ if (Exiv2::XmpParser::encode(self->priv->image->xmpPacket(), xmp_data, xmp_format_flags, padding) == 0)
+ return g_strdup(self->priv->image->xmpPacket().c_str());
+ } catch (Exiv2::Error& e) {
+ LOG_ERROR(e);
+ }
+
+ return NULL;
+}
+
gchar *gexiv2_metadata_get_xmp_packet(GExiv2Metadata *self) {
g_return_val_if_fail(GEXIV2_IS_METADATA (self), NULL);
g_return_val_if_fail(self->priv->image.get() != NULL, NULL);
@@ -156,6 +172,47 @@
return NULL;
}
+gboolean gexiv2_metadata_set_xmp_tag_struct (GExiv2Metadata *self, const gchar* tag, GExiv2StructureType type) {
+ g_return_val_if_fail(GEXIV2_IS_METADATA (self), FALSE);
+ g_return_val_if_fail(tag != NULL, FALSE);
+ g_return_val_if_fail(self->priv->image.get() != NULL, FALSE);
+
+ Exiv2::XmpTextValue tv("");
+ Exiv2::XmpData& xmp_data = self->priv->image->xmpData();
+
+ switch (type) {
+ case GEXIV2_STRUCTURE_XA_NONE:
+ tv.read(""); // Clear the value
+ tv.setXmpArrayType(Exiv2::XmpValue::xaNone);
+ break;
+ case GEXIV2_STRUCTURE_XA_ALT:
+ tv.read("");
+ tv.setXmpArrayType(Exiv2::XmpValue::xaAlt);
+ break;
+ case GEXIV2_STRUCTURE_XA_BAG:
+ tv.read("");
+ tv.setXmpArrayType(Exiv2::XmpValue::xaBag);
+ break;
+ case GEXIV2_STRUCTURE_XA_SEQ:
+ tv.read("");
+ tv.setXmpArrayType(Exiv2::XmpValue::xaSeq);
+ break;
+ default:
+ g_warning("Invalid structure type.");
+ return FALSE;
+ break;
+ }
+
+ try {
+ xmp_data.add(Exiv2::XmpKey(tag), &tv);
+ return TRUE;
+ } catch (Exiv2::Error& e) {
+ LOG_ERROR(e);
+ }
+
+ return FALSE;
+}
+
gboolean gexiv2_metadata_set_xmp_tag_string (GExiv2Metadata *self, const gchar* tag,
const gchar* value) {
g_return_val_if_fail(GEXIV2_IS_METADATA (self), FALSE);
@@ -312,6 +369,33 @@
return NULL;
}
+GBytes* gexiv2_metadata_get_xmp_tag_raw (GExiv2Metadata *self, const gchar* tag) {
+ g_return_val_if_fail(GEXIV2_IS_METADATA (self), NULL);
+ g_return_val_if_fail(tag != NULL, NULL);
+ g_return_val_if_fail(self->priv->image.get() != NULL, NULL);
+
+ Exiv2::XmpData& xmp_data = self->priv->image->xmpData();
+
+ try {
+ Exiv2::XmpData::iterator it = xmp_data.findKey(Exiv2::XmpKey(tag));
+ while (it != xmp_data.end() && it->count() == 0)
+ it++;
+
+ if (it != xmp_data.end()) {
+ long size = it->size();
+ if( size > 0 ) {
+ gpointer data = g_malloc(size);
+ it->copy((Exiv2::byte*)data, Exiv2::invalidByteOrder);
+ return g_bytes_new_take(data, size);
+ }
+ }
+ } catch (Exiv2::Error& e) {
+ LOG_ERROR(e);
+ }
+
+ return NULL;
+}
+
gboolean gexiv2_metadata_register_xmp_namespace (const gchar* name, const gchar* prefix) {
g_return_val_if_fail(name != NULL, FALSE);
g_return_val_if_fail(prefix != NULL, FALSE);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gexiv2-0.10.2/gexiv2/gexiv2-metadata.cpp new/gexiv2-0.10.3/gexiv2/gexiv2-metadata.cpp
--- old/gexiv2-0.10.2/gexiv2/gexiv2-metadata.cpp 2014-01-17 21:14:04.000000000 +0100
+++ new/gexiv2-0.10.3/gexiv2/gexiv2-metadata.cpp 2015-03-24 00:06:27.000000000 +0100
@@ -741,7 +741,7 @@
}
gdouble gexiv2_metadata_get_fnumber (GExiv2Metadata *self) {
- return gexiv2_metadata_get_exif_tag_rational_as_double(self, "Exif.Photo.Fnumber", -1.0);
+ return gexiv2_metadata_get_exif_tag_rational_as_double(self, "Exif.Photo.FNumber", -1.0);
}
gdouble gexiv2_metadata_get_focal_length (GExiv2Metadata *self) {
@@ -868,4 +868,21 @@
return NULL;
}
+GBytes* gexiv2_metadata_get_tag_raw(GExiv2Metadata *self, const gchar* tag) {
+ g_return_val_if_fail(GEXIV2_IS_METADATA (self), NULL);
+ g_return_val_if_fail(tag != NULL, NULL);
+ g_return_val_if_fail(self->priv->image.get() != NULL, NULL);
+
+ if (gexiv2_metadata_is_xmp_tag(tag))
+ return gexiv2_metadata_get_xmp_tag_raw(self, tag);
+
+ if (gexiv2_metadata_is_exif_tag(tag))
+ return gexiv2_metadata_get_exif_tag_raw(self, tag);
+
+ if (gexiv2_metadata_is_iptc_tag(tag))
+ return gexiv2_metadata_get_iptc_tag_raw(self, tag);
+
+ return NULL;
+}
+
G_END_DECLS
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gexiv2-0.10.2/gexiv2/gexiv2-metadata.h new/gexiv2-0.10.3/gexiv2/gexiv2-metadata.h
--- old/gexiv2-0.10.2/gexiv2/gexiv2-metadata.h 2014-09-16 22:29:07.000000000 +0200
+++ new/gexiv2-0.10.3/gexiv2/gexiv2-metadata.h 2015-03-24 00:05:49.000000000 +0100
@@ -64,6 +64,29 @@
GEXIV2_ORIENTATION_MAX = 8
} GExiv2Orientation;
+typedef enum {
+ GEXIV2_STRUCTURE_XA_NONE = 0,
+ GEXIV2_STRUCTURE_XA_ALT = 20,
+ GEXIV2_STRUCTURE_XA_BAG = 21,
+ GEXIV2_STRUCTURE_XA_SEQ = 22,
+ GEXIV2_STRUCTURE_XA_LANG = 23
+} GExiv2StructureType;
+
+/**
+ * GExiv2XmpFormatFlags:
+ * Options to control the format of the serialized XMP packet
+ * Taken from: exiv2/src/xmp.hpp
+ *
+ */
+typedef enum {
+ GEXIV2_OMIT_PACKET_WRAPPER = 0x0010UL, //!< Omit the XML packet wrapper.
+ GEXIV2_READ_ONLY_PACKET = 0x0020UL, //!< Default is a writeable packet.
+ GEXIV2_USE_COMPACT_FORMAT = 0x0040UL, //!< Use a compact form of RDF.
+ GEXIV2_INCLUDE_THUMBNAIL_PAD = 0x0100UL, //!< Include a padding allowance for a thumbnail image.
+ GEXIV2_EXACT_PACKET_LENGTH = 0x0200UL, //!< The padding parameter is the overall packet length.
+ GEXIV2_WRITE_ALIAS_COMMENTS = 0x0400UL, //!< Show aliases as XML comments.
+ GEXIV2_OMIT_ALL_FORMATTING = 0x0800UL //!< Omit all formatting whitespace.
+} GExiv2XmpFormatFlags;
typedef struct _GExiv2Metadata GExiv2Metadata;
typedef struct _GExiv2MetadataClass GExiv2MetadataClass;
@@ -338,6 +361,17 @@
gboolean gexiv2_metadata_set_tag_string (GExiv2Metadata *self, const gchar* tag, const gchar* value);
/**
+ * gexiv2_metadata_set_tag_struct:
+ * @tag: Exiv2 tag name
+ * @type: The GExiv2StructureType specifying the type of structure
+ *
+ * The Exiv2 Tag Reference can be found at http://exiv2.org/metadata.html
+ *
+ * Returns: TRUE on success
+ */
+gboolean gexiv2_metadata_set_xmp_tag_struct (GExiv2Metadata *self, const gchar* tag, GExiv2StructureType type);
+
+/**
* gexiv2_metadata_get_tag_interpreted_string:
* @tag: Exiv2 tag name
*
@@ -395,6 +429,16 @@
gboolean gexiv2_metadata_set_tag_multiple (GExiv2Metadata *self, const gchar* tag, const gchar** values);
/**
+ * gexiv2_metadata_get_tag_raw:
+ * @tag: Exiv2 tag name
+ *
+ * The Exiv2 Tag Reference can be found at http://exiv2.org/metadata.html
+ *
+ * Returns: (transfer full) (allow-none): The tag's raw value as a byte array
+ */
+GBytes* gexiv2_metadata_get_tag_raw (GExiv2Metadata *self, const gchar* tag);
+
+/**
* EXIF functions
*/
@@ -493,9 +537,16 @@
void gexiv2_metadata_clear_xmp (GExiv2Metadata *self);
/**
+ * gexiv2_metadata_generate_xmp_packet:
+ *
+ * Returns: (transfer full) (allow-none): Encode the XMP packet and return as a NUL-terminated string.
+ */
+gchar* gexiv2_metadata_generate_xmp_packet (GExiv2Metadata *self, GExiv2XmpFormatFlags xmp_format_flags, guint32 padding);
+
+/**
* gexiv2_metadata_get_xmp_packet:
*
- * Returns: (transfer full) (allow-none): The XMP tag's description
+ * Returns: (transfer full) (allow-none): The currently-encoded XMP packet (see gexiv2_metadata_generate_xmp_packet).
*/
gchar* gexiv2_metadata_get_xmp_packet (GExiv2Metadata *self);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gexiv2-0.10.2/gexiv2/gexiv2-version.h new/gexiv2-0.10.3/gexiv2/gexiv2-version.h
--- old/gexiv2-0.10.2/gexiv2/gexiv2-version.h 2014-09-17 00:15:56.000000000 +0200
+++ new/gexiv2-0.10.3/gexiv2/gexiv2-version.h 2015-03-24 00:14:43.000000000 +0100
@@ -13,7 +13,7 @@
#define GEXIV2_MAJOR_VERSION 0
#define GEXIV2_MINOR_VERSION 10
-#define GEXIV2_MICRO_VERSION 2
+#define GEXIV2_MICRO_VERSION 3
/**
* GEXIV2_CHECK_VERSION:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gexiv2-0.10.2/gexiv2.vapi new/gexiv2-0.10.3/gexiv2.vapi
--- old/gexiv2-0.10.2/gexiv2.vapi 2014-03-17 22:13:05.000000000 +0100
+++ new/gexiv2-0.10.3/gexiv2.vapi 2015-03-24 00:05:49.000000000 +0100
@@ -30,6 +30,7 @@
public void delete_gps_info ();
public void erase_exif_thumbnail ();
public bool from_app1_segment ([CCode (array_length = false)] uchar[] data, long n_data) throws GLib.Error;
+ public string? generate_xmp_packet (GExiv2.XmpFormatFlags xmp_format_flags, uint32 padding);
public string? get_comment ();
public bool get_exif_tag_rational (string tag, out int nom, out int den);
[CCode (array_length = false, array_null_terminated = true)]
@@ -61,6 +62,7 @@
public long get_tag_long (string tag);
[CCode (array_length = false, array_null_terminated = true)]
public string[]? get_tag_multiple (string tag);
+ public GLib.Bytes? get_tag_raw (string tag);
public string? get_tag_string (string tag);
public static unowned string get_tag_type (string tag);
public string? get_xmp_packet ();
@@ -88,6 +90,7 @@
public bool set_tag_long (string tag, long value);
public bool set_tag_multiple (string tag, [CCode (array_length = false, array_null_terminated = true)] string[] values);
public bool set_tag_string (string tag, string value);
+ public bool set_xmp_tag_struct (string tag, GExiv2.StructureType type);
public static void unregister_all_xmp_namespaces ();
public static bool unregister_xmp_namespace (string name);
}
@@ -132,12 +135,30 @@
ROT_270,
MAX
}
+ [CCode (cheader_filename = "gexiv2/gexiv2.h", cprefix = "GEXIV2_STRUCTURE_XA_", has_type_id = false)]
+ public enum StructureType {
+ NONE,
+ ALT,
+ BAG,
+ SEQ,
+ LANG
+ }
[CCode (cheader_filename = "gexiv2/gexiv2.h", cprefix = "", has_type_id = false)]
public enum WrapperSeekOrigin {
Begin,
Current,
End
}
+ [CCode (cheader_filename = "gexiv2/gexiv2.h", cprefix = "GEXIV2_", has_type_id = false)]
+ public enum XmpFormatFlags {
+ OMIT_PACKET_WRAPPER,
+ READ_ONLY_PACKET,
+ USE_COMPACT_FORMAT,
+ INCLUDE_THUMBNAIL_PAD,
+ EXACT_PACKET_LENGTH,
+ WRITE_ALIAS_COMMENTS,
+ OMIT_ALL_FORMATTING
+ }
[CCode (cheader_filename = "gexiv2/gexiv2.h", has_target = false)]
public delegate void LogHandler (GExiv2.LogLevel level, string msg);
[CCode (cheader_filename = "gexiv2/gexiv2.h", has_target = false)]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gexiv2-0.10.2/test/python/gexiv2.py new/gexiv2-0.10.3/test/python/gexiv2.py
--- old/gexiv2-0.10.2/test/python/gexiv2.py 1970-01-01 01:00:00.000000000 +0100
+++ new/gexiv2-0.10.3/test/python/gexiv2.py 2015-03-24 00:05:49.000000000 +0100
@@ -0,0 +1,53 @@
+# -*- Mode: Python; py-indent-offset: 4 -*-
+# vim: tabstop=4 shiftwidth=4 expandtab
+#
+# Copyright (C) 2014 Alexandre Rossi <alexandre.rossi(a)gmail.com>
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License as published by the Free Software Foundation; either
+# version 2.1 of the License, or (at your option) any later version.
+#
+# This library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this library; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301
+# USA
+
+
+import unittest
+import os
+
+
+# Workaround pkutil.extend_path in dist-packages/gi/overrides/__init__.py
+# not helping us here for obscure reasons when using python2 (the following
+# is useless in python3).
+import gi.overrides
+gi.overrides.__path__.append(os.path.join(os.path.dirname(__file__),
+ 'gi', 'overrides'))
+
+
+from gi.repository import GExiv2
+
+
+SAMPLES_DIR = os.path.join(os.path.dirname(__file__), '..')
+
+
+class TestGexiv2(unittest.TestCase):
+
+ def get_sample_path(self, sample):
+ return os.path.join(SAMPLES_DIR, sample)
+
+ def test_author_badencoding(self):
+ sample = 'sample-author-badencoding.jpg'
+ md = GExiv2.Metadata(self.get_sample_path(sample))
+
+ self.assertEqual(md.get_raw('Exif.Image.Artist'), b'\xc0\xeb\xe5\xea\xf1\xe0\xed\xe4\xf0 \xca\xee\xf8\xe5\xeb\xe5\xe2\x00')
+
+
+if __name__ == '__main__':
+ unittest.main()
Files old/gexiv2-0.10.2/test/sample-author-badencoding.jpg and new/gexiv2-0.10.3/test/sample-author-badencoding.jpg differ
1
0
Hello community,
here is the log from the commit of package reiserfs for openSUSE:Factory checked in at 2015-03-30 19:31:11
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/reiserfs (Old)
and /work/SRC/openSUSE:Factory/.reiserfs.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "reiserfs"
Changes:
--------
--- /work/SRC/openSUSE:Factory/reiserfs/reiserfs.changes 2013-11-07 08:44:16.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.reiserfs.new/reiserfs.changes 2015-03-30 19:31:12.000000000 +0200
@@ -1,0 +2,5 @@
+Mon Mar 23 23:37:21 UTC 2015 - crrodriguez(a)opensuse.org
+
+- Use -fgnu89-inline, fixes build with gcc5.
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ reiserfs.spec ++++++
--- /var/tmp/diff_new_pack.6Qlegz/_old 2015-03-30 19:31:12.000000000 +0200
+++ /var/tmp/diff_new_pack.6Qlegz/_new 2015-03-30 19:31:12.000000000 +0200
@@ -1,7 +1,7 @@
#
# spec file for package reiserfs
#
-# Copyright (c) 2013 SUSE LINUX Products GmbH, Nuernberg, Germany.
+# Copyright (c) 2015 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
@@ -67,6 +67,7 @@
%build
autoreconf -fiv
+export CFLAGS="%optflags -fgnu89-inline"
%configure --exec-prefix=/ --bindir=/bin --sbindir=/sbin
make %{?_smp_mflags}
1
0
Hello community,
here is the log from the commit of package mono-core for openSUSE:Factory checked in at 2015-03-30 19:31:04
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/mono-core (Old)
and /work/SRC/openSUSE:Factory/.mono-core.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "mono-core"
Changes:
--------
--- /work/SRC/openSUSE:Factory/mono-core/mono-core.changes 2015-03-18 13:03:18.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.mono-core.new/mono-core.changes 2015-03-30 19:31:06.000000000 +0200
@@ -1,0 +2,15 @@
+Tue Mar 24 13:14:18 UTC 2015 - dvaleev(a)suse.com
+
+- Don't run parralel build. It is too fragile
+
+-------------------------------------------------------------------
+Mon Mar 23 22:04:47 UTC 2015 - dvaleev(a)suse.com
+
+- Cleanup patch numbers
+- Rebase ppc64 patches based on upstream (commits are 173eaf1dfaf,
+ 7e056cd346c, PR#1479) - 0001-ppc64le-fixes.patch bsc#923558
+- drop mono-core-ppc64le-callreg.diff
+- drop mono-core-ppc64le-swr11r12.diff
+- mono-core-ppc64le.diff
+
+-------------------------------------------------------------------
Old:
----
mono-core-ppc64le-callreg.diff
mono-core-ppc64le-swr11r12.diff
mono-core-ppc64le.diff
New:
----
0001-ppc64le-fixes.patch
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ mono-core.spec ++++++
--- /var/tmp/diff_new_pack.jPgCfc/_old 2015-03-30 19:31:08.000000000 +0200
+++ /var/tmp/diff_new_pack.jPgCfc/_new 2015-03-30 19:31:08.000000000 +0200
@@ -30,20 +30,16 @@
Source0: http://download.mono-project.com/sources/mono/mono-%{version}.tar.bz2
Source1: mono-core.rpmlintrc
# PATCH-FIX-UPSTREAM Use runtime 4.5 as default for nunit
-Patch5: mono-nunit-default-runtime-4.5.patch
-# PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines
-Patch7: mono-core-ppc64le.diff
-# PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines
-Patch8: mono-core-ppc64le-swr11r12.diff
-# PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines
-Patch9: mono-core-ppc64le-callreg.diff
+Patch0: mono-nunit-default-runtime-4.5.patch
# PATCH-FIX-UPSTREAM resources/keyboards.resources exists on x86_64,
# so cp won't work, should add -r argument
-Patch10: mono-3.x-keyboards.resources-cp_r.patch
+Patch1: mono-3.x-keyboards.resources-cp_r.patch
# PATCH-FIX-UPSTREAM https://github.com/mono/mono/commit/b27d0248772e0b3288fba4f7328bfea1a669368…
-Patch11: gc-64bit-portability-warning.patch
+Patch2: gc-64bit-portability-warning.patch
# PATCH-FIX-UPSTREAM https://github.com/mono/mono/pull/1514.patch
-Patch12: X509Certificate-workaround.patch
+Patch3: X509Certificate-workaround.patch
+# PATCH-FIX-UPSTREAM 173eaf1dfaf,7e056cd346c, PR#1479
+Patch4: 0001-ppc64le-fixes.patch
BuildRequires: autoconf
BuildRequires: automake
BuildRequires: bison
@@ -106,15 +102,11 @@
%prep
%setup -q -n mono-%{version}
-%patch5 -p1
-%ifarch ppc64
-%patch7 -p1
-%patch8 -p1
-%patch9 -p1
-%endif
-%patch10 -p1
-%patch11 -p1
-%patch12 -p1
+%patch0 -p1
+%patch1 -p1
+%patch2 -p1
+%patch3 -p1
+%patch4 -p1
%build
./autogen.sh
@@ -148,7 +140,7 @@
--with-ikvm=yes \
--with-moonlight=no
-make %{?_smp_mflags}
+make
%install
%make_install
@@ -1204,10 +1196,7 @@
Requires: mono-winforms = %{version}
Requires: pkgconfig
Provides: mono-xbuild = %{version}
-# We build natively on ppc64 now
-%ifarch ppc64
Provides: mono-biarchcompat = %{version}
-%endif
Provides: mono(PEAPI) = 1.0.5000.0
Provides: mono(resgen) = 1.0.5000.0
++++++ 0001-ppc64le-fixes.patch ++++++
++++ 1606 lines (skipped)
1
0
Hello community,
here is the log from the commit of package memtest86+ for openSUSE:Factory checked in at 2015-03-30 19:30:58
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/memtest86+ (Old)
and /work/SRC/openSUSE:Factory/.memtest86+.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "memtest86+"
Changes:
--------
--- /work/SRC/openSUSE:Factory/memtest86+/memtest86+.changes 2015-02-22 17:27:09.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.memtest86+.new/memtest86+.changes 2015-03-30 19:30:59.000000000 +0200
@@ -1,0 +2,6 @@
+Mon Mar 23 23:46:06 UTC 2015 - crrodriguez(a)opensuse.org
+
+- memtest86+-gcc5.patch: Use -fgnu89-inline, fix build with
+ GCC5, code relies on old inline semantics.
+
+-------------------------------------------------------------------
New:
----
memtest86+-gcc5.patch
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ memtest86+.spec ++++++
--- /var/tmp/diff_new_pack.wz3GhV/_old 2015-03-30 19:31:00.000000000 +0200
+++ /var/tmp/diff_new_pack.wz3GhV/_new 2015-03-30 19:31:00.000000000 +0200
@@ -40,6 +40,7 @@
Patch1: memtest86+-5.01-no-optimization.patch
Patch2: memtest86+-5.01-compile-fix.patch
Patch3: memtest86+-5.01-array-size-fix.patch
+Patch4: memtest86+-gcc5.patch
Summary: Memory Testing Image for x86 Architecture
License: BSD-3-Clause
Group: System/Boot
@@ -54,7 +55,7 @@
%patch1 -p1
%patch2 -p1
%patch3 -p1
-
+%patch4 -p1
%build
make
++++++ memtest86+-gcc5.patch ++++++
--- memtest86+-5.01.orig/Makefile
+++ memtest86+-5.01/Makefile
@@ -14,7 +14,7 @@ AS=as -32
CC=gcc
CFLAGS= -Wall -march=i486 -m32 -O0 -fomit-frame-pointer -fno-builtin \
- -ffreestanding -fPIC $(SMP_FL) -fno-stack-protector
+ -ffreestanding -fPIC $(SMP_FL) -fno-stack-protector -fgnu89-inline
OBJS= head.o reloc.o main.o test.o init.o lib.o patn.o screen_buffer.o \
config.o cpuid.o linuxbios.o pci.o memsize.o spd.o error.o dmi.o controller.o \
1
0
Hello community,
here is the log from the commit of package protobuf for openSUSE:Factory checked in at 2015-03-30 19:30:52
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/protobuf (Old)
and /work/SRC/openSUSE:Factory/.protobuf.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "protobuf"
Changes:
--------
--- /work/SRC/openSUSE:Factory/protobuf/protobuf.changes 2013-11-07 08:43:44.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.protobuf.new/protobuf.changes 2015-03-30 19:30:53.000000000 +0200
@@ -1,0 +2,52 @@
+Sat Feb 28 10:41:07 UTC 2015 - mpluskal(a)suse.com
+
+- Add protobuf-return-no-nonvoid.patch
+- Do not install examples
+- Remove 0001-Add-generic-GCC-support-for-atomic-operations.patch
+
+-------------------------------------------------------------------
+Fri Feb 27 19:20:16 UTC 2015 - mpluskal(a)suse.com
+
+- Use current url's
+- Update dependencies
+ * python bindings now require recent python-google-apputils
+ which are available only in recet (13.1 and higher releases of
+ openSUSE)
+- Update to 2.6.1
+ * Added atomicops support for Solaris.
+ * Released memory allocated by InitializeDefaultRepeatedFields()
+ and GetEmptyString(). Some memory sanitizers reported them
+ as memory leaks.
+ * Updated DynamicMessage.setField() to handle repeated enum
+ values correctly.
+ * Fixed a bug that caused NullPointerException to be thrown when
+ converting manually constructed FileDescriptorProto to
+ FileDescriptor.
+- Changes for 2.6.0
+ * Added oneofs(unions) feature. Fields in the same oneof will
+ share memory and at most one field can be set at the same time.
+ * Files, services, enums, messages, methods and enum values
+ can be marked as deprecated now.
+ * Added Support for list values, including lists of mesaages,
+ when parsing text-formatted protos in C++ and Java.
+ * Enhanced customization on TestFormat printing.
+ * Added SwapFields() in reflection API to swap a subset of
+ fields.
+ * Added SetAllocatedMessage() in reflection API.
+ * Repeated primitive extensions are now packable. The
+ [packed=true] option only affects serializers. Therefore,
+ it is possible to switch a repeated extension field to
+ packed format without breaking backwards-compatibility.
+ * Various speed optimizations.
+ * writeTo() method in ByteString can now write a substring to
+ an output stream. Added endWith() method for ByteString.
+ * ByteString and ByteBuffer are now supported in CodedInputStream
+ and CodedOutputStream.
+ * java_generate_equals_and_hash can now be used with the
+ LITE_RUNTIME.
+ * A new C++-backed extension module (aka "cpp api v2") that
+ replaces the old ("cpp api v1") one. Much faster than the
+ pure Python code. This one resolves many bugs and is
+ recommended for general use over the pure Python when possible.
+
+-------------------------------------------------------------------
Old:
----
0001-Add-generic-GCC-support-for-atomic-operations.patch
protobuf-2.5.0.tar.bz2
New:
----
protobuf-2.6.1.tar.bz2
protobuf-return-no-nonvoid.patch
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ protobuf.spec ++++++
--- /var/tmp/diff_new_pack.M7XAVu/_old 2015-03-30 19:30:54.000000000 +0200
+++ /var/tmp/diff_new_pack.M7XAVu/_new 2015-03-30 19:30:54.000000000 +0200
@@ -1,7 +1,7 @@
#
# spec file for package protobuf
#
-# Copyright (c) 2013 SUSE LINUX Products GmbH, Nuernberg, Germany.
+# Copyright (c) 2015 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,34 +16,32 @@
#
-%define soname 8
-
+%define soname 9
%bcond_without check
-
+Name: protobuf
+Version: 2.6.1
+Release: 0
+Summary: Protocol Buffers - Google's data interchange format
+License: BSD-3-Clause
+Group: Development/Libraries/C and C++
+Url: https://github.com/google/protobuf/
+Source0: https://github.com/google/protobuf/releases/download/v%{version}/%{name}-%{…
+Source1: manifest.txt.in
+Source2: baselibs.conf
+Patch0: protobuf-setuptools-2.4.1.patch
+# fix no-return-in-nonvoid-function google/protobuf/extension_set.cc:74
+Patch1: protobuf-return-no-nonvoid.patch
+BuildRoot: %{_tmppath}/%{name}-%{version}-build
%if 0%{?fedora_version} > 8 || 0%{?mandriva_version} > 2008 || 0%{?suse_version} > 1030
%bcond_without protobuf_java
%else
%bcond_with protobuf_java
%endif
-
-%if 0%{?suse_version} > 1100
+%if 0%{?suse_version} > 1210 && 0%{?suse_version} != 1315
%bcond_without protobuf_python
%else
%bcond_with protobuf_python
%endif
-
-Name: protobuf
-Summary: Protocol Buffers - Google's data interchange format
-License: BSD-3-Clause
-Group: Development/Libraries/C and C++
-Version: 2.5.0
-Release: 0
-Url: http://code.google.com/p/protobuf/
-Source0: http://protobuf.googlecode.com/files/%{name}-%{version}.tar.bz2
-Source1: manifest.txt.in
-Patch0: protobuf-setuptools-2.4.1.patch
-Patch1: 0001-Add-generic-GCC-support-for-atomic-operations.patch
-BuildRoot: %{_tmppath}/%{name}-%{version}-build
%if 0%{?suse_version} > 1010
BuildRequires: fdupes
%endif
@@ -51,12 +49,16 @@
BuildRequires: java-devel >= 1.6.0
%endif
%if %{with protobuf_python}
-BuildRequires: gcc-c++
-BuildRequires: python
+BuildRequires: python-dateutil
BuildRequires: python-devel
+BuildRequires: python-google-apputils >= 0.4.2
+BuildRequires: python-python-gflags
+BuildRequires: python-pytz
BuildRequires: python-setuptools
BuildRequires: zlib-devel
%endif
+BuildRequires: gcc-c++
+BuildRequires: pkg-config
%description
Protocol Buffers are a way of encoding structured data in an efficient yet
@@ -94,37 +96,35 @@
Summary: Header files, libraries and development documentation for %{name}
Group: Development/Libraries/C and C++
Requires: gcc-c++
-Requires: libprotobuf%{soname} = %version
+Requires: libprotobuf%{soname} = %{version}
Requires: libprotobuf-lite%{soname}
-Provides: libprotobuf-devel = %version
Requires: zlib-devel
-BuildRequires: pkg-config
+Provides: libprotobuf-devel = %{version}
%description devel
-Development files for Google Protocol Buffers
+Protocol Buffers are a way of encoding structured data in an efficient yet
+extensible format. Google uses Protocol Buffers for almost all of its internal
+RPC protocols and file formats.
%if %{with protobuf_java}
-
%package -n %{name}-java
-Requires: java >= 1.6.0
Summary: Java Bindings for Google Protocol Buffers
Group: Development/Libraries/Java
+Requires: java >= 1.6.0
%description -n %{name}-java
This package contains the Java bindings for Google Protocol Buffers.
%endif
%if %{with protobuf_python}
-
%package -n python-%{name}
-
+Summary: Python Bindings for Google Protocol Buffers
+Group: Development/Libraries/Python
%if 0%{?suse_version}
%py_requires
%else
Requires: python
%endif
-Summary: Python Bindings for Google Protocol Buffers
-Group: Development/Libraries/Python
%description -n python-%{name}
This package contains the Python bindings for Google Protocol Buffers.
@@ -133,7 +133,7 @@
%prep
%setup -q
-%patch0 -p0
+%patch0
%patch1 -p1
%build
@@ -141,68 +141,66 @@
#XXX something wents wrong with detecting this
export PTHREAD_LIBS=-lpthread
%endif
-#
-%configure --disable-static
-%{__make} %{?jobs:-j%jobs}
-#
+
+%configure \
+ --disable-static
+
+make %{?_smp_mflags}
+
%if %{with protobuf_java}
pushd java
../src/protoc --java_out=src/main/java -I../src ../src/google/protobuf/descriptor.proto
-%__mkdir classes
+mkdir classes
%if 0%{?suse_version} == 1110
# 11.1 only workaround
# http://en.opensuse.org/Java/Packaging/Cookbook#bytecode_version_error
extra_java_flags="-target 1.5 -source 1.5"
%endif
javac $extra_java_flags -d classes src/main/java/com/google/protobuf/*.java
-sed -e 's/@VERSION@/%version/' < %{SOURCE1} > manifest.txt
+sed -e 's/@VERSION@/%{version}/' < %{SOURCE1} > manifest.txt
jar cfm %{name}-java-%{version}.jar manifest.txt -C classes com
popd
%endif
-#
+
%if %{with protobuf_python}
pushd python
-%__python setup.py build
+python setup.py build
popd
%endif
%if %{with check}
-
%check
-%{__make} check %{?jobs:-j%jobs}
+make %{?_smp_mflags} check
%endif
%install
-%makeinstall
-%__install -Dm 0644 editors/proto.vim %{buildroot}%{_datadir}/vim/site/syntax/proto.vim
+make DESTDIR=%{buildroot} install %{?_smp_mflags}
+install -Dm 0644 editors/proto.vim %{buildroot}%{_datadir}/vim/site/syntax/proto.vim
# no need for that
-/bin/rm %{buildroot}%{_libdir}/*.la
-#
+find %{buildroot} -type f -name "*.la" -delete -print
+
%if %{with protobuf_java}
pushd java
-%__install -D -m 0644 %{name}-java-%{version}.jar %{buildroot}%{_javadir}/%{name}-java-%{version}.jar
-%__ln_s %{name}-java-%{version}.jar %{buildroot}%{_javadir}/%{name}-java.jar
-%__ln_s %{name}-java-%{version}.jar %{buildroot}%{_javadir}/%{name}.jar
+install -D -m 0644 %{name}-java-%{version}.jar %{buildroot}%{_javadir}/%{name}-java-%{version}.jar
+ln -s %{name}-java-%{version}.jar %{buildroot}%{_javadir}/%{name}-java.jar
+ln -s %{name}-java-%{version}.jar %{buildroot}%{_javadir}/%{name}.jar
popd
%endif
-#
+
%if %{with protobuf_python}
pushd python
-%__python setup.py install --skip-build \
+python setup.py install --skip-build \
--prefix=%{_prefix} \
--install-data=%{_datadir} \
--root %{buildroot} \
--record-rpm=INSTALLED_FILES
popd
%endif
-#
+
%if 0%{?suse_version} > 1010
-%fdupes %{buildroot}%{py_sitedir}/%{name}-%{version}-py%{py_ver}.egg-info
+%fdupes -s %{buildroot}%{py_sitedir}
%endif
-%clean
-rm -rf $RPM_BUILD_ROOT;
-
%post -n libprotobuf%{soname} -p /sbin/ldconfig
%postun -n libprotobuf%{soname} -p /sbin/ldconfig
@@ -229,9 +227,7 @@
%files devel
%defattr(-,root,root)
-%doc COPYING.txt
-%doc CHANGES.txt CONTRIBUTORS.txt README.txt
-%doc examples
+%doc CHANGES.txt CONTRIBUTORS.txt README.md
%{_bindir}/protoc
%{_includedir}/google
%{_libdir}/*.so
@@ -239,14 +235,12 @@
%{_datadir}/vim
%if %{with protobuf_java}
-
%files -n %{name}-java
%defattr(-,root,root)
%{_javadir}/protobuf*
%endif
%if %{with protobuf_python}
-
%files -n python-%{name} -f python/INSTALLED_FILES
%defattr(-,root,root)
%endif
++++++ protobuf-2.5.0.tar.bz2 -> protobuf-2.6.1.tar.bz2 ++++++
++++ 94365 lines of diff (skipped)
++++++ protobuf-return-no-nonvoid.patch ++++++
Index: protobuf-2.6.1/src/google/protobuf/extension_set.cc
===================================================================
--- protobuf-2.6.1.orig/src/google/protobuf/extension_set.cc
+++ protobuf-2.6.1/src/google/protobuf/extension_set.cc
@@ -71,6 +71,7 @@ inline bool is_packable(WireFormatLite::
// Do not add a default statement. Let the compiler complain when someone
// adds a new wire type.
}
+ return true;
}
// Registry stuff.
++++++ protobuf-setuptools-2.4.1.patch ++++++
--- /var/tmp/diff_new_pack.M7XAVu/_old 2015-03-30 19:30:56.000000000 +0200
+++ /var/tmp/diff_new_pack.M7XAVu/_new 2015-03-30 19:30:56.000000000 +0200
@@ -1,7 +1,9 @@
python tries to auto download a newer version ... o_O
---- python/ez_setup.py
+Index: python/ez_setup.py
+===================================================================
+--- python/ez_setup.py.orig
+++ python/ez_setup.py
-@@ -19,7 +19,7 @@
+@@ -19,7 +19,7 @@ the appropriate options to ``use_setupto
This file can also be run as a script to install or upgrade setuptools.
"""
import sys
1
0
Hello community,
here is the log from the commit of package ntp for openSUSE:Factory checked in at 2015-03-30 19:30:39
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/ntp (Old)
and /work/SRC/openSUSE:Factory/.ntp.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "ntp"
Changes:
--------
--- /work/SRC/openSUSE:Factory/ntp/ntp.changes 2015-03-12 16:36:29.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.ntp.new/ntp.changes 2015-03-30 19:30:40.000000000 +0200
@@ -1,0 +2,5 @@
+Fri Mar 27 09:11:58 UTC 2015 - max(a)suse.com
+
+- /bin/logger is needed for runtime configuration (bnc#924451).
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ ntp.spec ++++++
--- /var/tmp/diff_new_pack.tVfM8e/_old 2015-03-30 19:30:41.000000000 +0200
+++ /var/tmp/diff_new_pack.tVfM8e/_new 2015-03-30 19:30:41.000000000 +0200
@@ -1,7 +1,7 @@
#
# spec file for package ntp
#
-# Copyright (c) 2015 SUSE LINUX Products GmbH, Nuernberg, Germany.
+# Copyright (c) 2015 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
@@ -68,6 +68,7 @@
BuildRequires: openssl-devel
BuildRequires: readline-devel
BuildRequires: pkgconfig(systemd)
+Requires: /bin/logger
Requires: timezone
Requires(pre): %fillup_prereq
Requires(pre): %{_bindir}/chkconfig
1
0
Hello community,
here is the log from the commit of package gnome-builder for openSUSE:Factory checked in at 2015-03-30 19:30:26
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/gnome-builder (Old)
and /work/SRC/openSUSE:Factory/.gnome-builder.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "gnome-builder"
Changes:
--------
New Changes file:
--- /dev/null 2015-03-12 01:14:30.992027505 +0100
+++ /work/SRC/openSUSE:Factory/.gnome-builder.new/gnome-builder.changes 2015-03-30 19:30:34.000000000 +0200
@@ -0,0 +1,61 @@
+-------------------------------------------------------------------
+Thu Mar 26 14:45:19 UTC 2015 - dimstar(a)opensuse.org
+
+- Update License tag to: GPL-3.0+ and GPL-2.0+ and LGPL-3.0+ and
+ LGPL-2.1+ and MIT and CC-BY-SA-3.0 and CC0-1.0.
+
+-------------------------------------------------------------------
+Tue Mar 24 09:21:05 UTC 2015 - dimstar(a)opensuse.org
+
+- Update to version 3.16.0:
+ + A beautiful new GtkSourceView theme influenced by design grid
+ paper.
+ + Integrated source editor based on GtkSourceView.
+ + Live diagnostics as you type for C, C++ via Clang.
+ + Live diagnostics as you type for Python, Ruby, CSS, JavaScript,
+ JSON, Vala, Go, and others via gnome-code-assistance.
+ + Highlighting of added/changed lines within the source editor.
+ + Robust Vim and Emacs emulation.
+ + Multiple views into single file. Both horizontal and vertical
+ splits are supported.
+ + Navigation history to jump back and forward within modified
+ files.
+ + Robust snippet engine including support for GLib 2.44 style
+ GObjects.
+ + Quick search to locate files within your project as well as
+ documentation in devhelp.
+ + Smart backspace to simplify using spaces instead of tabs.
+ + A command bar to execute internal GActions and Vim style
+ commands with autocompletion.
+ + An implementation of Vim's scrolloffset.
+ + Restoration of insertion cursor when reloading a file.
+ + Autocompletion based on current words in loaded buffers.
+ + Experimental support for autocompletion based on clang.
+ + Support for vim, emacs, and kate style modelines.
+ + Editorconfig support.
+ + Experimental read-only support for autoconf/automake based
+ build systems.
+ + Robust auto-indenters for GNU C89, Python, and XML.
+ + Experimental project tree (available via F9).
+ + Experimental support for building automake based projects.
+ + Keybinding replay for command repeat in Vim emulation.
+ + Autosaving of modified buffers, never lose a change.
+ + Scripting via Python (CPython) or JavaScript (Gjs) and GObject
+ Introspection.
+ + Dynamic power management when running on laptop battery.
+ + HTML and Markdown live preview.
+ + Autocompletion of g_date_time_format() format parameters.
+ + Type ahead search with rubberbanding.
+- Drop gnome-builder-build-32bit.patch: fixed upstream.
+- Add gnome-builder-buildfixes.patch: Build fixes, taken from git.
+
+-------------------------------------------------------------------
+Thu Feb 5 14:56:56 UTC 2015 - dimstar(a)opensuse.org
+
+- Add gnome-builder-build-32bit.patch: Fix build on 32bit systems.
+
+-------------------------------------------------------------------
+Wed Jan 21 12:06:57 UTC 2015 - dimstar(a)opensuse.org
+
+- Initial package, version 3.15.4.1.
+
New:
----
gnome-builder-3.16.0.tar.xz
gnome-builder-buildfixes.patch
gnome-builder.changes
gnome-builder.spec
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ gnome-builder.spec ++++++
#
# spec file for package gnome-builder
#
# Copyright (c) 2015 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via http://bugs.opensuse.org/
#
Name: gnome-builder
Version: 3.16.0
Release: 0
Summary: GNOME Builder - IDE
License: GPL-3.0+ and GPL-2.0+ and LGPL-3.0+ and LGPL-2.1+ and MIT and CC-BY-SA-3.0 and CC0-1.0
Group: Development/IDE
Url: https://wiki.gnome.org/Apps/Builder
Source: http://ftp.acc.umu.se/pub/GNOME/sources/gnome-builder/3.16/%{name}-%{versio…
# PATCH-FIX-UPSTREAM gnome-builder-buildfixes.patch dimstar(a)opensuse.org -- Include build fixes from git
Patch0: gnome-builder-buildfixes.patch
BuildRequires: desktop-file-utils
BuildRequires: intltool >= 0.50.0
BuildRequires: llvm-clang-devel
BuildRequires: python3-devel gcc-c++
BuildRequires: pkgconfig(gio-2.0) >= 2.44.0
BuildRequires: pkgconfig(gio-unix-2.0) >= 2.44.0
BuildRequires: pkgconfig(gtksourceview-3.0) >= 3.16.0
BuildRequires: pkgconfig(libdevhelp-3.0) >= 3.15.92
BuildRequires: pkgconfig(libgit2-glib-1.0) >= 0.0.24
BuildRequires: pkgconfig(gjs-1.0) >= 1.42.0
BuildRequires: pkgconfig(gjs-internals-1.0) >= 1.42.0
BuildRequires: pkgconfig(pygobject-3.0) >= 3.0.0
BuildRoot: %{_tmppath}/%{name}-%{version}-build
%description
Builder is a new IDE for GNOME that is focused on bringing the power of our platform to more developers than ever before.
%lang_package
%prep
%setup -q
%patch0 -p1
%build
%configure
make %{?_smp_mflags}
%install
make DESTDIR=%{buildroot} install %{?_smp_mflags}
find %{buildroot}%{_libdir} -type f -name '*.la' -delete -print
# We package those files using regular %%doc method
rm -rf %{buildroot}%{_datadir}/doc/
%find_lang %{name}
%post
%{glib2_gsettings_schema_post}
%icon_theme_cache_post
%desktop_database_post
%postun
%{glib2_gsettings_schema_postun}
%icon_theme_cache_postun
%desktop_database_postun
%files
%defattr(-,root,root)
%doc README COPYING
%{_bindir}/%{name}
%{_datadir}/appdata/org.gnome.Builder.appdata.xml
%{_datadir}/applications/org.gnome.Builder.desktop
%{_datadir}/dbus-1/services/org.gnome.Builder.service
%{_datadir}/gir-1.0/Ide-1.0.gir
%{_datadir}/glib-2.0/schemas/org.gnome.builder.editor.gschema.xml
%{_datadir}/glib-2.0/schemas/org.gnome.builder.editor.language.gschema.xml
%{_datadir}/glib-2.0/schemas/org.gnome.builder.experimental.gschema.xml
%{_datadir}/gtksourceview-3.0/styles/builder-dark.xml
%{_datadir}/gtksourceview-3.0/styles/builder.xml
%{_datadir}/icons/hicolor/
%{_libdir}/girepository-1.0/Ide-1.0.typelib
%{_libdir}/libide-1.0.so
%{_libdir}/pkgconfig/libide-1.0.pc
%files lang -f %{name}.lang
%defattr(-,root,root)
%changelog
++++++ gnome-builder-buildfixes.patch ++++++
commit bfa98f7997f2526a127c77d9099b18378a08c58b
Author: Christian Hergert <christian(a)hergert.me>
Date: Tue Mar 24 02:44:59 2015 -0700
clang: add debugging for tracing cflags
diff --git a/libide/clang/ide-clang-service.c b/libide/clang/ide-clang-service.c
index e291d86..f840169 100644
--- a/libide/clang/ide-clang-service.c
+++ b/libide/clang/ide-clang-service.c
@@ -16,6 +16,8 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
+#define G_LOG_DOMAIN "gb-clang-service"
+
#include <clang-c/Index.h>
#include <glib/gi18n.h>
@@ -23,6 +25,7 @@
#include "ide-clang-private.h"
#include "ide-clang-service.h"
#include "ide-context.h"
+#include "ide-debug.h"
#include "ide-file.h"
#include "ide-unsaved-file.h"
#include "ide-unsaved-files.h"
@@ -194,6 +197,16 @@ ide_clang_service__get_build_flags_cb (GObject *object,
request->command_line_args = argv;
+#ifndef IDE_DISABLE_TRACE
+ {
+ gchar *cflags;
+
+ cflags = g_strjoinv (" ", argv);
+ IDE_TRACE_MSG ("CFLAGS = %s", cflags);
+ g_free (cflags);
+ }
+#endif
+
g_task_run_in_thread (task, ide_clang_service_parse_worker);
}
commit 6f6af4c61e52732e1e6aa0af3422db8af1e9ddea
Author: Garrett Regier <garrettregier(a)gmail.com>
Date: Tue Mar 24 02:13:01 2015 -0700
build: fix more build warnings
diff --git a/libide/ide-context.c b/libide/ide-context.c
index 2709b6a..56e18a2 100644
--- a/libide/ide-context.c
+++ b/libide/ide-context.c
@@ -707,10 +707,10 @@ ide_context_class_init (IdeContextClass *klass)
static void
ide_context_init (IdeContext *self)
{
- IDE_ENTRY;
-
g_autofree gchar *scriptsdir = NULL;
+ IDE_ENTRY;
+
self->root_build_dir = g_build_filename (g_get_user_cache_dir (),
ide_get_program_name (),
"builds",
diff --git a/libide/ide-ref-ptr.c b/libide/ide-ref-ptr.c
index 8633060..099e7b2 100644
--- a/libide/ide-ref-ptr.c
+++ b/libide/ide-ref-ptr.c
@@ -55,8 +55,8 @@ ide_ref_ptr_ref (IdeRefPtr *self)
void
ide_ref_ptr_unref (IdeRefPtr *self)
{
- g_return_val_if_fail (self, NULL);
- g_return_val_if_fail (self->ref_count > 0, NULL);
+ g_return_if_fail (self);
+ g_return_if_fail (self->ref_count > 0);
if (g_atomic_int_dec_and_test (&self->ref_count))
{
diff --git a/libide/modelines/modeline-parser.c b/libide/modelines/modeline-parser.c
index ef7f098..ab2ad92 100644
--- a/libide/modelines/modeline-parser.c
+++ b/libide/modelines/modeline-parser.c
@@ -676,6 +676,7 @@ modeline_parser_apply_modeline (GtkSourceView *view)
GtkTextIter iter, liter;
gint line_count;
GSettings *settings;
+ ModelineOptions *previous;
options.language_id = NULL;
options.set = MODELINE_SET_NONE;
@@ -771,8 +772,8 @@ modeline_parser_apply_modeline (GtkSourceView *view)
}
}
- ModelineOptions *previous = g_object_get_data (G_OBJECT (buffer),
- MODELINE_OPTIONS_DATA_KEY);
+ previous = g_object_get_data (G_OBJECT (buffer),
+ MODELINE_OPTIONS_DATA_KEY);
settings = g_settings_new ("org.gnome.gedit.preferences.editor");
commit dd924fab954cddcfa8403c36833554e5b41721c2
Author: Christian Hergert <christian(a)hergert.me>
Date: Tue Mar 24 02:06:50 2015 -0700
build: fix some build warnings
diff --git a/libide/devhelp/ide-devhelp-search-provider.c b/libide/devhelp/ide-devhelp-search-provider.c
index 3a0b466..b11cea1 100644
--- a/libide/devhelp/ide-devhelp-search-provider.c
+++ b/libide/devhelp/ide-devhelp-search-provider.c
@@ -53,7 +53,7 @@ ide_devhelp_search_provider_populate (IdeSearchProvider *provider,
IdeContext *idecontext;
GtkTreeIter iter;
gboolean valid;
- gint count = 0;;
+ gint count = 0;
gint total;
g_assert (IDE_IS_DEVHELP_SEARCH_PROVIDER (self));
diff --git a/libide/ide-buffer-manager.c b/libide/ide-buffer-manager.c
index ba67832..baa9679 100644
--- a/libide/ide-buffer-manager.c
+++ b/libide/ide-buffer-manager.c
@@ -1453,7 +1453,7 @@ ide_buffer_manager_create_buffer (IdeBufferManager *self)
GFile *workdir;
guint doc_seq;
- g_return_if_fail (IDE_IS_BUFFER_MANAGER (self));
+ g_return_val_if_fail (IDE_IS_BUFFER_MANAGER (self), NULL);
context = ide_object_get_context (IDE_OBJECT (self));
vcs = ide_context_get_vcs (context);
1
0
Hello community,
here is the log from the commit of package totem for openSUSE:Factory checked in at 2015-03-30 19:30:00
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/totem (Old)
and /work/SRC/openSUSE:Factory/.totem.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "totem"
Changes:
--------
--- /work/SRC/openSUSE:Factory/totem/totem.changes 2015-01-30 20:31:32.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.totem.new/totem.changes 2015-03-30 19:30:01.000000000 +0200
@@ -1,0 +2,46 @@
+Mon Mar 23 11:46:40 UTC 2015 - dimstar(a)opensuse.org
+
+- Update to version 3.16.0:
+ + Updated translations.
+
+-------------------------------------------------------------------
+Tue Mar 17 21:51:07 UTC 2015 - dimstar(a)opensuse.org
+
+- Update to version 3.15.92:
+ + Update thumbnail styling.
+ + Fix a crash on exit.
+ + Fix application icon not showing in volume control.
+ + Disable popover transitions for video menus.
+ + Fix downloading subtitles with newer Python versions.
+ + Updated translations.
+
+-------------------------------------------------------------------
+Wed Mar 4 09:27:38 UTC 2015 - dimstar(a)opensuse.org
+
+- Update to version 3.15.91:
+ + Build fixes.
+ + Update appdata file.
+ + Updated translations.
+
+-------------------------------------------------------------------
+Fri Feb 20 18:41:14 UTC 2015 - dimstar(a)opensuse.org
+
+- Update to version 3.15.90:
+ + Better missing plugins support with GNOME Software.
+ + Modify appearance of source icons.
+ + Make view switcher button homogeneous.
+ + Use intltool to translate GSettings schema files directly.
+ + Better translator comment for subtitle-encoding.
+ + Remove outdated helper script, which used Python 2.
+
+-------------------------------------------------------------------
+Wed Jan 28 19:09:24 UTC 2015 - badshah400(a)gmail.com
+
+- Update to version 3.15.4:
+ + Stop thumbnailing when exiting.
+ + Use the theme's foreground color to render the symbolics.
+ + Remove use of a number of deprecated properties.
+ + Require a newer cairo for hi-dpi support.
+ + Fix missing translation support in thumbnailer/gallery support.
+
+-------------------------------------------------------------------
Old:
----
totem-3.14.2.tar.xz
New:
----
totem-3.16.0.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ totem.spec ++++++
--- /var/tmp/diff_new_pack.RB4COc/_old 2015-03-30 19:30:02.000000000 +0200
+++ /var/tmp/diff_new_pack.RB4COc/_new 2015-03-30 19:30:02.000000000 +0200
@@ -19,13 +19,13 @@
%define build_zeitgeist_plugin 1
Name: totem
-Version: 3.14.2
+Version: 3.16.0
Release: 0
Summary: Movie Player for the GNOME Desktop
License: GPL-2.0+ and LGPL-2.1+
Group: Productivity/Multimedia/Video/Players
Url: http://www.gnome.org/projects/totem/
-Source0: http://download.gnome.org/sources/totem/3.14/%{name}-%{version}.tar.xz
+Source0: http://download.gnome.org/sources/totem/3.16/%{name}-%{version}.tar.xz
BuildRequires: appstream-glib
BuildRequires: fdupes
BuildRequires: gcc-c++
@@ -38,13 +38,13 @@
BuildRequires: update-desktop-files
BuildRequires: vala >= 0.14.1
BuildRequires: yelp-tools
-BuildRequires: pkgconfig(cairo)
+BuildRequires: pkgconfig(cairo) >= 1.14.0
BuildRequires: pkgconfig(clutter-1.0) >= 1.17.3
-BuildRequires: pkgconfig(clutter-gst-2.0) >= 1.5.5
+BuildRequires: pkgconfig(clutter-gst-3.0) >= 2.99.2
BuildRequires: pkgconfig(clutter-gtk-1.0) >= 1.5.5
BuildRequires: pkgconfig(glib-2.0) >= 2.35.0
BuildRequires: pkgconfig(gnome-desktop-3.0)
-BuildRequires: pkgconfig(grilo-0.2) >= 0.2.10
+BuildRequires: pkgconfig(grilo-0.2) >= 0.2.12
BuildRequires: pkgconfig(gsettings-desktop-schemas)
BuildRequires: pkgconfig(gstreamer-1.0) >= 1.3.1
BuildRequires: pkgconfig(gstreamer-plugins-bad-1.0) >= 1.0.2
@@ -208,14 +208,6 @@
# Own directories for plugins
%dir %{_libdir}/totem
%dir %{_libdir}/totem/plugins
-# this is needed for python plugins that are not in totem-plugins
-#{_libdir}/totem/plugins/totem
-# Be careful here: libdir contains plugins while libexecdir contains a
-# browser-plugin helper and a small utility for the main package
-%if "%{_libdir}" != "%{_libexecdir}"
-%dir %{_libexecdir}/totem
-%endif
-%{_libexecdir}/totem/totem-bugreport.py
%{_libdir}/libtotem.so.0*
%{_libdir}/girepository-1.0/Totem-1.0.typelib
++++++ totem-3.14.2.tar.xz -> totem-3.16.0.tar.xz ++++++
++++ 52687 lines of diff (skipped)
1
0
Hello community,
here is the log from the commit of package polari for openSUSE:Factory checked in at 2015-03-30 19:29:52
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/polari (Old)
and /work/SRC/openSUSE:Factory/.polari.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "polari"
Changes:
--------
--- /work/SRC/openSUSE:Factory/polari/polari.changes 2014-12-16 14:49:54.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.polari.new/polari.changes 2015-03-30 19:29:53.000000000 +0200
@@ -1,0 +2,46 @@
+Mon Mar 23 20:33:54 UTC 2015 - dimstar(a)opensuse.org
+
+- Update to version 3.16.0:
+ + Updated translations.
+
+-------------------------------------------------------------------
+Wed Mar 18 08:50:43 UTC 2015 - dimstar(a)opensuse.org
+
+- Update to version 3.15.92:
+ + Follow best practices for window state saving (bgo#745717).
+ + Updated translations.
+
+-------------------------------------------------------------------
+Thu Mar 5 11:39:02 UTC 2015 - dimstar(a)opensuse.org
+
+- Update to version 3.15.91:
+ + Register telepathy service to enable use as default channel
+ handler (bgo#745418, bgo#745499).
+ + Misc. bug fixes: bgo#745203, bgo#743988.
+ + Updated translations.
+
+-------------------------------------------------------------------
+Tue Feb 24 10:30:01 UTC 2015 - dimstar(a)opensuse.org
+
+- Update to version 3.15.90:
+ + Add high-contrast application icon (bgo#735670).
+ + Fix picking up hyperlink color from theme (bgo#743944).
+ + Drop selection mode (bgo#736481).
+ + Improve a11y support (bgo#743384).
+ + Updated translations.
+
+-------------------------------------------------------------------
+Fri Dec 19 15:33:38 UTC 2014 - zaitor(a)opensuse.org
+
+- Update to version 3.15.3:
+ + Suppress overshoot indicator when loading backlog (bgo#740132).
+ + Fix some corner-cases in type-ahead (bgo#741756).
+
+-------------------------------------------------------------------
+Wed Dec 17 22:47:13 UTC 2014 - zaitor(a)opensuse.org
+
+- Update to version 3.15.2:
+ + Limit height of userlist popover (bgo#738518).
+ + Updated translations.
+
+-------------------------------------------------------------------
Old:
----
polari-3.14.1.tar.xz
New:
----
polari-3.16.0.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ polari.spec ++++++
--- /var/tmp/diff_new_pack.RoDPWg/_old 2015-03-30 19:29:53.000000000 +0200
+++ /var/tmp/diff_new_pack.RoDPWg/_new 2015-03-30 19:29:53.000000000 +0200
@@ -1,7 +1,7 @@
#
# spec file for package polari
#
-# Copyright (c) 2014 SUSE LINUX Products GmbH, Nuernberg, Germany.
+# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany.
# Copyright (c) 2013 Dominique Leuenberger, Amsterdam, The Netherlands
#
# All modifications and additions to the file contributed by third parties
@@ -18,13 +18,13 @@
Name: polari
-Version: 3.14.1
+Version: 3.16.0
Release: 0
Summary: An IRC Client for GNOME
License: GPL-2.0+ and LGPL-2.1+
Group: Productivity/Networking/IRC
Url: http://wiki.gnome.org/Apps/Polari
-Source0: http://download.gnome.org/sources/polari/3.14/%{name}-%{version}.tar.xz
+Source0: http://download.gnome.org/sources/polari/3.16/%{name}-%{version}.tar.xz
BuildRequires: gjs
BuildRequires: hicolor-icon-theme
BuildRequires: intltool >= 0.50.0
@@ -81,9 +81,13 @@
%dir %{_datadir}/appdata
%{_datadir}/appdata/org.gnome.Polari.appdata.xml
%{_datadir}/applications/org.gnome.Polari.desktop
+%{_datadir}/dbus-1/services/org.freedesktop.Telepathy.Client.Polari.service
%{_datadir}/dbus-1/services/org.gnome.Polari.service
-%{_datadir}/glib-2.0/schemas/org.gnome.polari.gschema.xml
+%{_datadir}/glib-2.0/schemas/org.gnome.Polari.gschema.xml
%{_datadir}/polari/
+%dir %{_datadir}/telepathy
+%dir %{_datadir}/telepathy/clients
+%{_datadir}/telepathy/clients/Polari.client
%dir %{_datadir}/icons/hicolor/512x512
%dir %{_datadir}/icons/hicolor/512x512/apps
%{_datadir}/icons/hicolor/*/apps/*
++++++ polari-3.14.1.tar.xz -> polari-3.16.0.tar.xz ++++++
++++ 27612 lines of diff (skipped)
1
0