openSUSE Commits
Threads by month
- ----- 2024 -----
- 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
January 2016
- 1 participants
- 1523 discussions
Hello community,
here is the log from the commit of package python3-pyserial for openSUSE:Factory checked in at 2016-01-04 09:21:34
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python3-pyserial (Old)
and /work/SRC/openSUSE:Factory/.python3-pyserial.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python3-pyserial"
Changes:
--------
--- /work/SRC/openSUSE:Factory/python3-pyserial/python3-pyserial.changes 2013-12-23 22:18:47.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.python3-pyserial.new/python3-pyserial.changes 2016-01-04 09:21:56.000000000 +0100
@@ -1,0 +2,103 @@
+Wed Dec 30 18:48:07 UTC 2015 - arun(a)gmx.de
+
+- specfile:
+ * update copyright year
+ * updated url (moved to github)
+ * use setuptools
+ * CHANGES.txt -> CHANGES.rst
+ * README.txt -> README.rst
+
+- update to version 3.0:
+ * minor fixes to setup.py (file list), inter_byte_timeout (not
+ stored when passed to __init__), rfc2217 (behavior of close when
+ open failed), list_ports (__str__), loop://, renamed ReaderThread
+ * hwgrep:// added options to pick n'th port, skip busy ports
+ * miniterm: --ask option added
+ * Bugfixes (posix):
+ + [#26/#30] always call tcsettattr on open
+ + [#42] fix disregard read timeout if there is more data
+ + [#45] check for write timeout, even if EAGAIN was rised
+ * Bugfixes (win32):
+ + [#27] fix race condition in "read()", fix minimal timeout issue
+ + race condition in nonblocking case
+ + [#49] change exception type in case SetCommState fails
+ + [#50] fixed issue with 0 timeout on windows 10
+
+- changes from version 3.0b1:
+ * list_ports: add "vid", "pid", "serial_number", "product",
+ "manufacturer" and "location" attribute for USB devices.
+ * list_ports: update OSX implementation.
+ * list_ports: Raspberry Pi: internal port is found.
+ * serial_for_url: fix import (multiple packages in list)
+ * threaded: added new module implementing a reader thread
+ * tweak examples/wx*
+ * posix: add experimental implementation "VTIMESerial"
+ * new URL handler "alt://" to select alternative implementations
+
+- changes from version 3.0a0:
+ * Starting from this release, only Python 2.7 and 3.2 (or newer) are
+ supported. The source code is compatible to the 2.x and 3.x series
+ without any changes. The support for earlier Python versions than
+ 2.7 is removed, please refer to the pyserial-legacy (V2.x) series
+ if older Python versions are a requirement).
+ * Development moved to github, update links in docs.
+ * API changes: properties for "rts", "dtr", "cts", "dsr", "cd",
+ "ri", "in_waiting" (instead of get/set functions)
+ * remove file "FileLike" class, add "read_until" and "iread_until"
+ to "SerialBase"
+ * RS485 support changed ("rts_toggle" removed, added "serial.rs485"
+ module and "rs485_mode" property)
+ * "socket://" and "rfc2217://" handlers use the IPv6 compatible
+ "socket.create_connection"
+ * New URL handler: "spy:://".
+ * URL handlers now require the proper format ("?" and "&") for
+ arguments instead of "/"
+ (e.g. "rfc2217://localhost:7000?ign_set_control&timeout=5.5")
+ * Remove obsolete examples.
+ * Finish update to BSD license.
+ * Use setuptools if available, fall back to distutils if
+ unavailable.
+ * miniterm: changed command line options
+ * miniterm: support encodings on serial port
+ * miniterm: new transformations, by default escape/convert all
+ control characters
+ * list_ports: improved, added USB location (Linux, Win32)
+ * refactored code
+ * [FTR pyserial:37] Support fileno() function in the socket protocol
+ * Posix: [Patch pyserial:31] Mark/space parity on Linux
+ * Linux: [Patch pyserial:32] Module list_ports for linux should
+ include the product information as description.
+ * Java: fix 2 bugs (stop bits if/else and non-integer timeouts)
+ (Torsten Roemer)
+ * Update wxSerialConfigDialog.py to use serial.tools.list_ports.
+ * [Patch pyserial:34] Improvements to port_publisher.py example
+ * [Feature pyserial:39] Support BlueTooth serial port discovery on
+ Linux
+ * Bugfixes:
+ + [Bug pyserial:157] Implement inWaiting in protocol_socket
+ + [Bug pyserial:166] RFC2217 connections always fail
+ + [Bug pyserial:172] applySettingsDict() throws an error if the
+ settings dictionary is not complete
+ + [Bug pyserial:185] SocketSerial.read() never returns data when
+ timeout==0
+ * Bugfixes (posix):
+ + [Bug pyserial:156] PosixSerial.open raises OSError rather than
+ SerialException when port open fails
+ + [Bug pyserial:163] serial.tools.list_ports.grep() fails if it
+ encounters None type
+ + fix setXON
+ + [Patch pyserial:36 / 38] Make USB information work in python 3.4
+ and 2.7
+ + clear OCRNL/ONLCR flags (CR/LF translation settings)
+ + [Feature pyserial:38] RS485 Support
+ + [Bug pyserial:170] list_ports_posix not working properly for
+ Cygwin
+ + [Bug pyserial:187] improve support for FreeBSD
+ (list_ports_posix)
+ * Bugfixes (win32):
+ + [Bug pyserial:169] missing "import time" in serialwin32.py
+ * Bugfixes (cli):
+ + [Bug pyserial:159] write() in serialcli.py not working with
+ IronPython 2.7.4
+
+-------------------------------------------------------------------
Old:
----
pyserial-2.7.tar.gz
New:
----
pyserial-3.0.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python3-pyserial.spec ++++++
--- /var/tmp/diff_new_pack.ftgovB/_old 2016-01-04 09:21:57.000000000 +0100
+++ /var/tmp/diff_new_pack.ftgovB/_new 2016-01-04 09:21:57.000000000 +0100
@@ -1,7 +1,7 @@
#
# spec file for package python3-pyserial
#
-# 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
@@ -17,9 +17,9 @@
Name: python3-pyserial
-Version: 2.7
+Version: 3.0
Release: 0
-Url: http://pyserial.sourceforge.net/
+Url: https://github.com/pyserial/pyserial
Summary: Python Serial Port Extension
License: Python-2.0
Group: Development/Languages/Python
@@ -29,6 +29,7 @@
BuildRequires: python3-2to3
BuildRequires: python3-Sphinx
BuildRequires: python3-devel
+BuildRequires: python3-setuptools
BuildArch: noarch
%description
@@ -50,7 +51,7 @@
%files
%defattr(-,root,root,-)
-%doc CHANGES.txt LICENSE.txt README.txt examples documentation/_build/*
+%doc CHANGES.rst LICENSE.txt README.rst examples documentation/_build/*
%{_bindir}/miniterm-%{py3_ver}.py
%{python3_sitelib}/serial/
%{python3_sitelib}/pyserial-%{version}-py%{py3_ver}.egg-info
++++++ pyserial-2.7.tar.gz -> pyserial-3.0.tar.gz ++++++
++++ 18870 lines of diff (skipped)
1
0
Hello community,
here is the log from the commit of package libodfgen for openSUSE:Factory checked in at 2016-01-04 09:21:29
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/libodfgen (Old)
and /work/SRC/openSUSE:Factory/.libodfgen.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "libodfgen"
Changes:
--------
--- /work/SRC/openSUSE:Factory/libodfgen/libodfgen.changes 2015-12-23 09:56:25.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.libodfgen.new/libodfgen.changes 2016-01-04 09:21:51.000000000 +0100
@@ -1,0 +2,24 @@
+Wed Dec 30 16:21:23 UTC 2015 - fstrba(a)suse.com
+
+- Version bump to 0.1.6
+ * All:
+ + Support hatching fills.
+ + Handle visibility and printability of objects.
+ + Compute print orientation from page dimensions.
+ + Allow to specify list label font and font size.
+ * Drawing/Presentation:
+ + Handle fill properties in openPage(), allowing to set page
+ background.
+ * Spreadsheet:
+ + Correctly emit merged cells.
+ + Allow graphics anchored to a sheet cell.
+ + Handle repeated rows/columns, specified by properties
+ table:number-rows-repeated and table:number-columns-repeated.
+ + Add matrix operators ({, } and |).
+ + Handle more cell attributes.
+ + Increase precision of generated numbers.
+ * Text:
+ + Allow to set header/footer style.
+ * Other improvements and fixes.
+
+-------------------------------------------------------------------
Old:
----
libodfgen-0.1.5.tar.xz
New:
----
libodfgen-0.1.6.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ libodfgen.spec ++++++
--- /var/tmp/diff_new_pack.AfsGus/_old 2016-01-04 09:21:52.000000000 +0100
+++ /var/tmp/diff_new_pack.AfsGus/_new 2016-01-04 09:21:52.000000000 +0100
@@ -18,7 +18,7 @@
%define libname libodfgen-0_1-1
Name: libodfgen
-Version: 0.1.5
+Version: 0.1.6
Release: 0
Summary: Library to generate ODF documents from libwpd's and libwpg's api calls
License: LGPL-2.1+ and MPL-2.0+
++++++ libodfgen-0.1.5.tar.xz -> libodfgen-0.1.6.tar.xz ++++++
++++ 7651 lines of diff (skipped)
1
0
Hello community,
here is the log from the commit of package libwpd for openSUSE:Factory checked in at 2016-01-04 09:21:25
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/libwpd (Old)
and /work/SRC/openSUSE:Factory/.libwpd.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "libwpd"
Changes:
--------
--- /work/SRC/openSUSE:Factory/libwpd/libwpd.changes 2014-07-27 18:47:01.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.libwpd.new/libwpd.changes 2016-01-04 09:21:46.000000000 +0100
@@ -1,0 +2,16 @@
+Wed Dec 30 16:08:52 UTC 2015 - fstrba(a)suse.com
+
+- Upgrade to version 0.10.1
+ * Fix crash when NULL is passed as input stream.
+ * Use symbol visibility on Linux. The library only exports public
+ functions now.
+ * Avoid infinite loop. (libwpd#3)
+ * Remove bashism. (libwpd#5)
+ * Fix various crashes and hangs when reading broken files found
+ with the help of american-fuzzy-lop.
+ * Make --help output of all command line tools more
+ help2man-friendly.
+ * Miscellaneous fixes and cleanups.
+- Generate manpages for the libwpd-tools
+
+-------------------------------------------------------------------
Old:
----
libwpd-0.10.0.tar.xz
New:
----
libwpd-0.10.1.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ libwpd.spec ++++++
--- /var/tmp/diff_new_pack.Zskogk/_old 2016-01-04 09:21:47.000000000 +0100
+++ /var/tmp/diff_new_pack.Zskogk/_new 2016-01-04 09:21:47.000000000 +0100
@@ -1,7 +1,7 @@
#
# spec file for package libwpd
#
-# Copyright (c) 2014 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
@@ -17,7 +17,7 @@
Name: libwpd
-Version: 0.10.0
+Version: 0.10.1
Release: 0
Summary: Library for Importing WordPerfect (tm) Documents
License: LGPL-2.1+ and MPL-2.0+
@@ -28,6 +28,7 @@
BuildRequires: doxygen
BuildRequires: fdupes
BuildRequires: gcc-c++
+BuildRequires: help2man
BuildRequires: pkg-config
BuildRequires: xz
BuildRequires: pkgconfig(librevenge-0.0)
@@ -93,6 +94,11 @@
%install
make DESTDIR=%{buildroot} install %{?_smp_mflags}
find %{buildroot} -type f -name "*.la" -delete -print
+mkdir -p %{buildroot}%{_mandir}/man1
+for i in %{buildroot}%{_bindir}/*; do
+ LD_LIBRARY_PATH=%{buildroot}%{_libdir} \
+ help2man -N -o %{buildroot}%{_mandir}/man1/$(basename $i).1 $i
+done
%fdupes -s %{buildroot}%{_docdir}/%{name}/html
%post -n %{libname} -p /sbin/ldconfig
@@ -118,6 +124,7 @@
%files tools
%defattr(-,root,root)
%{_bindir}/*
+%{_mandir}/man1/*.1*
%doc ChangeLog
%doc COPYING.LGPL
%doc COPYING.MPL
++++++ libwpd-0.10.0.tar.xz -> libwpd-0.10.1.tar.xz ++++++
++++ 27686 lines of diff (skipped)
1
0
Hello community,
here is the log from the commit of package libgphoto2 for openSUSE:Factory checked in at 2016-01-04 09:21:20
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/libgphoto2 (Old)
and /work/SRC/openSUSE:Factory/.libgphoto2.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "libgphoto2"
Changes:
--------
--- /work/SRC/openSUSE:Factory/libgphoto2/libgphoto2.changes 2015-11-24 22:30:24.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.libgphoto2.new/libgphoto2.changes 2016-01-04 09:21:41.000000000 +0100
@@ -1,0 +2,11 @@
+Tue Dec 29 21:09:48 UTC 2015 - stefan.bruens(a)rwth-aachen.de
+
+- Several changes/fixes to packaging:
+ * API documentation was packaged twice, once in the -devel package
+ and once in the main package (under different paths), split off
+ to separate libgphoto2-devel-doc package
+ * Use apidocs from source tar instead of using doxygen
+ * package user documentation in separate libgphoto2-doc package
+ * remove obsolete hotplug scripts
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ libgphoto2.spec ++++++
--- /var/tmp/diff_new_pack.vge700/_old 2016-01-04 09:21:42.000000000 +0100
+++ /var/tmp/diff_new_pack.vge700/_new 2016-01-04 09:21:42.000000000 +0100
@@ -25,7 +25,6 @@
%define major 6
Name: libgphoto2
-BuildRequires: doxygen
BuildRequires: fdupes
BuildRequires: gcc-c++
BuildRequires: gd-devel
@@ -64,13 +63,22 @@
Group: Hardware/Camera
Recommends: %{name}-%{major}-lang = %{version}
+%package doc
+Summary: A Digital Camera Library - documentation
+Group: Hardware/Camera
+
%package devel
Summary: Development headers for libgphoto2
-Group: Hardware/Camera
+Group: Development/Hardware/Camera
Requires: libexif-devel
Requires: libgphoto2-%{major} = %version
Requires: libusb-1_0-devel
+%package devel-doc
+Summary: Development documentation for libgphoto2
+Group: Development/Hardware/Camera
+Recommends: libgphoto2-devel
+
%description
gPhoto (GNU Photo) is a set of libraries for previewing, retrieving,
and capturing images from a range of supported digital cameras to your
@@ -99,6 +107,13 @@
gphoto2 --list-cameras
+%description doc
+gPhoto (GNU Photo) is a set of libraries for previewing, retrieving,
+and capturing images from a range of supported digital cameras to your
+local hard drive.
+
+This is the user documentation
+
%description devel
gPhoto (GNU Photo) is a set of libraries for previewing, retrieving,
and capturing images from a range of supported digital cameras to your
@@ -106,10 +121,18 @@
These are its development libraries and headers.
+%description devel-doc
+gPhoto (GNU Photo) is a set of libraries for previewing, retrieving,
+and capturing images from a range of supported digital cameras to your
+local hard drive.
+
+This is its API documentation in HTML format.
+
%lang_package -n libgphoto2-%{major}
%prep
%setup -q
+(cd doc; tar xaf libgphoto2-api.html.tar.gz)
%build
#AUTOPOINT=true autoreconf -fi
@@ -133,6 +156,9 @@
rm $RPM_BUILD_ROOT/%_libdir/libgphoto2/%version/*.la
rm $RPM_BUILD_ROOT/%_libdir/libgphoto2_port/0.12.0/*.la
+rm $RPM_BUILD_ROOT/%_defaultdocdir/%{name}/README.packaging
+rm -R $RPM_BUILD_ROOT/%_defaultdocdir/%{name}/linux-hotplug
+
%{find_lang} libgphoto2-%{major}
%{find_lang} libgphoto2_port-12
cat libgphoto2-%{major}.lang libgphoto2_port-12.lang > libgphoto2-all.lang
@@ -157,7 +183,9 @@
popd
# udev helpers not used here.
rm $RPM_BUILD_ROOT/usr/%_lib/udev/check-ptp-camera
-mv doc/doxygen-output/libgphoto2-api.html apidocs
+mv doc/libgphoto2-api.html apidocs
+mv doc/README.apidocs .
+find apidocs -type f -name "*.md5" -delete
fn=$RPM_BUILD_ROOT/%{_libdir}/pkgconfig/libgphoto2_port.pc
grep -v driverdir= $fn > $fn.new
mv $fn.new $fn
@@ -169,23 +197,26 @@
%defattr(-,root,root)
%{_libdir}/libgphoto2
%{_libdir}/libgphoto2_port
-%dir %{_defaultdocdir}/%{name}
-%{_defaultdocdir}/%{name}/*
+# support files for konica camlib
%{prefix}/share/%{name}
%{_libdir}/libgphoto2.so.*
%{_libdir}/libgphoto2_port.so.*
-%{_mandir}/man3/libgphoto2.3*
-%{_mandir}/man3/libgphoto2_port.3*
%if 0%{?suse_version} > 1230
%{_udevhwdbdir}/20-gphoto.hwdb
%endif
%{_udevrulesdir}/40-libgphoto2.rules
+%files -n libgphoto2-doc
+%defattr(-,root,root)
+%dir %{_defaultdocdir}/%{name}
+%{_defaultdocdir}/%{name}/*
+%{_mandir}/man3/libgphoto2.3*
+%{_mandir}/man3/libgphoto2_port.3*
+
%files -n libgphoto2-%{major}-lang -f libgphoto2-all.lang
%files devel
%defattr(-,root,root)
-%doc apidocs
%{prefix}/include/gphoto2
%{prefix}/bin/gphoto2-config
%{prefix}/bin/gphoto2-port-config
@@ -194,6 +225,10 @@
%{_libdir}/pkgconfig/libgphoto2.pc
%{_libdir}/pkgconfig/libgphoto2_port.pc
+%files devel-doc
+%defattr(-,root,root)
+%doc apidocs README.apidocs
+
%post -n %name-%major
/sbin/ldconfig
%if 0%{?suse_version} > 1230
1
0
Hello community,
here is the log from the commit of package libass for openSUSE:Factory checked in at 2016-01-04 09:21:16
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/libass (Old)
and /work/SRC/openSUSE:Factory/.libass.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "libass"
Changes:
--------
--- /work/SRC/openSUSE:Factory/libass/libass.changes 2015-12-27 01:57:46.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.libass.new/libass.changes 2016-01-04 09:21:37.000000000 +0100
@@ -13,0 +14,5 @@
+Wed Dec 16 16:37:26 UTC 2015 - jengelh(a)inai.de
+
+- Update summary/description
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ libass.spec ++++++
--- /var/tmp/diff_new_pack.tUlbhz/_old 2016-01-04 09:21:38.000000000 +0100
+++ /var/tmp/diff_new_pack.tUlbhz/_new 2016-01-04 09:21:38.000000000 +0100
@@ -20,7 +20,7 @@
Name: libass
Version: 0.13.1
Release: 0
-Summary: Portable Library for SSA/ASS Subtitles Rendering
+Summary: Library for SSA/ASS-formatted subtitle rendering
License: ISC
Group: Development/Libraries/C and C++
Url: https://github.com/libass/libass
@@ -35,21 +35,21 @@
BuildRequires: pkgconfig(harfbuzz)
%description
-libass is a portable subtitle renderer for the ASS/SSA
+libass is a subtitle renderer for the ASS/SSA
(Advanced Substation Alpha/Substation Alpha) subtitle
format. It is mostly compatible with VSFilter.
%package -n libass%{soname}
-Summary: Portable Library for SSA/ASS Subtitles Rendering
+Summary: Library for SSA/ASS-formatted subtitle rendering
Group: System/Libraries
%description -n libass%{soname}
-libass is a portable subtitle renderer for the ASS/SSA
+libass is a subtitle renderer for the ASS/SSA
(Advanced Substation Alpha/Substation Alpha) subtitle
format. It is mostly compatible with VSFilter.
%package devel
-Summary: Portable Library for SSA/ASS Subtitles Rendering
+Summary: Development files for libass, a subtitle rendering library
Group: Development/Libraries/C and C++
Requires: glibc-devel
Requires: libass%{soname} = %{version}
1
0
Hello community,
here is the log from the commit of package libvisio for openSUSE:Factory checked in at 2016-01-04 09:21:11
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/libvisio (Old)
and /work/SRC/openSUSE:Factory/.libvisio.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "libvisio"
Changes:
--------
--- /work/SRC/openSUSE:Factory/libvisio/libvisio.changes 2015-12-27 01:58:36.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.libvisio.new/libvisio.changes 2016-01-04 09:21:32.000000000 +0100
@@ -1,0 +2,15 @@
+Wed Dec 30 09:15:48 UTC 2015 - fstrba(a)suse.com
+
+- Generate manpages for the tools in libvisio-tool package
+
+-------------------------------------------------------------------
+Tue Dec 29 20:06:55 UTC 2015 - fstrba(a)suse.com
+
+- Version bump to 0.1.5
+ * Rewrite text output to avoid empty spans and to make the
+ function a bit more readable for common mortal (wo)man.
+ * Initial emulation of line rounding property (tdf#90603).
+ * Make --help output of all command line tools more
+ help2man-friendly.
+
+-------------------------------------------------------------------
Old:
----
libvisio-0.1.4.tar.xz
New:
----
libvisio-0.1.5.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ libvisio.spec ++++++
--- /var/tmp/diff_new_pack.Iyxh1h/_old 2016-01-04 09:21:33.000000000 +0100
+++ /var/tmp/diff_new_pack.Iyxh1h/_new 2016-01-04 09:21:33.000000000 +0100
@@ -18,7 +18,7 @@
%define libname libvisio-0_1-1
Name: libvisio
-Version: 0.1.4
+Version: 0.1.5
Release: 0
Summary: Library for parsing the MS Visio file format structure
License: MPL-2.0
@@ -31,6 +31,7 @@
BuildRequires: fdupes
BuildRequires: gcc-c++
BuildRequires: gperf
+BuildRequires: help2man
BuildRequires: libicu-devel
BuildRequires: librevenge-devel >= 0.0.0
BuildRequires: libxml2-devel
@@ -88,13 +89,19 @@
--disable-werror \
--disable-static \
--docdir=%{_docdir}/%{name}-devel/html
-make %{?_smp_mflags} V=1
+make %{?_smp_mflags}
%install
make DESTDIR=%{buildroot} install %{?_smp_mflags}
find %{buildroot} -type f -name "*.la" -delete -print
+mkdir -p %{buildroot}%{_mandir}/man1
+for i in %{buildroot}%{_bindir}/*; do
+ LD_LIBRARY_PATH=%{buildroot}%{_libdir} \
+ help2man -N -o %{buildroot}%{_mandir}/man1/$(basename $i).1 $i
+done
+
cp -p AUTHORS COPYING.* ChangeLog %{buildroot}%{_docdir}/%{name}-devel/
%fdupes -s %{buildroot}
@@ -127,5 +134,6 @@
%defattr(-,root,root)
%doc AUTHORS COPYING.* ChangeLog
%{_bindir}/*
+%{_mandir}/man1/*.1*
%changelog
++++++ libvisio-0.1.4.tar.xz -> libvisio-0.1.5.tar.xz ++++++
++++ 3130 lines of diff (skipped)
1
0
Hello community,
here is the log from the commit of package python3-setuptools for openSUSE:Factory checked in at 2016-01-04 09:21:06
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python3-setuptools (Old)
and /work/SRC/openSUSE:Factory/.python3-setuptools.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python3-setuptools"
Changes:
--------
--- /work/SRC/openSUSE:Factory/python3-setuptools/python3-setuptools.changes 2015-12-23 09:57:18.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.python3-setuptools.new/python3-setuptools.changes 2016-01-04 09:21:28.000000000 +0100
@@ -1,0 +2,8 @@
+Tue Dec 29 19:47:49 UTC 2015 - arun(a)gmx.de
+
+- update to version 19.2:
+ * Pull Request #163: Add get_command_list method to Distribution.
+ * Pull Request #162: Add missing whitespace to multiline string
+ literals.
+
+-------------------------------------------------------------------
Old:
----
setuptools-19.1.1.tar.gz
New:
----
setuptools-19.2.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python3-setuptools.spec ++++++
--- /var/tmp/diff_new_pack.aPYkPA/_old 2016-01-04 09:21:29.000000000 +0100
+++ /var/tmp/diff_new_pack.aPYkPA/_new 2016-01-04 09:21:29.000000000 +0100
@@ -17,7 +17,7 @@
Name: python3-setuptools
-Version: 19.1.1
+Version: 19.2
Release: 0
Url: http://pypi.python.org/pypi/setuptools
Summary: Easily download, build, install, upgrade, and uninstall Python packages
++++++ setuptools-19.1.1.tar.gz -> setuptools-19.2.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/setuptools-19.1.1/.hgtags new/setuptools-19.2/.hgtags
--- old/setuptools-19.1.1/.hgtags 2015-12-17 01:27:31.000000000 +0100
+++ new/setuptools-19.2/.hgtags 2015-12-25 16:52:54.000000000 +0100
@@ -231,3 +231,4 @@
fbf06fa35f93a43f044b1645a7e4ff470edb462c 18.8.1
cc41477ecf92f221c113736fac2830bf8079d40c 19.0
834782ce49154e9744e499e00eb392c347f9e034 19.1
+0a2a3d89416e1642cf6f41d22dbc07b3d3c15a4d 19.1.1
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/setuptools-19.1.1/CHANGES.txt new/setuptools-19.2/CHANGES.txt
--- old/setuptools-19.1.1/CHANGES.txt 2015-12-17 01:09:19.000000000 +0100
+++ new/setuptools-19.2/CHANGES.txt 2015-12-25 16:49:20.000000000 +0100
@@ -3,6 +3,14 @@
=======
+----
+19.2
+----
+
+* Pull Request #163: Add get_command_list method to Distribution.
+* Pull Request #162: Add missing whitespace to multiline string
+ literals.
+
------
19.1.1
------
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/setuptools-19.1.1/PKG-INFO new/setuptools-19.2/PKG-INFO
--- old/setuptools-19.1.1/PKG-INFO 2015-12-17 01:27:34.000000000 +0100
+++ new/setuptools-19.2/PKG-INFO 2015-12-25 16:52:56.000000000 +0100
@@ -1,6 +1,6 @@
Metadata-Version: 1.1
Name: setuptools
-Version: 19.1.1
+Version: 19.2
Summary: Easily download, build, install, upgrade, and uninstall Python packages
Home-page: https://bitbucket.org/pypa/setuptools
Author: Python Packaging Authority
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/setuptools-19.1.1/setuptools/dist.py new/setuptools-19.2/setuptools/dist.py
--- old/setuptools-19.1.1/setuptools/dist.py 2015-12-14 10:17:06.000000000 +0100
+++ new/setuptools-19.2/setuptools/dist.py 2015-12-25 16:48:37.000000000 +0100
@@ -160,7 +160,7 @@
for pkgname in value:
if not re.match(r'\w+(\.\w+)*', pkgname):
distutils.log.warn(
- "WARNING: %r not a valid package name; please use only"
+ "WARNING: %r not a valid package name; please use only "
".-separated package names in setup.py", pkgname
)
@@ -439,6 +439,14 @@
self.cmdclass[ep.name] = cmdclass
return _Distribution.print_commands(self)
+ def get_command_list(self):
+ for ep in pkg_resources.iter_entry_points('distutils.commands'):
+ if ep.name not in self.cmdclass:
+ # don't require extras as the commands won't be invoked
+ cmdclass = ep.resolve()
+ self.cmdclass[ep.name] = cmdclass
+ return _Distribution.get_command_list(self)
+
def _set_feature(self,name,status):
"""Set feature's inclusion status"""
setattr(self,self._feature_attrname(name),status)
@@ -817,7 +825,7 @@
if not self.available:
raise DistutilsPlatformError(
- self.description+" is required,"
+ self.description+" is required, "
"but is not available on this platform"
)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/setuptools-19.1.1/setuptools/ssl_support.py new/setuptools-19.2/setuptools/ssl_support.py
--- old/setuptools-19.1.1/setuptools/ssl_support.py 2015-11-30 17:24:31.000000000 +0100
+++ new/setuptools-19.2/setuptools/ssl_support.py 2015-12-25 15:49:45.000000000 +0100
@@ -223,6 +223,12 @@
self.addcerts(certs)
atexit.register(self.close)
+ def close(self):
+ try:
+ super(MyCertFile, self).close()
+ except OSError:
+ pass
+
_wincerts = MyCertFile(stores=['CA', 'ROOT'])
return _wincerts.name
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/setuptools-19.1.1/setuptools/tests/files.py new/setuptools-19.2/setuptools/tests/files.py
--- old/setuptools-19.1.1/setuptools/tests/files.py 1970-01-01 01:00:00.000000000 +0100
+++ new/setuptools-19.2/setuptools/tests/files.py 2015-12-25 15:59:08.000000000 +0100
@@ -0,0 +1,32 @@
+import os
+
+
+def build_files(file_defs, prefix=""):
+ """
+ Build a set of files/directories, as described by the file_defs dictionary.
+
+ Each key/value pair in the dictionary is interpreted as a filename/contents
+ pair. If the contents value is a dictionary, a directory is created, and the
+ dictionary interpreted as the files within it, recursively.
+
+ For example:
+
+ {"README.txt": "A README file",
+ "foo": {
+ "__init__.py": "",
+ "bar": {
+ "__init__.py": "",
+ },
+ "baz.py": "# Some code",
+ }
+ }
+ """
+ for name, contents in file_defs.items():
+ full_name = os.path.join(prefix, name)
+ if isinstance(contents, dict):
+ if not os.path.exists(full_name):
+ os.makedirs(full_name)
+ build_files(contents, prefix=full_name)
+ else:
+ with open(full_name, 'w') as f:
+ f.write(contents)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/setuptools-19.1.1/setuptools/tests/test_easy_install.py new/setuptools-19.2/setuptools/tests/test_easy_install.py
--- old/setuptools-19.1.1/setuptools/tests/test_easy_install.py 2015-12-01 20:04:42.000000000 +0100
+++ new/setuptools-19.2/setuptools/tests/test_easy_install.py 2015-12-25 15:49:45.000000000 +0100
@@ -446,10 +446,15 @@
exe = tmpdir / 'exe.py'
with exe.open('w') as f:
f.write(header)
- exe = str(exe)
+
+ exe = ei.nt_quote_arg(os.path.normpath(str(exe)))
+
+ # Make sure Windows paths are quoted properly before they're sent
+ # through shlex.split by get_script_header
+ executable = '"%s"' % exe if os.path.splitdrive(exe)[0] else exe
header = ei.ScriptWriter.get_script_header('#!/usr/local/bin/python',
- executable=exe)
+ executable=executable)
assert header == '#!/usr/bin/env %s\n' % exe
expect_out = 'stdout' if sys.version_info < (2,7) else 'stderr'
@@ -458,7 +463,7 @@
# When options are included, generate a broken shebang line
# with a warning emitted
candidate = ei.ScriptWriter.get_script_header('#!/usr/bin/python -x',
- executable=exe)
+ executable=executable)
assert candidate == '#!%s -x\n' % exe
output = locals()[expect_out]
assert 'Unable to adapt shebang line' in output.getvalue()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/setuptools-19.1.1/setuptools/tests/test_egg_info.py new/setuptools-19.2/setuptools/tests/test_egg_info.py
--- old/setuptools-19.1.1/setuptools/tests/test_egg_info.py 2015-11-30 17:24:31.000000000 +0100
+++ new/setuptools-19.2/setuptools/tests/test_egg_info.py 2015-12-25 16:30:13.000000000 +0100
@@ -4,6 +4,7 @@
import pytest
from . import environment
+from .files import build_files
from .textwrap import DALS
from . import contexts
@@ -26,14 +27,13 @@
""")
def _create_project(self):
- with open('setup.py', 'w') as f:
- f.write(self.setup_script)
-
- with open('hello.py', 'w') as f:
- f.write(DALS("""
+ build_files({
+ 'setup.py': self.setup_script,
+ 'hello.py': DALS("""
def run():
print('hello')
- """))
+ """)
+ })
@pytest.yield_fixture
def env(self):
@@ -46,17 +46,48 @@
for dirname in subs
)
list(map(os.mkdir, env.paths.values()))
- config = os.path.join(env.paths['home'], '.pydistutils.cfg')
- with open(config, 'w') as f:
- f.write(DALS("""
+ build_files({
+ env.paths['home']: {
+ '.pydistutils.cfg': DALS("""
[egg_info]
egg-base = %(egg-base)s
- """ % env.paths))
+ """ % env.paths)
+ }
+ })
yield env
def test_egg_base_installed_egg_info(self, tmpdir_cwd, env):
self._create_project()
+ self._run_install_command(tmpdir_cwd, env)
+ actual = self._find_egg_info_files(env.paths['lib'])
+
+ expected = [
+ 'PKG-INFO',
+ 'SOURCES.txt',
+ 'dependency_links.txt',
+ 'entry_points.txt',
+ 'not-zip-safe',
+ 'top_level.txt',
+ ]
+ assert sorted(actual) == expected
+
+ def test_manifest_template_is_read(self, tmpdir_cwd, env):
+ self._create_project()
+ build_files({
+ 'MANIFEST.in': DALS("""
+ recursive-include docs *.rst
+ """),
+ 'docs': {
+ 'usage.rst': "Run 'hi'",
+ }
+ })
+ self._run_install_command(tmpdir_cwd, env)
+ egg_info_dir = self._find_egg_info_files(env.paths['lib']).base
+ sources_txt = os.path.join(egg_info_dir, 'SOURCES.txt')
+ assert 'docs/usage.rst' in open(sources_txt).read().split('\n')
+
+ def _run_install_command(self, tmpdir_cwd, env):
environ = os.environ.copy().update(
HOME=env.paths['home'],
)
@@ -76,21 +107,14 @@
if code:
raise AssertionError(data)
- actual = self._find_egg_info_files(env.paths['lib'])
-
- expected = [
- 'PKG-INFO',
- 'SOURCES.txt',
- 'dependency_links.txt',
- 'entry_points.txt',
- 'not-zip-safe',
- 'top_level.txt',
- ]
- assert sorted(actual) == expected
-
def _find_egg_info_files(self, root):
+ class DirList(list):
+ def __init__(self, files, base):
+ super(DirList, self).__init__(files)
+ self.base = base
+
results = (
- filenames
+ DirList(filenames, dirpath)
for dirpath, dirnames, filenames in os.walk(root)
if os.path.basename(dirpath) == 'EGG-INFO'
)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/setuptools-19.1.1/setuptools/tests/test_setuptools.py new/setuptools-19.2/setuptools/tests/test_setuptools.py
--- old/setuptools-19.1.1/setuptools/tests/test_setuptools.py 2015-11-30 17:24:31.000000000 +0100
+++ new/setuptools-19.2/setuptools/tests/test_setuptools.py 2015-12-25 15:49:45.000000000 +0100
@@ -23,7 +23,7 @@
def test_findall_curdir(example_source):
with example_source.as_cwd():
found = list(setuptools.findall())
- expected = ['readme.txt', 'foo/bar.py']
+ expected = ['readme.txt', os.path.join('foo', 'bar.py')]
assert found == expected
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/setuptools-19.1.1/setuptools/version.py new/setuptools-19.2/setuptools/version.py
--- old/setuptools-19.1.1/setuptools/version.py 2015-12-17 01:27:28.000000000 +0100
+++ new/setuptools-19.2/setuptools/version.py 2015-12-25 16:52:52.000000000 +0100
@@ -1 +1 @@
-__version__ = '19.1.1'
+__version__ = '19.2'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/setuptools-19.1.1/setuptools.egg-info/PKG-INFO new/setuptools-19.2/setuptools.egg-info/PKG-INFO
--- old/setuptools-19.1.1/setuptools.egg-info/PKG-INFO 2015-12-17 01:27:32.000000000 +0100
+++ new/setuptools-19.2/setuptools.egg-info/PKG-INFO 2015-12-25 16:52:55.000000000 +0100
@@ -1,6 +1,6 @@
Metadata-Version: 1.1
Name: setuptools
-Version: 19.1.1
+Version: 19.2
Summary: Easily download, build, install, upgrade, and uninstall Python packages
Home-page: https://bitbucket.org/pypa/setuptools
Author: Python Packaging Authority
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/setuptools-19.1.1/setuptools.egg-info/SOURCES.txt new/setuptools-19.2/setuptools.egg-info/SOURCES.txt
--- old/setuptools-19.1.1/setuptools.egg-info/SOURCES.txt 2015-12-17 01:27:33.000000000 +0100
+++ new/setuptools-19.2/setuptools.egg-info/SOURCES.txt 2015-12-25 16:52:56.000000000 +0100
@@ -112,6 +112,7 @@
setuptools/tests/__init__.py
setuptools/tests/contexts.py
setuptools/tests/environment.py
+setuptools/tests/files.py
setuptools/tests/fixtures.py
setuptools/tests/py26compat.py
setuptools/tests/script-with-bom.py
1
0
Hello community,
here is the log from the commit of package python3-snowballstemmer for openSUSE:Factory checked in at 2016-01-04 09:21:01
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python3-snowballstemmer (Old)
and /work/SRC/openSUSE:Factory/.python3-snowballstemmer.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python3-snowballstemmer"
Changes:
--------
--- /work/SRC/openSUSE:Factory/python3-snowballstemmer/python3-snowballstemmer.changes 2015-07-12 22:53:17.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.python3-snowballstemmer.new/python3-snowballstemmer.changes 2016-01-04 09:21:23.000000000 +0100
@@ -1,0 +2,6 @@
+Tue Dec 29 19:43:39 UTC 2015 - arun(a)gmx.de
+
+- update to version 1.2.1:
+ * Fixing typo: dictionaries don't have .key() method
+
+-------------------------------------------------------------------
Old:
----
snowballstemmer-1.2.0.tar.gz
New:
----
snowballstemmer-1.2.1.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python3-snowballstemmer.spec ++++++
--- /var/tmp/diff_new_pack.N8FhKJ/_old 2016-01-04 09:21:24.000000000 +0100
+++ /var/tmp/diff_new_pack.N8FhKJ/_new 2016-01-04 09:21:24.000000000 +0100
@@ -1,7 +1,7 @@
#
# spec file for package python3-snowballstemmer
#
-# 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
@@ -17,7 +17,7 @@
Name: python3-snowballstemmer
-Version: 1.2.0
+Version: 1.2.1
Release: 0
Summary: This package provides 16 stemmer algorithms
License: BSD-2-Clause
++++++ snowballstemmer-1.2.0.tar.gz -> snowballstemmer-1.2.1.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/snowballstemmer-1.2.0/PKG-INFO new/snowballstemmer-1.2.1/PKG-INFO
--- old/snowballstemmer-1.2.0/PKG-INFO 2014-07-16 12:13:27.000000000 +0200
+++ new/snowballstemmer-1.2.1/PKG-INFO 2015-12-25 04:28:38.000000000 +0100
@@ -1,6 +1,6 @@
Metadata-Version: 1.1
Name: snowballstemmer
-Version: 1.2.0
+Version: 1.2.1
Summary: This package provides 16 stemmer algorithms (15 + Poerter English stemmer) generated from Snowball algorithms.
Home-page: https://github.com/shibukawa/snowball_py
Author: Yoshiki Shibukawa
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/snowballstemmer-1.2.0/setup.py new/snowballstemmer-1.2.1/setup.py
--- old/snowballstemmer-1.2.0/setup.py 2014-07-16 12:01:29.000000000 +0200
+++ new/snowballstemmer-1.2.1/setup.py 2015-12-25 04:19:56.000000000 +0100
@@ -3,7 +3,7 @@
from distutils.core import setup
setup(name='snowballstemmer',
- version='1.2.0',
+ version='1.2.1',
description='This package provides 16 stemmer algorithms (15 + Poerter English stemmer) generated from Snowball algorithms.',
long_description='''
It includes following language algorithms:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/snowballstemmer-1.2.0/snowballstemmer/__init__.py new/snowballstemmer-1.2.1/snowballstemmer/__init__.py
--- old/snowballstemmer-1.2.0/snowballstemmer/__init__.py 2014-07-16 11:56:01.000000000 +0200
+++ new/snowballstemmer-1.2.1/snowballstemmer/__init__.py 2015-12-25 04:19:56.000000000 +0100
@@ -46,7 +46,7 @@
if cext_available:
return Stemmer.language()
else:
- return list(_languages.key())
+ return list(_languages.keys())
def stemmer(lang):
if cext_available:
1
0
Hello community,
here is the log from the commit of package kernel-source for openSUSE:Factory checked in at 2016-01-04 09:20:52
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/kernel-source (Old)
and /work/SRC/openSUSE:Factory/.kernel-source.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "kernel-source"
Changes:
--------
--- /work/SRC/openSUSE:Factory/kernel-source/kernel-debug.changes 2016-01-01 19:46:46.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.kernel-source.new/kernel-debug.changes 2016-01-04 09:21:13.000000000 +0100
@@ -1,0 +2,7 @@
+Wed Dec 30 10:32:09 CET 2015 - jlee(a)suse.com
+
+- KEYS: Fix handling of stored error in a negatively instantiated
+ user key (bnc#958463, CVE-2015-8539OD).
+- commit 008195a
+
+-------------------------------------------------------------------
kernel-default.changes: same change
kernel-docs.changes: same change
kernel-lpae.changes: same change
kernel-obs-build.changes: same change
kernel-obs-qa.changes: same change
kernel-pae.changes: same change
kernel-source.changes: same change
kernel-syms.changes: same change
kernel-vanilla.changes: same change
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ kernel-debug.spec ++++++
--- /var/tmp/diff_new_pack.dsG63C/_old 2016-01-04 09:21:19.000000000 +0100
+++ /var/tmp/diff_new_pack.dsG63C/_new 2016-01-04 09:21:19.000000000 +0100
@@ -59,7 +59,7 @@
Group: System/Kernel
Version: 4.3.3
%if 0%{?is_kotd}
-Release: <RELEASE>.g77a3e32
+Release: <RELEASE>.g008195a
%else
Release: 0
%endif
kernel-default.spec: same change
++++++ kernel-docs.spec ++++++
--- /var/tmp/diff_new_pack.dsG63C/_old 2016-01-04 09:21:19.000000000 +0100
+++ /var/tmp/diff_new_pack.dsG63C/_new 2016-01-04 09:21:19.000000000 +0100
@@ -29,7 +29,7 @@
Group: Documentation/Man
Version: 4.3.3
%if 0%{?is_kotd}
-Release: <RELEASE>.g77a3e32
+Release: <RELEASE>.g008195a
%else
Release: 0
%endif
++++++ kernel-lpae.spec ++++++
--- /var/tmp/diff_new_pack.dsG63C/_old 2016-01-04 09:21:19.000000000 +0100
+++ /var/tmp/diff_new_pack.dsG63C/_new 2016-01-04 09:21:19.000000000 +0100
@@ -59,7 +59,7 @@
Group: System/Kernel
Version: 4.3.3
%if 0%{?is_kotd}
-Release: <RELEASE>.g77a3e32
+Release: <RELEASE>.g008195a
%else
Release: 0
%endif
++++++ kernel-obs-build.spec ++++++
--- /var/tmp/diff_new_pack.dsG63C/_old 2016-01-04 09:21:19.000000000 +0100
+++ /var/tmp/diff_new_pack.dsG63C/_new 2016-01-04 09:21:19.000000000 +0100
@@ -44,7 +44,7 @@
Group: SLES
Version: 4.3.3
%if 0%{?is_kotd}
-Release: <RELEASE>.g77a3e32
+Release: <RELEASE>.g008195a
%else
Release: 0
%endif
kernel-obs-qa.spec: same change
++++++ kernel-pae.spec ++++++
--- /var/tmp/diff_new_pack.dsG63C/_old 2016-01-04 09:21:19.000000000 +0100
+++ /var/tmp/diff_new_pack.dsG63C/_new 2016-01-04 09:21:19.000000000 +0100
@@ -59,7 +59,7 @@
Group: System/Kernel
Version: 4.3.3
%if 0%{?is_kotd}
-Release: <RELEASE>.g77a3e32
+Release: <RELEASE>.g008195a
%else
Release: 0
%endif
++++++ kernel-source.spec ++++++
--- /var/tmp/diff_new_pack.dsG63C/_old 2016-01-04 09:21:19.000000000 +0100
+++ /var/tmp/diff_new_pack.dsG63C/_new 2016-01-04 09:21:19.000000000 +0100
@@ -32,7 +32,7 @@
Group: Development/Sources
Version: 4.3.3
%if 0%{?is_kotd}
-Release: <RELEASE>.g77a3e32
+Release: <RELEASE>.g008195a
%else
Release: 0
%endif
++++++ kernel-syms.spec ++++++
--- /var/tmp/diff_new_pack.dsG63C/_old 2016-01-04 09:21:19.000000000 +0100
+++ /var/tmp/diff_new_pack.dsG63C/_new 2016-01-04 09:21:19.000000000 +0100
@@ -27,7 +27,7 @@
Version: 4.3.3
%if %using_buildservice
%if 0%{?is_kotd}
-Release: <RELEASE>.g77a3e32
+Release: <RELEASE>.g008195a
%else
Release: 0
%endif
++++++ kernel-vanilla.spec ++++++
--- /var/tmp/diff_new_pack.dsG63C/_old 2016-01-04 09:21:19.000000000 +0100
+++ /var/tmp/diff_new_pack.dsG63C/_new 2016-01-04 09:21:19.000000000 +0100
@@ -59,7 +59,7 @@
Group: System/Kernel
Version: 4.3.3
%if 0%{?is_kotd}
-Release: <RELEASE>.g77a3e32
+Release: <RELEASE>.g008195a
%else
Release: 0
%endif
++++++ patches.fixes.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches.fixes/0001-KEYS-Fix-handling-of-stored-error-in-a-negatively-in.patch new/patches.fixes/0001-KEYS-Fix-handling-of-stored-error-in-a-negatively-in.patch
--- old/patches.fixes/0001-KEYS-Fix-handling-of-stored-error-in-a-negatively-in.patch 1970-01-01 01:00:00.000000000 +0100
+++ new/patches.fixes/0001-KEYS-Fix-handling-of-stored-error-in-a-negatively-in.patch 2015-12-30 10:32:09.000000000 +0100
@@ -0,0 +1,121 @@
+From 096fe9eaea40a17e125569f9e657e34cdb6d73bd Mon Sep 17 00:00:00 2001
+From: David Howells <dhowells(a)redhat.com>
+Date: Tue, 24 Nov 2015 21:36:31 +0000
+Subject: [PATCH] KEYS: Fix handling of stored error in a negatively
+ instantiated user key
+
+Git-commit: 096fe9eaea40a17e125569f9e657e34cdb6d73bd
+Patch-mainline: v4.4-rc3
+References: bnc#958463, CVE-2015-8539OD
+
+If a user key gets negatively instantiated, an error code is cached in the
+payload area. A negatively instantiated key may be then be positively
+instantiated by updating it with valid data. However, the ->update key
+type method must be aware that the error code may be there.
+
+The following may be used to trigger the bug in the user key type:
+
+ keyctl request2 user user "" @u
+ keyctl add user user "a" @u
+
+which manifests itself as:
+
+ BUG: unable to handle kernel paging request at 00000000ffffff8a
+ IP: [<ffffffff810a376f>] __call_rcu.constprop.76+0x1f/0x280 kernel/rcu/tree.c:3046
+ PGD 7cc30067 PUD 0
+ Oops: 0002 [#1] SMP
+ Modules linked in:
+ CPU: 3 PID: 2644 Comm: a.out Not tainted 4.3.0+ #49
+ Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS Bochs 01/01/2011
+ task: ffff88003ddea700 ti: ffff88003dd88000 task.ti: ffff88003dd88000
+ RIP: 0010:[<ffffffff810a376f>] [<ffffffff810a376f>] __call_rcu.constprop.76+0x1f/0x280
+ [<ffffffff810a376f>] __call_rcu.constprop.76+0x1f/0x280 kernel/rcu/tree.c:3046
+ RSP: 0018:ffff88003dd8bdb0 EFLAGS: 00010246
+ RAX: 00000000ffffff82 RBX: 0000000000000000 RCX: 0000000000000001
+ RDX: ffffffff81e3fe40 RSI: 0000000000000000 RDI: 00000000ffffff82
+ RBP: ffff88003dd8bde0 R08: ffff88007d2d2da0 R09: 0000000000000000
+ R10: 0000000000000000 R11: ffff88003e8073c0 R12: 00000000ffffff82
+ R13: ffff88003dd8be68 R14: ffff88007d027600 R15: ffff88003ddea700
+ FS: 0000000000b92880(0063) GS:ffff88007fd00000(0000) knlGS:0000000000000000
+ CS: 0010 DS: 0000 ES: 0000 CR0: 000000008005003b
+ CR2: 00000000ffffff8a CR3: 000000007cc5f000 CR4: 00000000000006e0
+ Stack:
+ ffff88003dd8bdf0 ffffffff81160a8a 0000000000000000 00000000ffffff82
+ ffff88003dd8be68 ffff88007d027600 ffff88003dd8bdf0 ffffffff810a39e5
+ ffff88003dd8be20 ffffffff812a31ab ffff88007d027600 ffff88007d027620
+ Call Trace:
+ [<ffffffff810a39e5>] kfree_call_rcu+0x15/0x20 kernel/rcu/tree.c:3136
+ [<ffffffff812a31ab>] user_update+0x8b/0xb0 security/keys/user_defined.c:129
+ [< inline >] __key_update security/keys/key.c:730
+ [<ffffffff8129e5c1>] key_create_or_update+0x291/0x440 security/keys/key.c:908
+ [< inline >] SYSC_add_key security/keys/keyctl.c:125
+ [<ffffffff8129fc21>] SyS_add_key+0x101/0x1e0 security/keys/keyctl.c:60
+ [<ffffffff8185f617>] entry_SYSCALL_64_fastpath+0x12/0x6a arch/x86/entry/entry_64.S:185
+
+Note the error code (-ENOKEY) in EDX.
+
+A similar bug can be tripped by:
+
+ keyctl request2 trusted user "" @u
+ keyctl add trusted user "a" @u
+
+This should also affect encrypted keys - but that has to be correctly
+parameterised or it will fail with EINVAL before getting to the bit that
+will crashes.
+
+Reported-by: Dmitry Vyukov <dvyukov(a)google.com>
+Signed-off-by: David Howells <dhowells(a)redhat.com>
+Acked-by: Mimi Zohar <zohar(a)linux.vnet.ibm.com>
+Signed-off-by: James Morris <james.l.morris(a)oracle.com>
+Acked-by: Lee, Chun-Yi <jlee(a)suse.com>
+---
+ security/keys/encrypted-keys/encrypted.c | 2 ++
+ security/keys/trusted.c | 5 ++++-
+ security/keys/user_defined.c | 5 ++++-
+ 3 files changed, 10 insertions(+), 2 deletions(-)
+
+--- a/security/keys/encrypted-keys/encrypted.c
++++ b/security/keys/encrypted-keys/encrypted.c
+@@ -845,6 +845,8 @@ static int encrypted_update(struct key *
+ size_t datalen = prep->datalen;
+ int ret = 0;
+
++ if (test_bit(KEY_FLAG_NEGATIVE, &key->flags))
++ return -ENOKEY;
+ if (datalen <= 0 || datalen > 32767 || !prep->data)
+ return -EINVAL;
+
+--- a/security/keys/trusted.c
++++ b/security/keys/trusted.c
+@@ -984,13 +984,16 @@ static void trusted_rcu_free(struct rcu_
+ */
+ static int trusted_update(struct key *key, struct key_preparsed_payload *prep)
+ {
+- struct trusted_key_payload *p = key->payload.data;
++ struct trusted_key_payload *p;
+ struct trusted_key_payload *new_p;
+ struct trusted_key_options *new_o;
+ size_t datalen = prep->datalen;
+ char *datablob;
+ int ret = 0;
+
++ if (test_bit(KEY_FLAG_NEGATIVE, &key->flags))
++ return -ENOKEY;
++ p = key->payload.data;
+ if (!p->migratable)
+ return -EPERM;
+ if (datalen <= 0 || datalen > 32767 || !prep->data)
+--- a/security/keys/user_defined.c
++++ b/security/keys/user_defined.c
+@@ -120,7 +120,10 @@ int user_update(struct key *key, struct
+
+ if (ret == 0) {
+ /* attach the new data, displacing the old */
+- zap = key->payload.data;
++ if (!test_bit(KEY_FLAG_NEGATIVE, &key->flags))
++ zap = key->payload.data;
++ else
++ zap = NULL;
+ rcu_assign_keypointer(key, upayload);
+ key->expiry = 0;
+ }
++++++ series.conf ++++++
--- /var/tmp/diff_new_pack.dsG63C/_old 2016-01-04 09:21:19.000000000 +0100
+++ /var/tmp/diff_new_pack.dsG63C/_new 2016-01-04 09:21:19.000000000 +0100
@@ -456,6 +456,9 @@
#
##########################################################
+ # bsc#958463 VUL-0: CVE-2015-8539: kernel: Fix handling of stored error in a negatively instantiated user key
+ patches.fixes/0001-KEYS-Fix-handling-of-stored-error-in-a-negatively-in.patch
+
##########################################################
# Audit
++++++ source-timestamp ++++++
--- /var/tmp/diff_new_pack.dsG63C/_old 2016-01-04 09:21:19.000000000 +0100
+++ /var/tmp/diff_new_pack.dsG63C/_new 2016-01-04 09:21:19.000000000 +0100
@@ -1,3 +1,3 @@
-2015-12-28 16:58:51 +0100
-GIT Revision: 77a3e32efb4979780b41ec71dde40026a3045fbc
+2015-12-30 10:32:09 +0100
+GIT Revision: 008195af0bd30b4154392c382ad19eb6248fdeb1
GIT Branch: stable
1
0
Hello community,
here is the log from the commit of package perl-Test-Exception for openSUSE:Factory checked in at 2016-01-04 09:20:43
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/perl-Test-Exception (Old)
and /work/SRC/openSUSE:Factory/.perl-Test-Exception.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "perl-Test-Exception"
Changes:
--------
--- /work/SRC/openSUSE:Factory/perl-Test-Exception/perl-Test-Exception.changes 2015-06-11 09:09:27.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.perl-Test-Exception.new/perl-Test-Exception.changes 2016-01-04 09:21:04.000000000 +0100
@@ -1,0 +2,15 @@
+Sat Jan 2 10:16:17 UTC 2016 - coolo(a)suse.com
+
+- updated to 0.43
+ see /usr/share/doc/packages/perl-Test-Exception/Changes
+
+-------------------------------------------------------------------
+Sat Dec 26 10:16:52 UTC 2015 - coolo(a)suse.com
+
+- updated to 0.41
+ see /usr/share/doc/packages/perl-Test-Exception/Changes
+
+ 0.40 [2015-12-21]
+ - Updated for Test2
+
+-------------------------------------------------------------------
Old:
----
Test-Exception-0.40.tar.gz
New:
----
Test-Exception-0.43.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ perl-Test-Exception.spec ++++++
--- /var/tmp/diff_new_pack.iwYHi9/_old 2016-01-04 09:21:05.000000000 +0100
+++ /var/tmp/diff_new_pack.iwYHi9/_new 2016-01-04 09:21:05.000000000 +0100
@@ -1,7 +1,7 @@
#
# spec file for package perl-Test-Exception
#
-# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -17,10 +17,10 @@
Name: perl-Test-Exception
-Version: 0.400000
+Version: 0.430000
Release: 0
-%define cpan_version 0.40
-Provides: perl(Test::Exception) = 0.400000
+%define cpan_version 0.43
+Provides: perl(Test::Exception) = 0.430000
%define cpan_name Test-Exception
Summary: Test exception-based code
License: Artistic-1.0 or GPL-1.0+
@@ -43,85 +43,85 @@
%description
This module provides a few convenience methods for testing exception based
-code. It is built with the Test::Builder manpage and plays happily with the
-Test::More manpage and friends.
+code. It is built with Test::Builder and plays happily with Test::More and
+friends.
-If you are not already familiar with the Test::More manpage now would be
-the time to go take a look.
+If you are not already familiar with Test::More now would be the time to go
+take a look.
You can specify the test plan when you 'use Test::Exception' in the same
-way as 'use Test::More'. See the Test::More manpage for details.
+way as 'use Test::More'. See Test::More for details.
NOTE: Test::Exception only checks for exceptions. It will ignore other
methods of stopping program execution - including exit(). If you have an
exit() in evalled code Test::Exception will not catch this with any of its
testing functions.
-NOTE: This module uses the Sub::Uplevel manpage and relies on overriding
+NOTE: This module uses Sub::Uplevel and relies on overriding
'CORE::GLOBAL::caller' to hide your test blocks from the call stack. If
-this use of global overrides concerns you, the the Test::Fatal manpage
-module offers a more minimalist alternative.
+this use of global overrides concerns you, the Test::Fatal module offers a
+more minimalist alternative.
* *throws_ok*
- Tests to see that a specific exception is thrown. throws_ok() has two
- forms:
+Tests to see that a specific exception is thrown. throws_ok() has two
+forms:
throws_ok BLOCK REGEX, TEST_DESCRIPTION
throws_ok BLOCK CLASS, TEST_DESCRIPTION
- In the first form the test passes if the stringified exception matches
- the give regular expression. For example:
+In the first form the test passes if the stringified exception matches the
+give regular expression. For example:
throws_ok { read_file( 'unreadable' ) } qr/No file/, 'no file';
- If your perl does not support 'qr//' you can also pass a regex-like
- string, for example:
+If your perl does not support 'qr//' you can also pass a regex-like string,
+for example:
throws_ok { read_file( 'unreadable' ) } '/No file/', 'no file';
- The second form of throws_ok() test passes if the exception is of the
- same class as the one supplied, or a subclass of that class. For example:
+The second form of throws_ok() test passes if the exception is of the same
+class as the one supplied, or a subclass of that class. For example:
throws_ok { $foo->bar } "Error::Simple", 'simple error';
- Will only pass if the 'bar' method throws an Error::Simple exception, or
- a subclass of an Error::Simple exception.
+Will only pass if the 'bar' method throws an Error::Simple exception, or a
+subclass of an Error::Simple exception.
- You can get the same effect by passing an instance of the exception you
- want to look for. The following is equivalent to the previous example:
+You can get the same effect by passing an instance of the exception you
+want to look for. The following is equivalent to the previous example:
my $SIMPLE = Error::Simple->new;
throws_ok { $foo->bar } $SIMPLE, 'simple error';
- Should a throws_ok() test fail it produces appropriate diagnostic
- messages. For example:
+Should a throws_ok() test fail it produces appropriate diagnostic messages.
+For example:
not ok 3 - simple error
# Failed test (test.t at line 48)
# expecting: Error::Simple exception
# found: normal exit
- Like all other Test::Exception functions you can avoid prototypes by
- passing a subroutine explicitly:
+Like all other Test::Exception functions you can avoid prototypes by
+passing a subroutine explicitly:
throws_ok( sub {$foo->bar}, "Error::Simple", 'simple error' );
- A true value is returned if the test succeeds, false otherwise. On exit
- $@ is guaranteed to be the cause of death (if any).
+A true value is returned if the test succeeds, false otherwise. On exit $@
+is guaranteed to be the cause of death (if any).
- A description of the exception being checked is used if no optional test
- description is passed.
+A description of the exception being checked is used if no optional test
+description is passed.
- NOTE: Remember when you 'die $string_without_a_trailing_newline' perl
- will automatically add the current script line number, input line number
- and a newline. This will form part of the string that throws_ok regular
- expressions match against.
+NOTE: Remember when you 'die $string_without_a_trailing_newline' perl will
+automatically add the current script line number, input line number and a
+newline. This will form part of the string that throws_ok regular
+expressions match against.
* *dies_ok*
- Checks that a piece of code dies, rather than returning normally. For
- example:
+Checks that a piece of code dies, rather than returning normally. For
+example:
sub div {
my ( $a, $b ) = @_;
@@ -133,20 +133,20 @@
# or if you don't like prototypes
dies_ok( sub { div( 1, 0 ) }, 'divide by zero detected' );
- A true value is returned if the test succeeds, false otherwise. On exit
- $@ is guaranteed to be the cause of death (if any).
+A true value is returned if the test succeeds, false otherwise. On exit $@
+is guaranteed to be the cause of death (if any).
- Remember: This test will pass if the code dies for any reason. If you
- care about the reason it might be more sensible to write a more specific
- test using throws_ok().
+Remember: This test will pass if the code dies for any reason. If you care
+about the reason it might be more sensible to write a more specific test
+using throws_ok().
- The test description is optional, but recommended.
+The test description is optional, but recommended.
* *lives_ok*
- Checks that a piece of code doesn't die. This allows your test script to
- continue, rather than aborting if you get an unexpected exception. For
- example:
+Checks that a piece of code doesn't die. This allows your test script to
+continue, rather than aborting if you get an unexpected exception. For
+example:
sub read_file {
my $file = shift;
@@ -162,51 +162,51 @@
# or if you don't like prototypes
lives_ok( sub { $file = read_file('test.txt') }, 'file read' );
- Should a lives_ok() test fail it produces appropriate diagnostic
- messages. For example:
+Should a lives_ok() test fail it produces appropriate diagnostic messages.
+For example:
not ok 1 - file read
# Failed test (test.t at line 15)
# died: open failed (No such file or directory)
- A true value is returned if the test succeeds, false otherwise. On exit
- $@ is guaranteed to be the cause of death (if any).
+A true value is returned if the test succeeds, false otherwise. On exit $@
+is guaranteed to be the cause of death (if any).
- The test description is optional, but recommended.
+The test description is optional, but recommended.
* *lives_and*
- Run a test that may throw an exception. For example, instead of doing:
+Run a test that may throw an exception. For example, instead of doing:
my $file;
lives_ok { $file = read_file('answer.txt') } 'read_file worked';
is $file, "42", 'answer was 42';
- You can use lives_and() like this:
+You can use lives_and() like this:
lives_and { is read_file('answer.txt'), "42" } 'answer is 42';
# or if you don't like prototypes
lives_and(sub {is read_file('answer.txt'), "42"}, 'answer is 42');
- Which is the same as doing
+Which is the same as doing
is read_file('answer.txt'), "42\n", 'answer is 42';
- unless 'read_file('answer.txt')' dies, in which case you get the same
- kind of error as lives_ok()
+unless 'read_file('answer.txt')' dies, in which case you get the same kind
+of error as lives_ok()
not ok 1 - answer is 42
# Failed test (test.t at line 15)
# died: open failed (No such file or directory)
- A true value is returned if the test succeeds, false otherwise. On exit
- $@ is guaranteed to be the cause of death (if any).
+A true value is returned if the test succeeds, false otherwise. On exit $@
+is guaranteed to be the cause of death (if any).
- The test description is optional, but recommended.
+The test description is optional, but recommended.
%prep
%setup -q -n %{cpan_name}-%{cpan_version}
-find . -type f -print0 | xargs -0 chmod 644
+find . -type f ! -name \*.pl -print0 | xargs -0 chmod 644
%build
%{__perl} Makefile.PL INSTALLDIRS=vendor
++++++ Test-Exception-0.40.tar.gz -> Test-Exception-0.43.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test-Exception-0.40/Changes new/Test-Exception-0.43/Changes
--- old/Test-Exception-0.40/Changes 2015-06-06 05:32:46.000000000 +0200
+++ new/Test-Exception-0.43/Changes 2015-12-29 20:53:41.000000000 +0100
@@ -1,5 +1,16 @@
Revision history for Perl extension Test::Exception:
+0.43 [2015-12-28]
+
+ - No Changes from developer build 0.42_1
+
+0.42_1 [2015-12-28]
+
+ - Remove Test2/Test-Stream special cases, they are not needed
+
+0.41 [2015-12-21]
+ - Updated for Test2
+
0.40 [2015-06-05]
- Updated for changes in Test::Stream (Use Test::Stream::Sync)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test-Exception-0.40/MANIFEST.SKIP new/Test-Exception-0.43/MANIFEST.SKIP
--- old/Test-Exception-0.40/MANIFEST.SKIP 2015-06-06 05:32:38.000000000 +0200
+++ new/Test-Exception-0.43/MANIFEST.SKIP 2015-12-29 06:45:24.000000000 +0100
@@ -1,4 +1,70 @@
-#!include_default
+
+#!start included /home/exodist/perl5/perlbrew/perls/main/lib/5.22.1/ExtUtils/MANIFEST.SKIP
+# Avoid version control files.
+\bRCS\b
+\bCVS\b
+\bSCCS\b
+,v$
+\B\.svn\b
+\B\.git\b
+\B\.gitignore\b
+\b_darcs\b
+\B\.cvsignore$
+
+# Avoid VMS specific MakeMaker generated files
+\bDescrip.MMS$
+\bDESCRIP.MMS$
+\bdescrip.mms$
+
+# Avoid Makemaker generated and utility files.
+\bMANIFEST\.bak
+\bMakefile$
+\bblib/
+\bMakeMaker-\d
+\bpm_to_blib\.ts$
+\bpm_to_blib$
+\bblibdirs\.ts$ # 6.18 through 6.25 generated this
+\b_eumm/ # 7.05_05 and above
+
+# Avoid Module::Build generated and utility files.
+\bBuild$
+\b_build/
+\bBuild.bat$
+\bBuild.COM$
+\bBUILD.COM$
+\bbuild.com$
+
+# and Module::Build::Tiny generated files
+\b_build_params$
+
+# Avoid temp and backup files.
+~$
+\.old$
+\#$
+\b\.#
+\.bak$
+\.tmp$
+\.#
+\.rej$
+\..*\.sw.?$
+
+# Avoid OS-specific files/dirs
+# Mac OSX metadata
+\B\.DS_Store
+# Mac OSX SMB mount metadata files
+\B\._
+
+# Avoid Devel::Cover and Devel::CoverX::Covered files.
+\bcover_db\b
+\bcovered\b
+
+# Avoid prove files
+\B\.prove$
+
+# Avoid MYMETA files
+^MYMETA\.
+#!end included /home/exodist/perl5/perlbrew/perls/main/lib/5.22.1/ExtUtils/MANIFEST.SKIP
+
.ackrc
Test-Exception-.*/
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test-Exception-0.40/META.json new/Test-Exception-0.43/META.json
--- old/Test-Exception-0.40/META.json 2015-06-06 05:33:15.000000000 +0200
+++ new/Test-Exception-0.43/META.json 2015-12-29 20:54:12.000000000 +0100
@@ -4,7 +4,7 @@
"Adrian Howard <adrianh(a)quietstars.com>"
],
"dynamic_config" : 0,
- "generated_by" : "ExtUtils::MakeMaker version 7.04, CPAN::Meta::Converter version 2.150001",
+ "generated_by" : "ExtUtils::MakeMaker version 7.0401, CPAN::Meta::Converter version 2.150001",
"license" : [
"perl_5"
],
@@ -58,7 +58,7 @@
"web" : "https://github.com/Test-More/test-exception"
}
},
- "version" : "0.40",
+ "version" : "0.43",
"x_IRC" : "irc://irc.perl.org/#perl-qa",
"x_MailingList" : "http://lists.perl.org/list/perl-qa.html",
"x_authority" : "cpan:ADIE"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test-Exception-0.40/META.yml new/Test-Exception-0.43/META.yml
--- old/Test-Exception-0.40/META.yml 2015-06-06 05:33:15.000000000 +0200
+++ new/Test-Exception-0.43/META.yml 2015-12-29 20:54:12.000000000 +0100
@@ -8,7 +8,7 @@
configure_requires:
ExtUtils::MakeMaker: '0'
dynamic_config: 0
-generated_by: 'ExtUtils::MakeMaker version 7.04, CPAN::Meta::Converter version 2.150001'
+generated_by: 'ExtUtils::MakeMaker version 7.0401, CPAN::Meta::Converter version 2.150001'
license: perl
meta-spec:
url: http://module-build.sourceforge.net/META-spec-v1.4.html
@@ -33,7 +33,7 @@
bugtracker: https://github.com/Test-More/test-exception/issues
homepage: https://github.com/Test-More/test-exception
repository: https://github.com/Test-More/test-exception.git
-version: '0.40'
+version: '0.43'
x_IRC: irc://irc.perl.org/#perl-qa
x_MailingList: http://lists.perl.org/list/perl-qa.html
x_authority: cpan:ADIE
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test-Exception-0.40/lib/Test/Exception.pm new/Test-Exception-0.43/lib/Test/Exception.pm
--- old/Test-Exception-0.40/lib/Test/Exception.pm 2015-06-06 05:32:46.000000000 +0200
+++ new/Test-Exception-0.43/lib/Test/Exception.pm 2015-12-29 20:53:49.000000000 +0100
@@ -6,7 +6,9 @@
use Sub::Uplevel qw( uplevel );
use base qw( Exporter );
-our $VERSION = '0.40';
+our $VERSION = '0.43';
+$VERSION = eval $VERSION;
+
our @EXPORT = qw(dies_ok lives_ok throws_ok lives_and);
my $Tester = Test::Builder->new;
@@ -214,11 +216,11 @@
sub throws_ok (&$;$) {
my ( $coderef, $expecting, $description ) = @_;
unless (defined $expecting) {
- require Carp;
- Carp::croak( "throws_ok: must pass exception class/object or regex" );
+ require Carp;
+ Carp::croak( "throws_ok: must pass exception class/object or regex" );
}
$description = _exception_as_string( "threw", $expecting )
- unless defined $description;
+ unless defined $description;
my $exception = _try_as_caller( $coderef );
my $regex = $Tester->maybe_regex( $expecting );
my $ok = $regex
@@ -301,7 +303,7 @@
my ( $coderef, $description ) = @_;
my $exception = _try_as_caller( $coderef );
my $ok = $Tester->ok( ! _is_exception( $exception ), $description );
- $Tester->diag( _exception_as_string( "died:", $exception ) ) unless $ok;
+ $Tester->diag( _exception_as_string( "died:", $exception ) ) unless $ok;
$@ = $exception;
return $ok;
}
@@ -337,29 +339,13 @@
=cut
-my $is_stream = $INC{'Test/Stream/Sync.pm'};
-our $LIVES_AND_NAME;
-if ($is_stream) {
- Test::Stream::Sync->stack->top->munge(sub {
- return unless defined $LIVES_AND_NAME;
- my ($stream, $e) = @_;
- return unless $e->isa('Test::Stream::Event::Ok');
- return if defined $e->name;
- $e->set_name($LIVES_AND_NAME);
- });
-}
-
sub lives_and (&;$) {
my ( $test, $description ) = @_;
- if ($is_stream) {
- local $LIVES_AND_NAME = $description;
- eval { $test->() } and return 1;
- }
- else {
- local $Test::Builder::Level = $Test::Builder::Level + 1;
+ {
my $ok = \&Test::Builder::ok;
no warnings;
local *Test::Builder::ok = sub {
+ local $Test::Builder::Level = $Test::Builder::Level + 1;
$_[2] = $description unless defined $_[2];
$ok->(@_);
};
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test-Exception-0.40/t/edge-cases.t new/Test-Exception-0.43/t/edge-cases.t
--- old/Test-Exception-0.40/t/edge-cases.t 2015-06-04 16:57:46.000000000 +0200
+++ new/Test-Exception-0.43/t/edge-cases.t 2015-12-29 06:45:24.000000000 +0100
@@ -1,5 +1,3 @@
-#! /usr/bin/perl
-
use strict;
use warnings;
use Test::More skip_all => 'stuff relating to RT#24678 that I have not fixed yet';
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test-Exception-0.40/t/lives_and.t new/Test-Exception-0.43/t/lives_and.t
--- old/Test-Exception-0.40/t/lives_and.t 2015-06-05 07:44:45.000000000 +0200
+++ new/Test-Exception-0.43/t/lives_and.t 2015-12-29 06:55:46.000000000 +0100
@@ -5,10 +5,13 @@
use Test::Builder::Tester tests => 3;
use Test::More;
+diag "\$Test::More::VERSION = $Test::More::VERSION";
+
BEGIN { use_ok( 'Test::Exception' ) };
sub works {return shift};
sub dies { die 'oops' };
+my $die_line = __LINE__ - 1;
my $filename = sub { return (caller)[1] }->();
@@ -22,7 +25,7 @@
test_out('not ok 2 - lives_and, exception');
test_fail(+2);
-test_err("# died: oops at $filename line 11.");
+test_err("# died: oops at $filename line $die_line.");
lives_and {is dies(42), 42} 'lives_and, exception';
test_out('ok 3 - the test passed' );
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test-Exception-0.40/t/rt.t new/Test-Exception-0.43/t/rt.t
--- old/Test-Exception-0.40/t/rt.t 2015-06-04 16:57:46.000000000 +0200
+++ new/Test-Exception-0.43/t/rt.t 2015-12-29 06:45:24.000000000 +0100
@@ -1,5 +1,3 @@
-#! /usr/bin/perl
-
use strict;
use warnings;
use Test::More 'no_plan';
1
0
Hello community,
here is the log from the commit of package vim for openSUSE:Factory checked in at 2016-01-04 09:20:38
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/vim (Old)
and /work/SRC/openSUSE:Factory/.vim.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "vim"
Changes:
--------
--- /work/SRC/openSUSE:Factory/vim/vim.changes 2015-12-03 13:25:59.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.vim.new/vim.changes 2016-01-04 09:21:00.000000000 +0100
@@ -1,0 +2,61 @@
+Thu Dec 31 13:49:01 UTC 2015 - idonmez(a)suse.com
+
+- Updated to revision 1004, fixes the following problems
+ * searchpos() always starts searching in the first column,
+ which is not what some people expect. (Brett Stahlman)
+ * Leaking memory when hash_add() fails. Coverity error 99126.
+
+-------------------------------------------------------------------
+Sat Dec 19 18:52:34 UTC 2015 - idonmez(a)suse.com
+
+- Updated to revision 979, fixes the following problems
+ * When pasting on the command line line breaks result in literal <CR> characters.
+ This makes pasting a long file name difficult.
+ * When using :diffsplit the cursor jumps to the first line.
+ * Using ":sort" on a very big file sometimes causes text to be corrupted. (John Beckett)
+ * test_cdo fails when using another language than English.
+ * When changing the crypt key the blocks read from disk are not decrypted.
+
+-------------------------------------------------------------------
+Sun Dec 13 16:13:24 UTC 2015 - idonmez(a)suse.com
+
+- Updated to revision 972, fixes the following problems
+ * Test 87 doesn't work in a shadow directory.
+ * Configure doesn't work with a space in a path.
+ * test86 and test87 are flaky in Appveyor.
+ * Rare crash in getvcol(). (Timo Mihaljov)
+ * The asin() function can't be used.
+ * Memory leak when there is an error in setting an option.
+
+-------------------------------------------------------------------
+Sun Dec 6 14:47:49 UTC 2015 - idonmez(a)suse.com
+
+- Updated to revision 963, fixes the following problems
+ * Crash when dragging with the mouse.
+ * Segfault reading unitialized memory.
+ * X11 and GTK have moure mouse buttons than Vim supports.
+ * Memory leak when encountering a syntax error.
+ * vt52 terminal codes are not correct.
+ * There is no way to ignore case only for tag searches.
+ * test_tagcase breaks for small builds.
+ * Writing tests for Vim script is hard.
+ * New style testing is incomplete.
+ * Missing changes in source file.
+ * Test_listchars fails with MingW. (Michael Soyka)
+ * Can't build when the insert_expand feature is disabled.
+ * When using 'colorcolumn' and there is a sign with a fullwidth character the highlighting is wrong. (Andrew Stewart)
+ * v:errors is not initialized.
+ * Sorting number strings does not work as expected. (Luc Hermitte)
+ * 'lispwords' is tested in the old way.
+ * When a test script navigates to another buffer the .res file is created with the wrong name.
+ * When using Lua there may be a crash. (issue #468)
+ * Vim doesn't recognize .pl6 and .pod6 files.
+ * A few more file name extensions not recognized.
+ * Test_tagcase fails when using another language than English.
+ * Vim checks if the directory "$TMPDIR" exists.
+ * When setting 'term' the clipboard ownership is lost.
+ * Test107 fails in some circunstances.
+ * Cannot run the tests with gvim. Cannot run individual new stests.
+ * test_listlbr_utf8 sometimes fails.
+
+-------------------------------------------------------------------
Old:
----
v7.4.935.tar.gz
New:
----
v7.4.1004.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ vim.spec ++++++
--- /var/tmp/diff_new_pack.kB6uuG/_old 2016-01-04 09:21:01.000000000 +0100
+++ /var/tmp/diff_new_pack.kB6uuG/_new 2016-01-04 09:21:01.000000000 +0100
@@ -17,7 +17,7 @@
%define pkg_version 7.4
-%define patchlevel 935
+%define patchlevel 1004
%define VIM_SUBDIR vim74
%define site_runtimepath /usr/share/vim/site
%define make make VIMRCLOC=/etc VIMRUNTIMEDIR=/usr/share/vim/current MAKE="make -e" %{?_smp_mflags}
++++++ v7.4.935.tar.gz -> v7.4.1004.tar.gz ++++++
/work/SRC/openSUSE:Factory/vim/v7.4.935.tar.gz /work/SRC/openSUSE:Factory/.vim.new/v7.4.1004.tar.gz differ: char 12, line 1
1
0
Hello community,
here is the log from the commit of package libwpg for openSUSE:Factory checked in at 2016-01-04 09:20:32
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/libwpg (Old)
and /work/SRC/openSUSE:Factory/.libwpg.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "libwpg"
Changes:
--------
--- /work/SRC/openSUSE:Factory/libwpg/libwpg.changes 2014-07-27 18:47:02.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.libwpg.new/libwpg.changes 2016-01-04 09:20:53.000000000 +0100
@@ -1,0 +2,18 @@
+Wed Dec 30 16:38:11 UTC 2015 - fstrba(a)suse.com
+
+- Generate manpages for the binaries in libwpg-tools
+
+-------------------------------------------------------------------
+Sat Dec 26 20:56:35 UTC 2015 - fstrba(a)suse.com
+
+- Version bump to 0.3.1:
+ * Fix crash when NULL is passed as input stream.
+ * Use symbol visibility on Linux. The library only exports public
+ functions now.
+ * Fix various crashes and hangs when reading broken files found
+ with the help of american-fuzzy-lop.
+ * Fix some warnings found by Coverity.
+ * Make --help output of all command line tools more
+ help2man-friendly.
+
+-------------------------------------------------------------------
Old:
----
libwpg-0.3.0.tar.xz
New:
----
libwpg-0.3.1.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ libwpg.spec ++++++
--- /var/tmp/diff_new_pack.ynFQPA/_old 2016-01-04 09:20:54.000000000 +0100
+++ /var/tmp/diff_new_pack.ynFQPA/_new 2016-01-04 09:20:54.000000000 +0100
@@ -1,7 +1,7 @@
#
# spec file for package libwpg
#
-# Copyright (c) 2014 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
@@ -17,7 +17,7 @@
Name: libwpg
-Version: 0.3.0
+Version: 0.3.1
Release: 0
Summary: Library to read and parse graphics in WordPerfect Graphics format
License: LGPL-2.1+ and MPL-2.0+
@@ -26,6 +26,7 @@
Source: http://downloads.sourceforge.net/project/%{name}/%{name}/%{name}-%{version}…
BuildRequires: doxygen
BuildRequires: gcc-c++
+BuildRequires: help2man
BuildRequires: librevenge-devel >= 0.0.0
BuildRequires: libwpd-devel >= 0.10.0
BuildRequires: pkg-config
@@ -94,6 +95,12 @@
%install
make DESTDIR=%{buildroot} install %{?_smp_mflags}
find %{buildroot} -type f -name "*.la" -delete -print
+# manpages
+mkdir -p %{buildroot}%{_mandir}/man1
+for i in wpg2raw wpg2svg; do
+ LD_LIBRARY_PATH=%{buildroot}%{_libdir} \
+ help2man -N -o %{buildroot}%{_mandir}/man1/$i.1 %{buildroot}%{_bindir}/$i
+done
# documentation
mkdir -p %{buildroot}%{_docdir}/%{name}
cp -p AUTHORS COPYING.LGPL COPYING.MPL ChangeLog %{buildroot}%{_docdir}/%{name}
@@ -119,6 +126,7 @@
%files tools
%defattr(-,root,root)
%{_bindir}/*
+%{_mandir}/man1/*.1*
%doc %dir %{_docdir}/%{name}
%doc %{_docdir}/%{name}/[A-Z]*
++++++ libwpg-0.3.0.tar.xz -> libwpg-0.3.1.tar.xz ++++++
++++ 27871 lines of diff (skipped)
1
0
Hello community,
here is the log from the commit of package virtualbox for openSUSE:Factory checked in at 2016-01-04 09:20:26
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/virtualbox (Old)
and /work/SRC/openSUSE:Factory/.virtualbox.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "virtualbox"
Changes:
--------
--- /work/SRC/openSUSE:Factory/virtualbox/virtualbox.changes 2015-12-23 09:56:32.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.virtualbox.new/virtualbox.changes 2016-01-04 09:20:50.000000000 +0100
@@ -1,0 +2,34 @@
+Sat Dec 26 19:58:13 UTC 2015 - Larry.Finger(a)lwfinger.net
+
+- Version bump to 5.0.12 (released 2015-12-18i by Oracle)
+
+This is a maintenance release. The following items were fixed and/or added:
+
+ GUI: fixed wrong scrolling behaviour in the VM selector window when a VM item is dragged out of the chooser-pane area
+ GUI: fixed the validation of IPv6 port-forwarding rules
+ GUI: suppress the first-run wizard if a CD/DVD medium is inserted using the selector UI
+ GUI: fixed the Ctrl+Break key sequence scan codes (bug #14927)
+ GUI: improved handling of text selection mouse pointer (bug #750)
+ Host services: fixed a crash during VM shutdown under rare conditions (5.0.6 regression; bug #14841)
+ Shared folders: fixed a sharing violation if a file is opened to check the attributes (Windows hosts only; bug #14450)
+ Webcam: passthrough fix for certain devices (Mac OS X hosts only)
+ XHCI: fixed broken emulation if software virtualization is used
+ XHCI: several fixes
+ 3D: fixed state handling under certain conditions (bug #13487)
+ Audio: several fixes
+ BIOS: added LBA64 support for being able to boot from huge hard disks (bug #7415)
+ EFI: fix for Windows 10 guests
+ ExtPack: before installing an Extension Pack check if there are VMs running to prevent file system locking issues
+ rdesktop-vrdp: source code tarball fixes
+ Linux hosts: .desktop file compatibility issue (bug #14808)
+ Linux hosts / guests: fixes for RHEL 7.2 (bug #14866)
+ The command for recompiling the host kernel modules was changed again, to /sbin/rcvboxdrv setup (bug #14723)
+ Linux hosts: some fixes for PCI passthrough (still highly experimental)
+ Linux/Mac OS X hosts: fixed a VM hang during startup under certain circumstances (bug #14933)
+ Linux Additions: prevent the compiler from doing dead-code elemination on vital code in guest / host communication (bug #14497)
+ Linux Additions: when mounting a shared folder, explicitly pass the share name so that /proc/mounts contains this name instead of 'none'
+ Linux Additions: workaround for a systemd problem in conjunction with SELinux which prevented to properly enable the 'vboxadd' service during while upgrading the Additions
+
+
+
+-------------------------------------------------------------------
Old:
----
VirtualBox-5.0.10-patched.tar.bz2
New:
----
VirtualBox-5.0.12-patched.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ virtualbox.spec ++++++
--- /var/tmp/diff_new_pack.kSqLLc/_old 2016-01-04 09:20:53.000000000 +0100
+++ /var/tmp/diff_new_pack.kSqLLc/_new 2016-01-04 09:20:53.000000000 +0100
@@ -19,7 +19,7 @@
%define _vbox_instdir %{_libexecdir}/virtualbox
%define _udevrulesdir %{_libexecdir}/udev/rules.d
Name: virtualbox
-Version: 5.0.10
+Version: 5.0.12
Release: 0
Summary: VirtualBox is an Emulator
License: GPL-2.0+
++++++ UserManual.pdf ++++++
(binary differes)
++++++ VirtualBox-5.0.10-patched.tar.bz2 -> VirtualBox-5.0.12-patched.tar.bz2 ++++++
/work/SRC/openSUSE:Factory/virtualbox/VirtualBox-5.0.10-patched.tar.bz2 /work/SRC/openSUSE:Factory/.virtualbox.new/VirtualBox-5.0.12-patched.tar.bz2 differ: char 11, line 1
++++++ vbox-vboxadd-init-script.diff ++++++
--- /var/tmp/diff_new_pack.kSqLLc/_old 2016-01-04 09:20:53.000000000 +0100
+++ /var/tmp/diff_new_pack.kSqLLc/_new 2016-01-04 09:20:53.000000000 +0100
@@ -18,7 +18,7 @@
### END INIT INFO
PATH=$PATH:/bin:/sbin:/usr/sbin
-@@ -257,12 +258,6 @@ do_vboxguest_non_udev()
+@@ -224,12 +225,6 @@ do_vboxguest_non_udev()
fail "Cannot create device $dev with major $maj and minor $min"
}
fi
@@ -31,7 +31,7 @@
if [ ! -c $userdev ]; then
maj=10
-@@ -273,12 +268,6 @@ do_vboxguest_non_udev()
+@@ -240,12 +235,6 @@ do_vboxguest_non_udev()
rmmod vboxguest 2>/dev/null
fail "Cannot create device $userdev with major $maj and minor $min"
}
@@ -44,10 +44,10 @@
fi
fi
}
-@@ -286,6 +275,13 @@ do_vboxguest_non_udev()
- start()
- {
- begin "Starting the VirtualBox Guest Additions ";
+@@ -260,6 +249,13 @@ start()
+ fi
+ test -n "$INSTALL_DIR" -a -n "$INSTALL_VER" ||
+ fail "Configuration file $config not complete"
+
+ if [ -x /usr/bin/systemd-detect-virt ]; then
+ if [ "x$(systemd-detect-virt)" != "xoracle" ]; then
@@ -58,7 +58,7 @@
uname -r | grep -q -E '^2\.6|^3|^4' 2>/dev/null &&
ps -A -o comm | grep -q '/*udevd$' 2>/dev/null ||
no_udev=1
-@@ -493,32 +489,8 @@ extra_setup()
+@@ -470,33 +466,8 @@ extra_setup()
# setup_script
setup()
{
@@ -72,6 +72,7 @@
- export BUILD_TYPE
- export USERNAME
-
+- rm -f $LOG
- MODULE_SRC="$INSTALL_DIR/src/vboxguest-$INSTALL_VER"
- BUILDINTMP="$MODULE_SRC/build_in_tmp"
- DODKMS="$MODULE_SRC/do_dkms"
1
0
Hello community,
here is the log from the commit of package pcsc-lite for openSUSE:Factory checked in at 2016-01-04 09:20:20
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/pcsc-lite (Old)
and /work/SRC/openSUSE:Factory/.pcsc-lite.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "pcsc-lite"
Changes:
--------
--- /work/SRC/openSUSE:Factory/pcsc-lite/pcsc-lite.changes 2015-10-12 10:00:22.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.pcsc-lite.new/pcsc-lite.changes 2016-01-04 09:20:42.000000000 +0100
@@ -1,0 +2,9 @@
+Sat Dec 26 12:30:27 UTC 2015 - wr(a)rosenauer.org
+
+- Updated to version 1.8.15
+ * Add support of remove and/or customize PC/SC reader names using
+ PCSCLITE_FILTER_IGNORE_READER_NAMES and
+ PCSCLITE_FILTER_EXTEND_READER_NAMES
+ * Some other minor improvements and bug corrections
+
+-------------------------------------------------------------------
Old:
----
pcsc-lite-1.8.14.tar.bz2
pcsc-lite-1.8.14.tar.bz2.asc
New:
----
pcsc-lite-1.8.15.tar.bz2
pcsc-lite-1.8.15.tar.bz2.asc
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ pcsc-lite.spec ++++++
--- /var/tmp/diff_new_pack.PMJac6/_old 2016-01-04 09:20:43.000000000 +0100
+++ /var/tmp/diff_new_pack.PMJac6/_new 2016-01-04 09:20:43.000000000 +0100
@@ -21,7 +21,7 @@
%define USER scard
%define GROUP scard
Name: pcsc-lite
-Version: 1.8.14
+Version: 1.8.15
Release: 0
Summary: PCSC Smart Cards Library
License: BSD-3-Clause
++++++ pcsc-lite-1.8.14.tar.bz2 -> pcsc-lite-1.8.15.tar.bz2 ++++++
++++ 2978 lines of diff (skipped)
1
0
Hello community,
here is the log from the commit of package strace for openSUSE:Factory checked in at 2016-01-04 09:20:14
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/strace (Old)
and /work/SRC/openSUSE:Factory/.strace.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "strace"
Changes:
--------
--- /work/SRC/openSUSE:Factory/strace/strace.changes 2015-11-24 22:32:33.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.strace.new/strace.changes 2016-01-04 09:20:36.000000000 +0100
@@ -1,0 +2,94 @@
+Sat Dec 26 15:46:23 UTC 2015 - schwab(a)linux-m68k.org
+
+- Update to strace 4.11.
+ * Changes in behavior
+ * Some syscalls have different names depending on architecture and
+ personality. In these cases, syscall filtering and printing now
+ consistently uses the names that match corresponding __NR_* kernel
+ macros of the tracee's architecture and personality.
+ * Added strace prefix to all diagnostic messages.
+ * Improvements
+ * Enhanced and extended test suite.
+ * Implemented reliable tracing of processes whose personality differs
+ from the personality of strace, fixed decoding of 32-bit personality
+ syscalls on 64-bit architectures.
+ * When some data referenced by syscall arguments is irrelevant or cannot
+ be read from tracee's memory, strace now prints its address consistently.
+ * When a syscall is restarted using restart_syscall mechanism, strace now
+ shows the syscall name on architectures that expose this information.
+ * Print values returned by epoll_create1, eventfd, eventfd2, fanotify_init,
+ inotify_init1, perf_event_open, pipe, pipe2, signalfd, signalfd4, socket,
+ socketpair, timerfd, and timerfd_create syscalls, as well as F_DUPFD and
+ F_DUPFD_CLOEXEC fcntl commands, as file descriptors.
+ * Optimized decoding of indirect socket syscalls.
+ * Implemented decoding of nanoseconds along with seconds in stat family
+ syscalls (addresses Fedora bug #1251176).
+ * Implemented decoding of struct statfs.f_flags in statfs syscall.
+ * Implemented decoding of siginfo_t.si_syscall and siginfo_t.si_arch
+ in SIGSYS signal.
+ * Implemented decoding of indirect syscall on mips o32.
+ * Implemented decoding of IPPROTO_IP control messages.
+ * Implemented decoding of setsockopt syscall multicast arguments.
+ * Enhanced decoding of struct sigevent.
+ * Enhanced decoding of block, loop, mtd, ptp, rtc, SG_IO, socket, tty,
+ and v4l2 ioctl syscall arguments.
+ * Enhanced decoding of epoll_create, fcntl, fcntl64, futex, getdents,
+ getdents64, getsockopt, io_*, mount, msgctl, prctl, quotactl, recvfrom,
+ sendfile, setsockopt, and shmctl syscalls.
+ * Implemented decoding of bpf, execveat, ioperm, iopl, kcmp, kexec_file_load,
+ lookup_dcookie, membarrier, memfd_create, mlock2, name_to_handle_at,
+ open_by_handle_at, sched_getattr, sched_setattr, and userfaultfd syscalls.
+ * Updated lists of AF_*, EPOLL_*, FALLOC_FL_*, F_*, INPUT_PROP_*, IPPROTO_*,
+ IPV6_*, IP_*, KEY_*, LOCK_*, MNT_*, MS_*, PACKET_*, PERF_FLAG_*, PF_*,
+ PR_*, PTRACE_O_*, RENAME_*, SCTP_*, SECBIT_*, SO_*, TCP_*, and siginfo_t
+ constants.
+ * Added Nios II architecture support.
+ * Added new syscall entries to match Linux 4.4.
+ * Bug fixes
+ * Fixed potential short read of strings from tracee's memory.
+ * Fixed -qq option in conjunction with -o option.
+ * Fixed filtering of <unavailable> syscalls.
+ * Fixed decoding of ioctl syscall command on aarch64 and 32-bit architectures
+ with 64-bit aligned structures.
+ * Fixed decoding of eventfd2, epoll_create1, signalfd4, and sync_file_range2
+ syscall flags arguments.
+ * Fixed decoding of 4th argument of clock_nanosleep syscall.
+ * Fixed decoding of getpagesize syscall on m68k.
+ * Fixed decoding of getrandom and seccomp syscalls on aarch64.
+ * Fixed decoding of timezone argument of gettimeofday and settimeofday
+ * syscalls.
+ * Fixed decoding of offset argument of mmap2 syscall on arm, sparc,
+ and sparc64.
+ * Fixed decoding of pipe syscall on alpha and mips.
+ * Fixed decoding of pipe2 syscall on ia64, sh, sparc, and sparc64.
+ * Fixed decoding of signal mask argument of pselect6 syscall on x32.
+ * Fixed decoding of signal mask of rt_sigreturn syscall on aarch64, m68k,
+ and x32.
+ * Fixed decoding of 4th argument of semctl indirect syscall.
+ * Fixed decoding of sa_restorer and sa_mask of sigaction syscall on m68k.
+ * Fixed decoding of statfs64 and fstatfs64 syscalls on arm eabi.
+ * Fixed decoding of struct dirent on x32.
+ * Fixed decoding of times syscall return value on mips n32 and x32.
+ * Fixed decoding of path argument of umount2 syscall
+ (addresses Debian bug #785050).
+ * Worked around a kernel bug in tracing privileged executables.
+ * Fixed various errors in mapping between syscall numbers and associated
+ information like the number of syscall arguments, the name of syscall,
+ and syscall decoder.
+- All patches removed.
+ 0001-aarch64-fix-rt_sigreturn-decoding.patch
+ 0002-m68k-define-HAVE_SA_RESTORER.patch
+ 0003-Fix-decoding-of-mmap2-for-arm.patch
+ 0005-tests-select.test-handle-architectures-using-pselect.patch
+ 0006-aarch64-fix-ioctl-decoding.patch
+ 0007-m68k-fix-sigreturn-decoding.patch
+ 0008-Fix-crash-in-ipc_sem-test.patch
+ 0009-tests-ipc_-match-IPC_64-flag.patch
+ 0010-semctl-fix-indirect-syscall-decoding.patch
+ 0011-Fix-stat64-st_-acm-time-decoding-for-personalities-w.patch
+ 0012-tests-verify-that-all-patterns-match.patch
+ 0013-aarch64-properly-decode-generic-syscalls.patch
+ 0014-stat64-v.test-add-newfstatat-syscall-support.patch
+ 0015-tests-uid-use-fchown-instead-of-chown.patch
+
+-------------------------------------------------------------------
Old:
----
0001-aarch64-fix-rt_sigreturn-decoding.patch
0002-m68k-define-HAVE_SA_RESTORER.patch
0003-Fix-decoding-of-mmap2-for-arm.patch
0005-tests-select.test-handle-architectures-using-pselect.patch
0006-aarch64-fix-ioctl-decoding.patch
0007-m68k-fix-sigreturn-decoding.patch
0008-Fix-crash-in-ipc_sem-test.patch
0009-tests-ipc_-match-IPC_64-flag.patch
0010-semctl-fix-indirect-syscall-decoding.patch
0011-Fix-stat64-st_-acm-time-decoding-for-personalities-w.patch
0012-tests-verify-that-all-patterns-match.patch
0013-aarch64-properly-decode-generic-syscalls.patch
0014-stat64-v.test-add-newfstatat-syscall-support.patch
0015-tests-uid-use-fchown-instead-of-chown.patch
strace-4.10.tar.xz
strace-4.10.tar.xz.asc
New:
----
strace-4.11.tar.xz
strace-4.11.tar.xz.asc
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ strace.spec ++++++
--- /var/tmp/diff_new_pack.2UZ6ok/_old 2016-01-04 09:20:37.000000000 +0100
+++ /var/tmp/diff_new_pack.2UZ6ok/_new 2016-01-04 09:20:37.000000000 +0100
@@ -17,7 +17,7 @@
Name: strace
-Version: 4.10
+Version: 4.11
Release: 0
Summary: A utility to trace the system calls of a program
License: BSD-3-Clause
@@ -30,20 +30,6 @@
Source2: http://downloads.sourceforge.net/strace/%name-%version.tar.xz.asc
Source3: %name.keyring
Source4: baselibs.conf
-Patch1: 0001-aarch64-fix-rt_sigreturn-decoding.patch
-Patch2: 0002-m68k-define-HAVE_SA_RESTORER.patch
-Patch3: 0003-Fix-decoding-of-mmap2-for-arm.patch
-Patch5: 0005-tests-select.test-handle-architectures-using-pselect.patch
-Patch6: 0006-aarch64-fix-ioctl-decoding.patch
-Patch7: 0007-m68k-fix-sigreturn-decoding.patch
-Patch8: 0008-Fix-crash-in-ipc_sem-test.patch
-Patch9: 0009-tests-ipc_-match-IPC_64-flag.patch
-Patch10: 0010-semctl-fix-indirect-syscall-decoding.patch
-Patch11: 0011-Fix-stat64-st_-acm-time-decoding-for-personalities-w.patch
-Patch12: 0012-tests-verify-that-all-patterns-match.patch
-Patch13: 0013-aarch64-properly-decode-generic-syscalls.patch
-Patch14: 0014-stat64-v.test-add-newfstatat-syscall-support.patch
-Patch15: 0015-tests-uid-use-fchown-instead-of-chown.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-build
BuildRequires: haveged
BuildRequires: libacl-devel
@@ -81,23 +67,6 @@
%prep
%setup -q
-# This file is missing in the tarball
-echo 'extern uint64_t *const aarch64_sp_ptr;
-extern uint32_t *const arm_sp_ptr;' > linux/aarch64/arch_regs.h
-%patch1 -p1
-%patch2 -p1
-%patch3 -p1
-%patch5 -p1
-%patch6 -p1
-%patch7 -p1
-%patch8 -p1
-%patch9 -p1
-%patch10 -p1
-%patch11 -p1
-%patch12 -p1
-%patch13 -p1
-%patch14 -p1
-%patch15 -p1
%build
export CFLAGS="$RPM_OPT_FLAGS"
++++++ strace-4.10.tar.xz -> strace-4.11.tar.xz ++++++
++++ 131535 lines of diff (skipped)
++++++ strace.keyring ++++++
--- /var/tmp/diff_new_pack.2UZ6ok/_old 2016-01-04 09:20:38.000000000 +0100
+++ /var/tmp/diff_new_pack.2UZ6ok/_new 2016-01-04 09:20:38.000000000 +0100
@@ -1,43 +1,208 @@
-pub 1024D/F7DDBB3A 2005-12-19 [utgår: 2015-12-18]
-uid Dmitry V. Levin (for packages) <ldv(a)altlinux.org>
-uid Dmitry V. Levin (for packages) <ldv(a)altlinux.ru>
-uid Dmitry V. Levin (for packages) <ldv(a)altlinux.com>
-sub 2048g/F08DC2A4 2005-12-19 [utgår: 2015-12-18]
+pub 4096R/A340AEB7 2015-10-21
+uid Dmitry V. Levin <ldv(a)altlinux.org>
+sub 4096R/39E16E36 2015-10-21 [expires: 2025-10-18]
+sub 4096R/559C2508 2015-10-21 [expires: 2025-10-18]
+sub 4096R/917E0309 2015-10-21 [expires: 2025-10-18]
-----BEGIN PGP PUBLIC KEY BLOCK-----
-Version: GnuPG v2.0.19 (GNU/Linux)
+Version: GnuPG v2.0.22 (GNU/Linux)
-mQGiBEOmnRIRBACtkmB/90l9XnFMUxYv+CnHBTe84AKGXDZkBvQtbIKEjjJ1EqnG
-xuC5bXPUfx7kQwCMw8Jz+p3dwjPnWEXjRikzPq3WThbSLny08JzmtDfA2R3kofdJ
-UfREfV5ZfNyXEaYzLo4l0EjzZRlGRKIa0acT6Haum9NEDkV82La6aJYHnwCgm6oy
-ydVVpD9AZKdV1+pjBuO6s7kEAIi2dxJfR8vxwHLu3DxkxUmt/pHwh9lBUi6E40EX
-1umdJdXkACfmy2ja4cIGdehVyLV0kAA4BiAtnTursHibSC5/SqJHHwWaV6b8IGnU
-yVIPOXdUXodFw/ElwEE3HuMCInz2xr7bYBOcGrWlroWFOijuZruD9ErXBuQb9mnk
-o/3YA/43qm8GZzUtekdPGKGPNCg0ZcWi9qKRu8nfsUz2Xdv+vkqB9ewnh8x6/X5Y
-SMuycAkaxsgwacJPtNb7HWSC5xx7Ao+sSWem59zrLOKprQ2aidgbhWr0X2VfCkmr
-WbXsSZGRzC/I0WYhzRjuBKcDCkLOsPdCs7X765hRJCGqLrex/LQwRG1pdHJ5IFYu
-IExldmluIChmb3IgcGFja2FnZXMpIDxsZHZAYWx0bGludXgucnU+iGYEExECACYC
-GwMGCwkIBwMCBBUCCAMEFgIDAQIeAQIXgAUCTQ1LAAUJEsyvbgAKCRDZeoaL9927
-OjcnAJ0e5YxUXnNXHn2yZAXEnc+4h0lgyQCfVE6wojWy+QlXwBPgNm5O0kNUdPO0
-MURtaXRyeSBWLiBMZXZpbiAoZm9yIHBhY2thZ2VzKSA8bGR2QGFsdGxpbnV4LmNv
-bT6IZgQTEQIAJgIbAwYLCQgHAwIEFQIIAwQWAgMBAh4BAheABQJNDUsABQkSzK9u
-AAoJENl6hov33bs6sssAoJLZWavjoTcXOt3WTL0qChQy2SZDAJ9eGem2vzGrIszw
-j6hwqGBCDcJKS7QxRG1pdHJ5IFYuIExldmluIChmb3IgcGFja2FnZXMpIDxsZHZA
-YWx0bGludXgub3JnPohmBBMRAgAmAhsDBgsJCAcDAgQVAggDBBYCAwECHgECF4AF
-Ak0NSwAFCRLMr24ACgkQ2XqGi/fduzr58QCdGjfet27f6OJ3/WU1fRjT6qK8nEkA
-n3CaP4+MMkj+mpoGj/8kfEGL4gpvuQINBEOmnR0QCAD4Bsdo3YonJWZWRap81yVc
-/fmOOFuKSQ7QqhrIxBm0PF4x1RPPxn/46Y+0ZZaVrl1UCJsd9UvKPxKGcFhQaDvI
-d7Z9fdQiv/wpQene3vQUD1bDDFlkwrkSFdMCmZfT8+73ZfqPDEsixXfvXuC84lsd
-LcLRqrtE4YSSDLRdF/WUVB9vzLlrGx6QMRkPQW3ViUUTVbf94RkC8mCvKx95d1bS
-6SDtnv2HHXthgv4GjoNI1OdMAVE9qCOa+kv7vNJjEZGRJ7FBylX8NGVIYcblJB+2
-snpthAJip4X5jLW5uRTgiJnGAV0tvAnM4YlJoA5Rwhh37U94YbyuxzJLOysuFD0H
-AAMFCADLJMy3e017kAvXUjYjIV+AnaKD2Hqjm0ToLsfRP5pF4l6UwNbEAFncvyrc
-mfg68pcQDgARhDlvrZAXhf3RjHjDUIsIxNRcT7cdQyb17JieFGpLH9rOmB6J4MZf
-OoR0lCWDcSUi1fd/7eHNv+nniSsMPqGqI/MJ3b5/m3Wk+D0h0s4R7yBpBpokWJHL
-l5v959O564QW6ERUDT09x7KHkxU6oWSYT/TbceBx2pdBnsx/qMCFufm3ncYZAkqn
-5dqh99GKaloN6KFeC9BQQvLTKrJLgazk22rxXvnx0bTi5b1YK8HfySU6HqZW+w6N
-Ae9svFYFJ/YT/N3xhf77s4lHAvCAiE8EGBECAA8CGwwFAk0NSwAFCRLMr2MACgkQ
-2XqGi/fduzrf5ACfSuXWYA9CYl4Td/WtTytjfi+ey1gAn1Js+TFYrqiOiDtXPKDd
-Sl88bv4D
-=rJZQ
+mQINBFYnbLEBEACsADGvgMHHpUYlc+g0KnDHeolGcP0rNmIHKsRTt+/liKwaVDMk
+MlSsv/kyUwZPu0rVOnQy0lvVOjEXBViMbqcN6UTGMJbxLZKLgqY4a0B25CWKNuMT
+qb3/1ZgeIXHpP1hMTk60+yca3eRBSwYUAv4PxUBV15ipnYc0pDxkMy3v8Ty3FSxT
+aHnm0qxnRTgC/ZFSj66+iixlo4B2km2cHwuxm1NE4FQQ5y+liWB7ycb2snX4a00Q
+IhJEre480viprcyXfw6GiixlRUWexRd+wBYdwLYy8fxvHw/fV5NhjF7Fy5GkXfC0
+MVCPE+PMbuhgRIhgbMN9UlRy1V2xOfBsJaYlQfJVfxGSC2n4S4mB3SOGlbn5G7Wb
+vDqQAPyrfZ089siKsurLtJI2ksZBtPpoJ0Meh8tfqqOfzcSULrJPwPHleyZQNkgQ
+ScuChJPVcJkZMv2aE3tcK//NiSXYhtTwWzc9TOIFN2PfaXh5oWFUcnAK+2FxQWW3
+D0jwx3njy2UcxqAVNjIUhNtSHtBXZKEMZgfWfpgzNNbxJIJMZqVA5L4/7LuINdIZ
+aEl8VYb/89nMjVs+FMp55Zd/Va53Hugc7VxaS6JuFetC84ax4x2aKSGtiKj5CLhJ
+TBuy1Z9t4RimWkj0x0l3D0tdtmwYvWYCVaF0A7/i21J8RwBTiBEfT41HowARAQAB
+tCJEbWl0cnkgVi4gTGV2aW4gPGxkdkBhbHRsaW51eC5vcmc+iEYEEBECAAYFAlYn
+efIACgkQ2XqGi/fduzrVdgCeIrs08mJ91aqZLEiDP4WjSWSd5HkAoJiCXZSkPRAN
+3VLsRsxefmkQZaQjiEYEEBECAAYFAlYnehEACgkQfKvmrJ41Nh6TMQCfZ6mUun/P
+TqNnRKOBHXBW9LSJqekAnRDhtkSwY5D4C4JMHiBBUv9SbzxwiQIcBBABAgAGBQJW
+PlP4AAoJEHvMcvpUpXXN4uQP/jn+xSBiITRgCsdqC8P7E3cO4D7tVBwZrFDNx+8A
+RefK8XvSiIopT0xR4OU2j65oGs9r5/F80eOdMFiazXkntNTv2xF4JTMBgme8QaG7
+EsRoG/pJqIV8s+G8xO8tdf7aQzRmYVvvwnd7jPnCioUQA20KwQ6EyvlLPE94OR63
+PGrm9SI+yHmFxOn1k+uB2g0HjbZabnFTJuOxvsJNrh0I1XPYb227HsQxHdLJhoAN
+9ZoE3+nJ7xDl9arCeI6sAcgwDb5B7tH//afD2eLm2DScPeoyBoU6yDI+V3thcVKA
+Zgm8ow9z/wc9LyWtq83KsRp7qVy41m88DriHVHMmXLoXCQNQ8QSJl5BXhgs9DYK+
+AxvZEZL9v40CH+ZTf1AvH7OPYb+wyYpL2zD1ngyMyr6xqhBXAWuxboL2KDsJfzrz
++rwprlDDDxekAd075jGZDDVqgbM2HVD72pLRxnxAX4fi0tUSksF0x/zBBB1W9TPL
+MtVh2j1rlovBHdMitiNlC/squJzscYM8+ovke5OTdyKxBHlMzACP2tlUCoW4T4OR
+tzbtXl+aAAmf36o3pvs1wqkhgoZTmQic/o7ammVp4wHU1q+WzuRaELIbxPzca24h
+Gz6A2VXBZif3jYUnLIb+ZYYB4XREZP9UH+7duHNj9CufIy96mN2aqjIqo1l0E6eK
+zhBmiQIcBBABCAAGBQJWPuOZAAoJENgdDwyO0+iCyHMP/jC7IXOp75XXQ71yCqPL
+B5Fnb//i641Y5DtjfGXqILgNQKn+MBgeN8oW6IFZQI6YfUR1HKS6gwUnPEGXOc/v
+STv1ifjQ1LQE85wm+L+9RLVJqymdOBIGDhObWa0l8DzpKCb4gnIcLNFDJf3NkKsw
+alby7GEVwe1e86dTQzGjiik/3Ii3jVxigOKtgLtQjBeEwKcPImJkewCYa6lJx/Ay
+lf8GhQ15a9KOHOSr+lbc+B5l57tWKrDMJCWXyYsJNV7LkJ0GSv6rmHrhuWSr+Zqi
+l0YqCTEawz6FmlhYSJjTz1NG7UGjyCFzhn7piU7w5JYqJOVnpkGcRlvu6n1IbzGf
+HBiafUqAAcqxEoWRQyYHKyfoZBVBPVpgwdrx5M3XKe0HEx5DBq5aBdUK8rU9JJ/f
+HrLgjb3XxxXHTARNKdLlzcpufAP4XnrYQL7Co7h/YSc1/D4T8DTne9M44z3wcUzx
+l9pNGX06uhs9wcqFTu0Wwg0m3GUHizfO6NZ/RejBaVfcx/2rGeBxlSqfSbIYfscr
+qmuL1HStjjUqmZIM70Rvobrp5nR610IRIRN918fAIE/ocwx0H/B/33bkXeEuR7qh
+twvaD2o9yosT1KIZE1r+A9FxnzmCs3v1uly/5X1PMNQQwERDItS9jDm5TzxHnUf1
+XdHc9E4P43jFrj8yNOT7iIrTiQIcBBABCAAGBQJWQRe2AAoJEDVC+iPpPR9CRjMP
+/jHa+sAN91J+xrUMoZ/FSR+yzJXoz6c/gTs+XyKY8eGz9Q7x3O3bNNYaXsGBHttw
+TM82l8hxxlYBaDe/UJ/qZtGKoJ0qW6PI1UPbyCzjS/uL8TSKWZHVcCUBklqUAsd+
+Za3VwRLCmQ6CuyvHsooOWpvcTuFKZwm2aA7iIqisJBWtbiC5jVgJVo90blWkG9NO
+K/td5tP4iqw8fhiW6HPUlyOriVaYXaM352dORG2wWrF66rOfNFwG/HM3TxJU3cHb
+eSvNPbftWGaN9ob6w9boCnn3G6KSF1jOTfe5doVVmWrEhWDhtSBsn62MzsspdKxb
+KNUqS6CmUbZT79IrFtKUVOxdqdBaZpwrnESx1ndGB/jYI+x92UqnRmNKIylqrx09
+wU/tUZoFGgQnohENc+LK676OxRbIcyhpfWDJ27K54GHfDXRmAi6tPMp87GAG1FxE
+kZXJULHsiI9TfLZnCoTLlDQGv+UadxdM+dDeA9hesK+UmohxVKUgyefaEMl9Yc5J
+fLiFlLA7aTI2E+V4/7nKjVeG+hUg/22y4ZYBKhS/mLmWphXx3qo60j8Hu1oArp3c
+kl5nne5s9yYyxYj8+2UGSPri8t6PSJG1bBGy0TM7F8THondVVA1wSsjEYB6Z8rPh
+V7cnN2G76nb9731kLkjT3b/A5i10UiW7NBrdYWDm+eMZiQIcBBMBCAAGBQJWPocJ
+AAoJEP78ZdGBr2RKzJcP/0tmmfl+XKFaTXd/V9z3nPs+yE5yMFByQSiwFInEkNn7
+Cb/IsK2OeCtcOim7yrGKD5UyB8uNKGwJ52nf5mo+jtX/rtKd1VxiQkCU+g/x2lUG
+FJU5y3jTtxXK99i+0+sa5gT8vDgFOZb3lUgsEKIHeGFOS656ffiQtS8tp6Zs4AmP
+QxJcO28r/fKjP8yg2wUjZDvair/CWxM4FosHCXLa9dJDyYa3akMMETgYD+BmrgcS
+jiIjvv6ONesBJlLf/7PxwjZOLjbmnTocyJZqRRqZMaLc3FjOH4MdEuzzM82OmpH3
+6h7pjD7fXahEIs1LY3zsa6k7kZawX84oqBcVql70iZQ7Le+EwgMdS649wywWxKrd
+DPSzMnKlCod1ado7DDjbkRFfB/0sJNcyWuuKnanZ+jtTdbb9oGfIS/JlCu3JybmE
+dwuxpEa9xw9l+MUVRJIpcOVbEMCmNTKyabvFRciYnWav/xtYmjoA5ivKT2NNOkNs
+9ycijG6h0xUTDwLcXv6cHzE2XHzh+HmAzoM9sV7SgEZl9Mt/pR+lIrlmP/oZkDRe
+AbToF6JfwQpPlKusyganJjL0JI8Yv+zwPOAa7F2KNE4jtmTdarxNRxYqqvPj/NQl
+cbHOKB6MAKkVbmSlOl9tUIyU17hFZAatWkhOMeyXyLbb2efeDvaqcoMRLMswa6uk
+iQIcBBMBCgAGBQJWP2aFAAoJEN0/YqbEcdMw9ewP/iu6otC2BZE3id/1o7tyyvcd
+EkTx1sLOq+qRTSLuKoC/gB9KBjCeqh+Lmrr1yxDcN/VFXxSf5Y8zHrBD/twQ0kMb
+Ru3r7+a+bAsxobfBcpGC2HCyHPTHyIL99QNugMAm1XKWXJoNwc0GepEKpWyn0OhS
+XyX3TOCijZ6fxllBtU+1XjVOvwIyqV0fv4GepiiOqI4B5RJRK1Hj2645nV8IAXEx
+sJhaQGG57tAOVyNw80OmcFDISH1kaINLZkC+DNAHLV3jU8WmqhuT68FWjsTZ95Dl
+sBfgUYoulX+vGlvlisyba6pwXxiI/GQHmxIHVtZp3if88i+YDfyBXje8NVprgMRH
+4YStRBWjm7ki5zh99YR/VqGKt8NTYdIi8yuaQTDHoJeWhvjCOguPb19i42RzbEVK
+Y7zdKVziwYVELpGtLJ5Jhj7HMGkj/Q+39n47IqpiQ2gmRtx3lncOtyKBcbG9CcBE
+4g5Jk0zIXzO1ksjBKy830PgPWng8CoY5Vh6gsFvq57wWOEQaWRr7LtKufainZIb5
+BiIX4LOQR6yo7j7RP0qdId8V79BNrbrB5LLdFS0tWFmVQv6Rssq6Tmq6VW0NBv53
+D7ELj7DYHcRCpw+7b1PqFOkGfr4XLmWjvzFRB+RB+xZdYgyQaWbXV9wSSgbhuUm8
+TP8/PsYKXNqDUExN1ixjiQI3BBMBCAAhBQJWJ3OlAhsDBQsJCAcDBRUKCQgLBRYC
+AwEAAh4BAheAAAoJEC21vYmjQK633lQQAJeb7Rxnl7t9iMYqQXlS1T4GMHVhk1fl
+rN7k7roOg19n8u+Y3WzszCqSvRG9r3kn4ZaNZYiLtGf3jwVoZIvxEdiMveL89orG
+ObSbnDEA3bwe20MFMouYbPYX9LamGR08CZ9uCQ5HjeKlyos0IcqdXyM2AZ6yfPG5
+C1FTTStRr94vlr+gYm0mCTPAXWIIwdf4wwlLNoei1GpVKGdU47zVmRfoENUjl47y
+kXme7PnRKJr1mjDzdEsdzDgW7olrRzCG7mbKtDoGby5DRrIquArjODhWdqX4iipz
+paZesMsTkP0OHNkUYS9pDbMf6uJDmNXeNN4hEphJQzkq2yGBGF8riIqiVmum3hPG
+A1pbomeUobVl+2fdsP3G+m2Py9jB75v0OheEjey2+vhuSpVKVL8IuwFv5TYlU66R
+HY0tDFXO6S52KacIVAywQ2JdrSmfKtIVWOO2eDRbtaSKTiYA3dPRCyECUn24GgLF
+OCBfp6GgVF40uROepIZTU+wC9Txe9QnSuAcmCWoQbq4CaJFROGoLFuFqaiuxhQkb
+v+yAqWg/+ozImsWSemRxLaT2bm6IHZT0VdnPLuhSmC5EAKN3rx6oK2EyMSvwx3X8
+gKdkUzrg75d/tcS9eAmi7gMwpDPdKhkWaN4qMCHZDLA+fIuk/CPMJnrvtR4BMq4Y
+62u+uVOtoqUAiQI6BBMBCAAkAhsDBQsJCAcDBRUKCQgLBRYCAwEAAh4BAheABQJW
+J3O0AhkBAAoJEC21vYmjQK630H4P/i79LBSd/lqrPloeaehvYvSputXrmMjwc/vX
+KpEY1F8fM2yftIy8ED1RdZw2A8o9l7E6ZFRbMKhMlrcTOiGL0TZg2ctOi1YpaRlF
+yzKE7bjyS44fC4OF5JJWsM9Xl2Am4/8ppgftAthxWvuC4iBf7iHGuQYuKPlv99zw
+5kzmae7oH5QHcKj/OCLh49/06XEiXyoRcogRXPx5WheeJigM4vX9gvqf2KsO3KwK
+TK7H2QjmAVtoTbmqBGvBvyqd43IDwuJSCAUuhKpCRSK92W50IJ6YV8sOBSDOEOPs
+kQypQyGqctj014pjkBfHM49lealcldMaVyPkUqVWb5ldSBMvpAqrl0GPZR9tJ+Mq
+MTYw0wTKvMr2jjgVfICTq1VJq2WlYL+oRn5KM80q+vqP7cmYZG2hjnYMTwyqDRWy
+9ecnKqOTPSeGPhbxQvnVnuxeUP2izfuY8pETexkbgXRNvDQXvMft/963k/OXETil
+aFCOe1rdzjSldgATnsLJVZxIBBzdYoMrmMZefb9DnYUbWIKc6NvEDeWBbaTF8pqZ
+g34vj9HfNwaMqZUWcmQP+ehUh3w1lwSdjeIhJ7Z9qc9j+A+jl47QcJ0zpbS4U5K5
+D/e0qHlu5n2fOs1By/FslQoV6DDpIjnDgvrEo/jv3yd0O2IK/fvTmJuDiVVlR+oq
+qncTQLF0iQIcBBMBAgAGBQJWXfY2AAoJEEvfQArz5Bur6YEP+gPNgcW8FL/IBz5m
+Pce6N0qYKizy+zV10Gdnbra9P+a2s4pzbQz8zASeodF8pWczXYfAXWZJNi/DJ/B9
+8Xu5yH8r7pEQPGLE0kB5Yv9VeHXJisn/1qp3QAuHdUdUYa+1UVQMKSzzHWDzdTwF
+4CLIH3SBxtDFPxGdtzgdubH6xldwTvg4G7UVLhHBeEuwq7jI/yq0ZcDAe+1a3N2X
+GZA8m2qoOpbAsSabtDfQjSuMAT20LaamGths/NuC3kXwQKltB2YWwzrSmaUIIdEC
+PeKZda4mJzZaNNAI6sXEeii2pH9EDqVRl0lIn/ohi7uWVid1bs4Sh2aaZjdd4X6z
+jIcWakHV3HLQ7VU2DSU05bajyzYhj04kc26V6fRdsDrJiWZO3HCnedxE2JUB7wqK
+Gax1vNV8+AyJv6ya/Q4qk1tgaGUc3HfIPjeG56FpT2jHaWaGbxB/uKmIF0pJxsPM
+0qI3S7j+TFZijNcuVRAKLVDNuy0IbwdNOjrr9eRXKVDuRI442GYtPOymuVdQnsV5
+rpZttIiUcWU+SeXtmjRB/6wFe4T6cJRJVChsy0vvhpiWcatsl8LiwPIjw532yVP1
+LhMCLUoU1QF99Hy0GnYCjgKaGHK8MNd786gjm6bg+iUS2ZpqQA64tSlwm3FlyXhv
+WmhOF+FnyesXBM83di6dZqp4lgtcuQINBFYnbj4BEAC1LKikhtm6BC9J/sIpeOND
+/gUn4YYfxYCue2Be3Gh2Dig8gX2wNK8mB76AC9mScx5vwzj94PLfB7NJTQOav17i
+cVoBDa7FZ17EgfiOCzlk2fKdfjwhrwWpJ/tZzPPmFQyBoMzSLKAYRW5lQv3mz+u+
+BVZi4vcBE7L+rrEYGwkirCjGox+JVg2NI7UWualSrNgHvy7u6thTJBYwu+EE78h8
+QvLqbjFa8kqKSTYZ4oFO9FwQwLm61ANSriMpQ4dLdkE9t2ua+cHgrfojAKXyvY6M
+32A2a8xsFMZ2RPKvUgln+vmr41mEgmS/bnHr8jHmATo4M3VrdxkxlxcW2Hxbh699
+aNx8tcJzJ24TGzyGfrGencqB6u+lOZ+ngjrDZbayrPAGdc+XJ6hxCJ+krgmkj+dl
+Rskf630QjEYahmxKdwW9L6KNudYOhjjr7VUbFFt5fd29E3QCjL8daYh92K87kzX6
+dVc0e+ENwO32B6mYNDRAEC1cRS/3eiQvlGaDyfpWj4j3j9fTiM3CeJ8xTKW8YpMw
+g2FIaVT0v7CLg31mv4T6W6yFYykkiVvLvZSkf4LXxLJ+b5r6sykP1ALXxuSYMDkR
+iSkmKAUNdGdWrPCU7mU5ncQUH/XkH6KtxbxUL3EpaIkMJC/tJ8uq/eid11Lic+7e
+KdN7fnOrxSbVkIiBzrGBuQARAQABiQREBBgBCAAPBQJWJ24+AhsCBQkSzAMAAikJ
+EC21vYmjQK63wV0gBBkBCAAGBQJWJ24+AAoJEKgEH6g54W424awP/16ClxGMNYxG
+IrjtOGk1Jkpb8wkPX8n4P4lJGSmBk1TLjH5Z4Py5HB43Z3aWuHivF8tl0QkLSuJb
+05eg2NrCEK/fI3XzCPVLTwn4mkH7RGYTGdt2S6n551CpbsqXGvCQCmM7kf7mRwlk
+jpjpX7SAZ7PTLQNNFX0OkltM8xCedorZ2Yr3jZlrkvT8VhqPYzvqkGIJ2nT8CRdL
+Q7Gag8imkFgkNrEEwEIzZE/A7rVJ86BPoloBkwUhJPFRNwLPX1pQ9VDc1Mr5/E25
+Msyl4/AAfhmp9FtkXLDkUYHzHS8YMIRkSqxJjEN6x6JCcjXI6YJ5TsqiXUBEyUch
+7R1omVXodeK1ctvTxXkj0dGB0+YTtsuQO9ATJIJRfHBFX5y/adl6sQwF1fI9x8iC
+XgcwIGVwh+sq/54x2HSZjT1aWjzJU1fhZU1WCp2rWU4oFwhzHRvMZDGh5oFGB8Vw
+hzz+dGshV6RD5fq6gUW2M2YRrNXh2fpjTj/slXR+QVAmqK99+kW/lAcByF5Y48aP
+xUha8OE0PlS4pBvDwl9NRnjQJdZbDDinG354VkVAbXj6U+CCPkJBIHDvia/7q/Cn
+9U/fSeCtr7wl0hL0VSqlnJtOI9lUVmUIxZFH6PNf+RLSa4HUizcH6S/+QoAhHkBp
+Oh1JzLuaMkXN/S3GqAg+MqxnwP8l2k5yQtEQAIDs+gmHB2iyzz61ka49spB8Xajm
+FZxsmICjAe0zNxthECYl7bwVsb7+JicJ2fNXWKAxIQ2FMy381HFV9fj4xw7I9jiM
+Tg5arWOCeaRZ6u5gp2Frs1SvHJxonnt7phUjyvlOE2ifkoGI8W3JVGulMDg7C/Rx
+KJZX1sa8Iy9Z51Uoj4LEaFRwlkTTlIAKYgsdh3iMtwQgJZPe4z0g14IFc859A3fm
+MdwLH8DMkTuMVP101jdjkAc8+nRXqnv/BftH+tKarL0/FTEjuBiAG7dINg1jBSWH
+DnT82gpQfANETwyG3NhoQe3dZnVepa731Pwhrbak+nCTC6CNbKpR240DKH+mGI9G
+1V5EDDtJmcH3EpszaLO/+4PYhNQln9yJflWymyx5jOGb7OK3/bPYQyx2WsMgt8+Z
+xHlpuSTcPIN61F2vi2xr9Sb94KWnoNl5vqoQg4K9/UVNTrIrL4wj/A3PKB7jYfcS
+oN5ivHW3SIz4YL6QpDFcP1pDJjK/EwNXQSABGRHACo9AKgPdtB2RPbwTWCWMHa+X
+sNpIaXK/2pllMCZelR+GE9Cc3Op7kN6orLJx+uFIAYwQOwJvZKftmzGh6ALzuFjR
+IPtwlC65BhO2WbUTLwByfHBFeOnRy4QXWyZvwWtqFbsRpDzxcHZ615EzWZhv5ypr
+GE7rMejp3NOxo7McuQINBFYncScBEAD8dbH136hdd0/xPAvOYnFaUQTRPqZ959kg
+mvGXFGUMLeEzuHHdhU6mUNe3G1DQCo8gPHnN133UO/N4qJo/hX1KJc15CMBTbM9v
+8tKyEN4qPYxkIV1vMuZ8kREFOyIf4dkGWb9i43TxQoZYxKRQGGZO6FYiVjMknz8J
+ignIOyA/Hf7NUS+egL4gea56MtSRrayl2Jc1Svy8GaUhc4NHeM0KC3oJ6LARtS9e
+LhzoTyLQUaY94bS203uEtasIuQjWH3GAPJLnpnFKkCt7zk3mLIuxa/xsk9VDyTpx
+yosTqFsjuch5IDAPuk5COSFSEdtzTMPBkun98UQj9/ILDme5tAw6S2we57Vsw7Rj
+GOOpAKwvkrEKXn/QeZLqta6PkY0rhM5wEwFnGai63PnY7KyBABHB5OwXkpUWF4BM
+Gl8j6GR93pSA9om+AtrsBoxA1WzkBa3Sk0RKOXUak0h3bMnF1TKfUbNPUayNnbrl
+CZ1dGVLx+B6JNxxkY5BnB+yjzdGtzJJ4vFjXuGI9tE07wi1mzLY2bELCltfuapju
+O56pgP7XczO1LqRmpwxgf6mull0awWTpN2vhvhlGqJ3UD5yNmHL2mDAVy5z94cKi
+qDL7YFAfoqdp012x5H6AiSvT3oPRnw7Nlw73TozBNnnVKsmQJIv6Uvh9J+ia9PvK
+pkRLIgVpJQARAQABiQREBBgBCAAPBQJWJ3EnAhsCBQkSzAMAAikJEC21vYmjQK63
+wV0gBBkBCAAGBQJWJ3EnAAoJEAVFT+BVnCUIWZAP/ipGsOTYzrHYPP+5j3VBOrDl
+JbAPHoIKwXFR3Zp9kB0qURMB+AnT40tDQS7wp18sTKVkCqdMEg4acA7yeRWqgtH6
+L7NpYEZFoqnOBlzhcW0gDiTLPo47SYa+tP3VMJMhJ7uxc+IkLCMa7E+E+V3L0bkd
+4F9uhSN63gHS6cFcJ/VKFx0mvhn+MtKpDM79/aQJVr/DjtynkY5ZINAEfaLdPYfO
+Gt9WXqTkOk5wqeHO3rr+FjuU0flGY6JxZkifxBhkrYorOsnBTrbX0eedihEDY7ke
+3x5Rn3ah7DgYMblrqfDdztG/Qu3qxYwmFnOIwI0twulcZxwI1PxP/nLO7E7u6njc
+4eRiV09YG1925J8DU9iR46WeXOjQGDA7rKppcD6X+HElVHV19XNM/BcABUat2AtD
+4i/x66lARA925t4o8Y2HkXnVQs2sNE0MtTYGS343d22t7BSpNr8huT8eqQWQVuDz
+I7AIILfvourKep3uWMc3CwtQov3A38THr/XNwUvhko2u5SsUHuy7KoCgQWZrMTkt
+QsqLD8amygq28uf9d56kRoXbeEs+RP3ua2YzgTMmfg2MpO2bRKbJkK+7QY04F4F2
+KcOJPl8DL9Sf4tksbo8EUgHAnjbV/CYjbplxb/JVLgSdrsEviQ1hS2DxCWww7/Pd
+2XFpRh7f+hV1DSdKs4mUf/wQAIlALPATogISbgwuoe7SSdXPUEMSvfJkolfTyvOj
+MMm7LEAl38ghu4uoYcpBSaiUHlfC2CewcKMKNs3fwHn2odoP8z1XQtUeSwgn0VZ7
+gGy9g+m+oQozjlJeopcgbVUowuNIExyUfQGkO27qbg+BIYbIXYZQhI8/IyqvgMe3
+LVxXWsGm9YZA1i2RUi1LZxMVVupubufM9qxF1zzbDigxa0ZgyBMuu+n6hivlGg+7
+xlhi6kkhJIoCL/wi26DlbMtqUFr+HK4sr2jyTSfG81PlIqHieXxAVtdCE5Y8Hobw
+JBx9YGtpyQZg/pc4tRokqa8Pbk5dXVBOlXP3aqrv4Gk+f/ArLuoU6lBBqf2sPlis
+IQkogZEJ68mrstx6doDM9CSrZwhGIzuIe4IDa8qk8j/sUdDHR2UauQ13hr1kq6UW
+K+Jv1hIAu4t+zUOv076ywok7T9OPnE7bmYqNZOMqPx1MPzNGnWfl5xaVCEQAcxzo
+deqZ6dTSJXqaU/nwJfa1gSpZXXpvsss7M6Th9PojPhnzjbXzK6egcu+HEAXz1p2m
+5vC9HFgDHVSIAGsc+fsUqMqg+XaoZSWoUMSIaMFZcJWuXYDtXWV1AY9ZgRLlAHkq
+PKJTAgxre9SDGqLZNDV6CXnSY3Uwi2L1HmebiYlkMmXTJQK+IWM5NTslqH0kSa1S
+7tdEuQINBFYncf0BEADL1OlvSsbUF8Zs59ew3LCuhnXhpoYVlVBf7szD4WZYKuQ7
+WpOv2Zrfbl5FRKezpisWqopdQ/6CyyZqRZJpJj05gRZ+6iTRBUMGloLydCZw8/QS
+ck8VxwgzlKCdV5Y8kdXV2tm9HXLAhqR9NDlS9v6vghG1TYs0VOZqVbtvIYwPQx8S
+2Uy0qtbymUzeB771SnlY6fC5YJHrdPw3VQAeGTwAMnN1NnOvi2I3RWY886/sbXSt
+dQKivbdUKwu4jEnPGt9g2qMu5Jz4XCBEJtwRcOVZeY87TxWOXEak4DzpWPg2K3kb
+xBwxF/5lQPClpxkTm+zcfOvbYMWEiEIR5N4+9iufEzsEGpKf8WQtUehzehoGpQle
+SuDd8YVdQL+QIk50GcDASnjr7OSR9SsZV2awDO6oLd/AlzlSa7JQt06ooN6wRquQ
+ZOKWfDHBmHiKzjgghBcKZWWLNLO2tBT5+1NNZewfBcPXtuZmKgVQPz2FWmYEALWR
+6D5GSHM5XfsjLo7WaYSDncgcbB8seZZL5TZivvBVmDn+WeIyPp4DdMULTvwd9Aih
+KyFdy2Rqm4TgAolg640oot40YV1w+ORxa440JAn+xSivAIFEXZD7ECaStvpl31Xq
+Pd98n61WF1sOXKXcgQhPyTCJOzh15Wrcg/EEZreupSX1P3mxtGuUkFcb9p3s6wAR
+AQABiQIlBBgBCAAPBQJWJ3H9AhsMBQkSzAMAAAoJEC21vYmjQK63UcQP/08PwPt5
+wQ5F/PUfIwWEU95HyGs8E8JqyacoXF5CiMO4GMa3Tj95CplniUxwVC5SASKPfwQR
+OR+DhFcMhWMbmYQlEXsyhbG337nsi8L6BvnY6q6dQ0FXVwJUSxdCUeyOYjWZGg0C
+JqqHfR4ATht65AsnK6cdGebWbUt+lTd5saiUtxw2jnsfWkQ5Nq3vhJefvzV/fHS1
+H3vwpBCCLzEE+b2mVY6xEC+Ee796FKyfi6fQZGxhrne0TWgPsVQxPCE3aOvVtVj+
+9YJmBjIBAyusPsLm60+7YXEzqHb2ogmSIZ1Nm7A57qaN1MF63dXbwlF2Ez42BhHY
+aczhV37FWWQA7Zv3WVZbis0reExwMqsH3yBvpko0OErkAWI/NdzcIkvATHk4TvuP
+Z2Mlzwx6fnseFJ1dIGvMABtq51FajJ6ue6T3kygaA5SgwFmtwY7CjG5tfSxx5Bjv
+dDnKrCG8JXohQvmUAEweepq01IaBogyZouHVM+d3tmZxl9svM1brQpcQ9/rhVsS4
+Fng4//9kR1z17LxKPBnHAFiFfd6Vd/fUl+EIFa+Msyj33lLTBxgChRZ+Nl3UXAda
+VFs6qwN013pYQKolRFjJghB2/N43YBLAw/7DwKZtLNkisncX9mmJ7FXihdcXmRCF
+fHF5wX5eev3jgv3kQaw9zhmLVKPbJFvnUzwY
+=zBsc
-----END PGP PUBLIC KEY BLOCK-----
1
0
Hello community,
here is the log from the commit of package libcdr for openSUSE:Factory checked in at 2016-01-04 09:20:09
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/libcdr (Old)
and /work/SRC/openSUSE:Factory/.libcdr.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "libcdr"
Changes:
--------
--- /work/SRC/openSUSE:Factory/libcdr/libcdr.changes 2015-11-24 22:20:26.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.libcdr.new/libcdr.changes 2016-01-04 09:20:30.000000000 +0100
@@ -1,0 +2,13 @@
+Sat Dec 26 13:04:36 UTC 2015 - fstrba(a)suse.com
+
+- Upgrade to updstream version 0.1.2
+ * Fix various crashes and hangs when reading broken files found
+ with the help of american-fuzzy-lop.
+ * Fix build with boost 1.59. (rhbz#1258127)
+ * Fix various problems detected by Coverity.
+ * Do not drop empty text lines. (tdf#67873)
+ * Make --help output of all command line tools more
+ help2man-friendly.
+ * Several other small improvements.
+
+-------------------------------------------------------------------
Old:
----
libcdr-0.1.1.tar.xz
New:
----
libcdr-0.1.2.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ libcdr.spec ++++++
--- /var/tmp/diff_new_pack.nHC5ZT/_old 2016-01-04 09:20:31.000000000 +0100
+++ /var/tmp/diff_new_pack.nHC5ZT/_new 2016-01-04 09:20:31.000000000 +0100
@@ -18,7 +18,7 @@
%define libname libcdr-0_1-1
Name: libcdr
-Version: 0.1.1
+Version: 0.1.2
Release: 0
Summary: Library for parsing the Corel Draw file format structure
License: MPL-2.0
@@ -28,6 +28,7 @@
# note: the main package is empty, it only sets a sane name for the source rpm
Patch0: libcdr-0.1.1-pkgconfig.patch
BuildRequires: boost-devel
+BuildRequires: cppunit-devel
BuildRequires: doxygen
BuildRequires: fdupes
BuildRequires: gcc-c++
@@ -88,8 +89,6 @@
%build
export CXXFLAGS="%{optflags} -fvisibility-inlines-hidden"
-# Fix compilation with boost 1.59
-export CPPFLAGS="-DBOOST_ERROR_CODE_HEADER_ONLY"
%configure --disable-werror --disable-static --docdir=%{_docdir}/%{name}
make %{?_smp_mflags} V=1
++++++ libcdr-0.1.1.tar.xz -> libcdr-0.1.2.tar.xz ++++++
++++ 27845 lines of diff (skipped)
1
0
Hello community,
here is the log from the commit of package librevenge for openSUSE:Factory checked in at 2016-01-04 09:20:04
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/librevenge (Old)
and /work/SRC/openSUSE:Factory/.librevenge.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "librevenge"
Changes:
--------
--- /work/SRC/openSUSE:Factory/librevenge/librevenge.changes 2015-11-24 22:20:39.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.librevenge.new/librevenge.changes 2016-01-04 09:20:26.000000000 +0100
@@ -1,0 +2,20 @@
+Sat Dec 26 12:56:57 UTC 2015 - fstrba(a)suse.com
+
+- Version bump to 0.0.3:
+ * SVG generator: fix the center of rotation.
+ * Remove bashism in configure (libwpd#5).
+ * Fix some syntax errors in documentation.
+ * Text generator: handle footnotes and endnotes.
+ * Improve performance of RVNGPropertyListVector::append() and
+ RVNGBinaryData::append().
+ * Fix several crashes or hangs when reading broken OLE2 or Zip
+ files, found with the help of american-fuzzy-lop.
+ * Fix build with boost 1.59 (libwpd#6).
+ * Handle table:number-columns-repeated and
+ table:number-rows-repeated in all spreadsheet generators.
+ * CSV generator: handle rows with uneven number of columns
+ correctly.
+ * CSV generator: ignore empty rows at the end.
+ * Several minor improvements and fixes.
+
+-------------------------------------------------------------------
Old:
----
librevenge-0.0.2.tar.xz
New:
----
librevenge-0.0.3.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ librevenge.spec ++++++
--- /var/tmp/diff_new_pack.JJi5ys/_old 2016-01-04 09:20:27.000000000 +0100
+++ /var/tmp/diff_new_pack.JJi5ys/_new 2016-01-04 09:20:27.000000000 +0100
@@ -19,7 +19,7 @@
%global apiversion 0.0
%global pkgextension 0_0-0
Name: librevenge
-Version: 0.0.2
+Version: 0.0.3
Release: 0
Summary: A base library for writing document import filters
License: LGPL-2.1+ or MPL-2.0+
@@ -103,8 +103,6 @@
%setup -q
%build
-# Fix build with boost 1.59
-export CPPFLAGS="-DBOOST_ERROR_CODE_HEADER_ONLY"
%configure \
--disable-static \
--disable-werror \
++++++ librevenge-0.0.2.tar.xz -> librevenge-0.0.3.tar.xz ++++++
++++ 31127 lines of diff (skipped)
1
0
Hello community,
here is the log from the commit of package perl-Test-Warnings for openSUSE:Factory checked in at 2016-01-04 09:19:59
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/perl-Test-Warnings (Old)
and /work/SRC/openSUSE:Factory/.perl-Test-Warnings.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "perl-Test-Warnings"
Changes:
--------
--- /work/SRC/openSUSE:Factory/perl-Test-Warnings/perl-Test-Warnings.changes 2015-04-25 21:15:49.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.perl-Test-Warnings.new/perl-Test-Warnings.changes 2016-01-04 09:20:20.000000000 +0100
@@ -1,0 +2,19 @@
+Sat Dec 26 10:18:59 UTC 2015 - coolo(a)suse.com
+
+- updated to 0.024
+ see /usr/share/doc/packages/perl-Test-Warnings/Changes
+
+ 0.024 2015-12-24 18:44:29Z
+ - remove diagnostics accidentally left in new test
+
+ 0.023 2015-12-22 06:44:24Z
+ - properly handle propagating warnings to previously declared
+ handlers that are not coderefs (i.e. a sub name, or the magic
+ DEFAULT and IGNORE)
+
+ 0.022 2015-12-19 00:32:42Z
+ - propagate all warnings to any previously-declared __WARN__
+ handlers (unlike with __DIE__, merely calling warn() is not
+ sufficient)
+
+-------------------------------------------------------------------
Old:
----
Test-Warnings-0.021.tar.gz
New:
----
Test-Warnings-0.024.tar.gz
cpanspec.yml
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ perl-Test-Warnings.spec ++++++
--- /var/tmp/diff_new_pack.70riwg/_old 2016-01-04 09:20:21.000000000 +0100
+++ /var/tmp/diff_new_pack.70riwg/_new 2016-01-04 09:20:21.000000000 +0100
@@ -17,7 +17,7 @@
Name: perl-Test-Warnings
-Version: 0.021
+Version: 0.024
Release: 0
%define cpan_name Test-Warnings
Summary: Test for warnings and the lack of them
@@ -25,11 +25,12 @@
Group: Development/Libraries/Perl
Url: http://search.cpan.org/dist/Test-Warnings/
Source0: http://www.cpan.org/authors/id/E/ET/ETHER/%{cpan_name}-%{version}.tar.gz
+Source1: cpanspec.yml
BuildArch: noarch
BuildRoot: %{_tmppath}/%{name}-%{version}-build
BuildRequires: perl
BuildRequires: perl-macros
-BuildRequires: perl(CPAN::Meta::Check) >= 0.007
+BuildRequires: perl(CPAN::Meta::Check) >= 0.011
BuildRequires: perl(CPAN::Meta::Requirements)
BuildRequires: perl(Test::More) >= 0.94
BuildRequires: perl(parent)
@@ -37,19 +38,19 @@
%{perl_requires}
%description
-If you've ever tried to use the Test::NoWarnings manpage to confirm there
-are no warnings generated by your tests, combined with the convenience of
-'done_testing' to not have to declare a Test::More/I love
-it-when-a-plan-comes-together, you'll have discovered that these two
-features do not play well together, as the test count will be calculated
-_before_ the warnings test is run, resulting in a TAP error. (See
-'examples/test_nowarnings.pl' in this distribution for a demonstration.)
-
-This module is intended to be used as a drop-in replacement for the
-Test::NoWarnings manpage: it also adds an extra test, but runs this test
-_before_ 'done_testing' calculates the test count, rather than after. It
-does this by hooking into 'done_testing' as well as via an 'END' block. You
-can declare a plan, or not, and things will still Just Work.
+If you've ever tried to use Test::NoWarnings to confirm there are no
+warnings generated by your tests, combined with the convenience of
+'done_testing' to not have to declare a test count, you'll have discovered
+that these two features do not play well together, as the test count will
+be calculated _before_ the warnings test is run, resulting in a TAP error.
+(See 'examples/test_nowarnings.pl' in this distribution for a
+demonstration.)
+
+This module is intended to be used as a drop-in replacement for
+Test::NoWarnings: it also adds an extra test, but runs this test _before_
+'done_testing' calculates the test count, rather than after. It does this
+by hooking into 'done_testing' as well as via an 'END' block. You can
+declare a plan, or not, and things will still Just Work.
It is actually equivalent to:
@@ -59,8 +60,8 @@
enthusiastically encouraged, to perform a global search-replace of the
above with 'use Test::Warnings;' whether or not your tests have a plan.
-It can also be used as a replacement for the Test::Warn manpage, if you
-wish to test the content of expected warnings; read on to find out how.
+It can also be used as a replacement for Test::Warn, if you wish to test
+the content of expected warnings; read on to find out how.
%prep
%setup -q -n %{cpan_name}-%{version}
@@ -79,6 +80,6 @@
%files -f %{name}.files
%defattr(-,root,root,755)
-%doc Changes CONTRIBUTING examples LICENSE README
+%doc Changes CONTRIBUTING examples LICENCE README
%changelog
++++++ Test-Warnings-0.021.tar.gz -> Test-Warnings-0.024.tar.gz ++++++
++++ 3995 lines of diff (skipped)
++++++ cpanspec.yml ++++++
---
#description_paragraphs: 3
#description: |-
# override description from CPAN
#summary: override summary from CPAN
#no_testing: broken upstream
#sources:
# - source1
# - source2
#patches:
# foo.patch: -p1
# bar.patch:
#preamble: |-
# BuildRequires: gcc-c++
#post_prep: |-
# hunspell=`pkg-config --libs hunspell | sed -e 's,-l,,; s, *,,g'`
# sed -i -e "s,hunspell-X,$hunspell," t/00-prereq.t Makefile.PL
#post_build: |-
# rm unused.files
#post_install: |-
# sed on %{name}.files
#license: SUSE-NonFree
#skip_noarch: 1
#custom_build: |-
#./Build build flags=%{?_smp_mflags} --myflag
#custom_test: |-
#startserver && make test
#ignore_requires: Bizarre::Module
1
0
Hello community,
here is the log from the commit of package perl-Archive-Zip for openSUSE:Factory checked in at 2016-01-04 09:19:54
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/perl-Archive-Zip (Old)
and /work/SRC/openSUSE:Factory/.perl-Archive-Zip.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "perl-Archive-Zip"
Changes:
--------
--- /work/SRC/openSUSE:Factory/perl-Archive-Zip/perl-Archive-Zip.changes 2015-12-13 09:36:31.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.perl-Archive-Zip.new/perl-Archive-Zip.changes 2016-01-04 09:20:15.000000000 +0100
@@ -1,0 +2,13 @@
+Sat Dec 26 09:29:20 UTC 2015 - coolo(a)suse.com
+
+- updated to 1.56
+ see /usr/share/doc/packages/perl-Archive-Zip/Changes
+
+ 1.56 Thu 17 Dec 2015
+ - fix $Archive::Zip::UNICODE issues [github/xlat]
+ - on MSWin32 in methods addFile, addDirectory, addTree: the externalFileName was
+ used in place of newName
+ - make sure that file names are utf8 in memberNames
+ - use Encode on all platform
+
+-------------------------------------------------------------------
Old:
----
Archive-Zip-1.55.tar.gz
New:
----
Archive-Zip-1.56.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ perl-Archive-Zip.spec ++++++
--- /var/tmp/diff_new_pack.RtTAKT/_old 2016-01-04 09:20:16.000000000 +0100
+++ /var/tmp/diff_new_pack.RtTAKT/_new 2016-01-04 09:20:16.000000000 +0100
@@ -17,7 +17,7 @@
Name: perl-Archive-Zip
-Version: 1.55
+Version: 1.56
Release: 0
%define cpan_name Archive-Zip
Summary: Provide an interface to ZIP archive files
@@ -59,7 +59,7 @@
%prep
%setup -q -n %{cpan_name}-%{version}
-find . -type f -print0 | xargs -0 chmod 644
+find . -type f ! -name \*.pl -print0 | xargs -0 chmod 644
%build
%{__perl} Makefile.PL INSTALLDIRS=vendor
++++++ Archive-Zip-1.55.tar.gz -> Archive-Zip-1.56.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Archive-Zip-1.55/Changes new/Archive-Zip-1.56/Changes
--- old/Archive-Zip-1.55/Changes 2015-12-04 20:24:44.000000000 +0100
+++ new/Archive-Zip-1.56/Changes 2015-12-17 19:25:05.000000000 +0100
@@ -1,8 +1,15 @@
Revision history for Perl extension Archive-Zip
+1.56 Thu 17 Dec 2015
+ - fix $Archive::Zip::UNICODE issues [github/xlat]
+ - on MSWin32 in methods addFile, addDirectory, addTree: the externalFileName was
+ used in place of newName
+ - make sure that file names are utf8 in memberNames
+ - use Encode on all platform
+
1.55 Fri 04 Dec 2015
- rt.cpan.org #110064 - fix empty archive issue with OS X gnu tar
-
+
1.54 Wed 02 Dec 2015
- Ensure filehandles created by Archive::Zip::tempFile are closed [github/antoniomonty]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Archive-Zip-1.55/META.json new/Archive-Zip-1.56/META.json
--- old/Archive-Zip-1.55/META.json 2015-12-04 20:34:49.000000000 +0100
+++ new/Archive-Zip-1.56/META.json 2015-12-17 19:25:47.000000000 +0100
@@ -54,5 +54,5 @@
"url" : "https://github.com/redhotpenguin/perl-Archive-Zip-svn"
}
},
- "version" : "1.55"
+ "version" : "1.56"
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Archive-Zip-1.55/META.yml new/Archive-Zip-1.56/META.yml
--- old/Archive-Zip-1.55/META.yml 2015-12-04 20:34:49.000000000 +0100
+++ new/Archive-Zip-1.56/META.yml 2015-12-17 19:25:47.000000000 +0100
@@ -33,4 +33,4 @@
perl: '5.006'
resources:
repository: https://github.com/redhotpenguin/perl-Archive-Zip-svn
-version: '1.55'
+version: '1.56'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Archive-Zip-1.55/lib/Archive/Zip/Archive.pm new/Archive-Zip-1.56/lib/Archive/Zip/Archive.pm
--- old/Archive-Zip-1.55/lib/Archive/Zip/Archive.pm 2015-12-04 20:19:33.000000000 +0100
+++ new/Archive-Zip-1.56/lib/Archive/Zip/Archive.pm 2015-12-16 18:53:13.000000000 +0100
@@ -9,18 +9,13 @@
use File::Copy ();
use File::Basename;
use Cwd;
+use Encode qw(encode_utf8 decode_utf8);
use vars qw( $VERSION @ISA );
BEGIN {
- $VERSION = '1.55';
+ $VERSION = '1.56';
@ISA = qw( Archive::Zip );
-
- if ($^O eq 'MSWin32') {
- require Win32;
- require Encode;
- Encode->import(qw{ encode_utf8 decode_utf8 });
- }
}
use Archive::Zip qw(
@@ -234,6 +229,10 @@
my $self = shift;
my $newMember = (ref($_[0]) eq 'HASH') ? shift->{member} : shift;
push(@{$self->{'members'}}, $newMember) if $newMember;
+ if($newMember && ($newMember->{bitFlag} & 0x800)
+ && !utf8::is_utf8($newMember->{fileName})){
+ $newMember->{fileName} = Encode::decode_utf8( $newMember->{fileName} );
+ }
return $newMember;
}
@@ -265,10 +264,7 @@
} else {
$self->addMember($newMember);
}
- if ($^O eq 'MSWin32' && $Archive::Zip::UNICODE) {
- $newMember->{'fileName'} =
- encode_utf8(Win32::GetLongPathName($fileName));
- }
+
return $newMember;
}
@@ -317,9 +313,7 @@
} else {
$self->addMember($newMember);
}
- if ($^O eq 'MSWin32' && $Archive::Zip::UNICODE) {
- $newMember->{'fileName'} = encode_utf8(Win32::GetLongPathName($name));
- }
+
return $newMember;
}
@@ -624,6 +618,11 @@
$status = $newMember->endRead();
return $status if $status != AZ_OK;
$newMember->_becomeDirectoryIfNecessary();
+
+ if(($newMember->{bitFlag} & 0x800) && !utf8::is_utf8($newMember->{fileName})){
+ $newMember->{fileName} = Encode::decode_utf8($newMember->{fileName});
+ }
+
push(@{$self->{'members'}}, $newMember);
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Archive-Zip-1.55/lib/Archive/Zip/BufferedFileHandle.pm new/Archive-Zip-1.56/lib/Archive/Zip/BufferedFileHandle.pm
--- old/Archive-Zip-1.55/lib/Archive/Zip/BufferedFileHandle.pm 2015-12-04 20:19:33.000000000 +0100
+++ new/Archive-Zip-1.56/lib/Archive/Zip/BufferedFileHandle.pm 2015-12-16 18:53:13.000000000 +0100
@@ -13,7 +13,7 @@
use vars qw{$VERSION};
BEGIN {
- $VERSION = '1.55';
+ $VERSION = '1.56';
$VERSION = eval $VERSION;
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Archive-Zip-1.55/lib/Archive/Zip/DirectoryMember.pm new/Archive-Zip-1.56/lib/Archive/Zip/DirectoryMember.pm
--- old/Archive-Zip-1.55/lib/Archive/Zip/DirectoryMember.pm 2015-12-04 20:19:33.000000000 +0100
+++ new/Archive-Zip-1.56/lib/Archive/Zip/DirectoryMember.pm 2015-12-16 18:53:13.000000000 +0100
@@ -6,7 +6,7 @@
use vars qw( $VERSION @ISA );
BEGIN {
- $VERSION = '1.55';
+ $VERSION = '1.56';
@ISA = qw( Archive::Zip::Member );
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Archive-Zip-1.55/lib/Archive/Zip/FileMember.pm new/Archive-Zip-1.56/lib/Archive/Zip/FileMember.pm
--- old/Archive-Zip-1.55/lib/Archive/Zip/FileMember.pm 2015-12-04 20:19:33.000000000 +0100
+++ new/Archive-Zip-1.56/lib/Archive/Zip/FileMember.pm 2015-12-16 18:53:13.000000000 +0100
@@ -4,7 +4,7 @@
use vars qw( $VERSION @ISA );
BEGIN {
- $VERSION = '1.55';
+ $VERSION = '1.56';
@ISA = qw ( Archive::Zip::Member );
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Archive-Zip-1.55/lib/Archive/Zip/Member.pm new/Archive-Zip-1.56/lib/Archive/Zip/Member.pm
--- old/Archive-Zip-1.55/lib/Archive/Zip/Member.pm 2015-12-04 20:19:33.000000000 +0100
+++ new/Archive-Zip-1.56/lib/Archive/Zip/Member.pm 2015-12-16 18:53:13.000000000 +0100
@@ -6,7 +6,7 @@
use vars qw( $VERSION @ISA );
BEGIN {
- $VERSION = '1.55';
+ $VERSION = '1.56';
@ISA = qw( Archive::Zip );
if ($^O eq 'MSWin32') {
@@ -231,6 +231,15 @@
return $self->{'fileName'};
}
+sub fileNameAsBytes {
+ my $self = shift;
+ my $bytes = $self->{'fileName'};
+ if($self->{'bitFlag'} & 0x800){
+ $bytes = Encode::encode_utf8($bytes);
+ }
+ return $bytes;
+}
+
sub lastModFileDateTime {
my $modTime = shift->{'lastModFileDateTime'};
$modTime =~ m/^(\d+)$/; # untaint
@@ -684,7 +693,7 @@
: $self->compressedSize(), # may need to be re-written later
$self->uncompressedSize(),
),
- length($self->fileName()),
+ length($self->fileNameAsBytes()),
length($self->localExtraField());
}
@@ -706,7 +715,7 @@
# Check for a valid filename or a filename equal to a literal `0'
if ($self->fileName() || $self->fileName eq '0') {
- $self->_print($fh, $self->fileName())
+ $self->_print($fh, $self->fileNameAsBytes())
or return _ioError("writing local header filename");
}
if ($self->localExtraField()) {
@@ -729,7 +738,7 @@
my ($fileNameLength, $extraFieldLength, $fileCommentLength);
{
use bytes;
- $fileNameLength = length($self->fileName());
+ $fileNameLength = length($self->fileNameAsBytes());
$extraFieldLength = length($self->cdExtraField());
$fileCommentLength = length($self->fileComment());
}
@@ -756,7 +765,7 @@
$self->_print($fh, $header)
or return _ioError("writing central directory header");
if ($fileNameLength) {
- $self->_print($fh, $self->fileName())
+ $self->_print($fh, $self->fileNameAsBytes())
or return _ioError("writing central directory header signature");
}
if ($extraFieldLength) {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Archive-Zip-1.55/lib/Archive/Zip/MemberRead.pm new/Archive-Zip-1.56/lib/Archive/Zip/MemberRead.pm
--- old/Archive-Zip-1.55/lib/Archive/Zip/MemberRead.pm 2015-12-04 20:19:33.000000000 +0100
+++ new/Archive-Zip-1.56/lib/Archive/Zip/MemberRead.pm 2015-12-16 18:53:13.000000000 +0100
@@ -40,7 +40,7 @@
my $nl;
BEGIN {
- $VERSION = '1.55';
+ $VERSION = '1.56';
$VERSION = eval $VERSION;
# Requirement for newline conversion. Should check for e.g., DOS and OS/2 as well, but am too lazy.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Archive-Zip-1.55/lib/Archive/Zip/MockFileHandle.pm new/Archive-Zip-1.56/lib/Archive/Zip/MockFileHandle.pm
--- old/Archive-Zip-1.55/lib/Archive/Zip/MockFileHandle.pm 2015-12-04 20:19:33.000000000 +0100
+++ new/Archive-Zip-1.56/lib/Archive/Zip/MockFileHandle.pm 2015-12-16 18:53:13.000000000 +0100
@@ -10,7 +10,7 @@
use vars qw{$VERSION};
BEGIN {
- $VERSION = '1.55';
+ $VERSION = '1.56';
$VERSION = eval $VERSION;
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Archive-Zip-1.55/lib/Archive/Zip/NewFileMember.pm new/Archive-Zip-1.56/lib/Archive/Zip/NewFileMember.pm
--- old/Archive-Zip-1.55/lib/Archive/Zip/NewFileMember.pm 2015-12-04 20:19:33.000000000 +0100
+++ new/Archive-Zip-1.56/lib/Archive/Zip/NewFileMember.pm 2015-12-16 18:53:13.000000000 +0100
@@ -4,7 +4,7 @@
use vars qw( $VERSION @ISA );
BEGIN {
- $VERSION = '1.55';
+ $VERSION = '1.56';
@ISA = qw ( Archive::Zip::FileMember );
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Archive-Zip-1.55/lib/Archive/Zip/StringMember.pm new/Archive-Zip-1.56/lib/Archive/Zip/StringMember.pm
--- old/Archive-Zip-1.55/lib/Archive/Zip/StringMember.pm 2015-12-04 20:19:33.000000000 +0100
+++ new/Archive-Zip-1.56/lib/Archive/Zip/StringMember.pm 2015-12-16 18:53:13.000000000 +0100
@@ -4,7 +4,7 @@
use vars qw( $VERSION @ISA );
BEGIN {
- $VERSION = '1.55';
+ $VERSION = '1.56';
@ISA = qw( Archive::Zip::Member );
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Archive-Zip-1.55/lib/Archive/Zip/Tree.pm new/Archive-Zip-1.56/lib/Archive/Zip/Tree.pm
--- old/Archive-Zip-1.55/lib/Archive/Zip/Tree.pm 2015-12-04 20:19:33.000000000 +0100
+++ new/Archive-Zip-1.56/lib/Archive/Zip/Tree.pm 2015-12-16 18:53:13.000000000 +0100
@@ -4,7 +4,7 @@
use vars qw{$VERSION};
BEGIN {
- $VERSION = '1.55';
+ $VERSION = '1.56';
}
use Archive::Zip;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Archive-Zip-1.55/lib/Archive/Zip/ZipFileMember.pm new/Archive-Zip-1.56/lib/Archive/Zip/ZipFileMember.pm
--- old/Archive-Zip-1.55/lib/Archive/Zip/ZipFileMember.pm 2015-12-04 20:19:33.000000000 +0100
+++ new/Archive-Zip-1.56/lib/Archive/Zip/ZipFileMember.pm 2015-12-16 18:53:13.000000000 +0100
@@ -4,7 +4,7 @@
use vars qw( $VERSION @ISA );
BEGIN {
- $VERSION = '1.55';
+ $VERSION = '1.56';
@ISA = qw ( Archive::Zip::FileMember );
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Archive-Zip-1.55/lib/Archive/Zip.pm new/Archive-Zip-1.56/lib/Archive/Zip.pm
--- old/Archive-Zip-1.55/lib/Archive/Zip.pm 2015-12-04 20:19:33.000000000 +0100
+++ new/Archive-Zip-1.56/lib/Archive/Zip.pm 2015-12-16 18:53:13.000000000 +0100
@@ -14,7 +14,7 @@
use vars qw( $VERSION @ISA );
BEGIN {
- $VERSION = '1.55';
+ $VERSION = '1.56';
require Exporter;
@ISA = qw( Exporter );
1
0
Hello community,
here is the log from the commit of package iptables for openSUSE:Factory checked in at 2016-01-04 09:19:49
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/iptables (Old)
and /work/SRC/openSUSE:Factory/.iptables.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "iptables"
Changes:
--------
--- /work/SRC/openSUSE:Factory/iptables/iptables.changes 2015-12-06 07:26:48.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.iptables.new/iptables.changes 2016-01-04 09:20:10.000000000 +0100
@@ -1,0 +2,6 @@
+Fri Dec 18 20:06:41 UTC 2015 - jengelh(a)inai.de
+
+- Update to final release 1.6.0
+* Only a build fix, no new significant changes.
+
+-------------------------------------------------------------------
Old:
----
iptables-1.4.21.g367.9763347.tar.xz
New:
----
iptables-1.6.0.tar.bz2
iptables-1.6.0.tar.bz2.sig
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ iptables.spec ++++++
--- /var/tmp/diff_new_pack.2Wly4L/_old 2016-01-04 09:20:11.000000000 +0100
+++ /var/tmp/diff_new_pack.2Wly4L/_new 2016-01-04 09:20:11.000000000 +0100
@@ -17,7 +17,7 @@
Name: iptables
-Version: 1.6.0~
+Version: 1.6.0
Release: 0
Summary: IP Packet Filter Administration utilities
License: GPL-2.0 and Artistic-2.0
@@ -27,9 +27,8 @@
#Git-Web: http://git.netfilter.org/
#Git-Clone: git://git.netfilter.org/iptables
#DL-URL: http://netfilter.org/projects/iptables/files/
-#Source: http://netfilter.org/projects/iptables/files/%name-%version.tar.bz2
-#Source2: http://netfilter.org/projects/iptables/files/%name-%version.tar.bz2.sig
-Source: iptables-1.4.21.g367.9763347.tar.xz
+Source: http://netfilter.org/projects/iptables/files/%name-%version.tar.bz2
+Source2: http://netfilter.org/projects/iptables/files/%name-%version.tar.bz2.sig
Source3: %name.keyring
Patch3: iptables-batch.patch
Patch4: iptables-apply-mktemp-fix.patch
@@ -145,7 +144,7 @@
xtables --variable=xtlibdir).
%prep
-%setup -qn iptables
+%setup -q
%patch -P 3 -P 4 -p1
%build
++++++ iptables-1.4.21.g367.9763347.tar.xz -> iptables-1.6.0.tar.bz2 ++++++
++++ 48638 lines of diff (skipped)
++++++ iptables.keyring ++++++
--- /var/tmp/diff_new_pack.2Wly4L/_old 2016-01-04 09:20:12.000000000 +0100
+++ /var/tmp/diff_new_pack.2Wly4L/_new 2016-01-04 09:20:12.000000000 +0100
@@ -1,9 +1,14 @@
-pub 4096R/BB5F58CC 2010-10-21 [expires: 2015-10-20]
-uid Netfilter Core Team <coreteam(a)netfilter.org>
-sub 4096R/04B92F5C 2010-10-21 [expires: 2015-10-20]
+pub 4096R/0xA4111F89BB5F58CC 2010-10-21 [expires: 2015-10-20]
+ Key fingerprint = 57FF 5E9C 9AA6 7A86 0B55 7AF7 A411 1F89 BB5F 58CC
+uid [ expired] Netfilter Core Team <coreteam(a)netfilter.org>
+sub 4096R/0x0FD3A13A04B92F5C 2010-10-21 [expires: 2015-10-20]
+
+pub 4096R/0xAB4655A126D292E4 2015-10-19 [expires: 2020-10-17]
+ Key fingerprint = C09D B206 3F1D 7034 BA61 52AD AB46 55A1 26D2 92E4
+uid [ unknown] Netfilter Core Team <coreteam(a)netfilter.org>
+sub 4096R/0xE3B0B6BAE3AAA39E 2015-10-19 [expires: 2020-10-17]
-----BEGIN PGP PUBLIC KEY BLOCK-----
-Version: GnuPG v2.0.19 (GNU/Linux)
mQINBEzAS5EBEADVlGm+KwODJcVmP33HTCbn/eP8obZbgu+3Z1CYRklF8V43vC6D
8Jfk7fjD4/gWbAKZxriOESXVAN7mp0Fho4+Ga+pxWeLIET9tVM5xbNFK1p9R3XCK
@@ -51,6 +56,52 @@
kMm3eGmDSqoMxsPmarb80nkoFQMOPhJWlyaUCt6HHRYuSkIcxY4H4Ni3Oq1s1R9/
EqUuIfxNv7Kp0mcsE2KvANc3JfB9wXwLWqDYRCifLkCD6pbpt9L/+xQ49VzcFxNO
9DqTyk4N7cz7OZrAi+ouVrdFuiwnZyn5YSQoof6Pos58b3bkFn14m9gofwTqGzPh
-R4Vot9rRu5zrWdoCM4cRThpJyrjqBMs=
-=mRxL
+R4Vot9rRu5zrWdoCM4cRThpJyrjqBMuZAg0EViV2IwEQALrfnP0L2QbpXPN1Yg7w
+ESbOMnp3B7nIyeVmo3mvYI/mH0GtEHcFbigsUt4nIXCxI/ppB5NQH/GR8EbTUbq2
+OycNaIRWSDYHX+LDijyZ9NO6m8wbQODdhjroK7q8rHzO8Vp+reNzPM2nY7Uh3w3s
+dPrOERGYeZld1nDyN20ko2Zg4fIJIwVJaHwv4L1j9GYAKp6ACnyG81+VA9adPNCi
+9YyIbET/3/bWkl86AS78rLY7fFo5s2BZn0gvFzCB/q9v/dKYs6e5aX7DUeF2q4OW
+/J7vJjITXGum7ydRC3Neov8PdeNAbBfciznWvnTyArExjgTiHwqQOIDnW4dEJtJw
+iNP50rVKb5DZI3/YokZ5AAQV70ZZemL/5vfGl6a77wvuUFcKFtiQq3JYvt3oWcBO
+zyWbd7L1McwAbOOeSXS9hGWuWHjzFuQl7igdJAXs4GRCgUbM83yTCtmDD11337De
+diSfrcgtmNpkvfRBkjUKYten6N1jsNBqCevLxw0uFYBeSVl96KJyybMd2Rd7P+tC
+jtfpPuEvw9AlPqHZKnKQ4c8vp07MCI9JavJ/nola7rCMk0LULC9tttyaOGNSD3vb
+/t26lXr6qOV60+0lw7xEbdAu8zdEqR/ixKbvn1jbSajTcH3geGL7YakliuctRWTB
+XYyd8abaKDUzrTES1JJ53xRNABEBAAG0LE5ldGZpbHRlciBDb3JlIFRlYW0gPGNv
+cmV0ZWFtQG5ldGZpbHRlci5vcmc+iQI+BBMBAgAoBQJWJXYjAhsDBQkJZgGABgsJ
+CAcDAgYVCAIJCgsEFgIDAQIeAQIXgAAKCRCrRlWhJtKS5NoHEAC6mgfbDygR+Mrb
+Hg3qbGkgonPjUnYBqkBDz8jgdvFXS3Qm/ANI92qqeLkG+eFusuioIpXg4SHNmyUB
+oR+B60tApBtzO88iAbCHkjvfz4fqAZpYJ3VzYXIa/ScSoQHj77quNkO9aauikTj4
+ro6gnMUI2ilN1dv9Fb9/3XYxfyvP7QhWyGRuu9MekaPNjATtw7tDnDBe0C5eHrwX
+l2ojGxldj2eecoLLYcGw8x4rVDAxlNldh6tNgwc3IQ+4FkIri5sudK4vxDkPbouf
+srT6xoUe+qAj+9mScUeRFSrrdCCRd2EsBq+jhWS/kOWa0OAi6TKSOXMIdJze84Og
+R+67m+PNivmZ5+XgSmM/AzN36Lynx8nx7WNThVCd9HViq9kyXI1tQazGU30++Wec
+ct+7VE2f4aP5ITjd7WlHlEULVjRMBg+mFdz+jfmEncmC41TjWykqvrZWsT98FhNR
+YiRVsniiNvc7BS8X1qBODovvKg44yF3xEy3uFScHMqwMjiEqtVfQpfZh9PjzX1eA
+uj9sMF16NnzVeT/n4gKbO8E4vebtIJgzMd19Y0KCxfMxu4rjSHw1T0bYzwOoa9y/
+ejKM/G/NEnFKzwjySEbG9zlciJXrhb7a2y+YzNvSjEuP8Hs2BLPgJkZtVoiE4UVE
+9Wb7jNhyUz4RC0FdjRyGItGglyc9IbkCDQRWJXYjARAArK1scDuvvWTEJv+y0Sr3
+hnM8mnHIK2XNcn4p/d5nO1myCtZWPRVDIQyyXJMntEqrLBMnjxBdQcQkt7o2mJFL
+yJYO+Xb/9JyH161MPybM60dDXOTTxnAp3dDH4tdL/5snVAyrC93W2PMahK4bdwpM
+10Cz/FxtcB2xJ7Zoqq3bveN4KSUabsRYJN29BwjKtg392MtJ68SAAWN21feQ/Js9
+KjDpNoX2Sl9ZoIR2bbIsaGNeti/ciTy43MS/V6KXNTcoYrgySyW/HCNw9KjtvH+g
+/W/ze0sCXJKLby6oRQfsR2zPBTs9YB92GepG+3j1v+tw4jtbvmLKSse+S5BG8Ue2
+j3Bxbz4/RECdrlxDe4gX1hi5K/W0159pB65fha+DM3YvKrNouKsqLsxm5DMjDjdE
+qVQWtPd4tYy4uL2RWcGvvede+tN5rYsBatfelMfTSFN+jxFntwok6YmulnzIDP4O
+tUjLOpH1ZyNTcXEyAQz51aXcjVuk/6MV64hSEnH1FB7v79Zo9afdmNSKdpXf8nvZ
+3IO7HnXhpwh3pjWplyalZR7nb7PlIDxHCK6S3EN3lutBX4w9oh03KfrWlfZb2TD/
+s85uNzbU7TSb8KFC90i9H/qsd1w3kzy4evRJlyFvIqwksYY76huTfpDdx8yabfFY
+IG2TXc2iMkA7R+oMo+B46kkAEQEAAYkCJQQYAQIADwUCViV2IwIbDAUJCWYBgAAK
+CRCrRlWhJtKS5IB2D/9eL6TJ82wCrh3Hx+R3YeWVObukEBq4Ho8KRFngvIi+2D14
+PljWtITPeplDtpXu3E1i7I74F1925xFs7pT6BD65e13/18y4RX5pwGfu0HTJpi3U
+B47WXlSnyRBLD+/qiKcSCkR1mcKJgyIY9KbA0rr1Drv/3DJR+wBt9Fuww/gxgv7v
+yIxxrDa2+GESxJc1iLyuKFiDtnUkmJpqtJV0szi38W1NQUwWWF3CWUpqfvn316CJ
+4cTyuurLn994ceJDherS9tFcYASdmbl6g6PwWgdFrpmb44J7gdBCsB9q2cpjhDbu
+bgTq7V32CVMBGKOThihJZHIz/LZyuHv9WNYXUNfpEOOUN97C+j6091TSh+5P6oJO
+E61VMBBL51nw3T0FFKtA9kubKLk08GH75vPLaBqLa5B88Z3nJWdlaJOdgGEz65PU
+Uh78iWJ3AFAOwhsDEfxFYC+gZWqt9qw3Wyp2eY2q+5ep4KRxuqq3M0V3zXE6z5ff
+F8CCqRe/yzGAh8RxEmT/Nl+yHEIVv7qpJk6GSvkXr5dN/jyZCiN2fHEhZOBtLvln
+E5UjMbYOGqk3F8OARHarJ/qARATzqNYdDRe9SKxlbog+k6WWxJ4ivSVmYY28vEWf
+79IZ79ZHJ0woRi+vr3Cwpc488Sjwi7a/O0HW6zXSaxXNeYR0VnwvcrZrtlCqIQ==
+=zI6p
-----END PGP PUBLIC KEY BLOCK-----
1
0
Hello community,
here is the log from the commit of package sssd for openSUSE:Factory checked in at 2016-01-04 09:19:44
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/sssd (Old)
and /work/SRC/openSUSE:Factory/.sssd.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "sssd"
Changes:
--------
--- /work/SRC/openSUSE:Factory/sssd/sssd.changes 2015-12-18 21:51:42.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.sssd.new/sssd.changes 2016-01-04 09:20:06.000000000 +0100
@@ -1,0 +2,13 @@
+Wed Dec 16 14:08:01 UTC 2015 - jengelh(a)inai.de
+
+- Update to new maintenance release 1.13.3
+* A bug that prevented user lookups and logins after migration from
+ winsync to IPA-AD trusts was fixed.
+* A bug that prevented the ignore_group_members option from working
+ correctly in AD provider setups that use a dedicated primary
+ group (as opposed to a user-private group) was fixed.
+* Offline detection and offline login timeouts were improved for AD
+ users logging in from a domain trusted by an IPA server.
+* The AD provider supports setting up autofs_provider=ad .
+
+-------------------------------------------------------------------
Old:
----
sssd-1.13.2.tar.gz
sssd-1.13.2.tar.gz.asc
New:
----
sssd-1.13.3.tar.gz
sssd-1.13.3.tar.gz.asc
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ sssd.spec ++++++
--- /var/tmp/diff_new_pack.u5yTbv/_old 2016-01-04 09:20:08.000000000 +0100
+++ /var/tmp/diff_new_pack.u5yTbv/_new 2016-01-04 09:20:08.000000000 +0100
@@ -17,7 +17,7 @@
Name: sssd
-Version: 1.13.2
+Version: 1.13.3
Release: 0
Summary: System Security Services Daemon
License: GPL-3.0+ and LGPL-3.0+
++++++ 0001-build-detect-endianness-at-configure-time.patch ++++++
--- /var/tmp/diff_new_pack.u5yTbv/_old 2016-01-04 09:20:08.000000000 +0100
+++ /var/tmp/diff_new_pack.u5yTbv/_new 2016-01-04 09:20:08.000000000 +0100
@@ -8,14 +8,16 @@
Signed-off-by: David Disseldorp <ddiss(a)samba.org>
---
- configure.ac | 7 +++++++
- 1 file changed, 7 insertions(+)
+ configure.ac | 3 +++
+ 1 file changed, 3 insertions(+)
---- sssd-1.12.1.orig/configure.ac
-+++ sssd-1.12.1/configure.ac
-@@ -322,6 +322,9 @@ AM_CHECK_CMOCKA
-
- AM_CONDITIONAL([HAVE_DEVSHM], [test -d /dev/shm])
+Index: sssd-1.13.3/configure.ac
+===================================================================
+--- sssd-1.13.3.orig/configure.ac
++++ sssd-1.13.3/configure.ac
+@@ -428,6 +428,9 @@ AM_CONDITIONAL([HAVE_DEVSHM], [test -d /
+ ENABLE_POLKIT_RULES_PATH
+ AM_CONDITIONAL([HAVE_POLKIT_RULES_D], [test x$HAVE_POLKIT_RULES_D != x])
+AC_C_BIGENDIAN([AC_DEFINE(HAVE_BIG_ENDIAN, [1], [whether platform is big endian])],
+ [AC_DEFINE(HAVE_LITTLE_ENDIAN, [1], [whether platform is little endian])])
++++++ sssd-1.13.2.tar.gz -> sssd-1.13.3.tar.gz ++++++
++++ 146308 lines of diff (skipped)
1
0
Hello community,
here is the log from the commit of package MozillaFirefox for openSUSE:13.2:Update checked in at 2016-01-03 18:35:28
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:13.2:Update/MozillaFirefox (Old)
and /work/SRC/openSUSE:13.2:Update/.MozillaFirefox.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "MozillaFirefox"
Changes:
--------
New Changes file:
NO CHANGES FILE!!!
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ _link ++++++
--- /var/tmp/diff_new_pack.fNUJAr/_old 2016-01-03 18:35:51.000000000 +0100
+++ /var/tmp/diff_new_pack.fNUJAr/_new 2016-01-03 18:35:51.000000000 +0100
@@ -1 +1 @@
-<link package='MozillaFirefox.4425' cicount='copy' />
+<link package='MozillaFirefox.4468' cicount='copy' />
1
0
Hello community,
here is the log from the commit of package MozillaFirefox for openSUSE:13.1:Update checked in at 2016-01-03 18:35:26
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:13.1:Update/MozillaFirefox (Old)
and /work/SRC/openSUSE:13.1:Update/.MozillaFirefox.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "MozillaFirefox"
Changes:
--------
New Changes file:
NO CHANGES FILE!!!
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ _link ++++++
--- /var/tmp/diff_new_pack.vkrtGX/_old 2016-01-03 18:35:46.000000000 +0100
+++ /var/tmp/diff_new_pack.vkrtGX/_new 2016-01-03 18:35:46.000000000 +0100
@@ -1 +1 @@
-<link package='MozillaFirefox.4425' cicount='copy' />
+<link package='MozillaFirefox.4468' cicount='copy' />
1
0
Hello community,
here is the log from the commit of package libcec for openSUSE:Factory checked in at 2016-01-03 13:27:23
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/libcec (Old)
and /work/SRC/openSUSE:Factory/.libcec.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "libcec"
Changes:
--------
--- /work/SRC/openSUSE:Factory/libcec/libcec.changes 2015-11-17 14:23:06.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.libcec.new/libcec.changes 2016-01-03 13:27:45.000000000 +0100
@@ -1,0 +2,5 @@
+Sat Jan 2 08:31:29 UTC 2016 - mpluskal(a)suse.com
+
+- Fix path to libdir in .pc file (boo#960475)
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ libcec.spec ++++++
--- /var/tmp/diff_new_pack.mrWezi/_old 2016-01-03 13:27:46.000000000 +0100
+++ /var/tmp/diff_new_pack.mrWezi/_new 2016-01-03 13:27:46.000000000 +0100
@@ -1,7 +1,7 @@
#
# spec file for package libcec
#
-# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany.
# Copyright (c) 2012 Guillaume GARDET <guillaume(a)opensuse.org>
#
# All modifications and additions to the file contributed by third parties
@@ -57,7 +57,7 @@
%package -n cec-client
Summary: Control your device with your TV remote control via HDMI
Group: Hardware/TV
-Requires: %{lname} = %{version}
+Requires: %{lname} = %{version}-%{release}
%description -n cec-client
libCEC allows you, in combination with the right hardware, to control
@@ -122,6 +122,8 @@
# dist-packages is debian specific location, we don't want to use it
install -d %{buildroot}%{python_sitearch}
mv %{buildroot}%{_libexecdir}/python2.7/dist-packages %{buildroot}%{python_sitearch}
+# use correct path to libdir
+sed -i 's|/usr//usr/|/usr/|g' %{buildroot}%{_libdir}/pkgconfig/libcec.pc
%post -n %{lname} -p /sbin/ldconfig
1
0
Hello community,
here is the log from the commit of package wine for openSUSE:Factory checked in at 2016-01-03 13:27:22
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/wine (Old)
and /work/SRC/openSUSE:Factory/.wine.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "wine"
Changes:
--------
--- /work/SRC/openSUSE:Factory/wine/wine.changes 2015-12-21 12:05:10.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.wine.new/wine.changes 2016-01-03 13:27:42.000000000 +0100
@@ -1,0 +2,11 @@
+Fri Dec 25 18:20:27 UTC 2015 - meissner(a)suse.com
+
+- Updated to 1.9.0 development snapshot
+ - A number of fixes that were deferred during code freeze.
+ - WSAPoll implementation.
+ - Standard font dialog fixes.
+ - X11 drag&drop improvements.
+ - Various bug fixes.
+- updated winetricks
+
+-------------------------------------------------------------------
Old:
----
wine-1.8.tar.bz2
wine-1.8.tar.bz2.sign
New:
----
wine-1.9.0.tar.bz2
wine-1.9.0.tar.bz2.sign
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ wine.spec ++++++
--- /var/tmp/diff_new_pack.vlYh5x/_old 2016-01-03 13:27:45.000000000 +0100
+++ /var/tmp/diff_new_pack.vlYh5x/_new 2016-01-03 13:27:45.000000000 +0100
@@ -53,8 +53,8 @@
BuildRequires: update-desktop-files
BuildRequires: valgrind-devel
BuildRequires: xorg-x11-devel
-%define realver 1.8
-Version: 1.8
+%define realver 1.9.0
+Version: 1.9.0
Release: 0
Summary: An MS Windows Emulator
License: LGPL-2.1+
++++++ wine-1.8.tar.bz2 -> wine-1.9.0.tar.bz2 ++++++
/work/SRC/openSUSE:Factory/wine/wine-1.8.tar.bz2 /work/SRC/openSUSE:Factory/.wine.new/wine-1.9.0.tar.bz2 differ: char 11, line 1
1
0
Hello community,
here is the log from the commit of package libqt5-qtct for openSUSE:Factory checked in at 2016-01-03 13:27:18
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/libqt5-qtct (Old)
and /work/SRC/openSUSE:Factory/.libqt5-qtct.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "libqt5-qtct"
Changes:
--------
--- /work/SRC/openSUSE:Factory/libqt5-qtct/libqt5-qtct.changes 2015-10-20 00:08:31.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.libqt5-qtct.new/libqt5-qtct.changes 2016-01-03 13:27:37.000000000 +0100
@@ -1,0 +2,5 @@
+Thu Dec 24 17:12:30 UTC 2015 - sor.alexei(a)meowr.ru
+
+- Add a qt5ct dummy package to make it easier to find this package.
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ libqt5-qtct.spec ++++++
--- /var/tmp/diff_new_pack.MwbuMN/_old 2016-01-03 13:27:38.000000000 +0100
+++ /var/tmp/diff_new_pack.MwbuMN/_new 2016-01-03 13:27:38.000000000 +0100
@@ -37,11 +37,29 @@
This applications allows users to configure Qt5 settings (theme,
font, icons, etc.) under DE/WM without Qt integration.
+%package -n %{_name}
+Summary: Qt5 Configuration Tool
+Group: Development/Libraries/X11
+Requires: %{name} = %{version}
+
+%description -n %{_name}
+This applications allows users to configure Qt5 settings (theme,
+font, icons, etc.) under DE/WM without Qt integration.
+
+This is a dummy package to help one find qt5ct.
+
%prep
%setup -q -n %{_name}-%{version}
echo "export QT_QPA_PLATFORMTHEME='%{_name}'" > %{name}.sh
echo "setenv QT_QPA_PLATFORMTHEME '%{_name}'" > %{name}.csh
+echo << EOF > RATIONALE
+This package is a dummy package there to help one to find qt5ct
+by it's true name as one can concider qt5ct is not available in
+openSUSE otherwise. Please, use the proper package (libqt5-qtct)
+instead.
+EOF
+
%build
%qmake5
make %{?_smp_mflags}
@@ -60,4 +78,8 @@
%{_libdir}/qt5/plugins/platformthemes/lib%{_name}.so
%{_datadir}/applications/%{_name}.desktop
+%files -n qt5ct
+%defattr(-,root,root)
+%doc RATIONALE
+
%changelog
1
0
Hello community,
here is the log from the commit of package sound-juicer for openSUSE:Factory checked in at 2016-01-03 13:27:17
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/sound-juicer (Old)
and /work/SRC/openSUSE:Factory/.sound-juicer.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "sound-juicer"
Changes:
--------
--- /work/SRC/openSUSE:Factory/sound-juicer/sound-juicer.changes 2015-11-16 18:52:09.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.sound-juicer.new/sound-juicer.changes 2016-01-03 13:27:35.000000000 +0100
@@ -1,0 +2,7 @@
+Tue Dec 29 12:01:20 UTC 2015 - zaitor(a)opensuse.org
+
+- Replace libcanberra-devel for pkgconfig(libcanberra-gtk3)
+ BuildRequires: It's what configure looks for and is needed now
+ that libcanberra-devel was split.
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ sound-juicer.spec ++++++
--- /var/tmp/diff_new_pack.Av6Eej/_old 2016-01-03 13:27:36.000000000 +0100
+++ /var/tmp/diff_new_pack.Av6Eej/_new 2016-01-03 13:27:36.000000000 +0100
@@ -27,7 +27,6 @@
BuildRequires: brasero-devel
BuildRequires: fdupes
BuildRequires: intltool
-BuildRequires: libcanberra-devel
BuildRequires: translation-update-upstream
BuildRequires: update-desktop-files
BuildRequires: yelp-tools
@@ -41,6 +40,7 @@
BuildRequires: pkgconfig(gthread-2.0)
BuildRequires: pkgconfig(gtk+-3.0) >= 3.4.0
BuildRequires: pkgconfig(iso-codes)
+BuildRequires: pkgconfig(libcanberra-gtk3)
BuildRequires: pkgconfig(libdiscid)
BuildRequires: pkgconfig(libmusicbrainz5)
Recommends: %{name}-lang
1
0
Hello community,
here is the log from the commit of package bundle-lang-common for openSUSE:Factory checked in at 2016-01-03 13:27:14
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/bundle-lang-common (Old)
and /work/SRC/openSUSE:Factory/.bundle-lang-common.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "bundle-lang-common"
Changes:
--------
--- /work/SRC/openSUSE:Factory/bundle-lang-common/bundle-lang-common.changes 2015-11-28 15:19:08.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.bundle-lang-common.new/bundle-lang-common.changes 2016-01-03 13:27:33.000000000 +0100
@@ -1,0 +2,5 @@
+Wed Dec 23 22:42:23 UTC 2015 - dimstar(a)opensuse.org
+
+- Update package list.
+
+-------------------------------------------------------------------
bundle-lang-gnome.changes: same change
bundle-lang-kde.changes: same change
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
bundle-lang-gnome.spec: same change
++++++ bundle-lang-kde.spec ++++++
++++ 1333 lines (skipped)
++++ between /work/SRC/openSUSE:Factory/bundle-lang-common/bundle-lang-kde.spec
++++ and /work/SRC/openSUSE:Factory/.bundle-lang-common.new/bundle-lang-kde.spec
++++++ packages.txt ++++++
--- /var/tmp/diff_new_pack.7C8eGV/_old 2016-01-03 13:27:35.000000000 +0100
+++ /var/tmp/diff_new_pack.7C8eGV/_new 2016-01-03 13:27:35.000000000 +0100
@@ -61,7 +61,6 @@
deja-dup-lang gnome
devhelp-lang gnome-extras
dia-lang gnome-extras
-digikam-lang kde
docky-lang gnome-extras
drwright-lang gnome-extras
easytag-lang gnome-extras
@@ -272,7 +271,6 @@
kinfocenter5-lang kde
kinit-lang kde
kio-lang kde
-kipi-plugins-lang kde
kmenuedit5-lang kde
kpackage-lang kde
kpeople5-lang kde
@@ -286,7 +284,6 @@
ktorrent-lang kde
kwallet-tools-lang kde
kwalletd5-lang kde
-kwebkitpart-lang kde
kwin5-lang kde
libKF5Activities5-lang kde
libKF5Auth5-lang kde
@@ -349,7 +346,6 @@
libkfbapi-lang kde
libksysguard5-lang kde
libktorrent5-lang kde
-libkvkontakte-lang kde
libosinfo-lang gnome
libpeas-lang gnome
libpurple-lang gnome
@@ -446,7 +442,6 @@
tali-lang gnome-extras
tar-lang common
tasque-lang gnome-extras
-tilda-lang gnome-extras
tomboy-lang gnome-extras
totem-lang gnome
totem-pl-parser-lang gnome
1
0
Hello community,
here is the log from the commit of package armadillo for openSUSE:Factory checked in at 2016-01-03 13:27:13
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/armadillo (Old)
and /work/SRC/openSUSE:Factory/.armadillo.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "armadillo"
Changes:
--------
--- /work/SRC/openSUSE:Factory/armadillo/armadillo.changes 2015-11-16 18:52:02.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.armadillo.new/armadillo.changes 2016-01-03 13:27:31.000000000 +0100
@@ -1,0 +2,21 @@
+Tue Dec 15 12:53:57 UTC 2015 - badshah400(a)gmail.com
+
+- Update to version 6.400.2 (Flying Spaghetti Monster Deluxe):
+ + Expanded each_col(), each_row() and each_slice() to handle
+ C++11 lambda functions.
+ + Added ind2sub() and sub2ind().
+ + Fixes for corner cases in gmm_diag class.
+
+-------------------------------------------------------------------
+Sat Dec 5 11:09:18 UTC 2015 - badshah400(a)gmail.com
+
+- Update to version Version 6.300.2 (Flying Spaghetti Monster):
+ + Expanded solve() to find approximate solutions for
+ rank-deficient systems.
+ + Faster handling of non-contiguous submatrix views in compound
+ expressions.
+ + Added .for_each() to Mat, Row, Col, Cube and field classes.
+ + Added rcond() for estimating the reciprocal condition number.
+ + Fixes for spsolve(), eigs_sym(), eigs_gen(), svds().
+
+-------------------------------------------------------------------
Old:
----
armadillo-6.200.4.tar.gz
New:
----
armadillo-6.400.2.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ armadillo.spec ++++++
--- /var/tmp/diff_new_pack.dSAYsA/_old 2016-01-03 13:27:32.000000000 +0100
+++ /var/tmp/diff_new_pack.dSAYsA/_new 2016-01-03 13:27:32.000000000 +0100
@@ -19,7 +19,7 @@
%define soname libarmadillo6
Name: armadillo
-Version: 6.200.4
+Version: 6.400.2
Release: 0
Summary: Fast C++ matrix library with interfaces to LAPACK and ATLAS
License: MPL-2.0
++++++ armadillo-6.200.4.tar.gz -> armadillo-6.400.2.tar.gz ++++++
++++ 7326 lines of diff (skipped)
1
0
Hello community,
here is the log from the commit of package plasma5-desktop for openSUSE:Factory checked in at 2016-01-03 13:27:09
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/plasma5-desktop (Old)
and /work/SRC/openSUSE:Factory/.plasma5-desktop.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "plasma5-desktop"
Changes:
--------
--- /work/SRC/openSUSE:Factory/plasma5-desktop/plasma5-desktop.changes 2015-12-29 12:57:35.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.plasma5-desktop.new/plasma5-desktop.changes 2016-01-03 13:27:27.000000000 +0100
@@ -1,0 +2,19 @@
+Thu Dec 31 18:27:11 UTC 2015 - dimstar(a)opensuse.org
+
+- Replace libcanberra-devel BuildRequires with
+ pkgconfig(libcanberra) to align with what cmake is looking for.
+- Add pkgconfig(xcursor) BuildRequires: since the reorganisation
+ of libcanberra-devel, it no longer pulls in GTK3 (which is
+ actually good for plasma, as it does not need GTK3), but this
+ also means GTK3 no longer pulls in xcursor, which plasma relies
+ on.
+
+-------------------------------------------------------------------
+Tue Dec 22 22:35:14 UTC 2015 - hrvoje.senjan(a)gmail.com
+
+- Update to 5.5.2:
+ * Bugfix release
+ * For more details please see:
+ https://www.kde.org/announcements/plasma-5.5.2.php
+
+-------------------------------------------------------------------
Old:
----
plasma-desktop-5.5.1.tar.xz
New:
----
plasma-desktop-5.5.2.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ plasma5-desktop.spec ++++++
--- /var/tmp/diff_new_pack.emUidy/_old 2016-01-03 13:27:29.000000000 +0100
+++ /var/tmp/diff_new_pack.emUidy/_new 2016-01-03 13:27:29.000000000 +0100
@@ -18,7 +18,7 @@
%bcond_without lang
Name: plasma5-desktop
-Version: 5.5.1
+Version: 5.5.2
Release: 0
Summary: The KDE Plasma Workspace Components
License: GPL-2.0
@@ -33,7 +33,6 @@
BuildRequires: extra-cmake-modules >= 1.8.0
BuildRequires: glib2-devel
BuildRequires: kf5-filesystem
-BuildRequires: libcanberra-devel
BuildRequires: libpulse-devel
BuildRequires: update-desktop-files
BuildRequires: xz
@@ -82,12 +81,14 @@
BuildRequires: cmake(ScreenSaverDBusInterface) >= %{version}
BuildRequires: pkgconfig(fontconfig)
BuildRequires: pkgconfig(freetype2)
+BuildRequires: pkgconfig(libcanberra)
BuildRequires: pkgconfig(libudev)
BuildRequires: pkgconfig(x11)
BuildRequires: pkgconfig(x11-xcb)
BuildRequires: pkgconfig(xcb)
BuildRequires: pkgconfig(xcb-image)
BuildRequires: pkgconfig(xcb-shm)
+BuildRequires: pkgconfig(xcursor)
BuildRequires: pkgconfig(xorg-evdev)
BuildRequires: pkgconfig(xorg-server)
BuildRequires: pkgconfig(xorg-synaptics)
++++++ plasma-desktop-5.5.1.tar.xz -> plasma-desktop-5.5.2.tar.xz ++++++
/work/SRC/openSUSE:Factory/plasma5-desktop/plasma-desktop-5.5.1.tar.xz /work/SRC/openSUSE:Factory/.plasma5-desktop.new/plasma-desktop-5.5.2.tar.xz differ: char 27, line 1
1
0
Hello community,
here is the log from the commit of package plasma5-session for openSUSE:Factory checked in at 2016-01-03 13:27:05
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/plasma5-session (Old)
and /work/SRC/openSUSE:Factory/.plasma5-session.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "plasma5-session"
Changes:
--------
--- /work/SRC/openSUSE:Factory/plasma5-session/plasma5-session.changes 2015-12-29 12:58:08.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.plasma5-session.new/plasma5-session.changes 2016-01-03 13:27:23.000000000 +0100
@@ -1,0 +2,5 @@
+Tue Dec 22 22:57:11 UTC 2015 - hrvoje.senjan(a)gmail.com
+
+- Bump to 5.5.2
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ plasma5-session.spec ++++++
--- /var/tmp/diff_new_pack.tyu5LU/_old 2016-01-03 13:27:24.000000000 +0100
+++ /var/tmp/diff_new_pack.tyu5LU/_new 2016-01-03 13:27:24.000000000 +0100
@@ -17,7 +17,7 @@
Name: plasma5-session
-Version: 5.5.1
+Version: 5.5.2
Release: 0
Summary: The KDE Session
License: GPL-2.0+
1
0
Hello community,
here is the log from the commit of package plasma5-openSUSE for openSUSE:Factory checked in at 2016-01-03 13:27:01
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/plasma5-openSUSE (Old)
and /work/SRC/openSUSE:Factory/.plasma5-openSUSE.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "plasma5-openSUSE"
Changes:
--------
--- /work/SRC/openSUSE:Factory/plasma5-openSUSE/plasma5-openSUSE.changes 2015-12-29 12:58:18.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.plasma5-openSUSE.new/plasma5-openSUSE.changes 2016-01-03 13:27:19.000000000 +0100
@@ -1,0 +2,5 @@
+Tue Dec 22 22:56:27 UTC 2015 - hrvoje.senjan(a)gmail.com
+
+- Bump Plasma (Build)Requires to 5.5.2
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ plasma5-openSUSE.spec ++++++
--- /var/tmp/diff_new_pack.mLlX5I/_old 2016-01-03 13:27:20.000000000 +0100
+++ /var/tmp/diff_new_pack.mLlX5I/_new 2016-01-03 13:27:20.000000000 +0100
@@ -19,7 +19,7 @@
# the greeter is currently not built by default, see boo#950863
%bcond_with greeter
-%define plasma_version 5.5.1
+%define plasma_version 5.5.2
%if %suse_version == 1315 && %is_opensuse
%define suse_branding_version 42.1
%else
++++++ plasma-change-defaults.diff ++++++
--- /var/tmp/diff_new_pack.mLlX5I/_old 2016-01-03 13:27:20.000000000 +0100
+++ /var/tmp/diff_new_pack.mLlX5I/_new 2016-01-03 13:27:20.000000000 +0100
@@ -4,8 +4,8 @@
panel.location = "top";
}
--panel.height = screenGeometry(panel.screen).height > 1024 ? 35 : 27
-+panel.height = screenGeometry(panel.screen).height > 899 ? 35 : 27
+-panel.height = gridUnit * 2
++panel.height = gridUnit * 2
-var kickoff = panel.addWidget("org.kde.plasma.kickoff")
-kickoff.currentConfigGroup = ["Shortcuts"]
1
0
Hello community,
here is the log from the commit of package systemsettings5 for openSUSE:Factory checked in at 2016-01-03 13:26:56
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/systemsettings5 (Old)
and /work/SRC/openSUSE:Factory/.systemsettings5.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "systemsettings5"
Changes:
--------
--- /work/SRC/openSUSE:Factory/systemsettings5/systemsettings5.changes 2015-12-29 12:58:03.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.systemsettings5.new/systemsettings5.changes 2016-01-03 13:27:15.000000000 +0100
@@ -1,0 +2,8 @@
+Tue Dec 22 22:35:18 UTC 2015 - hrvoje.senjan(a)gmail.com
+
+- Update to 5.5.2:
+ * Bugfix release
+ * For more details please see:
+ https://www.kde.org/announcements/plasma-5.5.2.php
+
+-------------------------------------------------------------------
Old:
----
systemsettings-5.5.1.tar.xz
New:
----
systemsettings-5.5.2.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ systemsettings5.spec ++++++
--- /var/tmp/diff_new_pack.0WQG24/_old 2016-01-03 13:27:16.000000000 +0100
+++ /var/tmp/diff_new_pack.0WQG24/_new 2016-01-03 13:27:16.000000000 +0100
@@ -18,7 +18,7 @@
%bcond_without lang
Name: systemsettings5
-Version: 5.5.1
+Version: 5.5.2
Release: 0
Summary: KDE's control center
License: GPL-2.0+
++++++ systemsettings-5.5.1.tar.xz -> systemsettings-5.5.2.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/systemsettings-5.5.1/CMakeLists.txt new/systemsettings-5.5.2/CMakeLists.txt
--- old/systemsettings-5.5.1/CMakeLists.txt 2015-12-15 11:36:30.000000000 +0100
+++ new/systemsettings-5.5.2/CMakeLists.txt 2015-12-22 11:51:12.000000000 +0100
@@ -1,5 +1,5 @@
project(systemsettings)
-set(PROJECT_VERSION "5.5.1")
+set(PROJECT_VERSION "5.5.2")
cmake_minimum_required(VERSION 2.8.12 FATAL_ERROR)
set(QT_MIN_VERSION "5.4.0")
1
0
Hello community,
here is the log from the commit of package powerdevil5 for openSUSE:Factory checked in at 2016-01-03 13:26:51
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/powerdevil5 (Old)
and /work/SRC/openSUSE:Factory/.powerdevil5.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "powerdevil5"
Changes:
--------
--- /work/SRC/openSUSE:Factory/powerdevil5/powerdevil5.changes 2015-12-29 12:57:58.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.powerdevil5.new/powerdevil5.changes 2016-01-03 13:27:10.000000000 +0100
@@ -1,0 +2,8 @@
+Tue Dec 22 22:35:18 UTC 2015 - hrvoje.senjan(a)gmail.com
+
+- Update to 5.5.2:
+ * Bugfix release
+ * For more details please see:
+ https://www.kde.org/announcements/plasma-5.5.2.php
+
+-------------------------------------------------------------------
Old:
----
powerdevil-5.5.1.tar.xz
New:
----
powerdevil-5.5.2.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ powerdevil5.spec ++++++
--- /var/tmp/diff_new_pack.o02ESq/_old 2016-01-03 13:27:11.000000000 +0100
+++ /var/tmp/diff_new_pack.o02ESq/_new 2016-01-03 13:27:11.000000000 +0100
@@ -18,7 +18,7 @@
%bcond_without lang
Name: powerdevil5
-Version: 5.5.1
+Version: 5.5.2
Release: 0
Summary: KDE Power Management module
License: GPL-2.0+
++++++ powerdevil-5.5.1.tar.xz -> powerdevil-5.5.2.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/powerdevil-5.5.1/CMakeLists.txt new/powerdevil-5.5.2/CMakeLists.txt
--- old/powerdevil-5.5.1/CMakeLists.txt 2015-12-15 11:35:57.000000000 +0100
+++ new/powerdevil-5.5.2/CMakeLists.txt 2015-12-22 11:50:30.000000000 +0100
@@ -1,5 +1,5 @@
project(PowerDevil)
-set(PROJECT_VERSION "5.5.1")
+set(PROJECT_VERSION "5.5.2")
set(PROJECT_VERSION_MAJOR 5)
cmake_minimum_required(VERSION 2.8.12 FATAL_ERROR)
1
0
Hello community,
here is the log from the commit of package polkit-kde-agent-5 for openSUSE:Factory checked in at 2016-01-03 13:26:47
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/polkit-kde-agent-5 (Old)
and /work/SRC/openSUSE:Factory/.polkit-kde-agent-5.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "polkit-kde-agent-5"
Changes:
--------
--- /work/SRC/openSUSE:Factory/polkit-kde-agent-5/polkit-kde-agent-5.changes 2015-12-29 12:57:53.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.polkit-kde-agent-5.new/polkit-kde-agent-5.changes 2016-01-03 13:27:05.000000000 +0100
@@ -1,0 +2,8 @@
+Tue Dec 22 22:35:17 UTC 2015 - hrvoje.senjan(a)gmail.com
+
+- Update to 5.5.2:
+ * Bugfix release
+ * For more details please see:
+ https://www.kde.org/announcements/plasma-5.5.2.php
+
+-------------------------------------------------------------------
Old:
----
polkit-kde-agent-1-5.5.1.tar.xz
New:
----
polkit-kde-agent-1-5.5.2.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ polkit-kde-agent-5.spec ++++++
--- /var/tmp/diff_new_pack.zp9LrB/_old 2016-01-03 13:27:05.000000000 +0100
+++ /var/tmp/diff_new_pack.zp9LrB/_new 2016-01-03 13:27:05.000000000 +0100
@@ -18,7 +18,7 @@
%bcond_without lang
Name: polkit-kde-agent-5
-Version: 5.5.1
+Version: 5.5.2
Release: 0
Summary: PolicyKit authentication agent for KDE
License: GPL-2.0 and LGPL-2.1+
++++++ polkit-kde-agent-1-5.5.1.tar.xz -> polkit-kde-agent-1-5.5.2.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/polkit-kde-agent-1-5.5.1/CMakeLists.txt new/polkit-kde-agent-1-5.5.2/CMakeLists.txt
--- old/polkit-kde-agent-1-5.5.1/CMakeLists.txt 2015-12-15 11:35:09.000000000 +0100
+++ new/polkit-kde-agent-1-5.5.2/CMakeLists.txt 2015-12-22 11:49:19.000000000 +0100
@@ -1,5 +1,5 @@
project(polkit-kde-agent-1)
-set(PROJECT_VERSION "5.5.1")
+set(PROJECT_VERSION "5.5.2")
# minimal requirements
cmake_minimum_required (VERSION 2.8.12 FATAL_ERROR)
1
0
Hello community,
here is the log from the commit of package plasma-nm5 for openSUSE:Factory checked in at 2016-01-03 13:26:41
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/plasma-nm5 (Old)
and /work/SRC/openSUSE:Factory/.plasma-nm5.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "plasma-nm5"
Changes:
--------
--- /work/SRC/openSUSE:Factory/plasma-nm5/plasma-nm5.changes 2015-12-29 12:57:49.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.plasma-nm5.new/plasma-nm5.changes 2016-01-03 13:26:59.000000000 +0100
@@ -1,0 +2,8 @@
+Tue Dec 22 22:35:17 UTC 2015 - hrvoje.senjan(a)gmail.com
+
+- Update to 5.5.2:
+ * Bugfix release
+ * For more details please see:
+ https://www.kde.org/announcements/plasma-5.5.2.php
+
+-------------------------------------------------------------------
Old:
----
plasma-nm-5.5.1.tar.xz
New:
----
plasma-nm-5.5.2.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ plasma-nm5.spec ++++++
--- /var/tmp/diff_new_pack.6QwuOl/_old 2016-01-03 13:27:00.000000000 +0100
+++ /var/tmp/diff_new_pack.6QwuOl/_new 2016-01-03 13:27:00.000000000 +0100
@@ -19,7 +19,7 @@
%bcond_without lang
%define mm_support 1
Name: plasma-nm5
-Version: 5.5.1
+Version: 5.5.2
Release: 0
Summary: Plasma applet written in QML for managing network connections
License: (LGPL-2.1 or LGPL-3.0) and (GPL-2.0 or GPL-3.0)
++++++ plasma-nm-5.5.1.tar.xz -> plasma-nm-5.5.2.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/plasma-nm-5.5.1/CMakeLists.txt new/plasma-nm-5.5.2/CMakeLists.txt
--- old/plasma-nm-5.5.1/CMakeLists.txt 2015-12-15 11:31:30.000000000 +0100
+++ new/plasma-nm-5.5.2/CMakeLists.txt 2015-12-22 11:44:45.000000000 +0100
@@ -3,7 +3,7 @@
cmake_minimum_required(VERSION 2.8.12 FATAL_ERROR)
set(QT_MIN_VERSION "5.4.0")
-set(PROJECT_VERSION "5.5.1")
+set(PROJECT_VERSION "5.5.2")
set(PROJECT_VERSION_MAJOR 5)
set(PLASMANM_VERSION_STRING ${PROJECT_VERSION} )
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/plasma-nm-5.5.1/po/nb/kde5-nm-connection-editor.po new/plasma-nm-5.5.2/po/nb/kde5-nm-connection-editor.po
--- old/plasma-nm-5.5.1/po/nb/kde5-nm-connection-editor.po 2015-12-15 11:31:17.000000000 +0100
+++ new/plasma-nm-5.5.2/po/nb/kde5-nm-connection-editor.po 2015-12-22 11:44:29.000000000 +0100
@@ -5,7 +5,7 @@
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2015-11-17 10:39+0000\n"
+"POT-Creation-Date: 2015-12-03 11:03+0000\n"
"PO-Revision-Date: 2015-08-27 17:03+0200\n"
"Last-Translator: Bjørn Steensrud <bjornst(a)skogkatt.homelinux.org>\n"
"Language-Team: Norwegian Bokmål <i18n-nb(a)lister.ping.uio.no>\n"
@@ -27,131 +27,131 @@
msgid "Your emails"
msgstr "bjornst(a)skogkatt.homelinux.org"
-#: connectioneditor.cpp:83
+#: connectioneditor.cpp:84
msgid "Type here to search connections..."
msgstr "Skriv her for å søke i tilkoblinger …"
-#: connectioneditor.cpp:124
+#: connectioneditor.cpp:125
msgid "Add"
msgstr "Legg til"
-#: connectioneditor.cpp:128
+#: connectioneditor.cpp:129
msgid "Hardware"
msgstr "Maskinvare"
-#: connectioneditor.cpp:131
+#: connectioneditor.cpp:132
msgid "DSL"
msgstr "DSL"
-#: connectioneditor.cpp:134
+#: connectioneditor.cpp:135
msgid "InfiniBand"
msgstr "InfiniBand"
-#: connectioneditor.cpp:138
+#: connectioneditor.cpp:139
msgid "Mobile Broadband..."
msgstr "Mobilt bredbånd …"
-#: connectioneditor.cpp:142
+#: connectioneditor.cpp:143
msgid "Wired Ethernet"
msgstr "Kablet Ethernet"
-#: connectioneditor.cpp:146
+#: connectioneditor.cpp:147
msgid "Wired Ethernet (shared)"
msgstr "Kablet Ethenet (delt)"
-#: connectioneditor.cpp:150
+#: connectioneditor.cpp:151
msgid "Wi-Fi"
msgstr "Wi-Fi"
-#: connectioneditor.cpp:154
+#: connectioneditor.cpp:155
msgid "Wi-Fi (shared)"
msgstr "Wi-Fi (delt)"
-#: connectioneditor.cpp:158
+#: connectioneditor.cpp:159
msgid "WiMAX"
msgstr "WiMAX"
-#: connectioneditor.cpp:162
+#: connectioneditor.cpp:163
msgctxt "Virtual hardware devices, eg Bridge, Bond"
msgid "Virtual"
msgstr "Virtuell"
-#: connectioneditor.cpp:164
+#: connectioneditor.cpp:165
msgid "Bond"
msgstr "Bond"
-#: connectioneditor.cpp:167
+#: connectioneditor.cpp:168
msgid "Bridge"
msgstr "Bru"
-#: connectioneditor.cpp:170
+#: connectioneditor.cpp:171
msgid "VLAN"
msgstr "VLAN"
-#: connectioneditor.cpp:174
+#: connectioneditor.cpp:175
msgid "Team"
msgstr "Lad"
-#: connectioneditor.cpp:179
+#: connectioneditor.cpp:180
msgid "VPN"
msgstr "VPN"
-#: connectioneditor.cpp:199
+#: connectioneditor.cpp:200
msgid "Connect"
msgstr "Koble til"
-#: connectioneditor.cpp:204
+#: connectioneditor.cpp:205
msgid "Disconnect"
msgstr "Koble fra"
-#: connectioneditor.cpp:209
+#: connectioneditor.cpp:210
msgid "Edit..."
msgstr "Rediger …"
-#: connectioneditor.cpp:214
+#: connectioneditor.cpp:215
msgid "Delete"
msgstr "Slett"
-#: connectioneditor.cpp:220
+#: connectioneditor.cpp:221
msgid "Import VPN..."
msgstr "Importer VPN …"
-#: connectioneditor.cpp:224
+#: connectioneditor.cpp:225
msgid "Export VPN..."
msgstr "Eksporter VPN …"
-#: connectioneditor.cpp:307
+#: connectioneditor.cpp:311
msgid "my_shared_connection"
msgstr "min_delte_tilkobling"
-#: connectioneditor.cpp:364
+#: connectioneditor.cpp:368
#, kde-format
msgid "Connection %1 has been added"
msgstr "Tilkobling %1 er lagt til"
-#: connectioneditor.cpp:460
+#: connectioneditor.cpp:464
#, kde-format
msgid "Do you want to remove the connection '%1'?"
msgstr "Vil du slette tilkoblingen «%1» ?"
-#: connectioneditor.cpp:460
+#: connectioneditor.cpp:464
msgid "Remove Connection"
msgstr "Fjern tilkobling"
-#: connectioneditor.cpp:464
+#: connectioneditor.cpp:468
#, kde-format
msgid "Do you want to remove the following connections: %1"
msgstr "Vil du fjerne følgende tilkoblinger: %1"
-#: connectioneditor.cpp:464
+#: connectioneditor.cpp:468
msgid "Remove Connections"
msgstr "Fjern tilkoblinger"
-#: connectioneditor.cpp:631 main.cpp:56
+#: connectioneditor.cpp:635 main.cpp:56
msgid "Import VPN Connection"
msgstr "Importer VPN-tilkopling"
-#: connectioneditor.cpp:665
+#: connectioneditor.cpp:669
#, kde-format
msgid ""
"Importing VPN connection %1 failed\n"
@@ -160,15 +160,15 @@
"Klarte ikke å importere VPN-tilkobling %1\n"
"%2"
-#: connectioneditor.cpp:709
+#: connectioneditor.cpp:713
msgid "Export is not supported by this VPN type"
msgstr "VPN-typen støtter ikke eksport"
-#: connectioneditor.cpp:715
+#: connectioneditor.cpp:719
msgid "Export VPN Connection"
msgstr "Eksporter VPN-tilkobling"
-#: connectioneditor.cpp:720
+#: connectioneditor.cpp:724
#, kde-format
msgid ""
"Exporting VPN connection %1 failed\n"
@@ -177,7 +177,7 @@
"Klarte ikke å eksportere VPN-tilkoblingen %1\n"
"%2"
-#: connectioneditor.cpp:725
+#: connectioneditor.cpp:729
#, kde-format
msgid "VPN connection %1 exported successfully"
msgstr "VPN-tilkopling %1 vellykket eksportert"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/plasma-nm-5.5.1/po/nb/plasma_applet_org.kde.plasma.networkmanagement.po new/plasma-nm-5.5.2/po/nb/plasma_applet_org.kde.plasma.networkmanagement.po
--- old/plasma-nm-5.5.1/po/nb/plasma_applet_org.kde.plasma.networkmanagement.po 2015-12-15 11:31:17.000000000 +0100
+++ new/plasma-nm-5.5.2/po/nb/plasma_applet_org.kde.plasma.networkmanagement.po 2015-12-22 11:44:29.000000000 +0100
@@ -5,7 +5,7 @@
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2015-10-14 08:11+0000\n"
+"POT-Creation-Date: 2015-12-07 11:46+0000\n"
"PO-Revision-Date: 2014-09-22 19:17+0200\n"
"Last-Translator: Bjørn Steensrud <bjornst(a)skogkatt.homelinux.org>\n"
"Language-Team: Norwegian Bokmål <i18n-nb(a)lister.ping.uio.no>\n"
@@ -73,7 +73,7 @@
msgid "Networks"
msgstr "Nettverk"
-#: contents/ui/main.qml:50
+#: contents/ui/main.qml:51
msgid "&Configure Network Connections..."
msgstr ""
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/plasma-nm-5.5.1/po/nb/plasmanetworkmanagement_openconnectui.po new/plasma-nm-5.5.2/po/nb/plasmanetworkmanagement_openconnectui.po
--- old/plasma-nm-5.5.1/po/nb/plasmanetworkmanagement_openconnectui.po 2015-12-15 11:31:17.000000000 +0100
+++ new/plasma-nm-5.5.2/po/nb/plasmanetworkmanagement_openconnectui.po 2015-12-22 11:44:29.000000000 +0100
@@ -5,7 +5,7 @@
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2015-12-02 09:50+0000\n"
+"POT-Creation-Date: 2015-12-14 11:51+0000\n"
"PO-Revision-Date: 2015-04-29 08:42+0200\n"
"Last-Translator: Bjørn Steensrud <bjornst(a)skogkatt.homelinux.org>\n"
"Language-Team: Norwegian Bokmål <i18n-nb(a)lister.ping.uio.no>\n"
@@ -19,15 +19,15 @@
"X-Accelerator-Marker: &\n"
"X-Text-Markup: kde4\n"
-#: openconnectauth.cpp:290
+#: openconnectauth.cpp:291
msgid "Contacting host, please wait..."
msgstr "Kontakter verten, vent litt …"
-#: openconnectauth.cpp:482
+#: openconnectauth.cpp:484
msgid "Login"
msgstr "Logg inn"
-#: openconnectauth.cpp:539
+#: openconnectauth.cpp:541
#, kde-format
msgid ""
"Check failed for certificate from VPN server \"%1\".\n"
@@ -38,7 +38,7 @@
"Årsak: %2\n"
"Godta likevel?"
-#: openconnectauth.cpp:633
+#: openconnectauth.cpp:635
msgid "Connection attempt was unsuccessful."
msgstr "TIlkoblingsforsøk var mislykket."
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/plasma-nm-5.5.1/po/nn/plasmanetworkmanagement_openconnectui.po new/plasma-nm-5.5.2/po/nn/plasmanetworkmanagement_openconnectui.po
--- old/plasma-nm-5.5.1/po/nn/plasmanetworkmanagement_openconnectui.po 2015-12-15 11:31:19.000000000 +0100
+++ new/plasma-nm-5.5.2/po/nn/plasmanetworkmanagement_openconnectui.po 2015-12-22 11:44:31.000000000 +0100
@@ -5,7 +5,7 @@
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2015-12-02 09:50+0000\n"
+"POT-Creation-Date: 2015-12-14 11:51+0000\n"
"PO-Revision-Date: 2015-10-15 19:48+0100\n"
"Last-Translator: Karl Ove Hufthammer <karl(a)huftis.org>\n"
"Language-Team: Norwegian Nynorsk <i18n-nn(a)lister.ping.uio.no>\n"
@@ -19,15 +19,15 @@
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Lokalize 2.0\n"
-#: openconnectauth.cpp:290
+#: openconnectauth.cpp:291
msgid "Contacting host, please wait..."
msgstr "Koplar til tenaren. Vent litt …"
-#: openconnectauth.cpp:482
+#: openconnectauth.cpp:484
msgid "Login"
msgstr "Logg inn"
-#: openconnectauth.cpp:539
+#: openconnectauth.cpp:541
#, kde-format
msgid ""
"Check failed for certificate from VPN server \"%1\".\n"
@@ -38,7 +38,7 @@
"Grunn: %2\n"
"Vil du godta det likevel?"
-#: openconnectauth.cpp:633
+#: openconnectauth.cpp:635
msgid "Connection attempt was unsuccessful."
msgstr "Mislukka tilkoplingsforsøk."
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/plasma-nm-5.5.1/po/sr/plasmanetworkmanagement_openconnectui.po new/plasma-nm-5.5.2/po/sr/plasmanetworkmanagement_openconnectui.po
--- old/plasma-nm-5.5.1/po/sr/plasmanetworkmanagement_openconnectui.po 2015-12-15 11:31:24.000000000 +0100
+++ new/plasma-nm-5.5.2/po/sr/plasmanetworkmanagement_openconnectui.po 2015-12-22 11:44:37.000000000 +0100
@@ -4,7 +4,7 @@
msgstr ""
"Project-Id-Version: plasmanetworkmanagement_openconnectui\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2015-12-02 09:50+0000\n"
+"POT-Creation-Date: 2015-12-14 11:51+0000\n"
"PO-Revision-Date: 2015-10-04 19:41+0200\n"
"Last-Translator: Chusslove Illich <caslav.ilic(a)gmx.net>\n"
"Language-Team: Serbian <kde-i18n-sr(a)kde.org>\n"
@@ -18,16 +18,16 @@
"X-Text-Markup: kde4\n"
"X-Environment: kde\n"
-#: openconnectauth.cpp:290
+#: openconnectauth.cpp:291
msgid "Contacting host, please wait..."
msgstr "Обраћам се домаћину, сачекајте..."
# >> @action:button
-#: openconnectauth.cpp:482
+#: openconnectauth.cpp:484
msgid "Login"
msgstr "Пријава"
-#: openconnectauth.cpp:539
+#: openconnectauth.cpp:541
#, kde-format
msgid ""
"Check failed for certificate from VPN server \"%1\".\n"
@@ -38,7 +38,7 @@
"Разлог: %2\n"
"Свеједно га прихватити?"
-#: openconnectauth.cpp:633
+#: openconnectauth.cpp:635
msgid "Connection attempt was unsuccessful."
msgstr "Покушај повезивања није успео."
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/plasma-nm-5.5.1/po/sr(a)ijekavian/plasmanetworkmanagement_openconnectui.po new/plasma-nm-5.5.2/po/sr(a)ijekavian/plasmanetworkmanagement_openconnectui.po
--- old/plasma-nm-5.5.1/po/sr(a)ijekavian/plasmanetworkmanagement_openconnectui.po 2015-12-15 11:31:24.000000000 +0100
+++ new/plasma-nm-5.5.2/po/sr(a)ijekavian/plasmanetworkmanagement_openconnectui.po 2015-12-22 11:44:38.000000000 +0100
@@ -4,7 +4,7 @@
msgstr ""
"Project-Id-Version: plasmanetworkmanagement_openconnectui\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2015-12-02 09:50+0000\n"
+"POT-Creation-Date: 2015-12-14 11:51+0000\n"
"PO-Revision-Date: 2015-10-04 19:41+0200\n"
"Last-Translator: Chusslove Illich <caslav.ilic(a)gmx.net>\n"
"Language-Team: Serbian <kde-i18n-sr(a)kde.org>\n"
@@ -18,16 +18,16 @@
"X-Text-Markup: kde4\n"
"X-Environment: kde\n"
-#: openconnectauth.cpp:290
+#: openconnectauth.cpp:291
msgid "Contacting host, please wait..."
msgstr "Обраћам се домаћину, сачекајте..."
# >> @action:button
-#: openconnectauth.cpp:482
+#: openconnectauth.cpp:484
msgid "Login"
msgstr "Пријава"
-#: openconnectauth.cpp:539
+#: openconnectauth.cpp:541
#, kde-format
msgid ""
"Check failed for certificate from VPN server \"%1\".\n"
@@ -38,7 +38,7 @@
"Разлог: %2\n"
"Свеједно га прихватити?"
-#: openconnectauth.cpp:633
+#: openconnectauth.cpp:635
msgid "Connection attempt was unsuccessful."
msgstr "Покушај повезивања није успео."
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/plasma-nm-5.5.1/po/sr(a)ijekavianlatin/plasmanetworkmanagement_openconnectui.po new/plasma-nm-5.5.2/po/sr(a)ijekavianlatin/plasmanetworkmanagement_openconnectui.po
--- old/plasma-nm-5.5.1/po/sr(a)ijekavianlatin/plasmanetworkmanagement_openconnectui.po 2015-12-15 11:31:24.000000000 +0100
+++ new/plasma-nm-5.5.2/po/sr(a)ijekavianlatin/plasmanetworkmanagement_openconnectui.po 2015-12-22 11:44:38.000000000 +0100
@@ -4,7 +4,7 @@
msgstr ""
"Project-Id-Version: plasmanetworkmanagement_openconnectui\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2015-12-02 09:50+0000\n"
+"POT-Creation-Date: 2015-12-14 11:51+0000\n"
"PO-Revision-Date: 2015-10-04 19:41+0200\n"
"Last-Translator: Chusslove Illich <caslav.ilic(a)gmx.net>\n"
"Language-Team: Serbian <kde-i18n-sr(a)kde.org>\n"
@@ -18,16 +18,16 @@
"X-Text-Markup: kde4\n"
"X-Environment: kde\n"
-#: openconnectauth.cpp:290
+#: openconnectauth.cpp:291
msgid "Contacting host, please wait..."
msgstr "Obraćam se domaćinu, sačekajte..."
# >> @action:button
-#: openconnectauth.cpp:482
+#: openconnectauth.cpp:484
msgid "Login"
msgstr "Prijava"
-#: openconnectauth.cpp:539
+#: openconnectauth.cpp:541
#, kde-format
msgid ""
"Check failed for certificate from VPN server \"%1\".\n"
@@ -38,7 +38,7 @@
"Razlog: %2\n"
"Svejedno ga prihvatiti?"
-#: openconnectauth.cpp:633
+#: openconnectauth.cpp:635
msgid "Connection attempt was unsuccessful."
msgstr "Pokušaj povezivanja nije uspeo."
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/plasma-nm-5.5.1/po/sr(a)latin/plasmanetworkmanagement_openconnectui.po new/plasma-nm-5.5.2/po/sr(a)latin/plasmanetworkmanagement_openconnectui.po
--- old/plasma-nm-5.5.1/po/sr(a)latin/plasmanetworkmanagement_openconnectui.po 2015-12-15 11:31:25.000000000 +0100
+++ new/plasma-nm-5.5.2/po/sr(a)latin/plasmanetworkmanagement_openconnectui.po 2015-12-22 11:44:39.000000000 +0100
@@ -4,7 +4,7 @@
msgstr ""
"Project-Id-Version: plasmanetworkmanagement_openconnectui\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2015-12-02 09:50+0000\n"
+"POT-Creation-Date: 2015-12-14 11:51+0000\n"
"PO-Revision-Date: 2015-10-04 19:41+0200\n"
"Last-Translator: Chusslove Illich <caslav.ilic(a)gmx.net>\n"
"Language-Team: Serbian <kde-i18n-sr(a)kde.org>\n"
@@ -18,16 +18,16 @@
"X-Text-Markup: kde4\n"
"X-Environment: kde\n"
-#: openconnectauth.cpp:290
+#: openconnectauth.cpp:291
msgid "Contacting host, please wait..."
msgstr "Obraćam se domaćinu, sačekajte..."
# >> @action:button
-#: openconnectauth.cpp:482
+#: openconnectauth.cpp:484
msgid "Login"
msgstr "Prijava"
-#: openconnectauth.cpp:539
+#: openconnectauth.cpp:541
#, kde-format
msgid ""
"Check failed for certificate from VPN server \"%1\".\n"
@@ -38,7 +38,7 @@
"Razlog: %2\n"
"Svejedno ga prihvatiti?"
-#: openconnectauth.cpp:633
+#: openconnectauth.cpp:635
msgid "Connection attempt was unsuccessful."
msgstr "Pokušaj povezivanja nije uspeo."
1
0
Hello community,
here is the log from the commit of package plasma5-workspace for openSUSE:Factory checked in at 2016-01-03 13:26:36
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/plasma5-workspace (Old)
and /work/SRC/openSUSE:Factory/.plasma5-workspace.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "plasma5-workspace"
Changes:
--------
--- /work/SRC/openSUSE:Factory/plasma5-workspace/plasma5-workspace.changes 2015-12-29 12:57:43.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.plasma5-workspace.new/plasma5-workspace.changes 2016-01-03 13:26:54.000000000 +0100
@@ -1,0 +2,8 @@
+Tue Dec 22 22:35:16 UTC 2015 - hrvoje.senjan(a)gmail.com
+
+- Update to 5.5.2:
+ * Bugfix release
+ * For more details please see:
+ https://www.kde.org/announcements/plasma-5.5.2.php
+
+-------------------------------------------------------------------
Old:
----
plasma-workspace-5.5.1.1.tar.xz
New:
----
plasma-workspace-5.5.2.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ plasma5-workspace.spec ++++++
--- /var/tmp/diff_new_pack.HkxH2N/_old 2016-01-03 13:26:55.000000000 +0100
+++ /var/tmp/diff_new_pack.HkxH2N/_new 2016-01-03 13:26:55.000000000 +0100
@@ -18,9 +18,9 @@
%bcond_without lang
Name: plasma5-workspace
-Version: 5.5.1.1
+Version: 5.5.2
Release: 0
-%define plasma_version 5.5.1
+%define plasma_version 5.5.2
Summary: The KDE Plasma Workspace Components
License: GPL-2.0+
Group: System/GUI/KDE
++++++ plasma-workspace-5.5.1.1.tar.xz -> plasma-workspace-5.5.2.tar.xz ++++++
/work/SRC/openSUSE:Factory/plasma5-workspace/plasma-workspace-5.5.1.1.tar.xz /work/SRC/openSUSE:Factory/.plasma5-workspace.new/plasma-workspace-5.5.2.tar.xz differ: char 27, line 1
1
0
Hello community,
here is the log from the commit of package plasma5-pa for openSUSE:Factory checked in at 2016-01-03 13:26:31
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/plasma5-pa (Old)
and /work/SRC/openSUSE:Factory/.plasma5-pa.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "plasma5-pa"
Changes:
--------
--- /work/SRC/openSUSE:Factory/plasma5-pa/plasma5-pa.changes 2015-12-29 12:57:38.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.plasma5-pa.new/plasma5-pa.changes 2016-01-03 13:26:50.000000000 +0100
@@ -1,0 +2,8 @@
+Tue Dec 22 22:35:15 UTC 2015 - hrvoje.senjan(a)gmail.com
+
+- Update to 5.5.2:
+ * Bugfix release
+ * For more details please see:
+ https://www.kde.org/announcements/plasma-5.5.2.php
+
+-------------------------------------------------------------------
Old:
----
plasma-pa-5.5.1.tar.xz
New:
----
plasma-pa-5.5.2.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ plasma5-pa.spec ++++++
--- /var/tmp/diff_new_pack.oIr8N3/_old 2016-01-03 13:26:51.000000000 +0100
+++ /var/tmp/diff_new_pack.oIr8N3/_new 2016-01-03 13:26:51.000000000 +0100
@@ -18,7 +18,7 @@
%bcond_without lang
Name: plasma5-pa
-Version: 5.5.1
+Version: 5.5.2
Release: 0
Summary: The new Plasma5 Volume Manager
License: GPL-2.0+
++++++ plasma-pa-5.5.1.tar.xz -> plasma-pa-5.5.2.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/plasma-pa-5.5.1/CMakeLists.txt new/plasma-pa-5.5.2/CMakeLists.txt
--- old/plasma-pa-5.5.1/CMakeLists.txt 2015-12-15 11:32:18.000000000 +0100
+++ new/plasma-pa-5.5.2/CMakeLists.txt 2015-12-22 11:45:49.000000000 +0100
@@ -1,7 +1,7 @@
project(plasma-volume-control)
cmake_minimum_required(VERSION 2.8.12)
-set(PROJECT_VERSION "5.5.1")
+set(PROJECT_VERSION "5.5.2")
set(PROJECT_VERSION_MAJOR 5)
find_package(ECM 0.0.14 REQUIRED NO_MODULE)
1
0
Hello community,
here is the log from the commit of package plasma5-addons for openSUSE:Factory checked in at 2016-01-03 13:26:27
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/plasma5-addons (Old)
and /work/SRC/openSUSE:Factory/.plasma5-addons.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "plasma5-addons"
Changes:
--------
--- /work/SRC/openSUSE:Factory/plasma5-addons/plasma5-addons.changes 2015-12-29 12:57:32.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.plasma5-addons.new/plasma5-addons.changes 2016-01-03 13:26:47.000000000 +0100
@@ -1,0 +2,8 @@
+Tue Dec 22 22:35:13 UTC 2015 - hrvoje.senjan(a)gmail.com
+
+- Update to 5.5.2:
+ * Bugfix release
+ * For more details please see:
+ https://www.kde.org/announcements/plasma-5.5.2.php
+
+-------------------------------------------------------------------
Old:
----
kdeplasma-addons-5.5.1.tar.xz
New:
----
kdeplasma-addons-5.5.2.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ plasma5-addons.spec ++++++
--- /var/tmp/diff_new_pack.WtQQwJ/_old 2016-01-03 13:26:48.000000000 +0100
+++ /var/tmp/diff_new_pack.WtQQwJ/_new 2016-01-03 13:26:48.000000000 +0100
@@ -18,7 +18,7 @@
%bcond_without lang
Name: plasma5-addons
-Version: 5.5.1
+Version: 5.5.2
Release: 0
Summary: Additional Plasma5 Widgets
License: LGPL-2.1 and GPL-2.0+ and GPL-3.0
++++++ kdeplasma-addons-5.5.1.tar.xz -> kdeplasma-addons-5.5.2.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kdeplasma-addons-5.5.1/CMakeLists.txt new/kdeplasma-addons-5.5.2/CMakeLists.txt
--- old/kdeplasma-addons-5.5.1/CMakeLists.txt 2015-12-15 11:20:53.000000000 +0100
+++ new/kdeplasma-addons-5.5.2/CMakeLists.txt 2015-12-22 11:29:09.000000000 +0100
@@ -1,5 +1,5 @@
project(kdeplasma-addons)
-set(PROJECT_VERSION "5.5.1")
+set(PROJECT_VERSION "5.5.2")
set(PROJECT_VERSION_MAJOR 5)
cmake_minimum_required(VERSION 2.8.12)
@@ -32,14 +32,6 @@
PURPOSE "Required for building the X11 based workspace"
)
-find_package(XCB
- REQUIRED COMPONENTS
- XCB SHM IMAGE
-)
-set_package_properties(XCB PROPERTIES TYPE REQUIRED)
-add_feature_info("XCB-XKB" XCB_XKB_FOUND "Required for building kcm/keyboard")
-add_feature_info("libxft" X11_Xft_FOUND "X FreeType interface library required for font installation")
-
include_directories(${CMAKE_CURRENT_BINARY_DIR})
#########################################################################
1
0
Hello community,
here is the log from the commit of package oxygen5 for openSUSE:Factory checked in at 2016-01-03 13:26:22
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/oxygen5 (Old)
and /work/SRC/openSUSE:Factory/.oxygen5.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "oxygen5"
Changes:
--------
--- /work/SRC/openSUSE:Factory/oxygen5/oxygen5.changes 2015-12-29 12:57:24.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.oxygen5.new/oxygen5.changes 2016-01-03 13:26:40.000000000 +0100
@@ -1,0 +2,8 @@
+Wed Dec 23 09:12:33 UTC 2015 - hrvoje.senjan(a)gmail.com
+
+- Update to 5.5.2:
+ * Bugfix release
+ * For more details please see:
+ https://www.kde.org/announcements/plasma-5.5.2.php
+
+-------------------------------------------------------------------
Old:
----
oxygen-5.5.1.tar.xz
New:
----
oxygen-5.5.2.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ oxygen5.spec ++++++
--- /var/tmp/diff_new_pack.oEAsA7/_old 2016-01-03 13:26:41.000000000 +0100
+++ /var/tmp/diff_new_pack.oEAsA7/_new 2016-01-03 13:26:41.000000000 +0100
@@ -20,7 +20,7 @@
%define kwin_deco 1
Name: oxygen5
-Version: 5.5.1
+Version: 5.5.2
Release: 0
Summary: Oxygen style, KWin decoration, cursors and sounds
License: GPL-2.0+
++++++ oxygen-5.5.1.tar.xz -> oxygen-5.5.2.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oxygen-5.5.1/CMakeLists.txt new/oxygen-5.5.2/CMakeLists.txt
--- old/oxygen-5.5.1/CMakeLists.txt 2015-12-15 11:28:49.000000000 +0100
+++ new/oxygen-5.5.2/CMakeLists.txt 2015-12-22 11:41:01.000000000 +0100
@@ -1,5 +1,5 @@
project(oxygen)
-set(PROJECT_VERSION "5.5.1")
+set(PROJECT_VERSION "5.5.2")
set(PROJECT_VERSION_MAJOR 5)
cmake_minimum_required(VERSION 2.8.12 FATAL_ERROR)
1
0
Hello community,
here is the log from the commit of package milou5 for openSUSE:Factory checked in at 2016-01-03 13:26:17
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/milou5 (Old)
and /work/SRC/openSUSE:Factory/.milou5.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "milou5"
Changes:
--------
--- /work/SRC/openSUSE:Factory/milou5/milou5.changes 2015-12-29 12:57:18.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.milou5.new/milou5.changes 2016-01-03 13:26:35.000000000 +0100
@@ -1,0 +2,8 @@
+Tue Dec 22 22:35:12 UTC 2015 - hrvoje.senjan(a)gmail.com
+
+- Update to 5.5.2:
+ * Bugfix release
+ * For more details please see:
+ https://www.kde.org/announcements/plasma-5.5.2.php
+
+-------------------------------------------------------------------
Old:
----
milou-5.5.1.tar.xz
New:
----
milou-5.5.2.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ milou5.spec ++++++
--- /var/tmp/diff_new_pack.NaoLxG/_old 2016-01-03 13:26:35.000000000 +0100
+++ /var/tmp/diff_new_pack.NaoLxG/_new 2016-01-03 13:26:35.000000000 +0100
@@ -18,7 +18,7 @@
%bcond_without lang
Name: milou5
-Version: 5.5.1
+Version: 5.5.2
Release: 0
Summary: Dedicated search application built on top of Baloo
License: GPL-2.0+ and LGPL-2.1+
++++++ milou-5.5.1.tar.xz -> milou-5.5.2.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/milou-5.5.1/CMakeLists.txt new/milou-5.5.2/CMakeLists.txt
--- old/milou-5.5.1/CMakeLists.txt 2015-12-15 11:28:10.000000000 +0100
+++ new/milou-5.5.2/CMakeLists.txt 2015-12-22 11:39:53.000000000 +0100
@@ -1,5 +1,5 @@
project(Milou)
-set(PROJECT_VERSION "5.5.1")
+set(PROJECT_VERSION "5.5.2")
set(PROJECT_VERSION_MAJOR 5)
cmake_minimum_required(VERSION 2.8.12)
1
0
Hello community,
here is the log from the commit of package libksysguard5 for openSUSE:Factory checked in at 2016-01-03 13:26:13
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/libksysguard5 (Old)
and /work/SRC/openSUSE:Factory/.libksysguard5.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "libksysguard5"
Changes:
--------
--- /work/SRC/openSUSE:Factory/libksysguard5/libksysguard5.changes 2015-12-29 12:57:13.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.libksysguard5.new/libksysguard5.changes 2016-01-03 13:26:31.000000000 +0100
@@ -1,0 +2,8 @@
+Tue Dec 22 22:35:12 UTC 2015 - hrvoje.senjan(a)gmail.com
+
+- Update to 5.5.2:
+ * Bugfix release
+ * For more details please see:
+ https://www.kde.org/announcements/plasma-5.5.2.php
+
+-------------------------------------------------------------------
Old:
----
libksysguard-5.5.1.tar.xz
New:
----
libksysguard-5.5.2.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ libksysguard5.spec ++++++
--- /var/tmp/diff_new_pack.hLPtV9/_old 2016-01-03 13:26:32.000000000 +0100
+++ /var/tmp/diff_new_pack.hLPtV9/_new 2016-01-03 13:26:32.000000000 +0100
@@ -18,7 +18,7 @@
%bcond_without lang
Name: libksysguard5
-Version: 5.5.1
+Version: 5.5.2
Release: 0
Summary: Task management and system monitoring library
License: GPL-2.0+
++++++ libksysguard-5.5.1.tar.xz -> libksysguard-5.5.2.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libksysguard-5.5.1/CMakeLists.txt new/libksysguard-5.5.2/CMakeLists.txt
--- old/libksysguard-5.5.1/CMakeLists.txt 2015-12-15 11:27:31.000000000 +0100
+++ new/libksysguard-5.5.2/CMakeLists.txt 2015-12-22 11:38:56.000000000 +0100
@@ -1,5 +1,5 @@
project(libksysguard)
-set(PROJECT_VERSION "5.5.1")
+set(PROJECT_VERSION "5.5.2")
set(PROJECT_VERSION_MAJOR 5)
cmake_minimum_required(VERSION 2.8.12 FATAL_ERROR)
1
0
Hello community,
here is the log from the commit of package libkscreen2 for openSUSE:Factory checked in at 2016-01-03 13:26:08
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/libkscreen2 (Old)
and /work/SRC/openSUSE:Factory/.libkscreen2.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "libkscreen2"
Changes:
--------
--- /work/SRC/openSUSE:Factory/libkscreen2/libkscreen2.changes 2015-12-29 12:57:08.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.libkscreen2.new/libkscreen2.changes 2016-01-03 13:26:26.000000000 +0100
@@ -1,0 +2,8 @@
+Tue Dec 22 22:35:11 UTC 2015 - hrvoje.senjan(a)gmail.com
+
+- Update to 5.5.2:
+ * Bugfix release
+ * For more details please see:
+ https://www.kde.org/announcements/plasma-5.5.2.php
+
+-------------------------------------------------------------------
Old:
----
libkscreen-5.5.1.tar.xz
New:
----
libkscreen-5.5.2.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ libkscreen2.spec ++++++
--- /var/tmp/diff_new_pack.GbEdRg/_old 2016-01-03 13:26:26.000000000 +0100
+++ /var/tmp/diff_new_pack.GbEdRg/_new 2016-01-03 13:26:26.000000000 +0100
@@ -19,7 +19,7 @@
%define lname libKF5Screen6
%define plasma_version 5.0.0
Name: libkscreen2
-Version: 5.5.1
+Version: 5.5.2
Release: 0
BuildRequires: cmake >= 2.8.12
BuildRequires: extra-cmake-modules >= 5.14.0
++++++ libkscreen-5.5.1.tar.xz -> libkscreen-5.5.2.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libkscreen-5.5.1/CMakeLists.txt new/libkscreen-5.5.2/CMakeLists.txt
--- old/libkscreen-5.5.1/CMakeLists.txt 2015-12-15 11:26:53.000000000 +0100
+++ new/libkscreen-5.5.2/CMakeLists.txt 2015-12-22 11:38:01.000000000 +0100
@@ -1,7 +1,7 @@
cmake_minimum_required(VERSION 2.8.12)
project(libkscreen)
-set(PROJECT_VERSION "5.5.1")
+set(PROJECT_VERSION "5.5.2")
find_package(ECM 5.14.0 REQUIRED NO_MODULE)
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${ECM_MODULE_PATH} ${ECM_KDE_MODULE_DIR})
1
0
Hello community,
here is the log from the commit of package libkdecoration2 for openSUSE:Factory checked in at 2016-01-03 13:26:03
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/libkdecoration2 (Old)
and /work/SRC/openSUSE:Factory/.libkdecoration2.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "libkdecoration2"
Changes:
--------
--- /work/SRC/openSUSE:Factory/libkdecoration2/libkdecoration2.changes 2015-12-29 12:57:02.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.libkdecoration2.new/libkdecoration2.changes 2016-01-03 13:26:22.000000000 +0100
@@ -1,0 +2,8 @@
+Tue Dec 22 22:35:11 UTC 2015 - hrvoje.senjan(a)gmail.com
+
+- Update to 5.5.2:
+ * Bugfix release
+ * For more details please see:
+ https://www.kde.org/announcements/plasma-5.5.2.php
+
+-------------------------------------------------------------------
Old:
----
kdecoration-5.5.1.tar.xz
New:
----
kdecoration-5.5.2.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ libkdecoration2.spec ++++++
--- /var/tmp/diff_new_pack.qGUFZX/_old 2016-01-03 13:26:22.000000000 +0100
+++ /var/tmp/diff_new_pack.qGUFZX/_new 2016-01-03 13:26:22.000000000 +0100
@@ -19,7 +19,7 @@
%define lname libkdecorations2-5
%define lname_private libkdecorations2private5
Name: libkdecoration2
-Version: 5.5.1
+Version: 5.5.2
Release: 0
BuildRequires: cmake >= 2.8.12
BuildRequires: extra-cmake-modules >= 0.0.11
++++++ kdecoration-5.5.1.tar.xz -> kdecoration-5.5.2.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kdecoration-5.5.1/CMakeLists.txt new/kdecoration-5.5.2/CMakeLists.txt
--- old/kdecoration-5.5.1/CMakeLists.txt 2015-12-15 11:19:58.000000000 +0100
+++ new/kdecoration-5.5.2/CMakeLists.txt 2015-12-22 11:27:57.000000000 +0100
@@ -1,5 +1,5 @@
project(decoration-api)
-set(PROJECT_VERSION "5.5.1")
+set(PROJECT_VERSION "5.5.2")
cmake_minimum_required(VERSION 2.8.12 FATAL_ERROR)
1
0
Hello community,
here is the log from the commit of package kwin5 for openSUSE:Factory checked in at 2016-01-03 13:25:58
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/kwin5 (Old)
and /work/SRC/openSUSE:Factory/.kwin5.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "kwin5"
Changes:
--------
--- /work/SRC/openSUSE:Factory/kwin5/kwin5.changes 2015-12-29 12:56:58.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.kwin5.new/kwin5.changes 2016-01-03 13:26:17.000000000 +0100
@@ -1,0 +2,8 @@
+Tue Dec 22 22:35:10 UTC 2015 - hrvoje.senjan(a)gmail.com
+
+- Update to 5.5.2:
+ * Bugfix release
+ * For more details please see:
+ https://www.kde.org/announcements/plasma-5.5.2.php
+
+-------------------------------------------------------------------
Old:
----
kwin-5.5.1.tar.xz
New:
----
kwin-5.5.2.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ kwin5.spec ++++++
--- /var/tmp/diff_new_pack.Okw4Dd/_old 2016-01-03 13:26:18.000000000 +0100
+++ /var/tmp/diff_new_pack.Okw4Dd/_new 2016-01-03 13:26:18.000000000 +0100
@@ -18,7 +18,7 @@
%bcond_without lang
Name: kwin5
-Version: 5.5.1
+Version: 5.5.2
Release: 0
Summary: KDE Window Manager
License: GPL-2.0+
++++++ kwin-5.5.1.tar.xz -> kwin-5.5.2.tar.xz ++++++
++++ 10150 lines of diff (skipped)
1
0
Hello community,
here is the log from the commit of package kwayland-integration for openSUSE:Factory checked in at 2016-01-03 13:25:53
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/kwayland-integration (Old)
and /work/SRC/openSUSE:Factory/.kwayland-integration.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "kwayland-integration"
Changes:
--------
--- /work/SRC/openSUSE:Factory/kwayland-integration/kwayland-integration.changes 2015-11-24 22:27:01.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.kwayland-integration.new/kwayland-integration.changes 2016-01-03 13:26:11.000000000 +0100
@@ -1,0 +2,24 @@
+Tue Dec 22 22:35:09 UTC 2015 - hrvoje.senjan(a)gmail.com
+
+- Update to 5.5.2:
+ * Bugfix release
+ * For more details please see:
+ https://www.kde.org/announcements/plasma-5.5.2.php
+
+-------------------------------------------------------------------
+Tue Dec 15 17:49:54 UTC 2015 - hrvoje.senjan(a)gmail.com
+
+- Update to 5.5.1:
+ * Bugfix release
+ * For more details please see:
+ https://www.kde.org/announcements/plasma-5.5.1.php
+
+-------------------------------------------------------------------
+Sat Dec 12 17:31:54 UTC 2015 - hrvoje.senjan(a)gmail.com
+
+- Update to 5.5.0:
+ * For more details please see:
+ https://dot.kde.org/2015/12/08/plasma-55-beautiful-new-artwork
+- Move to cmake(...) BuildRequires where possible
+
+-------------------------------------------------------------------
Old:
----
kwayland-integration-5.4.3.tar.xz
New:
----
kwayland-integration-5.5.2.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ kwayland-integration.spec ++++++
--- /var/tmp/diff_new_pack.0mFGxF/_old 2016-01-03 13:26:12.000000000 +0100
+++ /var/tmp/diff_new_pack.0mFGxF/_new 2016-01-03 13:26:12.000000000 +0100
@@ -17,7 +17,7 @@
Name: kwayland-integration
-Version: 5.4.3
+Version: 5.5.2
Release: 0
Summary: Integration plugins for various KDE frameworks for wayland windowing system
License: LGPL-2.1+
@@ -25,13 +25,12 @@
Url: http://www.kde.org
Source: %{name}-%{version}.tar.xz
BuildRequires: cmake >= 2.8.12
-BuildRequires: extra-cmake-modules >= 1.4.0
+BuildRequires: extra-cmake-modules >= 0.0.11
BuildRequires: kf5-filesystem
-BuildRequires: kidletime-devel
-BuildRequires: kwayland-devel
-BuildRequires: kwindowsystem-devel
-BuildRequires: pkgconfig(Qt5Core) >= 5.4.0
-BuildRequires: pkgconfig(Qt5Gui) >= 5.4.0
+BuildRequires: cmake(KF5IdleTime) >= 5.12.0
+BuildRequires: cmake(KF5Wayland) >= %{version}
+BuildRequires: cmake(KF5WindowSystem) >= 5.12.0
+BuildRequires: cmake(Qt5Core) >= 5.4.0
BuildRoot: %{_tmppath}/%{name}-%{version}-build
%description
++++++ kwayland-integration-5.4.3.tar.xz -> kwayland-integration-5.5.2.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kwayland-integration-5.4.3/CMakeLists.txt new/kwayland-integration-5.5.2/CMakeLists.txt
--- old/kwayland-integration-5.4.3/CMakeLists.txt 2015-11-05 13:39:23.000000000 +0100
+++ new/kwayland-integration-5.5.2/CMakeLists.txt 2015-12-22 11:36:10.000000000 +0100
@@ -1,5 +1,5 @@
project(kwayland-integration)
-set(PROJECT_VERSION "5.4.3")
+set(PROJECT_VERSION "5.5.2")
set(PROJECT_VERSION_MAJOR 5)
cmake_minimum_required(VERSION 2.8.12 FATAL_ERROR)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kwayland-integration-5.4.3/src/windowsystem/CMakeLists.txt new/kwayland-integration-5.5.2/src/windowsystem/CMakeLists.txt
--- old/kwayland-integration-5.4.3/src/windowsystem/CMakeLists.txt 2015-11-05 13:39:23.000000000 +0100
+++ new/kwayland-integration-5.5.2/src/windowsystem/CMakeLists.txt 2015-12-22 11:36:10.000000000 +0100
@@ -1,7 +1,10 @@
set(wayland_plugin_SRCS
logging.cpp
plugin.cpp
+ waylandintegration.cpp
+ windoweffects.cpp
windowsystem.cpp
+ windowinfo.cpp
)
add_library(KF5WindowSystemKWaylandPlugin MODULE ${wayland_plugin_SRCS})
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kwayland-integration-5.4.3/src/windowsystem/plugin.cpp new/kwayland-integration-5.5.2/src/windowsystem/plugin.cpp
--- old/kwayland-integration-5.4.3/src/windowsystem/plugin.cpp 2015-11-05 13:39:23.000000000 +0100
+++ new/kwayland-integration-5.5.2/src/windowsystem/plugin.cpp 2015-12-22 11:36:10.000000000 +0100
@@ -19,6 +19,8 @@
*/
#include "plugin.h"
#include "windowsystem.h"
+#include "windoweffects.h"
+#include "windowinfo.h"
KWaylandPlugin::KWaylandPlugin(QObject *parent)
: KWindowSystemPluginInterface(parent)
@@ -29,7 +31,17 @@
{
}
+KWindowEffectsPrivate *KWaylandPlugin::createEffects()
+{
+ return new WindowEffects();
+}
+
KWindowSystemPrivate *KWaylandPlugin::createWindowSystem()
{
return new WindowSystem();
}
+
+KWindowInfoPrivate *KWaylandPlugin::createWindowInfo(WId window, NET::Properties properties, NET::Properties2 properties2)
+{
+ return new WindowInfo(window, properties, properties2);
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kwayland-integration-5.4.3/src/windowsystem/plugin.h new/kwayland-integration-5.5.2/src/windowsystem/plugin.h
--- old/kwayland-integration-5.4.3/src/windowsystem/plugin.h 2015-11-05 13:39:23.000000000 +0100
+++ new/kwayland-integration-5.5.2/src/windowsystem/plugin.h 2015-12-22 11:36:10.000000000 +0100
@@ -32,7 +32,9 @@
explicit KWaylandPlugin(QObject *parent = 0);
virtual ~KWaylandPlugin();
+ KWindowEffectsPrivate *createEffects() override;
KWindowSystemPrivate *createWindowSystem() override;
+ KWindowInfoPrivate *createWindowInfo(WId window, NET::Properties properties, NET::Properties2 properties2) override;
};
#endif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kwayland-integration-5.4.3/src/windowsystem/waylandintegration.cpp new/kwayland-integration-5.5.2/src/windowsystem/waylandintegration.cpp
--- old/kwayland-integration-5.4.3/src/windowsystem/waylandintegration.cpp 1970-01-01 01:00:00.000000000 +0100
+++ new/kwayland-integration-5.5.2/src/windowsystem/waylandintegration.cpp 2015-12-22 11:36:10.000000000 +0100
@@ -0,0 +1,206 @@
+/*
+ * Copyright 2014 Martin Gräßlin <mgraesslin(a)kde.org>
+ * Copyright 2015 Marco Martin <mart(a)kde.org>
+ *
+ * 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) version 3, or any
+ * later version accepted by the membership of KDE e.V. (or its
+ * successor approved by the membership of KDE e.V.), which shall
+ * act as a proxy defined in Section 6 of version 3 of the license.
+ *
+ * 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, see <http://www.gnu.org/licenses/>.
+ */
+
+#include "waylandintegration.h"
+#include "logging.h"
+
+#include <KWayland/Client/connection_thread.h>
+#include <KWayland/Client/registry.h>
+#include <KWayland/Client/compositor.h>
+#include <KWayland/Client/plasmawindowmanagement.h>
+#include <KWayland/Client/surface.h>
+#include <KWayland/Client/blur.h>
+#include <KWayland/Client/contrast.h>
+#include <KWayland/Client/region.h>
+#include <KWayland/Client/slide.h>
+#include <KWayland/Client/shell.h>
+
+#include <KWindowSystem/KWindowSystem>
+
+class WaylandIntegrationSingleton
+{
+public:
+ WaylandIntegration self;
+};
+
+Q_GLOBAL_STATIC(WaylandIntegrationSingleton, privateWaylandIntegrationSelf)
+
+WaylandIntegration::WaylandIntegration()
+ : QObject()
+{
+ setupKWaylandIntegration();
+}
+
+WaylandIntegration::~WaylandIntegration()
+{}
+
+void WaylandIntegration::setupKWaylandIntegration()
+{
+ using namespace KWayland::Client;
+ m_waylandConnection = ConnectionThread::fromApplication(this);
+ if (!m_waylandConnection) {
+ qCWarning(KWAYLAND_KWS) << "Failed getting Wayland connection from QPA";
+ return;
+ }
+ m_registry = new Registry(this);
+ m_registry->create(m_waylandConnection);
+ m_waylandCompositor = Compositor::fromApplication(this);
+
+ m_registry->setup();
+ m_waylandConnection->roundtrip();
+}
+
+WaylandIntegration *WaylandIntegration::self()
+{
+ return &privateWaylandIntegrationSelf()->self;
+}
+
+
+KWayland::Client::ConnectionThread *WaylandIntegration::waylandConnection() const
+{
+ return m_waylandConnection;
+}
+
+KWayland::Client::BlurManager *WaylandIntegration::waylandBlurManager()
+{
+ if (!m_waylandBlurManager) {
+ const KWayland::Client::Registry::AnnouncedInterface wmInterface = m_registry->interface(KWayland::Client::Registry::Interface::Blur);
+
+ if (wmInterface.name == 0) {
+ return nullptr;
+ }
+
+ m_waylandBlurManager = m_registry->createBlurManager(wmInterface.name, wmInterface.version, this);
+
+ connect(m_waylandBlurManager, &KWayland::Client::BlurManager::removed, this,
+ [this] () {
+ m_waylandBlurManager->deleteLater();
+ m_waylandBlurManager = nullptr;
+ }
+ );
+ }
+
+ return m_waylandBlurManager;
+}
+
+KWayland::Client::ContrastManager *WaylandIntegration::waylandContrastManager()
+{
+ if (!m_waylandContrastManager) {
+ const KWayland::Client::Registry::AnnouncedInterface wmInterface = m_registry->interface(KWayland::Client::Registry::Interface::Contrast);
+
+ if (wmInterface.name == 0) {
+ return nullptr;
+ }
+
+ m_waylandContrastManager = m_registry->createContrastManager(wmInterface.name, wmInterface.version, this);
+
+ connect(m_waylandContrastManager, &KWayland::Client::ContrastManager::removed, this,
+ [this] () {
+ m_waylandContrastManager->deleteLater();
+ m_waylandContrastManager = nullptr;
+ }
+ );
+ }
+
+ return m_waylandContrastManager;
+}
+
+KWayland::Client::SlideManager *WaylandIntegration::waylandSlideManager()
+{
+ if (!m_waylandSlideManager) {
+ const KWayland::Client::Registry::AnnouncedInterface wmInterface = m_registry->interface(KWayland::Client::Registry::Interface::Slide);
+
+ if (wmInterface.name == 0) {
+ return nullptr;
+ }
+
+ m_waylandSlideManager = m_registry->createSlideManager(wmInterface.name, wmInterface.version, this);
+
+ connect(m_waylandSlideManager, &KWayland::Client::SlideManager::removed, this,
+ [this] () {
+ m_waylandSlideManager->deleteLater();
+ m_waylandSlideManager = nullptr;
+ }
+ );
+ }
+
+ return m_waylandSlideManager;
+}
+
+KWayland::Client::Compositor *WaylandIntegration::waylandCompositor() const
+{
+ return m_waylandCompositor;
+}
+
+KWayland::Client::PlasmaWindowManagement *WaylandIntegration::plasmaWindowManagement()
+{
+ using namespace KWayland::Client;
+
+ if (!m_wm) {
+ const Registry::AnnouncedInterface wmInterface = m_registry->interface(Registry::Interface::PlasmaWindowManagement);
+
+ if (wmInterface.name == 0) {
+ qCWarning(KWAYLAND_KWS) << "This compositor does not support the Plasma Window Management interface";
+ return nullptr;
+ }
+
+ m_wm = m_registry->createPlasmaWindowManagement(wmInterface.name, wmInterface.version, this);
+ connect(m_wm, &PlasmaWindowManagement::windowCreated, this,
+ [this] (PlasmaWindow *w) {
+ emit KWindowSystem::self()->windowAdded(w->internalId());
+ emit KWindowSystem::self()->stackingOrderChanged();
+ connect(w, &PlasmaWindow::unmapped, this,
+ [w] {
+ emit KWindowSystem::self()->windowRemoved(w->internalId());
+ emit KWindowSystem::self()->stackingOrderChanged();
+ }
+ );
+ }
+ );
+ connect(m_wm, &PlasmaWindowManagement::activeWindowChanged, this,
+ [this] {
+ if (PlasmaWindow *w = m_wm->activeWindow()) {
+ emit KWindowSystem::self()->activeWindowChanged(w->internalId());
+ } else {
+ emit KWindowSystem::self()->activeWindowChanged(0);
+ }
+ }
+ );
+ connect(m_wm, &PlasmaWindowManagement::showingDesktopChanged, KWindowSystem::self(), &KWindowSystem::showingDesktopChanged);
+ qCDebug(KWAYLAND_KWS) << "Plasma Window Management interface bound";
+ }
+
+ return m_wm;
+}
+
+KWayland::Client::PlasmaShell *WaylandIntegration::waylandPlasmaShell()
+{
+ if (!m_waylandPlasmaShell) {
+ const KWayland::Client::Registry::AnnouncedInterface wmInterface = m_registry->interface(KWayland::Client::Registry::Interface::PlasmaShell);
+
+ if (wmInterface.name == 0) {
+ return nullptr;
+ }
+
+ m_waylandPlasmaShell = m_registry->createPlasmaShell(wmInterface.name, wmInterface.version, this);
+ }
+ return m_waylandPlasmaShell;
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kwayland-integration-5.4.3/src/windowsystem/waylandintegration.h new/kwayland-integration-5.5.2/src/windowsystem/waylandintegration.h
--- old/kwayland-integration-5.4.3/src/windowsystem/waylandintegration.h 1970-01-01 01:00:00.000000000 +0100
+++ new/kwayland-integration-5.5.2/src/windowsystem/waylandintegration.h 2015-12-22 11:36:10.000000000 +0100
@@ -0,0 +1,69 @@
+/*
+ * Copyright 2014 Martin Gräßlin <mgraesslin(a)kde.org>
+ * Copyright 2015 Marco Martin <mart(a)kde.org>
+ *
+ * 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) version 3, or any
+ * later version accepted by the membership of KDE e.V. (or its
+ * successor approved by the membership of KDE e.V.), which shall
+ * act as a proxy defined in Section 6 of version 3 of the license.
+ *
+ * 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, see <http://www.gnu.org/licenses/>.
+ */
+#ifndef WAYLANDINTEGRATION_H
+#define WAYLANDINTEGRATION_H
+#include <KWindowSystem/private/kwindoweffects_p.h>
+
+
+namespace KWayland
+{
+ namespace Client
+ {
+ class BlurManager;
+ class ContrastManager;
+ class Compositor;
+ class ConnectionThread;
+ class PlasmaWindowManagement;
+ class PlasmaShell;
+ class Registry;
+ class SlideManager;
+ }
+}
+
+class WaylandIntegration : public QObject
+{
+public:
+ explicit WaylandIntegration();
+ ~WaylandIntegration();
+ void setupKWaylandIntegration();
+
+ static WaylandIntegration *self();
+
+ KWayland::Client::ConnectionThread *waylandConnection() const;
+ KWayland::Client::BlurManager *waylandBlurManager();
+ KWayland::Client::ContrastManager *waylandContrastManager();
+ KWayland::Client::SlideManager *waylandSlideManager();
+ KWayland::Client::Compositor *waylandCompositor() const;
+ KWayland::Client::PlasmaWindowManagement *plasmaWindowManagement();
+ KWayland::Client::PlasmaShell *waylandPlasmaShell();
+
+private:
+ KWayland::Client::ConnectionThread *m_waylandConnection = nullptr;
+ KWayland::Client::BlurManager *m_waylandBlurManager = nullptr;
+ KWayland::Client::ContrastManager *m_waylandContrastManager = nullptr;
+ KWayland::Client::SlideManager *m_waylandSlideManager = nullptr;
+ KWayland::Client::Compositor *m_waylandCompositor = nullptr;
+ KWayland::Client::PlasmaWindowManagement *m_wm = nullptr;
+ KWayland::Client::PlasmaShell *m_waylandPlasmaShell = nullptr;
+ KWayland::Client::Registry *m_registry = nullptr;
+};
+
+#endif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kwayland-integration-5.4.3/src/windowsystem/windoweffects.cpp new/kwayland-integration-5.5.2/src/windowsystem/windoweffects.cpp
--- old/kwayland-integration-5.4.3/src/windowsystem/windoweffects.cpp 1970-01-01 01:00:00.000000000 +0100
+++ new/kwayland-integration-5.5.2/src/windowsystem/windoweffects.cpp 2015-12-22 11:36:10.000000000 +0100
@@ -0,0 +1,176 @@
+/*
+ * Copyright 2014 Martin Gräßlin <mgraesslin(a)kde.org>
+ * Copyright 2015 Marco Martin <mart(a)kde.org>
+ *
+ * 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) version 3, or any
+ * later version accepted by the membership of KDE e.V. (or its
+ * successor approved by the membership of KDE e.V.), which shall
+ * act as a proxy defined in Section 6 of version 3 of the license.
+ *
+ * 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, see <http://www.gnu.org/licenses/>.
+ */
+
+#include "windoweffects.h"
+#include "waylandintegration.h"
+
+#include <QDebug>
+
+#include <KWayland/Client/connection_thread.h>
+#include <KWayland/Client/plasmawindowmanagement.h>
+#include <KWayland/Client/registry.h>
+#include <KWayland/Client/plasmashell.h>
+#include <KWayland/Client/compositor.h>
+#include <KWayland/Client/surface.h>
+#include <KWayland/Client/blur.h>
+#include <KWayland/Client/contrast.h>
+#include <KWayland/Client/region.h>
+#include <KWayland/Client/slide.h>
+
+WindowEffects::WindowEffects()
+ : QObject(),
+ KWindowEffectsPrivate()
+{
+}
+
+WindowEffects::~WindowEffects()
+{}
+
+bool WindowEffects::isEffectAvailable(KWindowEffects::Effect effect)
+{
+ switch (effect) {
+ case KWindowEffects::BackgroundContrast:
+ return WaylandIntegration::self()->waylandContrastManager() != nullptr;
+ case KWindowEffects::BlurBehind:
+ return WaylandIntegration::self()->waylandBlurManager() != nullptr;
+ default:
+ return false;
+ }
+}
+
+void WindowEffects::slideWindow(WId id, KWindowEffects::SlideFromLocation location, int offset)
+{
+ if (!WaylandIntegration::self()->waylandSlideManager()) {
+ return;
+ }
+ KWayland::Client::Surface *surface = KWayland::Client::Surface::fromQtWinId(id);
+ if (surface) {
+ if (location != KWindowEffects::SlideFromLocation::NoEdge) {
+ auto slide = WaylandIntegration::self()->waylandSlideManager()->createSlide(surface, surface);
+
+ KWayland::Client::Slide::Location convertedLoc;
+ switch (location) {
+ case KWindowEffects::SlideFromLocation::TopEdge:
+ convertedLoc = KWayland::Client::Slide::Location::Top;
+ break;
+ case KWindowEffects::SlideFromLocation::LeftEdge:
+ convertedLoc = KWayland::Client::Slide::Location::Left;
+ break;
+ case KWindowEffects::SlideFromLocation::RightEdge:
+ convertedLoc = KWayland::Client::Slide::Location::Right;
+ break;
+ case KWindowEffects::SlideFromLocation::BottomEdge:
+ default:
+ convertedLoc = KWayland::Client::Slide::Location::Bottom;
+ break;
+ }
+
+ slide->setLocation(convertedLoc);
+ slide->setOffset(offset);
+ slide->commit();
+ } else {
+ WaylandIntegration::self()->waylandSlideManager()->removeSlide(surface);
+ }
+ surface->commit(KWayland::Client::Surface::CommitFlag::None);
+
+ WaylandIntegration::self()->waylandConnection()->flush();
+ }
+}
+
+void WindowEffects::slideWindow(QWidget *widget, KWindowEffects::SlideFromLocation location)
+{
+ slideWindow(widget->winId(), location, 0);
+}
+
+QList<QSize> WindowEffects::windowSizes(const QList<WId> &ids)
+{
+ Q_UNUSED(ids)
+ QList<QSize> sizes;
+ return sizes;
+}
+
+void WindowEffects::presentWindows(WId controller, const QList<WId> &ids)
+{
+ Q_UNUSED(controller)
+ Q_UNUSED(ids)
+}
+
+void WindowEffects::presentWindows(WId controller, int desktop)
+{
+ Q_UNUSED(controller)
+ Q_UNUSED(desktop)
+}
+
+void WindowEffects::highlightWindows(WId controller, const QList<WId> &ids)
+{
+ Q_UNUSED(controller)
+ Q_UNUSED(ids)
+}
+
+void WindowEffects::enableBlurBehind(WId window, bool enable, const QRegion ®ion)
+{
+ if (!WaylandIntegration::self()->waylandBlurManager()) {
+ return;
+ }
+ KWayland::Client::Surface *surface = KWayland::Client::Surface::fromQtWinId(window);
+ if (surface) {
+ if (enable) {
+ auto blur = WaylandIntegration::self()->waylandBlurManager()->createBlur(surface, surface);
+ blur->setRegion(WaylandIntegration::self()->waylandCompositor()->createRegion(region, nullptr));
+ blur->commit();
+ } else {
+ WaylandIntegration::self()->waylandBlurManager()->removeBlur(surface);
+ }
+ surface->commit(KWayland::Client::Surface::CommitFlag::None);
+
+ WaylandIntegration::self()->waylandConnection()->flush();
+ }
+}
+
+void WindowEffects::enableBackgroundContrast(WId window, bool enable, qreal contrast, qreal intensity, qreal saturation, const QRegion ®ion)
+{
+ if (!WaylandIntegration::self()->waylandContrastManager()) {
+ return;
+ }
+ KWayland::Client::Surface *surface = KWayland::Client::Surface::fromQtWinId(window);
+ if (surface) {
+ if (enable) {
+ auto backgroundContrast = WaylandIntegration::self()->waylandContrastManager()->createContrast(surface, surface);
+ backgroundContrast->setRegion(WaylandIntegration::self()->waylandCompositor()->createRegion(region, nullptr));
+ backgroundContrast->setContrast(contrast);
+ backgroundContrast->setIntensity(intensity);
+ backgroundContrast->setSaturation(saturation);
+ backgroundContrast->commit();
+ } else {
+ WaylandIntegration::self()->waylandContrastManager()->removeContrast(surface);
+ }
+ surface->commit(KWayland::Client::Surface::CommitFlag::None);
+
+ WaylandIntegration::self()->waylandConnection()->flush();
+ }
+}
+
+void WindowEffects::markAsDashboard(WId window)
+{
+ Q_UNUSED(window)
+}
+
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kwayland-integration-5.4.3/src/windowsystem/windoweffects.h new/kwayland-integration-5.5.2/src/windowsystem/windoweffects.h
--- old/kwayland-integration-5.4.3/src/windowsystem/windoweffects.h 1970-01-01 01:00:00.000000000 +0100
+++ new/kwayland-integration-5.5.2/src/windowsystem/windoweffects.h 2015-12-22 11:36:10.000000000 +0100
@@ -0,0 +1,55 @@
+/*
+ * Copyright 2014 Martin Gräßlin <mgraesslin(a)kde.org>
+ * Copyright 2015 Marco Martin <mart(a)kde.org>
+ *
+ * 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) version 3, or any
+ * later version accepted by the membership of KDE e.V. (or its
+ * successor approved by the membership of KDE e.V.), which shall
+ * act as a proxy defined in Section 6 of version 3 of the license.
+ *
+ * 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, see <http://www.gnu.org/licenses/>.
+ */
+#ifndef WINDOWEFFECTS_H
+#define WINDOWEFFECTS_H
+#include <KWindowSystem/private/kwindoweffects_p.h>
+
+
+namespace KWayland
+{
+ namespace Client
+ {
+ class BlurManager;
+ class ContrastManager;
+ class Compositor;
+ class ConnectionThread;
+ }
+}
+
+class WindowEffects : public QObject, public KWindowEffectsPrivate
+{
+public:
+ explicit WindowEffects();
+ ~WindowEffects();
+
+ bool isEffectAvailable(KWindowEffects::Effect effect) override;
+ void slideWindow(WId id, KWindowEffects::SlideFromLocation location, int offset) override;
+ void slideWindow(QWidget *widget, KWindowEffects::SlideFromLocation location) override;
+ QList<QSize> windowSizes(const QList<WId> &ids) override;
+ void presentWindows(WId controller, const QList<WId> &ids) override;
+ void presentWindows(WId controller, int desktop = NET::OnAllDesktops) override;
+ void highlightWindows(WId controller, const QList<WId> &ids) override;
+ void enableBlurBehind(WId window, bool enable = true, const QRegion ®ion = QRegion()) override;
+ void enableBackgroundContrast(WId window, bool enable = true, qreal contrast = 1, qreal intensity = 1, qreal saturation = 1, const QRegion ®ion = QRegion()) override;
+ void markAsDashboard(WId window) override;
+};
+
+#endif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kwayland-integration-5.4.3/src/windowsystem/windowinfo.cpp new/kwayland-integration-5.5.2/src/windowsystem/windowinfo.cpp
--- old/kwayland-integration-5.4.3/src/windowsystem/windowinfo.cpp 1970-01-01 01:00:00.000000000 +0100
+++ new/kwayland-integration-5.5.2/src/windowsystem/windowinfo.cpp 2015-12-22 11:36:10.000000000 +0100
@@ -0,0 +1,208 @@
+/*
+ This file is part of the KDE libraries
+ Copyright (C) 1999 Matthias Ettrich (ettrich(a)kde.org)
+ Copyright (C) 2007 Lubos Lunak (l.lunak(a)kde.org)
+ Copyright 2014 Martin Gräßlin <mgraesslin(a)kde.org>
+
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Library General Public
+ License as published by the Free Software Foundation; either
+ version 2 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
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public License
+ along with this library; see the file COPYING.LIB. If not, write to
+ the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ Boston, MA 02110-1301, USA.
+*/
+
+#include "windowinfo.h"
+#include "kwindowsystem.h"
+#include "waylandintegration.h"
+
+#include <config-kwindowsystem.h>
+
+#include <QRect>
+#include <QGuiApplication>
+
+#include <KWayland/Client/plasmashell.h>
+#include <KWayland/Client/surface.h>
+
+
+WindowInfo::WindowInfo(WId window, NET::Properties properties, NET::Properties2 properties2)
+ : KWindowInfoPrivate(window, properties, properties2),
+ m_valid(false),
+ m_properties(properties),
+ m_properties2(properties2),
+ m_surface(KWayland::Client::Surface::fromQtWinId(window)),
+ m_plasmaShellSurface(KWayland::Client::PlasmaShellSurface::get(m_surface))
+{
+ m_valid = m_surface != nullptr && m_surface->isValid();
+}
+
+WindowInfo::~WindowInfo()
+{
+}
+
+bool WindowInfo::valid(bool withdrawn_is_valid) const
+{
+ Q_UNUSED(withdrawn_is_valid)
+ return m_valid;
+}
+
+NET::States WindowInfo::state() const
+{
+ return 0;
+}
+
+bool WindowInfo::isMinimized() const
+{
+ return false;
+}
+
+NET::MappingState WindowInfo::mappingState() const
+{
+ return NET::Visible;
+}
+
+NETExtendedStrut WindowInfo::extendedStrut() const
+{
+ return NETExtendedStrut();
+}
+
+NET::WindowType WindowInfo::windowType(NET::WindowTypes supported_types) const
+{
+ if (!m_plasmaShellSurface || !m_plasmaShellSurface->isValid()) {
+ return NET::Unknown;
+ }
+
+ if (m_properties & NET::WMWindowType) {
+ switch (m_plasmaShellSurface->role()) {
+ case KWayland::Client::PlasmaShellSurface::Role::Normal:
+ if (supported_types & NET::NormalMask) {
+ return NET::Normal;
+ }
+ break;
+ case KWayland::Client::PlasmaShellSurface::Role::Desktop:
+ if (supported_types & NET::DesktopMask) {
+ return NET::Desktop;
+ }
+ break;
+ case KWayland::Client::PlasmaShellSurface::Role::Panel:
+ if (supported_types & NET::DockMask) {
+ return NET::Dock;
+ }
+ break;
+ case KWayland::Client::PlasmaShellSurface::Role::OnScreenDisplay:
+ if (supported_types & NET::OnScreenDisplayMask) {
+ return NET::OnScreenDisplay;
+ }
+ break;
+ default:
+ break;
+ }
+ }
+
+ return NET::Unknown;
+}
+
+QString WindowInfo::visibleName() const
+{
+ return QString();
+}
+
+QString WindowInfo::visibleNameWithState() const
+{
+ return QString();
+}
+
+QString WindowInfo::name() const
+{
+ return QString();
+}
+
+QString WindowInfo::visibleIconName() const
+{
+ return QString();
+}
+
+QString WindowInfo::visibleIconNameWithState() const
+{
+ return QString();
+}
+
+QString WindowInfo::iconName() const
+{
+ return QString();
+}
+
+bool WindowInfo::onAllDesktops() const
+{
+ return false;
+}
+
+bool WindowInfo::isOnDesktop(int desktop) const
+{
+ Q_UNUSED(desktop)
+ return false;
+}
+
+int WindowInfo::desktop() const
+{
+ return 0;
+}
+
+QStringList WindowInfo::activities() const
+{
+ return QStringList();
+}
+
+QRect WindowInfo::geometry() const
+{
+ return QRect();
+}
+
+QRect WindowInfo::frameGeometry() const
+{
+ return QRect();
+}
+
+WId WindowInfo::transientFor() const
+{
+ return 0;
+}
+
+WId WindowInfo::groupLeader() const
+{
+ return 0;
+}
+
+QByteArray WindowInfo::windowClassClass() const
+{
+ return QByteArray();
+}
+
+QByteArray WindowInfo::windowClassName() const
+{
+ return QByteArray();
+}
+
+QByteArray WindowInfo::windowRole() const
+{
+ return QByteArray();
+}
+
+QByteArray WindowInfo::clientMachine() const
+{
+ return QByteArray();
+}
+
+bool WindowInfo::actionSupported(NET::Action action) const
+{
+ Q_UNUSED(action)
+ return false;
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kwayland-integration-5.4.3/src/windowsystem/windowinfo.h new/kwayland-integration-5.5.2/src/windowsystem/windowinfo.h
--- old/kwayland-integration-5.4.3/src/windowsystem/windowinfo.h 1970-01-01 01:00:00.000000000 +0100
+++ new/kwayland-integration-5.5.2/src/windowsystem/windowinfo.h 2015-12-22 11:36:10.000000000 +0100
@@ -0,0 +1,77 @@
+/*
+ * Copyright 2014 Martin Gräßlin <mgraesslin(a)kde.org>
+ * Copyright 2015 Marco Martin <mart(a)kde.org>
+ *
+ * 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) version 3, or any
+ * later version accepted by the membership of KDE e.V. (or its
+ * successor approved by the membership of KDE e.V.), which shall
+ * act as a proxy defined in Section 6 of version 3 of the license.
+ *
+ * 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, see <http://www.gnu.org/licenses/>.
+ */
+#ifndef WINDOWINFO_H
+#define WINDOWINFO_H
+
+#include <kwindowinfo.h>
+#include <KWindowSystem/private/kwindowinfo_p.h>
+
+
+namespace KWayland
+{
+ namespace Client
+ {
+ class Surface;
+ class PlasmaShellSurface;
+ }
+}
+
+class WindowInfo : public KWindowInfoPrivate
+{
+public:
+ WindowInfo(WId window, NET::Properties properties, NET::Properties2 properties2);
+ ~WindowInfo();
+
+ bool valid(bool withdrawn_is_valid) const override;
+ NET::States state() const override;
+ bool isMinimized() const override;
+ NET::MappingState mappingState() const override;
+ NETExtendedStrut extendedStrut() const override;
+ NET::WindowType windowType(NET::WindowTypes supported_types) const override;
+ QString visibleName() const override;
+ QString visibleNameWithState() const override;
+ QString name() const override;
+ QString visibleIconName() const override;
+ QString visibleIconNameWithState() const override;
+ QString iconName() const override;
+ bool onAllDesktops() const override;
+ bool isOnDesktop(int desktop) const override;
+ int desktop() const override;
+ QStringList activities() const override;
+ QRect geometry() const override;
+ QRect frameGeometry() const override;
+ WId transientFor() const override;
+ WId groupLeader() const override;
+ QByteArray windowClassClass() const override;
+ QByteArray windowClassName() const override;
+ QByteArray windowRole() const override;
+ QByteArray clientMachine() const override;
+ bool actionSupported(NET::Action action) const override;
+
+private:
+ bool m_valid;
+ NET::Properties m_properties;
+ NET::Properties2 m_properties2;
+ KWayland::Client::Surface *m_surface;
+ KWayland::Client::PlasmaShellSurface *m_plasmaShellSurface;
+};
+
+#endif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kwayland-integration-5.4.3/src/windowsystem/windowsystem.cpp new/kwayland-integration-5.5.2/src/windowsystem/windowsystem.cpp
--- old/kwayland-integration-5.4.3/src/windowsystem/windowsystem.cpp 2015-11-05 13:39:23.000000000 +0100
+++ new/kwayland-integration-5.5.2/src/windowsystem/windowsystem.cpp 2015-12-22 11:36:10.000000000 +0100
@@ -18,6 +18,7 @@
* License along with this library. If not, see <http://www.gnu.org/licenses/>.
*/
#include "windowsystem.h"
+#include "waylandintegration.h"
#include "logging.h"
#include <KWindowSystem/KWindowSystem>
@@ -25,6 +26,8 @@
#include <KWayland/Client/connection_thread.h>
#include <KWayland/Client/plasmawindowmanagement.h>
#include <KWayland/Client/registry.h>
+#include <KWayland/Client/plasmashell.h>
+#include <KWayland/Client/surface.h>
#include <QPixmap>
#include <QPoint>
@@ -38,66 +41,13 @@
{
}
-void WindowSystem::setupKWaylandIntegration()
-{
- ConnectionThread *connection = ConnectionThread::fromApplication(this);
- if (!connection) {
- qCWarning(KWAYLAND_KWS) << "Failed getting Wayland connection from QPA";
- return;
- }
- Registry *registry = new Registry(this);
- registry->create(connection);
- connect(registry, &Registry::interfacesAnnounced, this,
- [this] {
- if (!m_wm) {
- qCWarning(KWAYLAND_KWS) << "This compositor does not support the Plasma Window Management interface";
- }
- }
- );
- connect(registry, &Registry::plasmaWindowManagementAnnounced, this,
- [this, registry] (quint32 name, quint32 version) {
- m_wm = registry->createPlasmaWindowManagement(name, version, this);
- connect(m_wm, &PlasmaWindowManagement::windowCreated, this,
- [this] (PlasmaWindow *w) {
- emit KWindowSystem::self()->windowAdded(w->internalId());
- emit KWindowSystem::self()->stackingOrderChanged();
- connect(w, &PlasmaWindow::unmapped, this,
- [w] {
- emit KWindowSystem::self()->windowRemoved(w->internalId());
- emit KWindowSystem::self()->stackingOrderChanged();
- }
- );
- }
- );
- connect(m_wm, &PlasmaWindowManagement::activeWindowChanged, this,
- [this] {
- if (PlasmaWindow *w = m_wm->activeWindow()) {
- emit KWindowSystem::self()->activeWindowChanged(w->internalId());
- } else {
- emit KWindowSystem::self()->activeWindowChanged(0);
- }
- }
- );
- connect(m_wm, &PlasmaWindowManagement::showingDesktopChanged, KWindowSystem::self(), &KWindowSystem::showingDesktopChanged);
- emit KWindowSystem::self()->compositingChanged(true);
- emit KWindowSystem::self()->showingDesktopChanged(m_wm->isShowingDesktop());
- emit KWindowSystem::self()->stackingOrderChanged();
- if (PlasmaWindow *w = m_wm->activeWindow()) {
- emit KWindowSystem::self()->activeWindowChanged(w->internalId());
- }
- qCDebug(KWAYLAND_KWS) << "Plasma Window Management interface bound";
- }
- );
-
- registry->setup();
-}
-
KWayland::Client::PlasmaWindow *WindowSystem::window(WId wid) const
{
- if (!m_wm) {
+ if (!WaylandIntegration::self()->plasmaWindowManagement()) {
return nullptr;
}
- const auto &windows = m_wm->windows();
+
+ const auto &windows = WaylandIntegration::self()->plasmaWindowManagement()->windows();
auto it = std::find_if(windows.begin(), windows.end(), [wid] (PlasmaWindow *w) { return w->internalId() == wid; } );
if (it != windows.end()) {
return *it;
@@ -123,8 +73,9 @@
WId WindowSystem::activeWindow()
{
- if (m_wm && m_wm->activeWindow()) {
- return m_wm->activeWindow()->internalId();
+ KWayland::Client::PlasmaWindowManagement *wm = WaylandIntegration::self()->plasmaWindowManagement();
+ if (wm && wm->activeWindow()) {
+ return wm->activeWindow()->internalId();
}
return 0;
}
@@ -330,30 +281,164 @@
void WindowSystem::setShowingDesktop(bool showing)
{
- if (m_wm) {
- m_wm->setShowingDesktop(showing);
+ if (!WaylandIntegration::self()->plasmaWindowManagement()) {
+ return;
}
+ WaylandIntegration::self()->plasmaWindowManagement()->setShowingDesktop(showing);
}
void WindowSystem::clearState(WId win, NET::States state)
{
- Q_UNUSED(win)
- Q_UNUSED(state)
- qCDebug(KWAYLAND_KWS) << "This plugin does not support changing window states";
+ Surface *s = Surface::fromQtWinId(win);
+ if (!s) {
+ return;
+ }
+
+ KWayland::Client::PlasmaShellSurface *plasmaShellSurface = 0;
+
+ if (state & NET::SkipTaskbar) {
+ if (!WaylandIntegration::self()->waylandPlasmaShell()) {
+ return;
+ }
+ plasmaShellSurface = PlasmaShellSurface::get(s);
+ if (!plasmaShellSurface) {
+ plasmaShellSurface = WaylandIntegration::self()->waylandPlasmaShell()->createSurface(s, this);
+ }
+ if (!plasmaShellSurface) {
+ return;
+ }
+ }
+
+ if (state & NET::SkipTaskbar) {
+ plasmaShellSurface->setSkipTaskbar(false);
+ }
+
+ if (state & NET::Max) {
+ qCDebug(KWAYLAND_KWS) << "This plugin does not support changing Max window state";
+ }
+ if (state & NET::FullScreen) {
+ qCDebug(KWAYLAND_KWS) << "This plugin does not support changing FullScreen window state";
+ }
+ if (state & NET::Modal) {
+ qCDebug(KWAYLAND_KWS) << "This plugin does not support changing Modal window state";
+ }
+ if (state & NET::Sticky) {
+ qCDebug(KWAYLAND_KWS) << "This plugin does not support changing Sticky window state";
+ }
+ if (state & NET::Shaded) {
+ qCDebug(KWAYLAND_KWS) << "This plugin does not support changing Shaded window state";
+ }
+ if (state & NET::KeepAbove) {
+ qCDebug(KWAYLAND_KWS) << "This plugin does not support changing KeepAbove window state";
+ }
+ if (state & NET::StaysOnTop) {
+ qCDebug(KWAYLAND_KWS) << "This plugin does not support changing StaysOnTop window state";
+ }
+ if (state & NET::SkipPager) {
+ qCDebug(KWAYLAND_KWS) << "This plugin does not support changing SkipPager window state";
+ }
+ if (state & NET::Hidden) {
+ qCDebug(KWAYLAND_KWS) << "This plugin does not support changing Hidden window state";
+ }
+ if (state & NET::KeepBelow) {
+ qCDebug(KWAYLAND_KWS) << "This plugin does not support changing KeepBelow window state";
+ }
+ if (state & NET::DemandsAttention) {
+ qCDebug(KWAYLAND_KWS) << "This plugin does not support changing DemandsAttention window state";
+ }
}
void WindowSystem::setState(WId win, NET::States state)
{
- Q_UNUSED(win)
- Q_UNUSED(state)
- qCDebug(KWAYLAND_KWS) << "This plugin does not support changing window states";
+ Surface *s = Surface::fromQtWinId(win);
+ if (!s) {
+ return;
+ }
+
+ KWayland::Client::PlasmaShellSurface *plasmaShellSurface = 0;
+
+ if (state & NET::SkipTaskbar) {
+ if (!WaylandIntegration::self()->waylandPlasmaShell()) {
+ return;
+ }
+ plasmaShellSurface = PlasmaShellSurface::get(s);
+ if (!plasmaShellSurface) {
+ plasmaShellSurface = WaylandIntegration::self()->waylandPlasmaShell()->createSurface(s, this);
+ }
+ if (!plasmaShellSurface) {
+ return;
+ }
+ }
+
+ if (state & NET::SkipTaskbar) {
+ plasmaShellSurface->setSkipTaskbar(true);
+ }
+
+ if (state & NET::Max) {
+ qCDebug(KWAYLAND_KWS) << "This plugin does not support changing Max window state";
+ }
+ if (state & NET::FullScreen) {
+ qCDebug(KWAYLAND_KWS) << "This plugin does not support changing FullScreen window state";
+ }
+ if (state & NET::Modal) {
+ qCDebug(KWAYLAND_KWS) << "This plugin does not support changing Modal window state";
+ }
+ if (state & NET::Sticky) {
+ qCDebug(KWAYLAND_KWS) << "This plugin does not support changing Sticky window state";
+ }
+ if (state & NET::Shaded) {
+ qCDebug(KWAYLAND_KWS) << "This plugin does not support changing Shaded window state";
+ }
+ if (state & NET::KeepAbove) {
+ qCDebug(KWAYLAND_KWS) << "This plugin does not support changing KeepAbove window state";
+ }
+ if (state & NET::StaysOnTop) {
+ qCDebug(KWAYLAND_KWS) << "This plugin does not support changing StaysOnTop window state";
+ }
+ if (state & NET::SkipPager) {
+ qCDebug(KWAYLAND_KWS) << "This plugin does not support changing SkipPager window state";
+ }
+ if (state & NET::Hidden) {
+ qCDebug(KWAYLAND_KWS) << "This plugin does not support changing Hidden window state";
+ }
+ if (state & NET::KeepBelow) {
+ qCDebug(KWAYLAND_KWS) << "This plugin does not support changing KeepBelow window state";
+ }
+ if (state & NET::DemandsAttention) {
+ qCDebug(KWAYLAND_KWS) << "This plugin does not support changing DemandsAttention window state";
+ }
}
void WindowSystem::setType(WId win, NET::WindowType windowType)
{
- Q_UNUSED(win)
- Q_UNUSED(windowType)
- qCDebug(KWAYLAND_KWS) << "This plugin does not support changing window types";
+ if (!WaylandIntegration::self()->waylandPlasmaShell()) {
+ return;
+ }
+ KWayland::Client::PlasmaShellSurface::Role role;
+
+ switch (windowType) {
+ case NET::Normal:
+ role = KWayland::Client::PlasmaShellSurface::Role::Normal;
+ break;
+ case NET::Desktop:
+ role = KWayland::Client::PlasmaShellSurface::Role::Desktop;
+ break;
+ case NET::Dock:
+ role = KWayland::Client::PlasmaShellSurface::Role::Panel;
+ break;
+ case NET::OnScreenDisplay:
+ role = KWayland::Client::PlasmaShellSurface::Role::OnScreenDisplay;
+ break;
+ default:
+ return;
+ }
+ Surface *s = Surface::fromQtWinId(win);
+ if (!s) {
+ return;
+ }
+ KWayland::Client::PlasmaShellSurface *shellSurface = WaylandIntegration::self()->waylandPlasmaShell()->createSurface(s, this);
+
+ shellSurface->setRole(role);
}
void WindowSystem::setUserTime(WId win, long int time)
@@ -365,23 +450,24 @@
bool WindowSystem::showingDesktop()
{
- if (m_wm) {
- return m_wm->isShowingDesktop();
+ if (!WaylandIntegration::self()->plasmaWindowManagement()) {
+ return false;
}
- return false;
+ return WaylandIntegration::self()->plasmaWindowManagement()->isShowingDesktop();
}
QList< WId > WindowSystem::stackingOrder()
{
- if (m_wm) {
- const auto &windows = m_wm->windows();
- QList<WId> ret;
- for (auto w : windows) {
- ret << w->internalId();
- }
- return ret;
+ if (!WaylandIntegration::self()->plasmaWindowManagement()) {
+ return QList<WId>();
+ }
+
+ const auto &windows = WaylandIntegration::self()->plasmaWindowManagement()->windows();
+ QList<WId> ret;
+ for (auto w : windows) {
+ ret << w->internalId();
}
- return QList<WId>();
+ return ret;
}
WId WindowSystem::transientFor(WId window)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kwayland-integration-5.4.3/src/windowsystem/windowsystem.h new/kwayland-integration-5.5.2/src/windowsystem/windowsystem.h
--- old/kwayland-integration-5.4.3/src/windowsystem/windowsystem.h 2015-11-05 13:39:23.000000000 +0100
+++ new/kwayland-integration-5.5.2/src/windowsystem/windowsystem.h 2015-12-22 11:36:10.000000000 +0100
@@ -30,6 +30,7 @@
{
class PlasmaWindow;
class PlasmaWindowManagement;
+class PlasmaShell;
}
}
@@ -92,7 +93,7 @@
void setupKWaylandIntegration();
KWayland::Client::PlasmaWindow *window(WId window) const;
- KWayland::Client::PlasmaWindowManagement *m_wm = nullptr;
+ KWayland::Client::PlasmaShell *m_waylandPlasmaShell = nullptr;
};
#endif
1
0
Hello community,
here is the log from the commit of package kwayland for openSUSE:Factory checked in at 2016-01-03 13:25:48
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/kwayland (Old)
and /work/SRC/openSUSE:Factory/.kwayland.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "kwayland"
Changes:
--------
--- /work/SRC/openSUSE:Factory/kwayland/kwayland.changes 2015-12-29 12:56:53.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.kwayland.new/kwayland.changes 2016-01-03 13:26:07.000000000 +0100
@@ -1,0 +2,15 @@
+Wed Dec 23 17:35:00 UTC 2015 - alarrosa(a)suse.com
+
+- Add fix-wayland-1.3-dependency.diff again, rebased to apply correctly
+ now that there are wayland packages for SLE12 updated with the new
+ requirements from wayland 1.7
+
+-------------------------------------------------------------------
+Tue Dec 22 22:35:09 UTC 2015 - hrvoje.senjan(a)gmail.com
+
+- Update to 5.5.2:
+ * Bugfix release
+ * For more details please see:
+ https://www.kde.org/announcements/plasma-5.5.2.php
+
+-------------------------------------------------------------------
Old:
----
kwayland-5.5.1.tar.xz
New:
----
fix-wayland-1.3-dependency.diff
kwayland-5.5.2.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ kwayland.spec ++++++
--- /var/tmp/diff_new_pack.Wg1MW4/_old 2016-01-03 13:26:08.000000000 +0100
+++ /var/tmp/diff_new_pack.Wg1MW4/_new 2016-01-03 13:26:08.000000000 +0100
@@ -17,7 +17,7 @@
Name: kwayland
-Version: 5.5.1
+Version: 5.5.2
Release: 0
Summary: KDE Wayland library
License: LGPL-2.1+
@@ -25,6 +25,8 @@
Url: http://www.kde.org
Source: %{name}-%{version}.tar.xz
Source1: baselibs.conf
+# PATCH-FIX-OPENSUSE fix-wayland-1.3-dependency.diff alarrosa(a)suse.de -- Changes the wayland version kwayland depends on
+Patch0: fix-wayland-1.3-dependency.diff
BuildRequires: cmake >= 2.8.12
BuildRequires: extra-cmake-modules >= 1.4.0
BuildRequires: fdupes
@@ -35,8 +37,14 @@
BuildRequires: cmake(Qt5Gui) >= 5.4.0
BuildRequires: cmake(Qt5Test) >= 5.4.0
BuildRequires: pkgconfig(egl)
+%if 0%{?suse_version} == 1315 && ! 0%{?is_opensuse}
+# We have a patched wayland 1.2.1 version in SLE12 with the required features from 1.7.0
+BuildRequires: pkgconfig(wayland-client) >= 1.2.1
+BuildRequires: pkgconfig(wayland-server) >= 1.2.1
+%else
BuildRequires: pkgconfig(wayland-client) >= 1.7.0
BuildRequires: pkgconfig(wayland-server) >= 1.7.0
+%endif
Provides: libKF5WaylandClient5 = %{version}
Obsoletes: libKF5WaylandClient5 <= %{version}
Provides: libKF5WaylandServer5 = %{version}
@@ -59,6 +67,9 @@
%prep
%setup -q
+%if 0%{?suse_version} == 1315 && ! 0%{?is_opensuse}
+%patch0 -p1
+%endif
%build
%cmake_kf5 -d build
++++++ fix-wayland-1.3-dependency.diff ++++++
Index: kwayland-5.4.1/CMakeLists.txt
===================================================================
--- kwayland-5.4.1.orig/CMakeLists.txt
+++ kwayland-5.4.1/CMakeLists.txt
@@ -28,7 +28,7 @@ ecm_setup_version(${KF5_VERSION} VARIABL
set(REQUIRED_QT_VERSION 5.4.0)
find_package(Qt5 ${REQUIRED_QT_VERSION} CONFIG REQUIRED Gui)
-find_package(Wayland 1.7 COMPONENTS Client Server)
+find_package(Wayland 1.2 COMPONENTS Client Server)
set_package_properties(Wayland PROPERTIES
TYPE REQUIRED
)
++++++ kwayland-5.5.1.tar.xz -> kwayland-5.5.2.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kwayland-5.5.1/CMakeLists.txt new/kwayland-5.5.2/CMakeLists.txt
--- old/kwayland-5.5.1/CMakeLists.txt 2015-12-15 11:25:37.000000000 +0100
+++ new/kwayland-5.5.2/CMakeLists.txt 2015-12-22 11:36:00.000000000 +0100
@@ -1,5 +1,5 @@
cmake_minimum_required(VERSION 2.8.12)
-set(PROJECT_VERSION "5.5.1")
+set(PROJECT_VERSION "5.5.2")
set(PROJECT_VERSION_MAJOR 5)
project(KWAYLAND)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kwayland-5.5.1/autotests/client/test_wayland_outputdevice.cpp new/kwayland-5.5.2/autotests/client/test_wayland_outputdevice.cpp
--- old/kwayland-5.5.1/autotests/client/test_wayland_outputdevice.cpp 2015-12-15 11:25:37.000000000 +0100
+++ new/kwayland-5.5.2/autotests/client/test_wayland_outputdevice.cpp 2015-12-22 11:36:00.000000000 +0100
@@ -110,7 +110,7 @@
m_serverOutputDevice->setCurrentMode(1);
- m_edid = "AP///////wAQrBbwTExLQQ4WAQOANCB46h7Frk80sSYOUFSlSwCBgKlA0QBxTwEBAQEBAQEBKDyAoHCwI0AwIDYABkQhAAAaAAAA/wBGNTI1TTI0NUFLTEwKAAAA/ABERUxMIFUyNDEwCiAgAAAA/QA4TB5REQAKICAgICAgAToCAynxUJAFBAMCBxYBHxITFCAVEQYjCQcHZwMMABAAOC2DAQAA4wUDAQI6gBhxOC1AWCxFAAZEIQAAHgEdgBhxHBYgWCwlAAZEIQAAngEdAHJR0B4gbihVAAZEIQAAHowK0Iog4C0QED6WAAZEIQAAGAAAAAAAAAAAAAAAAAAAPg==";
+ m_edid = QByteArray::fromBase64("AP///////wAQrBbwTExLQQ4WAQOANCB46h7Frk80sSYOUFSlSwCBgKlA0QBxTwEBAQEBAQEBKDyAoHCwI0AwIDYABkQhAAAaAAAA/wBGNTI1TTI0NUFLTEwKAAAA/ABERUxMIFUyNDEwCiAgAAAA/QA4TB5REQAKICAgICAgAToCAynxUJAFBAMCBxYBHxITFCAVEQYjCQcHZwMMABAAOC2DAQAA4wUDAQI6gBhxOC1AWCxFAAZEIQAAHgEdgBhxHBYgWCwlAAZEIQAAngEdAHJR0B4gbihVAAZEIQAAHowK0Iog4C0QED6WAAZEIQAAGAAAAAAAAAAAAAAAAAAAPg==");
m_serverOutputDevice->setEdid(m_edid);
m_serverOutputDevice->create();
@@ -183,7 +183,7 @@
QCOMPARE(output.transform(), KWayland::Client::OutputDevice::Transform::Normal);
QCOMPARE(output.enabled(), OutputDevice::Enablement::Enabled);
QCOMPARE(output.edid(), QByteArray());
- QSignalSpy outputChanged(&output, &KWayland::Client::OutputDevice::changed);
+ QSignalSpy outputChanged(&output, &KWayland::Client::OutputDevice::done);
QVERIFY(outputChanged.isValid());
output.setup(registry.bindOutputDevice(announced.first().first().value<quint32>(), announced.first().last().value<quint32>()));
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kwayland-5.5.1/src/client/outputdevice.cpp new/kwayland-5.5.2/src/client/outputdevice.cpp
--- old/kwayland-5.5.1/src/client/outputdevice.cpp 2015-12-15 11:25:37.000000000 +0100
+++ new/kwayland-5.5.2/src/client/outputdevice.cpp 2015-12-22 11:36:00.000000000 +0100
@@ -257,7 +257,7 @@
void OutputDevice::Private::edidCallback(void* data, org_kde_kwin_outputdevice* output, const char* raw)
{
auto o = reinterpret_cast<OutputDevice::Private*>(data);
- o->edid = raw;
+ o->edid = QByteArray::fromBase64(raw);
}
void OutputDevice::Private::enabledCallback(void* data, org_kde_kwin_outputdevice* output, int32_t enabled)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kwayland-5.5.1/src/client/protocols/outputdevice.xml new/kwayland-5.5.2/src/client/protocols/outputdevice.xml
--- old/kwayland-5.5.1/src/client/protocols/outputdevice.xml 2015-12-15 11:25:37.000000000 +0100
+++ new/kwayland-5.5.2/src/client/protocols/outputdevice.xml 2015-12-22 11:36:00.000000000 +0100
@@ -177,17 +177,15 @@
</event>
<event name="edid">
- <description summary="advertise available modes for the output">
- The mode event encapsulates the EDID data for the output.
+ <description summary="advertise EDID data for the output">
+ The edid event encapsulates the EDID data for the outputdevice.
The event is sent when binding to the output object. The EDID
data may be empty, in which case this event is fired, anyway.
If the EDID information is empty, you can fall back to the name
- et al. properties.
-
- The data argument can be used to decode custom EDID extensions.
+ et al. properties of the outputdevice.
</description>
- <arg name="raw" type="string" summary="raw EDID string"/>
+ <arg name="raw" type="string" summary="base64-encoded EDID string"/>
</event>
<enum name="enablement">
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kwayland-5.5.1/src/server/outputdevice_interface.cpp new/kwayland-5.5.2/src/server/outputdevice_interface.cpp
--- old/kwayland-5.5.1/src/server/outputdevice_interface.cpp 2015-12-15 11:25:37.000000000 +0100
+++ new/kwayland-5.5.2/src/server/outputdevice_interface.cpp 2015-12-22 11:36:00.000000000 +0100
@@ -561,7 +561,7 @@
{
for (auto it = resources.constBegin(); it != resources.constEnd(); ++it) {
org_kde_kwin_outputdevice_send_edid((*it).resource,
- edid.constData());
+ edid.toBase64().constData());
}
}
1
0
Hello community,
here is the log from the commit of package ksysguard5 for openSUSE:Factory checked in at 2016-01-03 13:25:44
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/ksysguard5 (Old)
and /work/SRC/openSUSE:Factory/.ksysguard5.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "ksysguard5"
Changes:
--------
--- /work/SRC/openSUSE:Factory/ksysguard5/ksysguard5.changes 2015-12-29 12:56:48.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.ksysguard5.new/ksysguard5.changes 2016-01-03 13:26:02.000000000 +0100
@@ -1,0 +2,8 @@
+Tue Dec 22 22:35:08 UTC 2015 - hrvoje.senjan(a)gmail.com
+
+- Update to 5.5.2:
+ * Bugfix release
+ * For more details please see:
+ https://www.kde.org/announcements/plasma-5.5.2.php
+
+-------------------------------------------------------------------
Old:
----
ksysguard-5.5.1.tar.xz
New:
----
ksysguard-5.5.2.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ ksysguard5.spec ++++++
--- /var/tmp/diff_new_pack.wzC1y2/_old 2016-01-03 13:26:03.000000000 +0100
+++ /var/tmp/diff_new_pack.wzC1y2/_new 2016-01-03 13:26:03.000000000 +0100
@@ -18,7 +18,7 @@
%bcond_without lang
Name: ksysguard5
-Version: 5.5.1
+Version: 5.5.2
Release: 0
Summary: KDE System Guard daemon
License: GPL-2.0
++++++ ksysguard-5.5.1.tar.xz -> ksysguard-5.5.2.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ksysguard-5.5.1/CMakeLists.txt new/ksysguard-5.5.2/CMakeLists.txt
--- old/ksysguard-5.5.1/CMakeLists.txt 2015-12-15 11:25:19.000000000 +0100
+++ new/ksysguard-5.5.2/CMakeLists.txt 2015-12-22 11:35:40.000000000 +0100
@@ -1,5 +1,5 @@
project(ksysguard)
-set(PROJECT_VERSION "5.5.1")
+set(PROJECT_VERSION "5.5.2")
cmake_minimum_required(VERSION 2.8.12 FATAL_ERROR)
set(QT_MIN_VERSION "5.4.0")
1
0
Hello community,
here is the log from the commit of package ksshaskpass5 for openSUSE:Factory checked in at 2016-01-03 13:25:40
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/ksshaskpass5 (Old)
and /work/SRC/openSUSE:Factory/.ksshaskpass5.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "ksshaskpass5"
Changes:
--------
--- /work/SRC/openSUSE:Factory/ksshaskpass5/ksshaskpass5.changes 2015-12-29 12:56:39.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.ksshaskpass5.new/ksshaskpass5.changes 2016-01-03 13:25:58.000000000 +0100
@@ -1,0 +2,8 @@
+Tue Dec 22 22:35:08 UTC 2015 - hrvoje.senjan(a)gmail.com
+
+- Update to 5.5.2:
+ * Bugfix release
+ * For more details please see:
+ https://www.kde.org/announcements/plasma-5.5.2.php
+
+-------------------------------------------------------------------
Old:
----
ksshaskpass-5.5.1.tar.xz
New:
----
ksshaskpass-5.5.2.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ ksshaskpass5.spec ++++++
--- /var/tmp/diff_new_pack.t29okD/_old 2016-01-03 13:25:59.000000000 +0100
+++ /var/tmp/diff_new_pack.t29okD/_new 2016-01-03 13:25:59.000000000 +0100
@@ -18,7 +18,7 @@
%bcond_without lang
Name: ksshaskpass5
-Version: 5.5.1
+Version: 5.5.2
Release: 0
Summary: Plasma 5 version of ssh-askpass
License: GPL-2.0+
++++++ ksshaskpass-5.5.1.tar.xz -> ksshaskpass-5.5.2.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ksshaskpass-5.5.1/CMakeLists.txt new/ksshaskpass-5.5.2/CMakeLists.txt
--- old/ksshaskpass-5.5.1/CMakeLists.txt 2015-12-15 11:24:57.000000000 +0100
+++ new/ksshaskpass-5.5.2/CMakeLists.txt 2015-12-22 11:35:13.000000000 +0100
@@ -1,6 +1,6 @@
project(ksshaskpass)
cmake_minimum_required(VERSION 2.8.12)
-set(PROJECT_VERSION "5.5.1")
+set(PROJECT_VERSION "5.5.2")
find_package(Qt5 REQUIRED COMPONENTS Core)
1
0
Hello community,
here is the log from the commit of package kscreenlocker for openSUSE:Factory checked in at 2016-01-03 13:25:34
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/kscreenlocker (Old)
and /work/SRC/openSUSE:Factory/.kscreenlocker.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "kscreenlocker"
Changes:
--------
--- /work/SRC/openSUSE:Factory/kscreenlocker/kscreenlocker.changes 2015-12-29 12:58:32.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.kscreenlocker.new/kscreenlocker.changes 2016-01-03 13:25:53.000000000 +0100
@@ -1,0 +2,8 @@
+Tue Dec 22 22:35:07 UTC 2015 - hrvoje.senjan(a)gmail.com
+
+- Update to 5.5.2:
+ * Bugfix release
+ * For more details please see:
+ https://www.kde.org/announcements/plasma-5.5.2.php
+
+-------------------------------------------------------------------
Old:
----
kscreenlocker-5.5.1.tar.xz
New:
----
kscreenlocker-5.5.2.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ kscreenlocker.spec ++++++
--- /var/tmp/diff_new_pack.8ViC1z/_old 2016-01-03 13:25:53.000000000 +0100
+++ /var/tmp/diff_new_pack.8ViC1z/_new 2016-01-03 13:25:53.000000000 +0100
@@ -18,7 +18,7 @@
%bcond_without lang
Name: kscreenlocker
-Version: 5.5.1
+Version: 5.5.2
Release: 0
Summary: Library and components for secure lock screen architecture
License: GPL-2.0+
++++++ kscreenlocker-5.5.1.tar.xz -> kscreenlocker-5.5.2.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kscreenlocker-5.5.1/CMakeLists.txt new/kscreenlocker-5.5.2/CMakeLists.txt
--- old/kscreenlocker-5.5.1/CMakeLists.txt 2015-12-15 11:24:45.000000000 +0100
+++ new/kscreenlocker-5.5.2/CMakeLists.txt 2015-12-22 11:34:54.000000000 +0100
@@ -1,4 +1,4 @@
-set(PROJECT_VERSION "5.5.1")
+set(PROJECT_VERSION "5.5.2")
set(PROJECT_VERSION_MAJOR 5)
cmake_minimum_required(VERSION 2.8.12 FATAL_ERROR)
1
0
Hello community,
here is the log from the commit of package kscreen5 for openSUSE:Factory checked in at 2016-01-03 13:25:30
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/kscreen5 (Old)
and /work/SRC/openSUSE:Factory/.kscreen5.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "kscreen5"
Changes:
--------
--- /work/SRC/openSUSE:Factory/kscreen5/kscreen5.changes 2015-12-29 12:56:32.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.kscreen5.new/kscreen5.changes 2016-01-03 13:25:48.000000000 +0100
@@ -1,0 +2,8 @@
+Tue Dec 22 22:35:07 UTC 2015 - hrvoje.senjan(a)gmail.com
+
+- Update to 5.5.2:
+ * Bugfix release
+ * For more details please see:
+ https://www.kde.org/announcements/plasma-5.5.2.php
+
+-------------------------------------------------------------------
Old:
----
kscreen-5.5.1.tar.xz
New:
----
kscreen-5.5.2.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ kscreen5.spec ++++++
--- /var/tmp/diff_new_pack.Tv6kKY/_old 2016-01-03 13:25:49.000000000 +0100
+++ /var/tmp/diff_new_pack.Tv6kKY/_new 2016-01-03 13:25:49.000000000 +0100
@@ -18,7 +18,7 @@
%bcond_without lang
Name: kscreen5
-Version: 5.5.1
+Version: 5.5.2
Release: 0
Summary: KDE's screen management software
License: GPL-2.0+
++++++ kscreen-5.5.1.tar.xz -> kscreen-5.5.2.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kscreen-5.5.1/CMakeLists.txt new/kscreen-5.5.2/CMakeLists.txt
--- old/kscreen-5.5.1/CMakeLists.txt 2015-12-15 11:24:11.000000000 +0100
+++ new/kscreen-5.5.2/CMakeLists.txt 2015-12-22 11:33:59.000000000 +0100
@@ -1,5 +1,5 @@
project(KScreen)
-set(PROJECT_VERSION "5.5.1")
+set(PROJECT_VERSION "5.5.2")
cmake_minimum_required(VERSION 2.8.12)
1
0
Hello community,
here is the log from the commit of package kmenuedit5 for openSUSE:Factory checked in at 2016-01-03 13:25:26
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/kmenuedit5 (Old)
and /work/SRC/openSUSE:Factory/.kmenuedit5.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "kmenuedit5"
Changes:
--------
--- /work/SRC/openSUSE:Factory/kmenuedit5/kmenuedit5.changes 2015-12-29 12:56:27.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.kmenuedit5.new/kmenuedit5.changes 2016-01-03 13:25:44.000000000 +0100
@@ -1,0 +2,8 @@
+Tue Dec 22 22:35:06 UTC 2015 - hrvoje.senjan(a)gmail.com
+
+- Update to 5.5.2:
+ * Bugfix release
+ * For more details please see:
+ https://www.kde.org/announcements/plasma-5.5.2.php
+
+-------------------------------------------------------------------
Old:
----
kmenuedit-5.5.1.tar.xz
New:
----
kmenuedit-5.5.2.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ kmenuedit5.spec ++++++
--- /var/tmp/diff_new_pack.Ez5hX5/_old 2016-01-03 13:25:44.000000000 +0100
+++ /var/tmp/diff_new_pack.Ez5hX5/_new 2016-01-03 13:25:44.000000000 +0100
@@ -18,7 +18,7 @@
%bcond_without lang
Name: kmenuedit5
-Version: 5.5.1
+Version: 5.5.2
Release: 0
Summary: Provides the interface and basic tools for the KDE workspace
License: GPL-2.0
++++++ kmenuedit-5.5.1.tar.xz -> kmenuedit-5.5.2.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kmenuedit-5.5.1/CMakeLists.txt new/kmenuedit-5.5.2/CMakeLists.txt
--- old/kmenuedit-5.5.1/CMakeLists.txt 2015-12-15 11:23:34.000000000 +0100
+++ new/kmenuedit-5.5.2/CMakeLists.txt 2015-12-22 11:33:01.000000000 +0100
@@ -1,5 +1,5 @@
project(kmenuedit)
-set(PROJECT_VERSION "5.5.1")
+set(PROJECT_VERSION "5.5.2")
cmake_minimum_required(VERSION 2.8.12 FATAL_ERROR)
set(QT_MIN_VERSION "5.4.0")
1
0
Hello community,
here is the log from the commit of package kinfocenter5 for openSUSE:Factory checked in at 2016-01-03 13:25:21
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/kinfocenter5 (Old)
and /work/SRC/openSUSE:Factory/.kinfocenter5.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "kinfocenter5"
Changes:
--------
--- /work/SRC/openSUSE:Factory/kinfocenter5/kinfocenter5.changes 2015-12-29 12:56:22.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.kinfocenter5.new/kinfocenter5.changes 2016-01-03 13:25:39.000000000 +0100
@@ -1,0 +2,8 @@
+Tue Dec 22 22:35:06 UTC 2015 - hrvoje.senjan(a)gmail.com
+
+- Update to 5.5.2:
+ * Bugfix release
+ * For more details please see:
+ https://www.kde.org/announcements/plasma-5.5.2.php
+
+-------------------------------------------------------------------
Old:
----
kinfocenter-5.5.1.tar.xz
New:
----
kinfocenter-5.5.2.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ kinfocenter5.spec ++++++
--- /var/tmp/diff_new_pack.Sm0Rnm/_old 2016-01-03 13:25:40.000000000 +0100
+++ /var/tmp/diff_new_pack.Sm0Rnm/_new 2016-01-03 13:25:40.000000000 +0100
@@ -18,7 +18,7 @@
%bcond_without lang
Name: kinfocenter5
-Version: 5.5.1
+Version: 5.5.2
Release: 0
Summary: Utility that provides information about a computer system
License: GPL-2.0+
++++++ kinfocenter-5.5.1.tar.xz -> kinfocenter-5.5.2.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kinfocenter-5.5.1/CMakeLists.txt new/kinfocenter-5.5.2/CMakeLists.txt
--- old/kinfocenter-5.5.1/CMakeLists.txt 2015-12-15 11:23:09.000000000 +0100
+++ new/kinfocenter-5.5.2/CMakeLists.txt 2015-12-22 11:32:25.000000000 +0100
@@ -1,5 +1,5 @@
project(kinfocenter)
-set(PROJECT_VERSION "5.5.1")
+set(PROJECT_VERSION "5.5.2")
cmake_minimum_required(VERSION 2.8.12 FATAL_ERROR)
set(QT_MIN_VERSION "5.4.0")
1
0
Hello community,
here is the log from the commit of package khotkeys5 for openSUSE:Factory checked in at 2016-01-03 13:25:17
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/khotkeys5 (Old)
and /work/SRC/openSUSE:Factory/.khotkeys5.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "khotkeys5"
Changes:
--------
--- /work/SRC/openSUSE:Factory/khotkeys5/khotkeys5.changes 2015-12-29 12:56:17.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.khotkeys5.new/khotkeys5.changes 2016-01-03 13:25:35.000000000 +0100
@@ -1,0 +2,8 @@
+Tue Dec 22 22:35:05 UTC 2015 - hrvoje.senjan(a)gmail.com
+
+- Update to 5.5.2:
+ * Bugfix release
+ * For more details please see:
+ https://www.kde.org/announcements/plasma-5.5.2.php
+
+-------------------------------------------------------------------
Old:
----
khotkeys-5.5.1.tar.xz
New:
----
khotkeys-5.5.2.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ khotkeys5.spec ++++++
--- /var/tmp/diff_new_pack.Gj6NdF/_old 2016-01-03 13:25:35.000000000 +0100
+++ /var/tmp/diff_new_pack.Gj6NdF/_new 2016-01-03 13:25:35.000000000 +0100
@@ -18,7 +18,7 @@
%bcond_without lang
Name: khotkeys5
-Version: 5.5.1
+Version: 5.5.2
Release: 0
Summary: KDE's hotkey daemon
License: GPL-2.0+
++++++ khotkeys-5.5.1.tar.xz -> khotkeys-5.5.2.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/khotkeys-5.5.1/CMakeLists.txt new/khotkeys-5.5.2/CMakeLists.txt
--- old/khotkeys-5.5.1/CMakeLists.txt 2015-12-15 11:22:24.000000000 +0100
+++ new/khotkeys-5.5.2/CMakeLists.txt 2015-12-22 11:31:19.000000000 +0100
@@ -1,5 +1,5 @@
project(khotkeys)
-set(PROJECT_VERSION "5.5.1")
+set(PROJECT_VERSION "5.5.2")
set(PROJECT_VERSION_MAJOR 5)
cmake_minimum_required(VERSION 2.8.12 FATAL_ERROR)
1
0
Hello community,
here is the log from the commit of package kde-user-manager for openSUSE:Factory checked in at 2016-01-03 13:25:13
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/kde-user-manager (Old)
and /work/SRC/openSUSE:Factory/.kde-user-manager.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "kde-user-manager"
Changes:
--------
--- /work/SRC/openSUSE:Factory/kde-user-manager/kde-user-manager.changes 2015-12-29 12:56:11.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.kde-user-manager.new/kde-user-manager.changes 2016-01-03 13:25:31.000000000 +0100
@@ -1,0 +2,8 @@
+Tue Dec 22 22:35:04 UTC 2015 - hrvoje.senjan(a)gmail.com
+
+- Update to 5.5.2:
+ * Bugfix release
+ * For more details please see:
+ https://www.kde.org/announcements/plasma-5.5.2.php
+
+-------------------------------------------------------------------
Old:
----
user-manager-5.5.1.tar.xz
New:
----
user-manager-5.5.2.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ kde-user-manager.spec ++++++
--- /var/tmp/diff_new_pack.AJMODm/_old 2016-01-03 13:25:32.000000000 +0100
+++ /var/tmp/diff_new_pack.AJMODm/_new 2016-01-03 13:25:32.000000000 +0100
@@ -18,7 +18,7 @@
%bcond_without lang
Name: kde-user-manager
-Version: 5.5.1
+Version: 5.5.2
Release: 0
Summary: A simple system settings module to manage the users of your system
License: GPL-2.0+
++++++ user-manager-5.5.1.tar.xz -> user-manager-5.5.2.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/user-manager-5.5.1/CMakeLists.txt new/user-manager-5.5.2/CMakeLists.txt
--- old/user-manager-5.5.1/CMakeLists.txt 2015-12-15 11:36:45.000000000 +0100
+++ new/user-manager-5.5.2/CMakeLists.txt 2015-12-22 11:51:29.000000000 +0100
@@ -1,6 +1,6 @@
project(user-manager)
cmake_minimum_required(VERSION 2.8.12)
-set(PROJECT_VERSION "5.5.1")
+set(PROJECT_VERSION "5.5.2")
find_package(ECM 1.3.0 REQUIRED NO_MODULE)
set(CMAKE_MODULE_PATH ${ECM_MODULE_PATH})
1
0
Hello community,
here is the log from the commit of package kde-gtk-config5 for openSUSE:Factory checked in at 2016-01-03 13:25:08
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/kde-gtk-config5 (Old)
and /work/SRC/openSUSE:Factory/.kde-gtk-config5.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "kde-gtk-config5"
Changes:
--------
--- /work/SRC/openSUSE:Factory/kde-gtk-config5/kde-gtk-config5.changes 2015-12-29 12:56:04.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.kde-gtk-config5.new/kde-gtk-config5.changes 2016-01-03 13:25:26.000000000 +0100
@@ -1,0 +2,8 @@
+Tue Dec 22 22:35:03 UTC 2015 - hrvoje.senjan(a)gmail.com
+
+- Update to 5.5.2:
+ * Bugfix release
+ * For more details please see:
+ https://www.kde.org/announcements/plasma-5.5.2.php
+
+-------------------------------------------------------------------
Old:
----
kde-gtk-config-5.5.1.tar.xz
New:
----
kde-gtk-config-5.5.2.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ kde-gtk-config5.spec ++++++
--- /var/tmp/diff_new_pack.EYVoNd/_old 2016-01-03 13:25:27.000000000 +0100
+++ /var/tmp/diff_new_pack.EYVoNd/_new 2016-01-03 13:25:27.000000000 +0100
@@ -18,7 +18,7 @@
%bcond_without lang
Name: kde-gtk-config5
-Version: 5.5.1
+Version: 5.5.2
Release: 0
Summary: KCM Module to Configure GTK2 and GTK3 Applications Appearance Under KDE
License: LGPL-3.0+ and GPL-3.0+
++++++ kde-gtk-config-5.5.1.tar.xz -> kde-gtk-config-5.5.2.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kde-gtk-config-5.5.1/CMakeLists.txt new/kde-gtk-config-5.5.2/CMakeLists.txt
--- old/kde-gtk-config-5.5.1/CMakeLists.txt 2015-12-15 11:20:11.000000000 +0100
+++ new/kde-gtk-config-5.5.2/CMakeLists.txt 2015-12-22 11:28:13.000000000 +0100
@@ -1,5 +1,5 @@
project(kde-gtk-config)
-set(PROJECT_VERSION "5.5.1")
+set(PROJECT_VERSION "5.5.2")
cmake_minimum_required(VERSION 2.8.12)
find_package(ECM 0.0.9 REQUIRED NO_MODULE)
1
0
Hello community,
here is the log from the commit of package kde-cli-tools5 for openSUSE:Factory checked in at 2016-01-03 13:25:03
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/kde-cli-tools5 (Old)
and /work/SRC/openSUSE:Factory/.kde-cli-tools5.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "kde-cli-tools5"
Changes:
--------
--- /work/SRC/openSUSE:Factory/kde-cli-tools5/kde-cli-tools5.changes 2015-12-29 12:56:01.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.kde-cli-tools5.new/kde-cli-tools5.changes 2016-01-03 13:25:22.000000000 +0100
@@ -1,0 +2,8 @@
+Tue Dec 22 22:35:03 UTC 2015 - hrvoje.senjan(a)gmail.com
+
+- Update to 5.5.2:
+ * Bugfix release
+ * For more details please see:
+ https://www.kde.org/announcements/plasma-5.5.2.php
+
+-------------------------------------------------------------------
Old:
----
kde-cli-tools-5.5.1.tar.xz
New:
----
kde-cli-tools-5.5.2.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ kde-cli-tools5.spec ++++++
--- /var/tmp/diff_new_pack.yEaxe4/_old 2016-01-03 13:25:23.000000000 +0100
+++ /var/tmp/diff_new_pack.yEaxe4/_new 2016-01-03 13:25:23.000000000 +0100
@@ -18,7 +18,7 @@
%bcond_without lang
Name: kde-cli-tools5
-Version: 5.5.1
+Version: 5.5.2
Release: 0
Summary: Additional CLI tools for KDE applications
License: GPL-2.0+
++++++ kde-cli-tools-5.5.1.tar.xz -> kde-cli-tools-5.5.2.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kde-cli-tools-5.5.1/CMakeLists.txt new/kde-cli-tools-5.5.2/CMakeLists.txt
--- old/kde-cli-tools-5.5.1/CMakeLists.txt 2015-12-15 11:19:49.000000000 +0100
+++ new/kde-cli-tools-5.5.2/CMakeLists.txt 2015-12-22 11:27:47.000000000 +0100
@@ -1,5 +1,5 @@
project(KDE-CLI-Tools)
-set(PROJECT_VERSION "5.5.1")
+set(PROJECT_VERSION "5.5.2")
cmake_minimum_required(VERSION 2.8.12 FATAL_ERROR)
set(QT_MIN_VERSION "5.4.0")
1
0
Hello community,
here is the log from the commit of package kcm_sddm for openSUSE:Factory checked in at 2016-01-03 13:24:59
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/kcm_sddm (Old)
and /work/SRC/openSUSE:Factory/.kcm_sddm.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "kcm_sddm"
Changes:
--------
--- /work/SRC/openSUSE:Factory/kcm_sddm/kcm_sddm.changes 2015-12-29 12:55:59.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.kcm_sddm.new/kcm_sddm.changes 2016-01-03 13:25:17.000000000 +0100
@@ -1,0 +2,8 @@
+Tue Dec 22 22:35:02 UTC 2015 - hrvoje.senjan(a)gmail.com
+
+- Update to 5.5.2:
+ * Bugfix release
+ * For more details please see:
+ https://www.kde.org/announcements/plasma-5.5.2.php
+
+-------------------------------------------------------------------
Old:
----
sddm-kcm-5.5.1.tar.xz
New:
----
sddm-kcm-5.5.2.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ kcm_sddm.spec ++++++
--- /var/tmp/diff_new_pack.0PFUhC/_old 2016-01-03 13:25:17.000000000 +0100
+++ /var/tmp/diff_new_pack.0PFUhC/_new 2016-01-03 13:25:17.000000000 +0100
@@ -21,7 +21,7 @@
Summary: A sddm control module for KDE
License: GPL-2.0
Group: System/GUI/KDE
-Version: 5.5.1
+Version: 5.5.2
Release: 0
Url: https://projects.kde.org/projects/kdereview/sddm-kcm/repository
Source: sddm-kcm-%{version}.tar.xz
++++++ sddm-kcm-5.5.1.tar.xz -> sddm-kcm-5.5.2.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sddm-kcm-5.5.1/CMakeLists.txt new/sddm-kcm-5.5.2/CMakeLists.txt
--- old/sddm-kcm-5.5.1/CMakeLists.txt 2015-12-15 11:36:11.000000000 +0100
+++ new/sddm-kcm-5.5.2/CMakeLists.txt 2015-12-22 11:50:47.000000000 +0100
@@ -1,6 +1,6 @@
project(sddm-kcm)
cmake_minimum_required(VERSION 2.8.12 FATAL_ERROR)
-set(PROJECT_VERSION "5.5.1")
+set(PROJECT_VERSION "5.5.2")
set(QT_MIN_VERSION "5.4.0")
find_package(ECM 1.0.0 REQUIRED NO_MODULE)
set(CMAKE_MODULE_PATH ${ECM_MODULE_PATH} ${ECM_KDE_MODULE_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/cmake)
1
0
Hello community,
here is the log from the commit of package breeze for openSUSE:Factory checked in at 2016-01-03 13:24:54
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/breeze (Old)
and /work/SRC/openSUSE:Factory/.breeze.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "breeze"
Changes:
--------
--- /work/SRC/openSUSE:Factory/breeze/breeze.changes 2015-12-29 12:55:56.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.breeze.new/breeze.changes 2016-01-03 13:25:12.000000000 +0100
@@ -1,0 +2,8 @@
+Tue Dec 22 22:35:02 UTC 2015 - hrvoje.senjan(a)gmail.com
+
+- Update to 5.5.2:
+ * Bugfix release
+ * For more details please see:
+ https://www.kde.org/announcements/plasma-5.5.2.php
+
+-------------------------------------------------------------------
breeze4-style.changes: same change
Old:
----
breeze-5.5.1.tar.xz
New:
----
breeze-5.5.2.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ breeze.spec ++++++
--- /var/tmp/diff_new_pack.a0YPWN/_old 2016-01-03 13:25:14.000000000 +0100
+++ /var/tmp/diff_new_pack.a0YPWN/_new 2016-01-03 13:25:14.000000000 +0100
@@ -18,7 +18,7 @@
%bcond_without lang
Name: breeze
-Version: 5.5.1
+Version: 5.5.2
Release: 0
BuildRequires: cmake >= 2.8.12
BuildRequires: extra-cmake-modules >= 0.0.13
++++++ breeze4-style.spec ++++++
--- /var/tmp/diff_new_pack.a0YPWN/_old 2016-01-03 13:25:14.000000000 +0100
+++ /var/tmp/diff_new_pack.a0YPWN/_new 2016-01-03 13:25:14.000000000 +0100
@@ -17,7 +17,7 @@
Name: breeze4-style
-Version: 5.5.1
+Version: 5.5.2
Release: 0
BuildRequires: automoc4
BuildRequires: cmake >= 2.8.12
++++++ breeze-5.5.1.tar.xz -> breeze-5.5.2.tar.xz ++++++
/work/SRC/openSUSE:Factory/breeze/breeze-5.5.1.tar.xz /work/SRC/openSUSE:Factory/.breeze.new/breeze-5.5.2.tar.xz differ: char 26, line 1
1
0
Hello community,
here is the log from the commit of package bluedevil5 for openSUSE:Factory checked in at 2016-01-03 13:24:50
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/bluedevil5 (Old)
and /work/SRC/openSUSE:Factory/.bluedevil5.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "bluedevil5"
Changes:
--------
--- /work/SRC/openSUSE:Factory/bluedevil5/bluedevil5.changes 2015-12-29 12:55:53.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.bluedevil5.new/bluedevil5.changes 2016-01-03 13:25:08.000000000 +0100
@@ -1,0 +2,8 @@
+Tue Dec 22 22:35:01 UTC 2015 - hrvoje.senjan(a)gmail.com
+
+- Update to 5.5.2:
+ * Bugfix release
+ * For more details please see:
+ https://www.kde.org/announcements/plasma-5.5.2.php
+
+-------------------------------------------------------------------
Old:
----
bluedevil-5.5.1.tar.xz
New:
----
bluedevil-5.5.2.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ bluedevil5.spec ++++++
--- /var/tmp/diff_new_pack.fFwaQs/_old 2016-01-03 13:25:09.000000000 +0100
+++ /var/tmp/diff_new_pack.fFwaQs/_new 2016-01-03 13:25:09.000000000 +0100
@@ -19,7 +19,7 @@
%bcond_without lang
Name: bluedevil5
-Version: 5.5.1
+Version: 5.5.2
Release: 0
Summary: Bluetooth Manager for KDE
License: GPL-2.0+
++++++ bluedevil-5.5.1.tar.xz -> bluedevil-5.5.2.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/bluedevil-5.5.1/CMakeLists.txt new/bluedevil-5.5.2/CMakeLists.txt
--- old/bluedevil-5.5.1/CMakeLists.txt 2015-12-15 11:17:26.000000000 +0100
+++ new/bluedevil-5.5.2/CMakeLists.txt 2015-12-22 11:23:59.000000000 +0100
@@ -1,5 +1,5 @@
project(bluedevil)
-set(PROJECT_VERSION "5.5.1")
+set(PROJECT_VERSION "5.5.2")
set(PROJECT_VERSION_MAJOR 5)
cmake_minimum_required(VERSION 2.8.12)
1
0
Hello community,
here is the log from the commit of package grub2 for openSUSE:13.2:Update checked in at 2016-01-03 12:32:05
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:13.2:Update/grub2 (Old)
and /work/SRC/openSUSE:13.2:Update/.grub2.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "grub2"
Changes:
--------
New Changes file:
NO CHANGES FILE!!!
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ _link ++++++
--- /var/tmp/diff_new_pack.m6n6WH/_old 2016-01-03 12:32:23.000000000 +0100
+++ /var/tmp/diff_new_pack.m6n6WH/_new 2016-01-03 12:32:23.000000000 +0100
@@ -1 +1 @@
-<link package='grub2.4426' cicount='copy' />
+<link package='grub2.4447' cicount='copy' />
1
0
Hello community,
here is the log from the commit of package patchinfo.4452 for openSUSE:13.2:Update checked in at 2016-01-01 21:50:20
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:13.2:Update/patchinfo.4452 (Old)
and /work/SRC/openSUSE:13.2:Update/.patchinfo.4452.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "patchinfo.4452"
Changes:
--------
New Changes file:
NO CHANGES FILE!!!
New:
----
_patchinfo
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ _patchinfo ++++++
<patchinfo incident="4452">
<packager>AndreasStieger</packager>
<issue tracker="cve" id="CVE-2015-8614"></issue>
<issue tracker="bnc" id="959993">VUL-0: CVE-2015-8614: claws-mail: no bounds check could lead to stack overflow</issue>
<category>security</category>
<rating>moderate</rating>
<summary>Security update for claws-mail</summary>
<description>This update for claws-mail fixes the following security issue:
* CVE-2015-8614: buffer overrun issues in Japanese character set conversion code could allow an adversary to remotely crash claws and potentially have further unspecified impact (boo#959993)</description>
</patchinfo>
1
0
Hello community,
here is the log from the commit of package claws-mail for openSUSE:13.2:Update checked in at 2016-01-01 21:50:15
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:13.2:Update/claws-mail (Old)
and /work/SRC/openSUSE:13.2:Update/.claws-mail.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "claws-mail"
Changes:
--------
New Changes file:
NO CHANGES FILE!!!
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ _link ++++++
--- /var/tmp/diff_new_pack.UbsYXr/_old 2016-01-01 21:50:26.000000000 +0100
+++ /var/tmp/diff_new_pack.UbsYXr/_new 2016-01-01 21:50:26.000000000 +0100
@@ -1 +1 @@
-<link package='claws-mail.3126' cicount='copy' />
+<link package='claws-mail.4452' cicount='copy' />
1
0
Hello community,
here is the log from the commit of package claws-mail for openSUSE:13.1:Update checked in at 2016-01-01 21:50:12
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:13.1:Update/claws-mail (Old)
and /work/SRC/openSUSE:13.1:Update/.claws-mail.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "claws-mail"
Changes:
--------
New Changes file:
NO CHANGES FILE!!!
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ _link ++++++
--- /var/tmp/diff_new_pack.X1rnxG/_old 2016-01-01 21:50:24.000000000 +0100
+++ /var/tmp/diff_new_pack.X1rnxG/_new 2016-01-01 21:50:24.000000000 +0100
@@ -1 +1 @@
-<link package='claws-mail.3051' cicount='copy' />
+<link package='claws-mail.4452' cicount='copy' />
1
0
Hello community,
here is the log from the commit of package claws-mail.4452 for openSUSE:13.1:Update checked in at 2016-01-01 21:50:08
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:13.1:Update/claws-mail.4452 (Old)
and /work/SRC/openSUSE:13.1:Update/.claws-mail.4452.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "claws-mail.4452"
Changes:
--------
New Changes file:
--- /dev/null 2015-12-29 16:09:11.912035506 +0100
+++ /work/SRC/openSUSE:13.1:Update/.claws-mail.4452.new/claws-mail.changes 2016-01-01 21:50:20.000000000 +0100
@@ -0,0 +1,1884 @@
+-------------------------------------------------------------------
+Thu Dec 24 03:08:30 UTC 2015 - badshah400(a)gmail.com
+
+- Add claws-mail-dont-overshoot-output-buffer.patch to prevent
+ buffer overrun issues (boo#959993, CVE-2015-8614, claws#3557).
+
+-------------------------------------------------------------------
+Mon Aug 4 00:40:21 UTC 2014 - malcolmlewis(a)opensuse.org
+
+- Update to version 3.10.1 (bnc#870858):
+ + Add an account preference to allow automatically accepting
+ unknown and changed SSL certificates, if they're valid (that
+ is, if the root CA is trusted by the distro).
+ + RFE 3196, 'When changing quicksearch Search Type, set focus to
+ search input box'.
+ + PGP/Core plugin: Generate 2048 bit RSA keys.
+ + Major code cleanup.
+ + Extended claws-mail.desktop with Compose and Receive actions.
+ + Fix GConf use with newer Glib.
+ + Fix the race fix, now preventing the compose window to be
+ closed.
+ + Fix "File (null) doesn't exist" error dialog, when attaching a
+ non-existing file via --attach
+ + Fix spacing in Folderview if the font is far from the system
+ font.
+ + RSSyl:
+ - When parsing RSS 2.0, ignore tags with a namespace prefix.
+ - Check for existence of xmlNode namespace, to prevent NULL
+ pointer crashes.
+ + Bugs fixed: claws#2728, claws#2981, claws#3170, claws#3179,
+ claws#3201, deb#730050.
+ + Updated translations.
+- Drop claws-mail-3.10.0_uninitialized_variable_git51af19b.patch as
+ fixed upstream.
+
+-------------------------------------------------------------------
+Mon May 26 16:11:13 UTC 2014 - mrueckert(a)suse.de
+
+- fix tarball url:
+ - not all occurences of the version were using the macro
+ - wrong SF project name
+
+-------------------------------------------------------------------
+Mon May 26 13:56:35 UTC 2014 - mrueckert(a)suse.de
+
+- added claws-mail-3.10.0_uninitialized_variable_git51af19b.patch:
+ Patch taken from upstream. Fixes an uninitialized variable use.
+
+-------------------------------------------------------------------
+Mon May 26 12:52:29 UTC 2014 - mrueckert(a)suse.de
+
+- update to 3.10.0 - (CVE-2014-2576)
+ - Complete SSL certificate chains are now saved, and if built with
+ Libetpan 1.4.1, the IMAP SSL connection's certificate chain is made
+ available. Both of these allow correct certificate verification
+ instead of a bogus 'No certificate issuer found' status.
+ - Auto-configuration of account email servers, based on SRV records,
+ is now possible. (GLib >= 2.22 is required.)
+ - Added a preference to avoid automatically drafting emails that are
+ to be sent encrypted, (Configuration/Preferences/Compose/Writing).
+ - Messages saved as Drafts are now saved as New, highlighting the
+ Drafts folder, in order to draw the attention to unfinished mails
+ there.
+ - It is now possible to add a 'Replace signature' button to the
+ Compose window toolbar.
+ - Quotation wrapping and undo/redo in the Compose window has been
+ improved.
+ - 'Reply to all' now excludes your own address.
+ - The 'Generate X-Mailer header' option has been renamed 'Add user
+ agent header' and applies to both X-Mailer and X-Newsreader headers.
+ - Added hidden preferences, 'address_search_wildcard' and
+ 'folder_search_wildcard', to choose between matching from start of
+ the folder name/address or any part of the name. (Activating these
+ options restores the previous behaviour.)
+ - Added hidden preference 'enable_avatars' to control the internal
+ capture/render process, and which allows disabling it by external
+ plugins for example.
+ - 'Check for new folders' now only updates the folder list, not
+ updating the contents of folders. If needed, it can be followed by
+ 'Check for new messages'
+ - When using Redirect, the redirecting account's address is used in
+ the SMTP MAIL FROM instead of the original sender's address.
+ - NEW: Libravatar plugin, which displays avatars from
+ https://www.libravatar.org/
+ - Added support for an arbitrary number and sources of 'avatars' and
+ images for email senders, and migrated Face and X-Face headers.
+ - Avatars are now included when printing mails.
+ - The GPG keyring can now be used as the source for address auto-
+ completion.
+ - The vCalendar and RSSyl plugins now have an option to disable SSL
+ certificate verification (and check them by default).
+ - The ClamAV plugin now pops up an error message only once instead of
+ repeatedly
+ - Updated the man page and the manual.
+ - Updated Brazilian Portuguese, British English, Czech, Dutch,
+ Finnish, French, Hebrew, Hungarian, Indonesian, Lithuanian, Slovak,
+ Spanish, and Swedish translations.
+ - Added Esperanto translation.
+ - Bug fixes:
+ claws#1644, claws#2119, claws#2145, claws#2179, claws#2238,
+ claws#2389, claws#2398, claws#2447, claws#2643, claws#2875,
+ claws#2991, claws#3020, claws#3055, claws#3038, claws#3039,
+ claws#3040, claws#3050, claws#3094, claws#3100, claws#3105,
+ claws#3106, claws#3107, claws#3116, claws#3117, claws#3120,
+ claws#3131, claws#3138, claws#3139, claws#3145, claws#3146,
+ claws#3147, claws#3148, claws#3150, claws#3155, claws#3169,
+ claws#3964
+- package the provided appdate xml file
+- enabled more features in the notification plugin:
+ new buildRequires: pkgconfig(libnotify) libcanberra-devel >= 0.6
+
+-------------------------------------------------------------------
+Mon Dec 16 19:07:49 UTC 2013 - zaitor(a)opensuse.org
+
+- Update to version 3.9.3:
+ + The TAB address completion in the Compose window now matches
+ any part of the address and not just the beginning.
+ + When copying or moving a message, the type-ahead search now
+ matches any part of a folder name and not just the beginning.
+ + It is now possible to replace the current signature in the
+ Compose window by using the '/Message/Replace signature' menu
+ item.
+ + It is now possible to disable the 'Subject is empty' warning
+ dialogue. See the option 'Warn when Subject is empty' option on
+ the '/Configuration/Preferences/Mail handling/Sending' page.
+ + When sending messages, if the hostname cannot be determined,
+ fallback to 'localhost' rather than 'unknown', as the latter is
+ rejected by some servers.
+ + Added better handling of messages from broken mailers, such as
+ yahoo groups.
+ + PDF plugin: the minimum required version of poppler is 0.12.0.
+ + PGP/* plugin: long key IDs are now displayed in the dialogues
+ instead of short IDs.
+ + PGP/* plugin: The automatic signature check is now
+ non-blocking.
+ + Python plugin: can now access accounts, mailboxes, folder
+ properties.
+ + vCalendar plugin: webcals:// URLs are now treated as https://
+ + Support for Maemo has been removed.
+ + Bugs fixed: claws#2132, claws#2210, claws#2794, claws#2923,
+ claws#2940, claws#2954, claws#2957, claws#2960, claws#2961,
+ claws#2964, claws#2979, claws#2982, claws#2986, claws#2989,
+ claws#2994, claws#2995, claws#3002, claws#3004, claws#3009,
+ claws#3011, claws#3021, deb#711864.
+ + Quote all specials in name as defined on RFC, see
+ http://tools.ietf.org/html/rfc5322#section-3.2.3.
+ + Fix sensitivity and state of 'hide read threads'.
+ + Fancy plugin: disable DNS Prefetching when 'Enable loading of
+ remote content' is switched off.
+ + Bogofilter plugin: insert X-Bogosity header like the option
+ says, not X-Claws-Bogosity header.
+ + Updated translations.
+- Drop claws-mail-missing-include.patch, fixed upstream.
+
+-------------------------------------------------------------------
+Sun Nov 10 10:35:29 UTC 2013 - dimstar(a)opensuse.org
+
+- Drop claws-mail-fix-address-quotes.patch: This patch on its own
+ has negative side-effects.
+
+-------------------------------------------------------------------
+Wed Nov 6 01:21:22 UTC 2013 - malcolmlewis(a)opensuse.org
+
+- Add claws-mail-fix-address-quotes.patch: Fix quotes all
+ addresses which need quoting just before writting the
+ message to the queue folder, claws#2210.
+
+-------------------------------------------------------------------
+Thu Sep 5 17:13:51 CEST 2013 - mls(a)suse.de
+
+- Add libperl_requires, as we link against libperl and thus
+ need a specific version of perl.
+
+-------------------------------------------------------------------
+Thu Jun 20 15:24:47 UTC 2013 - malcolmlewis(a)opensuse.org
+
+- Update to version 3.9.2 (bnc#816881).
+ + New big icon for compose windows.
+ + Never decode multipart/ or message/ parts, as RFC states.
+ + Add missing check for libperl.
+ + Fix check for libsoup - it is not obligatory.
+ + Do not try to destroy a NULL session after an unsuccesful NNTP
+ connect attempt.
+ + The extraheaderrc format doesn't allow data after the header
+ colon. Other OSes may insert extra characters other than \n,
+ so, remove them all.
+ + Fix undoing file insertion.
+ + Fix check for python.
+ + Fix detection of account in --compose and --compose-from-file
+ where the From value contains a name + email.
+ + Bugs fixed: claws#2923, claws#2927.
+
+-------------------------------------------------------------------
+Wed May 15 09:26:24 UTC 2013 - dimstar(a)opensuse.org
+
+- Also obsolete claws-mail-extra-plugins-devel, as the plugins
+ package was merged upstream.
++++ 1687 more lines (skipped)
++++ between /dev/null
++++ and /work/SRC/openSUSE:13.1:Update/.claws-mail.4452.new/claws-mail.changes
New:
----
claws-mail-3.10.1.tar.bz2
claws-mail-dont-overshoot-output-buffer.patch
claws-mail.changes
claws-mail.spec
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ claws-mail.spec ++++++
#
# spec file for package claws-mail
#
# 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
# 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/
#
%define gtk3_ready 0
%if !%{gtk3_ready}
%define favor_gtk2 1
%endif
Name: claws-mail
Version: 3.10.1
Release: 0
Url: http://www.claws-mail.org/
Summary: A lightweight and highly configurable email client
License: GPL-3.0+
Group: Productivity/Networking/Email/Clients
Source0: http://sourceforge.net/projects/claws-mail/files/Claws%20Mail/%{version}/cl…
# PATCH-FIX-UPSTREAM claws-mail-dont-overshoot-output-buffer.patch boo#959993 CVE-2015-8614 claws#3557 badshah400(a)gmail.com -- Do not overshoot the output buffer
Patch0: claws-mail-dont-overshoot-output-buffer.patch
BuildRequires: NetworkManager-devel
BuildRequires: compface
BuildRequires: db-devel
BuildRequires: docbook-utils
BuildRequires: enchant-devel
BuildRequires: fdupes
BuildRequires: gettext
BuildRequires: gmp-devel
BuildRequires: gpgme-devel
%if 0%{?favor_gtk2}
BuildRequires: gtk2-devel
%else
BuildRequires: gtk3-devel
%endif
BuildRequires: libarchive-devel
BuildRequires: libcanberra-devel >= 0.6
BuildRequires: libcurl-devel
BuildRequires: libetpan-devel >= 0.57
BuildRequires: libgcrypt-devel
BuildRequires: libpoppler-glib-devel
BuildRequires: libwebkit-devel
BuildRequires: openldap2-devel
BuildRequires: pilot-link-devel
BuildRequires: pkgconfig
BuildRequires: python-gtk-devel
BuildRequires: startup-notification-devel
BuildRequires: update-desktop-files
BuildRequires: pkgconfig(dbus-1) >= 0.60
BuildRequires: pkgconfig(dbus-glib-1) >= 0.60
BuildRequires: pkgconfig(gnutls) >= 2.2
BuildRequires: pkgconfig(libgdata) >= 0.6
BuildRequires: pkgconfig(libnotify)
BuildRequires: pkgconfig(libsoup-2.4)
BuildRequires: pkgconfig(sm)
BuildRoot: %{_tmppath}/%{name}-%{version}-build
Requires: pinentry-gtk2
%{?libperl_requires}
Recommends: %{name}-lang
Provides: sylpheed-claws = %{version}
Obsoletes: sylpheed-claws < %{version}
# The extra-plugin package was merged with version 3.9.1
Obsoletes: claws-mail-extra-plugins < %{version}
Provides: claws-mail-extra-plugins = %{version}
# The extra-plugin package was merged with version 3.9.1, also merge the -lang package
Obsoletes: claws-mail-extra-plugins-lang < %{version}
Provides: claws-mail-extra-plugins-lang = %{version}
%description
Claws Mail (previously known as Sylpheed-Claws) is a lightweight and
highly configurable email client and news reader based on the GTK+ GUI
toolkit, it runs on the X Window System.
Claws Mail is free software distributed under the GNU GPL.
To run Claws Mail use 'claws-mail' on the command line.
When claws-mail is executed for the first time a configuration 'Wizard'
will appear prompting you for the minimum information necessary to
create a new account.
%package devel
Summary: A lightweight and highly configurable email client
License: GPL-2.0+
Group: Development/Libraries/Other
Provides: claws-mail:/usr/include/claws-mail/main.h
# The extra-plugin package was merged with version 3.9.1; as such, also the -devel package merged
Obsoletes: claws-mail-extra-plugins-devel < %{version}
Provides: claws-mail-extra-plugins-devel = %{version}
Requires: claws-mail = %{version}
Requires: enchant-devel
Requires: glib2-devel
Requires: gnutls-devel
Requires: gpgme-devel
Requires: gtk2-devel
Requires: libetpan-devel
Requires: openldap2-devel
%description devel
Claws Mail (previously known as Sylpheed-Claws) is a lightweight and
highly configurable email client and news reader based on the GTK+ GUI
toolkit, it runs on the X Window System.
Claws Mail is free software distributed under the GNU GPL.
To run Claws Mail use 'claws-mail' on the command line.
When claws-mail is executed for the first time a configuration 'Wizard'
will appear prompting you for the minimum information necessary to
create a new account.
%lang_package
%prep
%setup -q
%patch0 -p1
%build
%configure \
--docdir=%{_datadir}/claws-mail \
--disable-static \
%if !(0%{?favor_gtk2})
--enable-gtk3 \
%endif
--enable-ldap \
--enable-ipv6 \
--enable-jpilot \
--enable-acpi_notifier-plugin \
--enable-address_keeper-plugin \
--enable-archive-plugin \
--enable-att_remover-plugin \
--enable-attachwarner-plugin \
--enable-bogofilter-plugin \
--enable-bsfilter-plugin \
--enable-clamd-plugin \
--enable-fancy-plugin \
--enable-fetchinfo-plugin \
--enable-gdata-plugin \
--enable-mailmbox-plugin \
--enable-newmail-plugin \
--enable-notification-plugin \
--enable-pdf_viewer-plugin \
--enable-perl-plugin \
--enable-python-plugin \
--enable-pgpcore-plugin \
--enable-pgpmime-plugin \
--enable-pgpinline-plugin \
--enable-rssyl-plugin \
--enable-smime-plugin \
--enable-spamassassin-plugin \
--enable-spam_report-plugin \
--enable-tnef_parse-plugin \
--enable-vcalendar-plugin \
--disable-demo-plugin \
--enable-crash-dialog \
--enable-startup-notification \
--enable-compface \
--enable-libetpan
make %{?_smp_mflags}
%install
%makeinstall
# Clean up
rm %{buildroot}%{_libdir}/claws-mail/plugins/*.la
# install desktop file
%suse_update_desktop_file claws-mail
# we want to have the icon installed in /usr/share/pixmaps
mkdir -p %{buildroot}%{_datadir}/pixmaps/
cp claws-mail-64x64.png %{buildroot}%{_datadir}/pixmaps/
# Tools
cp -r tools %{buildroot}%{_datadir}/%{name}
rm %{buildroot}%{_datadir}/claws-mail/tools/Makefile*
# The ca-certificates are meant for windows. On Linux, it is not used and should not be distributed.
rm %{buildroot}%{_datadir}/claws-mail/tools/ca-certificates.crt
mv %{buildroot}%{_datadir}/claws-mail/tools/README ./README.tools
# fixing permissions
chmod 755 %{buildroot}%{_datadir}/claws-mail/tools/*
chmod 644 %{buildroot}%{_datadir}/claws-mail/tools/multiwebsearch.conf
%find_lang %{name} %{?no_lang_C}
%fdupes %{buildroot}%{_libdir}/%{name}/plugins/
install -d %{buildroot}%{_sysconfdir}/skel/.claws-mail/
cat <<EOF > %{buildroot}%{_sysconfdir}/skel/.claws-mail/clawsrc
[Plugins_GTK2]
%{_libdir}/claws-mail/plugins/pgpcore.so
%{_libdir}/claws-mail/plugins/pgpinline.so
%{_libdir}/claws-mail/plugins/pgpmime.so
%{_libdir}/claws-mail/plugins/smime.so
EOF
%if 0%{?suse_version} > 1130
%post
%desktop_database_post
%icon_theme_cache_post
%endif
%if 0%{?suse_version} > 1130
%postun
%desktop_database_postun
%icon_theme_cache_postun
%endif
%files
%defattr(-,root,root)
%doc AUTHORS COPYING ChangeLog NEWS README README.tools TODO
%{_bindir}/claws-mail
%{_bindir}/sylpheed-claws
%dir %{_libdir}/claws-mail
%dir %{_libdir}/claws-mail/plugins
%{_libdir}/claws-mail/plugins/*.so
%{_libdir}/claws-mail/plugins/*.deps
%{_datadir}/applications/claws-mail.desktop
%{_datadir}/icons/hicolor/*/apps/claws-mail.png
%{_datadir}/pixmaps/claws-mail-64x64.png
%dir %{_datadir}/claws-mail
%doc %{_datadir}/claws-mail/RELEASE_NOTES
%doc %{_datadir}/claws-mail/manual/
%dir %{_datadir}/claws-mail/tools
%{_datadir}/claws-mail/tools/*.sh
%{_datadir}/claws-mail/tools/*.pl
%{_datadir}/claws-mail/tools/*.py
%{_datadir}/claws-mail/tools/*.conf
%{_datadir}/claws-mail/tools/tb2claws-mail
%{_datadir}/claws-mail/tools/u*
%{_datadir}/claws-mail/tools/kdeservicemenu/
%{_mandir}/man1/claws-mail.1.gz
%config(noreplace) %{_sysconfdir}/skel/.claws-mail/
%dir %{_datadir}/appdata/
%{_datadir}/appdata/claws-mail.appdata.xml
%files devel
%defattr(-,root,root)
%{_includedir}/claws-mail/
%{_libdir}/pkgconfig/claws-mail.pc
%files lang -f %{name}.lang
%changelog
++++++ claws-mail-dont-overshoot-output-buffer.patch ++++++
http://www.thewildbeast.co.uk/claws-mail/bugzilla/show_bug.cgi?id=3557
>From d390fa07f5548f3173dd9cc13b233db5ce934c82 Mon Sep 17 00:00:00 2001
From: Colin Leroy <colin(a)colino.net>
Date: Wed, 4 Nov 2015 22:40:32 +0100
Subject: [PATCH] Make sure we don't run out of the output buffer. Maybe fixes
bug #3557
---
src/codeconv.c | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/src/codeconv.c b/src/codeconv.c
index 42ac01c..39e259f 100644
--- a/src/codeconv.c
+++ b/src/codeconv.c
@@ -155,10 +155,10 @@ void codeconv_set_strict(gboolean mode)
static gint conv_jistoeuc(gchar *outbuf, gint outlen, const gchar *inbuf)
{
const guchar *in = inbuf;
- guchar *out = outbuf;
+ gchar *out = outbuf;
JISState state = JIS_ASCII;
- while (*in != '\0') {
+ while (*in != '\0' && (out - outbuf) > outlen - 3) {
if (*in == ESC) {
in++;
if (*in == '$') {
@@ -291,10 +291,10 @@ static gint conv_jis_hantozen(guchar *outbuf, guchar jis_code, guchar sound_sym)
static gint conv_euctojis(gchar *outbuf, gint outlen, const gchar *inbuf)
{
const guchar *in = inbuf;
- guchar *out = outbuf;
+ gchar *out = outbuf;
JISState state = JIS_ASCII;
- while (*in != '\0') {
+ while (*in != '\0' && (out - outbuf) < outlen - 3) {
if (IS_ASCII(*in)) {
K_OUT();
*out++ = *in++;
@@ -380,9 +380,9 @@ static gint conv_euctojis(gchar *outbuf, gint outlen, const gchar *inbuf)
static gint conv_sjistoeuc(gchar *outbuf, gint outlen, const gchar *inbuf)
{
const guchar *in = inbuf;
- guchar *out = outbuf;
+ gchar *out = outbuf;
- while (*in != '\0') {
+ while (*in != '\0' && (out - outbuf) < outlen - 3) {
if (IS_ASCII(*in)) {
*out++ = *in++;
} else if (issjiskanji1(*in)) {
--
1.7.10.4
1
0
Hello community,
here is the log from the commit of package pdns for openSUSE:Factory checked in at 2016-01-01 19:48:56
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/pdns (Old)
and /work/SRC/openSUSE:Factory/.pdns.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "pdns"
Changes:
--------
--- /work/SRC/openSUSE:Factory/pdns/pdns.changes 2015-09-03 18:12:20.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.pdns.new/pdns.changes 2016-01-01 19:51:21.000000000 +0100
@@ -1,0 +2,28 @@
+Tue Nov 3 16:02:55 UTC 2015 - michael(a)stroeder.com
+
+- update to 3.4.7
+
+Bug fixes:
+* Ignore invalid/empty TKEY and TSIG records (Christian Hofstaedtler)
+* Don't reply to truncated queries (Christian Hofstaedtler)
+* don't log out-of-zone ents during AXFR in (Kees Monshouwer)
+* Prevent XSS by escaping user input. Thanks to Pierre Jaury and Damien
+ Cauquil at Sysdream for pointing this out.
+* Handle NULL and boolean properly in gPGSql (Aki Tuomi)
+* Improve negative caching (Kees Monshouwer)
+* Do not divide timeout twice (Aki Tuomi)
+* Correctly sort records with a priority.
+
+Improvements:
+* Direct query answers and correct zone-rectification in the GeoIP
+backend (Aki Tuomi)
+* Use token names to identify PKCS#11 keys (Aki Tuomi)
+* Fix typo in an error message (Arjen Zonneveld)
+* limit NSEC3 iterations in bindbackend (Kees Monshouwer)
+* Initialize minbody (Aki Tuomi)
+
+New features:
+* OPENPGPKEY record-type (James Cloos and Kees Monshouwer)
+* add global soa-edit settings (Kees Monshouwer)
+
+-------------------------------------------------------------------
Old:
----
pdns-3.4.6.tar.bz2
New:
----
pdns-3.4.7.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ pdns.spec ++++++
--- /var/tmp/diff_new_pack.zOYUmW/_old 2016-01-01 19:51:23.000000000 +0100
+++ /var/tmp/diff_new_pack.zOYUmW/_new 2016-01-01 19:51:23.000000000 +0100
@@ -17,11 +17,11 @@
Name: pdns
-Version: 3.4.6
+Version: 3.4.7
Release: 0
#
%define pkg_name pdns
-%define pkg_version 3.4.6
+%define pkg_version 3.4.7
%define polarssl_version 1.3.2
#
%define home %{_var}/lib/pdns
++++++ pdns-3.4.6.tar.bz2 -> pdns-3.4.7.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pdns-3.4.6/build-scripts/redhat/pdns-server-test.spec new/pdns-3.4.7/build-scripts/redhat/pdns-server-test.spec
--- old/pdns-3.4.6/build-scripts/redhat/pdns-server-test.spec 2015-08-27 15:17:34.000000000 +0200
+++ new/pdns-3.4.7/build-scripts/redhat/pdns-server-test.spec 2015-11-03 15:36:48.000000000 +0100
@@ -9,7 +9,7 @@
Epoch: 0
License: GPL
Group: System/Servers
-Source: http://downloads.powerdns.com/releases/pdns-3.4.6.tar.bz2
+Source: http://downloads.powerdns.com/releases/pdns-3.4.7.tar.bz2
BuildRequires: autoconf automake
BuildRequires: gcc gcc-c++
@@ -30,7 +30,7 @@
PowerDNS testbuild
%prep
-%setup -q -n pdns-3.4.6
+%setup -q -n pdns-3.4.7
%build
%configure \
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pdns-3.4.6/configure new/pdns-3.4.7/configure
--- old/pdns-3.4.6/configure 2015-08-27 15:17:47.000000000 +0200
+++ new/pdns-3.4.7/configure 2015-11-03 15:37:00.000000000 +0100
@@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for pdns 3.4.6.
+# Generated by GNU Autoconf 2.69 for pdns 3.4.7.
#
#
# Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc.
@@ -587,8 +587,8 @@
# Identity of this package.
PACKAGE_NAME='pdns'
PACKAGE_TARNAME='pdns'
-PACKAGE_VERSION='3.4.6'
-PACKAGE_STRING='pdns 3.4.6'
+PACKAGE_VERSION='3.4.7'
+PACKAGE_STRING='pdns 3.4.7'
PACKAGE_BUGREPORT=''
PACKAGE_URL=''
@@ -1470,7 +1470,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 pdns 3.4.6 to adapt to many kinds of systems.
+\`configure' configures pdns 3.4.7 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1540,7 +1540,7 @@
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of pdns 3.4.6:";;
+ short | recursive ) echo "Configuration of pdns 3.4.7:";;
esac
cat <<\_ACEOF
@@ -1740,7 +1740,7 @@
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-pdns configure 3.4.6
+pdns configure 3.4.7
generated by GNU Autoconf 2.69
Copyright (C) 2012 Free Software Foundation, Inc.
@@ -2347,7 +2347,7 @@
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
-It was created by pdns $as_me 3.4.6, which was
+It was created by pdns $as_me 3.4.7, which was
generated by GNU Autoconf 2.69. Invocation command line was
$ $0 $@
@@ -3170,7 +3170,7 @@
# Define the identity of the package.
PACKAGE='pdns'
- VERSION='3.4.6'
+ VERSION='3.4.7'
cat >>confdefs.h <<_ACEOF
@@ -21192,7 +21192,7 @@
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
-This file was extended by pdns $as_me 3.4.6, which was
+This file was extended by pdns $as_me 3.4.7, which was
generated by GNU Autoconf 2.69. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -21258,7 +21258,7 @@
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\
-pdns config.status 3.4.6
+pdns config.status 3.4.7
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/pdns-3.4.6/configure.ac new/pdns-3.4.7/configure.ac
--- old/pdns-3.4.6/configure.ac 2015-08-27 15:17:34.000000000 +0200
+++ new/pdns-3.4.7/configure.ac 2015-11-03 15:36:48.000000000 +0100
@@ -1,7 +1,7 @@
AC_PREREQ([2.61])
dnl The following lines may be patched by set-version-auth.
-AC_INIT([pdns], [3.4.6])
+AC_INIT([pdns], [3.4.7])
AC_SUBST([DIST_HOST], [jenkins(a)autotest.powerdns.com]
dnl End patch area.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pdns-3.4.6/debian-pdns/changelog new/pdns-3.4.7/debian-pdns/changelog
--- old/pdns-3.4.6/debian-pdns/changelog 2015-08-27 15:17:34.000000000 +0200
+++ new/pdns-3.4.7/debian-pdns/changelog 2015-11-03 15:36:48.000000000 +0100
@@ -1,4 +1,4 @@
-pdns (3.4.6-1) unstable; urgency=medium
+pdns (3.4.7-1) unstable; urgency=medium
* fill in the blanks
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pdns-3.4.6/modules/bindbackend/bindbackend2.hh new/pdns-3.4.7/modules/bindbackend/bindbackend2.hh
--- old/pdns-3.4.6/modules/bindbackend/bindbackend2.hh 2015-08-24 11:11:59.000000000 +0200
+++ new/pdns-3.4.7/modules/bindbackend/bindbackend2.hh 2015-11-02 13:32:28.000000000 +0100
@@ -39,6 +39,7 @@
#include "pdns/lock.hh"
#include "pdns/misc.hh"
#include "pdns/dnsbackend.hh"
+#include "pdns/logger.hh"
#include "pdns/namespaces.hh"
using namespace ::boost::multi_index;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pdns-3.4.6/modules/bindbackend/binddnssec.cc new/pdns-3.4.7/modules/bindbackend/binddnssec.cc
--- old/pdns-3.4.6/modules/bindbackend/binddnssec.cc 2015-06-09 14:28:57.000000000 +0200
+++ new/pdns-3.4.7/modules/bindbackend/binddnssec.cc 2015-11-02 13:32:28.000000000 +0100
@@ -108,16 +108,19 @@
getDomainMetadata(zname, "NSEC3PARAM", meta);
if(!meta.empty())
value=*meta.begin();
-
- if(value.empty()) { // "no NSEC3"
- return false;
- }
-
+ else
+ return false; // "no NSEC3"
+
+ static int maxNSEC3Iterations=::arg().asNum("max-nsec3-iterations");
if(ns3p) {
NSEC3PARAMRecordContent* tmp=dynamic_cast<NSEC3PARAMRecordContent*>(DNSRecordContent::mastermake(QType::NSEC3PARAM, 1, value));
*ns3p = *tmp;
delete tmp;
}
+ if (ns3p->d_iterations > maxNSEC3Iterations) {
+ ns3p->d_iterations = maxNSEC3Iterations;
+ L<<Logger::Error<<"Number of NSEC3 iterations for zone '"<<zname<<"' is above 'max-nsec3-iterations'. Value adjusted to: "<<maxNSEC3Iterations<<endl;
+ }
return true;
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pdns-3.4.6/modules/geoipbackend/geoipbackend.cc new/pdns-3.4.7/modules/geoipbackend/geoipbackend.cc
--- old/pdns-3.4.6/modules/geoipbackend/geoipbackend.cc 2015-06-09 14:28:57.000000000 +0200
+++ new/pdns-3.4.7/modules/geoipbackend/geoipbackend.cc 2015-09-29 16:50:32.000000000 +0200
@@ -4,14 +4,16 @@
#include <glob.h>
pthread_rwlock_t GeoIPBackend::s_state_lock=PTHREAD_RWLOCK_INITIALIZER;
+typedef map<string, string> service_map_t;
+typedef map<string, vector<DNSResourceRecord> > record_map_t;
class GeoIPDomain {
public:
int id;
string domain;
int ttl;
- map<string, string> services;
- map<string, vector<DNSResourceRecord> > records;
+ service_map_t services;
+ record_map_t records;
};
static vector<GeoIPDomain> s_domains;
@@ -128,6 +130,48 @@
dom.services[service->first.as<string>()] = service->second.as<string>();
}
+ // rectify the zone, first static records
+ BOOST_FOREACH(record_map_t::value_type& item, dom.records) {
+ // ensure we have parent in records
+ string name = item.first;
+ while(chopOff(name) && endsOn(name, dom.domain)) {
+ if (dom.records.find(name) == dom.records.end()) {
+ DNSResourceRecord rr;
+ vector<DNSResourceRecord> rrs;
+ rr.domain_id = dom.id;
+ rr.ttl = dom.ttl;
+ rr.qname = name;
+ rr.qtype = "NULL";
+ rr.content = "";
+ rr.auth = 1;
+ rr.d_place = DNSResourceRecord::ANSWER;
+ rrs.push_back(rr);
+ std::swap(dom.records[name], rrs);
+ }
+ }
+ }
+
+ // then services
+ BOOST_FOREACH(service_map_t::value_type& item, dom.services) {
+ // ensure we have parent in records
+ string name = item.first;
+ while(chopOff(name) && endsOn(name, dom.domain)) {
+ if (dom.records.find(name) == dom.records.end()) {
+ DNSResourceRecord rr;
+ vector<DNSResourceRecord> rrs;
+ rr.domain_id = dom.id;
+ rr.ttl = dom.ttl;
+ rr.qname = name;
+ rr.qtype = "NULL";
+ rr.content = "";
+ rr.auth = 1;
+ rr.d_place = DNSResourceRecord::ANSWER;
+ rrs.push_back(rr);
+ std::swap(dom.records[name], rrs);
+ }
+ }
+ }
+
tmp_domains.push_back(dom);
}
@@ -188,8 +232,6 @@
return;
}
- if (!(qtype == QType::ANY || qtype == QType::CNAME)) return;
-
string ip = "0.0.0.0";
bool v6 = false;
if (pkt_p != NULL) {
@@ -203,6 +245,21 @@
format = format2str(format, ip, v6);
+ // see if the record can be found
+ if (dom.records.count(format)) { // return static value
+ record_map_t::iterator i = dom.records.find(format);
+ BOOST_FOREACH(DNSResourceRecord rr, i->second) {
+ if (qtype == QType::ANY || rr.qtype == qtype) {
+ rr.scopeMask = (v6 ? 128 : 32);
+ d_result.push_back(rr);
+ d_result.back().qname = qdomain;
+ }
+ }
+ return;
+ }
+
+ if (!(qtype == QType::ANY || qtype == QType::CNAME)) return;
+
DNSResourceRecord rr;
rr.domain_id = dom.id;
rr.qtype = QType::CNAME;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pdns-3.4.6/modules/gpgsqlbackend/spgsql.cc new/pdns-3.4.7/modules/gpgsqlbackend/spgsql.cc
--- old/pdns-3.4.6/modules/gpgsqlbackend/spgsql.cc 2015-06-09 14:28:57.000000000 +0200
+++ new/pdns-3.4.7/modules/gpgsqlbackend/spgsql.cc 2015-09-15 12:04:49.000000000 +0200
@@ -166,8 +166,16 @@
return false;
}
- for(int i=0;i<PQnfields(d_result);i++)
- row.push_back(PQgetvalue(d_result,d_count,i) ?: "");
+ for(int i=0;i<PQnfields(d_result);i++) {
+ if (PQgetisnull(d_result, d_count, i)) {
+ row.push_back("");
+ } else if (PQftype(d_result, i) == 16) { // BOOLEAN
+ char *val = PQgetvalue(d_result, d_count, i);
+ row.push_back(val[0] == 't' ? "1" : "0");
+ } else {
+ row.push_back(string(PQgetvalue(d_result, d_count, i)));
+ }
+ }
d_count++;
return true;
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pdns-3.4.6/modules/remotebackend/httpconnector.cc new/pdns-3.4.7/modules/remotebackend/httpconnector.cc
--- old/pdns-3.4.6/modules/remotebackend/httpconnector.cc 2015-08-24 11:11:59.000000000 +0200
+++ new/pdns-3.4.7/modules/remotebackend/httpconnector.cc 2015-11-03 13:58:26.000000000 +0100
@@ -388,7 +388,7 @@
try {
t0 = time((time_t*)NULL);
- while(arl.ready() == false && (labs(time((time_t*)NULL) - t0) <= timeout/1000)) {
+ while(arl.ready() == false && (labs(time((time_t*)NULL) - t0) <= timeout)) {
rd = d_socket->readWithTimeout(buffer, sizeof(buffer), timeout);
if (rd==0)
throw NetworkError("EOF while reading");
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pdns-3.4.6/pdns/common_startup.cc new/pdns-3.4.7/pdns/common_startup.cc
--- old/pdns-3.4.6/pdns/common_startup.cc 2015-06-09 14:29:04.000000000 +0200
+++ new/pdns-3.4.7/pdns/common_startup.cc 2015-11-02 14:05:07.000000000 +0100
@@ -138,6 +138,8 @@
::arg().set("soa-refresh-default","Default SOA refresh")="10800";
::arg().set("soa-retry-default","Default SOA retry")="3600";
::arg().set("soa-expire-default","Default SOA expire")="604800";
+ ::arg().set("default-soa-edit","Default SOA-EDIT value")="";
+ ::arg().set("default-soa-edit-signed","Default SOA-EDIT value for signed zones")="";
::arg().set("trusted-notification-proxy", "IP address of incoming notification proxy")="";
::arg().set("slave-renotify", "If we should send out notifications for slaved updates")="no";
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pdns-3.4.6/pdns/dbdnsseckeeper.cc new/pdns-3.4.7/pdns/dbdnsseckeeper.cc
--- old/pdns-3.4.6/pdns/dbdnsseckeeper.cc 2015-06-09 14:29:04.000000000 +0200
+++ new/pdns-3.4.7/pdns/dbdnsseckeeper.cc 2015-11-02 14:05:07.000000000 +0100
@@ -212,6 +212,23 @@
}
}
+void DNSSECKeeper::getSoaEdit(const std::string& zname, std::string& value)
+{
+ static const string soaEdit(::arg()["default-soa-edit"]);
+ static const string soaEditSigned(::arg()["default-soa-edit-signed"]);
+
+ getFromMeta(zname, "SOA-EDIT", value);
+
+ if ((!soaEdit.empty() || !soaEditSigned.empty()) && value.empty() && !isPresigned(zname)) {
+ if (!soaEditSigned.empty() && isSecuredZone(zname))
+ value=soaEditSigned;
+ if (value.empty())
+ value=soaEdit;
+ }
+
+ return;
+}
+
uint64_t DNSSECKeeper::dbdnssecCacheSizes(const std::string& str)
{
if(str=="meta-cache-size") {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pdns-3.4.6/pdns/dnsbackend.cc new/pdns-3.4.7/pdns/dnsbackend.cc
--- old/pdns-3.4.6/pdns/dnsbackend.cc 2015-06-09 14:29:04.000000000 +0200
+++ new/pdns-3.4.7/pdns/dnsbackend.cc 2015-10-13 10:37:24.000000000 +0200
@@ -44,18 +44,23 @@
return true;
}
-bool DNSBackend::getAuth(DNSPacket *p, SOAData *sd, const string &target, int *zoneId, const int best_match_len)
+bool DNSBackend::getAuth(DNSPacket *p, SOAData *sd, const string &target, int *zoneId, const int best_match_len, map<string,int>& negCacheMap)
{
bool found=false;
string subdomain(target);
do {
- if( best_match_len >= (int)subdomain.length() )
+ if( best_match_len >= (int)subdomain.length() && p->qtype != QType::DS )
break;
- if( this->getSOA( subdomain, *sd, p ) ) {
+ map<string,int>::iterator it = negCacheMap.find(subdomain);
+ bool negCached = ( it != negCacheMap.end() && it->second == 1 );
+
+ if(! negCached && this->getSOA( subdomain, *sd, p ) ) {
sd->qname = subdomain;
if(zoneId)
*zoneId = sd->domain_id;
+ if(found) // Second SOA found, we are done
+ return true;
if(p->qtype.getCode() == QType::DS && pdns_iequals(subdomain, target)) {
// Found authoritative zone but look for parent zone with 'DS' record.
@@ -63,6 +68,8 @@
} else
return true;
}
+ if (found)
+ negCacheMap[subdomain]=2; // don't cache SOA's during our quest for a parent zone
}
while( chopOff( subdomain ) ); // 'www.powerdns.org' -> 'powerdns.org' -> 'org' -> ''
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pdns-3.4.6/pdns/dnsbackend.hh new/pdns-3.4.7/pdns/dnsbackend.hh
--- old/pdns-3.4.6/pdns/dnsbackend.hh 2015-08-24 11:11:59.000000000 +0200
+++ new/pdns-3.4.7/pdns/dnsbackend.hh 2015-10-13 10:37:24.000000000 +0200
@@ -163,7 +163,7 @@
virtual void getAllDomains(vector<DomainInfo> *domains, bool include_disabled=false) { }
/** Determines if we are authoritative for a zone, and at what level */
- virtual bool getAuth(DNSPacket *p, SOAData *sd, const string &target, int *zoneId, const int best_match_len);
+ virtual bool getAuth(DNSPacket *p, SOAData *sd, const string &target, int *zoneId, const int best_match_len, map<string,int>& negCacheMap);
struct KeyData {
unsigned int id;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pdns-3.4.6/pdns/dnspacket.cc new/pdns-3.4.7/pdns/dnspacket.cc
--- old/pdns-3.4.6/pdns/dnspacket.cc 2015-08-25 19:58:41.000000000 +0200
+++ new/pdns-3.4.7/pdns/dnspacket.cc 2015-11-02 11:33:21.000000000 +0100
@@ -464,10 +464,15 @@
bool gotit=false;
for(MOADNSParser::answers_t::const_iterator i=mdp.d_answers.begin(); i!=mdp.d_answers.end(); ++i) {
if(i->first.d_type == QType::TSIG) {
- *trc = *boost::dynamic_pointer_cast<TSIGRecordContent>(i->first.d_content);
-
- gotit=true;
+ // cast can fail, f.e. if d_content is an UnknownRecordContent.
+ shared_ptr<TSIGRecordContent> content = boost::dynamic_pointer_cast<TSIGRecordContent>(i->first.d_content);
+ if (!content) {
+ L<<Logger::Error<<"TSIG record has no or invalid content (invalid packet)"<<endl;
+ return false;
+ }
+ *trc = *content;
*keyname = i->first.d_label;
+ gotit=true;
if(!keyname->empty())
keyname->resize(keyname->size()-1); // drop the trailing dot
}
@@ -492,7 +497,13 @@
}
if(i->first.d_type == QType::TKEY) {
- *tr = *boost::dynamic_pointer_cast<TKEYRecordContent>(i->first.d_content);
+ // cast can fail, f.e. if d_content is an UnknownRecordContent.
+ shared_ptr<TKEYRecordContent> content = boost::dynamic_pointer_cast<TKEYRecordContent>(i->first.d_content);
+ if (!content) {
+ L<<Logger::Error<<"TKEY record has no or invalid content (invalid packet)"<<endl;
+ return false;
+ }
+ *tr = *content;
*keyname = i->first.d_label;
gotit=true;
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pdns-3.4.6/pdns/dnsrecords.cc new/pdns-3.4.7/pdns/dnsrecords.cc
--- old/pdns-3.4.6/pdns/dnsrecords.cc 2015-06-09 14:29:04.000000000 +0200
+++ new/pdns-3.4.7/pdns/dnsrecords.cc 2015-11-02 13:32:28.000000000 +0100
@@ -284,6 +284,10 @@
conv.xfrHexBlob(d_cert, true);
)
+boilerplate_conv(OPENPGPKEY, 61,
+ conv.xfrBlob(d_keyring);
+ )
+
#undef DS
DSRecordContent::DSRecordContent() : DNSRecordContent(43) {}
boilerplate_conv(DS, 43,
@@ -525,6 +529,7 @@
NSEC3RecordContent::report();
NSEC3PARAMRecordContent::report();
TLSARecordContent::report();
+ OPENPGPKEYRecordContent::report();
DLVRecordContent::report();
DNSRecordContent::regist(QClass::ANY, QType::TSIG, &TSIGRecordContent::make, &TSIGRecordContent::make, "TSIG");
DNSRecordContent::regist(QClass::ANY, QType::TKEY, &TKEYRecordContent::make, &TKEYRecordContent::make, "TKEY");
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pdns-3.4.6/pdns/dnsrecords.hh new/pdns-3.4.7/pdns/dnsrecords.hh
--- old/pdns-3.4.6/pdns/dnsrecords.hh 2015-06-09 14:29:05.000000000 +0200
+++ new/pdns-3.4.7/pdns/dnsrecords.hh 2015-11-02 13:32:28.000000000 +0100
@@ -348,6 +348,15 @@
string d_cert;
};
+class OPENPGPKEYRecordContent : public DNSRecordContent
+{
+public:
+ includeboilerplate(OPENPGPKEY)
+
+private:
+ string d_keyring;
+};
+
class RRSIGRecordContent : public DNSRecordContent
{
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pdns-3.4.6/pdns/dnssecinfra.cc new/pdns-3.4.7/pdns/dnssecinfra.cc
--- old/pdns-3.4.6/pdns/dnssecinfra.cc 2015-06-09 14:29:05.000000000 +0200
+++ new/pdns-3.4.7/pdns/dnssecinfra.cc 2015-11-02 13:32:28.000000000 +0100
@@ -60,8 +60,7 @@
pkcs11=true;
continue;
} else if (pdns_iequals(key,"slot")) {
- int slot = atoi(value.c_str());
- stormap["slot"]=lexical_cast<string>(slot);
+ stormap["slot"]=value;
continue;
} else if (pdns_iequals(key,"label")) {
stormap["label"]=value;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pdns-3.4.6/pdns/dnsseckeeper.hh new/pdns-3.4.7/pdns/dnsseckeeper.hh
--- old/pdns-3.4.6/pdns/dnsseckeeper.hh 2015-06-09 14:29:05.000000000 +0200
+++ new/pdns-3.4.7/pdns/dnsseckeeper.hh 2015-11-02 14:05:07.000000000 +0100
@@ -106,6 +106,7 @@
}
void getFromMeta(const std::string& zname, const std::string& key, std::string& value);
+ void getSoaEdit(const std::string& zname, std::string& value);
private:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pdns-3.4.6/pdns/docs/dnstcpbench.1 new/pdns-3.4.7/pdns/docs/dnstcpbench.1
--- old/pdns-3.4.6/pdns/docs/dnstcpbench.1 2015-08-27 15:18:35.000000000 +0200
+++ new/pdns-3.4.7/pdns/docs/dnstcpbench.1 2015-11-03 15:37:39.000000000 +0100
@@ -2,12 +2,12 @@
.\" Title: dnstcpbench
.\" Author: [see the "AUTHOR" section]
.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/>
-.\" Date: 08/27/2015
+.\" Date: 11/03/2015
.\" Manual: \ \&
.\" Source: \ \&
.\" Language: English
.\"
-.TH "DNSTCPBENCH" "1" "08/27/2015" "\ \&" "\ \&"
+.TH "DNSTCPBENCH" "1" "11/03/2015" "\ \&" "\ \&"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pdns-3.4.6/pdns/ext/yahttp/yahttp/reqresp.hpp new/pdns-3.4.7/pdns/ext/yahttp/yahttp/reqresp.hpp
--- old/pdns-3.4.6/pdns/ext/yahttp/yahttp/reqresp.hpp 2015-06-19 11:40:21.000000000 +0200
+++ new/pdns-3.4.7/pdns/ext/yahttp/yahttp/reqresp.hpp 2015-11-03 14:32:09.000000000 +0100
@@ -303,7 +303,7 @@
void initialize(T* target) {
chunked = false; chunk_size = 0;
- bodybuf.str(""); maxbody = 0;
+ bodybuf.str(""); minbody = 0; maxbody = 0;
pos = 0; state = 0; this->target = target;
hasBody = false;
buffer = "";
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pdns-3.4.6/pdns/packethandler.cc new/pdns-3.4.7/pdns/packethandler.cc
--- old/pdns-3.4.6/pdns/packethandler.cc 2015-08-26 11:29:42.000000000 +0200
+++ new/pdns-3.4.7/pdns/packethandler.cc 2015-11-02 11:33:21.000000000 +0100
@@ -996,6 +996,14 @@
return 0;
}
+ if(p->d.tc) { // truncated query. MOADNSParser would silently parse this packet in an incomplete way.
+ if(d_logDNSDetails)
+ L<<Logger::Error<<"Received truncated query packet from "<<p->getRemote()<<", dropping"<<endl;
+ S.inc("corrupt-packets");
+ S.ringAccount("remotes-corrupt", p->getRemote());
+ return 0;
+ }
+
if (p->hasEDNS() && p->getEDNSVersion() > 0) {
r = p->replyPacket();
r->setRcode(16 & 0xF);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pdns-3.4.6/pdns/pdns.conf-dist new/pdns-3.4.7/pdns/pdns.conf-dist
--- old/pdns-3.4.6/pdns/pdns.conf-dist 2015-06-09 14:29:11.000000000 +0200
+++ new/pdns-3.4.7/pdns/pdns.conf-dist 2015-11-02 14:05:07.000000000 +0100
@@ -85,6 +85,16 @@
# default-ksk-size=0
#################################
+# default-soa-edit Default SOA-EDIT value
+#
+# default-soa-edit=
+
+#################################
+# default-soa-edit-signed Default SOA-EDIT value for signed zones
+#
+# default-soa-edit-signed=
+
+#################################
# default-soa-mail mail address to insert in the SOA record if none set in the backend
#
# default-soa-mail=
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pdns-3.4.6/pdns/pdnssec.cc new/pdns-3.4.7/pdns/pdnssec.cc
--- old/pdns-3.4.6/pdns/pdnssec.cc 2015-08-24 14:32:10.000000000 +0200
+++ new/pdns-3.4.7/pdns/pdnssec.cc 2015-11-02 14:05:07.000000000 +0100
@@ -133,6 +133,8 @@
::arg().set("default-ksk-size","Default KSK size (0 means default)")="0";
::arg().set("default-zsk-algorithms","Default ZSK algorithms")="rsasha256";
::arg().set("default-zsk-size","Default KSK size (0 means default)")="0";
+ ::arg().set("default-soa-edit","Default SOA-EDIT value")="";
+ ::arg().set("default-soa-edit-signed","Default SOA-EDIT value for signed zones")="";
::arg().set("max-ent-entries", "Maximum number of empty non-terminals in a zone")="100000";
::arg().set("module-dir","Default directory for modules")=PKGLIBDIR;
::arg().set("entropy-source", "If set, read entropy from this file")="/dev/urandom";
@@ -665,9 +667,14 @@
cout<<"No SOA for zone '"<<zone<<"'"<<endl;
return -1;
}
+
+ if (dk.isPresigned(zone)) {
+ cerr<<"Serial increase of presigned zone '"<<zone<<"' is not allowed."<<endl;
+ return -1;
+ }
string soaEditKind;
- dk.getFromMeta(zone, "SOA-EDIT", soaEditKind);
+ dk.getSoaEdit(zone, soaEditKind);
sd.db->lookup(QType(QType::SOA), zone);
vector<DNSResourceRecord> rrs;
@@ -2034,7 +2041,7 @@
std::vector<DNSBackend::KeyData> keys;
if (cmds.size() < 9) {
- std::cout << "Usage: pdnssec hsm assign zone algorithm ksk|zsk module slot pin label" << std::endl;
+ std::cout << "Usage: pdnssec hsm assign zone algorithm ksk|zsk module token pin label" << std::endl;
return 1;
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pdns-3.4.6/pdns/pkcs11signers.cc new/pdns-3.4.7/pdns/pkcs11signers.cc
--- old/pdns-3.4.6/pdns/pkcs11signers.cc 2015-06-09 14:29:11.000000000 +0200
+++ new/pdns-3.4.7/pdns/pkcs11signers.cc 2015-11-02 13:32:28.000000000 +0100
@@ -213,6 +213,7 @@
L<<Logger::Error<< msg << endl;
}
}
+
public:
Pkcs11Slot(CK_FUNCTION_LIST* functions, const CK_SLOT_ID& slot) {
CK_TOKEN_INFO tokenInfo;
@@ -260,6 +261,9 @@
CK_FUNCTION_LIST* f() { return d_functions; }
pthread_mutex_t *m() { return &d_m; }
+
+ static boost::shared_ptr<Pkcs11Slot> GetSlot(const std::string& module, const string& tokenId);
+ static CK_RV HuntSlot(const string& tokenId, CK_SLOT_ID &slotId, _CK_SLOT_INFO* info, CK_FUNCTION_LIST* functions);
};
class Pkcs11Token {
@@ -607,31 +611,72 @@
return d_bits;
}
- static boost::shared_ptr<Pkcs11Token> GetToken(const std::string& module, const CK_SLOT_ID& slotId, const std::string& label);
+ static boost::shared_ptr<Pkcs11Token> GetToken(const std::string& module, const string& tokenId, const std::string& label);
};
static std::map<std::string, boost::shared_ptr<Pkcs11Slot> > pkcs11_slots;
static std::map<std::string, boost::shared_ptr<Pkcs11Token> > pkcs11_tokens;
-boost::shared_ptr<Pkcs11Token> Pkcs11Token::GetToken(const std::string& module, const CK_SLOT_ID& slotId, const std::string& label) {
+CK_RV Pkcs11Slot::HuntSlot(const string& tokenId, CK_SLOT_ID &slotId, _CK_SLOT_INFO* info, CK_FUNCTION_LIST* functions)
+{
+ CK_RV err;
+ unsigned long slots;
+ _CK_TOKEN_INFO tinfo;
+
+ // go thru all slots
+ // this is required by certain tokens, otherwise C_GetSlotInfo will not return a token
+ err = functions->C_GetSlotList(CK_FALSE, NULL_PTR, &slots);
+ if (err) {
+ L<<Logger::Warning<<"C_GetSlotList(CK_FALSE, NULL_PTR, &slots) = " << err << std::endl;
+ return err;
+ }
+
+ // iterate all slots
+ for(slotId=0;slotId<slots;slotId++) {
+ if ((err = functions->C_GetSlotInfo(slotId, info))) {
+ L<<Logger::Warning<<"C_GetSlotList("<<slotId<<", info) = " << err << std::endl;
+ return err;
+ }
+ if ((err = functions->C_GetTokenInfo(slotId, &tinfo))) {
+ L<<Logger::Warning<<"C_GetSlotList("<<slotId<<", &tinfo) = " << err << std::endl;
+ return err;
+ }
+ std::string slotName;
+ slotName.assign(reinterpret_cast<char*>(tinfo.label), 32);
+ // trim it
+ boost::trim(slotName);
+ if (boost::iequals(slotName, tokenId)) {
+ return 0;
+ }
+ }
+
+ // see if we can find it with slotId
+ try {
+ slotId = boost::lexical_cast<int>(tokenId);
+ if ((err = functions->C_GetSlotInfo(slotId, info))) {
+ L<<Logger::Warning<<"C_GetSlotList("<<slotId<<", info) = " << err << std::endl;
+ return err;
+ }
+ L<<Logger::Warning<<"Specifying PKCS#11 token by SLOT ID is deprecated and should not be used"<<std::endl;
+ return 0;
+ } catch (...) {
+ return CK_UNAVAILABLE_INFORMATION;
+ }
+ return CK_UNAVAILABLE_INFORMATION;
+}
+
+boost::shared_ptr<Pkcs11Slot> Pkcs11Slot::GetSlot(const std::string& module, const string& tokenId) {
// see if we can find module
- std::string tidx = module;
- tidx.append("|");
- tidx.append(boost::lexical_cast<std::string>(slotId));
- std::string sidx = tidx;
- tidx.append("|");
- tidx.append(label);
- std::map<std::string, boost::shared_ptr<Pkcs11Token> >::iterator tokenIter;
+ std::string sidx = module;
+ sidx.append("|");
+ sidx.append(tokenId);
std::map<std::string, boost::shared_ptr<Pkcs11Slot> >::iterator slotIter;
CK_RV err;
CK_FUNCTION_LIST* functions;
- if ((tokenIter = pkcs11_tokens.find(tidx)) != pkcs11_tokens.end()) return tokenIter->second;
-
// see if we have slot
if ((slotIter = pkcs11_slots.find(sidx)) != pkcs11_slots.end()) {
- pkcs11_tokens[tidx] = boost::make_shared<Pkcs11Token>(slotIter->second, label);
- return pkcs11_tokens[tidx];
+ return slotIter->second;
}
#ifdef HAVE_P11KIT1_V2
@@ -644,23 +689,30 @@
// try to locate a slot
_CK_SLOT_INFO info;
- unsigned long slots;
-
- // this is required by certain tokens, otherwise C_GetSlotInfo will not return a token
- err = functions->C_GetSlotList(CK_FALSE, NULL_PTR, &slots);
- if (err)
- L<<Logger::Warning<<"C_GetSlotList(CK_FALSE, NULL_PTR, &slots) = " << err << std::endl;
+ CK_SLOT_ID slotId;
- if ((err = functions->C_GetSlotInfo(slotId, &info))) {
- throw PDNSException(std::string("Cannot find PKCS#11 slot ") + boost::lexical_cast<std::string>(slotId) + std::string(" on module ") + module + std::string(": error code ") + boost::lexical_cast<std::string>(err));
+ if ((err = Pkcs11Slot::HuntSlot(tokenId, slotId, &info, functions))) {
+ throw PDNSException(std::string("Cannot find PKCS#11 token ") + tokenId + std::string(" on module ") + module + std::string(": error code ") + boost::lexical_cast<std::string>(err));
}
// store slot
pkcs11_slots[sidx] = boost::make_shared<Pkcs11Slot>(functions, slotId);
- // looks ok to me.
- pkcs11_tokens[tidx] = boost::make_shared<Pkcs11Token>(pkcs11_slots[sidx], label);
+ return pkcs11_slots[sidx];
+}
+boost::shared_ptr<Pkcs11Token> Pkcs11Token::GetToken(const std::string& module, const string& tokenId, const std::string& label) {
+ // see if we can find module
+ std::string tidx = module;
+ tidx.append("|");
+ tidx.append(boost::lexical_cast<std::string>(tokenId));
+ tidx.append("|");
+ tidx.append(label);
+ std::map<std::string, boost::shared_ptr<Pkcs11Token> >::iterator tokenIter;
+ if ((tokenIter = pkcs11_tokens.find(tidx)) != pkcs11_tokens.end()) return tokenIter->second;
+
+ boost::shared_ptr<Pkcs11Slot> slot = Pkcs11Slot::GetSlot(module, tokenId);
+ pkcs11_tokens[tidx] = boost::make_shared<Pkcs11Token>(slot, label);
return pkcs11_tokens[tidx];
}
@@ -677,6 +729,14 @@
Pkcs11Token::~Pkcs11Token() {
}
+bool PKCS11ModuleSlotLogin(const std::string& module, const string& tokenId, const std::string& pin)
+{
+ boost::shared_ptr<Pkcs11Slot> slot;
+ slot = Pkcs11Slot::GetSlot(module, tokenId);
+ if (slot->LoggedIn()) return true; // no point failing
+ return slot->Login(pin);
+}
+
PKCS11DNSCryptoKeyEngine::PKCS11DNSCryptoKeyEngine(unsigned int algorithm): DNSCryptoKeyEngine(algorithm) {}
PKCS11DNSCryptoKeyEngine::~PKCS11DNSCryptoKeyEngine() {}
PKCS11DNSCryptoKeyEngine::PKCS11DNSCryptoKeyEngine(const PKCS11DNSCryptoKeyEngine& orig) : DNSCryptoKeyEngine(orig.d_algorithm) {}
@@ -866,7 +926,7 @@
boost::assign::push_back(storvect)
(make_pair("Algorithm", boost::lexical_cast<std::string>(d_algorithm)))
(make_pair("Engine", d_module))
- (make_pair("Slot", boost::lexical_cast<std::string>(d_slot_id)))
+ (make_pair("Slot", d_slot_id))
(make_pair("PIN", d_pin))
(make_pair("Label", d_label));
return storvect;
@@ -875,7 +935,8 @@
void PKCS11DNSCryptoKeyEngine::fromISCMap(DNSKEYRecordContent& drc, stormap_t& stormap) {
drc.d_algorithm = atoi(stormap["algorithm"].c_str());
d_module = stormap["engine"];
- d_slot_id = atoi(stormap["slot"].c_str());
+ d_slot_id = stormap["slot"];
+ boost::trim(d_slot_id);
d_pin = stormap["pin"];
d_label = stormap["label"];
// validate parameters
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pdns-3.4.6/pdns/pkcs11signers.hh new/pdns-3.4.7/pdns/pkcs11signers.hh
--- old/pdns-3.4.6/pdns/pkcs11signers.hh 2015-06-09 14:29:11.000000000 +0200
+++ new/pdns-3.4.7/pdns/pkcs11signers.hh 2015-11-02 13:32:28.000000000 +0100
@@ -2,7 +2,7 @@
{
protected:
std::string d_module;
- unsigned long d_slot_id;
+ std::string d_slot_id;
std::string d_pin;
std::string d_label;
@@ -41,3 +41,4 @@
static DNSCryptoKeyEngine* maker(unsigned int algorithm);
};
+bool PKCS11ModuleSlotLogin(const std::string& module, const string& tokenId, const std::string& pin);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pdns-3.4.6/pdns/qtype.hh new/pdns-3.4.7/pdns/qtype.hh
--- old/pdns-3.4.6/pdns/qtype.hh 2015-06-09 14:29:12.000000000 +0200
+++ new/pdns-3.4.7/pdns/qtype.hh 2015-11-02 13:32:28.000000000 +0100
@@ -82,7 +82,7 @@
#undef DS
enum typeenum {A=1, NS=2, CNAME=5, SOA=6, MR=9, PTR=12, HINFO=13, MX=15, TXT=16, RP=17, AFSDB=18, SIG=24, KEY=25, AAAA=28, LOC=29, SRV=33, NAPTR=35, KX=36,
CERT=37, A6=38, DNAME=39, OPT=41, DS=43, SSHFP=44, IPSECKEY=45, RRSIG=46, NSEC=47, DNSKEY=48, DHCID=49, NSEC3=50, NSEC3PARAM=51,
- TLSA=52, SPF=99, EUI48=108, EUI64=109, TKEY=249, TSIG=250, IXFR=251, AXFR=252, MAILB=253, MAILA=254, ANY=255, URL=256, MBOXFW=257, CURL=258, ADDR=259, DLV=32769} types;
+ TLSA=52, OPENPGPKEY=61, SPF=99, EUI48=108, EUI64=109, TKEY=249, TSIG=250, IXFR=251, AXFR=252, MAILB=253, MAILA=254, ANY=255, URL=256, MBOXFW=257, CURL=258, ADDR=259, DLV=32769} types;
typedef pair<string,uint16_t> namenum;
static vector<namenum> names;
@@ -153,6 +153,7 @@
qtype_insert("NSEC3", 50);
qtype_insert("NSEC3PARAM", 51);
qtype_insert("TLSA", 52);
+ qtype_insert("OPENPGPKEY", 61);
qtype_insert("SPF", 99);
qtype_insert("EUI48", 108);
qtype_insert("EUI64", 109);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pdns-3.4.6/pdns/rfc2136handler.cc new/pdns-3.4.7/pdns/rfc2136handler.cc
--- old/pdns-3.4.6/pdns/rfc2136handler.cc 2015-06-09 14:29:12.000000000 +0200
+++ new/pdns-3.4.7/pdns/rfc2136handler.cc 2015-11-02 14:05:07.000000000 +0100
@@ -955,13 +955,13 @@
if (!soaEdit2136Setting.empty()) {
soaEdit2136 = soaEdit2136Setting[0];
if (pdns_iequals(soaEdit2136, "SOA-EDIT") || pdns_iequals(soaEdit2136,"SOA-EDIT-INCREASE") ){
- vector<string> soaEditSetting;
- B.getDomainMetadata(di->zone, "SOA-EDIT", soaEditSetting);
+ string soaEditSetting;
+ d_dk.getSoaEdit(di->zone, soaEditSetting);
if (soaEditSetting.empty()) {
L<<Logger::Error<<msgPrefix<<"Using "<<soaEdit2136<<" for SOA-EDIT-DNSUPDATE increase on DNS update, but SOA-EDIT is not set for domain \""<< di->zone <<"\". Using DEFAULT for SOA-EDIT-DNSUPDATE"<<endl;
soaEdit2136 = "DEFAULT";
} else
- soaEdit = soaEditSetting[0];
+ soaEdit = soaEditSetting;
}
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pdns-3.4.6/pdns/serialtweaker.cc new/pdns-3.4.7/pdns/serialtweaker.cc
--- old/pdns-3.4.6/pdns/serialtweaker.cc 2015-06-09 14:29:12.000000000 +0200
+++ new/pdns-3.4.7/pdns/serialtweaker.cc 2015-11-02 14:05:07.000000000 +0100
@@ -42,7 +42,7 @@
BOOST_FOREACH(DNSResourceRecord& rr, rrs) {
if(rr.qtype.getCode() == QType::SOA && pdns_iequals(rr.qname,qname)) {
string kind;
- dk.getFromMeta(qname, "SOA-EDIT", kind);
+ dk.getSoaEdit(qname, kind);
return editSOARecord(rr, kind);
}
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pdns-3.4.6/pdns/signingpipe.cc new/pdns-3.4.7/pdns/signingpipe.cc
--- old/pdns-3.4.6/pdns/signingpipe.cc 2015-06-09 14:29:13.000000000 +0200
+++ new/pdns-3.4.7/pdns/signingpipe.cc 2015-11-03 13:26:30.000000000 +0100
@@ -109,16 +109,17 @@
namespace {
bool dedupLessThan(const DNSResourceRecord& a, const DNSResourceRecord &b)
{
- if(tie(a.content, a.ttl) < tie(b.content, b.ttl))
- return true;
- if(a.qtype.getCode() == QType::MX || a.qtype.getCode() == QType::SRV)
- return a.priority < b.priority;
- return false;
+ uint16_t aprio = 0, bprio = 0;
+ if (a.qtype.getCode() == QType::MX || a.qtype.getCode() == QType::SRV)
+ aprio = a.priority;
+ if (b.qtype.getCode() == QType::MX || b.qtype.getCode() == QType::SRV)
+ bprio = b.priority;
+ return tie(a.content, aprio) < tie(b.content, bprio);
}
bool dedupEqual(const DNSResourceRecord& a, const DNSResourceRecord &b)
{
- if(tie(a.content, a.ttl) != tie(b.content, b.ttl))
+ if(a.content != b.content)
return false;
if(a.qtype.getCode() == QType::MX || a.qtype.getCode() == QType::SRV)
return a.priority == b.priority;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pdns-3.4.6/pdns/tcpreceiver.cc new/pdns-3.4.7/pdns/tcpreceiver.cc
--- old/pdns-3.4.6/pdns/tcpreceiver.cc 2015-06-09 14:29:13.000000000 +0200
+++ new/pdns-3.4.7/pdns/tcpreceiver.cc 2015-11-02 14:05:07.000000000 +0100
@@ -700,7 +700,8 @@
}
rrs.push_back(rr);
} else {
- L<<Logger::Warning<<"Zone '"<<target<<"' contains out-of-zone data '"<<rr.qname<<"'|"<<rr.qtype.getName()<<"', ignoring"<<endl;
+ if (rr.qtype.getCode())
+ L<<Logger::Warning<<"Zone '"<<target<<"' contains out-of-zone data '"<<rr.qname<<"|"<<rr.qtype.getName()<<"', ignoring"<<endl;
continue;
}
}
@@ -1021,7 +1022,7 @@
}
string soaedit;
- dk.getFromMeta(target, "SOA-EDIT", soaedit);
+ dk.getSoaEdit(target, soaedit);
if (!rfc1982LessThan(serial, calculateEditSOA(sd, soaedit))) {
TSIGRecordContent trc;
string tsigkeyname, tsigsecret;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pdns-3.4.6/pdns/test-dnsrecords_cc.cc new/pdns-3.4.7/pdns/test-dnsrecords_cc.cc
--- old/pdns-3.4.6/pdns/test-dnsrecords_cc.cc 2015-06-09 14:29:13.000000000 +0200
+++ new/pdns-3.4.7/pdns/test-dnsrecords_cc.cc 2015-11-02 13:32:28.000000000 +0100
@@ -160,6 +160,8 @@
(CASE_S(QType::TLSA, "3 0 0 308201f43082015da003020102020900ac547c5557870ec7300d06092a864886f70d010105050030133111300f06035504030c087265632e74657374301e170d3133303531323139343830395a170d3133303631313139343830395a30133111300f06035504030c087265632e7465737430819f300d06092a864886f70d010101050003818d0030818902818100d282bb968dfdec0e5d13dfcc0a36ed73178581424e10a37c89d3014204933b3a8c1159fdecb221afe4168883d2d00ac1f15fca4614fbd5e05de2e37ad0fbad8b7748dddbcf30b39e80466c61c733415e72b9f42d5fad0bf35f041eb5631eded00314c66c4878b351416e5c6b9096f2a7088a24387e5d0149c523739f84f502c70203010001a350304e301d0603551d0e0416041473715bbfd9bc2b824112f858586f166aafb99482301f0603551d2304183016801473715bbfd9bc2b824112f858586f166aafb99482300c0603551d13040530030101ff300d06092a864886f70d0101050500038181005550f1d64139ab0e86c5b303fc69015d1676ca95931071ae41884656c71c116a38138ecf63054b350dc78983cb4a83288dbc81c5a659a56cc6843d5452c3e98449b94a0cf0c0cd7190c96caa5f0ee9a3bef7e75002be4a233673852bdf1a5fd306a7080eb4fead9b3ad162074b5f007e9156e220302dea8c700868a12577e7c4", "\x03\x00\x00\x30\x82\x01\xf4\x30\x82\x01\x5d\xa0\x03\x02\x01\x02\x02\x09\x00\xac\x54\x7c\x55\x57\x87\x0e\xc7\x30\x0d\x06\x09\x2a\x86\x48\x86\xf7\x0d\x01\x01\x05\x05\x00\x30\x13\x31\x11\x30\x0f\x06\x03\x55\x04\x03\x0c\x08\x72\x65\x63\x2e\x74\x65\x73\x74\x30\x1e\x17\x0d\x31\x33\x30\x35\x31\x32\x31\x39\x34\x38\x30\x39\x5a\x17\x0d\x31\x33\x30\x36\x31\x31\x31\x39\x34\x38\x30\x39\x5a\x30\x13\x31\x11\x30\x0f\x06\x03\x55\x04\x03\x0c\x08\x72\x65\x63\x2e\x74\x65\x73\x74\x30\x81\x9f\x30\x0d\x06\x09\x2a\x86\x48\x86\xf7\x0d\x01\x01\x01\x05\x00\x03\x81\x8d\x00\x30\x81\x89\x02\x81\x81\x00\xd2\x82\xbb\x96\x8d\xfd\xec\x0e\x5d\x13\xdf\xcc\x0a\x36\xed\x73\x17\x85\x81\x42\x4e\x10\xa3\x7c\x89\xd3\x01\x42\x04\x93\x3b\x3a\x8c\x11\x59\xfd\xec\xb2\x21\xaf\xe4\x16\x88\x83\xd2\xd0\x0a\xc1\xf1\x5f\xca\x46\x14\xfb\xd5\xe0\x5d\xe2\xe3\x7a\xd0\xfb\xad\x8b\x77\x48\xdd\xdb\xcf\x30\xb3\x9e\x80\x46\x6c\x61\xc7\x33\x41\x5e\x72\xb9\xf4\x2d\x5f\xad\x0b\xf3\x5f\x04\x1e\xb5\x63\x1e\xde\xd0\x03\x14\xc6\x6c\x48\x78\xb3\x51\x41\x6e\x5c\x6b\x90\x96\xf2\xa7\x08\x8a\x24\x38\x7e\x5d\x01\x49\xc5\x23\x73\x9f\x84\xf5\x02\xc7\x02\x03\x01\x00\x01\xa3\x50\x30\x4e\x30\x1d\x06\x03\x55\x1d\x0e\x04\x16\x04\x14\x73\x71\x5b\xbf\xd9\xbc\x2b\x82\x41\x12\xf8\x58\x58\x6f\x16\x6a\xaf\xb9\x94\x82\x30\x1f\x06\x03\x55\x1d\x23\x04\x18\x30\x16\x80\x14\x73\x71\x5b\xbf\xd9\xbc\x2b\x82\x41\x12\xf8\x58\x58\x6f\x16\x6a\xaf\xb9\x94\x82\x30\x0c\x06\x03\x55\x1d\x13\x04\x05\x30\x03\x01\x01\xff\x30\x0d\x06\x09\x2a\x86\x48\x86\xf7\x0d\x01\x01\x05\x05\x00\x03\x81\x81\x00\x55\x50\xf1\xd6\x41\x39\xab\x0e\x86\xc5\xb3\x03\xfc\x69\x01\x5d\x16\x76\xca\x95\x93\x10\x71\xae\x41\x88\x46\x56\xc7\x1c\x11\x6a\x38\x13\x8e\xcf\x63\x05\x4b\x35\x0d\xc7\x89\x83\xcb\x4a\x83\x28\x8d\xbc\x81\xc5\xa6\x59\xa5\x6c\xc6\x84\x3d\x54\x52\xc3\xe9\x84\x49\xb9\x4a\x0c\xf0\xc0\xcd\x71\x90\xc9\x6c\xaa\x5f\x0e\xe9\xa3\xbe\xf7\xe7\x50\x02\xbe\x4a\x23\x36\x73\x85\x2b\xdf\x1a\x5f\xd3\x06\xa7\x08\x0e\xb4\xfe\xad\x9b\x3a\xd1\x62\x07\x4b\x5f\x00\x7e\x91\x56\xe2\x20\x30\x2d\xea\x8c\x70\x08\x68\xa1\x25\x77\xe7\xc4",false))
(CASE_S(QType::TLSA, "3 1 0 30819f300d06092a864886f70d010101050003818d0030818902818100d282bb968dfdec0e5d13dfcc0a36ed73178581424e10a37c89d3014204933b3a8c1159fdecb221afe4168883d2d00ac1f15fca4614fbd5e05de2e37ad0fbad8b7748dddbcf30b39e80466c61c733415e72b9f42d5fad0bf35f041eb5631eded00314c66c4878b351416e5c6b9096f2a7088a24387e5d0149c523739f84f502c70203010001", "\x03\x01\x00\x30\x81\x9f\x30\x0d\x06\x09\x2a\x86\x48\x86\xf7\x0d\x01\x01\x01\x05\x00\x03\x81\x8d\x00\x30\x81\x89\x02\x81\x81\x00\xd2\x82\xbb\x96\x8d\xfd\xec\x0e\x5d\x13\xdf\xcc\x0a\x36\xed\x73\x17\x85\x81\x42\x4e\x10\xa3\x7c\x89\xd3\x01\x42\x04\x93\x3b\x3a\x8c\x11\x59\xfd\xec\xb2\x21\xaf\xe4\x16\x88\x83\xd2\xd0\x0a\xc1\xf1\x5f\xca\x46\x14\xfb\xd5\xe0\x5d\xe2\xe3\x7a\xd0\xfb\xad\x8b\x77\x48\xdd\xdb\xcf\x30\xb3\x9e\x80\x46\x6c\x61\xc7\x33\x41\x5e\x72\xb9\xf4\x2d\x5f\xad\x0b\xf3\x5f\x04\x1e\xb5\x63\x1e\xde\xd0\x03\x14\xc6\x6c\x48\x78\xb3\x51\x41\x6e\x5c\x6b\x90\x96\xf2\xa7\x08\x8a\x24\x38\x7e\x5d\x01\x49\xc5\x23\x73\x9f\x84\xf5\x02\xc7\x02\x03\x01\x00\x01",false))
+ (CASE_S(QType::OPENPGPKEY, "mQINBFUIXh0BEADNPlL6NpWEaR2KJx6p19scIVpsBIo7UqzCIzeFbRJaGDhn/HlQgcwAalcVNmWUX0ZQsrdn9CEfLWuFu9ON2o1TslYiwn+oSAlH2raFm2eyJTp/iM7IUUCte5jmf3d+L9rjVI7JjmMnbVo6SVY2KDDD72dULcg7IqYcCAN4CT+tPZP5y4cYf+DxRlpxhxvqqiGyAi6lAcJ24/8fJ4hsG0lS1vU12LWeWTHa5aRMM+x9kmv3GYdXG+FxFqZw52kZEnAscpC2ymbX+1YFCr8sjGYGde/D+5cLvuu4PGNZ4fkSeS+0yXve/s6u1mX6RkkF6SOGWuJfBJOGdWzYwber9kqgqpHTjpr8HOybzVroBijtTlB/tommIUd4BTk9Jv4fv2gA4UkC13UM9KBF1NnzUnKC+Js49O3mj0HZDoCrkWMnZyDsEmhMyQPU6YRFHWmB6OTKeD/Znk+b1uz+HIBgrbNuiG/A0c00Vnj7lR4p94oOuypI00XusLsJwPsjI4EgFGKdoRtM0spJhi+3gf88Vq0NENBaFVHLBGWVFaVrffurGcDZYUAdnvm8jSPCgBPfFxpZutexNkLjyaaXjDtga5/n5gSd/3RpWCvp9u3W5jcTNDZF4TORnOXUWHcot/+XmyH8/+cn8ydt0prOLGQ+FtdI+AWyMCXHen6aaZ1jeSLZqwARAQABtFpwZG5zIHJlZ3Jlc3Npb24gdGVzdGluZyBrZXkgKG9ubHkgZm9yIHRlc3RpbmcgdGhlIG9wZW5wZ3BrZXkgcnIpIDxyZWdyZXNzaW9uQHBvd2VyZG5zLm9yZz6JAjcEEwEIACEFAlUIXh0CGwMFCwkIBwIGFQgJCgsCBBYCAwECHgECF4AACgkQPr/KqoyK2Z7A6Q//YOBu8nwt+fguSo/vyCln0PqnTiBm4RvE2gPDUnsKuoXoP5F56XHBXKl9kEgmycht/nc7c7NRHzUhacM2RQau6CgNZE8KLaqDTKlEuc/ANtrnGGYG8gMId4TlzU5taLEA8yrHIHnwnMuDDpx1a0ETkbYCrj7CynqdhXCABqFjgRL7Qb37UnLPE7YdFt7fRGwZVLnb3GVZLKHurZ0TANvLdRVDST3f0lCcYMppPbHAvi2MIU71FPGkms++tj4gTltq0VRvrMNm1e5v4+hHZ++QN4sm4+DJGlo7l850gnMXc7c7GkRGtg8gV0h5k5jX5icdgxyvENTuBQ+QprkYTRh9uYzpoTQ+NYRZlgaJxxaDIv1K/kb3oPtnAEKJBC02IZbB0EiS3R5pxYXhUNoWV7ez2A4hX1L+tfvlgCAbbQ/cBLvqXgpgsf9x4ygSi52vQBy3twZyrtLsogxacxADfPcyleHtju/+lSku+Z6+W6OojA0kY2HlaMyQATJLIXd+6NE/tYy70RsU9Oq0OyVTjxh21SPLsExeSwSfciVSLn7IuKGIOV82MEHFhpo1Uhv+G52J8T1fI730sS4Tl5DekLaCz1pg/FmI/EQeAsYqm98uDAaFQcs6gDse8VYGmp2XYsoCW72as8ElKmMIbQ/xD7qxDORLmjCtVoyKH19+s6Pp61a5Ag0EVQheHQEQAMN6pcLJUhw9bfO5kqhLv4prt0AqVBUok6U8tIaEc9vDaasBcFHXgPsoOG97DXB6BdvsHuK/5uMVH5PNe58MLp08iCoIt0C0CbN3+D9Qbeg37AyKyFanB/CXq1tPKVCJc6BMNkO/BswnUsTTmlcd4GovpaJUOOZzblGUQBbhzRohhmOGfdsScGeeYME/yNFqzt1ZArV4va1hOLOUpNFv9TOy0ZVi/yDi+sYA9fCSZU9alWI/cbBct5I+3bh1l26umlZsYQm8uqnSgiQWpRm6UJO6xQbmUN9GzCYyKCmpzZRduqqjjtiF10W1yzioTfTtq2cvU6PdINYY8w2UuOjRd9gChtvGuduOIwqlRTYSaXX1dDoFe1vWqZzRm+pIDumO9eX5jMmzFXLDG2pD2l97zoSjVFf/pYoBasgX43e3V/aEk9PUgXbYFm2QxFMcIYSO9GEDMoE+QxoMXf1UjLxMCK5gD5iHL3Ff2zyXLzlTZE+fHPMLcAkzcp2u6pJ9xpAGekqqeqnISXZ2o8yXsqv8NVvl1zaSiSqU+kak9mIg/2+WC9W1qO2PeSLW2tiis980QnmyDOBg2oL01ITh/u+GTodEGwfRYJoNAJgUjcUMpWl0LuoG8lG6wukhA4QYFWpf2QPVgTR63VbpFgwCnUcSEPqHB0BRCsDHsd0k+/YSuPolABEBAAGJAh8EGAEIAAkFAlUIXh0CGwwACgkQPr/KqoyK2Z6zPA/+PkJTzP8kQw4GW0x2ZxXfOmkRVYpSEoHehf6y9YFN00+T8pb71RGItvuX5v6oPKPClOnIVg2WVHOq6Q3HsXEzl7oIbOtPE98WXHiVXud/djc54uHz9WjSPfy/idP7SMslo29BHR/K9nQkiGtayD57wdxgbLXObE3fA0gl4AsWl1EZzNcWVL4SIrvnBGpYIUGBcsTIiP3p09bu4Qf6HjJRXZlBuizigIgeO39l/G6tb6GA1cnbq4y6aCtQeXHLrnvak1jRqznlJWUqS1mQgOPF1MuOduHAvQbfMBQXAEfgOTzuH9PuKoGm7MePwTrU5GsOpNgS4LbvIRODJxYD+vIwA5BniijgfN9aj9KQVMURrd4Np7i0EVmj8P9FtNgYsEaDt7laGpNB9+9Y9heb6kNEulF7KI7y8CKikgvFGHHCyX2BCCbQBqi6wbEGq16qkTJmesYu9ig4v4xD/Q/cLJFziJLjEcWsL7hq7q2o6e7NL6hf5aTH0/bdeMXMqRzDCAFQ5Z+x0QUCgVonxzj+CuTD/LeOs/QHu/9emvm9EOMYY/X9vidLf58PT/AMqMiYbNWty6qY6k2LMw74Yd4+hO+Tjrk8MrqbCUs9h6ih9IOCo68JTWQQbgWSk2TAyd3U4OqTyBnHWr0HhHDRTOxyDbZUtXbk/r4Q4gTcAt+qjpswPyk=", "\x99\x02\x0d\x04\x55\x08\x5e\x1d\x01\x10\x00\xcd\x3e\x52\xfa\x36\x95\x84\x69\x1d\x8a\x27\x1e\xa9\xd7\xdb\x1c\x21\x5a\x6c\x04\x8a\x3b\x52\xac\xc2\x23\x37\x85\x6d\x12\x5a\x18\x38\x67\xfc\x79\x50\x81\xcc\x00\x6a\x57\x15\x36\x65\x94\x5f\x46\x50\xb2\xb7\x67\xf4\x21\x1f\x2d\x6b\x85\xbb\xd3\x8d\xda\x8d\x53\xb2\x56\x22\xc2\x7f\xa8\x48\x09\x47\xda\xb6\x85\x9b\x67\xb2\x25\x3a\x7f\x88\xce\xc8\x51\x40\xad\x7b\x98\xe6\x7f\x77\x7e\x2f\xda\xe3\x54\x8e\xc9\x8e\x63\x27\x6d\x5a\x3a\x49\x56\x36\x28\x30\xc3\xef\x67\x54\x2d\xc8\x3b\x22\xa6\x1c\x08\x03\x78\x09\x3f\xad\x3d\x93\xf9\xcb\x87\x18\x7f\xe0\xf1\x46\x5a\x71\x87\x1b\xea\xaa\x21\xb2\x02\x2e\xa5\x01\xc2\x76\xe3\xff\x1f\x27\x88\x6c\x1b\x49\x52\xd6\xf5\x35\xd8\xb5\x9e\x59\x31\xda\xe5\xa4\x4c\x33\xec\x7d\x92\x6b\xf7\x19\x87\x57\x1b\xe1\x71\x16\xa6\x70\xe7\x69\x19\x12\x70\x2c\x72\x90\xb6\xca\x66\xd7\xfb\x56\x05\x0a\xbf\x2c\x8c\x66\x06\x75\xef\xc3\xfb\x97\x0b\xbe\xeb\xb8\x3c\x63\x59\xe1\xf9\x12\x79\x2f\xb4\xc9\x7b\xde\xfe\xce\xae\xd6\x65\xfa\x46\x49\x05\xe9\x23\x86\x5a\xe2\x5f\x04\x93\x86\x75\x6c\xd8\xc1\xb7\xab\xf6\x4a\xa0\xaa\x91\xd3\x8e\x9a\xfc\x1c\xec\x9b\xcd\x5a\xe8\x06\x28\xed\x4e\x50\x7f\xb6\x89\xa6\x21\x47\x78\x05\x39\x3d\x26\xfe\x1f\xbf\x68\x00\xe1\x49\x02\xd7\x75\x0c\xf4\xa0\x45\xd4\xd9\xf3\x52\x72\x82\xf8\x9b\x38\xf4\xed\xe6\x8f\x41\xd9\x0e\x80\xab\x91\x63\x27\x67\x20\xec\x12\x68\x4c\xc9\x03\xd4\xe9\x84\x45\x1d\x69\x81\xe8\xe4\xca\x78\x3f\xd9\x9e\x4f\x9b\xd6\xec\xfe\x1c\x80\x60\xad\xb3\x6e\x88\x6f\xc0\xd1\xcd\x34\x56\x78\xfb\x95\x1e\x29\xf7\x8a\x0e\xbb\x2a\x48\xd3\x45\xee\xb0\xbb\x09\xc0\xfb\x23\x23\x81\x20\x14\x62\x9d\xa1\x1b\x4c\xd2\xca\x49\x86\x2f\xb7\x81\xff\x3c\x56\xad\x0d\x10\xd0\x5a\x15\x51\xcb\x04\x65\x95\x15\xa5\x6b\x7d\xfb\xab\x19\xc0\xd9\x61\x40\x1d\x9e\xf9\xbc\x8d\x23\xc2\x80\x13\xdf\x17\x1a\x59\xba\xd7\xb1\x36\x42\xe3\xc9\xa6\x97\x8c\x3b\x60\x6b\x9f\xe7\xe6\x04\x9d\xff\x74\x69\x58\x2b\xe9\xf6\xed\xd6\xe6\x37\x13\x34\x36\x45\xe1\x33\x91\x9c\xe5\xd4\x58\x77\x28\xb7\xff\x97\x9b\x21\xfc\xff\xe7\x27\xf3\x27\x6d\xd2\x9a\xce\x2c\x64\x3e\x16\xd7\x48\xf8\x05\xb2\x30\x25\xc7\x7a\x7e\x9a\x69\x9d\x63\x79\x22\xd9\xab\x00\x11\x01\x00\x01\xb4\x5a\x70\x64\x6e\x73\x20\x72\x65\x67\x72\x65\x73\x73\x69\x6f\x6e\x20\x74\x65\x73\x74\x69\x6e\x67\x20\x6b\x65\x79\x20\x28\x6f\x6e\x6c\x79\x20\x66\x6f\x72\x20\x74\x65\x73\x74\x69\x6e\x67\x20\x74\x68\x65\x20\x6f\x70\x65\x6e\x70\x67\x70\x6b\x65\x79\x20\x72\x72\x29\x20\x3c\x72\x65\x67\x72\x65\x73\x73\x69\x6f\x6e\x40\x70\x6f\x77\x65\x72\x64\x6e\x73\x2e\x6f\x72\x67\x3e\x89\x02\x37\x04\x13\x01\x08\x00\x21\x05\x02\x55\x08\x5e\x1d\x02\x1b\x03\x05\x0b\x09\x08\x07\x02\x06\x15\x08\x09\x0a\x0b\x02\x04\x16\x02\x03\x01\x02\x1e\x01\x02\x17\x80\x00\x0a\x09\x10\x3e\xbf\xca\xaa\x8c\x8a\xd9\x9e\xc0\xe9\x0f\xff\x60\xe0\x6e\xf2\x7c\x2d\xf9\xf8\x2e\x4a\x8f\xef\xc8\x29\x67\xd0\xfa\xa7\x4e\x20\x66\xe1\x1b\xc4\xda\x03\xc3\x52\x7b\x0a\xba\x85\xe8\x3f\x91\x79\xe9\x71\xc1\x5c\xa9\x7d\x90\x48\x26\xc9\xc8\x6d\xfe\x77\x3b\x73\xb3\x51\x1f\x35\x21\x69\xc3\x36\x45\x06\xae\xe8\x28\x0d\x64\x4f\x0a\x2d\xaa\x83\x4c\xa9\x44\xb9\xcf\xc0\x36\xda\xe7\x18\x66\x06\xf2\x03\x08\x77\x84\xe5\xcd\x4e\x6d\x68\xb1\x00\xf3\x2a\xc7\x20\x79\xf0\x9c\xcb\x83\x0e\x9c\x75\x6b\x41\x13\x91\xb6\x02\xae\x3e\xc2\xca\x7a\x9d\x85\x70\x80\x06\xa1\x63\x81\x12\xfb\x41\xbd\xfb\x52\x72\xcf\x13\xb6\x1d\x16\xde\xdf\x44\x6c\x19\x54\xb9\xdb\xdc\x65\x59\x2c\xa1\xee\xad\x9d\x13\x00\xdb\xcb\x75\x15\x43\x49\x3d\xdf\xd2\x50\x9c\x60\xca\x69\x3d\xb1\xc0\xbe\x2d\x8c\x21\x4e\xf5\x14\xf1\xa4\x9a\xcf\xbe\xb6\x3e\x20\x4e\x5b\x6a\xd1\x54\x6f\xac\xc3\x66\xd5\xee\x6f\xe3\xe8\x47\x67\xef\x90\x37\x8b\x26\xe3\xe0\xc9\x1a\x5a\x3b\x97\xce\x74\x82\x73\x17\x73\xb7\x3b\x1a\x44\x46\xb6\x0f\x20\x57\x48\x79\x93\x98\xd7\xe6\x27\x1d\x83\x1c\xaf\x10\xd4\xee\x05\x0f\x90\xa6\xb9\x18\x4d\x18\x7d\xb9\x8c\xe9\xa1\x34\x3e\x35\x84\x59\x96\x06\x89\xc7\x16\x83\x22\xfd\x4a\xfe\x46\xf7\xa0\xfb\x67\x00\x42\x89\x04\x2d\x36\x21\x96\xc1\xd0\x48\x92\xdd\x1e\x69\xc5\x85\xe1\x50\xda\x16\x57\xb7\xb3\xd8\x0e\x21\x5f\x52\xfe\xb5\xfb\xe5\x80\x20\x1b\x6d\x0f\xdc\x04\xbb\xea\x5e\x0a\x60\xb1\xff\x71\xe3\x28\x12\x8b\x9d\xaf\x40\x1c\xb7\xb7\x06\x72\xae\xd2\xec\xa2\x0c\x5a\x73\x10\x03\x7c\xf7\x32\x95\xe1\xed\x8e\xef\xfe\x95\x29\x2e\xf9\x9e\xbe\x5b\xa3\xa8\x8c\x0d\x24\x63\x61\xe5\x68\xcc\x90\x01\x32\x4b\x21\x77\x7e\xe8\xd1\x3f\xb5\x8c\xbb\xd1\x1b\x14\xf4\xea\xb4\x3b\x25\x53\x8f\x18\x76\xd5\x23\xcb\xb0\x4c\x5e\x4b\x04\x9f\x72\x25\x52\x2e\x7e\xc8\xb8\xa1\x88\x39\x5f\x36\x30\x41\xc5\x86\x9a\x35\x52\x1b\xfe\x1b\x9d\x89\xf1\x3d\x5f\x23\xbd\xf4\xb1\x2e\x13\x97\x90\xde\x90\xb6\x82\xcf\x5a\x60\xfc\x59\x88\xfc\x44\x1e\x02\xc6\x2a\x9b\xdf\x2e\x0c\x06\x85\x41\xcb\x3a\x80\x3b\x1e\xf1\x56\x06\x9a\x9d\x97\x62\xca\x02\x5b\xbd\x9a\xb3\xc1\x25\x2a\x63\x08\x6d\x0f\xf1\x0f\xba\xb1\x0c\xe4\x4b\x9a\x30\xad\x56\x8c\x8a\x1f\x5f\x7e\xb3\xa3\xe9\xeb\x56\xb9\x02\x0d\x04\x55\x08\x5e\x1d\x01\x10\x00\xc3\x7a\xa5\xc2\xc9\x52\x1c\x3d\x6d\xf3\xb9\x92\xa8\x4b\xbf\x8a\x6b\xb7\x40\x2a\x54\x15\x28\x93\xa5\x3c\xb4\x86\x84\x73\xdb\xc3\x69\xab\x01\x70\x51\xd7\x80\xfb\x28\x38\x6f\x7b\x0d\x70\x7a\x05\xdb\xec\x1e\xe2\xbf\xe6\xe3\x15\x1f\x93\xcd\x7b\x9f\x0c\x2e\x9d\x3c\x88\x2a\x08\xb7\x40\xb4\x09\xb3\x77\xf8\x3f\x50\x6d\xe8\x37\xec\x0c\x8a\xc8\x56\xa7\x07\xf0\x97\xab\x5b\x4f\x29\x50\x89\x73\xa0\x4c\x36\x43\xbf\x06\xcc\x27\x52\xc4\xd3\x9a\x57\x1d\xe0\x6a\x2f\xa5\xa2\x54\x38\xe6\x73\x6e\x51\x94\x40\x16\xe1\xcd\x1a\x21\x86\x63\x86\x7d\xdb\x12\x70\x67\x9e\x60\xc1\x3f\xc8\xd1\x6a\xce\xdd\x59\x02\xb5\x78\xbd\xad\x61\x38\xb3\x94\xa4\xd1\x6f\xf5\x33\xb2\xd1\x95\x62\xff\x20\xe2\xfa\xc6\x00\xf5\xf0\x92\x65\x4f\x5a\x95\x62\x3f\x71\xb0\x5c\xb7\x92\x3e\xdd\xb8\x75\x97\x6e\xae\x9a\x56\x6c\x61\x09\xbc\xba\xa9\xd2\x82\x24\x16\xa5\x19\xba\x50\x93\xba\xc5\x06\xe6\x50\xdf\x46\xcc\x26\x32\x28\x29\xa9\xcd\x94\x5d\xba\xaa\xa3\x8e\xd8\x85\xd7\x45\xb5\xcb\x38\xa8\x4d\xf4\xed\xab\x67\x2f\x53\xa3\xdd\x20\xd6\x18\xf3\x0d\x94\xb8\xe8\xd1\x77\xd8\x02\x86\xdb\xc6\xb9\xdb\x8e\x23\x0a\xa5\x45\x36\x12\x69\x75\xf5\x74\x3a\x05\x7b\x5b\xd6\xa9\x9c\xd1\x9b\xea\x48\x0e\xe9\x8e\xf5\xe5\xf9\x8c\xc9\xb3\x15\x72\xc3\x1b\x6a\x43\xda\x5f\x7b\xce\x84\xa3\x54\x57\xff\xa5\x8a\x01\x6a\xc8\x17\xe3\x77\xb7\x57\xf6\x84\x93\xd3\xd4\x81\x76\xd8\x16\x6d\x90\xc4\x53\x1c\x21\x84\x8e\xf4\x61\x03\x32\x81\x3e\x43\x1a\x0c\x5d\xfd\x54\x8c\xbc\x4c\x08\xae\x60\x0f\x98\x87\x2f\x71\x5f\xdb\x3c\x97\x2f\x39\x53\x64\x4f\x9f\x1c\xf3\x0b\x70\x09\x33\x72\x9d\xae\xea\x92\x7d\xc6\x90\x06\x7a\x4a\xaa\x7a\xa9\xc8\x49\x76\x76\xa3\xcc\x97\xb2\xab\xfc\x35\x5b\xe5\xd7\x36\x92\x89\x2a\x94\xfa\x46\xa4\xf6\x62\x20\xff\x6f\x96\x0b\xd5\xb5\xa8\xed\x8f\x79\x22\xd6\xda\xd8\xa2\xb3\xdf\x34\x42\x79\xb2\x0c\xe0\x60\xda\x82\xf4\xd4\x84\xe1\xfe\xef\x86\x4e\x87\x44\x1b\x07\xd1\x60\x9a\x0d\x00\x98\x14\x8d\xc5\x0c\xa5\x69\x74\x2e\xea\x06\xf2\x51\xba\xc2\xe9\x21\x03\x84\x18\x15\x6a\x5f\xd9\x03\xd5\x81\x34\x7a\xdd\x56\xe9\x16\x0c\x02\x9d\x47\x12\x10\xfa\x87\x07\x40\x51\x0a\xc0\xc7\xb1\xdd\x24\xfb\xf6\x12\xb8\xfa\x25\x00\x11\x01\x00\x01\x89\x02\x1f\x04\x18\x01\x08\x00\x09\x05\x02\x55\x08\x5e\x1d\x02\x1b\x0c\x00\x0a\x09\x10\x3e\xbf\xca\xaa\x8c\x8a\xd9\x9e\xb3\x3c\x0f\xfe\x3e\x42\x53\xcc\xff\x24\x43\x0e\x06\x5b\x4c\x76\x67\x15\xdf\x3a\x69\x11\x55\x8a\x52\x12\x81\xde\x85\xfe\xb2\xf5\x81\x4d\xd3\x4f\x93\xf2\x96\xfb\xd5\x11\x88\xb6\xfb\x97\xe6\xfe\xa8\x3c\xa3\xc2\x94\xe9\xc8\x56\x0d\x96\x54\x73\xaa\xe9\x0d\xc7\xb1\x71\x33\x97\xba\x08\x6c\xeb\x4f\x13\xdf\x16\x5c\x78\x95\x5e\xe7\x7f\x76\x37\x39\xe2\xe1\xf3\xf5\x68\xd2\x3d\xfc\xbf\x89\xd3\xfb\x48\xcb\x25\xa3\x6f\x41\x1d\x1f\xca\xf6\x74\x24\x88\x6b\x5a\xc8\x3e\x7b\xc1\xdc\x60\x6c\xb5\xce\x6c\x4d\xdf\x03\x48\x25\xe0\x0b\x16\x97\x51\x19\xcc\xd7\x16\x54\xbe\x12\x22\xbb\xe7\x04\x6a\x58\x21\x41\x81\x72\xc4\xc8\x88\xfd\xe9\xd3\xd6\xee\xe1\x07\xfa\x1e\x32\x51\x5d\x99\x41\xba\x2c\xe2\x80\x88\x1e\x3b\x7f\x65\xfc\x6e\xad\x6f\xa1\x80\xd5\xc9\xdb\xab\x8c\xba\x68\x2b\x50\x79\x71\xcb\xae\x7b\xda\x93\x58\xd1\xab\x39\xe5\x25\x65\x2a\x4b\x59\x90\x80\xe3\xc5\xd4\xcb\x8e\x76\xe1\xc0\xbd\x06\xdf\x30\x14\x17\x00\x47\xe0\x39\x3c\xee\x1f\xd3\xee\x2a\x81\xa6\xec\xc7\x8f\xc1\x3a\xd4\xe4\x6b\x0e\xa4\xd8\x12\xe0\xb6\xef\x21\x13\x83\x27\x16\x03\xfa\xf2\x30\x03\x90\x67\x8a\x28\xe0\x7c\xdf\x5a\x8f\xd2\x90\x54\xc5\x11\xad\xde\x0d\xa7\xb8\xb4\x11\x59\xa3\xf0\xff\x45\xb4\xd8\x18\xb0\x46\x83\xb7\xb9\x5a\x1a\x93\x41\xf7\xef\x58\xf6\x17\x9b\xea\x43\x44\xba\x51\x7b\x28\x8e\xf2\xf0\x22\xa2\x92\x0b\xc5\x18\x71\xc2\xc9\x7d\x81\x08\x26\xd0\x06\xa8\xba\xc1\xb1\x06\xab\x5e\xaa\x91\x32\x66\x7a\xc6\x2e\xf6\x28\x38\xbf\x8c\x43\xfd\x0f\xdc\x2c\x91\x73\x88\x92\xe3\x11\xc5\xac\x2f\xb8\x6a\xee\xad\xa8\xe9\xee\xcd\x2f\xa8\x5f\xe5\xa4\xc7\xd3\xf6\xdd\x78\xc5\xcc\xa9\x1c\xc3\x08\x01\x50\xe5\x9f\xb1\xd1\x05\x02\x81\x5a\x27\xc7\x38\xfe\x0a\xe4\xc3\xfc\xb7\x8e\xb3\xf4\x07\xbb\xff\x5e\x9a\xf9\xbd\x10\xe3\x18\x63\xf5\xfd\xbe\x27\x4b\x7f\x9f\x0f\x4f\xf0\x0c\xa8\xc8\x98\x6c\xd5\xad\xcb\xaa\x98\xea\x4d\x8b\x33\x0e\xf8\x61\xde\x3e\x84\xef\x93\x8e\xb9\x3c\x32\xba\x9b\x09\x4b\x3d\x87\xa8\xa1\xf4\x83\x82\xa3\xaf\x09\x4d\x64\x10\x6e\x05\x92\x93\x64\xc0\xc9\xdd\xd4\xe0\xea\x93\xc8\x19\xc7\x5a\xbd\x07\x84\x70\xd1\x4c\xec\x72\x0d\xb6\x54\xb5\x76\xe4\xfe\xbe\x10\xe2\x04\xdc\x02\xdf\xaa\x8e\x9b\x30\x3f\x29",false))
+
(CASE_S(QType::SPF, "\"v=spf1 a:mail.rec.test ~all\"", "\x1bv=spf1 a:mail.rec.test ~all",false))
(CASE_S(QType::EUI48, "00-11-22-33-44-55", "\x00\x11\x22\x33\x44\x55",false))
(CASE_S(QType::EUI64, "00-11-22-33-44-55-66-77", "\x00\x11\x22\x33\x44\x55\x66\x77",false))
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pdns-3.4.6/pdns/ueberbackend.cc new/pdns-3.4.7/pdns/ueberbackend.cc
--- old/pdns-3.4.6/pdns/ueberbackend.cc 2015-08-24 11:12:00.000000000 +0200
+++ new/pdns-3.4.7/pdns/ueberbackend.cc 2015-10-13 10:37:24.000000000 +0200
@@ -278,11 +278,12 @@
{
int best_match_len = -1;
bool from_cache = false; // Was this result fetched from the cache?
+ map<string,int> negCacheMap;
// If not special case of caching explicitly disabled (sd->db = -1), first
// find the best match from the cache. If DS then we need to find parent so
// dont bother with caching as it confuses matters.
- if( sd->db != (DNSBackend *)-1 && d_cache_ttl && p->qtype != QType::DS ) {
+ if( sd->db != (DNSBackend *)-1 && (d_cache_ttl || d_negcache_ttl)) {
string subdomain(target);
int cstat, loops = 0;
do {
@@ -292,7 +293,7 @@
cstat = cacheHas(d_question,d_answers);
- if(cstat==1 && !d_answers.empty()) {
+ if(cstat==1 && !d_answers.empty() && d_cache_ttl) {
fillSOAData(d_answers[0].content,*sd);
sd->domain_id = d_answers[0].domain_id;
sd->ttl = d_answers[0].ttl;
@@ -301,29 +302,51 @@
//L<<Logger::Error<<"Best cache match: " << sd->qname << " itteration " << loops <<endl;
// Found first time round this must be the best match
- if( loops == 0 )
+ if( loops == 0 && p->qtype != QType::DS)
return true;
from_cache = true;
best_match_len = sd->qname.length();
- break;
- }
+ if ( p->qtype != QType::DS || best_match_len < (int)target.length())
+ break;
+ } else if (cstat==0 && d_negcache_ttl) {
+ negCacheMap[subdomain]=1;
+ } else
+ negCacheMap[subdomain]=0;
loops++;
}
while( chopOff( subdomain ) ); // 'www.powerdns.org' -> 'powerdns.org' -> 'org' -> ''
}
- for(vector<DNSBackend *>::const_iterator i=backends.begin(); i!=backends.end();++i)
- if((*i)->getAuth(p, sd, target, zoneId, best_match_len)) {
+ for(vector<DNSBackend *>::const_iterator i=backends.begin(); i!=backends.end();++i) {
+
+ // Shortcut for the case that we got a direct hit - no need to go
+ // through the other backends then.
+ if( best_match_len == (int)target.length() && p->qtype != QType::DS )
+ goto auth_found;
+
+ if((*i)->getAuth(p, sd, target, zoneId, best_match_len, negCacheMap)) {
best_match_len = sd->qname.length();
from_cache = false;
+ }
+ }
- // Shortcut for the case that we got a direct hit - no need to go
- // through the other backends then.
- if( best_match_len == (int)target.length() )
- goto auth_found;
+ if( sd->db != (DNSBackend *)-1 && d_negcache_ttl) {
+ string shorter(target);
+
+ d_question.qtype=QType::SOA;
+ d_question.zoneId=-1;
+ while((int)shorter.length() > best_match_len ) {
+ map<string,int>::iterator it = negCacheMap.find(shorter);
+ if (it == negCacheMap.end() || it->second == 0) {
+ d_question.qname=shorter;
+ addNegCache(d_question);
+ }
+ if (!chopOff(shorter))
+ break;
}
+ }
if( best_match_len == -1 )
return false;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pdns-3.4.6/pdns/ueberbackend.hh new/pdns-3.4.7/pdns/ueberbackend.hh
--- old/pdns-3.4.6/pdns/ueberbackend.hh 2015-08-24 11:12:00.000000000 +0200
+++ new/pdns-3.4.7/pdns/ueberbackend.hh 2015-10-13 10:37:24.000000000 +0200
@@ -114,8 +114,8 @@
void lookup(const QType &, const string &qdomain, DNSPacket *pkt_p=0, int zoneId=-1);
/* 5-arg version is only valid for backends and should never be called directly */
- virtual bool getAuth(DNSPacket *p, SOAData *sd, const string &target, int *zoneId, const int best_match_len) {
- throw PDNSException("5-arg version of getAuth should not be called in UeberBackend");
+ virtual bool getAuth(DNSPacket *p, SOAData *sd, const string &target, int *zoneId, const int best_match_len, map<string,int>& negCacheMap) {
+ throw PDNSException("6-arg version of getAuth should not be called in UeberBackend");
}
bool getAuth(DNSPacket *p, SOAData *sd, const string &target, int *zoneId);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pdns-3.4.6/pdns/ws-auth.cc new/pdns-3.4.7/pdns/ws-auth.cc
--- old/pdns-3.4.6/pdns/ws-auth.cc 2015-08-24 11:12:00.000000000 +0200
+++ new/pdns-3.4.7/pdns/ws-auth.cc 2015-09-30 13:07:31.000000000 +0200
@@ -122,6 +122,9 @@
case '>':
result += ">";
break;
+ case '"':
+ result += """;
+ break;
default:
result += *it;
}
@@ -141,15 +144,15 @@
}
ret<<"<div class=\"panel\">";
- ret<<"<span class=resetring><i></i><a href=\"?resetring="<<ringname<<"\">Reset</a></span>"<<endl;
+ ret<<"<span class=resetring><i></i><a href=\"?resetring="<<htmlescape(ringname)<<"\">Reset</a></span>"<<endl;
ret<<"<h2>"<<title<<"</h2>"<<endl;
ret<<"<div class=ringmeta>";
- ret<<"<a class=topXofY href=\"?ring="<<ringname<<"\">Showing: Top "<<limit<<" of "<<entries<<"</a>"<<endl;
+ ret<<"<a class=topXofY href=\"?ring="<<htmlescape(ringname)<<"\">Showing: Top "<<limit<<" of "<<entries<<"</a>"<<endl;
ret<<"<span class=resizering>Resize: ";
unsigned int sizes[]={10,100,500,1000,10000,500000,0};
for(int i=0;sizes[i];++i) {
if(S.getRingSize(ringname)!=sizes[i])
- ret<<"<a href=\"?resizering="<<ringname<<"&size="<<sizes[i]<<"\">"<<sizes[i]<<"</a> ";
+ ret<<"<a href=\"?resizering="<<htmlescape(ringname)<<"&size="<<sizes[i]<<"\">"<<sizes[i]<<"</a> ";
else
ret<<"("<<sizes[i]<<") ";
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pdns-3.4.6/pdns.spec new/pdns-3.4.7/pdns.spec
--- old/pdns-3.4.6/pdns.spec 2015-08-27 15:17:34.000000000 +0200
+++ new/pdns-3.4.7/pdns.spec 2015-11-03 15:36:48.000000000 +0100
@@ -1,6 +1,6 @@
BuildRoot: /tmp/pdns
Name: pdns-static
-Version: 3.4.6
+Version: 3.4.7
Release: 1
Summary: extremely powerful and versatile nameserver
License: GPL
1
0
Hello community,
here is the log from the commit of package notify-osd for openSUSE:Factory checked in at 2016-01-01 19:48:55
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/notify-osd (Old)
and /work/SRC/openSUSE:Factory/.notify-osd.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "notify-osd"
Changes:
--------
--- /work/SRC/openSUSE:Factory/notify-osd/notify-osd.changes 2015-11-26 17:04:06.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.notify-osd.new/notify-osd.changes 2016-01-01 19:51:20.000000000 +0100
@@ -1,0 +2,8 @@
+Sat Dec 26 21:14:56 UTC 2015 - sor.alexei(a)meowr.ru
+
+- Update to 0.9.35~bzr20151201:
+ * bubble_set_icon: allow absolute paths in the icon name field
+ (lp#1520667).
+- Add notify-osd-fix-voidreturn.patch.
+
+-------------------------------------------------------------------
Old:
----
notify-osd_0.9.35+16.04.20151118.orig.tar.gz
New:
----
notify-osd-fix-voidreturn.patch
notify-osd_0.9.35+16.04.20151201.orig.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ notify-osd.spec ++++++
--- /var/tmp/diff_new_pack.WjSxV9/_old 2016-01-01 19:51:21.000000000 +0100
+++ /var/tmp/diff_new_pack.WjSxV9/_new 2016-01-01 19:51:21.000000000 +0100
@@ -16,9 +16,9 @@
#
-%define _version 0.9.35+16.04.20151118
+%define _version 0.9.35+16.04.20151201
Name: notify-osd
-Version: 0.9.35~bzr20151118
+Version: 0.9.35~bzr20151201
Release: 0
Summary: Streamlined Notification Daemon
License: GPL-3.0+
@@ -26,7 +26,9 @@
Url: https://launchpad.net/notify-osd
Source: http://archive.ubuntu.com/ubuntu/pool/main/n/notify-osd/%{name}_%{_version}…
# PATCH-FEATURE-OPENSUSE notify-osd-leolik.patch -- Extend the configuration capabilities, patch by Roman Sukochev (Leolik) from https://launchpad.net/~leolik/+archive/leolik.
-Patch0: notify-osd-leolik.patch
+Patch0: %{name}-leolik.patch
+# PATCH-FIX-UPSTREAM notify-osd-fix-voidreturn.patch sor.alexei(a)meowr.ru -- Fix value non-return in display.c stack_layout().
+Patch1: %{name}-fix-voidreturn.patch
BuildRequires: autoconf >= 2.59
BuildRequires: automake >= 1.8
BuildRequires: fdupes
@@ -53,6 +55,7 @@
%prep
%setup -q -n %{name}-%{_version}
%patch0
+%patch1 -p1
%build
autoreconf -fi
++++++ notify-osd-fix-voidreturn.patch ++++++
--- a/src/display.c
+++ b/src/display.c
@@ -288,7 +288,7 @@ stack_layout (Stack* self)
gint y = 0;
gint x = 0;
- g_return_if_fail (self != NULL);
+ g_return_val_if_fail (self != NULL, TRUE);
bubble = stack_select_next_to_display (self);
if (bubble == NULL)
++++++ notify-osd_0.9.35+16.04.20151118.orig.tar.gz -> notify-osd_0.9.35+16.04.20151201.orig.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/notify-osd-0.9.35+16.04.20151118/src/bubble.c new/notify-osd-0.9.35+16.04.20151201/src/bubble.c
--- old/notify-osd-0.9.35+16.04.20151118/src/bubble.c 2015-11-18 17:39:00.000000000 +0100
+++ new/notify-osd-0.9.35+16.04.20151201/src/bubble.c 2015-12-01 09:28:50.000000000 +0100
@@ -2387,7 +2387,7 @@
filename = g_filename_from_uri (name, NULL, &error);
if (filename == NULL)
{
- g_printerr ("%s is not a valid file uri: %s", name, error->message);
+ g_warning ("%s is not a valid file uri: %s", name, error->message);
g_error_free (error);
return;
}
@@ -2396,6 +2396,14 @@
g_free (filename);
}
+ /* According to the spec, only file:// uris are allowed in the
+ * name field. However, many applications send raw paths.
+ * Support those as well, but only if they're absolute.
+ */
+ else if (name[0] == '/')
+ {
+ priv->icon_pixbuf = gdk_pixbuf_new_from_file_at_scale (name, scale * icon_size, scale * icon_size, TRUE, NULL);
+ }
else
{
GError *error = NULL;
@@ -2418,7 +2426,7 @@
if (buffer == NULL)
{
- g_print ("Unable to load icon '%s': %s", name, error->message);
+ g_warning ("Unable to load icon '%s': %s", name, error->message);
g_error_free (error);
return;
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/notify-osd-0.9.35+16.04.20151118/tests/Makefile.am new/notify-osd-0.9.35+16.04.20151201/tests/Makefile.am
--- old/notify-osd-0.9.35+16.04.20151118/tests/Makefile.am 2015-11-18 17:38:55.000000000 +0100
+++ new/notify-osd-0.9.35+16.04.20151201/tests/Makefile.am 2015-12-01 09:28:50.000000000 +0100
@@ -61,7 +61,7 @@
$(WNCK_CFLAGS) \
$(DBUS_CFLAGS) \
$(LIBNOTIFY_CFLAGS) \
- -DSRCDIR=\""$(top_srcdir)"\" \
+ -DSRCDIR=\""$(abs_top_srcdir)"\" \
-I$(top_srcdir)/src \
-I$(top_srcdir)/
1
0
Hello community,
here is the log from the commit of package roundcubemail for openSUSE:Factory checked in at 2016-01-01 19:48:53
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/roundcubemail (Old)
and /work/SRC/openSUSE:Factory/.roundcubemail.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "roundcubemail"
Changes:
--------
--- /work/SRC/openSUSE:Factory/roundcubemail/roundcubemail.changes 2015-10-28 17:30:34.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.roundcubemail.new/roundcubemail.changes 2016-01-01 19:51:18.000000000 +0100
@@ -1,0 +2,32 @@
+Thu Dec 31 10:42:03 UTC 2015 - lars(a)linux-schulserver.de
+
+- Update to 1.1.4
+ Add workaround for https://bugs.php.net/bug.php?id=70757 (#1490582)
+ Fix duplicate messages in list and wrong count after delete (#1490572)
+ Fix so Installer requires PHP5
+ Make brute force attacks harder by re-generating security token on every failed login (#1490549)
+ Slow down brute-force attacks by waiting for a second after failed login (#1490549)
+ Fix .htaccess rewrite rules to not block .well-known URIs (#1490615)
+ Fix mail view scaling on iOS (#1490551)
+ Fix so database_attachments::cleanup() does not remove attachments from other sessions (#1490542)
+ Fix responses list update issue after response name change (#1490555)
+ Fix bug where message preview was unintentionally reset on check-recent action (#1490563)
+ Fix bug where HTML messages with invalid/excessive css styles couldn't be displayed (#1490539)
+ Fix redundant blank lines when using HTML and top posting (#1490576)
+ Fix redundant blank lines on start of text after html to text conversion (#1490577)
+ Fix HTML sanitizer to skip <!-- node type X --> in output (#1490583)
+ Fix invalid LDAP query in ACL user autocompletion (#1490591)
+ Fix regression in displaying contents of message/rfc822 parts (#1490606)
+ Fix handling of message/rfc822 attachments on replies and forwards (#1490607)
+ Fix PDF support detection in Firefox > 19 (#1490610)
+ Fix path traversal vulnerability (CWE-22) in setting a skin (#1490620)
+ Fix so drag-n-drop of text (e.g. recipient addresses) on compose page actually works (#1490619)
+
+- explicitely add required PHP packages (according to INSTALL):
+ + php-dom, php-json, php-sockets
+- also recommend additional PHP packages:
+ + php-zip, php-pear-Crypt_GPG
+- use generic php- prefix also for recommended packages (no explicit php5-)
+- no Dockerfile readme any more
+
+-------------------------------------------------------------------
Old:
----
roundcubemail-1.1.3.tar.gz
New:
----
roundcubemail-1.1.4.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ roundcubemail.spec ++++++
--- /var/tmp/diff_new_pack.S462oK/_old 2016-01-01 19:51:19.000000000 +0100
+++ /var/tmp/diff_new_pack.S462oK/_new 2016-01-01 19:51:19.000000000 +0100
@@ -17,7 +17,7 @@
Name: roundcubemail
-Version: 1.1.3
+Version: 1.1.4
Release: 0
Summary: A modern browser-based multilingual IMAP client
License: GPL-3.0+ and GPL-2.0 and BSD-3-Clause
@@ -42,13 +42,16 @@
Requires: http_daemon
Requires: mod_php_any >= 5.3
+Requires: php-dom
Requires: php-exif
Requires: php-gettext
Requires: php-iconv
+Requires: php-json
Requires: php-mbstring
Requires: php-mcrypt
Requires: php-openssl
Requires: php-session
+Requires: php-sockets
Requires: php_any_db
## Requires: for upstream dep package
@@ -63,8 +66,10 @@
Recommends: logrotate
Recommends: php-mysql
-Recommends: php5-intl
-Recommends: php5-fileinfo
+Recommends: php-intl
+Recommends: php-fileinfo
+Recommends: php-zip
+Recommends: php-pear-Crypt_GPG >= 1.2.0
Provides: roundcube_framework = %{version}
Conflicts: roundcube-framework
@@ -100,7 +105,7 @@
# remove shebang from chpass-wrapper
sed -i '1d' plugins/password/helpers/chpass-wrapper.py
# remove INSTALL doc
-%{__rm} INSTALL Dockerfile
+%{__rm} INSTALL
%build
++++++ roundcubemail-1.1.3.tar.gz -> roundcubemail-1.1.4.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/roundcubemail-1.1.3/.htaccess new/roundcubemail-1.1.4/.htaccess
--- old/roundcubemail-1.1.3/.htaccess 2015-09-13 21:10:02.000000000 +0200
+++ new/roundcubemail-1.1.4/.htaccess 2015-12-23 10:18:12.000000000 +0100
@@ -31,7 +31,7 @@
# security rules:
# - deny access to files not containing a dot or starting with a dot
# in all locations except installer directory
-RewriteRule ^(?!installer|[a-f0-9]{16})(\.?[^\.]+)$ - [F]
+RewriteRule ^(?!installer|\.well-known\/|[a-f0-9]{16})(\.?[^\.]+)$ - [F]
# - deny access to some locations
RewriteRule ^/?(\.git|\.tx|SQL|bin|config|logs|temp|tests|program\/(include|lib|localization|steps)) - [F]
# - deny access to some documentation files
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/roundcubemail-1.1.3/CHANGELOG new/roundcubemail-1.1.4/CHANGELOG
--- old/roundcubemail-1.1.3/CHANGELOG 2015-09-13 21:10:02.000000000 +0200
+++ new/roundcubemail-1.1.4/CHANGELOG 2015-12-23 10:18:12.000000000 +0100
@@ -1,6 +1,31 @@
CHANGELOG Roundcube Webmail
===========================
+RELEASE 1.1.4
+-------------
+- Add workaround for https://bugs.php.net/bug.php?id=70757 (#1490582)
+- Fix duplicate messages in list and wrong count after delete (#1490572)
+- Fix so Installer requires PHP5
+- Make brute force attacks harder by re-generating security token on every failed login (#1490549)
+- Slow down brute-force attacks by waiting for a second after failed login (#1490549)
+- Fix .htaccess rewrite rules to not block .well-known URIs (#1490615)
+- Fix mail view scaling on iOS (#1490551)
+- Fix so database_attachments::cleanup() does not remove attachments from other sessions (#1490542)
+- Fix responses list update issue after response name change (#1490555)
+- Fix bug where message preview was unintentionally reset on check-recent action (#1490563)
+- Fix bug where HTML messages with invalid/excessive css styles couldn't be displayed (#1490539)
+- Fix redundant blank lines when using HTML and top posting (#1490576)
+- Fix redundant blank lines on start of text after html to text conversion (#1490577)
+- Fix HTML sanitizer to skip <!-- node type X --> in output (#1490583)
+- Fix invalid LDAP query in ACL user autocompletion (#1490591)
+- Fix regression in displaying contents of message/rfc822 parts (#1490606)
+- Fix handling of message/rfc822 attachments on replies and forwards (#1490607)
+- Fix PDF support detection in Firefox > 19 (#1490610)
+- Fix path traversal vulnerability (CWE-22) in setting a skin (#1490620)
+- Fix so drag-n-drop of text (e.g. recipient addresses) on compose page actually works (#1490619)
+
+RELEASE 1.1.3
+-------------
- Fix closing of nested menus (#1490443)
- Fix so E_DEPRECATED errors from PEAR libs are ignored by error_reporting change (#1490281)
- Fix compatibility with PHP 5.3 in rcube_ldap class (#1490424)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/roundcubemail-1.1.3/Dockerfile new/roundcubemail-1.1.4/Dockerfile
--- old/roundcubemail-1.1.3/Dockerfile 2015-09-13 21:10:02.000000000 +0200
+++ new/roundcubemail-1.1.4/Dockerfile 1970-01-01 01:00:00.000000000 +0100
@@ -1,34 +0,0 @@
-FROM debian:latest
-MAINTAINER Alex Brandt <alunduil(a)alunduil.com>
-
-EXPOSE 80 443
-
-RUN apt-get -qq update
-RUN apt-get install -qq apache2-mpm-event
-
-RUN sed -e 's|/var/www|&/public_html|' -e 's/\(Log \+\)[^ ]\+/\1"|cat"/' -i /etc/apache2/sites-available/default
-RUN a2ensite default
-
-RUN sed -e 's|/var/www|&/public_html|' -e 's/\(Log \+\)[^ ]\+/\1"|cat"/' -i /etc/apache2/sites-available/default-ssl
-RUN sed -e '/SSLCertificateKeyFile/s|ssl-cert-snakeoil.key|ssl-cert.key|' -e '/SSLCertificateFile/s|ssl-cert-snakeoil.pem|ssl-cert.pem|' -i /etc/apache2/sites-available/default-ssl
-RUN ln -snf ssl-cert-snakeoil.pem /etc/ssl/certs/ssl-cert.pem
-RUN ln -snf ssl-cert-snakeoil.key /etc/ssl/private/ssl-cert.key
-RUN a2ensite default-ssl
-
-RUN a2enmod expires
-RUN a2enmod headers
-RUN a2enmod ssl
-
-RUN apt-get install -qq php5 php-pear php5-mysql php5-pgsql php5-sqlite
-RUN pear install mail_mime mail_mimedecode net_smtp net_idna2-beta auth_sasl net_sieve crypt_gpg
-
-RUN rm -rf /var/www
-ADD . /var/www
-
-RUN echo -e '<?php\n$config = array();\n' > /var/www/config/config.inc.php
-RUN rm -rf /var/www/installer
-
-RUN . /etc/apache2/envvars && chown -R ${APACHE_RUN_USER}:${APACHE_RUN_GROUP} /var/www/temp /var/www/logs
-
-ENTRYPOINT [ "/usr/sbin/apache2ctl", "-D", "FOREGROUND" ]
-CMD [ "-k", "start" ]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/roundcubemail-1.1.3/INSTALL new/roundcubemail-1.1.4/INSTALL
--- old/roundcubemail-1.1.3/INSTALL 2015-09-13 21:10:02.000000000 +0200
+++ new/roundcubemail-1.1.4/INSTALL 2015-12-23 10:18:12.000000000 +0100
@@ -11,7 +11,7 @@
* The Apache, Lighttpd, Cherokee or Hiawatha web server
* .htaccess support allowing overrides for DirectoryIndex
-* PHP Version 5.3.7 or greater including
+* PHP Version 5.3.7 or greater (but not PHP 7) including
- PCRE, DOM, JSON, Session, Sockets (required)
- PHP Data Objects (PDO) with driver for either MySQL, PostgreSQL or SQLite (required)
- Libiconv, Zip (recommended)
@@ -168,6 +168,12 @@
mod_rewrite for Apache webserver and double check access to the above listed
directories and their contents is denied.
+NOTE: In Apache 2.4, support for .htaccess files has been disabled by
+default. Therefore you first need to enable this in your Apache main or
+virtual host config by with:
+
+ AllowOverride all
+
UPGRADING
=========
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/roundcubemail-1.1.3/bin/installto.sh new/roundcubemail-1.1.4/bin/installto.sh
--- old/roundcubemail-1.1.3/bin/installto.sh 2015-09-13 21:10:02.000000000 +0200
+++ new/roundcubemail-1.1.4/bin/installto.sh 2015-12-23 10:18:12.000000000 +0100
@@ -60,6 +60,8 @@
break;
}
}
+ // remove old (<1.0) .htaccess file
+ @unlink("$target_dir/program/.htaccess");
echo "done.\n\n";
if (is_dir("$target_dir/skins/default")) {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/roundcubemail-1.1.3/composer.json-dist new/roundcubemail-1.1.4/composer.json-dist
--- old/roundcubemail-1.1.3/composer.json-dist 2015-09-13 21:10:02.000000000 +0200
+++ new/roundcubemail-1.1.4/composer.json-dist 2015-12-23 10:18:12.000000000 +0100
@@ -23,7 +23,7 @@
"pear-pear.php.net/net_idna2": "~0.1.1",
"pear-pear.php.net/net_sieve": "~1.3.4",
"pear-pear.php.net/mail_mime": "~1.9.0",
- "pear-pear.php.net/net_smtp": "~1.6.3",
+ "pear-pear.php.net/net_smtp": "~1.7.1",
"patchwork/utf8": "~1.2.3"
},
"require-dev": {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/roundcubemail-1.1.3/config/.htaccess new/roundcubemail-1.1.4/config/.htaccess
--- old/roundcubemail-1.1.3/config/.htaccess 2015-09-13 21:10:02.000000000 +0200
+++ new/roundcubemail-1.1.4/config/.htaccess 2015-12-23 10:18:12.000000000 +0100
@@ -1,2 +1,7 @@
# deny webserver access to this directory
-Deny from all
+<ifModule mod_authz_core.c>
+ Require all denied
+</ifModule>
+<ifModule !mod_authz_core.c>
+ Deny from all
+</ifModule>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/roundcubemail-1.1.3/index.php new/roundcubemail-1.1.4/index.php
--- old/roundcubemail-1.1.3/index.php 2015-09-13 21:10:02.000000000 +0200
+++ new/roundcubemail-1.1.4/index.php 2015-12-23 10:18:12.000000000 +0100
@@ -2,7 +2,7 @@
/*
+-------------------------------------------------------------------------+
| Roundcube Webmail IMAP Client |
- | Version 1.1.3 |
+ | Version 1.1.4 |
| |
| Copyright (C) 2005-2015, The Roundcube Dev Team |
| |
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/roundcubemail-1.1.3/installer/check.php new/roundcubemail-1.1.4/installer/check.php
--- old/roundcubemail-1.1.3/installer/check.php 2015-09-13 21:10:02.000000000 +0200
+++ new/roundcubemail-1.1.4/installer/check.php 2015-12-23 10:18:12.000000000 +0100
@@ -93,8 +93,14 @@
define('MIN_PHP_VERSION', '5.3.7');
if (version_compare(PHP_VERSION, MIN_PHP_VERSION, '>=')) {
- $RCI->pass('Version', 'PHP ' . PHP_VERSION . ' detected');
-} else {
+ if (PHP_MAJOR_VERSION != 5) {
+ $RCI->fail('Version', 'PHP5 is required, ' . PHP_VERSION . ' detected');
+ }
+ else {
+ $RCI->pass('Version', 'PHP ' . PHP_VERSION . ' detected');
+ }
+}
+else {
$RCI->fail('Version', 'PHP Version ' . MIN_PHP_VERSION . ' or greater is required ' . PHP_VERSION . ' detected');
}
?>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/roundcubemail-1.1.3/installer/index.php new/roundcubemail-1.1.4/installer/index.php
--- old/roundcubemail-1.1.3/installer/index.php 2015-09-13 21:10:02.000000000 +0200
+++ new/roundcubemail-1.1.4/installer/index.php 2015-12-23 10:18:12.000000000 +0100
@@ -3,7 +3,7 @@
/*
+-------------------------------------------------------------------------+
| Roundcube Webmail setup tool |
- | Version 1.1.3 |
+ | Version 1.1.4 |
| |
| Copyright (C) 2009-2015, The Roundcube Dev Team |
| |
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/roundcubemail-1.1.3/logs/.gitignore new/roundcubemail-1.1.4/logs/.gitignore
--- old/roundcubemail-1.1.3/logs/.gitignore 2015-09-13 21:10:02.000000000 +0200
+++ new/roundcubemail-1.1.4/logs/.gitignore 1970-01-01 01:00:00.000000000 +0100
@@ -1 +0,0 @@
-*
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/roundcubemail-1.1.3/logs/.htaccess new/roundcubemail-1.1.4/logs/.htaccess
--- old/roundcubemail-1.1.3/logs/.htaccess 2015-09-13 21:10:02.000000000 +0200
+++ new/roundcubemail-1.1.4/logs/.htaccess 2015-12-23 10:18:12.000000000 +0100
@@ -1,2 +1,7 @@
# deny webserver access to this directory
-Deny from all
+<ifModule mod_authz_core.c>
+ Require all denied
+</ifModule>
+<ifModule !mod_authz_core.c>
+ Deny from all
+</ifModule>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/roundcubemail-1.1.3/plugins/acl/acl.php new/roundcubemail-1.1.4/plugins/acl/acl.php
--- old/roundcubemail-1.1.3/plugins/acl/acl.php 2015-09-13 21:10:02.000000000 +0200
+++ new/roundcubemail-1.1.4/plugins/acl/acl.php 2015-12-23 10:18:12.000000000 +0100
@@ -739,7 +739,11 @@
$config['fieldmap']['uid'] = $uid_field;
// search in UID and name fields
- $config['search_fields'] = array_values($config['fieldmap']);
+ // $name_field can be in a form of <field>:<modifier> (#1490591)
+ $name_field = preg_replace('/:.*$/', '', $name_field);
+ $search = array_unique(array($name_field, $uid_field));
+
+ $config['search_fields'] = $search;
$config['required_fields'] = array($uid_field);
// set search filter
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/roundcubemail-1.1.3/plugins/database_attachments/database_attachments.php new/roundcubemail-1.1.4/plugins/database_attachments/database_attachments.php
--- old/roundcubemail-1.1.3/plugins/database_attachments/database_attachments.php 2015-09-13 21:10:03.000000000 +0200
+++ new/roundcubemail-1.1.4/plugins/database_attachments/database_attachments.php 2015-12-23 10:18:12.000000000 +0100
@@ -22,7 +22,7 @@
protected $cache;
// A prefix for the cache key used in the session and in the key field of the cache table
- protected $prefix = "db_attach";
+ const PREFIX = "ATTACH";
/**
* Save a newly uploaded attachment
@@ -153,9 +153,16 @@
$ttl = 12 * 60 * 60; // default: 12 hours
$ttl = $rcmail->config->get('database_attachments_cache_ttl', $ttl);
$type = $rcmail->config->get('database_attachments_cache', 'db');
+ $prefix = self::PREFIX;
+
+ // Add session identifier to the prefix to prevent from removing attachments
+ // in other sessions of the same user (#1490542)
+ if ($id = session_id()) {
+ $prefix .= $id;
+ }
// Init SQL cache (disable cache data serialization)
- $this->cache = $rcmail->get_cache($this->prefix, $type, $ttl, false);
+ $this->cache = $rcmail->get_cache($prefix, $type, $ttl, false);
}
return $this->cache;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/roundcubemail-1.1.3/plugins/redundant_attachments/redundant_attachments.php new/roundcubemail-1.1.4/plugins/redundant_attachments/redundant_attachments.php
--- old/roundcubemail-1.1.3/plugins/redundant_attachments/redundant_attachments.php 2015-09-13 21:10:03.000000000 +0200
+++ new/roundcubemail-1.1.4/plugins/redundant_attachments/redundant_attachments.php 2015-12-23 10:18:12.000000000 +0100
@@ -36,7 +36,7 @@
class redundant_attachments extends filesystem_attachments
{
// A prefix for the cache key used in the session and in the key field of the cache table
- private $prefix = "ATTACH";
+ const PREFIX = "ATTACH";
// rcube_cache instance for SQL DB
private $cache;
@@ -46,13 +46,6 @@
private $loaded;
- /**
- * Default constructor
- */
- function init()
- {
- parent::init();
- }
/**
* Loads plugin configuration and initializes cache object(s)
@@ -68,15 +61,20 @@
// load configuration
$this->load_config();
- $ttl = 12 * 60 * 60; // 12 hours
- $ttl = $rcmail->config->get('redundant_attachments_cache_ttl', $ttl);
+ $ttl = 12 * 60 * 60; // 12 hours
+ $ttl = $rcmail->config->get('redundant_attachments_cache_ttl', $ttl);
+ $prefix = self::PREFIX;
+
+ if ($id = session_id()) {
+ $prefix .= $id;
+ }
// Init SQL cache (disable cache data serialization)
- $this->cache = $rcmail->get_cache($this->prefix, 'db', $ttl, false);
+ $this->cache = $rcmail->get_cache($prefix, 'db', $ttl, false);
// Init memcache (fallback) cache
if ($rcmail->config->get('redundant_attachments_memcache')) {
- $this->mem_cache = $rcmail->get_cache($this->prefix, 'memcache', $ttl, false);
+ $this->mem_cache = $rcmail->get_cache($prefix, 'memcache', $ttl, false);
}
$this->loaded = true;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/roundcubemail-1.1.3/program/include/iniset.php new/roundcubemail-1.1.4/program/include/iniset.php
--- old/roundcubemail-1.1.3/program/include/iniset.php 2015-09-13 21:10:03.000000000 +0200
+++ new/roundcubemail-1.1.4/program/include/iniset.php 2015-12-23 10:18:12.000000000 +0100
@@ -21,7 +21,7 @@
*/
// application constants
-define('RCMAIL_VERSION', '1.1.3');
+define('RCMAIL_VERSION', '1.1.4');
define('RCMAIL_START', microtime(true));
if (!defined('INSTALL_PATH')) {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/roundcubemail-1.1.3/program/include/rcmail.php new/roundcubemail-1.1.4/program/include/rcmail.php
--- old/roundcubemail-1.1.3/program/include/rcmail.php 2015-09-13 21:10:03.000000000 +0200
+++ new/roundcubemail-1.1.4/program/include/rcmail.php 2015-12-23 10:18:12.000000000 +0100
@@ -592,6 +592,8 @@
// try to log in
if (!$storage->connect($host, $username, $pass, $port, $ssl)) {
+ // Wait a second to slow down brute-force attacks (#1490549)
+ sleep(1);
return false;
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/roundcubemail-1.1.3/program/include/rcmail_output_html.php new/roundcubemail-1.1.4/program/include/rcmail_output_html.php
--- old/roundcubemail-1.1.3/program/include/rcmail_output_html.php 2015-09-13 21:10:03.000000000 +0200
+++ new/roundcubemail-1.1.4/program/include/rcmail_output_html.php 2015-12-23 10:18:12.000000000 +0100
@@ -225,6 +225,17 @@
*/
public function set_skin($skin)
{
+ // Sanity check to prevent from path traversal vulnerability (#1490620)
+ if (strpos($skin, '/') !== false || strpos($skin, "\\") !== false) {
+ rcube::raise_error(array(
+ 'file' => __FILE__,
+ 'line' => __LINE__,
+ 'message' => 'Invalid skin name'
+ ), true, false);
+
+ return false;
+ }
+
$valid = false;
$path = RCUBE_INSTALL_PATH . 'skins/';
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/roundcubemail-1.1.3/program/js/app.js new/roundcubemail-1.1.4/program/js/app.js
--- old/roundcubemail-1.1.3/program/js/app.js 2015-09-13 21:10:03.000000000 +0200
+++ new/roundcubemail-1.1.4/program/js/app.js 2015-12-23 10:18:12.000000000 +0100
@@ -2488,22 +2488,23 @@
// removes messages that doesn't exists from list selection array
this.update_selection = function()
{
- var selected = this.message_list.selection,
- rows = this.message_list.rows,
+ var list = this.message_list,
+ selected = list.selection,
+ rows = list.rows,
i, selection = [];
for (i in selected)
if (rows[selected[i]])
selection.push(selected[i]);
- this.message_list.selection = selection;
+ list.selection = selection;
// reset preview frame, if currently previewed message is not selected (has been removed)
try {
var win = this.get_frame_window(this.env.contentframe),
id = win.rcmail.env.uid;
- if (id && $.inArray(id, selection) < 0)
+ if (id && !list.in_selection(id))
this.show_contentframe(false);
}
catch (e) {};
@@ -7795,7 +7796,7 @@
// html5 file-drop API
this.document_drag_hover = function(e, over)
{
- e.preventDefault();
+ // don't e.preventDefault() here to not block text dragging on the page (#1490619)
$(this.gui_objects.filedrop)[(over?'addClass':'removeClass')]('active');
};
@@ -8154,14 +8155,10 @@
if (!this.env.browser_capabilities)
this.env.browser_capabilities = {};
- if (this.env.browser_capabilities.pdf === undefined)
- this.env.browser_capabilities.pdf = this.pdf_support_check();
-
- if (this.env.browser_capabilities.flash === undefined)
- this.env.browser_capabilities.flash = this.flash_support_check();
-
- if (this.env.browser_capabilities.tif === undefined)
- this.tif_support_check();
+ $.each(['pdf', 'flash', 'tif'], function() {
+ if (ref.env.browser_capabilities[this] === undefined)
+ ref.env.browser_capabilities[this] = ref[this + '_support_check']();
+ });
};
// Returns browser capabilities string
@@ -8180,11 +8177,14 @@
this.tif_support_check = function()
{
- var img = new Image();
+ window.setTimeout(function() {
+ var img = new Image();
+ img.onload = function() { ref.env.browser_capabilities.tif = 1; };
+ img.onerror = function() { ref.env.browser_capabilities.tif = 0; };
+ img.src = ref.assets_path('program/resources/blank.tif');
+ }, 10);
- img.onload = function() { ref.env.browser_capabilities.tif = 1; };
- img.onerror = function() { ref.env.browser_capabilities.tif = 0; };
- img.src = this.assets_path('program/resources/blank.tif');
+ return 0;
};
this.pdf_support_check = function()
@@ -8220,6 +8220,14 @@
return 1;
}
+ window.setTimeout(function() {
+ $('<object>').css({position: 'absolute', left: '-10000px'})
+ .attr({data: ref.assets_path('program/resources/dummy.pdf'), width: 1, height: 1, type: 'application/pdf'})
+ .load(function() { ref.env.browser_capabilities.pdf = 1; })
+ .error(function() { ref.env.browser_capabilities.pdf = 0; })
+ .appendTo($('body'));
+ }, 10);
+
return 0;
};
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/roundcubemail-1.1.3/program/js/app.min.js new/roundcubemail-1.1.4/program/js/app.min.js
--- old/roundcubemail-1.1.3/program/js/app.min.js 2015-09-13 21:10:03.000000000 +0200
+++ new/roundcubemail-1.1.4/program/js/app.min.js 2015-12-23 10:18:12.000000000 +0100
@@ -122,188 +122,188 @@
a))};this.checkmail=function(){var a=this.set_busy(!0,"checkingmail"),b=this.check_recent_params();this.http_post("check-recent",b,a)};this.filter_mailbox=function(a){if(!this.filter_disabled){var b=this.set_busy(!0,"searching");this.clear_message_list();this.env.current_page=1;this.env.search_filter=a;this.http_request("search",this.search_params(!1,a),b)}};this.refresh_list=function(){this.list_mailbox(this.env.mailbox,this.env.current_page||1,null,{_clear:1},!0);this.message_list&&this.message_list.clear_selection()};
this.list_mailbox=function(a,b,d,e,f){var h=window;"object"!=typeof e&&(e={});a||(a=this.env.mailbox?this.env.mailbox:"INBOX");d&&(e._sort=d);this.env.mailbox!=a?(b=1,this.env.current_page=b,this.env.search_scope="base",this.select_all_mode=!1,this.reset_search_filter()):this.env.search_request&&(e._search=this.env.search_request);if(!f){this.clear_message_list();if(a!=this.env.mailbox||a==this.env.mailbox&&!b&&!d)e._refresh=1;this.select_folder(a,"",!0);this.unmark_folder(a,"recent","",!0);this.env.mailbox=
a}if(this.gui_objects.messagelist)this.list_mailbox_remote(a,b,e);else{if(d=this.get_frame_window(this.env.contentframe))h=d,e._framed=1;this.env.uid&&(e._uid=this.env.uid);a&&(this.set_busy(!0,"loading"),e._mbox=a,b&&(e._page=b),this.location_href(e,h))}};this.clear_message_list=function(){this.env.messages={};this.show_contentframe(!1);this.message_list&&this.message_list.clear(!0)};this.list_mailbox_remote=function(a,b,d){var e=this.set_busy(!0,"loading");"object"!=typeof d&&(d={});d._mbox=a;b&&
-(d._page=b);this.http_request("list",d,e);this.update_state({_mbox:a,_page:b&&1<b?b:null})};this.update_selection=function(){var a=this.message_list.selection,b=this.message_list.rows,d,e=[];for(d in a)b[a[d]]&&e.push(a[d]);this.message_list.selection=e;try{var f=this.get_frame_window(this.env.contentframe).rcmail.env.uid;f&&0>$.inArray(f,e)&&this.show_contentframe(!1)}catch(h){}};this.expand_unread=function(){for(var a,b=this.message_list.tbody.firstChild;b;)1==b.nodeType&&(a=this.message_list.rows[b.uid])&&
-a.unread_children&&(this.message_list.expand_all(a),this.set_unread_children(a.uid)),b=b.nextSibling;return!1};this.expand_message_row=function(a,b){var d=this.message_list.rows[b];d.expanded=!d.expanded;this.set_unread_children(b);d.expanded=!d.expanded;this.message_list.expand_row(a,b)};this.expand_threads=function(){if(this.env.threading&&this.env.autoexpand_threads&&this.message_list)switch(this.env.autoexpand_threads){case 2:this.expand_unread();break;case 1:this.message_list.expand_all()}};
-this.init_threads=function(a,b){if(b&&b!=this.env.mailbox)return!1;for(var d=0,e=a.length;d<e;d++)this.add_tree_icons(a[d]);this.expand_threads()};this.add_tree_icons=function(a){var b,d,e,f,h=[],g=[],k,n=this.message_list.rows;for(k=a?n[a]?n[a].obj:null:this.message_list.tbody.firstChild;k;){if(1==k.nodeType&&(d=n[k.uid]))if(d.depth){for(b=h.length-1;0<=b&&!(e=h[b].length,e>d.depth?(f=e-d.depth,h[b][f]&2||(h[b][f]=h[b][f]?h[b][f]+2:2)):e==d.depth&&(h[b][0]&2||(h[b][0]+=2)),d.depth>e);b--);h.push(Array(d.depth));
-h[h.length-1][0]=1;g.push(d.uid)}else{if(h.length){for(b in h)this.set_tree_icons(g[b],h[b]);h=[];g=[]}if(a&&k!=n[a].obj)break}k=k.nextSibling}if(h.length)for(b in h)this.set_tree_icons(g[b],h[b])};this.set_tree_icons=function(a,b){var d,e=[],f="",h=b.length;for(d=0;d<h;d++)2<b[d]?e.push({"class":"l3",width:15}):1<b[d]?e.push({"class":"l2",width:15}):0<b[d]?e.push({"class":"l1",width:15}):e.length&&!e[e.length-1]["class"]?e[e.length-1].width+=15:e.push({"class":null,width:15});for(d=e.length-1;0<=
-d;d--)f=e[d]["class"]?f+('<div class="tree '+e[d]["class"]+'" />'):f+('<div style="width:'+e[d].width+'px" />');f&&$("#rcmtab"+this.html_identifier(a,!0)).html(f)};this.update_thread_root=function(a,b){if(this.env.threading){var d=this.message_list.find_root(a);if(a!=d){var e=this.message_list.rows[d];if("read"==b&&e.unread_children)e.unread_children--;else if("unread"==b&&e.has_children)e.unread_children=e.unread_children?e.unread_children+1:1;else return;this.set_message_icon(d);this.set_unread_children(d)}}};
-this.update_thread=function(a){if(!this.env.threading)return 0;var b,d=0,e=this.message_list.rows,f=e[a],h=e[a].depth,m=[];f.depth?f.unread&&(a=this.message_list.find_root(a),e[a].unread_children--,this.set_unread_children(a)):d--;a=f.parent_uid;for(f=f.obj.nextSibling;f;){if(1==f.nodeType&&(b=e[f.uid])){if(!b.depth||b.depth<=h)break;b.depth--;$("#rcmtab"+b.id).width(15*b.depth).html("");b.depth?(b.depth==h&&(b.parent_uid=a),b.unread&&m.length&&m[m.length-1].unread_children++):(d++,b.parent_uid=0,
-b.has_children&&($("#"+b.id+" .leaf:first").attr("id","rcmexpando"+b.id).attr("class","none"!=b.obj.style.display?"expanded":"collapsed").bind("mousedown",{uid:b.uid},function(a){return g.expand_message_row(a,a.data.uid)}),b.unread_children=0,m.push(b)),"none"==b.obj.style.display&&$(b.obj).show())}f=f.nextSibling}for(b=0;b<m.length;b++)this.set_unread_children(m[b].uid);return d};this.delete_excessive_thread_rows=function(){for(var a=this.message_list.rows,b=this.message_list.tbody.firstChild,d=
-this.env.pagesize+1;b;)1==b.nodeType&&(r=a[b.uid])&&(!r.depth&&d&&d--,d||this.message_list.remove_row(b.uid)),b=b.nextSibling};this.set_message_icon=function(a){var b="",d=this.message_list.rows[a];if(!d)return!1;d.icon&&(a="msgicon",d.deleted?(a+=" deleted",b+=this.get_label("deleted")+" "):d.unread?(a+=" unread",b+=this.get_label("unread")+" "):d.unread_children&&(a+=" unreadchildren"),d.msgicon==d.icon&&(d.replied&&(a+=" replied",b+=this.get_label("replied")+" "),d.forwarded&&(a+=" forwarded",
-b+=this.get_label("forwarded")+" "),a+=" status"),$(d.icon).attr("class",a).attr("title",b));d.msgicon&&d.msgicon!=d.icon&&(b="",a="msgicon",!d.unread&&d.unread_children&&(a+=" unreadchildren"),d.replied&&(a+=" replied",b+=this.get_label("replied")+" "),d.forwarded&&(a+=" forwarded",b+=this.get_label("forwarded")+" "),$(d.msgicon).attr("class",a).attr("title",b));d.flagicon&&(a=d.flagged?"flagged":"unflagged",b=this.get_label(a),$(d.flagicon).attr("class",a).attr("aria-label",b).attr("title",b))};
-this.set_message_status=function(a,b,d){var e=this.message_list.rows[a];if(!e)return!1;"unread"==b&&e.unread!=d&&this.update_thread_root(a,d?"unread":"read");-1<$.inArray(b,["unread","deleted","replied","forwarded","flagged"])&&(e[b]=d)};this.set_message=function(a,b,d){var e=this.message_list&&this.message_list.rows[a];if(!e)return!1;b&&this.set_message_status(a,b,d);if(-1<$.inArray(b,["unread","deleted","flagged"]))$(e.obj)[e[b]?"addClass":"removeClass"](b);this.set_unread_children(a);this.set_message_icon(a)};
-this.set_unread_children=function(a){a=this.message_list.rows[a];a.parent_uid||(a.unread||!a.unread_children||a.expanded?$(a.obj).removeClass("unroot"):$(a.obj).addClass("unroot"))};this.copy_messages=function(a,b){if(a&&"object"===typeof a)a=a.id;else if(!a)return this.folder_selector(b,function(a){g.command("copy",a)});if(a&&a!=this.env.mailbox){var d=this.selection_post_data({_target_mbox:a});d._uid&&this.http_post("copy",d,this.display_message(this.get_label("copyingmessage"),"loading"))}};this.move_messages=
-function(a,b){if(a&&"object"===typeof a)a=a.id;else if(!a)return this.folder_selector(b,function(a){g.command("move",a)});if(a&&(a!=this.env.mailbox||this.is_multifolder_listing())){var d=!1,e=this.selection_post_data({_target_mbox:a});e._uid&&("show"==this.env.action?d=this.set_busy(!0,"movingmessage"):this.show_contentframe(!1),this.enable_command(this.env.message_commands,!1),this._with_selected_messages("move",e,d))}};this.delete_messages=function(a){var b=this.message_list,d=this.env.trash_mailbox;
-if(this.env.flag_for_deletion)return this.mark_message("delete"),!1;d&&this.env.mailbox!=d?this.env.delete_junk&&this.env.junk_mailbox&&this.env.mailbox==this.env.junk_mailbox?this.permanently_remove_messages():b&&b.modkey==SHIFT_KEY||a&&rcube_event.get_modifier(a)==SHIFT_KEY?confirm(this.get_label("deletemessagesconfirm"))&&this.permanently_remove_messages():this.move_messages(d):this.permanently_remove_messages();return!0};this.permanently_remove_messages=function(){var a=this.selection_post_data();
-a._uid&&(this.show_contentframe(!1),this._with_selected_messages("delete",a))};this._with_selected_messages=function(a,b,d){var e=0,f="delete"==a||!this.is_multifolder_listing();if(this.message_list){var h,g,k,n=[],l=this.message_list.get_selection();h=0;for(len=l.length;h<len;h++)g=l[h],this.env.threading&&(e+=this.update_thread(g),k=this.message_list.find_root(g),k!=g&&0>$.inArray(k,n)&&n.push(k)),f&&this.message_list.remove_row(g,this.env.display_next&&h==l.length-1);!this.env.display_next&&f&&
-this.message_list.clear_selection();h=0;for(len=n.length;h<len;h++)this.add_tree_icons(n[h])}0>e?b._count=-1*e:0<e&&f&&this.delete_excessive_thread_rows();f||(b._refresh=1);d||(d=this.display_message(this.get_label("move"==a?"movingmessage":"deletingmessage"),"loading"));this.http_post(a,b,d)};this.selection_post_data=function(a){"object"!=typeof a&&(a={});a._mbox=this.env.mailbox;if(!a._uid){var b=this.env.uid?[this.env.uid]:this.message_list.get_selection();a._uid=this.uids_to_list(b)}this.env.action&&
-(a._from=this.env.action);this.env.search_request&&(a._search=this.env.search_request);this.env.display_next&&this.env.next_uid&&(a._next_uid=this.env.next_uid);return a};this.mark_message=function(a,b){var d=[],e=[],f,h,g,k=this.message_list;b?d[0]=b:this.env.uid?d[0]=this.env.uid:k&&(d=k.get_selection());if(k)for(k.focus(),h=0,f=d.length;h<f;h++)g=d[h],("read"==a&&k.rows[g].unread||"unread"==a&&!k.rows[g].unread||"delete"==a&&!k.rows[g].deleted||"undelete"==a&&k.rows[g].deleted||"flagged"==a&&!k.rows[g].flagged||
-"unflagged"==a&&k.rows[g].flagged)&&e.push(g);else e=d;if(e.length||this.select_all_mode)switch(a){case "read":case "unread":this.toggle_read_status(a,e);break;case "delete":case "undelete":this.toggle_delete_status(e);break;case "flagged":case "unflagged":this.toggle_flagged_status(a,d)}};this.toggle_read_status=function(a,b){var d,e=b.length,f=this.selection_post_data({_uid:this.uids_to_list(b),_flag:a}),h=this.display_message(this.get_label("markingmessage"),"loading");for(d=0;d<e;d++)this.set_message(b[d],
-"unread","unread"==a?!0:!1);this.http_post("mark",f,h)};this.toggle_flagged_status=function(a,b){var d,e=b.length,f=this.selection_post_data({_uid:this.uids_to_list(b),_flag:a}),h=this.display_message(this.get_label("markingmessage"),"loading");for(d=0;d<e;d++)this.set_message(b[d],"flagged","flagged"==a?!0:!1);this.http_post("mark",f,h)};this.toggle_delete_status=function(a){var b=a.length,d,e,f=!0,h=this.message_list?this.message_list.rows:{};if(1==b)return!this.message_list||h[a[0]]&&!h[a[0]].deleted?
-this.flag_as_deleted(a):this.flag_as_undeleted(a),!0;for(d=0;d<b;d++)if(e=a[d],h[e]&&!h[e].deleted){f=!1;break}f?this.flag_as_undeleted(a):this.flag_as_deleted(a);return!0};this.flag_as_undeleted=function(a){var b,d=a.length,e=this.selection_post_data({_uid:this.uids_to_list(a),_flag:"undelete"}),f=this.display_message(this.get_label("markingmessage"),"loading");for(b=0;b<d;b++)this.set_message(a[b],"deleted",!1);this.http_post("mark",e,f)};this.flag_as_deleted=function(a){for(var b=[],d=this.selection_post_data({_uid:this.uids_to_list(a),
-_flag:"delete"}),e=this.display_message(this.get_label("markingmessage"),"loading"),f=this.message_list?this.message_list.rows:{},h=0,g=0,k=a.length;g<k;g++)uid=a[g],f[uid]&&(f[uid].unread&&(b[b.length]=uid),this.env.skip_deleted?(h+=this.update_thread(uid),this.message_list.remove_row(uid,this.env.display_next&&g==this.message_list.selection.length-1)):this.set_message(uid,"deleted",!0));this.env.skip_deleted&&this.message_list&&(this.env.display_next||this.message_list.clear_selection(),0>h?d._count=
--1*h:0<h&&this.delete_excessive_thread_rows());b.length&&(d._ruid=this.uids_to_list(b));this.env.skip_deleted&&this.env.display_next&&this.env.next_uid&&(d._next_uid=this.env.next_uid);this.http_post("mark",d,e)};this.flag_deleted_as_read=function(a){var b,d,e,f=this.message_list?this.message_list.rows:{};"string"==typeof a&&(a=a.split(","));d=0;for(e=a.length;d<e;d++)b=a[d],f[b]&&this.set_message(b,"unread",!1)};this.uids_to_list=function(a){return this.select_all_mode?"*":1>=a.length?a.join(","):
-a};this.set_button_titles=function(){var a="deletemessage";this.env.flag_for_deletion||!this.env.trash_mailbox||this.env.mailbox==this.env.trash_mailbox||this.env.delete_junk&&this.env.junk_mailbox&&this.env.mailbox==this.env.junk_mailbox||(a="movemessagetotrash");this.set_alttext("delete",a)};this.expunge_mailbox=function(a){var b,d={_mbox:a};a==this.env.mailbox&&(b=this.set_busy(!0,"loading"),d._reload=1,this.env.search_request&&(d._search=this.env.search_request));this.http_post("expunge",d,b)};
-this.purge_mailbox=function(a){var b,d={_mbox:a};if(!confirm(this.get_label("purgefolderconfirm")))return!1;a==this.env.mailbox&&(b=this.set_busy(!0,"loading"),d._reload=1);this.http_post("purge",d,b)};this.purge_mailbox_test=function(){return this.env.exists&&(this.env.mailbox==this.env.trash_mailbox||this.env.mailbox==this.env.junk_mailbox||this.env.mailbox.startsWith(this.env.trash_mailbox+this.env.delimiter)||this.env.mailbox.startsWith(this.env.junk_mailbox+this.env.delimiter))};this.login_user_keyup=
-function(a){var b=rcube_event.get_keycode(a),d=$("#rcmloginpwd");return 13==b&&d.length&&!d.val()?(d.focus(),rcube_event.cancel(a)):!0};this.open_compose_step=function(a){a=this.url("mail/compose",a);this.env.compose_extwin&&!this.env.extwin?this.open_window(a):(this.redirect(a),this.env.extwin&&window.resizeTo(Math.max(this.env.popup_width,$(window).width()),$(window).height()+24))};this.init_messageform=function(){if(!this.gui_objects.messageform)return!1;var a,b,d=$("[name='_from']"),e=$("[name='_to']"),
-f=$("input[name='_subject']"),h=$("[name='_message']").get(0),g="1"==$("input[name='_is_html']").val(),k=["cc","bcc","replyto","followupto"],n,l=this.opener();l&&"compose"==l.env.action&&(setTimeout(function(){1<opener.history.length?opener.history.back():l.redirect(l.get_task_url("mail"))},100),this.env.opened_extwin=!0);0<this.env.autocomplete_threads&&(n={threads:this.env.autocomplete_threads,sources:this.env.autocomplete_sources});this.init_address_input_events(e,n);for(a in k)this.init_address_input_events($("[name='_"+
-k[a]+"']"),n);g||(a=this.env.top_posting?0:h.value.length,"select-one"==d.prop("type")&&this.change_identity(d[0]),this.set_caret_pos(h,a),a&&$(h).scrollTop(h.scrollHeight));this.env.save_localstorage&&this.compose_restore_dialog(0,g);""==e.val()?b=e:""==f.val()?b=f:h&&(b=h);$(b).filter(":visible").focus();this.env.compose_focus_elem=document.activeElement;this.compose_field_hash(!0);this.auto_save_start()};this.compose_restore_dialog=function(a,b){var d,e,f,h=this.local_storage_get_item("compose.index",
-[]),m=function(a){++a<h.length&&g.compose_restore_dialog(a,b)};for(d=a||0;d<h.length;d++)if(e=h[d],f=this.local_storage_get_item("compose."+e,null,!0)){if(f.changed&&e==this.env.compose_id){this.restore_compose_form(e,b);break}if(!(this.env.draft_id&&f.draft_id&&f.draft_id!=this.env.draft_id||this.env.reply_msgid&&f.reply_msgid!=this.env.reply_msgid)&&f.changed&&f.session!=this.env.session_id){this.show_popup_dialog(this.get_label("restoresavedcomposedata").replace("$date",(new Date(f.changed)).toLocaleString()).replace("$subject",
-f._subject).replace(/\n/g,"<br/>"),this.get_label("restoremessage"),[{text:this.get_label("restore"),"class":"mainaction",click:function(){g.restore_compose_form(e,b);g.remove_compose_data(e);g.save_compose_form_local();$(this).dialog("close")}},{text:this.get_label("delete"),"class":"delete",click:function(){g.remove_compose_data(e);$(this).dialog("close");m(d)}},{text:this.get_label("ignore"),click:function(){$(this).dialog("close");m(d)}}]);break}}};this.init_address_input_events=function(a,b){this.env.recipients_delimiter=
-this.env.recipients_separator+" ";a.keydown(function(a){return g.ksearch_keydown(a,this,b)}).attr({autocomplete:"off","aria-autocomplete":"list","aria-expanded":"false",role:"combobox"})};this.submit_messageform=function(a,b){var d=this.gui_objects.messageform;if(d){if(!b&&this.env.is_sent)return this.show_popup_dialog(this.get_label("messageissent"),"",[{text:this.get_label("save"),"class":"mainaction",click:function(){g.submit_messageform(!1,!0);$(this).dialog("close")}},{text:this.get_label("cancel"),
-click:function(){$(this).dialog("close")}}]);var e=this.set_busy(!0,a||b?"savingmessage":"sendingmessage"),f=this.spellcheck_lang(),h=[];$("li",this.gui_objects.attachmentlist).each(function(){h.push(this.id.replace(/^rcmfile/,""))});$('input[name="_attachments"]',d).val(h.join());d.target="savetarget";d._draft.value=a?"1":"";d.action=this.add_url(d.action,"_unlock",e);d.action=this.add_url(d.action,"_lang",f);d.action=this.add_url(d.action,"_framed",1);b&&(d.action=this.add_url(d.action,"_saveonly",
-1));this.submit_timer=setTimeout(function(){g.set_busy(!1,null,e);g.display_message(g.get_label("requesttimedout"),"error")},1E3*this.env.request_timeout);d.submit()}};this.compose_recipient_select=function(a){var b,d,e=0;for(d=0;d<a.selection.length;d++)b=a.selection[d],this.env.contactdata[b]&&e++;this.enable_command("add-recipient",e)};this.compose_add_recipient=function(a){a||(a=$(this.env.focused_field).filter(":visible"),a=a.length?a.attr("id").replace("_",""):"to");var b=[],d=$("#_"+a),e=this.env.recipients_delimiter;
-if(this.contact_list&&this.contact_list.selection.length)for(var f,h=0;h<this.contact_list.selection.length;h++)if((f=this.contact_list.selection[h])&&this.env.contactdata[f]&&(b.push(this.env.contactdata[f]),"E"==f.charAt(0)&&0>this.env.contactdata[f].indexOf("@")&&d.length)){var g=f.substr(1);this.group2expand[g]={name:this.env.contactdata[f],input:d.get(0)};this.http_request("group-expand",{_source:this.env.source,_gid:g},!1)}b.length&&d.length&&(f=d.val(),h=RegExp(RegExp.escape(e)+"\\s*$"),f&&
-!h.test(f)&&(f+=e+" "),d.val(f+b.join(e+" ")+e+" ").change(),this.triggerEvent("add-recipient",{field:a,recipients:b}));return b.length};this.check_compose_input=function(a){var b=$("[name='_to']"),d=$("[name='_cc']"),e=$("[name='_bcc']"),f=$("[name='_from']"),h=$("[name='_subject']");if("text"==f.prop("type")&&!rcube_check_email(f.val(),!0))return alert(this.get_label("nosenderwarning")),f.focus(),!1;d=b.val()?b.val():d.val()?d.val():e.val();if(!rcube_check_email(d.replace(/^\s+/,"").replace(/[\s,;]+$/,
-""),!0))return alert(this.get_label("norecipientwarning")),b.focus(),!1;for(var m in this.env.attachments)if("object"===typeof this.env.attachments[m]&&!this.env.attachments[m].complete)return alert(this.get_label("notuploadedwarning")),!1;if(""==h.val()){var b={},k=$('<div class="prompt">').html('<div class="message">'+this.get_label("nosubjectwarning")+"</div>").appendTo(document.body),n=$("<input>").attr({type:"text",size:30}).val(this.get_label("nosubject")).appendTo(k),l=function(){h.val(n.val());
-k.dialog("close");g.command(a,{nocheck:!0})};b[this.get_label("sendmessage")]=function(){l($(this))};b[this.get_label("cancel")]=function(){h.focus();$(this).dialog("close")};k.dialog({modal:!0,resizable:!1,buttons:b,close:function(a,b){$(this).remove()}});n.select().keydown(function(a){13==a.which&&l()});return!1}if(!this.editor.get_content()&&!confirm(this.get_label("nobodywarning")))return this.editor.focus(),!1;this.editor.save();return!0};this.toggle_editor=function(a,b,d){b=this.editor.toggle(a.html,
-a.noconvert||!1);a.mode=a.html?"html":"plain";!b&&d&&(a.mode=a.html?"plain":"html",$(d.target).filter("select").val(a.mode));b&&$("input[name='_is_html']").val(a.html?1:0);return b};this.insert_response=function(a){a=this.env.textresponses[a]?this.env.textresponses[a].text:null;if(!a)return!1;this.editor.replace(a)};this.save_response=function(){var a={},b=this.editor.get_content({selection:!0,format:"text",nosig:!0}),d='<form class="propform"><div class="prop block"><label>'+this.get_label("responsename")+
-'</label><input type="text" name="name" id="ffresponsename" size="40" /></div><div class="prop block"><label>'+this.get_label("responsetext")+'</label><textarea name="text" id="ffresponsetext" cols="40" rows="8"></textarea></div></form>';a[this.gettext("save")]=function(a){a=$("#ffresponsename").val();var b=$("#ffresponsetext").val();if(!b)return $("#ffresponsetext").select(),!1;a||(a=b.substring(0,40));var d=g.display_message(g.get_label("savingresponse"),"loading");g.http_post("settings/responses",
-{_insert:1,_name:a,_text:b},d);$(this).dialog("close")};a[this.gettext("cancel")]=function(){$(this).dialog("close")};this.show_popup_dialog(d,this.gettext("newresponse"),a,{button_classes:["mainaction"]});$("#ffresponsetext").val(b);$("#ffresponsename").select()};this.add_response_item=function(a){var b=a.key;this.env.textresponses[b]=a;if(this.gui_objects.responseslist){var d=$("<li>").appendTo(this.gui_objects.responseslist);$("<a>").addClass("insertresponse active").attr("href","#").attr("rel",
-b).attr("tabindex","0").html(this.quote_html(a.name)).appendTo(d).mousedown(function(a){return rcube_event.cancel(a)}).bind("mouseup keypress",function(a){if("mouseup"==a.type||13==rcube_event.get_keycode(a))return g.command("insert-response",$(this).attr("rel")),$(document.body).trigger("mouseup"),rcube_event.cancel(a)})}};this.edit_responses=function(){};this.delete_response=function(a){!a&&this.responses_list&&(a=this.responses_list.get_selection()[0]);a&&confirm(this.get_label("deleteresponseconfirm"))&&
-this.http_post("settings/delete-response",{_key:a},!1)};this.spellcheck_state=function(){var a=this.editor.spellcheck_state();$.each(this.buttons.spellcheck||[],function(b,d){$("#"+d.id)[a?"addClass":"removeClass"]("selected")});return a};this.spellcheck_lang=function(){return this.editor.get_language()};this.spellcheck_lang_set=function(a){this.editor.set_language(a)};this.spellcheck_resume=function(a){this.editor.spellcheck_resume(a)};this.set_draft_id=function(a){if(a&&a!=this.env.draft_id){var b=
-{task:"mail",action:""};(b=this.opener(!1,b)||this.opener(!0,b))&&b.env.mailbox==this.env.drafts_mailbox&&b.command("checkmail");this.env.draft_id=a;$("input[name='_draft_saveid']").val(a);window.frames.savetarget&&window.frames.savetarget.history&&!this.draft_autosave_submit&&window.frames.savetarget.history.back();this.draft_autosave_submit=!1}this.remove_compose_data(this.env.compose_id);this.compose_skip_unsavedcheck=!1};this.auto_save_start=function(){this.env.draft_autosave&&(this.draft_autosave_submit=
-!1,this.save_timer=setTimeout(function(){g.draft_autosave_submit=!0;g.command("savedraft")},1E3*this.env.draft_autosave));!this.local_save_timer&&window.localStorage&&this.env.save_localstorage&&(this.compose_type_activity=this.compose_type_activity_last=0,$(document).bind("keypress",function(a){g.compose_type_activity++}),this.local_save_timer=setInterval(function(){g.compose_type_activity>g.compose_type_activity_last&&(g.save_compose_form_local(),g.compose_type_activity_last=g.compose_type_activity)},
-5E3),$(window).unload(function(){g.env.server_error||g.remove_compose_data(g.env.compose_id)}));window.onbeforeunload||(window.onbeforeunload=function(){if(!g.compose_skip_unsavedcheck&&g.cmp_hash!=g.compose_field_hash())return g.get_label("notsentwarning")});this.busy=!1};this.compose_field_hash=function(a){var b,d,e,f="",h=["to","cc","bcc","subject"];for(b=0;b<h.length;b++)if(e=$('[name="_'+h[b]+'"]').val())f+=e+":";f+=this.editor.get_content({refresh:!1});if(this.env.attachments)for(d in this.env.attachments)f+=
-d;a&&(this.cmp_hash=f);return f};this.save_compose_form_local=function(){if(this.env.save_localstorage){var a={session:this.env.session_id,changed:(new Date).getTime()},b=!0;this.editor.save();this.env.draft_id&&(a.draft_id=this.env.draft_id);this.env.reply_msgid&&(a.reply_msgid=this.env.reply_msgid);$("input, select, textarea",this.gui_objects.messageform).each(function(d,e){switch(e.tagName.toLowerCase()){case "input":if("button"==e.type||"submit"==e.type||"hidden"==e.type&&"_is_html"!=e.name)break;
-a[e.name]="checkbox"!=e.type||e.checked?$(e).val():"";""!=a[e.name]&&"hidden"!=e.type&&(b=!1);break;case "select":a[e.name]=$("option:checked",e).val();break;default:a[e.name]=$(e).val(),""!=a[e.name]&&(b=!1)}});if(!b){var d=this.local_storage_get_item("compose.index",[]),e=this.env.compose_id;0>$.inArray(e,d)&&d.push(e);this.local_storage_set_item("compose."+e,a,!0);this.local_storage_set_item("compose.index",d)}}};this.restore_compose_form=function(a,b){var d=this.local_storage_get_item("compose."+
-a,!0);d&&"object"==typeof d&&($.each(d,function(a,b){if("_"==a[0]){var d=$("*[name='"+a+"']");d[0]&&"checkbox"==d[0].type?d.prop("checked",""!=b):d.val(b)}}),("1"==d._is_html&&!b||"1"!=d._is_html&&b)&&this.command("toggle-editor",{id:this.env.composebody,html:!b,noconvert:!0}))};this.remove_compose_data=function(a){var b=this.local_storage_get_item("compose.index",[]);0<=$.inArray(a,b)&&(this.local_storage_remove_item("compose."+a),this.local_storage_set_item("compose.index",$.grep(b,function(b,e){return b!=
-a})))};this.clear_compose_data=function(){var a,b=this.local_storage_get_item("compose.index",[]);for(a=0;a<b.length;a++)this.local_storage_remove_item("compose."+b[a]);this.local_storage_remove_item("compose.index")};this.change_identity=function(a,b){if(!a||!a.options)return!1;b||(b=this.env.show_sig);var d=a.options[a.selectedIndex].value,e=this.env.identity,f=this.env.recipients_separator,h=RegExp.escape(f);this.env.signatures&&this.env.signatures[d]?(this.enable_command("insert-sig",!0),this.env.compose_commands.push("insert-sig")):
-this.enable_command("insert-sig",!1);if(!this.env.identities_initialized&&(this.env.identities_initialized=!0,this.env.show_sig_later&&(this.env.show_sig=!0),this.env.opened_extwin))return;$.each(["replyto","bcc"],function(){var a,b=e&&g.env.identities[e]?g.env.identities[e][this]:"",n=d&&g.env.identities[d]?g.env.identities[d][this]:"",l=$('[name="_'+this+'"]'),p=l.val();b&&p&&(a=RegExp("\\s*"+RegExp.escape(b)+"\\s*"),p=p.replace(a,""));a=RegExp(h+"\\s*"+h,"g");p=String(p).replace(a,f);a=RegExp("^[\\s"+
-h+"]+");p=p.replace(a,"");n&&-1==p.indexOf(n)&&-1==p.indexOf(n.replace(/"/g,""))&&(p&&(a=RegExp("["+h+"\\s]+$"),p=p.replace(a,"")+f+" "),p+=n+f+" ");(b||n)&&l.val(p).change()});this.editor.change_signature(d,b);this.env.identity=d;this.triggerEvent("change_identity");return!0};this.upload_file=function(a,b,d){if(a){var e=0,f=0;$("input[type=file]",a).each(function(a,b){var d=b.files?b.files.length:b.value?1:0;if(b.files)for(a=0;a<d;a++)e+=b.files[a].size;f+=d});if(f){if(this.env.max_filesize&&this.env.filesizeerror&&
-e>this.env.max_filesize)return this.display_message(this.env.filesizeerror,"error"),!1;b=this.async_upload_form(a,b||"upload",function(a){var b,e="";try{this.contentDocument?b=this.contentDocument:this.contentWindow&&(b=this.contentWindow.document),e=b.childNodes[1].innerHTML}catch(f){}e.match(/add2attachment/)||bw.opera&&(!g.env.uploadframe||g.env.uploadframe!=a.data.ts)||(e.match(/display_message/)||g.display_message(g.get_label("fileuploaderror"),"error"),g.remove_from_attachment_list(a.data.ts),
-d&&g.set_busy(!1,null,d));bw.opera&&(g.env.uploadframe=a.data.ts)});var h="<span>"+this.get_label("uploading"+(1<f?"many":""))+"</span>",m=b.replace(/^rcmupload/,"");this.add2attachment_list(m,{name:"",html:h,classname:"uploading",frame:b,complete:!1});this.env.upload_progress_time&&this.upload_progress_start("upload",m);this.gui_objects.attachmentform=a;return!0}}};this.add2attachment_list=function(a,b,d){d&&this.triggerEvent("fileuploaded",{name:a,attachment:b,id:d});this.env.attachments||(this.env.attachments=
-{});d&&this.env.attachments[d]&&delete this.env.attachments[d];this.env.attachments[a]=b;if(!this.gui_objects.attachmentlist)return!1;!b.complete&&this.env.loadingicon&&(b.html='<img src="'+this.env.loadingicon+'" alt="" class="uploading" />'+b.html);!b.complete&&b.frame&&(b.html='<a title="'+this.get_label("cancel")+'" onclick="return rcmail.cancel_attachment_upload(\''+a+"', '"+b.frame+'\');" href="#cancelupload" class="cancelupload">'+(this.env.cancelicon?'<img src="'+this.env.cancelicon+'" alt="'+
-this.get_label("cancel")+'" />':this.get_label("cancel"))+"</a>"+b.html);var e,f=$("<li>");f.attr("id",a).addClass(b.classname).html(b.html).on("mouseover",function(){rcube_webmail.long_subject_title_ex(this)});d&&(e=document.getElementById(d))?f.replaceAll(e):f.appendTo(this.gui_objects.attachmentlist);a=$(this.gui_objects.attachmentlist).attr("data-tabindex")||"0";f.find("a").attr("tabindex",a);return!0};this.remove_from_attachment_list=function(a){this.env.attachments&&(delete this.env.attachments[a],
-$("#"+a).remove())};this.remove_attachment=function(a){a&&this.env.attachments[a]&&this.http_post("remove-attachment",{_id:this.env.compose_id,_file:a});return!0};this.cancel_attachment_upload=function(a,b){if(!a||!b)return!1;this.remove_from_attachment_list(a);$("iframe[name='"+b+"']").remove();return!1};this.upload_progress_start=function(a,b){setTimeout(function(){g.http_request(a,{_progress:b})},1E3*this.env.upload_progress_time)};this.upload_progress_update=function(a){var b=$("#"+a.name+" > span");
-b.length&&a.text&&(b.text(a.text),a.done||this.upload_progress_start(a.action,a.name))};this.add_contact=function(a){a&&this.http_post("addcontact",{_address:a});return!0};this.qsearch=function(a){if(""!=a){var b=this.set_busy(!0,"searching");a=this.search_params(a);var d="compose"==this.env.action&&this.contact_list?"search-contacts":"search";this.message_list?this.clear_message_list():this.contact_list&&this.list_contacts_clear();this.env.source&&(a._source=this.env.source);this.env.group&&(a._gid=
-this.env.group);this.env.current_page=1;a=this.http_request(d,a,b);this.env.qsearch={lock:b,request:a};this.enable_command("set-listmode",this.env.threads&&"base"==(this.env.search_scope||"base"));return!0}return!1};this.continue_search=function(a){var b=this.set_busy(!0,"stillsearching");setTimeout(function(){var d=g.search_params();d._continue=a;g.env.qsearch={lock:b,request:g.http_request("search",d,b)}},100)};this.search_params=function(a,b){var d,e={},f=[],h=this.env.search_mods,g=this.env.search_scope||
-"base",k="all"==g?"*":this.env.mailbox;!b&&this.gui_objects.search_filter&&(b=this.gui_objects.search_filter.value);!a&&this.gui_objects.qsearchbox&&(a=this.gui_objects.qsearchbox.value);b&&(e._filter=b);if(a&&(e._q=a,h&&this.message_list&&(h=h[k]||h["*"]),h)){for(d in h)f.push(d);e._headers=f.join(",")}g&&(e._scope=g);k&&"all"!=g&&(e._mbox=k);return e};this.reset_search_filter=function(){this.filter_disabled=!0;this.gui_objects.search_filter&&$(this.gui_objects.search_filter).val("ALL").change();
-this.filter_disabled=!1};this.reset_qsearch=function(a){this.gui_objects.qsearchbox&&(this.gui_objects.qsearchbox.value="");this.env.qsearch&&this.abort_request(this.env.qsearch);a&&(this.env.search_scope="base",this.reset_search_filter());this.env.qsearch=null;this.env.search_request=null;this.env.search_id=null;this.enable_command("set-listmode",this.env.threads)};this.set_searchscope=function(a){var b=this.env.search_scope;this.env.search_scope=a;a!=b&&this.env.search_request&&(!this.qsearch(this.gui_objects.qsearchbox.value)&&
-this.env.search_filter&&"ALL"!=this.env.search_filter&&this.filter_mailbox(this.env.search_filter),"all"!=a&&this.select_folder(this.env.mailbox,"",!0))};this.set_searchmods=function(a){var b=this.env.mailbox;"all"==(this.env.search_scope||"base")&&(b="*");this.env.search_mods||(this.env.search_mods={});b&&(this.env.search_mods[b]=a)};this.is_multifolder_listing=function(){return void 0!==this.env.multifolder_listing?this.env.multifolder_listing:this.env.search_request&&"base"!=(this.env.search_scope||
-"base")};this.sent_successfully=function(a,b,d,e){this.display_message(b,a);this.compose_skip_unsavedcheck=!0;if(this.env.extwin){e||this.lock_form(this.gui_objects.messageform);var f={task:"mail",action:""};if(f=this.opener(!1,f)||this.opener(!0,f))f.display_message(b,a),d&&0<=$.inArray(f.env.mailbox,d)&&f.command("checkmail");e||setTimeout(function(){window.close()},1E3)}else e||setTimeout(function(){g.list_mailbox()},500);e&&(this.env.is_sent=!0)};this.ksearch_keydown=function(a,b,d){this.ksearch_timer&&
-clearTimeout(this.ksearch_timer);var e=rcube_event.get_keycode(a),f=rcube_event.get_modifier(a);switch(e){case 38:case 40:if(!this.ksearch_visible())return;b=38==e?1:0;e=document.getElementById("rcmkSearchItem"+this.ksearch_selected);e||(e=this.ksearch_pane.__ul.firstChild);e&&this.ksearch_select(b?e.previousSibling:e.nextSibling);return rcube_event.cancel(a);case 9:if(f==SHIFT_KEY||!this.ksearch_visible()){this.ksearch_hide();return}case 13:if(!this.ksearch_visible())return!1;this.insert_recipient(this.ksearch_selected);
-this.ksearch_hide();return rcube_event.cancel(a);case 27:this.ksearch_hide();return;case 37:case 39:return}this.ksearch_timer=setTimeout(function(){g.ksearch_get_results(d)},200);this.ksearch_input=b;return!0};this.ksearch_visible=function(){return null!==this.ksearch_selected&&void 0!==this.ksearch_selected&&this.ksearch_value};this.ksearch_select=function(a){this.ksearch_pane&&a&&this.ksearch_pane.find("li.selected").removeClass("selected").removeAttr("aria-selected");a&&($(a).addClass("selected").attr("aria-selected",
-"true"),this.ksearch_selected=a._rcm_id,$(this.ksearch_input).attr("aria-activedescendant","rcmkSearchItem"+this.ksearch_selected))};this.insert_recipient=function(a){if(null!==a&&this.env.contacts[a]&&this.ksearch_input){var b=this.ksearch_input.value,d=this.get_caret_pos(this.ksearch_input),d=b.lastIndexOf(this.ksearch_value,d),e=!1,f="",h=b.substring(0,d),b=b.substring(d+this.ksearch_value.length,b.length);this.ksearch_destroy();"object"!==typeof this.env.contacts[a]||"group"!=this.env.contacts[a].type||
-this.env.contacts[a].email?"object"===typeof this.env.contacts[a]&&this.env.contacts[a].name?(f=this.env.contacts[a].name+this.env.recipients_delimiter,e=!0):"string"===typeof this.env.contacts[a]&&(f=this.env.contacts[a]+this.env.recipients_delimiter,e=!0):(f+=this.env.contacts[a].name+this.env.recipients_delimiter,this.group2expand[this.env.contacts[a].id]=$.extend({input:this.ksearch_input},this.env.contacts[a]),this.http_request("mail/group-expand",{_source:this.env.contacts[a].source,_gid:this.env.contacts[a].id},
-!1));this.ksearch_input.value=h+f+b;this.set_caret_pos(this.ksearch_input,d+f.length);e&&(this.triggerEvent("autocomplete_insert",{field:this.ksearch_input,insert:f,data:this.env.contacts[a]}),this.compose_type_activity++)}};this.replace_group_recipients=function(a,b){this.group2expand[a]&&(this.group2expand[a].input.value=this.group2expand[a].input.value.replace(this.group2expand[a].name,b),this.triggerEvent("autocomplete_insert",{field:this.group2expand[a].input,insert:b}),this.group2expand[a]=
-null,this.compose_type_activity++)};this.ksearch_get_results=function(a){var b=this.ksearch_input?this.ksearch_input.value:null;if(null!==b){this.ksearch_pane&&this.ksearch_pane.is(":visible")&&this.ksearch_pane.hide();var d=this.get_caret_pos(this.ksearch_input),e=b.lastIndexOf(this.env.recipients_separator,d-1),b=b.substring(e+1,d),e=this.env.autocomplete_min_length,d=this.ksearch_data,b=$.trim(b);b!=this.ksearch_value&&(this.ksearch_destroy(),b.length&&b.length<e?this.ksearch_info||(this.ksearch_info=
-this.display_message(this.get_label("autocompletechars").replace("$min",e))):(e=this.ksearch_value,this.ksearch_value=b,!b.length||e&&e.length&&b.startsWith(e)&&(!d||0>=d.num)&&this.env.contacts&&!this.env.contacts.length||(d=a&&a.sources?a.sources:[""],this.ksearch_data={id:this.multi_thread_http_request({items:d,threads:a&&a.threads?a.threads:1,action:a&&a.action?a.action:"mail/autocomplete",postdata:{_search:b,_source:"%s"},lock:this.display_message(this.get_label("searching"),"loading")}),sources:d.slice(),
-num:d.length})))}};this.ksearch_query_results=function(a,b,d){this.multi_thread_http_response(a,d);if(this.ksearch_value&&(!this.ksearch_input||b==this.ksearch_value)){var e,f,h,m,k,n=this.ksearch_value,l=this.env.autocomplete_max?this.env.autocomplete_max:15;this.ksearch_pane||(b=$("<ul>"),this.ksearch_pane=$("<div>").attr("id","rcmKSearchpane").attr("role","listbox").css({position:"absolute","z-index":3E4}).append(b).appendTo(document.body),this.ksearch_pane.__ul=b[0]);b=this.ksearch_pane.__ul;
-d&&this.ksearch_pane.data("reqid")==d?l-=b.childNodes.length:(this.ksearch_pane.data("reqid",d),b.innerHTML="",this.env.contacts=[],e=$(this.ksearch_input).offset(),this.ksearch_pane.css({left:e.left+"px",top:e.top+this.ksearch_input.offsetHeight+"px",display:"none"}));if(a&&(h=a.length))for(e=0;e<h&&0<l;e++)m="object"===typeof a[e]?a[e].display||a[e].name:a[e],k="object"===typeof a[e]?a[e].type:"",f=e+this.env.contacts.length,$("<li>").attr("id","rcmkSearchItem"+f).attr("role","option").html('<i class="icon"></i>'+
-this.quote_html(m.replace(RegExp("("+RegExp.escape(n)+")","ig"),"##$1%%")).replace(/##([^%]+)%%/g,"<b>$1</b>")).addClass(k||"").appendTo(b).mouseover(function(){g.ksearch_select(this)}).mouseup(function(){g.ksearch_click(this)}).get(0)._rcm_id=f,l-=1;b.childNodes.length&&($(this.ksearch_input).attr("aria-haspopup","true").attr("aria-expanded","true").attr("aria-owns","rcmKSearchpane"),this.ksearch_pane.show(),this.env.contacts.length||this.ksearch_select($("li:first",b).get(0)));h&&(this.env.contacts=
-this.env.contacts.concat(a));this.ksearch_data.id==d&&this.ksearch_data.num--}};this.ksearch_click=function(a){this.ksearch_input&&this.ksearch_input.focus();this.insert_recipient(a._rcm_id);this.ksearch_hide()};this.ksearch_blur=function(){this.ksearch_timer&&clearTimeout(this.ksearch_timer);this.ksearch_input=null;this.ksearch_hide()};this.ksearch_hide=function(){this.ksearch_selected=null;this.ksearch_value="";this.ksearch_pane&&this.ksearch_pane.hide();$(this.ksearch_input).attr("aria-haspopup",
-"false").attr("aria-expanded","false").removeAttr("aria-activedescendant").removeAttr("aria-owns");this.ksearch_destroy()};this.ksearch_destroy=function(){this.ksearch_data&&this.multi_thread_request_abort(this.ksearch_data.id);this.ksearch_info&&this.hide_message(this.ksearch_info);this.ksearch_msg&&this.hide_message(this.ksearch_msg);this.ksearch_msg=this.ksearch_info=this.ksearch_data=null};this.contactlist_keypress=function(a){a.key_pressed==a.DELETE_KEY&&this.command("delete")};this.contactlist_select=
-function(a){this.preview_timer&&clearTimeout(this.preview_timer);var b,d,e,f,h=!1,m=a.selection.length,k=this.env.source?this.env.address_sources[this.env.source]:null;this.env.contentframe&&(d=a.get_single_selection())?this.preview_timer=setTimeout(function(){g.load_contact(d,"show")},200):this.env.contentframe&&this.show_contentframe(!1);if(m){a.draggable=!1;this.env.selection_sources=[];k&&this.env.selection_sources.push(this.env.source);for(b in a.selection)f=a.data[a.selection[b]],k?h=h||!k.readonly&&
-!f.readonly:(e=String(a.selection[b]).replace(/^[^-]+-/,""))&&this.env.address_sources[e]&&(h=h||!this.env.address_sources[e].readonly&&!f.readonly,this.env.selection_sources.push(e)),"group"!=f._type&&(a.draggable=!0);this.env.selection_sources=$.unique(this.env.selection_sources)}this.enable_command("group-remove-selected",this.env.group&&m&&h);this.enable_command("compose",this.env.group||m);this.enable_command("print",1==m);this.enable_command("export-selected","copy",0<m);this.enable_command("edit",
-d&&h);this.enable_command("delete","move",m&&h);return!1};this.list_contacts=function(a,b,d){var e,f={},h=void 0===a&&void 0===b&&void 0===d,g=window;a||(a=this.env.source);h&&(b=this.env.group);if(d&&this.current_page==d&&a==this.env.source&&b==this.env.group)return!1;a!=this.env.source?(d=this.env.current_page=1,this.reset_qsearch()):h||b==this.env.group||(d=this.env.current_page=1);this.env.search_id?e="S"+this.env.search_id:this.env.search_request||(e=b?"G"+a+b:a);this.env.source=a;this.env.group=
-b;h=$.inArray(this.env.group,this.env.address_group_stack);this.env.address_group_stack=0>h?[]:this.env.address_group_stack.slice(0,h);this.env.group?(this.env.address_group_stack.push(this.env.group),e="G"+a+this.env.address_group_stack[0]):this.gui_objects.addresslist_title&&$(this.gui_objects.addresslist_title).html(this.get_label("contacts"));this.env.search_id||this.select_folder(e,"",!0);if(this.gui_objects.contactslist)this.list_contacts_remote(a,b,d);else{if(e=this.get_frame_window(this.env.contentframe))g=
-e,f._framed=1;b&&(f._gid=b);d&&(f._page=d);a&&(f._source=a);this.env.search_request&&(f._search=this.env.search_request);this.set_busy(!0,"loading");this.location_href(f,g)}};this.list_contacts_remote=function(a,b,d){this.list_contacts_clear();var e={},f=this.set_busy(!0,"loading");a&&(e._source=a);d&&(e._page=d);b&&(e._gid=b);this.env.source=a;this.env.group=b;this.env.search_request&&(e._search=this.env.search_request);this.http_request("mail"==this.env.task?"list-contacts":"list",e,f)};this.list_contacts_clear=
-function(){this.contact_list.data={};this.contact_list.clear(!0);this.show_contentframe(!1);this.enable_command("delete","move","copy","print",!1);this.enable_command("compose",this.env.group)};this.set_group_prop=function(a){if(this.gui_objects.addresslist_title){var b=$(this.gui_objects.addresslist_title).html("");1<this.env.address_group_stack.length&&($('<a href="#list">...</a>').attr("title",this.gettext("uponelevel")).addClass("poplink").appendTo(b).click(function(a){return g.command("popgroup",
-"",this)}),b.append(" » "));b.append($("<span>").text(a.name))}this.triggerEvent("groupupdate",a)};this.load_contact=function(a,b,d){var e,f={},h=window,g=this.contact_list?this.contact_list.data[a]:null;if(e=this.get_frame_window(this.env.contentframe))f._framed=1,h=e,this.show_contentframe(!0),a||this.contact_list.clear_selection(),this.enable_command("compose",g&&g.email),this.enable_command("export-selected","print",g&&"group"!=g._type);else if(d)return!1;!b||!a&&"add"!=b||this.drag_active||
-(this.env.group&&(f._gid=this.env.group),this.env.search_request&&(f._search=this.env.search_request),f._action=b,f._source=this.env.source,f._cid=a,this.location_href(f,h,!0));return!0};this.group_member_change=function(a,b,d,e){"add"!=a&&(a="del");var f=this.get_label("add"==a?"addingmember":"removingmember"),f=this.display_message(f,"loading");this.http_post("group-"+a+"members",{_cid:b,_source:d,_gid:e},f)};this.contacts_drag_menu=function(a,b){var d="group"==b.type?b.source:b.id,e=this.env.source;
-if(!this.env.address_sources[d]||this.env.address_sources[d].readonly)return!0;""==e&&1==this.env.selection_sources.length&&(e=this.env.selection_sources[0]);return"group"==b.type&&d==e?(e=this.contact_list.get_selection().join(","),this.group_member_change("add",e,d,b.id),!0):this.commands.move||rcube_event.get_modifier(a)==SHIFT_KEY?this.drag_menu(a,b):(this.copy_contacts(b),!0)};this.copy_contacts=function(a){var b="group"==a.type?a.source:a.id,d=this.env.source,e=this.env.group?this.env.group:
-"",f=this.contact_list.get_selection().join(",");f&&this.env.address_sources[b]&&!this.env.address_sources[b].readonly&&(""==d&&1==this.env.selection_sources.length&&(d=this.env.selection_sources[0]),"group"==a.type?b!=d&&(d=this.display_message(this.get_label("copyingcontact"),"loading"),a={_cid:f,_source:this.env.source,_to:b,_togid:a.id,_gid:e},this.http_post("copy",a,d)):a.id!=d&&(d=this.display_message(this.get_label("copyingcontact"),"loading"),a={_cid:f,_source:this.env.source,_to:a.id,_gid:e},
-this.http_post("copy",a,d)))};this.move_contacts=function(a){var b="group"==a.type?a.source:a.id,d=this.env.source;this.env.address_sources[b]&&!this.env.address_sources[b].readonly&&(""==d&&1==this.env.selection_sources.length&&(d=this.env.selection_sources[0]),"group"==a.type?b!=d&&this._with_selected_contacts("move",{_to:b,_togid:a.id}):a.id!=d&&this._with_selected_contacts("move",{_to:a.id}))};this.delete_contacts=function(){if(this.env.source&&this.env.address_sources[this.env.source].undelete||
-confirm(this.get_label("deletecontactconfirm")))return this._with_selected_contacts("delete")};this._with_selected_contacts=function(a,b){var d=this.contact_list?this.contact_list.get_selection():[];if(d.length||this.env.cid){var e,f=[],h=this.display_message(this.get_label("delete"==a?"contactdeleting":"movingcontact"),"loading");if(this.env.cid)f.push(this.env.cid);else{for(e=0;e<d.length;e++)id=d[e],f.push(id),this.contact_list.remove_row(id,e==d.length-1);1==d.length&&this.show_contentframe(!1)}b||
-(b={});b._source=this.env.source;b._from=this.env.action;b._cid=f.join(",");this.env.group&&(b._gid=this.env.group);this.env.search_request&&(b._search=this.env.search_request);this.http_post(a,b,h);return!0}};this.update_contact_row=function(a,b,d,e,f){var h=this.contact_list;a=this.html_identifier(a);h.rows[a]||(a=a+"-"+e,d&&(d=d+"-"+e));h.update_row(a,b,d,!0);h.data[a]=f};this.add_contact_row=function(a,b,d,e){if(!this.gui_objects.contactslist)return!1;var f,h=this.contact_list,g={cols:[]};g.id=
-"rcmrow"+this.html_identifier(a);g.className="contact "+(d||"");h.in_selection(a)&&(g.className+=" selected");for(f in b)d={},d.className=String(f).toLowerCase(),d.innerHTML=b[f],g.cols.push(d);h.data[a]=e;h.insert_row(g);this.enable_command("export",0<h.rowcount)};this.init_contact_form=function(){var a;if(this.env.coltypes)for(a in this.set_photo_actions($("#ff_photo").val()),this.env.coltypes)this.init_edit_field(a,null);$(".contactfieldgroup .row a.deletebutton").click(function(){g.delete_edit_field(this);
-return!1});$("select.addfieldmenu").change(function(){g.insert_edit_field($(this).val(),$(this).attr("rel"),this);this.selectedIndex=0});$.datepicker&&this.env.date_format&&($.datepicker.setDefaults({dateFormat:this.env.date_format,changeMonth:!0,changeYear:!0,yearRange:"-120:+10",showOtherMonths:!0,selectOtherMonths:!0}),$("input.datepicker").datepicker());"search"==this.env.action&&$(this.gui_objects.editform).append($('<input type="submit">').hide()).submit(function(){$("input.mainaction").click();
-return!1})};this.group_create=function(){var a=$("<input>").attr("type","text"),b=$("<label>").text(this.get_label("namex")).append(a);this.show_popup_dialog(b,this.get_label("newgroup"),[{text:this.get_label("save"),"class":"mainaction",click:function(){var b;(b=a.val())&&g.http_post("group-create",{_source:g.env.source,_name:b},g.set_busy(!0,"loading"));$(this).dialog("close")}}])};this.group_rename=function(){if(this.env.group){var a=this.env.contactgroups["G"+this.env.source+this.env.group].name,
-b=$("<input>").attr("type","text").val(a),d=$("<label>").text(this.get_label("namex")).append(b);this.show_popup_dialog(d,this.get_label("grouprename"),[{text:this.get_label("save"),"class":"mainaction",click:function(){var d;(d=b.val())&&d!=a&&g.http_post("group-rename",{_source:g.env.source,_gid:g.env.group,_name:d},g.set_busy(!0,"loading"));$(this).dialog("close")}}],{open:function(){b.select()}})}};this.group_delete=function(){if(this.env.group&&confirm(this.get_label("deletegroupconfirm"))){var a=
-this.set_busy(!0,"groupdeleting");this.http_post("group-delete",{_source:this.env.source,_gid:this.env.group},a)}};this.remove_group_item=function(a){var b="G"+a.source+a.id;this.treelist.remove(b)&&(this.triggerEvent("group_delete",{source:a.source,id:a.id}),delete this.env.contactfolders[b],delete this.env.contactgroups[b]);this.list_contacts(a.source,0)};this.group_remove_selected=function(){this.http_post("group-delmembers",{_cid:this.contact_list.selection,_source:this.env.source,_gid:this.env.group})};
-this.remove_group_contacts=function(a){if(void 0!==this.env.group&&this.env.group===a.gid){var b=this.contact_list.get_selection();for(a=0;a<b.length;a++)id=b[a],this.contact_list.remove_row(id,a==b.length-1)}};this.insert_contact_group=function(a){a.type="group";var b="G"+a.source+a.id,d=$("<a>").attr("href","#").attr("rel",a.source+":"+a.id).click(function(){return g.command("listgroup",a,this)}).html(a.name);this.env.contactfolders[b]=this.env.contactgroups[b]=a;this.treelist.insert({id:b,html:d,
-classes:["contactgroup"]},a.source,"contactgroup");this.triggerEvent("group_insert",{id:a.id,source:a.source,name:a.name,li:this.treelist.get_item(b)})};this.update_contact_group=function(a){var b="G"+a.source+a.id,d={};if(a.newid){var e="G"+a.source+a.newid,f=$.extend({},a);this.env.contactfolders[e]=this.env.contactfolders[b];this.env.contactfolders[e].id=a.newid;this.env.group=a.newid;delete this.env.contactfolders[b];delete this.env.contactgroups[b];f.id=a.newid;f.type="group";d.id=e;d.html=$("<a>").attr("href",
-"#").attr("rel",a.source+":"+a.newid).click(function(){return g.command("listgroup",f,this)}).html(a.name)}else $(this.treelist.get_item(b)).children().first().html(a.name),this.env.contactfolders[b].name=this.env.contactgroups[b].name=a.name;this.treelist.update(b,d,!0);this.triggerEvent("group_update",{id:a.id,source:a.source,name:a.name,li:this.treelist.get_item(b),newid:a.newid})};this.update_group_commands=function(){var a=""!=this.env.source?this.env.address_sources[this.env.source]:null,a=
-a&&a.groups&&!a.readonly;this.enable_command("group-create",a);this.enable_command("group-rename","group-delete",a&&this.env.group)};this.init_edit_field=function(a,b){var d=this.env.coltypes[a].label;b||(b=$(".ff_"+a));d&&b.placeholder(d)};this.insert_edit_field=function(a,b,d){var e=$("#ff_"+a);if(e.length)e.show().focus(),$(d).children('option[value="'+a+'"]').prop("disabled",!0);else{$(".ff_"+a);e=$("#contactsection"+b+" .contactcontroller"+a);if(!e.length){b=$("#contactsection"+b);var f=$(".contactfieldgroup",
-b).last(),e=$("<fieldset>").addClass("contactfieldgroup contactcontroller"+a);f.length?e.insertAfter(f):b.prepend(e)}if(e.length&&"FIELDSET"==e.get(0).nodeName){var h;b=this.env.coltypes[a];var m="ff_"+a+(b.count||0),f=$("<div>").addClass("row"),k=$("<div>").addClass("contactfieldcontent data"),n=$("<div>").addClass("contactfieldlabel label");b.subtypes_select?n.html(b.subtypes_select):n.html('<label for="'+m+'">'+b.label+"</label>");var l=1!=b.limit?"[]":"";if("text"==b.type||"date"==b.type)h=$("<input>").addClass("ff_"+
-a).attr({type:"text",name:"_"+a+l,size:b.size,id:m}).appendTo(k),this.init_edit_field(a,h),"date"==b.type&&$.datepicker&&h.datepicker();else if("textarea"==b.type)h=$("<textarea>").addClass("ff_"+a).attr({name:"_"+a+l,cols:b.size,rows:b.rows,id:m}).appendTo(k),this.init_edit_field(a,h);else if("composite"==b.type){var p,q,v=[],s=[];if(h=this.env[a+"_template"])for(m=0;m<h.length;m++)v.push(h[m][1]),s.push(h[m][2]);else for(p in b.childs)v.push(p);for(m=0;m<v.length;m++)p=v[m],h=b.childs[p],h=$("<input>").addClass("ff_"+
-p).attr({type:"text",name:"_"+p+l,size:h.size}).appendTo(k),k.append(s[m]||" "),this.init_edit_field(p,h),q||(q=h);h=q}else if("select"==b.type){h=$("<select>").addClass("ff_"+a).attr({name:"_"+a+l,id:m}).appendTo(k);var t=h.attr("options");t[t.length]=new Option("---","");b.options&&$.each(b.options,function(a,b){t[t.length]=new Option(b,a)})}h&&($('<a href="#del"></a>').addClass("contactfieldbutton deletebutton").attr({title:this.get_label("delete"),rel:a}).html(this.env.delbutton).click(function(){g.delete_edit_field(this);
-return!1}).appendTo(k),f.append(n).append(k).appendTo(e.show()),h.first().focus(),b.count||(b.count=0),++b.count==b.limit&&b.limit&&$(d).children('option[value="'+a+'"]').prop("disabled",!0))}}};this.delete_edit_field=function(a){var b=$(a).attr("rel"),d=this.env.coltypes[b],e=$(a).parents("fieldset.contactfieldgroup"),f=e.parent().find("select.addfieldmenu");0>=--d.count&&d.visible?$(a).parent().children("input").val("").blur():($(a).parents("div.row").remove(),e.children("div.row").length||e.hide());
-f.length&&(a=f.children('option[value="'+b+'"]'),a.length?a.prop("disabled",!1):$("<option>").attr("value",b).html(d.label).appendTo(f),f.show())};this.upload_contact_photo=function(a){a&&a.elements._photo.value&&(this.async_upload_form(a,"upload-photo",function(a){g.set_busy(!1,null,g.file_upload_id)}),this.file_upload_id=this.set_busy(!0,"uploading"))};this.replace_contact_photo=function(a){var b="-del-"==a?this.env.photo_placeholder:this.env.comm_path+"&_action=photo&_source="+this.env.source+
-"&_cid="+(this.env.cid||0)+"&_photo="+a;this.set_photo_actions(a);$(this.gui_objects.contactphoto).children("img").attr("src",b)};this.photo_upload_end=function(){this.set_busy(!1,null,this.file_upload_id);delete this.file_upload_id};this.set_photo_actions=function(a){var b,d=this.buttons["upload-photo"];for(b=0;d&&b<d.length;b++)$("a#"+d[b].id).html(this.get_label("-del-"==a?"addphoto":"replacephoto"));$("#ff_photo").val(a);this.enable_command("upload-photo",this.env.coltypes.photo?!0:!1);this.enable_command("delete-photo",
-this.env.coltypes.photo&&"-del-"!=a)};this.advanced_search=function(){var a,b={_form:1,_action:"search"},d=window;if(a=this.get_frame_window(this.env.contentframe))b._framed=1,d=a,this.contact_list.clear_selection();this.location_href(b,d,!0);return!0};this.unselect_directory=function(){this.select_folder("");this.enable_command("search-delete",!1)};this.insert_saved_search=function(a,b){var d="S"+b,e=$("<a>").attr("href","#").attr("rel",b).click(function(){return g.command("listsearch",b,this)}).html(a),
-f={name:a,id:b};this.savedsearchlist.insert({id:d,html:e,classes:["contactsearch"]},null,"contactsearch");this.select_folder(d,"",!0);this.enable_command("search-delete",!0);this.env.search_id=b;this.triggerEvent("abook_search_insert",f)};this.search_create=function(){var a=$("<input>").attr("type","text"),b=$("<label>").text(this.get_label("namex")).append(a);this.show_popup_dialog(b,this.get_label("searchsave"),[{text:this.get_label("save"),"class":"mainaction",click:function(){var b;(b=a.val())&&
-g.http_post("search-create",{_search:g.env.search_request,_name:b},g.set_busy(!0,"loading"));$(this).dialog("close")}}])};this.search_delete=function(){if(this.env.search_request){var a=this.set_busy(!0,"savedsearchdeleting");this.http_post("search-delete",{_sid:this.env.search_id},a)}};this.remove_search_item=function(a){this.savedsearchlist.remove("S"+a)&&this.triggerEvent("search_delete",{id:a,li:void 0});this.env.search_id=null;this.env.search_request=null;this.list_contacts_clear();this.reset_qsearch();
-this.enable_command("search-delete","search-create",!1)};this.listsearch=function(a){var b=this.set_busy(!0,"searching");this.contact_list&&this.list_contacts_clear();this.reset_qsearch();this.savedsearchlist?(this.treelist.select(""),this.savedsearchlist.select("S"+a)):this.select_folder("S"+a,"",!0);this.env.current_page=1;this.http_request("search",{_sid:a},b)};this.section_select=function(a){var b;b=a.get_single_selection();a=window;var d={_action:"edit-prefs",_section:b};if(b){if(b=this.get_frame_window(this.env.contentframe))d._framed=
-1,a=b;this.location_href(d,a,!0)}return!0};this.identity_select=function(a){var b;if(b=a.get_single_selection())this.enable_command("delete",1<a.rowcount&&2>this.env.identities_level),this.load_identity(b,"edit-identity")};this.load_identity=function(a,b){if("edit-identity"==b&&(!a||a==this.env.iid))return!1;var d,e=window,f={_action:b,_iid:a};if(d=this.get_frame_window(this.env.contentframe))f._framed=1,e=d;(a||"add-identity"==b)&&this.location_href(f,e,!0);return!0};this.delete_identity=function(a){var b=
-this.identity_list.get_selection();if(b.length||this.env.iid)a||(a=this.env.iid?this.env.iid:b[0]),a&&confirm(this.get_label("deleteidentityconfirm"))&&this.http_post("settings/delete-identity",{_iid:a},!0)};this.update_identity_row=function(a,b,d){var e=this.identity_list;a=this.html_identifier(a);d?(e.insert_row({id:"rcmrow"+a,cols:[{className:"mail",innerHTML:b}]}),e.select(a)):e.update_row(a,[b])};this.update_response_row=function(a,b){var d=this.responses_list;d&&b?d.update_row(b,[a.name],a.key,
-!0):d&&(d.insert_row({id:"rcmrow"+a.key,cols:[{className:"name",innerHTML:a.name}]}),d.select(a.key))};this.remove_response=function(a){var b;this.env.textresponses&&delete this.env.textresponses[a];this.responses_list&&(this.responses_list.remove_row(a),this.env.contentframe&&(b=this.get_frame_window(this.env.contentframe))&&(b.location.href=this.env.blankpage));this.enable_command("delete",!1)};this.remove_identity=function(a){var b,d=this.identity_list,e=this.html_identifier(a);d&&a&&(d.remove_row(e),
-this.env.contentframe&&(b=this.get_frame_window(this.env.contentframe))&&(b.location.href=this.env.blankpage));this.enable_command("delete",!1)};this.init_subscription_list=function(){var a=RegExp.escape(this.env.delimiter);this.last_sub_rx=RegExp("["+a+"]?[^"+a+"]+$");this.subscription_list=new rcube_treelist_widget(this.gui_objects.subscriptionlist,{selectable:!0,tabexit:!1,parent_focus:!0,id_prefix:"rcmli",id_encode:this.html_identifier_encode,id_decode:this.html_identifier_decode,searchbox:"#foldersearch"});
-this.subscription_list.addEventListener("select",function(a){g.subscription_select(a.id)}).addEventListener("collapse",function(a){g.folder_collapsed(a)}).addEventListener("expand",function(a){g.folder_collapsed(a)}).addEventListener("search",function(a){a.query&&g.subscription_select()}).draggable({cancel:"li.mailbox.root"}).droppable({accept:function(a){if(!$(a).is(".mailbox"))return!1;a=g.folder_id2name($(a).attr("id"));var d=g.folder_id2name(this.id),e=g.env.subscriptionrows[a];return e&&!e[2]&&
-d!=a.replace(g.last_sub_rx,"")&&!d.startsWith(a+g.env.delimiter)},drop:function(a,d){var e=g.folder_id2name(d.draggable.attr("id")),f=g.folder_id2name(this.id);g.subscription_move_folder(e,f)}})};this.folder_id2name=function(a){return a?g.html_identifier_decode(a.replace(/^rcmli/,"")):null};this.subscription_select=function(a){var b;a&&"*"!=a&&(b=this.env.subscriptionrows[a])?(this.env.mailbox=a,this.show_folder(a),this.enable_command("delete-folder",!b[2])):(this.env.mailbox=null,this.show_contentframe(!1),
-this.enable_command("delete-folder","purge",!1))};this.subscription_move_folder=function(a,b){if(a&&null!==b&&a!=b&&b!=a.replace(this.last_sub_rx,"")){var d=a.split(this.env.delimiter).pop(),d=""===b||"*"===b?d:b+this.env.delimiter+d;d!=a&&this.http_post("rename-folder",{_folder_oldname:a,_folder_newname:d},this.set_busy(!0,"foldermoving"))}};this.create_folder=function(){this.show_folder("",this.env.mailbox)};this.delete_folder=function(a){a||(a=this.env.mailbox);a&&confirm(this.get_label("deletefolderconfirm"))&&
-this.http_post("delete-folder",{_mbox:a},this.set_busy(!0,"folderdeleting"))};this.add_folder_row=function(a,b,d,e,f,h,m,k){if(!this.gui_objects.subscriptionlist)return!1;this.subscription_list.is_search()&&(this.subscription_select(),this.subscription_list.reset_search());this.subscription_list.draggable("destroy").droppable("destroy");var n,l,p,q,v,s="",t=[],w=[],u=[],x=$(this.gui_objects.subscriptionlist);n=m?m:$($("li",x).get(1)).clone(!0);if(!n.length)return this.goto_url("folders"),!1;n.attr({id:"rcmli"+
-this.html_identifier_encode(a),"class":h});m&&m.length||($("ul,div.treetoggle",n).remove(),n.removeData("filtered"));$("a:first",n).text(d);$('input[name="_subscribed[]"]:first',n).val(a).prop({checked:f?!0:!1,disabled:e?!0:!1});this.env.subscriptionrows[a]=[b,d,!1];$.each(this.env.subscriptionrows,function(a,b){b[3]=a;t.push(b)});try{v=new Intl.Collator(this.env.locale.replace("_","-"))}catch(y){}t.sort(function(a,b){var d,e,f,h=a[0].split(g.env.delimiter),m=b[0].split(g.env.delimiter),k=h.length;
-for(d=0;d<k;d++){e=h[d];f=m[d];if(e!==f)return void 0===f?1:v?v.compare(e,f):e<f?-1:1;if(d==k-1)return-1}});for(l in t)d=t[l][3],t[l][2]?(b=d+this.env.delimiter,b!=this.env.prefix_ns&&(u.push(d),p=b)):p&&d.startsWith(p)?u.push(d):(w.push(d),p=null);for(l=0;l<u.length;l++)a.startsWith(u[l]+this.env.delimiter)&&(q=u[l]);for(l=0;!q&&l<w.length;l++)l&&w[l]==a&&(q=w[l-1]);if(q&&(l=this.subscription_list.get_item(q,!0))){if(p=a.lastIndexOf(this.env.delimiter))s=a.substring(0,p),s=this.subscription_list.get_item(s,
-!0),$("div.treetoggle",s).length||$("<div> </div>").addClass("treetoggle collapsed").appendTo(s),$("ul",s).length||$("<ul>").css("display","none").appendTo(s);if(s&&l==s)$("ul:first",s).append(n);else{for(;(d=$(l).parent().parent().get(0))&&(!s||d!=s)&&$(d).is("li.mailbox");)l=d;$(l).after(n)}}else x.append(n);$.extend(this.env.subscriptionrows,k||{});this.subscription_list.reset(!0);this.subscription_select();s&&this.subscription_list.expand(this.folder_id2name(s.id));n=n.show().get(0);n.scrollIntoView&&
-n.scrollIntoView();return n};this.replace_folder_row=function(a,b,d,e,f,h){if(!this.gui_objects.subscriptionlist)return this.is_framed()?window.parent.rcmail.replace_folder_row(a,b,d,e,f,h):!1;this.subscription_list.is_search()&&(this.subscription_select(),this.subscription_list.reset_search());var m={},k=this.subscription_list.get_item(a,!0),n=$(k).parent(),l=a.length,p=this.env.subscriptionrows[a][0].length,q=$('input[name="_subscribed[]"]:first',k).prop("checked");a==b?$(k).attr("class",h||""):
-($("li",k).each(function(){var a=g.folder_id2name(this.id),e=g.env.subscriptionrows[a],f=b+a.slice(l);this.id="rcmli"+g.html_identifier_encode(f);$('input[name="_subscribed[]"]:first',this).val(f);e[0]=d+e[0].slice(p);m[f]=e;delete g.env.subscriptionrows[a]}),k=$(k).detach(),delete this.env.subscriptionrows[a],n.get(0)==this.gui_objects.subscriptionlist||$("li",n).length||$("ul,div.treetoggle",n.parent()).remove(),this.add_folder_row(b,d,e,f,q,h,k,m))};this.remove_folder_row=function(a){this.subscription_list.is_search()&&
-(this.subscription_select(),this.subscription_list.reset_search());var b=[],d=this.subscription_list.get_item(a,!0);$("li",d).each(function(){b.push(g.folder_id2name(this.id))});this.subscription_list.remove(a);b.push(a);$.each(b,function(a,b){delete g.env.subscriptionrows[b]})};this.subscribe=function(a){if(a){var b=this.display_message(this.get_label("foldersubscribing"),"loading");this.http_post("subscribe",{_mbox:a},b)}};this.unsubscribe=function(a){if(a){var b=this.display_message(this.get_label("folderunsubscribing"),
-"loading");this.http_post("unsubscribe",{_mbox:a},b)}};this.show_folder=function(a,b,d){var e=window;a="&_action=edit-folder&_mbox="+urlencode(a);b&&(a+="&_path="+urlencode(b));if(b=this.get_frame_window(this.env.contentframe))e=b,a+="&_framed=1";0<=String(e.location.href).indexOf(a)&&!d?this.show_contentframe(!0):this.location_href(this.env.comm_path+a,e,!0)};this.disable_subscription=function(a){(a=this.subscription_list.get_item(a,!0))&&$('input[name="_subscribed[]"]:first',a).prop("disabled",
-!0)};this.folder_size=function(a){var b=this.set_busy(!0,"loading");this.http_post("folder-size",{_mbox:a},b)};this.folder_size_update=function(a){$("#folder-size").replaceWith(a)};this.folder_filter=function(a){this.subscription_list.reset_search();this.subscription_list.container.children("li").each(function(){var b,d=g.folder_id2name(this.id);if("---"!=a)if(a){if(d!==a){$(this).data("filtered",!0).hide();return}}else for(b in g.env.ns_roots)if(d===g.env.ns_roots[b]){$(this).data("filtered",!0).hide();
-return}$(this).removeData("filtered").show()})};var u=function(a,b){var d=document.getElementById(b.id);if(d){var e=!1;"image"==b.type&&(d=d.parentNode,e=!0);d._command=a;d._id=b.id;b.sel&&(d.onmousedown=function(a){return g.button_sel(this._command,this._id)},d.onmouseup=function(a){return g.button_out(this._command,this._id)},e&&((new Image).src=b.sel));b.over&&(d.onmouseover=function(a){return g.button_over(this._command,this._id)},d.onmouseout=function(a){return g.button_out(this._command,this._id)},
-e&&((new Image).src=b.over))}};this.init_buttons=function(){for(var a in this.buttons)if("string"===typeof a)for(var b=0;b<this.buttons[a].length;b++)u(a,this.buttons[a][b])};this.set_button=function(a,b){var d,e,f,h=this.buttons[a],g=h?h.length:0;for(d=0;d<g;d++)if(e=h[d],(f=document.getElementById(e.id))&&e.status!==b)"image"!=e.type||e.status?e.status||(e.pas=String(f.className)):(e.pas=f._original_src?f._original_src:f.src,f.runtimeStyle&&f.runtimeStyle.filter&&f.runtimeStyle.filter.match(/src=['"]([^'"]+)['"]/)&&
-(e.pas=RegExp.$1)),e.status=b,"image"==e.type&&e[b]?f.src=e[b]:void 0!==e[b]&&(f.className=e[b]),"input"==e.type?f.disabled="pas"==b:"uibutton"==e.type?(e.status=b,$(f).button("option","disabled","pas"==b)):(e=$(f),e.attr("tabindex","pas"==b||"sel"==b?"-1":e.attr("data-tabindex")||"0").attr("aria-disabled","pas"==b||"sel"==b?"true":"false"))};this.set_alttext=function(a,b){var d,e,f,h,g=this.buttons[a],k=g?g.length:0;for(d=0;d<k;d++)e=g[d],f=document.getElementById(e.id),"image"==e.type&&f?(f.setAttribute("alt",
-this.get_label(b)),(h=f.parentNode)&&"a"==h.tagName.toLowerCase()&&h.setAttribute("title",this.get_label(b))):f&&f.setAttribute("title",this.get_label(b))};this.button_over=function(a,b){this.button_event(a,b,"over")};this.button_sel=function(a,b){this.button_event(a,b,"sel")};this.button_out=function(a,b){this.button_event(a,b,"act")};this.button_event=function(a,b,d){var e,f,h,g=this.buttons[a],k=g?g.length:0;for(e=0;e<k;e++)f=g[e],f.id==b&&"act"==f.status&&(f[d]&&(h=document.getElementById(f.id))&&
-(h["image"==f.type?"src":"className"]=f[d]),"sel"==d&&(this.buttons_sel[b]=a))};this.set_pagetitle=function(a){a&&document.title&&(document.title=a)};this.display_message=function(a,b,d,e){if(this.is_framed())return parent.rcmail.display_message(a,b,d);if(!this.gui_objects.message)return"loading"!=b&&(this.pending_message=[a,b,d,e]),1;b||(b="notice");e||(e=this.html_identifier(a));var f=b+(new Date).getTime();if(!d)switch(b){case "error":case "warning":d=2*this.message_time;break;case "uploading":d=
-0;break;default:d=this.message_time}"loading"==b&&(e="loading",d=1E3*this.env.request_timeout,a||(a=this.get_label("loading")));if(this.messages[e])return this.messages[e].obj&&this.messages[e].obj.html(a),"loading"==b&&this.messages[e].labels.push({id:f,msg:a}),this.messages[e].elements.push(f),setTimeout(function(){g.hide_message(f,"loading"==b)},d),f;var h=$("<div>").addClass(b).html(a).data("key",e);$(this.gui_objects.message).append(h).show();this.messages[e]={obj:h,elements:[f]};"loading"==
-b?this.messages[e].labels=[{id:f,msg:a}]:"uploading"!=b&&h.click(function(){return g.hide_message(h)}).attr("role","alert");this.triggerEvent("message",{message:a,type:b,timeout:d,object:h});0<d&&setTimeout(function(){g.hide_message(f,"loading"!=b)},d);return f};this.hide_message=function(a,b){if(this.is_framed())return parent.rcmail.hide_message(a,b);if(this.gui_objects.message){var d,e,f,h,g=this.messages;if("object"===typeof a)h=$(a),d=h.data("key"),this.hide_message_object(h,b),g[d]&&delete g[d];
-else for(d in g)for(e in g[d].elements)if(g[d]&&g[d].elements[e]==a)if(g[d].elements.splice(e,1),!g[d].elements.length)this.hide_message_object(g[d].obj,b),delete g[d];else if("loading"==d)for(f in g[d].labels)g[d].labels[f].id==a?delete g[d].labels[f]:(h=g[d].labels[f].msg,g[d].obj.html(h))}};this.hide_message_object=function(a,b){b?a.fadeOut(600,function(){$(this).remove()}):a.hide().remove()};this.clear_messages=function(){if(this.is_framed())return parent.rcmail.clear_messages();var a,b,d=this.messages;
-for(a in d)for(b in d[a].elements)d[a].obj&&this.hide_message_object(d[a].obj);this.messages={}};this.display_progress=function(a){if(a&&a.name){var b=this.messages["progress"+a.name];a.label||(a.label=this.get_label("uploadingmany"));b?!a.total||100<=a.percent?this.hide_message(b.obj):(a.text&&(a.label+=" "+a.text),b.obj.text(a.label)):(!a.percent||100>a.percent)&&this.display_message(a.label,"uploading",0,"progress"+a.name)}};this.show_popup_dialog=function(a,b,d,e){if(this.is_framed())return parent.rcmail.show_popup_dialog(a,
-b,d,e);var f=$('<div class="popup">');"object"==typeof a?f.append(a):f.html(a);e=$.extend({title:b,buttons:d,modal:!0,resizable:!0,width:500,close:function(a,b){$(this).remove()}},e||{});f.dialog(e);b=$(window);a=b.width();b=b.height();var h=f.width(),g=f.height();f.dialog("option",{height:Math.min(b-40,g+75+(d?50:0)),width:Math.min(a-20,h+36)});$.each(e.button_classes||[],function(a,b){b&&$($(".ui-dialog-buttonpane button.ui-button",f.parent()).get(a)).addClass(b)});return f};this.set_page_buttons=
-function(){this.enable_command("nextpage","lastpage",this.env.pagecount>this.env.current_page);this.enable_command("previouspage","firstpage",1<this.env.current_page)};this.select_folder=function(a,b,d){this.savedsearchlist&&this.savedsearchlist.select("");this.treelist?this.treelist.select(a):this.gui_objects.folderlist&&($("li.selected",this.gui_objects.folderlist).removeClass("selected"),$(this.get_folder_li(a,b,d)).addClass("selected"),this.triggerEvent("selectfolder",{folder:a,prefix:b}))};this.mark_folder=
-function(a,b,d,e){$(this.get_folder_li(a,d,e)).addClass(b);this.triggerEvent("markfolder",{folder:a,mark:b,status:!0})};this.unmark_folder=function(a,b,d,e){$(this.get_folder_li(a,d,e)).removeClass(b);this.triggerEvent("markfolder",{folder:a,mark:b,status:!1})};this.get_folder_li=function(a,b,d){b||(b="rcmli");if(this.gui_objects.folderlist)return a=this.html_identifier(a,d),document.getElementById(b+a)};this.set_message_coltypes=function(a,b,d){var e=this.message_list,f=e?e.thead:null,h,g;this.env.listcols=
-a;this.env.coltypes||(this.env.coltypes={});if(f){if(b){f.innerHTML="";g=document.createElement("tr");c=0;for(a=b.length;c<a;c++)h=document.createElement("th"),h.innerHTML=b[c].html||"",b[c].id&&(h.id=b[c].id),b[c].className&&(h.className=b[c].className),g.appendChild(h);f.appendChild(g)}g=0;for(a=this.env.listcols.length;g<a;g++)b=this.env.listcols[g],!(h=f.rows[0].cells[g])||"from"!=b&&"to"!=b&&"fromto"!=b||$(h).attr("rel",b).find("span,a").text(this.get_label("fromto"==b?d:b))}this.env.subject_col=
-null;this.env.flagged_col=null;this.env.status_col=null;this.env.coltypes.folder&&(this.env.coltypes.folder.hidden=!(this.env.search_request||this.env.search_id)||"base"==this.env.search_scope);0<=(g=$.inArray("subject",this.env.listcols))&&(this.env.subject_col=g,e&&(e.subject_col=g));0<=(g=$.inArray("flag",this.env.listcols))&&(this.env.flagged_col=g);0<=(g=$.inArray("status",this.env.listcols))&&(this.env.status_col=g);e&&(e.hide_column("folder",this.env.coltypes.folder&&this.env.coltypes.folder.hidden||
-0>$.inArray("folder",this.env.listcols)),e.init_header())};this.set_rowcount=function(a,b){if(b&&b!=this.env.mailbox)return!1;$(this.gui_objects.countdisplay).html(a);this.set_page_buttons()};this.set_mailboxname=function(a){this.gui_objects.mailboxname&&a&&(this.gui_objects.mailboxname.innerHTML=a)};this.set_quota=function(a){this.gui_objects.quotadisplay&&a&&"text"==a.type&&$(this.gui_objects.quotadisplay).text((a.percent||0)+"%").attr("title",a.title);this.triggerEvent("setquota",a);this.env.quota_content=
-a};this.set_trash_count=function(a){this[(a?"un":"")+"mark_folder"](this.env.trash_mailbox,"empty","",!0)};this.set_unread_count=function(a,b,d,e){if(!this.gui_objects.mailboxlist)return!1;this.env.unread_counts[a]=b;this.set_unread_count_display(a,d);e?this.mark_folder(a,e,"",!0):b||this.unmark_folder(a,"recent","",!0)};this.set_unread_count_display=function(a,b){var d,e,f,g,m;if(f=this.get_folder_li(a,"",!0)){g=this.env.unread_counts[a]?this.env.unread_counts[a]:0;e=$(f).children("a").eq(0);d=e.children("span.unreadcount");
-!d.length&&g&&(d=$("<span>").addClass("unreadcount").appendTo(e));e=0;if((m=f.getElementsByTagName("div")[0])&&m.className.match(/collapsed/))for(var k in this.env.unread_counts)k.startsWith(a+this.env.delimiter)&&(e+=this.env.unread_counts[k]);g&&d.length?d.html(this.env.unreadwrap.replace(/%[sd]/,g)):d.length&&d.remove();d=RegExp(RegExp.escape(this.env.delimiter)+"[^"+RegExp.escape(this.env.delimiter)+"]+$");a.match(d)&&this.set_unread_count_display(a.replace(d,""),!1);0<g+e?$(f).addClass("unread"):
-$(f).removeClass("unread")}d=/^\([0-9]+\)\s+/i;b&&document.title&&(f="",f=String(document.title),f=g&&f.match(d)?f.replace(d,"("+g+") "):g?"("+g+") "+f:f.replace(d,""),this.set_pagetitle(f))};this.set_headers=function(a){this.gui_objects.all_headers_row&&this.gui_objects.all_headers_box&&a&&$(this.gui_objects.all_headers_box).html(a).show()};this.show_headers=function(a,b){this.gui_objects.all_headers_row&&this.gui_objects.all_headers_box&&this.env.uid&&($(b).removeClass("show-headers").addClass("hide-headers"),
-$(this.gui_objects.all_headers_row).show(),b.onclick=function(){g.command("hide-headers","",b)},this.gui_objects.all_headers_box.innerHTML||this.http_post("headers",{_uid:this.env.uid,_mbox:this.env.mailbox},this.display_message(this.get_label("loading"),"loading")))};this.hide_headers=function(a,b){this.gui_objects.all_headers_row&&this.gui_objects.all_headers_box&&($(b).removeClass("hide-headers").addClass("show-headers"),$(this.gui_objects.all_headers_row).hide(),b.onclick=function(){g.command("show-headers",
-"",b)})};this.folder_selector=function(a,b){var d=this.folder_selector_element;if(!d){var e=[],f=this.env.delimiter,h=$('<ul class="toolbarmenu">'),m=document.createElement("a"),d=$('<div id="folder-selector" class="popupmenu"></div>');m.href="#";m.className="icon";$.each(this.env.mailboxes_list,function(){var a=0,b=0,d=g.env.mailboxes[this],h=d.id,q=$(m.cloneNode(!1)),v=$("<li>");d.virtual?q.addClass("virtual").attr("aria-disabled","true").attr("tabindex","-1"):q.addClass("active").data("id",d.id);
-for(d["class"]&&q.addClass(d["class"]);0<=(b=h.indexOf(f,b));)a++,b++;q.css("padding-left",a?16*a+"px":0);q.append($("<span>").text(d.name));v.append(q);e.push(v)});h.append(e).appendTo(d);d.css({left:"-1000px",top:"-1000px"}).appendTo($("body")).show();10<e.length&&d.css("max-height",10*$("li",d)[0].offsetHeight+9);d.on("click","a.active",function(a){d.data("callback")($(this).data("id"));return!1});this.folder_selector_element=d}d.data("callback",b);this.show_menu("folder-selector",!0,a)};this.show_menu=
-function(a,b,d){var e="object"==typeof a?a.menu:a,f=$("#"+e),g=d&&d.target?$(d.target):$(f.attr("rel")||"#"+e+"link"),m=rcube_event.is_keyboard(d),k=f.attr("data-align")||"",n=!1;"A"!=g.get(0).tagName&&g.closest("a").length&&(g=g.closest("a"));"string"==typeof a&&(a={menu:e});f.length||(f=this.triggerEvent("menu-get",{name:e,props:a,originalEvent:d}));if(!f||!f.length)return this.triggerEvent(!1===b?"menu-close":"menu-open",{name:e,props:a,originalEvent:d});f.appendTo(document.body);"undefined"==
-typeof b&&(b=f.is(":visible")?!1:!0);if(b&&g.length){var l=$(window),p=g.offset(),q=0<=k.indexOf("bottom"),n="menuitem"==g.attr("role")||0<g.closest("[role=menuitem]").length;g.offsetWidth=g.outerWidth();g.offsetHeight=g.outerHeight();!q&&p.top+g.offsetHeight+f.height()>l.height()&&(q=!0);0<=k.indexOf("right")?p.left=p.left+g.outerWidth()-f.width():n&&(p.left=p.left+g.offsetWidth-5,p.top-=g.offsetHeight);p.left+f.width()>l.width()&&(p.left=l.width()-f.width()-12);p.top=Math.max(0,p.top+(q?-f.height():
-g.offsetHeight));f.css({left:p.left+"px",top:p.top+"px"})}if(b){for(k=this.menu_stack.length-1;n&&0<=k;k--)$(g).parents("#"+this.menu_stack[k]).length||"menuitem"==$(d.target).parent().attr("role")||this.hide_menu(this.menu_stack[k],d);n&&this.menu_stack.length?(f.data("parent",$.last(this.menu_stack)),f.css("z-index",($("#"+$.last(this.menu_stack)).css("z-index")||0)+1)):!n&&this.menu_stack.length&&this.hide_menu(this.menu_stack[0],d);f.show().attr("aria-hidden","false").data("opener",g.attr("aria-expanded",
-"true").get(0));this.triggerEvent("menu-open",{name:e,obj:f,props:a,originalEvent:d});this.menu_stack.push(e);if(this.menu_keyboard_active=b&&m)this.focused_menu=e,f.find("a,input:not(:disabled)").not("[aria-disabled=true]").first().focus()}else this.hide_menu(e,d);return b};this.hide_menu=function(a,b){if(this.menu_stack.length){for(var d,e=rcube_event.is_keyboard(b),f=this.menu_stack.length-1;0<=f;f--)d=$("#"+this.menu_stack[f]).hide().attr("aria-hidden","true").data("parent",!1),this.triggerEvent("menu-close",
-{name:this.menu_stack[f],obj:d,props:{menu:this.menu_stack[f]},originalEvent:b}),this.menu_stack[f]==a&&(f=-1,d.data("opener")&&($(d.data("opener")).attr("aria-expanded","false"),e&&d.data("opener").focus())),this.menu_stack.pop();this.menu_stack.length&&e?(this.menu_keyboard_active=!0,this.focused_menu=$.last(this.menu_stack),d&&d.data("opener")||$("#"+this.focused_menu).find("a,input:not(:disabled)").not("[aria-disabled=true]").first().focus()):(this.focused_menu=null,this.menu_keyboard_active=
-!1)}else this.triggerEvent("menu-close",{name:a,props:{menu:a},originalEvent:b})};this.element_position=function(a,b){b=$(b);var d=$(window),e=b.outerWidth(),f=b.outerHeight(),g=b.data("menu-pos"),m=d.height(),k=$(a).height(),n=$(a).width(),l=b.offset(),p=l.top,l=l.left+e;"bottom"==g?(p+=f,l-=e):l-=5;p+k>m&&(p-=k-f,0>p&&(p=Math.max(0,(m-k)/2)));l+n>d.width()&&(l-=n+e);a.css({left:l+"px",top:p+"px"})};this.editor_init=function(a,b){this.editor=new rcube_text_editor(a,b)};this.html2plain=function(a,
-b){return this.format_converter(a,"html",b)};this.plain2html=function(a,b){return this.format_converter(a,"plain",b)};this.format_converter=function(a,b,d){if(!a||"html"==b&&!a.replace(/<[^>]+>| |\xC2\xA0|\s/g,"").length||"html"!=b&&!a.replace(/\xC2\xA0|\s/g,"").length)return d&&setTimeout(function(){d("")},50),!0;var e=this.env.editor_warned||confirm(this.get_label("editorwarning"));this.env.editor_warned=!0;if(!e)return!1;b="?_task=utils&_action="+("html"==b?"html2text":"text2html");var f=
-this.set_busy(!0,"converting");this.log("HTTP POST: "+b);$.ajax({type:"POST",url:b,data:a,contentType:"application/octet-stream",error:function(a,b,d){g.http_error(a,b,d,f)},success:function(a){g.set_busy(!1,null,f);d&&d(a)}});return!0};this.url=function(a,b){var d="string"===typeof b?b:"";"string"!==typeof a?b=a:b&&"object"===typeof b||(b={});a?b._action=a:this.env.action&&(b._action=this.env.action);var e=this.env.comm_path,f,g={};a&&a.match(/([a-z0-9_-]+)\/([a-z0-9-_.]+)/)&&(b._action=RegExp.$2,
-e=e.replace(/\_task=[a-z0-9_-]+/,"_task="+RegExp.$1));for(f in b)void 0!==b[f]&&null!==b[f]&&(g[f]=b[f]);if(g=$.param(g))e+=(-1<e.indexOf("?")?"&":"?")+g;d&&(e+=(-1<e.indexOf("?")?"&":"?")+d);return e};this.redirect=function(a,b){(b||null===b)&&this.set_busy(!0);this.is_framed()?parent.rcmail.redirect(a,b):(this.env.extwin&&("string"==typeof a?a+=(0>a.indexOf("?")?"?":"&")+"_extwin=1":a._extwin=1),this.location_href(a,window))};this.goto_url=function(a,b,d){this.redirect(this.url(a,b),d)};this.location_href=
-function(a,b,d){d&&this.lock_frame();"object"==typeof a&&(a=this.env.comm_path+"&"+$.param(a));bw.ie&&b==window?$("<a>").attr("href",a).appendTo(document.body).get(0).click():b.location.href=a;this.start_keepalive()};this.update_state=function(a){window.history.replaceState&&window.history.replaceState({},document.title,rcmail.url("",a))};this.http_request=function(a,b,d){"object"!==typeof b&&(b=rcube_parse_query(b));b._remote=1;b._unlock=d?d:0;var e=this.triggerEvent("request"+a,b);if(!1===e)return b._unlock&&
-this.set_busy(!1,null,b._unlock),!1;void 0!==e&&(b=e,b._action&&(a=b._action,delete b._action));b=this.url(a,b);this.log("HTTP GET: "+b);this.start_keepalive();return $.ajax({type:"GET",url:b,dataType:"json",success:function(a){g.http_response(a)},error:function(b,e,m){g.http_error(b,e,m,d,a)}})};this.http_post=function(a,b,d){"object"!==typeof b&&(b=rcube_parse_query(b));b._remote=1;b._unlock=d?d:0;var e=this.triggerEvent("request"+a,b);if(!1===e)return b._unlock&&this.set_busy(!1,null,b._unlock),
-!1;void 0!==e&&(b=e,b._action&&(a=b._action,delete b._action));e=this.url(a);this.log("HTTP POST: "+e);this.start_keepalive();return $.ajax({type:"POST",url:e,data:b,dataType:"json",success:function(a){g.http_response(a)},error:function(b,e,m){g.http_error(b,e,m,d,a)}})};this.abort_request=function(a){a.request&&a.request.abort();a.lock&&this.set_busy(!1,null,a.lock)};this.http_response=function(a){if(a){a.unlock&&this.set_busy(!1);this.triggerEvent("responsebefore",{response:a});this.triggerEvent("responsebefore"+
-a.action,{response:a});a.env&&this.set_env(a.env);if("object"===typeof a.texts)for(var b in a.texts)"string"===typeof a.texts[b]&&this.add_label(b,a.texts[b]);a.exec&&(this.log(a.exec),eval(a.exec));if(a.callbacks&&a.callbacks.length)for(b=0;b<a.callbacks.length;b++)this.triggerEvent(a.callbacks[b][0],a.callbacks[b][1]);switch(a.action){case "delete":if("addressbook"==this.task){var d;b=this.contact_list.get_selection();d=!1;b&&this.contact_list.rows[b]&&(d=""==this.env.source?(d=String(b).replace(/^[^-]+-/,
-""))&&this.env.address_sources[d]&&!this.env.address_sources[d].readonly:!this.env.address_sources[this.env.source].readonly);this.enable_command("compose",b&&this.contact_list.rows[b]);this.enable_command("delete","edit",d);this.enable_command("export",this.contact_list&&0<this.contact_list.rowcount);this.enable_command("export-selected","print",!1)}case "move":"show"==this.env.action?(this.enable_command(this.env.message_commands,!0),this.env.list_post||this.enable_command("reply-list",!1)):"addressbook"==
-this.task&&this.triggerEvent("listupdate",{folder:this.env.source,rowcount:this.contact_list.rowcount});case "purge":case "expunge":"mail"==this.task&&(this.env.exists||(this.env.contentframe&&this.show_contentframe(!1),this.enable_command(this.env.message_commands,"purge","expunge","select-all","select-none","expand-all","expand-unread","collapse-all",!1)),this.message_list&&this.triggerEvent("listupdate",{folder:this.env.mailbox,rowcount:this.message_list.rowcount}));break;case "refresh":case "check-recent":$.each(this.env.recent_flags||
-{},function(a,b){g.set_message(a,"deleted",b.deleted);g.set_message(a,"replied",b.answered);g.set_message(a,"unread",!b.seen);g.set_message(a,"forwarded",b.forwarded);g.set_message(a,"flagged",b.flagged)}),delete this.env.recent_flags;case "getunread":case "search":this.env.qsearch=null;case "list":if("mail"==this.task){d=this.is_multifolder_listing();var e=this.message_list;b=this.env.list_uid;this.enable_command("show","select-all","select-none",0<this.env.messagecount);this.enable_command("expunge",
-this.env.exists&&!d);this.enable_command("purge",this.purge_mailbox_test()&&!d);this.enable_command("import-messages",!d);this.enable_command("expand-all","expand-unread","collapse-all",this.env.threading&&this.env.messagecount&&!d);if(e){if("list"==a.action||"search"==a.action)b&&(e.rows[b]||(b+="-"+this.env.mailbox),e.rows[b]&&e.select(b),delete this.env.list_uid),this.enable_command("set-listmode",this.env.threads&&!d),0<e.rowcount&&!$(document.activeElement).is("input,textarea")&&e.focus(),this.msglist_select(e);
-"getunread"!=a.action&&this.triggerEvent("listupdate",{folder:this.env.mailbox,rowcount:e.rowcount})}}else"addressbook"==this.task&&(this.enable_command("export",this.contact_list&&0<this.contact_list.rowcount),"list"==a.action||"search"==a.action)&&(this.enable_command("search-create",""==this.env.source),this.enable_command("search-delete",this.env.search_id),this.update_group_commands(),0<this.contact_list.rowcount&&!$(document.activeElement).is("input,textarea")&&this.contact_list.focus(),this.triggerEvent("listupdate",
-{folder:this.env.source,rowcount:this.contact_list.rowcount}));break;case "list-contacts":case "search-contacts":this.contact_list&&0<this.contact_list.rowcount&&this.contact_list.focus()}a.unlock&&this.hide_message(a.unlock);this.triggerEvent("responseafter",{response:a});this.triggerEvent("responseafter"+a.action,{response:a});this.start_keepalive()}};this.http_error=function(a,b,d,e,f){d=a.statusText;this.set_busy(!1,null,e);a.abort();this.unload||(a.status&&d?this.display_message(this.get_label("servererror")+
-" ("+d+")","error"):"timeout"==b?this.display_message(this.get_label("requesttimedout"),"error"):0==a.status&&"abort"!=b&&this.display_message(this.get_label("connerror"),"error"),(b=a.getResponseHeader("Location"))&&"compose"!=this.env.action&&this.redirect(b),403==a.status?(this.is_framed()?parent:window).location.reload():"keep-alive"==f&&setTimeout(function(){g.keep_alive();g.start_keepalive()},3E4))};this.session_error=function(a){this.env.server_error=401;"compose"==this.env.action?(this.save_compose_form_local(),
-this.compose_skip_unsavedcheck=!0):a&&setTimeout(function(){g.redirect(a,!0)},2E3)};this.iframe_loaded=function(a){this.set_busy(!1,null,a);this.submit_timer&&clearTimeout(this.submit_timer)};this.multi_thread_http_request=function(a){var b,d,e=(new Date).getTime(),f=a.threads||1;a.reqid=e;a.running=0;a.requests=[];a.result=[];a._items=$.extend([],a.items);a.lock||(a.lock=this.display_message(this.get_label("loading"),"loading"));this.http_request_jobs[e]=a;for(b=0;b<f;b++){d=a._items.shift();if(void 0===
-d)break;a.running++;a.requests.push(this.multi_thread_send_request(a,d))}return e};this.multi_thread_send_request=function(a,b){var d,e,f;if(a.postdata){e={};for(d in a.postdata)e[d]=String(a.postdata[d]).replace("%s",b);e._reqid=a.reqid}else if("string"==typeof a.query)f=a.query.replace("%s",b),f+="&_reqid="+a.reqid;else if("object"==typeof a.query&&a.query){f={};for(d in a.query)f[d]=String(a.query[d]).replace("%s",b);f._reqid=a.reqid}return e?this.http_post(a.action,e):this.http_request(a.action,
-f)};this.multi_thread_http_response=function(a,b){var d=this.http_request_jobs[b];if(d&&!(0>=d.running||d.cancelled)){d.running--;if(d.onresponse&&"function"==typeof d.onresponse)d.onresponse(a);d.result=$.extend(d.result,a);var e=d._items.shift();void 0!==e?(d.running++,d.requests.push(this.multi_thread_send_request(d,e))):0==d.running&&(d.whendone&&"function"==typeof d.whendone&&d.whendone(d.result),this.set_busy(!1,"",d.lock),delete this.http_request_jobs[b])}};this.multi_thread_request_abort=
-function(a){if(a=this.http_request_jobs[a]){for(var b=0;0<a.running&&b<a.requests.length;b++)a.requests[b].abort&&a.requests[b].abort();a.running=0;a.cancelled=!0;this.set_busy(!1,"",a.lock)}};this.async_upload_form=function(a,b,d){var e=(new Date).getTime(),f="rcmupload"+e,g=this.async_upload_form_frame(f);if(this.env.upload_progress_name){var m=this.env.upload_progress_name,k=$("input[name="+m+"]",a);k.length||(k=$("<input>").attr({type:"hidden",name:m}),k.prependTo(a));k.val(e)}g.bind("load",{ts:e},
-d);$(a).attr({target:f,action:this.url(b,{_id:this.env.compose_id||"",_uploadid:e,_from:this.env.action}),method:"POST"}).attr(a.encoding?"encoding":"enctype","multipart/form-data").submit();return f};this.async_upload_form_frame=function(a){return $("<iframe>").attr({name:a,style:"border: none; width: 0; height: 0; visibility: hidden"}).appendTo(document.body)};this.document_drag_hover=function(a,b){a.preventDefault();$(this.gui_objects.filedrop)[b?"addClass":"removeClass"]("active")};this.file_drag_hover=
-function(a,b){a.preventDefault();a.stopPropagation();$(this.gui_objects.filedrop)[b?"addClass":"removeClass"]("hover")};this.file_dropped=function(a){this.file_drag_hover(a,!1);var b=a.target.files||a.dataTransfer.files,d=window.FormData?new FormData:null,e=(this.env.filedrop.fieldname||"_file")+(this.env.filedrop.single?"":"[]"),f="------multipartformboundary"+(new Date).getTime(),h="--"+f+"\r\n";if(b&&b.length)for(var m=function(){var a=1<b.length,e=(new Date).getTime(),a=$("<span>").text(a?g.get_label("uploadingmany"):
-b[0].name).html();g.add2attachment_list(e,{name:"",html:a,classname:"uploading",complete:!1})||(g.file_upload_id=g.set_busy(!0,"uploading"));h+="--"+f+"--\r\n";$.ajax({type:"POST",dataType:"json",url:g.url(g.env.filedrop.action||"upload",{_id:g.env.compose_id||g.env.cid||"",_uploadid:e,_remote:1,_from:g.env.action}),contentType:d?!1:"multipart/form-data; boundary="+f,processData:!1,timeout:0,data:d||h,headers:{"X-Roundcube-Request":g.env.request_token},xhr:function(){var a=jQuery.ajaxSettings.xhr();
-!d&&a.sendAsBinary&&(a.send=a.sendAsBinary);return a},success:function(a){g.http_response(a)},error:function(a,b,d){g.http_error(a,b,d,null,"attachment")}})},k=this.env.filedrop.single?0:b.length-1,n=a=0,l;a<=k&&(l=b[n]);n++)if(l.name||(l.name=l.fileName),l.size||(l.size=l.fileSize),l.type||(l.type="application/octet-stream"),!d&&/[^\x20-\x7E]/.test(l.name)&&(l.name_bin=unescape(encodeURIComponent(l.name))),!this.env.filedrop.filter||l.type.match(RegExp(this.env.filedrop.filter))){if(d){if(d.append(e,
-l),a==k)return m()}else if(window.FileReader){var p=new FileReader;p.onload=function(a,b){return function(d){h+='Content-Disposition: form-data; name="'+e+'"';h+='; filename="'+(l.name_bin||a.name)+'"\r\n';h+="Content-Length: "+a.size+"\r\n";h+="Content-Type: "+a.type+"\r\n\r\n";h+=p.result+"\r\n";h+="--"+f+"\r\n";if(b==k)return m()}}(l,a);p.readAsBinaryString(l)}else if(l.getAsBinary&&(h+='Content-Disposition: form-data; name="'+e+'"',h+='; filename="'+(l.name_bin||l.name)+'"\r\n',h+="Content-Length: "+
-l.size+"\r\n",h+="Content-Type: "+l.type+"\r\n\r\n",h+=l.getAsBinary()+"\r\n",h+="--"+f+"\r\n",a==k))return m();a++}};this.start_keepalive=function(){!this.env.session_lifetime||this.env.framed||this.env.extwin||"login"==this.task||"print"==this.env.action||(this._keepalive&&clearInterval(this._keepalive),this._keepalive=setInterval(function(){g.keep_alive()},500*this.env.session_lifetime))};this.start_refresh=function(){!this.env.refresh_interval||this.env.framed||this.env.extwin||"login"==this.task||
-"print"==this.env.action||(this._refresh&&clearInterval(this._refresh),this._refresh=setInterval(function(){g.refresh()},1E3*this.env.refresh_interval))};this.keep_alive=function(){this.busy||this.http_request("keep-alive")};this.refresh=function(){if(this.busy)setTimeout(function(){g.refresh();g.start_refresh()},1E4);else{var a={},b=this.set_busy(!0,"refreshing");"mail"==this.task&&this.gui_objects.mailboxlist&&(a=this.check_recent_params());a._last=Math.floor(this.env.lastrefresh.getTime()/1E3);
-this.env.lastrefresh=new Date;this.http_post("refresh",a,b)}};this.check_recent_params=function(){var a={_mbox:this.env.mailbox};this.gui_objects.mailboxlist&&(a._folderlist=1);this.gui_objects.quotadisplay&&(a._quota=1);this.env.search_request&&(a._search=this.env.search_request);this.gui_objects.messagelist&&(a._list=1,a._uids=$.map(this.message_list.rows,function(a,d){return d}).join(","));return a};this.quote_html=function(a){return String(a).replace(/</g,"<").replace(/>/g,">").replace(/"/g,
-""")};this.opener=function(a,b){var d,e=window.opener;try{if(e&&!e.closed){a&&(!e.rcmail||e.rcmail.env.framed)&&e.parent&&e.parent.rcmail&&(e=e.parent);if(e.rcmail&&b)for(d in b)if(e.rcmail.env[d]!=b[d])return;return e.rcmail}}catch(f){}};this.get_single_uid=function(){var a=this.env.uid||(this.message_list?this.message_list.get_single_selection():null);return g.triggerEvent("get_single_uid",{uid:a})||a};this.get_single_cid=function(){var a=this.env.cid||(this.contact_list?this.contact_list.get_single_selection():
-null);return g.triggerEvent("get_single_cid",{cid:a})||a};this.get_message_mailbox=function(a){return((this.env.messages&&a?this.env.messages[a]:null)||{}).mbox||this.env.mailbox};this.params_from_uid=function(a,b){b||(b={});b._uid=String(a).split("-")[0];b._mbox=this.get_message_mailbox(a);return b};this.get_caret_pos=function(a){return void 0!==a.selectionEnd?a.selectionEnd:a.value.length};this.set_caret_pos=function(a,b){try{a.setSelectionRange&&a.setSelectionRange(b,b)}catch(d){}};this.get_input_selection=
-function(a){var b=0,d=0,e="";"number"==typeof a.selectionStart&&"number"==typeof a.selectionEnd&&(e=a.value,b=a.selectionStart,d=a.selectionEnd);return{start:b,end:d,text:e.substr(b,d-b)}};this.lock_form=function(a,b){if(a&&a.elements){var d,e,f;b&&(this.disabled_form_elements=[]);d=0;for(e=a.elements.length;d<e;d++)if(f=a.elements[d],"hidden"!=f.type)if(b&&f.disabled)this.disabled_form_elements.push(f);else if(b||0>$.inArray(f,this.disabled_form_elements))f.disabled=b}};this.mailto_handler_uri=function(){return location.href.split("?")[0]+
-"?_task=mail&_action=compose&_to=%s"};this.register_protocol_handler=function(a){try{window.navigator.registerProtocolHandler("mailto",this.mailto_handler_uri(),a)}catch(b){this.display_message(String(b),"error")}};this.check_protocol_handler=function(a,b){var d=window.navigator;d&&"function"==typeof d.registerProtocolHandler?"function"==typeof d.isProtocolHandlerRegistered?(d=d.isProtocolHandlerRegistered("mailto",this.mailto_handler_uri()))&&$(b).parent().find(".mailtoprotohandler-status").html(d):
-$(b).click(function(){g.register_protocol_handler(a);return!1}):$(b).addClass("disabled").click(function(){return!1})};this.browser_capabilities_check=function(){this.env.browser_capabilities||(this.env.browser_capabilities={});void 0===this.env.browser_capabilities.pdf&&(this.env.browser_capabilities.pdf=this.pdf_support_check());void 0===this.env.browser_capabilities.flash&&(this.env.browser_capabilities.flash=this.flash_support_check());void 0===this.env.browser_capabilities.tif&&this.tif_support_check()};
-this.browser_capabilities=function(){if(!this.env.browser_capabilities)return"";var a,b=[];for(a in this.env.browser_capabilities)b.push(a+"="+this.env.browser_capabilities[a]);return b.join()};this.tif_support_check=function(){var a=new Image;a.onload=function(){g.env.browser_capabilities.tif=1};a.onerror=function(){g.env.browser_capabilities.tif=0};a.src=this.assets_path("program/resources/blank.tif")};this.pdf_support_check=function(){var a=navigator.mimeTypes?navigator.mimeTypes["application/pdf"]:
-{},b=navigator.plugins,d=b.length,e=/Adobe Reader|PDF|Acrobat/i;if(a&&a.enabledPlugin)return 1;if("ActiveXObject"in window){try{if(new ActiveXObject("AcroPDF.PDF"))return 1}catch(f){}try{if(new ActiveXObject("PDF.PdfCtrl"))return 1}catch(g){}}for(i=0;i<d;i++)if(a=b[i],"String"===typeof a){if(e.test(a))return 1}else if(a.name&&e.test(a.name))return 1;return 0};this.flash_support_check=function(){var a=navigator.mimeTypes?navigator.mimeTypes["application/x-shockwave-flash"]:{};if(a&&a.enabledPlugin)return 1;
-if("ActiveXObject"in window)try{if(new ActiveXObject("ShockwaveFlash.ShockwaveFlash"))return 1}catch(b){}return 0};this.assets_path=function(a){this.env.assets_path&&!a.startsWith(this.env.assets_path)&&(a=this.env.assets_path+a);return a};this.set_cookie=function(a,b,d){setCookie(a,b,d,this.env.cookie_path,this.env.cookie_domain,this.env.cookie_secure)};this.get_local_storage_prefix=function(){this.local_storage_prefix||(this.local_storage_prefix="roundcube."+(this.env.user_id||"anonymous")+".");
-return this.local_storage_prefix};this.local_storage_get_item=function(a,b,d){var e,f;try{e=localStorage.getItem(this.get_local_storage_prefix()+a),f=JSON.parse(e)}catch(g){}return f||b||null};this.local_storage_set_item=function(a,b,d){try{return localStorage.setItem(this.get_local_storage_prefix()+a,JSON.stringify(b)),!0}catch(e){return!1}};this.local_storage_remove_item=function(a){try{return localStorage.removeItem(this.get_local_storage_prefix()+a),!0}catch(b){return!1}};this.print_dialog=function(){bw.safari?
-setTimeout("window.print()",10):window.print()}}rcube_webmail.long_subject_title=function(g,u){if(!g.title){var a=$(g);a.width()+15*(u||0)>a.parent().width()&&(g.title=rcube_webmail.subject_text(g))}};
+(d._page=b);this.http_request("list",d,e);this.update_state({_mbox:a,_page:b&&1<b?b:null})};this.update_selection=function(){var a=this.message_list,b=a.selection,d=a.rows,e,f=[];for(e in b)d[b[e]]&&f.push(b[e]);a.selection=f;try{var h=this.get_frame_window(this.env.contentframe).rcmail.env.uid;h&&!a.in_selection(h)&&this.show_contentframe(!1)}catch(g){}};this.expand_unread=function(){for(var a,b=this.message_list.tbody.firstChild;b;)1==b.nodeType&&(a=this.message_list.rows[b.uid])&&a.unread_children&&
+(this.message_list.expand_all(a),this.set_unread_children(a.uid)),b=b.nextSibling;return!1};this.expand_message_row=function(a,b){var d=this.message_list.rows[b];d.expanded=!d.expanded;this.set_unread_children(b);d.expanded=!d.expanded;this.message_list.expand_row(a,b)};this.expand_threads=function(){if(this.env.threading&&this.env.autoexpand_threads&&this.message_list)switch(this.env.autoexpand_threads){case 2:this.expand_unread();break;case 1:this.message_list.expand_all()}};this.init_threads=function(a,
+b){if(b&&b!=this.env.mailbox)return!1;for(var d=0,e=a.length;d<e;d++)this.add_tree_icons(a[d]);this.expand_threads()};this.add_tree_icons=function(a){var b,d,e,f,h=[],g=[],k,n=this.message_list.rows;for(k=a?n[a]?n[a].obj:null:this.message_list.tbody.firstChild;k;){if(1==k.nodeType&&(d=n[k.uid]))if(d.depth){for(b=h.length-1;0<=b&&!(e=h[b].length,e>d.depth?(f=e-d.depth,h[b][f]&2||(h[b][f]=h[b][f]?h[b][f]+2:2)):e==d.depth&&(h[b][0]&2||(h[b][0]+=2)),d.depth>e);b--);h.push(Array(d.depth));h[h.length-1][0]=
+1;g.push(d.uid)}else{if(h.length){for(b in h)this.set_tree_icons(g[b],h[b]);h=[];g=[]}if(a&&k!=n[a].obj)break}k=k.nextSibling}if(h.length)for(b in h)this.set_tree_icons(g[b],h[b])};this.set_tree_icons=function(a,b){var d,e=[],f="",h=b.length;for(d=0;d<h;d++)2<b[d]?e.push({"class":"l3",width:15}):1<b[d]?e.push({"class":"l2",width:15}):0<b[d]?e.push({"class":"l1",width:15}):e.length&&!e[e.length-1]["class"]?e[e.length-1].width+=15:e.push({"class":null,width:15});for(d=e.length-1;0<=d;d--)f=e[d]["class"]?
+f+('<div class="tree '+e[d]["class"]+'" />'):f+('<div style="width:'+e[d].width+'px" />');f&&$("#rcmtab"+this.html_identifier(a,!0)).html(f)};this.update_thread_root=function(a,b){if(this.env.threading){var d=this.message_list.find_root(a);if(a!=d){var e=this.message_list.rows[d];if("read"==b&&e.unread_children)e.unread_children--;else if("unread"==b&&e.has_children)e.unread_children=e.unread_children?e.unread_children+1:1;else return;this.set_message_icon(d);this.set_unread_children(d)}}};this.update_thread=
+function(a){if(!this.env.threading)return 0;var b,d=0,e=this.message_list.rows,f=e[a],h=e[a].depth,m=[];f.depth?f.unread&&(a=this.message_list.find_root(a),e[a].unread_children--,this.set_unread_children(a)):d--;a=f.parent_uid;for(f=f.obj.nextSibling;f;){if(1==f.nodeType&&(b=e[f.uid])){if(!b.depth||b.depth<=h)break;b.depth--;$("#rcmtab"+b.id).width(15*b.depth).html("");b.depth?(b.depth==h&&(b.parent_uid=a),b.unread&&m.length&&m[m.length-1].unread_children++):(d++,b.parent_uid=0,b.has_children&&($("#"+
+b.id+" .leaf:first").attr("id","rcmexpando"+b.id).attr("class","none"!=b.obj.style.display?"expanded":"collapsed").bind("mousedown",{uid:b.uid},function(a){return g.expand_message_row(a,a.data.uid)}),b.unread_children=0,m.push(b)),"none"==b.obj.style.display&&$(b.obj).show())}f=f.nextSibling}for(b=0;b<m.length;b++)this.set_unread_children(m[b].uid);return d};this.delete_excessive_thread_rows=function(){for(var a=this.message_list.rows,b=this.message_list.tbody.firstChild,d=this.env.pagesize+1;b;)1==
+b.nodeType&&(r=a[b.uid])&&(!r.depth&&d&&d--,d||this.message_list.remove_row(b.uid)),b=b.nextSibling};this.set_message_icon=function(a){var b="",d=this.message_list.rows[a];if(!d)return!1;d.icon&&(a="msgicon",d.deleted?(a+=" deleted",b+=this.get_label("deleted")+" "):d.unread?(a+=" unread",b+=this.get_label("unread")+" "):d.unread_children&&(a+=" unreadchildren"),d.msgicon==d.icon&&(d.replied&&(a+=" replied",b+=this.get_label("replied")+" "),d.forwarded&&(a+=" forwarded",b+=this.get_label("forwarded")+
+" "),a+=" status"),$(d.icon).attr("class",a).attr("title",b));d.msgicon&&d.msgicon!=d.icon&&(b="",a="msgicon",!d.unread&&d.unread_children&&(a+=" unreadchildren"),d.replied&&(a+=" replied",b+=this.get_label("replied")+" "),d.forwarded&&(a+=" forwarded",b+=this.get_label("forwarded")+" "),$(d.msgicon).attr("class",a).attr("title",b));d.flagicon&&(a=d.flagged?"flagged":"unflagged",b=this.get_label(a),$(d.flagicon).attr("class",a).attr("aria-label",b).attr("title",b))};this.set_message_status=function(a,
+b,d){var e=this.message_list.rows[a];if(!e)return!1;"unread"==b&&e.unread!=d&&this.update_thread_root(a,d?"unread":"read");-1<$.inArray(b,["unread","deleted","replied","forwarded","flagged"])&&(e[b]=d)};this.set_message=function(a,b,d){var e=this.message_list&&this.message_list.rows[a];if(!e)return!1;b&&this.set_message_status(a,b,d);if(-1<$.inArray(b,["unread","deleted","flagged"]))$(e.obj)[e[b]?"addClass":"removeClass"](b);this.set_unread_children(a);this.set_message_icon(a)};this.set_unread_children=
+function(a){a=this.message_list.rows[a];a.parent_uid||(a.unread||!a.unread_children||a.expanded?$(a.obj).removeClass("unroot"):$(a.obj).addClass("unroot"))};this.copy_messages=function(a,b){if(a&&"object"===typeof a)a=a.id;else if(!a)return this.folder_selector(b,function(a){g.command("copy",a)});if(a&&a!=this.env.mailbox){var d=this.selection_post_data({_target_mbox:a});d._uid&&this.http_post("copy",d,this.display_message(this.get_label("copyingmessage"),"loading"))}};this.move_messages=function(a,
+b){if(a&&"object"===typeof a)a=a.id;else if(!a)return this.folder_selector(b,function(a){g.command("move",a)});if(a&&(a!=this.env.mailbox||this.is_multifolder_listing())){var d=!1,e=this.selection_post_data({_target_mbox:a});e._uid&&("show"==this.env.action?d=this.set_busy(!0,"movingmessage"):this.show_contentframe(!1),this.enable_command(this.env.message_commands,!1),this._with_selected_messages("move",e,d))}};this.delete_messages=function(a){var b=this.message_list,d=this.env.trash_mailbox;if(this.env.flag_for_deletion)return this.mark_message("delete"),
+!1;d&&this.env.mailbox!=d?this.env.delete_junk&&this.env.junk_mailbox&&this.env.mailbox==this.env.junk_mailbox?this.permanently_remove_messages():b&&b.modkey==SHIFT_KEY||a&&rcube_event.get_modifier(a)==SHIFT_KEY?confirm(this.get_label("deletemessagesconfirm"))&&this.permanently_remove_messages():this.move_messages(d):this.permanently_remove_messages();return!0};this.permanently_remove_messages=function(){var a=this.selection_post_data();a._uid&&(this.show_contentframe(!1),this._with_selected_messages("delete",
+a))};this._with_selected_messages=function(a,b,d){var e=0,f="delete"==a||!this.is_multifolder_listing();if(this.message_list){var h,g,k,n=[],l=this.message_list.get_selection();h=0;for(len=l.length;h<len;h++)g=l[h],this.env.threading&&(e+=this.update_thread(g),k=this.message_list.find_root(g),k!=g&&0>$.inArray(k,n)&&n.push(k)),f&&this.message_list.remove_row(g,this.env.display_next&&h==l.length-1);!this.env.display_next&&f&&this.message_list.clear_selection();h=0;for(len=n.length;h<len;h++)this.add_tree_icons(n[h])}0>
+e?b._count=-1*e:0<e&&f&&this.delete_excessive_thread_rows();f||(b._refresh=1);d||(d=this.display_message(this.get_label("move"==a?"movingmessage":"deletingmessage"),"loading"));this.http_post(a,b,d)};this.selection_post_data=function(a){"object"!=typeof a&&(a={});a._mbox=this.env.mailbox;if(!a._uid){var b=this.env.uid?[this.env.uid]:this.message_list.get_selection();a._uid=this.uids_to_list(b)}this.env.action&&(a._from=this.env.action);this.env.search_request&&(a._search=this.env.search_request);
+this.env.display_next&&this.env.next_uid&&(a._next_uid=this.env.next_uid);return a};this.mark_message=function(a,b){var d=[],e=[],f,h,g,k=this.message_list;b?d[0]=b:this.env.uid?d[0]=this.env.uid:k&&(d=k.get_selection());if(k)for(k.focus(),h=0,f=d.length;h<f;h++)g=d[h],("read"==a&&k.rows[g].unread||"unread"==a&&!k.rows[g].unread||"delete"==a&&!k.rows[g].deleted||"undelete"==a&&k.rows[g].deleted||"flagged"==a&&!k.rows[g].flagged||"unflagged"==a&&k.rows[g].flagged)&&e.push(g);else e=d;if(e.length||
+this.select_all_mode)switch(a){case "read":case "unread":this.toggle_read_status(a,e);break;case "delete":case "undelete":this.toggle_delete_status(e);break;case "flagged":case "unflagged":this.toggle_flagged_status(a,d)}};this.toggle_read_status=function(a,b){var d,e=b.length,f=this.selection_post_data({_uid:this.uids_to_list(b),_flag:a}),h=this.display_message(this.get_label("markingmessage"),"loading");for(d=0;d<e;d++)this.set_message(b[d],"unread","unread"==a?!0:!1);this.http_post("mark",f,h)};
+this.toggle_flagged_status=function(a,b){var d,e=b.length,f=this.selection_post_data({_uid:this.uids_to_list(b),_flag:a}),h=this.display_message(this.get_label("markingmessage"),"loading");for(d=0;d<e;d++)this.set_message(b[d],"flagged","flagged"==a?!0:!1);this.http_post("mark",f,h)};this.toggle_delete_status=function(a){var b=a.length,d,e,f=!0,h=this.message_list?this.message_list.rows:{};if(1==b)return!this.message_list||h[a[0]]&&!h[a[0]].deleted?this.flag_as_deleted(a):this.flag_as_undeleted(a),
+!0;for(d=0;d<b;d++)if(e=a[d],h[e]&&!h[e].deleted){f=!1;break}f?this.flag_as_undeleted(a):this.flag_as_deleted(a);return!0};this.flag_as_undeleted=function(a){var b,d=a.length,e=this.selection_post_data({_uid:this.uids_to_list(a),_flag:"undelete"}),f=this.display_message(this.get_label("markingmessage"),"loading");for(b=0;b<d;b++)this.set_message(a[b],"deleted",!1);this.http_post("mark",e,f)};this.flag_as_deleted=function(a){for(var b=[],d=this.selection_post_data({_uid:this.uids_to_list(a),_flag:"delete"}),
+e=this.display_message(this.get_label("markingmessage"),"loading"),f=this.message_list?this.message_list.rows:{},h=0,g=0,k=a.length;g<k;g++)uid=a[g],f[uid]&&(f[uid].unread&&(b[b.length]=uid),this.env.skip_deleted?(h+=this.update_thread(uid),this.message_list.remove_row(uid,this.env.display_next&&g==this.message_list.selection.length-1)):this.set_message(uid,"deleted",!0));this.env.skip_deleted&&this.message_list&&(this.env.display_next||this.message_list.clear_selection(),0>h?d._count=-1*h:0<h&&this.delete_excessive_thread_rows());
+b.length&&(d._ruid=this.uids_to_list(b));this.env.skip_deleted&&this.env.display_next&&this.env.next_uid&&(d._next_uid=this.env.next_uid);this.http_post("mark",d,e)};this.flag_deleted_as_read=function(a){var b,d,e,f=this.message_list?this.message_list.rows:{};"string"==typeof a&&(a=a.split(","));d=0;for(e=a.length;d<e;d++)b=a[d],f[b]&&this.set_message(b,"unread",!1)};this.uids_to_list=function(a){return this.select_all_mode?"*":1>=a.length?a.join(","):a};this.set_button_titles=function(){var a="deletemessage";
+this.env.flag_for_deletion||!this.env.trash_mailbox||this.env.mailbox==this.env.trash_mailbox||this.env.delete_junk&&this.env.junk_mailbox&&this.env.mailbox==this.env.junk_mailbox||(a="movemessagetotrash");this.set_alttext("delete",a)};this.expunge_mailbox=function(a){var b,d={_mbox:a};a==this.env.mailbox&&(b=this.set_busy(!0,"loading"),d._reload=1,this.env.search_request&&(d._search=this.env.search_request));this.http_post("expunge",d,b)};this.purge_mailbox=function(a){var b,d={_mbox:a};if(!confirm(this.get_label("purgefolderconfirm")))return!1;
+a==this.env.mailbox&&(b=this.set_busy(!0,"loading"),d._reload=1);this.http_post("purge",d,b)};this.purge_mailbox_test=function(){return this.env.exists&&(this.env.mailbox==this.env.trash_mailbox||this.env.mailbox==this.env.junk_mailbox||this.env.mailbox.startsWith(this.env.trash_mailbox+this.env.delimiter)||this.env.mailbox.startsWith(this.env.junk_mailbox+this.env.delimiter))};this.login_user_keyup=function(a){var b=rcube_event.get_keycode(a),d=$("#rcmloginpwd");return 13==b&&d.length&&!d.val()?
+(d.focus(),rcube_event.cancel(a)):!0};this.open_compose_step=function(a){a=this.url("mail/compose",a);this.env.compose_extwin&&!this.env.extwin?this.open_window(a):(this.redirect(a),this.env.extwin&&window.resizeTo(Math.max(this.env.popup_width,$(window).width()),$(window).height()+24))};this.init_messageform=function(){if(!this.gui_objects.messageform)return!1;var a,b,d=$("[name='_from']"),e=$("[name='_to']"),f=$("input[name='_subject']"),h=$("[name='_message']").get(0),g="1"==$("input[name='_is_html']").val(),
+k=["cc","bcc","replyto","followupto"],n,l=this.opener();l&&"compose"==l.env.action&&(setTimeout(function(){1<opener.history.length?opener.history.back():l.redirect(l.get_task_url("mail"))},100),this.env.opened_extwin=!0);0<this.env.autocomplete_threads&&(n={threads:this.env.autocomplete_threads,sources:this.env.autocomplete_sources});this.init_address_input_events(e,n);for(a in k)this.init_address_input_events($("[name='_"+k[a]+"']"),n);g||(a=this.env.top_posting?0:h.value.length,"select-one"==d.prop("type")&&
+this.change_identity(d[0]),this.set_caret_pos(h,a),a&&$(h).scrollTop(h.scrollHeight));this.env.save_localstorage&&this.compose_restore_dialog(0,g);""==e.val()?b=e:""==f.val()?b=f:h&&(b=h);$(b).filter(":visible").focus();this.env.compose_focus_elem=document.activeElement;this.compose_field_hash(!0);this.auto_save_start()};this.compose_restore_dialog=function(a,b){var d,e,f,h=this.local_storage_get_item("compose.index",[]),m=function(a){++a<h.length&&g.compose_restore_dialog(a,b)};for(d=a||0;d<h.length;d++)if(e=
+h[d],f=this.local_storage_get_item("compose."+e,null,!0)){if(f.changed&&e==this.env.compose_id){this.restore_compose_form(e,b);break}if(!(this.env.draft_id&&f.draft_id&&f.draft_id!=this.env.draft_id||this.env.reply_msgid&&f.reply_msgid!=this.env.reply_msgid)&&f.changed&&f.session!=this.env.session_id){this.show_popup_dialog(this.get_label("restoresavedcomposedata").replace("$date",(new Date(f.changed)).toLocaleString()).replace("$subject",f._subject).replace(/\n/g,"<br/>"),this.get_label("restoremessage"),
+[{text:this.get_label("restore"),"class":"mainaction",click:function(){g.restore_compose_form(e,b);g.remove_compose_data(e);g.save_compose_form_local();$(this).dialog("close")}},{text:this.get_label("delete"),"class":"delete",click:function(){g.remove_compose_data(e);$(this).dialog("close");m(d)}},{text:this.get_label("ignore"),click:function(){$(this).dialog("close");m(d)}}]);break}}};this.init_address_input_events=function(a,b){this.env.recipients_delimiter=this.env.recipients_separator+" ";a.keydown(function(a){return g.ksearch_keydown(a,
+this,b)}).attr({autocomplete:"off","aria-autocomplete":"list","aria-expanded":"false",role:"combobox"})};this.submit_messageform=function(a,b){var d=this.gui_objects.messageform;if(d){if(!b&&this.env.is_sent)return this.show_popup_dialog(this.get_label("messageissent"),"",[{text:this.get_label("save"),"class":"mainaction",click:function(){g.submit_messageform(!1,!0);$(this).dialog("close")}},{text:this.get_label("cancel"),click:function(){$(this).dialog("close")}}]);var e=this.set_busy(!0,a||b?"savingmessage":
+"sendingmessage"),f=this.spellcheck_lang(),h=[];$("li",this.gui_objects.attachmentlist).each(function(){h.push(this.id.replace(/^rcmfile/,""))});$('input[name="_attachments"]',d).val(h.join());d.target="savetarget";d._draft.value=a?"1":"";d.action=this.add_url(d.action,"_unlock",e);d.action=this.add_url(d.action,"_lang",f);d.action=this.add_url(d.action,"_framed",1);b&&(d.action=this.add_url(d.action,"_saveonly",1));this.submit_timer=setTimeout(function(){g.set_busy(!1,null,e);g.display_message(g.get_label("requesttimedout"),
+"error")},1E3*this.env.request_timeout);d.submit()}};this.compose_recipient_select=function(a){var b,d,e=0;for(d=0;d<a.selection.length;d++)b=a.selection[d],this.env.contactdata[b]&&e++;this.enable_command("add-recipient",e)};this.compose_add_recipient=function(a){a||(a=$(this.env.focused_field).filter(":visible"),a=a.length?a.attr("id").replace("_",""):"to");var b=[],d=$("#_"+a),e=this.env.recipients_delimiter;if(this.contact_list&&this.contact_list.selection.length)for(var f,h=0;h<this.contact_list.selection.length;h++)if((f=
+this.contact_list.selection[h])&&this.env.contactdata[f]&&(b.push(this.env.contactdata[f]),"E"==f.charAt(0)&&0>this.env.contactdata[f].indexOf("@")&&d.length)){var g=f.substr(1);this.group2expand[g]={name:this.env.contactdata[f],input:d.get(0)};this.http_request("group-expand",{_source:this.env.source,_gid:g},!1)}b.length&&d.length&&(f=d.val(),h=RegExp(RegExp.escape(e)+"\\s*$"),f&&!h.test(f)&&(f+=e+" "),d.val(f+b.join(e+" ")+e+" ").change(),this.triggerEvent("add-recipient",{field:a,recipients:b}));
+return b.length};this.check_compose_input=function(a){var b=$("[name='_to']"),d=$("[name='_cc']"),e=$("[name='_bcc']"),f=$("[name='_from']"),h=$("[name='_subject']");if("text"==f.prop("type")&&!rcube_check_email(f.val(),!0))return alert(this.get_label("nosenderwarning")),f.focus(),!1;d=b.val()?b.val():d.val()?d.val():e.val();if(!rcube_check_email(d.replace(/^\s+/,"").replace(/[\s,;]+$/,""),!0))return alert(this.get_label("norecipientwarning")),b.focus(),!1;for(var m in this.env.attachments)if("object"===
+typeof this.env.attachments[m]&&!this.env.attachments[m].complete)return alert(this.get_label("notuploadedwarning")),!1;if(""==h.val()){var b={},k=$('<div class="prompt">').html('<div class="message">'+this.get_label("nosubjectwarning")+"</div>").appendTo(document.body),n=$("<input>").attr({type:"text",size:30}).val(this.get_label("nosubject")).appendTo(k),l=function(){h.val(n.val());k.dialog("close");g.command(a,{nocheck:!0})};b[this.get_label("sendmessage")]=function(){l($(this))};b[this.get_label("cancel")]=
+function(){h.focus();$(this).dialog("close")};k.dialog({modal:!0,resizable:!1,buttons:b,close:function(a,b){$(this).remove()}});n.select().keydown(function(a){13==a.which&&l()});return!1}if(!this.editor.get_content()&&!confirm(this.get_label("nobodywarning")))return this.editor.focus(),!1;this.editor.save();return!0};this.toggle_editor=function(a,b,d){b=this.editor.toggle(a.html,a.noconvert||!1);a.mode=a.html?"html":"plain";!b&&d&&(a.mode=a.html?"plain":"html",$(d.target).filter("select").val(a.mode));
+b&&$("input[name='_is_html']").val(a.html?1:0);return b};this.insert_response=function(a){a=this.env.textresponses[a]?this.env.textresponses[a].text:null;if(!a)return!1;this.editor.replace(a)};this.save_response=function(){var a={},b=this.editor.get_content({selection:!0,format:"text",nosig:!0}),d='<form class="propform"><div class="prop block"><label>'+this.get_label("responsename")+'</label><input type="text" name="name" id="ffresponsename" size="40" /></div><div class="prop block"><label>'+this.get_label("responsetext")+
+'</label><textarea name="text" id="ffresponsetext" cols="40" rows="8"></textarea></div></form>';a[this.gettext("save")]=function(a){a=$("#ffresponsename").val();var b=$("#ffresponsetext").val();if(!b)return $("#ffresponsetext").select(),!1;a||(a=b.substring(0,40));var d=g.display_message(g.get_label("savingresponse"),"loading");g.http_post("settings/responses",{_insert:1,_name:a,_text:b},d);$(this).dialog("close")};a[this.gettext("cancel")]=function(){$(this).dialog("close")};this.show_popup_dialog(d,
+this.gettext("newresponse"),a,{button_classes:["mainaction"]});$("#ffresponsetext").val(b);$("#ffresponsename").select()};this.add_response_item=function(a){var b=a.key;this.env.textresponses[b]=a;if(this.gui_objects.responseslist){var d=$("<li>").appendTo(this.gui_objects.responseslist);$("<a>").addClass("insertresponse active").attr("href","#").attr("rel",b).attr("tabindex","0").html(this.quote_html(a.name)).appendTo(d).mousedown(function(a){return rcube_event.cancel(a)}).bind("mouseup keypress",
+function(a){if("mouseup"==a.type||13==rcube_event.get_keycode(a))return g.command("insert-response",$(this).attr("rel")),$(document.body).trigger("mouseup"),rcube_event.cancel(a)})}};this.edit_responses=function(){};this.delete_response=function(a){!a&&this.responses_list&&(a=this.responses_list.get_selection()[0]);a&&confirm(this.get_label("deleteresponseconfirm"))&&this.http_post("settings/delete-response",{_key:a},!1)};this.spellcheck_state=function(){var a=this.editor.spellcheck_state();$.each(this.buttons.spellcheck||
+[],function(b,d){$("#"+d.id)[a?"addClass":"removeClass"]("selected")});return a};this.spellcheck_lang=function(){return this.editor.get_language()};this.spellcheck_lang_set=function(a){this.editor.set_language(a)};this.spellcheck_resume=function(a){this.editor.spellcheck_resume(a)};this.set_draft_id=function(a){if(a&&a!=this.env.draft_id){var b={task:"mail",action:""};(b=this.opener(!1,b)||this.opener(!0,b))&&b.env.mailbox==this.env.drafts_mailbox&&b.command("checkmail");this.env.draft_id=a;$("input[name='_draft_saveid']").val(a);
+window.frames.savetarget&&window.frames.savetarget.history&&!this.draft_autosave_submit&&window.frames.savetarget.history.back();this.draft_autosave_submit=!1}this.remove_compose_data(this.env.compose_id);this.compose_skip_unsavedcheck=!1};this.auto_save_start=function(){this.env.draft_autosave&&(this.draft_autosave_submit=!1,this.save_timer=setTimeout(function(){g.draft_autosave_submit=!0;g.command("savedraft")},1E3*this.env.draft_autosave));!this.local_save_timer&&window.localStorage&&this.env.save_localstorage&&
+(this.compose_type_activity=this.compose_type_activity_last=0,$(document).bind("keypress",function(a){g.compose_type_activity++}),this.local_save_timer=setInterval(function(){g.compose_type_activity>g.compose_type_activity_last&&(g.save_compose_form_local(),g.compose_type_activity_last=g.compose_type_activity)},5E3),$(window).unload(function(){g.env.server_error||g.remove_compose_data(g.env.compose_id)}));window.onbeforeunload||(window.onbeforeunload=function(){if(!g.compose_skip_unsavedcheck&&g.cmp_hash!=
+g.compose_field_hash())return g.get_label("notsentwarning")});this.busy=!1};this.compose_field_hash=function(a){var b,d,e,f="",h=["to","cc","bcc","subject"];for(b=0;b<h.length;b++)if(e=$('[name="_'+h[b]+'"]').val())f+=e+":";f+=this.editor.get_content({refresh:!1});if(this.env.attachments)for(d in this.env.attachments)f+=d;a&&(this.cmp_hash=f);return f};this.save_compose_form_local=function(){if(this.env.save_localstorage){var a={session:this.env.session_id,changed:(new Date).getTime()},b=!0;this.editor.save();
+this.env.draft_id&&(a.draft_id=this.env.draft_id);this.env.reply_msgid&&(a.reply_msgid=this.env.reply_msgid);$("input, select, textarea",this.gui_objects.messageform).each(function(d,e){switch(e.tagName.toLowerCase()){case "input":if("button"==e.type||"submit"==e.type||"hidden"==e.type&&"_is_html"!=e.name)break;a[e.name]="checkbox"!=e.type||e.checked?$(e).val():"";""!=a[e.name]&&"hidden"!=e.type&&(b=!1);break;case "select":a[e.name]=$("option:checked",e).val();break;default:a[e.name]=$(e).val(),""!=
+a[e.name]&&(b=!1)}});if(!b){var d=this.local_storage_get_item("compose.index",[]),e=this.env.compose_id;0>$.inArray(e,d)&&d.push(e);this.local_storage_set_item("compose."+e,a,!0);this.local_storage_set_item("compose.index",d)}}};this.restore_compose_form=function(a,b){var d=this.local_storage_get_item("compose."+a,!0);d&&"object"==typeof d&&($.each(d,function(a,b){if("_"==a[0]){var d=$("*[name='"+a+"']");d[0]&&"checkbox"==d[0].type?d.prop("checked",""!=b):d.val(b)}}),("1"==d._is_html&&!b||"1"!=d._is_html&&
+b)&&this.command("toggle-editor",{id:this.env.composebody,html:!b,noconvert:!0}))};this.remove_compose_data=function(a){var b=this.local_storage_get_item("compose.index",[]);0<=$.inArray(a,b)&&(this.local_storage_remove_item("compose."+a),this.local_storage_set_item("compose.index",$.grep(b,function(b,e){return b!=a})))};this.clear_compose_data=function(){var a,b=this.local_storage_get_item("compose.index",[]);for(a=0;a<b.length;a++)this.local_storage_remove_item("compose."+b[a]);this.local_storage_remove_item("compose.index")};
+this.change_identity=function(a,b){if(!a||!a.options)return!1;b||(b=this.env.show_sig);var d=a.options[a.selectedIndex].value,e=this.env.identity,f=this.env.recipients_separator,h=RegExp.escape(f);this.env.signatures&&this.env.signatures[d]?(this.enable_command("insert-sig",!0),this.env.compose_commands.push("insert-sig")):this.enable_command("insert-sig",!1);if(!this.env.identities_initialized&&(this.env.identities_initialized=!0,this.env.show_sig_later&&(this.env.show_sig=!0),this.env.opened_extwin))return;
+$.each(["replyto","bcc"],function(){var a,b=e&&g.env.identities[e]?g.env.identities[e][this]:"",n=d&&g.env.identities[d]?g.env.identities[d][this]:"",l=$('[name="_'+this+'"]'),p=l.val();b&&p&&(a=RegExp("\\s*"+RegExp.escape(b)+"\\s*"),p=p.replace(a,""));a=RegExp(h+"\\s*"+h,"g");p=String(p).replace(a,f);a=RegExp("^[\\s"+h+"]+");p=p.replace(a,"");n&&-1==p.indexOf(n)&&-1==p.indexOf(n.replace(/"/g,""))&&(p&&(a=RegExp("["+h+"\\s]+$"),p=p.replace(a,"")+f+" "),p+=n+f+" ");(b||n)&&l.val(p).change()});this.editor.change_signature(d,
+b);this.env.identity=d;this.triggerEvent("change_identity");return!0};this.upload_file=function(a,b,d){if(a){var e=0,f=0;$("input[type=file]",a).each(function(a,b){var d=b.files?b.files.length:b.value?1:0;if(b.files)for(a=0;a<d;a++)e+=b.files[a].size;f+=d});if(f){if(this.env.max_filesize&&this.env.filesizeerror&&e>this.env.max_filesize)return this.display_message(this.env.filesizeerror,"error"),!1;b=this.async_upload_form(a,b||"upload",function(a){var b,e="";try{this.contentDocument?b=this.contentDocument:
+this.contentWindow&&(b=this.contentWindow.document),e=b.childNodes[1].innerHTML}catch(f){}e.match(/add2attachment/)||bw.opera&&(!g.env.uploadframe||g.env.uploadframe!=a.data.ts)||(e.match(/display_message/)||g.display_message(g.get_label("fileuploaderror"),"error"),g.remove_from_attachment_list(a.data.ts),d&&g.set_busy(!1,null,d));bw.opera&&(g.env.uploadframe=a.data.ts)});var h="<span>"+this.get_label("uploading"+(1<f?"many":""))+"</span>",m=b.replace(/^rcmupload/,"");this.add2attachment_list(m,{name:"",
+html:h,classname:"uploading",frame:b,complete:!1});this.env.upload_progress_time&&this.upload_progress_start("upload",m);this.gui_objects.attachmentform=a;return!0}}};this.add2attachment_list=function(a,b,d){d&&this.triggerEvent("fileuploaded",{name:a,attachment:b,id:d});this.env.attachments||(this.env.attachments={});d&&this.env.attachments[d]&&delete this.env.attachments[d];this.env.attachments[a]=b;if(!this.gui_objects.attachmentlist)return!1;!b.complete&&this.env.loadingicon&&(b.html='<img src="'+
+this.env.loadingicon+'" alt="" class="uploading" />'+b.html);!b.complete&&b.frame&&(b.html='<a title="'+this.get_label("cancel")+'" onclick="return rcmail.cancel_attachment_upload(\''+a+"', '"+b.frame+'\');" href="#cancelupload" class="cancelupload">'+(this.env.cancelicon?'<img src="'+this.env.cancelicon+'" alt="'+this.get_label("cancel")+'" />':this.get_label("cancel"))+"</a>"+b.html);var e,f=$("<li>");f.attr("id",a).addClass(b.classname).html(b.html).on("mouseover",function(){rcube_webmail.long_subject_title_ex(this)});
+d&&(e=document.getElementById(d))?f.replaceAll(e):f.appendTo(this.gui_objects.attachmentlist);a=$(this.gui_objects.attachmentlist).attr("data-tabindex")||"0";f.find("a").attr("tabindex",a);return!0};this.remove_from_attachment_list=function(a){this.env.attachments&&(delete this.env.attachments[a],$("#"+a).remove())};this.remove_attachment=function(a){a&&this.env.attachments[a]&&this.http_post("remove-attachment",{_id:this.env.compose_id,_file:a});return!0};this.cancel_attachment_upload=function(a,
+b){if(!a||!b)return!1;this.remove_from_attachment_list(a);$("iframe[name='"+b+"']").remove();return!1};this.upload_progress_start=function(a,b){setTimeout(function(){g.http_request(a,{_progress:b})},1E3*this.env.upload_progress_time)};this.upload_progress_update=function(a){var b=$("#"+a.name+" > span");b.length&&a.text&&(b.text(a.text),a.done||this.upload_progress_start(a.action,a.name))};this.add_contact=function(a){a&&this.http_post("addcontact",{_address:a});return!0};this.qsearch=function(a){if(""!=
+a){var b=this.set_busy(!0,"searching");a=this.search_params(a);var d="compose"==this.env.action&&this.contact_list?"search-contacts":"search";this.message_list?this.clear_message_list():this.contact_list&&this.list_contacts_clear();this.env.source&&(a._source=this.env.source);this.env.group&&(a._gid=this.env.group);this.env.current_page=1;a=this.http_request(d,a,b);this.env.qsearch={lock:b,request:a};this.enable_command("set-listmode",this.env.threads&&"base"==(this.env.search_scope||"base"));return!0}return!1};
+this.continue_search=function(a){var b=this.set_busy(!0,"stillsearching");setTimeout(function(){var d=g.search_params();d._continue=a;g.env.qsearch={lock:b,request:g.http_request("search",d,b)}},100)};this.search_params=function(a,b){var d,e={},f=[],h=this.env.search_mods,g=this.env.search_scope||"base",k="all"==g?"*":this.env.mailbox;!b&&this.gui_objects.search_filter&&(b=this.gui_objects.search_filter.value);!a&&this.gui_objects.qsearchbox&&(a=this.gui_objects.qsearchbox.value);b&&(e._filter=b);
+if(a&&(e._q=a,h&&this.message_list&&(h=h[k]||h["*"]),h)){for(d in h)f.push(d);e._headers=f.join(",")}g&&(e._scope=g);k&&"all"!=g&&(e._mbox=k);return e};this.reset_search_filter=function(){this.filter_disabled=!0;this.gui_objects.search_filter&&$(this.gui_objects.search_filter).val("ALL").change();this.filter_disabled=!1};this.reset_qsearch=function(a){this.gui_objects.qsearchbox&&(this.gui_objects.qsearchbox.value="");this.env.qsearch&&this.abort_request(this.env.qsearch);a&&(this.env.search_scope=
+"base",this.reset_search_filter());this.env.qsearch=null;this.env.search_request=null;this.env.search_id=null;this.enable_command("set-listmode",this.env.threads)};this.set_searchscope=function(a){var b=this.env.search_scope;this.env.search_scope=a;a!=b&&this.env.search_request&&(!this.qsearch(this.gui_objects.qsearchbox.value)&&this.env.search_filter&&"ALL"!=this.env.search_filter&&this.filter_mailbox(this.env.search_filter),"all"!=a&&this.select_folder(this.env.mailbox,"",!0))};this.set_searchmods=
+function(a){var b=this.env.mailbox;"all"==(this.env.search_scope||"base")&&(b="*");this.env.search_mods||(this.env.search_mods={});b&&(this.env.search_mods[b]=a)};this.is_multifolder_listing=function(){return void 0!==this.env.multifolder_listing?this.env.multifolder_listing:this.env.search_request&&"base"!=(this.env.search_scope||"base")};this.sent_successfully=function(a,b,d,e){this.display_message(b,a);this.compose_skip_unsavedcheck=!0;if(this.env.extwin){e||this.lock_form(this.gui_objects.messageform);
+var f={task:"mail",action:""};if(f=this.opener(!1,f)||this.opener(!0,f))f.display_message(b,a),d&&0<=$.inArray(f.env.mailbox,d)&&f.command("checkmail");e||setTimeout(function(){window.close()},1E3)}else e||setTimeout(function(){g.list_mailbox()},500);e&&(this.env.is_sent=!0)};this.ksearch_keydown=function(a,b,d){this.ksearch_timer&&clearTimeout(this.ksearch_timer);var e=rcube_event.get_keycode(a),f=rcube_event.get_modifier(a);switch(e){case 38:case 40:if(!this.ksearch_visible())return;b=38==e?1:0;
+e=document.getElementById("rcmkSearchItem"+this.ksearch_selected);e||(e=this.ksearch_pane.__ul.firstChild);e&&this.ksearch_select(b?e.previousSibling:e.nextSibling);return rcube_event.cancel(a);case 9:if(f==SHIFT_KEY||!this.ksearch_visible()){this.ksearch_hide();return}case 13:if(!this.ksearch_visible())return!1;this.insert_recipient(this.ksearch_selected);this.ksearch_hide();return rcube_event.cancel(a);case 27:this.ksearch_hide();return;case 37:case 39:return}this.ksearch_timer=setTimeout(function(){g.ksearch_get_results(d)},
+200);this.ksearch_input=b;return!0};this.ksearch_visible=function(){return null!==this.ksearch_selected&&void 0!==this.ksearch_selected&&this.ksearch_value};this.ksearch_select=function(a){this.ksearch_pane&&a&&this.ksearch_pane.find("li.selected").removeClass("selected").removeAttr("aria-selected");a&&($(a).addClass("selected").attr("aria-selected","true"),this.ksearch_selected=a._rcm_id,$(this.ksearch_input).attr("aria-activedescendant","rcmkSearchItem"+this.ksearch_selected))};this.insert_recipient=
+function(a){if(null!==a&&this.env.contacts[a]&&this.ksearch_input){var b=this.ksearch_input.value,d=this.get_caret_pos(this.ksearch_input),d=b.lastIndexOf(this.ksearch_value,d),e=!1,f="",h=b.substring(0,d),b=b.substring(d+this.ksearch_value.length,b.length);this.ksearch_destroy();"object"!==typeof this.env.contacts[a]||"group"!=this.env.contacts[a].type||this.env.contacts[a].email?"object"===typeof this.env.contacts[a]&&this.env.contacts[a].name?(f=this.env.contacts[a].name+this.env.recipients_delimiter,
+e=!0):"string"===typeof this.env.contacts[a]&&(f=this.env.contacts[a]+this.env.recipients_delimiter,e=!0):(f+=this.env.contacts[a].name+this.env.recipients_delimiter,this.group2expand[this.env.contacts[a].id]=$.extend({input:this.ksearch_input},this.env.contacts[a]),this.http_request("mail/group-expand",{_source:this.env.contacts[a].source,_gid:this.env.contacts[a].id},!1));this.ksearch_input.value=h+f+b;this.set_caret_pos(this.ksearch_input,d+f.length);e&&(this.triggerEvent("autocomplete_insert",
+{field:this.ksearch_input,insert:f,data:this.env.contacts[a]}),this.compose_type_activity++)}};this.replace_group_recipients=function(a,b){this.group2expand[a]&&(this.group2expand[a].input.value=this.group2expand[a].input.value.replace(this.group2expand[a].name,b),this.triggerEvent("autocomplete_insert",{field:this.group2expand[a].input,insert:b}),this.group2expand[a]=null,this.compose_type_activity++)};this.ksearch_get_results=function(a){var b=this.ksearch_input?this.ksearch_input.value:null;if(null!==
+b){this.ksearch_pane&&this.ksearch_pane.is(":visible")&&this.ksearch_pane.hide();var d=this.get_caret_pos(this.ksearch_input),e=b.lastIndexOf(this.env.recipients_separator,d-1),b=b.substring(e+1,d),e=this.env.autocomplete_min_length,d=this.ksearch_data,b=$.trim(b);b!=this.ksearch_value&&(this.ksearch_destroy(),b.length&&b.length<e?this.ksearch_info||(this.ksearch_info=this.display_message(this.get_label("autocompletechars").replace("$min",e))):(e=this.ksearch_value,this.ksearch_value=b,!b.length||
+e&&e.length&&b.startsWith(e)&&(!d||0>=d.num)&&this.env.contacts&&!this.env.contacts.length||(d=a&&a.sources?a.sources:[""],this.ksearch_data={id:this.multi_thread_http_request({items:d,threads:a&&a.threads?a.threads:1,action:a&&a.action?a.action:"mail/autocomplete",postdata:{_search:b,_source:"%s"},lock:this.display_message(this.get_label("searching"),"loading")}),sources:d.slice(),num:d.length})))}};this.ksearch_query_results=function(a,b,d){this.multi_thread_http_response(a,d);if(this.ksearch_value&&
+(!this.ksearch_input||b==this.ksearch_value)){var e,f,h,m,k,n=this.ksearch_value,l=this.env.autocomplete_max?this.env.autocomplete_max:15;this.ksearch_pane||(b=$("<ul>"),this.ksearch_pane=$("<div>").attr("id","rcmKSearchpane").attr("role","listbox").css({position:"absolute","z-index":3E4}).append(b).appendTo(document.body),this.ksearch_pane.__ul=b[0]);b=this.ksearch_pane.__ul;d&&this.ksearch_pane.data("reqid")==d?l-=b.childNodes.length:(this.ksearch_pane.data("reqid",d),b.innerHTML="",this.env.contacts=
+[],e=$(this.ksearch_input).offset(),this.ksearch_pane.css({left:e.left+"px",top:e.top+this.ksearch_input.offsetHeight+"px",display:"none"}));if(a&&(h=a.length))for(e=0;e<h&&0<l;e++)m="object"===typeof a[e]?a[e].display||a[e].name:a[e],k="object"===typeof a[e]?a[e].type:"",f=e+this.env.contacts.length,$("<li>").attr("id","rcmkSearchItem"+f).attr("role","option").html('<i class="icon"></i>'+this.quote_html(m.replace(RegExp("("+RegExp.escape(n)+")","ig"),"##$1%%")).replace(/##([^%]+)%%/g,"<b>$1</b>")).addClass(k||
+"").appendTo(b).mouseover(function(){g.ksearch_select(this)}).mouseup(function(){g.ksearch_click(this)}).get(0)._rcm_id=f,l-=1;b.childNodes.length&&($(this.ksearch_input).attr("aria-haspopup","true").attr("aria-expanded","true").attr("aria-owns","rcmKSearchpane"),this.ksearch_pane.show(),this.env.contacts.length||this.ksearch_select($("li:first",b).get(0)));h&&(this.env.contacts=this.env.contacts.concat(a));this.ksearch_data.id==d&&this.ksearch_data.num--}};this.ksearch_click=function(a){this.ksearch_input&&
+this.ksearch_input.focus();this.insert_recipient(a._rcm_id);this.ksearch_hide()};this.ksearch_blur=function(){this.ksearch_timer&&clearTimeout(this.ksearch_timer);this.ksearch_input=null;this.ksearch_hide()};this.ksearch_hide=function(){this.ksearch_selected=null;this.ksearch_value="";this.ksearch_pane&&this.ksearch_pane.hide();$(this.ksearch_input).attr("aria-haspopup","false").attr("aria-expanded","false").removeAttr("aria-activedescendant").removeAttr("aria-owns");this.ksearch_destroy()};this.ksearch_destroy=
+function(){this.ksearch_data&&this.multi_thread_request_abort(this.ksearch_data.id);this.ksearch_info&&this.hide_message(this.ksearch_info);this.ksearch_msg&&this.hide_message(this.ksearch_msg);this.ksearch_msg=this.ksearch_info=this.ksearch_data=null};this.contactlist_keypress=function(a){a.key_pressed==a.DELETE_KEY&&this.command("delete")};this.contactlist_select=function(a){this.preview_timer&&clearTimeout(this.preview_timer);var b,d,e,f,h=!1,m=a.selection.length,k=this.env.source?this.env.address_sources[this.env.source]:
+null;this.env.contentframe&&(d=a.get_single_selection())?this.preview_timer=setTimeout(function(){g.load_contact(d,"show")},200):this.env.contentframe&&this.show_contentframe(!1);if(m){a.draggable=!1;this.env.selection_sources=[];k&&this.env.selection_sources.push(this.env.source);for(b in a.selection)f=a.data[a.selection[b]],k?h=h||!k.readonly&&!f.readonly:(e=String(a.selection[b]).replace(/^[^-]+-/,""))&&this.env.address_sources[e]&&(h=h||!this.env.address_sources[e].readonly&&!f.readonly,this.env.selection_sources.push(e)),
+"group"!=f._type&&(a.draggable=!0);this.env.selection_sources=$.unique(this.env.selection_sources)}this.enable_command("group-remove-selected",this.env.group&&m&&h);this.enable_command("compose",this.env.group||m);this.enable_command("print",1==m);this.enable_command("export-selected","copy",0<m);this.enable_command("edit",d&&h);this.enable_command("delete","move",m&&h);return!1};this.list_contacts=function(a,b,d){var e,f={},h=void 0===a&&void 0===b&&void 0===d,g=window;a||(a=this.env.source);h&&
+(b=this.env.group);if(d&&this.current_page==d&&a==this.env.source&&b==this.env.group)return!1;a!=this.env.source?(d=this.env.current_page=1,this.reset_qsearch()):h||b==this.env.group||(d=this.env.current_page=1);this.env.search_id?e="S"+this.env.search_id:this.env.search_request||(e=b?"G"+a+b:a);this.env.source=a;this.env.group=b;h=$.inArray(this.env.group,this.env.address_group_stack);this.env.address_group_stack=0>h?[]:this.env.address_group_stack.slice(0,h);this.env.group?(this.env.address_group_stack.push(this.env.group),
+e="G"+a+this.env.address_group_stack[0]):this.gui_objects.addresslist_title&&$(this.gui_objects.addresslist_title).html(this.get_label("contacts"));this.env.search_id||this.select_folder(e,"",!0);if(this.gui_objects.contactslist)this.list_contacts_remote(a,b,d);else{if(e=this.get_frame_window(this.env.contentframe))g=e,f._framed=1;b&&(f._gid=b);d&&(f._page=d);a&&(f._source=a);this.env.search_request&&(f._search=this.env.search_request);this.set_busy(!0,"loading");this.location_href(f,g)}};this.list_contacts_remote=
+function(a,b,d){this.list_contacts_clear();var e={},f=this.set_busy(!0,"loading");a&&(e._source=a);d&&(e._page=d);b&&(e._gid=b);this.env.source=a;this.env.group=b;this.env.search_request&&(e._search=this.env.search_request);this.http_request("mail"==this.env.task?"list-contacts":"list",e,f)};this.list_contacts_clear=function(){this.contact_list.data={};this.contact_list.clear(!0);this.show_contentframe(!1);this.enable_command("delete","move","copy","print",!1);this.enable_command("compose",this.env.group)};
+this.set_group_prop=function(a){if(this.gui_objects.addresslist_title){var b=$(this.gui_objects.addresslist_title).html("");1<this.env.address_group_stack.length&&($('<a href="#list">...</a>').attr("title",this.gettext("uponelevel")).addClass("poplink").appendTo(b).click(function(a){return g.command("popgroup","",this)}),b.append(" » "));b.append($("<span>").text(a.name))}this.triggerEvent("groupupdate",a)};this.load_contact=function(a,b,d){var e,f={},h=window,g=this.contact_list?
+this.contact_list.data[a]:null;if(e=this.get_frame_window(this.env.contentframe))f._framed=1,h=e,this.show_contentframe(!0),a||this.contact_list.clear_selection(),this.enable_command("compose",g&&g.email),this.enable_command("export-selected","print",g&&"group"!=g._type);else if(d)return!1;!b||!a&&"add"!=b||this.drag_active||(this.env.group&&(f._gid=this.env.group),this.env.search_request&&(f._search=this.env.search_request),f._action=b,f._source=this.env.source,f._cid=a,this.location_href(f,h,!0));
+return!0};this.group_member_change=function(a,b,d,e){"add"!=a&&(a="del");var f=this.get_label("add"==a?"addingmember":"removingmember"),f=this.display_message(f,"loading");this.http_post("group-"+a+"members",{_cid:b,_source:d,_gid:e},f)};this.contacts_drag_menu=function(a,b){var d="group"==b.type?b.source:b.id,e=this.env.source;if(!this.env.address_sources[d]||this.env.address_sources[d].readonly)return!0;""==e&&1==this.env.selection_sources.length&&(e=this.env.selection_sources[0]);return"group"==
+b.type&&d==e?(e=this.contact_list.get_selection().join(","),this.group_member_change("add",e,d,b.id),!0):this.commands.move||rcube_event.get_modifier(a)==SHIFT_KEY?this.drag_menu(a,b):(this.copy_contacts(b),!0)};this.copy_contacts=function(a){var b="group"==a.type?a.source:a.id,d=this.env.source,e=this.env.group?this.env.group:"",f=this.contact_list.get_selection().join(",");f&&this.env.address_sources[b]&&!this.env.address_sources[b].readonly&&(""==d&&1==this.env.selection_sources.length&&(d=this.env.selection_sources[0]),
+"group"==a.type?b!=d&&(d=this.display_message(this.get_label("copyingcontact"),"loading"),a={_cid:f,_source:this.env.source,_to:b,_togid:a.id,_gid:e},this.http_post("copy",a,d)):a.id!=d&&(d=this.display_message(this.get_label("copyingcontact"),"loading"),a={_cid:f,_source:this.env.source,_to:a.id,_gid:e},this.http_post("copy",a,d)))};this.move_contacts=function(a){var b="group"==a.type?a.source:a.id,d=this.env.source;this.env.address_sources[b]&&!this.env.address_sources[b].readonly&&(""==d&&1==this.env.selection_sources.length&&
+(d=this.env.selection_sources[0]),"group"==a.type?b!=d&&this._with_selected_contacts("move",{_to:b,_togid:a.id}):a.id!=d&&this._with_selected_contacts("move",{_to:a.id}))};this.delete_contacts=function(){if(this.env.source&&this.env.address_sources[this.env.source].undelete||confirm(this.get_label("deletecontactconfirm")))return this._with_selected_contacts("delete")};this._with_selected_contacts=function(a,b){var d=this.contact_list?this.contact_list.get_selection():[];if(d.length||this.env.cid){var e,
+f=[],h=this.display_message(this.get_label("delete"==a?"contactdeleting":"movingcontact"),"loading");if(this.env.cid)f.push(this.env.cid);else{for(e=0;e<d.length;e++)id=d[e],f.push(id),this.contact_list.remove_row(id,e==d.length-1);1==d.length&&this.show_contentframe(!1)}b||(b={});b._source=this.env.source;b._from=this.env.action;b._cid=f.join(",");this.env.group&&(b._gid=this.env.group);this.env.search_request&&(b._search=this.env.search_request);this.http_post(a,b,h);return!0}};this.update_contact_row=
+function(a,b,d,e,f){var h=this.contact_list;a=this.html_identifier(a);h.rows[a]||(a=a+"-"+e,d&&(d=d+"-"+e));h.update_row(a,b,d,!0);h.data[a]=f};this.add_contact_row=function(a,b,d,e){if(!this.gui_objects.contactslist)return!1;var f,h=this.contact_list,g={cols:[]};g.id="rcmrow"+this.html_identifier(a);g.className="contact "+(d||"");h.in_selection(a)&&(g.className+=" selected");for(f in b)d={},d.className=String(f).toLowerCase(),d.innerHTML=b[f],g.cols.push(d);h.data[a]=e;h.insert_row(g);this.enable_command("export",
+0<h.rowcount)};this.init_contact_form=function(){var a;if(this.env.coltypes)for(a in this.set_photo_actions($("#ff_photo").val()),this.env.coltypes)this.init_edit_field(a,null);$(".contactfieldgroup .row a.deletebutton").click(function(){g.delete_edit_field(this);return!1});$("select.addfieldmenu").change(function(){g.insert_edit_field($(this).val(),$(this).attr("rel"),this);this.selectedIndex=0});$.datepicker&&this.env.date_format&&($.datepicker.setDefaults({dateFormat:this.env.date_format,changeMonth:!0,
+changeYear:!0,yearRange:"-120:+10",showOtherMonths:!0,selectOtherMonths:!0}),$("input.datepicker").datepicker());"search"==this.env.action&&$(this.gui_objects.editform).append($('<input type="submit">').hide()).submit(function(){$("input.mainaction").click();return!1})};this.group_create=function(){var a=$("<input>").attr("type","text"),b=$("<label>").text(this.get_label("namex")).append(a);this.show_popup_dialog(b,this.get_label("newgroup"),[{text:this.get_label("save"),"class":"mainaction",click:function(){var b;
+(b=a.val())&&g.http_post("group-create",{_source:g.env.source,_name:b},g.set_busy(!0,"loading"));$(this).dialog("close")}}])};this.group_rename=function(){if(this.env.group){var a=this.env.contactgroups["G"+this.env.source+this.env.group].name,b=$("<input>").attr("type","text").val(a),d=$("<label>").text(this.get_label("namex")).append(b);this.show_popup_dialog(d,this.get_label("grouprename"),[{text:this.get_label("save"),"class":"mainaction",click:function(){var d;(d=b.val())&&d!=a&&g.http_post("group-rename",
+{_source:g.env.source,_gid:g.env.group,_name:d},g.set_busy(!0,"loading"));$(this).dialog("close")}}],{open:function(){b.select()}})}};this.group_delete=function(){if(this.env.group&&confirm(this.get_label("deletegroupconfirm"))){var a=this.set_busy(!0,"groupdeleting");this.http_post("group-delete",{_source:this.env.source,_gid:this.env.group},a)}};this.remove_group_item=function(a){var b="G"+a.source+a.id;this.treelist.remove(b)&&(this.triggerEvent("group_delete",{source:a.source,id:a.id}),delete this.env.contactfolders[b],
+delete this.env.contactgroups[b]);this.list_contacts(a.source,0)};this.group_remove_selected=function(){this.http_post("group-delmembers",{_cid:this.contact_list.selection,_source:this.env.source,_gid:this.env.group})};this.remove_group_contacts=function(a){if(void 0!==this.env.group&&this.env.group===a.gid){var b=this.contact_list.get_selection();for(a=0;a<b.length;a++)id=b[a],this.contact_list.remove_row(id,a==b.length-1)}};this.insert_contact_group=function(a){a.type="group";var b="G"+a.source+
+a.id,d=$("<a>").attr("href","#").attr("rel",a.source+":"+a.id).click(function(){return g.command("listgroup",a,this)}).html(a.name);this.env.contactfolders[b]=this.env.contactgroups[b]=a;this.treelist.insert({id:b,html:d,classes:["contactgroup"]},a.source,"contactgroup");this.triggerEvent("group_insert",{id:a.id,source:a.source,name:a.name,li:this.treelist.get_item(b)})};this.update_contact_group=function(a){var b="G"+a.source+a.id,d={};if(a.newid){var e="G"+a.source+a.newid,f=$.extend({},a);this.env.contactfolders[e]=
+this.env.contactfolders[b];this.env.contactfolders[e].id=a.newid;this.env.group=a.newid;delete this.env.contactfolders[b];delete this.env.contactgroups[b];f.id=a.newid;f.type="group";d.id=e;d.html=$("<a>").attr("href","#").attr("rel",a.source+":"+a.newid).click(function(){return g.command("listgroup",f,this)}).html(a.name)}else $(this.treelist.get_item(b)).children().first().html(a.name),this.env.contactfolders[b].name=this.env.contactgroups[b].name=a.name;this.treelist.update(b,d,!0);this.triggerEvent("group_update",
+{id:a.id,source:a.source,name:a.name,li:this.treelist.get_item(b),newid:a.newid})};this.update_group_commands=function(){var a=""!=this.env.source?this.env.address_sources[this.env.source]:null,a=a&&a.groups&&!a.readonly;this.enable_command("group-create",a);this.enable_command("group-rename","group-delete",a&&this.env.group)};this.init_edit_field=function(a,b){var d=this.env.coltypes[a].label;b||(b=$(".ff_"+a));d&&b.placeholder(d)};this.insert_edit_field=function(a,b,d){var e=$("#ff_"+a);if(e.length)e.show().focus(),
+$(d).children('option[value="'+a+'"]').prop("disabled",!0);else{$(".ff_"+a);e=$("#contactsection"+b+" .contactcontroller"+a);if(!e.length){b=$("#contactsection"+b);var f=$(".contactfieldgroup",b).last(),e=$("<fieldset>").addClass("contactfieldgroup contactcontroller"+a);f.length?e.insertAfter(f):b.prepend(e)}if(e.length&&"FIELDSET"==e.get(0).nodeName){var h;b=this.env.coltypes[a];var m="ff_"+a+(b.count||0),f=$("<div>").addClass("row"),k=$("<div>").addClass("contactfieldcontent data"),n=$("<div>").addClass("contactfieldlabel label");
+b.subtypes_select?n.html(b.subtypes_select):n.html('<label for="'+m+'">'+b.label+"</label>");var l=1!=b.limit?"[]":"";if("text"==b.type||"date"==b.type)h=$("<input>").addClass("ff_"+a).attr({type:"text",name:"_"+a+l,size:b.size,id:m}).appendTo(k),this.init_edit_field(a,h),"date"==b.type&&$.datepicker&&h.datepicker();else if("textarea"==b.type)h=$("<textarea>").addClass("ff_"+a).attr({name:"_"+a+l,cols:b.size,rows:b.rows,id:m}).appendTo(k),this.init_edit_field(a,h);else if("composite"==b.type){var p,
+q,v=[],s=[];if(h=this.env[a+"_template"])for(m=0;m<h.length;m++)v.push(h[m][1]),s.push(h[m][2]);else for(p in b.childs)v.push(p);for(m=0;m<v.length;m++)p=v[m],h=b.childs[p],h=$("<input>").addClass("ff_"+p).attr({type:"text",name:"_"+p+l,size:h.size}).appendTo(k),k.append(s[m]||" "),this.init_edit_field(p,h),q||(q=h);h=q}else if("select"==b.type){h=$("<select>").addClass("ff_"+a).attr({name:"_"+a+l,id:m}).appendTo(k);var t=h.attr("options");t[t.length]=new Option("---","");b.options&&$.each(b.options,
+function(a,b){t[t.length]=new Option(b,a)})}h&&($('<a href="#del"></a>').addClass("contactfieldbutton deletebutton").attr({title:this.get_label("delete"),rel:a}).html(this.env.delbutton).click(function(){g.delete_edit_field(this);return!1}).appendTo(k),f.append(n).append(k).appendTo(e.show()),h.first().focus(),b.count||(b.count=0),++b.count==b.limit&&b.limit&&$(d).children('option[value="'+a+'"]').prop("disabled",!0))}}};this.delete_edit_field=function(a){var b=$(a).attr("rel"),d=this.env.coltypes[b],
+e=$(a).parents("fieldset.contactfieldgroup"),f=e.parent().find("select.addfieldmenu");0>=--d.count&&d.visible?$(a).parent().children("input").val("").blur():($(a).parents("div.row").remove(),e.children("div.row").length||e.hide());f.length&&(a=f.children('option[value="'+b+'"]'),a.length?a.prop("disabled",!1):$("<option>").attr("value",b).html(d.label).appendTo(f),f.show())};this.upload_contact_photo=function(a){a&&a.elements._photo.value&&(this.async_upload_form(a,"upload-photo",function(a){g.set_busy(!1,
+null,g.file_upload_id)}),this.file_upload_id=this.set_busy(!0,"uploading"))};this.replace_contact_photo=function(a){var b="-del-"==a?this.env.photo_placeholder:this.env.comm_path+"&_action=photo&_source="+this.env.source+"&_cid="+(this.env.cid||0)+"&_photo="+a;this.set_photo_actions(a);$(this.gui_objects.contactphoto).children("img").attr("src",b)};this.photo_upload_end=function(){this.set_busy(!1,null,this.file_upload_id);delete this.file_upload_id};this.set_photo_actions=function(a){var b,d=this.buttons["upload-photo"];
+for(b=0;d&&b<d.length;b++)$("a#"+d[b].id).html(this.get_label("-del-"==a?"addphoto":"replacephoto"));$("#ff_photo").val(a);this.enable_command("upload-photo",this.env.coltypes.photo?!0:!1);this.enable_command("delete-photo",this.env.coltypes.photo&&"-del-"!=a)};this.advanced_search=function(){var a,b={_form:1,_action:"search"},d=window;if(a=this.get_frame_window(this.env.contentframe))b._framed=1,d=a,this.contact_list.clear_selection();this.location_href(b,d,!0);return!0};this.unselect_directory=
+function(){this.select_folder("");this.enable_command("search-delete",!1)};this.insert_saved_search=function(a,b){var d="S"+b,e=$("<a>").attr("href","#").attr("rel",b).click(function(){return g.command("listsearch",b,this)}).html(a),f={name:a,id:b};this.savedsearchlist.insert({id:d,html:e,classes:["contactsearch"]},null,"contactsearch");this.select_folder(d,"",!0);this.enable_command("search-delete",!0);this.env.search_id=b;this.triggerEvent("abook_search_insert",f)};this.search_create=function(){var a=
+$("<input>").attr("type","text"),b=$("<label>").text(this.get_label("namex")).append(a);this.show_popup_dialog(b,this.get_label("searchsave"),[{text:this.get_label("save"),"class":"mainaction",click:function(){var b;(b=a.val())&&g.http_post("search-create",{_search:g.env.search_request,_name:b},g.set_busy(!0,"loading"));$(this).dialog("close")}}])};this.search_delete=function(){if(this.env.search_request){var a=this.set_busy(!0,"savedsearchdeleting");this.http_post("search-delete",{_sid:this.env.search_id},
+a)}};this.remove_search_item=function(a){this.savedsearchlist.remove("S"+a)&&this.triggerEvent("search_delete",{id:a,li:void 0});this.env.search_id=null;this.env.search_request=null;this.list_contacts_clear();this.reset_qsearch();this.enable_command("search-delete","search-create",!1)};this.listsearch=function(a){var b=this.set_busy(!0,"searching");this.contact_list&&this.list_contacts_clear();this.reset_qsearch();this.savedsearchlist?(this.treelist.select(""),this.savedsearchlist.select("S"+a)):
+this.select_folder("S"+a,"",!0);this.env.current_page=1;this.http_request("search",{_sid:a},b)};this.section_select=function(a){var b;b=a.get_single_selection();a=window;var d={_action:"edit-prefs",_section:b};if(b){if(b=this.get_frame_window(this.env.contentframe))d._framed=1,a=b;this.location_href(d,a,!0)}return!0};this.identity_select=function(a){var b;if(b=a.get_single_selection())this.enable_command("delete",1<a.rowcount&&2>this.env.identities_level),this.load_identity(b,"edit-identity")};this.load_identity=
+function(a,b){if("edit-identity"==b&&(!a||a==this.env.iid))return!1;var d,e=window,f={_action:b,_iid:a};if(d=this.get_frame_window(this.env.contentframe))f._framed=1,e=d;(a||"add-identity"==b)&&this.location_href(f,e,!0);return!0};this.delete_identity=function(a){var b=this.identity_list.get_selection();if(b.length||this.env.iid)a||(a=this.env.iid?this.env.iid:b[0]),a&&confirm(this.get_label("deleteidentityconfirm"))&&this.http_post("settings/delete-identity",{_iid:a},!0)};this.update_identity_row=
+function(a,b,d){var e=this.identity_list;a=this.html_identifier(a);d?(e.insert_row({id:"rcmrow"+a,cols:[{className:"mail",innerHTML:b}]}),e.select(a)):e.update_row(a,[b])};this.update_response_row=function(a,b){var d=this.responses_list;d&&b?d.update_row(b,[a.name],a.key,!0):d&&(d.insert_row({id:"rcmrow"+a.key,cols:[{className:"name",innerHTML:a.name}]}),d.select(a.key))};this.remove_response=function(a){var b;this.env.textresponses&&delete this.env.textresponses[a];this.responses_list&&(this.responses_list.remove_row(a),
+this.env.contentframe&&(b=this.get_frame_window(this.env.contentframe))&&(b.location.href=this.env.blankpage));this.enable_command("delete",!1)};this.remove_identity=function(a){var b,d=this.identity_list,e=this.html_identifier(a);d&&a&&(d.remove_row(e),this.env.contentframe&&(b=this.get_frame_window(this.env.contentframe))&&(b.location.href=this.env.blankpage));this.enable_command("delete",!1)};this.init_subscription_list=function(){var a=RegExp.escape(this.env.delimiter);this.last_sub_rx=RegExp("["+
+a+"]?[^"+a+"]+$");this.subscription_list=new rcube_treelist_widget(this.gui_objects.subscriptionlist,{selectable:!0,tabexit:!1,parent_focus:!0,id_prefix:"rcmli",id_encode:this.html_identifier_encode,id_decode:this.html_identifier_decode,searchbox:"#foldersearch"});this.subscription_list.addEventListener("select",function(a){g.subscription_select(a.id)}).addEventListener("collapse",function(a){g.folder_collapsed(a)}).addEventListener("expand",function(a){g.folder_collapsed(a)}).addEventListener("search",
+function(a){a.query&&g.subscription_select()}).draggable({cancel:"li.mailbox.root"}).droppable({accept:function(a){if(!$(a).is(".mailbox"))return!1;a=g.folder_id2name($(a).attr("id"));var d=g.folder_id2name(this.id),e=g.env.subscriptionrows[a];return e&&!e[2]&&d!=a.replace(g.last_sub_rx,"")&&!d.startsWith(a+g.env.delimiter)},drop:function(a,d){var e=g.folder_id2name(d.draggable.attr("id")),f=g.folder_id2name(this.id);g.subscription_move_folder(e,f)}})};this.folder_id2name=function(a){return a?g.html_identifier_decode(a.replace(/^rcmli/,
+"")):null};this.subscription_select=function(a){var b;a&&"*"!=a&&(b=this.env.subscriptionrows[a])?(this.env.mailbox=a,this.show_folder(a),this.enable_command("delete-folder",!b[2])):(this.env.mailbox=null,this.show_contentframe(!1),this.enable_command("delete-folder","purge",!1))};this.subscription_move_folder=function(a,b){if(a&&null!==b&&a!=b&&b!=a.replace(this.last_sub_rx,"")){var d=a.split(this.env.delimiter).pop(),d=""===b||"*"===b?d:b+this.env.delimiter+d;d!=a&&this.http_post("rename-folder",
+{_folder_oldname:a,_folder_newname:d},this.set_busy(!0,"foldermoving"))}};this.create_folder=function(){this.show_folder("",this.env.mailbox)};this.delete_folder=function(a){a||(a=this.env.mailbox);a&&confirm(this.get_label("deletefolderconfirm"))&&this.http_post("delete-folder",{_mbox:a},this.set_busy(!0,"folderdeleting"))};this.add_folder_row=function(a,b,d,e,f,h,m,k){if(!this.gui_objects.subscriptionlist)return!1;this.subscription_list.is_search()&&(this.subscription_select(),this.subscription_list.reset_search());
+this.subscription_list.draggable("destroy").droppable("destroy");var n,l,p,q,v,s="",t=[],w=[],u=[],x=$(this.gui_objects.subscriptionlist);n=m?m:$($("li",x).get(1)).clone(!0);if(!n.length)return this.goto_url("folders"),!1;n.attr({id:"rcmli"+this.html_identifier_encode(a),"class":h});m&&m.length||($("ul,div.treetoggle",n).remove(),n.removeData("filtered"));$("a:first",n).text(d);$('input[name="_subscribed[]"]:first',n).val(a).prop({checked:f?!0:!1,disabled:e?!0:!1});this.env.subscriptionrows[a]=[b,
+d,!1];$.each(this.env.subscriptionrows,function(a,b){b[3]=a;t.push(b)});try{v=new Intl.Collator(this.env.locale.replace("_","-"))}catch(y){}t.sort(function(a,b){var d,e,f,h=a[0].split(g.env.delimiter),m=b[0].split(g.env.delimiter),k=h.length;for(d=0;d<k;d++){e=h[d];f=m[d];if(e!==f)return void 0===f?1:v?v.compare(e,f):e<f?-1:1;if(d==k-1)return-1}});for(l in t)d=t[l][3],t[l][2]?(b=d+this.env.delimiter,b!=this.env.prefix_ns&&(u.push(d),p=b)):p&&d.startsWith(p)?u.push(d):(w.push(d),p=null);for(l=0;l<
+u.length;l++)a.startsWith(u[l]+this.env.delimiter)&&(q=u[l]);for(l=0;!q&&l<w.length;l++)l&&w[l]==a&&(q=w[l-1]);if(q&&(l=this.subscription_list.get_item(q,!0))){if(p=a.lastIndexOf(this.env.delimiter))s=a.substring(0,p),s=this.subscription_list.get_item(s,!0),$("div.treetoggle",s).length||$("<div> </div>").addClass("treetoggle collapsed").appendTo(s),$("ul",s).length||$("<ul>").css("display","none").appendTo(s);if(s&&l==s)$("ul:first",s).append(n);else{for(;(d=$(l).parent().parent().get(0))&&(!s||
+d!=s)&&$(d).is("li.mailbox");)l=d;$(l).after(n)}}else x.append(n);$.extend(this.env.subscriptionrows,k||{});this.subscription_list.reset(!0);this.subscription_select();s&&this.subscription_list.expand(this.folder_id2name(s.id));n=n.show().get(0);n.scrollIntoView&&n.scrollIntoView();return n};this.replace_folder_row=function(a,b,d,e,f,h){if(!this.gui_objects.subscriptionlist)return this.is_framed()?window.parent.rcmail.replace_folder_row(a,b,d,e,f,h):!1;this.subscription_list.is_search()&&(this.subscription_select(),
+this.subscription_list.reset_search());var m={},k=this.subscription_list.get_item(a,!0),n=$(k).parent(),l=a.length,p=this.env.subscriptionrows[a][0].length,q=$('input[name="_subscribed[]"]:first',k).prop("checked");a==b?$(k).attr("class",h||""):($("li",k).each(function(){var a=g.folder_id2name(this.id),e=g.env.subscriptionrows[a],f=b+a.slice(l);this.id="rcmli"+g.html_identifier_encode(f);$('input[name="_subscribed[]"]:first',this).val(f);e[0]=d+e[0].slice(p);m[f]=e;delete g.env.subscriptionrows[a]}),
+k=$(k).detach(),delete this.env.subscriptionrows[a],n.get(0)==this.gui_objects.subscriptionlist||$("li",n).length||$("ul,div.treetoggle",n.parent()).remove(),this.add_folder_row(b,d,e,f,q,h,k,m))};this.remove_folder_row=function(a){this.subscription_list.is_search()&&(this.subscription_select(),this.subscription_list.reset_search());var b=[],d=this.subscription_list.get_item(a,!0);$("li",d).each(function(){b.push(g.folder_id2name(this.id))});this.subscription_list.remove(a);b.push(a);$.each(b,function(a,
+b){delete g.env.subscriptionrows[b]})};this.subscribe=function(a){if(a){var b=this.display_message(this.get_label("foldersubscribing"),"loading");this.http_post("subscribe",{_mbox:a},b)}};this.unsubscribe=function(a){if(a){var b=this.display_message(this.get_label("folderunsubscribing"),"loading");this.http_post("unsubscribe",{_mbox:a},b)}};this.show_folder=function(a,b,d){var e=window;a="&_action=edit-folder&_mbox="+urlencode(a);b&&(a+="&_path="+urlencode(b));if(b=this.get_frame_window(this.env.contentframe))e=
+b,a+="&_framed=1";0<=String(e.location.href).indexOf(a)&&!d?this.show_contentframe(!0):this.location_href(this.env.comm_path+a,e,!0)};this.disable_subscription=function(a){(a=this.subscription_list.get_item(a,!0))&&$('input[name="_subscribed[]"]:first',a).prop("disabled",!0)};this.folder_size=function(a){var b=this.set_busy(!0,"loading");this.http_post("folder-size",{_mbox:a},b)};this.folder_size_update=function(a){$("#folder-size").replaceWith(a)};this.folder_filter=function(a){this.subscription_list.reset_search();
+this.subscription_list.container.children("li").each(function(){var b,d=g.folder_id2name(this.id);if("---"!=a)if(a){if(d!==a){$(this).data("filtered",!0).hide();return}}else for(b in g.env.ns_roots)if(d===g.env.ns_roots[b]){$(this).data("filtered",!0).hide();return}$(this).removeData("filtered").show()})};var u=function(a,b){var d=document.getElementById(b.id);if(d){var e=!1;"image"==b.type&&(d=d.parentNode,e=!0);d._command=a;d._id=b.id;b.sel&&(d.onmousedown=function(a){return g.button_sel(this._command,
+this._id)},d.onmouseup=function(a){return g.button_out(this._command,this._id)},e&&((new Image).src=b.sel));b.over&&(d.onmouseover=function(a){return g.button_over(this._command,this._id)},d.onmouseout=function(a){return g.button_out(this._command,this._id)},e&&((new Image).src=b.over))}};this.init_buttons=function(){for(var a in this.buttons)if("string"===typeof a)for(var b=0;b<this.buttons[a].length;b++)u(a,this.buttons[a][b])};this.set_button=function(a,b){var d,e,f,h=this.buttons[a],g=h?h.length:
+0;for(d=0;d<g;d++)if(e=h[d],(f=document.getElementById(e.id))&&e.status!==b)"image"!=e.type||e.status?e.status||(e.pas=String(f.className)):(e.pas=f._original_src?f._original_src:f.src,f.runtimeStyle&&f.runtimeStyle.filter&&f.runtimeStyle.filter.match(/src=['"]([^'"]+)['"]/)&&(e.pas=RegExp.$1)),e.status=b,"image"==e.type&&e[b]?f.src=e[b]:void 0!==e[b]&&(f.className=e[b]),"input"==e.type?f.disabled="pas"==b:"uibutton"==e.type?(e.status=b,$(f).button("option","disabled","pas"==b)):(e=$(f),e.attr("tabindex",
+"pas"==b||"sel"==b?"-1":e.attr("data-tabindex")||"0").attr("aria-disabled","pas"==b||"sel"==b?"true":"false"))};this.set_alttext=function(a,b){var d,e,f,h,g=this.buttons[a],k=g?g.length:0;for(d=0;d<k;d++)e=g[d],f=document.getElementById(e.id),"image"==e.type&&f?(f.setAttribute("alt",this.get_label(b)),(h=f.parentNode)&&"a"==h.tagName.toLowerCase()&&h.setAttribute("title",this.get_label(b))):f&&f.setAttribute("title",this.get_label(b))};this.button_over=function(a,b){this.button_event(a,b,"over")};
+this.button_sel=function(a,b){this.button_event(a,b,"sel")};this.button_out=function(a,b){this.button_event(a,b,"act")};this.button_event=function(a,b,d){var e,f,h,g=this.buttons[a],k=g?g.length:0;for(e=0;e<k;e++)f=g[e],f.id==b&&"act"==f.status&&(f[d]&&(h=document.getElementById(f.id))&&(h["image"==f.type?"src":"className"]=f[d]),"sel"==d&&(this.buttons_sel[b]=a))};this.set_pagetitle=function(a){a&&document.title&&(document.title=a)};this.display_message=function(a,b,d,e){if(this.is_framed())return parent.rcmail.display_message(a,
+b,d);if(!this.gui_objects.message)return"loading"!=b&&(this.pending_message=[a,b,d,e]),1;b||(b="notice");e||(e=this.html_identifier(a));var f=b+(new Date).getTime();if(!d)switch(b){case "error":case "warning":d=2*this.message_time;break;case "uploading":d=0;break;default:d=this.message_time}"loading"==b&&(e="loading",d=1E3*this.env.request_timeout,a||(a=this.get_label("loading")));if(this.messages[e])return this.messages[e].obj&&this.messages[e].obj.html(a),"loading"==b&&this.messages[e].labels.push({id:f,
+msg:a}),this.messages[e].elements.push(f),setTimeout(function(){g.hide_message(f,"loading"==b)},d),f;var h=$("<div>").addClass(b).html(a).data("key",e);$(this.gui_objects.message).append(h).show();this.messages[e]={obj:h,elements:[f]};"loading"==b?this.messages[e].labels=[{id:f,msg:a}]:"uploading"!=b&&h.click(function(){return g.hide_message(h)}).attr("role","alert");this.triggerEvent("message",{message:a,type:b,timeout:d,object:h});0<d&&setTimeout(function(){g.hide_message(f,"loading"!=b)},d);return f};
+this.hide_message=function(a,b){if(this.is_framed())return parent.rcmail.hide_message(a,b);if(this.gui_objects.message){var d,e,f,h,g=this.messages;if("object"===typeof a)h=$(a),d=h.data("key"),this.hide_message_object(h,b),g[d]&&delete g[d];else for(d in g)for(e in g[d].elements)if(g[d]&&g[d].elements[e]==a)if(g[d].elements.splice(e,1),!g[d].elements.length)this.hide_message_object(g[d].obj,b),delete g[d];else if("loading"==d)for(f in g[d].labels)g[d].labels[f].id==a?delete g[d].labels[f]:(h=g[d].labels[f].msg,
+g[d].obj.html(h))}};this.hide_message_object=function(a,b){b?a.fadeOut(600,function(){$(this).remove()}):a.hide().remove()};this.clear_messages=function(){if(this.is_framed())return parent.rcmail.clear_messages();var a,b,d=this.messages;for(a in d)for(b in d[a].elements)d[a].obj&&this.hide_message_object(d[a].obj);this.messages={}};this.display_progress=function(a){if(a&&a.name){var b=this.messages["progress"+a.name];a.label||(a.label=this.get_label("uploadingmany"));b?!a.total||100<=a.percent?this.hide_message(b.obj):
+(a.text&&(a.label+=" "+a.text),b.obj.text(a.label)):(!a.percent||100>a.percent)&&this.display_message(a.label,"uploading",0,"progress"+a.name)}};this.show_popup_dialog=function(a,b,d,e){if(this.is_framed())return parent.rcmail.show_popup_dialog(a,b,d,e);var f=$('<div class="popup">');"object"==typeof a?f.append(a):f.html(a);e=$.extend({title:b,buttons:d,modal:!0,resizable:!0,width:500,close:function(a,b){$(this).remove()}},e||{});f.dialog(e);b=$(window);a=b.width();b=b.height();var h=f.width(),g=
+f.height();f.dialog("option",{height:Math.min(b-40,g+75+(d?50:0)),width:Math.min(a-20,h+36)});$.each(e.button_classes||[],function(a,b){b&&$($(".ui-dialog-buttonpane button.ui-button",f.parent()).get(a)).addClass(b)});return f};this.set_page_buttons=function(){this.enable_command("nextpage","lastpage",this.env.pagecount>this.env.current_page);this.enable_command("previouspage","firstpage",1<this.env.current_page)};this.select_folder=function(a,b,d){this.savedsearchlist&&this.savedsearchlist.select("");
+this.treelist?this.treelist.select(a):this.gui_objects.folderlist&&($("li.selected",this.gui_objects.folderlist).removeClass("selected"),$(this.get_folder_li(a,b,d)).addClass("selected"),this.triggerEvent("selectfolder",{folder:a,prefix:b}))};this.mark_folder=function(a,b,d,e){$(this.get_folder_li(a,d,e)).addClass(b);this.triggerEvent("markfolder",{folder:a,mark:b,status:!0})};this.unmark_folder=function(a,b,d,e){$(this.get_folder_li(a,d,e)).removeClass(b);this.triggerEvent("markfolder",{folder:a,
+mark:b,status:!1})};this.get_folder_li=function(a,b,d){b||(b="rcmli");if(this.gui_objects.folderlist)return a=this.html_identifier(a,d),document.getElementById(b+a)};this.set_message_coltypes=function(a,b,d){var e=this.message_list,f=e?e.thead:null,h,g;this.env.listcols=a;this.env.coltypes||(this.env.coltypes={});if(f){if(b){f.innerHTML="";g=document.createElement("tr");c=0;for(a=b.length;c<a;c++)h=document.createElement("th"),h.innerHTML=b[c].html||"",b[c].id&&(h.id=b[c].id),b[c].className&&(h.className=
+b[c].className),g.appendChild(h);f.appendChild(g)}g=0;for(a=this.env.listcols.length;g<a;g++)b=this.env.listcols[g],!(h=f.rows[0].cells[g])||"from"!=b&&"to"!=b&&"fromto"!=b||$(h).attr("rel",b).find("span,a").text(this.get_label("fromto"==b?d:b))}this.env.subject_col=null;this.env.flagged_col=null;this.env.status_col=null;this.env.coltypes.folder&&(this.env.coltypes.folder.hidden=!(this.env.search_request||this.env.search_id)||"base"==this.env.search_scope);0<=(g=$.inArray("subject",this.env.listcols))&&
+(this.env.subject_col=g,e&&(e.subject_col=g));0<=(g=$.inArray("flag",this.env.listcols))&&(this.env.flagged_col=g);0<=(g=$.inArray("status",this.env.listcols))&&(this.env.status_col=g);e&&(e.hide_column("folder",this.env.coltypes.folder&&this.env.coltypes.folder.hidden||0>$.inArray("folder",this.env.listcols)),e.init_header())};this.set_rowcount=function(a,b){if(b&&b!=this.env.mailbox)return!1;$(this.gui_objects.countdisplay).html(a);this.set_page_buttons()};this.set_mailboxname=function(a){this.gui_objects.mailboxname&&
+a&&(this.gui_objects.mailboxname.innerHTML=a)};this.set_quota=function(a){this.gui_objects.quotadisplay&&a&&"text"==a.type&&$(this.gui_objects.quotadisplay).text((a.percent||0)+"%").attr("title",a.title);this.triggerEvent("setquota",a);this.env.quota_content=a};this.set_trash_count=function(a){this[(a?"un":"")+"mark_folder"](this.env.trash_mailbox,"empty","",!0)};this.set_unread_count=function(a,b,d,e){if(!this.gui_objects.mailboxlist)return!1;this.env.unread_counts[a]=b;this.set_unread_count_display(a,
+d);e?this.mark_folder(a,e,"",!0):b||this.unmark_folder(a,"recent","",!0)};this.set_unread_count_display=function(a,b){var d,e,f,g,m;if(f=this.get_folder_li(a,"",!0)){g=this.env.unread_counts[a]?this.env.unread_counts[a]:0;e=$(f).children("a").eq(0);d=e.children("span.unreadcount");!d.length&&g&&(d=$("<span>").addClass("unreadcount").appendTo(e));e=0;if((m=f.getElementsByTagName("div")[0])&&m.className.match(/collapsed/))for(var k in this.env.unread_counts)k.startsWith(a+this.env.delimiter)&&(e+=this.env.unread_counts[k]);
+g&&d.length?d.html(this.env.unreadwrap.replace(/%[sd]/,g)):d.length&&d.remove();d=RegExp(RegExp.escape(this.env.delimiter)+"[^"+RegExp.escape(this.env.delimiter)+"]+$");a.match(d)&&this.set_unread_count_display(a.replace(d,""),!1);0<g+e?$(f).addClass("unread"):$(f).removeClass("unread")}d=/^\([0-9]+\)\s+/i;b&&document.title&&(f="",f=String(document.title),f=g&&f.match(d)?f.replace(d,"("+g+") "):g?"("+g+") "+f:f.replace(d,""),this.set_pagetitle(f))};this.set_headers=function(a){this.gui_objects.all_headers_row&&
+this.gui_objects.all_headers_box&&a&&$(this.gui_objects.all_headers_box).html(a).show()};this.show_headers=function(a,b){this.gui_objects.all_headers_row&&this.gui_objects.all_headers_box&&this.env.uid&&($(b).removeClass("show-headers").addClass("hide-headers"),$(this.gui_objects.all_headers_row).show(),b.onclick=function(){g.command("hide-headers","",b)},this.gui_objects.all_headers_box.innerHTML||this.http_post("headers",{_uid:this.env.uid,_mbox:this.env.mailbox},this.display_message(this.get_label("loading"),
+"loading")))};this.hide_headers=function(a,b){this.gui_objects.all_headers_row&&this.gui_objects.all_headers_box&&($(b).removeClass("hide-headers").addClass("show-headers"),$(this.gui_objects.all_headers_row).hide(),b.onclick=function(){g.command("show-headers","",b)})};this.folder_selector=function(a,b){var d=this.folder_selector_element;if(!d){var e=[],f=this.env.delimiter,h=$('<ul class="toolbarmenu">'),m=document.createElement("a"),d=$('<div id="folder-selector" class="popupmenu"></div>');m.href=
+"#";m.className="icon";$.each(this.env.mailboxes_list,function(){var a=0,b=0,d=g.env.mailboxes[this],h=d.id,q=$(m.cloneNode(!1)),v=$("<li>");d.virtual?q.addClass("virtual").attr("aria-disabled","true").attr("tabindex","-1"):q.addClass("active").data("id",d.id);for(d["class"]&&q.addClass(d["class"]);0<=(b=h.indexOf(f,b));)a++,b++;q.css("padding-left",a?16*a+"px":0);q.append($("<span>").text(d.name));v.append(q);e.push(v)});h.append(e).appendTo(d);d.css({left:"-1000px",top:"-1000px"}).appendTo($("body")).show();
+10<e.length&&d.css("max-height",10*$("li",d)[0].offsetHeight+9);d.on("click","a.active",function(a){d.data("callback")($(this).data("id"));return!1});this.folder_selector_element=d}d.data("callback",b);this.show_menu("folder-selector",!0,a)};this.show_menu=function(a,b,d){var e="object"==typeof a?a.menu:a,f=$("#"+e),g=d&&d.target?$(d.target):$(f.attr("rel")||"#"+e+"link"),m=rcube_event.is_keyboard(d),k=f.attr("data-align")||"",n=!1;"A"!=g.get(0).tagName&&g.closest("a").length&&(g=g.closest("a"));
+"string"==typeof a&&(a={menu:e});f.length||(f=this.triggerEvent("menu-get",{name:e,props:a,originalEvent:d}));if(!f||!f.length)return this.triggerEvent(!1===b?"menu-close":"menu-open",{name:e,props:a,originalEvent:d});f.appendTo(document.body);"undefined"==typeof b&&(b=f.is(":visible")?!1:!0);if(b&&g.length){var l=$(window),p=g.offset(),q=0<=k.indexOf("bottom"),n="menuitem"==g.attr("role")||0<g.closest("[role=menuitem]").length;g.offsetWidth=g.outerWidth();g.offsetHeight=g.outerHeight();!q&&p.top+
+g.offsetHeight+f.height()>l.height()&&(q=!0);0<=k.indexOf("right")?p.left=p.left+g.outerWidth()-f.width():n&&(p.left=p.left+g.offsetWidth-5,p.top-=g.offsetHeight);p.left+f.width()>l.width()&&(p.left=l.width()-f.width()-12);p.top=Math.max(0,p.top+(q?-f.height():g.offsetHeight));f.css({left:p.left+"px",top:p.top+"px"})}if(b){for(k=this.menu_stack.length-1;n&&0<=k;k--)$(g).parents("#"+this.menu_stack[k]).length||"menuitem"==$(d.target).parent().attr("role")||this.hide_menu(this.menu_stack[k],d);n&&this.menu_stack.length?
+(f.data("parent",$.last(this.menu_stack)),f.css("z-index",($("#"+$.last(this.menu_stack)).css("z-index")||0)+1)):!n&&this.menu_stack.length&&this.hide_menu(this.menu_stack[0],d);f.show().attr("aria-hidden","false").data("opener",g.attr("aria-expanded","true").get(0));this.triggerEvent("menu-open",{name:e,obj:f,props:a,originalEvent:d});this.menu_stack.push(e);if(this.menu_keyboard_active=b&&m)this.focused_menu=e,f.find("a,input:not(:disabled)").not("[aria-disabled=true]").first().focus()}else this.hide_menu(e,
+d);return b};this.hide_menu=function(a,b){if(this.menu_stack.length){for(var d,e=rcube_event.is_keyboard(b),f=this.menu_stack.length-1;0<=f;f--)d=$("#"+this.menu_stack[f]).hide().attr("aria-hidden","true").data("parent",!1),this.triggerEvent("menu-close",{name:this.menu_stack[f],obj:d,props:{menu:this.menu_stack[f]},originalEvent:b}),this.menu_stack[f]==a&&(f=-1,d.data("opener")&&($(d.data("opener")).attr("aria-expanded","false"),e&&d.data("opener").focus())),this.menu_stack.pop();this.menu_stack.length&&
+e?(this.menu_keyboard_active=!0,this.focused_menu=$.last(this.menu_stack),d&&d.data("opener")||$("#"+this.focused_menu).find("a,input:not(:disabled)").not("[aria-disabled=true]").first().focus()):(this.focused_menu=null,this.menu_keyboard_active=!1)}else this.triggerEvent("menu-close",{name:a,props:{menu:a},originalEvent:b})};this.element_position=function(a,b){b=$(b);var d=$(window),e=b.outerWidth(),f=b.outerHeight(),g=b.data("menu-pos"),m=d.height(),k=$(a).height(),n=$(a).width(),l=b.offset(),p=
+l.top,l=l.left+e;"bottom"==g?(p+=f,l-=e):l-=5;p+k>m&&(p-=k-f,0>p&&(p=Math.max(0,(m-k)/2)));l+n>d.width()&&(l-=n+e);a.css({left:l+"px",top:p+"px"})};this.editor_init=function(a,b){this.editor=new rcube_text_editor(a,b)};this.html2plain=function(a,b){return this.format_converter(a,"html",b)};this.plain2html=function(a,b){return this.format_converter(a,"plain",b)};this.format_converter=function(a,b,d){if(!a||"html"==b&&!a.replace(/<[^>]+>| |\xC2\xA0|\s/g,"").length||"html"!=b&&!a.replace(/\xC2\xA0|\s/g,
+"").length)return d&&setTimeout(function(){d("")},50),!0;var e=this.env.editor_warned||confirm(this.get_label("editorwarning"));this.env.editor_warned=!0;if(!e)return!1;b="?_task=utils&_action="+("html"==b?"html2text":"text2html");var f=this.set_busy(!0,"converting");this.log("HTTP POST: "+b);$.ajax({type:"POST",url:b,data:a,contentType:"application/octet-stream",error:function(a,b,d){g.http_error(a,b,d,f)},success:function(a){g.set_busy(!1,null,f);d&&d(a)}});return!0};this.url=function(a,b){var d=
+"string"===typeof b?b:"";"string"!==typeof a?b=a:b&&"object"===typeof b||(b={});a?b._action=a:this.env.action&&(b._action=this.env.action);var e=this.env.comm_path,f,g={};a&&a.match(/([a-z0-9_-]+)\/([a-z0-9-_.]+)/)&&(b._action=RegExp.$2,e=e.replace(/\_task=[a-z0-9_-]+/,"_task="+RegExp.$1));for(f in b)void 0!==b[f]&&null!==b[f]&&(g[f]=b[f]);if(g=$.param(g))e+=(-1<e.indexOf("?")?"&":"?")+g;d&&(e+=(-1<e.indexOf("?")?"&":"?")+d);return e};this.redirect=function(a,b){(b||null===b)&&this.set_busy(!0);this.is_framed()?
+parent.rcmail.redirect(a,b):(this.env.extwin&&("string"==typeof a?a+=(0>a.indexOf("?")?"?":"&")+"_extwin=1":a._extwin=1),this.location_href(a,window))};this.goto_url=function(a,b,d){this.redirect(this.url(a,b),d)};this.location_href=function(a,b,d){d&&this.lock_frame();"object"==typeof a&&(a=this.env.comm_path+"&"+$.param(a));bw.ie&&b==window?$("<a>").attr("href",a).appendTo(document.body).get(0).click():b.location.href=a;this.start_keepalive()};this.update_state=function(a){window.history.replaceState&&
+window.history.replaceState({},document.title,rcmail.url("",a))};this.http_request=function(a,b,d){"object"!==typeof b&&(b=rcube_parse_query(b));b._remote=1;b._unlock=d?d:0;var e=this.triggerEvent("request"+a,b);if(!1===e)return b._unlock&&this.set_busy(!1,null,b._unlock),!1;void 0!==e&&(b=e,b._action&&(a=b._action,delete b._action));b=this.url(a,b);this.log("HTTP GET: "+b);this.start_keepalive();return $.ajax({type:"GET",url:b,dataType:"json",success:function(a){g.http_response(a)},error:function(b,
+e,m){g.http_error(b,e,m,d,a)}})};this.http_post=function(a,b,d){"object"!==typeof b&&(b=rcube_parse_query(b));b._remote=1;b._unlock=d?d:0;var e=this.triggerEvent("request"+a,b);if(!1===e)return b._unlock&&this.set_busy(!1,null,b._unlock),!1;void 0!==e&&(b=e,b._action&&(a=b._action,delete b._action));e=this.url(a);this.log("HTTP POST: "+e);this.start_keepalive();return $.ajax({type:"POST",url:e,data:b,dataType:"json",success:function(a){g.http_response(a)},error:function(b,e,m){g.http_error(b,e,m,
+d,a)}})};this.abort_request=function(a){a.request&&a.request.abort();a.lock&&this.set_busy(!1,null,a.lock)};this.http_response=function(a){if(a){a.unlock&&this.set_busy(!1);this.triggerEvent("responsebefore",{response:a});this.triggerEvent("responsebefore"+a.action,{response:a});a.env&&this.set_env(a.env);if("object"===typeof a.texts)for(var b in a.texts)"string"===typeof a.texts[b]&&this.add_label(b,a.texts[b]);a.exec&&(this.log(a.exec),eval(a.exec));if(a.callbacks&&a.callbacks.length)for(b=0;b<
+a.callbacks.length;b++)this.triggerEvent(a.callbacks[b][0],a.callbacks[b][1]);switch(a.action){case "delete":if("addressbook"==this.task){var d;b=this.contact_list.get_selection();d=!1;b&&this.contact_list.rows[b]&&(d=""==this.env.source?(d=String(b).replace(/^[^-]+-/,""))&&this.env.address_sources[d]&&!this.env.address_sources[d].readonly:!this.env.address_sources[this.env.source].readonly);this.enable_command("compose",b&&this.contact_list.rows[b]);this.enable_command("delete","edit",d);this.enable_command("export",
+this.contact_list&&0<this.contact_list.rowcount);this.enable_command("export-selected","print",!1)}case "move":"show"==this.env.action?(this.enable_command(this.env.message_commands,!0),this.env.list_post||this.enable_command("reply-list",!1)):"addressbook"==this.task&&this.triggerEvent("listupdate",{folder:this.env.source,rowcount:this.contact_list.rowcount});case "purge":case "expunge":"mail"==this.task&&(this.env.exists||(this.env.contentframe&&this.show_contentframe(!1),this.enable_command(this.env.message_commands,
+"purge","expunge","select-all","select-none","expand-all","expand-unread","collapse-all",!1)),this.message_list&&this.triggerEvent("listupdate",{folder:this.env.mailbox,rowcount:this.message_list.rowcount}));break;case "refresh":case "check-recent":$.each(this.env.recent_flags||{},function(a,b){g.set_message(a,"deleted",b.deleted);g.set_message(a,"replied",b.answered);g.set_message(a,"unread",!b.seen);g.set_message(a,"forwarded",b.forwarded);g.set_message(a,"flagged",b.flagged)}),delete this.env.recent_flags;
+case "getunread":case "search":this.env.qsearch=null;case "list":if("mail"==this.task){d=this.is_multifolder_listing();var e=this.message_list;b=this.env.list_uid;this.enable_command("show","select-all","select-none",0<this.env.messagecount);this.enable_command("expunge",this.env.exists&&!d);this.enable_command("purge",this.purge_mailbox_test()&&!d);this.enable_command("import-messages",!d);this.enable_command("expand-all","expand-unread","collapse-all",this.env.threading&&this.env.messagecount&&
+!d);if(e){if("list"==a.action||"search"==a.action)b&&(e.rows[b]||(b+="-"+this.env.mailbox),e.rows[b]&&e.select(b),delete this.env.list_uid),this.enable_command("set-listmode",this.env.threads&&!d),0<e.rowcount&&!$(document.activeElement).is("input,textarea")&&e.focus(),this.msglist_select(e);"getunread"!=a.action&&this.triggerEvent("listupdate",{folder:this.env.mailbox,rowcount:e.rowcount})}}else"addressbook"==this.task&&(this.enable_command("export",this.contact_list&&0<this.contact_list.rowcount),
+"list"==a.action||"search"==a.action)&&(this.enable_command("search-create",""==this.env.source),this.enable_command("search-delete",this.env.search_id),this.update_group_commands(),0<this.contact_list.rowcount&&!$(document.activeElement).is("input,textarea")&&this.contact_list.focus(),this.triggerEvent("listupdate",{folder:this.env.source,rowcount:this.contact_list.rowcount}));break;case "list-contacts":case "search-contacts":this.contact_list&&0<this.contact_list.rowcount&&this.contact_list.focus()}a.unlock&&
+this.hide_message(a.unlock);this.triggerEvent("responseafter",{response:a});this.triggerEvent("responseafter"+a.action,{response:a});this.start_keepalive()}};this.http_error=function(a,b,d,e,f){d=a.statusText;this.set_busy(!1,null,e);a.abort();this.unload||(a.status&&d?this.display_message(this.get_label("servererror")+" ("+d+")","error"):"timeout"==b?this.display_message(this.get_label("requesttimedout"),"error"):0==a.status&&"abort"!=b&&this.display_message(this.get_label("connerror"),"error"),
+(b=a.getResponseHeader("Location"))&&"compose"!=this.env.action&&this.redirect(b),403==a.status?(this.is_framed()?parent:window).location.reload():"keep-alive"==f&&setTimeout(function(){g.keep_alive();g.start_keepalive()},3E4))};this.session_error=function(a){this.env.server_error=401;"compose"==this.env.action?(this.save_compose_form_local(),this.compose_skip_unsavedcheck=!0):a&&setTimeout(function(){g.redirect(a,!0)},2E3)};this.iframe_loaded=function(a){this.set_busy(!1,null,a);this.submit_timer&&
+clearTimeout(this.submit_timer)};this.multi_thread_http_request=function(a){var b,d,e=(new Date).getTime(),f=a.threads||1;a.reqid=e;a.running=0;a.requests=[];a.result=[];a._items=$.extend([],a.items);a.lock||(a.lock=this.display_message(this.get_label("loading"),"loading"));this.http_request_jobs[e]=a;for(b=0;b<f;b++){d=a._items.shift();if(void 0===d)break;a.running++;a.requests.push(this.multi_thread_send_request(a,d))}return e};this.multi_thread_send_request=function(a,b){var d,e,f;if(a.postdata){e=
+{};for(d in a.postdata)e[d]=String(a.postdata[d]).replace("%s",b);e._reqid=a.reqid}else if("string"==typeof a.query)f=a.query.replace("%s",b),f+="&_reqid="+a.reqid;else if("object"==typeof a.query&&a.query){f={};for(d in a.query)f[d]=String(a.query[d]).replace("%s",b);f._reqid=a.reqid}return e?this.http_post(a.action,e):this.http_request(a.action,f)};this.multi_thread_http_response=function(a,b){var d=this.http_request_jobs[b];if(d&&!(0>=d.running||d.cancelled)){d.running--;if(d.onresponse&&"function"==
+typeof d.onresponse)d.onresponse(a);d.result=$.extend(d.result,a);var e=d._items.shift();void 0!==e?(d.running++,d.requests.push(this.multi_thread_send_request(d,e))):0==d.running&&(d.whendone&&"function"==typeof d.whendone&&d.whendone(d.result),this.set_busy(!1,"",d.lock),delete this.http_request_jobs[b])}};this.multi_thread_request_abort=function(a){if(a=this.http_request_jobs[a]){for(var b=0;0<a.running&&b<a.requests.length;b++)a.requests[b].abort&&a.requests[b].abort();a.running=0;a.cancelled=
+!0;this.set_busy(!1,"",a.lock)}};this.async_upload_form=function(a,b,d){var e=(new Date).getTime(),f="rcmupload"+e,g=this.async_upload_form_frame(f);if(this.env.upload_progress_name){var m=this.env.upload_progress_name,k=$("input[name="+m+"]",a);k.length||(k=$("<input>").attr({type:"hidden",name:m}),k.prependTo(a));k.val(e)}g.bind("load",{ts:e},d);$(a).attr({target:f,action:this.url(b,{_id:this.env.compose_id||"",_uploadid:e,_from:this.env.action}),method:"POST"}).attr(a.encoding?"encoding":"enctype",
+"multipart/form-data").submit();return f};this.async_upload_form_frame=function(a){return $("<iframe>").attr({name:a,style:"border: none; width: 0; height: 0; visibility: hidden"}).appendTo(document.body)};this.document_drag_hover=function(a,b){$(this.gui_objects.filedrop)[b?"addClass":"removeClass"]("active")};this.file_drag_hover=function(a,b){a.preventDefault();a.stopPropagation();$(this.gui_objects.filedrop)[b?"addClass":"removeClass"]("hover")};this.file_dropped=function(a){this.file_drag_hover(a,
+!1);var b=a.target.files||a.dataTransfer.files,d=window.FormData?new FormData:null,e=(this.env.filedrop.fieldname||"_file")+(this.env.filedrop.single?"":"[]"),f="------multipartformboundary"+(new Date).getTime(),h="--"+f+"\r\n";if(b&&b.length)for(var m=function(){var a=1<b.length,e=(new Date).getTime(),a=$("<span>").text(a?g.get_label("uploadingmany"):b[0].name).html();g.add2attachment_list(e,{name:"",html:a,classname:"uploading",complete:!1})||(g.file_upload_id=g.set_busy(!0,"uploading"));h+="--"+
+f+"--\r\n";$.ajax({type:"POST",dataType:"json",url:g.url(g.env.filedrop.action||"upload",{_id:g.env.compose_id||g.env.cid||"",_uploadid:e,_remote:1,_from:g.env.action}),contentType:d?!1:"multipart/form-data; boundary="+f,processData:!1,timeout:0,data:d||h,headers:{"X-Roundcube-Request":g.env.request_token},xhr:function(){var a=jQuery.ajaxSettings.xhr();!d&&a.sendAsBinary&&(a.send=a.sendAsBinary);return a},success:function(a){g.http_response(a)},error:function(a,b,d){g.http_error(a,b,d,null,"attachment")}})},
+k=this.env.filedrop.single?0:b.length-1,n=a=0,l;a<=k&&(l=b[n]);n++)if(l.name||(l.name=l.fileName),l.size||(l.size=l.fileSize),l.type||(l.type="application/octet-stream"),!d&&/[^\x20-\x7E]/.test(l.name)&&(l.name_bin=unescape(encodeURIComponent(l.name))),!this.env.filedrop.filter||l.type.match(RegExp(this.env.filedrop.filter))){if(d){if(d.append(e,l),a==k)return m()}else if(window.FileReader){var p=new FileReader;p.onload=function(a,b){return function(d){h+='Content-Disposition: form-data; name="'+
+e+'"';h+='; filename="'+(l.name_bin||a.name)+'"\r\n';h+="Content-Length: "+a.size+"\r\n";h+="Content-Type: "+a.type+"\r\n\r\n";h+=p.result+"\r\n";h+="--"+f+"\r\n";if(b==k)return m()}}(l,a);p.readAsBinaryString(l)}else if(l.getAsBinary&&(h+='Content-Disposition: form-data; name="'+e+'"',h+='; filename="'+(l.name_bin||l.name)+'"\r\n',h+="Content-Length: "+l.size+"\r\n",h+="Content-Type: "+l.type+"\r\n\r\n",h+=l.getAsBinary()+"\r\n",h+="--"+f+"\r\n",a==k))return m();a++}};this.start_keepalive=function(){!this.env.session_lifetime||
+this.env.framed||this.env.extwin||"login"==this.task||"print"==this.env.action||(this._keepalive&&clearInterval(this._keepalive),this._keepalive=setInterval(function(){g.keep_alive()},500*this.env.session_lifetime))};this.start_refresh=function(){!this.env.refresh_interval||this.env.framed||this.env.extwin||"login"==this.task||"print"==this.env.action||(this._refresh&&clearInterval(this._refresh),this._refresh=setInterval(function(){g.refresh()},1E3*this.env.refresh_interval))};this.keep_alive=function(){this.busy||
+this.http_request("keep-alive")};this.refresh=function(){if(this.busy)setTimeout(function(){g.refresh();g.start_refresh()},1E4);else{var a={},b=this.set_busy(!0,"refreshing");"mail"==this.task&&this.gui_objects.mailboxlist&&(a=this.check_recent_params());a._last=Math.floor(this.env.lastrefresh.getTime()/1E3);this.env.lastrefresh=new Date;this.http_post("refresh",a,b)}};this.check_recent_params=function(){var a={_mbox:this.env.mailbox};this.gui_objects.mailboxlist&&(a._folderlist=1);this.gui_objects.quotadisplay&&
+(a._quota=1);this.env.search_request&&(a._search=this.env.search_request);this.gui_objects.messagelist&&(a._list=1,a._uids=$.map(this.message_list.rows,function(a,d){return d}).join(","));return a};this.quote_html=function(a){return String(a).replace(/</g,"<").replace(/>/g,">").replace(/"/g,""")};this.opener=function(a,b){var d,e=window.opener;try{if(e&&!e.closed){a&&(!e.rcmail||e.rcmail.env.framed)&&e.parent&&e.parent.rcmail&&(e=e.parent);if(e.rcmail&&b)for(d in b)if(e.rcmail.env[d]!=
+b[d])return;return e.rcmail}}catch(f){}};this.get_single_uid=function(){var a=this.env.uid||(this.message_list?this.message_list.get_single_selection():null);return g.triggerEvent("get_single_uid",{uid:a})||a};this.get_single_cid=function(){var a=this.env.cid||(this.contact_list?this.contact_list.get_single_selection():null);return g.triggerEvent("get_single_cid",{cid:a})||a};this.get_message_mailbox=function(a){return((this.env.messages&&a?this.env.messages[a]:null)||{}).mbox||this.env.mailbox};
+this.params_from_uid=function(a,b){b||(b={});b._uid=String(a).split("-")[0];b._mbox=this.get_message_mailbox(a);return b};this.get_caret_pos=function(a){return void 0!==a.selectionEnd?a.selectionEnd:a.value.length};this.set_caret_pos=function(a,b){try{a.setSelectionRange&&a.setSelectionRange(b,b)}catch(d){}};this.get_input_selection=function(a){var b=0,d=0,e="";"number"==typeof a.selectionStart&&"number"==typeof a.selectionEnd&&(e=a.value,b=a.selectionStart,d=a.selectionEnd);return{start:b,end:d,
+text:e.substr(b,d-b)}};this.lock_form=function(a,b){if(a&&a.elements){var d,e,f;b&&(this.disabled_form_elements=[]);d=0;for(e=a.elements.length;d<e;d++)if(f=a.elements[d],"hidden"!=f.type)if(b&&f.disabled)this.disabled_form_elements.push(f);else if(b||0>$.inArray(f,this.disabled_form_elements))f.disabled=b}};this.mailto_handler_uri=function(){return location.href.split("?")[0]+"?_task=mail&_action=compose&_to=%s"};this.register_protocol_handler=function(a){try{window.navigator.registerProtocolHandler("mailto",
+this.mailto_handler_uri(),a)}catch(b){this.display_message(String(b),"error")}};this.check_protocol_handler=function(a,b){var d=window.navigator;d&&"function"==typeof d.registerProtocolHandler?"function"==typeof d.isProtocolHandlerRegistered?(d=d.isProtocolHandlerRegistered("mailto",this.mailto_handler_uri()))&&$(b).parent().find(".mailtoprotohandler-status").html(d):$(b).click(function(){g.register_protocol_handler(a);return!1}):$(b).addClass("disabled").click(function(){return!1})};this.browser_capabilities_check=
+function(){this.env.browser_capabilities||(this.env.browser_capabilities={});$.each(["pdf","flash","tif"],function(){void 0===g.env.browser_capabilities[this]&&(g.env.browser_capabilities[this]=g[this+"_support_check"]())})};this.browser_capabilities=function(){if(!this.env.browser_capabilities)return"";var a,b=[];for(a in this.env.browser_capabilities)b.push(a+"="+this.env.browser_capabilities[a]);return b.join()};this.tif_support_check=function(){window.setTimeout(function(){var a=new Image;a.onload=
+function(){g.env.browser_capabilities.tif=1};a.onerror=function(){g.env.browser_capabilities.tif=0};a.src=g.assets_path("program/resources/blank.tif")},10);return 0};this.pdf_support_check=function(){var a=navigator.mimeTypes?navigator.mimeTypes["application/pdf"]:{},b=navigator.plugins,d=b.length,e=/Adobe Reader|PDF|Acrobat/i;if(a&&a.enabledPlugin)return 1;if("ActiveXObject"in window){try{if(a=new ActiveXObject("AcroPDF.PDF"))return 1}catch(f){}try{if(a=new ActiveXObject("PDF.PdfCtrl"))return 1}catch(h){}}for(i=
+0;i<d;i++)if(a=b[i],"String"===typeof a){if(e.test(a))return 1}else if(a.name&&e.test(a.name))return 1;window.setTimeout(function(){$("<object>").css({position:"absolute",left:"-10000px"}).attr({data:g.assets_path("program/resources/dummy.pdf"),width:1,height:1,type:"application/pdf"}).load(function(){g.env.browser_capabilities.pdf=1}).error(function(){g.env.browser_capabilities.pdf=0}).appendTo($("body"))},10);return 0};this.flash_support_check=function(){var a=navigator.mimeTypes?navigator.mimeTypes["application/x-shockwave-flash"]:
+{};if(a&&a.enabledPlugin)return 1;if("ActiveXObject"in window)try{if(new ActiveXObject("ShockwaveFlash.ShockwaveFlash"))return 1}catch(b){}return 0};this.assets_path=function(a){this.env.assets_path&&!a.startsWith(this.env.assets_path)&&(a=this.env.assets_path+a);return a};this.set_cookie=function(a,b,d){setCookie(a,b,d,this.env.cookie_path,this.env.cookie_domain,this.env.cookie_secure)};this.get_local_storage_prefix=function(){this.local_storage_prefix||(this.local_storage_prefix="roundcube."+(this.env.user_id||
+"anonymous")+".");return this.local_storage_prefix};this.local_storage_get_item=function(a,b,d){var e,f;try{e=localStorage.getItem(this.get_local_storage_prefix()+a),f=JSON.parse(e)}catch(g){}return f||b||null};this.local_storage_set_item=function(a,b,d){try{return localStorage.setItem(this.get_local_storage_prefix()+a,JSON.stringify(b)),!0}catch(e){return!1}};this.local_storage_remove_item=function(a){try{return localStorage.removeItem(this.get_local_storage_prefix()+a),!0}catch(b){return!1}};this.print_dialog=
+function(){bw.safari?setTimeout("window.print()",10):window.print()}}rcube_webmail.long_subject_title=function(g,u){if(!g.title){var a=$(g);a.width()+15*(u||0)>a.parent().width()&&(g.title=rcube_webmail.subject_text(g))}};
rcube_webmail.long_subject_title_ex=function(g){if(!g.title){var u=$(g),a=$.trim(u.text()),a=$("<span>").text(a).css({position:"absolute","float":"left",visibility:"hidden","font-size":u.css("font-size"),"font-weight":u.css("font-weight")}).appendTo($("body")),b=a.width();a.remove();b+15*$("span.branch",u).width()>u.width()&&(g.title=rcube_webmail.subject_text(g))}};rcube_webmail.subject_text=function(g){g=$(g).clone();g.find(".skip-on-drag").remove();return g.text()};
rcube_webmail.prototype.get_cookie=getCookie;rcube_webmail.prototype.addEventListener=rcube_event_engine.prototype.addEventListener;rcube_webmail.prototype.removeEventListener=rcube_event_engine.prototype.removeEventListener;rcube_webmail.prototype.triggerEvent=rcube_event_engine.prototype.triggerEvent;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/roundcubemail-1.1.3/program/js/editor.js new/roundcubemail-1.1.4/program/js/editor.js
--- old/roundcubemail-1.1.3/program/js/editor.js 2015-09-13 21:10:03.000000000 +0200
+++ new/roundcubemail-1.1.4/program/js/editor.js 2015-12-23 10:18:12.000000000 +0100
@@ -527,20 +527,19 @@
// Append the signature as a div within the body
if (!sigElem) {
- var body = this.editor.getBody(),
- doc = this.editor.getDoc();
+ var body = this.editor.getBody();
- sigElem = doc.createElement('div');
- sigElem.setAttribute('id', '_rc_sig');
+ sigElem = $('<div id="_rc_sig"></div>').get(0);
- if (rcmail.env.top_posting && !rcmail.env.sig_below) {
+ // insert at start or at cursor position in top-posting mode
+ // (but not if the content is empty)
+ if (rcmail.env.top_posting && !rcmail.env.sig_below && (body.childNodes.length > 1 || $(body).text())) {
this.editor.getWin().focus(); // correct focus in IE & Chrome
var node = this.editor.selection.getNode();
- // insert at start or at cursor position if found
- body.insertBefore(sigElem, node.nodeName == 'BODY' ? body.firstChild : node.nextSibling);
- body.insertBefore(doc.createElement('p'), sigElem);
+ $(sigElem).insertBefore(node.nodeName == 'BODY' ? body.firstChild : node.nextSibling);
+ $('<p>').append($('<br>')).insertBefore(sigElem);
}
else {
body.appendChild(sigElem);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/roundcubemail-1.1.3/program/js/editor.min.js new/roundcubemail-1.1.4/program/js/editor.min.js
--- old/roundcubemail-1.1.3/program/js/editor.min.js 2015-09-13 21:10:03.000000000 +0200
+++ new/roundcubemail-1.1.4/program/js/editor.min.js 2015-12-23 10:18:12.000000000 +0100
@@ -41,8 +41,8 @@
(c.execCommand("mceSpellCheck",!1),this.spellcheck_observer()):(c=this.spellchecker)&&c.state&&"ready"!=c.state&&"no_error_found"!=c.state&&$(c.spell_span).trigger("click")};this.spellcheck_state=function(){var c;if(this.editor)return this.spellcheck_active;if((c=this.spellchecker)&&c.state)return"ready"!=c.state&&"no_error_found"!=c.state};this.spellcheck_resume=function(c){var a=this.editor;if(a)a.plugins.spellchecker.markErrors(c);else if(a=this.spellchecker)a.prepare(!1,!0),a.processData(c)};
this.get_language=function(){if(this.editor)return this.editor.settings.spellchecker_language||rcmail.env.spell_lang;if(this.spellchecker)return GOOGIE_CUR_LANG};this.set_language=function(c){var a=this.editor;a&&(a.settings.spellchecker_language=c);(a=this.spellchecker)&&a.setCurrentLanguage(c)};this.replace=function(c){var a=this.editor;if(a)a.getWin().focus(),a.selection.setContent(rcmail.quote_html(c).replace(/\r?\n/g,"<br/>"),{format:"text"});else if(a=rcube_find_object(this.id)){var d=$(a).is(":focus")?
rcmail.get_input_selection(a):{start:0,end:0},b=a.value;pre=b.substring(0,d.start);end=b.substring(d.end,b.length);a.value=pre+c+end;rcmail.set_caret_pos(a,d.start+c.length);a.focus()}};this.get_content=function(c){var a=this.editor,d="",b=!1;c=$.extend({refresh:!0,selection:!1,nosig:!1,format:"html"},c);c.refresh&&this.spellcheck_stop();if(a)a.getWin().focus(),c.selection&&(d=a.selection.getContent({format:c.format})),d||(d=a.getContent({format:c.format}),b="text"==c.format);else if(a=rcube_find_object(this.id))c.selection&&
-$(a).is(":focus")&&(d=rcmail.get_input_selection(a).text),d||(d=a.value,b=!0);b&&c.nosig&&(c=d.indexOf("-- \n"),0<c&&(d=d.substring(0,c)));return d};this.change_signature=function(c,a){var d,b;b=-1;var f=$("#"+this.id),e=f.val(),g=rcmail.env.identity;this.editor?a&&rcmail.env.signatures?(f=this.editor.dom.get("_rc_sig"),f||(e=this.editor.getBody(),g=this.editor.getDoc(),f=g.createElement("div"),f.setAttribute("id","_rc_sig"),rcmail.env.top_posting&&!rcmail.env.sig_below?(this.editor.getWin().focus(),
-b=this.editor.selection.getNode(),e.insertBefore(f,"BODY"==b.nodeName?e.firstChild:b.nextSibling),e.insertBefore(g.createElement("p"),f)):(e.appendChild(f),d=rcmail.env.top_posting?e.firstChild:$(f).prev())),f.innerHTML=rcmail.env.signatures[c]?rcmail.env.signatures[c].html:""):rcmail.env.top_posting||(d=$(this.editor.getBody()).children().last()):(a&&g&&rcmail.env.signatures&&rcmail.env.signatures[g]&&(g=rcmail.env.signatures[g].text,g=g.replace(/\r\n/g,"\n"),b=rcmail.env.top_posting?e.indexOf(g):
+$(a).is(":focus")&&(d=rcmail.get_input_selection(a).text),d||(d=a.value,b=!0);b&&c.nosig&&(c=d.indexOf("-- \n"),0<c&&(d=d.substring(0,c)));return d};this.change_signature=function(c,a){var d,b;b=-1;var f=$("#"+this.id),e=f.val(),g=rcmail.env.identity;this.editor?a&&rcmail.env.signatures?(f=this.editor.dom.get("_rc_sig"),f||(e=this.editor.getBody(),f=$('<div id="_rc_sig"></div>').get(0),rcmail.env.top_posting&&!rcmail.env.sig_below&&(1<e.childNodes.length||$(e).text())?(this.editor.getWin().focus(),
+g=this.editor.selection.getNode(),$(f).insertBefore("BODY"==g.nodeName?e.firstChild:g.nextSibling),$("<p>").append($("<br>")).insertBefore(f)):(e.appendChild(f),d=rcmail.env.top_posting?e.firstChild:$(f).prev())),f.innerHTML=rcmail.env.signatures[c]?rcmail.env.signatures[c].html:""):rcmail.env.top_posting||(d=$(this.editor.getBody()).children().last()):(a&&g&&rcmail.env.signatures&&rcmail.env.signatures[g]&&(g=rcmail.env.signatures[g].text,g=g.replace(/\r\n/g,"\n"),b=rcmail.env.top_posting?e.indexOf(g):
e.lastIndexOf(g),0<=b&&(e=e.substring(0,b)+e.substring(b+g.length,e.length))),a&&rcmail.env.signatures&&rcmail.env.signatures[c]?(g=rcmail.env.signatures[c].text,g=g.replace(/\r\n/g,"\n"),0<=b?(e=e.substring(0,b)+g+e.substring(b,e.length),b-=1):e?rcmail.env.top_posting&&!rcmail.env.sig_below?(pos=rcmail.get_caret_pos(f.get(0)))?(e=e.substring(0,pos)+"\n"+g+"\n\n"+e.substring(pos,e.length),b=pos):(e="\n\n"+g+"\n\n"+e.replace(/^[\r\n]+/,""),b=0):(e=e.replace(/[\r\n]+$/,""),b=!rcmail.env.top_posting&&
e.length?e.length+1:0,e+="\n\n"+g):(e="\n\n"+g,b=0)):b=rcmail.env.top_posting?0:e.length,f.val(e),rcmail.set_caret_pos(f.get(0),b));this.editor&&d&&d.length&&(this.editor.selection.setCursorLocation(d.get(0)),this.editor.getWin().scroll(0,d.offset().top))};this.save=function(){this.editor&&this.editor.save()};this.focus=function(){(this.editor||rcube_find_object(this.id)).focus()};this.file_browser_callback=function(c,a,d){var b,f,e,g=[];a=this.editor.windowManager.open({title:rcmail.gettext("select"+
d),width:500,height:300,html:'<div id="image-selector-list"><ul></ul></div><div id="image-selector-form"><div id="image-upload-button" class="mce-widget mce-btn" role="button" tabindex="0"></div></div>',buttons:[{text:"Cancel",onclick:function(){h.file_browser_close()}}]});rcmail.env.file_browser_field=c;rcmail.env.file_browser_type=d;for(b in rcmail.env.attachments)(f=h.file_browser_entry(b,rcmail.env.attachments[b]))&&g.push(f);g.length&&$("#image-selector-list > ul").append(g).find("li:first").focus();
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/roundcubemail-1.1.3/program/js/list.js new/roundcubemail-1.1.4/program/js/list.js
--- old/roundcubemail-1.1.3/program/js/list.js 2015-09-13 21:10:03.000000000 +0200
+++ new/roundcubemail-1.1.4/program/js/list.js 2015-12-23 10:18:12.000000000 +0100
@@ -114,7 +114,8 @@
var r, len, rows = this.tbody.childNodes;
for (r=0, len=rows.length; r<len; r++) {
- this.rowcount += this.init_row(rows[r]) ? 1 : 0;
+ if (rows[r].nodeType == 1)
+ this.rowcount += this.init_row(rows[r]) ? 1 : 0;
}
this.init_header();
@@ -150,8 +151,9 @@
var self = this, uid = row.uid;
this.rows[uid] = {uid:uid, id:row.id, obj:row};
- // set eventhandlers to table row (only left-button-clicks in mouseup)
- $(row).mousedown(function(e) { return self.drag_row(e, this.uid); })
+ $(row).data('uid', uid)
+ // set eventhandlers to table row (only left-button-clicks in mouseup)
+ .mousedown(function(e) { return self.drag_row(e, this.uid); })
.mouseup(function(e) {
if (e.which == 1 && !self.drag_active)
return self.click_row(e, this.uid);
@@ -355,10 +357,11 @@
if (row.nodeName === undefined) {
// for performance reasons use DOM instead of jQuery here
var domrow = document.createElement(this.row_tagname());
+
if (row.id) domrow.id = row.id;
+ if (row.uid) domrow.uid = row.uid;
if (row.className) domrow.className = row.className;
if (row.style) $.extend(domrow.style, row.style);
- if (row.uid) $(domrow).data('uid', String(row.uid)); // #1489906
for (var e, domcell, col, i=0; row.cols && i < row.cols.length; i++) {
col = row.cols[i];
@@ -394,18 +397,22 @@
var row = this.rows[id];
if (!row) return false;
- var domrow = row.obj;
- for (var domcell, col, i=0; cols && i < cols.length; i++) {
+ var i, domrow = row.obj;
+ for (i = 0; cols && i < cols.length; i++) {
this.get_cell(domrow, i).html(cols[i]);
}
if (newid) {
delete this.rows[id];
+ domrow.uid = newid;
domrow.id = 'rcmrow' + newid;
this.init_row(domrow);
if (select)
this.selection[0] = newid;
+
+ if (this.last_selected == id)
+ this.last_selected = newid;
}
},
@@ -826,14 +833,16 @@
get_row_uid: function(row)
{
- if (row && row.uid)
- return row.uid;
+ if (!row)
+ return;
- var uid;
- if (row && (uid = $(row).data('uid')))
- row.uid = uid;
- else if (row && String(row.id).match(this.id_regexp))
- row.uid = RegExp.$1;
+ if (!row.uid) {
+ var uid = $(row).data('uid');
+ if (uid)
+ row.uid = uid;
+ else if (String(row.id).match(this.id_regexp))
+ row.uid = RegExp.$1;
+ }
return row.uid;
},
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/roundcubemail-1.1.3/program/js/list.min.js new/roundcubemail-1.1.4/program/js/list.min.js
--- old/roundcubemail-1.1.3/program/js/list.min.js 2015-09-13 21:10:03.000000000 +0200
+++ new/roundcubemail-1.1.4/program/js/list.min.js 2015-12-23 10:18:12.000000000 +0100
@@ -32,16 +32,16 @@
*/
function rcube_list_widget(a,b){this.ENTER_KEY=13;this.DELETE_KEY=46;this.BACKSPACE_KEY=8;this.tagname=(this.list=a?a:null)?this.list.nodeName.toLowerCase():"table";this.id_regexp=/^rcmrow([a-z0-9\-_=\+\/]+)/i;this.rows={};this.selection=[];this.modkey=this.subject_col=this.colcount=this.rowcount=0;this.aria_listbox=this.toggleselect=this.keyboard=this.column_movable=this.draggable=this.multi_selecting=this.multiexpand=this.multiselect=!1;this.parent_focus=!0;this.col_drag_active=this.drag_active=
!1;this.shift_start=this.last_selected=this.column_fixed=null;this.focused=!1;this.drag_mouse_start=null;this.dblclick_time=500;this.row_init=function(){};if(b&&"object"===typeof b)for(var c in b)this[c]=b[c];rcube_list_widget._instances.push(this)}
-rcube_list_widget.prototype={init:function(){"table"==this.tagname&&this.list&&this.list.tBodies[0]?(this.thead=this.list.tHead,this.tbody=this.list.tBodies[0]):"table"!=this.tagname&&this.list&&(this.tbody=this.list);"listbox"==$(this.list).attr("role")&&(this.aria_listbox=!0,this.multiselect&&$(this.list).attr("aria-multiselectable","true"));var a=this;if(this.tbody){this.rows={};this.rowcount=0;var b,c,d=this.tbody.childNodes;b=0;for(c=d.length;b<c;b++)this.rowcount+=this.init_row(d[b])?1:0;this.init_header();
-this.frame=this.list.parentNode;this.keyboard&&(rcube_event.add_listener({event:"keydown",object:this,method:"key_press"}),$(this.list).attr("tabindex","0").on("focus",function(b){a.focus(b)}))}this.parent_focus&&(this.list.parentNode.onclick=function(b){a.focus()});return this},init_row:function(a){a.uid=this.get_row_uid(a);if(a&&a.uid){var b=this,c=a.uid;this.rows[c]={uid:c,id:a.id,obj:a};$(a).mousedown(function(a){return b.drag_row(a,this.uid)}).mouseup(function(a){return 1!=a.which||b.drag_active?
-!0:b.click_row(a,this.uid)});bw.touch&&a.addEventListener&&(a.addEventListener("touchstart",function(a){1==a.touches.length&&(b.touchmoved=!1,b.drag_row(rcube_event.touchevent(a.touches[0]),this.uid))},!1),a.addEventListener("touchend",function(a){1==a.changedTouches.length&&(b.touchmoved||b.click_row(rcube_event.touchevent(a.changedTouches[0]),this.uid)||a.preventDefault())},!1),a.addEventListener("touchmove",function(a){1==a.changedTouches.length&&(b.touchmoved=!0,b.drag_active&&a.preventDefault())},
-!1));if(this.aria_listbox){var d="l:"+a.id;$(a).attr("role","option").attr("aria-labelledby",d).find(this.col_tagname()).eq(this.subject_col).attr("id",d)}document.all&&(a.onselectstart=function(){return!1});this.row_init(this.rows[c]);this.triggerEvent("initrow",this.rows[c]);return!0}},init_header:function(){if(this.thead){this.colcount=0;this.fixed_header?($(this.list.tHead).replaceWith($(this.fixed_header).find("thead").clone()),$(this.list.tHead).find("th,td").attr("style","").find("a").attr("tabindex",
-"-1")):!bw.touch&&0<=this.list.className.indexOf("fixedheader")&&this.init_fixed_header();var a,b,c=this;if(this.column_movable&&this.thead&&this.thead.rows)for(b=0;b<this.thead.rows[0].cells.length;b++)this.column_fixed!=b&&(a=this.thead.rows[0].cells[b],a.onmousedown=function(a){return c.drag_column(a,this)},this.colcount++)}},init_fixed_header:function(){var a=$(this.list.tHead).clone();if(this.fixed_header)$(this.fixed_header).find("thead").replaceWith(a);else{this.fixed_header=$("<table>").attr("class",
-this.list.className+" fixedcopy").attr("role","presentation").css({position:"fixed"}).append(a).append("<tbody></tbody>");$(this.list).before(this.fixed_header);var b=this;$(window).resize(function(){b.resize()});$(window).scroll(function(){var a=$(window);b.fixed_header.css({marginLeft:-a.scrollLeft()+"px",marginTop:-a.scrollTop()+"px"})})}$(this.list.tHead).find("a.sortcol").attr("tabindex","-1");a.find("a.sortcol").attr("tabindex","0");this.thead=a.get(0);this.resize()},resize:function(){if(this.fixed_header){var a=
-[];$(this.tbody).parent().find("thead th,thead td").each(function(b){a[b]=$(this).width()});$(this.thead).parent().width($(this.tbody).parent().width());$(this.thead).find("th,td").each(function(b){$(this).width(a[b])});$(window).scroll()}},clear:function(a){if("table"==this.tagname){var b=document.createElement("tbody");this.list.insertBefore(b,this.tbody);this.list.removeChild(this.list.tBodies[1]);this.tbody=b}else $(this.row_tagname()+":not(.thead)",this.tbody).remove();this.rows={};this.rowcount=
-0;this.last_selected=null;a&&this.clear_selection();this.frame&&(this.frame.scrollTop=0);this.resize()},remove_row:function(a,b){var c=this,d=this.rows[a]?this.rows[a].obj:null;d&&(d.style.display="none",b&&this.select_next(),delete this.rows[a],this.rowcount--,clearTimeout(this.resize_timeout),this.resize_timeout=setTimeout(function(){c.resize()},50))},insert_row:function(a,b){var c=this,d=this.tbody;if(void 0===a.nodeName){var e=document.createElement(this.row_tagname());a.id&&(e.id=a.id);a.className&&
-(e.className=a.className);a.style&&$.extend(e.style,a.style);a.uid&&$(e).data("uid",String(a.uid));for(var f,g,h,k=0;a.cols&&k<a.cols.length;k++){h=a.cols[k];g=document.createElement(this.col_tagname());h.className&&(g.className=h.className);h.innerHTML&&(g.innerHTML=h.innerHTML);for(f in h.events)g["on"+f]=h.events[f];e.appendChild(g)}a=e}b&&d.childNodes.length?d.insertBefore(a,"object"==typeof b&&b.parentNode==d?b:d.firstChild):d.appendChild(a);this.init_row(a);this.rowcount++;clearTimeout(this.resize_timeout);
-this.resize_timeout=setTimeout(function(){c.resize()},50)},update_row:function(a,b,c,d){var e=this.rows[a];if(!e)return!1;for(var e=e.obj,f=0;b&&f<b.length;f++)this.get_cell(e,f).html(b[f]);c&&(delete this.rows[a],e.id="rcmrow"+c,this.init_row(e),d&&(this.selection[0]=c))},focus:function(a){this.focused||(this.focused=!0,a&&rcube_event.cancel(a),a=null,this.last_selected&&this.rows[this.last_selected]&&(a=$(this.rows[this.last_selected].obj).find(this.col_tagname()).eq(this.subject_col).attr("tabindex",
+rcube_list_widget.prototype={init:function(){"table"==this.tagname&&this.list&&this.list.tBodies[0]?(this.thead=this.list.tHead,this.tbody=this.list.tBodies[0]):"table"!=this.tagname&&this.list&&(this.tbody=this.list);"listbox"==$(this.list).attr("role")&&(this.aria_listbox=!0,this.multiselect&&$(this.list).attr("aria-multiselectable","true"));var a=this;if(this.tbody){this.rows={};this.rowcount=0;var b,c,d=this.tbody.childNodes;b=0;for(c=d.length;b<c;b++)1==d[b].nodeType&&(this.rowcount+=this.init_row(d[b])?
+1:0);this.init_header();this.frame=this.list.parentNode;this.keyboard&&(rcube_event.add_listener({event:"keydown",object:this,method:"key_press"}),$(this.list).attr("tabindex","0").on("focus",function(b){a.focus(b)}))}this.parent_focus&&(this.list.parentNode.onclick=function(b){a.focus()});return this},init_row:function(a){a.uid=this.get_row_uid(a);if(a&&a.uid){var b=this,c=a.uid;this.rows[c]={uid:c,id:a.id,obj:a};$(a).data("uid",c).mousedown(function(a){return b.drag_row(a,this.uid)}).mouseup(function(a){return 1!=
+a.which||b.drag_active?!0:b.click_row(a,this.uid)});bw.touch&&a.addEventListener&&(a.addEventListener("touchstart",function(a){1==a.touches.length&&(b.touchmoved=!1,b.drag_row(rcube_event.touchevent(a.touches[0]),this.uid))},!1),a.addEventListener("touchend",function(a){1==a.changedTouches.length&&(b.touchmoved||b.click_row(rcube_event.touchevent(a.changedTouches[0]),this.uid)||a.preventDefault())},!1),a.addEventListener("touchmove",function(a){1==a.changedTouches.length&&(b.touchmoved=!0,b.drag_active&&
+a.preventDefault())},!1));if(this.aria_listbox){var d="l:"+a.id;$(a).attr("role","option").attr("aria-labelledby",d).find(this.col_tagname()).eq(this.subject_col).attr("id",d)}document.all&&(a.onselectstart=function(){return!1});this.row_init(this.rows[c]);this.triggerEvent("initrow",this.rows[c]);return!0}},init_header:function(){if(this.thead){this.colcount=0;this.fixed_header?($(this.list.tHead).replaceWith($(this.fixed_header).find("thead").clone()),$(this.list.tHead).find("th,td").attr("style",
+"").find("a").attr("tabindex","-1")):!bw.touch&&0<=this.list.className.indexOf("fixedheader")&&this.init_fixed_header();var a,b,c=this;if(this.column_movable&&this.thead&&this.thead.rows)for(b=0;b<this.thead.rows[0].cells.length;b++)this.column_fixed!=b&&(a=this.thead.rows[0].cells[b],a.onmousedown=function(a){return c.drag_column(a,this)},this.colcount++)}},init_fixed_header:function(){var a=$(this.list.tHead).clone();if(this.fixed_header)$(this.fixed_header).find("thead").replaceWith(a);else{this.fixed_header=
+$("<table>").attr("class",this.list.className+" fixedcopy").attr("role","presentation").css({position:"fixed"}).append(a).append("<tbody></tbody>");$(this.list).before(this.fixed_header);var b=this;$(window).resize(function(){b.resize()});$(window).scroll(function(){var a=$(window);b.fixed_header.css({marginLeft:-a.scrollLeft()+"px",marginTop:-a.scrollTop()+"px"})})}$(this.list.tHead).find("a.sortcol").attr("tabindex","-1");a.find("a.sortcol").attr("tabindex","0");this.thead=a.get(0);this.resize()},
+resize:function(){if(this.fixed_header){var a=[];$(this.tbody).parent().find("thead th,thead td").each(function(b){a[b]=$(this).width()});$(this.thead).parent().width($(this.tbody).parent().width());$(this.thead).find("th,td").each(function(b){$(this).width(a[b])});$(window).scroll()}},clear:function(a){if("table"==this.tagname){var b=document.createElement("tbody");this.list.insertBefore(b,this.tbody);this.list.removeChild(this.list.tBodies[1]);this.tbody=b}else $(this.row_tagname()+":not(.thead)",
+this.tbody).remove();this.rows={};this.rowcount=0;this.last_selected=null;a&&this.clear_selection();this.frame&&(this.frame.scrollTop=0);this.resize()},remove_row:function(a,b){var c=this,d=this.rows[a]?this.rows[a].obj:null;d&&(d.style.display="none",b&&this.select_next(),delete this.rows[a],this.rowcount--,clearTimeout(this.resize_timeout),this.resize_timeout=setTimeout(function(){c.resize()},50))},insert_row:function(a,b){var c=this,d=this.tbody;if(void 0===a.nodeName){var e=document.createElement(this.row_tagname());
+a.id&&(e.id=a.id);a.uid&&(e.uid=a.uid);a.className&&(e.className=a.className);a.style&&$.extend(e.style,a.style);for(var f,g,h,k=0;a.cols&&k<a.cols.length;k++){h=a.cols[k];g=document.createElement(this.col_tagname());h.className&&(g.className=h.className);h.innerHTML&&(g.innerHTML=h.innerHTML);for(f in h.events)g["on"+f]=h.events[f];e.appendChild(g)}a=e}b&&d.childNodes.length?d.insertBefore(a,"object"==typeof b&&b.parentNode==d?b:d.firstChild):d.appendChild(a);this.init_row(a);this.rowcount++;clearTimeout(this.resize_timeout);
+this.resize_timeout=setTimeout(function(){c.resize()},50)},update_row:function(a,b,c,d){var e=this.rows[a];if(!e)return!1;for(var f=e.obj,e=0;b&&e<b.length;e++)this.get_cell(f,e).html(b[e]);c&&(delete this.rows[a],f.uid=c,f.id="rcmrow"+c,this.init_row(f),d&&(this.selection[0]=c),this.last_selected==a&&(this.last_selected=c))},focus:function(a){this.focused||(this.focused=!0,a&&rcube_event.cancel(a),a=null,this.last_selected&&this.rows[this.last_selected]&&(a=$(this.rows[this.last_selected].obj).find(this.col_tagname()).eq(this.subject_col).attr("tabindex",
"0")),a&&a.length?this.focus_noscroll(a):($("iframe,:focus:not(body)").blur(),window.focus()),$(this.list).addClass("focus").removeAttr("tabindex"),this.last_selected||this.select_first(CONTROL_KEY))},blur:function(a){this.focused=!1;var b=this;setTimeout(function(){$(b.list).removeClass("focus").attr("tabindex","0")},20);this.last_selected&&this.rows[this.last_selected]&&$(this.rows[this.last_selected].obj).find(this.col_tagname()).eq(this.subject_col).removeAttr("tabindex")},focus_noscroll:function(a){var b=
this.frame.scrollTop||this.frame.scrollY;a.focus();this.frame.scrollTop=b},hide_column:function(a,b){var c=b?"addClass":"removeClass";if(this.fixed_header)$(this.row_tagname()+" "+this.col_tagname()+"."+a,this.fixed_header)[c]("hidden");$(this.row_tagname()+" "+this.col_tagname()+"."+a,this.list)[c]("hidden")},drag_column:function(a,b){if(1<this.colcount){this.drag_start=!0;this.drag_mouse_start=rcube_event.get_mouse_pos(a);rcube_event.add_listener({event:"mousemove",object:this,method:"column_drag_mouse_move"});
rcube_event.add_listener({event:"mouseup",object:this,method:"column_drag_mouse_up"});this.add_dragfix();for(var c=0;c<this.thead.rows[0].cells.length;c++)if(b==this.thead.rows[0].cells[c]){this.selected_column=c;break}}return!1},drag_row:function(a,b){if(!this.is_event_target(a)||2==rcube_event.get_button(a))return!0;this.in_selection_before=a&&a.istouch||this.in_selection(b)?b:!1;if(!this.in_selection_before){var c=rcube_event.get_modifier(a);this.select_row(b,c,!0)}this.draggable&&this.selection.length&&
@@ -52,9 +52,9 @@
!0),this.triggerEvent("expandcollapse",{uid:a.uid,expanded:a.expanded,obj:a.obj})):(e=this.tbody.firstChild,f=d=0);for(;e;){if(1==e.nodeType&&(b=this.rows[e.uid])){if(a&&(!b.depth||b.depth<=d))break;if(b.parent_uid)if((c=this.rows[b.parent_uid])&&c.expanded){if(a&&c==a||f>=c.depth-1)f=c.depth,$(e).css("display",""),b.expanded=!0,this.triggerEvent("expandcollapse",{uid:b.uid,expanded:b.expanded,obj:e})}else if(a&&(!c||c.depth<=d))break}e=e.nextSibling}this.resize();this.triggerEvent("listupdate");
return!1},collapse_all:function(a){var b,c,d;if(a){if(a.expanded=!1,b=a.depth,c=a.obj.nextSibling,this.update_expando(a.id),this.triggerEvent("expandcollapse",{uid:a.uid,expanded:a.expanded,obj:a.obj}),b&&this.multiexpand)return!1}else c=this.tbody.firstChild,b=0;for(;c;){if(1==c.nodeType&&(d=this.rows[c.uid])){if(a&&(!d.depth||d.depth<=b))break;(a||d.depth)&&$(c).css("display","none");d.has_children&&d.expanded&&(d.expanded=!1,this.update_expando(d.id,!1),this.triggerEvent("expandcollapse",{uid:d.uid,
expanded:d.expanded,obj:c}))}c=c.nextSibling}this.resize();this.triggerEvent("listupdate");return!1},expand_all:function(a){var b,c,d;a?(a.expanded=!0,b=a.depth,c=a.obj.nextSibling,this.update_expando(a.id,!0),this.triggerEvent("expandcollapse",{uid:a.uid,expanded:a.expanded,obj:a.obj})):(c=this.tbody.firstChild,b=0);for(;c;){if(1==c.nodeType&&(d=this.rows[c.uid])){if(a&&d.depth<=b)break;$(c).css("display","");d.has_children&&!d.expanded&&(d.expanded=!0,this.update_expando(d.id,!0),this.triggerEvent("expandcollapse",
-{uid:d.uid,expanded:d.expanded,obj:c}))}c=c.nextSibling}this.resize();this.triggerEvent("listupdate");return!1},update_expando:function(a,b){var c=document.getElementById("rcmexpando"+a);c&&(c.className=b?"expanded":"collapsed")},get_row_uid:function(a){if(a&&a.uid)return a.uid;var b;a&&(b=$(a).data("uid"))?a.uid=b:a&&String(a.id).match(this.id_regexp)&&(a.uid=RegExp.$1);return a.uid},get_next_row:function(){if(!this.rowcount)return!1;for(var a=this.rows[this.last_selected],a=a?a.obj.nextSibling:
-null;a&&(1!=a.nodeType||"none"==a.style.display);)a=a.nextSibling;return a},get_prev_row:function(){if(!this.rowcount)return!1;for(var a=this.rows[this.last_selected],a=a?a.obj.previousSibling:null;a&&(1!=a.nodeType||"none"==a.style.display);)a=a.previousSibling;return a},get_first_row:function(){if(this.rowcount){var a,b,c=this.tbody.childNodes;for(a=0;a<c.length;a++)if(c[a].id&&(b=this.get_row_uid(c[a])))return b}return null},get_last_row:function(){if(this.rowcount){var a,b,c=this.tbody.childNodes;
-for(a=c.length-1;0<=a;a--)if(c[a].id&&(b=this.get_row_uid(c[a])))return b}return null},row_tagname:function(){var a={table:"tr",ul:"li","*":"div"};return a[this.tagname]||a["*"]},col_tagname:function(){var a={table:"td","*":"span"};return a[this.tagname]||a["*"]},get_cell:function(a,b){return $(this.col_tagname(),a).eq(b)},select_row:function(a,b,c){var d=this.selection.join(","),e=this.in_selection(a);!this.multiselect&&c&&(b=0);this.shift_start||(this.shift_start=a);if(b){switch(b){case SHIFT_KEY:this.shift_select(a,
+{uid:d.uid,expanded:d.expanded,obj:c}))}c=c.nextSibling}this.resize();this.triggerEvent("listupdate");return!1},update_expando:function(a,b){var c=document.getElementById("rcmexpando"+a);c&&(c.className=b?"expanded":"collapsed")},get_row_uid:function(a){if(a){if(!a.uid){var b=$(a).data("uid");b?a.uid=b:String(a.id).match(this.id_regexp)&&(a.uid=RegExp.$1)}return a.uid}},get_next_row:function(){if(!this.rowcount)return!1;for(var a=this.rows[this.last_selected],a=a?a.obj.nextSibling:null;a&&(1!=a.nodeType||
+"none"==a.style.display);)a=a.nextSibling;return a},get_prev_row:function(){if(!this.rowcount)return!1;for(var a=this.rows[this.last_selected],a=a?a.obj.previousSibling:null;a&&(1!=a.nodeType||"none"==a.style.display);)a=a.previousSibling;return a},get_first_row:function(){if(this.rowcount){var a,b,c=this.tbody.childNodes;for(a=0;a<c.length;a++)if(c[a].id&&(b=this.get_row_uid(c[a])))return b}return null},get_last_row:function(){if(this.rowcount){var a,b,c=this.tbody.childNodes;for(a=c.length-1;0<=
+a;a--)if(c[a].id&&(b=this.get_row_uid(c[a])))return b}return null},row_tagname:function(){var a={table:"tr",ul:"li","*":"div"};return a[this.tagname]||a["*"]},col_tagname:function(){var a={table:"td","*":"span"};return a[this.tagname]||a["*"]},get_cell:function(a,b){return $(this.col_tagname(),a).eq(b)},select_row:function(a,b,c){var d=this.selection.join(","),e=this.in_selection(a);!this.multiselect&&c&&(b=0);this.shift_start||(this.shift_start=a);if(b){switch(b){case SHIFT_KEY:this.shift_select(a,
!1);break;case CONTROL_KEY:c&&(this.shift_start=a,this.highlight_row(a,!0));break;case CONTROL_SHIFT_KEY:this.shift_select(a,!0);break;default:this.highlight_row(a,!1)}this.multi_selecting=!0}else this.shift_start=a,this.highlight_row(a,!1),this.multi_selecting=!1;this.last_selected&&this.rows[this.last_selected]&&$(this.rows[this.last_selected].obj).removeClass("focused").find(this.col_tagname()).eq(this.subject_col).removeAttr("tabindex");this.toggleselect&&e&&!b?this.clear_selection():this.selection.join(",")!=
d&&this.triggerEvent("select");this.rows[a]&&($(this.rows[a].obj).addClass("focused"),this.focused&&this.focus_noscroll($(this.rows[a].obj).find(this.col_tagname()).eq(this.subject_col).attr("tabindex","0")));this.selection.length||(this.shift_start=null);this.last_selected=a},select:function(a){this.select_row(a,!1);this.scrollto(a)},select_next:function(){var a=this.get_next_row(),b=this.get_prev_row();(a=a?a:b)&&this.select_row(a.uid,!1,!1)},select_first:function(a){var b=this.get_first_row();
b&&(this.select_row(b,a,!1),this.scrollto(b))},select_last:function(a){var b=this.get_last_row();b&&(this.select_row(b,a,!1),this.scrollto(b))},select_children:function(a){var b=this.row_children(a),c=b.length;for(a=0;a<c;a++)this.in_selection(b[a])||this.select_row(b[a],CONTROL_KEY,!0)},shift_select:function(a,b){this.rows[this.shift_start]&&this.selection.length||(this.shift_start=a);var c,d,e;d=this.rows[a];e=this._rowIndex(this.rows[this.shift_start].obj);var f=this._rowIndex(d.obj);e<f&&!d.expanded&&
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/roundcubemail-1.1.3/program/lib/Roundcube/bootstrap.php new/roundcubemail-1.1.4/program/lib/Roundcube/bootstrap.php
--- old/roundcubemail-1.1.3/program/lib/Roundcube/bootstrap.php 2015-09-13 21:10:03.000000000 +0200
+++ new/roundcubemail-1.1.4/program/lib/Roundcube/bootstrap.php 2015-12-23 10:18:12.000000000 +0100
@@ -54,7 +54,7 @@
}
// framework constants
-define('RCUBE_VERSION', '1.1.3');
+define('RCUBE_VERSION', '1.1.4');
define('RCUBE_CHARSET', 'UTF-8');
if (!defined('RCUBE_LIB_DIR')) {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/roundcubemail-1.1.3/program/lib/Roundcube/rcube.php new/roundcubemail-1.1.4/program/lib/Roundcube/rcube.php
--- old/roundcubemail-1.1.3/program/lib/Roundcube/rcube.php 2015-09-13 21:10:03.000000000 +0200
+++ new/roundcubemail-1.1.4/program/lib/Roundcube/rcube.php 2015-12-23 10:18:12.000000000 +0100
@@ -524,8 +524,13 @@
// use database for storing session data
$this->session = new rcube_session($this->get_dbh(), $this->config);
+ $path = $_SERVER['SCRIPT_NAME'];
+ if (strpos($path, '://')) {
+ $path = parse_url($path, PHP_URL_PATH); // #1490582
+ }
+
$this->session->register_gc_handler(array($this, 'gc'));
- $this->session->set_secret($this->config->get('des_key') . dirname($_SERVER['SCRIPT_NAME']));
+ $this->session->set_secret($this->config->get('des_key') . dirname($path));
$this->session->set_ip_check($this->config->get('ip_check'));
if ($this->config->get('session_auth_name')) {
@@ -1027,15 +1032,14 @@
*/
public function get_request_token()
{
- $sess_id = $_COOKIE[ini_get('session.name')];
- if (!$sess_id) {
- $sess_id = session_id();
- }
+ if (empty($_SESSION['request_token'])) {
+ $plugin = $this->plugins->exec_hook('request_token', array(
+ 'value' => rcube_utils::random_bytes(32)));
- $plugin = $this->plugins->exec_hook('request_token', array(
- 'value' => md5('RT' . $this->get_user_id() . $this->config->get('des_key') . $sess_id)));
+ $_SESSION['request_token'] = $plugin['value'];
+ }
- return $plugin['value'];
+ return $_SESSION['request_token'];
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/roundcubemail-1.1.3/program/lib/Roundcube/rcube_html2text.php new/roundcubemail-1.1.4/program/lib/Roundcube/rcube_html2text.php
--- old/roundcubemail-1.1.3/program/lib/Roundcube/rcube_html2text.php 2015-09-13 21:10:03.000000000 +0200
+++ new/roundcubemail-1.1.4/program/lib/Roundcube/rcube_html2text.php 2015-12-23 10:18:12.000000000 +0100
@@ -136,12 +136,15 @@
* @see $replace
*/
protected $search = array(
- "/\r/", // Non-legal carriage return
- "/[\n\t]+/", // Newlines and tabs
+ '/\r/', // Non-legal carriage return
+ '/^.*<body[^>]*>\n*/i', // Anything before <body>
'/<head[^>]*>.*?<\/head>/i', // <head>
- '/<script[^>]*>.*?<\/script>/i', // <script>s -- which strip_tags supposedly has problems with
- '/<style[^>]*>.*?<\/style>/i', // <style>s -- which strip_tags supposedly has problems with
- '/<p[^>]*>/i', // <P>
+ '/<script[^>]*>.*?<\/script>/i', // <script>
+ '/<style[^>]*>.*?<\/style>/i', // <style>
+ '/[\n\t]+/', // Newlines and tabs
+ '/<p[^>]*>/i', // <p>
+ '/<\/p>[\s\n\t]*<div[^>]*>/i', // </p> before <div>
+ '/<br[^>]*>[\s\n\t]*<div[^>]*>/i', // <br> before <div>
'/<br[^>]*>\s*/i', // <br>
'/<i[^>]*>(.*?)<\/i>/i', // <i>
'/<em[^>]*>(.*?)<\/em>/i', // <em>
@@ -164,11 +167,14 @@
*/
protected $replace = array(
'', // Non-legal carriage return
- ' ', // Newlines and tabs
+ '', // Anything before <body>
'', // <head>
- '', // <script>s -- which strip_tags supposedly has problems with
- '', // <style>s -- which strip_tags supposedly has problems with
- "\n\n", // <P>
+ '', // <script>
+ '', // <style>
+ ' ', // Newlines and tabs
+ "\n\n", // <p>
+ "\n<div>", // </p> before <div>
+ '<div>', // <br> before <div>
"\n", // <br>
'_\\1_', // <i>
'_\\1_', // <em>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/roundcubemail-1.1.3/program/lib/Roundcube/rcube_imap.php new/roundcubemail-1.1.4/program/lib/Roundcube/rcube_imap.php
--- old/roundcubemail-1.1.3/program/lib/Roundcube/rcube_imap.php 2015-09-13 21:10:03.000000000 +0200
+++ new/roundcubemail-1.1.4/program/lib/Roundcube/rcube_imap.php 2015-12-23 10:18:12.000000000 +0100
@@ -57,7 +57,6 @@
protected $icache = array();
protected $plugins;
- protected $list_page = 1;
protected $delimiter;
protected $namespace;
protected $sort_field = '';
@@ -2814,7 +2813,7 @@
}
// INBOX should always be available
- if ((!$filter || $filter == 'mail') && !in_array('INBOX', $a_mboxes)) {
+ if (!strlen($root) && (!$filter || $filter == 'mail') && !in_array('INBOX', $a_mboxes)) {
array_unshift($a_mboxes, 'INBOX');
}
@@ -2942,7 +2941,7 @@
}
// INBOX should always be available
- if ((!$filter || $filter == 'mail') && !in_array('INBOX', $a_mboxes)) {
+ if (!strlen($root) && (!$filter || $filter == 'mail') && !in_array('INBOX', $a_mboxes)) {
array_unshift($a_mboxes, 'INBOX');
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/roundcubemail-1.1.3/program/lib/Roundcube/rcube_message.php new/roundcubemail-1.1.4/program/lib/Roundcube/rcube_message.php
--- old/roundcubemail-1.1.3/program/lib/Roundcube/rcube_message.php 2015-09-13 21:10:03.000000000 +0200
+++ new/roundcubemail-1.1.4/program/lib/Roundcube/rcube_message.php 2015-12-23 10:18:12.000000000 +0100
@@ -677,24 +677,16 @@
$mail_part = &$structure->parts[$i];
$primary_type = $mail_part->ctype_primary;
$secondary_type = $mail_part->ctype_secondary;
+ $part_mimetype = $mail_part->mimetype;
- // real content-type of message/rfc822
- if ($mail_part->real_mimetype) {
- $part_orig_mimetype = $mail_part->mimetype;
- $part_mimetype = $mail_part->real_mimetype;
- list($primary_type, $secondary_type) = explode('/', $part_mimetype);
- }
- else {
- $part_mimetype = $part_orig_mimetype = $mail_part->mimetype;
- }
-
- // multipart/alternative
- if ($primary_type == 'multipart') {
+ // multipart/alternative or message/rfc822
+ if ($primary_type == 'multipart' || $part_mimetype == 'message/rfc822') {
$this->parse_structure($mail_part, true);
// list message/rfc822 as attachment as well (mostly .eml)
- if ($part_orig_mimetype == 'message/rfc822' && !empty($mail_part->filename))
+ if ($primary_type == 'message' && !empty($mail_part->filename)) {
$this->attachments[] = $mail_part;
+ }
}
// part text/[plain|html] or delivery status
else if ((($part_mimetype == 'text/plain' || $part_mimetype == 'text/html') && $mail_part->disposition != 'attachment') ||
@@ -705,8 +697,9 @@
array('object' => $this, 'structure' => $mail_part,
'mimetype' => $part_mimetype, 'recursive' => true));
- if ($plugin['abort'])
+ if ($plugin['abort']) {
continue;
+ }
if ($part_mimetype == 'text/html' && $mail_part->size) {
$this->got_html_part = true;
@@ -729,14 +722,6 @@
$this->attachments[] = $mail_part;
}
}
- // part message/*
- else if ($primary_type == 'message') {
- $this->parse_structure($mail_part, true);
-
- // list as attachment as well (mostly .eml)
- if (!empty($mail_part->filename))
- $this->attachments[] = $mail_part;
- }
// ignore "virtual" protocol parts
else if ($primary_type == 'protocol') {
continue;
@@ -760,7 +745,8 @@
// part belongs to a related message and is linked
if (preg_match('/^multipart\/(related|relative)/', $mimetype)
- && ($mail_part->headers['content-id'] || $mail_part->headers['content-location'])) {
+ && ($mail_part->headers['content-id'] || $mail_part->headers['content-location'])
+ ) {
if ($mail_part->headers['content-id'])
$mail_part->content_id = preg_replace(array('/^</', '/>$/'), '', $mail_part->headers['content-id']);
if ($mail_part->headers['content-location'])
@@ -768,14 +754,6 @@
$this->inline_parts[] = $mail_part;
}
- // attachment encapsulated within message/rfc822 part needs further decoding (#1486743)
- else if ($part_orig_mimetype == 'message/rfc822') {
- $this->parse_structure($mail_part, true);
-
- // list as attachment as well (mostly .eml)
- if (!empty($mail_part->filename))
- $this->attachments[] = $mail_part;
- }
// regular attachment with valid content type
// (content-type name regexp according to RFC4288.4.2)
else if (preg_match('/^[a-z0-9!#$&.+^_-]+\/[a-z0-9!#$&.+^_-]+$/i', $part_mimetype)) {
@@ -791,10 +769,6 @@
$this->attachments[] = $mail_part;
}
}
- // attachment part as message/rfc822 (#1488026)
- else if ($mail_part->mimetype == 'message/rfc822') {
- $this->parse_structure($mail_part);
- }
// calendar part not marked as attachment (#1490325)
else if ($part_mimetype == 'text/calendar') {
if (!$mail_part->filename) {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/roundcubemail-1.1.3/program/lib/Roundcube/rcube_storage.php new/roundcubemail-1.1.4/program/lib/Roundcube/rcube_storage.php
--- old/roundcubemail-1.1.3/program/lib/Roundcube/rcube_storage.php 2015-09-13 21:10:03.000000000 +0200
+++ new/roundcubemail-1.1.4/program/lib/Roundcube/rcube_storage.php 2015-12-23 10:18:12.000000000 +0100
@@ -47,6 +47,7 @@
protected $search_set;
protected $options = array('auth_type' => 'check');
protected $page_size = 10;
+ protected $list_page = 1;
protected $threading = false;
/**
@@ -219,7 +220,9 @@
*/
public function set_page($page)
{
- $this->list_page = (int) $page;
+ if ($page = intval($page)) {
+ $this->list_page = $page;
+ }
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/roundcubemail-1.1.3/program/lib/Roundcube/rcube_utils.php new/roundcubemail-1.1.4/program/lib/Roundcube/rcube_utils.php
--- old/roundcubemail-1.1.3/program/lib/Roundcube/rcube_utils.php 2015-09-13 21:10:03.000000000 +0200
+++ new/roundcubemail-1.1.4/program/lib/Roundcube/rcube_utils.php 2015-12-23 10:18:12.000000000 +0100
@@ -993,12 +993,18 @@
*/
public static function words_match($haystack, $needle)
{
- $a_needle = self::tokenize_string($needle, 1);
- $haystack = join(" ", self::tokenize_string($haystack, 1));
+ $a_needle = self::tokenize_string($needle, 1);
+ $_haystack = join(" ", self::tokenize_string($haystack, 1));
+ $valid = strlen($_haystack) > 0;
+ $hits = 0;
- $hits = 0;
foreach ($a_needle as $w) {
- if (stripos($haystack, $w) !== false) {
+ if ($valid) {
+ if (stripos($_haystack, $w) !== false) {
+ $hits++;
+ }
+ }
+ else if (stripos($haystack, $w) !== false) {
$hits++;
}
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/roundcubemail-1.1.3/program/lib/Roundcube/rcube_washtml.php new/roundcubemail-1.1.4/program/lib/Roundcube/rcube_washtml.php
--- old/roundcubemail-1.1.3/program/lib/Roundcube/rcube_washtml.php 2015-09-13 21:10:03.000000000 +0200
+++ new/roundcubemail-1.1.4/program/lib/Roundcube/rcube_washtml.php 2015-12-23 10:18:12.000000000 +0100
@@ -313,7 +313,7 @@
$dump = '';
do {
- switch($node->nodeType) {
+ switch ($node->nodeType) {
case XML_ELEMENT_NODE: //Check element
$tagName = strtolower($node->tagName);
if ($callback = $this->handlers[$tagName]) {
@@ -345,14 +345,9 @@
case XML_HTML_DOCUMENT_NODE:
$dump .= $this->dumpHtml($node, $level);
break;
-
- case XML_DOCUMENT_TYPE_NODE:
- break;
-
- default:
- $dump .= '<!-- node type ' . $node->nodeType . ' -->';
}
- } while($node = $node->nextSibling);
+ }
+ while($node = $node->nextSibling);
return $dump;
}
Files old/roundcubemail-1.1.3/program/resources/dummy.pdf and new/roundcubemail-1.1.4/program/resources/dummy.pdf differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/roundcubemail-1.1.3/program/steps/addressbook/photo.inc new/roundcubemail-1.1.4/program/steps/addressbook/photo.inc
--- old/roundcubemail-1.1.3/program/steps/addressbook/photo.inc 2015-09-13 21:10:04.000000000 +0200
+++ new/roundcubemail-1.1.4/program/steps/addressbook/photo.inc 2015-12-23 10:18:12.000000000 +0100
@@ -89,6 +89,9 @@
header('Content-Type: ' . rcube_mime::image_content_type($data));
echo $data;
}
+else if (!empty($_GET['_error'])) {
+ header('HTTP/1.0 404 Photo not found');
+}
else {
header('Content-Type: image/gif');
echo base64_decode(rcmail_output::BLANK_GIF);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/roundcubemail-1.1.3/program/steps/mail/compose.inc new/roundcubemail-1.1.4/program/steps/mail/compose.inc
--- old/roundcubemail-1.1.3/program/steps/mail/compose.inc 2015-09-13 21:10:04.000000000 +0200
+++ new/roundcubemail-1.1.4/program/steps/mail/compose.inc 2015-12-23 10:18:12.000000000 +0100
@@ -749,11 +749,9 @@
if (!empty($MESSAGE->parts)) {
// collect IDs of message/rfc822 parts
- if ($compose_mode == RCUBE_COMPOSE_EDIT || $compose_mode == RCUBE_COMPOSE_DRAFT) {
- foreach ($MESSAGE->attachments as $part) {
- if ($part->mimetype == 'message/rfc822') {
- $messages[] = $part->mime_id;
- }
+ foreach ($MESSAGE->mime_parts as $part) {
+ if ($part->mimetype == 'message/rfc822') {
+ $messages[] = $part->mime_id;
}
}
@@ -763,7 +761,7 @@
continue;
}
- // skip all content parts inside the message/rfc822 part in DRAFT/EDIT mode
+ // skip all content parts inside the message/rfc822 part
foreach ($messages as $mimeid) {
if (strpos($part->mime_id, $mimeid . '.') === 0) {
continue 2;
@@ -1180,6 +1178,10 @@
$messages = array();
foreach ((array)$message->mime_parts as $pid => $part) {
+ if ($part->mimetype == 'message/rfc822') {
+ $messages[] = $part->mime_id;
+ }
+
if ($part->disposition == 'attachment' || ($part->disposition == 'inline' && $bodyIsHtml) || $part->filename) {
// skip parts that aren't valid attachments
if ($part->ctype_primary == 'multipart' || $part->mimetype == 'application/ms-tnef') {
@@ -1196,23 +1198,10 @@
continue;
}
- // skip message/rfc822 attachments on forwards (#1489214)
- // Thunderbird when forwarding in inline mode displays such attachments
- // and skips any attachments from inside of such part, this however
- // skipped e.g. images used in HTML body or other attachments. So,
- // better to skip .eml attachments but not their content (included files).
- if ($part->mimetype == 'message/rfc822') {
- if ($compose_mode == RCUBE_COMPOSE_FORWARD) {
- continue;
- }
- $messages[] = $part->mime_id;
- }
- else if ($compose_mode != RCUBE_COMPOSE_FORWARD) {
- // skip attachments included in message/rfc822 attachment (#1486487)
- foreach ($messages as $mimeid) {
- if (strpos($part->mime_id, $mimeid . '.') === 0) {
- continue 2;
- }
+ // skip attachments included in message/rfc822 attachment (#1486487, #1490607)
+ foreach ($messages as $mimeid) {
+ if (strpos($part->mime_id, $mimeid . '.') === 0) {
+ continue 2;
}
}
@@ -1244,9 +1233,22 @@
{
global $RCMAIL, $COMPOSE;
- $cid_map = array();
+ $cid_map = array();
+ $messages = array();
+
foreach ((array)$message->mime_parts as $pid => $part) {
+ if ($part->mimetype == 'message/rfc822') {
+ $messages[] = $part->mime_id;
+ }
+
if (($part->content_id || $part->content_location) && $part->filename) {
+ // skip attachments included in message/rfc822 attachment (#1486487, #1490607)
+ foreach ($messages as $mimeid) {
+ if (strpos($part->mime_id, $mimeid . '.') === 0) {
+ continue 2;
+ }
+ }
+
if ($attachment = rcmail_save_attachment($message, $pid)) {
$COMPOSE['attachments'][$attachment['id']] = $attachment;
$url = sprintf('%s&_id=%s&_action=display-attachment&_file=rcmfile%s',
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/roundcubemail-1.1.3/program/steps/mail/func.inc new/roundcubemail-1.1.4/program/steps/mail/func.inc
--- old/roundcubemail-1.1.3/program/steps/mail/func.inc 2015-09-13 21:10:04.000000000 +0200
+++ new/roundcubemail-1.1.4/program/steps/mail/func.inc 2015-12-23 10:18:12.000000000 +0100
@@ -948,6 +948,13 @@
break;
case 'style':
+ // Crazy big styles may freeze the browser (#1490539)
+ // remove content with more than 5k lines
+ if (substr_count($content, "\n") > 5000) {
+ $out = '';
+ break;
+ }
+
// decode all escaped entities and reduce to ascii strings
$stripped = preg_replace('/[^a-zA-Z\(:;]/', '', rcube_utils::xss_entity_decode($content));
@@ -1211,15 +1218,6 @@
// fetch part body
$body = $MESSAGE->get_part_body($part->mime_id, true);
- // extract headers from message/rfc822 parts
- if ($part->mimetype == 'message/rfc822') {
- $msgpart = rcube_mime::parse_message($body);
- if (!empty($msgpart->headers)) {
- $part = $msgpart;
- $out .= html::div('message-partheaders', rcmail_message_headers(sizeof($header_attrib) ? $header_attrib : null, $part->headers));
- }
- }
-
// message is cached but not exists (#1485443), or other error
if ($body === false) {
rcmail_message_error($MESSAGE->uid);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/roundcubemail-1.1.3/skins/larry/styles.css new/roundcubemail-1.1.4/skins/larry/styles.css
--- old/roundcubemail-1.1.3/skins/larry/styles.css 2015-09-13 21:10:04.000000000 +0200
+++ new/roundcubemail-1.1.4/skins/larry/styles.css 2015-12-23 10:18:12.000000000 +0100
@@ -1,7 +1,7 @@
/**
* Roundcube webmail styles for skin "Larry"
*
- * Copyright (c) 2012, The Roundcube Dev Team
+ * Copyright (c) 2012-2015, The Roundcube Dev Team
* Screendesign by FLINT / Büro für Gestaltung, bueroflint.com
*
* The contents are subject to the Creative Commons Attribution-ShareAlike
@@ -23,6 +23,11 @@
overflow: hidden;
}
+.iphone body.noscroll {
+ /* revert on iPhone (#1490551) */
+ overflow: auto;
+}
+
a {
color: #0069a6;
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/roundcubemail-1.1.3/skins/larry/styles.min.css new/roundcubemail-1.1.4/skins/larry/styles.min.css
--- old/roundcubemail-1.1.3/skins/larry/styles.min.css 2015-09-13 21:10:04.000000000 +0200
+++ new/roundcubemail-1.1.4/skins/larry/styles.min.css 2015-12-23 10:18:12.000000000 +0100
@@ -1 +1 @@
-body{font-family:"Lucida Grande",Verdana,Arial,Helvetica,sans-serif;font-size:11px;color:#333;background:url(images/linen.jpg?v=0382.14157) repeat #d1d5d8;margin:0}body.noscroll{overflow:hidden}a{color:#0069a6}a:visited{color:#0186ba}img{border:0}.voice{position:absolute;border:0;clip:rect(0 0 0 0);width:1px;height:1px;margin:-1px;padding:0;overflow:hidden}html.mozilla select{padding:2px 1px}input,textarea,select,button{font-family:inherit;font-size:inherit;vertical-align:middle}input[type="text"],input[type="password"],textarea{margin:0;padding:4px;border:1px solid #b2b2b2;border-radius:4px;box-shadow:inset 0 0 2px 1px rgba(0,0,0,0.1);-webkit-box-shadow:inset 0 0 2px 1px rgba(0,0,0,0.1)}input[type="text"]:focus,input[type="password"]:focus,input.button:focus,textarea:focus{border-color:#4787b1;box-shadow:0 0 5px 2px rgba(71,135,177,0.9);-webkit-box-shadow:0 0 5px 2px rgba(71,135,177,0.9);outline:0}input[type="text"]:required,input[type="password"]:required{border-color:#4787b1}input.placeholder,textarea.placeholder{color:#aaa}.bold{font-weight:bold}label input+span{vertical-align:middle}input.button{display:inline-block;margin:0 2px;padding:2px 5px;color:#525252;text-shadow:0 1px 1px #fff;border:1px solid silver;border-radius:4px;background:#f7f7f7;background:-moz-linear-gradient(top,#f9f9f9 0,#e6e6e6 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0,#f9f9f9),color-stop(100%,#e6e6e6));background:-o-linear-gradient(top,#f9f9f9 0,#e6e6e6 100%);background:-ms-linear-gradient(top,#f9f9f9 0,#e6e6e6 100%);background:linear-gradient(to bottom,#f9f9f9 0,#e6e6e6 100%);box-shadow:0 1px 1px 0 rgba(140,140,140,0.3);-webkit-box-shadow:0 1px 1px 0 rgba(140,140,140,0.3);text-decoration:none;outline:0}.formbuttons input.button{color:#ddd;font-size:110%;text-shadow:0 1px 1px #333;padding:4px 12px;border-color:#465864;border-radius:5px;background:#7a7b7d;background:-moz-linear-gradient(top,#7b7b7b 0,#606060 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0,#7b7b7b),color-stop(100%,#606060));background:-o-linear-gradient(top,#7b7b7b 0,#606060 100%);background:-ms-linear-gradient(top,#7b7b7b 0,#606060 100%);background:linear-gradient(to bottom,#7b7b7b 0,#606060 100%);box-shadow:0 1px 1px 0 #ccc,inset 0 1px 0 0 #888;-webkit-box-shadow:0 1px 1px 0 #ccc,inset 0 1px 0 0 #888}.formbuttons input.button:hover,.formbuttons input.button:focus,input.button.mainaction:hover,input.button.mainaction:focus{color:#f2f2f2;border-color:#465864;box-shadow:0 0 5px 2px rgba(71,135,177,0.6),inset 0 1px 0 0 #888;-webkit-box-shadow:0 0 5px 2px rgba(71,135,177,0.6),inset 0 1px 0 0 #888}.formbuttons input.button:active{color:#fff;background:-moz-linear-gradient(top,#5c5c5c 0,#7b7b7b 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0,#5c5c5c),color-stop(100%,#7b7b7b));background:-o-linear-gradient(top,#5c5c5c 0,#7b7b7b 100%);background:-ms-linear-gradient(top,#5c5c5c 0,#7b7b7b 100%);background:linear-gradient(to bottom,#5c5c5c 0,#7b7b7b 100%)}input.button.mainaction{color:#ededed;text-shadow:0 1px 1px #333;border-color:#1f262c;background:#505050;background:-moz-linear-gradient(top,#505050 0,#2a2e31 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0,#505050),color-stop(100%,#2a2e31));background:-o-linear-gradient(top,#505050 0,#2a2e31 100%);background:-ms-linear-gradient(top,#505050 0,#2a2e31 100%);background:linear-gradient(to bottom,#505050 0,#2a2e31 100%);box-shadow:inset 0 1px 0 0 #777;-webkit-box-shadow:inset 0 1px 0 0 #777}input.button.mainaction:active{color:#fff;background:#515151;background:-moz-linear-gradient(top,#2a2e31 0,#505050 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0,#2a2e31),color-stop(100%,#505050));background:-o-linear-gradient(top,#2a2e31 0,#505050 100%);background:-ms-linear-gradient(top,#2a2e31 0,#505050 100%);background:linear-gradient(to bottom,#2a2e31 0,#505050 100%)}input.button[disabled],input.button[disabled]:hover,input.button.mainaction[disabled]{color:#aaa !important}input.mainaction{font-weight:bold}a.button,.buttongroup{display:inline-block;margin:0 2px;padding:2px 5px;color:#525252;text-shadow:0 1px 1px #fff;border:1px solid #c6c6c6;border-radius:4px;background:#f7f7f7;background:-moz-linear-gradient(top,#f9f9f9 0,#e6e6e6 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0,#f9f9f9),color-stop(100%,#e6e6e6));background:-o-linear-gradient(top,#f9f9f9 0,#e6e6e6 100%);background:-ms-linear-gradient(top,#f9f9f9 0,#e6e6e6 100%);background:linear-gradient(to bottom,#f9f9f9 0,#e6e6e6 100%);box-shadow:0 1px 1px 0 rgba(140,140,140,0.3);-webkit-box-shadow:0 1px 1px 0 rgba(140,140,140,0.3);text-decoration:none}.buttongroup{padding:0;white-space:nowrap}a.button:focus,input.button:focus{border-color:#4fadd5;box-shadow:0 0 2px 1px rgba(71,135,177,0.6);-webkit-box-shadow:0 0 2px 1px rgba(71,135,177,0.6);outline:0}label.disabled,a.button.disabled{color:#999}a.button.disabled,input.button.disabled,input.button[disabled],a.button.disabled:hover,input.button.disabled:hover,input.button[disabled]:hover{border-color:#c6c6c6;box-shadow:0 1px 1px 0 rgba(160,160,160,0.4);-webkit-box-shadow:0 1px 1px 0 rgba(160,160,160,0.4)}a.button.disabled span.inner{opacity:.4}.buttongroup a.button{margin:0;border-width:0 1px 0 0;border-radius:0;background:0;box-shadow:none;-webkit-box-shadow:none}.buttongroup a.button.first,.buttongroup a.button:first-child{border-radius:4px 0 0 4px;border-left:0}.buttongroup a.button.last,.buttongroup a.button:last-child{border-radius:0 4px 4px 0;border-right:0}a.button.pressed,a.button:active,input.button:active{background:#e6e6e6;background:-moz-linear-gradient(top,#e6e6e6 0,#f9f9f9 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0,#e6e6e6),color-stop(100%,#f9f9f9));background:-o-linear-gradient(top,#e6e6e6 0,#f9f9f9 100%);background:-ms-linear-gradient(top,#e6e6e6 0,#f9f9f9 100%);background:linear-gradient(to bottom,#e6e6e6 0,#f9f9f9 100%)}.pagenav.dark a.button{font-weight:bold;border-color:#e6e6e6;background:#d8d8d8;background:-moz-linear-gradient(top,#d8d8d8 0,#bababa 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0,#d8d8d8),color-stop(100%,#bababa));background:-o-linear-gradient(top,#d8d8d8 0,#bababa 100%);background:-ms-linear-gradient(top,#d8d8d8 0,#bababa 100%);background:linear-gradient(to bottom,#d8d8d8 0,#bababa 100%);box-shadow:0 1px 1px 0 #999;-webkit-box-shadow:0 1px 1px 0 #999}.pagenav.dark a.button.pressed{background:#bababa;background:-moz-linear-gradient(top,#bababa 0,#d8d8d8 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0,#bababa),color-stop(100%,#d8d8d8));background:-o-linear-gradient(top,#bababa 0,#d8d8d8 100%);background:-ms-linear-gradient(top,#bababa 0,#d8d8d8 100%);background:linear-gradient(to bottom,#bababa 0,#d8d8d8 100%)}.buttongroup a.button.selected,.buttongroup a.button.selected:hover{background:#8a8a8a;background:-moz-linear-gradient(top,#909090 0,#858585 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0,#909090),color-stop(100%,#858585));background:-o-linear-gradient(top,#909090 0,#858585 100%);background:-ms-linear-gradient(top,#909090 0,#858585 100%);background:linear-gradient(to bottom,#909090 0,#858585 100%);box-shadow:inset 0 1px 2px 0 #555;-webkit-box-shadow:inset 0 1px 2px 0 #555;border-right-color:#555;border-left-color:#555}.buttongroup a.button:focus,.buttongroup a.button.selected:focus{background:#f2f2f2;background:-moz-linear-gradient(top,#49b3d2 0,#66bcd9 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0,#49b3d2),color-stop(100%,#66bcd9));background:-o-linear-gradient(top,#49b3d2 0,#66bcd9 100%);background:-ms-linear-gradient(top,#49b3d2 0,#66bcd9 100%);background:linear-gradient(to bottom,#49b3d2 0,#66bcd9 100%)}.pagenav a.button{padding:1px 3px;height:16px;vertical-align:middle;margin-bottom:1px}.pagenav .buttongroup a.button,.pagenav .buttongroup a.button:hover{padding:1px 5px;margin-bottom:0}a.button span.icon,.pagenav a.button span.inner{display:inline-block;width:16px;height:13px;text-indent:1000px;overflow:hidden;background:url(images/buttons.png?v=51d4.15699) -6px -211px no-repeat}a.button.prevpage span.icon,.pagenav a.prevpage span.inner{background-position:-7px -226px}a.button.nextpage span.icon,.pagenav a.nextpage span.inner{background-position:-28px -226px}a.button.lastpage span.icon,.pagenav a.lastpage span.inner{background-position:-28px -211px}a.button.pageup span.icon,.pagenav a.pageup span.inner{background-position:-7px -241px}a.button.pagedown span.icon,.pagenav a.pagedown span.inner{background-position:-29px -241px}a.button.reply span.icon,.pagenav a.reply span.inner{background-position:-7px -256px}a.button.forward span.icon,.pagenav a.forward span.inner{background-position:-29px -256px}a.button.replyall span.icon,.pagenav a.replyall span.inner{background-position:-7px -271px}a.button.extwin span.icon,.pagenav a.extwin span.inner{background-position:-29px -271px}a.button.changeformat.html span.icon,.pagenav a.changeformat.html span.inner{background-position:-7px -1859px}a.button.changeformat.html.selected span.icon,.pagenav a.changeformat.html.selected span.inner{background-position:-29px -1859px}a.button.changeformat.text span.icon,.pagenav a.changeformat.text span.inner{background-position:-7px -1874px}a.button.changeformat.text.selected span.icon,.pagenav a.changeformat.text.selected span.inner{background-position:-29px -1874px}a.button.add span.icon{background-position:-7px -2009px}a.button.delete span.icon{background-position:-29px -2009px}.pagenav .countdisplay{display:inline-block;padding:3px 1em 0 1em;text-shadow:0 1px 1px #fff;min-width:16em}.pagenavbuttons{position:relative;top:-2px}a.iconbutton{display:inline-block;width:20px;height:18px;text-decoration:none;text-indent:-5000px;background:url(images/buttons.png?v=51d4.15699) -1000px 0 no-repeat}a.iconbutton.disabled{opacity:.4;cursor:default}a.iconbutton.searchicon,a.iconbutton.searchoptions{width:24px;background-position:-2px -317px}a.iconbutton.searchicon{width:15px}a.iconbutton.reset{width:24px;background-position:-25px -317px}a.iconbutton.remove,a.iconbutton.cancel{background-position:-7px -378px}a.iconbutton.delete{background-position:-7px -338px}a.iconbutton.add{background-position:-7px -358px}a.iconbutton.remove{background-position:-7px -379px}a.iconbutton.cancel{background-position:-7px -398px}a.iconbutton.edit{background-position:-7px -418px}a.iconbutton.upload{background-position:-6px -438px}a.iconlink{display:inline-block;color:#888;text-decoration:none;white-space:nowrap;padding:2px 8px 2px 20px;background:url(images/buttons.png?v=51d4.15699) -1000px 0 no-repeat}a.iconlink:hover{text-decoration:underline}a.iconlink.delete{background-position:-7px -337px}a.iconlink.add{background-position:-7px -357px}a.iconlink.remove{background-position:-7px -378px}a.iconlink.cancel{background-position:-7px -397px}a.iconlink.edit{background-position:-7px -417px}a.iconlink.upload{background-position:-6px -437px}#message div.loading,#message div.uploading,#message div.warning,#message div.error,#message div.notice,#message div.confirmation,#message-objects div.notice{color:#555;font-weight:bold;padding:6px 30px 6px 25px;display:inline-block;white-space:nowrap;background:url(images/messages.png?v=3a4f.1461) 0 5px no-repeat;cursor:default}#message div.warning{color:#960;background-position:0 -86px}#message div.error{color:#cf2734;background-position:0 -55px}#message div.confirmation{color:#093;background-position:0 -25px}#message div.loading{background:url(images/ajaxloader.gif?v=c252.1434) 2px 6px no-repeat}#message div a,#message div span{padding-right:.5em;text-decoration:none}#message div a:hover{text-decoration:underline;cursor:pointer}#message.statusbar{display:none;position:absolute;bottom:0;left:0;right:0;height:27px;padding-left:8px;border-top:1px solid #ddd;border-radius:0 0 4px 4px;background:#eaeaea;background:-moz-linear-gradient(top,#eaeaea 0,#c8c8c8 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0,#eaeaea),color-stop(100%,#c8c8c8));background:-o-linear-gradient(top,#eaeaea 0,#c8c8c8 100%);background:-ms-linear-gradient(top,#eaeaea 0,#c8c8c8 100%);background:linear-gradient(to bottom,#eaeaea 0,#c8c8c8 100%);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}#messagestack{position:absolute;bottom:20px;right:12px;z-index:50000;width:auto;height:auto;max-height:85%;overflow-y:auto;padding:2px}#messagestack div{display:block;position:relative;width:280px;height:auto;min-height:16px;margin:3px 2px 5px 2px;padding:8px 10px 7px 30px;cursor:default;font-size:12px;font-weight:bold;border-radius:4px;border:1px solid #444;color:#ebebeb;text-shadow:0 1px 1px #000;background:rgba(64,64,64,0.85);background:-moz-linear-gradient(top,rgba(64,64,64,0.85) 0,rgba(48,48,48,0.9) 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0,rgba(64,64,64,0.85)),color-stop(100%,rgba(48,48,48,0.9)));background:-webkit-linear-gradient(top,rgba(64,64,64,0.85) 0,rgba(48,48,48,0.85) 100%);background:-o-linear-gradient(top,rgba(64,64,64,0.85) 0,rgba(48,48,48,0.85) 100%);background:-ms-linear-gradient(top,rgba(64,64,64,0.85) 0,rgba(48,48,48,0.85) 100%);background:linear-gradient(to bottom,rgba(64,64,64,0.85) 0,rgba(48,48,48,0.85) 100%);box-shadow:0 1px 4px 0 rgba(50,50,50,0.8),inset 0 1px 0 0 #888;-webkit-box-shadow:0 1px 4px 0 rgba(50,50,50,0.8),inset 0 1px 0 0 #888}#messagestack div:after{content:"";position:absolute;display:block;top:0;left:4px;width:20px;height:24px;background:url(images/messages_dark.png?v=270a.1471) 0 7px no-repeat}#messagestack div.error{color:#ff615d}#messagestack div.error:after{background-position:0 -55px}#messagestack div.warning{color:#f4bf0e}#messagestack div.warning:after{background-position:0 -84px}#messagestack div.confirmation{color:#00e05a}#messagestack div.confirmation:after{background-position:0 -25px}#messagestack div.uploading,#messagestack div.loading{color:#ddd}#messagestack div.uploading:after,#messagestack div.loading:after{top:4px;left:6px;background:url(images/ajaxloader_dark.gif?v=cf1b.1849) 0 4px no-repeat}#messagestack div.voice{position:absolute;top:-1000px}#messagestack div a{color:#94c0da}#messagestack div a:hover{text-decoration:underline;cursor:pointer}.ui-dialog.error .ui-dialog-title,.ui-dialog.warning .ui-dialog-title,.ui-dialog.confirmation .ui-dialog-title{padding-left:25px;background:url(images/messages.png?v=3a4f.1461) 0 5px no-repeat;text-shadow:0 1px 1px #fff}.ui-dialog.warning .ui-dialog-title{color:#960;background-position:0 -90px}.ui-dialog.error .ui-dialog-title{color:#cf2734;background-position:0 -60px}.ui-dialog.confirmation .ui-dialog-title{color:#093;background-position:0 -30px}.ui-dialog.popupmessage .ui-dialog-titlebar{padding:8px 1em 4px 1em;background:#e3e3e3;background:-moz-linear-gradient(top,#e3e3e3 0,#cfcfcf 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0,#e3e3e3),color-stop(100%,#cfcfcf));background:-o-linear-gradient(top,#e3e3e3 0,#cfcfcf 100%);background:-ms-linear-gradient(top,#e3e3e3 0,#cfcfcf 100%);background:linear-gradient(to bottom,#e3e3e3 0,#cfcfcf 100%)}.ui-dialog.popupmessage .ui-widget-content{font-size:12px;background:#eee;background:-moz-linear-gradient(top,#eee 0,#dcdcdc 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0,#eee),color-stop(100%,#dcdcdc));background:-o-linear-gradient(top,#eee 0,#dcdcdc 100%);background:-ms-linear-gradient(top,#eee 0,#dcdcdc 100%);background:linear-gradient(to bottom,#eee 0,#dcdcdc 100%)}#header{overflow-x:hidden}#topline{height:18px;background:url(images/linen_header.jpg?v=514a.580) repeat #666;border-bottom:1px solid #4f4f4f;padding:2px 0 2px 10px;color:#aaa;text-align:center}#topnav{position:relative;height:46px;margin-bottom:10px;padding:0 0 0 10px;background:#111;background:-moz-linear-gradient(top,#404040 0,#060606 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0,#404040),color-stop(100%,#060606));background:-o-linear-gradient(top,#404040 0,#060606 100%);background:-ms-linear-gradient(top,#404040 0,#060606 100%);background:linear-gradient(to bottom,#404040 0,#060606 100%)}#topline a,#topnav a{color:#eee;text-decoration:none}#topline a:hover{text-decoration:underline}#toplogo{padding-top:2px;cursor:pointer;border:0}.topleft{float:left}.topright{float:right}.closelink{display:inline-block;padding:2px 10px 2px 20px}#topline span.username{padding-right:1em}#topline .topleft a{display:inline-block;padding:2px .8em 0 0;color:#aaa}#topline a.button-logout{display:inline-block;padding:2px 10px 2px 20px;background:url(images/buttons.png?v=51d4.15699) -6px -193px no-repeat;color:#fff}#taskbar .button-logout{display:none}#taskbar a.button-logout span.button-inner{background-position:-2px -1791px}#taskbar a.button-logout:hover span.button-inner{background-position:-2px -1829px}.minimal #topline{position:fixed;top:-18px;background:#444;z-index:5000;width:100%;height:22px;-moz-box-sizing:border-box;box-sizing:border-box}.minimal #topline:hover{top:0;opacity:.94;-webkit-transition:top .3s ease-in-out;-moz-transition:top .3s ease-in-out;-o-transition:top .3s ease-in-out;transition:top .3s ease-in-out}.extwin #topline,.extwin #topline:hover{position:static;top:0;height:18px;width:auto;-moz-box-sizing:content-box;box-sizing:content-box;opacity:.999}.minimal #topline a.button-logout{display:none}.minimal #topline span.username{display:inline-block;padding-top:2px}.minimal #topnav{position:relative;top:4px;height:42px}.minimal #taskbar a{position:relative;padding:10px 10px 0 6px;height:32px}.minimal #taskbar .button-logout{display:inline-block}.minimal #taskbar .button-inner{top:-4px;padding:0;height:24px !important;width:27px;text-indent:-5000px}#taskbar .tooltip{display:none}.minimal #taskbar .tooltip{position:absolute;top:-500px;right:2px;display:inline-block;padding:2px 8px 3px 8px;background:#444;background:-moz-linear-gradient(top,#444 0,#333 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0,#444),color-stop(100%,#333));background:-o-linear-gradient(top,#444 0,#333 100%);background:-ms-linear-gradient(top,#444 0,#333 100%);background:linear-gradient(to bottom,#444 0,#333 100%);color:#eee;font-weight:bold;white-space:nowrap;border:1px solid #777;box-shadow:0 1px 5px 0 #333;-webkit-box-shadow:0 1px 5px 0 #333;z-index:200;white-space:nowrap;text-shadow:0 1px 1px #000}.minimal #taskbar .tooltip:after{content:"";position:absolute;top:-4px;right:15px;border-style:solid;border-width:0 4px 4px;border-color:#888 transparent;display:block;width:0;z-index:251}.minimal #taskbar a:hover .tooltip{display:block;top:39px}#taskbar{position:relative;padding-right:18px}#taskbar a{display:inline-block;height:34px;padding:12px 10px 0 6px}#taskbar a span.button-inner{display:inline-block;font-size:110%;font-weight:normal;text-shadow:0 1px 1px black;padding:5px 0 0 34px;height:19px;background:url(images/buttons.png?v=51d4.15699) -1000px 0 no-repeat}#taskbar a:focus{color:#fff;text-shadow:0 1px 1px #666;background-color:rgba(73,180,210,0.7);outline:0}#taskbar a.button-selected{color:#3cf;background-color:#2c2c2c}#taskbar a.button-mail span.button-inner{background-position:0 2px}#taskbar a.button-mail:hover span.button-inner,#taskbar a.button-mail.button-selected span.button-inner{background-position:0 -22px}#taskbar a.button-addressbook span.button-inner{background-position:0 -48px}#taskbar a.button-addressbook:hover span.button-inner,#taskbar a.button-addressbook.button-selected span.button-inner{background-position:0 -72px}#taskbar a.button-settings span.button-inner{background-position:0 -96px}#taskbar a.button-settings:hover span.button-inner,#taskbar a.button-settings.button-selected span.button-inner{background-position:0 -120px}#taskbar a.button-calendar span.button-inner{background-position:0 -144px}#taskbar a.button-calendar:hover span.button-inner,#taskbar a.button-calendar.button-selected span.button-inner{background-position:0 -168px}#taskbar .minmodetoggle{position:absolute;top:0;right:0;display:block;width:19px;height:46px;cursor:pointer;background:url(images/buttons.png?v=51d4.15699) -35px -1778px no-repeat}.minimal #taskbar .minmodetoggle{height:42px;background-position:-35px -1820px}#mainscreen{position:absolute;top:88px;left:10px;right:10px;bottom:20px}#mainscreencontent{position:absolute;top:42px;left:0;right:0;bottom:0}#mainscreen.offset{top:132px}#mainscreen .offset{top:42px}.minimal #mainscreen{top:62px}.minimal #mainscreen.offset{top:102px}.extwin #mainscreen{top:40px}.extwin #mainscreen.offset{top:86px}.uibox{border:1px solid #a3a3a3;border-radius:4px;overflow:hidden;box-shadow:0 0 2px #999;-webkit-box-shadow:0 0 2px #999;background:#fff}.minwidth{min-width:1024px}.scroller{overflow:auto}.watermark{background-image:url(images/watermark.jpg?v=e784.5000);background-position:center;background-repeat:no-repeat}@media screen and (-webkit-min-device-pixel-ratio:0) and (max-device-width:1024px){.iframebox{overflow:auto;-webkit-overflow-scrolling:touch}}.listbox{background:#d9ecf4;overflow:hidden}.listbox .scroller{position:absolute;top:0;left:0;width:100%;bottom:0;overflow-x:hidden;overflow-y:auto}.listbox .scroller.withfooter{bottom:42px}.listbox .boxtitle+.scroller{top:34px}.boxtitle,.uibox .listing thead th,.uibox .listing thead td{font-size:12px;font-weight:bold;padding:7px 8px 6px 8px;line-height:20px;margin:0;text-shadow:0 1px 1px #fff;border-bottom:1px solid #bbd3da;white-space:nowrap}.uibox .listing thead th,.uibox .listing thead td{padding-bottom:8px;height:auto}.uibox .boxtitle,.uibox .listing thead th,.uibox .listing thead td{background:#b0ccd7;color:#004458;border-radius:4px 4px 0 0}.listbox .listitem,.listbox .tablink,.listing tbody td,.listing li{display:block;border-top:1px solid #fff;border-bottom:1px solid #bbd3da;cursor:default;font-weight:normal}.listbox .listitem a,.listbox .listitem span,.listbox .tablink a,.listing tbody td,.listing li a{display:block;color:#376572;text-shadow:0 1px 1px #fff;text-decoration:none;cursor:default;padding:4px 8px;line-height:17px;height:17px;white-space:nowrap}.listing tbody td{display:table-cell;min-height:14px;outline:0}.listing tbody td a{color:#376572;text-shadow:0 1px 1px #fff;text-decoration:none}.webkit .listing tbody td{height:14px}.listing thead tr td:first-child,.listing tbody tr td:first-child{border-left:2px solid transparent;padding-left:6px}.listing.iconized thead tr td:first-child,.listing.iconized tbody tr td:first-child{padding-left:34px}.listing.focus tbody tr.focused>td:first-child{border-left:2px solid #739da8}.listbox .listitem.selected,.listbox .tablink.selected,.listbox .listitem.selected>a,.listbox .tablink.selected>a,.listing tbody tr.selected td,.listing li.selected,.listing li.selected>a{color:#004458;font-weight:bold;background-color:#c7e3ef}ul.listing{display:block;list-style:none;margin:0;padding:0}ul.listing li{background-color:#d9ecf4;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}ul.listing li ul{border-top:1px solid #bbd3da}ul.listing li.droptarget,table.listing tr.droptarget td{background-color:#e8e798}.listbox table.listing{background-color:#d9ecf4}table.listing,table.layout{border:0;width:100%;border-spacing:0}table.layout td{vertical-align:top}ul.treelist li{position:relative}ul.treelist li ul{margin:0;padding:0}ul.treelist li ul li:last-child{border-bottom:0}ul.treelist li a{display:block;padding-left:20px;overflow:hidden;text-overflow:ellipsis}ul.treelist li a:focus,ul.listing .listitem a:focus,ul.listing .listitem span:focus,ul.listing.focus .listitem.focused span{color:#fff !important;background-color:rgba(73,180,210,0.6);text-shadow:0 1px 1px #666;outline:0}ul.treelist ul li a{padding-left:38px}ul.treelist ul ul li a{padding-left:54px}ul.treelist.iconized li a{padding-left:36px}ul.treelist.iconized ul li a{padding-left:62px}ul.treelist.iconized ul ul li a{padding-left:88px}ul.treelist.iconized ul ul ul li a{padding-left:114px}ul.treelist li div.treetoggle{position:absolute;top:7px;left:4px;width:13px;height:13px;background:url(images/listicons.png?v=1877.13442) -3px -144px no-repeat;cursor:pointer}ul.treelist li ul li div.treetoggle{left:22px}ul.treelist.iconized li div.treetoggle{top:13px;left:19px}ul.treelist.iconized ul li div.treetoggle{left:45px}ul.treelist.iconized ul ul li div.treetoggle{left:71px}ul.treelist li div.treetoggle.expanded{background-position:-3px -168px}ul.treelist li.selected>div.collapsed{background-position:-23px -144px}ul.treelist li.selected>div.expanded{background-position:-23px -168px}.listbox .boxfooter{position:absolute;bottom:0;left:0;width:100%;height:42px;border-top:1px solid #ccdde4;background:#d9ecf4;box-shadow:inset 0 1px 0 0 #fff;-webkit-box-shadow:inset 0 1px 0 0 #fff;white-space:nowrap;overflow:hidden}.uibox .boxfooter{border-radius:0 0 4px 4px}.boxfooter .listbutton{display:inline-block;text-decoration:none;width:48px;border-right:1px solid #fff;background:#c7e3ef;padding:3px 0;margin-top:1px}.boxfooter a.listbutton:focus{color:#fff;background-color:rgba(73,180,210,0.6);text-shadow:0 1px 1px #666;outline:0}.uibox .boxfooter .listbutton:first-child{border-radius:0 0 0 4px}.boxfooter .listbutton .inner{display:inline-block;width:48px;height:35px;text-indent:-5000px;background-image:url(images/buttons.png?v=51d4.15699);background-position:-1000px 0;background-repeat:no-repeat}.boxfooter .listbutton.add .inner{background-position:10px -1301px}.boxfooter .listbutton.delete .inner{background-position:10px -1342px}.boxfooter .listbutton.groupactions .inner{background-position:5px -1382px}.boxfooter .listbutton.addto .inner{background-position:5px -1422px}.boxfooter .listbutton.addcc .inner{background-position:5px -1462px}.boxfooter .listbutton.addbcc{width:54px}.boxfooter .listbutton.addbcc .inner{width:54px;background-position:2px -1502px}.boxfooter .listbutton.removegroup .inner{background-position:5px -1540px}.boxfooter .listbutton.disabled .inner{opacity:.4}.boxfooter .countdisplay{display:inline-block;position:relative;top:10px;color:#69929e;padding:3px 6px}.boxpagenav{position:absolute;top:10px;right:6px;width:auto}.boxpagenav a.icon{display:inline-block;padding:1px 3px;height:13px;width:14px;text-indent:1000px;vertical-align:bottom;overflow:hidden;background:url(images/buttons.png?v=51d4.15699) -4px -286px no-repeat}.boxpagenav a.icon.prevpage{background-position:-4px -301px}.boxpagenav a.icon.nextpage{background-position:-28px -301px}.boxpagenav a.icon.lastpage{background-position:-28px -286px}.boxpagenav a.icon.disabled{opacity:.4}.centerbox{width:40em;margin:16px auto}.errorbox{width:40em;padding:20px}.errorbox h3{font-size:16px;margin-top:0}table.records-table{display:table;width:100%;table-layout:fixed;border-spacing:0;border:1px solid #bbd3da}.boxlistcontent .records-table{border:0}.records-table thead th,.records-table thead td{color:#69939e;font-size:11px;font-weight:bold;background:#d6eaf3;background:-moz-linear-gradient(left,#e3f2f6 0,#d6eaf3 14px,#d6eaf3 100%);background:-webkit-gradient(linear,left top,right top,color-stop(0,#e3f2f6),color-stop(8%,#d6eaf3),color-stop(100%,#d6eaf3));background:-o-linear-gradient(left,#e3f2f6 0,#d6eaf3 14px,#d6eaf3 100%);background:-ms-linear-gradient(left,#e3f2f6 0,#d6eaf3 14px,#d6eaf3 100%);background:linear-gradient(left,#e3f2f6 0,#d6eaf3 14px,#d6eaf3 100%);border-left:1px solid #bbd3da;padding:8px 7px;overflow:hidden;text-overflow:ellipsis;text-align:left}.records-table.sortheader thead th,.records-table.sortheader thead td{padding:0}.records-table thead th a,.records-table thead td a,.records-table thead th span,.records-table thead td span{display:block;padding:7px 7px;color:#69939e;text-decoration:none;overflow:hidden;text-overflow:ellipsis}.records-table thead th a:focus,.records-table thead td a:focus{color:#fff;background-color:rgba(73,180,210,0.7);text-shadow:0 1px 1px #666;outline:0}.records-table tbody td{padding:2px 7px;border-bottom:1px solid #ddd;border-left:1px dotted #bbd3da;white-space:nowrap;cursor:default;overflow:hidden;text-overflow:ellipsis;background-color:#fff;outline:0}.records-table thead tr th:first-child,.records-table thead tr td:first-child,.records-table tbody tr td:first-child{border-left:2px solid transparent;padding-left:4px}.records-table.focus tbody tr.focused>td:first-child{border-left:2px solid #49b3d2}.records-table tr.selected td{color:#fff !important;background-color:#4db0d2 !important}.records-table.focus tr.selected td{background:#019bc6;background:-moz-linear-gradient(top,#019bc6 0,#017cb4 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0,#019bc6),color-stop(100%,#017cb4));background:-o-linear-gradient(top,#019bc6 0,#017cb4 100%);background:-ms-linear-gradient(top,#019bc6 0,#017cb4 100%);background:linear-gradient(to bottom,#019bc6 0,#017cb4 100%)}.records-table tr.selected td a,.records-table tr.selected td span{color:#fff !important}.records-table tr.deleted td,.records-table tr.deleted td a{color:#ccc !important}#aboutframe{width:97%;height:100%;border:0;padding:0}body.iframe{background:#fff;margin:38px 0 10px 0}body.iframe.error{background:#ededed}body.iframe.floatingbuttons{margin-bottom:40px}body.iframe.fullheight{margin:0}.contentbox .boxtitle,body.iframe .boxtitle{color:#777;background:#eee;background:-moz-linear-gradient(top,#eee 0,#dfdfdf 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0,#eee),color-stop(100%,#dfdfdf));background:-o-linear-gradient(top,#eee 0,#dfdfdf 100%);background:-ms-linear-gradient(top,#eee 0,#dfdfdf 100%);background:linear-gradient(to bottom,#eee 0,#dfdfdf 100%);border-bottom:1px solid #ccc}body.iframe .boxtitle{position:fixed;top:0;left:0;width:100%;z-index:100}body.iframe .footerleft.floating,#composeview-bottom .formbuttons.floating{position:fixed;left:0;bottom:0;width:100%;z-index:110;background:#fff;padding-top:8px;padding-bottom:12px}body.iframe .footerleft.floating:before,#composeview-bottom .formbuttons.floating:before{content:" ";position:absolute;top:-6px;left:0;width:100%;height:6px;background:url(images/overflowshadow.png?v=71ba.250) top center no-repeat}.boxcontent{padding:10px}.contentbox .scroller{position:absolute;top:34px;left:0;right:0;bottom:0;overflow:auto}.iframebox{position:absolute;top:0;left:0;right:0;bottom:0}.footerleft{padding:0 12px 4px 12px}.propform fieldset{margin-bottom:20px;border:0;padding:0}.propform fieldset legend{display:block;font-size:14px;font-weight:bold;padding-bottom:10px;margin-bottom:0}.propform fieldset fieldset legend{color:#666;font-size:12px}.propform div.prop{margin-bottom:.5em}.propform div.prop.block label{display:block;margin-bottom:.3em}.propform div.prop.block input,.propform div.prop.block textarea{width:95%}.propform a.disabled{color:#999;text-decoration:none;cursor:default}fieldset.floating{float:left;margin-right:10px;margin-bottom:10px}table.propform{width:100%;border-spacing:0;border-collapse:collapse}ul.proplist li,table.propform td{width:80%;padding:4px 10px;background:#eee;border-bottom:2px solid #fff}table.propform td.title{width:20%;color:#333;padding-right:20px;white-space:nowrap}table.propform .mceLayout td{padding:0;border-bottom:0}ul.proplist{list-style:none;margin:0;padding:0}ul.proplist li{width:auto}#pluginbody{position:absolute;top:0;left:0;right:0;bottom:0}#login-form{position:relative;width:580px;margin:20ex auto 2ex auto}#login-form .box-inner{width:430px;background:url(images/linen_login.jpg?v=0484.10363) top left no-repeat #5c5c5c;margin:0 50px;padding:10px 24px 24px 24px;border:1px solid #333;border-radius:5px;box-shadow:inset 0 0 1px #ccc;-webkit-box-shadow:inset 0 0 1px #ccc}#login-form .box-bottom{background:url(images/login_shadow.png?v=1169.789) top center no-repeat;margin-top:-3px;padding-top:10px}#login-form .noscriptwarning{margin:0 auto;width:430px;color:#cf2734;font-size:110%;font-weight:bold}#login-form td.input{width:80%;padding:8px}#login-form input[type="text"],#login-form input[type="password"]{width:100%;border-color:#666}#login-form input.button{color:#444;text-shadow:0 1px 1px #fff;border-color:#f9f9f9;background:#f9f9f9;background:-moz-linear-gradient(top,#f9f9f9 0,#e2e2e2 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0,#f9f9f9),color-stop(100%,#e2e2e2));background:-o-linear-gradient(top,#f9f9f9 0,#e2e2e2 100%);background:-ms-linear-gradient(top,#f9f9f9 0,#e2e2e2 100%);background:linear-gradient(to bottom,#f9f9f9 0,#e2e2e2 100%);box-shadow:inset 0 1px 0 0 #fff;-webkit-box-shadow:inset 0 1px 0 0 #fff}#login-form input.button:hover,#login-form input.button:focus{box-shadow:0 0 5px 2px rgba(71,135,177,0.9),inset 0 1px 0 0 #fff;-webkit-box-shadow:0 0 5px 2px rgba(71,135,177,0.9),inset 0 1px 0 0 #fff}#login-form input.button:active{color:#333;background:-moz-linear-gradient(top,#dcdcdc 0,#f9f9f9 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0,#dcdcdc),color-stop(100%,#f9f9f9));background:-o-linear-gradient(top,#dcdcdc 0,#f9f9f9 100%);background:-ms-linear-gradient(top,#dcdcdc 0,#f9f9f9 100%);background:linear-gradient(to bottom,#dcdcdc 0,#f9f9f9 100%)}#login-form form table{width:98%}#login-form td.title{width:20%;white-space:nowrap;color:#cecece;text-shadow:0 1px 1px black;text-align:right;padding-right:1em}#login-form p.formbuttons{margin-top:2em;text-align:center}#login-form #logo{margin-bottom:20px;border:0}#login-form #message{min-height:40px;padding:5px 25px;text-align:center;font-size:1.1em}#login-form #message div{display:inline-block;padding-right:0;font-size:12px}#bottomline{font-size:90%;text-align:center;margin-top:2em}.searchbox{position:relative}#quicksearchbar{position:absolute;right:2px;top:2px;width:240px}.searchbox input,#quicksearchbar input{width:176px;margin:0;padding:3px 30px 3px 34px;height:18px;background:#f1f1f1;border-color:#ababab;font-weight:bold;font-size:11px}.searchbox .searchicon,.searchbox #searchmenulink,#quicksearchbar #searchmenulink{position:absolute;top:5px;left:6px}.searchbox #searchreset,.searchbox .iconbutton.reset,#quicksearchbar #searchreset{position:absolute;top:4px;right:1px}.listsearchbox{padding:4px;background:#c7e3ef;display:none}.listsearchbox input{width:100%;height:26px;-moz-box-sizing:border-box;box-sizing:border-box}.toolbar .spacer{display:inline-block;width:24px;height:40px;padding:0}.toolbar a.button{text-align:center;font-size:10px;color:#555;min-width:50px;max-width:70px;height:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:28px 2px 0 2px;text-shadow:0 1px 1px #eee;box-shadow:none;-webkit-box-shadow:none;background:url(images/buttons.png?v=51d4.15699) -100px 0 no-repeat transparent;border:0;border-radius:0}.dropbutton .dropbuttontip:focus,.toolbar a.button:focus{color:#fff;text-shadow:0 1px 1px #666;background-color:rgba(30,150,192,0.5);border-radius:3px}.toolbar a.button.disabled{opacity:.4}.dropbutton{display:inline-block;position:relative}.dropbutton .dropbuttontip{display:block;position:absolute;right:0;top:0;height:41px;width:18px;overflow:hidden;text-indent:-5000px;background:url(images/buttons.png?v=51d4.15699) 0 -1255px no-repeat;cursor:pointer;outline:0}.dropbutton .dropbuttontip:focus,.dropbutton .dropbuttontip:hover{background-position:-26px -1255px}.dropbutton a.button.disabled+.dropbuttontip{opacity:.5}.dropbutton a.button.disabled+.dropbuttontip:hover{background-position:0 -1255px}.dropbutton a.button{margin-left:0;padding-left:0;margin-right:0;padding-right:0}.toolbar a.button.back{background-position:0 -1216px}.toolbar a.button.checkmail{background-position:center -1176px}.toolbar a.button.compose{background-position:center -530px}.toolbar a.button.reply{background-position:center -570px}.toolbar a.button.reply-all{min-width:64px;background-position:0 -610px}.toolbar a.button.forward{min-width:64px;background-position:0 -650px}.toolbar a.button.delete{background-position:center -690px}.toolbar a.button.archive{background-position:center -730px}.toolbar a.button.junk{background-position:center -770px}.toolbar a.button.print{background-position:center -810px}.toolbar a.button.markmessage{background-position:center -1094px}.toolbar a.button.move{background-position:center -1971px}.toolbar a.button.more{background-position:center -850px}.toolbar a.button.attach{background-position:center -890px}.toolbar a.button.spellcheck{min-width:64px;background-position:0 -930px}.toolbar a.button.spellcheck.selected{background-position:0 -1620px;color:#1978a1}.toolbar a.button.insertsig{background-position:center -1135px}.toolbar a.button.search{background-position:center -970px}.toolbar a.button.import{background-position:center -1012px}.toolbar a.button.export{min-width:64px;background-position:0 -1054px}.toolbar a.button.send{background-position:center -1660px}.toolbar a.button.savedraft{background-position:center -1700px}.toolbar a.button.close{background-position:0 -1745px}.toolbar a.button.download{background-position:center -1892px}.toolbar a.button.responses{background-position:center -1932px}a.menuselector{display:inline-block;border:1px solid #ababab;border-radius:4px;background:#f8f8f8;background:-moz-linear-gradient(top,#f8f8f8 0,#ddd 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0,#f8f8f8),color-stop(100%,#ddd));background:-o-linear-gradient(top,#f8f8f8 0,#ddd 100%);background:-ms-linear-gradient(top,#f9f9f9 0,#ddd 100%);background:linear-gradient(to bottom,#f8f8f8 0,#ddd 100%);text-decoration:none;color:#333;cursor:pointer;white-space:nowrap}a.menuselector .handle{display:inline-block;padding:0 32px 0 6px;height:20px;line-height:19px;text-shadow:0 1px 1px #fff;background:url(images/selector.png?v=799c.181) right center no-repeat;border-radius:4px}a.menuselector:active{background:#ddd;background:-moz-linear-gradient(top,#ddd 0,#f8f8f8 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0,#ddd),color-stop(100%,#f8f8f8));background:-o-linear-gradient(top,#ddd 0,#f8f8f8 100%);background:-ms-linear-gradient(top,#ddd 0,#f8f8f8 100%);background:linear-gradient(to bottom,#ddd 0,#f8f8f8 100%);text-decoration:none}select.decorated{position:relative;z-index:10;opacity:0;height:22px;cursor:pointer;-khtml-appearance:none;-webkit-appearance:none;border:0}html.opera select.decorated{opacity:1}select.decorated option{color:#fff;background:#444;border:0;border-top:1px solid #5a5a5a;border-bottom:1px solid #333;text-shadow:0 1px 1px #333;padding:4px 6px;outline:0;cursor:default}a.menuselector:focus,a.menuselector.focus,a.iconbutton:focus,.pagenav a.button:focus{border-color:#4fadd5;box-shadow:0 0 4px 2px rgba(71,135,177,0.8);-webkit-box-shadow:0 0 4px 2px rgba(71,135,177,0.8);outline:0}#quotadisplay{left:6px;height:18px;font-size:12px;font-weight:bold;text-shadow:0 1px 1px #fff;padding-left:30px;background:url(images/quota.png?v=7ea4.2033) -100px 0 no-repeat}table.quota-info{border-spacing:0;border-collapse:collapse;table-layout:fixed;margin:5px}table.quota-info td,table.quota-info th{color:white;border:1px solid lightgrey;padding:2px 3px;text-align:center;min-width:80px}table.quota-info td.name{text-align:left}table.quota-info td.root{font-style:italic}.popupmenu,#rcmKSearchpane{display:none;position:absolute;top:32px;left:90px;width:auto;max-height:70%;overflow:-moz-scrollbars-vertical;overflow-y:auto;background:#444;border:1px solid #999;z-index:240;border-radius:4px;box-shadow:0 2px 6px 0 #333;-webkit-box-shadow:0 2px 6px 0 #333}.popupmenu.dropdown{border-radius:0 0 4px 4px;border-top:0}ul.toolbarmenu,ul.toolbarmenu ul,#rcmKSearchpane ul{margin:0;padding:0;list-style:none}.googie_list td,ul.toolbarmenu li,#rcmKSearchpane ul li{color:#fff;white-space:nowrap;min-width:130px;margin:0;border-top:1px solid #5a5a5a;border-bottom:1px solid #333}.googie_list tr:first-child td,ul.toolbarmenu>li:first-child,select.decorated option:first-child{border-top:0}.googie_list tr:last-child td,ul.toolbarmenu>li:last-child,select.decorated option:last-child{border-bottom:0}.googie_list td span,ul.toolbarmenu li a{display:block;color:#666;text-shadow:0 1px 1px #333;text-decoration:none;min-height:14px;padding:6px 16px 6px 10px}.googie_list td span{padding:3px 10px}.googie_list td span,ul.toolbarmenu li a.active{color:#fff;cursor:default}.googie_list td.googie_list_onhover,ul.toolbarmenu li a.active:hover,ul.toolbarmenu li a.active:focus,#rcmKSearchpane ul li.selected,select.decorated option:hover,select.decorated option[selected='selected']{background-color:#00aad6;background:-moz-linear-gradient(top,#00aad6 0,#008fc9 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0,#00aad6),color-stop(100%,#008fc9));background:-o-linear-gradient(top,#00aad6 0,#008fc9 100%);background:-ms-linear-gradient(top,#00aad6 0,#008fc9 100%);background:linear-gradient(to bottom,#00aad6 0,#008fc9 100%);outline:0}ul.toolbarmenu.iconized li a,ul.toolbarmenu.selectable li a{padding-left:30px}ul.toolbarmenu.selectable li a.selected{background:url(images/messages.png?v=3a4f.1461) 4px -27px no-repeat}ul.toolbarmenu li label{display:block;color:#fff;padding:4px 8px;text-shadow:0 1px 1px #333}ul.toolbarmenu li.separator label{color:#bbb;font-style:italic}ul.toolbarmenu li a.icon{color:#eee;padding:2px 6px}ul.toolbarmenu li span.icon,#rcmKSearchpane ul li i.icon{display:block;min-height:14px;padding:4px 4px 1px 24px;height:17px;background-image:url(images/listicons.png?v=1877.13442);background-position:-100px 0;background-repeat:no-repeat;opacity:.2}ul.toolbarmenu li a.active span.icon{opacity:.99}ul.toolbarmenu li span.read{background-position:0 -1220px}ul.toolbarmenu li span.unread{background-position:0 -1196px}ul.toolbarmenu li span.flagged{background-position:0 -1244px}ul.toolbarmenu li span.unflagged{background-position:0 -1268px}ul.toolbarmenu li span.mail{background-position:0 -1293px}ul.toolbarmenu li span.list{background-position:0 -1317px}ul.toolbarmenu li span.invert{background-position:0 -1340px}ul.toolbarmenu li span.cross{background-position:0 -1365px}ul.toolbarmenu li span.print{background-position:0 -1436px}ul.toolbarmenu li span.download{background-position:0 -1412px}ul.toolbarmenu li span.edit{background-position:0 -1388px}ul.toolbarmenu li span.viewsource{background-position:0 -1460px}ul.toolbarmenu li span.extwin{background-position:0 -1484px}ul.toolbarmenu li span.conversation{background-position:0 -1532px}ul.toolbarmenu li span.move{background-position:0 -2126px}ul.toolbarmenu li span.copy{background-position:0 -2150px}#snippetslist{max-width:200px}#snippetslist li a{overflow:hidden;text-overflow:ellipsis}#rcmKSearchpane{border-radius:0 0 4px 4px;border-top:0}#rcmKSearchpane ul li{text-shadow:0 1px 1px #333;text-decoration:none;min-height:14px;padding:6px 10px 6px 28px;border:0;cursor:default;position:relative}#rcmKSearchpane ul li i.icon{opacity:.99;position:absolute;top:4px;left:5px;width:18px;height:18px;padding:0;background-position:-1px -2223px}#rcmKSearchpane ul li.group i.icon{background-position:-1px -2247px}.popupdialog{display:none;padding:10px}.popupdialog .formbuttons{margin:20px 0 4px 0}.ui-dialog .prompt input{display:block;margin:8px 0}.hint{margin:4px 0;color:#999;text-shadow:0 1px 1px #fff}.splitter{user-select:none;-moz-user-select:none;-khtml-user-select:none;position:absolute;background:url(images/splitter.png?v=2724.136) center no-repeat}.splitter-h{height:10px;width:100%;cursor:n-resize;cursor:row-resize;background-position:center 0}.splitter-v{width:10px;height:100%;cursor:e-resize;cursor:col-resize;background-position:0 center}#rcmdraglayer{min-width:260px;width:auto !important;width:260px;padding:6px 8px;background:#444;border:1px solid #555;border-radius:4px;box-shadow:0 2px 6px 0 #333;-webkit-box-shadow:0 2px 6px 0 #333;z-index:250;color:#ccc;white-space:nowrap;opacity:.92;text-shadow:0 1px 1px #333}#rcmdraglayer:after{content:"";position:absolute;top:6px;left:-6px;border-style:solid;border-width:6px 6px 6px 0;border-color:transparent #444;display:block;width:0;z-index:251}.draglayercopy:before{position:absolute;bottom:-6px;left:-6px;content:" ";width:16px;height:16px;background:url(images/buttons.png?v=51d4.15699) -7px -358px no-repeat;z-index:255}.popup label>input{margin-left:10px}#folder-selector{z-index:1000}#folder-selector li a span{background:url(images/listicons.png?v=1877.13442) 4px -2021px no-repeat;display:block;height:17px;min-height:14px;padding:4px 4px 1px 28px;overflow:hidden;max-width:120px;text-overflow:ellipsis}#folder-selector li a.virtual{opacity:.2}#folder-selector li a.inbox span{background-position:4px -2049px}#folder-selector li a.drafts span{background-position:4px -1388px}#folder-selector li a.sent span{background-position:4px -2074px}#folder-selector li a.trash span{background-position:4px -1508px}#folder-selector li a.junk span{background-position:4px -2100px}.folderlist li.mailbox a{padding-left:36px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;background-image:url(images/listicons.png?v=1877.13442);background-repeat:no-repeat;background-position:6px 3px}.folderlist li.mailbox.unread>a{padding-right:36px}.folderlist li.mailbox>a:focus,.folderlist li.mailbox.selected>a{background-position:6px -21px}.folderlist li.mailbox.inbox>a{background-position:6px -189px}.folderlist li.mailbox.inbox>a:focus,.folderlist li.mailbox.inbox.selected>a{background-position:6px -213px}.folderlist li.mailbox.drafts>a{background-position:6px -238px}.folderlist li.mailbox.drafts>a:focus,.folderlist li.mailbox.drafts.selected>a{background-position:6px -262px}.folderlist li.mailbox.sent>a{background-position:6px -286px}.folderlist li.mailbox.sent>a:focus,.folderlist li.mailbox.sent.selected>a{background-position:6px -310px}.folderlist li.mailbox.junk>a{background-position:6px -334px}.folderlist li.mailbox.junk>a:focus,.folderlist li.mailbox.junk.selected>a{background-position:6px -358px}.folderlist li.mailbox.trash>a{background-position:6px -382px}.folderlist li.mailbox.trash>a:focus,.folderlist li.mailbox.trash.selected>a{background-position:6px -406px}.folderlist li.mailbox.trash.empty>a{background-position:6px -1924px}.folderlist li.mailbox.trash.empty>a:focus,.folderlist li.mailbox.trash.empty.selected>a{background-position:6px -1948px}.folderlist li.mailbox.archive>a{background-position:6px -1699px}.folderlist li.mailbox.archive>a:focus,.folderlist li.mailbox.archive.selected>a{background-position:6px -1723px}.folderlist li.mailbox ul li.drafts>a{background-position:23px -238px}.folderlist li.mailbox ul li.drafts>a:focus,.folderlist li.mailbox ul li.drafts.selected>a{background-position:23px -262px}.folderlist li.mailbox ul li.sent>a{background-position:23px -286px}.folderlist li.mailbox ul li.sent>a:focus,.folderlist li.mailbox ul li.sent.selected>a{background-position:23px -310px}.folderlist li.mailbox ul li.junk>a{background-position:23px -334px}.folderlist li.mailbox ul li.junk>a:focus,.folderlist li.mailbox ul li.junk.selected>a{background-position:23px -358px}.folderlist li.mailbox ul li.trash>a{background-position:23px -382px}.folderlist li.mailbox ul li.trash>a:focus,.folderlist li.mailbox ul li.trash.selected>a{background-position:23px -406px}.folderlist li.mailbox ul li.trash.empty>a{background-position:23px -1924px}.folderlist li.mailbox ul li.trash.empty>a:focus,.folderlist li.mailbox ul li.trash.empty.selected>a{background-position:23px -1948px}.folderlist li.mailbox ul li.archive>a{background-position:23px -1699px}.folderlist li.mailbox ul li.archive>a:focus,.folderlist li.mailbox ul li.archive.selected>a{background-position:23px -1723px}.folderlist li.virtual>a{color:#aaa}.folderlist li.mailbox div.treetoggle{top:13px;left:19px}.folderlist li.mailbox ul li:last-child{border-bottom:0}.folderlist li.mailbox ul{list-style:none;margin:0;padding:0;border-top:1px solid #bbd3da}.folderlist li.mailbox ul li a{padding-left:52px;background-position:22px -95px}.folderlist li.mailbox ul li>a:focus,.folderlist li.mailbox ul li.selected>a{background-position:22px -119px}.folderlist li.mailbox ul li div.treetoggle{left:33px;top:14px}.folderlist li.mailbox ul ul li.mailbox a{padding-left:68px;background-position:38px -95px}.folderlist li.mailbox ul ul li>a:focus,.folderlist li.mailbox ul ul li.selected>a{background-position:38px -119px}.folderlist li.mailbox ul ul li div.treetoggle{left:48px}.folderlist li.mailbox ul ul ul li.mailbox a{padding-left:84px;background-position:54px -95px}.folderlist li.mailbox ul ul ul li>a:focus,.folderlist li.mailbox ul ul ul li.selected>a{background-position:54px -119px}.folderlist li.mailbox ul ul ul li div.treetoggle{left:64px}.folderlist li.mailbox ul ul ul ul li.mailbox a{padding-left:100px;background-position:70px -95px}.folderlist li.mailbox ul ul ul ul li>a:focus,.folderlist li.mailbox ul ul ul ul li.selected>a{background-position:70px -119px}.folderlist li.mailbox ul ul ul ul li div.treetoggle{left:80px}.folderlist li.mailbox ul ul ul ul ul li{padding-left:16px}.folderlist li.mailbox ul ul ul ul ul li div.treetoggle{left:96px}.attachmentslist{list-style:none;margin:0;padding:0;overflow:hidden;text-overflow:ellipsis}.attachmentslist li{display:block;position:relative;background:url(images/filetypes.png?v=91f3.4626) 0 0 no-repeat;margin-bottom:1px}.attachmentslist li.txt,.attachmentslist li.text{background-position:0 -416px}.attachmentslist li.pdf{background-position:0 -26px}.attachmentslist li.doc,.attachmentslist li.docx,.attachmentslist li.msword{background-position:0 -52px}.attachmentslist li.odt{background-position:0 -78px}.attachmentslist li.xls,.attachmentslist li.xlsx,.attachmentslist li.msexcel{background-position:0 -104px}.attachmentslist li.ods{background-position:0 -130px}.attachmentslist li.zip,.attachmentslist li.gz{background-position:0 -156px}.attachmentslist li.rar{background-position:0 -182px}.attachmentslist li.image{background-position:0 -208px}.attachmentslist li.jpg,.attachmentslist li.jpeg{background-position:0 -234px}.attachmentslist li.png{background-position:0 -260px}.attachmentslist li.m4p{background-position:0 -286px}.attachmentslist li.mp3,.attachmentslist li.audio{background-position:0 -312px}.attachmentslist li.video{background-position:0 -338px}.attachmentslist li.ics,.attachmentslist li.calendar{background-position:0 -364px}.attachmentslist li.vcard{background-position:0 -390px}.attachmentslist li.sig,.attachmentslist li.pgp-signature,.attachmentslist li.pkcs7-signature{background-position:0 -442px}.attachmentslist li.html{background-position:0 -468px}.attachmentslist li.eml,.attachmentslist li.rfc822{background-position:0 -494px}.attachmentslist li.ppt,.attachmentslist li.pptx,.attachmentslist li.ppsx,.attachmentslist li.vnd.mspowerpoint{background-position:0 -520px}.attachmentslist li.odp,.attachmentslist li.otp{background-position:0 -546px}.attachmentslist li a,#compose-attachments ul li{display:block;color:#333;font-weight:bold;padding:3px 15px 3px 30px;text-shadow:0 1px 1px #fff;text-decoration:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:20px;outline:0}.attachmentslist li a.drop{background:url(images/buttons.png?v=51d4.15699) no-repeat scroll center -1570px;width:14px;height:20px;cursor:pointer;position:absolute;right:0;top:0;padding:0;overflow:hidden;text-indent:-5000px;outline:0}.attachmentslist li a:focus,.attachmentslist li a.drop:focus{background-color:rgba(30,150,192,0.5);border-radius:2px}#compose-attachments ul li{padding-right:28px}.attachmentslist li a:hover{text-decoration:underline}.attachmentslist li.uploading{background:url(images/ajaxloader.gif?v=c252.1434) 2px 6px no-repeat}.attachmentslist li a.delete,.attachmentslist li a.cancelupload{position:absolute;top:4px;right:0;width:20px;height:18px;padding:0;text-decoration:none;text-indent:-5000px;background-image:url(images/buttons.png?v=51d4.15699);background-position:-6px -338px;background-repeat:no-repeat}.attachmentslist li a.cancelupload{background-position:-6px -378px}.tabbed.ui-tabs{padding:0;border:0 !important;background:0}.ui-dialog .tabbed.ui-tabs{margin:-12px -8px 0 -8px}.boxcontent.tabbed.ui-tabs{padding:10px}.ui-tabs .tabsbar.ui-tabs-nav{margin-bottom:10px}.ui-dialog-content .ui-tabs .tabsbar.ui-tabs-nav{margin-bottom:0}.tabsbar .tablink:last-child{background:0}.tabsbar .tablink:last-child a{border-right:0}.ui-tabs .ui-tabs-nav li.tablink a{background:#fff}.ui-tabs fieldset.ui-tabs-panel{border:0;padding:0;margin-left:0;background:0}.ui-dialog .propform .ui-tabs-panel{display:block;background:#efefef;padding:.5em 1em}#image-selector-form.droptarget{background:url(images/filedrop.png?v=ba79.421) center bottom no-repeat}.mce-btn-small .mce-ico{display:inline}.mce-btn-small i{line-height:16px !important;vertical-align:text-top !important}_:not(),_:-moz-handler-blocked,.mozilla .mce-btn-small i{line-height:20px !important}
\ No newline at end of file
+body{font-family:"Lucida Grande",Verdana,Arial,Helvetica,sans-serif;font-size:11px;color:#333;background:url(images/linen.jpg?v=0382.14157) repeat #d1d5d8;margin:0}body.noscroll{overflow:hidden}.iphone body.noscroll{overflow:auto}a{color:#0069a6}a:visited{color:#0186ba}img{border:0}.voice{position:absolute;border:0;clip:rect(0 0 0 0);width:1px;height:1px;margin:-1px;padding:0;overflow:hidden}html.mozilla select{padding:2px 1px}input,textarea,select,button{font-family:inherit;font-size:inherit;vertical-align:middle}input[type="text"],input[type="password"],textarea{margin:0;padding:4px;border:1px solid #b2b2b2;border-radius:4px;box-shadow:inset 0 0 2px 1px rgba(0,0,0,0.1);-webkit-box-shadow:inset 0 0 2px 1px rgba(0,0,0,0.1)}input[type="text"]:focus,input[type="password"]:focus,input.button:focus,textarea:focus{border-color:#4787b1;box-shadow:0 0 5px 2px rgba(71,135,177,0.9);-webkit-box-shadow:0 0 5px 2px rgba(71,135,177,0.9);outline:0}input[type="text"]:required,input[type="password"]:required{border-color:#4787b1}input.placeholder,textarea.placeholder{color:#aaa}.bold{font-weight:bold}label input+span{vertical-align:middle}input.button{display:inline-block;margin:0 2px;padding:2px 5px;color:#525252;text-shadow:0 1px 1px #fff;border:1px solid silver;border-radius:4px;background:#f7f7f7;background:-moz-linear-gradient(top,#f9f9f9 0,#e6e6e6 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0,#f9f9f9),color-stop(100%,#e6e6e6));background:-o-linear-gradient(top,#f9f9f9 0,#e6e6e6 100%);background:-ms-linear-gradient(top,#f9f9f9 0,#e6e6e6 100%);background:linear-gradient(to bottom,#f9f9f9 0,#e6e6e6 100%);box-shadow:0 1px 1px 0 rgba(140,140,140,0.3);-webkit-box-shadow:0 1px 1px 0 rgba(140,140,140,0.3);text-decoration:none;outline:0}.formbuttons input.button{color:#ddd;font-size:110%;text-shadow:0 1px 1px #333;padding:4px 12px;border-color:#465864;border-radius:5px;background:#7a7b7d;background:-moz-linear-gradient(top,#7b7b7b 0,#606060 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0,#7b7b7b),color-stop(100%,#606060));background:-o-linear-gradient(top,#7b7b7b 0,#606060 100%);background:-ms-linear-gradient(top,#7b7b7b 0,#606060 100%);background:linear-gradient(to bottom,#7b7b7b 0,#606060 100%);box-shadow:0 1px 1px 0 #ccc,inset 0 1px 0 0 #888;-webkit-box-shadow:0 1px 1px 0 #ccc,inset 0 1px 0 0 #888}.formbuttons input.button:hover,.formbuttons input.button:focus,input.button.mainaction:hover,input.button.mainaction:focus{color:#f2f2f2;border-color:#465864;box-shadow:0 0 5px 2px rgba(71,135,177,0.6),inset 0 1px 0 0 #888;-webkit-box-shadow:0 0 5px 2px rgba(71,135,177,0.6),inset 0 1px 0 0 #888}.formbuttons input.button:active{color:#fff;background:-moz-linear-gradient(top,#5c5c5c 0,#7b7b7b 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0,#5c5c5c),color-stop(100%,#7b7b7b));background:-o-linear-gradient(top,#5c5c5c 0,#7b7b7b 100%);background:-ms-linear-gradient(top,#5c5c5c 0,#7b7b7b 100%);background:linear-gradient(to bottom,#5c5c5c 0,#7b7b7b 100%)}input.button.mainaction{color:#ededed;text-shadow:0 1px 1px #333;border-color:#1f262c;background:#505050;background:-moz-linear-gradient(top,#505050 0,#2a2e31 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0,#505050),color-stop(100%,#2a2e31));background:-o-linear-gradient(top,#505050 0,#2a2e31 100%);background:-ms-linear-gradient(top,#505050 0,#2a2e31 100%);background:linear-gradient(to bottom,#505050 0,#2a2e31 100%);box-shadow:inset 0 1px 0 0 #777;-webkit-box-shadow:inset 0 1px 0 0 #777}input.button.mainaction:active{color:#fff;background:#515151;background:-moz-linear-gradient(top,#2a2e31 0,#505050 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0,#2a2e31),color-stop(100%,#505050));background:-o-linear-gradient(top,#2a2e31 0,#505050 100%);background:-ms-linear-gradient(top,#2a2e31 0,#505050 100%);background:linear-gradient(to bottom,#2a2e31 0,#505050 100%)}input.button[disabled],input.button[disabled]:hover,input.button.mainaction[disabled]{color:#aaa !important}input.mainaction{font-weight:bold}a.button,.buttongroup{display:inline-block;margin:0 2px;padding:2px 5px;color:#525252;text-shadow:0 1px 1px #fff;border:1px solid #c6c6c6;border-radius:4px;background:#f7f7f7;background:-moz-linear-gradient(top,#f9f9f9 0,#e6e6e6 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0,#f9f9f9),color-stop(100%,#e6e6e6));background:-o-linear-gradient(top,#f9f9f9 0,#e6e6e6 100%);background:-ms-linear-gradient(top,#f9f9f9 0,#e6e6e6 100%);background:linear-gradient(to bottom,#f9f9f9 0,#e6e6e6 100%);box-shadow:0 1px 1px 0 rgba(140,140,140,0.3);-webkit-box-shadow:0 1px 1px 0 rgba(140,140,140,0.3);text-decoration:none}.buttongroup{padding:0;white-space:nowrap}a.button:focus,input.button:focus{border-color:#4fadd5;box-shadow:0 0 2px 1px rgba(71,135,177,0.6);-webkit-box-shadow:0 0 2px 1px rgba(71,135,177,0.6);outline:0}label.disabled,a.button.disabled{color:#999}a.button.disabled,input.button.disabled,input.button[disabled],a.button.disabled:hover,input.button.disabled:hover,input.button[disabled]:hover{border-color:#c6c6c6;box-shadow:0 1px 1px 0 rgba(160,160,160,0.4);-webkit-box-shadow:0 1px 1px 0 rgba(160,160,160,0.4)}a.button.disabled span.inner{opacity:.4}.buttongroup a.button{margin:0;border-width:0 1px 0 0;border-radius:0;background:0;box-shadow:none;-webkit-box-shadow:none}.buttongroup a.button.first,.buttongroup a.button:first-child{border-radius:4px 0 0 4px;border-left:0}.buttongroup a.button.last,.buttongroup a.button:last-child{border-radius:0 4px 4px 0;border-right:0}a.button.pressed,a.button:active,input.button:active{background:#e6e6e6;background:-moz-linear-gradient(top,#e6e6e6 0,#f9f9f9 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0,#e6e6e6),color-stop(100%,#f9f9f9));background:-o-linear-gradient(top,#e6e6e6 0,#f9f9f9 100%);background:-ms-linear-gradient(top,#e6e6e6 0,#f9f9f9 100%);background:linear-gradient(to bottom,#e6e6e6 0,#f9f9f9 100%)}.pagenav.dark a.button{font-weight:bold;border-color:#e6e6e6;background:#d8d8d8;background:-moz-linear-gradient(top,#d8d8d8 0,#bababa 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0,#d8d8d8),color-stop(100%,#bababa));background:-o-linear-gradient(top,#d8d8d8 0,#bababa 100%);background:-ms-linear-gradient(top,#d8d8d8 0,#bababa 100%);background:linear-gradient(to bottom,#d8d8d8 0,#bababa 100%);box-shadow:0 1px 1px 0 #999;-webkit-box-shadow:0 1px 1px 0 #999}.pagenav.dark a.button.pressed{background:#bababa;background:-moz-linear-gradient(top,#bababa 0,#d8d8d8 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0,#bababa),color-stop(100%,#d8d8d8));background:-o-linear-gradient(top,#bababa 0,#d8d8d8 100%);background:-ms-linear-gradient(top,#bababa 0,#d8d8d8 100%);background:linear-gradient(to bottom,#bababa 0,#d8d8d8 100%)}.buttongroup a.button.selected,.buttongroup a.button.selected:hover{background:#8a8a8a;background:-moz-linear-gradient(top,#909090 0,#858585 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0,#909090),color-stop(100%,#858585));background:-o-linear-gradient(top,#909090 0,#858585 100%);background:-ms-linear-gradient(top,#909090 0,#858585 100%);background:linear-gradient(to bottom,#909090 0,#858585 100%);box-shadow:inset 0 1px 2px 0 #555;-webkit-box-shadow:inset 0 1px 2px 0 #555;border-right-color:#555;border-left-color:#555}.buttongroup a.button:focus,.buttongroup a.button.selected:focus{background:#f2f2f2;background:-moz-linear-gradient(top,#49b3d2 0,#66bcd9 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0,#49b3d2),color-stop(100%,#66bcd9));background:-o-linear-gradient(top,#49b3d2 0,#66bcd9 100%);background:-ms-linear-gradient(top,#49b3d2 0,#66bcd9 100%);background:linear-gradient(to bottom,#49b3d2 0,#66bcd9 100%)}.pagenav a.button{padding:1px 3px;height:16px;vertical-align:middle;margin-bottom:1px}.pagenav .buttongroup a.button,.pagenav .buttongroup a.button:hover{padding:1px 5px;margin-bottom:0}a.button span.icon,.pagenav a.button span.inner{display:inline-block;width:16px;height:13px;text-indent:1000px;overflow:hidden;background:url(images/buttons.png?v=51d4.15699) -6px -211px no-repeat}a.button.prevpage span.icon,.pagenav a.prevpage span.inner{background-position:-7px -226px}a.button.nextpage span.icon,.pagenav a.nextpage span.inner{background-position:-28px -226px}a.button.lastpage span.icon,.pagenav a.lastpage span.inner{background-position:-28px -211px}a.button.pageup span.icon,.pagenav a.pageup span.inner{background-position:-7px -241px}a.button.pagedown span.icon,.pagenav a.pagedown span.inner{background-position:-29px -241px}a.button.reply span.icon,.pagenav a.reply span.inner{background-position:-7px -256px}a.button.forward span.icon,.pagenav a.forward span.inner{background-position:-29px -256px}a.button.replyall span.icon,.pagenav a.replyall span.inner{background-position:-7px -271px}a.button.extwin span.icon,.pagenav a.extwin span.inner{background-position:-29px -271px}a.button.changeformat.html span.icon,.pagenav a.changeformat.html span.inner{background-position:-7px -1859px}a.button.changeformat.html.selected span.icon,.pagenav a.changeformat.html.selected span.inner{background-position:-29px -1859px}a.button.changeformat.text span.icon,.pagenav a.changeformat.text span.inner{background-position:-7px -1874px}a.button.changeformat.text.selected span.icon,.pagenav a.changeformat.text.selected span.inner{background-position:-29px -1874px}a.button.add span.icon{background-position:-7px -2009px}a.button.delete span.icon{background-position:-29px -2009px}.pagenav .countdisplay{display:inline-block;padding:3px 1em 0 1em;text-shadow:0 1px 1px #fff;min-width:16em}.pagenavbuttons{position:relative;top:-2px}a.iconbutton{display:inline-block;width:20px;height:18px;text-decoration:none;text-indent:-5000px;background:url(images/buttons.png?v=51d4.15699) -1000px 0 no-repeat}a.iconbutton.disabled{opacity:.4;cursor:default}a.iconbutton.searchicon,a.iconbutton.searchoptions{width:24px;background-position:-2px -317px}a.iconbutton.searchicon{width:15px}a.iconbutton.reset{width:24px;background-position:-25px -317px}a.iconbutton.remove,a.iconbutton.cancel{background-position:-7px -378px}a.iconbutton.delete{background-position:-7px -338px}a.iconbutton.add{background-position:-7px -358px}a.iconbutton.remove{background-position:-7px -379px}a.iconbutton.cancel{background-position:-7px -398px}a.iconbutton.edit{background-position:-7px -418px}a.iconbutton.upload{background-position:-6px -438px}a.iconlink{display:inline-block;color:#888;text-decoration:none;white-space:nowrap;padding:2px 8px 2px 20px;background:url(images/buttons.png?v=51d4.15699) -1000px 0 no-repeat}a.iconlink:hover{text-decoration:underline}a.iconlink.delete{background-position:-7px -337px}a.iconlink.add{background-position:-7px -357px}a.iconlink.remove{background-position:-7px -378px}a.iconlink.cancel{background-position:-7px -397px}a.iconlink.edit{background-position:-7px -417px}a.iconlink.upload{background-position:-6px -437px}#message div.loading,#message div.uploading,#message div.warning,#message div.error,#message div.notice,#message div.confirmation,#message-objects div.notice{color:#555;font-weight:bold;padding:6px 30px 6px 25px;display:inline-block;white-space:nowrap;background:url(images/messages.png?v=3a4f.1461) 0 5px no-repeat;cursor:default}#message div.warning{color:#960;background-position:0 -86px}#message div.error{color:#cf2734;background-position:0 -55px}#message div.confirmation{color:#093;background-position:0 -25px}#message div.loading{background:url(images/ajaxloader.gif?v=c252.1434) 2px 6px no-repeat}#message div a,#message div span{padding-right:.5em;text-decoration:none}#message div a:hover{text-decoration:underline;cursor:pointer}#message.statusbar{display:none;position:absolute;bottom:0;left:0;right:0;height:27px;padding-left:8px;border-top:1px solid #ddd;border-radius:0 0 4px 4px;background:#eaeaea;background:-moz-linear-gradient(top,#eaeaea 0,#c8c8c8 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0,#eaeaea),color-stop(100%,#c8c8c8));background:-o-linear-gradient(top,#eaeaea 0,#c8c8c8 100%);background:-ms-linear-gradient(top,#eaeaea 0,#c8c8c8 100%);background:linear-gradient(to bottom,#eaeaea 0,#c8c8c8 100%);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}#messagestack{position:absolute;bottom:20px;right:12px;z-index:50000;width:auto;height:auto;max-height:85%;overflow-y:auto;padding:2px}#messagestack div{display:block;position:relative;width:280px;height:auto;min-height:16px;margin:3px 2px 5px 2px;padding:8px 10px 7px 30px;cursor:default;font-size:12px;font-weight:bold;border-radius:4px;border:1px solid #444;color:#ebebeb;text-shadow:0 1px 1px #000;background:rgba(64,64,64,0.85);background:-moz-linear-gradient(top,rgba(64,64,64,0.85) 0,rgba(48,48,48,0.9) 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0,rgba(64,64,64,0.85)),color-stop(100%,rgba(48,48,48,0.9)));background:-webkit-linear-gradient(top,rgba(64,64,64,0.85) 0,rgba(48,48,48,0.85) 100%);background:-o-linear-gradient(top,rgba(64,64,64,0.85) 0,rgba(48,48,48,0.85) 100%);background:-ms-linear-gradient(top,rgba(64,64,64,0.85) 0,rgba(48,48,48,0.85) 100%);background:linear-gradient(to bottom,rgba(64,64,64,0.85) 0,rgba(48,48,48,0.85) 100%);box-shadow:0 1px 4px 0 rgba(50,50,50,0.8),inset 0 1px 0 0 #888;-webkit-box-shadow:0 1px 4px 0 rgba(50,50,50,0.8),inset 0 1px 0 0 #888}#messagestack div:after{content:"";position:absolute;display:block;top:0;left:4px;width:20px;height:24px;background:url(images/messages_dark.png?v=270a.1471) 0 7px no-repeat}#messagestack div.error{color:#ff615d}#messagestack div.error:after{background-position:0 -55px}#messagestack div.warning{color:#f4bf0e}#messagestack div.warning:after{background-position:0 -84px}#messagestack div.confirmation{color:#00e05a}#messagestack div.confirmation:after{background-position:0 -25px}#messagestack div.uploading,#messagestack div.loading{color:#ddd}#messagestack div.uploading:after,#messagestack div.loading:after{top:4px;left:6px;background:url(images/ajaxloader_dark.gif?v=cf1b.1849) 0 4px no-repeat}#messagestack div.voice{position:absolute;top:-1000px}#messagestack div a{color:#94c0da}#messagestack div a:hover{text-decoration:underline;cursor:pointer}.ui-dialog.error .ui-dialog-title,.ui-dialog.warning .ui-dialog-title,.ui-dialog.confirmation .ui-dialog-title{padding-left:25px;background:url(images/messages.png?v=3a4f.1461) 0 5px no-repeat;text-shadow:0 1px 1px #fff}.ui-dialog.warning .ui-dialog-title{color:#960;background-position:0 -90px}.ui-dialog.error .ui-dialog-title{color:#cf2734;background-position:0 -60px}.ui-dialog.confirmation .ui-dialog-title{color:#093;background-position:0 -30px}.ui-dialog.popupmessage .ui-dialog-titlebar{padding:8px 1em 4px 1em;background:#e3e3e3;background:-moz-linear-gradient(top,#e3e3e3 0,#cfcfcf 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0,#e3e3e3),color-stop(100%,#cfcfcf));background:-o-linear-gradient(top,#e3e3e3 0,#cfcfcf 100%);background:-ms-linear-gradient(top,#e3e3e3 0,#cfcfcf 100%);background:linear-gradient(to bottom,#e3e3e3 0,#cfcfcf 100%)}.ui-dialog.popupmessage .ui-widget-content{font-size:12px;background:#eee;background:-moz-linear-gradient(top,#eee 0,#dcdcdc 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0,#eee),color-stop(100%,#dcdcdc));background:-o-linear-gradient(top,#eee 0,#dcdcdc 100%);background:-ms-linear-gradient(top,#eee 0,#dcdcdc 100%);background:linear-gradient(to bottom,#eee 0,#dcdcdc 100%)}#header{overflow-x:hidden}#topline{height:18px;background:url(images/linen_header.jpg?v=514a.580) repeat #666;border-bottom:1px solid #4f4f4f;padding:2px 0 2px 10px;color:#aaa;text-align:center}#topnav{position:relative;height:46px;margin-bottom:10px;padding:0 0 0 10px;background:#111;background:-moz-linear-gradient(top,#404040 0,#060606 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0,#404040),color-stop(100%,#060606));background:-o-linear-gradient(top,#404040 0,#060606 100%);background:-ms-linear-gradient(top,#404040 0,#060606 100%);background:linear-gradient(to bottom,#404040 0,#060606 100%)}#topline a,#topnav a{color:#eee;text-decoration:none}#topline a:hover{text-decoration:underline}#toplogo{padding-top:2px;cursor:pointer;border:0}.topleft{float:left}.topright{float:right}.closelink{display:inline-block;padding:2px 10px 2px 20px}#topline span.username{padding-right:1em}#topline .topleft a{display:inline-block;padding:2px .8em 0 0;color:#aaa}#topline a.button-logout{display:inline-block;padding:2px 10px 2px 20px;background:url(images/buttons.png?v=51d4.15699) -6px -193px no-repeat;color:#fff}#taskbar .button-logout{display:none}#taskbar a.button-logout span.button-inner{background-position:-2px -1791px}#taskbar a.button-logout:hover span.button-inner{background-position:-2px -1829px}.minimal #topline{position:fixed;top:-18px;background:#444;z-index:5000;width:100%;height:22px;-moz-box-sizing:border-box;box-sizing:border-box}.minimal #topline:hover{top:0;opacity:.94;-webkit-transition:top .3s ease-in-out;-moz-transition:top .3s ease-in-out;-o-transition:top .3s ease-in-out;transition:top .3s ease-in-out}.extwin #topline,.extwin #topline:hover{position:static;top:0;height:18px;width:auto;-moz-box-sizing:content-box;box-sizing:content-box;opacity:.999}.minimal #topline a.button-logout{display:none}.minimal #topline span.username{display:inline-block;padding-top:2px}.minimal #topnav{position:relative;top:4px;height:42px}.minimal #taskbar a{position:relative;padding:10px 10px 0 6px;height:32px}.minimal #taskbar .button-logout{display:inline-block}.minimal #taskbar .button-inner{top:-4px;padding:0;height:24px !important;width:27px;text-indent:-5000px}#taskbar .tooltip{display:none}.minimal #taskbar .tooltip{position:absolute;top:-500px;right:2px;display:inline-block;padding:2px 8px 3px 8px;background:#444;background:-moz-linear-gradient(top,#444 0,#333 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0,#444),color-stop(100%,#333));background:-o-linear-gradient(top,#444 0,#333 100%);background:-ms-linear-gradient(top,#444 0,#333 100%);background:linear-gradient(to bottom,#444 0,#333 100%);color:#eee;font-weight:bold;white-space:nowrap;border:1px solid #777;box-shadow:0 1px 5px 0 #333;-webkit-box-shadow:0 1px 5px 0 #333;z-index:200;white-space:nowrap;text-shadow:0 1px 1px #000}.minimal #taskbar .tooltip:after{content:"";position:absolute;top:-4px;right:15px;border-style:solid;border-width:0 4px 4px;border-color:#888 transparent;display:block;width:0;z-index:251}.minimal #taskbar a:hover .tooltip{display:block;top:39px}#taskbar{position:relative;padding-right:18px}#taskbar a{display:inline-block;height:34px;padding:12px 10px 0 6px}#taskbar a span.button-inner{display:inline-block;font-size:110%;font-weight:normal;text-shadow:0 1px 1px black;padding:5px 0 0 34px;height:19px;background:url(images/buttons.png?v=51d4.15699) -1000px 0 no-repeat}#taskbar a:focus{color:#fff;text-shadow:0 1px 1px #666;background-color:rgba(73,180,210,0.7);outline:0}#taskbar a.button-selected{color:#3cf;background-color:#2c2c2c}#taskbar a.button-mail span.button-inner{background-position:0 2px}#taskbar a.button-mail:hover span.button-inner,#taskbar a.button-mail.button-selected span.button-inner{background-position:0 -22px}#taskbar a.button-addressbook span.button-inner{background-position:0 -48px}#taskbar a.button-addressbook:hover span.button-inner,#taskbar a.button-addressbook.button-selected span.button-inner{background-position:0 -72px}#taskbar a.button-settings span.button-inner{background-position:0 -96px}#taskbar a.button-settings:hover span.button-inner,#taskbar a.button-settings.button-selected span.button-inner{background-position:0 -120px}#taskbar a.button-calendar span.button-inner{background-position:0 -144px}#taskbar a.button-calendar:hover span.button-inner,#taskbar a.button-calendar.button-selected span.button-inner{background-position:0 -168px}#taskbar .minmodetoggle{position:absolute;top:0;right:0;display:block;width:19px;height:46px;cursor:pointer;background:url(images/buttons.png?v=51d4.15699) -35px -1778px no-repeat}.minimal #taskbar .minmodetoggle{height:42px;background-position:-35px -1820px}#mainscreen{position:absolute;top:88px;left:10px;right:10px;bottom:20px}#mainscreencontent{position:absolute;top:42px;left:0;right:0;bottom:0}#mainscreen.offset{top:132px}#mainscreen .offset{top:42px}.minimal #mainscreen{top:62px}.minimal #mainscreen.offset{top:102px}.extwin #mainscreen{top:40px}.extwin #mainscreen.offset{top:86px}.uibox{border:1px solid #a3a3a3;border-radius:4px;overflow:hidden;box-shadow:0 0 2px #999;-webkit-box-shadow:0 0 2px #999;background:#fff}.minwidth{min-width:1024px}.scroller{overflow:auto}.watermark{background-image:url(images/watermark.jpg?v=e784.5000);background-position:center;background-repeat:no-repeat}@media screen and (-webkit-min-device-pixel-ratio:0) and (max-device-width:1024px){.iframebox{overflow:auto;-webkit-overflow-scrolling:touch}}.listbox{background:#d9ecf4;overflow:hidden}.listbox .scroller{position:absolute;top:0;left:0;width:100%;bottom:0;overflow-x:hidden;overflow-y:auto}.listbox .scroller.withfooter{bottom:42px}.listbox .boxtitle+.scroller{top:34px}.boxtitle,.uibox .listing thead th,.uibox .listing thead td{font-size:12px;font-weight:bold;padding:7px 8px 6px 8px;line-height:20px;margin:0;text-shadow:0 1px 1px #fff;border-bottom:1px solid #bbd3da;white-space:nowrap}.uibox .listing thead th,.uibox .listing thead td{padding-bottom:8px;height:auto}.uibox .boxtitle,.uibox .listing thead th,.uibox .listing thead td{background:#b0ccd7;color:#004458;border-radius:4px 4px 0 0}.listbox .listitem,.listbox .tablink,.listing tbody td,.listing li{display:block;border-top:1px solid #fff;border-bottom:1px solid #bbd3da;cursor:default;font-weight:normal}.listbox .listitem a,.listbox .listitem span,.listbox .tablink a,.listing tbody td,.listing li a{display:block;color:#376572;text-shadow:0 1px 1px #fff;text-decoration:none;cursor:default;padding:4px 8px;line-height:17px;height:17px;white-space:nowrap}.listing tbody td{display:table-cell;min-height:14px;outline:0}.listing tbody td a{color:#376572;text-shadow:0 1px 1px #fff;text-decoration:none}.webkit .listing tbody td{height:14px}.listing thead tr td:first-child,.listing tbody tr td:first-child{border-left:2px solid transparent;padding-left:6px}.listing.iconized thead tr td:first-child,.listing.iconized tbody tr td:first-child{padding-left:34px}.listing.focus tbody tr.focused>td:first-child{border-left:2px solid #739da8}.listbox .listitem.selected,.listbox .tablink.selected,.listbox .listitem.selected>a,.listbox .tablink.selected>a,.listing tbody tr.selected td,.listing li.selected,.listing li.selected>a{color:#004458;font-weight:bold;background-color:#c7e3ef}ul.listing{display:block;list-style:none;margin:0;padding:0}ul.listing li{background-color:#d9ecf4;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}ul.listing li ul{border-top:1px solid #bbd3da}ul.listing li.droptarget,table.listing tr.droptarget td{background-color:#e8e798}.listbox table.listing{background-color:#d9ecf4}table.listing,table.layout{border:0;width:100%;border-spacing:0}table.layout td{vertical-align:top}ul.treelist li{position:relative}ul.treelist li ul{margin:0;padding:0}ul.treelist li ul li:last-child{border-bottom:0}ul.treelist li a{display:block;padding-left:20px;overflow:hidden;text-overflow:ellipsis}ul.treelist li a:focus,ul.listing .listitem a:focus,ul.listing .listitem span:focus,ul.listing.focus .listitem.focused span{color:#fff !important;background-color:rgba(73,180,210,0.6);text-shadow:0 1px 1px #666;outline:0}ul.treelist ul li a{padding-left:38px}ul.treelist ul ul li a{padding-left:54px}ul.treelist.iconized li a{padding-left:36px}ul.treelist.iconized ul li a{padding-left:62px}ul.treelist.iconized ul ul li a{padding-left:88px}ul.treelist.iconized ul ul ul li a{padding-left:114px}ul.treelist li div.treetoggle{position:absolute;top:7px;left:4px;width:13px;height:13px;background:url(images/listicons.png?v=1877.13442) -3px -144px no-repeat;cursor:pointer}ul.treelist li ul li div.treetoggle{left:22px}ul.treelist.iconized li div.treetoggle{top:13px;left:19px}ul.treelist.iconized ul li div.treetoggle{left:45px}ul.treelist.iconized ul ul li div.treetoggle{left:71px}ul.treelist li div.treetoggle.expanded{background-position:-3px -168px}ul.treelist li.selected>div.collapsed{background-position:-23px -144px}ul.treelist li.selected>div.expanded{background-position:-23px -168px}.listbox .boxfooter{position:absolute;bottom:0;left:0;width:100%;height:42px;border-top:1px solid #ccdde4;background:#d9ecf4;box-shadow:inset 0 1px 0 0 #fff;-webkit-box-shadow:inset 0 1px 0 0 #fff;white-space:nowrap;overflow:hidden}.uibox .boxfooter{border-radius:0 0 4px 4px}.boxfooter .listbutton{display:inline-block;text-decoration:none;width:48px;border-right:1px solid #fff;background:#c7e3ef;padding:3px 0;margin-top:1px}.boxfooter a.listbutton:focus{color:#fff;background-color:rgba(73,180,210,0.6);text-shadow:0 1px 1px #666;outline:0}.uibox .boxfooter .listbutton:first-child{border-radius:0 0 0 4px}.boxfooter .listbutton .inner{display:inline-block;width:48px;height:35px;text-indent:-5000px;background-image:url(images/buttons.png?v=51d4.15699);background-position:-1000px 0;background-repeat:no-repeat}.boxfooter .listbutton.add .inner{background-position:10px -1301px}.boxfooter .listbutton.delete .inner{background-position:10px -1342px}.boxfooter .listbutton.groupactions .inner{background-position:5px -1382px}.boxfooter .listbutton.addto .inner{background-position:5px -1422px}.boxfooter .listbutton.addcc .inner{background-position:5px -1462px}.boxfooter .listbutton.addbcc{width:54px}.boxfooter .listbutton.addbcc .inner{width:54px;background-position:2px -1502px}.boxfooter .listbutton.removegroup .inner{background-position:5px -1540px}.boxfooter .listbutton.disabled .inner{opacity:.4}.boxfooter .countdisplay{display:inline-block;position:relative;top:10px;color:#69929e;padding:3px 6px}.boxpagenav{position:absolute;top:10px;right:6px;width:auto}.boxpagenav a.icon{display:inline-block;padding:1px 3px;height:13px;width:14px;text-indent:1000px;vertical-align:bottom;overflow:hidden;background:url(images/buttons.png?v=51d4.15699) -4px -286px no-repeat}.boxpagenav a.icon.prevpage{background-position:-4px -301px}.boxpagenav a.icon.nextpage{background-position:-28px -301px}.boxpagenav a.icon.lastpage{background-position:-28px -286px}.boxpagenav a.icon.disabled{opacity:.4}.centerbox{width:40em;margin:16px auto}.errorbox{width:40em;padding:20px}.errorbox h3{font-size:16px;margin-top:0}table.records-table{display:table;width:100%;table-layout:fixed;border-spacing:0;border:1px solid #bbd3da}.boxlistcontent .records-table{border:0}.records-table thead th,.records-table thead td{color:#69939e;font-size:11px;font-weight:bold;background:#d6eaf3;background:-moz-linear-gradient(left,#e3f2f6 0,#d6eaf3 14px,#d6eaf3 100%);background:-webkit-gradient(linear,left top,right top,color-stop(0,#e3f2f6),color-stop(8%,#d6eaf3),color-stop(100%,#d6eaf3));background:-o-linear-gradient(left,#e3f2f6 0,#d6eaf3 14px,#d6eaf3 100%);background:-ms-linear-gradient(left,#e3f2f6 0,#d6eaf3 14px,#d6eaf3 100%);background:linear-gradient(left,#e3f2f6 0,#d6eaf3 14px,#d6eaf3 100%);border-left:1px solid #bbd3da;padding:8px 7px;overflow:hidden;text-overflow:ellipsis;text-align:left}.records-table.sortheader thead th,.records-table.sortheader thead td{padding:0}.records-table thead th a,.records-table thead td a,.records-table thead th span,.records-table thead td span{display:block;padding:7px 7px;color:#69939e;text-decoration:none;overflow:hidden;text-overflow:ellipsis}.records-table thead th a:focus,.records-table thead td a:focus{color:#fff;background-color:rgba(73,180,210,0.7);text-shadow:0 1px 1px #666;outline:0}.records-table tbody td{padding:2px 7px;border-bottom:1px solid #ddd;border-left:1px dotted #bbd3da;white-space:nowrap;cursor:default;overflow:hidden;text-overflow:ellipsis;background-color:#fff;outline:0}.records-table thead tr th:first-child,.records-table thead tr td:first-child,.records-table tbody tr td:first-child{border-left:2px solid transparent;padding-left:4px}.records-table.focus tbody tr.focused>td:first-child{border-left:2px solid #49b3d2}.records-table tr.selected td{color:#fff !important;background-color:#4db0d2 !important}.records-table.focus tr.selected td{background:#019bc6;background:-moz-linear-gradient(top,#019bc6 0,#017cb4 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0,#019bc6),color-stop(100%,#017cb4));background:-o-linear-gradient(top,#019bc6 0,#017cb4 100%);background:-ms-linear-gradient(top,#019bc6 0,#017cb4 100%);background:linear-gradient(to bottom,#019bc6 0,#017cb4 100%)}.records-table tr.selected td a,.records-table tr.selected td span{color:#fff !important}.records-table tr.deleted td,.records-table tr.deleted td a{color:#ccc !important}#aboutframe{width:97%;height:100%;border:0;padding:0}body.iframe{background:#fff;margin:38px 0 10px 0}body.iframe.error{background:#ededed}body.iframe.floatingbuttons{margin-bottom:40px}body.iframe.fullheight{margin:0}.contentbox .boxtitle,body.iframe .boxtitle{color:#777;background:#eee;background:-moz-linear-gradient(top,#eee 0,#dfdfdf 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0,#eee),color-stop(100%,#dfdfdf));background:-o-linear-gradient(top,#eee 0,#dfdfdf 100%);background:-ms-linear-gradient(top,#eee 0,#dfdfdf 100%);background:linear-gradient(to bottom,#eee 0,#dfdfdf 100%);border-bottom:1px solid #ccc}body.iframe .boxtitle{position:fixed;top:0;left:0;width:100%;z-index:100}body.iframe .footerleft.floating,#composeview-bottom .formbuttons.floating{position:fixed;left:0;bottom:0;width:100%;z-index:110;background:#fff;padding-top:8px;padding-bottom:12px}body.iframe .footerleft.floating:before,#composeview-bottom .formbuttons.floating:before{content:" ";position:absolute;top:-6px;left:0;width:100%;height:6px;background:url(images/overflowshadow.png?v=71ba.250) top center no-repeat}.boxcontent{padding:10px}.contentbox .scroller{position:absolute;top:34px;left:0;right:0;bottom:0;overflow:auto}.iframebox{position:absolute;top:0;left:0;right:0;bottom:0}.footerleft{padding:0 12px 4px 12px}.propform fieldset{margin-bottom:20px;border:0;padding:0}.propform fieldset legend{display:block;font-size:14px;font-weight:bold;padding-bottom:10px;margin-bottom:0}.propform fieldset fieldset legend{color:#666;font-size:12px}.propform div.prop{margin-bottom:.5em}.propform div.prop.block label{display:block;margin-bottom:.3em}.propform div.prop.block input,.propform div.prop.block textarea{width:95%}.propform a.disabled{color:#999;text-decoration:none;cursor:default}fieldset.floating{float:left;margin-right:10px;margin-bottom:10px}table.propform{width:100%;border-spacing:0;border-collapse:collapse}ul.proplist li,table.propform td{width:80%;padding:4px 10px;background:#eee;border-bottom:2px solid #fff}table.propform td.title{width:20%;color:#333;padding-right:20px;white-space:nowrap}table.propform .mceLayout td{padding:0;border-bottom:0}ul.proplist{list-style:none;margin:0;padding:0}ul.proplist li{width:auto}#pluginbody{position:absolute;top:0;left:0;right:0;bottom:0}#login-form{position:relative;width:580px;margin:20ex auto 2ex auto}#login-form .box-inner{width:430px;background:url(images/linen_login.jpg?v=0484.10363) top left no-repeat #5c5c5c;margin:0 50px;padding:10px 24px 24px 24px;border:1px solid #333;border-radius:5px;box-shadow:inset 0 0 1px #ccc;-webkit-box-shadow:inset 0 0 1px #ccc}#login-form .box-bottom{background:url(images/login_shadow.png?v=1169.789) top center no-repeat;margin-top:-3px;padding-top:10px}#login-form .noscriptwarning{margin:0 auto;width:430px;color:#cf2734;font-size:110%;font-weight:bold}#login-form td.input{width:80%;padding:8px}#login-form input[type="text"],#login-form input[type="password"]{width:100%;border-color:#666}#login-form input.button{color:#444;text-shadow:0 1px 1px #fff;border-color:#f9f9f9;background:#f9f9f9;background:-moz-linear-gradient(top,#f9f9f9 0,#e2e2e2 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0,#f9f9f9),color-stop(100%,#e2e2e2));background:-o-linear-gradient(top,#f9f9f9 0,#e2e2e2 100%);background:-ms-linear-gradient(top,#f9f9f9 0,#e2e2e2 100%);background:linear-gradient(to bottom,#f9f9f9 0,#e2e2e2 100%);box-shadow:inset 0 1px 0 0 #fff;-webkit-box-shadow:inset 0 1px 0 0 #fff}#login-form input.button:hover,#login-form input.button:focus{box-shadow:0 0 5px 2px rgba(71,135,177,0.9),inset 0 1px 0 0 #fff;-webkit-box-shadow:0 0 5px 2px rgba(71,135,177,0.9),inset 0 1px 0 0 #fff}#login-form input.button:active{color:#333;background:-moz-linear-gradient(top,#dcdcdc 0,#f9f9f9 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0,#dcdcdc),color-stop(100%,#f9f9f9));background:-o-linear-gradient(top,#dcdcdc 0,#f9f9f9 100%);background:-ms-linear-gradient(top,#dcdcdc 0,#f9f9f9 100%);background:linear-gradient(to bottom,#dcdcdc 0,#f9f9f9 100%)}#login-form form table{width:98%}#login-form td.title{width:20%;white-space:nowrap;color:#cecece;text-shadow:0 1px 1px black;text-align:right;padding-right:1em}#login-form p.formbuttons{margin-top:2em;text-align:center}#login-form #logo{margin-bottom:20px;border:0}#login-form #message{min-height:40px;padding:5px 25px;text-align:center;font-size:1.1em}#login-form #message div{display:inline-block;padding-right:0;font-size:12px}#bottomline{font-size:90%;text-align:center;margin-top:2em}.searchbox{position:relative}#quicksearchbar{position:absolute;right:2px;top:2px;width:240px}.searchbox input,#quicksearchbar input{width:176px;margin:0;padding:3px 30px 3px 34px;height:18px;background:#f1f1f1;border-color:#ababab;font-weight:bold;font-size:11px}.searchbox .searchicon,.searchbox #searchmenulink,#quicksearchbar #searchmenulink{position:absolute;top:5px;left:6px}.searchbox #searchreset,.searchbox .iconbutton.reset,#quicksearchbar #searchreset{position:absolute;top:4px;right:1px}.listsearchbox{padding:4px;background:#c7e3ef;display:none}.listsearchbox input{width:100%;height:26px;-moz-box-sizing:border-box;box-sizing:border-box}.toolbar .spacer{display:inline-block;width:24px;height:40px;padding:0}.toolbar a.button{text-align:center;font-size:10px;color:#555;min-width:50px;max-width:70px;height:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:28px 2px 0 2px;text-shadow:0 1px 1px #eee;box-shadow:none;-webkit-box-shadow:none;background:url(images/buttons.png?v=51d4.15699) -100px 0 no-repeat transparent;border:0;border-radius:0}.dropbutton .dropbuttontip:focus,.toolbar a.button:focus{color:#fff;text-shadow:0 1px 1px #666;background-color:rgba(30,150,192,0.5);border-radius:3px}.toolbar a.button.disabled{opacity:.4}.dropbutton{display:inline-block;position:relative}.dropbutton .dropbuttontip{display:block;position:absolute;right:0;top:0;height:41px;width:18px;overflow:hidden;text-indent:-5000px;background:url(images/buttons.png?v=51d4.15699) 0 -1255px no-repeat;cursor:pointer;outline:0}.dropbutton .dropbuttontip:focus,.dropbutton .dropbuttontip:hover{background-position:-26px -1255px}.dropbutton a.button.disabled+.dropbuttontip{opacity:.5}.dropbutton a.button.disabled+.dropbuttontip:hover{background-position:0 -1255px}.dropbutton a.button{margin-left:0;padding-left:0;margin-right:0;padding-right:0}.toolbar a.button.back{background-position:0 -1216px}.toolbar a.button.checkmail{background-position:center -1176px}.toolbar a.button.compose{background-position:center -530px}.toolbar a.button.reply{background-position:center -570px}.toolbar a.button.reply-all{min-width:64px;background-position:0 -610px}.toolbar a.button.forward{min-width:64px;background-position:0 -650px}.toolbar a.button.delete{background-position:center -690px}.toolbar a.button.archive{background-position:center -730px}.toolbar a.button.junk{background-position:center -770px}.toolbar a.button.print{background-position:center -810px}.toolbar a.button.markmessage{background-position:center -1094px}.toolbar a.button.move{background-position:center -1971px}.toolbar a.button.more{background-position:center -850px}.toolbar a.button.attach{background-position:center -890px}.toolbar a.button.spellcheck{min-width:64px;background-position:0 -930px}.toolbar a.button.spellcheck.selected{background-position:0 -1620px;color:#1978a1}.toolbar a.button.insertsig{background-position:center -1135px}.toolbar a.button.search{background-position:center -970px}.toolbar a.button.import{background-position:center -1012px}.toolbar a.button.export{min-width:64px;background-position:0 -1054px}.toolbar a.button.send{background-position:center -1660px}.toolbar a.button.savedraft{background-position:center -1700px}.toolbar a.button.close{background-position:0 -1745px}.toolbar a.button.download{background-position:center -1892px}.toolbar a.button.responses{background-position:center -1932px}a.menuselector{display:inline-block;border:1px solid #ababab;border-radius:4px;background:#f8f8f8;background:-moz-linear-gradient(top,#f8f8f8 0,#ddd 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0,#f8f8f8),color-stop(100%,#ddd));background:-o-linear-gradient(top,#f8f8f8 0,#ddd 100%);background:-ms-linear-gradient(top,#f9f9f9 0,#ddd 100%);background:linear-gradient(to bottom,#f8f8f8 0,#ddd 100%);text-decoration:none;color:#333;cursor:pointer;white-space:nowrap}a.menuselector .handle{display:inline-block;padding:0 32px 0 6px;height:20px;line-height:19px;text-shadow:0 1px 1px #fff;background:url(images/selector.png?v=799c.181) right center no-repeat;border-radius:4px}a.menuselector:active{background:#ddd;background:-moz-linear-gradient(top,#ddd 0,#f8f8f8 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0,#ddd),color-stop(100%,#f8f8f8));background:-o-linear-gradient(top,#ddd 0,#f8f8f8 100%);background:-ms-linear-gradient(top,#ddd 0,#f8f8f8 100%);background:linear-gradient(to bottom,#ddd 0,#f8f8f8 100%);text-decoration:none}select.decorated{position:relative;z-index:10;opacity:0;height:22px;cursor:pointer;-khtml-appearance:none;-webkit-appearance:none;border:0}html.opera select.decorated{opacity:1}select.decorated option{color:#fff;background:#444;border:0;border-top:1px solid #5a5a5a;border-bottom:1px solid #333;text-shadow:0 1px 1px #333;padding:4px 6px;outline:0;cursor:default}a.menuselector:focus,a.menuselector.focus,a.iconbutton:focus,.pagenav a.button:focus{border-color:#4fadd5;box-shadow:0 0 4px 2px rgba(71,135,177,0.8);-webkit-box-shadow:0 0 4px 2px rgba(71,135,177,0.8);outline:0}#quotadisplay{left:6px;height:18px;font-size:12px;font-weight:bold;text-shadow:0 1px 1px #fff;padding-left:30px;background:url(images/quota.png?v=7ea4.2033) -100px 0 no-repeat}table.quota-info{border-spacing:0;border-collapse:collapse;table-layout:fixed;margin:5px}table.quota-info td,table.quota-info th{color:white;border:1px solid lightgrey;padding:2px 3px;text-align:center;min-width:80px}table.quota-info td.name{text-align:left}table.quota-info td.root{font-style:italic}.popupmenu,#rcmKSearchpane{display:none;position:absolute;top:32px;left:90px;width:auto;max-height:70%;overflow:-moz-scrollbars-vertical;overflow-y:auto;background:#444;border:1px solid #999;z-index:240;border-radius:4px;box-shadow:0 2px 6px 0 #333;-webkit-box-shadow:0 2px 6px 0 #333}.popupmenu.dropdown{border-radius:0 0 4px 4px;border-top:0}ul.toolbarmenu,ul.toolbarmenu ul,#rcmKSearchpane ul{margin:0;padding:0;list-style:none}.googie_list td,ul.toolbarmenu li,#rcmKSearchpane ul li{color:#fff;white-space:nowrap;min-width:130px;margin:0;border-top:1px solid #5a5a5a;border-bottom:1px solid #333}.googie_list tr:first-child td,ul.toolbarmenu>li:first-child,select.decorated option:first-child{border-top:0}.googie_list tr:last-child td,ul.toolbarmenu>li:last-child,select.decorated option:last-child{border-bottom:0}.googie_list td span,ul.toolbarmenu li a{display:block;color:#666;text-shadow:0 1px 1px #333;text-decoration:none;min-height:14px;padding:6px 16px 6px 10px}.googie_list td span{padding:3px 10px}.googie_list td span,ul.toolbarmenu li a.active{color:#fff;cursor:default}.googie_list td.googie_list_onhover,ul.toolbarmenu li a.active:hover,ul.toolbarmenu li a.active:focus,#rcmKSearchpane ul li.selected,select.decorated option:hover,select.decorated option[selected='selected']{background-color:#00aad6;background:-moz-linear-gradient(top,#00aad6 0,#008fc9 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0,#00aad6),color-stop(100%,#008fc9));background:-o-linear-gradient(top,#00aad6 0,#008fc9 100%);background:-ms-linear-gradient(top,#00aad6 0,#008fc9 100%);background:linear-gradient(to bottom,#00aad6 0,#008fc9 100%);outline:0}ul.toolbarmenu.iconized li a,ul.toolbarmenu.selectable li a{padding-left:30px}ul.toolbarmenu.selectable li a.selected{background:url(images/messages.png?v=3a4f.1461) 4px -27px no-repeat}ul.toolbarmenu li label{display:block;color:#fff;padding:4px 8px;text-shadow:0 1px 1px #333}ul.toolbarmenu li.separator label{color:#bbb;font-style:italic}ul.toolbarmenu li a.icon{color:#eee;padding:2px 6px}ul.toolbarmenu li span.icon,#rcmKSearchpane ul li i.icon{display:block;min-height:14px;padding:4px 4px 1px 24px;height:17px;background-image:url(images/listicons.png?v=1877.13442);background-position:-100px 0;background-repeat:no-repeat;opacity:.2}ul.toolbarmenu li a.active span.icon{opacity:.99}ul.toolbarmenu li span.read{background-position:0 -1220px}ul.toolbarmenu li span.unread{background-position:0 -1196px}ul.toolbarmenu li span.flagged{background-position:0 -1244px}ul.toolbarmenu li span.unflagged{background-position:0 -1268px}ul.toolbarmenu li span.mail{background-position:0 -1293px}ul.toolbarmenu li span.list{background-position:0 -1317px}ul.toolbarmenu li span.invert{background-position:0 -1340px}ul.toolbarmenu li span.cross{background-position:0 -1365px}ul.toolbarmenu li span.print{background-position:0 -1436px}ul.toolbarmenu li span.download{background-position:0 -1412px}ul.toolbarmenu li span.edit{background-position:0 -1388px}ul.toolbarmenu li span.viewsource{background-position:0 -1460px}ul.toolbarmenu li span.extwin{background-position:0 -1484px}ul.toolbarmenu li span.conversation{background-position:0 -1532px}ul.toolbarmenu li span.move{background-position:0 -2126px}ul.toolbarmenu li span.copy{background-position:0 -2150px}#snippetslist{max-width:200px}#snippetslist li a{overflow:hidden;text-overflow:ellipsis}#rcmKSearchpane{border-radius:0 0 4px 4px;border-top:0}#rcmKSearchpane ul li{text-shadow:0 1px 1px #333;text-decoration:none;min-height:14px;padding:6px 10px 6px 28px;border:0;cursor:default;position:relative}#rcmKSearchpane ul li i.icon{opacity:.99;position:absolute;top:4px;left:5px;width:18px;height:18px;padding:0;background-position:-1px -2223px}#rcmKSearchpane ul li.group i.icon{background-position:-1px -2247px}.popupdialog{display:none;padding:10px}.popupdialog .formbuttons{margin:20px 0 4px 0}.ui-dialog .prompt input{display:block;margin:8px 0}.hint{margin:4px 0;color:#999;text-shadow:0 1px 1px #fff}.splitter{user-select:none;-moz-user-select:none;-khtml-user-select:none;position:absolute;background:url(images/splitter.png?v=2724.136) center no-repeat}.splitter-h{height:10px;width:100%;cursor:n-resize;cursor:row-resize;background-position:center 0}.splitter-v{width:10px;height:100%;cursor:e-resize;cursor:col-resize;background-position:0 center}#rcmdraglayer{min-width:260px;width:auto !important;width:260px;padding:6px 8px;background:#444;border:1px solid #555;border-radius:4px;box-shadow:0 2px 6px 0 #333;-webkit-box-shadow:0 2px 6px 0 #333;z-index:250;color:#ccc;white-space:nowrap;opacity:.92;text-shadow:0 1px 1px #333}#rcmdraglayer:after{content:"";position:absolute;top:6px;left:-6px;border-style:solid;border-width:6px 6px 6px 0;border-color:transparent #444;display:block;width:0;z-index:251}.draglayercopy:before{position:absolute;bottom:-6px;left:-6px;content:" ";width:16px;height:16px;background:url(images/buttons.png?v=51d4.15699) -7px -358px no-repeat;z-index:255}.popup label>input{margin-left:10px}#folder-selector{z-index:1000}#folder-selector li a span{background:url(images/listicons.png?v=1877.13442) 4px -2021px no-repeat;display:block;height:17px;min-height:14px;padding:4px 4px 1px 28px;overflow:hidden;max-width:120px;text-overflow:ellipsis}#folder-selector li a.virtual{opacity:.2}#folder-selector li a.inbox span{background-position:4px -2049px}#folder-selector li a.drafts span{background-position:4px -1388px}#folder-selector li a.sent span{background-position:4px -2074px}#folder-selector li a.trash span{background-position:4px -1508px}#folder-selector li a.junk span{background-position:4px -2100px}.folderlist li.mailbox a{padding-left:36px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;background-image:url(images/listicons.png?v=1877.13442);background-repeat:no-repeat;background-position:6px 3px}.folderlist li.mailbox.unread>a{padding-right:36px}.folderlist li.mailbox>a:focus,.folderlist li.mailbox.selected>a{background-position:6px -21px}.folderlist li.mailbox.inbox>a{background-position:6px -189px}.folderlist li.mailbox.inbox>a:focus,.folderlist li.mailbox.inbox.selected>a{background-position:6px -213px}.folderlist li.mailbox.drafts>a{background-position:6px -238px}.folderlist li.mailbox.drafts>a:focus,.folderlist li.mailbox.drafts.selected>a{background-position:6px -262px}.folderlist li.mailbox.sent>a{background-position:6px -286px}.folderlist li.mailbox.sent>a:focus,.folderlist li.mailbox.sent.selected>a{background-position:6px -310px}.folderlist li.mailbox.junk>a{background-position:6px -334px}.folderlist li.mailbox.junk>a:focus,.folderlist li.mailbox.junk.selected>a{background-position:6px -358px}.folderlist li.mailbox.trash>a{background-position:6px -382px}.folderlist li.mailbox.trash>a:focus,.folderlist li.mailbox.trash.selected>a{background-position:6px -406px}.folderlist li.mailbox.trash.empty>a{background-position:6px -1924px}.folderlist li.mailbox.trash.empty>a:focus,.folderlist li.mailbox.trash.empty.selected>a{background-position:6px -1948px}.folderlist li.mailbox.archive>a{background-position:6px -1699px}.folderlist li.mailbox.archive>a:focus,.folderlist li.mailbox.archive.selected>a{background-position:6px -1723px}.folderlist li.mailbox ul li.drafts>a{background-position:23px -238px}.folderlist li.mailbox ul li.drafts>a:focus,.folderlist li.mailbox ul li.drafts.selected>a{background-position:23px -262px}.folderlist li.mailbox ul li.sent>a{background-position:23px -286px}.folderlist li.mailbox ul li.sent>a:focus,.folderlist li.mailbox ul li.sent.selected>a{background-position:23px -310px}.folderlist li.mailbox ul li.junk>a{background-position:23px -334px}.folderlist li.mailbox ul li.junk>a:focus,.folderlist li.mailbox ul li.junk.selected>a{background-position:23px -358px}.folderlist li.mailbox ul li.trash>a{background-position:23px -382px}.folderlist li.mailbox ul li.trash>a:focus,.folderlist li.mailbox ul li.trash.selected>a{background-position:23px -406px}.folderlist li.mailbox ul li.trash.empty>a{background-position:23px -1924px}.folderlist li.mailbox ul li.trash.empty>a:focus,.folderlist li.mailbox ul li.trash.empty.selected>a{background-position:23px -1948px}.folderlist li.mailbox ul li.archive>a{background-position:23px -1699px}.folderlist li.mailbox ul li.archive>a:focus,.folderlist li.mailbox ul li.archive.selected>a{background-position:23px -1723px}.folderlist li.virtual>a{color:#aaa}.folderlist li.mailbox div.treetoggle{top:13px;left:19px}.folderlist li.mailbox ul li:last-child{border-bottom:0}.folderlist li.mailbox ul{list-style:none;margin:0;padding:0;border-top:1px solid #bbd3da}.folderlist li.mailbox ul li a{padding-left:52px;background-position:22px -95px}.folderlist li.mailbox ul li>a:focus,.folderlist li.mailbox ul li.selected>a{background-position:22px -119px}.folderlist li.mailbox ul li div.treetoggle{left:33px;top:14px}.folderlist li.mailbox ul ul li.mailbox a{padding-left:68px;background-position:38px -95px}.folderlist li.mailbox ul ul li>a:focus,.folderlist li.mailbox ul ul li.selected>a{background-position:38px -119px}.folderlist li.mailbox ul ul li div.treetoggle{left:48px}.folderlist li.mailbox ul ul ul li.mailbox a{padding-left:84px;background-position:54px -95px}.folderlist li.mailbox ul ul ul li>a:focus,.folderlist li.mailbox ul ul ul li.selected>a{background-position:54px -119px}.folderlist li.mailbox ul ul ul li div.treetoggle{left:64px}.folderlist li.mailbox ul ul ul ul li.mailbox a{padding-left:100px;background-position:70px -95px}.folderlist li.mailbox ul ul ul ul li>a:focus,.folderlist li.mailbox ul ul ul ul li.selected>a{background-position:70px -119px}.folderlist li.mailbox ul ul ul ul li div.treetoggle{left:80px}.folderlist li.mailbox ul ul ul ul ul li{padding-left:16px}.folderlist li.mailbox ul ul ul ul ul li div.treetoggle{left:96px}.attachmentslist{list-style:none;margin:0;padding:0;overflow:hidden;text-overflow:ellipsis}.attachmentslist li{display:block;position:relative;background:url(images/filetypes.png?v=91f3.4626) 0 0 no-repeat;margin-bottom:1px}.attachmentslist li.txt,.attachmentslist li.text{background-position:0 -416px}.attachmentslist li.pdf{background-position:0 -26px}.attachmentslist li.doc,.attachmentslist li.docx,.attachmentslist li.msword{background-position:0 -52px}.attachmentslist li.odt{background-position:0 -78px}.attachmentslist li.xls,.attachmentslist li.xlsx,.attachmentslist li.msexcel{background-position:0 -104px}.attachmentslist li.ods{background-position:0 -130px}.attachmentslist li.zip,.attachmentslist li.gz{background-position:0 -156px}.attachmentslist li.rar{background-position:0 -182px}.attachmentslist li.image{background-position:0 -208px}.attachmentslist li.jpg,.attachmentslist li.jpeg{background-position:0 -234px}.attachmentslist li.png{background-position:0 -260px}.attachmentslist li.m4p{background-position:0 -286px}.attachmentslist li.mp3,.attachmentslist li.audio{background-position:0 -312px}.attachmentslist li.video{background-position:0 -338px}.attachmentslist li.ics,.attachmentslist li.calendar{background-position:0 -364px}.attachmentslist li.vcard{background-position:0 -390px}.attachmentslist li.sig,.attachmentslist li.pgp-signature,.attachmentslist li.pkcs7-signature{background-position:0 -442px}.attachmentslist li.html{background-position:0 -468px}.attachmentslist li.eml,.attachmentslist li.rfc822{background-position:0 -494px}.attachmentslist li.ppt,.attachmentslist li.pptx,.attachmentslist li.ppsx,.attachmentslist li.vnd.mspowerpoint{background-position:0 -520px}.attachmentslist li.odp,.attachmentslist li.otp{background-position:0 -546px}.attachmentslist li a,#compose-attachments ul li{display:block;color:#333;font-weight:bold;padding:3px 15px 3px 30px;text-shadow:0 1px 1px #fff;text-decoration:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:20px;outline:0}.attachmentslist li a.drop{background:url(images/buttons.png?v=51d4.15699) no-repeat scroll center -1570px;width:14px;height:20px;cursor:pointer;position:absolute;right:0;top:0;padding:0;overflow:hidden;text-indent:-5000px;outline:0}.attachmentslist li a:focus,.attachmentslist li a.drop:focus{background-color:rgba(30,150,192,0.5);border-radius:2px}#compose-attachments ul li{padding-right:28px}.attachmentslist li a:hover{text-decoration:underline}.attachmentslist li.uploading{background:url(images/ajaxloader.gif?v=c252.1434) 2px 6px no-repeat}.attachmentslist li a.delete,.attachmentslist li a.cancelupload{position:absolute;top:4px;right:0;width:20px;height:18px;padding:0;text-decoration:none;text-indent:-5000px;background-image:url(images/buttons.png?v=51d4.15699);background-position:-6px -338px;background-repeat:no-repeat}.attachmentslist li a.cancelupload{background-position:-6px -378px}.tabbed.ui-tabs{padding:0;border:0 !important;background:0}.ui-dialog .tabbed.ui-tabs{margin:-12px -8px 0 -8px}.boxcontent.tabbed.ui-tabs{padding:10px}.ui-tabs .tabsbar.ui-tabs-nav{margin-bottom:10px}.ui-dialog-content .ui-tabs .tabsbar.ui-tabs-nav{margin-bottom:0}.tabsbar .tablink:last-child{background:0}.tabsbar .tablink:last-child a{border-right:0}.ui-tabs .ui-tabs-nav li.tablink a{background:#fff}.ui-tabs fieldset.ui-tabs-panel{border:0;padding:0;margin-left:0;background:0}.ui-dialog .propform .ui-tabs-panel{display:block;background:#efefef;padding:.5em 1em}#image-selector-form.droptarget{background:url(images/filedrop.png?v=ba79.421) center bottom no-repeat}.mce-btn-small .mce-ico{display:inline}.mce-btn-small i{line-height:16px !important;vertical-align:text-top !important}_:not(),_:-moz-handler-blocked,.mozilla .mce-btn-small i{line-height:20px !important}
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/roundcubemail-1.1.3/temp/.gitignore new/roundcubemail-1.1.4/temp/.gitignore
--- old/roundcubemail-1.1.3/temp/.gitignore 2015-09-13 21:10:04.000000000 +0200
+++ new/roundcubemail-1.1.4/temp/.gitignore 1970-01-01 01:00:00.000000000 +0100
@@ -1 +0,0 @@
-*
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/roundcubemail-1.1.3/temp/.htaccess new/roundcubemail-1.1.4/temp/.htaccess
--- old/roundcubemail-1.1.3/temp/.htaccess 2015-09-13 21:10:04.000000000 +0200
+++ new/roundcubemail-1.1.4/temp/.htaccess 2015-12-23 10:18:12.000000000 +0100
@@ -1,2 +1,7 @@
# deny webserver access to this directory
-Deny from all
+<ifModule mod_authz_core.c>
+ Require all denied
+</ifModule>
+<ifModule !mod_authz_core.c>
+ Deny from all
+</ifModule>
1
0
Hello community,
here is the log from the commit of package libindicator for openSUSE:Factory checked in at 2016-01-01 19:48:52
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/libindicator (Old)
and /work/SRC/openSUSE:Factory/.libindicator.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "libindicator"
Changes:
--------
--- /work/SRC/openSUSE:Factory/libindicator/libindicator.changes 2015-10-20 00:08:34.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.libindicator.new/libindicator.changes 2016-01-01 19:51:17.000000000 +0100
@@ -1,0 +2,7 @@
+Sat Dec 26 21:14:56 UTC 2015 - sor.alexei(a)meowr.ru
+
+- Update to 12.10.2+bzr20140922:
+ * Add -lm via LDADD to resolve FTBFS in Ubuntu 16.04.
+- Remove fix-compilation.patch: fixed upstream.
+
+-------------------------------------------------------------------
Old:
----
fix-compilation.patch
libindicator_12.10.2+14.10.20140922.orig.tar.gz
New:
----
libindicator_12.10.2+16.04.20151208.orig.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ libindicator.spec ++++++
--- /var/tmp/diff_new_pack.o67b7E/_old 2016-01-01 19:51:18.000000000 +0100
+++ /var/tmp/diff_new_pack.o67b7E/_new 2016-01-01 19:51:18.000000000 +0100
@@ -19,9 +19,9 @@
%define soname libindicator3
%define soname_gtk2 libindicator
%define sover 7
-%define _version 12.10.2+14.10.20140922
+%define _version 12.10.2+16.04.20151208
Name: libindicator
-Version: 12.10.2+bzr20140922
+Version: 12.10.2+bzr20151208
Release: 0
Summary: Panel indicator applet libraries
License: GPL-3.0
@@ -30,8 +30,6 @@
Source: http://archive.ubuntu.com/ubuntu/pool/main/libi/%{name}/%{name}_%{_version}…
# PATCH-FIX-OPENSUSE dont-build-debug-tools.patch hrvoje.senjan(a)gmail.com -- Do not build debug tools that are used only for tests & developing indicators, which pulls libido.
Patch0: dont-build-debug-tools.patch
-# PATCH-FIX-OPENSUSE fix-compilation.patch sor.alexei(a)meowr.ru -- Fix "cannot find -lglib-2.0-lm" compilation error.
-Patch1: fix-compilation.patch
BuildRequires: gnome-common
BuildRequires: pkgconfig(dbus-glib-1)
BuildRequires: pkgconfig(gio-unix-2.0)
@@ -80,7 +78,6 @@
%prep
%setup -q -n %{name}-%{_version}
%patch0 -p1
-%patch1 -p1
%build
++++++ libindicator_12.10.2+14.10.20140922.orig.tar.gz -> libindicator_12.10.2+16.04.20151208.orig.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libindicator-12.10.2+14.10.20140922/configure.ac new/libindicator-12.10.2+16.04.20151208/configure.ac
--- old/libindicator-12.10.2+14.10.20140922/configure.ac 2014-09-22 15:40:07.000000000 +0200
+++ new/libindicator-12.10.2+16.04.20151208/configure.ac 2015-12-08 12:30:03.000000000 +0100
@@ -68,7 +68,7 @@
AM_CONDITIONAL(USE_GTK3, [test "x$with_gtk" = x3])
LT_LIB_M
-LIBINDICATOR_LIBS+="$LIBM"
+AC_SUBST(LIBM)
##############################
# Custom Junk
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libindicator-12.10.2+14.10.20140922/libindicator/Makefile.am new/libindicator-12.10.2+16.04.20151208/libindicator/Makefile.am
--- old/libindicator-12.10.2+14.10.20140922/libindicator/Makefile.am 2014-09-22 15:40:07.000000000 +0200
+++ new/libindicator-12.10.2+16.04.20151208/libindicator/Makefile.am 2015-12-08 12:30:03.000000000 +0100
@@ -68,7 +68,8 @@
-Wall -Werror -Wno-error=deprecated-declarations
libindicator_la_LIBADD = \
- $(LIBINDICATOR_LIBS)
+ $(LIBINDICATOR_LIBS) \
+ $(LIBM)
libindicator_la_LDFLAGS = \
$(COVERAGE_LDFLAGS) \
1
0
Hello community,
here is the log from the commit of package libosmocore for openSUSE:Factory checked in at 2016-01-01 19:48:51
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/libosmocore (Old)
and /work/SRC/openSUSE:Factory/.libosmocore.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "libosmocore"
Changes:
--------
--- /work/SRC/openSUSE:Factory/libosmocore/libosmocore.changes 2015-09-24 06:14:06.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.libosmocore.new/libosmocore.changes 2016-01-01 19:51:16.000000000 +0100
@@ -1,0 +2,16 @@
+Wed Dec 23 17:19:46 UTC 2015 - jengelh(a)inai.de
+
+- Update to new upstream release 0.9.0
+* ipaccess: add OAP proto_ext (in design).
+* stats: Report stat item values
+* stats: Implement timer based reporting
+* stats/vty: Add stats configuration
+* stat/vty: Add vty_out_statistics_full to show all statistics
+* stats: Add vty_out_stat_item_group
+* LaPDm: Refuse SUSPEND/RESUME/RECONNECT in BTS mode
+* ns: Force a defined state when sending NS RESET
+- Drop osmo-symbols.diff (solved better upstream),
+ osmo-talloc.diff, osmo-talloc2.diff, osmo-talloc3.diff (solved
+ upstream)
+
+-------------------------------------------------------------------
Old:
----
libosmocore-0.8.3.tar.xz
osmo-symbols.diff
osmo-talloc.diff
osmo-talloc2.diff
osmo-talloc3.diff
New:
----
libosmocore-0.9.0.45.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ libosmocore.spec ++++++
--- /var/tmp/diff_new_pack.5cZB0r/_old 2016-01-01 19:51:17.000000000 +0100
+++ /var/tmp/diff_new_pack.5cZB0r/_new 2016-01-01 19:51:17.000000000 +0100
@@ -17,7 +17,7 @@
Name: libosmocore
-Version: 0.8.3
+Version: 0.9.0.45
Release: 0
Summary: Open Source Mobile Communications Core Library
License: GPL-2.0 and GPL-2.0+ and LGPL-3.0+ and AGPL-3.0+
@@ -25,13 +25,9 @@
Url: http://bb.osmocom.org/trac/wiki/libosmocore
#Git-Clone: git://git.osmocom.org/libosmocore
-#Update osmo-version.diff too!
+#Snapshot: 0.9.0-45-ga2db75f
Source: %name-%version.tar.xz
-Patch1: osmo-talloc.diff
-Patch2: osmo-talloc2.diff
-Patch3: osmo-talloc3.diff
Patch4: osmo-pkgconfig.diff
-Patch5: osmo-symbols.diff
BuildRoot: %{_tmppath}/%{name}-%{version}-build
BuildRequires: autoconf
BuildRequires: automake >= 1.6
@@ -97,14 +93,14 @@
This subpackage contains libraries and header files for developing
applications that want to make use of libosmocodec.
-%package -n libosmocore6
+%package -n libosmocore7
Summary: Osmocom core library
License: GPL-2.0 and GPL-2.0+
Group: System/Libraries
# crc16.c has GPL2-only clauses, the rest (*.c) is GPL-2.0+
# talloc.c (LGPL-3.0+) is not part of libosmocore.so
-%description -n libosmocore6
+%description -n libosmocore7
libosmocore is a library with various utility functions shared
between OpenBSC and OsmocomBB.
@@ -113,7 +109,7 @@
License: GPL-2.0 and GPL-2.0+
Group: Development/Libraries/C and C++
# crc16.h has GPL2-only clauses, the rest (*.h) is GPL-2.0+
-Requires: libosmocore6 = %version
+Requires: libosmocore7 = %version
Requires: libtalloc-devel
%description -n libosmocore-devel
@@ -238,12 +234,12 @@
This subpackage contains libraries and header files for developing
applications that want to make use of libosmosim.
-%package -n libosmovty2
+%package -n libosmovty3
Summary: Osmocom VTY interface library
License: GPL-2.0+
Group: System/Libraries
-%description -n libosmovty2
+%description -n libosmovty3
libosmocore is a library with various utility functions that were
originally developed as part of the OpenBSC project, but which are of
a more generic nature and thus useful to (at least) other programs
@@ -255,7 +251,7 @@
License: GPL-2.0+
Group: Development/Libraries/C and C++
Requires: libosmocore-devel = %version
-Requires: libosmovty2 = %version
+Requires: libosmovty3 = %version
%description -n libosmovty-devel
libosmocore is a library with various utility functions that were
@@ -269,7 +265,7 @@
%prep
%setup -qn %name
-%patch -P 1 -P 2 -P 3 -P 4 -P 5 -p1
+%patch -P 4 -p1
%build
echo "%version" >.tarball-version
@@ -287,8 +283,8 @@
%post -n libosmocodec0 -p /sbin/ldconfig
%postun -n libosmocodec0 -p /sbin/ldconfig
-%post -n libosmocore6 -p /sbin/ldconfig
-%postun -n libosmocore6 -p /sbin/ldconfig
+%post -n libosmocore7 -p /sbin/ldconfig
+%postun -n libosmocore7 -p /sbin/ldconfig
%post -n libosmoctrl0 -p /sbin/ldconfig
%postun -n libosmoctrl0 -p /sbin/ldconfig
%post -n libosmogb4 -p /sbin/ldconfig
@@ -297,8 +293,8 @@
%postun -n libosmogsm5 -p /sbin/ldconfig
%post -n libosmosim0 -p /sbin/ldconfig
%postun -n libosmosim0 -p /sbin/ldconfig
-%post -n libosmovty2 -p /sbin/ldconfig
-%postun -n libosmovty2 -p /sbin/ldconfig
+%post -n libosmovty3 -p /sbin/ldconfig
+%postun -n libosmovty3 -p /sbin/ldconfig
%files tools
%defattr(-,root,root)
@@ -315,9 +311,9 @@
%_libdir/libosmocodec.so
%_libdir/pkgconfig/libosmocodec.pc
-%files -n libosmocore6
+%files -n libosmocore7
%defattr(-,root,root)
-%_libdir/libosmocore.so.6*
+%_libdir/libosmocore.so.7*
%files -n libosmocore-devel
%defattr(-,root,root)
@@ -371,9 +367,9 @@
%_libdir/libosmosim.so
%_libdir/pkgconfig/libosmosim.pc
-%files -n libosmovty2
+%files -n libosmovty3
%defattr(-,root,root)
-%_libdir/libosmovty.so.2*
+%_libdir/libosmovty.so.3*
%files -n libosmovty-devel
%defattr(-,root,root)
++++++ libosmocore-0.8.3.tar.xz -> libosmocore-0.9.0.45.tar.xz ++++++
++++ 6753 lines of diff (skipped)
1
0
Hello community,
here is the log from the commit of package libosmo-abis for openSUSE:Factory checked in at 2016-01-01 19:48:49
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/libosmo-abis (Old)
and /work/SRC/openSUSE:Factory/.libosmo-abis.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "libosmo-abis"
Changes:
--------
--- /work/SRC/openSUSE:Factory/libosmo-abis/libosmo-abis.changes 2015-04-07 09:29:29.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.libosmo-abis.new/libosmo-abis.changes 2016-01-01 19:51:15.000000000 +0100
@@ -1,0 +2,8 @@
+Wed Dec 23 17:34:54 UTC 2015 - jengelh(a)inai.de
+
+- Update to new upstream release 0.3.2.3
+* ortp: Guard the jitter stats with a version check
+* ortp: Export statistics for the bts or similar
+* export lapd_tei_alloc for libosmo-netif
+
+-------------------------------------------------------------------
Old:
----
libosmo-abis-0.3.1.tar.xz
New:
----
libosmo-abis-0.3.2.3.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ libosmo-abis.spec ++++++
--- /var/tmp/diff_new_pack.3QKQsa/_old 2016-01-01 19:51:16.000000000 +0100
+++ /var/tmp/diff_new_pack.3QKQsa/_new 2016-01-01 19:51:16.000000000 +0100
@@ -17,15 +17,15 @@
Name: libosmo-abis
-Version: 0.3.1
+Version: 0.3.2.3
Release: 0
Summary: Osmocom library for A-bis interface between BTS and BSC
License: AGPL-3.0+ and GPL-2.0+
-Group: Development/Libraries/C and C++
+Group: Productivity/Telephony/Utilities
Url: http://openbsc.osmocom.org/trac/wiki/libosmo-abis
#Git-Clone: git://git.osmocom.org/libosmo-abis
-#Snapshot: 0.3.1
+#Snapshot: 0.3.2-1-g86fc3c8
Source: %name-%version.tar.xz
Patch1: osmo-talloc.diff
Patch2: 0001-build-resolve-compiler-warnings.patch
@@ -46,12 +46,12 @@
BSC. This interface allows control of the radio equipment and radio
frequency allocation in the BTS.
-%package -n libosmoabis4
+%package -n libosmoabis5
Summary: Osmocom A-bis interface core library
License: AGPL-3.0+
Group: System/Libraries
-%description -n libosmoabis4
+%description -n libosmoabis5
In the GSM system architecture, A-bis is a Base Station
System-internal interface linking the Base Transceiver Stations (BTS)
and Base Station Controller (BSC). This interface allows control of
@@ -61,7 +61,7 @@
Summary: Development files for the Osmocom A-bis core library
License: AGPL-3.0+
Group: Development/Libraries/C and C++
-Requires: libosmoabis4 = %version
+Requires: libosmoabis5 = %version
Requires: libosmocore-devel >= 0.3.0
Requires: libosmogsm-devel >= 0.3.10
@@ -73,12 +73,12 @@
This subpackage contains libraries and header files for developing
applications that want to make use of libosmoabis.
-%package -n libosmotrau0
+%package -n libosmotrau1
Summary: Osmocom TRAU (E1/RTP) library
License: GPL-2.0+
Group: System/Libraries
-%description -n libosmotrau0
+%description -n libosmotrau1
The Transcoder Rate Adaptor Unit enables the use of lower rates (32,
16 or 8 kbps) over the A-bis interface instead of the 64 kbps ISDN
rate for which the Mobile Switching Center (MSC) is designed.
@@ -87,7 +87,7 @@
Summary: Development files for the Osmocom TRAU (E1/RTP) library
License: GPL-2.0+
Group: Development/Libraries/C and C++
-Requires: libosmotrau0 = %version
+Requires: libosmotrau1 = %version
%description -n libosmotrau-devel
The Transcoder Rate Adaptor Unit enables the use of lower bitrates
@@ -115,14 +115,14 @@
%check
make %{?_smp_mflags} check
-%post -n libosmoabis4 -p /sbin/ldconfig
-%postun -n libosmoabis4 -p /sbin/ldconfig
-%post -n libosmotrau0 -p /sbin/ldconfig
-%postun -n libosmotrau0 -p /sbin/ldconfig
+%post -n libosmoabis5 -p /sbin/ldconfig
+%postun -n libosmoabis5 -p /sbin/ldconfig
+%post -n libosmotrau1 -p /sbin/ldconfig
+%postun -n libosmotrau1 -p /sbin/ldconfig
-%files -n libosmoabis4
+%files -n libosmoabis5
%defattr(-,root,root)
-%_libdir/libosmoabis.so.4*
+%_libdir/libosmoabis.so.5*
%files -n libosmoabis-devel
%defattr(-,root,root)
@@ -132,9 +132,9 @@
%_libdir/libosmoabis.so
%_libdir/pkgconfig/libosmoabis.pc
-%files -n libosmotrau0
+%files -n libosmotrau1
%defattr(-,root,root)
-%_libdir/libosmotrau.so.0*
+%_libdir/libosmotrau.so.1*
%files -n libosmotrau-devel
%defattr(-,root,root)
++++++ 0001-build-resolve-compiler-warnings.patch ++++++
--- /var/tmp/diff_new_pack.3QKQsa/_old 2016-01-01 19:51:16.000000000 +0100
+++ /var/tmp/diff_new_pack.3QKQsa/_new 2016-01-01 19:51:16.000000000 +0100
@@ -1,4 +1,4 @@
-From 025e2dd7129483300efe8dd02f8e1198c92aaad5 Mon Sep 17 00:00:00 2001
+From 34ce619dc89fa82f55cc2ebba85e3435d04d2531 Mon Sep 17 00:00:00 2001
From: Jan Engelhardt <jengelh(a)inai.de>
Date: Thu, 2 Apr 2015 14:25:43 +0200
Subject: [PATCH] build: resolve compiler warnings
@@ -23,7 +23,7 @@
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/src/trau/osmo_ortp.c b/src/trau/osmo_ortp.c
-index fedc977..55fce87 100644
+index 65ec269..f605af9 100644
--- a/src/trau/osmo_ortp.c
+++ b/src/trau/osmo_ortp.c
@@ -326,16 +326,16 @@ struct osmo_rtp_socket *osmo_rtp_socket_create(void *talloc_ctx, unsigned int fl
@@ -48,5 +48,5 @@
/* initialize according to the RFC */
rtp_session_set_seq_number(rs->sess, random());
--
-2.1.4
+2.4.3
++++++ libosmo-abis-0.3.1.tar.xz -> libosmo-abis-0.3.2.3.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libosmo-abis/configure.ac new/libosmo-abis/configure.ac
--- old/libosmo-abis/configure.ac 2015-03-01 02:14:11.000000000 +0100
+++ new/libosmo-abis/configure.ac 2015-12-23 18:32:12.000000000 +0100
@@ -2,7 +2,7 @@
m4_esyscmd([./git-version-gen .tarball-version]),
[openbsc(a)lists.osmocom.org]
-AM_INIT_AUTOMAKE([foreign dist-bzip2 no-dist-gzip 1.6])
+AM_INIT_AUTOMAKE([foreign dist-bzip2 no-dist-gzip 1.6 subdir-objects])
AC_CONFIG_TESTDIR(tests)
dnl kernel style compile messages
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libosmo-abis/debian/changelog new/libosmo-abis/debian/changelog
--- old/libosmo-abis/debian/changelog 2015-03-01 02:14:11.000000000 +0100
+++ new/libosmo-abis/debian/changelog 2015-12-23 18:32:12.000000000 +0100
@@ -1,4 +1,10 @@
-libosmo-abis (0.3.1) UNRELEASED; urgency=medium
+libosmo-abis (0.3.2) UNRELEASED; urgency=medium
+
+ * Bump so version to re-link libosmovty
+
+ -- Holger Hans Peter Freyther <holger(a)moiji-mobile.com> Tue, 03 Nov 2015 09:42:01 +0100
+
+libosmo-abis (0.3.1) unstable; urgency=medium
* New upstream release of libosmo-abis
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libosmo-abis/debian/compat new/libosmo-abis/debian/compat
--- old/libosmo-abis/debian/compat 2015-03-01 02:14:11.000000000 +0100
+++ new/libosmo-abis/debian/compat 2015-12-23 18:32:12.000000000 +0100
@@ -1 +1 @@
-7
+9
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libosmo-abis/debian/control new/libosmo-abis/debian/control
--- old/libosmo-abis/debian/control 2015-03-01 02:14:11.000000000 +0100
+++ new/libosmo-abis/debian/control 2015-12-23 18:32:12.000000000 +0100
@@ -2,8 +2,8 @@
Section: libs
Priority: optional
Maintainer: Harald Welte <laforge(a)gnumonks.org>
-Build-Depends: debhelper (>= 7.0.50~), autotools-dev, autoconf, automake, libtool, dh-autoreconf, libdpkg-perl, git, libosmocore-dev (>= 0.6.4), pkg-config, libortp-dev
-Standards-Version: 3.9.0
+Build-Depends: debhelper (>= 9), autotools-dev, autoconf, automake, libtool, dh-autoreconf, libdpkg-perl, git, libosmocore-dev (>= 0.6.4), pkg-config, libortp-dev
+Standards-Version: 3.9.6
Homepage: http://openbsc.osmocom.org/trac/wiki/libosmo-abis
Vcs-Git: git://git.osmocom.org/libosmo-abis.git
Vcs-Browser: http://git.osmocom.org/gitweb?p=libosmo-abis.git;a=summary
@@ -11,32 +11,37 @@
Package: libosmo-abis
Section: oldlibs
Architecture: any
-Depends: libosmoabis4, libosmotrau0, ${misc:Depends}
+Depends: libosmoabis5 (= ${binary:Version}), libosmotrau1 (= ${binary:Version}), ${misc:Depends}
+Multi-Arch: same
Description: Legacy package for libosmo-abis
libosmo-abis is an empty package helping in the transition to one
package per DSO.
-Package: libosmoabis4
+Package: libosmoabis5
Section: libs
Architecture: any
Depends: ${shlibs:Depends}, ${misc:Depends}
+Multi-Arch: same
Description: GSM A-bis handling
-Package: libosmotrau0
+Package: libosmotrau1
Section: libs
Architecture: any
Depends: ${shlibs:Depends}, ${misc:Depends}
+Multi-Arch: same
Description: GSM trau handling
Package: libosmo-abis-dev
Section: libdevel
Architecture: any
-Depends: ${misc:Depends}, libosmotrau0, libosmoabis4
+Depends: ${misc:Depends}, libosmotrau1 (= ${binary:Version}), libosmoabis5 (= ${binary:Version})
+Multi-Arch: same
Description: Development headers for A-bis interface.
Package: libosmo-abis-dbg
Section: debug
Architecture: any
Priority: extra
-Depends: libosmoabis4 (= ${binary:Version}), libosmotrau0 (= ${binary:Version}), ${misc:Depends}
+Depends: libosmoabis5 (= ${binary:Version}), libosmotrau1 (= ${binary:Version}), ${misc:Depends}
+Multi-Arch: same
Description: Debug symbols for A-bis interface.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libosmo-abis/debian/libosmo-abis-dev.install new/libosmo-abis/debian/libosmo-abis-dev.install
--- old/libosmo-abis/debian/libosmo-abis-dev.install 2015-03-01 02:14:11.000000000 +0100
+++ new/libosmo-abis/debian/libosmo-abis-dev.install 2015-12-23 18:32:12.000000000 +0100
@@ -1,5 +1,5 @@
usr/include/*
-usr/lib/lib*.a
-usr/lib/lib*.so
-usr/lib/lib*.la
-usr/lib/pkgconfig/*
+usr/lib/*/lib*.a
+usr/lib/*/lib*.so
+usr/lib/*/lib*.la
+usr/lib/*/pkgconfig/*
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libosmo-abis/debian/libosmoabis4.install new/libosmo-abis/debian/libosmoabis4.install
--- old/libosmo-abis/debian/libosmoabis4.install 2015-03-01 02:14:11.000000000 +0100
+++ new/libosmo-abis/debian/libosmoabis4.install 1970-01-01 01:00:00.000000000 +0100
@@ -1 +0,0 @@
-usr/lib/libosmoabis.so.*
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libosmo-abis/debian/libosmoabis5.install new/libosmo-abis/debian/libosmoabis5.install
--- old/libosmo-abis/debian/libosmoabis5.install 1970-01-01 01:00:00.000000000 +0100
+++ new/libosmo-abis/debian/libosmoabis5.install 2015-12-23 18:32:12.000000000 +0100
@@ -0,0 +1 @@
+usr/lib/*/libosmoabis.so.*
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libosmo-abis/debian/libosmotrau0.install new/libosmo-abis/debian/libosmotrau0.install
--- old/libosmo-abis/debian/libosmotrau0.install 2015-03-01 02:14:11.000000000 +0100
+++ new/libosmo-abis/debian/libosmotrau0.install 1970-01-01 01:00:00.000000000 +0100
@@ -1 +0,0 @@
-usr/lib/libosmotrau.so.*
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libosmo-abis/debian/libosmotrau1.install new/libosmo-abis/debian/libosmotrau1.install
--- old/libosmo-abis/debian/libosmotrau1.install 1970-01-01 01:00:00.000000000 +0100
+++ new/libosmo-abis/debian/libosmotrau1.install 2015-12-23 18:32:12.000000000 +0100
@@ -0,0 +1 @@
+usr/lib/*/libosmotrau.so.*
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libosmo-abis/debian/rules new/libosmo-abis/debian/rules
--- old/libosmo-abis/debian/rules 2015-03-01 02:14:11.000000000 +0100
+++ new/libosmo-abis/debian/rules 2015-12-23 18:32:12.000000000 +0100
@@ -4,11 +4,11 @@
DEBVERS := $(shell echo '$(DEBIAN)' | cut -d- -f1)
VERSION := $(shell echo '$(DEBVERS)' | sed -e 's/[+-].*//' -e 's/~//g')
-export DH_VERBOSE=1
+#export DH_VERBOSE=1
export DEB_BUILD_HARDENING=1
%:
- dh --with autoreconf $@ --fail-missing
+ dh $@ --with autoreconf --fail-missing
override_dh_strip:
dh_strip --dbg-package=libosmo-abis-dbg
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libosmo-abis/include/osmocom/abis/lapd.h new/libosmo-abis/include/osmocom/abis/lapd.h
--- old/libosmo-abis/include/osmocom/abis/lapd.h 2015-03-01 02:14:11.000000000 +0100
+++ new/libosmo-abis/include/osmocom/abis/lapd.h 2015-12-23 18:41:55.000000000 +0100
@@ -50,6 +50,8 @@
__LAPD_ERR_MAX
};
+struct lapd_tei *lapd_tei_alloc(struct lapd_instance *li, uint8_t tei);
+
int lapd_receive(struct lapd_instance *li, struct msgb *msg, int *error);
void lapd_transmit(struct lapd_instance *li, uint8_t tei, uint8_t sapi,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libosmo-abis/include/osmocom/trau/osmo_ortp.h new/libosmo-abis/include/osmocom/trau/osmo_ortp.h
--- old/libosmo-abis/include/osmocom/trau/osmo_ortp.h 2015-03-01 02:14:11.000000000 +0100
+++ new/libosmo-abis/include/osmocom/trau/osmo_ortp.h 2015-12-23 18:32:12.000000000 +0100
@@ -79,4 +79,10 @@
int subsys, int level,
const char *pfx);
+void osmo_rtp_socket_stats(struct osmo_rtp_socket *rs,
+ uint32_t *sent_packets, uint32_t *sent_octets,
+ uint32_t *recv_packets, uint32_t *recv_octets,
+ uint32_t *recv_lost, uint32_t *last_jitter);
+
+
#endif /* _OSMO_ORTP_H */
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libosmo-abis/src/Makefile.am new/libosmo-abis/src/Makefile.am
--- old/libosmo-abis/src/Makefile.am 2015-03-01 02:14:11.000000000 +0100
+++ new/libosmo-abis/src/Makefile.am 2015-12-23 18:32:12.000000000 +0100
@@ -1,7 +1,7 @@
# This is _NOT_ the library release version, it's an API version.
# Please read Chapter 6 "Library interface versions" of the libtool documentation before making any modification
-ABIS_LIBVERSION=4:0:0
-TRAU_LIBVERSION=0:0:0
+ABIS_LIBVERSION=5:0:0
+TRAU_LIBVERSION=1:0:0
AM_CPPFLAGS = $(all_includes) -I$(top_srcdir)/include -I$(top_builddir)
AM_CFLAGS= -Wall $(LIBOSMOCORE_CFLAGS) $(LIBOSMOGSM_CFLAGS) $(LIBOSMOVTY_CFLAGS) $(COVERAGE_CFLAGS)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libosmo-abis/src/subchan_demux.c new/libosmo-abis/src/subchan_demux.c
--- old/libosmo-abis/src/subchan_demux.c 2015-03-01 02:14:11.000000000 +0100
+++ new/libosmo-abis/src/subchan_demux.c 2015-12-23 18:32:12.000000000 +0100
@@ -44,7 +44,6 @@
}
#define SYNC_HDR_BITS 16
-static const uint8_t nullbytes[SYNC_HDR_BITS];
/* check if we have just completed the 16 bit zero + 1 bit one sync
* header, in accordance with GSM TS 08.60 Chapter 4.8.1 */
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libosmo-abis/src/trau/osmo_ortp.c new/libosmo-abis/src/trau/osmo_ortp.c
--- old/libosmo-abis/src/trau/osmo_ortp.c 2015-03-01 02:14:11.000000000 +0100
+++ new/libosmo-abis/src/trau/osmo_ortp.c 2015-12-23 18:32:32.000000000 +0100
@@ -546,3 +546,32 @@
stats->packet_recv, stats->hw_recv, stats->outoftime,
stats->cum_packet_loss, stats->discarded);
}
+
+void osmo_rtp_socket_stats(struct osmo_rtp_socket *rs,
+ uint32_t *sent_packets, uint32_t *sent_octets,
+ uint32_t *recv_packets, uint32_t *recv_octets,
+ uint32_t *recv_lost, uint32_t *last_jitter)
+{
+ const rtp_stats_t *stats;
+
+ *sent_packets = *sent_octets = *recv_packets = *recv_octets = 0;
+ *recv_lost = *last_jitter = 0;
+
+ stats = rtp_session_get_stats(rs->sess);
+ if (stats) {
+ /* truncate from 64bit to 32bit here */
+ *sent_packets = stats->packet_sent;
+ *sent_octets = stats->sent;
+ *recv_packets = stats->packet_recv;
+ *recv_octets = stats->recv;
+ *recv_lost = stats->cum_packet_loss;
+ }
+
+#if HAVE_ORTP_021
+ const jitter_stats_t *jitter;
+
+ jitter = rtp_session_get_jitter_stats(rs->sess);
+ if (jitter)
+ *last_jitter = jitter->jitter;
+#endif
+}
1
0
Hello community,
here is the log from the commit of package libinfinity for openSUSE:Factory checked in at 2016-01-01 19:48:47
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/libinfinity (Old)
and /work/SRC/openSUSE:Factory/.libinfinity.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "libinfinity"
Changes:
--------
--- /work/SRC/openSUSE:Factory/libinfinity/libinfinity.changes 2015-05-15 10:06:09.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.libinfinity.new/libinfinity.changes 2016-01-01 19:51:13.000000000 +0100
@@ -1,0 +2,7 @@
+Wed Dec 30 15:49:54 UTC 2015 - netzheimer(a)yahoo.de
+
+- Update to version 0.6.7:
+ + Fix crash when library is linked against glib 2.46 or newer.
+ + Fixes potential crashes in some other uncommon situations.
+
+-------------------------------------------------------------------
Old:
----
libinfinity-0.6.6.tar.gz
New:
----
libinfinity-0.6.7.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ libinfinity.spec ++++++
--- /var/tmp/diff_new_pack.uuaz6e/_old 2016-01-01 19:51:14.000000000 +0100
+++ /var/tmp/diff_new_pack.uuaz6e/_new 2016-01-01 19:51:14.000000000 +0100
@@ -20,7 +20,7 @@
Summary: Implementation of the Infinote collaborative editing protocol
License: LGPL-2.1+
Group: Development/Libraries/GNOME
-Version: 0.6.6
+Version: 0.6.7
Release: 0
%define _version 0.6
Url: http://gobby.0x539.de/
++++++ libinfinity-0.6.6.tar.gz -> libinfinity-0.6.7.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libinfinity-0.6.6/ChangeLog new/libinfinity-0.6.7/ChangeLog
--- old/libinfinity-0.6.6/ChangeLog 2015-05-13 02:57:57.000000000 +0200
+++ new/libinfinity-0.6.7/ChangeLog 2015-10-14 01:34:53.000000000 +0200
@@ -1,6 +1,115 @@
+commit a7bdd262474898d180285129f5aed3e87b04461a
+Author: Armin Burgmeier <armin(a)arbur.net>
+Date: Tue Oct 13 19:34:35 2015 -0400
+
+ Release libinfinity 0.6.7
+
+ NEWS | 8 ++++++++
+ 1 file changed, 8 insertions(+)
+
+commit d447fc406c0ceb2766f69ffec28f017baa7ed7a9
+Author: Armin Burgmeier <armin(a)arbur.net>
+Date: Mon Oct 12 19:51:50 2015 -0400
+
+ InfTextChunk: fix segment lookup for offset=0 (#10)
+
+ This used to work with glib 2.42, but it seems that the semantics of
+ g_sequence_search() have changed with respect to what item is returned
+ when the comparison function returns 0. The behavior in that case is not
+ documented. Fix this by passing a different comparison function that
+ never returns 0, so that there is no ambiguity in which segment is
+ returned.
+
+ libinftext/inf-text-chunk.c | 29 ++++++++++++++++++++++++++++-
+ 1 file changed, 28 insertions(+), 1 deletion(-)
+
+commit 3fb2be4fb355ed44541d6da486dc73c5dd739ca3
+Author: Armin Burgmeier <armin(a)arbur.net>
+Date: Mon Oct 12 19:51:40 2015 -0400
+
+ Fix integrity check in inf_text_chunk_get_byte_index_utf8()
+
+ libinftext/inf-text-chunk.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit 4fc1227317eea35b87e10686daf467642c9abe1e
+Author: Armin Burgmeier <armin(a)arbur.net>
+Date: Tue Jun 9 21:20:23 2015 -0400
+
+ Fix uninitialized variable when suggesting a SASL mechanism
+
+ libinfinity/common/inf-xmpp-connection.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+commit 28dd0736c7618861dd9a23e8793e4db865ce6a5e
+Author: Armin Burgmeier <armin(a)arbur.net>
+Date: Sun Jun 7 21:27:23 2015 -0400
+
+ InfXmppConnection: Fix strncmp invocation when suggesting SASL mechanism
+
+ libinfinity/common/inf-xmpp-connection.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit 4dfaf22925dbe12008627d0a604b179fd6e4b7b4
+Author: Armin Burgmeier <armin(a)arbur.net>
+Date: Wed May 27 22:21:22 2015 -0400
+
+ Fix g_free / g_slice_free mismatch
+
+ libinfinity/server/infd-directory.c | 18 ++++++++++++++++--
+ 1 file changed, 16 insertions(+), 2 deletions(-)
+
+commit d17398a0f850a79ffbe78c10bbe8ebfd0cd5e63c
+Author: Armin Burgmeier <armin(a)arbur.net>
+Date: Wed May 27 21:12:28 2015 -0400
+
+ InfdDirectory: Fix error reply to client when session proxy cannot
+ be created
+
+ libinfinity/server/infd-directory.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit 822b227c662e5fcaab3c1bdfdf224eebaefe7728
+Author: Armin Burgmeier <armin(a)arbur.net>
+Date: Sat May 23 14:39:59 2015 -0400
+
+ Fix session becoming inconsistent with active local users during
+ subscription
+
+ When the server sends the vector time of local users during subscription,
+ it now sends the last send vector instead of the real value of the
+ user time,
+ so that subsequent state vector diffs are consistent for the newly joined
+ client.
+
+ Conflicts:
+ libinfinity/adopted/inf-adopted-session.c
+
+ libinfinity/adopted/inf-adopted-session.c | 34 ++++++++++++++++++++++++++++-
+ 1 file changed, 33 insertions(+), 1 deletion(-)
+
+commit cf4588011a5023af36d6393f1f724a11742b84f1
+Author: Armin Burgmeier <armin(a)arbur.net>
+Date: Fri May 22 19:22:26 2015 -0400
+
+ Fix a possible crash when removing a browser entry
+
+ libinfgtk/inf-gtk-browser-store.c | 5 +++++
+ libinfgtk/inf-gtk-browser-view.c | 11 +++++++++++
+ 2 files changed, 16 insertions(+)
+
+commit 4522baf6a975f38e6874c90695b00af0d2854dfc
+Author: Armin Burgmeier <armin(a)arbur.net>
+Date: Tue May 12 20:58:49 2015 -0400
+
+ Post-release bump to 0.6.7
+
+ configure.ac | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
commit a5bc24e87714d3c3fa75711c5d06b9b8e4c81d53
Author: Armin Burgmeier <armin(a)arbur.net>
-Date: Tue May 12 20:12:52 2015 -0400
+Date: Tue May 12 20:12:52 2015 -0400
Release libinfinity 0.6.6
@@ -9,7 +118,7 @@
commit 3862714b942fe626308f06e01730df7b48921faf
Author: Armin Burgmeier <armin(a)arbur.net>
-Date: Tue May 12 20:55:41 2015 -0400
+Date: Tue May 12 20:55:41 2015 -0400
Fix make distcheck for recent automake versions
@@ -22,7 +131,7 @@
commit 06fa9455c687a67e4fc2c2f201817c64c73a3fcf
Author: Armin Burgmeier <armin(a)arbur.net>
-Date: Mon May 11 22:59:34 2015 -0400
+Date: Mon May 11 22:59:34 2015 -0400
Fix expired certificate validation (gobby #61)
@@ -31,7 +140,7 @@
commit 244c7e8d69b98330ac7a285922c6fcb0a167ae20
Author: Armin Burgmeier <armin(a)arbur.net>
-Date: Tue May 5 20:45:45 2015 -0400
+Date: Tue May 5 20:45:45 2015 -0400
Update caret position when only updating fixline state
@@ -45,7 +154,7 @@
commit fb0c8532694476f3f624f66eb12becf851147e27
Author: Armin Burgmeier <armin(a)arbur.net>
-Date: Mon May 4 20:31:12 2015 -0400
+Date: Mon May 4 20:31:12 2015 -0400
fixline buffer: Fix crash when iterating backwards through empty
base buffer
@@ -55,7 +164,7 @@
commit da06a82642c1d2d0d5a44f1ea3f62ad0b2b22c9a
Author: Armin Burgmeier <armin(a)arbur.net>
-Date: Sun May 3 17:07:46 2015 -0400
+Date: Sun May 3 17:07:46 2015 -0400
Fix insert/erase notifications in InfTextFixlineBuffer
@@ -69,7 +178,7 @@
commit 9b009160dd658fe9272d69025a8225b02eafb8de
Author: Armin Burgmeier <armin(a)arbur.net>
-Date: Thu Apr 30 21:37:23 2015 -0400
+Date: Thu Apr 30 21:37:23 2015 -0400
Fix create_end_iter() implementation in InfTextFixlineBuffer
@@ -78,7 +187,7 @@
commit 8990cf98ab43f3aca6a7bf12e9608b0e2e9b5c70
Author: Armin Burgmeier <armin(a)arbur.net>
-Date: Fri Apr 3 13:04:24 2015 -0400
+Date: Fri Apr 3 13:04:24 2015 -0400
Fix a crash when the server explicitly changes client account to default
@@ -87,7 +196,7 @@
commit 0ce00121225662125b2ae4e48ff5d9f712e86a70
Author: Armin Burgmeier <armin(a)arbur.net>
-Date: Sat Jan 17 20:33:25 2015 -0500
+Date: Sat Jan 17 20:33:25 2015 -0500
Post-release bump to 0.6.6
@@ -96,7 +205,7 @@
commit 1a0ff8091afdfe831d317d10c377a8a025ea259d
Author: Armin Burgmeier <armin(a)arbur.net>
-Date: Sat Jan 17 20:19:38 2015 -0500
+Date: Sat Jan 17 20:19:38 2015 -0500
Release libinfinity 0.6.5
@@ -105,7 +214,7 @@
commit 7b4efd3ec7fcf7ca44550d7b29e8448cd8fb5f44
Author: Armin Burgmeier <armin(a)arbur.net>
-Date: Wed Jan 14 15:28:16 2015 -0500
+Date: Wed Jan 14 15:28:16 2015 -0500
Check whether we need -lresolv for res_query() (gobby #23)
@@ -117,7 +226,7 @@
commit 66432aa0b9b48906db8c258cc70dec4c012787d5
Author: Armin Burgmeier <armin(a)arbur.net>
-Date: Tue Jan 6 16:48:10 2015 +0100
+Date: Tue Jan 6 16:48:10 2015 +0100
Fix a crash when sending unsubscribe message causes connection failure
@@ -126,7 +235,7 @@
commit 70913b5b64a85b9d5e0870b73cafff0f9c0aed55
Author: Armin Burgmeier <armin(a)arbur.net>
-Date: Tue Jan 6 14:13:38 2015 +0100
+Date: Tue Jan 6 14:13:38 2015 +0100
InfdDirectory: Fail add-subdirectory request if name already exists
@@ -135,7 +244,7 @@
commit 4fd9cadf82d2ee24d9c966ad30c64db3aa83696f
Author: Armin Burgmeier <armin(a)arbur.net>
-Date: Tue Jan 6 13:30:37 2015 +0100
+Date: Tue Jan 6 13:30:37 2015 +0100
Fix assertion failure when directory without storage is disposed
@@ -144,7 +253,7 @@
commit 0ea3d867cdedad32483fe7507a41680ab7e704ef
Author: Armin Burgmeier <armin(a)arbur.net>
-Date: Tue Oct 28 13:39:53 2014 -0400
+Date: Tue Oct 28 13:39:53 2014 -0400
Fix a memory leak in the plugin manager
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libinfinity-0.6.6/NEWS new/libinfinity-0.6.7/NEWS
--- old/libinfinity-0.6.6/NEWS 2015-05-13 02:57:32.000000000 +0200
+++ new/libinfinity-0.6.7/NEWS 2015-10-14 01:34:32.000000000 +0200
@@ -1,3 +1,11 @@
+libinfinity 0.6.7:
+ * Fix a possible crash when an entry is removed from the document
+ browser.
+ * Fix a possible crash in infinoted when access control lists are
+ enabled.
+ * Fix an assertion failure when operating with text documents and
+ using glib 2.46 or newer.
+
libinfinity 0.6.6:
* Fix certificates being only verified for expiration and other
criteria such as weak algorithms if the CA is not trusted.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libinfinity-0.6.6/configure new/libinfinity-0.6.7/configure
--- old/libinfinity-0.6.6/configure 2015-05-13 02:14:48.000000000 +0200
+++ new/libinfinity-0.6.7/configure 2015-10-14 01:34:48.000000000 +0200
@@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for libinfinity 0.6.6.
+# Generated by GNU Autoconf 2.69 for libinfinity 0.6.7.
#
# Report bugs to <armin(a)arbur.net>.
#
@@ -590,8 +590,8 @@
# Identity of this package.
PACKAGE_NAME='libinfinity'
PACKAGE_TARNAME='libinfinity'
-PACKAGE_VERSION='0.6.6'
-PACKAGE_STRING='libinfinity 0.6.6'
+PACKAGE_VERSION='0.6.7'
+PACKAGE_STRING='libinfinity 0.6.7'
PACKAGE_BUGREPORT='armin(a)arbur.net'
PACKAGE_URL=''
@@ -1416,7 +1416,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 libinfinity 0.6.6 to adapt to many kinds of systems.
+\`configure' configures libinfinity 0.6.7 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1486,7 +1486,7 @@
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of libinfinity 0.6.6:";;
+ short | recursive ) echo "Configuration of libinfinity 0.6.7:";;
esac
cat <<\_ACEOF
@@ -1641,7 +1641,7 @@
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-libinfinity configure 0.6.6
+libinfinity configure 0.6.7
generated by GNU Autoconf 2.69
Copyright (C) 2012 Free Software Foundation, Inc.
@@ -2010,7 +2010,7 @@
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
-It was created by libinfinity $as_me 0.6.6, which was
+It was created by libinfinity $as_me 0.6.7, which was
generated by GNU Autoconf 2.69. Invocation command line was
$ $0 $@
@@ -2873,7 +2873,7 @@
# Define the identity of the package.
PACKAGE='libinfinity'
- VERSION='0.6.6'
+ VERSION='0.6.7'
cat >>confdefs.h <<_ACEOF
@@ -3117,7 +3117,7 @@
ac_config_headers="$ac_config_headers config.h libinfinity/inf-config.h"
-LIBINFINITY_VERSION=0.6.6
+LIBINFINITY_VERSION=0.6.7
LIBINFINITY_API_VERSION=0.6
LIBINFINITY_LIBTOOL_VERSION=0:0:0
@@ -16210,7 +16210,7 @@
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
-This file was extended by libinfinity $as_me 0.6.6, which was
+This file was extended by libinfinity $as_me 0.6.7, which was
generated by GNU Autoconf 2.69. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -16276,7 +16276,7 @@
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\
-libinfinity config.status 0.6.6
+libinfinity config.status 0.6.7
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/libinfinity-0.6.6/configure.ac new/libinfinity-0.6.7/configure.ac
--- old/libinfinity-0.6.6/configure.ac 2015-05-12 05:05:50.000000000 +0200
+++ new/libinfinity-0.6.7/configure.ac 2015-10-14 01:21:06.000000000 +0200
@@ -1,4 +1,4 @@
-m4_define([libinfinity_version], [0.6.6])
+m4_define([libinfinity_version], [0.6.7])
m4_define([libinfinity_api_version], [0.6])
m4_define([libinfinity_libtool_version], [0:0:0])
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libinfinity-0.6.6/docs/reference/libinfgtk/html/index.html new/libinfinity-0.6.7/docs/reference/libinfgtk/html/index.html
--- old/libinfinity-0.6.6/docs/reference/libinfgtk/html/index.html 2015-05-13 02:57:58.000000000 +0200
+++ new/libinfinity-0.6.7/docs/reference/libinfgtk/html/index.html 2015-10-14 01:35:21.000000000 +0200
@@ -15,7 +15,7 @@
<div>
<div><table class="navigation" id="top" width="100%" cellpadding="2" cellspacing="0"><tr><th valign="middle"><p class="title">libinfgtk-0.6 Reference Manual</p></th></tr></table></div>
<div><p class="releaseinfo">
- for libinfgtk 0.6.6.
+ for libinfgtk 0.6.7.
The latest version of this documentation can be found on-line at
<a class="ulink" href="http://infinote.0x539.de/libinfinity/API/libinfgtk/index.html" target="_top">http://infinote.0x539.de/libinfinity/API/libinfgtk/</a>.
</p></div>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libinfinity-0.6.6/docs/reference/libinfinity/html/index.html new/libinfinity-0.6.7/docs/reference/libinfinity/html/index.html
--- old/libinfinity-0.6.6/docs/reference/libinfinity/html/index.html 2015-05-13 02:57:58.000000000 +0200
+++ new/libinfinity-0.6.7/docs/reference/libinfinity/html/index.html 2015-10-14 01:35:16.000000000 +0200
@@ -15,7 +15,7 @@
<div>
<div><table class="navigation" id="top" width="100%" cellpadding="2" cellspacing="0"><tr><th valign="middle"><p class="title">libinfinity-0.6 Reference Manual</p></th></tr></table></div>
<div><p class="releaseinfo">
- for libinfinity 0.6.6.
+ for libinfinity 0.6.7.
The latest version of this documentation can be found on-line at
<a class="ulink" href="http://infinote.0x539.de/libinfinity/API/libinfinity/index.html" target="_top">http://infinote.0x539.de/libinfinity/API/libinfinity/</a>.
</p></div>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libinfinity-0.6.6/docs/reference/libinfinoted-plugin-manager/html/index.html new/libinfinity-0.6.7/docs/reference/libinfinoted-plugin-manager/html/index.html
--- old/libinfinity-0.6.6/docs/reference/libinfinoted-plugin-manager/html/index.html 2015-05-13 02:57:59.000000000 +0200
+++ new/libinfinity-0.6.7/docs/reference/libinfinoted-plugin-manager/html/index.html 2015-10-14 01:35:25.000000000 +0200
@@ -15,7 +15,7 @@
<div>
<div><table class="navigation" id="top" width="100%" cellpadding="2" cellspacing="0"><tr><th valign="middle"><p class="title">libinfinoted-plugin-manager-0.6 Reference Manual</p></th></tr></table></div>
<div><p class="releaseinfo">
- for libinfinoted-plugin-manager 0.6.6.
+ for libinfinoted-plugin-manager 0.6.7.
The latest version of this documentation can be found on-line at
<a class="ulink" href="http://infinote.0x539.de/libinfinity/API/libinftext/index.html" target="_top">http://infinote.0x539.de/libinfinity/API/libinfinoted-plugin-manager/</a>.
</p></div>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libinfinity-0.6.6/docs/reference/libinftext/html/index.html new/libinfinity-0.6.7/docs/reference/libinftext/html/index.html
--- old/libinfinity-0.6.6/docs/reference/libinftext/html/index.html 2015-05-13 02:57:58.000000000 +0200
+++ new/libinfinity-0.6.7/docs/reference/libinftext/html/index.html 2015-10-14 01:35:19.000000000 +0200
@@ -15,7 +15,7 @@
<div>
<div><table class="navigation" id="top" width="100%" cellpadding="2" cellspacing="0"><tr><th valign="middle"><p class="title">libinftext-0.6 Reference Manual</p></th></tr></table></div>
<div><p class="releaseinfo">
- for libinftext 0.6.6.
+ for libinftext 0.6.7.
The latest version of this documentation can be found on-line at
<a class="ulink" href="http://infinote.0x539.de/libinfinity/API/libinftext/index.html" target="_top">http://infinote.0x539.de/libinfinity/API/libinftext/</a>.
</p></div>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libinfinity-0.6.6/docs/reference/libinftextgtk/html/index.html new/libinfinity-0.6.7/docs/reference/libinftextgtk/html/index.html
--- old/libinfinity-0.6.6/docs/reference/libinftextgtk/html/index.html 2015-05-13 02:57:58.000000000 +0200
+++ new/libinfinity-0.6.7/docs/reference/libinftextgtk/html/index.html 2015-10-14 01:35:23.000000000 +0200
@@ -15,7 +15,7 @@
<div>
<div><table class="navigation" id="top" width="100%" cellpadding="2" cellspacing="0"><tr><th valign="middle"><p class="title">libinftextgtk-0.6 Reference Manual</p></th></tr></table></div>
<div><p class="releaseinfo">
- for libinftextgtk 0.6.6.
+ for libinftextgtk 0.6.7.
The latest version of this documentation can be found on-line at
<a class="ulink" href="http://infinote.0x539.de/libinfinity/API/libinftextgtk/index.html" target="_top">http://infinote.0x539.de/libinfinity/API/libinftextgtk/</a>.
</p></div>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libinfinity-0.6.6/docs/reference/version.xml new/libinfinity-0.6.7/docs/reference/version.xml
--- old/libinfinity-0.6.6/docs/reference/version.xml 2015-05-13 02:51:15.000000000 +0200
+++ new/libinfinity-0.6.7/docs/reference/version.xml 2015-10-13 02:11:50.000000000 +0200
@@ -1 +1 @@
-0.6.6
\ No newline at end of file
+0.6.7
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libinfinity-0.6.6/libinfgtk/inf-gtk-browser-store.c new/libinfinity-0.6.7/libinfgtk/inf-gtk-browser-store.c
--- old/libinfinity-0.6.6/libinfgtk/inf-gtk-browser-store.c 2015-02-25 02:50:00.000000000 +0100
+++ new/libinfinity-0.6.7/libinfgtk/inf-gtk-browser-store.c 2015-10-13 01:55:48.000000000 +0200
@@ -520,6 +520,11 @@
/* Note we need to reset the browser before we unlink because
* inf_gtk_browser_store_item_set_browser() requires item still being
* linked for change notifications. */
+ /* TODO: This is a bit cumbersome. A better way might be to be able for
+ * the iter parameter to be NULL to indicate that an entry with
+ * its browser has been deleted. However, this would still need to do
+ * lots of the unregistration that is now happening in
+ * inf_gtk_browser_store_item_set_browser(). */
if(item->browser != NULL)
{
inf_gtk_browser_store_item_set_browser(store, item, path, NULL);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libinfinity-0.6.6/libinfgtk/inf-gtk-browser-view.c new/libinfinity-0.6.7/libinfgtk/inf-gtk-browser-view.c
--- old/libinfinity-0.6.6/libinfgtk/inf-gtk-browser-view.c 2015-02-25 02:50:00.000000000 +0100
+++ new/libinfinity-0.6.7/libinfgtk/inf-gtk-browser-view.c 2015-10-13 01:55:48.000000000 +0200
@@ -2073,6 +2073,12 @@
switch(status)
{
+ case INF_GTK_BROWSER_MODEL_INVALID:
+ /* This can happen when the cell data func is called between the
+ * resetting of an item and its removal from the tree. But in any case
+ * it will be removed soon, so no need to do anything here. */
+ stock_id = NULL;
+ break;
case INF_GTK_BROWSER_MODEL_DISCONNECTED:
case INF_GTK_BROWSER_MODEL_DISCOVERED:
case INF_GTK_BROWSER_MODEL_RESOLVING:
@@ -2326,6 +2332,11 @@
switch(status)
{
+ case INF_GTK_BROWSER_MODEL_INVALID:
+ /* This can happen when the cell data func is called between the
+ * resetting of an item and its removal from the tree. But in any case
+ * it will be removed soon, so no need to do anything here. */
+ break;
case INF_GTK_BROWSER_MODEL_DISCOVERED:
case INF_GTK_BROWSER_MODEL_DISCONNECTED:
g_object_set(
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libinfinity-0.6.6/libinfinity/adopted/inf-adopted-session.c new/libinfinity-0.6.7/libinfinity/adopted/inf-adopted-session.c
--- old/libinfinity-0.6.6/libinfinity/adopted/inf-adopted-session.c 2015-02-25 02:50:00.000000000 +0100
+++ new/libinfinity-0.6.7/libinfinity/adopted/inf-adopted-session.c 2015-10-13 01:55:48.000000000 +0200
@@ -1397,10 +1397,16 @@
guint n_params,
xmlNodePtr xml)
{
+ InfAdoptedSessionPrivate* priv;
const GParameter* time;
InfAdoptedStateVector* vector;
gchar* time_string;
+ const GParameter* id_param;
+ guint id;
+ GSList* item;
+ InfAdoptedSessionLocalUser* local_user;
+
INF_SESSION_CLASS(parent_class)->set_xml_user_props(
session,
params,
@@ -1408,10 +1414,36 @@
xml
);
+ priv = INF_ADOPTED_SESSION_PRIVATE(INF_ADOPTED_SESSION(session));
+
time = inf_session_lookup_user_property(params, n_params, "vector");
if(time != NULL)
{
- vector = (InfAdoptedStateVector*)g_value_get_boxed(&time->value);
+ /* If this is a local user, use last_send_vector instead of the user's
+ * vector, so that subsequent differential updates are consistent. */
+ vector = NULL;
+ id_param = inf_session_lookup_user_property(params, n_params, "id");
+
+ if(id_param != NULL)
+ {
+ id = g_value_get_uint(&id_param->value);
+ for(item = priv->local_users; item != NULL; item = item->next)
+ {
+ local_user = (InfAdoptedSessionLocalUser*)item->data;
+ if(inf_user_get_id(INF_USER(local_user->user)) == id)
+ {
+ vector = local_user->last_send_vector;
+ break;
+ }
+ }
+ }
+
+ if(vector == NULL)
+ {
+ /* remote user, or a user join request */
+ vector = (InfAdoptedStateVector*)g_value_get_boxed(&time->value);
+ }
+
time_string = inf_adopted_state_vector_to_string(vector);
inf_xml_util_set_attribute(xml, "time", time_string);
g_free(time_string);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libinfinity-0.6.6/libinfinity/common/inf-xmpp-connection.c new/libinfinity-0.6.7/libinfinity/common/inf-xmpp-connection.c
--- old/libinfinity-0.6.6/libinfinity/common/inf-xmpp-connection.c 2015-04-03 17:31:30.000000000 +0200
+++ new/libinfinity-0.6.7/libinfinity/common/inf-xmpp-connection.c 2015-10-14 01:21:06.000000000 +0200
@@ -2203,6 +2203,7 @@
gboolean has_mechanism;
priv = INF_XMPP_CONNECTION_PRIVATE(xmpp);
+ suggestion = NULL;
if(priv->sasl_own_context != NULL)
{
@@ -2219,7 +2220,7 @@
}
if(strncmp(iter, "ANONYMOUS",
- MAX((size_t) (end - iter), sizeof("ANONYMOUS") - 1) == 0))
+ MAX((size_t) (end - iter), sizeof("ANONYMOUS") - 1)) == 0)
{
suggestion = "ANONYMOUS";
break;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libinfinity-0.6.6/libinfinity/server/infd-directory.c new/libinfinity-0.6.7/libinfinity/server/infd-directory.c
--- old/libinfinity-0.6.6/libinfinity/server/infd-directory.c 2015-04-03 19:37:42.000000000 +0200
+++ new/libinfinity-0.6.7/libinfinity/server/infd-directory.c 2015-10-13 01:55:48.000000000 +0200
@@ -2701,6 +2701,7 @@
InfdDirectoryPrivate* priv;
InfdDirectoryTransientAccount* transient;
InfAclAccount* result;
+ InfAclAccount* result_copy;
guint i;
priv = INFD_DIRECTORY_PRIVATE(directory);
@@ -2735,8 +2736,21 @@
return NULL;
}
- if(transient_index != NULL) *transient_index = priv->n_transient_accounts;
- return result;
+ if(transient_index != NULL)
+ *transient_index = priv->n_transient_accounts;
+
+ /* Note that the return value that we got from
+ * infd_account_storage_lookup_accounts() is actually an array, and
+ * therefore needs to be freed with inf_acl_account_array_free(). However,
+ * we only return a single account that we want to be freed with
+ * inf_acl_account_free(). Therefore, we are making a copy here -- note
+ * that the two free functions are in fact different if GSlice is enabled,
+ * since an array of InfAclAccounts in allocated with g_malloc, while a
+ * single InfAclAccount is allocated with GSlice. */
+ result_copy = inf_acl_account_copy(result);
+ inf_acl_account_array_free(result, 1);
+
+ return result_copy;
}
static InfAclAccountId
@@ -5979,9 +5993,9 @@
/* Only if we have already a proxy we could not have a request here */
g_assert(request != NULL);
inf_request_fail(INF_REQUEST(request), local_error);
- g_error_free(local_error);
g_object_unref(request);
g_free(seq);
+ g_propagate_error(error, local_error);
return FALSE;
}
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libinfinity-0.6.6/libinftext/inf-text-chunk.c new/libinfinity-0.6.7/libinftext/inf-text-chunk.c
--- old/libinfinity-0.6.6/libinftext/inf-text-chunk.c 2015-02-25 02:50:00.000000000 +0100
+++ new/libinfinity-0.6.7/libinftext/inf-text-chunk.c 2015-10-14 01:21:06.000000000 +0200
@@ -90,7 +90,7 @@
guint offset)
{
#ifdef CHUNK_CHECK_INTEGRITY
- g_assert(offset <= g_utf8_strlen(self, bytes));
+ g_assert(offset <= g_utf8_strlen(text, bytes));
#endif
return g_utf8_offset_to_pointer(text, offset) - text;
@@ -181,6 +181,33 @@
return 1;
}
+/* This is a special comparison function which is only used
+ * in inf_text_chunk_get_segment. It makes sure that when two segments
+ * have the same offset, the second one gets sorted behind. This ensures
+ * that the first segment in the sequence is never returned, since it
+ * always has offset 0, which is a precondition for the algorithm
+ * in inf_text_chunk_get_segment. See also libinfinity github issue #10. */
+static int
+inf_text_chunk_segment_cmp_for_get_segment(gconstpointer first,
+ gconstpointer second,
+ gpointer userdata)
+{
+ const InfTextChunkSegment* first_segment;
+ const InfTextChunkSegment* second_segment;
+
+ first_segment = (const InfTextChunkSegment*)first;
+ second_segment = (const InfTextChunkSegment*)second;
+
+ g_return_val_if_fail(second != NULL && first != NULL, 0);
+
+ if (first_segment->offset < second_segment->offset)
+ return -1;
+ else if (first_segment->offset == second_segment->offset)
+ return -1;
+ else
+ return 1;
+}
+
static guint
inf_text_chunk_next_offset(InfTextChunk* self,
GSequenceIter* iter)
@@ -247,7 +274,7 @@
iter = g_sequence_search(
self->segments,
&key,
- inf_text_chunk_segment_cmp,
+ inf_text_chunk_segment_cmp_for_get_segment,
NULL
);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libinfinity-0.6.6/po/libinfinity-0.6.pot new/libinfinity-0.6.7/po/libinfinity-0.6.pot
--- old/libinfinity-0.6.6/po/libinfinity-0.6.pot 2015-05-13 02:57:28.000000000 +0200
+++ new/libinfinity-0.6.7/po/libinfinity-0.6.pot 2015-10-14 01:35:25.000000000 +0200
@@ -9,7 +9,7 @@
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?"
"product=glib&keywords=I18N+L10N&component=general\n"
-"POT-Creation-Date: 2014-08-27 01:11+0200\n"
+"POT-Creation-Date: 2015-10-13 19:35-0400\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL(a)li.org>\n"
@@ -180,87 +180,87 @@
msgid "Need a pam service to authenticate users."
msgstr ""
-#: ../infinoted/infinoted-options.c:238
+#: ../infinoted/infinoted-options.c:241
msgid "WARNING: Requiring password through unencrypted connection."
msgstr ""
-#: ../infinoted/infinoted-options.c:249
+#: ../infinoted/infinoted-options.c:252
msgid ""
"Creating a new private key also requires creating a new certificate signed "
"with it."
msgstr ""
-#: ../infinoted/infinoted-options.c:263
+#: ../infinoted/infinoted-options.c:266
msgid ""
"No private key file given. If you don't have a suitable key file, either "
"create one using the --create-key command line argument, or disable TLS by "
"setting the security policy to \"no-tls\"."
msgstr ""
-#: ../infinoted/infinoted-options.c:278
+#: ../infinoted/infinoted-options.c:281
msgid ""
"No certificate file given. If you don't have a suitable certificate file, "
"either create one using the --create-certificate command line agument, or "
"disable TLS via by setting the security policy to \"no-tls\"."
msgstr ""
-#: ../infinoted/infinoted-options.c:322
+#: ../infinoted/infinoted-options.c:325
#, c-format
msgid "Error reading configuration file \"%s\": "
msgstr ""
-#: ../infinoted/infinoted-options.c:380 ../infinoted/infinoted-options.c:424
-#: ../infinoted/infinoted-options.c:498
+#: ../infinoted/infinoted-options.c:383 ../infinoted/infinoted-options.c:427
+#: ../infinoted/infinoted-options.c:501
#, c-format
msgid "The option \"%s\" can only be given once"
msgstr ""
-#: ../infinoted/infinoted-options.c:409
+#: ../infinoted/infinoted-options.c:412
#, c-format
msgid "\"%s\" cannot be interpreted as a boolean value"
msgstr ""
-#: ../infinoted/infinoted-options.c:439
+#: ../infinoted/infinoted-options.c:442
#, c-format
msgid "\"%s\" is not a number"
msgstr ""
-#: ../infinoted/infinoted-options.c:451
+#: ../infinoted/infinoted-options.c:454
#, c-format
msgid "Could not read the number \"%s\": %s"
msgstr ""
-#: ../infinoted/infinoted-options.c:464
+#: ../infinoted/infinoted-options.c:467
#, c-format
msgid "Number \"%s\" is too small"
msgstr ""
-#: ../infinoted/infinoted-options.c:476
+#: ../infinoted/infinoted-options.c:479
#, c-format
msgid "Number \"%s\" is too large"
msgstr ""
-#: ../infinoted/infinoted-options.c:686
+#: ../infinoted/infinoted-options.c:689
msgid "Configuration file to load, instead of the default configuration file"
msgstr ""
-#: ../infinoted/infinoted-options.c:688
+#: ../infinoted/infinoted-options.c:691
msgid "CONFIG-FILE"
msgstr ""
-#: ../infinoted/infinoted-options.c:692
+#: ../infinoted/infinoted-options.c:695
msgid ""
"Creates a new random private key. The new key will be stored at the given "
"location for the server's private key."
msgstr ""
-#: ../infinoted/infinoted-options.c:698
+#: ../infinoted/infinoted-options.c:701
msgid ""
"Creates a new self-signed certificate signed with the given private key. The "
"certificate is stored at the given location for the server's certificate."
msgstr ""
-#: ../infinoted/infinoted-options.c:705
+#: ../infinoted/infinoted-options.c:708
msgid ""
"Allows one to override configuration entries for plugins from the command "
"line. The syntax is --plugin-parameter=plugin:key:value, where plugin is the "
@@ -268,35 +268,35 @@
"the parameter which to override and value is the new value of the parameter"
msgstr ""
-#: ../infinoted/infinoted-options.c:710
+#: ../infinoted/infinoted-options.c:713
msgid "PLUGIN:PARAMETER:VALUE"
msgstr ""
-#: ../infinoted/infinoted-options.c:715
+#: ../infinoted/infinoted-options.c:718
msgid "Daemonize the server, i.e. run it in the background"
msgstr ""
-#: ../infinoted/infinoted-options.c:719
+#: ../infinoted/infinoted-options.c:722
msgid "Kill a running daemon and exit"
msgstr ""
-#: ../infinoted/infinoted-options.c:724
+#: ../infinoted/infinoted-options.c:727
msgid "Display version information and exit"
msgstr ""
-#: ../infinoted/infinoted-options.c:783
+#: ../infinoted/infinoted-options.c:786
msgid "Infinoted Options"
msgstr ""
-#: ../infinoted/infinoted-options.c:784
+#: ../infinoted/infinoted-options.c:787
msgid "Main Program Options"
msgstr ""
-#: ../infinoted/infinoted-options.c:793
+#: ../infinoted/infinoted-options.c:796
msgid "infinote dedicated server"
msgstr ""
-#: ../infinoted/infinoted-options.c:828
+#: ../infinoted/infinoted-options.c:831
msgid "Could not kill daemon"
msgstr ""
@@ -358,27 +358,27 @@
msgid "Unloaded plugin \"%s\" from \"%s\""
msgstr ""
-#: ../infinoted/infinoted-run.c:353
+#: ../infinoted/infinoted-run.c:370
#, c-format
msgid "Failed to generate Diffie-Hellman parameters: %s"
msgstr ""
-#: ../infinoted/infinoted-run.c:373
+#: ../infinoted/infinoted-run.c:390
#, c-format
msgid "IPv6 Server running on port %u"
msgstr ""
-#: ../infinoted/infinoted-run.c:396
+#: ../infinoted/infinoted-run.c:413
#, c-format
msgid "IPv4 Server running on port %u"
msgstr ""
-#: ../infinoted/infinoted-run.c:417
+#: ../infinoted/infinoted-run.c:434
#, c-format
msgid "Failed to start server: %s"
msgstr ""
-#: ../infinoted/infinoted-run.c:435
+#: ../infinoted/infinoted-run.c:452
msgid "Infinoted shutting down..."
msgstr ""
@@ -412,27 +412,27 @@
msgid "Generating self-signed certificate..."
msgstr ""
-#: ../infinoted/infinoted-startup.c:318
+#: ../infinoted/infinoted-startup.c:321
#, c-format
msgid "User %s failed to log in from %s: PAM authentication failed"
msgstr ""
-#: ../infinoted/infinoted-startup.c:338
+#: ../infinoted/infinoted-startup.c:341
#, c-format
msgid "User %s failed to log in from %s: PAM user not allowed"
msgstr ""
-#: ../infinoted/infinoted-startup.c:358
+#: ../infinoted/infinoted-startup.c:361
#, c-format
msgid "User %s logged in from %s via PAM"
msgstr ""
-#: ../infinoted/infinoted-startup.c:374
+#: ../infinoted/infinoted-startup.c:392
#, c-format
msgid "User %s logged in from %s via password"
msgstr ""
-#: ../infinoted/infinoted-startup.c:385
+#: ../infinoted/infinoted-startup.c:403
#, c-format
msgid "User %s failed to log in from %s: wrong password"
msgstr ""
@@ -627,11 +627,11 @@
"standard tools that operate on normal UTF-8 encoded text files"
msgstr ""
-#: ../infinoted/plugins/infinoted-plugin-document-stream.c:663
+#: ../infinoted/plugins/infinoted-plugin-document-stream.c:668
msgid "Not a text or chat node"
msgstr ""
-#: ../infinoted/plugins/infinoted-plugin-document-stream.c:1482
+#: ../infinoted/plugins/infinoted-plugin-document-stream.c:1501
msgid "Allows streaming of document changes to external programs"
msgstr ""
@@ -873,27 +873,27 @@
msgid "Create New Account"
msgstr ""
-#: ../libinfgtk/inf-gtk-browser-store.c:676
+#: ../libinfgtk/inf-gtk-browser-store.c:681
msgid "Disconnected"
msgstr ""
-#: ../libinfgtk/inf-gtk-browser-view.c:2216
+#: ../libinfgtk/inf-gtk-browser-view.c:2222
msgid "Exploring..."
msgstr ""
-#: ../libinfgtk/inf-gtk-browser-view.c:2255
+#: ../libinfgtk/inf-gtk-browser-view.c:2261
msgid "Synchronizing..."
msgstr ""
-#: ../libinfgtk/inf-gtk-browser-view.c:2333
+#: ../libinfgtk/inf-gtk-browser-view.c:2344
msgid "Not connected"
msgstr ""
-#: ../libinfgtk/inf-gtk-browser-view.c:2344
+#: ../libinfgtk/inf-gtk-browser-view.c:2355
msgid "Connecting..."
msgstr ""
-#: ../libinfgtk/inf-gtk-browser-view.c:2354
+#: ../libinfgtk/inf-gtk-browser-view.c:2365
msgid "Connected"
msgstr ""
@@ -976,20 +976,20 @@
msgid "Failed to write file with known hosts \"%s\": %s"
msgstr ""
-#: ../libinfgtk/inf-gtk-certificate-manager.c:577
+#: ../libinfgtk/inf-gtk-certificate-manager.c:572
#, c-format
msgid "Failed to add certificate to list of known hosts: %s"
msgstr ""
-#: ../libinfgtk/inf-gtk-certificate-manager.c:847
+#: ../libinfgtk/inf-gtk-certificate-manager.c:845
msgid "_Cancel connection"
msgstr ""
-#: ../libinfgtk/inf-gtk-certificate-manager.c:858
+#: ../libinfgtk/inf-gtk-certificate-manager.c:856
msgid "C_ontinue connection"
msgstr ""
-#: ../libinfgtk/inf-gtk-certificate-manager.c:865
+#: ../libinfgtk/inf-gtk-certificate-manager.c:863
#, c-format
msgid ""
"Do you want to continue the connection to host \"%s\"? If you choose to "
@@ -1175,11 +1175,11 @@
"received request \"%s\""
msgstr ""
-#: ../libinfinity/adopted/inf-adopted-session.c:1462
+#: ../libinfinity/adopted/inf-adopted-session.c:1494
msgid "'time' attribute in user message is missing"
msgstr ""
-#: ../libinfinity/adopted/inf-adopted-session.c:1949
+#: ../libinfinity/adopted/inf-adopted-session.c:1981
msgid "Operation for request missing"
msgstr ""
@@ -1366,44 +1366,44 @@
"available, but it did not do so."
msgstr ""
-#: ../libinfinity/client/infc-browser.c:4433
+#: ../libinfinity/client/infc-browser.c:4434
msgid "No certificate request has been made"
msgstr ""
-#: ../libinfinity/client/infc-browser.c:4461
-#: ../libinfinity/client/infc-browser.c:4492
+#: ../libinfinity/client/infc-browser.c:4462
+#: ../libinfinity/client/infc-browser.c:4493
msgid "No certificate provided"
msgstr ""
-#: ../libinfinity/client/infc-browser.c:4511
+#: ../libinfinity/client/infc-browser.c:4512
msgid "Cannot verify the certificate without server certificate"
msgstr ""
-#: ../libinfinity/client/infc-browser.c:4561
+#: ../libinfinity/client/infc-browser.c:4562
#, c-format
msgid "Server sent an invalid certificate (%s)"
msgstr ""
-#: ../libinfinity/client/infc-browser.c:4669
-#: ../libinfinity/server/infd-directory.c:3265
+#: ../libinfinity/client/infc-browser.c:4670
+#: ../libinfinity/server/infd-directory.c:3280
msgid "The default account cannot be removed"
msgstr ""
-#: ../libinfinity/client/infc-browser.c:4822
+#: ../libinfinity/client/infc-browser.c:4823
#, c-format
msgid ""
"The request contains a sequence number refering to a request of type '%s', "
"but a request of either 'query-acl' or 'set-acl' was expected."
msgstr ""
-#: ../libinfinity/client/infc-browser.c:4997
-#: ../libinfinity/client/infc-session-proxy.c:519
+#: ../libinfinity/client/infc-browser.c:4998
+#: ../libinfinity/client/infc-session-proxy.c:523
#, c-format
msgid "Error comes from unknown error domain '%s' (code %u)"
msgstr ""
-#: ../libinfinity/client/infc-browser.c:5244
-#: ../libinfinity/client/infc-session-proxy.c:985
+#: ../libinfinity/client/infc-browser.c:5245
+#: ../libinfinity/client/infc-session-proxy.c:989
#, c-format
msgid "Server reply could not be processed: %s"
msgstr ""
@@ -1439,11 +1439,11 @@
msgid "The request does not contain a sequence number, but one is required"
msgstr ""
-#: ../libinfinity/client/infc-session-proxy.c:662
+#: ../libinfinity/client/infc-session-proxy.c:666
msgid "Request does not contain required attribute 'id'"
msgstr ""
-#: ../libinfinity/client/infc-session-proxy.c:680
+#: ../libinfinity/client/infc-session-proxy.c:684
#: ../libinfinity/common/inf-session.c:753
#, c-format
msgid "No such user with ID %u"
@@ -1657,7 +1657,7 @@
msgstr ""
#: ../libinfinity/common/inf-error.c:184
-#: ../libinfinity/server/infd-directory.c:5801
+#: ../libinfinity/server/infd-directory.c:5839
msgid "The root node cannot be removed"
msgstr ""
@@ -1674,7 +1674,7 @@
msgstr ""
#: ../libinfinity/common/inf-error.c:192
-#: ../libinfinity/server/infd-directory.c:6068
+#: ../libinfinity/server/infd-directory.c:6106
msgid "The requesting connection is not subscribed to the session"
msgstr ""
@@ -1802,11 +1802,11 @@
msgid "The certificate is invalid"
msgstr ""
-#: ../libinfinity/common/inf-name-resolver.c:205
+#: ../libinfinity/common/inf-name-resolver.c:207
msgid "The reply from the DNS server is incomplete"
msgstr ""
-#: ../libinfinity/common/inf-name-resolver.c:744
+#: ../libinfinity/common/inf-name-resolver.c:746
#, c-format
msgid ""
"Failure during SRV record lookup: %s\n"
@@ -2151,63 +2151,63 @@
msgid "An unknown authentication error has occured"
msgstr ""
-#: ../libinfinity/common/inf-xmpp-connection.c:1271
+#: ../libinfinity/common/inf-xmpp-connection.c:1272
msgid "The server did not provide a certificate"
msgstr ""
-#: ../libinfinity/common/inf-xmpp-connection.c:2085
+#: ../libinfinity/common/inf-xmpp-connection.c:2086
msgid "Stream is not yet secured with TLS"
msgstr ""
-#: ../libinfinity/common/inf-xmpp-connection.c:2152
+#: ../libinfinity/common/inf-xmpp-connection.c:2153
msgid "Stream is not yet authorized"
msgstr ""
-#: ../libinfinity/common/inf-xmpp-connection.c:2280
+#: ../libinfinity/common/inf-xmpp-connection.c:2282
msgid "The server does not offer a suitable authentication mechanism"
msgstr ""
-#: ../libinfinity/common/inf-xmpp-connection.c:2325
+#: ../libinfinity/common/inf-xmpp-connection.c:2327
msgid "The server does not support transport layer security (TLS)"
msgstr ""
-#: ../libinfinity/common/inf-xmpp-connection.c:2348
+#: ../libinfinity/common/inf-xmpp-connection.c:2350
msgid "The server requires transport layer security (TLS)"
msgstr ""
-#: ../libinfinity/common/inf-xmpp-connection.c:2382
+#: ../libinfinity/common/inf-xmpp-connection.c:2384
msgid "The server does not provide any authentication mechanism"
msgstr ""
-#: ../libinfinity/common/inf-xmpp-connection.c:2440
+#: ../libinfinity/common/inf-xmpp-connection.c:2442
msgid "The server cannot perform the TLS handshake"
msgstr ""
#. XML Warning from <IP Address>: <Warning Text>
-#: ../libinfinity/common/inf-xmpp-connection.c:2923
+#: ../libinfinity/common/inf-xmpp-connection.c:2925
#, c-format
msgid "XML warning from %s: %s\n"
msgstr ""
#. The server sent something which is not XML
-#: ../libinfinity/common/inf-xmpp-connection.c:2967
+#: ../libinfinity/common/inf-xmpp-connection.c:2969
msgid "Remote site is not an XMPP server"
msgstr ""
-#: ../libinfinity/common/inf-xmpp-connection.c:4583
+#: ../libinfinity/common/inf-xmpp-connection.c:4587
msgid "The server certificate is not trusted"
msgstr ""
-#: ../libinfinity/common/inf-xmpp-connection.c:4591
+#: ../libinfinity/common/inf-xmpp-connection.c:4595
#, c-format
msgid "The server certificate is not trusted: %s"
msgstr ""
-#: ../libinfinity/common/inf-xmpp-connection.c:4603
+#: ../libinfinity/common/inf-xmpp-connection.c:4607
msgid "The client certificate is not trusted"
msgstr ""
-#: ../libinfinity/common/inf-xmpp-connection.c:4611
+#: ../libinfinity/common/inf-xmpp-connection.c:4615
#, c-format
msgid "The client certificate is not trusted: %s"
msgstr ""
@@ -2241,7 +2241,7 @@
msgstr ""
#: ../libinfinity/server/infd-chat-filesystem-format.c:145
-#: ../libinfinity/server/infd-filesystem-storage.c:249
+#: ../libinfinity/server/infd-filesystem-storage.c:259
#: ../libinftext/inf-text-filesystem-format.c:368
#, c-format
msgid "Error parsing XML in file \"%s\": [%d]: %s"
@@ -2294,7 +2294,7 @@
"start the server."
msgstr ""
-#: ../libinfinity/server/infd-directory.c:2055
+#: ../libinfinity/server/infd-directory.c:2056
#, c-format
msgid ""
"Could not write session \"%s\" to storage: %s\n"
@@ -2302,25 +2302,25 @@
"All changes since the document das been saved are lost."
msgstr ""
-#: ../libinfinity/server/infd-directory.c:2857
+#: ../libinfinity/server/infd-directory.c:2872
msgid "Server does not support issuing certificates"
msgstr ""
-#: ../libinfinity/server/infd-directory.c:2971
+#: ../libinfinity/server/infd-directory.c:2986
msgid "The certificate request has no common name set"
msgstr ""
-#: ../libinfinity/server/infd-directory.c:3026
+#: ../libinfinity/server/infd-directory.c:3041
#, c-format
msgid "There is already a transient account with name \"%s\""
msgstr ""
-#: ../libinfinity/server/infd-directory.c:3090
+#: ../libinfinity/server/infd-directory.c:3105
msgid "This server does not support creating accounts"
msgstr ""
-#: ../libinfinity/server/infd-directory.c:3292
-#: ../libinfinity/server/infd-directory.c:11182
+#: ../libinfinity/server/infd-directory.c:3307
+#: ../libinfinity/server/infd-directory.c:11223
#: ../libinfinity/server/infd-filesystem-account-storage.c:1268
#: ../libinfinity/server/infd-filesystem-account-storage.c:1450
#: ../libinfinity/server/infd-filesystem-account-storage.c:1564
@@ -2328,11 +2328,11 @@
msgid "There is no such account with ID \"%s\""
msgstr ""
-#: ../libinfinity/server/infd-directory.c:3349
+#: ../libinfinity/server/infd-directory.c:3364
msgid "This server does not support removing accounts"
msgstr ""
-#: ../libinfinity/server/infd-directory.c:3690
+#: ../libinfinity/server/infd-directory.c:3705
#, c-format
msgid ""
"Session \"%s\" could not be saved: %s\n"
@@ -2340,122 +2340,122 @@
"server is shut down."
msgstr ""
-#: ../libinfinity/server/infd-directory.c:4202
+#: ../libinfinity/server/infd-directory.c:4217
#, c-format
msgid "Name \"%s\" is an invalid name: contains non-printable characters"
msgstr ""
-#: ../libinfinity/server/infd-directory.c:4220
+#: ../libinfinity/server/infd-directory.c:4235
#, c-format
msgid "Name \"%s\" is an invalid name: contains only space characters"
msgstr ""
-#: ../libinfinity/server/infd-directory.c:4233
+#: ../libinfinity/server/infd-directory.c:4248
#, c-format
msgid "Name \"%s\" is an invalid name: contains \"/\""
msgstr ""
-#: ../libinfinity/server/infd-directory.c:4248
+#: ../libinfinity/server/infd-directory.c:4263
#, c-format
msgid "A node with name \"%s\" exists already"
msgstr ""
-#: ../libinfinity/server/infd-directory.c:5069
+#: ../libinfinity/server/infd-directory.c:5107
#: ../libinfinity/server/infd-session-proxy.c:418
msgid "Permission denied"
msgstr ""
-#: ../libinfinity/server/infd-directory.c:5216
+#: ../libinfinity/server/infd-directory.c:5254
#, c-format
msgid "Failed to look up account: %s. Logging out user..."
msgstr ""
-#: ../libinfinity/server/infd-directory.c:5287
+#: ../libinfinity/server/infd-directory.c:5325
msgid "No subscription request for the server chat"
msgstr ""
-#: ../libinfinity/server/infd-directory.c:5306
+#: ../libinfinity/server/infd-directory.c:5344
#, c-format
msgid "No subscription request with ID %u"
msgstr ""
-#: ../libinfinity/server/infd-directory.c:5374
+#: ../libinfinity/server/infd-directory.c:5412
#, c-format
msgid "Node with ID \"%u\" is not a subdirectory node"
msgstr ""
-#: ../libinfinity/server/infd-directory.c:5386
+#: ../libinfinity/server/infd-directory.c:5424
#, c-format
msgid "Node with ID \"%u\" has unsupported type \"%s\""
msgstr ""
-#: ../libinfinity/server/infd-directory.c:5397
+#: ../libinfinity/server/infd-directory.c:5435
#, c-format
msgid "Node with ID \"%u\" is not a leaf node"
msgstr ""
-#: ../libinfinity/server/infd-directory.c:6042
-#: ../libinfinity/server/infd-directory.c:11267
+#: ../libinfinity/server/infd-directory.c:6080
+#: ../libinfinity/server/infd-directory.c:11308
msgid "No background storage available"
msgstr ""
-#: ../libinfinity/server/infd-directory.c:6167
+#: ../libinfinity/server/infd-directory.c:6205
msgid "The chat is disabled"
msgstr ""
-#: ../libinfinity/server/infd-directory.c:6277
+#: ../libinfinity/server/infd-directory.c:6315
msgid "No certificate request provided"
msgstr ""
-#: ../libinfinity/server/infd-directory.c:6809
+#: ../libinfinity/server/infd-directory.c:6847
msgid "The ACL for this node has already been queried"
msgstr ""
-#: ../libinfinity/server/infd-directory.c:6897
+#: ../libinfinity/server/infd-directory.c:6935
msgid "The ACL for this node has not been queried yet"
msgstr ""
-#: ../libinfinity/server/infd-directory.c:6924
+#: ../libinfinity/server/infd-directory.c:6962
msgid "The set-acl request does not have any ACL provided"
msgstr ""
-#: ../libinfinity/server/infd-directory.c:6941
-#: ../libinfinity/server/infd-directory.c:10322
+#: ../libinfinity/server/infd-directory.c:6979
+#: ../libinfinity/server/infd-directory.c:10363
msgid "This server does not support the requested permissions"
msgstr ""
-#: ../libinfinity/server/infd-directory.c:7209
+#: ../libinfinity/server/infd-directory.c:7247
msgid "The node to be subscribed to has been removed"
msgstr ""
-#: ../libinfinity/server/infd-directory.c:7331
-#: ../libinfinity/server/infd-directory.c:7447
+#: ../libinfinity/server/infd-directory.c:7369
+#: ../libinfinity/server/infd-directory.c:7485
msgid "The parent node of the node to be added has been removed"
msgstr ""
-#: ../libinfinity/server/infd-directory.c:7532
+#: ../libinfinity/server/infd-directory.c:7570
msgid "Client did not acknowledge initial subscription"
msgstr ""
-#: ../libinfinity/server/infd-directory.c:7854
+#: ../libinfinity/server/infd-directory.c:7892
#, c-format
msgid "Failed to explore the root directory of the new storage: %s"
msgstr ""
-#: ../libinfinity/server/infd-directory.c:7945
+#: ../libinfinity/server/infd-directory.c:7983
#, c-format
msgid ""
"Failed to lookup account IDs on account storage change: %s. Demoting clients "
"to default account."
msgstr ""
-#: ../libinfinity/server/infd-directory.c:8025
+#: ../libinfinity/server/infd-directory.c:8063
#, c-format
msgid "Failed to obtain account list from account storage: %s"
msgstr ""
-#: ../libinfinity/server/infd-directory.c:8157
-#: ../libinfinity/server/infd-directory.c:8242
+#: ../libinfinity/server/infd-directory.c:8195
+#: ../libinfinity/server/infd-directory.c:8280
#, c-format
msgid "Failed to look up accounts in new account storage: %s"
msgstr ""
@@ -2528,23 +2528,27 @@
msgid "The certificate with DN=%s is already in use by another account"
msgstr ""
-#: ../libinfinity/server/infd-filesystem-storage.c:79
+#: ../libinfinity/server/infd-filesystem-storage.c:74
+msgid "The path does not start with \"/\""
+msgstr ""
+
+#: ../libinfinity/server/infd-filesystem-storage.c:89
msgid "The path contains invalid components"
msgstr ""
-#: ../libinfinity/server/infd-filesystem-storage.c:109
+#: ../libinfinity/server/infd-filesystem-storage.c:119
#, c-format
msgid "Failed to convert root directory to filename encoding: %s"
msgstr ""
-#: ../libinfinity/server/infd-filesystem-storage.c:120
+#: ../libinfinity/server/infd-filesystem-storage.c:130
#, c-format
msgid ""
"Failed to create root directory: %s\n"
"Subsequent storage operations will most likely fail\n"
msgstr ""
-#: ../libinfinity/server/infd-filesystem-storage.c:264
+#: ../libinfinity/server/infd-filesystem-storage.c:274
#, c-format
msgid "Error processing file \"%s\": Toplevel tag is not \"%s\""
msgstr ""
1
0
Hello community,
here is the log from the commit of package python3-twine for openSUSE:Factory checked in at 2016-01-01 19:48:46
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python3-twine (Old)
and /work/SRC/openSUSE:Factory/.python3-twine.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python3-twine"
Changes:
--------
--- /work/SRC/openSUSE:Factory/python3-twine/python3-twine.changes 2015-11-05 11:35:42.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.python3-twine.new/python3-twine.changes 2016-01-01 19:51:12.000000000 +0100
@@ -1,0 +2,6 @@
+Tue Dec 29 19:37:02 UTC 2015 - arun(a)gmx.de
+
+- update to version 1.6.5:
+ * Bump requests-toolbelt version to ensure we avoid ConnectionErrors
+
+-------------------------------------------------------------------
Old:
----
twine-1.6.4.tar.gz
New:
----
twine-1.6.5.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python3-twine.spec ++++++
--- /var/tmp/diff_new_pack.AQk3fg/_old 2016-01-01 19:51:13.000000000 +0100
+++ /var/tmp/diff_new_pack.AQk3fg/_new 2016-01-01 19:51:13.000000000 +0100
@@ -17,7 +17,7 @@
Name: python3-twine
-Version: 1.6.4
+Version: 1.6.5
Release: 0
Summary: Collection of utilities for interacting with PyPI
License: Apache-2.0
++++++ twine-1.6.4.tar.gz -> twine-1.6.5.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/twine-1.6.4/PKG-INFO new/twine-1.6.5/PKG-INFO
--- old/twine-1.6.4/PKG-INFO 2015-10-28 04:10:17.000000000 +0100
+++ new/twine-1.6.5/PKG-INFO 2015-12-17 00:36:32.000000000 +0100
@@ -1,6 +1,6 @@
Metadata-Version: 1.1
Name: twine
-Version: 1.6.4
+Version: 1.6.5
Summary: Collection of utilities for interacting with PyPI
Home-page: https://github.com/pypa/twine
Author: Donald Stufft and individual contributors
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/twine-1.6.4/docs/changelog.rst new/twine-1.6.5/docs/changelog.rst
--- old/twine-1.6.4/docs/changelog.rst 2015-10-28 04:09:50.000000000 +0100
+++ new/twine-1.6.5/docs/changelog.rst 2015-12-17 00:34:22.000000000 +0100
@@ -4,6 +4,11 @@
Changelog
=========
+* :release:`1.6.5 <2015-12-16>`
+
+ * :bug:`155` Bump requests-toolbelt version to ensure we avoid
+ ConnectionErrors
+
* :release:`1.6.4 <2015-10-27>`
* :bug:`145` Paths with hyphens in them break the Wheel regular expression.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/twine-1.6.4/setup.py new/twine-1.6.5/setup.py
--- old/twine-1.6.4/setup.py 2015-09-17 03:33:30.000000000 +0200
+++ new/twine-1.6.5/setup.py 2015-12-17 00:32:09.000000000 +0100
@@ -21,7 +21,7 @@
install_requires = [
"pkginfo >= 1.0",
"requests >= 2.3.0",
- "requests-toolbelt >= 0.4.0",
+ "requests-toolbelt >= 0.5.1",
"setuptools >= 0.7.0",
]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/twine-1.6.4/twine/__init__.py new/twine-1.6.5/twine/__init__.py
--- old/twine-1.6.4/twine/__init__.py 2015-10-28 04:09:50.000000000 +0100
+++ new/twine-1.6.5/twine/__init__.py 2015-12-17 00:34:33.000000000 +0100
@@ -23,7 +23,7 @@
__summary__ = "Collection of utilities for interacting with PyPI"
__uri__ = "https://github.com/pypa/twine"
-__version__ = "1.6.4"
+__version__ = "1.6.5"
__author__ = "Donald Stufft and individual contributors"
__email__ = "donald(a)stufft.io"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/twine-1.6.4/twine.egg-info/PKG-INFO new/twine-1.6.5/twine.egg-info/PKG-INFO
--- old/twine-1.6.4/twine.egg-info/PKG-INFO 2015-10-28 04:10:16.000000000 +0100
+++ new/twine-1.6.5/twine.egg-info/PKG-INFO 2015-12-17 00:36:32.000000000 +0100
@@ -1,6 +1,6 @@
Metadata-Version: 1.1
Name: twine
-Version: 1.6.4
+Version: 1.6.5
Summary: Collection of utilities for interacting with PyPI
Home-page: https://github.com/pypa/twine
Author: Donald Stufft and individual contributors
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/twine-1.6.4/twine.egg-info/requires.txt new/twine-1.6.5/twine.egg-info/requires.txt
--- old/twine-1.6.4/twine.egg-info/requires.txt 2015-10-28 04:10:16.000000000 +0100
+++ new/twine-1.6.5/twine.egg-info/requires.txt 2015-12-17 00:36:32.000000000 +0100
@@ -1,4 +1,4 @@
pkginfo >= 1.0
requests >= 2.3.0
-requests-toolbelt >= 0.4.0
+requests-toolbelt >= 0.5.1
setuptools >= 0.7.0
1
0
Hello community,
here is the log from the commit of package x-tile for openSUSE:Factory checked in at 2016-01-01 19:48:44
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/x-tile (Old)
and /work/SRC/openSUSE:Factory/.x-tile.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "x-tile"
Changes:
--------
--- /work/SRC/openSUSE:Factory/x-tile/x-tile.changes 2012-09-25 14:17:57.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.x-tile.new/x-tile.changes 2016-01-01 19:51:11.000000000 +0100
@@ -1,0 +2,7 @@
+Wed Dec 30 15:03:11 UTC 2015 - netzheimer(a)yahoo.de
+
+- Update to version 2.5.1:
+ + Support for python 2.7.10.
+ + Bugfix: atom.io crashing x-tile.
+
+-------------------------------------------------------------------
Old:
----
x-tile-2.5.tar.xz
New:
----
x-tile-2.5.1.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ x-tile.spec ++++++
--- /var/tmp/diff_new_pack.a0pXGO/_old 2016-01-01 19:51:12.000000000 +0100
+++ /var/tmp/diff_new_pack.a0pXGO/_new 2016-01-01 19:51:12.000000000 +0100
@@ -1,7 +1,7 @@
#
# spec file for package x-tile
#
-# Copyright (c) 2012 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
@@ -17,7 +17,7 @@
Name: x-tile
-Version: 2.5
+Version: 2.5.1
Release: 0
Summary: Panel applet for tiling windows
License: GPL-2.0+
++++++ x-tile-2.5.tar.xz -> x-tile-2.5.1.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/x-tile-2.5/debian/changelog new/x-tile-2.5.1/debian/changelog
--- old/x-tile-2.5/debian/changelog 2012-09-10 16:23:08.000000000 +0200
+++ new/x-tile-2.5.1/debian/changelog 2015-11-15 21:54:19.000000000 +0100
@@ -1,4 +1,4 @@
-x-tile (2.5-1) stable; urgency=low
+x-tile (2.5.1-1) stable; urgency=low
* Fellow upstream.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/x-tile-2.5/glade/x-tile.glade new/x-tile-2.5.1/glade/x-tile.glade
--- old/x-tile-2.5/glade/x-tile.glade 2012-09-18 12:24:49.000000000 +0200
+++ new/x-tile-2.5.1/glade/x-tile.glade 2015-11-15 21:57:20.000000000 +0100
@@ -14,7 +14,7 @@
<property name="type_hint">dialog</property>
<property name="transient_for">window</property>
<property name="program_name">X Tile</property>
- <property name="copyright" translatable="yes">Copyright © 2009-2012
+ <property name="copyright" translatable="no">Copyright © 2009-2015
Giuseppe Penone <giuspen(a)gmail.com>
Chris Camacho <codifies(a)gmail.com></property>
<property name="comments" translatable="yes">Tile the Windows Upon your X Desktop</property>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/x-tile-2.5/glade/x-tile.glade.h new/x-tile-2.5.1/glade/x-tile.glade.h
--- old/x-tile-2.5/glade/x-tile.glade.h 2012-07-12 12:08:36.000000000 +0200
+++ new/x-tile-2.5.1/glade/x-tile.glade.h 1970-01-01 01:00:00.000000000 +0100
@@ -1,61 +0,0 @@
-char *s = N_("About X Tile");
-char *s = N_("Copyright © 2009-2012\n"
- "Giuseppe Penone <giuspen(a)gmail.com>\n"
- "Chris Camacho <chris_camacho(a)yahoo.com>");
-char *s = N_("Tile the Windows Upon your X Desktop");
-char *s = N_("http://www.giuspen.com/x-tile/");
-char *s = N_("\n"
- "This program is free software; you can redistribute it and/or modify\n"
- "it under the terms of the GNU General Public License as published by\n"
- "the Free Software Foundation; either version 2 of the License, or\n"
- "(at your option) any later version.\n"
- "\n"
- "This program is distributed in the hope that it will be useful,\n"
- "but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
- "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n"
- "GNU General Public License for more details.\n"
- "\n"
- "You should have received a copy of the GNU General Public License\n"
- "along with this program; if not, write to the Free Software\n"
- "Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,\n"
- "MA 02110-1301, USA.");
-char *s = N_("Chinese Simplified (zh_CN) Khiyuan Fan <Fan.Khiyuan(a)gmail.com>\n"
- "Chinese Traditional (zh_TW) Yan-ren Tsai <elleryq(a)gmail.com>\n"
- "Czech (cs) Pavel Fric <fripohled(a)blogspot.com\n"
- "Spanish (es_AR) MeloPixel <melopixel(a)gmail.com>\n"
- "French (fr) Ludovic Troisi <axalis(a)cegetel.net>\n"
- "German (de) Jöran Zeller <joeran(a)zeller.ws>\n"
- "Italian (it) Giuseppe Penone <giuspen(a)gmail.com>\n"
- "Polish (pl) Dominik Wójt <domin144(a)o2.pl>\n"
- "Russian (ru) Andriy Kovtun <kovtunos(a)yandex.ru>");
-char *s = N_("Preferences");
-char *s = N_(" Language ");
-char *s = N_("Do Not List Minimized Windows");
-char *s = N_("Only Current Workspace");
-char *s = N_("Enable System Tray Docking");
-char *s = N_("Start Minimized in the System Tray");
-char *s = N_("Show Toolbar");
-char *s = N_("Override Monitor 1 Tiling Area");
-char *s = N_("X");
-char *s = N_("Y");
-char *s = N_("Position");
-char *s = N_("Width");
-char *s = N_("Height");
-char *s = N_("Size");
-char *s = N_("Override Monitor 2 Tiling Area");
-char *s = N_("Close");
-char *s = N_("Cancel");
-char *s = N_("OK");
-char *s = N_("<b>Custom Tiling Layout</b>");
-char *s = N_("1) Tile Some Windows Manually");
-char *s = N_("2) Select Them in the X Tile Windows List");
-char *s = N_("3) Click the Update Button");
-char *s = N_("Update");
-char *s = N_("Rows to Filter");
-char *s = N_("Add an Application Filter");
-char *s = N_("Remove an Application Filter");
-char *s = N_("Add Row");
-char *s = N_("Rows to be Selected by Default");
-char *s = N_("X Tile");
-char *s = N_("Set Destination Workspace");
-char *s = N_("Exit After Tile");
Files old/x-tile-2.5/linux/x-tile.1.gz and new/x-tile-2.5.1/linux/x-tile.1.gz differ
Files old/x-tile-2.5/locale/cs/LC_MESSAGES/x-tile.mo and new/x-tile-2.5.1/locale/cs/LC_MESSAGES/x-tile.mo differ
Files old/x-tile-2.5/locale/de/LC_MESSAGES/x-tile.mo and new/x-tile-2.5.1/locale/de/LC_MESSAGES/x-tile.mo differ
Files old/x-tile-2.5/locale/es_AR/LC_MESSAGES/x-tile.mo and new/x-tile-2.5.1/locale/es_AR/LC_MESSAGES/x-tile.mo differ
Files old/x-tile-2.5/locale/fr/LC_MESSAGES/x-tile.mo and new/x-tile-2.5.1/locale/fr/LC_MESSAGES/x-tile.mo differ
Files old/x-tile-2.5/locale/it/LC_MESSAGES/x-tile.mo and new/x-tile-2.5.1/locale/it/LC_MESSAGES/x-tile.mo differ
Files old/x-tile-2.5/locale/pl/LC_MESSAGES/x-tile.mo and new/x-tile-2.5.1/locale/pl/LC_MESSAGES/x-tile.mo differ
Files old/x-tile-2.5/locale/ru/LC_MESSAGES/x-tile.mo and new/x-tile-2.5.1/locale/ru/LC_MESSAGES/x-tile.mo differ
Files old/x-tile-2.5/locale/zh_CN/LC_MESSAGES/x-tile.mo and new/x-tile-2.5.1/locale/zh_CN/LC_MESSAGES/x-tile.mo differ
Files old/x-tile-2.5/locale/zh_TW/LC_MESSAGES/x-tile.mo and new/x-tile-2.5.1/locale/zh_TW/LC_MESSAGES/x-tile.mo differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/x-tile-2.5/modules/cons.py new/x-tile-2.5.1/modules/cons.py
--- old/x-tile-2.5/modules/cons.py 2012-09-18 12:24:49.000000000 +0200
+++ new/x-tile-2.5.1/modules/cons.py 2015-11-15 21:54:35.000000000 +0100
@@ -2,7 +2,7 @@
#
# cons.py
#
-# Copyright 2009-2012
+# Copyright 2009-2015
# Giuseppe Penone <giuspen(a)gmail.com>,
# Chris Camacho (chris_c) <codifies(a)gmail.com>.
#
@@ -28,7 +28,7 @@
APP_NAME = "x-tile"
-VERSION = "2.5"
+VERSION = "2.5.1"
if os.path.isdir("glade"):
GLADE_PATH = os.path.join(os.getcwd(), "glade/")
LOCALE_PATH = "locale/"
Files old/x-tile-2.5/modules/cons.pyc and new/x-tile-2.5.1/modules/cons.pyc differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/x-tile-2.5/modules/core.py new/x-tile-2.5.1/modules/core.py
--- old/x-tile-2.5/modules/core.py 2012-09-18 12:30:42.000000000 +0200
+++ new/x-tile-2.5.1/modules/core.py 2015-11-15 22:41:13.000000000 +0100
@@ -2,7 +2,7 @@
#
# core.py
#
-# Copyright 2009-2012
+# Copyright 2009-2015
# Giuseppe Penone <giuspen(a)gmail.com>,
# Chris Camacho (chris_c) <codifies(a)gmail.com>.
#
Files old/x-tile-2.5/modules/core.pyc and new/x-tile-2.5.1/modules/core.pyc differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/x-tile-2.5/modules/globs.py new/x-tile-2.5.1/modules/globs.py
--- old/x-tile-2.5/modules/globs.py 2012-09-10 16:23:08.000000000 +0200
+++ new/x-tile-2.5.1/modules/globs.py 2015-11-13 10:10:06.000000000 +0100
@@ -2,7 +2,7 @@
#
# globs.py
#
-# Copyright 2009-2012
+# Copyright 2009-2015
# Giuseppe Penone <giuspen(a)gmail.com>,
# Chris Camacho (chris_c) <codifies(a)gmail.com>.
#
@@ -100,7 +100,8 @@
support.glob = self
# x11 reference to xlib library display and root window globals
self.x11 = ctypes.CDLL(ctypes.util.find_library("X11"))
- self.disp = self.x11.XOpenDisplay(0)
+ self.x11.XOpenDisplay.restype = ctypes.c_void_p
+ self.disp = ctypes.c_void_p(self.x11.XOpenDisplay(0))
self.root = self.x11.XDefaultRootWindow(self.disp)
# property atoms for moveresize
# assigned once here so they are not recreated
Files old/x-tile-2.5/modules/globs.pyc and new/x-tile-2.5.1/modules/globs.pyc differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/x-tile-2.5/modules/support.py new/x-tile-2.5.1/modules/support.py
--- old/x-tile-2.5/modules/support.py 2012-09-18 12:24:49.000000000 +0200
+++ new/x-tile-2.5.1/modules/support.py 2015-11-15 22:47:38.000000000 +0100
@@ -2,7 +2,7 @@
#
# support.py
#
-# Copyright 2009-2012
+# Copyright 2009-2015
# Giuseppe Penone <giuspen(a)gmail.com>,
# Chris Camacho (chris_c) <codifies(a)gmail.com>.
#
@@ -134,9 +134,13 @@
""" this returns a gtk.gdk.pixbuf of the windows icon
converts argb into rgba in the process """
get_property("_NET_WM_ICON", win, glob.XA_CARDINAL)
- if not glob.ret_pointer : return None
+ if not glob.ret_pointer:
+ return None
w = glob.ret_pointer[0]
h = glob.ret_pointer[1]
+ #print w,h
+ if w > 48 or h > 48:
+ return None
s = w*h
buff = ""
i = 0
@@ -310,6 +314,7 @@
"""Get Screen Index"""
xwa = globs.XWindowAttributes()
glob.x11.XGetWindowAttributes(glob.disp, glob.root,ctypes.byref(xwa))
+ glob.x11.XScreenNumberOfScreen.argtypes = [ctypes.c_void_p]
screen_index = glob.x11.XScreenNumberOfScreen(xwa.screen)
return screen_index
Files old/x-tile-2.5/modules/support.pyc and new/x-tile-2.5.1/modules/support.pyc differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/x-tile-2.5/modules/tilings.py new/x-tile-2.5.1/modules/tilings.py
--- old/x-tile-2.5/modules/tilings.py 2012-07-16 13:47:43.000000000 +0200
+++ new/x-tile-2.5.1/modules/tilings.py 2015-07-15 01:10:34.000000000 +0200
@@ -2,7 +2,7 @@
#
# core.py
#
-# Copyright 2009-2012
+# Copyright 2009-2015
# Giuseppe Penone <giuspen(a)gmail.com>,
# Chris Camacho (chris_c) <codifies(a)gmail.com>.
#
Files old/x-tile-2.5/modules/tilings.pyc and new/x-tile-2.5.1/modules/tilings.pyc differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/x-tile-2.5/x-tile new/x-tile-2.5.1/x-tile
--- old/x-tile-2.5/x-tile 2012-09-18 12:24:49.000000000 +0200
+++ new/x-tile-2.5.1/x-tile 2015-11-15 22:27:21.000000000 +0100
@@ -1,10 +1,10 @@
-#!/usr/bin/env python
+#!/usr/bin/env python2
# -*- coding: UTF-8 -*-
"""X Tile main module"""
# x-tile
#
-# Copyright 2009-2011
+# Copyright 2009-2015
# Giuseppe Penone <giuspen(a)gmail.com>,
# Chris Camacho (chris_c) <codifies(a)gmail.com>.
#
1
0
Hello community,
here is the log from the commit of package golang-org-x-crypto for openSUSE:Factory checked in at 2016-01-01 19:48:43
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/golang-org-x-crypto (Old)
and /work/SRC/openSUSE:Factory/.golang-org-x-crypto.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "golang-org-x-crypto"
Changes:
--------
--- /work/SRC/openSUSE:Factory/golang-org-x-crypto/golang-org-x-crypto.changes 2015-09-08 17:46:48.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.golang-org-x-crypto.new/golang-org-x-crypto.changes 2016-01-01 19:51:10.000000000 +0100
@@ -1,0 +2,16 @@
+Sat Dec 26 11:23:42 UTC 2015 - matwey.kornilov(a)gmail.com
+
+- Update to version 1.5.2+git20151215.f18420e:
+ + x/crypto/pkcs12: deal with short byte array in PBKDF
+ + otr: smpFailureError processing tlvTypeSMP3 prevents sending tlvTypeSMP4
+ + x/crypto/openpgp/packet: fix message for errors resulting from an unknown cipher.
+ + crypto/ssh: fix typo in error string.
+ + x/crypto/otr: clear key slots when handshaking.
+ + x/crypto/otr: make errors fatal.
+ + x/crypto/otr: update libotr test code for version 4.
+ + x/crypto/otr: reformat the libotr test harness with clang-format.
+ + x/crypto/ssh: run go fmt
+ + x/crypto/ssh/agent: Fix keyring removing the wrong key(s)
+- Removed crypto-fix-ssh.patch: has been upstreamed
+
+-------------------------------------------------------------------
Old:
----
crypto-0.0.0+git20150711.f6a608d.tar.xz
crypto-fix-ssh.patch
New:
----
_servicedata
crypto-1.5.2+git20151215.f18420e.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ golang-org-x-crypto.spec ++++++
--- /var/tmp/diff_new_pack.xTRuUn/_old 2016-01-01 19:51:10.000000000 +0100
+++ /var/tmp/diff_new_pack.xTRuUn/_new 2016-01-01 19:51:10.000000000 +0100
@@ -17,14 +17,13 @@
Name: golang-org-x-crypto
-Version: 0.0.0+git20150711.f6a608d
+Version: 1.5.2+git20151215.f18420e
Release: 0
Summary: Go supplementary cryptography libraries
License: BSD-3-Clause
Group: Development/Languages/Other
Url: https://github.com/golang/crypto
Source: crypto-%{version}.tar.xz
-Patch0: crypto-fix-ssh.patch
BuildRequires: golang-packaging
BuildRequires: xz
BuildRoot: %{_tmppath}/%{name}-%{version}-build
@@ -41,7 +40,6 @@
%prep
%setup -q -n crypto-%{version}
-%patch0 -p1
%build
%goprep golang.org/x/crypto
++++++ _service ++++++
--- /var/tmp/diff_new_pack.xTRuUn/_old 2016-01-01 19:51:11.000000000 +0100
+++ /var/tmp/diff_new_pack.xTRuUn/_new 2016-01-01 19:51:11.000000000 +0100
@@ -1,16 +1,19 @@
<services>
- <service name="tar_scm" mode="localonly">
+ <service mode="disabled" name="tar_scm">
<param name="url">https://github.com/golang/crypto.git</param>
<param name="scm">git</param>
<param name="exclude">.git</param>
- <param name="versionformat">0.0.0+git%cd.%h</param>
+ <param name="versionformat">1.5.2+git%cd.%h</param>
<param name="revision">master</param>
- </service>
- <service name="recompress" mode="localonly">
+ <param name="changesgenerate">enable</param></service>
+ <service mode="disabled" name="recompress">
<param name="file">crypto-*.tar</param>
<param name="compression">xz</param>
</service>
- <service name="set_version" mode="localonly">
+ <service name="refresh_patches" mode="disabled">
+ <param name="changesgenerate">enable</param>
+ </service>
+ <service mode="disabled" name="set_version">
<param name="basename">crypto</param>
</service>
</services>
++++++ _servicedata ++++++
<servicedata>
<service name="tar_scm">
<param name="url">https://github.com/golang/crypto.git</param>
<param name="changesrevision">f18420efc3b4f8e9f3d51f6bd2476e92c46260e9</param></service></servicedata>++++++ crypto-0.0.0+git20150711.f6a608d.tar.xz -> crypto-1.5.2+git20151215.f18420e.tar.xz ++++++
++++ 4899 lines of diff (skipped)
1
0
Hello community,
here is the log from the commit of package golang-org-x-text for openSUSE:Factory checked in at 2016-01-01 19:48:40
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/golang-org-x-text (Old)
and /work/SRC/openSUSE:Factory/.golang-org-x-text.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "golang-org-x-text"
Changes:
--------
--- /work/SRC/openSUSE:Factory/golang-org-x-text/golang-org-x-text.changes 2015-07-24 09:58:53.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.golang-org-x-text.new/golang-org-x-text.changes 2016-01-01 19:51:07.000000000 +0100
@@ -1,0 +2,15 @@
+Mon Dec 28 17:56:28 UTC 2015 - matwey.kornilov(a)gmail.com
+
+- Update to version 1.5.2+git20151217.cf49866:
+ + : added bidi and htmlindex packages to gen.go
+ + encoding/charmap: don't map U+FFFD in encoder
+ + : upgrade to CLDR 28 and necessary adjustments
+ + encoding: encoders return errors on out-of-repertoire runes
+ + encoding: added Replacement identifier and htmlindex tests
+ + : added .gitignore
+ + display: remove package
+ + : run long tests after a generated package
+ + display: remove completely
+ + encoding/htmlindex: use UTF-8 encoding
+
+-------------------------------------------------------------------
Old:
----
text-1.4.2+git20150710.7c0e16d.tar.xz
New:
----
_servicedata
text-1.5.2+git20151217.cf49866.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ golang-org-x-text.spec ++++++
--- /var/tmp/diff_new_pack.K3J0JR/_old 2016-01-01 19:51:08.000000000 +0100
+++ /var/tmp/diff_new_pack.K3J0JR/_new 2016-01-01 19:51:08.000000000 +0100
@@ -17,7 +17,7 @@
Name: golang-org-x-text
-Version: 1.4.2+git20150710.7c0e16d
+Version: 1.5.2+git20151217.cf49866
Release: 0
Summary: Go text processing support
License: BSD-3-Clause
++++++ _service ++++++
--- /var/tmp/diff_new_pack.K3J0JR/_old 2016-01-01 19:51:08.000000000 +0100
+++ /var/tmp/diff_new_pack.K3J0JR/_new 2016-01-01 19:51:08.000000000 +0100
@@ -1,16 +1,17 @@
<services>
- <service name="tar_scm" mode="localonly">
+ <service name="tar_scm" mode="disabled">
<param name="url">https://github.com/golang/text/</param>
<param name="scm">git</param>
<param name="exclude">.git</param>
- <param name="versionformat">1.4.2+git%cd.%h</param>
+ <param name="versionformat">1.5.2+git%cd.%h</param>
<param name="revision">master</param>
+ <param name="changesgenerate">enable</param>
</service>
- <service name="recompress" mode="localonly">
+ <service name="recompress" mode="disabled">
<param name="file">text-*.tar</param>
<param name="compression">xz</param>
</service>
- <service name="set_version" mode="localonly">
+ <service name="set_version" mode="disabled">
<param name="basename">text</param>
</service>
</services>
++++++ _servicedata ++++++
<servicedata>
<service name="tar_scm">
<param name="url">https://github.com/golang/text/</param>
<param name="changesrevision">cf4986612c83df6c55578ba198316d1684a9a287</param></service></servicedata>++++++ text-1.4.2+git20150710.7c0e16d.tar.xz -> text-1.5.2+git20151217.cf49866.tar.xz ++++++
++++ 110422 lines of diff (skipped)
1
0
Hello community,
here is the log from the commit of package golang-org-x-net for openSUSE:Factory checked in at 2016-01-01 19:48:39
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/golang-org-x-net (Old)
and /work/SRC/openSUSE:Factory/.golang-org-x-net.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "golang-org-x-net"
Changes:
--------
--- /work/SRC/openSUSE:Factory/golang-org-x-net/golang-org-x-net.changes 2015-07-24 09:58:47.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.golang-org-x-net.new/golang-org-x-net.changes 2016-01-01 19:51:06.000000000 +0100
@@ -1,0 +2,21 @@
+Tue Dec 29 18:19:16 UTC 2015 - matwey.kornilov(a)gmail.com
+
+- Update to version 1.5.2+git20151229.0cb26f7:
+ + http2: move HEADERS/CONTINUATION order checking into Framer
+
+-------------------------------------------------------------------
+Mon Dec 28 17:47:54 UTC 2015 - matwey.kornilov(a)gmail.com
+
+- Update to version 1.5.2+git20151224.5d0a0f8:
+ + http2: add server-side trailer support
+ + http2: add support for Transport reading trailers from the server
+ + html/charset: use x/text/encoding/htmlindex
+ + html/charset: handle unsupported code points for encoding
+ + http2: send client trailers
+ + http2: make Transport's Response.Body.Close not wait for buffered data
+ + html/charset: verify correct UTF-8 behavior
+ + http2: reset DebugGoroutines after testing it
+ + http2: fix readFrames goroutine spin between ConnectionError and conn close
+ + http2: fix typo and simplify truncation of text in test
+
+-------------------------------------------------------------------
Old:
----
net-1.4.2+git20150629.d9558e5.tar.xz
New:
----
_servicedata
net-1.5.2+git20151229.0cb26f7.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ golang-org-x-net.spec ++++++
--- /var/tmp/diff_new_pack.XE1Gt0/_old 2016-01-01 19:51:07.000000000 +0100
+++ /var/tmp/diff_new_pack.XE1Gt0/_new 2016-01-01 19:51:07.000000000 +0100
@@ -18,7 +18,7 @@
Name: golang-org-x-net
-Version: 1.4.2+git20150629.d9558e5
+Version: 1.5.2+git20151229.0cb26f7
Release: 0
Summary: Additional go.networking libraries
License: BSD-3-Clause
@@ -26,8 +26,9 @@
Url: https://github.com/golang/net
Source: net-%{version}.tar.xz
BuildRequires: golang-packaging
-BuildRequires: golang(golang.org/x/text)
BuildRequires: xz
+BuildRequires: golang(golang.org/x/crypto/ssh/terminal)
+BuildRequires: golang(golang.org/x/text)
Provides: go-go.net = %{version}
Obsoletes: go-go.net < %{version}
Provides: go-net = %{version}
@@ -44,6 +45,8 @@
%prep
%setup -q -n net-%{version}
+# Drop h2demo examples
+rm -rf http2/h2demo
%build
%goprep golang.org/x/net
@@ -57,6 +60,7 @@
%defattr(-,root,root,-)
%doc LICENSE
%{go_contribdir}/*
+%{_bindir}/h2i
%files source
%defattr(-,root,root,-)
++++++ _service ++++++
--- /var/tmp/diff_new_pack.XE1Gt0/_old 2016-01-01 19:51:07.000000000 +0100
+++ /var/tmp/diff_new_pack.XE1Gt0/_new 2016-01-01 19:51:07.000000000 +0100
@@ -1,16 +1,17 @@
<services>
- <service name="tar_scm" mode="localonly">
+ <service name="tar_scm" mode="disabled">
<param name="url">https://github.com/golang/net/</param>
<param name="scm">git</param>
<param name="exclude">.git</param>
- <param name="versionformat">1.4.2+git%cd.%h</param>
+ <param name="versionformat">1.5.2+git%cd.%h</param>
<param name="revision">master</param>
+ <param name="changesgenerate">enable</param>
</service>
- <service name="recompress" mode="localonly">
+ <service name="recompress" mode="disabled">
<param name="file">net-*.tar</param>
<param name="compression">xz</param>
</service>
- <service name="set_version" mode="localonly">
+ <service name="set_version" mode="disabled">
<param name="basename">net</param>
</service>
</services>
++++++ _servicedata ++++++
<servicedata>
<service name="tar_scm">
<param name="url">https://github.com/golang/net/</param>
<param name="changesrevision">0cb26f788dd4625d1956c6fd97ffc4c90669d129</param></service></servicedata>++++++ net-1.4.2+git20150629.d9558e5.tar.xz -> net-1.5.2+git20151229.0cb26f7.tar.xz ++++++
++++ 53935 lines of diff (skipped)
1
0
Hello community,
here is the log from the commit of package QMPlay2 for openSUSE:Factory checked in at 2016-01-01 19:48:38
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/QMPlay2 (Old)
and /work/SRC/openSUSE:Factory/.QMPlay2.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "QMPlay2"
Changes:
--------
--- /work/SRC/openSUSE:Factory/QMPlay2/QMPlay2.changes 2015-12-21 12:07:26.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.QMPlay2.new/QMPlay2.changes 2016-01-01 19:51:04.000000000 +0100
@@ -1,0 +2,16 @@
+Mon Dec 28 19:28:38 UTC 2015 - dap.darkness(a)gmail.com
+
+- Update to 15.12.25:
+ * KF5 Breeze style fixes in full screen;
+ * OpenGL 2 bugfix.
+- New requirements recommended by upstream.
+- Removed QMPlay2-Qt51.diff.
+
+-------------------------------------------------------------------
+Tue Dec 22 18:30:12 UTC 2015 - dap.darkness(a)gmail.com
+
+- Added QMPlay2-Qt51.diff to fix openSUSE 13.1' default Qt 5.1
+ build issue.
+- Fixed translations absence.
+
+-------------------------------------------------------------------
Old:
----
QMPlay2-src-15.12.06.tar.xz
New:
----
QMPlay2-src-15.12.25.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ QMPlay2.spec ++++++
--- /var/tmp/diff_new_pack.1MWu0j/_old 2016-01-01 19:51:05.000000000 +0100
+++ /var/tmp/diff_new_pack.1MWu0j/_new 2016-01-01 19:51:05.000000000 +0100
@@ -17,7 +17,7 @@
Name: QMPlay2
-Version: 15.12.06
+Version: 15.12.25
Release: 0
Summary: A Qt based media player, streamer and downloader
License: LGPL-3.0+
@@ -26,6 +26,9 @@
Source: http://kent.dl.sourceforge.net/project/zaps166/QMPlay2/QMPlay2-src-%{versio…
BuildRequires: libXv-devel
+%if 0%{?suse_version} > 1310
+BuildRequires: libqt5-linguist
+%endif
BuildRequires: portaudio-devel
BuildRequires: pkgconfig(Qt5DBus)
BuildRequires: pkgconfig(Qt5Network)
@@ -39,7 +42,9 @@
BuildRequires: pkgconfig(libavutil)
BuildRequires: pkgconfig(libcddb)
BuildRequires: pkgconfig(libcdio)
+BuildRequires: pkgconfig(libgme)
BuildRequires: pkgconfig(libpulse)
+BuildRequires: pkgconfig(libsidplayfp)
BuildRequires: pkgconfig(libswresample)
BuildRequires: pkgconfig(libswscale)
BuildRequires: pkgconfig(libva)
++++++ QMPlay2-src-15.12.06.tar.xz -> QMPlay2-src-15.12.25.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/QMPlay2-src-15.12.06/ChangeLog new/QMPlay2-src-15.12.25/ChangeLog
--- old/QMPlay2-src-15.12.06/ChangeLog 2015-12-06 20:42:38.000000000 +0100
+++ new/QMPlay2-src-15.12.25/ChangeLog 2015-12-25 22:11:25.000000000 +0100
@@ -1,3 +1,8 @@
+Changes in QMPlay2 build 15.12.25:
+ - KF5 Breeze style fixes in full screen,
+ - Qt5 <= 5.2 compilation fixes,
+ - OpenGL 2 bugfix,
+
Changes in QMPlay2 build 15.12.06:
- support for HEVC, VP8 and VP9 decoding in VA-API (depending on FFmpeg version),
- setting priorities of decoders and A/V outputs is now more convenient,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/QMPlay2-src-15.12.06/README.md new/QMPlay2-src-15.12.25/README.md
--- old/QMPlay2-src-15.12.06/README.md 2015-12-05 22:57:36.000000000 +0100
+++ new/QMPlay2-src-15.12.25/README.md 2015-12-06 23:46:39.000000000 +0100
@@ -1,4 +1,4 @@
-#QMPlay2 - QT Media Player 2
+#QMPlay2 - Qt Media Player 2
>QMPlay2 is a video and audio player. It can play all formats supported by FFmpeg, libmodplug (including J2B and SFX). It also supports Audio CD, raw files, Rayman 2 music and chiptunes. It contains YouTube and Prostopleer browser.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/QMPlay2-src-15.12.06/src/gui/Main.cpp new/QMPlay2-src-15.12.25/src/gui/Main.cpp
--- old/QMPlay2-src-15.12.06/src/gui/Main.cpp 2015-12-04 02:16:58.000000000 +0100
+++ new/QMPlay2-src-15.12.25/src/gui/Main.cpp 2015-12-25 18:33:56.000000000 +0100
@@ -55,7 +55,7 @@
defaultModules << "OpenGL 2" << "DirectDraw";
#elif defined Q_OS_ANDROID
if ( type == "videoWriters" )
- defaultModules << "QPainter";
+ defaultModules << "QPainter" << "OpenGL 2";
#endif
QStringList availableModules;
const QString moduleType = type.mid( 0, typeLen );
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/QMPlay2-src-15.12.06/src/gui/VideoDock.cpp new/QMPlay2-src-15.12.25/src/gui/VideoDock.cpp
--- old/QMPlay2-src-15.12.06/src/gui/VideoDock.cpp 2015-12-03 01:20:08.000000000 +0100
+++ new/QMPlay2-src-15.12.25/src/gui/VideoDock.cpp 2015-12-25 22:10:31.000000000 +0100
@@ -7,6 +7,7 @@
#include <Functions.hpp>
#include <SubsDec.hpp>
+#include <QApplication>
#include <QMouseEvent>
#include <QFileInfo>
#include <QMimeData>
@@ -60,6 +61,9 @@
connect( &iDW, SIGNAL( resized( int, int ) ), this, SLOT( resizedIDW( int, int ) ) );
connect( this, SIGNAL( visibilityChanged( bool ) ), this, SLOT( visibilityChanged( bool ) ) );
connect( &QMPlay2Core, SIGNAL( dockVideo( QWidget * ) ), &iDW, SLOT( setWidget( QWidget * ) ) );
+
+ if ( ( isBreeze = qApp->style()->objectName() == "breeze" ) )
+ setStyle( &commonStyle );
}
void VideoDock::fullScreen( bool b )
@@ -72,7 +76,8 @@
setFeatures( DockWidget::NoDockWidgetFeatures );
setFloating( false );
- setStyle( &commonStyle );
+ if ( !isBreeze )
+ setStyle( &commonStyle );
}
else
{
@@ -91,7 +96,8 @@
setFeatures( DockWidget::AllDockWidgetFeatures );
setFloating( is_floating );
- setStyle( NULL );
+ if ( !isBreeze )
+ setStyle( NULL );
}
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/QMPlay2-src-15.12.06/src/gui/VideoDock.hpp new/QMPlay2-src-15.12.25/src/gui/VideoDock.hpp
--- old/QMPlay2-src-15.12.06/src/gui/VideoDock.hpp 2015-10-17 20:25:48.000000000 +0200
+++ new/QMPlay2-src-15.12.25/src/gui/VideoDock.hpp 2015-12-25 22:10:23.000000000 +0100
@@ -47,7 +47,7 @@
QMenu *popupMenu;
QCommonStyle commonStyle;
int pixels;
- bool canPopup, is_floating;
+ bool canPopup, is_floating, isBreeze;
double touchZoom;
private slots:
void popup( const QPoint & );
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/QMPlay2-src-15.12.06/src/gui/VideoThr.cpp new/QMPlay2-src-15.12.25/src/gui/VideoThr.cpp
--- old/QMPlay2-src-15.12.06/src/gui/VideoThr.cpp 2015-11-29 15:58:40.000000000 +0100
+++ new/QMPlay2-src-15.12.25/src/gui/VideoThr.cpp 2015-12-23 01:05:53.000000000 +0100
@@ -476,6 +476,9 @@
}
#if defined(Q_WS_X11) || defined(X11_EXTRAS)
+ #ifdef X11_EXTRAS
+ #include <QGuiApplication>
+ #endif
#include <QX11Info>
#include <X11/Xlib.h>
#endif
@@ -483,7 +486,7 @@
void VideoThr::write_slot( const QByteArray &frame )
{
#ifdef X11_EXTRAS
- if ( QX11Info::isPlatformX11() )
+ if ( QGuiApplication::platformName() == "xcb" )
#endif
#if defined(Q_WS_X11) || defined(X11_EXTRAS)
XResetScreenSaver( QX11Info::display() );
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/QMPlay2-src-15.12.06/src/modules/OpenGL2/OpenGL2Writer.cpp new/QMPlay2-src-15.12.25/src/modules/OpenGL2/OpenGL2Writer.cpp
--- old/QMPlay2-src-15.12.06/src/modules/OpenGL2/OpenGL2Writer.cpp 2015-12-02 21:30:24.000000000 +0100
+++ new/QMPlay2-src-15.12.25/src/modules/OpenGL2/OpenGL2Writer.cpp 2015-12-25 19:36:48.000000000 +0100
@@ -3,12 +3,10 @@
#include <QMPlay2_OSD.hpp>
#include <Functions.hpp>
-#ifndef USE_NEW_OPENGL_API
- #include <QGLShaderProgram>
-#else
- #include <QOpenGLShaderProgram>
+#ifdef USE_NEW_OPENGL_API
#include <QOpenGLContext>
#endif
+
#include <QPainter>
#if !defined OPENGL_ES2 && !defined Q_OS_MAC
@@ -131,12 +129,13 @@
Drawable::Drawable( OpenGL2Writer &writer ) :
#endif
isOK( true ), paused( false ),
- shaderProgramYCbCr( NULL ), shaderProgramOSD( NULL ),
#ifndef OPENGL_ES2
+ supportsShaders( false ), canCreateNonPowerOfTwoTextures( false ),
glActiveTexture( NULL ),
#endif
writer( writer ),
- hasImage( false )
+ hasImage( false ),
+ texCoordYCbCrLoc( -1 ), positionYCbCrLoc( -1 ), texCoordOSDLoc( -1 ), positionOSDLoc( -1 )
{
grabGesture( Qt::PinchGesture );
setMouseTracking( true );
@@ -160,15 +159,41 @@
}
#ifndef USE_NEW_OPENGL_API
-bool Drawable::init()
+bool Drawable::testGL()
{
makeCurrent();
if ( ( isOK = isValid() ) )
- glInit();
+ {
+#ifndef OPENGL_ES2
+ initGLProc();
+ if ( !canCreateNonPowerOfTwoTextures || !supportsShaders || !glActiveTexture )
+ {
+ showOpenGLMissingFeaturesMessage();
+ isOK = false;
+ }
+ /* Reset variables */
+ supportsShaders = canCreateNonPowerOfTwoTextures = false;
+ glActiveTexture = NULL;
+#endif
+ }
doneCurrent();
return isOK;
}
#endif
+
+#ifndef OPENGL_ES2
+void Drawable::initGLProc()
+{
+ const char *glExtensions = ( const char * )glGetString( GL_EXTENSIONS );
+ if ( glExtensions )
+ {
+ supportsShaders = !!strstr( glExtensions, "GL_ARB_vertex_shader" ) && !!strstr( glExtensions, "GL_ARB_fragment_shader" ) && !!strstr( glExtensions, "GL_ARB_shader_objects" );
+ canCreateNonPowerOfTwoTextures = !!strstr( glExtensions, "GL_ARB_texture_non_power_of_two" );
+ }
+ glActiveTexture = ( GLActiveTexture )context()->getProcAddress( "glActiveTexture" );
+}
+#endif
+
void Drawable::clr()
{
hasImage = false;
@@ -199,6 +224,23 @@
}
#endif
+#ifndef OPENGL_ES2
+void Drawable::showOpenGLMissingFeaturesMessage()
+{
+ fprintf
+ (
+ stderr,
+ "GL_ARB_texture_non_power_of_two : %s\n"
+ "Vertex & fragment shader: %s\n"
+ "glActiveTexture: %s\n",
+ canCreateNonPowerOfTwoTextures ? "yes" : "no",
+ supportsShaders ? "yes" : "no",
+ glActiveTexture ? "yes" : "no"
+ );
+ QMPlay2Core.logError( "OpenGL 2 :: " + tr( "Sterownik musi obsługiwać multiteksturowanie, shadery oraz tekstury o dowolnym rozmiarze" ), true, true );
+}
+#endif
+
void Drawable::initializeGL()
{
int glMajor = 0, glMinor = 0;
@@ -223,65 +265,39 @@
glVer = "2";
#ifndef OPENGL_ES2
- bool supportsShaders = false, canCreateNonPowerOfTwoTextures = false;
- const char *glExtensions = ( const char * )glGetString( GL_EXTENSIONS );
- if ( glExtensions )
+ initGLProc();
+#ifndef USE_NEW_OPENGL_API
+ if ( !glActiveTexture ) //Be sure that "glActiveTexture" has valid pointer (don't check "supportsShaders" here)!
+#else
+ if ( !glActiveTexture || !canCreateNonPowerOfTwoTextures || !supportsShaders ) //"testGL()" doesn't work with "USE_NEW_OPENGL_API", so check features here!
+#endif
{
- supportsShaders = !!strstr( glExtensions, "GL_ARB_vertex_shader" ) && !!strstr( glExtensions, "GL_ARB_fragment_shader" ) && !!strstr( glExtensions, "GL_ARB_shader_objects" );
- canCreateNonPowerOfTwoTextures = !!strstr( glExtensions, "GL_ARB_texture_non_power_of_two" );
- }
- glActiveTexture = ( GLActiveTexture )context()->getProcAddress( "glActiveTexture" );
-
- if
- (
- !canCreateNonPowerOfTwoTextures ||
- !supportsShaders ||
- !glActiveTexture
- )
- {
- /*
- * If shader programs are already exists, new context was created without shaders support...
- * So the GPU/driver supports this feature and this is workaround for this strange behaviour.
- */
- if ( shaderProgramYCbCr && shaderProgramOSD && !supportsShaders )
- fprintf( stderr, "Shaders are already created and now they are not supported... Initialization is ignored.\n" );
- else
- {
- fprintf
- (
- stderr,
- "GL_ARB_texture_non_power_of_two : %s\n"
- "Vertex & fragment shader: %s\n"
- "glActiveTexture: %s\n",
- canCreateNonPowerOfTwoTextures ? "yes" : "no",
- supportsShaders ? "yes" : "no",
- glActiveTexture ? "yes" : "no"
- );
- QMPlay2Core.logError( "OpenGL 2 :: " + tr( "Sterownik musi obsługiwać multiteksturowanie, shadery oraz tekstury o dowolnym rozmiarze" ), true, true );
- isOK = false;
- }
+ showOpenGLMissingFeaturesMessage();
+ isOK = false;
return;
}
#endif
- delete shaderProgramYCbCr;
- delete shaderProgramOSD;
- shaderProgramYCbCr = new QGLShaderProgram( this );
- shaderProgramOSD = new QGLShaderProgram( this );
-
- /* YCbCr shader, use hue only when OpenGL/OpenGL|ES version >= 3.0, because it can be slow on old hardware and/or buggy drivers and may increase CPU usage! */
- shaderProgramYCbCr->addShaderFromSourceCode( QGLShader::Vertex, QString( vShaderYCbCrSrc ).arg( precisionStr ) );
- shaderProgramYCbCr->addShaderFromSourceCode( QGLShader::Fragment, QString( fShaderYCbCrSrc ).arg( precisionStr ).arg( (glMajor * 10 + glMinor >= 30) ? fShaderYCbCrHueSrc : "" ) );
- if ( shaderProgramYCbCr->bind() )
- {
- texCoordYCbCrLoc = shaderProgramYCbCr->attributeLocation( "aTexCoord" );
- positionYCbCrLoc = shaderProgramYCbCr->attributeLocation( "vPosition" );
-
- shaderProgramYCbCr->setUniformValue( "Ytex", 0 );
- shaderProgramYCbCr->setUniformValue( "Utex", 1 );
- shaderProgramYCbCr->setUniformValue( "Vtex", 2 );
-
- shaderProgramYCbCr->release();
+ /* YCbCr shader */
+ if ( shaderProgramYCbCr.shaders().isEmpty() )
+ {
+ shaderProgramYCbCr.addShaderFromSourceCode( QGLShader::Vertex, QString( vShaderYCbCrSrc ).arg( precisionStr ) );
+ /* Use hue only when OpenGL/OpenGL|ES version >= 3.0, because it can be slow on old hardware and/or buggy drivers and may increase CPU usage! */
+ shaderProgramYCbCr.addShaderFromSourceCode( QGLShader::Fragment, QString( fShaderYCbCrSrc ).arg( precisionStr ).arg( (glMajor * 10 + glMinor >= 30) ? fShaderYCbCrHueSrc : "" ) );
+ }
+ if ( shaderProgramYCbCr.bind() )
+ {
+ const qint32 newTexCoordLoc = shaderProgramYCbCr.attributeLocation( "aTexCoord" );
+ const qint32 newPositionLoc = shaderProgramYCbCr.attributeLocation( "vPosition" );
+ if ( newTexCoordLoc != newPositionLoc ) //If new locations are invalid, just leave them untouched...
+ {
+ texCoordYCbCrLoc = newTexCoordLoc;
+ positionYCbCrLoc = newPositionLoc;
+ }
+ shaderProgramYCbCr.setUniformValue( "Ytex", 0 );
+ shaderProgramYCbCr.setUniformValue( "Utex", 1 );
+ shaderProgramYCbCr.setUniformValue( "Vtex", 2 );
+ shaderProgramYCbCr.release();
}
else
{
@@ -291,16 +307,22 @@
}
/* OSD shader */
- shaderProgramOSD->addShaderFromSourceCode( QGLShader::Vertex, QString( vShaderOSDSrc ).arg( precisionStr ) );
- shaderProgramOSD->addShaderFromSourceCode( QGLShader::Fragment, QString( fShaderOSDSrc ).arg( precisionStr ) );
- if ( shaderProgramOSD->bind() )
+ if ( shaderProgramOSD.shaders().isEmpty() )
{
- texCoordOSDLoc = shaderProgramOSD->attributeLocation( "aTexCoord" );
- positionOSDLoc = shaderProgramOSD->attributeLocation( "vPosition" );
-
- shaderProgramOSD->setUniformValue( "tex", 3 );
-
- shaderProgramOSD->release();
+ shaderProgramOSD.addShaderFromSourceCode( QGLShader::Vertex, QString( vShaderOSDSrc ).arg( precisionStr ) );
+ shaderProgramOSD.addShaderFromSourceCode( QGLShader::Fragment, QString( fShaderOSDSrc ).arg( precisionStr ) );
+ }
+ if ( shaderProgramOSD.bind() )
+ {
+ const qint32 newTexCoordLoc = shaderProgramYCbCr.attributeLocation( "aTexCoord" );
+ const qint32 newPositionLoc = shaderProgramYCbCr.attributeLocation( "vPosition" );
+ if ( newTexCoordLoc != newPositionLoc ) //If new locations are invalid, just leave them untouched...
+ {
+ texCoordOSDLoc = newTexCoordLoc;
+ positionOSDLoc = newPositionLoc;
+ }
+ shaderProgramOSD.setUniformValue( "tex", 3 );
+ shaderProgramOSD.release();
}
else
{
@@ -414,23 +436,23 @@
hasImage = true;
}
- shaderProgramYCbCr->setAttributeArray( positionYCbCrLoc, verticesYCbCr[ writer.flip ], 2 );
- shaderProgramYCbCr->setAttributeArray( texCoordYCbCrLoc, texCoordYCbCr, 2 );
- shaderProgramYCbCr->enableAttributeArray( positionYCbCrLoc );
- shaderProgramYCbCr->enableAttributeArray( texCoordYCbCrLoc );
+ shaderProgramYCbCr.setAttributeArray( positionYCbCrLoc, verticesYCbCr[ writer.flip ], 2 );
+ shaderProgramYCbCr.setAttributeArray( texCoordYCbCrLoc, texCoordYCbCr, 2 );
+ shaderProgramYCbCr.enableAttributeArray( positionYCbCrLoc );
+ shaderProgramYCbCr.enableAttributeArray( texCoordYCbCrLoc );
- shaderProgramYCbCr->bind();
+ shaderProgramYCbCr.bind();
if ( doReset )
{
- shaderProgramYCbCr->setUniformValue( "scale", W / ( float )width(), H / ( float )height() );
- shaderProgramYCbCr->setUniformValue( "videoEq", Brightness, Contrast, Saturation, Hue );
+ shaderProgramYCbCr.setUniformValue( "scale", W / ( float )width(), H / ( float )height() );
+ shaderProgramYCbCr.setUniformValue( "videoEq", Brightness, Contrast, Saturation, Hue );
doReset = !resetDone;
}
glDrawArrays( GL_TRIANGLE_STRIP, 0, 4 );
- shaderProgramYCbCr->release();
+ shaderProgramYCbCr.release();
- shaderProgramYCbCr->disableAttributeArray( texCoordYCbCrLoc );
- shaderProgramYCbCr->disableAttributeArray( positionYCbCrLoc );
+ shaderProgramYCbCr.disableAttributeArray( texCoordYCbCrLoc );
+ shaderProgramYCbCr.disableAttributeArray( positionYCbCrLoc );
glActiveTexture( GL_TEXTURE3 );
@@ -467,19 +489,19 @@
right - 1.0f, -top + 1.0f,
};
- shaderProgramOSD->setAttributeArray( positionOSDLoc, verticesOSD, 2 );
- shaderProgramOSD->setAttributeArray( texCoordOSDLoc, texCoordOSD, 2 );
- shaderProgramOSD->enableAttributeArray( positionOSDLoc );
- shaderProgramOSD->enableAttributeArray( texCoordOSDLoc );
+ shaderProgramOSD.setAttributeArray( positionOSDLoc, verticesOSD, 2 );
+ shaderProgramOSD.setAttributeArray( texCoordOSDLoc, texCoordOSD, 2 );
+ shaderProgramOSD.enableAttributeArray( positionOSDLoc );
+ shaderProgramOSD.enableAttributeArray( texCoordOSDLoc );
glEnable( GL_BLEND );
- shaderProgramOSD->bind();
+ shaderProgramOSD.bind();
glDrawArrays( GL_TRIANGLE_STRIP, 0, 4 );
- shaderProgramOSD->release();
+ shaderProgramOSD.release();
glDisable( GL_BLEND );
- shaderProgramOSD->disableAttributeArray( texCoordOSDLoc );
- shaderProgramOSD->disableAttributeArray( positionOSDLoc );
+ shaderProgramOSD.disableAttributeArray( texCoordOSDLoc );
+ shaderProgramOSD.disableAttributeArray( positionOSDLoc );
}
osd_mutex.unlock();
@@ -633,7 +655,7 @@
fmt.setDepth( false );
fmt.setStencil( false );
drawable = new Drawable( *this, fmt );
- return drawable->init();
+ return drawable->testGL();
#else
drawable = new Drawable( *this );
return true;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/QMPlay2-src-15.12.06/src/modules/OpenGL2/OpenGL2Writer.hpp new/QMPlay2-src-15.12.25/src/modules/OpenGL2/OpenGL2Writer.hpp
--- old/QMPlay2-src-15.12.06/src/modules/OpenGL2/OpenGL2Writer.hpp 2015-11-29 22:23:12.000000000 +0100
+++ new/QMPlay2-src-15.12.25/src/modules/OpenGL2/OpenGL2Writer.hpp 2015-12-25 18:01:48.000000000 +0100
@@ -3,11 +3,12 @@
#ifndef USE_NEW_OPENGL_API
#include <QGLWidget>
+ #include <QGLShaderProgram>
#else
#include <QOpenGLWidget>
+ #include <QOpenGLShaderProgram>
#endif
-class QGLShaderProgram;
class OpenGL2Writer;
class QMPlay2_OSD;
@@ -20,11 +21,15 @@
public:
#ifndef USE_NEW_OPENGL_API
Drawable( OpenGL2Writer &, const QGLFormat & );
- bool init();
+ bool testGL();
#else
Drawable( OpenGL2Writer & );
#endif
+#ifndef OPENGL_ES2
+ void initGLProc();
+#endif
+
void clr();
void resizeEvent( QResizeEvent * );
@@ -40,6 +45,10 @@
void resetClearCounter();
#endif
private:
+#ifndef OPENGL_ES2
+ void showOpenGLMissingFeaturesMessage();
+#endif
+
void initializeGL();
#ifndef USE_NEW_OPENGL_API
void resizeGL( int w, int h );
@@ -51,8 +60,9 @@
#endif
bool event( QEvent * );
- QGLShaderProgram *shaderProgramYCbCr, *shaderProgramOSD;
+ QGLShaderProgram shaderProgramYCbCr, shaderProgramOSD;
#ifndef OPENGL_ES2
+ bool supportsShaders, canCreateNonPowerOfTwoTextures;
GLActiveTexture glActiveTexture;
#endif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/QMPlay2-src-15.12.06/src/qmplay2/headers/Functions.hpp new/QMPlay2-src-15.12.25/src/qmplay2/headers/Functions.hpp
--- old/QMPlay2-src-15.12.06/src/qmplay2/headers/Functions.hpp 2015-12-03 20:21:58.000000000 +0100
+++ new/QMPlay2-src-15.12.25/src/qmplay2/headers/Functions.hpp 2015-12-20 21:18:28.000000000 +0100
@@ -70,11 +70,7 @@
#else
timespec now;
clock_gettime(
- #ifdef CLOCK_MONOTONIC_RAW
- CLOCK_MONOTONIC_RAW,
- #else
CLOCK_MONOTONIC,
- #endif
&now
);
return now.tv_sec + ( now.tv_nsec / 1000000000.0 );
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/QMPlay2-src-15.12.06/src/qmplay2/headers/QMPlay2Core.hpp new/QMPlay2-src-15.12.25/src/qmplay2/headers/QMPlay2Core.hpp
--- old/QMPlay2-src-15.12.06/src/qmplay2/headers/QMPlay2Core.hpp 2015-12-05 23:49:07.000000000 +0100
+++ new/QMPlay2-src-15.12.25/src/qmplay2/headers/QMPlay2Core.hpp 2015-12-25 17:07:10.000000000 +0100
@@ -1,7 +1,7 @@
#ifndef QMPLAY2CORE_HPP
#define QMPLAY2CORE_HPP
-#define QMPlay2Version "15.12.06"
+#define QMPlay2Version "15.12.25"
#if defined(__i386) || defined(__i386__) || defined(_M_IX86) || (__x86_64) || defined(__x86_64__) || defined(__amd64) || defined(_M_X64)
#define QMPLAY2_CPU_X86
@@ -104,7 +104,11 @@
}
inline bool isWorking()
{
+#if QT_VERSION < 0x050000
return working > 0;
+#else
+ return working.load() > 0; //For Qt5 <= 5.2
+#endif
}
private slots:
void restoreCursorSlot();
1
0
Hello community,
here is the log from the commit of package cpuset for openSUSE:Factory checked in at 2016-01-01 19:48:36
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/cpuset (Old)
and /work/SRC/openSUSE:Factory/.cpuset.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "cpuset"
Changes:
--------
--- /work/SRC/openSUSE:Factory/cpuset/cpuset.changes 2014-06-01 19:41:45.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.cpuset.new/cpuset.changes 2016-01-01 19:51:03.000000000 +0100
@@ -1,0 +2,20 @@
+Wed Dec 30 12:00:50 UTC 2015 - mgalbraith(a)suse.com
+
+- Remove obsolete 'Authors' section from cpuset.spec.
+
+-------------------------------------------------------------------
+Tue Dec 29 07:41:24 UTC 2015 - mgalbraith(a)suse.com
+
+- Merge new cpuset upstream. Update URL, and add post v1.5.6 fixes.
+
+- New patches:
+ Fix-crash-with-SCHED_IDLE-policy.patch (bnc#959992)
+ Handle-unknown-scheduler-policy-codes-gracefully.patch (bnc#959992)
+ Parse-proc-pid-stat-properly.patch
+ Docu-remove-mention-about-nonexistent-option.patch (bnc#957323)
+ Docu-fix-asciidoc-build-error.patch
+ Update-URLs-after-project-migration.patch
+ Docu-fixed-a-typo.patch
+ Fix-typo-in-setup-py.patch
+
+-------------------------------------------------------------------
New:
----
Docu-fix-asciidoc-build-error.patch
Docu-fixed-a-typo.patch
Docu-remove-mention-about-nonexistent-option.patch
Fix-crash-with-SCHED_IDLE-policy.patch
Fix-typo-in-setup-py.patch
Handle-unknown-scheduler-policy-codes-gracefully.patch
Parse-proc-pid-stat-properly.patch
Update-URLs-after-project-migration.patch
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ cpuset.spec ++++++
--- /var/tmp/diff_new_pack.H80B8g/_old 2016-01-01 19:51:04.000000000 +0100
+++ /var/tmp/diff_new_pack.H80B8g/_new 2016-01-01 19:51:04.000000000 +0100
@@ -1,7 +1,7 @@
#
# spec file for package cpuset
#
-# Copyright (c) 2014 SUSE LINUX Products GmbH, Nuernberg, Germany.
+# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany.
# Copyright (c) 2008-2011 Novell, Inc. Waltham, MA, USA
#
# All modifications and additions to the file contributed by third parties
@@ -21,19 +21,30 @@
Version: 1.5.6
Release: 0
BuildRoot: %{_tmppath}/%{name}-%{version}-build
-Url: http://code.google.com/p/cpuset
+Url: https://github.com/lpechacek/cpuset
Summary: Allows manipulation of cpusets on system and provides higher level functions
License: GPL-2.0
Group: System/Management
Source: %{name}-%{version}.tar.gz
Patch0: cset-make-it-handle-cgroup-mounts.patch
+Patch1: Fix-crash-with-SCHED_IDLE-policy.patch
+Patch2: Handle-unknown-scheduler-policy-codes-gracefully.patch
+Patch3: Parse-proc-pid-stat-properly.patch
+Patch4: Docu-remove-mention-about-nonexistent-option.patch
+Patch5: Docu-fix-asciidoc-build-error.patch
+Patch6: Update-URLs-after-project-migration.patch
+Patch7: Docu-fixed-a-typo.patch
+Patch8: Fix-typo-in-setup-py.patch
BuildRequires: python-devel
+
%if 0%{?suse_version} > 0
%py_requires
%endif
+
%{!?python_sitelib: %define python_sitelib %(python -c "from distutils.sysconfig import get_python_lib; print get_python_lib()")}
%description
+
Cpuset is a Python application to make using the cpusets facilities in
the Linux kernel easier. The actual included command is called cset
and it allows manipulation of cpusets on the system and provides higher
@@ -43,6 +54,14 @@
%prep
%setup
%patch0 -p1
+%patch1 -p1
+%patch2 -p1
+%patch3 -p1
+%patch4 -p1
+%patch5 -p1
+%patch6 -p1
+%patch7 -p1
+%patch8 -p1
%build
CFLAGS="%{optflags}" \
@@ -53,6 +72,7 @@
# Install binaries, but do not install docs via setup.py
%{__python} setup.py install --root=%{buildroot} --prefix=%{_prefix} --install-data=/eraseme
%{__rm} -rf %{buildroot}/eraseme
+
# Install documentation
%{__mkdir_p} %{buildroot}/%{_defaultdocdir}/cpuset
%{__cp} NEWS README INSTALL AUTHORS COPYING cset.init.d %{buildroot}/%{_defaultdocdir}/cpuset/
@@ -64,6 +84,9 @@
%{__mkdir} %{buildroot}/%{_defaultdocdir}/cpuset/html
%{__cp} *.html %{buildroot}/%{_defaultdocdir}/cpuset/html/
+%clean
+%{__rm} -rf %{buildroot}
+
%files
%defattr(-,root,root)
%{_bindir}/cset
++++++ Docu-fix-asciidoc-build-error.patch ++++++
>From 9fb11328779ec31bd7034b3a6099d8cfb4510be4 Mon Sep 17 00:00:00 2001
From: Libor Pechacek <lpechacek(a)suse.com>
Date: Wed, 23 Dec 2015 14:01:54 +0100
Subject: [PATCH] Docu: fix asciidoc build error
References:
Signed-off-by: Libor Pechacek <lpechacek(a)suse.com>
Signed-off-by: Mike Galbraith <mgalbraith(a)suse.de>
---
doc/tutorial.txt | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
--- a/doc/tutorial.txt
+++ b/doc/tutorial.txt
@@ -1,5 +1,5 @@
Cpuset (cset) Tutorial
-######################
+======================
Alex Tsariounov <alext(a)novell.com> +
Copyright (c) 2009-2011 Novell Inc., cset v1.5.6 +
++++++ Docu-fixed-a-typo.patch ++++++
++++ 928 lines (skipped)
++++++ Docu-remove-mention-about-nonexistent-option.patch ++++++
++++ 916 lines (skipped)
++++++ Fix-crash-with-SCHED_IDLE-policy.patch ++++++
>From de1ae0d598c29b2ae056234f8ecd003e86314871 Mon Sep 17 00:00:00 2001
From: Libor Pechacek <lpechacek(a)suse.com>
Date: Tue, 22 Dec 2015 09:46:00 +0100
Subject: [PATCH] Fix crash with SCHED_IDLE policy
References: bnc#959992
There are two new schduling policies to be recognized by cset. SCHED_ISO and
SCHED_IDLE. The former is not yet implemented in Linux kernel so we write out
'???' when we encounter its code. For the latter there is the string 'idl'.
Signed-off-by: Libor Pechacek <lpechacek(a)suse.com>
Signed-off-by: Mike Galbraith <mgalbraith(a)suse.de>
---
cpuset/commands/proc.py | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
--- a/cpuset/commands/proc.py
+++ b/cpuset/commands/proc.py
@@ -684,7 +684,7 @@ options = [make_option('-l', '--list',
def task_detail(pid, width=70):
# scheduler policy definitions
- policy = ['o', 'f', 'r', 'b']
+ policy = ['o', 'f', 'r', 'b', '?', 'i']
# stat location definitions
statdef = {
'pid': 0,
@@ -732,6 +732,11 @@ options = [make_option('-l', '--list',
out2.append('th')
elif stat[statdef['rtpolicy']] == '3':
out2.append('at')
+ # SCHED_ISO is reserved but not yet implemented as of Linux v4.4
+ elif stat[statdef['rtpolicy']] == '4':
+ out2.append('??')
+ elif stat[statdef['rtpolicy']] == '5':
+ out2.append('dl')
else:
if int(stat[statdef['rtpriority']]) < 10:
out2.append('_')
++++++ Fix-typo-in-setup-py.patch ++++++
From: Mike Galbraith <mgalbraith(a)suse.de>
Subject: Fix type in setup.py to get make [rpm/srcrpm] working
Date: Tue Dec 29 07:45:23 CET 2015
References:
Signed-off-by: Mike Galbraith <mgalbraith(a)suse.de>
---
setup.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
--- a/setup.py
+++ b/setup.py
@@ -10,7 +10,7 @@ setup(name = 'cpuset',
license = 'GPLv2',
author = 'Alex Tsariounov',
author_email = 'alext(a)novell.com',
- url = 'https://github.com/lpechacek/cpuset'
+ url = 'https://github.com/lpechacek/cpuset',
description = 'Allows manipluation of cpusets and provides higher level functions.',
long_description = \
'Cpuset is a Python application to make using the cpusets facilities in the Linux\n'
++++++ Handle-unknown-scheduler-policy-codes-gracefully.patch ++++++
>From 0dab14e927137f4cb8d311b6cbae77343fa95ee0 Mon Sep 17 00:00:00 2001
From: Libor Pechacek <lpechacek(a)suse.com>
Date: Tue, 22 Dec 2015 12:50:55 +0100
Subject: [PATCH] Handle unknown scheduler policy codes gracefully
References: bnc#959992
Prevent unhandled exception upon reading unknown scheduler policy code from
/proc/<pid>/stat.
Signed-off-by: Libor Pechacek <lpechacek(a)suse.com>
Signed-off-by: Mike Galbraith <mgalbraith(a)suse.de>
---
cpuset/commands/proc.py | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
--- a/cpuset/commands/proc.py
+++ b/cpuset/commands/proc.py
@@ -727,7 +727,8 @@ options = [make_option('-l', '--list',
out2 = []
out2.append(stdict['State'].split()[0])
- out2.append(policy[int(stat[statdef['rtpolicy']])])
+ policy_code=int(stat[statdef['rtpolicy']])
+ out2.append(policy[policy_code] if policy_code<len(policy) else '?')
if stat[statdef['rtpolicy']] == '0':
out2.append('th')
elif stat[statdef['rtpolicy']] == '3':
++++++ Parse-proc-pid-stat-properly.patch ++++++
>From 226c8185d4f59cdbcc2116b7bf5df1f44fc59aa4 Mon Sep 17 00:00:00 2001
From: Libor Pechacek <lpechacek(a)suse.com>
Date: Tue, 22 Dec 2015 15:10:55 +0100
Subject: [PATCH] Parse /proc/<pid>/stat properly
References:
Process names can contain spaces. Handle these cases correctly.
Signed-off-by: Libor Pechacek <lpechacek(a)suse.com>
Signed-off-by: Mike Galbraith <mgalbraith(a)suse.de>
---
cpuset/commands/proc.py | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
--- a/cpuset/commands/proc.py
+++ b/cpuset/commands/proc.py
@@ -711,7 +711,12 @@ options = [make_option('-l', '--list',
except:
pass # sometimes, we get an extra \n out of this file...
stat = file('/proc/'+pid+'/stat', 'r').readline()
- stat = stat.split()
+ # we assume parentheses appear only around the name
+ stat_right_paren = stat.rfind(')')
+ stat_left_paren = stat.find('(')
+ stat = [stat[:stat_left_paren-1]] + \
+ [stat[stat_left_paren:stat_right_paren+1]] + \
+ stat[stat_right_paren+2:].split()
cmdline = file('/proc/'+pid+'/cmdline').readline()
# assume that a zero delimits the cmdline (it does now...)
cmdline = cmdline.replace('\0', ' ')
++++++ Update-URLs-after-project-migration.patch ++++++
++++ 2109 lines (skipped)
1
0
Hello community,
here is the log from the commit of package qtractor for openSUSE:Factory checked in at 2016-01-01 19:48:34
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/qtractor (Old)
and /work/SRC/openSUSE:Factory/.qtractor.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "qtractor"
Changes:
--------
--- /work/SRC/openSUSE:Factory/qtractor/qtractor.changes 2015-12-23 08:49:29.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.qtractor.new/qtractor.changes 2016-01-01 19:51:01.000000000 +0100
@@ -1,0 +2,29 @@
+Wed Dec 30 10:56:18 UTC 2015 - ecsos(a)opensuse.org
+
+- update to 0.7.3
+ - Slight increase on the number of decimal digits for the plugin
+ parameters while on the generic plugin properties dialog. Also
+ applied to automation curve node value editing.
+ - Unlimited slack is now in effect on editing over and beyond
+ the current session or clip contents length, on both the main
+ tracks and MIDI clip editor (piano-roll) views.
+ - Ctrl+click and dragging the left or right edges of a clip will
+ now make it spill over and replicate as many clip clones as it
+ fits in the left or right horizontal extent.
+ - Added View/Note Type and Value Type command menus to the MIDI
+ clip editor (aka. piano-roll) which opens the possibility for
+ discrete shortcuts to switching views eg. Note Velocity and
+ Controller views (after a kind request by yubatake, thanks).
+ - Fixed the conversion and/or override of MIDI clip offsets when
+ moving and copy/pasting across tempo/time-signature changes.
+ - Fixed MIDI file track/channel duration estimator, which was
+ giving quite wrong and way too short reads.
+ - Fixed a drag-and-drop bug over the main tracks view, when new
+ tracks were being inserted at the top and not to the bottom as
+ is normally indicated by the floating visual placeholder.
+ - Fixed LV2UI_Resize handle from extension_data(LV2_UI__resize),
+ now passing LV2UI_Handle in first argument to ui_resize(), as
+ found correct and needed for resizable/scaleable LV2 UI's, most
+ specially to ssj71's so called Infamous Plugins, thanks.
+
+-------------------------------------------------------------------
Old:
----
qtractor-0.7.2.tar.gz
New:
----
qtractor-0.7.3.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ qtractor.spec ++++++
--- /var/tmp/diff_new_pack.pEaayy/_old 2016-01-01 19:51:02.000000000 +0100
+++ /var/tmp/diff_new_pack.pEaayy/_new 2016-01-01 19:51:02.000000000 +0100
@@ -17,7 +17,7 @@
Name: qtractor
-Version: 0.7.2
+Version: 0.7.3
Release: 0
Summary: An Audio/MIDI multi-track sequencer
License: GPL-2.0+
++++++ qtractor-0.7.2.tar.gz -> qtractor-0.7.3.tar.gz ++++++
++++ 28554 lines of diff (skipped)
1
0
Hello community,
here is the log from the commit of package docker for openSUSE:Factory checked in at 2016-01-01 19:48:32
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/docker (Old)
and /work/SRC/openSUSE:Factory/.docker.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "docker"
Changes:
--------
--- /work/SRC/openSUSE:Factory/docker/docker.changes 2015-12-09 22:15:08.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.docker.new/docker.changes 2016-01-01 19:50:59.000000000 +0100
@@ -0,0 +1,4 @@
+Wed Dec 23 10:47:04 UTC 2015 - fcastelli(a)suse.com
+
+- Add rules for auditd. This is required to fix bnc#959405
+
New:
----
docker-audit.rules
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ docker.spec ++++++
--- /var/tmp/diff_new_pack.CvHg8p/_old 2016-01-01 19:51:01.000000000 +0100
+++ /var/tmp/diff_new_pack.CvHg8p/_new 2016-01-01 19:51:01.000000000 +0100
@@ -38,6 +38,7 @@
Source6: docker-rpmlintrc
Source7: README_SUSE.md
+Source8: docker-audit.rules
# TODO: remove once we figure out what is wrong with iptables on ppc64le
Source100: sysconfig.docker.ppc64le
Patch0: fix-docker-init.patch
@@ -54,6 +55,7 @@
Patch104: docker_remove_journald_to_fix_dynbinary_build_on_powerpc.patch
Patch105: add_bolt_arm64.patch
Patch106: docker_remove_journald_to_fix_dynbinary_build_on_arm64.patch
+BuildRequires: audit
BuildRequires: bash-completion
BuildRequires: device-mapper-devel >= 1.2.68
BuildRequires: glibc-devel-static
@@ -210,6 +212,9 @@
install -D -m 0644 %SOURCE3 %{buildroot}%{_prefix}/lib/udev/rules.d/80-%{name}.rules
+# audit rules
+install -D -m 0640 %SOURCE8 %{buildroot}%{_sysconfdir}/audit/rules.d/%{name}.rules
+
# sysconfig file
%ifarch ppc64le
install -D -m 644 %SOURCE100 %{buildroot}/var/adm/fillup-templates/sysconfig.docker
@@ -251,6 +256,7 @@
%{_prefix}/lib/docker/dockerinit
%{_unitdir}/%{name}.service
%{_unitdir}/%{name}.socket
+%config %{_sysconfdir}/audit/rules.d/%{name}.rules
%{_prefix}/lib/udev/rules.d/80-%{name}.rules
/var/adm/fillup-templates/sysconfig.docker
%ifarch %go_arches
++++++ docker-audit.rules ++++++
##
# Audit rules based on CIS Docker 1.6 Benchmark v1.0.0
# https://benchmarks.cisecurity.org/tools2/docker/CIS_Docker_1.6_Benchmark_v1…
# Not all of these apply to SUSE.
# 1.8 Audit docker daemon
-w /usr/bin/docker -k docker
# 1.9 Audit Docker files and directories
-w /var/lib/docker -k docker
# 1.10 Audit /etc/docker
-w /etc/docker -k docker
# 1.11 Audit Docker files and directories - docker-registry.service
-w /usr/lib/systemd/system/docker-registry.service -k docker
# 1.12 Audit Docker files and directories - docker.service
-w /usr/lib/systemd/system/docker.service -k docker
# 1.13 Audit Docker files and directories - /var/run/docker.sock
-w /var/run/docker.sock -k docker
# 1.14 Audit Docker files and directories - /etc/sysconfig/docker
-w /etc/sysconfig/docker -k docker
# 1.15 Audit Docker files and directories - /etc/sysconfig/docker-network
-w /etc/sysconfig/docker-network -k docker
# 1.16 Audit Docker files and directories - /etc/sysconfig/docker-registry
-w /etc/sysconfig/docker-registry -k docker
# 1.17 Audit Docker files and directories - /etc/sysconfig/docker-storage
-w /etc/sysconfig/docker-storage -k docker
# 1.18 Audit Docker files and directories - /etc/default/docker
-w /etc/default/docker-k docker
## end docker audit rules
1
0
Hello community,
here is the log from the commit of package nodejs for openSUSE:Factory checked in at 2016-01-01 19:48:31
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/nodejs (Old)
and /work/SRC/openSUSE:Factory/.nodejs.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "nodejs"
Changes:
--------
--- /work/SRC/openSUSE:Factory/nodejs/nodejs.changes 2015-12-29 12:59:31.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.nodejs.new/nodejs.changes 2016-01-01 19:50:58.000000000 +0100
@@ -1,0 +2,17 @@
+Tue Dec 29 15:17:47 UTC 2015 - i(a)marguerite.su
+
+- fix boo#955142: SLES11 compliance of build process
+ * usage of g++ 4.8 needs to be specified on SLES11
+ * python 2.6 does not include the check_output method
+ used in the configure script. We need to patch it
+ into the script
+- add patch: nodejs-sle11-python26-check_output.patch
+- adjust packaging method for nodejs-doc
+ * %{_docdir} will be recreated anyway when *.md is
+ added through %doc macro, so we can't install doc/api
+ in %install section on sle11
+- adjust packaging method for nodejs_sitelib
+ * "install -d" won't work on sle11 for %{_libexecdir},
+ replace with "mkdir -p"
+
+-------------------------------------------------------------------
New:
----
nodejs-sle11-python26-check_output.patch
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ nodejs.spec ++++++
--- /var/tmp/diff_new_pack.WgJPB9/_old 2016-01-01 19:50:59.000000000 +0100
+++ /var/tmp/diff_new_pack.WgJPB9/_new 2016-01-01 19:50:59.000000000 +0100
@@ -24,15 +24,23 @@
Group: Development/Languages/NodeJS
Url: http://www.nodejs.org
Source: http://nodejs.org/dist/v%{version}/node-v%{version}.tar.xz
-Patch3: support-arm64-build.patch
-Patch5: nodejs-lib64path.patch
-Patch6: nodejs-libpath.patch
-# PATCH-FIX-UPSTREAM use custom addon.gypi by default instead of downloading node source
-Patch7: node-gyp-addon-gypi.patch
+Patch: support-arm64-build.patch
+Patch1: nodejs-lib64path.patch
+Patch2: nodejs-libpath.patch
+# PATCH-FIX-UPSTREAM use custom addon.gypi by default instead of
+# downloading node source
+Patch3: node-gyp-addon-gypi.patch
+# PATCH-FIX-SLES python 2.6 doesn't include the check_output method
+# used in the configure, we need to patch it into the script
+Patch4: nodejs-sle11-python26-check_output.patch
BuildRequires: binutils-gold
BuildRequires: curl
BuildRequires: fdupes
+%if 0%{?sles_version} == 11
+BuildRequires: gcc48-c++
+%else
BuildRequires: gcc-c++
+%endif
%if 0%{?suse_version}
BuildRequires: libopenssl-devel
%else
@@ -43,7 +51,7 @@
BuildRequires: python
BuildRequires: xz
BuildRequires: zlib-devel
-Recommends: npm = %{version}
+Recommends: npm(npm) = %{version}
#we need ABI virtual provides where SONAMEs aren't enough/not present so deps
#break when binary compatibility is broken
@@ -71,17 +79,6 @@
%description devel
This package provides development headers for Node.js.
-%package docs
-Summary: Node.js API documentation
-Group: Documentation/Other
-%if 0%{?suse_version} >= 1200
-# using noarch subpackage seems to break debuginfo on older releases
-BuildArch: noarch
-%endif
-
-%description docs
-The API documentation for the Node.js JavaScript runtime.
-
%package -n npm
Summary: Package manager for Node.js
Group: Development/Languages/NodeJS
@@ -94,19 +91,34 @@
%description -n npm
A package manager for Node.js.
+%package docs
+Summary: Node.js API documentation
+Group: Documentation/Other
+%if 0%{?suse_version} >= 1200
+# using noarch subpackage seems to break debuginfo on older releases
+BuildArch: noarch
+%endif
+
+%description docs
+The API documentation for the Node.js JavaScript runtime.
+
%prep
%setup -q -n node-v%{version}
-%patch3 -p1
+%patch -p1
%if %{_lib} == "lib64"
-%patch5 -p1
+%patch1 -p1
%else
-%patch6 -p1
+%patch2 -p1
+%endif
+%patch3 -p1
+# add check_output to configure script (not part of python
+# 2.6 in SLES11)
+%if 0%{?sles_version} == 11
+%patch4 -p1
%endif
-%patch7 -p1
# Make sure nothing gets included from bundled deps:
# We only delete the source and header files, because
# the remaining build scripts are still used.
-###for dir in v8 openssl zlib; do
%if 0%{?suse_version} > 1320
for dir in openssl zlib; do
find deps/$dir -name *.[ch] -delete
@@ -120,6 +132,11 @@
# script, so we'll do it thus:
export CFLAGS="%{optflags}"
export CXXFLAGS="%{optflags}"
+# SLE_11_SP4 compatible
+%if 0%{?sles_version} == 11
+export CXX="g++-4.8"
+%endif
+
./configure \
--prefix=%{_prefix} \
%if 0%{?suse_version} > 1320
@@ -148,27 +165,31 @@
%endif
%install
+# sles: install-no-mkdir-buildroot
+%if 0%{?sles_version} == 11
+rm -rf %{buildroot} && mkdir %{buildroot}
+%endif
+
make install DESTDIR=%{buildroot} %{?_smp_mflags}
rm -rf %{buildroot}%{_datadir}/doc/node
# npm man page
-install -m 644 deps/npm/man/man1/npm.1 %{buildroot}%{_mandir}/man1
+rm -rf %{buildroot}%{_libdir}/node_modules/npm/man
+mkdir -p %{buildroot}%{_mandir}/{man1,man5,man7}
+install -m 644 deps/npm/man/man1/* %{buildroot}%{_mandir}/man1
+install -m 644 deps/npm/man/man5/* %{buildroot}%{_mandir}/man5
+install -m 644 deps/npm/man/man7/* %{buildroot}%{_mandir}/man7
#node-gyp needs common.gypi too
mkdir -p %{buildroot}%{_libdir}/node_modules/npm/node_modules/node-gyp/
install -m 644 common.gypi \
%{buildroot}%{_libdir}/node_modules/npm/node_modules/node-gyp/
-
# install addon-rpm.gypi
install -m 644 addon-rpm.gypi \
%{buildroot}%{_libdir}/node_modules/npm/node_modules/node-gyp/
-# Documentation
-install -d %{buildroot}%{_docdir}/%{name}
-cp -r doc/api %{buildroot}%{_docdir}/%{name}/
-
# Own nodejs_sitelib
-install -d %{buildroot}%{_libexecdir}/node_modules
+mkdir -p %{buildroot}%{_libexecdir}/node_modules
# clean
# file duplicates
@@ -200,17 +221,17 @@
%doc AUTHORS LICENSE *.md
%dir %{_libexecdir}/node_modules
%{_bindir}/node
-%{_prefix}/lib/node_modules
+%{_libdir}/node_modules
%{_mandir}/man1/node.1%{ext_man}
%exclude %{_libdir}/node_modules/npm
-%exclude %{_docdir}/%{name}/api
%files -n npm
%defattr(-, root, root)
%{_bindir}/npm
-%dir %{_libdir}/node_modules
%{_libdir}/node_modules/npm
-%{_mandir}/man1/npm.1%{ext_man}
+%{_mandir}/man*/*
+%exclude %{_mandir}/man1/node.1%{ext_man}
+
%files devel
%defattr(-, root, root)
@@ -221,6 +242,6 @@
%files docs
%defattr(-,root,root)
-%{_docdir}/%{name}/api
+%doc doc/api
%changelog
++++++ nodejs-sle11-python26-check_output.patch ++++++
Index: node-v5.3.0/configure
===================================================================
--- node-v5.3.0.orig/configure
+++ node-v5.3.0/configure
@@ -9,6 +9,28 @@ import sys
import shutil
import string
+# http://stackoverflow.com/questions/28904750/python-check-output-workaround-…
+if "check_output" not in dir( subprocess ): # duck punch it in!
+ def check_output(*popenargs, **kwargs):
+ r"""Run command with arguments and return its output as a byte string.
+ Backported from Python 2.7 as it's implemented as pure python on stdlib.
+
+ >>> check_output(['/usr/bin/python', '--version'])
+ Python 2.6.2+ """
+ process = subprocess.Popen(stdout=subprocess.PIPE, *popenargs, **kwargs)
+ output, unused_err = process.communicate()
+ retcode = process.poll()
+ if retcode:
+ cmd = kwargs.get("args")
+ if cmd is None:
+ cmd = popenargs[0]
+ error = subprocess.CalledProcessError(retcode, cmd)
+ error.output = output
+ raise error
+ return output
+
+ subprocess.check_output = check_output
+
# gcc and g++ as defaults matches what GYP's Makefile generator does,
# except on OS X.
CC = os.environ.get('CC', 'cc' if sys.platform == 'darwin' else 'gcc')
1
0
Hello community,
here is the log from the commit of package wireshark for openSUSE:Factory checked in at 2016-01-01 19:48:29
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/wireshark (Old)
and /work/SRC/openSUSE:Factory/.wireshark.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "wireshark"
Changes:
--------
--- /work/SRC/openSUSE:Factory/wireshark/wireshark.changes 2015-12-16 17:43:34.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.wireshark.new/wireshark.changes 2016-01-01 19:50:56.000000000 +0100
@@ -1,0 +2,55 @@
+Wed Dec 30 08:24:29 UTC 2015 - astieger(a)suse.com
+
+- Wireshark 2.0.1
+ fixing the following dissector crashes boo#960382:
+ * NBAP dissector crashes.
+ wnpa-sec-2015-31
+ * NLM dissector crash.
+ wnpa-sec-2015-37
+ * BER dissector crash.
+ wnpa-sec-2015-39
+ * Zlib decompression crash. ([8]Bug 11548)
+ wnpa-sec-2015-40
+ * SCTP dissector crash.
+ wnpa-sec-2015-41
+ * 802.11 decryption crash.
+ wnpa-sec-2015-42
+ * DIAMETER dissector crash.
+ wnpa-sec-2015-43
+ * VeriWave file parser crashes.
+ wnpa-sec-2015-44
+ * RSVP dissector crash.
+ wnpa-sec-2015-45
+ * ANSI A & GSM A dissector crashes.
+ wnpa-sec-2015-46
+ * Ascend file parser crash.
+ wnpa-sec-2015-47
+ * NBAP dissector crash.
+ npa-sec-2015-48
+ * RSL dissector crash.
+ wnpa-sec-2015-49
+ * ZigBee ZCL dissector crash.
+ wnpa-sec-2015-50
+ * Sniffer file parser crash
+ wnpa-sec-2015-51
+ * NWP dissector crash.
+ wnpa-sec-2015-52
+ * BT ATT dissector crash.
+ wnpa-sec-2015-53
+ * MP2T file parser crash.
+ wnpa-sec-2015-54
+ * MP2T file parser crash.
+ wnpa-sec-2015-55
+ * S7COMM dissector crash.
+ wnpa-sec-2015-56
+ * IPMI dissector crash.
+ wnpa-sec-2015-57
+ * TDS dissector crash.
+ wnpa-sec-2015-58
+ * PPI dissector crash.
+ wnpa-sec-2015-59
+ * MS-WSP dissector crash.
+ wnpa-sec-2015-60
+- adjust wireshark-1.12.6-fix-QT-PIC-PIE.patch for upstream changes
+
+-------------------------------------------------------------------
Old:
----
SIGNATURES-2.0.0.txt
wireshark-2.0.0.tar.bz2
New:
----
SIGNATURES-2.0.1.txt
wireshark-2.0.1.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ wireshark.spec ++++++
--- /var/tmp/diff_new_pack.NFlGXP/_old 2016-01-01 19:50:58.000000000 +0100
+++ /var/tmp/diff_new_pack.NFlGXP/_new 2016-01-01 19:50:58.000000000 +0100
@@ -29,7 +29,7 @@
%define use_gnutls 0%{?suse_version} >= 1310 || 0%{?suse_version} == 1110
Name: wireshark
-Version: 2.0.0
+Version: 2.0.1
Release: 0
Summary: A Network Traffic Analyser
License: GPL-2.0+ and GPL-3.0+
++++++ SIGNATURES-2.0.0.txt -> SIGNATURES-2.0.1.txt ++++++
--- /work/SRC/openSUSE:Factory/wireshark/SIGNATURES-2.0.0.txt 2015-11-22 11:02:30.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.wireshark.new/SIGNATURES-2.0.1.txt 2016-01-01 19:50:55.000000000 +0100
@@ -1,45 +1,45 @@
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
-wireshark-2.0.0.tar.bz2: 30976957 bytes
-SHA256(wireshark-2.0.0.tar.bz2)=90026c761a85701d7783c7e2eaa4c1de247dfbadbd53221df355f121e42691dd
-RIPEMD160(wireshark-2.0.0.tar.bz2)=79b1badcb34ce5d4d6b8c43de7d0ed2c7c301527
-SHA1(wireshark-2.0.0.tar.bz2)=f8b226b40e36e4c431b4f70bc3f523b6dd53a501
-MD5(wireshark-2.0.0.tar.bz2)=5909af2a09a9a3023ba61bc62e787ad2
-
-Wireshark-win32-2.0.0.exe: 37999376 bytes
-SHA256(Wireshark-win32-2.0.0.exe)=eb791240f4d3e8562e24fb494597b04050820f1991e5dd82b741b7f240661ecf
-RIPEMD160(Wireshark-win32-2.0.0.exe)=614ac3e7afaa43604fbb3ee0797ea1a3482ebe46
-SHA1(Wireshark-win32-2.0.0.exe)=bbc67138a407aeb10e8e60511922464ffe6826ab
-MD5(Wireshark-win32-2.0.0.exe)=5555295e497746617794f432e7d6b4d0
-
-Wireshark-win64-2.0.0.exe: 40868360 bytes
-SHA256(Wireshark-win64-2.0.0.exe)=72949ee020a9b21c7cff94b68920db883504ddbb442870496095471b20707feb
-RIPEMD160(Wireshark-win64-2.0.0.exe)=a9be8241c6f50f338860bc1af680201d35b02142
-SHA1(Wireshark-win64-2.0.0.exe)=2aaf8c76526222f29b3f8f157e56cecd9014dfcd
-MD5(Wireshark-win64-2.0.0.exe)=bec01ee4b13f6fd919cedf8ee7b367cf
-
-WiresharkPortable_2.0.0.paf.exe: 42739752 bytes
-SHA256(WiresharkPortable_2.0.0.paf.exe)=470933e60832d9a053d14ffadaade9262bdb7a517d690f37e0db0761bf73c892
-RIPEMD160(WiresharkPortable_2.0.0.paf.exe)=c8a9b29d558e33980ad507a1c9d109480cf4b2a7
-SHA1(WiresharkPortable_2.0.0.paf.exe)=6e1d1c529a3a487ac4d7874a7ccc98ea8ad9b5c8
-MD5(WiresharkPortable_2.0.0.paf.exe)=fec2647be084c92ca9167f03637744cb
-
-Wireshark 2.0.0 Intel 64.dmg: 31522805 bytes
-SHA256(Wireshark 2.0.0 Intel 64.dmg)=4e981904bcc29a3c4fcab57fee85a0844a0d8c5df0844cbedb21de62b2db2f22
-RIPEMD160(Wireshark 2.0.0 Intel 64.dmg)=c6425d398af4d0779865377a683d9945566a1d68
-SHA1(Wireshark 2.0.0 Intel 64.dmg)=825f6f97dc782b4109705e780c93a26ea70080ae
-MD5(Wireshark 2.0.0 Intel 64.dmg)=19cece26bf58f18704c71f7d6bbce2ab
-
-Wireshark 2.0.0 Intel 32.dmg: 32295530 bytes
-SHA256(Wireshark 2.0.0 Intel 32.dmg)=0aa700811403fc356e4d03fd85d13a6bbd0f95d1ca9a1e6f9233148f2dace8ad
-RIPEMD160(Wireshark 2.0.0 Intel 32.dmg)=3281e2fdd4556f11e1e0c6a454f08f8734159c5a
-SHA1(Wireshark 2.0.0 Intel 32.dmg)=e682d0e761aaea432ffb325206ea0d191db4ca2c
-MD5(Wireshark 2.0.0 Intel 32.dmg)=1d516e6c9757d0aa85d05f0edb7194a5
+wireshark-2.0.1.tar.bz2: 31016295 bytes
+SHA256(wireshark-2.0.1.tar.bz2)=c9bd07dd0d0045d6ca7537390a1afbcdf33716d193ea7d7084ae4f6c30b683ab
+RIPEMD160(wireshark-2.0.1.tar.bz2)=0a83fb6d2c74005840492d0811a4eca29b565602
+SHA1(wireshark-2.0.1.tar.bz2)=6703221128305ac33802f0da13d368476ce90688
+MD5(wireshark-2.0.1.tar.bz2)=c1610ab2238965363b811e5188750fb1
+
+Wireshark-win64-2.0.1.exe: 47333544 bytes
+SHA256(Wireshark-win64-2.0.1.exe)=5c5c9668d0254d183ef94eaaab2ca35e1376ae1bac3f10b21ccf5e14eaafb045
+RIPEMD160(Wireshark-win64-2.0.1.exe)=06fc6a95a6a93d4287e4cb4fcbe1f584c8a393d8
+SHA1(Wireshark-win64-2.0.1.exe)=27e290b4647adeb51a714d7a831ef88702b518da
+MD5(Wireshark-win64-2.0.1.exe)=8a05505aae3807d554a394c8f86ca4ac
+
+Wireshark-win32-2.0.1.exe: 43764688 bytes
+SHA256(Wireshark-win32-2.0.1.exe)=03a1d405bdcace6d64d9c743bf544079b4e2eeb1f79c87440c38b5790950beb1
+RIPEMD160(Wireshark-win32-2.0.1.exe)=c3f4c13257e4a9a5a637b23e15a90bd0463fce7f
+SHA1(Wireshark-win32-2.0.1.exe)=7407cb02091e84f7f329782a5802f1b3b27d9ec9
+MD5(Wireshark-win32-2.0.1.exe)=2841bc0a430f1ac575c98f4dce83deb4
+
+WiresharkPortable_2.0.1.paf.exe: 43353168 bytes
+SHA256(WiresharkPortable_2.0.1.paf.exe)=66d3b81295bc8860cb766668c4b59e73220d799c52224460422c094d82a78889
+RIPEMD160(WiresharkPortable_2.0.1.paf.exe)=c8dddc54f2bdd7a084ca746db67fe1cf4e123cea
+SHA1(WiresharkPortable_2.0.1.paf.exe)=8c80e59338aedcb353fa40f028936c336ec478df
+MD5(WiresharkPortable_2.0.1.paf.exe)=ec0f68ea58a6242637892c5fb39e8fde
+
+Wireshark 2.0.1 Intel 64.dmg: 31559961 bytes
+SHA256(Wireshark 2.0.1 Intel 64.dmg)=8c84d745bb8ab930a8f47fd1e4388300def9afbea90aed449558c8189508b9ea
+RIPEMD160(Wireshark 2.0.1 Intel 64.dmg)=be4cb9fbf0f80dd9c17c16ed3a6df6461cd10dd8
+SHA1(Wireshark 2.0.1 Intel 64.dmg)=06d300e50cd20bed1b6e13872c390663d717063f
+MD5(Wireshark 2.0.1 Intel 64.dmg)=04f046a920113c0136d8d75fdc9870ee
+
+Wireshark 2.0.1 Intel 32.dmg: 32320570 bytes
+SHA256(Wireshark 2.0.1 Intel 32.dmg)=244a20142069f238e5f9696af726880df0233b01462ab5028bfff9dd99f81964
+RIPEMD160(Wireshark 2.0.1 Intel 32.dmg)=f50e433f16f9417a9c66c4376ab7c298b6b5be9a
+SHA1(Wireshark 2.0.1 Intel 32.dmg)=6682044bc8b7c33e7eed8814401bd4a0efb84c48
+MD5(Wireshark 2.0.1 Intel 32.dmg)=df7cdee3ef17d81611d1a4dfeca00f4a
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1
-iEYEARECAAYFAlZNAuwACgkQpw8IXSHylJrCJgCgn+7PjD/rmkuT90t+7D8tX/6a
-5ggAn0oUb+yVlM0onpIGrHLLJtosrlf9
-=s6rO
+iEYEARECAAYFAlaDChoACgkQpw8IXSHylJo3MwCdEQ2ZepF4bAz9v2aLrnTLVjS5
+aCAAnirCP+y4Gz5xx5YgdXsh0Pyxh1LT
+=VbIv
-----END PGP SIGNATURE-----
++++++ wireshark-1.12.6-fix-QT-PIC-PIE.patch ++++++
--- /var/tmp/diff_new_pack.NFlGXP/_old 2016-01-01 19:50:58.000000000 +0100
+++ /var/tmp/diff_new_pack.NFlGXP/_new 2016-01-01 19:50:58.000000000 +0100
@@ -19,20 +19,20 @@
Should be considered a temporary fix.
Some discussion: https://build.opensuse.org/request/show/314996
-diff --git a/configure.ac b/configure.ac
-index bcd6f9e..a39a96f 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -1071,18 +1071,18 @@ AC_WIRESHARK_LDFLAGS_CHECK([-Wl,--as-needed])
+Index: wireshark-2.0.1/configure.ac
+===================================================================
+--- wireshark-2.0.1.orig/configure.ac
++++ wireshark-2.0.1/configure.ac
+@@ -1079,18 +1079,18 @@ AC_WIRESHARK_LDFLAGS_CHECK([-Wl,--as-nee
# in the address space to make attacks more difficult.
#
- CFLAGS_before_pie="$CFLAGS"
--AC_WIRESHARK_COMPILER_FLAGS_CHECK(-fPIE)
-+AC_WIRESHARK_COMPILER_FLAGS_CHECK(-fPIC)
- if test "x$CFLAGS" != "x$CFLAGS_before_pie"
+ WS_CHECKED_CFLAGS_before_pie="$WS_CHECKED_CFLAGS"
+-AC_WIRESHARK_COMPILER_FLAGS_CHECK(-fPIE, C)
++AC_WIRESHARK_COMPILER_FLAGS_CHECK(-fPIC, C)
+ if test "x$can_add_to_cflags" = "xyes"
then
# Restore CFLAGS
- CFLAGS="$CFLAGS_before_pie"
+ WS_CHECKED_CFLAGS="$WS_CHECKED_CFLAGS_before_pie"
LDFLAGS_before_pie="$LDFLAGS"
- AC_WIRESHARK_LDFLAGS_CHECK([-fPIE -pie])
++++++ wireshark-2.0.0.tar.bz2 -> wireshark-2.0.1.tar.bz2 ++++++
/work/SRC/openSUSE:Factory/wireshark/wireshark-2.0.0.tar.bz2 /work/SRC/openSUSE:Factory/.wireshark.new/wireshark-2.0.1.tar.bz2 differ: char 11, line 1
1
0
Hello community,
here is the log from the commit of package chromium for openSUSE:Factory checked in at 2016-01-01 19:48:28
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/chromium (Old)
and /work/SRC/openSUSE:Factory/.chromium.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "chromium"
Changes:
--------
--- /work/SRC/openSUSE:Factory/chromium/chromium.changes 2015-12-21 12:06:27.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.chromium.new/chromium.changes 2016-01-01 19:50:31.000000000 +0100
@@ -1,0 +2,12 @@
+Mon Dec 28 18:14:40 UTC 2015 - stefan.bruens(a)rwth-aachen.de
+
+- Enable SSE2 on x86_64
+
+-------------------------------------------------------------------
+Sun Dec 27 21:44:50 UTC 2015 - stefan.bruens(a)rwth-aachen.de
+
+- Fix crash when trying to enable chromecast extension
+ * Add patch: fix_network_api_crash.patch
+ Fix https://code.google.com/p/chromium/issues/detail?id=572539
+
+-------------------------------------------------------------------
@@ -6,0 +19,6 @@
+
+-------------------------------------------------------------------
+Mon Dec 14 04:31:08 UTC 2015 - jimmy(a)boombatower.com
+
+- Enable VA-API hardware acceleration in Linux.
+ * chromium-enable-vaapi.patch
New:
----
chromium-enable-vaapi.patch
fix_network_api_crash.patch
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ chromium.spec ++++++
--- /var/tmp/diff_new_pack.C9DVxx/_old 2016-01-01 19:50:55.000000000 +0100
+++ /var/tmp/diff_new_pack.C9DVxx/_new 2016-01-01 19:50:55.000000000 +0100
@@ -18,6 +18,7 @@
%define chromium_no_dlopen 1
%define chromium_system_libs 1
+%bcond_without libva
Name: chromium
Version: 47.0.2526.106
@@ -69,6 +70,10 @@
Patch11: chromium-46.0.2490.71-fix-missing-i18n_process_css_test.patch
# PATCH-FIX-OPENSUSE fix_building_widevinecdm_with_chromium.patch - Enable WideVine plugin
Patch12: fix_building_widevinecdm_with_chromium.patch
+# PATCH-FIX-OPENSUSE chromium-enable-vaapi.patch - Enable VA-API hardware acceleration in Linux
+Patch13: chromium-enable-vaapi.patch
+# PATCH-FIX-OPENSUSE fix_network_api_crash.patch - Fix crash in network API, e.g. when using chromecast extension
+Patch14: fix_network_api_crash.patch
# archlinux arm enhancement patches
Patch100: arm-webrtc-fix.patch
@@ -190,6 +195,9 @@
BuildRequires: libfaac-devel >= 1.28
BuildRequires: libmp3lame-devel
BuildRequires: libopencore-amr-devel
+%if %{with libva}
+BuildRequires: libva-devel
+%endif
BuildRequires: libx264-devel
BuildRequires: libxvidcore-devel
%endif
@@ -267,6 +275,9 @@
Provides: ffmpegsumo = %{version}
Conflicts: otherproviders(ffmpegsumo)
Requires: %{name} = %{version}
+%if %{with libva}
+Recommends: Mesa-libva
+%endif
%description ffmpeg
FFMPEG library built from the chromium sources.
@@ -289,6 +300,10 @@
%endif
%patch11 -p1
%patch12 -p1
+%if %{with libva}
+%patch13 -p1
+%endif
+%patch14 -p0
#Upstream fixes
@@ -314,7 +329,6 @@
-Dremove_webcore_debug_symbols=1
-Dlogging_like_official_build=1
-Dlinux_fpic=1
- -Ddisable_sse2=1
-Dcomponent=shared_library
-Dtoolkit_uses_gtk=0
-Denable_pepper_cdms=1
@@ -329,10 +343,12 @@
myconf+=" -Ddisable_nacl=1"
%ifarch x86_64
-myconf+=" -Dtarget_arch=x64"
+myconf+=" -Dtarget_arch=x64
+ -Ddisable_sse2=0"
%else
myconf+=" -Dbinutils_dir=third_party/binutils/Linux_ia32/Release/bin
- -Ddisable_fatal_linker_warnings=1"
+ -Ddisable_fatal_linker_warnings=1
+ -Ddisable_sse2=1"
%endif
%ifarch %arm
++++++ chromium-enable-vaapi.patch ++++++
>From ba4616cfd95abf13d911adde82b3d120b1b760ee Mon Sep 17 00:00:00 2001
From: Jimmy Berry <jimmy(a)boombatower.com>
Date: Mon, 14 Dec 2015 00:19:46 -0600
Subject: [PATCH] Enable VA-API hardware acceleration in Linux.
Original source:
http://www.kelvinblog.tk/enable-chromium-vaapi-hardware-acceleration-linux/
https://raw.githubusercontent.com/Kelvin-Ng/Kelvin-Gentoo-Overlay/master/ww…
Merged in changes to support non-intel hybrid graphics.
http://bazaar.launchpad.net/~saiarcot895/chromium-browser/chromium-browser.…
Patch has since been rerolled for openSUSE version of chromium.
---
chrome/browser/about_flags.cc | 2 +-
.../gpu/media/gpu_jpeg_decode_accelerator.cc | 6 +--
.../gpu/media/gpu_video_decode_accelerator.cc | 10 ++--
.../gpu/media/gpu_video_encode_accelerator.cc | 6 +--
.../gpu/media/jpeg_decode_accelerator_unittest.cc | 6 +--
content/common/gpu/media/vaapi_wrapper.cc | 4 +-
.../gpu/media/video_decode_accelerator_unittest.cc | 8 +--
.../gpu/media/video_encode_accelerator_unittest.cc | 8 +--
.../common/sandbox_linux/bpf_gpu_policy_linux.cc | 63 +++++++++++++++-------
content/content_common.gypi | 10 ++--
content/content_gpu.gypi | 2 +-
content/content_tests.gypi | 8 +--
content/gpu/gpu_main.cc | 4 +-
content/public/common/content_switches.cc | 2 +
content/public/common/content_switches.h | 2 +
gpu/config/software_rendering_list_json.cc | 16 ++----
media/media.gyp | 4 +-
17 files changed, 92 insertions(+), 69 deletions(-)
diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
index adce315..1c4d188 100644
--- a/chrome/browser/about_flags.cc
+++ b/chrome/browser/about_flags.cc
@@ -1003,7 +1003,7 @@ const Experiment kExperiments[] = {
"disable-accelerated-video-decode",
IDS_FLAGS_DISABLE_ACCELERATED_VIDEO_DECODE_NAME,
IDS_FLAGS_DISABLE_ACCELERATED_VIDEO_DECODE_DESCRIPTION,
- kOsMac | kOsWin | kOsCrOS,
+ kOsMac | kOsWin | kOsCrOS | kOsLinux,
SINGLE_VALUE_TYPE(switches::kDisableAcceleratedVideoDecode),
},
#if defined(USE_ASH)
diff --git a/content/common/gpu/media/gpu_jpeg_decode_accelerator.cc b/content/common/gpu/media/gpu_jpeg_decode_accelerator.cc
index de0f587..2d899ad 100644
--- a/content/common/gpu/media/gpu_jpeg_decode_accelerator.cc
+++ b/content/common/gpu/media/gpu_jpeg_decode_accelerator.cc
@@ -20,7 +20,7 @@
#include "media/filters/jpeg_parser.h"
#include "ui/gfx/geometry/size.h"
-#if defined(OS_CHROMEOS)
+#if defined(OS_CHROMEOS) || defined(OS_LINUX)
#if defined(ARCH_CPU_X86_FAMILY)
#include "content/common/gpu/media/vaapi_jpeg_decode_accelerator.h"
#endif
@@ -402,7 +402,7 @@ scoped_ptr<media::JpegDecodeAccelerator>
GpuJpegDecodeAccelerator::CreateV4L2JDA(
const scoped_refptr<base::SingleThreadTaskRunner>& io_task_runner) {
scoped_ptr<media::JpegDecodeAccelerator> decoder;
-#if defined(OS_CHROMEOS) && defined(USE_V4L2_CODEC)
+#if (defined(OS_CHROMEOS) || defined(OS_LINUX)) && defined(USE_V4L2_CODEC)
scoped_refptr<V4L2Device> device = V4L2Device::Create(
V4L2Device::kJpegDecoder);
if (device)
@@ -416,7 +416,7 @@ scoped_ptr<media::JpegDecodeAccelerator>
GpuJpegDecodeAccelerator::CreateVaapiJDA(
const scoped_refptr<base::SingleThreadTaskRunner>& io_task_runner) {
scoped_ptr<media::JpegDecodeAccelerator> decoder;
-#if defined(OS_CHROMEOS) && defined(ARCH_CPU_X86_FAMILY)
+#if (defined(OS_CHROMEOS) || defined(OS_LINUX)) && defined(ARCH_CPU_X86_FAMILY)
decoder.reset(new VaapiJpegDecodeAccelerator(io_task_runner));
#endif
return decoder.Pass();
diff --git a/content/common/gpu/media/gpu_video_decode_accelerator.cc b/content/common/gpu/media/gpu_video_decode_accelerator.cc
index 5205404..06d3452 100644
--- a/content/common/gpu/media/gpu_video_decode_accelerator.cc
+++ b/content/common/gpu/media/gpu_video_decode_accelerator.cc
@@ -33,7 +33,7 @@
#include "content/common/gpu/media/dxva_video_decode_accelerator.h"
#elif defined(OS_MACOSX)
#include "content/common/gpu/media/vt_video_decode_accelerator.h"
-#elif defined(OS_CHROMEOS)
+#elif defined(OS_CHROMEOS) || defined(OS_LINUX)
#if defined(USE_V4L2_CODEC)
#include "content/common/gpu/media/v4l2_device.h"
#include "content/common/gpu/media/v4l2_slice_video_decode_accelerator.h"
@@ -300,7 +300,7 @@ GpuVideoDecodeAccelerator::CreateDXVAVDA() {
scoped_ptr<media::VideoDecodeAccelerator>
GpuVideoDecodeAccelerator::CreateV4L2VDA() {
scoped_ptr<media::VideoDecodeAccelerator> decoder;
-#if defined(OS_CHROMEOS) && defined(USE_V4L2_CODEC)
+#if (defined(OS_CHROMEOS) || defined(OS_LINUX)) && defined(USE_V4L2_CODEC)
scoped_refptr<V4L2Device> device = V4L2Device::Create(V4L2Device::kDecoder);
if (device.get()) {
decoder.reset(new V4L2VideoDecodeAccelerator(
@@ -318,7 +318,7 @@ GpuVideoDecodeAccelerator::CreateV4L2VDA() {
scoped_ptr<media::VideoDecodeAccelerator>
GpuVideoDecodeAccelerator::CreateV4L2SliceVDA() {
scoped_ptr<media::VideoDecodeAccelerator> decoder;
-#if defined(OS_CHROMEOS) && defined(USE_V4L2_CODEC)
+#if (defined(OS_CHROMEOS) || defined(OS_LINUX)) && defined(USE_V4L2_CODEC)
scoped_refptr<V4L2Device> device = V4L2Device::Create(V4L2Device::kDecoder);
if (device.get()) {
decoder.reset(new V4L2SliceVideoDecodeAccelerator(
@@ -347,7 +347,7 @@ void GpuVideoDecodeAccelerator::BindImage(uint32 client_texture_id,
scoped_ptr<media::VideoDecodeAccelerator>
GpuVideoDecodeAccelerator::CreateVaapiVDA() {
scoped_ptr<media::VideoDecodeAccelerator> decoder;
-#if defined(OS_CHROMEOS) && defined(ARCH_CPU_X86_FAMILY)
+#if (defined(OS_CHROMEOS) || defined(OS_LINUX)) && defined(ARCH_CPU_X86_FAMILY)
decoder.reset(new VaapiVideoDecodeAccelerator(
make_context_current_, base::Bind(&GpuVideoDecodeAccelerator::BindImage,
base::Unretained(this))));
@@ -401,7 +401,7 @@ GpuVideoDecodeAccelerator::GetSupportedProfiles() {
// can be initialized by corresponding VDA successfully.
#if defined(OS_WIN)
profiles = DXVAVideoDecodeAccelerator::GetSupportedProfiles();
-#elif defined(OS_CHROMEOS)
+#elif defined(OS_CHROMEOS) || defined(OS_LINUX)
media::VideoDecodeAccelerator::SupportedProfiles vda_profiles;
#if defined(USE_V4L2_CODEC)
vda_profiles = V4L2VideoDecodeAccelerator::GetSupportedProfiles();
diff --git a/content/common/gpu/media/gpu_video_encode_accelerator.cc b/content/common/gpu/media/gpu_video_encode_accelerator.cc
index ef14060..d6fcf77 100644
--- a/content/common/gpu/media/gpu_video_encode_accelerator.cc
+++ b/content/common/gpu/media/gpu_video_encode_accelerator.cc
@@ -20,7 +20,7 @@
#include "media/base/limits.h"
#include "media/base/video_frame.h"
-#if defined(OS_CHROMEOS)
+#if defined(OS_CHROMEOS) || defined(OS_LINUX)
#if defined(USE_V4L2_CODEC)
#include "content/common/gpu/media/v4l2_video_encode_accelerator.h"
#endif
@@ -197,7 +197,7 @@ GpuVideoEncodeAccelerator::CreateVEAFps() {
scoped_ptr<media::VideoEncodeAccelerator>
GpuVideoEncodeAccelerator::CreateV4L2VEA() {
scoped_ptr<media::VideoEncodeAccelerator> encoder;
-#if defined(OS_CHROMEOS) && defined(USE_V4L2_CODEC)
+#if (defined(OS_CHROMEOS) || defined(OS_LINUX)) && defined(USE_V4L2_CODEC)
scoped_refptr<V4L2Device> device = V4L2Device::Create(V4L2Device::kEncoder);
if (device)
encoder.reset(new V4L2VideoEncodeAccelerator(device));
@@ -209,7 +209,7 @@ GpuVideoEncodeAccelerator::CreateV4L2VEA() {
scoped_ptr<media::VideoEncodeAccelerator>
GpuVideoEncodeAccelerator::CreateVaapiVEA() {
scoped_ptr<media::VideoEncodeAccelerator> encoder;
-#if defined(OS_CHROMEOS) && defined(ARCH_CPU_X86_FAMILY)
+#if (defined(OS_CHROMEOS) || defined(OS_LINUX)) && defined(ARCH_CPU_X86_FAMILY)
const base::CommandLine* cmd_line = base::CommandLine::ForCurrentProcess();
if (!cmd_line->HasSwitch(switches::kDisableVaapiAcceleratedVideoEncode))
encoder.reset(new VaapiVideoEncodeAccelerator());
diff --git a/content/common/gpu/media/jpeg_decode_accelerator_unittest.cc b/content/common/gpu/media/jpeg_decode_accelerator_unittest.cc
index fa640b1..8026753 100644
--- a/content/common/gpu/media/jpeg_decode_accelerator_unittest.cc
+++ b/content/common/gpu/media/jpeg_decode_accelerator_unittest.cc
@@ -23,7 +23,7 @@
#include "third_party/libyuv/include/libyuv.h"
#include "ui/gfx/codec/jpeg_codec.h"
-#if defined(OS_CHROMEOS)
+#if defined(OS_CHROMEOS) || defined(OS_LINUX)
#if defined(USE_V4L2_CODEC)
#include "content/common/gpu/media/v4l2_device.h"
#include "content/common/gpu/media/v4l2_jpeg_decode_accelerator.h"
@@ -129,7 +129,7 @@ JpegClient::~JpegClient() {
}
void JpegClient::CreateJpegDecoder() {
-#if defined(OS_CHROMEOS) && defined(ARCH_CPU_X86_FAMILY)
+#if (defined(OS_CHROMEOS) || defined(OS_LINUX)) && defined(ARCH_CPU_X86_FAMILY)
decoder_.reset(
new VaapiJpegDecodeAccelerator(base::ThreadTaskRunnerHandle::Get()));
#elif defined(OS_CHROMEOS) && defined(USE_V4L2_CODEC)
@@ -568,7 +568,7 @@ int main(int argc, char** argv) {
continue;
LOG(FATAL) << "Unexpected switch: " << it->first << ":" << it->second;
}
-#if defined(OS_CHROMEOS) && defined(ARCH_CPU_X86_FAMILY)
+#if (defined(OS_CHROMEOS) || defined(OS_LINUX)) && defined(ARCH_CPU_X86_FAMILY)
content::VaapiWrapper::PreSandboxInitialization();
#endif
diff --git a/content/common/gpu/media/vaapi_wrapper.cc b/content/common/gpu/media/vaapi_wrapper.cc
index e85293a..368d793 100644
--- a/content/common/gpu/media/vaapi_wrapper.cc
+++ b/content/common/gpu/media/vaapi_wrapper.cc
@@ -307,7 +307,9 @@ bool VaapiWrapper::VaInitialize(const base::Closure& report_error_to_uma_cb) {
static bool vaapi_functions_initialized = PostSandboxInitialization();
if (!vaapi_functions_initialized) {
bool running_on_chromeos = false;
-#if defined(OS_CHROMEOS)
+#if defined(OS_LINUX)
+ running_on_chromeos = true;
+#elif defined(OS_CHROMEOS)
// When chrome runs on linux with chromeos=1, do not log error message
// without VAAPI libraries.
running_on_chromeos = base::SysInfo::IsRunningOnChromeOS();
diff --git a/content/common/gpu/media/video_decode_accelerator_unittest.cc b/content/common/gpu/media/video_decode_accelerator_unittest.cc
index 493ced7..1ebde42 100644
--- a/content/common/gpu/media/video_decode_accelerator_unittest.cc
+++ b/content/common/gpu/media/video_decode_accelerator_unittest.cc
@@ -532,7 +532,7 @@ GLRenderingVDAClient::CreateDXVAVDA() {
scoped_ptr<media::VideoDecodeAccelerator>
GLRenderingVDAClient::CreateV4L2VDA() {
scoped_ptr<media::VideoDecodeAccelerator> decoder;
-#if defined(OS_CHROMEOS) && defined(USE_V4L2_CODEC)
+#if (defined(OS_CHROMEOS) || defined(OS_LINUX)) && defined(USE_V4L2_CODEC)
scoped_refptr<V4L2Device> device = V4L2Device::Create(V4L2Device::kDecoder);
if (device.get()) {
base::WeakPtr<VideoDecodeAccelerator::Client> weak_client = AsWeakPtr();
@@ -549,7 +549,7 @@ GLRenderingVDAClient::CreateV4L2VDA() {
scoped_ptr<media::VideoDecodeAccelerator>
GLRenderingVDAClient::CreateV4L2SliceVDA() {
scoped_ptr<media::VideoDecodeAccelerator> decoder;
-#if defined(OS_CHROMEOS) && defined(USE_V4L2_CODEC)
+#if (defined(OS_CHROMEOS) || defined(OS_LINUX)) && defined(USE_V4L2_CODEC)
scoped_refptr<V4L2Device> device = V4L2Device::Create(V4L2Device::kDecoder);
if (device.get()) {
base::WeakPtr<VideoDecodeAccelerator::Client> weak_client = AsWeakPtr();
@@ -566,7 +566,7 @@ GLRenderingVDAClient::CreateV4L2SliceVDA() {
scoped_ptr<media::VideoDecodeAccelerator>
GLRenderingVDAClient::CreateVaapiVDA() {
scoped_ptr<media::VideoDecodeAccelerator> decoder;
-#if defined(OS_CHROMEOS) && defined(ARCH_CPU_X86_FAMILY)
+#if (defined(OS_CHROMEOS) || defined(OS_LINUX)) && defined(ARCH_CPU_X86_FAMILY)
decoder.reset(new VaapiVideoDecodeAccelerator(
base::Bind(&DoNothingReturnTrue),
base::Bind(&GLRenderingVDAClient::BindImage, base::Unretained(this))));
@@ -1651,7 +1651,7 @@ int main(int argc, char **argv) {
ui::OzonePlatform::InitializeForUI();
#endif
-#if defined(OS_CHROMEOS) && defined(ARCH_CPU_X86_FAMILY)
+#if (defined(OS_CHROMEOS) || defined(OS_LINUX)) && defined(ARCH_CPU_X86_FAMILY)
content::VaapiWrapper::PreSandboxInitialization();
#endif
diff --git a/content/common/gpu/media/video_encode_accelerator_unittest.cc b/content/common/gpu/media/video_encode_accelerator_unittest.cc
index e22bd42..5f114aa 100644
--- a/content/common/gpu/media/video_encode_accelerator_unittest.cc
+++ b/content/common/gpu/media/video_encode_accelerator_unittest.cc
@@ -40,7 +40,7 @@
#include "media/video/video_encode_accelerator.h"
#include "testing/gtest/include/gtest/gtest.h"
-#if defined(OS_CHROMEOS)
+#if defined(OS_CHROMEOS) || defined(OS_LINUX)
#if defined(ARCH_CPU_ARMEL) || (defined(USE_OZONE) && defined(USE_V4L2_CODEC))
#include "content/common/gpu/media/v4l2_video_encode_accelerator.h"
#endif
@@ -1043,7 +1043,7 @@ scoped_ptr<media::VideoEncodeAccelerator> VEAClient::CreateFakeVEA() {
scoped_ptr<media::VideoEncodeAccelerator> VEAClient::CreateV4L2VEA() {
scoped_ptr<media::VideoEncodeAccelerator> encoder;
-#if defined(OS_CHROMEOS) && (defined(ARCH_CPU_ARMEL) || \
+#if (defined(OS_CHROMEOS) || defined(OS_LINUX)) && (defined(ARCH_CPU_ARMEL) || \
(defined(USE_OZONE) && defined(USE_V4L2_CODEC)))
scoped_refptr<V4L2Device> device = V4L2Device::Create(V4L2Device::kEncoder);
if (device)
@@ -1054,7 +1054,7 @@ scoped_ptr<media::VideoEncodeAccelerator> VEAClient::CreateV4L2VEA() {
scoped_ptr<media::VideoEncodeAccelerator> VEAClient::CreateVaapiVEA() {
scoped_ptr<media::VideoEncodeAccelerator> encoder;
-#if defined(OS_CHROMEOS) && defined(ARCH_CPU_X86_FAMILY)
+#if (defined(OS_CHROMEOS) || defined(OS_LINUX)) && defined(ARCH_CPU_X86_FAMILY)
encoder.reset(new VaapiVideoEncodeAccelerator());
#endif
return encoder.Pass();
@@ -1760,7 +1760,7 @@ int main(int argc, char** argv) {
LOG(FATAL) << "--measure_latency requires --run_at_fps enabled to work.";
}
-#if defined(OS_CHROMEOS) && defined(ARCH_CPU_X86_FAMILY)
+#if (defined(OS_CHROMEOS) || defined(OS_LINUX)) && defined(ARCH_CPU_X86_FAMILY)
content::VaapiWrapper::PreSandboxInitialization();
#endif
diff --git a/content/common/sandbox_linux/bpf_gpu_policy_linux.cc b/content/common/sandbox_linux/bpf_gpu_policy_linux.cc
index 8f7fd64d..8911527 100644
--- a/content/common/sandbox_linux/bpf_gpu_policy_linux.cc
+++ b/content/common/sandbox_linux/bpf_gpu_policy_linux.cc
@@ -21,6 +21,8 @@
#include "base/logging.h"
#include "base/memory/scoped_ptr.h"
#include "build/build_config.h"
+// Auto-generated for dlopen libva libraries
+#include "content/common/gpu/media/va_stubs.h"
#include "content/common/sandbox_linux/sandbox_bpf_base_policy_linux.h"
#include "content/common/sandbox_linux/sandbox_seccomp_bpf_linux.h"
#include "content/common/set_process_title.h"
@@ -31,6 +33,8 @@
#include "sandbox/linux/syscall_broker/broker_file_permission.h"
#include "sandbox/linux/syscall_broker/broker_process.h"
#include "sandbox/linux/system_headers/linux_syscalls.h"
+#include "third_party/libva/va/va.h"
+#include "third_party/libva/va/va_x11.h"
using sandbox::arch_seccomp_data;
using sandbox::bpf_dsl::Allow;
@@ -40,6 +44,11 @@ using sandbox::syscall_broker::BrokerFilePermission;
using sandbox::syscall_broker::BrokerProcess;
using sandbox::SyscallSets;
+using content_common_gpu_media::kModuleVa;
+using content_common_gpu_media::kModuleVa_x11;
+using content_common_gpu_media::InitializeStubs;
+using content_common_gpu_media::StubPathMap;
+
namespace content {
namespace {
@@ -94,7 +103,7 @@ inline bool UseLibV4L2() {
bool IsAcceleratedVaapiVideoEncodeEnabled() {
bool accelerated_encode_enabled = false;
-#if defined(OS_CHROMEOS)
+#if defined(OS_CHROMEOS) || defined(OS_LINUX)
const base::CommandLine& command_line =
*base::CommandLine::ForCurrentProcess();
accelerated_encode_enabled =
@@ -299,27 +308,41 @@ bool GpuProcessPolicy::PreSandboxHook() {
// inside the sandbox, so preload them now.
if (IsAcceleratedVaapiVideoEncodeEnabled() ||
IsAcceleratedVideoDecodeEnabled()) {
- const char* I965DrvVideoPath = NULL;
- const char* I965HybridDrvVideoPath = NULL;
-
- if (IsArchitectureX86_64()) {
- I965DrvVideoPath = "/usr/lib64/va/drivers/i965_drv_video.so";
- I965HybridDrvVideoPath = "/usr/lib64/va/drivers/hybrid_drv_video.so";
- } else if (IsArchitectureI386()) {
- I965DrvVideoPath = "/usr/lib/va/drivers/i965_drv_video.so";
+ DVLOG(1) << "Attempting to enable hardware video acceleration.";
+ StubPathMap paths;
+ paths[kModuleVa].push_back("libva.so.1");
+ paths[kModuleVa_x11].push_back("libva-x11.so.1");
+ if (!InitializeStubs(paths)) {
+ DVLOG(1) << "Failed to initialize stubs";
+ return false;
}
- dlopen(I965DrvVideoPath, RTLD_NOW|RTLD_GLOBAL|RTLD_NODELETE);
- if (I965HybridDrvVideoPath)
- dlopen(I965HybridDrvVideoPath, RTLD_NOW|RTLD_GLOBAL|RTLD_NODELETE);
- dlopen("libva.so.1", RTLD_NOW|RTLD_GLOBAL|RTLD_NODELETE);
-#if defined(USE_OZONE)
- dlopen("libva-drm.so.1", RTLD_NOW|RTLD_GLOBAL|RTLD_NODELETE);
-#elif defined(USE_X11)
- dlopen("libva-x11.so.1", RTLD_NOW|RTLD_GLOBAL|RTLD_NODELETE);
-#endif
- }
- }
+ // libva drivers won't get loaded even above two libraries get dlopened.
+ // Thus, libva calls will fail after post sandbox stage.
+ //
+ // To get the va driver loaded before sandboxing, upstream simply dlopen
+ // the hard-coded va driver path because ChromeOS is the only platform
+ // that Google want to support libva.
+ //
+ // While generic linux distros ship va driver as anywhere they want.
+ // Fortunately, the va driver will be loadded when vaInitialize() get
+ // called.
+ // So the following code is to call vaInitialize() before sandboxing.
+ Display* x_display = XOpenDisplay(NULL);
+ VADisplay va_display = vaGetDisplay(x_display);
+ if (!vaDisplayIsValid(va_display)) {
+ DVLOG(1) << "Failed to call vaGetDisplay()";
+ return false;
+ }
+
+ int major_version, minor_version;
+ if (vaInitialize(va_display, &major_version, &minor_version)
+ != VA_STATUS_SUCCESS) {
+ DVLOG(1) << "Failed to call vaInitialize()";
+ return false;
+ }
+ } // end of IsAcceleratedVaapiVideoEncodeEnabled() || IsAcceleratedVideoDecodeEnabled()
+ } // end of IsArchitectureX86_64() || IsArchitectureI386()
return true;
}
diff --git a/content/content_common.gypi b/content/content_common.gypi
index c54f367..9179cc0 100644
--- a/content/content_common.gypi
+++ b/content/content_common.gypi
@@ -818,7 +818,7 @@
'../third_party/libjingle/libjingle.gyp:libjingle',
],
}],
- ['use_v4lplugin==1 and chromeos==1', {
+ ['use_v4lplugin==1 and (chromeos==1 or desktop_linux==1)', {
'defines': [
'USE_LIBV4L2'
],
@@ -862,7 +862,7 @@
},
],
}],
- ['chromeos==1', {
+ ['chromeos==1 or desktop_linux==1', {
'sources': [
'common/gpu/media/accelerated_video_decoder.h',
'common/gpu/media/h264_decoder.cc',
@@ -879,7 +879,7 @@
'common/gpu/media/vp9_picture.h',
],
}],
- ['chromeos==1 and use_v4l2_codec==1', {
+ ['(chromeos==1 or desktop_linux==1) and use_v4l2_codec==1', {
'direct_dependent_settings': {
'defines': [
'USE_V4L2_CODEC'
@@ -912,13 +912,13 @@
'<(DEPTH)/third_party/khronos',
],
}],
- ['target_arch == "arm" and chromeos == 1', {
+ ['target_arch == "arm" and (chromeos == 1 or desktop_linux == 1)', {
'sources': [
'common/gpu/media/tegra_v4l2_device.cc',
'common/gpu/media/tegra_v4l2_device.h',
],
}],
- ['target_arch != "arm" and chromeos == 1', {
+ ['target_arch != "arm" and (chromeos == 1 or desktop_linux == 1)', {
'dependencies': [
'../media/media.gyp:media',
'../third_party/libyuv/libyuv.gyp:libyuv',
diff --git a/content/content_gpu.gypi b/content/content_gpu.gypi
index 1c2121d..9dfb370 100644
--- a/content/content_gpu.gypi
+++ b/content/content_gpu.gypi
@@ -36,7 +36,7 @@
],
},
}],
- ['target_arch!="arm" and chromeos == 1', {
+ ['target_arch!="arm" and (chromeos == 1 or desktop_linux == 1)', {
'include_dirs': [
'<(DEPTH)/third_party/libva',
],
diff --git a/content/content_tests.gypi b/content/content_tests.gypi
index 5c477ff..8d3b13b 100644
--- a/content/content_tests.gypi
+++ b/content/content_tests.gypi
@@ -1662,7 +1662,7 @@
},
],
}],
- ['chromeos==1 or OS=="win" or OS=="android"', {
+ ['(chromeos==1 or desktop_linux==1) or OS=="win" or OS=="android"', {
'targets': [
{
'target_name': 'video_decode_accelerator_unittest',
@@ -1731,7 +1731,7 @@
'../ui/gfx/x/gfx_x11.gyp:gfx_x11',
],
}],
- ['use_ozone==1 and chromeos==1', {
+ ['use_ozone==1 and (chromeos==1 or desktop_linux == 1)', {
'dependencies': [
'../ui/display/display.gyp:display', # Used by rendering_helper.cc
'../ui/ozone/ozone.gyp:ozone', # Used by rendering_helper.cc
@@ -1743,7 +1743,7 @@
},
]
}],
- ['chromeos==1 and target_arch != "arm"', {
+ ['(chromeos==1 or desktop_linux==1) and target_arch != "arm"', {
'targets': [
{
'target_name': 'vaapi_jpeg_decoder_unittest',
@@ -1775,7 +1775,7 @@
}
]
}],
- ['chromeos==1', {
+ ['chromeos==1 or desktop_linux==1', {
'targets': [
{
'target_name': 'video_encode_accelerator_unittest',
diff --git a/content/gpu/gpu_main.cc b/content/gpu/gpu_main.cc
index e7ce06e..1fff198 100644
--- a/content/gpu/gpu_main.cc
+++ b/content/gpu/gpu_main.cc
@@ -66,7 +66,7 @@
#include "content/common/sandbox_mac.h"
#endif
-#if defined(OS_CHROMEOS) && defined(ARCH_CPU_X86_FAMILY)
+#if (defined(OS_CHROMEOS) || defined(OS_LINUX)) && defined(ARCH_CPU_X86_FAMILY)
#include "content/common/gpu/media/vaapi_wrapper.h"
#endif
@@ -231,7 +231,7 @@ int GpuMain(const MainFunctionParams& parameters) {
GetGpuInfoFromCommandLine(gpu_info, command_line);
gpu_info.in_process_gpu = false;
-#if defined(OS_CHROMEOS) && defined(ARCH_CPU_X86_FAMILY)
+#if (defined(OS_CHROMEOS) || defined(OS_LINUX)) && defined(ARCH_CPU_X86_FAMILY)
VaapiWrapper::PreSandboxInitialization();
#endif
diff --git a/content/public/common/content_switches.cc b/content/public/common/content_switches.cc
index a685f47..7814456 100644
--- a/content/public/common/content_switches.cc
+++ b/content/public/common/content_switches.cc
@@ -908,7 +908,9 @@ const char kDisableWebAudio[] = "disable-webaudio";
#if defined(OS_CHROMEOS)
// Disables panel fitting (used for mirror mode).
const char kDisablePanelFitting[] = "disable-panel-fitting";
+#endif
+#if defined(OS_CHROMEOS) || defined(OS_LINUX)
// Disables VA-API accelerated video encode.
const char kDisableVaapiAcceleratedVideoEncode[] =
"disable-vaapi-accelerated-video-encode";
diff --git a/content/public/common/content_switches.h b/content/public/common/content_switches.h
index 2d13186..9ecd6e0 100644
--- a/content/public/common/content_switches.h
+++ b/content/public/common/content_switches.h
@@ -269,6 +269,8 @@ CONTENT_EXPORT extern const char kDisableWebAudio[];
#if defined(OS_CHROMEOS)
CONTENT_EXPORT extern const char kDisablePanelFitting[];
+#endif
+#if defined(OS_CHROMEOS) || defined(OS_LINUX)
CONTENT_EXPORT extern const char kDisableVaapiAcceleratedVideoEncode[];
#endif
diff --git a/gpu/config/software_rendering_list_json.cc b/gpu/config/software_rendering_list_json.cc
index eaabfe6..efe775d 100644
--- a/gpu/config/software_rendering_list_json.cc
+++ b/gpu/config/software_rendering_list_json.cc
@@ -481,17 +481,6 @@ const char kSoftwareRenderingListJson[] = LONG_STRING_CONST(
]
},
{
- "id": 48,
- "description": "Accelerated video decode is unavailable on Linux",
- "cr_bugs": [137247],
- "os": {
- "type": "linux"
- },
- "features": [
- "accelerated_video_decode"
- ]
- },
- {
"id": 49,
"description": "NVidia GeForce GT 650M can cause the system to hang with flash 3D",
"cr_bugs": [140175],
@@ -1039,6 +1028,11 @@ LONG_STRING_CONST(
"op": ">=",
"value": "3.0"
}
+ },
+ {
+ "os": {
+ "type": "linux"
+ }
}
],
"features": [
diff --git a/media/media.gyp b/media/media.gyp
index a842881..063c3d1 100644
--- a/media/media.gyp
+++ b/media/media.gyp
@@ -761,7 +761,7 @@
],
}],
# For VaapiVideoEncodeAccelerator.
- ['target_arch != "arm" and chromeos == 1', {
+ ['target_arch != "arm" and (chromeos == 1 or desktop_linux == 1)', {
'sources': [
'filters/h264_bitstream_buffer.cc',
'filters/h264_bitstream_buffer.h',
@@ -1381,7 +1381,7 @@
'player_android',
],
}],
- ['target_arch != "arm" and chromeos == 1 and use_x11 == 1', {
+ ['target_arch != "arm" and (chromeos == 1 or desktop_linux == 1) and use_x11 == 1', {
'sources': [
'filters/h264_bitstream_buffer_unittest.cc',
],
--
2.6.3
++++++ fix_network_api_crash.patch ++++++
--- extensions/browser/api/networking_private/networking_private_linux.cc_ 2015-12-26 20:26:42.386838036 +0100
+++ extensions/browser/api/networking_private/networking_private_linux.cc 2015-12-27 02:15:56.848713761 +0100
@@ -215,12 +215,14 @@
scoped_ptr<base::DictionaryValue> network_properties(
new base::DictionaryValue);
+ std::string* erp = error.get();
+ base::DictionaryValue* npp = network_properties.get();
// Runs GetCachedNetworkProperties on |dbus_thread|.
dbus_thread_.task_runner()->PostTaskAndReply(
FROM_HERE, base::Bind(&NetworkingPrivateLinux::GetCachedNetworkProperties,
base::Unretained(this), guid,
- base::Unretained(network_properties.get()),
- base::Unretained(error.get())),
+ base::Unretained(npp),
+ base::Unretained(erp)),
base::Bind(&GetCachedNetworkPropertiesCallback, base::Passed(&error),
base::Passed(&network_properties), success_callback,
failure_callback));
@@ -301,11 +303,12 @@
// Runs GetAllWiFiAccessPoints on the dbus_thread and returns the
// results back to OnAccessPointsFound where the callback is fired.
+ NetworkMap* nmp = network_map.get();
dbus_thread_.task_runner()->PostTaskAndReply(
FROM_HERE,
base::Bind(&NetworkingPrivateLinux::GetAllWiFiAccessPoints,
base::Unretained(this), configured_only, visible_only, limit,
- base::Unretained(network_map.get())),
+ base::Unretained(nmp)),
base::Bind(&NetworkingPrivateLinux::OnAccessPointsFound,
base::Unretained(this), base::Passed(&network_map),
success_callback, failure_callback));
@@ -321,11 +324,12 @@
// Runs GetAllWiFiAccessPoints on the dbus_thread and returns the
// results back to SendNetworkListChangedEvent to fire the event. No
// callbacks are used in this case.
+ NetworkMap* nmp = network_map.get();
dbus_thread_.task_runner()->PostTaskAndReply(
FROM_HERE, base::Bind(&NetworkingPrivateLinux::GetAllWiFiAccessPoints,
base::Unretained(this), false /* configured_only */,
false /* visible_only */, 0 /* limit */,
- base::Unretained(network_map.get())),
+ base::Unretained(nmp)),
base::Bind(&NetworkingPrivateLinux::OnAccessPointsFoundViaScan,
base::Unretained(this), base::Passed(&network_map)));
@@ -506,11 +510,12 @@
scoped_ptr<std::string> error(new std::string);
+ std::string* erp = error.get();
// Runs ConnectToNetwork on |dbus_thread|.
dbus_thread_.task_runner()->PostTaskAndReply(
FROM_HERE,
base::Bind(&NetworkingPrivateLinux::ConnectToNetwork,
- base::Unretained(this), guid, base::Unretained(error.get())),
+ base::Unretained(this), guid, base::Unretained(erp)),
base::Bind(&OnNetworkConnectOperationCompleted, base::Passed(&error),
success_callback, failure_callback));
}
@@ -524,11 +529,12 @@
scoped_ptr<std::string> error(new std::string);
+ std::string* erp = error.get();
// Runs DisconnectFromNetwork on |dbus_thread|.
dbus_thread_.task_runner()->PostTaskAndReply(
FROM_HERE,
base::Bind(&NetworkingPrivateLinux::DisconnectFromNetwork,
- base::Unretained(this), guid, base::Unretained(error.get())),
+ base::Unretained(this), guid, base::Unretained(erp)),
base::Bind(&OnNetworkConnectOperationCompleted, base::Passed(&error),
success_callback, failure_callback));
}
1
0
Hello community,
here is the log from the commit of package phpMyAdmin for openSUSE:Factory checked in at 2016-01-01 19:48:26
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/phpMyAdmin (Old)
and /work/SRC/openSUSE:Factory/.phpMyAdmin.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "phpMyAdmin"
Changes:
--------
--- /work/SRC/openSUSE:Factory/phpMyAdmin/phpMyAdmin.changes 2015-10-28 17:30:30.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.phpMyAdmin.new/phpMyAdmin.changes 2016-01-01 19:50:27.000000000 +0100
@@ -1,0 +2,9 @@
+Tue Dec 29 18:47:04 UTC 2015 - ecsos(a)opensuse.org
+
+- update to 4.4.15.2 (2015-12-25)
+- Security fixes:
+ * PMASA-2015-5 (CVE-2015-8669, CWE-661 CWE-200)
+ https://www.phpmyadmin.net/security/PMASA-2015-6/
+ - [Security] Path disclosure, see PMASA-2015-6
+
+-------------------------------------------------------------------
Old:
----
phpMyAdmin-4.4.15.1-all-languages.tar.xz
phpMyAdmin-4.4.15.1-all-languages.tar.xz.asc
New:
----
phpMyAdmin-4.4.15.2-all-languages.tar.xz
phpMyAdmin-4.4.15.2-all-languages.tar.xz.asc
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ phpMyAdmin.spec ++++++
--- /var/tmp/diff_new_pack.1zR8EA/_old 2016-01-01 19:50:29.000000000 +0100
+++ /var/tmp/diff_new_pack.1zR8EA/_new 2016-01-01 19:50:29.000000000 +0100
@@ -29,7 +29,7 @@
%define ap_grp nogroup
%endif
Name: phpMyAdmin
-Version: 4.4.15.1
+Version: 4.4.15.2
Release: 0
Summary: Administration of MySQL over the web
License: GPL-2.0+
++++++ phpMyAdmin-4.4.15.1-all-languages.tar.xz -> phpMyAdmin-4.4.15.2-all-languages.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/phpMyAdmin-4.4.15.1-all-languages/ChangeLog new/phpMyAdmin-4.4.15.2-all-languages/ChangeLog
--- old/phpMyAdmin-4.4.15.1-all-languages/ChangeLog 2015-10-23 13:29:22.000000000 +0200
+++ new/phpMyAdmin-4.4.15.2-all-languages/ChangeLog 2015-12-25 21:46:42.000000000 +0100
@@ -1,6 +1,9 @@
phpMyAdmin - ChangeLog
======================
+4.4.15.2 (2015-12-25)
+- issue [Security] Path disclosure, see PMASA-2015-6
+
4.4.15.1 (2015-10-23)
- issue #11464 phpMyAdmin suggests upgrading to newer version not usable on that system
- issue [security] Content spoofing on url.php
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/phpMyAdmin-4.4.15.1-all-languages/README new/phpMyAdmin-4.4.15.2-all-languages/README
--- old/phpMyAdmin-4.4.15.1-all-languages/README 2015-10-23 13:29:22.000000000 +0200
+++ new/phpMyAdmin-4.4.15.2-all-languages/README 2015-12-25 21:46:42.000000000 +0100
@@ -1,7 +1,7 @@
phpMyAdmin - Readme
===================
-Version 4.4.15.1
+Version 4.4.15.2
A set of PHP-scripts to manage MySQL over the web.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/phpMyAdmin-4.4.15.1-all-languages/RELEASE-DATE-4.4.15.1 new/phpMyAdmin-4.4.15.2-all-languages/RELEASE-DATE-4.4.15.1
--- old/phpMyAdmin-4.4.15.1-all-languages/RELEASE-DATE-4.4.15.1 2015-10-23 13:29:22.000000000 +0200
+++ new/phpMyAdmin-4.4.15.2-all-languages/RELEASE-DATE-4.4.15.1 1970-01-01 01:00:00.000000000 +0100
@@ -1 +0,0 @@
-Fri Oct 23 11:29:01 UTC 2015
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/phpMyAdmin-4.4.15.1-all-languages/RELEASE-DATE-4.4.15.2 new/phpMyAdmin-4.4.15.2-all-languages/RELEASE-DATE-4.4.15.2
--- old/phpMyAdmin-4.4.15.1-all-languages/RELEASE-DATE-4.4.15.2 1970-01-01 01:00:00.000000000 +0100
+++ new/phpMyAdmin-4.4.15.2-all-languages/RELEASE-DATE-4.4.15.2 2015-12-25 21:46:42.000000000 +0100
@@ -0,0 +1 @@
+Fri Dec 25 20:46:23 UTC 2015
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/phpMyAdmin-4.4.15.1-all-languages/doc/conf.py new/phpMyAdmin-4.4.15.2-all-languages/doc/conf.py
--- old/phpMyAdmin-4.4.15.1-all-languages/doc/conf.py 2015-10-23 13:29:22.000000000 +0200
+++ new/phpMyAdmin-4.4.15.2-all-languages/doc/conf.py 2015-12-25 21:46:42.000000000 +0100
@@ -51,7 +51,7 @@
# built documents.
#
# The short X.Y version.
-version = '4.4.15.1'
+version = '4.4.15.2'
# The full version, including alpha/beta/rc tags.
release = version
Files old/phpMyAdmin-4.4.15.1-all-languages/doc/doctrees/config.doctree and new/phpMyAdmin-4.4.15.2-all-languages/doc/doctrees/config.doctree differ
Files old/phpMyAdmin-4.4.15.1-all-languages/doc/doctrees/copyright.doctree and new/phpMyAdmin-4.4.15.2-all-languages/doc/doctrees/copyright.doctree differ
Files old/phpMyAdmin-4.4.15.1-all-languages/doc/doctrees/credits.doctree and new/phpMyAdmin-4.4.15.2-all-languages/doc/doctrees/credits.doctree differ
Files old/phpMyAdmin-4.4.15.1-all-languages/doc/doctrees/developers.doctree and new/phpMyAdmin-4.4.15.2-all-languages/doc/doctrees/developers.doctree differ
Files old/phpMyAdmin-4.4.15.1-all-languages/doc/doctrees/environment.pickle and new/phpMyAdmin-4.4.15.2-all-languages/doc/doctrees/environment.pickle differ
Files old/phpMyAdmin-4.4.15.1-all-languages/doc/doctrees/faq.doctree and new/phpMyAdmin-4.4.15.2-all-languages/doc/doctrees/faq.doctree differ
Files old/phpMyAdmin-4.4.15.1-all-languages/doc/doctrees/glossary.doctree and new/phpMyAdmin-4.4.15.2-all-languages/doc/doctrees/glossary.doctree differ
Files old/phpMyAdmin-4.4.15.1-all-languages/doc/doctrees/import_export.doctree and new/phpMyAdmin-4.4.15.2-all-languages/doc/doctrees/import_export.doctree differ
Files old/phpMyAdmin-4.4.15.1-all-languages/doc/doctrees/index.doctree and new/phpMyAdmin-4.4.15.2-all-languages/doc/doctrees/index.doctree differ
Files old/phpMyAdmin-4.4.15.1-all-languages/doc/doctrees/intro.doctree and new/phpMyAdmin-4.4.15.2-all-languages/doc/doctrees/intro.doctree differ
Files old/phpMyAdmin-4.4.15.1-all-languages/doc/doctrees/other.doctree and new/phpMyAdmin-4.4.15.2-all-languages/doc/doctrees/other.doctree differ
Files old/phpMyAdmin-4.4.15.1-all-languages/doc/doctrees/privileges.doctree and new/phpMyAdmin-4.4.15.2-all-languages/doc/doctrees/privileges.doctree differ
Files old/phpMyAdmin-4.4.15.1-all-languages/doc/doctrees/require.doctree and new/phpMyAdmin-4.4.15.2-all-languages/doc/doctrees/require.doctree differ
Files old/phpMyAdmin-4.4.15.1-all-languages/doc/doctrees/setup.doctree and new/phpMyAdmin-4.4.15.2-all-languages/doc/doctrees/setup.doctree differ
Files old/phpMyAdmin-4.4.15.1-all-languages/doc/doctrees/transformations.doctree and new/phpMyAdmin-4.4.15.2-all-languages/doc/doctrees/transformations.doctree differ
Files old/phpMyAdmin-4.4.15.1-all-languages/doc/doctrees/user.doctree and new/phpMyAdmin-4.4.15.2-all-languages/doc/doctrees/user.doctree differ
Files old/phpMyAdmin-4.4.15.1-all-languages/doc/doctrees/vendors.doctree and new/phpMyAdmin-4.4.15.2-all-languages/doc/doctrees/vendors.doctree differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/phpMyAdmin-4.4.15.1-all-languages/doc/html/.buildinfo new/phpMyAdmin-4.4.15.2-all-languages/doc/html/.buildinfo
--- old/phpMyAdmin-4.4.15.1-all-languages/doc/html/.buildinfo 2015-10-23 13:29:22.000000000 +0200
+++ new/phpMyAdmin-4.4.15.2-all-languages/doc/html/.buildinfo 2015-12-25 21:46:42.000000000 +0100
@@ -1,4 +1,4 @@
# Sphinx build info version 1
# This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done.
-config: 48132e5c8669af439ab5d63e8a0e08cb
+config: abfc78d9dab4380fb59496a6c0fb6e1c
tags: 645f666f9bcd5a90fca523b33c5a78b7
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/phpMyAdmin-4.4.15.1-all-languages/doc/html/config.html new/phpMyAdmin-4.4.15.2-all-languages/doc/html/config.html
--- old/phpMyAdmin-4.4.15.1-all-languages/doc/html/config.html 2015-10-23 13:29:22.000000000 +0200
+++ new/phpMyAdmin-4.4.15.2-all-languages/doc/html/config.html 2015-12-25 21:46:42.000000000 +0100
@@ -6,7 +6,7 @@
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
- <title>Configuration — phpMyAdmin 4.4.15.1 documentation</title>
+ <title>Configuration — phpMyAdmin 4.4.15.2 documentation</title>
<link rel="stylesheet" href="_static/default.css" type="text/css" />
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
@@ -14,7 +14,7 @@
<script type="text/javascript">
var DOCUMENTATION_OPTIONS = {
URL_ROOT: './',
- VERSION: '4.4.15.1',
+ VERSION: '4.4.15.2',
COLLAPSE_INDEX: false,
FILE_SUFFIX: '.html',
HAS_SOURCE: true
@@ -24,7 +24,7 @@
<script type="text/javascript" src="_static/underscore.js"></script>
<script type="text/javascript" src="_static/doctools.js"></script>
<link rel="copyright" title="Copyright" href="copyright.html" />
- <link rel="top" title="phpMyAdmin 4.4.15.1 documentation" href="index.html" />
+ <link rel="top" title="phpMyAdmin 4.4.15.2 documentation" href="index.html" />
<link rel="next" title="User Guide" href="user.html" />
<link rel="prev" title="Installation" href="setup.html" />
</head>
@@ -41,7 +41,7 @@
<li class="right" >
<a href="setup.html" title="Installation"
accesskey="P">previous</a> |</li>
- <li><a href="index.html">phpMyAdmin 4.4.15.1 documentation</a> »</li>
+ <li><a href="index.html">phpMyAdmin 4.4.15.2 documentation</a> »</li>
</ul>
</div>
@@ -4992,7 +4992,7 @@
<li class="right" >
<a href="setup.html" title="Installation"
>previous</a> |</li>
- <li><a href="index.html">phpMyAdmin 4.4.15.1 documentation</a> »</li>
+ <li><a href="index.html">phpMyAdmin 4.4.15.2 documentation</a> »</li>
</ul>
</div>
<div class="footer">
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/phpMyAdmin-4.4.15.1-all-languages/doc/html/copyright.html new/phpMyAdmin-4.4.15.2-all-languages/doc/html/copyright.html
--- old/phpMyAdmin-4.4.15.1-all-languages/doc/html/copyright.html 2015-10-23 13:29:22.000000000 +0200
+++ new/phpMyAdmin-4.4.15.2-all-languages/doc/html/copyright.html 2015-12-25 21:46:42.000000000 +0100
@@ -6,7 +6,7 @@
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
- <title>Copyright — phpMyAdmin 4.4.15.1 documentation</title>
+ <title>Copyright — phpMyAdmin 4.4.15.2 documentation</title>
<link rel="stylesheet" href="_static/default.css" type="text/css" />
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
@@ -14,7 +14,7 @@
<script type="text/javascript">
var DOCUMENTATION_OPTIONS = {
URL_ROOT: './',
- VERSION: '4.4.15.1',
+ VERSION: '4.4.15.2',
COLLAPSE_INDEX: false,
FILE_SUFFIX: '.html',
HAS_SOURCE: true
@@ -24,7 +24,7 @@
<script type="text/javascript" src="_static/underscore.js"></script>
<script type="text/javascript" src="_static/doctools.js"></script>
<link rel="copyright" title="Copyright" href="#" />
- <link rel="top" title="phpMyAdmin 4.4.15.1 documentation" href="index.html" />
+ <link rel="top" title="phpMyAdmin 4.4.15.2 documentation" href="index.html" />
<link rel="next" title="Credits" href="credits.html" />
<link rel="prev" title="Distributing and packaging phpMyAdmin" href="vendors.html" />
</head>
@@ -41,7 +41,7 @@
<li class="right" >
<a href="vendors.html" title="Distributing and packaging phpMyAdmin"
accesskey="P">previous</a> |</li>
- <li><a href="index.html">phpMyAdmin 4.4.15.1 documentation</a> »</li>
+ <li><a href="index.html">phpMyAdmin 4.4.15.2 documentation</a> »</li>
</ul>
</div>
@@ -144,7 +144,7 @@
<li class="right" >
<a href="vendors.html" title="Distributing and packaging phpMyAdmin"
>previous</a> |</li>
- <li><a href="index.html">phpMyAdmin 4.4.15.1 documentation</a> »</li>
+ <li><a href="index.html">phpMyAdmin 4.4.15.2 documentation</a> »</li>
</ul>
</div>
<div class="footer">
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/phpMyAdmin-4.4.15.1-all-languages/doc/html/credits.html new/phpMyAdmin-4.4.15.2-all-languages/doc/html/credits.html
--- old/phpMyAdmin-4.4.15.1-all-languages/doc/html/credits.html 2015-10-23 13:29:22.000000000 +0200
+++ new/phpMyAdmin-4.4.15.2-all-languages/doc/html/credits.html 2015-12-25 21:46:42.000000000 +0100
@@ -6,7 +6,7 @@
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
- <title>Credits — phpMyAdmin 4.4.15.1 documentation</title>
+ <title>Credits — phpMyAdmin 4.4.15.2 documentation</title>
<link rel="stylesheet" href="_static/default.css" type="text/css" />
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
@@ -14,7 +14,7 @@
<script type="text/javascript">
var DOCUMENTATION_OPTIONS = {
URL_ROOT: './',
- VERSION: '4.4.15.1',
+ VERSION: '4.4.15.2',
COLLAPSE_INDEX: false,
FILE_SUFFIX: '.html',
HAS_SOURCE: true
@@ -24,7 +24,7 @@
<script type="text/javascript" src="_static/underscore.js"></script>
<script type="text/javascript" src="_static/doctools.js"></script>
<link rel="copyright" title="Copyright" href="copyright.html" />
- <link rel="top" title="phpMyAdmin 4.4.15.1 documentation" href="index.html" />
+ <link rel="top" title="phpMyAdmin 4.4.15.2 documentation" href="index.html" />
<link rel="next" title="Glossary" href="glossary.html" />
<link rel="prev" title="Copyright" href="copyright.html" />
</head>
@@ -41,7 +41,7 @@
<li class="right" >
<a href="copyright.html" title="Copyright"
accesskey="P">previous</a> |</li>
- <li><a href="index.html">phpMyAdmin 4.4.15.1 documentation</a> »</li>
+ <li><a href="index.html">phpMyAdmin 4.4.15.2 documentation</a> »</li>
</ul>
</div>
@@ -701,7 +701,7 @@
<li class="right" >
<a href="copyright.html" title="Copyright"
>previous</a> |</li>
- <li><a href="index.html">phpMyAdmin 4.4.15.1 documentation</a> »</li>
+ <li><a href="index.html">phpMyAdmin 4.4.15.2 documentation</a> »</li>
</ul>
</div>
<div class="footer">
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/phpMyAdmin-4.4.15.1-all-languages/doc/html/developers.html new/phpMyAdmin-4.4.15.2-all-languages/doc/html/developers.html
--- old/phpMyAdmin-4.4.15.1-all-languages/doc/html/developers.html 2015-10-23 13:29:22.000000000 +0200
+++ new/phpMyAdmin-4.4.15.2-all-languages/doc/html/developers.html 2015-12-25 21:46:42.000000000 +0100
@@ -6,7 +6,7 @@
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
- <title>Developers Information — phpMyAdmin 4.4.15.1 documentation</title>
+ <title>Developers Information — phpMyAdmin 4.4.15.2 documentation</title>
<link rel="stylesheet" href="_static/default.css" type="text/css" />
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
@@ -14,7 +14,7 @@
<script type="text/javascript">
var DOCUMENTATION_OPTIONS = {
URL_ROOT: './',
- VERSION: '4.4.15.1',
+ VERSION: '4.4.15.2',
COLLAPSE_INDEX: false,
FILE_SUFFIX: '.html',
HAS_SOURCE: true
@@ -24,7 +24,7 @@
<script type="text/javascript" src="_static/underscore.js"></script>
<script type="text/javascript" src="_static/doctools.js"></script>
<link rel="copyright" title="Copyright" href="copyright.html" />
- <link rel="top" title="phpMyAdmin 4.4.15.1 documentation" href="index.html" />
+ <link rel="top" title="phpMyAdmin 4.4.15.2 documentation" href="index.html" />
<link rel="next" title="Distributing and packaging phpMyAdmin" href="vendors.html" />
<link rel="prev" title="FAQ - Frequently Asked Questions" href="faq.html" />
</head>
@@ -41,7 +41,7 @@
<li class="right" >
<a href="faq.html" title="FAQ - Frequently Asked Questions"
accesskey="P">previous</a> |</li>
- <li><a href="index.html">phpMyAdmin 4.4.15.1 documentation</a> »</li>
+ <li><a href="index.html">phpMyAdmin 4.4.15.2 documentation</a> »</li>
</ul>
</div>
@@ -105,7 +105,7 @@
<li class="right" >
<a href="faq.html" title="FAQ - Frequently Asked Questions"
>previous</a> |</li>
- <li><a href="index.html">phpMyAdmin 4.4.15.1 documentation</a> »</li>
+ <li><a href="index.html">phpMyAdmin 4.4.15.2 documentation</a> »</li>
</ul>
</div>
<div class="footer">
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/phpMyAdmin-4.4.15.1-all-languages/doc/html/faq.html new/phpMyAdmin-4.4.15.2-all-languages/doc/html/faq.html
--- old/phpMyAdmin-4.4.15.1-all-languages/doc/html/faq.html 2015-10-23 13:29:22.000000000 +0200
+++ new/phpMyAdmin-4.4.15.2-all-languages/doc/html/faq.html 2015-12-25 21:46:42.000000000 +0100
@@ -6,7 +6,7 @@
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
- <title>FAQ - Frequently Asked Questions — phpMyAdmin 4.4.15.1 documentation</title>
+ <title>FAQ - Frequently Asked Questions — phpMyAdmin 4.4.15.2 documentation</title>
<link rel="stylesheet" href="_static/default.css" type="text/css" />
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
@@ -14,7 +14,7 @@
<script type="text/javascript">
var DOCUMENTATION_OPTIONS = {
URL_ROOT: './',
- VERSION: '4.4.15.1',
+ VERSION: '4.4.15.2',
COLLAPSE_INDEX: false,
FILE_SUFFIX: '.html',
HAS_SOURCE: true
@@ -24,7 +24,7 @@
<script type="text/javascript" src="_static/underscore.js"></script>
<script type="text/javascript" src="_static/doctools.js"></script>
<link rel="copyright" title="Copyright" href="copyright.html" />
- <link rel="top" title="phpMyAdmin 4.4.15.1 documentation" href="index.html" />
+ <link rel="top" title="phpMyAdmin 4.4.15.2 documentation" href="index.html" />
<link rel="next" title="Developers Information" href="developers.html" />
<link rel="prev" title="Import and export" href="import_export.html" />
</head>
@@ -41,7 +41,7 @@
<li class="right" >
<a href="import_export.html" title="Import and export"
accesskey="P">previous</a> |</li>
- <li><a href="index.html">phpMyAdmin 4.4.15.1 documentation</a> »</li>
+ <li><a href="index.html">phpMyAdmin 4.4.15.2 documentation</a> »</li>
</ul>
</div>
@@ -1850,7 +1850,7 @@
<li class="right" >
<a href="import_export.html" title="Import and export"
>previous</a> |</li>
- <li><a href="index.html">phpMyAdmin 4.4.15.1 documentation</a> »</li>
+ <li><a href="index.html">phpMyAdmin 4.4.15.2 documentation</a> »</li>
</ul>
</div>
<div class="footer">
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/phpMyAdmin-4.4.15.1-all-languages/doc/html/genindex.html new/phpMyAdmin-4.4.15.2-all-languages/doc/html/genindex.html
--- old/phpMyAdmin-4.4.15.1-all-languages/doc/html/genindex.html 2015-10-23 13:29:22.000000000 +0200
+++ new/phpMyAdmin-4.4.15.2-all-languages/doc/html/genindex.html 2015-12-25 21:46:42.000000000 +0100
@@ -7,7 +7,7 @@
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
- <title>Index — phpMyAdmin 4.4.15.1 documentation</title>
+ <title>Index — phpMyAdmin 4.4.15.2 documentation</title>
<link rel="stylesheet" href="_static/default.css" type="text/css" />
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
@@ -15,7 +15,7 @@
<script type="text/javascript">
var DOCUMENTATION_OPTIONS = {
URL_ROOT: './',
- VERSION: '4.4.15.1',
+ VERSION: '4.4.15.2',
COLLAPSE_INDEX: false,
FILE_SUFFIX: '.html',
HAS_SOURCE: true
@@ -25,7 +25,7 @@
<script type="text/javascript" src="_static/underscore.js"></script>
<script type="text/javascript" src="_static/doctools.js"></script>
<link rel="copyright" title="Copyright" href="copyright.html" />
- <link rel="top" title="phpMyAdmin 4.4.15.1 documentation" href="index.html" />
+ <link rel="top" title="phpMyAdmin 4.4.15.2 documentation" href="index.html" />
</head>
<body>
<div class="related">
@@ -34,7 +34,7 @@
<li class="right" style="margin-right: 10px">
<a href="#" title="General Index"
accesskey="I">index</a></li>
- <li><a href="index.html">phpMyAdmin 4.4.15.1 documentation</a> »</li>
+ <li><a href="index.html">phpMyAdmin 4.4.15.2 documentation</a> »</li>
</ul>
</div>
@@ -3793,7 +3793,7 @@
<li class="right" style="margin-right: 10px">
<a href="#" title="General Index"
>index</a></li>
- <li><a href="index.html">phpMyAdmin 4.4.15.1 documentation</a> »</li>
+ <li><a href="index.html">phpMyAdmin 4.4.15.2 documentation</a> »</li>
</ul>
</div>
<div class="footer">
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/phpMyAdmin-4.4.15.1-all-languages/doc/html/glossary.html new/phpMyAdmin-4.4.15.2-all-languages/doc/html/glossary.html
--- old/phpMyAdmin-4.4.15.1-all-languages/doc/html/glossary.html 2015-10-23 13:29:22.000000000 +0200
+++ new/phpMyAdmin-4.4.15.2-all-languages/doc/html/glossary.html 2015-12-25 21:46:42.000000000 +0100
@@ -6,7 +6,7 @@
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
- <title>Glossary — phpMyAdmin 4.4.15.1 documentation</title>
+ <title>Glossary — phpMyAdmin 4.4.15.2 documentation</title>
<link rel="stylesheet" href="_static/default.css" type="text/css" />
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
@@ -14,7 +14,7 @@
<script type="text/javascript">
var DOCUMENTATION_OPTIONS = {
URL_ROOT: './',
- VERSION: '4.4.15.1',
+ VERSION: '4.4.15.2',
COLLAPSE_INDEX: false,
FILE_SUFFIX: '.html',
HAS_SOURCE: true
@@ -24,7 +24,7 @@
<script type="text/javascript" src="_static/underscore.js"></script>
<script type="text/javascript" src="_static/doctools.js"></script>
<link rel="copyright" title="Copyright" href="copyright.html" />
- <link rel="top" title="phpMyAdmin 4.4.15.1 documentation" href="index.html" />
+ <link rel="top" title="phpMyAdmin 4.4.15.2 documentation" href="index.html" />
<link rel="prev" title="Credits" href="credits.html" />
</head>
<body>
@@ -37,7 +37,7 @@
<li class="right" >
<a href="credits.html" title="Credits"
accesskey="P">previous</a> |</li>
- <li><a href="index.html">phpMyAdmin 4.4.15.1 documentation</a> »</li>
+ <li><a href="index.html">phpMyAdmin 4.4.15.2 documentation</a> »</li>
</ul>
</div>
@@ -605,7 +605,7 @@
<li class="right" >
<a href="credits.html" title="Credits"
>previous</a> |</li>
- <li><a href="index.html">phpMyAdmin 4.4.15.1 documentation</a> »</li>
+ <li><a href="index.html">phpMyAdmin 4.4.15.2 documentation</a> »</li>
</ul>
</div>
<div class="footer">
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/phpMyAdmin-4.4.15.1-all-languages/doc/html/import_export.html new/phpMyAdmin-4.4.15.2-all-languages/doc/html/import_export.html
--- old/phpMyAdmin-4.4.15.1-all-languages/doc/html/import_export.html 2015-10-23 13:29:22.000000000 +0200
+++ new/phpMyAdmin-4.4.15.2-all-languages/doc/html/import_export.html 2015-12-25 21:46:42.000000000 +0100
@@ -6,7 +6,7 @@
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
- <title>Import and export — phpMyAdmin 4.4.15.1 documentation</title>
+ <title>Import and export — phpMyAdmin 4.4.15.2 documentation</title>
<link rel="stylesheet" href="_static/default.css" type="text/css" />
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
@@ -14,7 +14,7 @@
<script type="text/javascript">
var DOCUMENTATION_OPTIONS = {
URL_ROOT: './',
- VERSION: '4.4.15.1',
+ VERSION: '4.4.15.2',
COLLAPSE_INDEX: false,
FILE_SUFFIX: '.html',
HAS_SOURCE: true
@@ -24,7 +24,7 @@
<script type="text/javascript" src="_static/underscore.js"></script>
<script type="text/javascript" src="_static/doctools.js"></script>
<link rel="copyright" title="Copyright" href="copyright.html" />
- <link rel="top" title="phpMyAdmin 4.4.15.1 documentation" href="index.html" />
+ <link rel="top" title="phpMyAdmin 4.4.15.2 documentation" href="index.html" />
<link rel="up" title="User Guide" href="user.html" />
<link rel="next" title="FAQ - Frequently Asked Questions" href="faq.html" />
<link rel="prev" title="Other sources of information" href="other.html" />
@@ -42,7 +42,7 @@
<li class="right" >
<a href="other.html" title="Other sources of information"
accesskey="P">previous</a> |</li>
- <li><a href="index.html">phpMyAdmin 4.4.15.1 documentation</a> »</li>
+ <li><a href="index.html">phpMyAdmin 4.4.15.2 documentation</a> »</li>
<li><a href="user.html" accesskey="U">User Guide</a> »</li>
</ul>
</div>
@@ -134,7 +134,7 @@
<li class="right" >
<a href="other.html" title="Other sources of information"
>previous</a> |</li>
- <li><a href="index.html">phpMyAdmin 4.4.15.1 documentation</a> »</li>
+ <li><a href="index.html">phpMyAdmin 4.4.15.2 documentation</a> »</li>
<li><a href="user.html" >User Guide</a> »</li>
</ul>
</div>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/phpMyAdmin-4.4.15.1-all-languages/doc/html/index.html new/phpMyAdmin-4.4.15.2-all-languages/doc/html/index.html
--- old/phpMyAdmin-4.4.15.1-all-languages/doc/html/index.html 2015-10-23 13:29:22.000000000 +0200
+++ new/phpMyAdmin-4.4.15.2-all-languages/doc/html/index.html 2015-12-25 21:46:42.000000000 +0100
@@ -6,7 +6,7 @@
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
- <title>Welcome to phpMyAdmin’s documentation! — phpMyAdmin 4.4.15.1 documentation</title>
+ <title>Welcome to phpMyAdmin’s documentation! — phpMyAdmin 4.4.15.2 documentation</title>
<link rel="stylesheet" href="_static/default.css" type="text/css" />
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
@@ -14,7 +14,7 @@
<script type="text/javascript">
var DOCUMENTATION_OPTIONS = {
URL_ROOT: './',
- VERSION: '4.4.15.1',
+ VERSION: '4.4.15.2',
COLLAPSE_INDEX: false,
FILE_SUFFIX: '.html',
HAS_SOURCE: true
@@ -24,7 +24,7 @@
<script type="text/javascript" src="_static/underscore.js"></script>
<script type="text/javascript" src="_static/doctools.js"></script>
<link rel="copyright" title="Copyright" href="copyright.html" />
- <link rel="top" title="phpMyAdmin 4.4.15.1 documentation" href="#" />
+ <link rel="top" title="phpMyAdmin 4.4.15.2 documentation" href="#" />
<link rel="next" title="Introduction" href="intro.html" />
</head>
<body>
@@ -37,7 +37,7 @@
<li class="right" >
<a href="intro.html" title="Introduction"
accesskey="N">next</a> |</li>
- <li><a href="#">phpMyAdmin 4.4.15.1 documentation</a> »</li>
+ <li><a href="#">phpMyAdmin 4.4.15.2 documentation</a> »</li>
</ul>
</div>
@@ -195,7 +195,7 @@
<li class="right" >
<a href="intro.html" title="Introduction"
>next</a> |</li>
- <li><a href="#">phpMyAdmin 4.4.15.1 documentation</a> »</li>
+ <li><a href="#">phpMyAdmin 4.4.15.2 documentation</a> »</li>
</ul>
</div>
<div class="footer">
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/phpMyAdmin-4.4.15.1-all-languages/doc/html/intro.html new/phpMyAdmin-4.4.15.2-all-languages/doc/html/intro.html
--- old/phpMyAdmin-4.4.15.1-all-languages/doc/html/intro.html 2015-10-23 13:29:22.000000000 +0200
+++ new/phpMyAdmin-4.4.15.2-all-languages/doc/html/intro.html 2015-12-25 21:46:42.000000000 +0100
@@ -6,7 +6,7 @@
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
- <title>Introduction — phpMyAdmin 4.4.15.1 documentation</title>
+ <title>Introduction — phpMyAdmin 4.4.15.2 documentation</title>
<link rel="stylesheet" href="_static/default.css" type="text/css" />
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
@@ -14,7 +14,7 @@
<script type="text/javascript">
var DOCUMENTATION_OPTIONS = {
URL_ROOT: './',
- VERSION: '4.4.15.1',
+ VERSION: '4.4.15.2',
COLLAPSE_INDEX: false,
FILE_SUFFIX: '.html',
HAS_SOURCE: true
@@ -24,7 +24,7 @@
<script type="text/javascript" src="_static/underscore.js"></script>
<script type="text/javascript" src="_static/doctools.js"></script>
<link rel="copyright" title="Copyright" href="copyright.html" />
- <link rel="top" title="phpMyAdmin 4.4.15.1 documentation" href="index.html" />
+ <link rel="top" title="phpMyAdmin 4.4.15.2 documentation" href="index.html" />
<link rel="next" title="Requirements" href="require.html" />
<link rel="prev" title="Welcome to phpMyAdmin’s documentation!" href="index.html" />
</head>
@@ -41,7 +41,7 @@
<li class="right" >
<a href="index.html" title="Welcome to phpMyAdmin’s documentation!"
accesskey="P">previous</a> |</li>
- <li><a href="index.html">phpMyAdmin 4.4.15.1 documentation</a> »</li>
+ <li><a href="index.html">phpMyAdmin 4.4.15.2 documentation</a> »</li>
</ul>
</div>
@@ -169,7 +169,7 @@
<li class="right" >
<a href="index.html" title="Welcome to phpMyAdmin’s documentation!"
>previous</a> |</li>
- <li><a href="index.html">phpMyAdmin 4.4.15.1 documentation</a> »</li>
+ <li><a href="index.html">phpMyAdmin 4.4.15.2 documentation</a> »</li>
</ul>
</div>
<div class="footer">
Files old/phpMyAdmin-4.4.15.1-all-languages/doc/html/objects.inv and new/phpMyAdmin-4.4.15.2-all-languages/doc/html/objects.inv differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/phpMyAdmin-4.4.15.1-all-languages/doc/html/other.html new/phpMyAdmin-4.4.15.2-all-languages/doc/html/other.html
--- old/phpMyAdmin-4.4.15.1-all-languages/doc/html/other.html 2015-10-23 13:29:22.000000000 +0200
+++ new/phpMyAdmin-4.4.15.2-all-languages/doc/html/other.html 2015-12-25 21:46:42.000000000 +0100
@@ -6,7 +6,7 @@
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
- <title>Other sources of information — phpMyAdmin 4.4.15.1 documentation</title>
+ <title>Other sources of information — phpMyAdmin 4.4.15.2 documentation</title>
<link rel="stylesheet" href="_static/default.css" type="text/css" />
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
@@ -14,7 +14,7 @@
<script type="text/javascript">
var DOCUMENTATION_OPTIONS = {
URL_ROOT: './',
- VERSION: '4.4.15.1',
+ VERSION: '4.4.15.2',
COLLAPSE_INDEX: false,
FILE_SUFFIX: '.html',
HAS_SOURCE: true
@@ -24,7 +24,7 @@
<script type="text/javascript" src="_static/underscore.js"></script>
<script type="text/javascript" src="_static/doctools.js"></script>
<link rel="copyright" title="Copyright" href="copyright.html" />
- <link rel="top" title="phpMyAdmin 4.4.15.1 documentation" href="index.html" />
+ <link rel="top" title="phpMyAdmin 4.4.15.2 documentation" href="index.html" />
<link rel="up" title="User Guide" href="user.html" />
<link rel="next" title="Import and export" href="import_export.html" />
<link rel="prev" title="User management" href="privileges.html" />
@@ -42,7 +42,7 @@
<li class="right" >
<a href="privileges.html" title="User management"
accesskey="P">previous</a> |</li>
- <li><a href="index.html">phpMyAdmin 4.4.15.1 documentation</a> »</li>
+ <li><a href="index.html">phpMyAdmin 4.4.15.2 documentation</a> »</li>
<li><a href="user.html" accesskey="U">User Guide</a> »</li>
</ul>
</div>
@@ -121,7 +121,7 @@
<li class="right" >
<a href="privileges.html" title="User management"
>previous</a> |</li>
- <li><a href="index.html">phpMyAdmin 4.4.15.1 documentation</a> »</li>
+ <li><a href="index.html">phpMyAdmin 4.4.15.2 documentation</a> »</li>
<li><a href="user.html" >User Guide</a> »</li>
</ul>
</div>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/phpMyAdmin-4.4.15.1-all-languages/doc/html/privileges.html new/phpMyAdmin-4.4.15.2-all-languages/doc/html/privileges.html
--- old/phpMyAdmin-4.4.15.1-all-languages/doc/html/privileges.html 2015-10-23 13:29:22.000000000 +0200
+++ new/phpMyAdmin-4.4.15.2-all-languages/doc/html/privileges.html 2015-12-25 21:46:42.000000000 +0100
@@ -6,7 +6,7 @@
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
- <title>User management — phpMyAdmin 4.4.15.1 documentation</title>
+ <title>User management — phpMyAdmin 4.4.15.2 documentation</title>
<link rel="stylesheet" href="_static/default.css" type="text/css" />
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
@@ -14,7 +14,7 @@
<script type="text/javascript">
var DOCUMENTATION_OPTIONS = {
URL_ROOT: './',
- VERSION: '4.4.15.1',
+ VERSION: '4.4.15.2',
COLLAPSE_INDEX: false,
FILE_SUFFIX: '.html',
HAS_SOURCE: true
@@ -24,7 +24,7 @@
<script type="text/javascript" src="_static/underscore.js"></script>
<script type="text/javascript" src="_static/doctools.js"></script>
<link rel="copyright" title="Copyright" href="copyright.html" />
- <link rel="top" title="phpMyAdmin 4.4.15.1 documentation" href="index.html" />
+ <link rel="top" title="phpMyAdmin 4.4.15.2 documentation" href="index.html" />
<link rel="up" title="User Guide" href="user.html" />
<link rel="next" title="Other sources of information" href="other.html" />
<link rel="prev" title="Transformations" href="transformations.html" />
@@ -42,7 +42,7 @@
<li class="right" >
<a href="transformations.html" title="Transformations"
accesskey="P">previous</a> |</li>
- <li><a href="index.html">phpMyAdmin 4.4.15.1 documentation</a> »</li>
+ <li><a href="index.html">phpMyAdmin 4.4.15.2 documentation</a> »</li>
<li><a href="user.html" accesskey="U">User Guide</a> »</li>
</ul>
</div>
@@ -155,7 +155,7 @@
<li class="right" >
<a href="transformations.html" title="Transformations"
>previous</a> |</li>
- <li><a href="index.html">phpMyAdmin 4.4.15.1 documentation</a> »</li>
+ <li><a href="index.html">phpMyAdmin 4.4.15.2 documentation</a> »</li>
<li><a href="user.html" >User Guide</a> »</li>
</ul>
</div>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/phpMyAdmin-4.4.15.1-all-languages/doc/html/require.html new/phpMyAdmin-4.4.15.2-all-languages/doc/html/require.html
--- old/phpMyAdmin-4.4.15.1-all-languages/doc/html/require.html 2015-10-23 13:29:22.000000000 +0200
+++ new/phpMyAdmin-4.4.15.2-all-languages/doc/html/require.html 2015-12-25 21:46:42.000000000 +0100
@@ -6,7 +6,7 @@
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
- <title>Requirements — phpMyAdmin 4.4.15.1 documentation</title>
+ <title>Requirements — phpMyAdmin 4.4.15.2 documentation</title>
<link rel="stylesheet" href="_static/default.css" type="text/css" />
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
@@ -14,7 +14,7 @@
<script type="text/javascript">
var DOCUMENTATION_OPTIONS = {
URL_ROOT: './',
- VERSION: '4.4.15.1',
+ VERSION: '4.4.15.2',
COLLAPSE_INDEX: false,
FILE_SUFFIX: '.html',
HAS_SOURCE: true
@@ -24,7 +24,7 @@
<script type="text/javascript" src="_static/underscore.js"></script>
<script type="text/javascript" src="_static/doctools.js"></script>
<link rel="copyright" title="Copyright" href="copyright.html" />
- <link rel="top" title="phpMyAdmin 4.4.15.1 documentation" href="index.html" />
+ <link rel="top" title="phpMyAdmin 4.4.15.2 documentation" href="index.html" />
<link rel="next" title="Installation" href="setup.html" />
<link rel="prev" title="Introduction" href="intro.html" />
</head>
@@ -41,7 +41,7 @@
<li class="right" >
<a href="intro.html" title="Introduction"
accesskey="P">previous</a> |</li>
- <li><a href="index.html">phpMyAdmin 4.4.15.1 documentation</a> »</li>
+ <li><a href="index.html">phpMyAdmin 4.4.15.2 documentation</a> »</li>
</ul>
</div>
@@ -155,7 +155,7 @@
<li class="right" >
<a href="intro.html" title="Introduction"
>previous</a> |</li>
- <li><a href="index.html">phpMyAdmin 4.4.15.1 documentation</a> »</li>
+ <li><a href="index.html">phpMyAdmin 4.4.15.2 documentation</a> »</li>
</ul>
</div>
<div class="footer">
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/phpMyAdmin-4.4.15.1-all-languages/doc/html/search.html new/phpMyAdmin-4.4.15.2-all-languages/doc/html/search.html
--- old/phpMyAdmin-4.4.15.1-all-languages/doc/html/search.html 2015-10-23 13:29:22.000000000 +0200
+++ new/phpMyAdmin-4.4.15.2-all-languages/doc/html/search.html 2015-12-25 21:46:42.000000000 +0100
@@ -6,7 +6,7 @@
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
- <title>Search — phpMyAdmin 4.4.15.1 documentation</title>
+ <title>Search — phpMyAdmin 4.4.15.2 documentation</title>
<link rel="stylesheet" href="_static/default.css" type="text/css" />
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
@@ -14,7 +14,7 @@
<script type="text/javascript">
var DOCUMENTATION_OPTIONS = {
URL_ROOT: './',
- VERSION: '4.4.15.1',
+ VERSION: '4.4.15.2',
COLLAPSE_INDEX: false,
FILE_SUFFIX: '.html',
HAS_SOURCE: true
@@ -25,7 +25,7 @@
<script type="text/javascript" src="_static/doctools.js"></script>
<script type="text/javascript" src="_static/searchtools.js"></script>
<link rel="copyright" title="Copyright" href="copyright.html" />
- <link rel="top" title="phpMyAdmin 4.4.15.1 documentation" href="index.html" />
+ <link rel="top" title="phpMyAdmin 4.4.15.2 documentation" href="index.html" />
<script type="text/javascript">
jQuery(function() { Search.loadIndex("searchindex.js"); });
</script>
@@ -41,7 +41,7 @@
<li class="right" style="margin-right: 10px">
<a href="genindex.html" title="General Index"
accesskey="I">index</a></li>
- <li><a href="index.html">phpMyAdmin 4.4.15.1 documentation</a> »</li>
+ <li><a href="index.html">phpMyAdmin 4.4.15.2 documentation</a> »</li>
</ul>
</div>
@@ -89,7 +89,7 @@
<li class="right" style="margin-right: 10px">
<a href="genindex.html" title="General Index"
>index</a></li>
- <li><a href="index.html">phpMyAdmin 4.4.15.1 documentation</a> »</li>
+ <li><a href="index.html">phpMyAdmin 4.4.15.2 documentation</a> »</li>
</ul>
</div>
<div class="footer">
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/phpMyAdmin-4.4.15.1-all-languages/doc/html/setup.html new/phpMyAdmin-4.4.15.2-all-languages/doc/html/setup.html
--- old/phpMyAdmin-4.4.15.1-all-languages/doc/html/setup.html 2015-10-23 13:29:22.000000000 +0200
+++ new/phpMyAdmin-4.4.15.2-all-languages/doc/html/setup.html 2015-12-25 21:46:42.000000000 +0100
@@ -6,7 +6,7 @@
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
- <title>Installation — phpMyAdmin 4.4.15.1 documentation</title>
+ <title>Installation — phpMyAdmin 4.4.15.2 documentation</title>
<link rel="stylesheet" href="_static/default.css" type="text/css" />
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
@@ -14,7 +14,7 @@
<script type="text/javascript">
var DOCUMENTATION_OPTIONS = {
URL_ROOT: './',
- VERSION: '4.4.15.1',
+ VERSION: '4.4.15.2',
COLLAPSE_INDEX: false,
FILE_SUFFIX: '.html',
HAS_SOURCE: true
@@ -24,7 +24,7 @@
<script type="text/javascript" src="_static/underscore.js"></script>
<script type="text/javascript" src="_static/doctools.js"></script>
<link rel="copyright" title="Copyright" href="copyright.html" />
- <link rel="top" title="phpMyAdmin 4.4.15.1 documentation" href="index.html" />
+ <link rel="top" title="phpMyAdmin 4.4.15.2 documentation" href="index.html" />
<link rel="next" title="Configuration" href="config.html" />
<link rel="prev" title="Requirements" href="require.html" />
</head>
@@ -41,7 +41,7 @@
<li class="right" >
<a href="require.html" title="Requirements"
accesskey="P">previous</a> |</li>
- <li><a href="index.html">phpMyAdmin 4.4.15.1 documentation</a> »</li>
+ <li><a href="index.html">phpMyAdmin 4.4.15.2 documentation</a> »</li>
</ul>
</div>
@@ -896,7 +896,7 @@
<li class="right" >
<a href="require.html" title="Requirements"
>previous</a> |</li>
- <li><a href="index.html">phpMyAdmin 4.4.15.1 documentation</a> »</li>
+ <li><a href="index.html">phpMyAdmin 4.4.15.2 documentation</a> »</li>
</ul>
</div>
<div class="footer">
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/phpMyAdmin-4.4.15.1-all-languages/doc/html/transformations.html new/phpMyAdmin-4.4.15.2-all-languages/doc/html/transformations.html
--- old/phpMyAdmin-4.4.15.1-all-languages/doc/html/transformations.html 2015-10-23 13:29:22.000000000 +0200
+++ new/phpMyAdmin-4.4.15.2-all-languages/doc/html/transformations.html 2015-12-25 21:46:42.000000000 +0100
@@ -6,7 +6,7 @@
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
- <title>Transformations — phpMyAdmin 4.4.15.1 documentation</title>
+ <title>Transformations — phpMyAdmin 4.4.15.2 documentation</title>
<link rel="stylesheet" href="_static/default.css" type="text/css" />
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
@@ -14,7 +14,7 @@
<script type="text/javascript">
var DOCUMENTATION_OPTIONS = {
URL_ROOT: './',
- VERSION: '4.4.15.1',
+ VERSION: '4.4.15.2',
COLLAPSE_INDEX: false,
FILE_SUFFIX: '.html',
HAS_SOURCE: true
@@ -24,7 +24,7 @@
<script type="text/javascript" src="_static/underscore.js"></script>
<script type="text/javascript" src="_static/doctools.js"></script>
<link rel="copyright" title="Copyright" href="copyright.html" />
- <link rel="top" title="phpMyAdmin 4.4.15.1 documentation" href="index.html" />
+ <link rel="top" title="phpMyAdmin 4.4.15.2 documentation" href="index.html" />
<link rel="up" title="User Guide" href="user.html" />
<link rel="next" title="User management" href="privileges.html" />
<link rel="prev" title="User Guide" href="user.html" />
@@ -42,7 +42,7 @@
<li class="right" >
<a href="user.html" title="User Guide"
accesskey="P">previous</a> |</li>
- <li><a href="index.html">phpMyAdmin 4.4.15.1 documentation</a> »</li>
+ <li><a href="index.html">phpMyAdmin 4.4.15.2 documentation</a> »</li>
<li><a href="user.html" accesskey="U">User Guide</a> »</li>
</ul>
</div>
@@ -226,7 +226,7 @@
<li class="right" >
<a href="user.html" title="User Guide"
>previous</a> |</li>
- <li><a href="index.html">phpMyAdmin 4.4.15.1 documentation</a> »</li>
+ <li><a href="index.html">phpMyAdmin 4.4.15.2 documentation</a> »</li>
<li><a href="user.html" >User Guide</a> »</li>
</ul>
</div>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/phpMyAdmin-4.4.15.1-all-languages/doc/html/user.html new/phpMyAdmin-4.4.15.2-all-languages/doc/html/user.html
--- old/phpMyAdmin-4.4.15.1-all-languages/doc/html/user.html 2015-10-23 13:29:22.000000000 +0200
+++ new/phpMyAdmin-4.4.15.2-all-languages/doc/html/user.html 2015-12-25 21:46:42.000000000 +0100
@@ -6,7 +6,7 @@
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
- <title>User Guide — phpMyAdmin 4.4.15.1 documentation</title>
+ <title>User Guide — phpMyAdmin 4.4.15.2 documentation</title>
<link rel="stylesheet" href="_static/default.css" type="text/css" />
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
@@ -14,7 +14,7 @@
<script type="text/javascript">
var DOCUMENTATION_OPTIONS = {
URL_ROOT: './',
- VERSION: '4.4.15.1',
+ VERSION: '4.4.15.2',
COLLAPSE_INDEX: false,
FILE_SUFFIX: '.html',
HAS_SOURCE: true
@@ -24,7 +24,7 @@
<script type="text/javascript" src="_static/underscore.js"></script>
<script type="text/javascript" src="_static/doctools.js"></script>
<link rel="copyright" title="Copyright" href="copyright.html" />
- <link rel="top" title="phpMyAdmin 4.4.15.1 documentation" href="index.html" />
+ <link rel="top" title="phpMyAdmin 4.4.15.2 documentation" href="index.html" />
<link rel="next" title="Transformations" href="transformations.html" />
<link rel="prev" title="Configuration" href="config.html" />
</head>
@@ -41,7 +41,7 @@
<li class="right" >
<a href="config.html" title="Configuration"
accesskey="P">previous</a> |</li>
- <li><a href="index.html">phpMyAdmin 4.4.15.1 documentation</a> »</li>
+ <li><a href="index.html">phpMyAdmin 4.4.15.2 documentation</a> »</li>
</ul>
</div>
@@ -126,7 +126,7 @@
<li class="right" >
<a href="config.html" title="Configuration"
>previous</a> |</li>
- <li><a href="index.html">phpMyAdmin 4.4.15.1 documentation</a> »</li>
+ <li><a href="index.html">phpMyAdmin 4.4.15.2 documentation</a> »</li>
</ul>
</div>
<div class="footer">
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/phpMyAdmin-4.4.15.1-all-languages/doc/html/vendors.html new/phpMyAdmin-4.4.15.2-all-languages/doc/html/vendors.html
--- old/phpMyAdmin-4.4.15.1-all-languages/doc/html/vendors.html 2015-10-23 13:29:22.000000000 +0200
+++ new/phpMyAdmin-4.4.15.2-all-languages/doc/html/vendors.html 2015-12-25 21:46:42.000000000 +0100
@@ -6,7 +6,7 @@
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
- <title>Distributing and packaging phpMyAdmin — phpMyAdmin 4.4.15.1 documentation</title>
+ <title>Distributing and packaging phpMyAdmin — phpMyAdmin 4.4.15.2 documentation</title>
<link rel="stylesheet" href="_static/default.css" type="text/css" />
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
@@ -14,7 +14,7 @@
<script type="text/javascript">
var DOCUMENTATION_OPTIONS = {
URL_ROOT: './',
- VERSION: '4.4.15.1',
+ VERSION: '4.4.15.2',
COLLAPSE_INDEX: false,
FILE_SUFFIX: '.html',
HAS_SOURCE: true
@@ -24,7 +24,7 @@
<script type="text/javascript" src="_static/underscore.js"></script>
<script type="text/javascript" src="_static/doctools.js"></script>
<link rel="copyright" title="Copyright" href="copyright.html" />
- <link rel="top" title="phpMyAdmin 4.4.15.1 documentation" href="index.html" />
+ <link rel="top" title="phpMyAdmin 4.4.15.2 documentation" href="index.html" />
<link rel="next" title="Copyright" href="copyright.html" />
<link rel="prev" title="Developers Information" href="developers.html" />
</head>
@@ -41,7 +41,7 @@
<li class="right" >
<a href="developers.html" title="Developers Information"
accesskey="P">previous</a> |</li>
- <li><a href="index.html">phpMyAdmin 4.4.15.1 documentation</a> »</li>
+ <li><a href="index.html">phpMyAdmin 4.4.15.2 documentation</a> »</li>
</ul>
</div>
@@ -136,7 +136,7 @@
<li class="right" >
<a href="developers.html" title="Developers Information"
>previous</a> |</li>
- <li><a href="index.html">phpMyAdmin 4.4.15.1 documentation</a> »</li>
+ <li><a href="index.html">phpMyAdmin 4.4.15.2 documentation</a> »</li>
</ul>
</div>
<div class="footer">
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/phpMyAdmin-4.4.15.1-all-languages/js/line_counts.php new/phpMyAdmin-4.4.15.2-all-languages/js/line_counts.php
--- old/phpMyAdmin-4.4.15.1-all-languages/js/line_counts.php 2015-10-23 13:29:22.000000000 +0200
+++ new/phpMyAdmin-4.4.15.2-all-languages/js/line_counts.php 2015-12-25 21:46:42.000000000 +0100
@@ -13,7 +13,6 @@
define('LINE_COUNTS', true);
$LINE_COUNT = array();
-$LINE_COUNT["OpenStreetMap.js"] = 126;
$LINE_COUNT["big_ints.js"] = 67;
$LINE_COUNT["canvg/canvg.js"] = 2508;
$LINE_COUNT["chart.js"] = 664;
@@ -25,8 +24,6 @@
$LINE_COUNT["codemirror/mode/sql/sql.js"] = 391;
$LINE_COUNT["codemirror/mode/xml/xml.js"] = 384;
$LINE_COUNT["cross_framing_protection.js"] = 10;
-$LINE_COUNT["db_operations.js"] = 157;
-$LINE_COUNT["db_search.js"] = 239;
$LINE_COUNT["doclinks.js"] = 365;
$LINE_COUNT["jqplot/excanvas.js"] = 1438;
$LINE_COUNT["jqplot/jquery.jqplot.js"] = 11411;
@@ -176,7 +173,6 @@
$LINE_COUNT["jquery/src/jquery/var/support.js"] = 4;
$LINE_COUNT["jquery/src/jquery/var/toString.js"] = 5;
$LINE_COUNT["jquery/src/jquery/wrap.js"] = 75;
-$LINE_COUNT["keyhandler.js"] = 145;
$LINE_COUNT["multi_column_sort.js"] = 81;
$LINE_COUNT["openlayers/OpenLayers.js"] = 2680;
$LINE_COUNT["openlayers/src/openlayers/lib/Firebug/firebug.js"] = 674;
@@ -471,7 +467,10 @@
$LINE_COUNT["pmd/iecanvas.js"] = 147;
$LINE_COUNT["pmd/init.js"] = 40;
$LINE_COUNT["pmd/move.js"] = 2004;
-$LINE_COUNT["server_status_queries.js"] = 34;
+$LINE_COUNT["tbl_gis_visualization.js"] = 353;
+$LINE_COUNT["tbl_select.js"] = 395;
+$LINE_COUNT["tbl_tracking.js"] = 95;
+$LINE_COUNT["tbl_zoom_plot_jqplot.js"] = 638;
$LINE_COUNT["server_user_groups.js"] = 42;
$LINE_COUNT["sprintf.js"] = 211;
$LINE_COUNT["tbl_find_replace.js"] = 47;
@@ -482,12 +481,15 @@
$LINE_COUNT["transformations/json_editor.js"] = 17;
$LINE_COUNT["transformations/sql_editor.js"] = 30;
$LINE_COUNT["transformations/xml_editor.js"] = 16;
+$LINE_COUNT["OpenStreetMap.js"] = 126;
$LINE_COUNT["ajax.js"] = 1031;
$LINE_COUNT["common.js"] = 515;
$LINE_COUNT["config.js"] = 798;
$LINE_COUNT["console.js"] = 1033;
$LINE_COUNT["db_central_columns.js"] = 201;
+$LINE_COUNT["db_operations.js"] = 157;
$LINE_COUNT["db_qbe.js"] = 64;
+$LINE_COUNT["db_search.js"] = 239;
$LINE_COUNT["db_structure.js"] = 391;
$LINE_COUNT["db_tracking.js"] = 84;
$LINE_COUNT["error_report.js"] = 340;
@@ -496,6 +498,7 @@
$LINE_COUNT["gis_data_editor.js"] = 396;
$LINE_COUNT["import.js"] = 167;
$LINE_COUNT["indexes.js"] = 697;
+$LINE_COUNT["keyhandler.js"] = 145;
$LINE_COUNT["makegrid.js"] = 1962;
$LINE_COUNT["menu-resizer.js"] = 182;
$LINE_COUNT["navigation.js"] = 1507;
@@ -508,16 +511,13 @@
$LINE_COUNT["server_status_advisor.js"] = 93;
$LINE_COUNT["server_status_monitor.js"] = 2172;
$LINE_COUNT["server_status_processes.js"] = 189;
+$LINE_COUNT["server_status_queries.js"] = 34;
$LINE_COUNT["server_status_sorter.js"] = 89;
$LINE_COUNT["server_status_variables.js"] = 103;
$LINE_COUNT["server_variables.js"] = 147;
$LINE_COUNT["sql.js"] = 843;
$LINE_COUNT["tbl_change.js"] = 754;
$LINE_COUNT["tbl_chart.js"] = 429;
-$LINE_COUNT["tbl_gis_visualization.js"] = 353;
$LINE_COUNT["tbl_operations.js"] = 243;
$LINE_COUNT["tbl_relation.js"] = 234;
-$LINE_COUNT["tbl_select.js"] = 395;
$LINE_COUNT["tbl_structure.js"] = 397;
-$LINE_COUNT["tbl_tracking.js"] = 95;
-$LINE_COUNT["tbl_zoom_plot_jqplot.js"] = 638;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/phpMyAdmin-4.4.15.1-all-languages/libraries/Config.class.php new/phpMyAdmin-4.4.15.2-all-languages/libraries/Config.class.php
--- old/phpMyAdmin-4.4.15.1-all-languages/libraries/Config.class.php 2015-10-23 13:29:22.000000000 +0200
+++ new/phpMyAdmin-4.4.15.2-all-languages/libraries/Config.class.php 2015-12-25 21:46:42.000000000 +0100
@@ -114,7 +114,7 @@
*/
function checkSystem()
{
- $this->set('PMA_VERSION', '4.4.15.1');
+ $this->set('PMA_VERSION', '4.4.15.2');
/**
* @deprecated
*/
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/phpMyAdmin-4.4.15.1-all-languages/libraries/config/messages.inc.php new/phpMyAdmin-4.4.15.2-all-languages/libraries/config/messages.inc.php
--- old/phpMyAdmin-4.4.15.1-all-languages/libraries/config/messages.inc.php 2015-10-23 13:29:22.000000000 +0200
+++ new/phpMyAdmin-4.4.15.2-all-languages/libraries/config/messages.inc.php 2015-12-25 21:46:42.000000000 +0100
@@ -11,7 +11,7 @@
*/
if (!function_exists('__')) {
- PMA_fatalError('Bad invocation!');
+ exit();
}
$strConfigAllowArbitraryServer_desc
1
0
Hello community,
here is the log from the commit of package python-apache-libcloud for openSUSE:Factory checked in at 2016-01-01 19:48:24
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-apache-libcloud (Old)
and /work/SRC/openSUSE:Factory/.python-apache-libcloud.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-apache-libcloud"
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-apache-libcloud/python-apache-libcloud.changes 2015-11-10 10:02:59.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.python-apache-libcloud.new/python-apache-libcloud.changes 2016-01-01 19:50:25.000000000 +0100
@@ -1,0 +2,8 @@
+Thu Dec 17 21:35:16 UTC 2015 - aboe76(a)gmail.com
+
+- Updated to apache libcloud 0.20.0
+ - new requirement: python-backports.ssl_match_hostname
+for the changelog see:
+https://libcloud.readthedocs.org/en/latest/changelog.html#changes-with-apache-libcloud-0-20-0
+
+-------------------------------------------------------------------
Old:
----
apache-libcloud-0.19.0.tar.bz2
New:
----
apache-libcloud-0.20.0.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-apache-libcloud.spec ++++++
--- /var/tmp/diff_new_pack.FF28Vb/_old 2016-01-01 19:50:26.000000000 +0100
+++ /var/tmp/diff_new_pack.FF28Vb/_new 2016-01-01 19:50:26.000000000 +0100
@@ -17,7 +17,7 @@
Name: python-apache-libcloud
-Version: 0.19.0
+Version: 0.20.0
Release: 0
Summary: Abstract away differences among multiple cloud provider APIs
License: Apache-2.0
@@ -29,8 +29,10 @@
BuildRequires: python-setuptools
BuildRequires: python-xml
BuildRequires: python-lxml
+BuildRequires: python-backports.ssl_match_hostname
Requires: python-simplejson
Requires: python-lxml
+Requires: python-backports.ssl_match_hostname
%if 0%{?suse_version} >= 1210
BuildRequires: systemd
%endif
++++++ apache-libcloud-0.19.0.tar.bz2 -> apache-libcloud-0.20.0.tar.bz2 ++++++
++++ 18475 lines of diff (skipped)
1
0
Hello community,
here is the log from the commit of package python-pyliblzma for openSUSE:Factory checked in at 2016-01-01 19:48:23
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-pyliblzma (Old)
and /work/SRC/openSUSE:Factory/.python-pyliblzma.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-pyliblzma"
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-pyliblzma/python-pyliblzma.changes 2015-09-17 09:20:33.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.python-pyliblzma.new/python-pyliblzma.changes 2016-01-01 19:50:24.000000000 +0100
@@ -1,0 +2,9 @@
+Thu Dec 17 14:52:37 UTC 2015 - rjschwei(a)suse.com
+
+- Fix build for SLE_11_SP{3,4}
+ + In SLE 11 the build setup cannot differentiate between a noarch sub
+ package and arch dependent package. All packages must be either
+ arch dependent or noarch. Since the main package is arch dependent
+ the doc package also needs to be arch dependent for SLE 11 builds
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-pyliblzma.spec ++++++
--- /var/tmp/diff_new_pack.IHk9ee/_old 2016-01-01 19:50:25.000000000 +0100
+++ /var/tmp/diff_new_pack.IHk9ee/_new 2016-01-01 19:50:25.000000000 +0100
@@ -42,7 +42,9 @@
%package -n %{name}-doc
Summary: Documentation for the python-pyliblzma
Group: Documentation
+%if 0%{?suse_version} && 0%{?suse_version} > 1110
BuildArch: noarch
+%endif
%description
PylibLZMA provides a python interface for the liblzma library
1
0
Hello community,
here is the log from the commit of package python-fasteners for openSUSE:Factory checked in at 2016-01-01 19:48:21
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-fasteners (Old)
and /work/SRC/openSUSE:Factory/.python-fasteners.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-fasteners"
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-fasteners/python-fasteners.changes 2015-10-06 13:27:46.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.python-fasteners.new/python-fasteners.changes 2016-01-01 19:50:23.000000000 +0100
@@ -1,0 +2,10 @@
+Thu Dec 17 13:42:09 UTC 2015 - tbechtold(a)suse.com
+
+- update to 0.14.1:
+ * Allow providing a custom exception logger
+ to 'locked' decorator
+ * Allow providing a custom logger to process
+ lock class
+ * Fix issue #12
+
+-------------------------------------------------------------------
Old:
----
fasteners-0.13.0.tar.gz
New:
----
fasteners-0.14.1.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-fasteners.spec ++++++
--- /var/tmp/diff_new_pack.STFASc/_old 2016-01-01 19:50:24.000000000 +0100
+++ /var/tmp/diff_new_pack.STFASc/_new 2016-01-01 19:50:24.000000000 +0100
@@ -17,7 +17,7 @@
Name: python-fasteners
-Version: 0.13.0
+Version: 0.14.1
Release: 0
Summary: A python package that provides useful locks
License: Apache-2.0
++++++ fasteners-0.13.0.tar.gz -> fasteners-0.14.1.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fasteners-0.13.0/ChangeLog new/fasteners-0.14.1/ChangeLog
--- old/fasteners-0.13.0/ChangeLog 2015-08-22 16:27:55.000000000 +0200
+++ new/fasteners-0.14.1/ChangeLog 2015-11-13 07:40:18.000000000 +0100
@@ -1,3 +1,9 @@
+0.14:
+ - Allow providing a custom exception logger
+ to 'locked' decorator
+ - Allow providing a custom logger to process
+ lock class
+ - Fix issue #12
0.13:
- Fix 'ensure_tree' check on freebsd
0.12:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fasteners-0.13.0/PKG-INFO new/fasteners-0.14.1/PKG-INFO
--- old/fasteners-0.13.0/PKG-INFO 2015-08-22 16:29:46.000000000 +0200
+++ new/fasteners-0.14.1/PKG-INFO 2015-11-13 07:47:25.000000000 +0100
@@ -1,6 +1,6 @@
Metadata-Version: 1.1
Name: fasteners
-Version: 0.13.0
+Version: 0.14.1
Summary: A python package that provides useful locks.
Home-page: https://github.com/harlowja/fasteners
Author: Joshua Harlow
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fasteners-0.13.0/fasteners/_utils.py new/fasteners-0.14.1/fasteners/_utils.py
--- old/fasteners-0.13.0/fasteners/_utils.py 2015-08-08 10:15:25.000000000 +0200
+++ new/fasteners-0.14.1/fasteners/_utils.py 2015-11-13 07:39:16.000000000 +0100
@@ -27,6 +27,14 @@
LOG = logging.getLogger(__name__)
+def pick_first_not_none(*values):
+ """Returns first of values that is *not* None (or None if all are/were)."""
+ for val in values:
+ if val is not None:
+ return val
+ return None
+
+
class LockStack(object):
"""Simple lock stack to get and release many locks.
@@ -35,8 +43,9 @@
invalid if that is attempted.
"""
- def __init__(self):
+ def __init__(self, logger=None):
self._stack = []
+ self._logger = pick_first_not_none(logger, LOG)
def acquire_lock(self, lock):
gotten = lock.acquire()
@@ -55,8 +64,8 @@
try:
lock.release()
except Exception:
- LOG.exception("Failed releasing lock %s from lock"
- " stack with %s locks", am_left, tot_am)
+ self._logger.exception("Failed releasing lock %s from lock"
+ " stack with %s locks", am_left, tot_am)
am_left -= 1
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fasteners-0.13.0/fasteners/lock.py new/fasteners-0.14.1/fasteners/lock.py
--- old/fasteners-0.13.0/fasteners/lock.py 2015-08-08 10:15:25.000000000 +0200
+++ new/fasteners-0.14.1/fasteners/lock.py 2015-11-13 07:39:16.000000000 +0100
@@ -137,7 +137,7 @@
current_thread_functor=None):
self._writer = None
self._pending_writers = collections.deque()
- self._readers = collections.deque()
+ self._readers = {}
self._cond = condition_cls()
if current_thread_functor is None:
current_thread_functor = self._fetch_current_thread_functor()
@@ -191,7 +191,10 @@
# No active writer, or we are the writer;
# we are good to become a reader.
if self._writer is None or self._writer == me:
- self._readers.append(me)
+ try:
+ self._readers[me] = self._readers[me] + 1
+ except KeyError:
+ self._readers[me] = 1
break
# An active writer; guess we have to wait.
self._cond.wait()
@@ -203,7 +206,14 @@
# still have to remove that other read lock; this allows for
# basic reentrancy to be possible.
with self._cond:
- self._readers.remove(me)
+ try:
+ me_instances = self._readers[me]
+ if me_instances > 1:
+ self._readers[me] = me_instances - 1
+ else:
+ self._readers.pop(me)
+ except KeyError:
+ pass
self._cond.notify_all()
@contextlib.contextmanager
@@ -270,16 +280,21 @@
attribute named '_lock' is looked for (this attribute is expected to be
the lock/list of locks object/s) in the instance object this decorator
is attached to.
+
+ NOTE(harlowja): a custom logger (which will be used if lock release
+ failures happen) can be provided by passing a logger instance for keyword
+ argument ``logger``.
"""
def decorator(f):
attr_name = kwargs.get('lock', '_lock')
+ logger = kwargs.get('logger')
@six.wraps(f)
def wrapper(self, *args, **kwargs):
attr_value = getattr(self, attr_name)
if isinstance(attr_value, (tuple, list)):
- with _utils.LockStack() as stack:
+ with _utils.LockStack(logger=logger) as stack:
for i, lock in enumerate(attr_value):
if not stack.acquire_lock(lock):
raise threading.ThreadError("Unable to acquire"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fasteners-0.13.0/fasteners/process_lock.py new/fasteners-0.14.1/fasteners/process_lock.py
--- old/fasteners-0.13.0/fasteners/process_lock.py 2015-08-22 15:34:02.000000000 +0200
+++ new/fasteners-0.14.1/fasteners/process_lock.py 2015-11-13 07:39:16.000000000 +0100
@@ -82,11 +82,12 @@
acquire the lock (and repeat).
"""
- def __init__(self, path, sleep_func=time.sleep):
+ def __init__(self, path, sleep_func=time.sleep, logger=None):
self.lockfile = None
self.path = path
self.acquired = False
self.sleep_func = sleep_func
+ self.logger = _utils.pick_first_not_none(logger, LOG)
def _try_acquire(self, blocking, watch):
try:
@@ -110,10 +111,11 @@
def _do_open(self):
basedir = os.path.dirname(self.path)
- made_basedir = _ensure_tree(basedir)
- if made_basedir:
- LOG.log(_utils.BLATHER,
- 'Created lock base path `%s`', basedir)
+ if basedir:
+ made_basedir = _ensure_tree(basedir)
+ if made_basedir:
+ self.logger.log(_utils.BLATHER,
+ 'Created lock base path `%s`', basedir)
# Open in append mode so we don't overwrite any potential contents of
# the target file. This eliminates the possibility of an attacker
# creating a symlink to an important file in our lock path.
@@ -157,10 +159,10 @@
return False
else:
self.acquired = True
- LOG.log(_utils.BLATHER,
- "Acquired file lock `%s` after waiting %0.3fs [%s"
- " attempts were required]", self.path, watch.elapsed(),
- r.attempts)
+ self.logger.log(_utils.BLATHER,
+ "Acquired file lock `%s` after waiting %0.3fs [%s"
+ " attempts were required]", self.path,
+ watch.elapsed(), r.attempts)
return True
def _do_close(self):
@@ -180,19 +182,19 @@
try:
self.unlock()
except IOError:
- LOG.exception("Could not unlock the acquired lock opened"
- " on `%s`", self.path)
+ self.logger.exception("Could not unlock the acquired lock opened"
+ " on `%s`", self.path)
else:
self.acquired = False
try:
self._do_close()
except IOError:
- LOG.exception("Could not close the file handle"
- " opened on `%s`", self.path)
+ self.logger.exception("Could not close the file handle"
+ " opened on `%s`", self.path)
else:
- LOG.log(_utils.BLATHER,
- "Unlocked and closed file lock open on"
- " `%s`", self.path)
+ self.logger.log(_utils.BLATHER,
+ "Unlocked and closed file lock open on"
+ " `%s`", self.path)
def __exit__(self, exc_type, exc_val, exc_tb):
self.release()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fasteners-0.13.0/fasteners/version.py new/fasteners-0.14.1/fasteners/version.py
--- old/fasteners-0.13.0/fasteners/version.py 2015-08-08 10:15:25.000000000 +0200
+++ new/fasteners-0.14.1/fasteners/version.py 2015-11-13 07:46:02.000000000 +0100
@@ -17,7 +17,7 @@
# License for the specific language governing permissions and limitations
# under the License.
-_VERSION = "0.12"
+_VERSION = "0.14.1"
def version_string():
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fasteners-0.13.0/fasteners.egg-info/PKG-INFO new/fasteners-0.14.1/fasteners.egg-info/PKG-INFO
--- old/fasteners-0.13.0/fasteners.egg-info/PKG-INFO 2015-08-22 16:29:45.000000000 +0200
+++ new/fasteners-0.14.1/fasteners.egg-info/PKG-INFO 2015-11-13 07:47:25.000000000 +0100
@@ -1,6 +1,6 @@
Metadata-Version: 1.1
Name: fasteners
-Version: 0.13.0
+Version: 0.14.1
Summary: A python package that provides useful locks.
Home-page: https://github.com/harlowja/fasteners
Author: Joshua Harlow
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fasteners-0.13.0/fasteners.egg-info/SOURCES.txt new/fasteners-0.14.1/fasteners.egg-info/SOURCES.txt
--- old/fasteners-0.13.0/fasteners.egg-info/SOURCES.txt 2015-08-22 16:29:45.000000000 +0200
+++ new/fasteners-0.14.1/fasteners.egg-info/SOURCES.txt 2015-11-13 07:47:25.000000000 +0100
@@ -13,7 +13,6 @@
fasteners.egg-info/PKG-INFO
fasteners.egg-info/SOURCES.txt
fasteners.egg-info/dependency_links.txt
-fasteners.egg-info/pbr.json
fasteners.egg-info/requires.txt
fasteners.egg-info/top_level.txt
fasteners/tests/__init__.py
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fasteners-0.13.0/fasteners.egg-info/pbr.json new/fasteners-0.14.1/fasteners.egg-info/pbr.json
--- old/fasteners-0.13.0/fasteners.egg-info/pbr.json 2015-08-22 16:29:45.000000000 +0200
+++ new/fasteners-0.14.1/fasteners.egg-info/pbr.json 1970-01-01 01:00:00.000000000 +0100
@@ -1 +0,0 @@
-{"is_release": false, "git_version": "c055890"}
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fasteners-0.13.0/fasteners.egg-info/requires.txt new/fasteners-0.14.1/fasteners.egg-info/requires.txt
--- old/fasteners-0.13.0/fasteners.egg-info/requires.txt 2015-08-22 16:29:45.000000000 +0200
+++ new/fasteners-0.14.1/fasteners.egg-info/requires.txt 2015-11-13 07:47:25.000000000 +0100
@@ -1,2 +1,2 @@
six
-monotonic>=0.1
\ No newline at end of file
+monotonic>=0.1
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fasteners-0.13.0/setup.py new/fasteners-0.14.1/setup.py
--- old/fasteners-0.13.0/setup.py 2015-08-22 16:28:14.000000000 +0200
+++ new/fasteners-0.14.1/setup.py 2015-11-13 07:46:46.000000000 +0100
@@ -31,7 +31,7 @@
setup(
name='fasteners',
- version='0.13.0',
+ version='0.14.1',
description='A python package that provides useful locks.',
author="Joshua Harlow",
author_email='harlowja(a)yahoo-inc.com',
1
0
Hello community,
here is the log from the commit of package python-requests for openSUSE:Factory checked in at 2016-01-01 19:48:20
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-requests (Old)
and /work/SRC/openSUSE:Factory/.python-requests.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-requests"
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-requests/python-requests.changes 2015-10-26 12:48:49.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.python-requests.new/python-requests.changes 2016-01-01 19:50:21.000000000 +0100
@@ -1,0 +2,11 @@
+Thu Dec 17 13:45:59 UTC 2015 - rjschwei(a)suse.com
+
+- Modify no-default-cacert
+ + The call to set_default_verify_paths() is not necessary. The openSUSE
+ and SLES Python has been patched to always use the system certs.
+ Additionally this call breaks the use of python-requests on older systems,
+ openSUSE_13.2 and original release of SLES 12 which fall back to
+ the built in implementation of ssl which doe not implement
+ this method
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ no-default-cacert.patch ++++++
--- /var/tmp/diff_new_pack.G8lpQr/_old 2016-01-01 19:50:23.000000000 +0100
+++ /var/tmp/diff_new_pack.G8lpQr/_new 2016-01-01 19:50:23.000000000 +0100
@@ -29,14 +29,3 @@
if __name__ == '__main__':
print(where())
---- a/requests/packages/urllib3/util/ssl_.py
-+++ b/requests/packages/urllib3/util/ssl_.py
-@@ -278,6 +278,8 @@ def ssl_wrap_socket(sock, keyfile=None,
- if e.errno == errno.ENOENT:
- raise SSLError(e)
- raise
-+ elif cert_reqs != CERT_NONE:
-+ context.set_default_verify_paths()
-
- if certfile:
- context.load_cert_chain(certfile, keyfile)
1
0
Hello community,
here is the log from the commit of package python-argcomplete for openSUSE:Factory checked in at 2016-01-01 19:48:18
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-argcomplete (Old)
and /work/SRC/openSUSE:Factory/.python-argcomplete.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-argcomplete"
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-argcomplete/python-argcomplete.changes 2015-04-21 10:53:54.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.python-argcomplete.new/python-argcomplete.changes 2016-01-01 19:50:20.000000000 +0100
@@ -1,0 +2,12 @@
+Sat Dec 12 17:49:43 UTC 2015 - mimi.vx(a)gmail.com
+
+- update to 1.0.0
+* Don't print args with suppressed help by default; add
+ argcomplete.autocomplete(print_suppressed=True) to control this behavior
+* Fix always_complete_options=False support.
+* Correct doc filename in setup.cfg
+* Make context managers exception-safe.
+* Fix issue with non-string choices for arguments.
+* Improve non-ascii argparse argument support on Python 2.7.
+
+-------------------------------------------------------------------
Old:
----
argcomplete-0.8.7.tar.gz
New:
----
argcomplete-1.0.0.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-argcomplete.spec ++++++
--- /var/tmp/diff_new_pack.fQUYFm/_old 2016-01-01 19:50:21.000000000 +0100
+++ /var/tmp/diff_new_pack.fQUYFm/_new 2016-01-01 19:50:21.000000000 +0100
@@ -18,20 +18,21 @@
Name: python-argcomplete
-Version: 0.8.7
+Version: 1.0.0
Release: 0
-Url: https://github.com/kislyuk/argcomplete
Summary: Bash tab completion for argparse
License: Apache-2.0
Group: Development/Languages/Python
+Url: https://github.com/kislyuk/argcomplete
Source: http://pypi.python.org/packages/source/a/argcomplete/argcomplete-%{version}…
-BuildRoot: %{_tmppath}/%{name}-%{version}-build
BuildRequires: python-devel
BuildRequires: python-setuptools
+BuildRoot: %{_tmppath}/%{name}-%{version}-build
+
%if 0%{?suse_version} && 0%{?suse_version} <= 1110
+%{!?python_sitelib: %global python_sitelib %(python -c "from distutils.sysconfig import get_python_lib; print get_python_lib()")}
BuildRequires: python-argparse
Requires: python-argparse
-%{!?python_sitelib: %global python_sitelib %(python -c "from distutils.sysconfig import get_python_lib; print get_python_lib()")}
%else
BuildArch: noarch
%endif
@@ -61,6 +62,8 @@
%install
python setup.py install --prefix=%{_prefix} --root=%{buildroot}
rm -rf %{buildroot}%{python_sitelib}/test
+mkdir -p %{buildroot}%{_sysconfdir}/bash_completion.d/
+install -p -m0644 %{buildroot}%{python_sitelib}/argcomplete/bash_completion.d/python-argcomplete.sh %{buildroot}%{_sysconfdir}/bash_completion.d/
%check
python setup.py test
@@ -73,5 +76,6 @@
%{_bindir}/register-python-argcomplete
%{python_sitelib}/argcomplete-%{version}-py%{py_ver}.egg-info
%{python_sitelib}/argcomplete
+%config %{_sysconfdir}/bash_completion.d/python-argcomplete.sh
%changelog
++++++ argcomplete-0.8.7.tar.gz -> argcomplete-1.0.0.tar.gz ++++++
++++ 1658 lines of diff (skipped)
1
0
Hello community,
here is the log from the commit of package gnumeric for openSUSE:Factory checked in at 2016-01-01 19:48:16
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/gnumeric (Old)
and /work/SRC/openSUSE:Factory/.gnumeric.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "gnumeric"
Changes:
--------
--- /work/SRC/openSUSE:Factory/gnumeric/gnumeric.changes 2015-12-01 09:19:04.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.gnumeric.new/gnumeric.changes 2016-01-01 19:50:18.000000000 +0100
@@ -1,0 +2,25 @@
+Tue Dec 29 11:26:44 UTC 2015 - dimstar(a)opensuse.org
+
+- Update to version 1.12.26:
+ + Fix potential crasher on showing initial window.
+
+-------------------------------------------------------------------
+Sat Dec 26 16:15:23 UTC 2015 - damjanovic.ivo(a)gmail.com
+
+- Update to version 1.12.25:
+ + Add support in recent files dialog for multiple selesction
+ and double click (bgo#759160).
+ + Fix TABLE problems (bgo#752181, bgo#752178, bgo#752182).
+ + Fuzzed file fixes (bgo#752179, bgo#752180).
+ + Add R.DGUMBEL, R.PGUMBEL, R.QGUMBEL.
+ + Fix conditional format problem (bgo#750271).
+ + Test also RANDWEIBULL and RANDLOGNORM.
+ + Fix problem with R.QHYPER.
+ + Add R.DRAYLEIGH, R.PRAYLEIGH, R.QRAYLEIGH.
+ + Fix GUI translation problems.
+ + Fix bugs with merged cells (bgo#504004).
+ + Make builds more reproducible.
+ + Improve ssdiff for validation.
+ + Fix problem with xls export of list validation (bgo#557555).
+
+-------------------------------------------------------------------
Old:
----
gnumeric-1.12.24.tar.xz
New:
----
gnumeric-1.12.26.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ gnumeric.spec ++++++
--- /var/tmp/diff_new_pack.9SFhIE/_old 2016-01-01 19:50:20.000000000 +0100
+++ /var/tmp/diff_new_pack.9SFhIE/_new 2016-01-01 19:50:20.000000000 +0100
@@ -17,7 +17,7 @@
Name: gnumeric
-Version: 1.12.24
+Version: 1.12.26
Release: 0
Summary: Spreadsheet Application
License: GPL-2.0 or GPL-3.0
++++++ gnumeric-1.12.24.tar.xz -> gnumeric-1.12.26.tar.xz ++++++
/work/SRC/openSUSE:Factory/gnumeric/gnumeric-1.12.24.tar.xz /work/SRC/openSUSE:Factory/.gnumeric.new/gnumeric-1.12.26.tar.xz differ: char 27, line 1
1
0
Hello community,
here is the log from the commit of package goffice for openSUSE:Factory checked in at 2016-01-01 19:48:14
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/goffice (Old)
and /work/SRC/openSUSE:Factory/.goffice.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "goffice"
Changes:
--------
--- /work/SRC/openSUSE:Factory/goffice/goffice.changes 2015-12-01 09:19:01.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.goffice.new/goffice.changes 2016-01-01 19:50:16.000000000 +0100
@@ -1,0 +2,14 @@
+Tue Dec 29 11:23:34 UTC 2015 - dimstar(a)opensuse.org
+
+- Update to version 0.10.26:
+ + Version bump only to stay in sync for gnumeric.
+
+-------------------------------------------------------------------
+Sat Dec 26 16:09:02 UTC 2015 - damjanovic.ivo(a)gmail.com
+
+- Update to version 0.10.25:
+ + Plug leaks.
+ + Fix axis editing bug (bgo#684886).
+ + Make builds more reproducible.
+
+-------------------------------------------------------------------
Old:
----
goffice-0.10.24.tar.xz
New:
----
goffice-0.10.26.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ goffice.spec ++++++
--- /var/tmp/diff_new_pack.4M8KIw/_old 2016-01-01 19:50:17.000000000 +0100
+++ /var/tmp/diff_new_pack.4M8KIw/_new 2016-01-01 19:50:17.000000000 +0100
@@ -17,7 +17,7 @@
Name: goffice
-Version: 0.10.24
+Version: 0.10.26
Release: 0
Summary: GLib/GTK+ Set of Document-Centric Objects and Utilities
License: GPL-2.0 or GPL-3.0
++++++ goffice-0.10.24.tar.xz -> goffice-0.10.26.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/goffice-0.10.24/ChangeLog new/goffice-0.10.26/ChangeLog
--- old/goffice-0.10.24/ChangeLog 2015-09-20 22:18:43.000000000 +0200
+++ new/goffice-0.10.26/ChangeLog 2015-12-28 21:10:01.000000000 +0100
@@ -1,3 +1,28 @@
+2015-12-28 Morten Welinder <terra(a)gnome.org>
+
+ * Release 0.10.26
+
+2015-12-25 Morten Welinder <terra(a)gnome.org>
+
+ * configure.ac: Post-release bump.
+
+2015-12-25 Morten Welinder <terra(a)gnome.org>
+
+ * Release 0.10.25
+
+2015-12-14 Morten Welinder <terra(a)gnome.org>
+
+ * goffice/graph/gog-axis-line.c (gog_tool_move_bound_init): Use
+ gog_axis_map_get_real_extents here, see bug #684886.
+
+2015-12-01 Morten Welinder <terra(a)gnome.org>
+
+ * goffice/app/go-plugin.c (go_plugin_read): Plug leak.
+
+2015-09-20 Morten Welinder <terra(a)gnome.org>
+
+ * configure.ac: Post-release bump.
+
2015-09-20 Morten Welinder <terra(a)gnome.org>
* Release 0.10.24
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/goffice-0.10.24/NEWS new/goffice-0.10.26/NEWS
--- old/goffice-0.10.24/NEWS 2015-09-10 16:27:33.000000000 +0200
+++ new/goffice-0.10.26/NEWS 2015-12-25 18:53:45.000000000 +0100
@@ -1,3 +1,14 @@
+goffice 0.10.26:
+
+--------------------------------------------------------------------------
+goffice 0.10.25:
+
+Morten:
+ * Plug leaks.
+ * Fix axis editing bug. [#684886]
+ * Make builds more reproducible.
+
+--------------------------------------------------------------------------
goffice 0.10.24:
Jean:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/goffice-0.10.24/configure new/goffice-0.10.26/configure
--- old/goffice-0.10.24/configure 2015-09-17 23:38:59.000000000 +0200
+++ new/goffice-0.10.26/configure 2015-12-25 18:56:58.000000000 +0100
@@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for goffice 0.10.24.
+# Generated by GNU Autoconf 2.69 for goffice 0.10.26.
#
# Report bugs to <http://bugzilla.gnome.org/enter_bug.cgi?product=libgoffice>.
#
@@ -591,8 +591,8 @@
# Identity of this package.
PACKAGE_NAME='goffice'
PACKAGE_TARNAME='goffice'
-PACKAGE_VERSION='0.10.24'
-PACKAGE_STRING='goffice 0.10.24'
+PACKAGE_VERSION='0.10.26'
+PACKAGE_STRING='goffice 0.10.26'
PACKAGE_BUGREPORT='http://bugzilla.gnome.org/enter_bug.cgi?product=libgoffice'
PACKAGE_URL=''
@@ -1490,7 +1490,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 goffice 0.10.24 to adapt to many kinds of systems.
+\`configure' configures goffice 0.10.26 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1560,7 +1560,7 @@
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of goffice 0.10.24:";;
+ short | recursive ) echo "Configuration of goffice 0.10.26:";;
esac
cat <<\_ACEOF
@@ -1731,7 +1731,7 @@
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-goffice configure 0.10.24
+goffice configure 0.10.26
generated by GNU Autoconf 2.69
Copyright (C) 2012 Free Software Foundation, Inc.
@@ -2146,7 +2146,7 @@
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
-It was created by goffice $as_me 0.10.24, which was
+It was created by goffice $as_me 0.10.26, which was
generated by GNU Autoconf 2.69. Invocation command line was
$ $0 $@
@@ -3011,7 +3011,7 @@
# Define the identity of the package.
PACKAGE='goffice'
- VERSION='0.10.24'
+ VERSION='0.10.26'
cat >>confdefs.h <<_ACEOF
@@ -3106,7 +3106,7 @@
-VERSION_INFO=10:24:0
+VERSION_INFO=10:26:0
VERSION_IFACE=10
@@ -16865,7 +16865,7 @@
-$as_echo "#define GOFFICE_VERSION \"0.10.24\"" >>confdefs.h
+$as_echo "#define GOFFICE_VERSION \"0.10.26\"" >>confdefs.h
$as_echo "#define GO_VERSION_EPOCH 0" >>confdefs.h
@@ -16874,7 +16874,7 @@
$as_echo "#define GO_VERSION_MAJOR 10" >>confdefs.h
-$as_echo "#define GO_VERSION_MINOR 24" >>confdefs.h
+$as_echo "#define GO_VERSION_MINOR 26" >>confdefs.h
$as_echo "#define GO_VERSION_EXTRA \"\"" >>confdefs.h
@@ -17854,7 +17854,7 @@
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
-This file was extended by goffice $as_me 0.10.24, which was
+This file was extended by goffice $as_me 0.10.26, which was
generated by GNU Autoconf 2.69. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -17920,7 +17920,7 @@
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\
-goffice config.status 0.10.24
+goffice config.status 0.10.26
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/goffice-0.10.24/configure.ac new/goffice-0.10.26/configure.ac
--- old/goffice-0.10.24/configure.ac 2015-07-29 04:52:12.000000000 +0200
+++ new/goffice-0.10.26/configure.ac 2015-12-25 18:53:45.000000000 +0100
@@ -5,7 +5,7 @@
m4_define([goffice_version_epoch], [0])
m4_define([goffice_version_major], [10])
-m4_define([goffice_version_minor], [24])
+m4_define([goffice_version_minor], [26])
m4_define([goffice_version_extra], [])
m4_define([goffice_full_version],
[goffice_version_epoch.goffice_version_major.goffice_version_minor[]goffice_version_extra])
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/goffice-0.10.24/docs/reference/html/GOComponent.html new/goffice-0.10.26/docs/reference/html/GOComponent.html
--- old/goffice-0.10.24/docs/reference/html/GOComponent.html 2015-09-20 22:18:49.000000000 +0200
+++ new/goffice-0.10.26/docs/reference/html/GOComponent.html 2015-12-28 21:10:06.000000000 +0100
@@ -1144,9 +1144,8 @@
<span class="type">gpointer</span> user_data)</pre>
<p>
</p>
-<p>@:</p>
<div class="refsect3">
-<a name="id-1.6.9.3.12.2.6"></a><h4>Parameters</h4>
+<a name="id-1.6.9.3.12.2.5"></a><h4>Parameters</h4>
<div class="informaltable"><table width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/goffice-0.10.24/docs/reference/html/GOData.html new/goffice-0.10.26/docs/reference/html/GOData.html
--- old/goffice-0.10.24/docs/reference/html/GOData.html 2015-09-20 22:18:49.000000000 +0200
+++ new/goffice-0.10.26/docs/reference/html/GOData.html 2015-12-28 21:10:06.000000000 +0100
@@ -780,9 +780,8 @@
<span class="type">gpointer</span> user_data)</pre>
<p>
</p>
-<p>@:</p>
<div class="refsect3">
-<a name="id-1.6.5.2.10.2.6"></a><h4>Parameters</h4>
+<a name="id-1.6.5.2.10.2.5"></a><h4>Parameters</h4>
<div class="informaltable"><table width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/goffice-0.10.24/docs/reference/html/index.html new/goffice-0.10.26/docs/reference/html/index.html
--- old/goffice-0.10.24/docs/reference/html/index.html 2015-09-20 22:18:49.000000000 +0200
+++ new/goffice-0.10.26/docs/reference/html/index.html 2015-12-28 21:10:06.000000000 +0100
@@ -14,7 +14,7 @@
<div class="titlepage">
<div>
<div><table class="navigation" id="top" width="100%" cellpadding="2" cellspacing="0"><tr><th valign="middle"><p class="title">GOffice Reference Manual</p></th></tr></table></div>
-<div><p class="releaseinfo">For goffice 0.10.24
+<div><p class="releaseinfo">For goffice 0.10.26
</p></div>
</div>
<hr>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/goffice-0.10.24/docs/reference/tmpl/go-component.sgml new/goffice-0.10.26/docs/reference/tmpl/go-component.sgml
--- old/goffice-0.10.24/docs/reference/tmpl/go-component.sgml 2015-09-20 22:18:49.000000000 +0200
+++ new/goffice-0.10.26/docs/reference/tmpl/go-component.sgml 2015-12-28 21:10:06.000000000 +0100
@@ -31,8 +31,6 @@
</para>
-@:
-
@gocomponent: the object which received the signal.
<!-- ##### ARG GOComponent:ascent ##### -->
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/goffice-0.10.24/docs/reference/tmpl/go-data.sgml new/goffice-0.10.26/docs/reference/tmpl/go-data.sgml
--- old/goffice-0.10.24/docs/reference/tmpl/go-data.sgml 2015-09-20 22:18:49.000000000 +0200
+++ new/goffice-0.10.26/docs/reference/tmpl/go-data.sgml 2015-12-28 21:10:06.000000000 +0100
@@ -31,8 +31,6 @@
</para>
-@:
-
@godata: the object which received the signal.
<!-- ##### FUNCTION go_data_date_conv ##### -->
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/goffice-0.10.24/docs/reference/tmpl/goffice-component.sgml new/goffice-0.10.26/docs/reference/tmpl/goffice-component.sgml
--- old/goffice-0.10.24/docs/reference/tmpl/goffice-component.sgml 2015-09-20 22:18:49.000000000 +0200
+++ new/goffice-0.10.26/docs/reference/tmpl/goffice-component.sgml 2015-12-28 21:10:06.000000000 +0100
@@ -31,7 +31,7 @@
</para>
-@gocomponent: the object which received the signal.
+@:
<!-- ##### ARG GOComponent:ascent ##### -->
<para>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/goffice-0.10.24/docs/reference/tmpl/goffice-data.sgml new/goffice-0.10.26/docs/reference/tmpl/goffice-data.sgml
--- old/goffice-0.10.24/docs/reference/tmpl/goffice-data.sgml 2015-09-20 22:18:49.000000000 +0200
+++ new/goffice-0.10.26/docs/reference/tmpl/goffice-data.sgml 2015-12-28 21:10:06.000000000 +0100
@@ -31,7 +31,7 @@
</para>
-@godata: the object which received the signal.
+@:
<!-- ##### STRUCT GODataMatrix ##### -->
<para>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/goffice-0.10.24/docs/reference/version.xml new/goffice-0.10.26/docs/reference/version.xml
--- old/goffice-0.10.24/docs/reference/version.xml 2015-09-17 23:39:07.000000000 +0200
+++ new/goffice-0.10.26/docs/reference/version.xml 2015-12-25 18:57:05.000000000 +0100
@@ -1 +1 @@
-0.10.24
+0.10.26
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/goffice-0.10.24/goffice/app/go-plugin.c new/goffice-0.10.26/goffice/app/go-plugin.c
--- old/goffice-0.10.24/goffice/app/go-plugin.c 2014-09-22 00:02:59.000000000 +0200
+++ new/goffice-0.10.26/goffice/app/go-plugin.c 2015-12-01 23:32:55.000000000 +0100
@@ -841,6 +841,7 @@
GO_SLIST_PREPEND (dependency_list, dep);
}
} else {
+ g_free (loader_id);
loader_id = NULL;
loader_attrs = NULL;
}
@@ -865,6 +866,7 @@
plugin->loader_attrs = loader_attrs;
plugin->loader = NULL;
plugin->services = go_plugin_read_service_list (plugin, tree, &services_error);
+ loader_attrs = NULL;
if (services_error != NULL) {
*ret_error = go_error_info_new_printf (
@@ -906,6 +908,9 @@
}
g_free (file_name);
xmlFreeDoc (doc);
+
+ if (loader_attrs)
+ g_hash_table_destroy (loader_attrs);
}
static void
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/goffice-0.10.24/goffice/goffice-features.h new/goffice-0.10.26/goffice/goffice-features.h
--- old/goffice-0.10.24/goffice/goffice-features.h 2015-07-30 23:01:30.000000000 +0200
+++ new/goffice-0.10.26/goffice/goffice-features.h 2015-12-25 18:57:05.000000000 +0100
@@ -35,7 +35,7 @@
/* #undef GOFFICE_SUPPLIED_STRTOLD */
/* The version number of this release, possibly with additional suffix */
-#define GOFFICE_VERSION "0.10.24"
+#define GOFFICE_VERSION "0.10.26"
/* The Epoch of this release */
#define GO_VERSION_EPOCH 0
@@ -44,7 +44,7 @@
#define GO_VERSION_MAJOR 10
/* The Minor version number of this release */
-#define GO_VERSION_MINOR 24
+#define GO_VERSION_MINOR 26
/* Extra, possibly empty tag for this release */
#define GO_VERSION_EXTRA ""
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/goffice-0.10.24/goffice/graph/gog-axis-line.c new/goffice-0.10.26/goffice/graph/gog-axis-line.c
--- old/goffice-0.10.24/goffice/graph/gog-axis-line.c 2015-05-16 12:29:00.000000000 +0200
+++ new/goffice-0.10.26/goffice/graph/gog-axis-line.c 2015-12-15 01:28:57.000000000 +0100
@@ -920,7 +920,7 @@
data->axis = axis_base->axis;
data->length = hypot (view->x_start - view->x_stop,
view->y_start - view->y_stop);
- gog_axis_map_get_extents (data->map, &data->start, &data->stop);
+ gog_axis_map_get_real_extents (data->map, &data->start, &data->stop);
}
static void
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/goffice-0.10.24/po/ChangeLog new/goffice-0.10.26/po/ChangeLog
--- old/goffice-0.10.24/po/ChangeLog 2015-09-20 22:18:43.000000000 +0200
+++ new/goffice-0.10.26/po/ChangeLog 2015-12-28 21:10:01.000000000 +0100
@@ -1,3 +1,11 @@
+2015-12-28 Morten Welinder <terra(a)gnome.org>
+
+ * Release 0.10.26
+
+2015-12-25 Morten Welinder <terra(a)gnome.org>
+
+ * Release 0.10.25
+
2015-09-20 Morten Welinder <terra(a)gnome.org>
* Release 0.10.24
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/goffice-0.10.24/tools/ChangeLog new/goffice-0.10.26/tools/ChangeLog
--- old/goffice-0.10.24/tools/ChangeLog 2015-09-20 22:18:43.000000000 +0200
+++ new/goffice-0.10.26/tools/ChangeLog 2015-12-28 21:10:01.000000000 +0100
@@ -1,3 +1,11 @@
+2015-12-28 Morten Welinder <terra(a)gnome.org>
+
+ * Release 0.10.26
+
+2015-12-25 Morten Welinder <terra(a)gnome.org>
+
+ * Release 0.10.25
+
2015-09-20 Morten Welinder <terra(a)gnome.org>
* Release 0.10.24
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/goffice-0.10.24/tools/embedder new/goffice-0.10.26/tools/embedder
--- old/goffice-0.10.24/tools/embedder 2014-09-22 00:03:02.000000000 +0200
+++ new/goffice-0.10.26/tools/embedder 2015-12-21 23:30:13.000000000 +0100
@@ -98,7 +98,7 @@
if ($docompress) {
my $zdata;
- gzip \$data => \$zdata
+ gzip \$data => \$zdata, TIME => 0,
or die "gzip failed: $GzipError\n";
$data = $zdata;
}
1
0
Hello community,
here is the log from the commit of package libvirt for openSUSE:Factory checked in at 2016-01-01 19:48:12
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/libvirt (Old)
and /work/SRC/openSUSE:Factory/.libvirt.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "libvirt"
Changes:
--------
--- /work/SRC/openSUSE:Factory/libvirt/libvirt.changes 2015-12-09 22:23:53.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.libvirt.new/libvirt.changes 2016-01-01 19:50:12.000000000 +0100
@@ -1,0 +2,26 @@
+Tue Dec 22 02:21:44 UTC 2015 - jfehlig(a)suse.com
+
+- spec: perform one-time enable and start of virtlogd.socket when
+ upgrading from libvirt < 1.3.0. Inspired by upstream libvirt.git
+ commit da054f35.
+
+-------------------------------------------------------------------
+Fri Dec 18 16:08:37 UTC 2015 - jfehlig(a)suse.com
+
+- CVE-2015-5313: don't allow '/' in filesystem volume names
+ 034e47c3-CVE-2015-5313.patch
+ bsc#953110
+- Fix failing qemuxml2argv test on 32-bit platforms
+ ace1ee22-qemuxml2argv-test.patch
+
+-------------------------------------------------------------------
+Thu Dec 17 22:57:56 UTC 2015 - jfehlig(a)suse.com
+
+- Update to libvirt 1.3.0
+ - New virtlogd log daemon
+ - Many incremental improvements and bug fixes, see
+ http://libvirt.org/news.html
+ - Dropped patch: 703ec1b7-qemu-bridge-helper-fix.patch
+ - Added patch: virtlogd-init-script.patch
+
+-------------------------------------------------------------------
Old:
----
703ec1b7-qemu-bridge-helper-fix.patch
libvirt-1.2.21.tar.gz
libvirt-1.2.21.tar.gz.asc
New:
----
034e47c3-CVE-2015-5313.patch
ace1ee22-qemuxml2argv-test.patch
libvirt-1.3.0.tar.gz
libvirt-1.3.0.tar.gz.asc
virtlogd-init-script.patch
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ libvirt.spec ++++++
--- /var/tmp/diff_new_pack.bVJOU1/_old 2016-01-01 19:50:15.000000000 +0100
+++ /var/tmp/diff_new_pack.bVJOU1/_new 2016-01-01 19:50:15.000000000 +0100
@@ -1,7 +1,7 @@
#
# spec file for package libvirt
#
-# 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
@@ -240,7 +240,7 @@
Name: libvirt
Url: http://libvirt.org/
-Version: 1.2.21
+Version: 1.3.0
Release: 0
Summary: Library providing a simple virtualization API
License: LGPL-2.1+
@@ -453,7 +453,8 @@
Source4: libvirtd-relocation-server.fw
Source99: baselibs.conf
# Upstream patches
-Patch0: 703ec1b7-qemu-bridge-helper-fix.patch
+Patch0: 034e47c3-CVE-2015-5313.patch
+Patch1: ace1ee22-qemuxml2argv-test.patch
# Patches pending upstream review
Patch100: add-with-login-shell.patch
Patch101: virt-aa-helper-rw-mounts.patch
@@ -468,14 +469,15 @@
Patch201: libvirtd-init-script.patch
Patch202: libvirt-guests-init-script.patch
Patch203: virtlockd-init-script.patch
-Patch204: suse-qemu-conf.patch
-Patch205: support-managed-pci-xen-driver.patch
-Patch206: systemd-service-xen.patch
-Patch207: xen-sxpr-disk-type.patch
-Patch208: apparmor-no-mount.patch
-Patch209: qemu-apparmor-screenshot.patch
-Patch210: libvirt-suse-netcontrol.patch
-Patch211: lxc-wait-after-eth-del.patch
+Patch204: virtlogd-init-script.patch
+Patch205: suse-qemu-conf.patch
+Patch206: support-managed-pci-xen-driver.patch
+Patch207: systemd-service-xen.patch
+Patch208: xen-sxpr-disk-type.patch
+Patch209: apparmor-no-mount.patch
+Patch210: qemu-apparmor-screenshot.patch
+Patch211: libvirt-suse-netcontrol.patch
+Patch212: lxc-wait-after-eth-del.patch
# SocketUser and SocketGroup settings were added to systemd.socket in
# version 214. Patch the setting away in earlier systemd
%if 0%{systemd_version} < 214
@@ -972,6 +974,7 @@
%prep
%setup -q
%patch0 -p1
+%patch1 -p1
%patch100 -p1
%patch101 -p1
%patch150 -p1
@@ -991,6 +994,7 @@
%patch209 -p1
%patch210 -p1
%patch211 -p1
+%patch212 -p1
%if 0%{systemd_version} < 214
%patch300 -p1
%endif
@@ -1236,8 +1240,11 @@
# temporarily remove polkit ACL policiy configuration - bnc#827644
rm -f $RPM_BUILD_ROOT/%{_datadir}/polkit-1/actions/org.libvirt.api.policy
-# Until libvirt 1.3.0, follow upstream and remove libvirt-admin.so
+# Similar to upstream, temporarily remove admin-related files
rm -f $RPM_BUILD_ROOT%{_libdir}/libvirt-admin.so
+rm -f $RPM_BUILD_ROOT%{_bindir}/virt-admin
+rm -f $RPM_BUILD_ROOT%{_mandir}/man1/virt-admin.1*
+rm -f $RPM_BUILD_ROOT%{_sysconfdir}/libvirt/libvirt-admin.conf
mkdir -p $RPM_BUILD_ROOT/%{_localstatedir}/lib/libvirt
mkdir -p $RPM_BUILD_ROOT/%{_sysconfdir}/libvirt/hooks
@@ -1334,12 +1341,17 @@
rm -f $RPM_BUILD_ROOT/usr/lib/sysctl.d/60-libvirtd.conf
# For other services, use the in-tree scripts
%if %{with_systemd}
+rm -f $RPM_BUILD_ROOT%{_sysconfdir}/rc.d/init.d/virtlogd
+ln -s %{_sbindir}/service $RPM_BUILD_ROOT%{_sbindir}/rcvirtlogd
rm -f $RPM_BUILD_ROOT%{_sysconfdir}/rc.d/init.d/virtlockd
ln -s %{_sbindir}/service $RPM_BUILD_ROOT%{_sbindir}/rcvirtlockd
%else
+mv $RPM_BUILD_ROOT%{_sysconfdir}/rc.d/init.d/virtlogd $RPM_BUILD_ROOT%{_sysconfdir}/init.d/virtlogd
+ln -s /etc/init.d/virtlogd $RPM_BUILD_ROOT%{_sbindir}/rcvirtlogd
mv $RPM_BUILD_ROOT%{_sysconfdir}/rc.d/init.d/virtlockd $RPM_BUILD_ROOT%{_sysconfdir}/init.d/virtlockd
ln -s /etc/init.d/virtlockd $RPM_BUILD_ROOT%{_sbindir}/rcvirtlockd
%endif
+mv $RPM_BUILD_ROOT%{_sysconfdir}/sysconfig/virtlogd $RPM_BUILD_ROOT%{_localstatedir}/adm/fillup-templates/sysconfig.virtlogd
mv $RPM_BUILD_ROOT%{_sysconfdir}/sysconfig/virtlockd $RPM_BUILD_ROOT%{_localstatedir}/adm/fillup-templates/sysconfig.virtlockd
#install firewall definitions format is described here:
#/usr/share/SuSEfirewall2/services/TEMPLATE
@@ -1393,6 +1405,7 @@
%if %{with_systemd}
%service_add_pre libvirtd.service libvirtd.socket
%service_add_pre virtlockd.service virtlockd.socket
+%service_add_pre virtlogd.service virtlogd.socket
%endif
%{_bindir}/getent group libvirt >/dev/null || \
%{_sbindir}/groupadd -r libvirt 2>/dev/null
@@ -1402,17 +1415,21 @@
%if %{with_systemd}
%service_add_post libvirtd.service libvirtd.socket
%service_add_post virtlockd.service virtlockd.socket
+%service_add_post virtlogd.service virtlogd.socket
%endif
%{fillup_only -n libvirtd}
%{fillup_only -n virtlockd}
+%{fillup_only -n virtlogd}
%preun daemon
%if %{with_systemd}
%service_del_preun libvirtd.service libvirtd.socket
%service_del_preun virtlockd.service virtlockd.socket
+%service_del_preun virtlogd.service virtlogd.socket
%else
%stop_on_removal libvirtd
%stop_on_removal virtlockd
+%stop_on_removal virtlogd
%endif
%postun daemon
@@ -1420,12 +1437,33 @@
%if %{with_systemd}
%service_del_postun libvirtd.service libvirtd.socket
%service_del_postun virtlockd.service virtlockd.socket
+%service_del_postun virtlogd.service virtlogd.socket
%else
%restart_on_update libvirtd
%restart_on_update virtlockd
+%restart_on_update virtlogd
%endif
%insserv_cleanup
+# In upgrade scenario we must explicitly enable virtlockd/virtlogd
+# sockets, if libvirtd is already enabled and start them if
+# libvirtd is running, otherwise you'll get failures to start
+# guests
+%triggerpostun daemon -- libvirt-daemon < 1.3.0
+if [ $1 -ge 1 ] ; then
+ %if %{with_systemd}
+ /usr/bin/systemctl is-enabled libvirtd.service 1>/dev/null 2>&1 &&
+ /usr/bin/systemctl enable virtlogd.socket || :
+ /usr/bin/systemctl is-active libvirtd.service 1>/dev/null 2>&1 &&
+ /usr/bin/systemctl start virtlogd.socket || :
+ %else
+ /sbin/chkconfig libvirtd 1>/dev/null 2>&1 &&
+ /sbin/chkconfig virtlogd on || :
+ /sbin/service libvirtd status 1>/dev/null 2>&1 &&
+ /sbin/service virtlogd start || :
+ %endif
+fi
+
%if %{with_network}
%post daemon-config-network
@@ -1439,6 +1477,11 @@
%endif
%endif # with_libvirtd
+%pre client
+ %if %{with_systemd}
+%service_add_pre libvirt-guests.service
+ %endif
+
%post client
/sbin/ldconfig
%if %{with_systemd}
@@ -1472,31 +1515,40 @@
%files daemon
%defattr(-, root, root)
%{_sbindir}/libvirtd
+%{_sbindir}/virtlogd
%{_sbindir}/virtlockd
%dir %{_libdir}/%{name}
%dir %attr(0700, root, root) %{_sysconfdir}/libvirt/
%dir %attr(0700, root, root) %{_sysconfdir}/libvirt/hooks
%{_localstatedir}/adm/fillup-templates/sysconfig.libvirtd
+%{_localstatedir}/adm/fillup-templates/sysconfig.virtlogd
%{_localstatedir}/adm/fillup-templates/sysconfig.virtlockd
%if %{with_systemd}
%{_unitdir}/libvirtd.service
%{_unitdir}/libvirtd.socket
+%{_unitdir}/virtlogd.service
+%{_unitdir}/virtlogd.socket
%{_unitdir}/virtlockd.service
%{_unitdir}/virtlockd.socket
%else
%config /etc/init.d/libvirtd
+%config /etc/init.d/virtlogd
%config /etc/init.d/virtlockd
%endif
%{_sbindir}/rclibvirtd
+%{_sbindir}/rcvirtlogd
%{_sbindir}/rcvirtlockd
%config(noreplace) %{_sysconfdir}/libvirt/libvirtd.conf
%config(noreplace) %{_sysconfdir}/logrotate.d/libvirtd
+%config(noreplace) %{_sysconfdir}/libvirt/virtlogd.conf
%config(noreplace) %{_sysconfdir}/libvirt/virtlockd.conf
%dir %{_datadir}/augeas/
%dir %{_datadir}/augeas/lenses
%dir %{_datadir}/augeas/lenses/tests
%{_datadir}/augeas/lenses/libvirtd.aug
%{_datadir}/augeas/lenses/tests/test_libvirtd.aug
+%{_datadir}/augeas/lenses/virtlogd.aug
+%{_datadir}/augeas/lenses/tests/test_virtlogd.aug
%{_datadir}/augeas/lenses/virtlockd.aug
%{_datadir}/augeas/lenses/tests/test_virtlockd.aug
%{_datadir}/augeas/lenses/libvirt_lockd.aug
@@ -1525,7 +1577,8 @@
%endif
%attr(0755, root, root) %{_libdir}/%{name}/libvirt_iohelper
%doc %{_mandir}/man8/libvirtd.8*
-%{_mandir}/man8/virtlockd.8*
+%doc %{_mandir}/man8/virtlogd.8*
+%doc %{_mandir}/man8/virtlockd.8*
%if %{with_apparmor}
%dir %{_sysconfdir}/apparmor.d
%dir %{_sysconfdir}/apparmor.d/abstractions
++++++ 034e47c3-CVE-2015-5313.patch ++++++
commit 034e47c338b13a95cf02106a3af912c1c5f818d7
Author: Eric Blake <eblake(a)redhat.com>
Date: Tue Dec 8 17:46:31 2015 -0700
CVE-2015-5313: storage: don't allow '/' in filesystem volume names
The libvirt file system storage driver determines what file to
act on by concatenating the pool location with the volume name.
If a user is able to pick names like "../../../etc/passwd", then
they can escape the bounds of the pool. For that matter,
virStoragePoolListVolumes() doesn't descend into subdirectories,
so a user really shouldn't use a name with a slash.
Normally, only privileged users can coerce libvirt into creating
or opening existing files using the virStorageVol APIs; and such
users already have full privilege to create any domain XML (so it
is not an escalation of privilege). But in the case of
fine-grained ACLs, it is feasible that a user can be granted
storage_vol:create but not domain:write, and it violates
assumptions if such a user can abuse libvirt to access files
outside of the storage pool.
Therefore, prevent all use of volume names that contain "/",
whether or not such a name is actually attempting to escape the
pool.
This changes things from:
$ virsh vol-create-as default ../../../../../../etc/haha --capacity 128
Vol ../../../../../../etc/haha created
$ rm /etc/haha
to:
$ virsh vol-create-as default ../../../../../../etc/haha --capacity 128
error: Failed to create vol ../../../../../../etc/haha
error: Requested operation is not valid: volume name '../../../../../../etc/haha' cannot contain '/'
Signed-off-by: Eric Blake <eblake(a)redhat.com>
Index: libvirt-1.3.0/src/storage/storage_backend_fs.c
===================================================================
--- libvirt-1.3.0.orig/src/storage/storage_backend_fs.c
+++ libvirt-1.3.0/src/storage/storage_backend_fs.c
@@ -1,7 +1,7 @@
/*
* storage_backend_fs.c: storage backend for FS and directory handling
*
- * Copyright (C) 2007-2014 Red Hat, Inc.
+ * Copyright (C) 2007-2015 Red Hat, Inc.
* Copyright (C) 2007-2008 Daniel P. Berrange
*
* This library is free software; you can redistribute it and/or
@@ -1057,6 +1057,14 @@ virStorageBackendFileSystemVolCreate(vir
else
vol->type = VIR_STORAGE_VOL_FILE;
+ /* Volumes within a directory pools are not recursive; do not
+ * allow escape to ../ or a subdir */
+ if (strchr(vol->name, '/')) {
+ virReportError(VIR_ERR_OPERATION_INVALID,
+ _("volume name '%s' cannot contain '/'"), vol->name);
+ return -1;
+ }
+
VIR_FREE(vol->target.path);
if (virAsprintf(&vol->target.path, "%s/%s",
pool->def->target.path,
++++++ ace1ee22-qemuxml2argv-test.patch ++++++
commit ace1ee225f5cd87fb095054a6a19bdcd0fa57518
Author: Peter Krempa <pkrempa(a)redhat.com>
Date: Thu Dec 10 14:36:51 2015 +0100
test: qemuxml2argv: Mock virMemoryMaxValue to remove 32/64 bit difference
Always return LLONG_MAX even on 32 bit systems. The limitation
originates from our use of "unsigned long" in several APIs. The internal
data type is unsigned long long. Make the test suite deterministic by
removing the architecture difference.
Flaw was introduced in 645881139b3d2c86acf9d644c3a1471520bc9e57 where
I've added a test that uses too large numbers.
Index: libvirt-1.3.0/src/util/virutil.c
===================================================================
--- libvirt-1.3.0.orig/src/util/virutil.c
+++ libvirt-1.3.0/src/util/virutil.c
@@ -2639,6 +2639,8 @@ virMemoryLimitIsSet(unsigned long long v
* @capped: whether the value must fit into unsigned long
* (long long is assumed otherwise)
*
+ * Note: This function is mocked in tests/qemuxml2argvmock.c for test stability
+ *
* Returns the maximum possible memory value in bytes.
*/
unsigned long long
Index: libvirt-1.3.0/tests/qemuxml2argvmock.c
===================================================================
--- libvirt-1.3.0.orig/tests/qemuxml2argvmock.c
+++ libvirt-1.3.0/tests/qemuxml2argvmock.c
@@ -74,3 +74,13 @@ virTPMCreateCancelPath(const char *devpa
return path;
}
+
+/**
+ * Large values for memory would fail on 32 bit systems, despite having
+ * variables that support it.
+ */
+unsigned long long
+virMemoryMaxValue(bool capped ATTRIBUTE_UNUSED)
+{
+ return LLONG_MAX;
+}
++++++ add-with-login-shell.patch ++++++
--- /var/tmp/diff_new_pack.bVJOU1/_old 2016-01-01 19:50:15.000000000 +0100
+++ /var/tmp/diff_new_pack.bVJOU1/_new 2016-01-01 19:50:15.000000000 +0100
@@ -10,10 +10,10 @@
tools/Makefile.am | 12 ++++++------
2 files changed, 20 insertions(+), 6 deletions(-)
-diff --git a/configure.ac b/configure.ac
-index 75e95b7..d054ba6 100644
---- a/configure.ac
-+++ b/configure.ac
+Index: libvirt-1.3.0/configure.ac
+===================================================================
+--- libvirt-1.3.0.orig/configure.ac
++++ libvirt-1.3.0/configure.ac
@@ -1074,6 +1074,19 @@ if test "$with_lxc" = "yes" ; then
fi
AM_CONDITIONAL([WITH_LXC], [test "$with_lxc" = "yes"])
@@ -34,7 +34,7 @@
dnl
dnl Checks for the Parallels driver
dnl
-@@ -2974,6 +2987,7 @@ AC_MSG_NOTICE([ Init script: $with_init_script])
+@@ -2974,6 +2987,7 @@ AC_MSG_NOTICE([ Init script: $with_
AC_MSG_NOTICE([Char device locks: $with_chrdev_lock_files])
AC_MSG_NOTICE([ Default Editor: $DEFAULT_EDITOR])
AC_MSG_NOTICE([ Loader/NVRAM: $with_loader_nvram])
@@ -42,10 +42,10 @@
AC_MSG_NOTICE([])
AC_MSG_NOTICE([Developer Tools])
AC_MSG_NOTICE([])
-diff --git a/tools/Makefile.am b/tools/Makefile.am
-index d5638d9..d005035 100644
---- a/tools/Makefile.am
-+++ b/tools/Makefile.am
+Index: libvirt-1.3.0/tools/Makefile.am
+===================================================================
+--- libvirt-1.3.0.orig/tools/Makefile.am
++++ libvirt-1.3.0/tools/Makefile.am
@@ -71,12 +71,12 @@ sbin_SCRIPTS = virt-sanlock-cleanup
DISTCLEANFILES += virt-sanlock-cleanup
endif WITH_SANLOCK
@@ -62,10 +62,10 @@
dist_man1_MANS = \
-@@ -84,11 +84,11 @@ dist_man1_MANS = \
- virt-pki-validate.1 \
+@@ -85,11 +85,11 @@ dist_man1_MANS = \
virt-xml-validate.1 \
- virsh.1
+ virsh.1 \
+ virt-admin.1
-if WITH_LXC
+if WITH_LOGIN_SHELL
dist_man1_MANS += virt-login-shell.1
@@ -77,6 +77,3 @@
if WITH_SANLOCK
dist_man8_MANS = virt-sanlock-cleanup.8
endif WITH_SANLOCK
---
-2.1.4
-
++++++ apparmor-fixes.patch ++++++
--- /var/tmp/diff_new_pack.bVJOU1/_old 2016-01-01 19:50:15.000000000 +0100
+++ /var/tmp/diff_new_pack.bVJOU1/_new 2016-01-01 19:50:15.000000000 +0100
@@ -1,8 +1,8 @@
-Index: libvirt-1.2.21/examples/apparmor/libvirt-qemu
+Index: libvirt-1.3.0/examples/apparmor/libvirt-qemu
===================================================================
---- libvirt-1.2.21.orig/examples/apparmor/libvirt-qemu
-+++ libvirt-1.2.21/examples/apparmor/libvirt-qemu
-@@ -124,6 +124,9 @@
+--- libvirt-1.3.0.orig/examples/apparmor/libvirt-qemu
++++ libvirt-1.3.0/examples/apparmor/libvirt-qemu
+@@ -143,6 +143,9 @@
# for restore
/bin/bash rmix,
++++++ apparmor-no-mount.patch ++++++
--- /var/tmp/diff_new_pack.bVJOU1/_old 2016-01-01 19:50:15.000000000 +0100
+++ /var/tmp/diff_new_pack.bVJOU1/_new 2016-01-01 19:50:15.000000000 +0100
@@ -1,7 +1,7 @@
-Index: libvirt-1.2.21/examples/apparmor/libvirt-lxc
+Index: libvirt-1.3.0/examples/apparmor/libvirt-lxc
===================================================================
---- libvirt-1.2.21.orig/examples/apparmor/libvirt-lxc
-+++ libvirt-1.2.21/examples/apparmor/libvirt-lxc
+--- libvirt-1.3.0.orig/examples/apparmor/libvirt-lxc
++++ libvirt-1.3.0/examples/apparmor/libvirt-lxc
@@ -2,39 +2,15 @@
#include <abstractions/base>
++++++ blockcopy-check-dst-identical-device.patch ++++++
--- /var/tmp/diff_new_pack.bVJOU1/_old 2016-01-01 19:50:15.000000000 +0100
+++ /var/tmp/diff_new_pack.bVJOU1/_new 2016-01-01 19:50:15.000000000 +0100
@@ -11,11 +11,11 @@
src/qemu/qemu_driver.c | 7 +++++++
1 file changed, 7 insertions(+)
-Index: libvirt-1.2.21/src/qemu/qemu_driver.c
+Index: libvirt-1.3.0/src/qemu/qemu_driver.c
===================================================================
---- libvirt-1.2.21.orig/src/qemu/qemu_driver.c
-+++ libvirt-1.2.21/src/qemu/qemu_driver.c
-@@ -16720,6 +16720,15 @@ qemuDomainBlockCopyCommon(virDomainObjPt
+--- libvirt-1.3.0.orig/src/qemu/qemu_driver.c
++++ libvirt-1.3.0/src/qemu/qemu_driver.c
+@@ -16728,6 +16728,15 @@ qemuDomainBlockCopyCommon(virDomainObjPt
_("non-file destination not supported yet"));
goto endjob;
}
++++++ libvirt-1.2.21.tar.gz -> libvirt-1.3.0.tar.gz ++++++
/work/SRC/openSUSE:Factory/libvirt/libvirt-1.2.21.tar.gz /work/SRC/openSUSE:Factory/.libvirt.new/libvirt-1.3.0.tar.gz differ: char 13, line 1
++++++ libvirt-guests-init-script.patch ++++++
--- /var/tmp/diff_new_pack.bVJOU1/_old 2016-01-01 19:50:15.000000000 +0100
+++ /var/tmp/diff_new_pack.bVJOU1/_new 2016-01-01 19:50:15.000000000 +0100
@@ -1,9 +1,9 @@
Adjust libvirt-guests init files to conform to SUSE standards
-Index: libvirt-1.2.21/tools/libvirt-guests.init.in
+Index: libvirt-1.3.0/tools/libvirt-guests.init.in
===================================================================
---- libvirt-1.2.21.orig/tools/libvirt-guests.init.in
-+++ libvirt-1.2.21/tools/libvirt-guests.init.in
+--- libvirt-1.3.0.orig/tools/libvirt-guests.init.in
++++ libvirt-1.3.0/tools/libvirt-guests.init.in
@@ -3,15 +3,15 @@
# the following is the LSB init header
#
@@ -28,10 +28,10 @@
### END INIT INFO
# the following is chkconfig init header
-Index: libvirt-1.2.21/tools/libvirt-guests.sh.in
+Index: libvirt-1.3.0/tools/libvirt-guests.sh.in
===================================================================
---- libvirt-1.2.21.orig/tools/libvirt-guests.sh.in
-+++ libvirt-1.2.21/tools/libvirt-guests.sh.in
+--- libvirt-1.3.0.orig/tools/libvirt-guests.sh.in
++++ libvirt-1.3.0/tools/libvirt-guests.sh.in
@@ -16,14 +16,13 @@
# License along with this library. If not, see
# <http://www.gnu.org/licenses/>.
@@ -191,10 +191,10 @@
esac
-exit $RETVAL
+rc_exit
-Index: libvirt-1.2.21/tools/libvirt-guests.sysconf
+Index: libvirt-1.3.0/tools/libvirt-guests.sysconf
===================================================================
---- libvirt-1.2.21.orig/tools/libvirt-guests.sysconf
-+++ libvirt-1.2.21/tools/libvirt-guests.sysconf
+--- libvirt-1.3.0.orig/tools/libvirt-guests.sysconf
++++ libvirt-1.3.0/tools/libvirt-guests.sysconf
@@ -1,19 +1,29 @@
+## Path: System/Virtualization/libvirt-guests
+
++++++ libvirt-power8-models.patch ++++++
--- /var/tmp/diff_new_pack.bVJOU1/_old 2016-01-01 19:50:15.000000000 +0100
+++ /var/tmp/diff_new_pack.bVJOU1/_new 2016-01-01 19:50:15.000000000 +0100
@@ -1,7 +1,7 @@
-Index: libvirt-1.2.21/src/cpu/cpu_map.xml
+Index: libvirt-1.3.0/src/cpu/cpu_map.xml
===================================================================
---- libvirt-1.2.21.orig/src/cpu/cpu_map.xml
-+++ libvirt-1.2.21/src/cpu/cpu_map.xml
+--- libvirt-1.3.0.orig/src/cpu/cpu_map.xml
++++ libvirt-1.3.0/src/cpu/cpu_map.xml
@@ -1424,6 +1424,16 @@
<pvr value='0x004d0000' mask='0xffff0000'/>
</model>
++++++ libvirt-suse-netcontrol.patch ++++++
--- /var/tmp/diff_new_pack.bVJOU1/_old 2016-01-01 19:50:15.000000000 +0100
+++ /var/tmp/diff_new_pack.bVJOU1/_new 2016-01-01 19:50:15.000000000 +0100
@@ -1,7 +1,7 @@
-Index: libvirt-1.2.21/configure.ac
+Index: libvirt-1.3.0/configure.ac
===================================================================
---- libvirt-1.2.21.orig/configure.ac
-+++ libvirt-1.2.21/configure.ac
+--- libvirt-1.3.0.orig/configure.ac
++++ libvirt-1.3.0/configure.ac
@@ -242,6 +242,7 @@ LIBVIRT_CHECK_FUSE
LIBVIRT_CHECK_GLUSTER
LIBVIRT_CHECK_HAL
@@ -10,7 +10,7 @@
LIBVIRT_CHECK_NUMACTL
LIBVIRT_CHECK_OPENWSMAN
LIBVIRT_CHECK_PCIACCESS
-@@ -2482,11 +2483,12 @@ if test "$with_libvirtd" = "no" ; then
+@@ -2495,11 +2496,12 @@ if test "$with_libvirtd" = "no" ; then
with_interface=no
fi
@@ -26,7 +26,7 @@
esac
if test "$with_interface" = "yes" ; then
-@@ -2880,6 +2882,7 @@ LIBVIRT_RESULT_FUSE
+@@ -2893,6 +2895,7 @@ LIBVIRT_RESULT_FUSE
LIBVIRT_RESULT_GLUSTER
LIBVIRT_RESULT_HAL
LIBVIRT_RESULT_NETCF
@@ -34,11 +34,11 @@
LIBVIRT_RESULT_NUMACTL
LIBVIRT_RESULT_OPENWSMAN
LIBVIRT_RESULT_PCIACCESS
-Index: libvirt-1.2.21/src/Makefile.am
+Index: libvirt-1.3.0/src/Makefile.am
===================================================================
---- libvirt-1.2.21.orig/src/Makefile.am
-+++ libvirt-1.2.21/src/Makefile.am
-@@ -878,6 +878,10 @@ if WITH_NETCF
+--- libvirt-1.3.0.orig/src/Makefile.am
++++ libvirt-1.3.0/src/Makefile.am
+@@ -922,6 +922,10 @@ if WITH_NETCF
INTERFACE_DRIVER_SOURCES += \
interface/interface_backend_netcf.c
endif WITH_NETCF
@@ -49,7 +49,7 @@
if WITH_UDEV
INTERFACE_DRIVER_SOURCES += \
interface/interface_backend_udev.c
-@@ -1503,6 +1507,10 @@ if WITH_NETCF
+@@ -1547,6 +1551,10 @@ if WITH_NETCF
libvirt_driver_interface_la_CFLAGS += $(NETCF_CFLAGS)
libvirt_driver_interface_la_LIBADD += $(NETCF_LIBS)
endif WITH_NETCF
@@ -60,10 +60,10 @@
if WITH_UDEV
libvirt_driver_interface_la_CFLAGS += $(UDEV_CFLAGS)
libvirt_driver_interface_la_LIBADD += $(UDEV_LIBS)
-Index: libvirt-1.2.21/tools/virsh.c
+Index: libvirt-1.3.0/tools/virsh.c
===================================================================
---- libvirt-1.2.21.orig/tools/virsh.c
-+++ libvirt-1.2.21/tools/virsh.c
+--- libvirt-1.3.0.orig/tools/virsh.c
++++ libvirt-1.3.0/tools/virsh.c
@@ -588,6 +588,8 @@ virshShowVersion(vshControl *ctl ATTRIBU
vshPrint(ctl, " Interface");
# if defined(WITH_NETCF)
@@ -73,10 +73,10 @@
# elif defined(WITH_UDEV)
vshPrint(ctl, " udev");
# endif
-Index: libvirt-1.2.21/src/interface/interface_backend_netcf.c
+Index: libvirt-1.3.0/src/interface/interface_backend_netcf.c
===================================================================
---- libvirt-1.2.21.orig/src/interface/interface_backend_netcf.c
-+++ libvirt-1.2.21/src/interface/interface_backend_netcf.c
+--- libvirt-1.3.0.orig/src/interface/interface_backend_netcf.c
++++ libvirt-1.3.0/src/interface/interface_backend_netcf.c
@@ -23,7 +23,12 @@
#include <config.h>
@@ -160,10 +160,10 @@
if (virSetSharedInterfaceDriver(&interfaceDriver) < 0)
return -1;
if (virRegisterStateDriver(&interfaceStateDriver) < 0)
-Index: libvirt-1.2.21/src/interface/interface_driver.c
+Index: libvirt-1.3.0/src/interface/interface_driver.c
===================================================================
---- libvirt-1.2.21.orig/src/interface/interface_driver.c
-+++ libvirt-1.2.21/src/interface/interface_driver.c
+--- libvirt-1.3.0.orig/src/interface/interface_driver.c
++++ libvirt-1.3.0/src/interface/interface_driver.c
@@ -30,8 +30,15 @@ interfaceRegister(void)
if (netcfIfaceRegister() == 0)
return 0;
@@ -181,10 +181,10 @@
if (udevIfaceRegister() == 0)
return 0;
#endif /* WITH_UDEV */
-Index: libvirt-1.2.21/m4/virt-netcontrol.m4
+Index: libvirt-1.3.0/m4/virt-netcontrol.m4
===================================================================
--- /dev/null
-+++ libvirt-1.2.21/m4/virt-netcontrol.m4
++++ libvirt-1.3.0/m4/virt-netcontrol.m4
@@ -0,0 +1,35 @@
+dnl The libnetcontrol library
+dnl
++++++ libvirtd-defaults.patch ++++++
--- /var/tmp/diff_new_pack.bVJOU1/_old 2016-01-01 19:50:15.000000000 +0100
+++ /var/tmp/diff_new_pack.bVJOU1/_new 2016-01-01 19:50:15.000000000 +0100
@@ -1,7 +1,7 @@
-Index: libvirt-1.2.21/daemon/libvirtd.conf
+Index: libvirt-1.3.0/daemon/libvirtd.conf
===================================================================
---- libvirt-1.2.21.orig/daemon/libvirtd.conf
-+++ libvirt-1.2.21/daemon/libvirtd.conf
+--- libvirt-1.3.0.orig/daemon/libvirtd.conf
++++ libvirt-1.3.0/daemon/libvirtd.conf
@@ -18,8 +18,8 @@
# It is necessary to setup a CA and issue server certificates before
# using this capability.
@@ -13,10 +13,10 @@
# Listen for unencrypted TCP connections on the public TCP/IP port.
# NB, must pass the --listen flag to the libvirtd process for this to
-Index: libvirt-1.2.21/daemon/libvirtd-config.c
+Index: libvirt-1.3.0/daemon/libvirtd-config.c
===================================================================
---- libvirt-1.2.21.orig/daemon/libvirtd-config.c
-+++ libvirt-1.2.21/daemon/libvirtd-config.c
+--- libvirt-1.3.0.orig/daemon/libvirtd-config.c
++++ libvirt-1.3.0/daemon/libvirtd-config.c
@@ -242,7 +242,7 @@ daemonConfigNew(bool privileged ATTRIBUT
if (VIR_ALLOC(data) < 0)
return NULL;
@@ -26,10 +26,10 @@
data->listen_tcp = 0;
if (VIR_STRDUP(data->tls_port, LIBVIRTD_TLS_PORT) < 0 ||
-Index: libvirt-1.2.21/daemon/test_libvirtd.aug.in
+Index: libvirt-1.3.0/daemon/test_libvirtd.aug.in
===================================================================
---- libvirt-1.2.21.orig/daemon/test_libvirtd.aug.in
-+++ libvirt-1.2.21/daemon/test_libvirtd.aug.in
+--- libvirt-1.3.0.orig/daemon/test_libvirtd.aug.in
++++ libvirt-1.3.0/daemon/test_libvirtd.aug.in
@@ -2,7 +2,7 @@ module Test_libvirtd =
::CONFIG::
++++++ libvirtd-init-script.patch ++++++
--- /var/tmp/diff_new_pack.bVJOU1/_old 2016-01-01 19:50:15.000000000 +0100
+++ /var/tmp/diff_new_pack.bVJOU1/_new 2016-01-01 19:50:15.000000000 +0100
@@ -1,9 +1,9 @@
Adjust libvirtd sysconfig file to conform to SUSE standards
-Index: libvirt-1.2.21/daemon/libvirtd.sysconf
+Index: libvirt-1.3.0/daemon/libvirtd.sysconf
===================================================================
---- libvirt-1.2.21.orig/daemon/libvirtd.sysconf
-+++ libvirt-1.2.21/daemon/libvirtd.sysconf
+--- libvirt-1.3.0.orig/daemon/libvirtd.sysconf
++++ libvirt-1.3.0/daemon/libvirtd.sysconf
@@ -1,16 +1,25 @@
+## Path: System/Virtualization/libvirt
+
++++++ libvirtd-systemd-socket.patch ++++++
--- /var/tmp/diff_new_pack.bVJOU1/_old 2016-01-01 19:50:15.000000000 +0100
+++ /var/tmp/diff_new_pack.bVJOU1/_new 2016-01-01 19:50:15.000000000 +0100
@@ -9,10 +9,10 @@
See bsc#933043
-Index: libvirt-1.2.21/daemon/libvirtd.socket.in
+Index: libvirt-1.3.0/daemon/libvirtd.socket.in
===================================================================
---- libvirt-1.2.21.orig/daemon/libvirtd.socket.in
-+++ libvirt-1.2.21/daemon/libvirtd.socket.in
+--- libvirt-1.3.0.orig/daemon/libvirtd.socket.in
++++ libvirt-1.3.0/daemon/libvirtd.socket.in
@@ -2,10 +2,8 @@
ListenStream=@runstatedir@/libvirt/libvirt-sock
ListenStream=@runstatedir@/libvirt/libvirt-sock-ro
++++++ lxc-wait-after-eth-del.patch ++++++
--- /var/tmp/diff_new_pack.bVJOU1/_old 2016-01-01 19:50:15.000000000 +0100
+++ /var/tmp/diff_new_pack.bVJOU1/_new 2016-01-01 19:50:15.000000000 +0100
@@ -13,11 +13,11 @@
src/lxc/lxc_process.c | 1 +
3 files changed, 4 insertions(+)
-diff --git a/src/lxc/lxc_controller.c b/src/lxc/lxc_controller.c
-index 3e5d2b4..02ef04f 100644
---- a/src/lxc/lxc_controller.c
-+++ b/src/lxc/lxc_controller.c
-@@ -2002,6 +2002,7 @@ static int virLXCControllerDeleteInterfaces(virLXCControllerPtr ctrl)
+Index: libvirt-1.3.0/src/lxc/lxc_controller.c
+===================================================================
+--- libvirt-1.3.0.orig/src/lxc/lxc_controller.c
++++ libvirt-1.3.0/src/lxc/lxc_controller.c
+@@ -2002,6 +2002,7 @@ static int virLXCControllerDeleteInterfa
if (virNetDevVethDelete(ctrl->veths[i]) < 0)
ret = -1;
}
@@ -25,11 +25,11 @@
return ret;
}
-diff --git a/src/lxc/lxc_driver.c b/src/lxc/lxc_driver.c
-index 1a9550e..4c7c28f 100644
---- a/src/lxc/lxc_driver.c
-+++ b/src/lxc/lxc_driver.c
-@@ -4254,6 +4254,7 @@ lxcDomainAttachDeviceNetLive(virConnectPtr conn,
+Index: libvirt-1.3.0/src/lxc/lxc_driver.c
+===================================================================
+--- libvirt-1.3.0.orig/src/lxc/lxc_driver.c
++++ libvirt-1.3.0/src/lxc/lxc_driver.c
+@@ -4254,6 +4254,7 @@ lxcDomainAttachDeviceNetLive(virConnectP
case VIR_DOMAIN_NET_TYPE_BRIDGE:
case VIR_DOMAIN_NET_TYPE_NETWORK:
ignore_value(virNetDevVethDelete(veth));
@@ -37,7 +37,7 @@
break;
case VIR_DOMAIN_NET_TYPE_DIRECT:
-@@ -4681,6 +4682,7 @@ lxcDomainDetachDeviceNetLive(virDomainObjPtr vm,
+@@ -4681,6 +4682,7 @@ lxcDomainDetachDeviceNetLive(virDomainOb
virDomainAuditNet(vm, detach, NULL, "detach", false);
goto cleanup;
}
@@ -45,11 +45,11 @@
break;
/* It'd be nice to support this, but with macvlan
-diff --git a/src/lxc/lxc_process.c b/src/lxc/lxc_process.c
-index 57e3880..8967de8 100644
---- a/src/lxc/lxc_process.c
-+++ b/src/lxc/lxc_process.c
-@@ -221,6 +221,7 @@ static void virLXCProcessCleanup(virLXCDriverPtr driver,
+Index: libvirt-1.3.0/src/lxc/lxc_process.c
+===================================================================
+--- libvirt-1.3.0.orig/src/lxc/lxc_process.c
++++ libvirt-1.3.0/src/lxc/lxc_process.c
+@@ -221,6 +221,7 @@ static void virLXCProcessCleanup(virLXCD
}
networkReleaseActualDevice(vm->def, iface);
}
@@ -57,6 +57,3 @@
virDomainConfVMNWFilterTeardown(vm);
---
-2.1.4
-
++++++ ppc64le-canonical-name.patch ++++++
--- /var/tmp/diff_new_pack.bVJOU1/_old 2016-01-01 19:50:15.000000000 +0100
+++ /var/tmp/diff_new_pack.bVJOU1/_new 2016-01-01 19:50:15.000000000 +0100
@@ -2,10 +2,10 @@
See bnc#894956
-Index: libvirt-1.2.21/src/util/virarch.c
+Index: libvirt-1.3.0/src/util/virarch.c
===================================================================
---- libvirt-1.2.21.orig/src/util/virarch.c
-+++ libvirt-1.2.21/src/util/virarch.c
+--- libvirt-1.3.0.orig/src/util/virarch.c
++++ libvirt-1.3.0/src/util/virarch.c
@@ -169,6 +169,8 @@ virArch virArchFromHost(void)
arch = VIR_ARCH_I686;
} else if (STREQ(ut.machine, "amd64")) {
++++++ qemu-apparmor-screenshot.patch ++++++
--- /var/tmp/diff_new_pack.bVJOU1/_old 2016-01-01 19:50:15.000000000 +0100
+++ /var/tmp/diff_new_pack.bVJOU1/_new 2016-01-01 19:50:15.000000000 +0100
@@ -1,8 +1,8 @@
-Index: libvirt-1.2.21/examples/apparmor/libvirt-qemu
+Index: libvirt-1.3.0/examples/apparmor/libvirt-qemu
===================================================================
---- libvirt-1.2.21.orig/examples/apparmor/libvirt-qemu
-+++ libvirt-1.2.21/examples/apparmor/libvirt-qemu
-@@ -133,6 +133,9 @@
+--- libvirt-1.3.0.orig/examples/apparmor/libvirt-qemu
++++ libvirt-1.3.0/examples/apparmor/libvirt-qemu
+@@ -152,6 +152,9 @@
/sys/bus/ r,
/sys/class/ r,
++++++ support-managed-pci-xen-driver.patch ++++++
--- /var/tmp/diff_new_pack.bVJOU1/_old 2016-01-01 19:50:15.000000000 +0100
+++ /var/tmp/diff_new_pack.bVJOU1/_new 2016-01-01 19:50:15.000000000 +0100
@@ -8,10 +8,10 @@
src/xenxs/xen_xm.c | 28 +++++++++++++++++++++++++++-
2 files changed, 35 insertions(+), 15 deletions(-)
-Index: libvirt-1.2.21/src/xenconfig/xen_common.c
+Index: libvirt-1.3.0/src/xenconfig/xen_common.c
===================================================================
---- libvirt-1.2.21.orig/src/xenconfig/xen_common.c
-+++ libvirt-1.2.21/src/xenconfig/xen_common.c
+--- libvirt-1.3.0.orig/src/xenconfig/xen_common.c
++++ libvirt-1.3.0/src/xenconfig/xen_common.c
@@ -403,6 +403,8 @@ xenParsePCI(virConfPtr conf, virDomainDe
{
virConfValuePtr list = virConfGetValue(conf, "pci");
@@ -66,10 +66,10 @@
hostdev->source.subsys.type = VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_PCI;
hostdev->source.subsys.u.pci.addr.domain = domainID;
hostdev->source.subsys.u.pci.addr.bus = busID;
-Index: libvirt-1.2.21/src/xenconfig/xen_sxpr.c
+Index: libvirt-1.3.0/src/xenconfig/xen_sxpr.c
===================================================================
---- libvirt-1.2.21.orig/src/xenconfig/xen_sxpr.c
-+++ libvirt-1.2.21/src/xenconfig/xen_sxpr.c
+--- libvirt-1.3.0.orig/src/xenconfig/xen_sxpr.c
++++ libvirt-1.3.0/src/xenconfig/xen_sxpr.c
@@ -999,6 +999,7 @@ xenParseSxprPCI(virDomainDefPtr def,
int busID;
int slotID;
++++++ suse-qemu-conf.patch ++++++
--- /var/tmp/diff_new_pack.bVJOU1/_old 2016-01-01 19:50:15.000000000 +0100
+++ /var/tmp/diff_new_pack.bVJOU1/_new 2016-01-01 19:50:15.000000000 +0100
@@ -1,7 +1,7 @@
-Index: libvirt-1.2.21/src/qemu/qemu.conf
+Index: libvirt-1.3.0/src/qemu/qemu.conf
===================================================================
---- libvirt-1.2.21.orig/src/qemu/qemu.conf
-+++ libvirt-1.2.21/src/qemu/qemu.conf
+--- libvirt-1.3.0.orig/src/qemu/qemu.conf
++++ libvirt-1.3.0/src/qemu/qemu.conf
@@ -201,11 +201,20 @@
# isolation, but it cannot appear in a list of drivers.
#
++++++ systemd-service-xen.patch ++++++
--- /var/tmp/diff_new_pack.bVJOU1/_old 2016-01-01 19:50:15.000000000 +0100
+++ /var/tmp/diff_new_pack.bVJOU1/_new 2016-01-01 19:50:15.000000000 +0100
@@ -1,7 +1,7 @@
-Index: libvirt-1.2.21/daemon/libvirtd.service.in
+Index: libvirt-1.3.0/daemon/libvirtd.service.in
===================================================================
---- libvirt-1.2.21.orig/daemon/libvirtd.service.in
-+++ libvirt-1.2.21/daemon/libvirtd.service.in
+--- libvirt-1.3.0.orig/daemon/libvirtd.service.in
++++ libvirt-1.3.0/daemon/libvirtd.service.in
@@ -7,6 +7,7 @@ After=iscsid.service
After=apparmor.service
After=local-fs.target
++++++ virt-aa-helper-rw-mounts.patch ++++++
--- /var/tmp/diff_new_pack.bVJOU1/_old 2016-01-01 19:50:15.000000000 +0100
+++ /var/tmp/diff_new_pack.bVJOU1/_new 2016-01-01 19:50:15.000000000 +0100
@@ -15,10 +15,10 @@
src/security/virt-aa-helper.c | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
-diff --git a/src/security/virt-aa-helper.c b/src/security/virt-aa-helper.c
-index 5de56e5..a2d7226 100644
---- a/src/security/virt-aa-helper.c
-+++ b/src/security/virt-aa-helper.c
+Index: libvirt-1.3.0/src/security/virt-aa-helper.c
+===================================================================
+--- libvirt-1.3.0.orig/src/security/virt-aa-helper.c
++++ libvirt-1.3.0/src/security/virt-aa-helper.c
@@ -1127,7 +1127,10 @@ get_files(vahControl * ctl)
ctl->def->fss[i]->src) {
virDomainFSDefPtr fs = ctl->def->fss[i];
@@ -31,6 +31,3 @@
goto cleanup;
}
}
---
-2.1.4
-
++++++ virtlockd-init-script.patch ++++++
--- /var/tmp/diff_new_pack.bVJOU1/_old 2016-01-01 19:50:15.000000000 +0100
+++ /var/tmp/diff_new_pack.bVJOU1/_new 2016-01-01 19:50:15.000000000 +0100
@@ -1,9 +1,9 @@
Adjust virtlockd init files to conform to SUSE standards
-Index: libvirt-1.2.21/src/locking/virtlockd.sysconf
+Index: libvirt-1.3.0/src/locking/virtlockd.sysconf
===================================================================
---- libvirt-1.2.21.orig/src/locking/virtlockd.sysconf
-+++ libvirt-1.2.21/src/locking/virtlockd.sysconf
+--- libvirt-1.3.0.orig/src/locking/virtlockd.sysconf
++++ libvirt-1.3.0/src/locking/virtlockd.sysconf
@@ -1,3 +1,7 @@
+## Path: System/Virtualization/virtlockd
+
@@ -12,10 +12,10 @@
#
# Pass extra arguments to virtlockd
#VIRTLOCKD_ARGS=
-Index: libvirt-1.2.21/src/locking/virtlockd.init.in
+Index: libvirt-1.3.0/src/locking/virtlockd.init.in
===================================================================
---- libvirt-1.2.21.orig/src/locking/virtlockd.init.in
-+++ libvirt-1.2.21/src/locking/virtlockd.init.in
+--- libvirt-1.3.0.orig/src/locking/virtlockd.init.in
++++ libvirt-1.3.0/src/locking/virtlockd.init.in
@@ -4,12 +4,14 @@
# http://www.linux-foundation.org/spec//booksets/LSB-Core-generic/LSB-Core-ge…
#
++++++ virtlogd-init-script.patch ++++++
Adjust virtlogd init files to conform to SUSE standards
Index: libvirt-1.3.0/src/logging/virtlogd.init.in
===================================================================
--- libvirt-1.3.0.orig/src/logging/virtlogd.init.in
+++ libvirt-1.3.0/src/logging/virtlogd.init.in
@@ -4,12 +4,14 @@
# http://www.linux-foundation.org/spec//booksets/LSB-Core-generic/LSB-Core-ge…
#
### BEGIN INIT INFO
-# Provides: virtlogd
-# Default-Start:
-# Default-Stop: 0 1 2 3 4 5 6
+# Provides: virtlogd
+# Required-Start: $network $remote_fs
+# Default-Start: 3 5
+# Required-Stop: $network $remote_fs
+# Default-Stop: 0 1 2 4 6
# Short-Description: virtual machine log manager
-# Description: This is a daemon for managing logs
-# of virtual machine consoles
+# Description: This is a daemon for managing logs
+# of virtual machine consoles
### END INIT INFO
# the following is chkconfig init header
@@ -24,35 +26,32 @@
# pidfile: @localstatedir@/run/virtlogd.pid
#
-# Source function library.
-. @sysconfdir@/rc.d/init.d/functions
+. @sysconfdir@/rc.status
+rc_reset
SERVICE=virtlogd
-PROCESS=virtlogd
+PROCESS=@sbindir@/virtlogd
PIDFILE=@localstatedir@/run/$SERVICE.pid
VIRTLOGD_ARGS=
test -f @sysconfdir@/sysconfig/virtlogd && . @sysconfdir@/sysconfig/virtlogd
-RETVAL=0
start() {
- echo -n $"Starting $SERVICE daemon: "
- daemon --pidfile $PIDFILE --check $SERVICE $PROCESS --daemon $VIRTLOGD_ARGS
- RETVAL=$?
- echo
- [ $RETVAL -eq 0 ] && touch @localstatedir@/log/subsys/$SERVICE
+ echo -n $"Starting $SERVICE "
+ test -d $PIDDIR || mkdir -p $PIDDIR
+ startproc -p $PIDFILE $PROCESS --pid-file $PIDFILE --daemon $VIRTLOGD_ARGS
+ rc_status -v
}
stop() {
- echo -n $"Stopping $SERVICE daemon: "
+ echo -n $"Stopping $SERVICE "
- killproc -p $PIDFILE $PROCESS
+ killproc -p $PIDFILE $PROCESS > /dev/null 2>&1
RETVAL=$?
- echo
+ rc_status -v
if [ $RETVAL -eq 0 ]; then
- rm -f @localstatedir@/log/subsys/$SERVICE
rm -f $PIDFILE
fi
}
@@ -66,9 +65,7 @@ reload() {
echo -n $"Reloading $SERVICE configuration: "
killproc -p $PIDFILE $PROCESS -USR1
- RETVAL=$?
- echo
- return $RETVAL
+ rc_status
}
# See how we were called.
@@ -77,18 +74,20 @@ case "$1" in
$1
;;
status)
- status -p $PIDFILE $PROCESS
- RETVAL=$?
+ echo -n "Checking status of $SERVICE "
+ checkproc $PROCESS
+ rc_status -v
;;
force-reload)
reload
;;
condrestart|try-restart)
- [ -f @localstatedir@/log/subsys/$SERVICE ] && restart || :
+ $0 status >/dev/null && restart || :
;;
*)
echo $"Usage: $0 {start|stop|status|restart|condrestart|reload|force-reload|try-restart}"
- exit 2
+ rc_failed 2
+ rc_exit
;;
esac
-exit $RETVAL
+rc_exit
Index: libvirt-1.3.0/src/logging/virtlogd.sysconf
===================================================================
--- libvirt-1.3.0.orig/src/logging/virtlogd.sysconf
+++ libvirt-1.3.0/src/logging/virtlogd.sysconf
@@ -1,3 +1,7 @@
+## Path: System/Virtualization/virtlogd
+
+## Type: string
+## Default: ""
#
# Pass extra arguments to virtlogd
#VIRTLOGD_ARGS=
++++++ xen-pv-cdrom.patch ++++++
--- /var/tmp/diff_new_pack.bVJOU1/_old 2016-01-01 19:50:15.000000000 +0100
+++ /var/tmp/diff_new_pack.bVJOU1/_new 2016-01-01 19:50:15.000000000 +0100
@@ -1,7 +1,7 @@
-Index: libvirt-1.2.21/src/xenconfig/xen_sxpr.c
+Index: libvirt-1.3.0/src/xenconfig/xen_sxpr.c
===================================================================
---- libvirt-1.2.21.orig/src/xenconfig/xen_sxpr.c
-+++ libvirt-1.2.21/src/xenconfig/xen_sxpr.c
+--- libvirt-1.3.0.orig/src/xenconfig/xen_sxpr.c
++++ libvirt-1.3.0/src/xenconfig/xen_sxpr.c
@@ -334,7 +334,7 @@ xenParseSxprChar(const char *value,
static int
xenParseSxprDisks(virDomainDefPtr def,
++++++ xen-sxpr-disk-type.patch ++++++
--- /var/tmp/diff_new_pack.bVJOU1/_old 2016-01-01 19:50:15.000000000 +0100
+++ /var/tmp/diff_new_pack.bVJOU1/_new 2016-01-01 19:50:15.000000000 +0100
@@ -6,10 +6,10 @@
https://bugzilla.suse.com/show_bug.cgi?id=938228
-Index: libvirt-1.2.21/src/xenconfig/xen_sxpr.c
+Index: libvirt-1.3.0/src/xenconfig/xen_sxpr.c
===================================================================
---- libvirt-1.2.21.orig/src/xenconfig/xen_sxpr.c
-+++ libvirt-1.2.21/src/xenconfig/xen_sxpr.c
+--- libvirt-1.3.0.orig/src/xenconfig/xen_sxpr.c
++++ libvirt-1.3.0/src/xenconfig/xen_sxpr.c
@@ -449,10 +449,11 @@ xenParseSxprDisks(virDomainDefPtr def,
omnipotent, we can revisit this, perhaps stat()'ing
the src file in question */
1
0
Hello community,
here is the log from the commit of package perl-Sys-Virt for openSUSE:Factory checked in at 2016-01-01 19:48:10
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/perl-Sys-Virt (Old)
and /work/SRC/openSUSE:Factory/.perl-Sys-Virt.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "perl-Sys-Virt"
Changes:
--------
--- /work/SRC/openSUSE:Factory/perl-Sys-Virt/perl-Sys-Virt.changes 2015-12-09 22:28:50.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.perl-Sys-Virt.new/perl-Sys-Virt.changes 2016-01-01 19:50:10.000000000 +0100
@@ -1,0 +2,6 @@
+Mon Dec 21 23:39:25 UTC 2015 - jfehlig(a)suse.com
+
+- Update to 1.3.0
+ - Add all new APIs and constants in libvirt 1.3.0
+
+-------------------------------------------------------------------
Old:
----
Sys-Virt-1.2.21.tar.gz
New:
----
Sys-Virt-1.3.0.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ perl-Sys-Virt.spec ++++++
--- /var/tmp/diff_new_pack.nNUI2D/_old 2016-01-01 19:50:11.000000000 +0100
+++ /var/tmp/diff_new_pack.nNUI2D/_new 2016-01-01 19:50:11.000000000 +0100
@@ -17,7 +17,7 @@
Name: perl-Sys-Virt
-Version: 1.2.21
+Version: 1.3.0
Release: 0
%define cpan_name Sys-Virt
Summary: Represent and manage a libvirt hypervisor connection
++++++ Sys-Virt-1.2.21.tar.gz -> Sys-Virt-1.3.0.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Sys-Virt-1.2.21/Changes new/Sys-Virt-1.3.0/Changes
--- old/Sys-Virt-1.2.21/Changes 2015-11-11 14:51:27.000000000 +0100
+++ new/Sys-Virt-1.3.0/Changes 2015-12-10 18:49:15.000000000 +0100
@@ -1,5 +1,9 @@
Revision history for perl module Sys::Virt
+1.3.0 2015-12-10
+
+ - Add VIR_FROM_LOGGING constant
+
1.2.21 2015-11-11
- Add VIR_STORAGE_VOL_DELETE_WITH_SNAPSHOTS constant
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Sys-Virt-1.2.21/META.yml new/Sys-Virt-1.3.0/META.yml
--- old/Sys-Virt-1.2.21/META.yml 2015-11-11 14:51:39.000000000 +0100
+++ new/Sys-Virt-1.3.0/META.yml 2015-12-10 18:49:28.000000000 +0100
@@ -1,7 +1,7 @@
--- #YAML:1.0
name: Sys-Virt
abstract: Extension for the libvirt library
-version: 1.2.21
+version: 1.3.0
author:
- Daniel P. Berrange <dan(a)berrange.com>
license: perl
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Sys-Virt-1.2.21/MYMETA.json new/Sys-Virt-1.3.0/MYMETA.json
--- old/Sys-Virt-1.2.21/MYMETA.json 2015-11-11 14:51:30.000000000 +0100
+++ new/Sys-Virt-1.3.0/MYMETA.json 2015-12-10 18:49:18.000000000 +0100
@@ -42,6 +42,6 @@
}
},
"release_status" : "stable",
- "version" : "v1.2.21",
+ "version" : "v1.3.0",
"x_serialization_backend" : "JSON::PP version 2.27300"
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Sys-Virt-1.2.21/MYMETA.yml new/Sys-Virt-1.3.0/MYMETA.yml
--- old/Sys-Virt-1.2.21/MYMETA.yml 2015-11-11 14:51:30.000000000 +0100
+++ new/Sys-Virt-1.3.0/MYMETA.yml 2015-12-10 18:49:18.000000000 +0100
@@ -24,5 +24,5 @@
Test::Pod::Coverage: '0'
Time::HiRes: '0'
XML::XPath: '0'
-version: v1.2.21
+version: v1.3.0
x_serialization_backend: 'CPAN::Meta::YAML version 0.016'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Sys-Virt-1.2.21/Makefile.PL new/Sys-Virt-1.3.0/Makefile.PL
--- old/Sys-Virt-1.2.21/Makefile.PL 2015-11-11 14:51:27.000000000 +0100
+++ new/Sys-Virt-1.3.0/Makefile.PL 2015-12-10 18:49:15.000000000 +0100
@@ -3,7 +3,7 @@
# See lib/ExtUtils/MakeMaker.pm for details of how to influence
# the contents of the Makefile that is written.
-my $libvirtver = "1.2.21";
+my $libvirtver = "1.3.0";
my $stat = system "pkg-config --atleast-version=$libvirtver libvirt";
die "cannot run pkg-config to check libvirt version" if $stat == -1;
die "libvirt >= $libvirtver is required\n" unless $stat == 0;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Sys-Virt-1.2.21/README new/Sys-Virt-1.3.0/README
--- old/Sys-Virt-1.2.21/README 2015-11-11 14:51:27.000000000 +0100
+++ new/Sys-Virt-1.3.0/README 2015-12-10 18:49:15.000000000 +0100
@@ -7,6 +7,6 @@
The only pre-requisite for this module is libvirt itself. For
installation instructions, consult the INSTALL file.
-The current minimum required version of libvirt is 1.2.21
+The current minimum required version of libvirt is 1.3.0
-- End
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Sys-Virt-1.2.21/Virt.xs new/Sys-Virt-1.3.0/Virt.xs
--- old/Sys-Virt-1.2.21/Virt.xs 2015-11-11 14:51:27.000000000 +0100
+++ new/Sys-Virt-1.3.0/Virt.xs 2015-12-10 18:49:15.000000000 +0100
@@ -8239,6 +8239,7 @@
REGISTER_CONSTANT(VIR_FROM_POLKIT, FROM_POLKIT);
REGISTER_CONSTANT(VIR_FROM_THREAD, FROM_THREAD);
REGISTER_CONSTANT(VIR_FROM_ADMIN, FROM_ADMIN);
+ REGISTER_CONSTANT(VIR_FROM_LOGGING, FROM_LOGGING);
REGISTER_CONSTANT(VIR_ERR_OK, ERR_OK);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Sys-Virt-1.2.21/lib/Sys/Virt/Error.pm new/Sys-Virt-1.3.0/lib/Sys/Virt/Error.pm
--- old/Sys-Virt-1.2.21/lib/Sys/Virt/Error.pm 2015-11-11 14:51:27.000000000 +0100
+++ new/Sys-Virt-1.3.0/lib/Sys/Virt/Error.pm 2015-12-10 18:49:15.000000000 +0100
@@ -386,6 +386,10 @@
The administrative service
+=item Sys::Virt::Error::FROM_LOGGING
+
+The logging service
+
=back
=head2 ERROR CODE CONSTANTS
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Sys-Virt-1.2.21/lib/Sys/Virt.pm new/Sys-Virt-1.3.0/lib/Sys/Virt.pm
--- old/Sys-Virt-1.2.21/lib/Sys/Virt.pm 2015-11-11 14:51:27.000000000 +0100
+++ new/Sys-Virt-1.3.0/lib/Sys/Virt.pm 2015-12-10 18:49:15.000000000 +0100
@@ -78,7 +78,7 @@
use Sys::Virt::DomainSnapshot;
use Sys::Virt::Stream;
-our $VERSION = '1.2.21';
+our $VERSION = '1.3.0';
require XSLoader;
XSLoader::load('Sys::Virt', $VERSION);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Sys-Virt-1.2.21/perl-Sys-Virt.spec new/Sys-Virt-1.3.0/perl-Sys-Virt.spec
--- old/Sys-Virt-1.2.21/perl-Sys-Virt.spec 2015-11-11 14:51:40.000000000 +0100
+++ new/Sys-Virt-1.3.0/perl-Sys-Virt.spec 2015-12-10 18:49:28.000000000 +0100
@@ -1,7 +1,7 @@
# Automatically generated by perl-Sys-Virt.spec.PL
Name: perl-Sys-Virt
-Version: 1.2.21
+Version: 1.3.0
Release: 1%{?dist}%{?extra_release}
Summary: Represent and manage a libvirt hypervisor connection
License: GPLv2+ or Artistic
1
0
Hello community,
here is the log from the commit of package libvirt-python for openSUSE:Factory checked in at 2016-01-01 19:48:09
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/libvirt-python (Old)
and /work/SRC/openSUSE:Factory/.libvirt-python.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "libvirt-python"
Changes:
--------
--- /work/SRC/openSUSE:Factory/libvirt-python/libvirt-python.changes 2015-11-12 19:41:39.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.libvirt-python.new/libvirt-python.changes 2016-01-01 19:50:09.000000000 +0100
@@ -1,0 +2,6 @@
+Mon Dec 21 23:36:17 UTC 2015 - jfehlig(a)suse.com
+
+- Update to 1.3.0
+ - Add all new APIs and constants in libvirt 1.3.0
+
+-------------------------------------------------------------------
Old:
----
libvirt-python-1.2.21.tar.gz
libvirt-python-1.2.21.tar.gz.asc
New:
----
libvirt-python-1.3.0.tar.gz
libvirt-python-1.3.0.tar.gz.asc
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ libvirt-python.spec ++++++
--- /var/tmp/diff_new_pack.Tn6ZYB/_old 2016-01-01 19:50:10.000000000 +0100
+++ /var/tmp/diff_new_pack.Tn6ZYB/_new 2016-01-01 19:50:10.000000000 +0100
@@ -18,7 +18,7 @@
Name: libvirt-python
Url: http://libvirt.org/
-Version: 1.2.21
+Version: 1.3.0
Release: 0
Summary: Library providing a simple virtualization API
License: LGPL-2.1+
++++++ libvirt-python-1.2.21.tar.gz -> libvirt-python-1.3.0.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libvirt-python-1.2.21/ChangeLog new/libvirt-python-1.3.0/ChangeLog
--- old/libvirt-python-1.2.21/ChangeLog 2015-11-04 04:02:29.000000000 +0100
+++ new/libvirt-python-1.3.0/ChangeLog 2015-12-09 10:21:28.000000000 +0100
@@ -1,3 +1,8 @@
+2015-11-24 Pavel Hrdina <phrdina(a)redhat.com>
+
+ Post-release version bump to 1.3.0
+
+
2015-10-31 Pavel Hrdina <phrdina(a)redhat.com>
fix crash introduced by commit 1d39dbaf
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libvirt-python-1.2.21/PKG-INFO new/libvirt-python-1.3.0/PKG-INFO
--- old/libvirt-python-1.2.21/PKG-INFO 2015-11-04 04:02:30.000000000 +0100
+++ new/libvirt-python-1.3.0/PKG-INFO 2015-12-09 10:21:29.000000000 +0100
@@ -1,6 +1,6 @@
Metadata-Version: 1.1
Name: libvirt-python
-Version: 1.2.21
+Version: 1.3.0
Summary: The libvirt virtualization API
Home-page: http://www.libvirt.org
Author: Libvirt Maintainers
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libvirt-python-1.2.21/libvirt-python.spec new/libvirt-python-1.3.0/libvirt-python.spec
--- old/libvirt-python-1.2.21/libvirt-python.spec 2015-11-04 04:02:29.000000000 +0100
+++ new/libvirt-python-1.3.0/libvirt-python.spec 2015-12-09 10:21:28.000000000 +0100
@@ -6,7 +6,7 @@
Summary: The libvirt virtualization API python2 binding
Name: libvirt-python
-Version: 1.2.21
+Version: 1.3.0
Release: 1%{?dist}%{?extra_release}
Source0: http://libvirt.org/sources/python/%{name}-%{version}.tar.gz
Url: http://libvirt.org
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libvirt-python-1.2.21/setup.py new/libvirt-python-1.3.0/setup.py
--- old/libvirt-python-1.2.21/setup.py 2015-11-04 04:02:11.000000000 +0100
+++ new/libvirt-python-1.3.0/setup.py 2015-12-09 10:19:07.000000000 +0100
@@ -311,7 +311,7 @@
_c_modules, _py_modules = get_module_lists()
setup(name = 'libvirt-python',
- version = '1.2.21',
+ version = '1.3.0',
url = 'http://www.libvirt.org',
maintainer = 'Libvirt Maintainers',
maintainer_email = 'libvir-list(a)redhat.com',
1
0
Hello community,
here is the log from the commit of package homerun for openSUSE:Factory checked in at 2016-01-01 19:48:07
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/homerun (Old)
and /work/SRC/openSUSE:Factory/.homerun.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "homerun"
Changes:
--------
--- /work/SRC/openSUSE:Factory/homerun/homerun.changes 2014-08-27 07:47:00.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.homerun.new/homerun.changes 2016-01-01 19:50:08.000000000 +0100
@@ -1,0 +2,13 @@
+Mon Dec 28 13:33:00 UTC 2015 - wbauer(a)tmo.at
+
+- Fix build for Tumbleweed by owning /usr/share/kde4/plasma/plasmoids/
+
+-------------------------------------------------------------------
+Thu Dec 24 10:29:13 UTC 2015 - wbauer(a)tmo.at
+
+- Added disable-favorite-places.patch: remove favorite places,
+ they cause severe problems with newer kdelibs4 versions, like
+ places disappearing, the bookmarks.xml file growing indefinitely,
+ and/or even freezing the complete desktop (kde#349850, kde#352950)
+
+-------------------------------------------------------------------
New:
----
disable-favorite-places.patch
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ homerun.spec ++++++
--- /var/tmp/diff_new_pack.dRKYgq/_old 2016-01-01 19:50:09.000000000 +0100
+++ /var/tmp/diff_new_pack.dRKYgq/_new 2016-01-01 19:50:09.000000000 +0100
@@ -28,6 +28,8 @@
# PATCH-FIX-UPSTREAM kde4_includes.patch -- install headers into kde4 includes directory, otherwise they are not found and used if not in
# standard system dir
Patch0: kde4_includes.patch
+# PATCH-FIX-OPENSUSE disable-favorite-places.patch kde#349850, kde#352950 -- remove favorite places, they cause severe problems with newer kdelibs4 versions
+Patch1: disable-favorite-places.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-build
Url: http://userbase.kde.org/Homerun
BuildRequires: kdebase4-workspace-devel >= 4.10.0
@@ -77,6 +79,7 @@
%prep
%setup -q
%patch0 -p1
+%patch1 -p1
# Until broken autotests are fixed, kde#332031
sed -i '/^add_subdirectory(tests)/d' CMakeLists.txt
@@ -101,6 +104,7 @@
%{_kde4_modulesdir}/imports/org/kde/homerun
%{_kde4_servicesdir}/*.desktop
%{_kde4_servicetypesdir}/*.desktop
+%dir %{_kde4_appsdir}/plasma/plasmoids
%{_kde4_appsdir}/plasma/plasmoids/org.kde.homerun
%{_kde4_appsdir}/homerun
%{_kde4_configdir}/homerunrc
++++++ disable-favorite-places.patch ++++++
diff --git a/components/sourceregistry.cpp b/components/sourceregistry.cpp
index d2df116..e63cd50 100644
--- a/components/sourceregistry.cpp
+++ b/components/sourceregistry.cpp
@@ -268,7 +268,9 @@ SourceRegistry::SourceRegistry(QObject *parent)
d->m_availableSourcesModel = new AvailableSourcesModel(d->m_sourceInfos, this);
d->m_favoriteModels.insert("app", new FavoriteAppsModel(this));
+#if 0
d->m_favoriteModels.insert("place", new FavoritePlacesModel(this));
+#endif
d->registerSource("InstalledApps", new InstalledAppsSource(this),
i18n("Installed Applications"),
1
0
Hello community,
here is the log from the commit of package gradle for openSUSE:Factory checked in at 2016-01-01 19:48:05
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/gradle (Old)
and /work/SRC/openSUSE:Factory/.gradle.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "gradle"
Changes:
--------
--- /work/SRC/openSUSE:Factory/gradle/gradle.changes 2015-04-16 14:14:13.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.gradle.new/gradle.changes 2016-01-01 19:50:07.000000000 +0100
@@ -1,0 +2,5 @@
+Mon Dec 28 13:56:20 UTC 2015 - mailaender(a)opensuse.org
+
+- Update to 2.10
+
+-------------------------------------------------------------------
Old:
----
gradle-2.3-src.zip
New:
----
gradle-2.10-src.zip
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ gradle.spec ++++++
--- /var/tmp/diff_new_pack.8p0ssd/_old 2016-01-01 19:50:08.000000000 +0100
+++ /var/tmp/diff_new_pack.8p0ssd/_new 2016-01-01 19:50:08.000000000 +0100
@@ -17,7 +17,7 @@
Name: gradle
-Version: 2.3
+Version: 2.10
Release: 0
Summary: Groovy-based build system
License: Apache-2.0
1
0
Hello community,
here is the log from the commit of package hylafax+ for openSUSE:Factory checked in at 2016-01-01 19:48:04
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/hylafax+ (Old)
and /work/SRC/openSUSE:Factory/.hylafax+.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "hylafax+"
Changes:
--------
--- /work/SRC/openSUSE:Factory/hylafax+/hylafax+.changes 2015-12-21 12:04:16.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.hylafax+.new/hylafax+.changes 2016-01-01 19:50:05.000000000 +0100
@@ -1,0 +2,5 @@
+Wed Dec 16 13:41:18 CET 2015 - pth(a)suse.de
+
+- the proper name of the symlink is rchylafax.
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ hylafax+.spec ++++++
--- /var/tmp/diff_new_pack.c21kWM/_old 2016-01-01 19:50:06.000000000 +0100
+++ /var/tmp/diff_new_pack.c21kWM/_new 2016-01-01 19:50:06.000000000 +0100
@@ -218,7 +218,6 @@
install -p -m 644 %{SOURCE4} %{buildroot}%{_unitdir}/hylafax-hfaxd.service
install -p -m 644 %{SOURCE5} %{buildroot}%{_unitdir}/hylafax-faxq.service
install -p -m 644 %{SOURCE6} %{buildroot}%{_unitdir}/hylafax-faxgetty-ttyS0.service
-
%endif
%if 0%{?sles_version} < 1200
@@ -234,7 +233,7 @@
%endif
%if 0%{?sles_version} >= 1200 || 0%{?suse_version} >= 1210
- ln -s %{_sbindir}/service %{buildroot}%{_sbindir}/rchylafax+
+ ln -s %{_sbindir}/service %{buildroot}%{_sbindir}/rchylafax
%endif
# not being executable is rather unconvenient
@@ -350,7 +349,7 @@
%{_sbindir}/rchylafax-faxq
%{_sbindir}/rchylafax-hfaxd
%if 0%{?sles_version} >= 1200 || 0%{?suse_version} >= 1210
-%{_sbindir}/rchylafax+
+%{_sbindir}/rchylafax
%endif
%endif
%defattr(-,uucp,uucp,-)
1
0
Hello community,
here is the log from the commit of package uhd for openSUSE:Factory checked in at 2016-01-01 19:48:02
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/uhd (Old)
and /work/SRC/openSUSE:Factory/.uhd.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "uhd"
Changes:
--------
--- /work/SRC/openSUSE:Factory/uhd/uhd.changes 2015-10-20 00:05:05.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.uhd.new/uhd.changes 2016-01-01 19:50:04.000000000 +0100
@@ -1,0 +2,6 @@
+Sun Dec 27 22:45:13 UTC 2015 - mardnh(a)gmx.de
+
+- Add patch for correctly installing the C-API header files
+ * 0003-uhd-C-API-wrapper-fix-commit-30f87afcba71a07.patch
+
+-------------------------------------------------------------------
New:
----
0003-uhd-C-API-wrapper-fix-commit-30f87afcba71a07.patch
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ uhd.spec ++++++
--- /var/tmp/diff_new_pack.HbGaTI/_old 2016-01-01 19:50:05.000000000 +0100
+++ /var/tmp/diff_new_pack.HbGaTI/_new 2016-01-01 19:50:05.000000000 +0100
@@ -28,6 +28,7 @@
Url: http://ettus-apps.sourcerepo.com/redmine/ettus/projects/uhd/wiki
Source0: http://files.ettus.com/binaries/uhd_stable/uhd_%{src_ver}-release/uhd-%{ver…
Source1: http://files.ettus.com/binaries/images/uhd-images_%{img_ver}-release.tar.gz
+Patch0: 0003-uhd-C-API-wrapper-fix-commit-30f87afcba71a07.patch
BuildRequires: boost-devel >= 1.36
BuildRequires: cmake >= 2.6
BuildRequires: docutils
@@ -36,9 +37,9 @@
BuildRequires: gcc-c++
BuildRequires: orc
BuildRequires: pkg-config
+BuildRequires: python-Mako >= 0.4
BuildRequires: python-cheetah >= 2.0.0
BuildRequires: python-devel >= 2.6
-BuildRequires: python-Mako >= 0.4
BuildRequires: udev
BuildRequires: pkgconfig(libusb-1.0)
BuildRequires: pkgconfig(libxml-2.0)
@@ -109,7 +110,7 @@
%prep
%setup -q
-#patch0 -p1
+%patch0 -p2
# remove buildtime from documentation
echo "HTML_TIMESTAMP = NO" >> docs/Doxyfile.in
++++++ 0003-uhd-C-API-wrapper-fix-commit-30f87afcba71a07.patch ++++++
>From fee054dfaf9cf4dc389c8b35ee28c45c2dc63952 Mon Sep 17 00:00:00 2001
From: Moritz Fischer <moritz.fischer(a)ettus.com>
Date: Wed, 23 Sep 2015 15:16:10 -0700
Subject: [PATCH 3/3] uhd: C API wrapper, fix commit 30f87afcba71a07
The uhd/usrp_clock/usrp_clock.h doesn't get properly installed,
which isn't a big deal if examples are built in tree, but if
someone attempts to build a C application against libuhd,
uhd.h pulls in <uhd/usrp/usrp_clock.h> and fails as follows:
fatal error: uhd/usrp_clock/usrp_clock.h: No such file or directory
Signed-off-by: Moritz Fischer <moritz.fischer(a)ettus.com>
---
host/include/uhd/usrp_clock/CMakeLists.txt | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/host/include/uhd/usrp_clock/CMakeLists.txt b/host/include/uhd/usrp_clock/CMakeLists.txt
index 518cb77..c8c0e43 100644
--- a/host/include/uhd/usrp_clock/CMakeLists.txt
+++ b/host/include/uhd/usrp_clock/CMakeLists.txt
@@ -24,6 +24,8 @@ UHD_INSTALL(FILES
IF(ENABLE_C_API)
UHD_INSTALL(FILES
- usrp_clock.h
+ usrp_clock.h
+ DESTINATION ${INCLUDE_DIR}/uhd/usrp_clock
+ COMPONENT headers
)
ENDIF(ENABLE_C_API)
--
2.1.4
1
0
Hello community,
here is the log from the commit of package ucommon for openSUSE:Factory checked in at 2016-01-01 19:47:57
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/ucommon (Old)
and /work/SRC/openSUSE:Factory/.ucommon.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "ucommon"
Changes:
--------
--- /work/SRC/openSUSE:Factory/ucommon/ucommon.changes 2015-11-15 12:48:01.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.ucommon.new/ucommon.changes 2016-01-01 19:50:01.000000000 +0100
@@ -1,0 +2,10 @@
+Sun Dec 20 17:38:44 UTC 2015 - mpluskal(a)suse.com
+
+- Update to version 7.0.0
+ * clean new library abi 8.0
+ * atomic typeref system completed, matches tychomt spec
+ * c++11 support completed
+ * deprecated functions and templates removed
+ * deprecated modules (xml, persist) moved to commoncpp
+
+-------------------------------------------------------------------
Old:
----
ucommon-6.6.2.tar.gz
ucommon-6.6.2.tar.gz.sig
New:
----
ucommon-7.0.0.tar.gz
ucommon-7.0.0.tar.gz.sig
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ ucommon.spec ++++++
--- /var/tmp/diff_new_pack.tRl659/_old 2016-01-01 19:50:02.000000000 +0100
+++ /var/tmp/diff_new_pack.tRl659/_new 2016-01-01 19:50:02.000000000 +0100
@@ -21,9 +21,9 @@
Name: ucommon
-Version: 6.6.2
+Version: 7.0.0
Release: 0
-%define lname libucommon7
+%define lname libucommon8
Summary: Runtime library for portable C++ threading and sockets
License: LGPL-3.0+
Group: Development/Libraries/C and C++
@@ -110,12 +110,14 @@
%_bindir/keywait
%_bindir/scrub-files
%_bindir/mdsum
+%_bindir/urlout
%_bindir/pdetach
%_bindir/sockaddr
%_bindir/zerofill
%_mandir/man1/args.*
%_mandir/man1/scrub-files.*
%_mandir/man1/mdsum.*
+%_mandir/man1/urlout.*
%_mandir/man1/pdetach.1*
%_mandir/man1/zerofill.*
%_mandir/man1/sockaddr.*
@@ -125,9 +127,9 @@
%files -n %lname
%defattr(-,root,root)
%doc COPYING COPYING.LESSER COPYRIGHT
-%_libdir/libucommon.so.7*
-%_libdir/libusecure.so.7*
-%_libdir/libcommoncpp.so.7*
+%_libdir/libucommon.so.8*
+%_libdir/libusecure.so.8*
+%_libdir/libcommoncpp.so.8*
%files devel
%defattr(-,root,root)
++++++ ucommon-6.6.2.tar.gz -> ucommon-7.0.0.tar.gz ++++++
++++ 37738 lines of diff (skipped)
1
0
Hello community,
here is the log from the commit of package mate-menu for openSUSE:Factory checked in at 2016-01-01 19:47:54
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/mate-menu (Old)
and /work/SRC/openSUSE:Factory/.mate-menu.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "mate-menu"
Changes:
--------
--- /work/SRC/openSUSE:Factory/mate-menu/mate-menu.changes 2015-07-03 00:09:52.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.mate-menu.new/mate-menu.changes 2016-01-01 19:49:59.000000000 +0100
@@ -1,0 +2,6 @@
+Sun Dec 20 16:45:13 UTC 2015 - sor.alexei(a)meowr.ru
+
+- Update to 5.6.6.
+- Rebase 0001-execute-fix.patch and 0002-yast2-software.patch.
+
+-------------------------------------------------------------------
Old:
----
mate-menu-5.6.5a.tar.gz
New:
----
mate-menu-5.6.6.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ mate-menu.spec ++++++
--- /var/tmp/diff_new_pack.gssboE/_old 2016-01-01 19:50:00.000000000 +0100
+++ /var/tmp/diff_new_pack.gssboE/_new 2016-01-01 19:50:00.000000000 +0100
@@ -17,22 +17,22 @@
%define _name mate_menu
-%define _rev b130be3ff9ad
+%define _rev 37bbd306cb0c
Name: mate-menu
-Version: 5.6.5a
+Version: 5.6.6
Release: 0
Summary: Advanced MATE menu
License: GPL-2.0+
Group: System/GUI/Other
Url: https://bitbucket.org/ubuntu-mate/mate-tweak
Source: https://bitbucket.org/ubuntu-mate/%{name}/get/%{version}.tar.gz#/%{name}-%{…
-# PATCH-FIX-UPSTREAM 0001-execute-fix.patch p.drouand(a)gmail.com -- Fix intends in mate-menu execute.py
+# PATCH-FIX-UPSTREAM 0001-execute-fix.patch p.drouand(a)gmail.com -- Fix intends in mate-menu execute.py.
Patch0: 0001-execute-fix.patch
-# PATCH-FIX-UPSTREAM 0001-recent-icon.patch p.drouand(a)gmail.com -- mate-folder.png icon doesn't exits in icon themes, use folder.png
+# PATCH-FIX-UPSTREAM 0001-recent-icon.patch p.drouand(a)gmail.com -- mate-folder.png icon doesn't exist in icon themes, use folder.png.
Patch1: 0001-recent-icon.patch
# PATCH-FIX-OPENSUSE 0002-xterm-no-symlink-dep.patch sor.alexei(a)meowr.ru -- Remove dependency on x-terminal-emulator Debian's symlink.
Patch2: 0002-xterm-no-symlink-dep.patch
-# PATCH-FEATURE-OPENSUSE 0002-yast2-software.patch sor.alexei(a)meowr.ru -- Add YaST2 and GNOME PackageKit package managers
+# PATCH-FEATURE-OPENSUSE 0002-yast2-software.patch sor.alexei(a)meowr.ru -- Use YaST2 and GNOME PackageKit package managers.
Patch3: 0002-yast2-software.patch
BuildRequires: gobject-introspection-devel
BuildRequires: intltool
@@ -52,7 +52,7 @@
Requires: python-xdg
Requires: python-xlib
Requires: xdg-utils
-Recommends: %{name}-lang = %{version}
+Recommends: %{name}-lang
BuildArch: noarch
%glib2_gsettings_schema_requires
@@ -61,7 +61,7 @@
autosession, and many other features.
This menu originated in the Linux Mint distribution and has
-been ported to other distros that ship the MATE Desktop
+been ported to other distributions that ship the MATE Desktop
Environment.
%lang_package
++++++ 0001-execute-fix.patch ++++++
--- /var/tmp/diff_new_pack.gssboE/_old 2016-01-01 19:50:00.000000000 +0100
+++ /var/tmp/diff_new_pack.gssboE/_new 2016-01-01 19:50:01.000000000 +0100
@@ -1,12 +1,11 @@
-diff -aur a/mate_menu/execute.py b/mate_menu/execute.py
--- a/mate_menu/execute.py
+++ b/mate_menu/execute.py
-@@ -50,7 +50,7 @@
+@@ -50,7 +50,7 @@ def Execute( cmd , commandCwd=None):
except Exception, detail:
print detail
return False
- cmd = cmd.split()
+ cmd = cmd.split()
cmd = RemoveArgs(cmd)
-
+
try:
++++++ 0002-yast2-software.patch ++++++
--- /var/tmp/diff_new_pack.gssboE/_old 2016-01-01 19:50:01.000000000 +0100
+++ /var/tmp/diff_new_pack.gssboE/_new 2016-01-01 19:50:01.000000000 +0100
@@ -1,10 +1,9 @@
-diff -aur a/mate_menu/plugins/system_management.py b/mate_menu/plugins/system_management.py
--- a/mate_menu/plugins/system_management.py
+++ b/mate_menu/plugins/system_management.py
-@@ -142,13 +142,13 @@
+@@ -142,13 +142,13 @@ class pluginclass( object ):
def do_standard_items( self ):
- if ( self.showPackageManager == True ):
+ if ( self.showPackageManager == True ):
- if os.path.exists("/usr/bin/software-center") or os.path.exists("/usr/bin/synaptic-pkexec"):
- if os.path.exists("/usr/bin/synaptic-pkexec"):
- Button2 = easyButton("synaptic", self.iconsize, [_("Package Manager")], -1, -1 )
++++++ mate-menu-5.6.5a.tar.gz -> mate-menu-5.6.6.tar.gz ++++++
++++ 14052 lines of diff (skipped)
1
0
Hello community,
here is the log from the commit of package smtube for openSUSE:Factory checked in at 2016-01-01 19:47:52
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/smtube (Old)
and /work/SRC/openSUSE:Factory/.smtube.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "smtube"
Changes:
--------
--- /work/SRC/openSUSE:Factory/smtube/smtube.changes 2015-10-02 09:23:34.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.smtube.new/smtube.changes 2016-01-01 19:49:58.000000000 +0100
@@ -1,0 +2,7 @@
+Sun Dec 27 12:44:41 UTC 2015 - cornelis(a)solcon.nl
+
+- Update to 15.11.0:
+ * Fix for VEVO videos.
+ * Add support for YouTube live streams.
+
+-------------------------------------------------------------------
Old:
----
smtube-15.9.0.tar.bz2
New:
----
smtube-15.11.0.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ smtube.spec ++++++
--- /var/tmp/diff_new_pack.81HVR0/_old 2016-01-01 19:49:59.000000000 +0100
+++ /var/tmp/diff_new_pack.81HVR0/_new 2016-01-01 19:49:59.000000000 +0100
@@ -1,8 +1,8 @@
#
# spec file for package smtube
#
-# Copyright (c) 2012 Pascal Bleser <pascal.bleser(a)opensuse.org>
# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2012 Pascal Bleser <pascal.bleser(a)opensuse.org>
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -16,13 +16,14 @@
# Please submit bugfixes or comments via http://bugs.opensuse.org/
#
+
Name: smtube
-Version: 15.9.0
+Version: 15.11.0
Release: 0
Summary: Small Youtube Browser
License: GPL-2.0+
Group: Productivity/Multimedia/Video/Players
-URL: http://smtube.sourceforge.net/
+Url: http://smtube.sourceforge.net/
Source0: http://sourceforge.net/projects/smtube/files/SMTube/%{version}/smtube-%{ver…
# Fix 'File is compiled without RPM_OPT_FLAGS'
Patch0: %{name}-src_%{name}.pro.patch
++++++ smtube-15.9.0.tar.bz2 -> smtube-15.11.0.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/smtube-15.9.0/Changelog new/smtube-15.11.0/Changelog
--- old/smtube-15.9.0/Changelog 2015-09-25 23:33:23.000000000 +0200
+++ new/smtube-15.11.0/Changelog 2015-11-18 01:21:40.000000000 +0100
@@ -1,3 +1,16 @@
+Version 15.11:
+
+(2015-11-17)
+ * Add support for YouTube live streams.
+ * Add the Hebrew translation.
+
+(2015-11-10)
+ * Fix the signature code.
+
+(2015-11-04)
+ * Open m3u8 URLs.
+
+
Version 15.9:
(2015-09-24)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/smtube-15.9.0/Release_notes.txt new/smtube-15.11.0/Release_notes.txt
--- old/smtube-15.9.0/Release_notes.txt 2015-09-25 23:33:23.000000000 +0200
+++ new/smtube-15.11.0/Release_notes.txt 2015-11-18 01:21:40.000000000 +0100
@@ -1,10 +1,10 @@
-Version 15.9
+Version 15.11
+ * Fix for VEVO videos.
+ * Add support for YouTube live streams.
+Version 15.9
* Fix the 'can't find URL' error when using Qt 5.
-
Version 15.8
-
* Improve support for VEVO videos.
* Possibility to play the audio only.
-
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/smtube-15.9.0/create_deb.sh new/smtube-15.11.0/create_deb.sh
--- old/smtube-15.9.0/create_deb.sh 2015-09-27 23:24:38.000000000 +0200
+++ new/smtube-15.11.0/create_deb.sh 2015-11-18 23:47:42.000000000 +0100
@@ -4,7 +4,7 @@
cp debian-rvm/changelog-orig debian-rvm/changelog
./get_svn_revision.sh
-#dch -v 15.9.0-`cat svn_revision` "New version"
+#dch -v 15.11.0-`cat svn_revision` "New version"
#dpkg-buildpackage -rfakeroot
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/smtube-15.9.0/debian-rvm/changelog-orig new/smtube-15.11.0/debian-rvm/changelog-orig
--- old/smtube-15.9.0/debian-rvm/changelog-orig 2015-09-27 23:24:38.000000000 +0200
+++ new/smtube-15.11.0/debian-rvm/changelog-orig 2015-11-18 23:47:42.000000000 +0100
@@ -1,3 +1,10 @@
+smtube (15.11.0) precise; urgency=low
+
+ * Fix for VEVO videos.
+ * Add support for YouTube live streams.
+
+ -- Ricardo Villalba <rvm(a)users.sourceforge.net> Wed, 18 Nov 2015 23:43:18 +0100
+
smtube (15.9.0) precise; urgency=low
* Fix the 'can't find URL' error when using Qt 5.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/smtube-15.9.0/smtube.desktop new/smtube-15.11.0/smtube.desktop
--- old/smtube-15.9.0/smtube.desktop 2015-09-27 23:14:42.000000000 +0200
+++ new/smtube-15.11.0/smtube.desktop 2015-11-18 02:01:10.000000000 +0100
@@ -1,75 +1,111 @@
[Desktop Entry]
Exec=smtube
-Comment=Browse and search from YouTube
-GenericName=Youtube Browser
+Comment=Browse and search videos from YouTube
+GenericName=YouTube Browser for SMPlayer
Icon=smtube
-Name=YouTube Browser for SMPlayer
+Name=SMTube
Type=Application
Categories=Qt;KDE;AudioVideo;Player;Video;
# Translations
-Comment[gl]=Navegar e buscar en YouTube
-GenericName[gl]=Navegador de YouTube
-Name[gl]=Navegador de YouTube para SMPlayer
-Icon[gl]=smtube
+Comment[am]=ከ ዩቲዩብ መቃኛ እና መፈጊያ
+GenericName[am]=ከ ዩቲዩብ መቃኛ ለ SMP ማጫወቻ
+Name[am]=SMTube
+
+Comment[bg]=Прелистване и търсене в YouTube
+GenericName[bg]=YouTube браузър за SMPlayer
+Name[bg]=SMTube
+
+Comment[cs]=Procházet a hledat na YouTube
+GenericName[cs]=Prohlížeč YouTube pro SMPlayer
+Name[cs]=SMTube
-Comment[ms_MY]=Layar dan gelintar Youtube
-GenericName[ms_MY]=Pelayar Youtube
-Name[ms_MY]=Pelayar YouTube untuk SMPlayer
-Icon[ms_MY]=smtube
+Comment[da]=Gennemse og søg fra YouTube
+GenericName[da]=YouTube-browser til SMPlayer
+Name[da]=SMTube
-Comment[pt]=Explorar e pesquisar vídeos no YouTube
-GenericName[pt]=Explorador YouTube
-Name[pt]=Explorador YouTube para o SMPlayer
-Icon[pt]=smtube
+Comment[de]=YouTube durchsuchen
+GenericName[de]=YouTube-Browser für SMPlayer
+Name[de]=SMTube
-Comment[pt_BR]=Navegar e procurar no YouTube
-GenericName[pt_BR]=Navegador do YouTube
-Name[pt_BR]=Navegador do YouTube para o SMPlayer
-Icon[pt_BR]=smtube
+Comment[el]=Περιήγηση και αναζήτηση στο YouTube
+GenericName[el]=Περιηγητής του YouTube για το SMPlayer
+Name[el]=SMTube
-Comment[ru]=Просмотр и поиск по YouTube
-GenericName[ru]=Браузер YouTube
-Name[ru]=Браузер YouTube для SMPlayer
-Icon[ru]=smtube
+Comment[es]=Permite buscar vídeos de YouTube
+GenericName[es]=Buscador de vídeos de YouTube de SMPlayer
+Name[es]=SMTube
+
+Comment[eu]=Nabigatu eta bilatu YouTuben
+GenericName[eu]=YouTube Nabigatzailea SMPlayer-erako
+Name[eu]=SMTube
+
+Comment[fa]=مرور و جست و جو در یوتیوب
+GenericName[fa]=مرورگر یوتیوب برای SMPlayer
+Name[fa]=SMTube
+
+Comment[fr]=Naviguer et chercher sur YouTube
+GenericName[fr]=Navigateur YouTube pour SMPlayer
+Name[fr]=SMTube
+
+Comment[gl]=Navegar e buscar en YouTube
+GenericName[gl]=Navegador de YouTube para SMPlayer
+Name[gl]=SMTube
+
+Comment[he]=עיין וחפש מתוך YouTube
+GenericName[he]=מעלעל YouTube עבור SMPlayer
+Name[he]=SMTube
+
+Comment[hr]=Pregledavajte i pretražujte YouTube
+GenericName[hr]=YouTube preglednik za SMPlayer
+Name[hr]=SMTube
Comment[it]=Naviga e ricerca su YouTube
-GenericName[it]=Navigatore YouTube
-Name[it]=Navigatore YouTube per SMPlayer
-Icon[it]=smtube
+GenericName[it]=Navigatore YouTube per SMPlayer
+Name[it]=SMTube
Comment[ja]=YouTube を閲覧し検索します
-GenericName[ja]=YouTube ブラウザー
-Name[ja]=SMPlayer の YouTube ブラウザー
-Icon[ja]=smtube
+GenericName[ja]=SMPlayer の YouTube ブラウザー
+Name[ja]=SMTube
-Comment[da]=Gennemse og søg fra YouTube
-GenericName[da]=YouTube-browser
-Name[da]=YouTube-browser til SMPlayer
-Icon[da]=smtube
+Comment[ko]=유투브 검색하기
+GenericName[ko]=SMPlayer 유투브 브라우저
+Name[ko]=SMTube
-Comment[de]=YouTube durchsuchen
-GenericName[de]=Youtube-Browser
-Name[de]=YouTube-Browser für SMPlayer
-Icon[de]=smtube
+Comment[pl]=Przeglądanie i przeszukiwanie YouTube
+GenericName[pl]=Przeglądarka YouTube dla SMPlayer
+Name[pl]=SMTube
-Comment[es]=Permite buscar vídeos de YouTube
-GenericName[es]=Buscar vídeos en YouTube
-Name[es]=El buscador de vídeos de YouTube de SMPlayer
-Icon[es]=smtube
+Comment[pt]=Explorar e pesquisar vídeos no YouTube
+GenericName[pt]=Explorador YouTube para o SMPlayer
+Name[pt]=SMTube
+
+Comment[pt_BR]=Navegar e procurar no YouTube
+GenericName[pt_BR]=Navegador do YouTube para o SMPlayer
+Name[pt_BR]=SMTube
+
+Comment[ru]=Просмотр и поиск по YouTube
+GenericName[ru]=Браузер YouTube для SMPlayer
+Name[ru]=SMTube
+
+Comment[sv]=Bläddra och sök från YouTube
+GenericName[sv]=YouTube Bläddrare för SMplayer
+Name[sv]=SMTube
Comment[uk]=Перегляд і пошук на YouTube
-GenericName[uk]=Переглядач YouTube
-Name[uk]=YouTube переглядач для SMPlayer
-Icon[uk]=smtube
+GenericName[uk]=YouTube переглядач для SMPlayer
+Name[uk]=SMTube
-Comment[ko]=유투브 검색하기
-GenericName[ko]=유투브 브라우저
-Name[ko]=SMPlayer 유투브 브라우저
-Icon[ko]=smtube
+Comment[zh_CN]=浏览 YouTube 或者搜索
+GenericName[zh_CN]=SMPlayer - YouTube 浏览器
+Name[zh_CN]=SMTube
Comment[zh_TW]=在 YouTube 上瀏覽並搜尋
-GenericName[zh_TW]=Youtube 瀏覽器
-Name[zh_TW]=為 SMPlayer 所設計的 YouTube 瀏覽器
-Icon[zh_TW]=smtube
+GenericName[zh_TW]=為 SMPlayer 所設計的 YouTube 瀏覽器
+Name[zh_TW]=SMTube
+
+Comment[ms_MY]=Layar dan gelintar Youtube
+GenericName[ms_MY]=Pelayar YouTube untuk SMPlayer
+Name[ms_MY]=SMTube
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/smtube-15.9.0/src/main.cpp new/smtube-15.11.0/src/main.cpp
--- old/smtube-15.9.0/src/main.cpp 2015-08-05 22:58:44.000000000 +0200
+++ new/smtube-15.11.0/src/main.cpp 2015-11-18 01:33:08.000000000 +0100
@@ -17,6 +17,7 @@
*/
#include "browserwindow.h"
+#include "version.h"
#include <QApplication>
#include <QDir>
#include <QTranslator>
@@ -95,6 +96,8 @@
a.setApplicationName("smtube");
#if QT_VERSION >= 0x040400
+ a.setApplicationVersion(smtubeVersion());
+
// Enable icons in menus
QCoreApplication::setAttribute(Qt::AA_DontShowIconsInMenus, false);
#endif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/smtube-15.9.0/src/retrieveyoutubeurl.cpp new/smtube-15.11.0/src/retrieveyoutubeurl.cpp
--- old/smtube-15.9.0/src/retrieveyoutubeurl.cpp 2015-09-08 00:02:26.000000000 +0200
+++ new/smtube-15.11.0/src/retrieveyoutubeurl.cpp 2015-11-17 03:21:38.000000000 +0100
@@ -60,6 +60,12 @@
connect(dl_player_page, SIGNAL(pageLoaded(QByteArray)), this, SLOT(playerPageLoaded(QByteArray)));
connect(dl_player_page, SIGNAL(errorOcurred(int, QString)), this, SIGNAL(errorOcurred(int, QString)));
#endif
+
+#ifdef YT_LIVE_STREAM
+ dl_stream_page = new LoadPage(manager, this);
+ connect(dl_stream_page, SIGNAL(pageLoaded(QByteArray)), this, SLOT(streamPageLoaded(QByteArray)));
+ connect(dl_stream_page, SIGNAL(errorOcurred(int, QString)), this, SIGNAL(errorOcurred(int, QString)));
+#endif
}
RetrieveYoutubeUrl::~RetrieveYoutubeUrl() {
@@ -199,17 +205,27 @@
if (!player_name.isEmpty()) {
QString url;
+ /*
if (player_name.startsWith("new-")) {
url = QString("http://s.ytimg.com/yts/jsbin/html5player-%1/html5player-new.js").arg(player_name);
} else {
url = QString("http://s.ytimg.com/yts/jsbin/html5player-%1/html5player.js").arg(player_name);
}
+ */
+ url = QString("http://s.ytimg.com/yts/jsbin/player-%1/base.js").arg(player_name);
qDebug() << "RetrieveYoutubeUrl::fetchPlayerPage: url:" << url;
dl_player_page->fetchPage(url);
}
}
#endif
+#ifdef YT_LIVE_STREAM
+void RetrieveYoutubeUrl::fetchStreamPage(const QString & url) {
+ qDebug() << "RetrieveYoutubeUrl::fetchStreamPage:" << url;
+ dl_stream_page->fetchPage(url);
+}
+#endif
+
void RetrieveYoutubeUrl::videoPageLoaded(QByteArray page) {
qDebug() << "RetrieveYoutubeUrl::videoPageLoaded";
@@ -227,7 +243,8 @@
#ifdef YT_USE_SIG
QString html5_player;
#endif
- QRegExp rxplayer("html5player-([\\d,\\w,-]+)\\\\");
+ //QRegExp rxplayer("player-([\\d,\\w,-]+)\\\\");
+ QRegExp rxplayer("jsbin\\/player-([\\d\\w-]+)\\/base\\.js");
if (rxplayer.indexIn(replyString) != -1) {
html5_player = rxplayer.cap(1);
qDebug() << "RetrieveYoutubeUrl::videoPageLoaded: html5player:" << html5_player;
@@ -251,6 +268,19 @@
void RetrieveYoutubeUrl::processVideoPage() {
QString replyString = video_page;
+#ifdef YT_LIVE_STREAM
+ QRegExp rxhlsvp("\"hlsvp\":\"([a-zA-Z0-9\\\\\\/_%\\+:\\.-]+)\"");
+ if (rxhlsvp.indexIn(replyString) != -1) {
+ QString hlsvp = QUrl::fromPercentEncoding(rxhlsvp.cap(1).toLatin1()).replace("\\/", "/");
+ qDebug() << "RetrieveYoutubeUrl::processVideoPage: hlsvp:" << hlsvp;
+
+ if (!hlsvp.isEmpty()) {
+ fetchStreamPage(hlsvp);
+ return;
+ }
+ }
+#endif
+
QString fmtArray;
QRegExp regex("\\\"url_encoded_fmt_stream_map\\\"\\s*:\\s*\\\"([^\\\"]*)");
if (regex.indexIn(replyString) != -1) {
@@ -270,7 +300,7 @@
//qDebug() << "RetrieveYoutubeUrl::videoPageLoaded: fmtArray:" << fmtArray;
- #ifdef YT_GET_VIDEOINFO
+ #ifdef YT_DISCARD_HTTPS
bool allow_https = false;
#else
bool allow_https = true;
@@ -344,6 +374,90 @@
}
#endif
+#ifdef YT_LIVE_STREAM
+void RetrieveYoutubeUrl::streamPageLoaded(QByteArray page) {
+ qDebug() << "RetrieveYoutubeUrl::streamPageLoaded";
+
+ //qDebug() << "RetrieveYoutubeUrl::streamPageLoaded: page:" << page;
+
+ QRegExp rx("#EXT-X-STREAM-INF:.*RESOLUTION=\\d+x(\\d+)");
+
+ QMap<int, QString> url_map;
+ int best_resolution = 0;
+ int res_height = 0;
+
+ QTextStream stream(page);
+ QString line;
+ do {
+ line = stream.readLine();
+ if (!line.isEmpty()) {
+ //qDebug() << "RetrieveYoutubeUrl::streamPageLoaded: line:" << line;
+ if (rx.indexIn(line) != -1) {
+ res_height = rx.cap(1).toInt();
+ qDebug() << "RetrieveYoutubeUrl::streamPageLoaded: height:" << res_height;
+ if (res_height > best_resolution) best_resolution = res_height;
+ }
+ else
+ if (!line.startsWith("#") && res_height != 0) {
+ url_map[res_height] = line;
+ res_height = 0;
+ }
+ }
+ } while (!line.isNull());
+
+ qDebug() << "RetrieveYoutubeUrl::streamPageLoaded: best_resolution:" << best_resolution;
+
+ // Try to find a URL with the user's preferred quality
+ qDebug() << "RetrieveYoutubeUrl::streamPageLoaded: preferred_quality:" << preferred_quality;
+
+ int selected_quality = 0;
+ int q = preferred_quality;
+
+ if (q == WEBM_1080p || q == MP4_1080p) {
+ if (url_map.contains(1080)) {
+ selected_quality = 1080;
+ } else q = MP4_720p;
+ }
+
+ if (q == WEBM_720p || q == MP4_720p) {
+ if (url_map.contains(720)) {
+ selected_quality = 720;
+ } else q = WEBM_480p;
+ }
+
+ if (q == WEBM_480p || q == FLV_480p) {
+ if (url_map.contains(480)) {
+ selected_quality = 480;
+ } else q = MP4_360p;
+ }
+
+ if (q == WEBM_360p || q == FLV_360p || q == MP4_360p) {
+ if (url_map.contains(360)) {
+ selected_quality = 360;
+ } else q = FLV_240p;
+ }
+
+ if (q == FLV_240p) {
+ if (url_map.contains(240)) {
+ selected_quality = 240;
+ }
+ }
+
+ qDebug() << "RetrieveYoutubeUrl::streamPageLoaded: selected_quality:" << selected_quality;
+
+ if (selected_quality == 0) selected_quality = best_resolution;
+
+ if (url_map.contains(selected_quality)) {
+ QString p_url = url_map.value(selected_quality);
+ qDebug() << "RetrieveYoutubeUrl::streamPageLoaded: p_url:" << p_url;
+ emit gotPreferredUrl(p_url, 0);
+ latest_preferred_url = p_url;
+ } else {
+ emit gotEmptyList();
+ }
+}
+#endif
+
void RetrieveYoutubeUrl::finish(const UrlMap & url_map) {
qDebug() << "RetrieveYoutubeUrl::finish";
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/smtube-15.9.0/src/retrieveyoutubeurl.h new/smtube-15.11.0/src/retrieveyoutubeurl.h
--- old/smtube-15.9.0/src/retrieveyoutubeurl.h 2015-07-13 00:09:53.000000000 +0200
+++ new/smtube-15.11.0/src/retrieveyoutubeurl.h 2015-11-17 03:21:38.000000000 +0100
@@ -31,6 +31,11 @@
#define YT_GET_VIDEOINFO
#define YT_DASH_SUPPORT
+#define YT_LIVE_STREAM
+
+#ifdef YT_GET_VIDEOINFO
+#define YT_DISCARD_HTTPS
+#endif
typedef QMap<int,QString> UrlMap;
@@ -103,6 +108,9 @@
#ifdef YT_USE_SIG
void playerPageLoaded(QByteArray page);
#endif
+#ifdef YT_LIVE_STREAM
+ void streamPageLoaded(QByteArray page);
+#endif
void processVideoPage();
@@ -114,6 +122,9 @@
#ifdef YT_USE_SIG
void fetchPlayerPage(const QString & player_name);
#endif
+#ifdef YT_LIVE_STREAM
+ void fetchStreamPage(const QString & url);
+#endif
QString getVideoID(QString video_url);
UrlMap extractURLs(QString fmtArray, bool allow_https, bool use_player);
@@ -142,6 +153,10 @@
QString html5_player;
#endif
+#ifdef YT_LIVE_STREAM
+ LoadPage * dl_stream_page;
+#endif
+
QString video_page;
QString url_title;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/smtube-15.9.0/src/sig.cpp new/smtube-15.11.0/src/sig.cpp
--- old/smtube-15.9.0/src/sig.cpp 2015-06-25 23:36:25.000000000 +0200
+++ new/smtube-15.11.0/src/sig.cpp 2015-11-10 23:19:41.000000000 +0100
@@ -59,7 +59,8 @@
QString sig_code;
if (!sig_name.isEmpty()) {
- int pos = text.indexOf("function " + sig_name);
+ //int pos = text.indexOf("function " + sig_name);
+ int pos = text.indexOf("var " + sig_name + "=function");
if (pos > -1) {
int endpos = text.indexOf("}", pos);
#ifdef ULTRAVERBOSE
@@ -67,6 +68,7 @@
#endif
if (endpos > -1) {
sig_code = text.mid(pos, (endpos-pos)+1);
+ sig_code.replace("var " + sig_name + "=function", "function " + sig_name);
}
}
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/smtube-15.9.0/src/smtube.pro new/smtube-15.11.0/src/smtube.pro
--- old/smtube-15.9.0/src/smtube.pro 2015-09-24 23:38:16.000000000 +0200
+++ new/smtube-15.11.0/src/smtube.pro 2015-11-17 03:25:59.000000000 +0100
@@ -115,4 +115,5 @@
translations/smtube_uk.ts \
translations/smtube_sq.ts \
translations/smtube_tr.ts \
- translations/smtube_hu.ts
+ translations/smtube_hu.ts \
+ translations/smtube_he_IL.ts
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/smtube-15.9.0/src/smtube.rc new/smtube-15.11.0/src/smtube.rc
--- old/smtube-15.9.0/src/smtube.rc 2015-09-27 23:24:38.000000000 +0200
+++ new/smtube-15.11.0/src/smtube.rc 2015-11-18 23:47:42.000000000 +0100
@@ -1,7 +1,7 @@
#include <winver.h>
-#define SMTUBE_FILEVERSION 15,9,0,0
-#define SMTUBE_PRODVERSION "15.9.0.0\0"
+#define SMTUBE_FILEVERSION 15,11,0,0
+#define SMTUBE_PRODVERSION "15.11.0.0\0"
VS_VERSION_INFO VERSIONINFO
FILEVERSION SMTUBE_FILEVERSION
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/smtube-15.9.0/src/supportedurls.cpp new/smtube-15.11.0/src/supportedurls.cpp
--- old/smtube-15.9.0/src/supportedurls.cpp 2015-06-12 03:42:44.000000000 +0200
+++ new/smtube-15.11.0/src/supportedurls.cpp 2015-11-04 23:53:15.000000000 +0100
@@ -40,4 +40,5 @@
list << QRegExp("^(https?\\:\\/\\/)?(www\\.)?dailymotion\\.com\\/video\\/.+$");
list << QRegExp("^(https?\\:\\/\\/)?(www\\.)?vimeo\\.com\\/(channels\\/staffpicks\\/)?\\d+$");
+ list << QRegExp("^(https?\\:\\/\\/).*m3u8$");
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/smtube-15.9.0/src/translations/smtube_de.ts new/smtube-15.11.0/src/translations/smtube_de.ts
--- old/smtube-15.9.0/src/translations/smtube_de.ts 2015-08-03 00:10:35.000000000 +0200
+++ new/smtube-15.11.0/src/translations/smtube_de.ts 2015-11-04 23:54:06.000000000 +0100
@@ -4,7 +4,7 @@
<message>
<location filename="../about.ui" line="14"/>
<source>About...</source>
- <translation>Über…</translation>
+ <translation>Über …</translation>
</message>
<message>
<location filename="../about.ui" line="33"/>
@@ -368,12 +368,12 @@
<message>
<location filename="../mywebview.cpp" line="48"/>
<source>Save link...</source>
- <translation>Link speichern...</translation>
+ <translation>Verweis speichern …</translation>
</message>
<message>
<location filename="../mywebview.cpp" line="50"/>
<source>Open link in this window</source>
- <translation>Link in diesem Fenster öffnen</translation>
+ <translation>Verweis in diesem Fenster öffnen</translation>
</message>
<message>
<location filename="../mywebview.cpp" line="51"/>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/smtube-15.9.0/src/translations/smtube_he_IL.ts new/smtube-15.11.0/src/translations/smtube_he_IL.ts
--- old/smtube-15.9.0/src/translations/smtube_he_IL.ts 1970-01-01 01:00:00.000000000 +0100
+++ new/smtube-15.11.0/src/translations/smtube_he_IL.ts 2015-11-17 03:25:59.000000000 +0100
@@ -0,0 +1,460 @@
+<?xml version="1.0" ?><!DOCTYPE TS><TS language="he" version="2.0">
+<context>
+ <name>About</name>
+ <message>
+ <location filename="../about.ui" line="14"/>
+ <source>About...</source>
+ <translation>אודות...</translation>
+ </message>
+ <message>
+ <location filename="../about.ui" line="33"/>
+ <source>&Info</source>
+ <translation>&מידע</translation>
+ </message>
+ <message>
+ <location filename="../about.ui" line="89"/>
+ <source>&Translators</source>
+ <translation>&מתרגמים</translation>
+ </message>
+ <message>
+ <location filename="../about.ui" line="145"/>
+ <source>&License</source>
+ <translation>&רשיון</translation>
+ </message>
+ <message>
+ <location filename="../about.cpp" line="33"/>
+ <source>YouTube%1 Browser for SMPlayer</source>
+ <translation>מעלעל YouTube%1 עבור SMPlayer</translation>
+ </message>
+ <message>
+ <location filename="../about.cpp" line="36"/>
+ <source>Version: %1</source>
+ <translation>גרסא: %1</translation>
+ </message>
+ <message>
+ <location filename="../about.cpp" line="38"/>
+ <source>Portable Edition</source>
+ <translation>מהדורה ניידת</translation>
+ </message>
+ <message>
+ <location filename="../about.cpp" line="41"/>
+ <source>Compiled with Qt %1 (using %2)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../about.cpp" line="43"/>
+ <source>Visit our website for updates:</source>
+ <translation>בקרו את האתר רשת שלנו לצורך עדכונים:</translation>
+ </message>
+ <message>
+ <location filename="../about.cpp" line="86"/>
+ <source>Many people contributed with translations.</source>
+ <translation>אנשים רבים תרמו בעזרת תרגומים.</translation>
+ </message>
+ <message>
+ <location filename="../about.cpp" line="87"/>
+ <source>You can also help to translate SMTube into your own language.</source>
+ <translation>גם אצם יכולים לתרגם את SMTube לשפה שלכם.</translation>
+ </message>
+ <message>
+ <location filename="../about.cpp" line="88"/>
+ <source>Visit %1 and join a translation team.</source>
+ <translation>בקרו באתר %1 והצטרפו לקבוצת תרגום.</translation>
+ </message>
+ <message>
+ <location filename="../about.cpp" line="90"/>
+ <source>Click here to know the translators from the transifex teams</source>
+ <translation>לחצו כאן כדי להכיר את המתרגמים מתוך קבוצות transifex</translation>
+ </message>
+ <message>
+ <location filename="../about.cpp" line="116"/>
+ <source><b>%1</b> (%2)</source>
+ <translation type="unfinished"/>
+ </message>
+</context>
+<context>
+ <name>BrowserWindow</name>
+ <message>
+ <location filename="../browserwindow.cpp" line="116"/>
+ <source>Home</source>
+ <translation>בית</translation>
+ </message>
+ <message>
+ <location filename="../browserwindow.cpp" line="119"/>
+ <source>Navigation</source>
+ <translation>ניווט</translation>
+ </message>
+ <message>
+ <location filename="../browserwindow.cpp" line="127"/>
+ <source>&Quit</source>
+ <translation>י&ציאה</translation>
+ </message>
+ <message>
+ <location filename="../browserwindow.cpp" line="130"/>
+ <source>&Navigation</source>
+ <translation>&ניווט</translation>
+ </message>
+ <message>
+ <location filename="../browserwindow.cpp" line="139"/>
+ <source>&View</source>
+ <translation>&תצוגה</translation>
+ </message>
+ <message>
+ <location filename="../browserwindow.cpp" line="140"/>
+ <source>Toolbar</source>
+ <translation>סרגל כלים</translation>
+ </message>
+ <message>
+ <location filename="../browserwindow.cpp" line="144"/>
+ <source>Statusbar</source>
+ <translation>שורת מצב</translation>
+ </message>
+ <message>
+ <location filename="../browserwindow.cpp" line="148"/>
+ <source>&Settings</source>
+ <translation>&הגדרות</translation>
+ </message>
+ <message>
+ <location filename="../browserwindow.cpp" line="156"/>
+ <source>&Help</source>
+ <translation>&עזרה</translation>
+ </message>
+ <message>
+ <location filename="../browserwindow.cpp" line="159"/>
+ <source>&Update the YouTube code</source>
+ <translation>&עדכן קוד YouTube</translation>
+ </message>
+ <message>
+ <location filename="../browserwindow.cpp" line="164"/>
+ <source>About this &release</source>
+ <translation>אודות &שחרור זה</translation>
+ </message>
+ <message>
+ <location filename="../browserwindow.cpp" line="168"/>
+ <source>&About SMTube</source>
+ <translation>&אודות SMTube</translation>
+ </message>
+ <message>
+ <location filename="../browserwindow.cpp" line="418"/>
+ <source>Connection failed</source>
+ <translation>חיבור נכשל</translation>
+ </message>
+ <message>
+ <location filename="../browserwindow.cpp" line="419"/>
+ <source>The video you requested needs to open a HTTPS connection.</source>
+ <translation>הוידאו אשר ביקשת צריך לפתוח חיבור HTTPS.</translation>
+ </message>
+ <message>
+ <location filename="../browserwindow.cpp" line="420"/>
+ <source>Unfortunately the OpenSSL component, required for it, is not available in your system.</source>
+ <translation>למרבה הצער, מרכיב OpenSSL, דרוש לזאת, אינו זמין בתוך המערכת שלך.</translation>
+ </message>
+ <message>
+ <location filename="../browserwindow.cpp" line="425"/>
+ <source>No video found</source>
+ <translation>לא נמצא וידאו</translation>
+ </message>
+ <message>
+ <location filename="../browserwindow.cpp" line="426"/>
+ <source>It wasn't possible to find the URL for this video.</source>
+ <translation>לא התאפשרה מציאת URL לוידאו זה.</translation>
+ </message>
+ <message>
+ <location filename="../browserwindow.cpp" line="436"/>
+ <location filename="../browserwindow.cpp" line="444"/>
+ <source>Problems with YouTube</source>
+ <translation>בעיות עם YouTube</translation>
+ </message>
+ <message>
+ <location filename="../browserwindow.cpp" line="437"/>
+ <location filename="../browserwindow.cpp" line="445"/>
+ <source>Unfortunately due to changes in YouTube, the video '%1' can't be played.</source>
+ <translation>למרבה הצער, בשל שינויים בתוך YouTube, הוידאו '%1' לא ניתן לניגון.</translation>
+ </message>
+ <message>
+ <location filename="../browserwindow.cpp" line="438"/>
+ <source>Do you want to update the YouTube code? This may fix the problem.</source>
+ <translation>האם ברצונך לעדכן קוד YouTube? זה עשוי לתקן את הבעיה.</translation>
+ </message>
+ <message>
+ <location filename="../browserwindow.cpp" line="446"/>
+ <source>Maybe updating this application could fix the problem.</source>
+ <translation>אולי עדכון יישום זה יכול לתקן את הבעיה.</translation>
+ </message>
+ <message>
+ <location filename="../browserwindow.cpp" line="464"/>
+ <source>About this release</source>
+ <translation>אודות שחרור זה</translation>
+ </message>
+ <message>
+ <location filename="../browserwindow.cpp" line="465"/>
+ <source>Due to changes in YouTube, the old SMTube doesn't work anymore.</source>
+ <translation>בשל שינויים בתוך YouTube, SMTube לא עובד עוד.</translation>
+ </message>
+ <message>
+ <location filename="../browserwindow.cpp" line="466"/>
+ <source>This is a new version of SMTube, written from scratch.</source>
+ <translation>זוהי גרסא חדשה של SMTube, נכתבה מהבסיס.</translation>
+ </message>
+ <message>
+ <location filename="../browserwindow.cpp" line="467"/>
+ <source>Some functionality is not available yet.</source>
+ <translation>תפקודיות מסוימת אינה זמינה עדיין.</translation>
+ </message>
+ <message>
+ <location filename="../browserwindow.cpp" line="469"/>
+ <source>Important:</source>
+ <translation>חשוב:</translation>
+ </message>
+ <message>
+ <location filename="../browserwindow.cpp" line="470"/>
+ <source>If the VEVO videos fail to play, please use the option %1 in the Help menu.</source>
+ <translation>אם סרטוני VEVO נכשליים להתנגן, אנא השתמש באפשרות %1 בתוך התפריט עזרה.</translation>
+ </message>
+ <message>
+ <location filename="../browserwindow.cpp" line="471"/>
+ <source>Update the YouTube code</source>
+ <translation>עדכן קוד YouTube</translation>
+ </message>
+ <message>
+ <location filename="../browserwindow.cpp" line="239"/>
+ <source>Loading... %1%</source>
+ <translation>כעת טוען... %1%</translation>
+ </message>
+</context>
+<context>
+ <name>CodeDownloader</name>
+ <message>
+ <location filename="../codedownloader.cpp" line="37"/>
+ <source>Downloading...</source>
+ <translation>כעת מוריד...</translation>
+ </message>
+ <message>
+ <location filename="../codedownloader.cpp" line="58"/>
+ <source>Connecting to %1</source>
+ <translation>כעת מתחבר אל %1</translation>
+ </message>
+ <message>
+ <location filename="../codedownloader.cpp" line="126"/>
+ <source>The Youtube code has been updated successfully.</source>
+ <translation>קוד Youtube התעדכן בהצלחה.</translation>
+ </message>
+ <message>
+ <location filename="../codedownloader.cpp" line="127"/>
+ <source>Installed version: %1</source>
+ <translation>גרסא מותקנת: %1</translation>
+ </message>
+ <message>
+ <location filename="../codedownloader.cpp" line="128"/>
+ <source>Success</source>
+ <translation>הצלחה</translation>
+ </message>
+ <message>
+ <location filename="../codedownloader.cpp" line="133"/>
+ <location filename="../codedownloader.cpp" line="138"/>
+ <source>Error</source>
+ <translation>שגיאה</translation>
+ </message>
+ <message>
+ <location filename="../codedownloader.cpp" line="133"/>
+ <source>An error happened writing %1</source>
+ <translation>התרחשה שגיאה בכתיבת %1</translation>
+ </message>
+ <message>
+ <location filename="../codedownloader.cpp" line="138"/>
+ <source>An error happened while downloading the file:<br>%1</source>
+ <translation>התרחשה שגיאה במהלך הורדת הקובץ:<br>%1</translation>
+ </message>
+</context>
+<context>
+ <name>ConfigDialog</name>
+ <message>
+ <location filename="../configdialog.ui" line="14"/>
+ <source>Settings</source>
+ <translation>הגדרות</translation>
+ </message>
+ <message>
+ <location filename="../configdialog.ui" line="24"/>
+ <source>&General</source>
+ <translation>&כללי</translation>
+ </message>
+ <message>
+ <location filename="../configdialog.ui" line="113"/>
+ <source>Add</source>
+ <translation>הוסף</translation>
+ </message>
+ <message>
+ <location filename="../configdialog.ui" line="78"/>
+ <source>Up</source>
+ <translation>מעלה</translation>
+ </message>
+ <message>
+ <location filename="../configdialog.ui" line="30"/>
+ <source>Playback</source>
+ <translation>ניגון</translation>
+ </message>
+ <message>
+ <location filename="../configdialog.ui" line="36"/>
+ <source>Preferred &quality:</source>
+ <translation>איכות &מועדפת:</translation>
+ </message>
+ <message>
+ <location filename="../configdialog.ui" line="65"/>
+ <source>Players</source>
+ <translation>נגנים</translation>
+ </message>
+ <message>
+ <location filename="../configdialog.ui" line="124"/>
+ <source>Delete</source>
+ <translation>מחק</translation>
+ </message>
+ <message>
+ <location filename="../configdialog.ui" line="148"/>
+ <source>Edit</source>
+ <translation>ערוך</translation>
+ </message>
+ <message>
+ <location filename="../configdialog.ui" line="161"/>
+ <source>A&dd predefined players</source>
+ <translation>הוס&ף נגנים מוגדרים מראש</translation>
+ </message>
+ <message>
+ <location filename="../configdialog.ui" line="89"/>
+ <source>Down</source>
+ <translation>מטה</translation>
+ </message>
+</context>
+<context>
+ <name>FileChooser</name>
+ <message>
+ <location filename="../filechooser.cpp" line="56"/>
+ <source>Click to select a file or folder</source>
+ <translation>לחץ כדי לבחור קובץ או תיקייה</translation>
+ </message>
+</context>
+<context>
+ <name>MyWebView</name>
+ <message>
+ <location filename="../mywebview.cpp" line="36"/>
+ <source>Open link in a web browser</source>
+ <translation>פתח קישור בתוך דפדפן רשת</translation>
+ </message>
+ <message>
+ <location filename="../mywebview.cpp" line="52"/>
+ <source>Open link in new window</source>
+ <translation>פתח קישור בתוך חלון חדש</translation>
+ </message>
+ <message>
+ <location filename="../mywebview.cpp" line="75"/>
+ <source>Open audio with</source>
+ <translation>פתח אודיו בעזרת</translation>
+ </message>
+ <message>
+ <location filename="../mywebview.cpp" line="91"/>
+ <location filename="../mywebview.cpp" line="116"/>
+ <source>Open with %1</source>
+ <translation>פתח בעזרת %1</translation>
+ </message>
+ <message>
+ <location filename="../mywebview.cpp" line="123"/>
+ <source>Open audio with %1</source>
+ <translation>פתח אודיו בעזרת %1</translation>
+ </message>
+ <message>
+ <location filename="../mywebview.cpp" line="49"/>
+ <source>Copy link to clipboard</source>
+ <translation>העתק קישור ללוח גזירה</translation>
+ </message>
+ <message>
+ <location filename="../mywebview.cpp" line="48"/>
+ <source>Save link...</source>
+ <translation>שמור קישור...</translation>
+ </message>
+ <message>
+ <location filename="../mywebview.cpp" line="50"/>
+ <source>Open link in this window</source>
+ <translation>פתח קישור בתוך חלון זה</translation>
+ </message>
+ <message>
+ <location filename="../mywebview.cpp" line="51"/>
+ <source>Copy text to clipboard</source>
+ <translation>העתק טקסט ללוח גזירה</translation>
+ </message>
+</context>
+<context>
+ <name>PlayerDialog</name>
+ <message>
+ <location filename="../playerdialog.ui" line="14"/>
+ <source>Edit Player</source>
+ <translation>ערוך נגן</translation>
+ </message>
+ <message>
+ <location filename="../playerdialog.ui" line="22"/>
+ <source>&Name:</source>
+ <translation>&שם:</translation>
+ </message>
+ <message>
+ <location filename="../playerdialog.ui" line="39"/>
+ <source>&Executable:</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../playerdialog.ui" line="56"/>
+ <source>&Parameters:</source>
+ <translation>&פרמטרים:</translation>
+ </message>
+ <message>
+ <location filename="../playerdialog.ui" line="71"/>
+ <source>This player supports &video sites</source>
+ <translation>נגן זה &תומך אתרי וידאו</translation>
+ </message>
+ <message>
+ <location filename="../playerdialog.ui" line="80"/>
+ <source>Preferred &quality:</source>
+ <translation>איכות &מועדפת:</translation>
+ </message>
+ <message>
+ <location filename="../playerdialog.ui" line="110"/>
+ <source>Add to &menu:</source>
+ <translation>הוסף ל&תפריט:</translation>
+ </message>
+ <message>
+ <location filename="../playerdialog.cpp" line="28"/>
+ <source>None</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../playerdialog.cpp" line="29"/>
+ <source>Video</source>
+ <translation>וידאו</translation>
+ </message>
+ <message>
+ <location filename="../playerdialog.cpp" line="30"/>
+ <source>Audio</source>
+ <translation>אודיו</translation>
+ </message>
+ <message>
+ <location filename="../playerdialog.cpp" line="31"/>
+ <source>Video and audio</source>
+ <translation>וידאו וגם אודיו</translation>
+ </message>
+ <message>
+ <location filename="../playerdialog.cpp" line="33"/>
+ <source>Default</source>
+ <translation>שגרתי</translation>
+ </message>
+</context>
+<context>
+ <name>QObject</name>
+ <message>
+ <location filename="../players.cpp" line="101"/>
+ <source>Video sites</source>
+ <translation>אתרי וידאו</translation>
+ </message>
+ <message>
+ <location filename="../players.cpp" line="101"/>
+ <source>Normal streams</source>
+ <translation>זרמים רגילים</translation>
+ </message>
+</context>
+</TS>
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/smtube-15.9.0/src/version.cpp new/smtube-15.11.0/src/version.cpp
--- old/smtube-15.9.0/src/version.cpp 2015-09-27 23:24:38.000000000 +0200
+++ new/smtube-15.11.0/src/version.cpp 2015-11-18 23:47:42.000000000 +0100
@@ -20,7 +20,7 @@
#define USE_SVN_VERSIONS 0
-#define VERSION "15.9.0"
+#define VERSION "15.11.0"
#if USE_SVN_VERSIONS
#include "svn_revision.h"
1
0
Hello community,
here is the log from the commit of package freshplayerplugin for openSUSE:Factory checked in at 2016-01-01 19:47:48
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/freshplayerplugin (Old)
and /work/SRC/openSUSE:Factory/.freshplayerplugin.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "freshplayerplugin"
Changes:
--------
--- /work/SRC/openSUSE:Factory/freshplayerplugin/freshplayerplugin.changes 2015-11-16 18:51:39.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.freshplayerplugin.new/freshplayerplugin.changes 2016-01-01 19:49:55.000000000 +0100
@@ -1,0 +2,23 @@
+Sat Dec 26 21:14:56 UTC 2015 - mpluskal(a)suse.com
+
+- Use cmake macro
+
+-------------------------------------------------------------------
+Sat Dec 26 18:01:34 UTC 2015 - sor.alexei(a)meowr.ru
+
+- Update to 0.3.4:
+ * graphics: add non-XRender fallback paths.
+ * graphics: use ANGLE GLES2 emulation layer by default.
+ * graphics: restore mouse pointer when moved outside.
+ * audio: request reduced latency when capturing via PulseAudio.
+ * input: detect and handle mouse double clicks.
+ * misc: add `make install` rule.
+ * misc: add option to show version in context menu.
+ * misc: call gdb for crash debugging.
+ * misc: stop using -fvisibility directives.
+- Use system libGLESv2.
+- Rebase clean.patch.
+- Remove cmake-install.patch: hardly reasonable now.
+- Remove Chromium Pepper Flash path appending: handled upstream.
+
+-------------------------------------------------------------------
Old:
----
cmake-install.patch
freshplayerplugin-0.3.3.tar.gz
New:
----
freshplayerplugin-0.3.4.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ freshplayerplugin.spec ++++++
--- /var/tmp/diff_new_pack.saq9Ww/_old 2016-01-01 19:49:56.000000000 +0100
+++ /var/tmp/diff_new_pack.saq9Ww/_new 2016-01-01 19:49:56.000000000 +0100
@@ -19,17 +19,15 @@
%bcond_with restricted
%bcond_with gtk3
Name: freshplayerplugin
-Version: 0.3.3
+Version: 0.3.4
Release: 0
Summary: PPAPI2NPAPI compatibility layer
License: MIT
Group: Productivity/Networking/Web/Browsers
Url: https://github.com/i-rinat/freshplayerplugin
Source: https://github.com/i-rinat/freshplayerplugin/archive/v%{version}.tar.gz#/%{…
-# PATCH-FIX-OPENSUSE clean.patch boo#937244 i(a)marguerite.su
+# PATCH-FIX-OPENSUSE clean.patch bsc#937244 i(a)marguerite.su
Patch0: clean.patch
-# PATCH-FIX-OPENSUSE cmake-install.patch i(a)marguerite.su -- Install options to CMakeLists.txt.
-Patch1: cmake-install.patch
BuildRequires: cmake
BuildRequires: gcc-c++
BuildRequires: pkg-config
@@ -91,21 +89,15 @@
%prep
%setup -q
%patch0 -p1
-%patch1 -p1
-# Append chromium-pepperflash to pepperflash_path.
-sed -i 's|^\(.*\)\.so"|\1\.so:%{_libdir}/chromium/PepperFlash/libpepflashplayer.so"|' data/freshwrapper.conf.example
# Enable hardware accelerated decoding for PMBS.
%if %{with restricted}
sed -i 's|^\(enable_hwdec = \)0|\11|' data/freshwrapper.conf.example
%endif
%build
-mkdir build
-pushd build
-# FIXME: you should use %%cmake macros
-cmake \
- -DLIB_INSTALL_DIR=%{_libdir} \
+%cmake \
+ -DMOZPLUGIN_INSTALL_DIR=%{_libdir}/browser-plugins \
%if %{with gtk3}
-DWITH_GTK=3 \
%else
@@ -116,12 +108,13 @@
%else
-DWITH_HWDEC=0 \
%endif
- ..
+ -DWITH_GLES2=ON
make %{?_smp_mflags}
-popd
%install
-%make_install -C build
+%cmake_install
+install -Dm 0644 data/freshwrapper.conf.example \
+ %{buildroot}%{_sysconfdir}/freshwrapper.conf
%post
/sbin/ldconfig
++++++ clean.patch ++++++
++++ 272031 lines (skipped)
++++ between /work/SRC/openSUSE:Factory/freshplayerplugin/clean.patch
++++ and /work/SRC/openSUSE:Factory/.freshplayerplugin.new/clean.patch
++++++ freshplayerplugin-0.3.3.tar.gz -> freshplayerplugin-0.3.4.tar.gz ++++++
++++ 213559 lines of diff (skipped)
1
0
Hello community,
here is the log from the commit of package barcode for openSUSE:Factory checked in at 2016-01-01 19:47:46
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/barcode (Old)
and /work/SRC/openSUSE:Factory/.barcode.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "barcode"
Changes:
--------
--- /work/SRC/openSUSE:Factory/barcode/barcode.changes 2015-05-18 22:30:41.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.barcode.new/barcode.changes 2016-01-01 19:49:53.000000000 +0100
@@ -1,0 +2,6 @@
+Sat Dec 26 12:20:13 UTC 2015 - mpluskal(a)suse.com
+
+- Add gpg signature
+- Tiny cleanup with spec-clener
+
+-------------------------------------------------------------------
New:
----
barcode-0.99.tar.xz.sig
barcode.keyring
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ barcode.spec ++++++
--- /var/tmp/diff_new_pack.UjWgu9/_old 2016-01-01 19:49:54.000000000 +0100
+++ /var/tmp/diff_new_pack.UjWgu9/_new 2016-01-01 19:49:54.000000000 +0100
@@ -23,14 +23,20 @@
License: GPL-3.0+
Group: Productivity/Graphics/Other
Url: http://www.gnu.org/software/barcode
-Source: ftp://ftp.gnu.org/pub/gnu/%{name}/%{name}-%{version}.tar.xz
+Source0: ftp://ftp.gnu.org/pub/gnu/%{name}/%{name}-%{version}.tar.xz
+Source1: ftp://ftp.gnu.org/pub/gnu/%{name}/%{name}-%{version}.tar.xz.sig
+Source2: %{name}.keyring
# PATCH-FIX-OPENSUSE barcode-0.99-info.patch
Patch2: %{name}-0.99-info.patch
# PATCH-FIX-UPSTREAM barcode-0.98-leak-fix.patch bnc#537525 -- Fix memory leak by adding call to free.
Patch5: %{name}-0.98-leak-fix.patch
# PATCH-FIX-UPSTREAM barcode-fix-renamed-include.patch malcolmlewis(a)opensuse.org -- Fix renamed gettext include header reference.
Patch6: barcode-fix-renamed-include.patch
-%if %suse_version <= 1220
+BuildRequires: xz
+Requires(post): %{install_info_prereq}
+Requires(preun): %{install_info_prereq}
+BuildRoot: %{_tmppath}/%{name}-%{version}-build
+%if 0%{?suse_version} <= 1220
BuildRequires: texlive
%else
BuildRequires: makeinfo
@@ -39,9 +45,6 @@
BuildRequires: texlive-tex
BuildRequires: texlive-texinfo
%endif
-BuildRequires: xz
-Requires(pre): %install_info_prereq
-BuildRoot: %{_tmppath}/%{name}-%{version}-build
%description
GNU Barcode is meant to meet most barcode creation needs with a
@@ -69,10 +72,10 @@
%build
%configure
-make
+make %{?_smp_mflags}
%install
-make DESTDIR=%{buildroot} install
+make DESTDIR=%{buildroot} install %{?_smp_mflags}
install -Dm0644 barcode.h %{buildroot}%{_includedir}/barcode.h
install -Dm0644 .libs/libbarcode.a %{buildroot}%{_libdir}/libbarcode.a
1
0
Hello community,
here is the log from the commit of package xtrabackup for openSUSE:Factory checked in at 2016-01-01 19:47:45
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/xtrabackup (Old)
and /work/SRC/openSUSE:Factory/.xtrabackup.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "xtrabackup"
Changes:
--------
--- /work/SRC/openSUSE:Factory/xtrabackup/xtrabackup.changes 2015-11-12 19:40:29.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.xtrabackup.new/xtrabackup.changes 2016-01-01 19:49:52.000000000 +0100
@@ -1,0 +2,6 @@
+Sat Dec 26 12:50:49 UTC 2015 - astieger(a)suse.com
+
+- xtrabackup does not strictly require mysqld, and this capability
+ is not longer provided by development MariaDB packages boo#959917
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ xtrabackup.spec ++++++
--- /var/tmp/diff_new_pack.wromnV/_old 2016-01-01 19:49:53.000000000 +0100
+++ /var/tmp/diff_new_pack.wromnV/_new 2016-01-01 19:49:53.000000000 +0100
@@ -52,7 +52,6 @@
BuildRequires: xz
BuildRequires: zlib-devel
#
-Requires: mysql
Requires: rsync
Recommends: qpress
# This is to ease migration from Percona's generic packages
1
0
Hello community,
here is the log from the commit of package lollypop for openSUSE:Factory checked in at 2016-01-01 19:47:40
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/lollypop (Old)
and /work/SRC/openSUSE:Factory/.lollypop.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "lollypop"
Changes:
--------
--- /work/SRC/openSUSE:Factory/lollypop/lollypop.changes 2015-12-09 22:24:20.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.lollypop.new/lollypop.changes 2016-01-01 19:49:49.000000000 +0100
@@ -1,0 +2,7 @@
+Thu Dec 24 05:47:58 UTC 2015 - badshah400(a)gmail.com
+
+- Update to version 0.9.75:
+ + Use Duckduckgo, Google API is dead.
+ +`Add a slider to select covers size.
+
+-------------------------------------------------------------------
Old:
----
lollypop-0.9.74.tar.xz
New:
----
lollypop-0.9.75.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ lollypop.spec ++++++
--- /var/tmp/diff_new_pack.Dx2D2y/_old 2016-01-01 19:49:50.000000000 +0100
+++ /var/tmp/diff_new_pack.Dx2D2y/_new 2016-01-01 19:49:50.000000000 +0100
@@ -22,7 +22,7 @@
Name: lollypop
Summary: GNOME music playing application
License: GPL-3.0+
-Version: 0.9.74
+Version: 0.9.75
Release: 0
Url: https://github.com/gnumdk/lollypop
Source0: https://github.com/gnumdk/lollypop/releases/download/%{version}/%{name}-%{v…
++++++ lollypop-0.9.74.tar.xz -> lollypop-0.9.75.tar.xz ++++++
++++ 20493 lines of diff (skipped)
1
0
Hello community,
here is the log from the commit of package tvbrowser for openSUSE:Factory checked in at 2016-01-01 19:47:38
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/tvbrowser (Old)
and /work/SRC/openSUSE:Factory/.tvbrowser.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "tvbrowser"
Changes:
--------
--- /work/SRC/openSUSE:Factory/tvbrowser/tvbrowser.changes 2014-12-25 23:20:22.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.tvbrowser.new/tvbrowser.changes 2016-01-01 19:49:47.000000000 +0100
@@ -1,0 +2,23 @@
+Fri Dec 25 23:31:11 UTC 2015 - dl8fcl(a)t-online.de
+
+- Update to version 3.4.2
+- Allow to show program table icons with text in tool tip
+- User should be able to select order of data postprocessing
+- Allow change of visibility of progress bar in ProgressMonitor
+- Allow access to progress monitor from PluginManager
+- Identify label of persons in program info
+- Allow plugins to set indeterminated state of progress bar
+- Fix GTK+ theme with never Java
+- Add parameter for channel sort number
+- Allow export/import of channels
+- Filter favorite ignores filter on data update
+- Command line parameter not forwared for Linux packages
+- Allow origin in parameter library
+- Allow channel synchronization with Android
+- Wrong codepage for theme downloads
+- Weekdays switched in weekday filter component
+- Favorites not save after sorting
+- tooltip wrong in program list
+- Search hint not deleted if search value inserted from clipboard
+
+-------------------------------------------------------------------
Old:
----
tvbrowser_3.4.1.0_src.zip
New:
----
tvbrowser_3.4.2_src.zip
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ tvbrowser.spec ++++++
--- /var/tmp/diff_new_pack.ZIWEif/_old 2016-01-01 19:49:49.000000000 +0100
+++ /var/tmp/diff_new_pack.ZIWEif/_new 2016-01-01 19:49:49.000000000 +0100
@@ -1,7 +1,7 @@
#
# spec file for package tvbrowser
#
-# Copyright (c) 2014 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
@@ -20,7 +20,7 @@
Summary: Digital TV guide
License: GPL-3.0+
Group: Productivity/Multimedia/Other
-Version: 3.4.1.0
+Version: 3.4.2
Release: 0
Requires: java >= 1.6
Url: http://tv-browser.org
++++++ NewsPlugin.jar ++++++
Files /var/tmp/diff_new_pack.ZIWEif/_old and /var/tmp/diff_new_pack.ZIWEif/_new differ
1
0
Hello community,
here is the log from the commit of package oprofile for openSUSE:Factory checked in at 2016-01-01 19:47:37
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/oprofile (Old)
and /work/SRC/openSUSE:Factory/.oprofile.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "oprofile"
Changes:
--------
--- /work/SRC/openSUSE:Factory/oprofile/oprofile.changes 2014-09-22 09:23:52.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.oprofile.new/oprofile.changes 2016-01-01 19:49:45.000000000 +0100
@@ -1,0 +2,31 @@
+Fri Dec 25 10:07:44 UTC 2015 - mpluskal(a)suse.com
+
+- Update to 1.1.0
+ * New/updated Processor Support
+ + Broadcom Brahmma-B15 CPU
+ + Intel Skylake
+ + Intel Airmont
+ + Intel Xeon D
+ * Bug fixes
+ + Prevent dropping of samples when the JVM changes memory
+ mappings
+ + Better handling of IBM Power JVM generated zero-sized
+ mappings
+ + Correct handling of anon_hugepage mmap entries for Java
+ + Improved oparchive documentation and man page
+ + Fixed compile error when using compile fortification
+ + Support IBM Power 8 event code larger than sizeof int
+ + Avoid changing POSIXLY_CORRECT environment variable for
+ processes monitored by operf and ocount
+ + Ensure correct setting of the extra bits (edge, inv, cmask)
+ for Intel processors
+ + Fix default unit masks for Intel Haswell and Broadwell
+ processors
+ + Correctly initialize operf temporary file header information
+- Cleanup spec file with spec-cleaner
+- Use url for source
+- Drop desktop file since binary it is calling is no longer
+ present (at least since version 1.0.0)
+- Update dependencies
+
+-------------------------------------------------------------------
Old:
----
oprofile-1.0.0.tar.bz2
oprofile.desktop
New:
----
oprofile-1.1.0.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ oprofile.spec ++++++
--- /var/tmp/diff_new_pack.Cf4GC1/_old 2016-01-01 19:49:47.000000000 +0100
+++ /var/tmp/diff_new_pack.Cf4GC1/_new 2016-01-01 19:49:47.000000000 +0100
@@ -1,7 +1,7 @@
#
# spec file for package oprofile
#
-# Copyright (c) 2014 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
@@ -17,33 +17,39 @@
Name: oprofile
-BuildRequires: binutils-devel
-BuildRequires: fdupes
-BuildRequires: java2-devel-packages
-BuildRequires: libtool
-BuildRequires: libxslt
-BuildRequires: popt-devel
-BuildRequires: qt-devel
-BuildRequires: update-desktop-files
-%ifarch ppc ppc64 ppc64le
-BuildRequires: libpfm-devel >= 4.3.0
-%endif
-Url: http://oprofile.sourceforge.net/
-PreReq: /usr/sbin/groupadd /usr/sbin/useradd
-Version: 1.0.0
+Version: 1.1.0
Release: 0
Summary: System-Wide Profiler for Linux Systems
License: GPL-2.0+ and LGPL-2.1+
Group: Development/Tools/Other
-BuildRoot: %{_tmppath}/%{name}-%{version}-build
-Source: %{name}-%{version}.tar.bz2
-Source1: %{name}.desktop
+Url: http://oprofile.sourceforge.net/
+Source0: http://prdownloads.sourceforge.net/oprofile/oprofile-%{version}.tar.gz
Source2: %{name}.rpmlintrc
Source3: baselibs.conf
Source4: jvmpi.h
Source5: README-BEFORE-ADDING-PATCHES
Patch1: %{name}-no-libjvm-version.patch
Patch2: %{name}-pfm-ppc.patch
+BuildRequires: autoconf
+BuildRequires: automake
+BuildRequires: binutils-devel
+BuildRequires: docbook-utils
+BuildRequires: docbook-xsl-stylesheets
+BuildRequires: fdupes
+BuildRequires: gcc-c++
+BuildRequires: java2-devel-packages
+BuildRequires: libICE-devel
+BuildRequires: libtool
+BuildRequires: libxslt
+BuildRequires: pkg-config
+BuildRequires: popt-devel
+BuildRequires: qt-devel
+BuildRequires: zlib-devel
+Requires(pre): %{_sbindir}/groupadd %{_sbindir}/useradd
+BuildRoot: %{_tmppath}/%{name}-%{version}-build
+%ifarch ppc ppc64 ppc64le
+BuildRequires: libpfm-devel >= 4.3.0
+%endif
%description
OProfile is a system-wide profiler for Linux systems, capable of
@@ -101,14 +107,13 @@
# copy files necessary to build Java agent libraries
# libjvmpi_oprofile.so and libjvmti_oprofile.so
# %S:4 is rpm speak for Source4 (jvmpi.h)
-ln -s %_libdir/jvm/java/include/* java/include
-test -f java/include/jvmpi.h || ln -s %{S:4} java/include
+ln -s %{_libdir}/jvm/java/include/* java/include
+test -f java/include/jvmpi.h || ln -s %{SOURCE4} java/include
%build
-sh autogen.sh
-./configure CFLAGS="$RPM_OPT_FLAGS" CXXFLAGS="$RPM_OPT_FLAGS" \
- --prefix=/usr --mandir=%{_mandir} --libdir=%{_libdir} \
- --with-java=$PWD/java --enable-gui=qt4
+./autogen.sh
+%configure \
+ --with-java=$PWD/java
# Change DATE/TIME macros to use last change time of oprofile.changes
# See http://lists.opensuse.org/opensuse-factory/2011-05/msg00304.html
modified="$(sed -n '/^----/n;s/ - .*$//;p;q' "%{_sourcedir}/%{name}.changes")"
@@ -116,32 +121,36 @@
TIME="\"$(date -d "${modified}" "+%%R")\""
find . -type f -regex ".*\.c\|.*\.cpp\|.*\.h" -exec grep -E -e __DATE__ -e __TIME__ {} +
find . -type f -regex ".*\.c\|.*\.cpp\|.*\.h" -exec sed -i "s/__DATE__/${DATE}/g;s/__TIME__/${TIME}/g" {} +
-make %{?jobs:-j%jobs}
+make %{?_smp_mflags}
%install
-make DESTDIR=$RPM_BUILD_ROOT htmldir=%{_docdir}/oprofile install
-%suse_update_desktop_file -i %name Development Profiling
-rm -f $RPM_BUILD_ROOT%{_libdir}/oprofile/libopagent.*a
+make DESTDIR=%{buildroot} htmldir=%{_docdir}/oprofile install
+rm -f %{buildroot}%{_libdir}/oprofile/libopagent.*a
# Hardlink duplicate files automatically (from package fdupes):
# It doesn't save much, but it keeps rpmlint from breaking the package build.
-%fdupes $RPM_BUILD_ROOT
+%fdupes %{buildroot}
%pre
-/usr/sbin/groupadd -r oprofile 2>/dev/null || :
-/usr/sbin/useradd -r -g oprofile -d /var/lib/empty -s /bin/false -c "Special user account to be used by OProfile" oprofile 2>/dev/null || :
+%{_sbindir}/groupadd -r oprofile 2>/dev/null || :
+%{_sbindir}/useradd -r -g oprofile -d %{_localstatedir}/lib/empty -s /bin/false -c "Special user account to be used by OProfile" oprofile 2>/dev/null || :
%post -n libopagent1 -p /sbin/ldconfig
%postun -n libopagent1 -p /sbin/ldconfig
-%clean
-rm -rf $RPM_BUILD_ROOT
-
%files
%defattr(-,root,root)
-/usr/bin/*
-/usr/share/applications/*.desktop
-/usr/share/oprofile
+%{_bindir}/ocount
+%{_bindir}/ophelp
+%{_bindir}/opimport
+%{_bindir}/opannotate
+%{_bindir}/opgprof
+%{_bindir}/opreport
+%{_bindir}/oparchive
+%{_bindir}/opjitconv
+%{_bindir}/op-check-perfevents
+%{_bindir}/operf
+%{_datadir}/oprofile
%{_mandir}/man1/*
%{_libdir}/oprofile/libjvm[tp]i_oprofile.so
%exclude %{_libdir}/oprofile/libjvm[tp]i_oprofile.*a
@@ -150,7 +159,7 @@
%files devel
%defattr(-,root,root)
-/usr/include/*
+%{_includedir}/*
%doc doc/op-jit-devel.html
%dir %{_libdir}/oprofile
%{_libdir}/oprofile/libopagent.so
++++++ oprofile-pfm-ppc.patch ++++++
--- /var/tmp/diff_new_pack.Cf4GC1/_old 2016-01-01 19:49:47.000000000 +0100
+++ /var/tmp/diff_new_pack.Cf4GC1/_new 2016-01-01 19:49:47.000000000 +0100
@@ -6,14 +6,16 @@
configure.ac | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
---- a/configure.ac
-+++ b/configure.ac
-@@ -184,7 +184,7 @@ AC_DEFINE_UNQUOTED(HAVE_PERF_EVENTS, $HA
+Index: oprofile-1.1.0/configure.ac
+===================================================================
+--- oprofile-1.1.0.orig/configure.ac
++++ oprofile-1.1.0/configure.ac
+@@ -205,7 +205,7 @@ rm -f test-for-precise-ip*
+ AC_DEFINE_UNQUOTED(HAVE_PERF_EVENTS, $HAVE_PERF_EVENTS, [Kernel support for perf_events exists])
AC_CANONICAL_HOST
- if test "$HAVE_PERF_EVENTS" = "1"; then
- PFM_LIB=
-- if test "$host_cpu" = "powerpc64le" -o "$host_cpu" = "powerpc64"; then
-+ if test "$host_cpu" = "powerpc64le" -o "$host_cpu" = "powerpc64" -o "$host_cpu" = "powerpc32"; then
- AC_CHECK_HEADER(perfmon/pfmlib.h,,[AC_MSG_ERROR([pfmlib.h not found; may be provided by libpfm devel or papi devel package])])
- AC_CHECK_LIB(pfm,pfm_get_os_event_encoding, HAVE_LIBPFM3='0'; HAVE_LIBPFM='1', [
- AC_CHECK_LIB(pfm, pfm_get_event_name, HAVE_LIBPFM3='1'; HAVE_LIBPFM='1',
+ PFM_LIB=
+-if test "$host_cpu" = "powerpc64le" -o "$host_cpu" = "powerpc64"; then
++if test "$host_cpu" = "powerpc64le" -o "$host_cpu" = "powerpc64" -o "$host_cpu" = "powerpc32"; then
+ AC_CHECK_HEADER(perfmon/pfmlib.h,,[AC_MSG_ERROR([pfmlib.h not found; may be provided by libpfm devel or papi devel package])])
+ AC_CHECK_LIB(pfm,pfm_get_os_event_encoding, HAVE_LIBPFM3='0'; HAVE_LIBPFM='1', [
+ AC_CHECK_LIB(pfm, pfm_get_event_name, HAVE_LIBPFM3='1'; HAVE_LIBPFM='1',
1
0
Hello community,
here is the log from the commit of package libatlas3 for openSUSE:Factory checked in at 2016-01-01 19:47:35
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/libatlas3 (Old)
and /work/SRC/openSUSE:Factory/.libatlas3.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "libatlas3"
Changes:
--------
--- /work/SRC/openSUSE:Factory/libatlas3/libatlas3.changes 2015-08-13 18:10:50.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.libatlas3.new/libatlas3.changes 2016-01-01 19:49:43.000000000 +0100
@@ -1,0 +2,5 @@
+Fri Dec 18 16:21:36 UTC 2015 - jengelh(a)inai.de
+
+- disable nonfunctional parallel build [boo#959154]
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ libatlas3.spec ++++++
--- /var/tmp/diff_new_pack.mhVvKY/_old 2016-01-01 19:49:45.000000000 +0100
+++ /var/tmp/diff_new_pack.mhVvKY/_new 2016-01-01 19:49:45.000000000 +0100
@@ -1,7 +1,7 @@
#
# spec file for package libatlas3
#
-# 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
@@ -277,8 +277,8 @@
sed -i 's#-DATL_AltiVec##g' Make.inc
sed -i 's#-m64#-m32#g' Make.inc
%endif
-
- make build %{?_smp_mflags}
+ # not parallel safe - boo#959154
+ make build
cd lib
make shared %{?_smp_mflags}
make ptshared %{?_smp_mflags}
1
0
Hello community,
here is the log from the commit of package colordiff for openSUSE:Factory checked in at 2016-01-01 19:47:32
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/colordiff (Old)
and /work/SRC/openSUSE:Factory/.colordiff.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "colordiff"
Changes:
--------
--- /work/SRC/openSUSE:Factory/colordiff/colordiff.changes 2015-08-07 00:24:14.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.colordiff.new/colordiff.changes 2016-01-01 19:49:41.000000000 +0100
@@ -1,0 +2,7 @@
+Fri Dec 25 14:03:43 UTC 2015 - mpluskal(a)suse.com
+
+- Update to 1.0.16
+ * see attached CHANGES for details
+- Add gpg signature
+
+-------------------------------------------------------------------
Old:
----
colordiff-1.0.15.tar.gz
New:
----
colordiff-1.0.16.tar.gz
colordiff-1.0.16.tar.gz.sig
colordiff.keyring
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ colordiff.spec ++++++
--- /var/tmp/diff_new_pack.VpTe1S/_old 2016-01-01 19:49:43.000000000 +0100
+++ /var/tmp/diff_new_pack.VpTe1S/_new 2016-01-01 19:49:43.000000000 +0100
@@ -17,13 +17,15 @@
Name: colordiff
-Version: 1.0.15
+Version: 1.0.16
Release: 0
Summary: Colour-highlighted 'diff' output
License: GPL-2.0+
Group: Productivity/Text/Utilities
Url: http://www.colordiff.org
Source0: http://www.colordiff.org/%{name}-%{version}.tar.gz
+Source1: http://www.colordiff.org/%{name}-%{version}.tar.gz.sig
+Source2: %{name}.keyring
Patch0: colordiff-fix-permission.diff
BuildRoot: %{_tmppath}/%{name}-%{version}-build
BuildArch: noarch
@@ -41,19 +43,21 @@
%install
mkdir -p %{buildroot}/%{_bindir}
-mkdir -p %{buildroot}/etc
-make INSTALL_DIR=%{buildroot}/%{_bindir} \
+mkdir -p %{buildroot}/%{_sysconfdir}
+make \
+ INSTALL_DIR=%{buildroot}/%{_bindir} \
MAN_DIR=%{buildroot}/%{_mandir}/man1 \
- ETC_DIR=%{buildroot}/etc install
-gzip %{buildroot}/%{_mandir}/man1/*.1
+ ETC_DIR=%{buildroot}%{_sysconfdir} install
sed -i -e "s@%{buildroot}@@" %{buildroot}/%{_bindir}/colordiff
chmod a-x %{buildroot}/%{_mandir}/man1/colordiff.*
%files
%defattr(-,root,root)
%doc README COPYING CHANGES BUGS colordiffrc colordiffrc-lightbg
-%{_bindir}/*
-%{_mandir}/man1/*
%config %{_sysconfdir}/colordiffrc
+%{_bindir}/cdiff
+%{_bindir}/colordiff
+%{_mandir}/man1/cdiff.1%{?ext_man}
+%{_mandir}/man1/colordiff.1%{?ext_man}
%changelog
++++++ colordiff-1.0.15.tar.gz -> colordiff-1.0.16.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/colordiff-1.0.15/CHANGES new/colordiff-1.0.16/CHANGES
--- old/colordiff-1.0.15/CHANGES 2015-06-23 22:36:28.000000000 +0200
+++ new/colordiff-1.0.16/CHANGES 2015-10-25 16:04:01.000000000 +0100
@@ -127,5 +127,10 @@
Missed gitdiff file from tarball, bumping version number for clarity.
+Changes between 1.0.15 and 1.0.16
+
+Support for XDG_CONFIG_HOME (thanks Zhiming Wang), fewer deps for cdiff.sh and
+fixes for diffy and diff-type specification (thanks Peter Wu).
+
# vim: tw=72
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/colordiff-1.0.15/cdiff.sh new/colordiff-1.0.16/cdiff.sh
--- old/colordiff-1.0.15/cdiff.sh 2012-10-17 22:14:35.000000000 +0200
+++ new/colordiff-1.0.16/cdiff.sh 2015-06-25 15:37:54.000000000 +0200
@@ -2,7 +2,7 @@
# cdiff.sh - Convenience wrapper for colordiff
#
-# Copyright (C) 2003-2009 Ville Skyttä <ville.skytta(a)iki.fi>
+# Copyright (C) 2003-2015 Ville Skyttä <ville.skytta(a)iki.fi>
# Based on cdiff version 1.4 by eivind(a)FreeBSD.org
#
# This program is free software; you can redistribute it and/or
@@ -30,15 +30,15 @@
case `echo "$file" | perl -ne 'print lc $_'` in
http:*|https:*|ftp:*)
if [ -z "$CDIFF_FETCH" ]; then
- if which curl >/dev/null 2>&1; then
+ if type curl >/dev/null 2>&1; then
CDIFF_FETCH="curl -s"
- elif which wget >/dev/null 2>&1; then
+ elif type wget >/dev/null 2>&1; then
CDIFF_FETCH="wget -e timestamping=off -qO -"
- elif which lwp-request >/dev/null 2>&1; then
+ elif type lwp-request >/dev/null 2>&1; then
CDIFF_FETCH="lwp-request -m GET"
- elif which lynx >/dev/null 2>&1; then
+ elif type lynx >/dev/null 2>&1; then
CDIFF_FETCH="lynx -source"
- elif which elinks >/dev/null 2>&1; then
+ elif type elinks >/dev/null 2>&1; then
CDIFF_FETCH="elinks -source"
fi
if [ -z "$CDIFF_FETCH" ]; then
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/colordiff-1.0.15/colordiff.pl new/colordiff-1.0.16/colordiff.pl
--- old/colordiff-1.0.15/colordiff.pl 2015-06-23 22:36:36.000000000 +0200
+++ new/colordiff-1.0.16/colordiff.pl 2015-10-25 15:54:32.000000000 +0100
@@ -25,7 +25,7 @@
use Getopt::Long qw(:config pass_through no_auto_abbrev);
my $app_name = 'colordiff';
-my $version = '1.0.15';
+my $version = '1.0.16';
my $author = 'Dave Ewart';
my $author_email = 'davee(a)sungate.co.uk';
my $app_www = 'http://www.colordiff.org/';
@@ -66,6 +66,12 @@
my $etcdir = '/etc';
my ($setting, $value);
my @config_files = ("$etcdir/colordiffrc");
+if (defined $ENV{XDG_CONFIG_HOME} && $ENV{XDG_CONFIG_HOME} ne '') {
+ push (@config_files, "$ENV{XDG_CONFIG_HOME}/colordiff/colordiffrc")
+}
+elsif (defined $ENV{HOME}) {
+ push (@config_files, "$ENV{HOME}/.config/colordiff/colordiffrc")
+}
push (@config_files, "$ENV{HOME}/.colordiffrc") if (defined $ENV{HOME});
my $config_file;
my $diff_type = 'unknown';
@@ -166,9 +172,13 @@
"fakeexitcode" => \$enable_fakeexitcode,
"difftype=s" => \$specified_difftype,
"color=s" => \$color_mode
- # TODO - check that specified type is valid, issue warning if not
);
+$_ = $specified_difftype;
+if (defined $_ and not /^diff[cuy]?|(deb|w)diff$/) {
+ print STDERR "Invalid --difftype value\n";
+}
+
if (defined $enable_verifymode) {
# When in verify mode, to ensure consistent output we don't source
# any external config files, so we use built-in defaults
@@ -308,16 +318,21 @@
# Input stream has been read - need to examine it
# to determine type of diff we have.
-my $lastline;
+# $lastline is false if the input is EOF. If true, then either more data is
+# available, or the last read succeeded (and the next read may return EOF).
+# Initially assume that the input is not EOF (for obvious reasons).
+my $lastline = 1;
my $record;
if (defined $specified_difftype) {
$diff_type = $specified_difftype;
# diffy needs at least one line to look at
- if ($diff_type eq 'diffy' and ($_ = <$inputhandle>)) {
- push @inputstream, $_;
+ if ($diff_type eq 'diffy') {
+ if (defined($_ = <$inputhandle>)) {
+ push @inputstream, $_;
+ }
+ $lastline = $_;
}
- $lastline = $_;
}
else {
# Detect diff type, diffy is permitted
1
0
Hello community,
here is the log from the commit of package live-fat-stick for openSUSE:Factory checked in at 2016-01-01 19:47:29
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/live-fat-stick (Old)
and /work/SRC/openSUSE:Factory/.live-fat-stick.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "live-fat-stick"
Changes:
--------
--- /work/SRC/openSUSE:Factory/live-fat-stick/live-fat-stick.changes 2015-07-21 13:28:35.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.live-fat-stick.new/live-fat-stick.changes 2016-01-01 19:49:40.000000000 +0100
@@ -1,0 +2,5 @@
+Fri Dec 25 08:46:03 UTC 2015 - cyberorg(a)opensuse.org
+
+- Add live-grub-stick to create multiboot USB using grub2
+
+-------------------------------------------------------------------
New:
----
live-grub-stick
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ live-fat-stick.spec ++++++
--- /var/tmp/diff_new_pack.C3SuiP/_old 2016-01-01 19:49:41.000000000 +0100
+++ /var/tmp/diff_new_pack.C3SuiP/_new 2016-01-01 19:49:41.000000000 +0100
@@ -17,7 +17,7 @@
Name: live-fat-stick
-Version: 0.3.1
+Version: 0.4.0
Release: 0
Summary: Create live usb stick on fat partition
License: GPL-2.0+
@@ -26,6 +26,7 @@
Source0: live-fat-stick
Source1: live-usb-gui
Source2: live-usb-gui.desktop
+Source3: live-grub-stick
Requires: dd_rescue
Requires: fuseiso
Requires: parted
@@ -65,6 +66,43 @@
should work with all recent openSUSE or Ubuntu live iso images. Fedora iso is
not copied but is extracted as it does not support booting from iso.
+%package -n live-grub-stick
+Requires: dd_rescue
+Requires: fuseiso
+Requires: grub2
+Requires: parted
+Requires: util-linux
+Summary: Create multiboot live usb stick using grub2
+Group: System/Management
+
+%description -n live-grub-stick
+Create multi boot USB stick/hard disk with whole iso/s on any partition
+keeping existing data untouched using grub2.
+
+If --isohybrid option is used then it removes all existing data and creates
+new partitions.
+
+run this command as root (su -, not sudo)
+ live-grub-stick isopath stickpartition
+e.g.:
+ live-grub-stick /home/geeko/openSUSE-Edu-li-f-e.x86_64-42.1.1.iso /dev/sdXY
+
+To add various distribution iso to the stick, run the following:
+ For openSUSE : live-grub-stick --suse /path/to/openSUSE-filename.iso /dev/sdXY
+ For Ubuntu : live-grub-stick --ubuntu /path/to/ubuntu-filename.iso /dev/sdXY
+ For Mint : live-grub-stick --mint /path/to/mint-filename.iso /dev/sdXY
+ For Fedora : live-grub-stick --fedora /path/to/fedora-filename.iso /dev/sdXY
+ For isohybrid : live-grub-stick --isohybrid /path/to/isohybrid-filename.iso /dev/sdX
+
+isopath should be full absolute path of iso image and the device should be
+actual partition on the stick like /dev/sdb1, /dev/sdc1,/dev/sdc2...
+
+The stick partition has to be in any format supported by grub2.
+
+run live-grub-stick -l(or --list) to list the possible usb storage devices available.
+
+It is possible to boot multiple distributions and iso images from same device.
+
%package -n live-usb-gui
Requires: live-fat-stick = %{version}
Recommends: zenity kdialog
@@ -88,6 +126,7 @@
%__install -d -m 755 %{buildroot}/%_datadir/applications/
cp %{SOURCE0} %{buildroot}/%_bindir/
cp %{SOURCE1} %{buildroot}/%_bindir/
+cp %{SOURCE3} %{buildroot}/%_bindir/
cp %{SOURCE2} %{buildroot}/%_datadir/applications/
chmod 755 %{buildroot}/usr/bin/*
@@ -103,6 +142,10 @@
%defattr(-,root,root)
%_bindir/live-fat-stick
+%files -n live-grub-stick
+%defattr(-,root,root)
+%_bindir/live-grub-stick
+
%files -n live-usb-gui
%defattr(-,root,root)
%_bindir/live-usb-gui
++++++ live-grub-stick ++++++
#!/bin/bash
# live-grub-stick
#
# Copyright (c) 2015 CyberOrg Info
# Copyright (c) 2014 Mindaugas Baranauskas
# This program is free software; you can redistribute it and/or modify it under
# the terms of the GNU General Public License as published by the Free Software
# Foundation; either version 2 of the License, or (at your option) any later
# version.
#
# This program 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 General Public License for more
# details.
#
# You should have received a copy of the GNU General Public License along with
# this program; if not, write to the Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
#
# Original authors: Jigish Gohil <cyberorg(a)opensuse.org>
# Contributors: Mindaugas Baranauskas <opensuse.lietuviu.kalba(a)gmail.com>
#
# This script creates bootable openSUSE, Fedora or Ubuntu(or clones)
# live usb stick on fat partition
#
# To get POT file for localization, execute:
# bash --dump-po-strings live-grub-stick > live-grub-stick.pot
PATH=$PATH:/sbin:/usr/sbin:/usr/local/sbin:/usr/local/bin:/usr/bin:/bin
ionice -c3 -p$$
umount_everything () {
sync
if [[ $distroname != isohybrid ]]; then
umount $isomount &>/dev/null
umount $stickdevpart &>/dev/null
rm -rf $isomount &>/dev/null
umount $stickmount &>/dev/null
while $(mount | grep $stickmount &>/dev/null); do
umount $stickdevpart &>/dev/null
sleep 2
done
rmdir $stickmount &>/dev/null || echo "unable to remove $stickmount, please remove manually"
rm $isopath &>/dev/null
fi
}
clean_up () {
if [[ $1 == user_killed ]] ; then
echo "aborting and cleaning up"
umount_everything
exit 1
else
echo "cleaning up"
umount_everything
echo "Your bootable usb stick is now ready"
echo "have a lot of fun..."
fi
if [[ -f $liveusbgui ]]; then
rm $liveusbgui &>/dev/null
rm "$iso_symlink"
fi
}
trap "clean_up user_killed" SIGINT SIGTERM
need_help() {
cat <<EOF
Create multi boot USB stick/hard disk with whole iso/s on vfat/fat32 partition
keeping existing data untouched.
Note: File size greater than 4G is not usable on vfat/fat32 partition so the
live CD/DVD iso file should not exceed this limit.
Note2: Install 32bit/x86 iso on the stick first if creating multiboot with both
x86 and x86_64 arch images.
Note3: Requires: grub2, fuseiso and dd_rescue/ddrescue installed on the system running this.
Run this command as root (su -, not sudo)
live-grub-stick isopath stickpartition
e.g.:
live-grub-stick /home/geeko/openSUSE-Edu-li-f-e-12.2-1-i686.iso /dev/sdXY
To add various distribution iso to the stick, run the following:
For openSUSE : live-grub-stick --suse /path/to/openSUSE-filename.iso /dev/sdXY
For Ubuntu : live-grub-stick --ubuntu /path/to/ubuntu-filename.iso /dev/sdXY
For Mint : live-grub-stick --mint /path/to/mint-filename.iso /dev/sdXY
For Fedora : live-grub-stick --fedora /path/to/fedora-filename.iso /dev/sdXY
For isohybrid : live-grub-stick --isohybrid /path/to/isohybridimage.iso /dev/sdX
isopath should be full absolute path of iso image and the device should be
actual partition on the stick like /dev/sdb1, /dev/sdc1,/dev/sdc2...
The stick partition has to be vfat/fat32 format if the image is not isohybrid.
Please note that using isohybrid option will remove all existing data on the USB device
and create new partitions.
Run live-grub-stick -l(or --list) to list the possible usb storage devices available.
openSUSE users can install it via 1-click from here:
http://software.opensuse.org/package/live-grub-stick
EOF
}
if [[ $(id -u) != 0 ]]; then
echo "run this command as root"
need_help
exit 1
fi
while [ $# -gt 2 ]; do
case $1 in
--fedora)
distroname=fedora
;;
--suse|--opensuse)
distroname=suse
;;
--ubuntu|--mint)
distroname=ubuntu
;;
--isohybrid)
distroname=isohybrid
;;
*)
echo "invalid arg -- $1"
need_help
exit 1
;;
esac
shift
done
if [ "$1" == "-h" -o "$1" == "--help" ]; then
need_help
exit
fi
if [ "$1" == "-l" -o "$1" == "--list" ]; then
echo "Here is the list of possible usb storage devices on your computer,"
echo "use the correct one, usually the one with a number at the end:"
echo "$(for i in $(find /dev/disk/by-path/ |grep usb); do readlink -f $i;done)"
exit
fi
if [[ x"$1" == x ]]; then
echo "Requires first argument as iso image path"
need_help
exit 1
fi
if [[ x"$2" == x ]]; then
echo "Requires second arguement as device partition path, /dev/sdb1 for example"
need_help
echo "Here is the list of possible usb storage devices on your computer, "
echo "use the correct one, usually the one with a number at the end: "
echo "$(for i in $(find /dev/disk/by-path/ |grep usb); do readlink -f $i;done)"
exit 1
fi
if [[ ! -e $(which grub2-install) ]]; then
echo "grub2-install command not found, please install grub2 package"
exit 1
fi
if [[ ! -e $(which fuseiso) ]]; then
echo "fuseiso not found, please install fuseiso package"
exit 1
fi
if [[ ! -e $1 ]]; then
echo "File $1 does not exist"
exit 1
fi
if [[ ! -e $2 ]]; then
echo "Device $2 does not exist"
exit 1
fi
distroname=${distroname:-suse}
if [[ $distroname != suse ]] && [[ $distroname != ubuntu ]] && [[ $distroname != fedora ]] && [[ $distroname != isohybrid ]]; then
echo "this distribution's iso is currently not supported, patch welcome"
exit 1
fi
#variables
isomount=$(mktemp -d)
isopath=$(readlink -f "$1")
iso_symlink=$(mktemp) ; rm $iso_symlink ; ln -s "$isopath" $iso_symlink
stickmount=$(mktemp -d)
stickdevice=$(echo $2 | sed 's/[0-9]*//g')
stickbase=$(basename $2)
isoname=$(basename "$1")
isonametr=$(echo $isoname | tr " " _)
isonameshort=$(echo $isoname | cut -d "-" -f 1,2,3 | tr " " _)
stickuuid=$(blkid -s UUID -o value $2)
isolabel=$(blkid -s LABEL -o value $1)
stickpart=$(basename $2 | sed 's/[a-z]*//g')
grub2path=$stickmount/boot/grub2
grubcfgpath=$grub2path/grub.cfg
stickdevpart=$2
liveusbgui=/tmp/liveusbgui
benice="nice ionice -c3"
if [[ $isoname != $isonametr ]]; then
echo "removing space/s from iso name copied to the destination disk"
export isoname=$isonametr
fi
if [[ ! -h /dev/disk/by-uuid/$stickuuid ]]; then
echo "wrong uuid detected, please file bug with output of: blkid $2"
fi
if echo $isoname | grep -qi "Li-f-e"; then
isonameshort=openSUSE-Edu-Li-f-e
fi
are_you_sure () {
echo -n "$1 [$2/$3]? "
while true; do
read answer
case $answer in
y | Y | yes | YES ) answer="y"; break;;
n | N | no | NO ) exit;;
*) echo "Please answer (y)es or (n)o.";;
esac
done
}
try_cp_with_progress () {
sync
if [ -x /usr/bin/dd_rescue ]; then
$benice dd_rescue -A -b 4M -y 4M "$iso_symlink" "$2"
elif [ -x /usr/bin/ddrescue ]; then
$benice ddrescue --force --block-size=4M "$iso_symlink" "$2"
else
echo "dd_rescue or ddrescue not found, please install one of them, using dd for now"
$benice dd if="$iso_symlink" of="$2" bs=4M
fi
}
cfg_setup() {
mount $stickdevpart $stickmount &>/dev/null
fuseiso $isopath $isomount &>/dev/null
if [[ $distroname == suse ]]; then
if [[ ! -f $stickmount/fatstick ]]; then
if [[ -d $stickmount/boot ]];then
mkdir -p $stickmount/boot
fi
echo "copying grub2 files to $stickmount/boot/"
cp -r $isomount/boot/grub2 $stickmount/boot/
fi
appendsection="\$linux (loop)/boot/x86_64/loader/linux isofrom=/dev/disk/by-uuid/$stickuuid:/$isoname isofrom_device=/dev/disk/by-uuid/$stickuuid isofrom_system=/$isoname loader=syslinux splash=silent quiet showopts"
appendsection2="\$initrd (loop)/boot/x86_64/loader/initrd"
fi
if [[ $distroname == ubuntu ]]; then
if [[ -e $isomount/casper/vmlinuz ]]; then
vmlinuzfile=/casper/vmlinuz
else
vmlinuzfile=/casper/vmlinuz.efi
fi
appendsection="linux (loop)/$vmlinuzfile boot=casper iso-scan/filename=/$isoname quiet splash"
appendsection2="initrd (loop)/casper/initrd.lz"
fi
if [[ $distroname == fedora ]]; then
appendsection="linux (loop)/isolinux/vmlinuz0 iso-scan/filename=/$isoname root=LABEL=$isolabel rootfstype=auto ro rd.live.image rd.luks=0 rd.md=0 rd.dm=0 quiet rhgb"
appendsection2="initrd (loop)/isolinux/initrd0.img"
fi
umount $isomount &>/dev/null
}
grub2_stuff () {
echo "installing grub2 on $stickdevice"
mkdir -p $stickmount/boot
grub2-install --target=i386-pc --boot-directory=$stickmount/boot $stickdevice
echo "setting $stickdevice partition $stickpart active"
parted $stickdevice set $stickpart boot on &>/dev/null
cfg_setup
}
add_harddisk_section () {
if ! grep -q localboot $grubcfgpath; then
cat <<EOF >>$grubcfgpath
label harddisk
localboot 0x80
EOF
fi
}
add_menu_section_suse () {
echo nothing
}
create_grub_cfg() {
cat <<EOF >$grubcfgpath
insmod fat
insmod ext2
insmod part_gpt
insmod efi_gop
insmod iso9660
insmod chain
insmod linux
insmod echo
insmod configfile
insmod boot
insmod search_label
insmod search_fs_file
insmod search
insmod search_fs_uuid
insmod ls
insmod video
insmod video_fb
insmod normal
insmod test
insmod sleep
insmod png
insmod gettext
insmod gzio
insmod efi_uga
if [ \$grub_platform = "efi" ]; then
set linux=linuxefi
set initrd=initrdefi
else
set linux=linux
set initrd=initrd
fi
set default=0
set font=/boot/grub2/fonts/unicode.pf2
if loadfont \$font ;then
set gfxmode=auto
insmod gfxterm
insmod gfxmenu
terminal_input gfxterm
if terminal_output gfxterm; then true; else
terminal gfxterm
fi
fi
if loadfont /boot/grub2/themes/openSUSE/ascii.pf2;then
loadfont /boot/grub2/themes/openSUSE/DejaVuSans-Bold14.pf2
loadfont /boot/grub2/themes/openSUSE/DejaVuSans10.pf2
loadfont /boot/grub2/themes/openSUSE/DejaVuSans12.pf2
loadfont /boot/grub2/themes/openSUSE/ascii.pf2
set theme=/boot/grub2/themes/openSUSE/theme.txt
background_image -m stretch /boot/grub2/themes/openSUSE/background.png
fi
set timeout=10
EOF
}
add_menu_section () {
cat <<EOF >>$grubcfgpath
menuentry "$isonameshort" --class $distroname --class os {
loopback loop /$isoname
echo Loading linux...
set gfxpayload=keep
$appendsection
echo Loading initrd...
$appendsection2
}
EOF
}
echo "Please make sure the following information is correct:"
echo "iso name: $isoname distro: $distroname stick device: $stickdevice"
echo "stick uuid: /dev/disk/by-uuid/$stickuuid stick partition: $stickpart"
if [[ ! -f $liveusbgui ]]; then
are_you_sure "continue ?" "y" "n"
fi
if [[ $distroname == isohybrid ]];then
try_cp_with_progress "$1" "$2"
else
mkdir $isomount $stickmount &>/dev/null
if ! mount $2 $stickmount &>/dev/null; then
echo "unable to mount the usb stick partition"
exit 1
fi
if [[ -e $stickmount/$isoname ]];then
isopath=$stickmount/$isoname
else
isopath=$iso_symlink
fi
if [[ -f $stickmount/fatstick ]]; then
echo "the stick is already bootable stick"
if ! grep -q $isonameshort $grubcfgpath; then
echo "adding new image to boot menu"
cfg_setup
add_menu_section
fi
else
grub2_stuff
echo "creating menu entries"
create_grub_cfg
add_menu_section
umount $stickmount &>/dev/null || true
umount $stickdevpart &>/dev/null || true
umount $isopath &>/dev/null || true
fi
touch $stickmount/fatstick
if [[ ! -f $stickmount/$isoname ]]; then
echo "copying $isoname to usb stick"
try_cp_with_progress "$1" "$stickmount/$isoname"
else
echo "using existing $isoname on the stick"
fi
thisscript=$(readlink -f $0)
cp $thisscript $stickmount/ &>/dev/null || true
fi
clean_up
1
0
Hello community,
here is the log from the commit of package mpv for openSUSE:Factory checked in at 2016-01-01 19:47:27
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/mpv (Old)
and /work/SRC/openSUSE:Factory/.mpv.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "mpv"
Changes:
--------
--- /work/SRC/openSUSE:Factory/mpv/mpv.changes 2015-12-16 17:43:42.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.mpv.new/mpv.changes 2016-01-01 19:49:38.000000000 +0100
@@ -1,0 +2,5 @@
+Thu Dec 24 12:46:33 UTC 2015 - tchvatal(a)suse.com
+
+- Provide and obsolete mplayer2 as per packman discussion
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ mpv.spec ++++++
--- /var/tmp/diff_new_pack.aR6L6W/_old 2016-01-01 19:49:40.000000000 +0100
+++ /var/tmp/diff_new_pack.aR6L6W/_new 2016-01-01 19:49:40.000000000 +0100
@@ -88,6 +88,9 @@
BuildRequires: pkgconfig(zlib)
# Used via LUA scripts
Recommends: youtube-dl
+# Obsoletion of mplayer2 that is dead for 2 years now
+Provides: mplayer2 = 20140101
+Obsoletes: mplayer2 < 20140101
BuildRoot: %{_tmppath}/%{name}-%{version}-build
# PDF manual.
# JIT for lua.
1
0
Hello community,
here is the log from the commit of package pfstools for openSUSE:Factory checked in at 2016-01-01 19:47:26
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/pfstools (Old)
and /work/SRC/openSUSE:Factory/.pfstools.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "pfstools"
Changes:
--------
--- /work/SRC/openSUSE:Factory/pfstools/pfstools.changes 2013-04-24 09:47:24.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.pfstools.new/pfstools.changes 2016-01-01 19:49:37.000000000 +0100
@@ -1,0 +2,54 @@
+Thu Dec 17 21:49:15 UTC 2015 - p.drouand(a)gmail.com
+
+- Fix octave dependency
+
+-------------------------------------------------------------------
+Thu Sep 17 15:09:12 UTC 2015 - p.drouand(a)gmail.com
+
+- Update to version 2.0.4
+ * fixed: added installation of octave-based scripts: pfsoctavelum
+ pfsoctavergb pfsstat
+ * fixed: libraries installed in lib64 if needed
+ * fixed: added "so" version to the pfs.so library
+ * fixed: Replaced depreciated OctaveMap for compatibility with octave 4.0.0
+- Changes from version 2.0.0
+ * added: Starting from pfstools 2.0.0, pfstmo and pfscalibration
+ are included in the pfstools source package
+ * changed: support for automake dropped in favour of cmake
+ * fixed: pfsinpfm and pfsoutpfm now handle both big and little endian
+ files correctly
+ * fixed: pfsinpfm and pfsoutpfm do not flip images (top-bottom)
+ * added: new tone-mapping operator: pfstmo_mai11
+ * changed: Thoroughly updated README files
+ * fixed: several issues with octave scripts (compatibility with newer
+ Octave releases), in particular pfs_write_rgb
+- Add dependencies following upstream changes
+ * cmake
+ * doxygen
+ * gsl-devel
+ * hdf5-devel
+ * opencv-devel
+ * fftw3-threads-devel instead of fftw3-devel
+ * opencv-devel
+ * pkgconfig(libexif)
+- Re-enable building against octave
+- Split out some tools into their own packages
+ * libpfs-2
+ * pfscalign
+ * pfscalibration
+ * pfstmo
+ * pfsview
+ * pfsglview
+ * pfstools-exr
+ * pfstools-imgmagick
+ * pfstools-octave
+- Remove obsolete patches
+ * pfstools-octave.patch
+ * pfstools-stringcompare.patch
+ * pfstools-no-debug-mangling.patch
+- Added patches
+ * pfstools-maptype.patch
+ * pfstools-octinstall.patch
+ * pfstools-fix-libpfs-linkage.patch
+
+-------------------------------------------------------------------
Old:
----
pfstools-1.8.4.tar.bz2
pfstools-no-debug-mangling.patch
pfstools-octave.patch
pfstools-stringcompare.patch
New:
----
pfstools-2.0.4.tgz
pfstools-fix-libpfs-linkage.patch
pfstools-maptype.patch
pfstools-octinstall.patch
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ pfstools.spec ++++++
--- /var/tmp/diff_new_pack.OfXC7U/_old 2016-01-01 19:49:38.000000000 +0100
+++ /var/tmp/diff_new_pack.OfXC7U/_new 2016-01-01 19:49:38.000000000 +0100
@@ -1,7 +1,7 @@
#
# spec file for package pfstools
#
-# Copyright (c) 2013 SUSE LINUX Products 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
@@ -15,34 +15,41 @@
# Please submit bugfixes or comments via http://bugs.opensuse.org/
#
+%define _libname libpfs2
Name: pfstools
-Version: 1.8.4
+Version: 2.0.4
Release: 0
-Source: %{name}-%{version}.tar.bz2
-Patch: %{name}-octave.patch
+Source: http://sourceforge.net/projects/pfstools/files/pfstools/%{version}/%{name}-…
Patch1: %{name}-gcc.patch
-Patch2: pfstools-stringcompare.patch
+Patch2: pfstools-maptype.patch
+Patch3: pfstools-octinstall.patch
Patch4: pfstools-stdlib.patch
Patch5: pfstools-1.8.1-fix-return-in-nonvoid.patch
-Patch6: pfstools-no-debug-mangling.patch
+Patch6: pfstools-fix-libpfs-linkage.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-build
Url: http://www.mpi-sb.mpg.de/resources/pfstools/
BuildRequires: Mesa
BuildRequires: OpenEXR-devel
BuildRequires: blas
-BuildRequires: fftw3-devel
+BuildRequires: cmake
+BuildRequires: doxygen
+BuildRequires: fftw3-threads-devel
BuildRequires: freeglut-devel
+BuildRequires: gsl-devel
+BuildRequires: hdf5-devel
BuildRequires: lapack
BuildRequires: libMagick++-devel
BuildRequires: libnetpbm-devel
BuildRequires: libqt4-devel
BuildRequires: libtiff-devel
BuildRequires: libtool
+BuildRequires: opencv-devel
BuildRequires: pkgconfig
BuildRequires: readline-devel
+BuildRequires: pkgconfig(libexif)
BuildRequires: pkgconfig(glu)
-#BuildRequires: octave-devel
+BuildRequires: octave-devel
Requires: dcraw
Summary: High Dynamic Range Images and Video manipulation tools
License: GPL-2.0+ and LGPL-2.1+
@@ -55,8 +62,92 @@
using a simple generic file format (pfs) for HDR data. The concept of
the pfstools is similar to netpbm package for low-dynamic range images.
+%package -n %{_libname}
+Summary: pfstools shared libraries
+Group: System/Libraries
+
+%description -n %{_libname}
+pfstools package is a set of command line (and one GUI) programs for
+reading, writing, manipulating and viewing high-dynamic range (HDR)
+images and video frames. All programs in the package exchange data
+using a simple generic file format (pfs) for HDR data. The concept of
+the pfstools is similar to netpbm package for low-dynamic range images.
+
+%package -n pfscalign
+Summary: Align image stack
+Group: Productivity/Multimedia/Other
+
+%description -n pfscalign
+Align multiple exposures using homographic transformation. The command
+uses a similar feature-point based method as most panorama stitching software.
+
+%package -n pfscalibration
+Summary: Photometric Calibration of HDR and LDR Cameras
+Group: Productivity/Multimedia/Other
+Requires: dcraw
+Requires: jhead
+%{perl_requires}
+%{?libperl_requires}
+
+%description -n pfscalibration
+A photographic camera with a standard CCD sensor is able to acquire an
+image with simultaneous dynamic range of not more than 1:1000. The
+basic idea to create an image with a higher dynamic range is to combine
+multiple images with different exposure settings, thus making use of
+available sequential dynamic range.
+
+%package -n pfstmo
+Summary: Tone Mapping Operators for High Dynamic Range Images
+Group: Productivity/Multimedia/Other
+
+%description -n pfstmo
+pfstmo package contains the implementation of state-of-the-art tone
+mapping operators. The motivation here is to provide an implementation
+of tone mapping operators suitable for convenient processing of both
+static images and animations.
+
+%package -n pfsview
+Summary: Qt-based viewer for HDR files
+Group: Productivity/Multimedia/Other
+
+%description -n pfsview
+pfsview is a viewer programs based on qt4 for viewing HDR graphics files.
+
+%package -n pfsglview
+Summary: GL-based viewer for HDR files
+Group: Productivity/Multimedia/Other
+
+%description -n pfsglview
+pfsglview is aviewer programs based on OpenGL for viewing HDR graphics files.
+
+%package exr
+Summary: EXR file import and export for PFS tools
+Group: Productivity/Multimedia/Other
+
+%description exr
+This package contains input and output filters for EXR files
+to and from the HDR graphics file format used in pfstools.
+
+%package imgmagick
+Summary: ImageMagick file import for PFS tools
+Group: Productivity/Multimedia/Other
+
+%description imgmagick
+This package contains input and output filters based in
+ImageMagick to and from the HDR graphics file format used in pfstools.
+
+%package octave
+Summary: Octave interaction with PFS tools
+Group: Productivity/Multimedia/Other
+Requires: octave
+
+%description octave
+The pfstools-octave package contains programs to process red, green and blue
+channels or luminance channels in pfs stream using Octave.
+
+
%package devel
-Requires: %{name} = %{version}
+Requires: %{_libname} = %{version}
Summary: High Dynamic Range Images and Video manipulation tools
License: GPL-2.0+
Group: Development/Libraries/C and C++
@@ -70,46 +161,187 @@
%prep
%setup -q
-%patch
%patch1
-%patch2
+%patch2 -p1
+%patch3 -p1
%patch4
%patch5 -p1
%patch6 -p1
%build
-autoreconf -f -i
-%configure --disable-static --with-pic --disable-octave --with-qtdir=/usr
-make %{?jobs:-j%jobs}
+%cmake
+make %{?_smp_mflags}
%install
-make DESTDIR=$RPM_BUILD_ROOT install
+cd build
+%make_install
%{__rm} -f %{buildroot}%{_libdir}/*.la
grep -r include %{buildroot}%{_includedir} | awk -F: '{print $2}'
-%clean
-rm -rf "$RPM_BUILD_ROOT"
-
-%post -p /sbin/ldconfig
+%post -n %{_libname} -p /sbin/ldconfig
-%postun -p /sbin/ldconfig
+%postun -n %{_libname} -p /sbin/ldconfig
%files
%defattr(-,root,root)
-%doc AUTHORS ChangeLog COPYING INSTALL NEWS README TODO
-%{_bindir}/*
-%{_mandir}/man?/*
-%{_libdir}/*.so.*
-/usr/share/%{name}
-# temporary removed
-#%{_libdir}/octave/*/site/oct/*/pfstools
-#%_datadir/octave/*/site/m/pfstools
+%doc AUTHORS ChangeLog COPYING README TODO doc/faq.txt
+%dir %{_datadir}/%{name}
+%{_bindir}/pfsabsolute
+%{_bindir}/pfscat
+%{_bindir}/pfsclamp
+%{_bindir}/pfscut
+%{_bindir}/pfsextractchannels
+%{_bindir}/pfsdisplayfunction
+%{_bindir}/pfsflip
+%{_bindir}/pfsgamma
+%{_bindir}/pfsin
+%{_bindir}/pfsindcraw
+%{_bindir}/pfsinpfm
+%{_bindir}/pfsinppm
+%{_bindir}/pfsinrgbe
+%{_bindir}/pfsintiff
+%{_bindir}/pfsout
+%{_bindir}/pfsouthdrhtml
+%{_bindir}/pfsoutpfm
+%{_bindir}/pfsoutppm
+%{_bindir}/pfsoutrgbe
+%{_bindir}/pfsouttiff
+%{_bindir}/pfspad
+%{_bindir}/pfspanoramic
+%{_bindir}/pfsrotate
+%{_bindir}/pfssize
+%{_bindir}/pfstag
+%{_bindir}/pfscolortransform
+%{_bindir}/pfsretime
+%{_datadir}/pfstools/hdrhtml_c_b2.csv
+%{_datadir}/pfstools/hdrhtml_c_b3.csv
+%{_datadir}/pfstools/hdrhtml_c_b4.csv
+%{_datadir}/pfstools/hdrhtml_c_b5.csv
+%{_datadir}/pfstools/hdrhtml_default_templ/
+%{_datadir}/pfstools/hdrhtml_hdrlabs_templ/
+%{_datadir}/pfstools/hdrhtml_t_b2.csv
+%{_datadir}/pfstools/hdrhtml_t_b3.csv
+%{_datadir}/pfstools/hdrhtml_t_b4.csv
+%{_datadir}/pfstools/hdrhtml_t_b5.csv
+%{_mandir}/man1/pfsabsolute.1.gz
+%{_mandir}/man1/pfscat.1.gz
+%{_mandir}/man1/pfsclamp.1.gz
+%{_mandir}/man1/pfscut.1.gz
+%{_mandir}/man1/pfsdisplayfunction.1.gz
+%{_mandir}/man1/pfsextractchannels.1.gz
+%{_mandir}/man1/pfsflip.1.gz
+%{_mandir}/man1/pfsgamma.1.gz
+%{_mandir}/man1/pfsin.1.gz
+%{_mandir}/man1/pfsindcraw.1.gz
+%{_mandir}/man1/pfsinpfm.1.gz
+%{_mandir}/man1/pfsinppm.1.gz
+%{_mandir}/man1/pfsinrgbe.1.gz
+%{_mandir}/man1/pfsintiff.1.gz
+%{_mandir}/man1/pfsout.1.gz
+%{_mandir}/man1/pfsouthdrhtml.1.gz
+%{_mandir}/man1/pfsoutpfm.1.gz
+%{_mandir}/man1/pfsoutppm.1.gz
+%{_mandir}/man1/pfsoutrgbe.1.gz
+%{_mandir}/man1/pfsouttiff.1.gz
+%{_mandir}/man1/pfspad.1.gz
+%{_mandir}/man1/pfspanoramic.1.gz
+%{_mandir}/man1/pfsrotate.1.gz
+%{_mandir}/man1/pfssize.1.gz
+%{_mandir}/man1/pfstag.1.gz
+%{_mandir}/man1/pfscolortransform.1.gz
+%{_mandir}/man1/pfsretime.1.gz
+
+%files -n %{_libname}
+%defattr(-,root,root)
+%{_libdir}/libpfs.so.*
%files devel
%defattr(-,root,root)
-%doc doc/{pfs_format_spec.pdf,faq.txt}
+%doc doc/faq.txt
%{_includedir}/*
%{_libdir}/pkgconfig/*.pc
-%{_libdir}/*.so
+%{_libdir}/libpfs.so
+
+%files -n pfscalign
+%defattr(-,root,root)
+%{_bindir}/pfsalign
+%{_mandir}/man1/pfsalign.1.gz
+
+%files -n pfscalibration
+%defattr(-,root,root)
+%{_bindir}/dcraw2hdrgen
+%{_bindir}/jpeg2hdrgen
+%{_bindir}/pfshdrcalibrate
+%{_bindir}/pfsinhdrgen
+%{_bindir}/pfsinme
+%{_bindir}/pfsplotresponse
+%{_mandir}/man1/dcraw2hdrgen.1.gz
+%{_mandir}/man1/jpeg2hdrgen.1.gz
+%{_mandir}/man1/pfshdrcalibrate.1.gz
+%{_mandir}/man1/pfsinhdrgen.1.gz
+%{_mandir}/man1/pfsinme.1.gz
+%{_mandir}/man1/pfsplotresponse.1.gz
+
+%files -n pfstmo
+%defattr(-,root,root)
+%{_bindir}/pfstmo_reinhard05
+%{_bindir}/pfstmo_pattanaik00
+%{_bindir}/pfstmo_mantiuk06
+%{_bindir}/pfstmo_fattal02
+%{_bindir}/pfstmo_drago03
+%{_bindir}/pfstmo_reinhard02
+%{_bindir}/pfstmo_durand02
+%{_bindir}/pfstmo_mantiuk08
+%{_bindir}/pfstmo_ferradans11
+%{_bindir}/pfstmo_mai11
+%{_mandir}/man1/pfstmo_reinhard05.1.gz
+%{_mandir}/man1/pfstmo_pattanaik00.1.gz
+%{_mandir}/man1/pfstmo_mantiuk06.1.gz
+%{_mandir}/man1/pfstmo_fattal02.1.gz
+%{_mandir}/man1/pfstmo_drago03.1.gz
+%{_mandir}/man1/pfstmo_reinhard02.1.gz
+%{_mandir}/man1/pfstmo_durand02.1.gz
+%{_mandir}/man1/pfstmo_mantiuk08.1.gz
+%{_mandir}/man1/pfstmo_ferradans11.1.gz
+%{_mandir}/man1/pfstmo_mai11.1.gz
+
+%files -n pfsview
+%defattr(-,root,root)
+%{_bindir}/pfsv
+%{_bindir}/pfsview
+%{_mandir}/man1/pfsview.1.gz
+
+%files -n pfsglview
+%defattr(-,root,root)
+%{_bindir}/pfsglview
+%{_mandir}/man1/pfsglview.1.gz
+
+%files exr
+%defattr(-,root,root)
+%{_bindir}/pfsinexr
+%{_bindir}/pfsoutexr
+%{_mandir}/man1/pfsinexr.1.gz
+%{_mandir}/man1/pfsoutexr.1.gz
+
+%files imgmagick
+%defattr(-,root,root)
+%{_bindir}/pfsinimgmagick
+%{_bindir}/pfsoutimgmagick
+%{_mandir}/man1/pfsinimgmagick.1.gz
+%{_mandir}/man1/pfsoutimgmagick.1.gz
+
+%files octave
+%defattr(-,root,root)
+%{_bindir}/pfsoctavelum
+%{_bindir}/pfsoctavergb
+%{_bindir}/pfsstat
+%dir %{_libdir}/octave/*/site
+%dir %{_libdir}/octave/*/site/oct
+%dir %{_libdir}/octave/*/site/oct/*/
+%{_libdir}/octave/*/site/oct/*/pfstools/
+%{_datadir}/octave/*/site/m/pfstools/
+%{_mandir}/man1/pfsoctavelum.1.gz
+%{_mandir}/man1/pfsoctavergb.1.gz
+%{_mandir}/man1/pfsstat.1.gz
%changelog
++++++ pfstools-1.8.1-fix-return-in-nonvoid.patch ++++++
--- /var/tmp/diff_new_pack.OfXC7U/_old 2016-01-01 19:49:38.000000000 +0100
+++ /var/tmp/diff_new_pack.OfXC7U/_new 2016-01-01 19:49:38.000000000 +0100
@@ -1,12 +1,12 @@
Index: pfstools-1.8.1/src/hdrhtml/hdrhtml.cpp
===================================================================
---- pfstools-1.8.1.orig/src/hdrhtml/hdrhtml.cpp 2009-03-11 22:45:55.000000000 +0100
-+++ pfstools-1.8.1/src/hdrhtml/hdrhtml.cpp 2010-03-02 15:21:24.000000000 +0100
-@@ -195,6 +195,7 @@ public:
+--- pfstools.orig/src/hdrhtml/hdrhtml.cpp 2009-03-11 22:45:55.000000000 +0100
++++ pfstools/src/hdrhtml/hdrhtml.cpp 2010-03-02 15:21:24.000000000 +0100
+@@ -197,6 +197,7 @@
this->y_i = new float[lut_size];
own_y_i = true;
memcpy(this->y_i, other.y_i, lut_size * sizeof(float));
-+ return *this;
++ return *this;
}
~UniformArrayLUT()
++++++ pfstools-fix-libpfs-linkage.patch ++++++
--- a/src/octave/CMakeLists.txt 2014-12-06 19:08:38.000000000 +0100
+++ b/src/octave/CMakeLists.txt 2015-03-10 12:06:05.052688361 +0100
@@ -22,11 +22,12 @@
#Building phase
foreach(SRC ${SRC_OCT})
get_filename_component(OCT_NAME ${SRC} NAME)
+ target_link_libraries(pfs)
add_custom_command(
OUTPUT ${OCT_NAME}.oct
COMMAND ${MKOCTFILE} "${CMAKE_CURRENT_SOURCE_DIR}/${OCT_NAME}.cpp"
ARGS -I${HEADERS} -I${CMAKE_CURRENT_SOURCE_DIR}/help_files
- -L${PROJECT_BINARY_DIR}/src/pfs -lpfs
+ -L${PROJECT_BINARY_DIR}/src/pfs
DEPENDS ${OCT_NAME}.cpp
COMMENT "Generating ${OCT_NAME}.oct"
VERBATIM)
++++++ pfstools-gcc.patch ++++++
--- /var/tmp/diff_new_pack.OfXC7U/_old 2016-01-01 19:49:38.000000000 +0100
+++ /var/tmp/diff_new_pack.OfXC7U/_new 2016-01-01 19:49:38.000000000 +0100
@@ -20,39 +20,12 @@
}
--- src/filter/pfspanoramic.cpp
+++ src/filter/pfspanoramic.cpp
-@@ -93,7 +93,7 @@
- }
-
- //TODO: optimize rotations by precomputing sines and cosines
-- Vector3D rotateX(double angle)
-+ void rotateX(double angle)
- {
- angle *= (M_PI / 180);
-
-@@ -107,7 +107,7 @@
- z = z2;
- }
-
-- Vector3D rotateY(double angle)
-+ void rotateY(double angle)
- {
- angle *= (M_PI / 180);
-
-@@ -121,7 +121,7 @@
- z = z2;
- }
-
-- Vector3D rotateZ(double angle)
-+ void rotateZ(double angle)
- {
- angle *= (M_PI / 180);
-
-@@ -195,7 +195,7 @@
+@@ -198,7 +198,7 @@
{
char *opts;
-- if(opts = strchr(name, '/'))
-+ if(opts = (char*)strchr(name, '/'))
+- if( (opts = strchr(name, '/')) )
++ if( (opts = (char*)strchr(name, '/')) )
{
*opts++ = '\0';
}
++++++ pfstools-maptype.patch ++++++
diff -up pfstools-2.0.4/src/octave/pfsput.cpp.maptype pfstools-2.0.4/src/octave/pfsput.cpp
--- pfstools-2.0.4/src/octave/pfsput.cpp.maptype 2015-07-15 11:58:23.000000000 +0200
+++ pfstools-2.0.4/src/octave/pfsput.cpp 2015-07-20 11:49:05.445680473 +0200
@@ -52,9 +52,9 @@ DEFUN_DLD( pfsput, args, , helpString)
return retval;
}
- octave_scalar_map pfsStream = args(0).map_value();
+ octave_map pfsStream = args(0).map_value();
- octave_scalar_map::const_iterator itFH = pfsStream.seek( "FH" );
+ octave_map::const_iterator itFH = pfsStream.seek( "FH" );
if( itFH == pfsStream.end() ||
!pfsStream.contents( itFH )(0).is_real_scalar() )
{
@@ -65,7 +65,7 @@ DEFUN_DLD( pfsput, args, , helpString)
// Check mode
{
- octave_scalar_map::const_iterator itMode = pfsStream.seek( "MODE" );
+ octave_map::const_iterator itMode = pfsStream.seek( "MODE" );
if( itMode == pfsStream.end() || !pfsStream.contents( itMode )(0).is_string() )
{
error( SCRIPT_NAME ": MODE field missing in the structure or it has wrong type");
@@ -80,8 +80,8 @@ DEFUN_DLD( pfsput, args, , helpString)
// Get width & height
int width, height;
{
- octave_scalar_map::const_iterator itCols = pfsStream.seek( "columns" );
- octave_scalar_map::const_iterator itRows = pfsStream.seek( "rows" );
+ octave_map::const_iterator itCols = pfsStream.seek( "columns" );
+ octave_map::const_iterator itRows = pfsStream.seek( "rows" );
if( itCols == pfsStream.end() || itRows == pfsStream.end() ||
!pfsStream.contents( itCols )(0).is_real_scalar() ||
!pfsStream.contents( itRows )(0).is_real_scalar() )
@@ -94,9 +94,9 @@ DEFUN_DLD( pfsput, args, , helpString)
}
// Get channels
- octave_scalar_map channels;
+ octave_map channels;
{
- octave_scalar_map::const_iterator itChannels = pfsStream.seek( "channels" );
+ octave_map::const_iterator itChannels = pfsStream.seek( "channels" );
if( itChannels == pfsStream.end() ||
!pfsStream.contents( itChannels )(0).is_map() )
{
@@ -111,7 +111,7 @@ DEFUN_DLD( pfsput, args, , helpString)
pfs::Frame *frame = ctx.createFrame( width, height );
// For each channel in the 'channels' map
- for( octave_scalar_map::iterator itCh = channels.begin(); itCh != channels.end(); itCh++ ) {
+ for( octave_map::iterator itCh = channels.begin(); itCh != channels.end(); itCh++ ) {
std::string channelName = channels.key(itCh);
if( !channels.contents( itCh )(0).is_real_matrix() ) {
@@ -135,15 +135,15 @@ DEFUN_DLD( pfsput, args, , helpString)
// Copy frame tags
{
- octave_scalar_map::const_iterator itTags = pfsStream.seek( "tags" );
+ octave_map::const_iterator itTags = pfsStream.seek( "tags" );
if( itTags != pfsStream.end() ) {
if( !pfsStream.contents( itTags )(0).is_map() )
{
throw pfs::Exception( "'tags' field must be a structure" );
}
- octave_scalar_map_map tags = pfsStream.contents( itTags )(0).map_value();
- for( octave_scalar_map::iterator itTag = tags.begin(); itTag != tags.end(); itTag++ ) {
+ octave_map tags = pfsStream.contents( itTags )(0).map_value();
+ for( octave_map::iterator itTag = tags.begin(); itTag != tags.end(); itTag++ ) {
std::string tagName = tags.key(itTag);
if( !tags.contents( itTag )(0).is_string() )
@@ -156,14 +156,14 @@ DEFUN_DLD( pfsput, args, , helpString)
// Copy channel tags
{
- octave_scalar_map::const_iterator itChTags = pfsStream.seek( "channelTags" );
+ octave_map::const_iterator itChTags = pfsStream.seek( "channelTags" );
if( itChTags != pfsStream.end() ) {
if( !pfsStream.contents( itChTags )(0).is_map() )
{
throw pfs::Exception( "'channelTags' field must be a structure" );
}
- octave_scalar_map tagChannels = pfsStream.contents( itChTags )(0).map_value();
- for( octave_scalar_map::iterator itCh = tagChannels.begin(); itCh != tagChannels.end(); itCh++ ) {
+ octave_map tagChannels = pfsStream.contents( itChTags )(0).map_value();
+ for( octave_map::iterator itCh = tagChannels.begin(); itCh != tagChannels.end(); itCh++ ) {
std::string channelName = tagChannels.key(itCh);
if( !tagChannels.contents( itCh )(0).is_map() ) {
throw pfs::Exception( "each channelTags file must be a structure" );
@@ -173,8 +173,8 @@ DEFUN_DLD( pfsput, args, , helpString)
throw pfs::Exception( "can not set channel tag if channel is missing" );
}
- octave_scalar_map tags = tagChannels.contents( itCh )(0).map_value();
- for( octave_scalar_map::iterator itTag = tags.begin(); itTag != tags.end(); itTag++ ) {
+ octave_map tags = tagChannels.contents( itCh )(0).map_value();
+ for( octave_map::iterator itTag = tags.begin(); itTag != tags.end(); itTag++ ) {
std::string tagName = tags.key(itTag);
if( !tags.contents( itTag )(0).is_string() )
throw pfs::Exception( "all channel tags must be given as strings" );
++++++ pfstools-octinstall.patch ++++++
diff -up pfstools-2.0.4/CMakeLists.txt.octinstall pfstools-2.0.4/CMakeLists.txt
--- pfstools-2.0.4/CMakeLists.txt.octinstall 2015-07-20 13:06:32.533996797 +0200
+++ pfstools-2.0.4/CMakeLists.txt 2015-07-20 13:11:35.728808062 +0200
@@ -277,8 +277,6 @@ OPTION(WITH_HDRVC "Compile HDRVC (intern
# ======== MKOCTFILE/OCTAVE ===========
OPTION(WITH_Octave "Compile Octave files" ON)
-SET (OCTAVE_DEST_DIR "${CMAKE_INSTALL_PREFIX}/share/pfstools/octave"
-CACHE PATH "Copy octave functions to this directory")
if( WITH_Octave )
@@ -289,7 +287,8 @@ if( WITH_Octave )
if(MKOCTFILE)
message(STATUS "mkoctfile found.")
endif()
-
+ execute_process(COMMAND octave-config --oct-site-dir OUTPUT_VARIABLE OCTAVE_OCT_DIR OUTPUT_STRIP_TRAILING_WHITESPACE)
+ execute_process(COMMAND octave-config --m-site-dir OUTPUT_VARIABLE OCTAVE_M_DIR OUTPUT_STRIP_TRAILING_WHITESPACE)
endif( WITH_Octave )
# ======== OpenCV ===========
diff -up pfstools-2.0.4/src/octave/CMakeLists.txt.octinstall pfstools-2.0.4/src/octave/CMakeLists.txt
--- pfstools-2.0.4/src/octave/CMakeLists.txt.octinstall 2015-07-20 13:03:30.448679088 +0200
+++ pfstools-2.0.4/src/octave/CMakeLists.txt 2015-07-20 13:12:42.873544809 +0200
@@ -40,11 +40,11 @@ endforeach(SRC)
foreach(SRC ${SRC_OCT})
install (FILES ${CMAKE_CURRENT_BINARY_DIR}/${SRC}.oct
PERMISSIONS OWNER_EXECUTE GROUP_EXECUTE WORLD_EXECUTE OWNER_WRITE WORLD_READ GROUP_READ OWNER_READ
- DESTINATION ${OCTAVE_DEST_DIR})
+ DESTINATION "${OCTAVE_OCT_DIR}/pfstools")
endforeach(SRC)
foreach(SRC ${SRC_M})
- install (FILES ${SRC} DESTINATION ${OCTAVE_DEST_DIR})
+ install (FILES ${SRC} DESTINATION "${OCTAVE_M_DIR}/pfstools")
endforeach(SRC)
install (FILES ${OCT_SCRIPTS}
++++++ pfstools-stdlib.patch ++++++
--- /var/tmp/diff_new_pack.OfXC7U/_old 2016-01-01 19:49:38.000000000 +0100
+++ /var/tmp/diff_new_pack.OfXC7U/_new 2016-01-01 19:49:38.000000000 +0100
@@ -44,9 +44,9 @@
#include <getopt.h>
--- src/fileformat/pfsoutexr.cpp
+++ src/fileformat/pfsoutexr.cpp
-@@ -32,6 +32,7 @@
-
+@@ -33,6 +33,7 @@
#include <iostream>
+ #include <string>
+#include <stdlib.h>
#include <stdio.h>
1
0
Hello community,
here is the log from the commit of package python-augeas for openSUSE:Factory checked in at 2016-01-01 19:47:21
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-augeas (Old)
and /work/SRC/openSUSE:Factory/.python-augeas.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-augeas"
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-augeas/python-augeas.changes 2013-12-11 15:43:58.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.python-augeas.new/python-augeas.changes 2016-01-01 19:47:59.000000000 +0100
@@ -1,0 +2,22 @@
+Sun Dec 13 00:27:16 UTC 2015 - ecsos(a)opensuse.org
+
+- New upstream release 0.5.0
+ * Make syntax-compatible with both Python 3 and 2.
+ * Remove the libpython hack.
+ * Make tests syntax compatible with both Python 3 and 2.
+ * Make test failures more verbose.
+ * Improve error messages.
+ * Fix exception tests.
+ * Convert unicode at the C boundary.
+ * Add Python 3.3 to CI, and disallow failures.
+ * Add Travis CI settings
+ * Allow failures for python 3.2
+ * Add text_store to the API
+ * Add text_retrieve to the API
+ * Add rename to the API
+ * Add transform to the API
+ * Add label to the API
+ * Use the packages from the augeas-dev PPA
+ * Warning: the 'name' parameter in add_transform is deprecated
+
+-------------------------------------------------------------------
Old:
----
python-augeas-0.4.1.tar.gz
New:
----
python-augeas-0.5.0.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-augeas.spec ++++++
--- /var/tmp/diff_new_pack.VgtyVb/_old 2016-01-01 19:48:00.000000000 +0100
+++ /var/tmp/diff_new_pack.VgtyVb/_new 2016-01-01 19:48:00.000000000 +0100
@@ -1,7 +1,7 @@
#
# spec file for package python-augeas
#
-# 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
@@ -17,7 +17,7 @@
Name: python-augeas
-Version: 0.4.1
+Version: 0.5.0
Release: 0
Summary: Python bindings for Augeas
License: LGPL-2.1+
++++++ python-augeas-0.4.1.tar.gz -> python-augeas-0.5.0.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-augeas-0.4.1/PKG-INFO new/python-augeas-0.5.0/PKG-INFO
--- old/python-augeas-0.4.1/PKG-INFO 2012-01-10 06:37:22.000000000 +0100
+++ new/python-augeas-0.5.0/PKG-INFO 2014-08-31 19:13:07.000000000 +0200
@@ -1,6 +1,6 @@
Metadata-Version: 1.0
Name: python-augeas
-Version: 0.4.1
+Version: 0.5.0
Summary: Python bindings for Augeas
Home-page: http://augeas.net/
Author: Harald Hoyer
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-augeas-0.4.1/augeas.py new/python-augeas-0.5.0/augeas.py
--- old/python-augeas-0.4.1/augeas.py 2011-11-16 02:35:10.000000000 +0100
+++ new/python-augeas-0.5.0/augeas.py 2014-08-31 18:44:49.000000000 +0200
@@ -42,6 +42,28 @@
import ctypes
import ctypes.util
from sys import version_info as _pyver
+from functools import reduce
+
+
+PY3 = _pyver >= (3,)
+AUGENC = 'utf8'
+
+
+if PY3:
+ string_types = str
+else:
+ string_types = basestring
+
+
+def enc(st):
+ if st:
+ return st.encode(AUGENC)
+
+
+def dec(st):
+ if st:
+ return st.decode(AUGENC)
+
def _dlopen(*args):
"""Search for one of the libraries given as arguments and load it.
@@ -56,12 +78,6 @@
class Augeas(object):
"Class wrapper for the augeas library"
- # Load libpython (for 'PyFile_AsFile()' and 'PyMem_Free()')
- # pylint: disable-msg=W0142
- _libpython = _dlopen(*["python" + _v % _pyver[:2]
- for _v in ("%d.%d", "%d%d")])
- _libpython.PyFile_AsFile.restype = ctypes.c_void_p
-
# Load libaugeas
_libaugeas = _dlopen("augeas")
_libaugeas.aug_init.restype = ctypes.c_void_p
@@ -91,15 +107,15 @@
'flags' is a bitmask made up of values from AUG_FLAGS."""
# Sanity checks
- if not isinstance(root, basestring) and root != None:
+ if not isinstance(root, string_types) and root != None:
raise TypeError("root MUST be a string or None!")
- if not isinstance(loadpath, basestring) and loadpath != None:
+ if not isinstance(loadpath, string_types) and loadpath != None:
raise TypeError("loadpath MUST be a string or None!")
if not isinstance(flags, int):
raise TypeError("flag MUST be a flag!")
# Create the Augeas object
- self.__handle = Augeas._libaugeas.aug_init(root, loadpath, flags)
+ self.__handle = Augeas._libaugeas.aug_init(enc(root), enc(loadpath), flags)
if not self.__handle:
raise RuntimeError("Unable to create Augeas object!")
# Make sure self.__handle is a void*, not an integer
@@ -114,7 +130,7 @@
It is an error if more than one node matches 'path'."""
# Sanity checks
- if not isinstance(path, basestring):
+ if not isinstance(path, string_types):
raise TypeError("path MUST be a string!")
if not self.__handle:
raise RuntimeError("The Augeas object has already been closed!")
@@ -123,12 +139,34 @@
value = ctypes.c_char_p()
# Call the function and pass value by reference (char **)
- ret = Augeas._libaugeas.aug_get(self.__handle, path,
+ ret = Augeas._libaugeas.aug_get(self.__handle, enc(path),
ctypes.byref(value))
if ret > 1:
raise ValueError("path specified had too many matches!")
- return value.value
+ return dec(value.value)
+
+ def label(self, path):
+ """Lookup the label associated with 'path'.
+ Returns the label of the path specified.
+ It is an error if more than one node matches 'path'."""
+
+ # Sanity checks
+ if not isinstance(path, string_types):
+ raise TypeError("path MUST be a string!")
+ if not self.__handle:
+ raise RuntimeError("The Augeas object has already been closed!")
+
+ # Create the char * value
+ label = ctypes.c_char_p()
+
+ # Call the function and pass value by reference (char **)
+ ret = Augeas._libaugeas.aug_label(self.__handle, enc(path),
+ ctypes.byref(label))
+ if ret > 1:
+ raise ValueError("path specified had too many matches!")
+
+ return dec(label.value)
def set(self, path, value):
"""Set the value associated with 'path' to 'value'.
@@ -136,15 +174,15 @@
It is an error if more than one node matches 'path'."""
# Sanity checks
- if not isinstance(path, basestring):
+ if not isinstance(path, string_types):
raise TypeError("path MUST be a string!")
- if not isinstance(value, basestring) and type(value) != types.NoneType:
+ if not isinstance(value, string_types) and type(value) != type(None):
raise TypeError("value MUST be a string or None!")
if not self.__handle:
raise RuntimeError("The Augeas object has already been closed!")
# Call the function
- ret = Augeas._libaugeas.aug_set(self.__handle, path, value)
+ ret = Augeas._libaugeas.aug_set(self.__handle, enc(path), enc(value))
if ret != 0:
raise ValueError("Unable to set value to path!")
@@ -157,18 +195,65 @@
# Sanity checks
if type(base) != str:
- raise TypeError, "base MUST be a string!"
+ raise TypeError("base MUST be a string!")
if type(sub) != str and sub != None:
- raise TypeError, "sub MUST be a string or None!"
+ raise TypeError("sub MUST be a string or None!")
if type(value) != str:
- raise TypeError, "value MUST be a string!"
+ raise TypeError("value MUST be a string!")
if not self.__handle:
- raise RuntimeError, "The Augeas object has already been closed!"
+ raise RuntimeError("The Augeas object has already been closed!")
# Call the function
- ret = Augeas._libaugeas.aug_setm(self.__handle, base, sub, value)
+ ret = Augeas._libaugeas.aug_setm(
+ self.__handle, enc(base), enc(sub), enc(value))
if ret < 0:
- raise ValueError, "Unable to set value to path!"
+ raise ValueError("Unable to set value to path!")
+ return ret
+
+ def text_store(self, lens, node, path):
+ """Use the value of node 'node' as a string and transform it into a tree
+ using the lens 'lens' and store it in the tree at 'path', which will be
+ overwritten. 'path' and 'node' are path expressions."""
+
+ # Sanity checks
+ if not isinstance(lens, string_types):
+ raise TypeError("lens MUST be a string!")
+ if not isinstance(node, string_types):
+ raise TypeError("node MUST be a string!")
+ if not isinstance(path, string_types):
+ raise TypeError("path MUST be a string!")
+ if not self.__handle:
+ raise RuntimeError("The Augeas object has already been closed!")
+
+ # Call the function
+ ret = Augeas._libaugeas.aug_text_store(
+ self.__handle, enc(lens), enc(node), enc(path))
+ if ret != 0:
+ raise ValueError("Unable to store text at node!")
+ return ret
+
+ def text_retrieve(self, lens, node_in, path, node_out):
+ """Transform the tree at 'path' into a string using lens 'lens' and store it in
+ the node 'node_out', assuming the tree was initially generated using the
+ value of node 'node_in'. 'path', 'node_in', and 'node_out' are path expressions."""
+
+ # Sanity checks
+ if not isinstance(lens, string_types):
+ raise TypeError("lens MUST be a string!")
+ if not isinstance(node_in, string_types):
+ raise TypeError("node_in MUST be a string!")
+ if not isinstance(path, string_types):
+ raise TypeError("path MUST be a string!")
+ if not isinstance(node_out, string_types):
+ raise TypeError("node_out MUST be a string!")
+ if not self.__handle:
+ raise RuntimeError("The Augeas object has already been closed!")
+
+ # Call the function
+ ret = Augeas._libaugeas.aug_text_retrieve(
+ self.__handle, enc(lens), enc(node_in), enc(path), enc(node_out))
+ if ret != 0:
+ raise ValueError("Unable to store text at node!")
return ret
def defvar(self, name, expr):
@@ -184,16 +269,16 @@
# Sanity checks
if type(name) != str:
- raise TypeError, "name MUST be a string!"
+ raise TypeError("name MUST be a string!")
if type(expr) != str and expr != None:
- raise TypeError, "expr MUST be a string or None!"
+ raise TypeError("expr MUST be a string or None!")
if not self.__handle:
- raise RuntimeError, "The Augeas object has already been closed!"
+ raise RuntimeError("The Augeas object has already been closed!")
# Call the function
- ret = Augeas._libaugeas.aug_defvar(self.__handle, name, expr)
+ ret = Augeas._libaugeas.aug_defvar(self.__handle, enc(name), enc(expr))
if ret < 0:
- raise ValueError, "Unable to register variable!"
+ raise ValueError("Unable to register variable!")
return ret
def defnode(self, name, expr, value):
@@ -208,18 +293,19 @@
# Sanity checks
if type(name) != str:
- raise TypeError, "name MUST be a string!"
+ raise TypeError("name MUST be a string!")
if type(expr) != str:
- raise TypeError, "expr MUST be a string!"
+ raise TypeError("expr MUST be a string!")
if type(value) != str:
- raise TypeError, "value MUST be a string!"
+ raise TypeError("value MUST be a string!")
if not self.__handle:
- raise RuntimeError, "The Augeas object has already been closed!"
+ raise RuntimeError("The Augeas object has already been closed!")
# Call the function
- ret = Augeas._libaugeas.aug_defnode(self.__handle, name, expr, value, None)
+ ret = Augeas._libaugeas.aug_defnode(
+ self.__handle, enc(name), enc(expr), enc(value), None)
if ret < 0:
- raise ValueError, "Unable to register node!"
+ raise ValueError("Unable to register node!")
return ret
def move(self, src, dst):
@@ -230,18 +316,35 @@
does not exist yet, it and all its missing ancestors are created."""
# Sanity checks
- if not isinstance(src, basestring):
+ if not isinstance(src, string_types):
raise TypeError("src MUST be a string!")
- if not isinstance(dst, basestring):
+ if not isinstance(dst, string_types):
raise TypeError("dst MUST be a string!")
if not self.__handle:
raise RuntimeError("The Augeas object has already been closed!")
# Call the function
- ret = Augeas._libaugeas.aug_mv(self.__handle, src, dst)
+ ret = Augeas._libaugeas.aug_mv(self.__handle, enc(src), enc(dst))
if ret != 0:
raise ValueError("Unable to move src to dst!")
+ def rename(self, src, dst):
+ """Rename the label of all nodes matching 'src' to 'lbl'."""
+
+ # Sanity checks
+ if not isinstance(src, string_types):
+ raise TypeError("src MUST be a string!")
+ if not isinstance(dst, string_types):
+ raise TypeError("dst MUST be a string!")
+ if not self.__handle:
+ raise RuntimeError("The Augeas object has already been closed!")
+
+ # Call the function
+ ret = Augeas._libaugeas.aug_rename(self.__handle, enc(src), enc(dst))
+ if ret < 0:
+ raise ValueError("Unable to rename src as dst!")
+ return ret
+
def insert(self, path, label, before=True):
"""Create a new sibling 'label' for 'path' by inserting into the tree
just before 'path' (if 'before' is True) or just after 'path'
@@ -252,16 +355,16 @@
index '[N]'."""
# Sanity checks
- if not isinstance(path, basestring):
+ if not isinstance(path, string_types):
raise TypeError("path MUST be a string!")
- if not isinstance(label, basestring):
+ if not isinstance(label, string_types):
raise TypeError("label MUST be a string!")
if not self.__handle:
raise RuntimeError("The Augeas object has already been closed!")
# Call the function
- ret = Augeas._libaugeas.aug_insert(self.__handle, path,
- label, before and 1 or 0)
+ ret = Augeas._libaugeas.aug_insert(self.__handle, enc(path),
+ enc(label), before and 1 or 0)
if ret != 0:
raise ValueError("Unable to insert label!")
@@ -271,13 +374,13 @@
removed."""
# Sanity checks
- if not isinstance(path, basestring):
+ if not isinstance(path, string_types):
raise TypeError("path MUST be a string!")
if not self.__handle:
raise RuntimeError("The Augeas object has already been closed!")
# Call the function
- return Augeas._libaugeas.aug_rm(self.__handle, path)
+ return Augeas._libaugeas.aug_rm(self.__handle, enc(path))
def match(self, path):
"""Return the matches of the path expression 'path'. The returned paths
@@ -296,7 +399,7 @@
matches more than one path segment."""
# Sanity checks
- if not isinstance(path, basestring):
+ if not isinstance(path, string_types):
raise TypeError("path MUST be a string!")
if not self.__handle:
raise RuntimeError("The Augeas object has already been closed!")
@@ -306,25 +409,25 @@
array = ctypes.POINTER(ctypes.c_void_p)()
# Call the function and pass the void ** by reference (void ***)
- ret = Augeas._libaugeas.aug_match(self.__handle, path,
+ ret = Augeas._libaugeas.aug_match(self.__handle, enc(path),
ctypes.byref(array))
if ret < 0:
- raise RuntimeError("Error during match procedure!")
+ raise RuntimeError("Error during match procedure!", path)
# Loop through the string array
matches = []
for i in range(ret):
if array[i]:
# Create a python string and append it to our matches list
- matches.append(str(ctypes.cast(array[i],
+ matches.append(dec(ctypes.cast(array[i],
ctypes.c_char_p).value))
# Free the string at this point in the array
# Wrap the string as a void* as it was not allocated by Python
- Augeas._libpython.PyMem_Free(ctypes.c_void_p(array[i]))
+ ctypes.pythonapi.PyMem_Free(ctypes.c_void_p(array[i]))
# Free the array itself
- Augeas._libpython.PyMem_Free(array)
+ ctypes.pythonapi.PyMem_Free(array)
return matches
@@ -336,7 +439,7 @@
belong to a file or is doesn't exists, ValueError is raised."""
# Sanity checks
- if not isinstance(path, basestring):
+ if not isinstance(path, string_types):
raise TypeError("path MUST be a string!")
if not self.__handle:
raise RuntimeError("The Augeas object has already been closed!")
@@ -351,14 +454,14 @@
r = ctypes.byref
- ret = Augeas._libaugeas.aug_span(self.__handle, path, r(filename),
+ ret = Augeas._libaugeas.aug_span(self.__handle, enc(path), r(filename),
r(label_start), r(label_end),
r(value_start), r(value_end),
r(span_start), r(span_end))
if (ret < 0):
raise ValueError("Error during span procedure")
- return (filename.value, label_start.value, label_end.value,
+ return (dec(filename.value), label_start.value, label_end.value,
value_start.value, value_end.value,
span_start.value, span_end.value)
@@ -426,23 +529,44 @@
lens: the (file)name of the lens to use
incl: one or more glob patterns for the files to transform
- name: a unique name; use the module name of the lens if omitted
+ name: deprecated parameter
excl: zero or more glob patterns of files to exclude from transforming
"""
- if not name:
- name = lens.split(".")[0].replace("@", "", 1)
- if isinstance (incl, basestring):
+ if name:
+ import warnings
+ warnings.warn("name is now deprecated in this function", DeprecationWarning,
+ stacklevel=2)
+ if isinstance (incl, string_types):
incl = [incl]
- if isinstance (excl, basestring):
+ if isinstance (excl, string_types):
excl = [excl]
- xfm = "/augeas/load/%s/" % name
- self.set (xfm + "lens", lens)
for i in range(len(incl)):
- self.set(xfm + "incl[%d]" % (i+1), incl[i])
+ self.transform(lens, incl[i], False)
for i in range(len(excl)):
- self.set(xfm + "excl[%d]" % (i+1), excl[i])
+ self.transform(lens, excl[i], True)
+
+ def transform(self, lens, file, excl=False):
+ """Add a transform for 'file' using 'lens'.
+ 'excl' specifies if this the file is to be included (False)
+ or excluded (True) from the 'lens'.
+ The 'lens' may be a module name or a full lens name.
+ If a module name is given, then lns will be the lens assumed.
+ """
+
+ if not isinstance(lens, string_types):
+ raise TypeError("lens MUST be a string!")
+ if not isinstance(file, string_types):
+ raise TypeError("file MUST be a string!")
+ if not isinstance(excl, bool):
+ raise TypeError("excl MUST be a boolean!")
+ if not self.__handle:
+ raise RuntimeError("The Augeas object has already been closed!")
+
+ ret = Augeas._libaugeas.aug_transform(self.__handle, enc(lens), enc(file), excl)
+ if ret != 0:
+ raise RuntimeError("Unable to add transform!")
def close(self):
"""Close this Augeas instance and free any storage associated with it.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-augeas-0.4.1/setup.py new/python-augeas-0.5.0/setup.py
--- old/python-augeas-0.4.1/setup.py 2012-01-10 06:37:04.000000000 +0100
+++ new/python-augeas-0.5.0/setup.py 2014-08-31 19:13:05.000000000 +0200
@@ -10,7 +10,7 @@
from distutils.core import setup
setup (name = 'python-augeas',
- version = '0.4.1',
+ version = '0.5.0',
author = "Harald Hoyer",
author_email = "augeas-devel(a)redhat.com",
description = """Python bindings for Augeas""",
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-augeas-0.4.1/test/test_augeas.py new/python-augeas-0.5.0/test/test_augeas.py
--- old/python-augeas-0.4.1/test/test_augeas.py 2011-10-14 04:15:02.000000000 +0200
+++ new/python-augeas-0.5.0/test/test_augeas.py 2014-08-31 18:44:49.000000000 +0200
@@ -1,3 +1,5 @@
+from __future__ import print_function
+
import unittest
import sys
import os
@@ -23,7 +25,7 @@
if path != "/":
aug.match(path)
for i in m:
- for x in recurmatch(aug, i):
+ for x in recurmatch(aug, i):
yield x
else:
for i in aug.match(path + "/*"):
@@ -54,7 +56,7 @@
path = "/"
matches = recurmatch(a, path)
for (p, attr) in matches:
- print >> output, p, attr
+ print(p, attr, file=output)
self.failUnless(p != None and attr != None)
output.close()
@@ -64,13 +66,13 @@
num = 0
for entry in a.match("/files/etc/grub.conf/title"):
num += 1
- self.failUnless(num == 2)
+ self.assertEqual(num, 2)
default = int(a.get("/files/etc/grub.conf/default"))
- self.failUnless(default == 0)
+ self.assertEqual(default, 0)
a.set("/files/etc/grub.conf/default", str(1))
a.save()
default = int(a.get("/files/etc/grub.conf/default"))
- self.failUnless(default == 1)
+ self.assertEqual(default, 1)
a.set("/files/etc/grub.conf/default", str(0))
a.save()
@@ -90,7 +92,7 @@
a = augeas.Augeas(root=MYROOT)
a.defnode("bighost", "/files/etc/hosts/50/ipaddr", "192.168.1.1")
value = a.get("$bighost")
- self.failUnless(value == "192.168.1.1")
+ self.assertEqual(value, "192.168.1.1")
del a
def test07Setm(self):
@@ -100,7 +102,7 @@
self.failUnless(matches)
a.setm("/files/etc/hosts", "*/ipaddr", "192.168.1.1")
for i in matches:
- self.failUnless(a.get(i) == "192.168.1.1")
+ self.assertEqual(a.get(i), "192.168.1.1")
del a
def test08Span(self):
@@ -130,19 +132,92 @@
error = None
try:
r = a.span("/files")
- except ValueError, e:
+ except ValueError as e:
error = e
- self.assertTrue(isinstance(e, ValueError))
+ self.assertTrue(isinstance(error, ValueError))
error = None
try:
r = a.span("/random")
- except ValueError, e:
+ except ValueError as e:
error = e
- self.assertTrue(isinstance(e, ValueError))
+ self.assertTrue(isinstance(error, ValueError))
del a
+ def test09TextStore(self):
+ hosts = "192.168.0.1 rtr.example.com router\n"
+ a = augeas.Augeas(root=MYROOT)
+ r = a.set("/raw/hosts", hosts);
+ r = a.text_store("Hosts.lns", "/raw/hosts", "/t1")
+
+ # Test bad lens name
+ try:
+ r = a.text_store("Notthere.lns", "/raw/hosts", "/t2")
+ except ValueError as e:
+ error = e
+ self.assertTrue(isinstance(error, ValueError))
+
+ def test10TextRetrieve(self):
+ hosts = "192.168.0.1 rtr.example.com router\n"
+ a = augeas.Augeas(root=MYROOT)
+ r = a.set("/raw/hosts", hosts);
+ r = a.text_store("Hosts.lns", "/raw/hosts", "/t1")
+ r = a.text_retrieve("Hosts.lns", "/raw/hosts", "/t1", "/out/hosts")
+ hosts_out = a.get("/out/hosts")
+ self.assertEqual(hosts, hosts_out)
+
+ # Test bad lens name
+ try:
+ r = a.text_store("Notthere.lns", "/raw/hosts", "/t2")
+ except ValueError as e:
+ error = e
+ self.assertTrue(isinstance(error, ValueError))
+
+ def test11Rename(self):
+ a = augeas.Augeas(root=MYROOT)
+ r = a.set("/a/b/c", "value");
+ r = a.rename("/a/b/c", "d");
+ self.assertEqual(r, 1)
+ r = a.set("/a/e/d", "value2");
+ r = a.rename("/a//d", "x");
+ self.assertEqual(r, 2)
+ try:
+ r = a.rename("/a/e/x", "a/b");
+ except ValueError as e:
+ error = e
+ self.assertTrue(isinstance(error, ValueError))
+
+ def test12Transform(self):
+ a = augeas.Augeas(root=MYROOT)
+
+ r = a.transform("Foo", "/tmp/bar")
+ lens = a.get("/augeas/load/Foo/lens")
+ self.assertEqual(lens, "Foo.lns")
+ incl = a.get("/augeas/load/Foo/incl")
+ self.assertEqual(incl, "/tmp/bar")
+
+ r = a.transform("Foo", "/tmp/baz", True)
+ excl = a.get("/augeas/load/Foo/excl")
+ self.assertEqual(excl, "/tmp/baz")
+
+ def test13AddTransform(self):
+ a = augeas.Augeas(root=MYROOT)
+
+ r = a.add_transform("Foo", "/tmp/bar")
+ incl = a.get("/augeas/load/Foo/incl")
+ self.assertEqual(incl, "/tmp/bar")
+
+ r = a.add_transform("Foo", "/tmp/bar", "Faz", "/tmp/baz")
+ excl = a.get("/augeas/load/Foo/excl")
+ self.assertEqual(excl, "/tmp/baz")
+
+ def test14Label(self):
+ a = augeas.Augeas(root=MYROOT)
+
+ lbl = a.label("/augeas/version")
+ self.assertEqual(lbl, "version")
+
def getsuite():
suite = unittest.TestSuite()
suite = unittest.makeSuite(TestAugeas, 'test')
1
0
Hello community,
here is the log from the commit of package python-dulwich for openSUSE:Factory checked in at 2016-01-01 19:47:17
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-dulwich (Old)
and /work/SRC/openSUSE:Factory/.python-dulwich.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-dulwich"
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-dulwich/python-dulwich.changes 2015-05-15 07:44:21.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.python-dulwich.new/python-dulwich.changes 2016-01-01 19:47:56.000000000 +0100
@@ -1,0 +2,41 @@
+Sat Dec 5 23:29:21 UTC 2015 - termim(a)gmail.com
+
+- update to 0.11.2
+ + IMPROVEMENTS
+ * Add support for agent= capability. (Jelmer Vernooij, #298)
+ * Add support for quiet capability. (Jelmer Vernooij)
+ + BUG FIXES
+ * The ParamikoSSHVendor class has been moved to
+ dulwich.contrib.paramiko_vendor, as it’s currently untested.
+ (Jelmer Vernooij, #364)
+
+- update to 0.11.1 2015-09-13
+ * Fix-up release to exclude broken blame.py file.
+
+- update to 0.11.0 2015-09-13
+ + IMPROVEMENTS
+ * Extended Python3 support to most of the codebase. (Gary van der
+ Merwe, Jelmer Vernooij)
+ * The Repo object has a new close method that can be called to close
+ any open resources. (Gary van der Merwe)
+ * Support ‘git.bat’ in SubprocessGitClient on Windows. (Stefan
+ Zimmermann)
+ * Advertise ‘ofs-delta’ capability in receive-pack server side
+ capabilities. (Jelmer Vernooij)
+ * Switched default_local_git_client_cls to LocalGitClient. (Gary van
+ der Merwe)
+ * Add porcelain.ls_remote and GitClient.get_refs. (Michael Edgar)
+ * Add Repo.discover method. (B. M. Corser)
+ * Add dulwich.objectspec.parse_refspec. (Jelmer Vernooij)
+ * Add porcelain.pack_objects and porcelain.repack. (Jelmer Vernooij)
+ + BUG FIXES
+ * Fix handling of ‘done’ in graph walker and implement the ‘no-done’
+ capability. (Tommy Yu, #88)
+ * Avoid recursion limit issues resolving deltas. (William Grant, #81)
+ * Allow arguments in local client binary path overrides. (Jelmer
+ Vernooij)
+ * Fix handling of commands with arguments in paramiko SSH
+ client. (Andreas Klöckner, Jelmer Vernooij, #363)
+ * Fix parsing of quoted strings in configs. (Jelmer Vernooij, #305)
+
+-------------------------------------------------------------------
Old:
----
dulwich-0.10.1a.tar.gz
New:
----
dulwich-0.11.2.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-dulwich.spec ++++++
--- /var/tmp/diff_new_pack.yb2Oud/_old 2016-01-01 19:47:57.000000000 +0100
+++ /var/tmp/diff_new_pack.yb2Oud/_new 2016-01-01 19:47:57.000000000 +0100
@@ -17,14 +17,15 @@
Name: python-dulwich
-Version: 0.10.1a
+Version: 0.11.2
Release: 0
-Url: http://samba.org/~jelmer/dulwich
+Url: https://www.dulwich.io
Summary: Pure-Python Git Library
License: GPL-2.0+
Group: Development/Languages/Python
Source: https://pypi.python.org/packages/source/d/dulwich/dulwich-%{version}.tar.gz
BuildRoot: %{_tmppath}/%{name}-%{version}-build
+BuildRequires: fdupes
BuildRequires: python-Sphinx
BuildRequires: python-devel
%if 0%{?suse_version} && 0%{?suse_version} <= 1110
@@ -44,6 +45,7 @@
%install
python setup.py install --prefix=%{_prefix} --root=%{buildroot}
+%fdupes %{buildroot}
%files
%defattr(-,root,root,-)
++++++ dulwich-0.10.1a.tar.gz -> dulwich-0.11.2.tar.gz ++++++
++++ 16332 lines of diff (skipped)
1
0
Hello community,
here is the log from the commit of package python-amqp for openSUSE:Factory checked in at 2016-01-01 19:47:15
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-amqp (Old)
and /work/SRC/openSUSE:Factory/.python-amqp.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-amqp"
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-amqp/python-amqp.changes 2015-10-19 22:48:42.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.python-amqp.new/python-amqp.changes 2016-01-01 19:47:55.000000000 +0100
@@ -1,0 +2,5 @@
+Thu Dec 10 09:43:54 UTC 2015 - seife+obs(a)b1-systems.com
+
+- remove build date from documentation
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-amqp.spec ++++++
--- /var/tmp/diff_new_pack.fxFjs2/_old 2016-01-01 19:47:56.000000000 +0100
+++ /var/tmp/diff_new_pack.fxFjs2/_new 2016-01-01 19:47:56.000000000 +0100
@@ -24,6 +24,7 @@
Group: Development/Languages/Python
Url: http://github.com/celery/py-amqp
Source: https://pypi.python.org/packages/source/a/amqp/amqp-%{version}.tar.gz
+Source99: %{name}.changes
# PATCH-FIX-OPENSUSE speilicke(a)suse.com -- Avoid excessive doc dependencies
Patch0: amqp-drop-sphinxcontrib-issuetracker-dependency.patch
Patch1: tune-keepalive-intervals.diff
@@ -56,6 +57,10 @@
%patch0 -p1
%patch1 -p0
+# hack, or sphinx will put today's date into the HTML files
+DOCDATE="`date +"%B %e, %Y" -r %{S:99}`"
+echo "today = '$DOCDATE'" >> docs/conf.py
+
%build
python setup.py build
python setup.py build_sphinx && rm build/sphinx/html/.buildinfo
1
0
Hello community,
here is the log from the commit of package freeimage for openSUSE:Factory checked in at 2016-01-01 19:47:10
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/freeimage (Old)
and /work/SRC/openSUSE:Factory/.freeimage.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "freeimage"
Changes:
--------
--- /work/SRC/openSUSE:Factory/freeimage/freeimage.changes 2015-11-13 23:35:28.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.freeimage.new/freeimage.changes 2016-01-01 19:47:23.000000000 +0100
@@ -1,0 +2,93 @@
+Tue Dec 8 17:02:21 UTC 2015 - p.drouand(a)gmail.com
+
+- Update to version 3.17.0
+ * FreeImage now uses LibPNG 1.6.16
+ * FreeImage now uses LibWebP 0.4.2 (GIT patch 2015-03-03)
+ * FreeImage now uses LibRaw 0.17-Alpha1
+ * FreeImage now uses LibTIFF 4.0.4 (CVS patch 2015-01-26)
+ * FreeImage now uses OpenEXR 2.2.0
+ * removed VS 2003 project files : this IDE is no longer supported
+ because of its outdated C++ compiler
+ * added FreeImage_ConvertFromRawBitsEx
+ * added RAW_UNPROCESSED load flag to the RAW plugin
+ * added FreeImage_SetMetadataKeyValue
+ * added support for metadata writing to the JPEG-JXR plugin
+ * added VS 2013 project files
+ * added support for PNG tIME metadata (read/write, handle as
+ Exif-TIFF DateTime)
+ * added explicit definition of endianness and color order in
+ compiler options
+ * added FIQ_LFPQUANT quantizer algorithm
+ * added support for input 32-bit dib in Wu quantizer
+ * added FreeImage_ConvertToRGBAF and updated conversions in
+ FreeImage_ConvertToType
+ * added FreeImage_ConvertToRGBA16 and updated conversions in
+ FreeImage_ConvertToType
+ * added FreeImage_CreateView
+ * added FreeImage_RescaleRect
+ * added FreeImage_GetMemorySize
+ * ICO plugin: improved support for Vista icons
+ * fixed a rounding error in RGB to greyscale conversion formula
+ * fixed Makefile.fip so that it installs symlinks
+ * fixed a potential memory access violation in PluginHDR Save function
+ * fixed a bug in FreeImage_LookupSVGColor ("green" color was not found)
+ * fixed TARGA signature validation for TARGA versions < 2.0
+ * fixed FreeImage_GetScanLine not working with very large images on x64
+ platforms
+ * improved PluginTIFF compatibility with LibTIFF 4
+ * fixed a segfault occuring on a corrupted animated GIF
+ * improved memory allocation in PluginRAW
+ * fixed loading/saving of TIFF containing a GPS IFD inside the Exif-TIFF
+ metadata segment (the solution is to ignore the tag)
+ * fixed a bug in FreeImage_JPEGCrop*/_JPEGTransform* functions occuring
+ when using the same source / destination filename
+ * fixed a bug with output image quality in PluginJP2::Save &
+ PluginJ2K::Save functions (regression from FI 3.15.4)
+ * improved RAW file format detection
+ * fixed FreeImage_GetFileType behavior with ANI file formats
+ * improved Exif reader so as to handle Exif IFD with a suspicious offset
+ (can occur with maker notes)
+ * fixed a memory leak in PluginPNG:Save occuring when dealing with invalid
+ PNG files
+ * fixed PNG plugin handling of 16-bit grayscale + 16-bit alpha images
+ * fixed PNG plugin handling of 16-bit grayscale + tRNS chunk images
+ * fixed PNG plugin handling of 24-bit RGB + tRNS chunk images
+ * fixed PNG plugin handling of 1-,4-bit greyscale/palettized + tRNS
+ chunk images
+ * fixed invalid directory delimiter in include statement (mingw-w64)
+ in Source/LibJXR/image/sys/strcodec.h
+ * fixed Invalid condition for defining _byteswap_ulong (mingw-w64)
+ in Source/LibJXR/image/sys/strcodec.c
+ * fixed FreeImage_Get*Mask not returning 0 for greyscale images
+ * fixed loading of external plugins when using UNICODE directory
+ names to store plugins
+ * fixed loading of JXR files when using memory streams
+ * added Dist/ directory creation in Makefiles (in case it is not
+ already present)
+- For changes from previous versions, please read the Whatnew.txt file
+- Remove some obsolete patches
+ * use_system_libs.patch
+ * use_system_libs_openjpeg.patch
+ * use_system_libs_libpng15.patch
+ * use_system_libs_libpng14.patch
+ * libraw_types.patch
+- Update makefiles_fixes.patch
+- Add patches from Fedora
+ * unbundle.patch
+ * CVE-2015-0852.patch
+- Use download Url as source
+- Add dependencies
+ * jxrlib-devel
+ * libjpeg-devel
+ * openjpeg2-devel instead of openjpeg-devel
+ * pkgconfig(libpng)
+ * pkgconfig(libraw) instead of libraw-devel
+ * pkgconfig(libmng)
+ * pkgconfig(libtiff-4)
+ * pkgconfig(libwebp)
+ * pkgconfig(OpenEXR)
+ * pkgconfig(zlib) instead of zlib-devel
+ * unzip
+- Drop support for SLE11; doesn't build anyway
+
+-------------------------------------------------------------------
Old:
----
FreeImage3154.tar.bz2
libraw_types.patch
use_system_libs.patch
use_system_libs_libpng14.patch
use_system_libs_libpng15.patch
use_system_libs_openjpeg.patch
New:
----
CVE-2015-0852.patch
FreeImage3170.zip
unbundle.patch
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ freeimage.spec ++++++
--- /var/tmp/diff_new_pack.UUtaaR/_old 2016-01-01 19:47:24.000000000 +0100
+++ /var/tmp/diff_new_pack.UUtaaR/_new 2016-01-01 19:47:24.000000000 +0100
@@ -1,7 +1,7 @@
#
# spec file for package freeimage
#
-# 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
@@ -17,45 +17,41 @@
%define so_ver 3
+%define tarver 3170
Name: freeimage
-Version: 3.15.4
+Version: 3.17.0
Release: 0
Summary: Multi-format Image Decoder Library
License: GPL-2.0 or GPL-3.0
Group: System/Libraries
Url: http://freeimage.sourceforge.net/
-# repacked from http://downloads.sourceforge.net/freeimage/FreeImage3154.zip
-Source0: FreeImage3154.tar.bz2
-# PATCH-FIX-OPENSUSE makefiles_fixes.patch asterios.dramis(a)gmail.com -- Fix CFLAGS and CXXFLAGS, removed -s (strip) option, add missing symlinks for libfreeimageplus, remove root user from install
-Patch0: makefiles_fixes.patch
+Source0: http://downloads.sourceforge.net/freeimage/FreeImage%{tarver}.zip
+# PATCH-FIX-OPENSUSE unbundle.patch p.drouand(a)gmail.com -- Use system libraries instead of bundled ones
+Patch0: unbundle.patch
# PATCH-FIX-OPENSUSE doxygen.patch asterios.dramis(a)gmail.com -- Fix documentation building (Based on patch from Fedora)
Patch1: doxygen.patch
-# PATCH-FIX-OPENSUSE use_system_libs.patch asterios.dramis(a)gmail.com -- Use system libraries, except libjpeg and libtiff (the package uses some internal headers of these).
-Patch2: use_system_libs.patch
-# PATCH-FIX-OPENSUSE use_system_libs_openjpeg.patch asterios.dramis(a)gmail.com -- Use system libraries (openjpeg)
-Patch3: use_system_libs_openjpeg.patch
-# PATCH-FIX-OPENSUSE use_system_libs_libpng15.patch asterios.dramis(a)gmail.com -- Use system libraries (libpng15)
-Patch4: use_system_libs_libpng15.patch
-# PATCH-FIX-OPENSUSE use_system_libs_libpng14.patch asterios.dramis(a)gmail.com -- Use system libraries (libpng14)
-Patch5: use_system_libs_libpng14.patch
-# PATCH-FIX-OPENSUSE don't define conflicting types when libraw is used prusnak(a)opensuse.org
-Patch6: libraw_types.patch
-BuildRequires: OpenEXR-devel
+# PATCH-FIX-UPSTREAM CVE-2015-0852.patch -- Multiple integer underflows in PluginPCX.cpp in FreeImage 3.17.0 and earlier
+Patch2: CVE-2015-0852.patch
+# PATCH-FIX-OPENSUSE makefiles_fixes.patch asterios.dramis(a)gmail.com -- Fix CFLAGS and CXXFLAGS, removed -s (strip) option, add missing symlinks for libfreeimageplus, remove root user from install
+Patch3: makefiles_fixes.patch
BuildRequires: doxygen
BuildRequires: gcc-c++
-BuildRequires: libpng-devel
-%if 0%{?suse_version} == 1140
-BuildRequires: libraw-devel
-BuildRequires: libraw-devel-static
+BuildRequires: jxrlib-devel
+BuildRequires: libjpeg-devel
+BuildRequires: openjpeg2-devel
+BuildRequires: pkgconfig(libpng)
+BuildRequires: pkgconfig(libraw)
+%if 0%{?suse_version} >= 1320
+BuildRequires: pkgconfig(libmng)
%else
-BuildRequires: libraw-devel
+BuildRequires: libmng-devel
%endif
-%if 0%{?suse_version} > 1210
-BuildRequires: openjpeg-devel
-%endif
-BuildRequires: zlib-devel
-BuildRoot: %{_tmppath}/%{name}-%{version}-build
+BuildRequires: unzip
+BuildRequires: pkgconfig(OpenEXR)
+BuildRequires: pkgconfig(libtiff-4)
+BuildRequires: pkgconfig(libwebp)
+BuildRequires: pkgconfig(zlib)
%description
FreeImage is an Open Source library project for developers who would like to
@@ -101,24 +97,23 @@
%patch0 -p1
%patch1
%patch2 -p1
-%if 0%{?suse_version} > 1210
%patch3 -p1
-%endif
-%if 0%{?suse_version} > 1220
-%patch4 -p1
-%else
-%patch5 -p1
-%endif
-%patch6 -p1
-# Remove bundled libs (except of LibJPEG/ and LibTIFF4/) to make sure these don't get used during compile
-rm -rf Source/LibPNG/ Source/LibRawLite/ Source/OpenEXR/ Source/ZLib/
-%if 0%{?suse_version} > 1210
-rm -rf Source/LibOpenJPEG/
-%endif
+# Remove bundled libs to make sure these don't get used during compile
+rm -rf Source/LibPNG/ Source/LibRawLite/ Source/OpenEXR/ Source/ZLib/ Source/LibOpenJPEG/ Source/LibJPEG/
-# Fix "wrong-file-end-of-line-encoding" rpmlint warning
-sed -i 's/\r$//' license-fi.txt license-gplv2.txt license-gplv3.txt Whatsnew.txt
+# clear files which cannot be built due to dependencies on private headers
+# (see also unbundle patch)
+# It disables the G3 Fax Loader and the JPEG lossless transformations plugins
+> Source/FreeImage/PluginG3.cpp
+> Source/FreeImageToolkit/JPEGTransform.cpp
+
+# sanitize encodings / line endings
+for file in `find . -type f -name '*.c' -or -name '*.cpp' -or -name '*.h' -or -name '*.txt' -or -name Makefile`; do
+ iconv --from=ISO-8859-15 --to=UTF-8 $file > $file.new && \
+ sed -i 's|\r||g' $file.new && \
+ touch -r $file $file.new && mv $file.new $file
+done
%build
sh ./gensrclist.sh
++++++ CVE-2015-0852.patch ++++++
diff -rupN FreeImage/Source/FreeImage/PluginPCX.cpp FreeImage-new/Source/FreeImage/PluginPCX.cpp
--- FreeImage/Source/FreeImage/PluginPCX.cpp 2015-03-02 02:07:08.000000000 +0100
+++ FreeImage-new/Source/FreeImage/PluginPCX.cpp 2015-09-05 02:44:55.429436425 +0200
@@ -30,7 +30,7 @@
// Constants + headers
// ----------------------------------------------------------
-#define IO_BUF_SIZE 2048
+#define PCX_IO_BUF_SIZE 2048
// ----------------------------------------------------------
@@ -120,17 +120,17 @@ readline(FreeImageIO &io, fi_handle hand
while (length--) {
if (count == 0) {
- if (*ReadPos >= IO_BUF_SIZE - 1 ) {
- if (*ReadPos == IO_BUF_SIZE - 1) {
+ if (*ReadPos >= PCX_IO_BUF_SIZE - 1 ) {
+ if (*ReadPos == PCX_IO_BUF_SIZE - 1) {
// we still have one BYTE, copy it to the start pos
- *ReadBuf = ReadBuf[IO_BUF_SIZE - 1];
+ *ReadBuf = ReadBuf[PCX_IO_BUF_SIZE - 1];
- io.read_proc(ReadBuf + 1, 1, IO_BUF_SIZE - 1, handle);
+ io.read_proc(ReadBuf + 1, 1, PCX_IO_BUF_SIZE - 1, handle);
} else {
// read the complete buffer
- io.read_proc(ReadBuf, 1, IO_BUF_SIZE, handle);
+ io.read_proc(ReadBuf, 1, PCX_IO_BUF_SIZE, handle);
}
*ReadPos = 0;
@@ -346,19 +346,9 @@ Load(FreeImageIO *io, fi_handle handle,
BOOL header_only = (flags & FIF_LOAD_NOPIXELS) == FIF_LOAD_NOPIXELS;
try {
- // check PCX identifier
-
- long start_pos = io->tell_proc(handle);
- BOOL validated = pcx_validate(io, handle);
- io->seek_proc(handle, start_pos, SEEK_SET);
- if(!validated) {
- throw FI_MSG_ERROR_MAGIC_NUMBER;
- }
-
- // process the header
-
PCXHEADER header;
+ // process the header
if(io->read_proc(&header, sizeof(PCXHEADER), 1, handle) != 1) {
throw FI_MSG_ERROR_PARSING;
}
@@ -366,20 +356,38 @@ Load(FreeImageIO *io, fi_handle handle,
SwapHeader(&header);
#endif
- // allocate a new DIB
+ // process the window
+ const WORD *window = header.window; // left, upper, right,lower pixel coord.
+ const int left = window[0];
+ const int top = window[1];
+ const int right = window[2];
+ const int bottom = window[3];
- unsigned width = header.window[2] - header.window[0] + 1;
- unsigned height = header.window[3] - header.window[1] + 1;
- unsigned bitcount = header.bpp * header.planes;
-
- if (bitcount == 24) {
- dib = FreeImage_AllocateHeader(header_only, width, height, bitcount, FI_RGBA_RED_MASK, FI_RGBA_GREEN_MASK, FI_RGBA_BLUE_MASK);
- } else {
- dib = FreeImage_AllocateHeader(header_only, width, height, bitcount);
+ // check image size
+ if((left >= right) || (top >= bottom)) {
+ throw FI_MSG_ERROR_PARSING;
}
- // if the dib couldn't be allocated, throw an error
+ const unsigned width = right - left + 1;
+ const unsigned height = bottom - top + 1;
+ const unsigned bitcount = header.bpp * header.planes;
+ // allocate a new dib
+ switch(bitcount) {
+ case 1:
+ case 4:
+ case 8:
+ dib = FreeImage_AllocateHeader(header_only, width, height, bitcount);
+ break;
+ case 24:
+ dib = FreeImage_AllocateHeader(header_only, width, height, bitcount, FI_RGBA_RED_MASK, FI_RGBA_GREEN_MASK, FI_RGBA_BLUE_MASK);
+ break;
+ default:
+ throw FI_MSG_ERROR_DIB_MEMORY;
+ break;
+ }
+
+ // if the dib couldn't be allocated, throw an error
if (!dib) {
throw FI_MSG_ERROR_DIB_MEMORY;
}
@@ -426,19 +434,23 @@ Load(FreeImageIO *io, fi_handle handle,
if (palette_id == 0x0C) {
BYTE *cmap = (BYTE*)malloc(768 * sizeof(BYTE));
- io->read_proc(cmap, 768, 1, handle);
- pal = FreeImage_GetPalette(dib);
- BYTE *pColormap = &cmap[0];
+ if(cmap) {
+ io->read_proc(cmap, 768, 1, handle);
- for(int i = 0; i < 256; i++) {
- pal[i].rgbRed = pColormap[0];
- pal[i].rgbGreen = pColormap[1];
- pal[i].rgbBlue = pColormap[2];
- pColormap += 3;
+ pal = FreeImage_GetPalette(dib);
+ BYTE *pColormap = &cmap[0];
+
+ for(int i = 0; i < 256; i++) {
+ pal[i].rgbRed = pColormap[0];
+ pal[i].rgbGreen = pColormap[1];
+ pal[i].rgbBlue = pColormap[2];
+ pColormap += 3;
+ }
+
+ free(cmap);
}
- free(cmap);
}
// wrong palette ID, perhaps a gray scale is needed ?
@@ -463,12 +475,12 @@ Load(FreeImageIO *io, fi_handle handle,
return dib;
}
- // calculate the line length for the PCX and the DIB
+ // calculate the line length for the PCX and the dib
// length of raster line in bytes
- unsigned linelength = header.bytes_per_line * header.planes;
- // length of DIB line (rounded to DWORD) in bytes
- unsigned pitch = FreeImage_GetPitch(dib);
+ const unsigned linelength = header.bytes_per_line * header.planes;
+ // length of dib line (rounded to DWORD) in bytes
+ const unsigned pitch = FreeImage_GetPitch(dib);
// run-length encoding ?
@@ -478,14 +490,18 @@ Load(FreeImageIO *io, fi_handle handle,
// ---------------
line = (BYTE*)malloc(linelength * sizeof(BYTE));
- if(!line) throw FI_MSG_ERROR_MEMORY;
+ if(!line) {
+ throw FI_MSG_ERROR_MEMORY;
+ }
- ReadBuf = (BYTE*)malloc(IO_BUF_SIZE * sizeof(BYTE));
- if(!ReadBuf) throw FI_MSG_ERROR_MEMORY;
+ ReadBuf = (BYTE*)malloc(PCX_IO_BUF_SIZE * sizeof(BYTE));
+ if(!ReadBuf) {
+ throw FI_MSG_ERROR_MEMORY;
+ }
bits = FreeImage_GetScanLine(dib, height - 1);
- int ReadPos = IO_BUF_SIZE;
+ int ReadPos = PCX_IO_BUF_SIZE;
if ((header.planes == 1) && ((header.bpp == 1) || (header.bpp == 8))) {
BYTE skip;
@@ -497,7 +513,7 @@ Load(FreeImageIO *io, fi_handle handle,
// skip trailing garbage at the end of the scanline
for (unsigned count = written; count < linelength; count++) {
- if (ReadPos < IO_BUF_SIZE) {
+ if (ReadPos < PCX_IO_BUF_SIZE) {
ReadPos++;
} else {
io->read_proc(&skip, sizeof(BYTE), 1, handle);
@@ -513,7 +529,9 @@ Load(FreeImageIO *io, fi_handle handle,
unsigned x, y, written;
buffer = (BYTE*)malloc(width * sizeof(BYTE));
- if(!buffer) throw FI_MSG_ERROR_MEMORY;
+ if(!buffer) {
+ throw FI_MSG_ERROR_MEMORY;
+ }
for (y = 0; y < height; y++) {
written = readline(*io, handle, line, linelength, bIsRLE, ReadBuf, &ReadPos);
@@ -532,7 +550,7 @@ Load(FreeImageIO *io, fi_handle handle,
}
}
- // then write the DIB row
+ // then write the dib row
for (x = 0; x < width / 2; x++) {
bits[x] = (buffer[2*x] << 4) | buffer[2*x+1];
@@ -541,7 +559,7 @@ Load(FreeImageIO *io, fi_handle handle,
// skip trailing garbage at the end of the scanline
for (unsigned count = written; count < linelength; count++) {
- if (ReadPos < IO_BUF_SIZE) {
+ if (ReadPos < PCX_IO_BUF_SIZE) {
ReadPos++;
} else {
io->read_proc(&skip, sizeof(BYTE), 1, handle);
++++++ doxygen.patch ++++++
--- /var/tmp/diff_new_pack.UUtaaR/_old 2016-01-01 19:47:24.000000000 +0100
+++ /var/tmp/diff_new_pack.UUtaaR/_new 2016-01-01 19:47:24.000000000 +0100
@@ -7,7 +7,7 @@
# if some version control system is used.
-PROJECT_NUMBER = "- FreeImage 3.15.1"
-+PROJECT_NUMBER = "- FreeImage 3.15.3"
++PROJECT_NUMBER = "- FreeImage 3.17.0"
# Using the PROJECT_BRIEF tag one can provide an optional one line description
# for a project that appears at the top of each page and should give viewer
++++++ makefiles_fixes.patch ++++++
--- /var/tmp/diff_new_pack.UUtaaR/_old 2016-01-01 19:47:24.000000000 +0100
+++ /var/tmp/diff_new_pack.UUtaaR/_new 2016-01-01 19:47:24.000000000 +0100
@@ -2,77 +2,35 @@
===================================================================
--- FreeImage.orig/Makefile.fip
+++ FreeImage/Makefile.fip
-@@ -15,10 +15,10 @@ LIBRARIES = -lstdc++
-
- MODULES = $(SRCS:.c=.o)
- MODULES := $(MODULES:.cpp=.o)
--CFLAGS ?= -O3 -fPIC -fexceptions -fvisibility=hidden -DNO_LCMS
--CFLAGS += $(INCLUDE)
--CXXFLAGS ?= -O3 -fPIC -fexceptions -fvisibility=hidden -Wno-ctor-dtor-privacy
--CXXFLAGS += $(INCLUDE)
-+override CFLAGS += -O3 -fPIC -fexceptions -fvisibility=hidden -DNO_LCMS
-+override CFLAGS += $(INCLUDE)
-+override CXXFLAGS += -O3 -fPIC -fexceptions -fvisibility=hidden -Wno-ctor-dtor-privacy
-+override CXXFLAGS += $(INCLUDE)
-
- ifeq ($(shell sh -c 'uname -m 2>/dev/null || echo not'),x86_64)
- CFLAGS += -fPIC
-@@ -59,14 +59,16 @@ $(STATICLIB): $(MODULES)
- $(AR) r $@ $(MODULES)
-
- $(SHAREDLIB): $(MODULES)
-- $(CC) -s -shared -Wl,-soname,$(VERLIBNAME) $(LDFLAGS) -o $@ $(MODULES) $(LIBRARIES)
-+ $(CC) -shared -Wl,-soname,$(VERLIBNAME) $(LDFLAGS) -o $@ $(MODULES) $(LIBRARIES)
-
- install:
- install -d $(INCDIR) $(INSTALLDIR)
-- install -m 644 -o root -g root $(HEADER) $(INCDIR)
-- install -m 644 -o root -g root $(HEADERFIP) $(INCDIR)
-- install -m 644 -o root -g root $(STATICLIB) $(INSTALLDIR)
-- install -m 755 -o root -g root $(SHAREDLIB) $(INSTALLDIR)
-+ install -m 644 $(HEADER) $(INCDIR)
-+ install -m 644 $(HEADERFIP) $(INCDIR)
-+ install -m 644 $(STATICLIB) $(INSTALLDIR)
-+ install -m 755 $(SHAREDLIB) $(INSTALLDIR)
-+ ln -sf $(SHAREDLIB) $(INSTALLDIR)/$(VERLIBNAME)
-+ ln -sf $(VERLIBNAME) $(INSTALLDIR)/$(LIBNAME)
-
- clean:
- rm -f core Dist/*.* u2dtmp* $(MODULES) $(STATICLIB) $(SHAREDLIB) $(LIBNAME)
+@@ -72,10 +72,10 @@
+
+ install:
+ install -d $(INCDIR) $(INSTALLDIR)
+- install -m 644 -o root -g root $(HEADER) $(INCDIR)
+- install -m 644 -o root -g root $(HEADERFIP) $(INCDIR)
+- install -m 644 -o root -g root $(STATICLIB) $(INSTALLDIR)
+- install -m 755 -o root -g root $(SHAREDLIB) $(INSTALLDIR)
++ install -m 644 $(HEADER) $(INCDIR)
++ install -m 644 $(HEADERFIP) $(INCDIR)
++ install -m 644 $(STATICLIB) $(INSTALLDIR)
++ install -m 755 $(SHAREDLIB) $(INSTALLDIR)
+ ln -sf $(SHAREDLIB) $(INSTALLDIR)/$(VERLIBNAME)
+ ln -sf $(VERLIBNAME) $(INSTALLDIR)/$(LIBNAME)
+
Index: FreeImage/Makefile.gnu
===================================================================
--- FreeImage.orig/Makefile.gnu
+++ FreeImage/Makefile.gnu
-@@ -15,10 +15,10 @@ LIBRARIES = -lstdc++
-
- MODULES = $(SRCS:.c=.o)
- MODULES := $(MODULES:.cpp=.o)
--CFLAGS ?= -O3 -fPIC -fexceptions -fvisibility=hidden -DNO_LCMS
--CFLAGS += $(INCLUDE)
--CXXFLAGS ?= -O3 -fPIC -fexceptions -fvisibility=hidden -Wno-ctor-dtor-privacy
--CXXFLAGS += $(INCLUDE)
-+override CFLAGS += -O3 -fPIC -fexceptions -fvisibility=hidden -DNO_LCMS
-+override CFLAGS += $(INCLUDE)
-+override CXXFLAGS += -O3 -fPIC -fexceptions -fvisibility=hidden -Wno-ctor-dtor-privacy
-+override CXXFLAGS += $(INCLUDE)
-
- ifeq ($(shell sh -c 'uname -m 2>/dev/null || echo not'),x86_64)
- CFLAGS += -fPIC
-@@ -58,13 +58,13 @@ $(STATICLIB): $(MODULES)
- $(AR) r $@ $(MODULES)
-
- $(SHAREDLIB): $(MODULES)
-- $(CC) -s -shared -Wl,-soname,$(VERLIBNAME) $(LDFLAGS) -o $@ $(MODULES) $(LIBRARIES)
-+ $(CC) -shared -Wl,-soname,$(VERLIBNAME) $(LDFLAGS) -o $@ $(MODULES) $(LIBRARIES)
-
- install:
- install -d $(INCDIR) $(INSTALLDIR)
-- install -m 644 -o root -g root $(HEADER) $(INCDIR)
-- install -m 644 -o root -g root $(STATICLIB) $(INSTALLDIR)
-- install -m 755 -o root -g root $(SHAREDLIB) $(INSTALLDIR)
-+ install -m 644 $(HEADER) $(INCDIR)
-+ install -m 644 $(STATICLIB) $(INSTALLDIR)
-+ install -m 755 $(SHAREDLIB) $(INSTALLDIR)
- ln -sf $(SHAREDLIB) $(INSTALLDIR)/$(VERLIBNAME)
- ln -sf $(VERLIBNAME) $(INSTALLDIR)/$(LIBNAME)
- # ldconfig
+@@ -71,9 +71,9 @@
+
+ install:
+ install -d $(INCDIR) $(INSTALLDIR)
+- install -m 644 -o root -g root $(HEADER) $(INCDIR)
+- install -m 644 -o root -g root $(STATICLIB) $(INSTALLDIR)
+- install -m 755 -o root -g root $(SHAREDLIB) $(INSTALLDIR)
++ install -m 644 $(HEADER) $(INCDIR)
++ install -m 644 $(STATICLIB) $(INSTALLDIR)
++ install -m 755 $(SHAREDLIB) $(INSTALLDIR)
+ ln -sf $(SHAREDLIB) $(INSTALLDIR)/$(VERLIBNAME)
+ ln -sf $(VERLIBNAME) $(INSTALLDIR)/$(LIBNAME)
+ # ldconfig
++++++ unbundle.patch ++++++
diff -rupN FreeImage/genfipsrclist.sh FreeImage-new/genfipsrclist.sh
--- FreeImage/genfipsrclist.sh 2015-02-20 10:52:16.000000000 +0100
+++ FreeImage-new/genfipsrclist.sh 2015-09-05 02:13:52.041353305 +0200
@@ -1,6 +1,6 @@
#!/bin/sh
-DIRLIST=". Source Source/Metadata Source/FreeImageToolkit Source/LibJPEG Source/LibPNG Source/LibTIFF4 Source/ZLib Source/LibOpenJPEG Source/OpenEXR Source/OpenEXR/Half Source/OpenEXR/Iex Source/OpenEXR/IlmImf Source/OpenEXR/IlmThread Source/OpenEXR/Imath Source/OpenEXR/IexMath Source/LibRawLite Source/LibRawLite/dcraw Source/LibRawLite/internal Source/LibRawLite/libraw Source/LibRawLite/src Source/LibWebP Source/LibJXR Source/LibJXR/common/include Source/LibJXR/image/sys Source/LibJXR/jxrgluelib Wrapper/FreeImagePlus"
+DIRLIST="Wrapper/FreeImagePlus"
echo "VER_MAJOR = 3" > fipMakefile.srcs
@@ -19,5 +19,6 @@ echo -n "INCLUDE =" >> fipMakefile.srcs
for DIR in $DIRLIST; do
echo -n " -I$DIR" >> fipMakefile.srcs
done
+echo -n " -IDist" >> fipMakefile.srcs
echo >> fipMakefile.srcs
diff -rupN FreeImage/gensrclist.sh FreeImage-new/gensrclist.sh
--- FreeImage/gensrclist.sh 2015-02-20 10:51:50.000000000 +0100
+++ FreeImage-new/gensrclist.sh 2015-09-05 02:13:52.041353305 +0200
@@ -1,6 +1,6 @@
#!/bin/sh
-DIRLIST=". Source Source/Metadata Source/FreeImageToolkit Source/LibJPEG Source/LibPNG Source/LibTIFF4 Source/ZLib Source/LibOpenJPEG Source/OpenEXR Source/OpenEXR/Half Source/OpenEXR/Iex Source/OpenEXR/IlmImf Source/OpenEXR/IlmThread Source/OpenEXR/Imath Source/OpenEXR/IexMath Source/LibRawLite Source/LibRawLite/dcraw Source/LibRawLite/internal Source/LibRawLite/libraw Source/LibRawLite/src Source/LibWebP Source/LibJXR Source/LibJXR/common/include Source/LibJXR/image/sys Source/LibJXR/jxrgluelib"
+DIRLIST=". Source Source/Metadata Source/FreeImageToolkit"
echo "VER_MAJOR = 3" > Makefile.srcs
echo "VER_MINOR = 17.0" >> Makefile.srcs
diff -rupN FreeImage/Makefile.fip FreeImage-new/Makefile.fip
--- FreeImage/Makefile.fip 2015-03-08 18:03:56.000000000 +0100
+++ FreeImage-new/Makefile.fip 2015-09-05 02:14:09.212684028 +0200
@@ -17,20 +17,22 @@ MODULES = $(SRCS:.c=.o)
MODULES := $(MODULES:.cpp=.o)
CFLAGS ?= -O3 -fPIC -fexceptions -fvisibility=hidden
# OpenJPEG
-CFLAGS += -DOPJ_STATIC
+override CFLAGS += -DOPJ_STATIC
# LibRaw
-CFLAGS += -DNO_LCMS
+override CFLAGS += -DNO_LCMS
# LibJXR
-CFLAGS += -DDISABLE_PERF_MEASUREMENT -D__ANSI__
-CFLAGS += $(INCLUDE)
+override CFLAGS += -DDISABLE_PERF_MEASUREMENT -D__ANSI__
+override CFLAGS += $(INCLUDE)
CXXFLAGS ?= -O3 -fPIC -fexceptions -fvisibility=hidden -Wno-ctor-dtor-privacy
# LibJXR
-CXXFLAGS += -D__ANSI__
-CXXFLAGS += $(INCLUDE)
+override CXXFLAGS += -D__ANSI__
+override CXXFLAGS += $(INCLUDE)
+LDFLAGS ?=
+override LDFLAGS += -LDist -lfreeimage-$(VER_MAJOR).$(VER_MINOR)
ifeq ($(shell sh -c 'uname -m 2>/dev/null || echo not'),x86_64)
- CFLAGS += -fPIC
- CXXFLAGS += -fPIC
+ override CFLAGS += -fPIC
+ override CXXFLAGS += -fPIC
endif
TARGET = freeimageplus
@@ -68,7 +70,7 @@ $(STATICLIB): $(MODULES)
$(AR) r $@ $(MODULES)
$(SHAREDLIB): $(MODULES)
- $(CC) -s -shared -Wl,-soname,$(VERLIBNAME) $(LDFLAGS) -o $@ $(MODULES) $(LIBRARIES)
+ $(CC) -shared -Wl,-soname,$(VERLIBNAME) $(LDFLAGS) -o $@ $(MODULES) $(LIBRARIES)
install:
install -d $(INCDIR) $(INSTALLDIR)
diff -rupN FreeImage/Makefile.gnu FreeImage-new/Makefile.gnu
--- FreeImage/Makefile.gnu 2015-03-08 18:04:00.000000000 +0100
+++ FreeImage-new/Makefile.gnu 2015-09-05 02:14:04.810599259 +0200
@@ -16,21 +16,11 @@ LIBRARIES = -lstdc++
MODULES = $(SRCS:.c=.o)
MODULES := $(MODULES:.cpp=.o)
CFLAGS ?= -O3 -fPIC -fexceptions -fvisibility=hidden
-# OpenJPEG
-CFLAGS += -DOPJ_STATIC
-# LibRaw
-CFLAGS += -DNO_LCMS
-# LibJXR
-CFLAGS += -DDISABLE_PERF_MEASUREMENT -D__ANSI__
-CFLAGS += $(INCLUDE)
-CXXFLAGS ?= -O3 -fPIC -fexceptions -fvisibility=hidden -Wno-ctor-dtor-privacy
-# LibJXR
-CXXFLAGS += -D__ANSI__
-CXXFLAGS += $(INCLUDE)
+override CFLAGS += $(INCLUDE) -D__ANSI__ -I/usr/include/jxrlib $(shell pkg-config --cflags OpenEXR libopenjp2 libraw libpng libtiff-4 libwebp libwebpmux zlib)
+override LDFLAGS += -ljpeg -ljpegxr -ljxrglue $(shell pkg-config --libs OpenEXR libopenjp2 libraw libpng libtiff-4 libwebp libwebpmux zlib)
ifeq ($(shell sh -c 'uname -m 2>/dev/null || echo not'),x86_64)
- CFLAGS += -fPIC
- CXXFLAGS += -fPIC
+ override CFLAGS += -fPIC
endif
TARGET = freeimage
@@ -61,13 +51,13 @@ FreeImage: $(STATICLIB) $(SHAREDLIB)
$(CC) $(CFLAGS) -c $< -o $@
.cpp.o:
- $(CXX) $(CXXFLAGS) -c $< -o $@
+ $(CXX) $(CFLAGS) -c $< -o $@
$(STATICLIB): $(MODULES)
$(AR) r $@ $(MODULES)
$(SHAREDLIB): $(MODULES)
- $(CC) -s -shared -Wl,-soname,$(VERLIBNAME) $(LDFLAGS) -o $@ $(MODULES) $(LIBRARIES)
+ $(CC) -shared -Wl,-soname,$(VERLIBNAME) $(LDFLAGS) -o $@ $(MODULES) $(LIBRARIES)
install:
install -d $(INCDIR) $(INSTALLDIR)
diff -rupN FreeImage/Source/FreeImage/J2KHelper.cpp FreeImage-new/Source/FreeImage/J2KHelper.cpp
--- FreeImage/Source/FreeImage/J2KHelper.cpp 2015-03-02 02:07:08.000000000 +0100
+++ FreeImage-new/Source/FreeImage/J2KHelper.cpp 2015-09-05 02:13:52.042353324 +0200
@@ -21,7 +21,7 @@
#include "FreeImage.h"
#include "Utilities.h"
-#include "../LibOpenJPEG/openjpeg.h"
+#include <openjpeg.h>
#include "J2KHelper.h"
// --------------------------------------------------------------------------
diff -rupN FreeImage/Source/FreeImage/Plugin.cpp FreeImage-new/Source/FreeImage/Plugin.cpp
--- FreeImage/Source/FreeImage/Plugin.cpp 2015-03-02 02:07:08.000000000 +0100
+++ FreeImage-new/Source/FreeImage/Plugin.cpp 2015-09-05 02:13:52.042353324 +0200
@@ -263,7 +263,12 @@ FreeImage_Initialise(BOOL load_local_plu
s_plugins->AddNode(InitDDS);
s_plugins->AddNode(InitGIF);
s_plugins->AddNode(InitHDR);
- s_plugins->AddNode(InitG3);
+/* The G3 fax format plugin is deliberately disabled in the Fedora build of
+ FreeImage as it requires that FreeImage uses a private copy of libtiff
+ which is a no no because of security reasons. */
+#if 0
+ s_plugins->AddNode(InitG3);
+#endif
s_plugins->AddNode(InitSGI);
s_plugins->AddNode(InitEXR);
s_plugins->AddNode(InitJ2K);
diff -rupN FreeImage/Source/FreeImage/PluginEXR.cpp FreeImage-new/Source/FreeImage/PluginEXR.cpp
--- FreeImage/Source/FreeImage/PluginEXR.cpp 2015-03-02 02:07:08.000000000 +0100
+++ FreeImage-new/Source/FreeImage/PluginEXR.cpp 2015-09-05 02:13:52.042353324 +0200
@@ -28,16 +28,16 @@
#pragma warning (disable : 4800) // ImfVersion.h - 'const int' : forcing value to bool 'true' or 'false' (performance warning)
#endif
-#include "../OpenEXR/IlmImf/ImfIO.h"
-#include "../OpenEXR/Iex/Iex.h"
-#include "../OpenEXR/IlmImf/ImfOutputFile.h"
-#include "../OpenEXR/IlmImf/ImfInputFile.h"
-#include "../OpenEXR/IlmImf/ImfRgbaFile.h"
-#include "../OpenEXR/IlmImf/ImfChannelList.h"
-#include "../OpenEXR/IlmImf/ImfRgba.h"
-#include "../OpenEXR/IlmImf/ImfArray.h"
-#include "../OpenEXR/IlmImf/ImfPreviewImage.h"
-#include "../OpenEXR/Half/half.h"
+#include <OpenEXR/ImfIO.h>
+#include <OpenEXR/Iex.h>
+#include <OpenEXR/ImfOutputFile.h>
+#include <OpenEXR/ImfInputFile.h>
+#include <OpenEXR/ImfRgbaFile.h>
+#include <OpenEXR/ImfChannelList.h>
+#include <OpenEXR/ImfRgba.h>
+#include <OpenEXR/ImfArray.h>
+#include <OpenEXR/ImfPreviewImage.h>
+#include <OpenEXR/half.h>
// ==========================================================
diff -rupN FreeImage/Source/FreeImage/PluginJ2K.cpp FreeImage-new/Source/FreeImage/PluginJ2K.cpp
--- FreeImage/Source/FreeImage/PluginJ2K.cpp 2015-03-02 02:07:08.000000000 +0100
+++ FreeImage-new/Source/FreeImage/PluginJ2K.cpp 2015-09-05 02:13:52.043353343 +0200
@@ -21,7 +21,7 @@
#include "FreeImage.h"
#include "Utilities.h"
-#include "../LibOpenJPEG/openjpeg.h"
+#include <openjpeg.h>
#include "J2KHelper.h"
// ==========================================================
diff -rupN FreeImage/Source/FreeImage/PluginJP2.cpp FreeImage-new/Source/FreeImage/PluginJP2.cpp
--- FreeImage/Source/FreeImage/PluginJP2.cpp 2015-03-02 02:07:08.000000000 +0100
+++ FreeImage-new/Source/FreeImage/PluginJP2.cpp 2015-09-05 02:13:52.043353343 +0200
@@ -21,7 +21,7 @@
#include "FreeImage.h"
#include "Utilities.h"
-#include "../LibOpenJPEG/openjpeg.h"
+#include <openjpeg.h>
#include "J2KHelper.h"
// ==========================================================
diff -rupN FreeImage/Source/FreeImage/PluginJPEG.cpp FreeImage-new/Source/FreeImage/PluginJPEG.cpp
--- FreeImage/Source/FreeImage/PluginJPEG.cpp 2015-03-02 02:07:08.000000000 +0100
+++ FreeImage-new/Source/FreeImage/PluginJPEG.cpp 2015-09-05 02:13:52.043353343 +0200
@@ -35,9 +35,9 @@ extern "C" {
#undef FAR
#include <setjmp.h>
-#include "../LibJPEG/jinclude.h"
-#include "../LibJPEG/jpeglib.h"
-#include "../LibJPEG/jerror.h"
+#include <stdio.h>
+#include <jpeglib.h>
+#include <jerror.h>
}
#include "FreeImage.h"
diff -rupN FreeImage/Source/FreeImage/PluginJXR.cpp FreeImage-new/Source/FreeImage/PluginJXR.cpp
--- FreeImage/Source/FreeImage/PluginJXR.cpp 2015-03-02 02:07:08.000000000 +0100
+++ FreeImage-new/Source/FreeImage/PluginJXR.cpp 2015-09-05 02:13:52.043353343 +0200
@@ -23,7 +23,7 @@
#include "Utilities.h"
#include "../Metadata/FreeImageTag.h"
-#include "../LibJXR/jxrgluelib/JXRGlue.h"
+#include <JXRGlue.h>
// ==========================================================
// Plugin Interface
diff -rupN FreeImage/Source/FreeImage/PluginPNG.cpp FreeImage-new/Source/FreeImage/PluginPNG.cpp
--- FreeImage/Source/FreeImage/PluginPNG.cpp 2015-03-10 20:16:12.000000000 +0100
+++ FreeImage-new/Source/FreeImage/PluginPNG.cpp 2015-09-05 02:13:52.044353363 +0200
@@ -40,8 +40,8 @@
// ----------------------------------------------------------
-#include "../ZLib/zlib.h"
-#include "../LibPNG/png.h"
+#include <zlib.h>
+#include <png.h>
// ----------------------------------------------------------
diff -rupN FreeImage/Source/FreeImage/PluginRAW.cpp FreeImage-new/Source/FreeImage/PluginRAW.cpp
--- FreeImage/Source/FreeImage/PluginRAW.cpp 2015-03-08 20:12:04.000000000 +0100
+++ FreeImage-new/Source/FreeImage/PluginRAW.cpp 2015-09-05 02:13:52.044353363 +0200
@@ -19,7 +19,7 @@
// Use at your own risk!
// ==========================================================
-#include "../LibRawLite/libraw/libraw.h"
+#include <libraw/libraw.h>
#include "FreeImage.h"
#include "Utilities.h"
diff -rupN FreeImage/Source/FreeImage/PluginTIFF.cpp FreeImage-new/Source/FreeImage/PluginTIFF.cpp
--- FreeImage/Source/FreeImage/PluginTIFF.cpp 2015-03-02 02:07:08.000000000 +0100
+++ FreeImage-new/Source/FreeImage/PluginTIFF.cpp 2015-09-05 02:13:52.044353363 +0200
@@ -37,9 +37,9 @@
#include "FreeImage.h"
#include "Utilities.h"
-#include "../LibTIFF4/tiffiop.h"
+#include <tiffio.h>
#include "../Metadata/FreeImageTag.h"
-#include "../OpenEXR/Half/half.h"
+#include <OpenEXR/half.h>
#include "FreeImageIO.h"
#include "PSDParser.h"
@@ -194,16 +194,6 @@ TIFFFdOpen(thandle_t handle, const char
return tif;
}
-/**
-Open a TIFF file for reading or writing
-@param name
-@param mode
-*/
-TIFF*
-TIFFOpen(const char* name, const char* mode) {
- return 0;
-}
-
// ----------------------------------------------------------
// TIFF library FreeImage-specific routines.
// ----------------------------------------------------------
diff -rupN FreeImage/Source/FreeImage/PluginWebP.cpp FreeImage-new/Source/FreeImage/PluginWebP.cpp
--- FreeImage/Source/FreeImage/PluginWebP.cpp 2015-03-02 02:07:08.000000000 +0100
+++ FreeImage-new/Source/FreeImage/PluginWebP.cpp 2015-09-05 02:13:52.044353363 +0200
@@ -24,10 +24,10 @@
#include "../Metadata/FreeImageTag.h"
-#include "../LibWebP/src/webp/decode.h"
-#include "../LibWebP/src/webp/encode.h"
-#include "../LibWebP/src/enc/vp8enci.h"
-#include "../LibWebP/src/webp/mux.h"
+#include <webp/decode.h>
+#include <webp/encode.h>
+// #include "../LibWebP/src/enc/vp8enci.h"
+#include <webp/mux.h>
// ==========================================================
// Plugin Interface
diff -rupN FreeImage/Source/FreeImage/ZLibInterface.cpp FreeImage-new/Source/FreeImage/ZLibInterface.cpp
--- FreeImage/Source/FreeImage/ZLibInterface.cpp 2015-03-02 02:07:10.000000000 +0100
+++ FreeImage-new/Source/FreeImage/ZLibInterface.cpp 2015-09-05 02:13:52.044353363 +0200
@@ -19,10 +19,9 @@
// Use at your own risk!
// ==========================================================
-#include "../ZLib/zlib.h"
+#include <zlib.h>
#include "FreeImage.h"
#include "Utilities.h"
-#include "../ZLib/zutil.h" /* must be the last header because of error C3163 in VS2008 (_vsnprintf defined in stdio.h) */
/**
Compresses a source buffer into a target buffer, using the ZLib library.
@@ -115,7 +114,7 @@ FreeImage_ZLibGZip(BYTE *target, DWORD t
return 0;
case Z_OK: {
// patch header, setup crc and length (stolen from mod_trace_output)
- BYTE *p = target + 8; *p++ = 2; *p = OS_CODE; // xflags, os_code
+ BYTE *p = target + 8; *p++ = 2; *p = 0x03; // xflags, os_code (unix)
crc = crc32(crc, source, source_size);
memcpy(target + 4 + dest_len, &crc, 4);
memcpy(target + 8 + dest_len, &source_size, 4);
diff -rupN FreeImage/Source/FreeImage.h FreeImage-new/Source/FreeImage.h
--- FreeImage/Source/FreeImage.h 2015-03-04 02:17:54.000000000 +0100
+++ FreeImage-new/Source/FreeImage.h 2015-09-05 02:13:52.045353382 +0200
@@ -155,8 +155,11 @@ typedef uint8_t BYTE;
typedef uint16_t WORD;
typedef uint32_t DWORD;
typedef int32_t LONG;
+// Disable these, they conflict with the (wrong) ones of libraw
+#if 0
typedef int64_t INT64;
typedef uint64_t UINT64;
+#endif
#else
// MS is not C99 ISO compliant
typedef long BOOL;
@@ -410,7 +413,12 @@ FI_ENUM(FREE_IMAGE_FORMAT) {
FIF_DDS = 24,
FIF_GIF = 25,
FIF_HDR = 26,
- FIF_FAXG3 = 27,
+/* The G3 fax format plugin is deliberately disabled in the Fedora build of
+ FreeImage as it requires that FreeImage uses a private copy of libtiff
+ which is a no no because of security reasons. */
+#if 0
+ FIF_FAXG3 = 27,
+#endif
FIF_SGI = 28,
FIF_EXR = 29,
FIF_J2K = 30,
@@ -473,6 +481,10 @@ FI_ENUM(FREE_IMAGE_DITHER) {
FID_BAYER16x16 = 6 //! Bayer ordered dispersed dot dithering (order 4 dithering matrix)
};
+/* The FreeImage_JPEGTransform functions are deliberately disabled in the
+ Fedora build of FreeImage as they require that FreeImage uses a private copy
+ of libjpeg which is a no no because of security reasons. */
+#if 0
/** Lossless JPEG transformations
Constants used in FreeImage_JPEGTransform
*/
@@ -486,6 +498,7 @@ FI_ENUM(FREE_IMAGE_JPEG_OPERATION) {
FIJPEG_OP_ROTATE_180 = 6, //! 180-degree rotation
FIJPEG_OP_ROTATE_270 = 7 //! 270-degree clockwise (or 90 ccw)
};
+#endif
/** Tone mapping operators.
Constants used in FreeImage_ToneMapping.
@@ -1076,7 +1089,10 @@ DLL_API const char* DLL_CALLCONV FreeIma
// --------------------------------------------------------------------------
// JPEG lossless transformation routines
// --------------------------------------------------------------------------
-
+/* The FreeImage_JPEGTransform functions are deliberately disabled in the
++ Fedora build of FreeImage as they require that FreeImage uses a private copy
++ of libjpeg which is a no no because of security reasons. */
+#if 0
DLL_API BOOL DLL_CALLCONV FreeImage_JPEGTransform(const char *src_file, const char *dst_file, FREE_IMAGE_JPEG_OPERATION operation, BOOL perfect FI_DEFAULT(TRUE));
DLL_API BOOL DLL_CALLCONV FreeImage_JPEGTransformU(const wchar_t *src_file, const wchar_t *dst_file, FREE_IMAGE_JPEG_OPERATION operation, BOOL perfect FI_DEFAULT(TRUE));
DLL_API BOOL DLL_CALLCONV FreeImage_JPEGCrop(const char *src_file, const char *dst_file, int left, int top, int right, int bottom);
@@ -1085,6 +1101,7 @@ DLL_API BOOL DLL_CALLCONV FreeImage_JPEG
DLL_API BOOL DLL_CALLCONV FreeImage_JPEGTransformCombined(const char *src_file, const char *dst_file, FREE_IMAGE_JPEG_OPERATION operation, int* left, int* top, int* right, int* bottom, BOOL perfect FI_DEFAULT(TRUE));
DLL_API BOOL DLL_CALLCONV FreeImage_JPEGTransformCombinedU(const wchar_t *src_file, const wchar_t *dst_file, FREE_IMAGE_JPEG_OPERATION operation, int* left, int* top, int* right, int* bottom, BOOL perfect FI_DEFAULT(TRUE));
DLL_API BOOL DLL_CALLCONV FreeImage_JPEGTransformCombinedFromMemory(FIMEMORY* src_stream, FIMEMORY* dst_stream, FREE_IMAGE_JPEG_OPERATION operation, int* left, int* top, int* right, int* bottom, BOOL perfect FI_DEFAULT(TRUE));
+#endif
// --------------------------------------------------------------------------
diff -rupN FreeImage/Source/FreeImageToolkit/JPEGTransform.cpp FreeImage-new/Source/FreeImageToolkit/JPEGTransform.cpp
--- FreeImage/Source/FreeImageToolkit/JPEGTransform.cpp 2015-03-02 02:07:10.000000000 +0100
+++ FreeImage-new/Source/FreeImageToolkit/JPEGTransform.cpp 2015-09-05 02:13:52.045353382 +0200
@@ -26,10 +26,10 @@ extern "C" {
#undef FAR
#include <setjmp.h>
-#include "../LibJPEG/jinclude.h"
-#include "../LibJPEG/jpeglib.h"
-#include "../LibJPEG/jerror.h"
-#include "../LibJPEG/transupp.h"
+#include <jinclude.h>
+#include <jpeglib.h>
+#include <jerror.h>
+#include <transupp.h>
}
#include "FreeImage.h"
diff -rupN FreeImage/Source/Metadata/TagConversion.cpp FreeImage-new/Source/Metadata/TagConversion.cpp
--- FreeImage/Source/Metadata/TagConversion.cpp 2015-03-02 02:07:10.000000000 +0100
+++ FreeImage-new/Source/Metadata/TagConversion.cpp 2015-09-05 02:13:52.045353382 +0200
@@ -30,6 +30,11 @@
#define MAX_TEXT_EXTENT 512
+// These were in FreeImage.h, but are moved here to avoid conflicts (see note in FreeImage.h)
+typedef int64_t INT64;
+typedef uint64_t UINT64;
+
+
/**
Convert a tag to a C string
*/
diff -rupN FreeImage/Source/Metadata/XTIFF.cpp FreeImage-new/Source/Metadata/XTIFF.cpp
--- FreeImage/Source/Metadata/XTIFF.cpp 2015-03-02 02:07:10.000000000 +0100
+++ FreeImage-new/Source/Metadata/XTIFF.cpp 2015-09-05 02:13:52.045353382 +0200
@@ -29,13 +29,18 @@
#pragma warning (disable : 4786) // identifier was truncated to 'number' characters
#endif
-#include "../LibTIFF4/tiffiop.h"
+#include <tiffio.h>
#include "FreeImage.h"
#include "Utilities.h"
#include "FreeImageTag.h"
#include "FIRational.h"
+extern "C"
+{
+ int _TIFFDataSize(TIFFDataType type);
+}
+
// ----------------------------------------------------------
// Extended TIFF Directory GEO Tag Support
// ----------------------------------------------------------
@@ -224,6 +229,33 @@ tiff_write_geotiff_profile(TIFF *tif, FI
// TIFF EXIF tag reading & writing
// ----------------------------------------------------------
+static uint32 exif_tag_ids[] = {
+ EXIFTAG_EXPOSURETIME, EXIFTAG_FNUMBER, EXIFTAG_EXPOSUREPROGRAM,
+ EXIFTAG_SPECTRALSENSITIVITY, EXIFTAG_ISOSPEEDRATINGS, EXIFTAG_OECF,
+ EXIFTAG_EXIFVERSION, EXIFTAG_DATETIMEORIGINAL, EXIFTAG_DATETIMEDIGITIZED,
+ EXIFTAG_COMPONENTSCONFIGURATION, EXIFTAG_COMPRESSEDBITSPERPIXEL,
+ EXIFTAG_SHUTTERSPEEDVALUE, EXIFTAG_APERTUREVALUE,
+ EXIFTAG_BRIGHTNESSVALUE, EXIFTAG_EXPOSUREBIASVALUE,
+ EXIFTAG_MAXAPERTUREVALUE, EXIFTAG_SUBJECTDISTANCE, EXIFTAG_METERINGMODE,
+ EXIFTAG_LIGHTSOURCE, EXIFTAG_FLASH, EXIFTAG_FOCALLENGTH,
+ EXIFTAG_SUBJECTAREA, EXIFTAG_MAKERNOTE, EXIFTAG_USERCOMMENT,
+ EXIFTAG_SUBSECTIME, EXIFTAG_SUBSECTIMEORIGINAL,
+ EXIFTAG_SUBSECTIMEDIGITIZED, EXIFTAG_FLASHPIXVERSION, EXIFTAG_COLORSPACE,
+ EXIFTAG_PIXELXDIMENSION, EXIFTAG_PIXELYDIMENSION,
+ EXIFTAG_RELATEDSOUNDFILE, EXIFTAG_FLASHENERGY,
+ EXIFTAG_SPATIALFREQUENCYRESPONSE, EXIFTAG_FOCALPLANEXRESOLUTION,
+ EXIFTAG_FOCALPLANEYRESOLUTION, EXIFTAG_FOCALPLANERESOLUTIONUNIT,
+ EXIFTAG_SUBJECTLOCATION, EXIFTAG_EXPOSUREINDEX, EXIFTAG_SENSINGMETHOD,
+ EXIFTAG_FILESOURCE, EXIFTAG_SCENETYPE, EXIFTAG_CFAPATTERN,
+ EXIFTAG_CUSTOMRENDERED, EXIFTAG_EXPOSUREMODE, EXIFTAG_WHITEBALANCE,
+ EXIFTAG_DIGITALZOOMRATIO, EXIFTAG_FOCALLENGTHIN35MMFILM,
+ EXIFTAG_SCENECAPTURETYPE, EXIFTAG_GAINCONTROL, EXIFTAG_CONTRAST,
+ EXIFTAG_SATURATION, EXIFTAG_SHARPNESS, EXIFTAG_DEVICESETTINGDESCRIPTION,
+ EXIFTAG_SUBJECTDISTANCERANGE, EXIFTAG_GAINCONTROL, EXIFTAG_GAINCONTROL,
+ EXIFTAG_IMAGEUNIQUEID
+};
+static int nExifTags = sizeof(exif_tag_ids) / sizeof(exif_tag_ids[0]);
+
/**
Read a single Exif tag
@@ -575,45 +607,11 @@ tiff_read_exif_tags(TIFF *tif, TagLib::M
// loop over all Core Directory Tags
// ### uses private data, but there is no other way
+ // -> Fedora: Best we can do without private headers is to hard-code a list of known EXIF tags and read those
if(md_model == TagLib::EXIF_MAIN) {
- const TIFFDirectory *td = &tif->tif_dir;
-
- uint32 lastTag = 0; //<- used to prevent reading some tags twice (as stored in tif_fieldinfo)
-
- for (int fi = 0, nfi = (int)tif->tif_nfields; nfi > 0; nfi--, fi++) {
- const TIFFField *fld = tif->tif_fields[fi];
-
- const uint32 tag_id = TIFFFieldTag(fld);
-
- if(tag_id == lastTag) {
- continue;
- }
-
- // test if tag value is set
- // (lifted directly from LibTiff _TIFFWriteDirectory)
-
- if( fld->field_bit == FIELD_CUSTOM ) {
- int is_set = FALSE;
-
- for(int ci = 0; ci < td->td_customValueCount; ci++ ) {
- is_set |= (td->td_customValues[ci].info == fld);
- }
-
- if( !is_set ) {
- continue;
- }
-
- } else if(!TIFFFieldSet(tif, fld->field_bit)) {
- continue;
- }
-
- // process *all* other tags (some will be ignored)
-
- tiff_read_exif_tag(tif, tag_id, dib, md_model);
-
- lastTag = tag_id;
+ for (int i = 0; i < nExifTags; ++i) {
+ tiff_read_exif_tag(tif, exif_tag_ids[i], dib, md_model);
}
-
}
return TRUE;
@@ -723,10 +721,9 @@ tiff_write_exif_tags(TIFF *tif, TagLib::
TagLib& tag_lib = TagLib::instance();
- for (int fi = 0, nfi = (int)tif->tif_nfields; nfi > 0; nfi--, fi++) {
- const TIFFField *fld = tif->tif_fields[fi];
-
- const uint32 tag_id = TIFFFieldTag(fld);
+ for (int fi = 0; fi < nExifTags; fi++) {
+ const uint32 tag_id = exif_tag_ids[fi];
+ const TIFFField *fld = TIFFFieldWithTag(tif, tag_id);
if(skip_write_field(tif, tag_id)) {
// skip tags that are already handled by the LibTIFF writing process
1
0
Hello community,
here is the log from the commit of package libdxfrw for openSUSE:Factory checked in at 2016-01-01 19:47:09
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/libdxfrw (Old)
and /work/SRC/openSUSE:Factory/.libdxfrw.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "libdxfrw"
Changes:
--------
--- /work/SRC/openSUSE:Factory/libdxfrw/libdxfrw.changes 2015-09-11 09:04:34.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.libdxfrw.new/libdxfrw.changes 2016-01-01 19:47:20.000000000 +0100
@@ -1,0 +2,6 @@
+Tue Dec 8 18:55:11 UTC 2015 - p.drouand(a)gmail.com
+
+- Update to version 0.6.3
+ * No changelog available for this version
+
+-------------------------------------------------------------------
Old:
----
libdxfrw-0.6.1.tar.bz2
New:
----
libdxfrw-0.6.3.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ libdxfrw.spec ++++++
--- /var/tmp/diff_new_pack.nZNM7D/_old 2016-01-01 19:47:21.000000000 +0100
+++ /var/tmp/diff_new_pack.nZNM7D/_new 2016-01-01 19:47:21.000000000 +0100
@@ -20,7 +20,7 @@
%define so_ver 0
Name: libdxfrw
-Version: 0.6.1
+Version: 0.6.3
Release: 0
Summary: Library to read and write DXF files
License: GPL-2.0+
++++++ libdxfrw-0.6.1.tar.bz2 -> libdxfrw-0.6.3.tar.bz2 ++++++
++++ 2537 lines of diff (skipped)
1
0
Hello community,
here is the log from the commit of package python-pyasn1-modules for openSUSE:Factory checked in at 2016-01-01 19:47:04
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-pyasn1-modules (Old)
and /work/SRC/openSUSE:Factory/.python-pyasn1-modules.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-pyasn1-modules"
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-pyasn1-modules/python-pyasn1-modules.changes 2015-08-14 14:46:47.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.python-pyasn1-modules.new/python-pyasn1-modules.changes 2016-01-01 19:47:15.000000000 +0100
@@ -1,0 +2,9 @@
+Tue Dec 29 17:10:09 UTC 2015 - michael(a)stroeder.com
+
+- Update to upstream release 0.0.8
+ - Wheel distribution format now supported
+ - Fix to misspelled rfc2459.id_at_sutname variable
+ - Fix to misspelled rfc2459.NameConstraints component tag ID
+ - Fix to misspelled rfc2459.GeneralSubtree component default status
+
+-------------------------------------------------------------------
Old:
----
pyasn1-modules-0.0.7.tar.gz
New:
----
pyasn1-modules-0.0.8.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-pyasn1-modules.spec ++++++
--- /var/tmp/diff_new_pack.PcCoqY/_old 2016-01-01 19:47:16.000000000 +0100
+++ /var/tmp/diff_new_pack.PcCoqY/_new 2016-01-01 19:47:16.000000000 +0100
@@ -17,7 +17,7 @@
Name: python-pyasn1-modules
-Version: 0.0.7
+Version: 0.0.8
Release: 0
Url: http://pyasn1.sf.net/
Summary: Collection of protocols modules written in ASN.1 language
++++++ pyasn1-modules-0.0.7.tar.gz -> pyasn1-modules-0.0.8.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pyasn1-modules-0.0.7/CHANGES.txt new/pyasn1-modules-0.0.8/CHANGES.txt
--- old/pyasn1-modules-0.0.7/CHANGES.txt 2015-08-01 09:34:10.000000000 +0200
+++ new/pyasn1-modules-0.0.8/CHANGES.txt 2015-09-28 12:34:11.000000000 +0200
@@ -1,5 +1,13 @@
-Revision 0.0.7
---------------
+Revision 0.0.8, released 28-09-2015
+-----------------------------------
+
+- Wheel distribution format now supported
+- Fix to misspelled rfc2459.id_at_sutname variable
+- Fix to misspelled rfc2459.NameConstraints component tag ID
+- Fix to misspelled rfc2459.GeneralSubtree component default status
+
+Revision 0.0.7, released 01-08-2015
+-----------------------------------
- Extensions added to text files, CVS attic flushed.
- Fix to rfc2459.BasicConstraints syntax.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pyasn1-modules-0.0.7/PKG-INFO new/pyasn1-modules-0.0.8/PKG-INFO
--- old/pyasn1-modules-0.0.7/PKG-INFO 2015-08-01 10:47:40.000000000 +0200
+++ new/pyasn1-modules-0.0.8/PKG-INFO 2015-09-28 14:34:05.000000000 +0200
@@ -1,6 +1,6 @@
-Metadata-Version: 1.0
+Metadata-Version: 1.1
Name: pyasn1-modules
-Version: 0.0.7
+Version: 0.0.8
Summary: A collection of ASN.1-based protocols modules.
Home-page: http://sourceforge.net/projects/pyasn1/
Author: Ilya Etingof <ilya(a)glas.net>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pyasn1-modules-0.0.7/pyasn1_modules/__init__.py new/pyasn1-modules-0.0.8/pyasn1_modules/__init__.py
--- old/pyasn1-modules-0.0.7/pyasn1_modules/__init__.py 2015-07-05 15:03:23.000000000 +0200
+++ new/pyasn1-modules-0.0.8/pyasn1_modules/__init__.py 2015-08-01 10:52:41.000000000 +0200
@@ -1,2 +1,2 @@
# http://www.python.org/dev/peps/pep-0396/
-__version__ = '0.0.7'
+__version__ = '0.0.8'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pyasn1-modules-0.0.7/pyasn1_modules/rfc2459.py new/pyasn1-modules-0.0.8/pyasn1_modules/rfc2459.py
--- old/pyasn1-modules-0.0.7/pyasn1_modules/rfc2459.py 2015-08-01 09:33:26.000000000 +0200
+++ new/pyasn1-modules-0.0.8/pyasn1_modules/rfc2459.py 2015-08-17 23:40:32.000000000 +0200
@@ -87,7 +87,8 @@
id_at = univ.ObjectIdentifier('2.5.4')
id_at_name = univ.ObjectIdentifier('2.5.4.41')
-id_at_sutname = univ.ObjectIdentifier('2.5.4.4')
+# preserve misspelled variable for compatibility
+id_at_sutname = id_at_surname = univ.ObjectIdentifier('2.5.4.4')
id_at_givenName = univ.ObjectIdentifier('2.5.4.42')
id_at_initials = univ.ObjectIdentifier('2.5.4.43')
id_at_generationQualifier = univ.ObjectIdentifier('2.5.4.44')
@@ -777,7 +778,7 @@
class GeneralSubtree(univ.Sequence):
componentType = namedtype.NamedTypes(
namedtype.NamedType('base', GeneralName()),
- namedtype.NamedType('minimum', BaseDistance(0).subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 0))),
+ namedtype.DefaultedNamedType('minimum', BaseDistance(0).subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 0))),
namedtype.OptionalNamedType('maximum', BaseDistance().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 1)))
)
@@ -790,7 +791,7 @@
class NameConstraints(univ.Sequence):
componentType = namedtype.NamedTypes(
namedtype.OptionalNamedType('permittedSubtrees', GeneralSubtrees().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 0))),
- namedtype.OptionalNamedType('excludedSubtrees', GeneralSubtrees().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 0)))
+ namedtype.OptionalNamedType('excludedSubtrees', GeneralSubtrees().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 1)))
)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pyasn1-modules-0.0.7/pyasn1_modules.egg-info/PKG-INFO new/pyasn1-modules-0.0.8/pyasn1_modules.egg-info/PKG-INFO
--- old/pyasn1-modules-0.0.7/pyasn1_modules.egg-info/PKG-INFO 2015-08-01 10:47:39.000000000 +0200
+++ new/pyasn1-modules-0.0.8/pyasn1_modules.egg-info/PKG-INFO 2015-09-28 14:34:05.000000000 +0200
@@ -1,6 +1,6 @@
-Metadata-Version: 1.0
+Metadata-Version: 1.1
Name: pyasn1-modules
-Version: 0.0.7
+Version: 0.0.8
Summary: A collection of ASN.1-based protocols modules.
Home-page: http://sourceforge.net/projects/pyasn1/
Author: Ilya Etingof <ilya(a)glas.net>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pyasn1-modules-0.0.7/pyasn1_modules.egg-info/SOURCES.txt new/pyasn1-modules-0.0.8/pyasn1_modules.egg-info/SOURCES.txt
--- old/pyasn1-modules-0.0.7/pyasn1_modules.egg-info/SOURCES.txt 2015-08-01 10:47:39.000000000 +0200
+++ new/pyasn1-modules-0.0.8/pyasn1_modules.egg-info/SOURCES.txt 2015-09-28 14:34:05.000000000 +0200
@@ -2,6 +2,8 @@
LICENSE.txt
MANIFEST.in
README.txt
+requirements.txt
+setup.cfg
setup.py
pyasn1_modules/__init__.py
pyasn1_modules/pem.py
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pyasn1-modules-0.0.7/requirements.txt new/pyasn1-modules-0.0.8/requirements.txt
--- old/pyasn1-modules-0.0.7/requirements.txt 1970-01-01 01:00:00.000000000 +0100
+++ new/pyasn1-modules-0.0.8/requirements.txt 2015-09-28 12:30:32.000000000 +0200
@@ -0,0 +1 @@
+pyasn1>=0.1.8
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pyasn1-modules-0.0.7/setup.cfg new/pyasn1-modules-0.0.8/setup.cfg
--- old/pyasn1-modules-0.0.7/setup.cfg 2015-08-01 10:47:40.000000000 +0200
+++ new/pyasn1-modules-0.0.8/setup.cfg 2015-09-28 14:34:05.000000000 +0200
@@ -1,5 +1,8 @@
+[bdist_wheel]
+universal = 1
+
[egg_info]
-tag_build =
tag_date = 0
+tag_build =
tag_svn_revision = 0
1
0
Hello community,
here is the log from the commit of package gtk2 for openSUSE:Factory checked in at 2016-01-01 19:46:58
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/gtk2 (Old)
and /work/SRC/openSUSE:Factory/.gtk2.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "gtk2"
Changes:
--------
--- /work/SRC/openSUSE:Factory/gtk2/gtk2.changes 2015-12-17 15:51:59.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.gtk2.new/gtk2.changes 2016-01-01 19:47:10.000000000 +0100
@@ -1,0 +2,7 @@
+Mon Dec 28 15:54:03 UTC 2015 - zaitor(a)opensuse.org
+
+- Add gtk2-randr-1.5-monitor-support.patch: Adds support for using
+ the newly introduced monitor objects in the XRandR protocol.
+ Patch from upstream git (bgo#759912).
+
+-------------------------------------------------------------------
New:
----
gtk2-randr-1.5-monitor-support.patch
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ gtk2.spec ++++++
--- /var/tmp/diff_new_pack.qzu7Od/_old 2016-01-01 19:47:12.000000000 +0100
+++ /var/tmp/diff_new_pack.qzu7Od/_new 2016-01-01 19:47:12.000000000 +0100
@@ -59,6 +59,8 @@
Patch57: gtk2-bgo743166-remember-printing-authentication.patch
# PATCH-FIX-UPSTREAM gtk2-bgo737777-fix-printing-authentication-crash.patch bgo#737777 joschibrauchle(a)gmx.de -- Applications crash randomly while printing with a password-secured SMB printer
Patch58: gtk2-bgo737777-fix-printing-authentication-crash.patch
+# PATCH-FIX-UPSTREAM gtk2-randr-1.5-monitor-support.patch bgo#759912 zaitor(a)opensuse.org -- Adds support for using the newly introduced monitor objects in the XRandR protocol.
+Patch59: gtk2-randr-1.5-monitor-support.patch
BuildRequires: atk-devel
BuildRequires: cairo-devel
BuildRequires: cups-devel
@@ -339,6 +341,7 @@
%patch56 -p1
%patch57 -p1
%patch58 -p1
+%patch59 -p1
gnome-patch-translation-update
%build
++++++ gtk2-randr-1.5-monitor-support.patch ++++++
>From 8bbd76593097bb00b7c60d56743b584062b8dcf5 Mon Sep 17 00:00:00 2001
From: Dave Airlie <airlied(a)redhat.com>
Date: Mon, 2 Feb 2015 16:02:04 +1000
Subject: gtk2-24: add randr 1.5 monitor support [v3]
This patch introduces support for using the newly introduced
monitor objects in the XRandR protocol. These objects are meant
to be used to denote a set of rectangles representing a logical
monitor, and are used to hide details like monitor tiling and
virtual gpu outputs.
This uses the new objects instead of crtc/outputs objects when
they are available to create the monitor lists. X server 1.18
is required on the server side for randr 1.5.
This patch was cherry-picked and fixed from the gtk3 branch and
squashes the two following additional fixupes:
v2: Fix primary monitor determination with XRANDR 1.5
Matthias Clasen <mclasen(a)redhat.com>
v3: Fix a typo in the previous patch
Matthias Clasen <mclasen(a)redhat.com>
https://bugzilla.gnome.org/show_bug.cgi?id=759912
---
configure.ac | 3 +++
gdk/x11/gdkdisplay-x11.c | 6 +++++
gdk/x11/gdkdisplay-x11.h | 1 +
gdk/x11/gdkscreen-x11.c | 69 ++++++++++++++++++++++++++++++++++++++++++++++++
4 files changed, 79 insertions(+)
diff --git a/configure.ac b/configure.ac
index 1c041e6..7ed414c 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1192,6 +1192,9 @@ if test "x$gdktarget" = "xx11"; then
if $PKG_CONFIG --exists "xrandr >= 1.2.99" ; then
AC_DEFINE(HAVE_RANDR, 1, [Have the Xrandr extension library])
+ if $PKG_CONFIG --exists "xrandr >= 1.5.0" ; then
+ AC_DEFINE(HAVE_RANDR15, 1, [Have the Xrandr 1.5 extension library])
+ fi
X_PACKAGES="$X_PACKAGES xrandr"
fi
diff --git a/gdk/x11/gdkdisplay-x11.c b/gdk/x11/gdkdisplay-x11.c
index 2bbcb35..0c63c55 100644
--- a/gdk/x11/gdkdisplay-x11.c
+++ b/gdk/x11/gdkdisplay-x11.c
@@ -182,6 +182,7 @@ gdk_display_open (const gchar *display_name)
/* RandR must be initialized before we initialize the screens */
display_x11->have_randr13 = FALSE;
+ display_x11->have_randr15 = FALSE;
#ifdef HAVE_RANDR
if (XRRQueryExtension (display_x11->xdisplay,
&display_x11->xrandr_event_base, &ignore))
@@ -193,6 +194,11 @@ gdk_display_open (const gchar *display_name)
if ((major == 1 && minor >= 3) || major > 1)
display_x11->have_randr13 = TRUE;
+#ifdef HAVE_RANDR15
+ if (minor >= 5 || major > 1)
+ display_x11->have_randr15 = TRUE;
+#endif
+
gdk_x11_register_standard_event_type (display, display_x11->xrandr_event_base, RRNumberEvents);
}
#endif
diff --git a/gdk/x11/gdkdisplay-x11.h b/gdk/x11/gdkdisplay-x11.h
index f8a55d0..de85623 100644
--- a/gdk/x11/gdkdisplay-x11.h
+++ b/gdk/x11/gdkdisplay-x11.h
@@ -87,6 +87,7 @@ struct _GdkDisplayX11
gint xdamage_event_base;
gboolean have_randr13;
+ gboolean have_randr15;
gint xrandr_event_base;
/* If the SECURITY extension is in place, whether this client holds
diff --git a/gdk/x11/gdkscreen-x11.c b/gdk/x11/gdkscreen-x11.c
index 66a0d96..9069bdc 100644
--- a/gdk/x11/gdkscreen-x11.c
+++ b/gdk/x11/gdkscreen-x11.c
@@ -740,6 +740,70 @@ monitor_compare_function (GdkX11Monitor *monitor1,
}
#endif
+#ifdef HAVE_RANDR15
+static gboolean
+init_randr15 (GdkScreen *screen)
+{
+ GdkDisplay *display = gdk_screen_get_display (screen);
+ GdkDisplayX11 *display_x11 = GDK_DISPLAY_X11 (display);
+ GdkScreenX11 *x11_screen = GDK_SCREEN_X11 (screen);
+ XRRMonitorInfo *rr_monitors;
+ int num_rr_monitors;
+ int i;
+ GArray *monitors;
+ XID primary_output = None;
+
+ if (!display_x11->have_randr15)
+ return FALSE;
+
+ rr_monitors = XRRGetMonitors (x11_screen->xdisplay,
+ x11_screen->xroot_window,
+ True,
+ &num_rr_monitors);
+ if (!rr_monitors)
+ return FALSE;
+
+ monitors = g_array_sized_new (FALSE, TRUE, sizeof (GdkX11Monitor),
+ num_rr_monitors);
+ for (i = 0; i < num_rr_monitors; i++)
+ {
+ GdkX11Monitor monitor;
+ init_monitor_geometry (&monitor,
+ rr_monitors[i].x,
+ rr_monitors[i].y,
+ rr_monitors[i].width,
+ rr_monitors[i].height);
+
+ monitor.width_mm = rr_monitors[i].mwidth;
+ monitor.height_mm = rr_monitors[i].mheight;
+ monitor.output = rr_monitors[i].outputs[0];
+ if (rr_monitors[i].primary)
+ primary_output = monitor.output;
+
+ g_array_append_val (monitors, monitor);
+ }
+ XRRFreeMonitors (rr_monitors);
+
+ g_array_sort (monitors,
+ (GCompareFunc) monitor_compare_function);
+ x11_screen->n_monitors = monitors->len;
+ x11_screen->monitors = (GdkX11Monitor *) g_array_free (monitors, FALSE);
+
+ x11_screen->primary_monitor = 0;
+
+ for (i = 0; i < x11_screen->n_monitors; i++)
+ {
+ if (x11_screen->monitors[i].output == primary_output)
+ {
+ x11_screen->primary_monitor = i;
+ break;
+ }
+ }
+
+ return x11_screen->n_monitors > 0;
+}
+#endif
+
static gboolean
init_randr13 (GdkScreen *screen)
{
@@ -1020,6 +1084,11 @@ init_multihead (GdkScreen *screen)
if (init_fake_xinerama (screen))
return;
+#ifdef HAVE_RANDR15
+ if (init_randr15 (screen))
+ return;
+#endif
+
if (init_randr13 (screen))
return;
--
cgit v0.11.2
1
0
Hello community,
here is the log from the commit of package xen for openSUSE:Factory checked in at 2016-01-01 19:46:52
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
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-12-18 21:53:28.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.xen.new/xen.changes 2016-01-01 19:47:04.000000000 +0100
@@ -1,0 +2,7 @@
+Mon Dec 21 09:09:55 UTC 2015 - ohering(a)suse.de
+
+- Adjust xen-dom0-modules.service to run Before xenstored.service
+ instead of proc-xen.mount to workaround a bug in systemd "design"
+ (bnc#959845)
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ xen.spec ++++++
--- /var/tmp/diff_new_pack.cDQ6JD/_old 2016-01-01 19:47:07.000000000 +0100
+++ /var/tmp/diff_new_pack.cDQ6JD/_new 2016-01-01 19:47:07.000000000 +0100
@@ -1,7 +1,7 @@
#
# spec file for package xen
#
-# 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
@@ -15,6 +15,7 @@
# Please submit bugfixes or comments via http://bugs.opensuse.org/
#
+
# needssslcertforbuild
Name: xen
++++++ xen-dom0-modules.service ++++++
--- /var/tmp/diff_new_pack.cDQ6JD/_old 2016-01-01 19:47:08.000000000 +0100
+++ /var/tmp/diff_new_pack.cDQ6JD/_new 2016-01-01 19:47:08.000000000 +0100
@@ -1,7 +1,7 @@
[Unit]
Description=Load dom0 backend drivers
ConditionPathExists=/proc/xen
-Before=proc-xen.mount
+Before=xenstored.service xen-watchdog.service
[Install]
WantedBy=multi-user.target
1
0
Hello community,
here is the log from the commit of package cogl for openSUSE:Factory checked in at 2016-01-01 19:46:46
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/cogl (Old)
and /work/SRC/openSUSE:Factory/.cogl.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "cogl"
Changes:
--------
--- /work/SRC/openSUSE:Factory/cogl/cogl.changes 2015-12-25 13:05:18.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.cogl.new/cogl.changes 2016-01-01 19:46:58.000000000 +0100
@@ -1,0 +2,7 @@
+Wed Dec 23 10:29:31 UTC 2015 - zaitor(a)opensuse.org
+
+- Add cogl-fix-black-login-screen.patch: Fix black and frozen
+ login screen after logout when using gdm in wayland mode and
+ session in x11 mode (boo#958885, bgo#758112, bgo#756926).
+
+-------------------------------------------------------------------
New:
----
cogl-fix-black-login-screen.patch
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ cogl.spec ++++++
--- /var/tmp/diff_new_pack.HCEaC3/_old 2016-01-01 19:46:59.000000000 +0100
+++ /var/tmp/diff_new_pack.HCEaC3/_new 2016-01-01 19:46:59.000000000 +0100
@@ -34,6 +34,8 @@
Source99: baselibs.conf
# PATCH-FIX-UPSTREAM cogl-GLES-Support-glMapBufferRange.patch zaitor(a)opensuse.org -- Support glmapbufferrange, patch from upstream git, stable branch.
Patch0: cogl-GLES-Support-glMapBufferRange.patch
+# PATCH-FIX-UPSTREAM cogl-fix-black-login-screen.patch boo#958885 zaitor(a)opensuse.org -- Fix black and frozen login screen after logout.
+Patch1: cogl-fix-black-login-screen.patch
BuildRequires: fdupes
BuildRequires: gtk-doc >= 1.13
BuildRequires: pkgconfig(cairo) >= 1.10
@@ -187,6 +189,7 @@
%prep
%setup -q
%patch0 -p1
+%patch1 -p1
%build
%configure \
++++++ cogl-fix-black-login-screen.patch ++++++
>From a583492ea2aa3ea8e78c269bd5db3f52f82aa79c Mon Sep 17 00:00:00 2001
From: Ray Strode <rstrode(a)redhat.com>
Date: Wed, 21 Oct 2015 15:47:01 -0400
Subject: kms-winsys: don't wait for a flip when page flipping fails
If we get EACCES from drmPageFlip we're not going to get
a flip event and shouldn't wait for one.
This commit changes the EACCES path to silently ignore the
failed flip request and just clean up the fb.
https://bugzilla.gnome.org/show_bug.cgi?id=756926
---
cogl/winsys/cogl-winsys-egl-kms.c | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/cogl/winsys/cogl-winsys-egl-kms.c b/cogl/winsys/cogl-winsys-egl-kms.c
index 20c325c..b460907 100644
--- a/cogl/winsys/cogl-winsys-egl-kms.c
+++ b/cogl/winsys/cogl-winsys-egl-kms.c
@@ -590,7 +590,7 @@ flip_all_crtcs (CoglDisplay *display, CoglFlipKMS *flip, int fb_id)
for (l = kms_display->crtcs; l; l = l->next)
{
CoglKmsCrtc *crtc = l->data;
- int ret;
+ int ret = 0;
if (crtc->count == 0 || crtc->ignore)
continue;
@@ -610,7 +610,8 @@ flip_all_crtcs (CoglDisplay *display, CoglFlipKMS *flip, int fb_id)
}
}
- flip->pending++;
+ if (ret == 0)
+ flip->pending++;
}
if (kms_renderer->page_flips_not_supported && needs_flip)
--
cgit v0.11.2
1
0
Hello community,
here is the log from the commit of package kernel-source for openSUSE:Factory checked in at 2016-01-01 19:46:33
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/kernel-source (Old)
and /work/SRC/openSUSE:Factory/.kernel-source.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "kernel-source"
Changes:
--------
--- /work/SRC/openSUSE:Factory/kernel-source/kernel-debug.changes 2015-12-29 12:49:45.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.kernel-source.new/kernel-debug.changes 2016-01-01 19:46:46.000000000 +0100
@@ -1,0 +2,7 @@
+Mon Dec 28 16:58:51 CET 2015 - jeffm(a)suse.com
+
+- ovl: fix permission checking for setattr (CVE-2015-8660
+ bsc#960281).
+- commit 77a3e32
+
+-------------------------------------------------------------------
kernel-default.changes: same change
kernel-docs.changes: same change
kernel-lpae.changes: same change
kernel-obs-build.changes: same change
kernel-obs-qa.changes: same change
kernel-pae.changes: same change
kernel-source.changes: same change
kernel-syms.changes: same change
kernel-vanilla.changes: same change
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ kernel-debug.spec ++++++
--- /var/tmp/diff_new_pack.JdRjGi/_old 2016-01-01 19:46:51.000000000 +0100
+++ /var/tmp/diff_new_pack.JdRjGi/_new 2016-01-01 19:46:51.000000000 +0100
@@ -59,7 +59,7 @@
Group: System/Kernel
Version: 4.3.3
%if 0%{?is_kotd}
-Release: <RELEASE>.g10b7cff
+Release: <RELEASE>.g77a3e32
%else
Release: 0
%endif
kernel-default.spec: same change
++++++ kernel-docs.spec ++++++
--- /var/tmp/diff_new_pack.JdRjGi/_old 2016-01-01 19:46:51.000000000 +0100
+++ /var/tmp/diff_new_pack.JdRjGi/_new 2016-01-01 19:46:51.000000000 +0100
@@ -29,7 +29,7 @@
Group: Documentation/Man
Version: 4.3.3
%if 0%{?is_kotd}
-Release: <RELEASE>.g10b7cff
+Release: <RELEASE>.g77a3e32
%else
Release: 0
%endif
++++++ kernel-lpae.spec ++++++
--- /var/tmp/diff_new_pack.JdRjGi/_old 2016-01-01 19:46:51.000000000 +0100
+++ /var/tmp/diff_new_pack.JdRjGi/_new 2016-01-01 19:46:51.000000000 +0100
@@ -59,7 +59,7 @@
Group: System/Kernel
Version: 4.3.3
%if 0%{?is_kotd}
-Release: <RELEASE>.g10b7cff
+Release: <RELEASE>.g77a3e32
%else
Release: 0
%endif
++++++ kernel-obs-build.spec ++++++
--- /var/tmp/diff_new_pack.JdRjGi/_old 2016-01-01 19:46:51.000000000 +0100
+++ /var/tmp/diff_new_pack.JdRjGi/_new 2016-01-01 19:46:51.000000000 +0100
@@ -44,7 +44,7 @@
Group: SLES
Version: 4.3.3
%if 0%{?is_kotd}
-Release: <RELEASE>.g10b7cff
+Release: <RELEASE>.g77a3e32
%else
Release: 0
%endif
kernel-obs-qa.spec: same change
++++++ kernel-pae.spec ++++++
--- /var/tmp/diff_new_pack.JdRjGi/_old 2016-01-01 19:46:52.000000000 +0100
+++ /var/tmp/diff_new_pack.JdRjGi/_new 2016-01-01 19:46:52.000000000 +0100
@@ -59,7 +59,7 @@
Group: System/Kernel
Version: 4.3.3
%if 0%{?is_kotd}
-Release: <RELEASE>.g10b7cff
+Release: <RELEASE>.g77a3e32
%else
Release: 0
%endif
++++++ kernel-source.spec ++++++
--- /var/tmp/diff_new_pack.JdRjGi/_old 2016-01-01 19:46:52.000000000 +0100
+++ /var/tmp/diff_new_pack.JdRjGi/_new 2016-01-01 19:46:52.000000000 +0100
@@ -32,7 +32,7 @@
Group: Development/Sources
Version: 4.3.3
%if 0%{?is_kotd}
-Release: <RELEASE>.g10b7cff
+Release: <RELEASE>.g77a3e32
%else
Release: 0
%endif
++++++ kernel-syms.spec ++++++
--- /var/tmp/diff_new_pack.JdRjGi/_old 2016-01-01 19:46:52.000000000 +0100
+++ /var/tmp/diff_new_pack.JdRjGi/_new 2016-01-01 19:46:52.000000000 +0100
@@ -27,7 +27,7 @@
Version: 4.3.3
%if %using_buildservice
%if 0%{?is_kotd}
-Release: <RELEASE>.g10b7cff
+Release: <RELEASE>.g77a3e32
%else
Release: 0
%endif
++++++ kernel-vanilla.spec ++++++
--- /var/tmp/diff_new_pack.JdRjGi/_old 2016-01-01 19:46:52.000000000 +0100
+++ /var/tmp/diff_new_pack.JdRjGi/_new 2016-01-01 19:46:52.000000000 +0100
@@ -59,7 +59,7 @@
Group: System/Kernel
Version: 4.3.3
%if 0%{?is_kotd}
-Release: <RELEASE>.g10b7cff
+Release: <RELEASE>.g77a3e32
%else
Release: 0
%endif
++++++ patches.fixes.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches.fixes/ovl-fix-permission-checking-for-setattr new/patches.fixes/ovl-fix-permission-checking-for-setattr
--- old/patches.fixes/ovl-fix-permission-checking-for-setattr 1970-01-01 01:00:00.000000000 +0100
+++ new/patches.fixes/ovl-fix-permission-checking-for-setattr 2015-12-28 16:58:51.000000000 +0100
@@ -0,0 +1,47 @@
+From: Miklos Szeredi <miklos(a)szeredi.hu>
+Date: Fri, 4 Dec 2015 19:18:48 +0100
+Subject: ovl: fix permission checking for setattr
+Git-commit: acff81ec2c79492b180fade3c2894425cd35a545
+Patch-mainline: v4.4-rc4
+References: CVE-2015-8660 bsc#960281
+
+[Al Viro] The bug is in being too enthusiastic about optimizing ->setattr()
+away - instead of "copy verbatim with metadata" + "chmod/chown/utimes"
+(with the former being always safe and the latter failing in case of
+insufficient permissions) it tries to combine these two. Note that copyup
+itself will have to do ->setattr() anyway; _that_ is where the elevated
+capabilities are right. Having these two ->setattr() (one to set verbatim
+copy of metadata, another to do what overlayfs ->setattr() had been asked
+to do in the first place) combined is where it breaks.
+
+Signed-off-by: Miklos Szeredi <miklos(a)szeredi.hu>
+Cc: <stable(a)vger.kernel.org>
+Signed-off-by: Al Viro <viro(a)zeniv.linux.org.uk>
+Acked-by: Jeff Mahoney <jeffm(a)suse.com>
+---
+ fs/overlayfs/inode.c | 8 ++++----
+ 1 file changed, 4 insertions(+), 4 deletions(-)
+
+diff --git a/fs/overlayfs/inode.c b/fs/overlayfs/inode.c
+index ec0c2a0..9612849 100644
+--- a/fs/overlayfs/inode.c
++++ b/fs/overlayfs/inode.c
+@@ -49,13 +49,13 @@ int ovl_setattr(struct dentry *dentry, struct iattr *attr)
+ if (err)
+ goto out;
+
+- upperdentry = ovl_dentry_upper(dentry);
+- if (upperdentry) {
++ err = ovl_copy_up(dentry);
++ if (!err) {
++ upperdentry = ovl_dentry_upper(dentry);
++
+ mutex_lock(&upperdentry->d_inode->i_mutex);
+ err = notify_change(upperdentry, attr, NULL);
+ mutex_unlock(&upperdentry->d_inode->i_mutex);
+- } else {
+- err = ovl_copy_up_last(dentry, attr, false);
+ }
+ ovl_drop_write(dentry);
+ out:
+
++++++ series.conf ++++++
--- /var/tmp/diff_new_pack.JdRjGi/_old 2016-01-01 19:46:52.000000000 +0100
+++ /var/tmp/diff_new_pack.JdRjGi/_new 2016-01-01 19:46:52.000000000 +0100
@@ -292,6 +292,7 @@
########################################################
# Overlayfs
########################################################
+ patches.fixes/ovl-fix-permission-checking-for-setattr
########################################################
# Swap-over-NFS
++++++ source-timestamp ++++++
--- /var/tmp/diff_new_pack.JdRjGi/_old 2016-01-01 19:46:52.000000000 +0100
+++ /var/tmp/diff_new_pack.JdRjGi/_new 2016-01-01 19:46:52.000000000 +0100
@@ -1,3 +1,3 @@
-2015-12-22 12:19:48 +0100
-GIT Revision: 10b7cffdfab2ff23f20a3b540351232646c1105d
+2015-12-28 16:58:51 +0100
+GIT Revision: 77a3e32efb4979780b41ec71dde40026a3045fbc
GIT Branch: stable
1
0