openSUSE Commits
Threads by month
- ----- 2025 -----
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2008 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2007 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2006 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
December 2012
- 1 participants
- 1223 discussions
Hello community,
here is the log from the commit of package swig for openSUSE:Factory checked in at 2012-12-21 10:36:03
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/swig (Old)
and /work/SRC/openSUSE:Factory/.swig.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "swig", Maintainer is "MMarek(a)suse.com"
Changes:
--------
--- /work/SRC/openSUSE:Factory/swig/swig.changes 2012-11-12 11:44:16.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.swig.new/swig.changes 2012-12-21 10:36:05.000000000 +0100
@@ -1,0 +2,29 @@
+Mon Dec 17 12:52:34 UTC 2012 - kkaempf(a)suse.com
+
+- Update to SWIG 2.0.9
+ SWIG-2.0.9 summary:
+ - Improved typemap matching.
+ - Ruby 1.9 support is much improved.
+ - Various bug fixes and minor improvements in C#, CFFI, Go, Java,
+ Modula3, Octave, Perl, Python, R, Ruby, Tcl and in ccache-swig.
+
+- Removed patches (included in 2.0.9 release)
+ - 0001-Ruby-replace-obsolete-STR2CSTR-macro-with-StringValu.patch
+ - 0002-Ruby-use-RbConfig-instead-of-deprecated-Config-modul.patch
+ - 0003-Ruby-Fix-include-pathes-for-Ruby-1.9.patch
+ - 0004-Ruby-Add-local-dir-to-loadpath-for-Ruby-1.9.patch
+ - 0007-Ruby-1.9-methods-returns-array-of-Symbols-now.patch
+
+- Removed broken patch
+ - swig-2.0.4-guile2.patch
+
+- Disable tests failing on (deprecated) Python 2.4
+ - new patch: python-2.4.patch
+
+-------------------------------------------------------------------
+Mon Nov 5 09:57:55 UTC 2012 - kkaempf(a)suse.com
+
+- fix build on SLE10: disable autogen.sh
+ Add patch: PyInt_FromSize_t unavailable under Python 2.4
+
+-------------------------------------------------------------------
Old:
----
0001-Ruby-replace-obsolete-STR2CSTR-macro-with-StringValu.patch
0002-Ruby-use-RbConfig-instead-of-deprecated-Config-modul.patch
0003-Ruby-Fix-include-pathes-for-Ruby-1.9.patch
0004-Ruby-Add-local-dir-to-loadpath-for-Ruby-1.9.patch
0007-Ruby-1.9-methods-returns-array-of-Symbols-now.patch
swig-2.0.4-guile2.patch
swig-2.0.8.tar.gz
New:
----
python-2.4.patch
skip-python-li_std_containers_int.patch
swig-2.0.9.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ swig.spec ++++++
--- /var/tmp/diff_new_pack.pVWDBS/_old 2012-12-21 10:36:07.000000000 +0100
+++ /var/tmp/diff_new_pack.pVWDBS/_new 2012-12-21 10:36:07.000000000 +0100
@@ -17,7 +17,7 @@
Name: swig
-Version: 2.0.8
+Version: 2.0.9
Release: 0
Summary: Simplified Wrapper and Interface Generator
License: GPL-3.0+ and BSD-3-Clause
@@ -25,20 +25,14 @@
Url: http://www.swig.org/
Source: http://sourceforge.net/projects/swig/files/swig/%{name}-%{version}/%{name}-…
Source1: %{name}.rpmlintrc
-# PATCH-FIX-UPSTREAM swig-2.0.4-guile2.patch pgajdos(a)suse.com -- generate guile 2 friendly code
-Patch: swig-2.0.4-guile2.patch
-# PATCH-PENDING-UPSTREAM - 3530439 - kkaempf(a)suse.de
-Patch1: 0001-Ruby-replace-obsolete-STR2CSTR-macro-with-StringValu.patch
-# PATCH-PENDING-UPSTREAM - 3530440 - kkaempf(a)suse.de
-Patch2: 0002-Ruby-use-RbConfig-instead-of-deprecated-Config-modul.patch
-# PATCH-PENDING-UPSTREAM - 3530442 - kkaempf(a)suse.de
-Patch3: 0003-Ruby-Fix-include-pathes-for-Ruby-1.9.patch
-# PATCH-PENDING-UPSTREAM - 3530443 - kkaempf(a)suse.de
-Patch4: 0004-Ruby-Add-local-dir-to-loadpath-for-Ruby-1.9.patch
-# PATCH-PENDING-UPSTREAM - 3530444 - kkaempf(a)suse.de
-Patch5: 0007-Ruby-1.9-methods-returns-array-of-Symbols-now.patch
+# Disable test failing on Python 2.4
+Patch5: python-2.4.patch
+# Disable tests failing on Ruby 1.9
Patch6: 0008-Ruby-Disable-broken-tests.patch
+# Disable test failing in Python
Patch7: 0012-Python-Disable-broken-test-in-threads_exception.patch
+# Test fails in openSUSE 12.1 only
+Patch8: skip-python-li_std_containers_int.patch
BuildRequires: autoconf
BuildRequires: automake
BuildRequires: boost-devel
@@ -53,7 +47,11 @@
%if 0%{?fedora} + 0%{?rhel_version} + 0%{?centos_version} > 0
%define docpath %{_docdir}/%{name}-%{version}
BuildRequires: pkgconfig
+BuildRequires: ruby
+%if (0%{?rhel_version} < 600) && (0%{?centos_version} < 600)
+# not available on RHEL-6
BuildRequires: ruby-devel
+%endif
%if 0%{?rhel_version} + 0%{?centos_version} == 0
BuildRequires: perl-devel
%endif
@@ -127,39 +125,22 @@
%prep
%setup -q
-# guile 2 from 12.1
-%patch -p1
# Ruby 1.9 from 12.1
-%if 0%{?suse_version} >= 1210
-%patch1 -p1
-%patch2 -p1
-%patch3 -p1
-%patch4 -p1
+%if 0%{?suse_version} == 1010
%patch5 -p1
+%endif
+%if 0%{?suse_version} >= 1210
%patch6 -p1
-%patch7 -p1
+%patch8 -p1
%endif
+%patch7 -p1
%build
-sh autogen.sh
%configure --disable-ccache
make %{?_smp_mflags}
%check
-# check fails on SLES9
-%if 0%{?sles_version} != 9
-# This test is buggy on x86-64
-%if 0%{?suse_version} == 1010
-%ifarch x86_64
-# This test fails on SLES 10 SP3+SP4 on 64bit (bnc#750618)
-rm -f Examples/test-suite/ruby/newobject1_runme.rb
-%endif
-%endif
-# Segfaults
-rm -f Examples/test-suite/python/li_std_containers_int_runme.py
-rm -f Examples/test-suite/python/li_boost_shared_ptr_runme.py
make check
-%endif
%install
make install DESTDIR=%{buildroot}
++++++ 0008-Ruby-Disable-broken-tests.patch ++++++
--- /var/tmp/diff_new_pack.pVWDBS/_old 2012-12-21 10:36:07.000000000 +0100
+++ /var/tmp/diff_new_pack.pVWDBS/_new 2012-12-21 10:36:07.000000000 +0100
@@ -1,17 +1,7 @@
-From 7fa5330f2610e8b4574bf7ba4670f8ed1a446b6e Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Klaus=20K=C3=A4mpf?= <kkaempf(a)suse.de>
-Date: Sat, 26 May 2012 21:42:08 +0200
-Subject: [PATCH 08/10] Ruby: Disable broken tests
-
----
- Examples/test-suite/ruby/Makefile.in | 8 ++++----
- 1 file changed, 4 insertions(+), 4 deletions(-)
-
-diff --git a/Examples/test-suite/ruby/Makefile.in b/Examples/test-suite/ruby/Makefile.in
-index e11e581..3a8af5c 100644
---- a/Examples/test-suite/ruby/Makefile.in
-+++ b/Examples/test-suite/ruby/Makefile.in
-@@ -14,18 +14,18 @@ CPP_TEST_CASES = \
+diff -wruN -x '*~' -x '*.o' -x '*.a' -x '*.so' -x '*.so.[0-9]' -x autom4te.cache -x .deps -x .libs -x Makefile ../orig-swig-2.0.9_svn13971/Examples/test-suite/ruby/Makefile.in ./Examples/test-suite/ruby/Makefile.in
+--- ../orig-swig-2.0.9_svn13971/Examples/test-suite/ruby/Makefile.in 2012-12-14 15:07:32.956499000 +0100
++++ ./Examples/test-suite/ruby/Makefile.in 2012-12-16 14:13:30.024200036 +0100
+@@ -14,18 +14,18 @@
li_cdata \
li_cstring \
li_factory \
@@ -29,11 +19,8 @@
- std_containers
+ ruby_track_objects_directors
+# std_containers
-+# li_std_set
+# li_std_functors
++# li_std_set
# ruby_li_std_speed
# stl_new
---
-1.7.9.2
-
++++++ python-2.4.patch ++++++
diff -wruN -x '*~' -x '*.o' -x '*.a' -x '*.so' -x '*.so.[0-9]' -x autom4te.cache -x .deps -x .libs -x Makefile -x Makefile.in ../orig-swig-2.0.8/Examples/test-suite/python/autodoc_runme.py ./Examples/test-suite/python/autodoc_runme.py
--- ../orig-swig-2.0.8/Examples/test-suite/python/autodoc_runme.py 2012-04-15 23:56:38.000000000 +0200
+++ ./Examples/test-suite/python/autodoc_runme.py 2012-12-12 14:04:02.873907051 +0100
@@ -121,23 +121,6 @@
" "
)
-check(A.variable_a.__doc__, "A_variable_a_get(self) -> int")
-check(A.variable_b.__doc__, "A_variable_b_get(A self) -> int")
-check(A.variable_c.__doc__, "\n"
-"A_variable_c_get(self) -> int\n"
-"\n"
-"Parameters:\n"
-" self: A *\n"
-"\n"
-)
-check(A.variable_d.__doc__, "\n"
-"A_variable_d_get(A self) -> int\n"
-"\n"
-"Parameters:\n"
-" self: A *\n"
-"\n"
-)
-
check(B.__doc__, "Proxy of C++ B class")
check(C.__init__.__doc__, "__init__(self, a, b, h) -> C")
check(D.__init__.__doc__, "__init__(D self, int a, int b, Hola h) -> D")
diff -wruN -x '*~' -x '*.o' -x '*.a' -x '*.so' -x '*.so.[0-9]' -x autom4te.cache -x .deps -x .libs -x Makefile -x Makefile.in ../orig-swig-2.0.8/Lib/python/pyhead.swg ./Lib/python/pyhead.swg
--- ../orig-swig-2.0.8/Lib/python/pyhead.swg 2012-08-15 09:48:57.000000000 +0200
+++ ./Lib/python/pyhead.swg 2012-12-11 13:21:24.686950170 +0100
@@ -18,6 +18,10 @@
#endif
+#if PY_MAJOR_VERSION == 2 && PY_MINOR_VERSION == 4
+#define PyInt_FromSize_t(x) PyInt_FromLong((long)x)
+#endif
+
#ifndef Py_TYPE
# define Py_TYPE(op) ((op)->ob_type)
#endif
diff -wruN -x '*~' -x '*.o' -x '*.a' -x '*.so' -x '*.so.[0-9]' -x autom4te.cache -x .deps -x .libs -x Makefile ../orig-swig-2.0.9/Examples/test-suite/python/Makefile.in ./Examples/test-suite/python/Makefile.in
--- ../orig-swig-2.0.9/Examples/test-suite/python/Makefile.in 2012-04-14 23:11:19.000000000 +0200
+++ ./Examples/test-suite/python/Makefile.in 2012-12-18 16:23:46.138238704 +0100
@@ -46,7 +46,6 @@
li_cwstring \
li_factory \
li_implicit \
- li_std_containers_int \
li_std_map_member \
li_std_multimap \
li_std_pair_extra \
@@ -69,6 +68,7 @@
swigobject \
template_matrix
+# li_std_containers_int
# li_std_carray
# director_profile
# python_pybuf
++++++ skip-python-li_std_containers_int.patch ++++++
diff -wruN -x '*~' ../orig-swig-2.0.9/Examples/test-suite/python/Makefile.in ./Examples/test-suite/python/Makefile.in
--- ../orig-swig-2.0.9/Examples/test-suite/python/Makefile.in 2012-04-14 23:11:19.000000000 +0200
+++ ./Examples/test-suite/python/Makefile.in 2012-12-19 15:12:29.072322715 +0100
@@ -46,7 +46,6 @@
li_cwstring \
li_factory \
li_implicit \
- li_std_containers_int \
li_std_map_member \
li_std_multimap \
li_std_pair_extra \
@@ -69,6 +68,7 @@
swigobject \
template_matrix
+# li_std_containers_int
# li_std_carray
# director_profile
# python_pybuf
++++++ swig-2.0.8.tar.gz -> swig-2.0.9.tar.gz ++++++
++++ 15721 lines of diff (skipped)
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package subversion for openSUSE:Factory checked in at 2012-12-21 10:35:25
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/subversion (Old)
and /work/SRC/openSUSE:Factory/.subversion.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "subversion", Maintainer is "DMueller(a)suse.com"
Changes:
--------
--- /work/SRC/openSUSE:Factory/subversion/subversion.changes 2012-12-10 17:20:03.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.subversion.new/subversion.changes 2012-12-21 10:35:27.000000000 +0100
@@ -1,0 +2,32 @@
+Mon Dec 17 00:00:00 UTC 2012 - andreas.stieger(a)gmx.de
+
+- update to 1.7.8 [bnc#794676]
+ + Client- and server-side bugfixes:
+ * Fix typos in pt_BR, es and zh_TW translations
+ + Client-side bugfixes:
+ * add missing attributes to "svn log -v --xml" output
+ * fix svn patch ignoring hunks after no trailing newline
+ * fix hang with ra_serf during error processing
+ * ignore file externals with mergeinfo when merging
+ * fix SEGV with "svnmucc cp rev arg" during argv processing
+ * fix conflict handling on symlinks
+ + Server-side bugfixes:
+ * properly detect threading availability
+ * fix "svnadmin load --bypass-prop-validation"
+ * fix parsing of [groupsfoo] sections in authz file
+ * add Vary: header to GET responses to improve cacheability
+ * fix fs_fs to cleanup after failed rep transmission
+ * fix mod_dav_svn to complain about revisions > HEAD
+ + Developer-visible changes:
+ * fix incorrect status returned by 1.6 API
+ * fix compilation with g++ 4.7
+- drop subversion-1.7.5-libsvn_auth_kwallet-r1345740.patch
+ as it was merged upstream
+- update annotation of subversion-1.7.4-ruby-1.9-RbConfig.patch
+- remove excess logging from optional regression tests to reduce
+ spurious build failures in OBS due to size of log
+- remove commands trailing "make check" which masked build failures
+- add subversion-1.7.8-TestHarness_run_py_test_exit_code.patch
+ to ensure "make check" fails when certain Python tests fail
+
+-------------------------------------------------------------------
Old:
----
subversion-1.7.5-libsvn_auth_kwallet-r1345740.patch
subversion-1.7.7.tar.bz2
New:
----
subversion-1.7.8-TestHarness_run_py_test_exit_code.patch
subversion-1.7.8.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ subversion.spec ++++++
--- /var/tmp/diff_new_pack.nSpc1i/_old 2012-12-21 10:35:30.000000000 +0100
+++ /var/tmp/diff_new_pack.nSpc1i/_new 2012-12-21 10:35:30.000000000 +0100
@@ -46,7 +46,7 @@
%endif
Name: subversion
-Version: 1.7.7
+Version: 1.7.8
Release: 0
# in-tree SWIG version to use for the build:
%define swig_version 1.3.36
@@ -165,10 +165,8 @@
Patch37: subversion-no-build-date.patch
# PATCH-FEATURE-UPSTREAM subversion-neon-systemproxy.patch dimstar(a)opensuse.org -- Use system proxy offered by neon, if no specific config is used (Thus, actually using libproxy in the background to use 'the right proxy' as configured in the system).
Patch38: subversion-neon-systemproxy.patch
-# PATCH-FIX-UPSTREAM subversion-1.7.4-ruby-1.9-RbConfig.patch andreas.stieger(a)gmx.de -- Fixes warning/error in ruby 1.9 "Use RbConfig instead of obsolete and deprecated Config"
Patch39: subversion-1.7.4-ruby-1.9-RbConfig.patch
-# PATCH-FIX-UPSTREAM subversion-1.7.5-libsvn_auth_kwallet-r1345740.patch peters(a)apache.org -- Remove a cast that is both ugly, and apparently illegal in g++ 4.7.
-Patch40: subversion-1.7.5-libsvn_auth_kwallet-r1345740.patch
+Patch40: subversion-1.7.8-TestHarness_run_py_test_exit_code.patch
#
%if %with_ruby
%if %{!?rb_arch:1}0
@@ -341,8 +339,8 @@
%patch31
%patch37
%patch38
-%patch39
-%patch40
+%patch39 -p1
+%patch40 -p1
SQLITE_RECOMMENDED_VER=$(grep -E '^SQLITE_RECOMMENDED_VER=' configure.ac|cut -f2 -d=|cut -f2 -d\")
#"
@@ -631,7 +629,7 @@
CHECK_FS_TYPE=fsfs
# run tests over ra_local (file://)
-%__make check LOG_TO_STDOUT=true CLEANUP=true FS_TYPE="$CHECK_FS_TYPE"
+%__make check CLEANUP=true FS_TYPE="$CHECK_FS_TYPE"
SVNSERVE_PIDFILE="$PWD/svnserve.pid"
HTTPD_PIDFILE="$PWD/httpd.pid"
@@ -677,7 +675,7 @@
# run tests over ra_svn (svn://)
"$PWD/subversion/svnserve/svnserve" --listen-host 127.0.0.1 --listen-port "$free_port" --pid-file "$SVNSERVE_PIDFILE" -d -r "$PWD/subversion/tests/cmdline"
-%__make check LOG_TO_STDOUT=true CLEANUP=true FS_TYPE="$CHECK_FS_TYPE" BASE_URL="svn://127.0.0.1:$free_port" || cat $RPM_SOURCE_DIR/%name*/tests.log
+%__make check CLEANUP=true FS_TYPE="$CHECK_FS_TYPE" BASE_URL="svn://127.0.0.1:$free_port"
kill -9 `cat "$SVNSERVE_PIDFILE" 2>/dev/null`
%__rm "$SVNSERVE_PIDFILE"
@@ -693,7 +691,7 @@
sed "s/REPLACE_BUILDDIR/${PWD//\//\\/}/g" | \
sed "s/REPLACE_APACHE_LIBEXECDIR/${APACHE_LIBEXECDIR//\//\\/}/g" > httpd.conf
LD_LIBRARY_PATH="%{buildroot}%{_libdir}:$LD_LIBRARY_PATH" /usr/sbin/httpd2 -d "$PWD" -f httpd.conf
-%__make check LOG_TO_STDOUT=true CLEANUP=true FS_TYPE="$CHECK_FS_TYPE" BASE_URL=http://127.0.0.1:$free_port HTTP_LIBRARY=neon || cat $RPM_SOURCE_DIR/%name*/tests.log
+%__make check CLEANUP=true FS_TYPE="$CHECK_FS_TYPE" BASE_URL=http://127.0.0.1:$free_port HTTP_LIBRARY=neon
kill -9 `cat "$HTTPD_PIDFILE" 2>/dev/null`
%__rm "$HTTPD_PIDFILE"
%endif # neon
@@ -710,7 +708,7 @@
sed "s/REPLACE_BUILDDIR/${PWD//\//\\/}/g" | \
sed "s/REPLACE_APACHE_LIBEXECDIR/${APACHE_LIBEXECDIR//\//\\/}/g" > httpd.conf
LD_LIBRARY_PATH="%{buildroot}%{_libdir}:$LD_LIBRARY_PATH" /usr/sbin/httpd2 -d "$PWD" -f httpd.conf
-%__make check LOG_TO_STDOUT=true CLEANUP=true FS_TYPE="$CHECK_FS_TYPE" BASE_URL=http://127.0.0.1:$free_port HTTP_LIBRARY=serf || cat $RPM_SOURCE_DIR/%name*/tests.log
+%__make check CLEANUP=true FS_TYPE="$CHECK_FS_TYPE" BASE_URL=http://127.0.0.1:$free_port HTTP_LIBRARY=serf
kill -9 `cat "$HTTPD_PIDFILE" 2>/dev/null`
%__rm "$HTTPD_PIDFILE"
%endif # serf
++++++ subversion-1.7.4-ruby-1.9-RbConfig.patch ++++++
--- /var/tmp/diff_new_pack.nSpc1i/_old 2012-12-21 10:35:30.000000000 +0100
+++ /var/tmp/diff_new_pack.nSpc1i/_new 2012-12-21 10:35:30.000000000 +0100
@@ -1,7 +1,36 @@
-Index: build/ac-macros/swig.m4
+From: Andreas Stieger <andreas.stieger(a)gmx.de>
+Date: Sat, 12 May 2012 00:20:35 +0100
+Subject: [PATCH] fix Ruby 1.9 deprecation warning for Config, use RbConfig
+References: http://mail-archives.apache.org/mod_mbox/subversion-dev/201205.mbox/%3C4FAD… https://mail-archives.apache.org/mod_mbox/subversion-commits/201205.mbox/%3…
+Upstream: merged
+
+Fixes warning/error in ruby 1.9 "Use RbConfig instead of obsolete and deprecated Config"
+
+$ svn log -r1337514 -v https://svn.apache.org/repos/asf/subversion/trunk/
+------------------------------------------------------------------------
+r1337514 | astieger | 2012-05-12 12:19:00 +0100 (Sat, 12 May 2012) | 9 lines
+Changed paths:
+ M /subversion/trunk/build/ac-macros/swig.m4
+ M /subversion/trunk/configure.ac
+
+fix Ruby 1.9 deprecation warning for Config, use RbConfig
+
+* configure.ac
+ replace Config with RbConfig
+* build/ac-macros/swig.m4
+ replace Config with RbConfig
+
+Approved by: gstein
+
+---
+ build/ac-macros/swig.m4 | 2 +-
+ configure.ac | 4 ++--
+ 2 files changed, 3 insertions(+), 3 deletions(-)
+
+Index: subversion-1.7.8/build/ac-macros/swig.m4
===================================================================
---- build/ac-macros/swig.m4.orig 2011-06-22 15:45:03.000000000 +0100
-+++ build/ac-macros/swig.m4 2012-10-04 18:38:50.000000000 +0100
+--- subversion-1.7.8.orig/build/ac-macros/swig.m4 2011-06-22 15:45:03.000000000 +0100
++++ subversion-1.7.8/build/ac-macros/swig.m4 2012-12-11 13:00:18.000000000 +0000
@@ -187,7 +187,7 @@ AC_DEFUN(SVN_FIND_SWIG,
for var_name in arch archdir CC LDSHARED DLEXT LIBS LIBRUBYARG \
rubyhdrdir sitedir sitelibdir sitearchdir libdir
@@ -11,10 +40,10 @@
eval "rbconfig_$var_name=\"$rbconfig_tmp\""
done
-Index: configure.ac
+Index: subversion-1.7.8/configure.ac
===================================================================
---- configure.ac.orig 2012-10-02 18:18:00.000000000 +0100
-+++ configure.ac 2012-10-04 18:38:50.000000000 +0100
+--- subversion-1.7.8.orig/configure.ac 2012-10-02 18:18:00.000000000 +0100
++++ subversion-1.7.8/configure.ac 2012-12-11 13:00:18.000000000 +0000
@@ -1117,12 +1117,12 @@ if test "$RUBY" != "none"; then
AC_PATH_PROGS(RDOC, rdoc rdoc1.8 rdoc18, none)
fi
++++++ subversion-1.7.8-TestHarness_run_py_test_exit_code.patch ++++++
Date: Wed, 12 Dec 2012 20:01:11 +0000
From: Andreas Stieger <andreas.stieger(a)gmx.de>
Subject: [PATCH] Prevent false negative results of "make check" in Python
References: http://svn.apache.org/viewvc/subversion/trunk/build/run_tests.py?r1=1420904…
Upstream: merged
Patch changes the test harness to prevent some false negatives when
running the test suite. Specifically, if a python test initialisation
returns in such a way that the test runner doesn't know how to handle
the result, change to code to return a non-zero exit code like and,
subsequently, have "make check" fail correctly. Reproducible by using
Python < 2.5 or missing sqlite3 Python bindings, exit triggered by
subversion/tests/cmdline/svntest/__init__.py
In the openSUSE obs, affects SLE 11 only, when building with unit tests.
svn diff -c1420944 https://svn.apache.org/repos/asf/subversion/trunk
---
build/run_tests.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
Index: subversion-1.7.8/build/run_tests.py
===================================================================
--- subversion-1.7.8.orig/build/run_tests.py 2012-09-29 05:02:11.000000000 +0100
+++ subversion-1.7.8/build/run_tests.py 2012-12-12 20:48:29.000000000 +0000
@@ -378,7 +378,7 @@ class TestHarness:
('.py', 'U', imp.PY_SOURCE))
except:
print('Don\'t know what to do about ' + progbase)
- raise
+ sys.exit(1)
import svntest.main
++++++ subversion-1.7.7.tar.bz2 -> subversion-1.7.8.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/subversion-1.7.7/CHANGES new/subversion-1.7.8/CHANGES
--- old/subversion-1.7.7/CHANGES 2012-10-03 18:36:35.000000000 +0200
+++ new/subversion-1.7.8/CHANGES 2012-12-10 20:30:57.000000000 +0100
@@ -1,3 +1,34 @@
+Version 1.7.8
+(17 Dec 2012, from /branches/1.7.x)
+http://svn.apache.org/repos/asf/subversion/tags/1.7.8
+ User-visible changes
+ - Client- and server-side bugfixes:
+ * Fix typos in pt_BR, es and zh_TW translations (r1402417, r1402421)
+
+ - Client-side bugfixes:
+ * fix crash with --username option on Windows (r1396285)
+ * add missing attributes to "svn log -v --xml" output (r1398100)
+ * fix svn patch ignoring hunks after no trailing newline (r139917)
+ * fix hang with ra_serf during error processing (r1403583)
+ * ignore file externals with mergeinfo when merging (r1401915)
+ * fix SEGV with "svnmucc cp rev arg" during argv processing (issue #4079)
+ * fix conflict handling on symlinks (issue #4091)
+
+ - Server-side bugfixes:
+ * properly detect threading availability (r1398325)
+ * fix "svnadmin load --bypass-prop-validation" (r1237779)
+ * fix parsing of [groupsfoo] sections in authz file (issue #3531)
+ * add Vary: header to GET responses to improve cacheability (r1390653)
+ * fix fs_fs to cleanup after failed rep transmission (r1403964, et al)
+ * fix mod_dav_svn to complain about revisions > HEAD (r1403588)
+
+ Developer-visible changes:
+ - General:
+ * fix incorrect status returned by 1.6 API (r1403258)
+ * fix compilation with g++ 4.7 (r1345740)
+ * fix svn_uri_get_file_url_from_dirent on Windows (r1409146)
+
+
Version 1.7.7
(09 Oct 2012, from /branches/1.7.x)
http://svn.apache.org/repos/asf/subversion/tags/1.7.7
@@ -47,7 +78,7 @@
- Client-side bugfixes:
* Fix "svn status -u --depth empty FILE" (r1348822, r1349215)
* Fix example output of 'svn help status' (issue #3962)
- * svn propset of svn:eol-style might not notice related text changes (r1353572)
+ * propset of svn:eol-style might not notice related text changes (r1353572)
* sort output of 'svn propget -R' (r1355699)
* sort output of 'svn proplist' (r1355698)
* sort output of 'svn status' (r1341012)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/subversion-1.7.7/configure new/subversion-1.7.8/configure
--- old/subversion-1.7.7/configure 2012-10-03 19:31:54.000000000 +0200
+++ new/subversion-1.7.8/configure 2012-12-10 21:05:58.000000000 +0100
@@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.68 for subversion 1.7.7.
+# Generated by GNU Autoconf 2.68 for subversion 1.7.8.
#
# Report bugs to <http://subversion.apache.org/>.
#
@@ -570,8 +570,8 @@
# Identity of this package.
PACKAGE_NAME='subversion'
PACKAGE_TARNAME='subversion'
-PACKAGE_VERSION='1.7.7'
-PACKAGE_STRING='subversion 1.7.7'
+PACKAGE_VERSION='1.7.8'
+PACKAGE_STRING='subversion 1.7.8'
PACKAGE_BUGREPORT='http://subversion.apache.org/'
PACKAGE_URL=''
@@ -1442,7 +1442,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 subversion 1.7.7 to adapt to many kinds of systems.
+\`configure' configures subversion 1.7.8 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1508,7 +1508,7 @@
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of subversion 1.7.7:";;
+ short | recursive ) echo "Configuration of subversion 1.7.8:";;
esac
cat <<\_ACEOF
@@ -1725,7 +1725,7 @@
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-subversion configure 1.7.7
+subversion configure 1.7.8
generated by GNU Autoconf 2.68
Copyright (C) 2010 Free Software Foundation, Inc.
@@ -2269,7 +2269,7 @@
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
-It was created by subversion $as_me 1.7.7, which was
+It was created by subversion $as_me 1.7.8, which was
generated by GNU Autoconf 2.68. Invocation command line was
$ $0 $@
@@ -2649,8 +2649,8 @@
-{ $as_echo "$as_me:${as_lineno-$LINENO}: Configuring Subversion 1.7.7" >&5
-$as_echo "$as_me: Configuring Subversion 1.7.7" >&6;}
+{ $as_echo "$as_me:${as_lineno-$LINENO}: Configuring Subversion 1.7.8" >&5
+$as_echo "$as_me: Configuring Subversion 1.7.8" >&6;}
abs_srcdir="`cd $srcdir && pwd`"
@@ -23817,7 +23817,7 @@
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
-This file was extended by subversion $as_me 1.7.7, which was
+This file was extended by subversion $as_me 1.7.8, which was
generated by GNU Autoconf 2.68. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -23883,7 +23883,7 @@
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\
-subversion config.status 1.7.7
+subversion config.status 1.7.8
configured by $0, generated by GNU Autoconf 2.68,
with options \\"\$ac_cs_config\\"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/subversion-1.7.7/subversion/bindings/swig/perl/native/core.c new/subversion-1.7.8/subversion/bindings/swig/perl/native/core.c
--- old/subversion-1.7.7/subversion/bindings/swig/perl/native/core.c 2012-10-03 19:31:25.000000000 +0200
+++ new/subversion-1.7.8/subversion/bindings/swig/perl/native/core.c 2012-12-10 21:05:28.000000000 +0100
@@ -42146,12 +42146,12 @@
} while(0) /*@SWIG@*/;
/*@SWIG:/home/breser/wandisco/svnrm/prefix/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
SV *sv = get_sv((char*) SWIG_prefix "SVN_VER_PATCH", TRUE | 0x2 | GV_ADDMULTI);
- sv_setsv(sv, SWIG_From_int SWIG_PERL_CALL_ARGS_1((int)(7)));
+ sv_setsv(sv, SWIG_From_int SWIG_PERL_CALL_ARGS_1((int)(8)));
SvREADONLY_on(sv);
} while(0) /*@SWIG@*/;
/*@SWIG:/home/breser/wandisco/svnrm/prefix/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
SV *sv = get_sv((char*) SWIG_prefix "SVN_VER_MICRO", TRUE | 0x2 | GV_ADDMULTI);
- sv_setsv(sv, SWIG_From_int SWIG_PERL_CALL_ARGS_1((int)(7)));
+ sv_setsv(sv, SWIG_From_int SWIG_PERL_CALL_ARGS_1((int)(8)));
SvREADONLY_on(sv);
} while(0) /*@SWIG@*/;
/*@SWIG:/home/breser/wandisco/svnrm/prefix/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
@@ -42161,7 +42161,7 @@
} while(0) /*@SWIG@*/;
/*@SWIG:/home/breser/wandisco/svnrm/prefix/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
SV *sv = get_sv((char*) SWIG_prefix "SVN_VER_TAG", TRUE | 0x2 | GV_ADDMULTI);
- sv_setsv(sv, SWIG_FromCharPtr(" (r1393599)"));
+ sv_setsv(sv, SWIG_FromCharPtr(" (r1419691)"));
SvREADONLY_on(sv);
} while(0) /*@SWIG@*/;
/*@SWIG:/home/breser/wandisco/svnrm/prefix/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
@@ -42171,22 +42171,22 @@
} while(0) /*@SWIG@*/;
/*@SWIG:/home/breser/wandisco/svnrm/prefix/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
SV *sv = get_sv((char*) SWIG_prefix "SVN_VER_REVISION", TRUE | 0x2 | GV_ADDMULTI);
- sv_setsv(sv, SWIG_From_int SWIG_PERL_CALL_ARGS_1((int)(1393599)));
+ sv_setsv(sv, SWIG_From_int SWIG_PERL_CALL_ARGS_1((int)(1419691)));
SvREADONLY_on(sv);
} while(0) /*@SWIG@*/;
/*@SWIG:/home/breser/wandisco/svnrm/prefix/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
SV *sv = get_sv((char*) SWIG_prefix "SVN_VER_NUM", TRUE | 0x2 | GV_ADDMULTI);
- sv_setsv(sv, SWIG_FromCharPtr("1.7.7"));
+ sv_setsv(sv, SWIG_FromCharPtr("1.7.8"));
SvREADONLY_on(sv);
} while(0) /*@SWIG@*/;
/*@SWIG:/home/breser/wandisco/svnrm/prefix/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
SV *sv = get_sv((char*) SWIG_prefix "SVN_VER_NUMBER", TRUE | 0x2 | GV_ADDMULTI);
- sv_setsv(sv, SWIG_FromCharPtr("1.7.7"));
+ sv_setsv(sv, SWIG_FromCharPtr("1.7.8"));
SvREADONLY_on(sv);
} while(0) /*@SWIG@*/;
/*@SWIG:/home/breser/wandisco/svnrm/prefix/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
SV *sv = get_sv((char*) SWIG_prefix "SVN_VERSION", TRUE | 0x2 | GV_ADDMULTI);
- sv_setsv(sv, SWIG_FromCharPtr("1.7.7 (r1393599)"));
+ sv_setsv(sv, SWIG_FromCharPtr("1.7.8 (r1419691)"));
SvREADONLY_on(sv);
} while(0) /*@SWIG@*/;
/*@SWIG:/home/breser/wandisco/svnrm/prefix/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/subversion-1.7.7/subversion/bindings/swig/python/core.c new/subversion-1.7.8/subversion/bindings/swig/python/core.c
--- old/subversion-1.7.7/subversion/bindings/swig/python/core.c 2012-10-03 19:31:06.000000000 +0200
+++ new/subversion-1.7.8/subversion/bindings/swig/python/core.c 2012-12-10 21:05:08.000000000 +0100
@@ -30993,15 +30993,15 @@
SWIG_Python_SetConstant(d, "SVN_ALLOCATOR_RECOMMENDED_MAX_FREE",SWIG_From_long((long)((4096*1024))));
SWIG_Python_SetConstant(d, "SVN_VER_MAJOR",SWIG_From_long((long)(1)));
SWIG_Python_SetConstant(d, "SVN_VER_MINOR",SWIG_From_long((long)(7)));
- SWIG_Python_SetConstant(d, "SVN_VER_PATCH",SWIG_From_long((long)(7)));
- SWIG_Python_SetConstant(d, "SVN_VER_MICRO",SWIG_From_long((long)(7)));
+ SWIG_Python_SetConstant(d, "SVN_VER_PATCH",SWIG_From_long((long)(8)));
+ SWIG_Python_SetConstant(d, "SVN_VER_MICRO",SWIG_From_long((long)(8)));
SWIG_Python_SetConstant(d, "SVN_VER_LIBRARY",SWIG_From_long((long)(1)));
- SWIG_Python_SetConstant(d, "SVN_VER_TAG",SWIG_FromCharPtr(" (r1393599)"));
+ SWIG_Python_SetConstant(d, "SVN_VER_TAG",SWIG_FromCharPtr(" (r1419691)"));
SWIG_Python_SetConstant(d, "SVN_VER_NUMTAG",SWIG_FromCharPtr(""));
- SWIG_Python_SetConstant(d, "SVN_VER_REVISION",SWIG_From_long((long)(1393599)));
- SWIG_Python_SetConstant(d, "SVN_VER_NUM",SWIG_FromCharPtr("1.7.7"));
- SWIG_Python_SetConstant(d, "SVN_VER_NUMBER",SWIG_FromCharPtr("1.7.7"));
- SWIG_Python_SetConstant(d, "SVN_VERSION",SWIG_FromCharPtr("1.7.7 (r1393599)"));
+ SWIG_Python_SetConstant(d, "SVN_VER_REVISION",SWIG_From_long((long)(1419691)));
+ SWIG_Python_SetConstant(d, "SVN_VER_NUM",SWIG_FromCharPtr("1.7.8"));
+ SWIG_Python_SetConstant(d, "SVN_VER_NUMBER",SWIG_FromCharPtr("1.7.8"));
+ SWIG_Python_SetConstant(d, "SVN_VERSION",SWIG_FromCharPtr("1.7.8 (r1419691)"));
SWIG_Python_SetConstant(d, "svn_prop_entry_kind",SWIG_From_long((long)(svn_prop_entry_kind)));
SWIG_Python_SetConstant(d, "svn_prop_wc_kind",SWIG_From_long((long)(svn_prop_wc_kind)));
SWIG_Python_SetConstant(d, "svn_prop_regular_kind",SWIG_From_long((long)(svn_prop_regular_kind)));
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/subversion-1.7.7/subversion/bindings/swig/ruby/core.c new/subversion-1.7.8/subversion/bindings/swig/ruby/core.c
--- old/subversion-1.7.7/subversion/bindings/swig/ruby/core.c 2012-10-03 19:31:41.000000000 +0200
+++ new/subversion-1.7.8/subversion/bindings/swig/ruby/core.c 2012-12-10 21:05:44.000000000 +0100
@@ -37520,15 +37520,15 @@
rb_define_module_function(mCore, "svn_pool_create", _wrap_svn_pool_create, -1);
rb_define_const(mCore, "SVN_VER_MAJOR", SWIG_From_int((int)(1)));
rb_define_const(mCore, "SVN_VER_MINOR", SWIG_From_int((int)(7)));
- rb_define_const(mCore, "SVN_VER_PATCH", SWIG_From_int((int)(7)));
- rb_define_const(mCore, "SVN_VER_MICRO", SWIG_From_int((int)(7)));
+ rb_define_const(mCore, "SVN_VER_PATCH", SWIG_From_int((int)(8)));
+ rb_define_const(mCore, "SVN_VER_MICRO", SWIG_From_int((int)(8)));
rb_define_const(mCore, "SVN_VER_LIBRARY", SWIG_From_int((int)(1)));
- rb_define_const(mCore, "SVN_VER_TAG", SWIG_FromCharPtr(" (r1393599)"));
+ rb_define_const(mCore, "SVN_VER_TAG", SWIG_FromCharPtr(" (r1419691)"));
rb_define_const(mCore, "SVN_VER_NUMTAG", SWIG_FromCharPtr(""));
- rb_define_const(mCore, "SVN_VER_REVISION", SWIG_From_int((int)(1393599)));
- rb_define_const(mCore, "SVN_VER_NUM", SWIG_FromCharPtr("1.7.7"));
- rb_define_const(mCore, "SVN_VER_NUMBER", SWIG_FromCharPtr("1.7.7"));
- rb_define_const(mCore, "SVN_VERSION", SWIG_FromCharPtr("1.7.7 (r1393599)"));
+ rb_define_const(mCore, "SVN_VER_REVISION", SWIG_From_int((int)(1419691)));
+ rb_define_const(mCore, "SVN_VER_NUM", SWIG_FromCharPtr("1.7.8"));
+ rb_define_const(mCore, "SVN_VER_NUMBER", SWIG_FromCharPtr("1.7.8"));
+ rb_define_const(mCore, "SVN_VERSION", SWIG_FromCharPtr("1.7.8 (r1419691)"));
SwigClassSvn_version_t.klass = rb_define_class_under(mCore, "Svn_version_t", rb_cObject);
SWIG_TypeClientData(SWIGTYPE_p_svn_version_t, (void *) &SwigClassSvn_version_t);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/subversion-1.7.7/subversion/include/svn_version.h new/subversion-1.7.8/subversion/include/svn_version.h
--- old/subversion-1.7.7/subversion/include/svn_version.h 2012-10-03 19:30:51.000000000 +0200
+++ new/subversion-1.7.8/subversion/include/svn_version.h 2012-12-10 21:04:50.000000000 +0100
@@ -71,7 +71,7 @@
*
* @since New in 1.1.
*/
-#define SVN_VER_PATCH 7
+#define SVN_VER_PATCH 8
/** @deprecated Provided for backward compatibility with the 1.0 API. */
@@ -94,7 +94,7 @@
*
* Always change this at the same time as SVN_VER_NUMTAG.
*/
-#define SVN_VER_TAG " (r1393599)"
+#define SVN_VER_TAG " (r1419691)"
/** Number tag: a string describing the version.
@@ -120,7 +120,7 @@
* When rolling a tarball, we automatically replace it with what we
* guess to be the correct revision number.
*/
-#define SVN_VER_REVISION 1393599
+#define SVN_VER_REVISION 1419691
/* Version strings composed from the above definitions. */
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/subversion-1.7.7/subversion/libsvn_auth_kwallet/kwallet.cpp new/subversion-1.7.8/subversion/libsvn_auth_kwallet/kwallet.cpp
--- old/subversion-1.7.7/subversion/libsvn_auth_kwallet/kwallet.cpp 2012-10-02 19:18:00.000000000 +0200
+++ new/subversion-1.7.8/subversion/libsvn_auth_kwallet/kwallet.cpp 2012-12-04 05:02:25.000000000 +0100
@@ -60,6 +60,9 @@
/* KWallet simple provider, puts passwords in KWallet */
/*-----------------------------------------------------------------------*/
+static int q_argc = 1;
+static char q_argv0[] = "svn"; // Build non-const char * from string constant
+static char *q_argv[] = { q_argv0 };
static const char *
get_application_name(apr_hash_t *parameters,
@@ -212,12 +215,11 @@
QCoreApplication *app;
if (! qApp)
{
- int argc = 1;
- app = new QCoreApplication(argc, (char *[1]) {(char *) "svn"});
+ int argc = q_argc;
+ app = new QCoreApplication(argc, q_argv);
}
- KCmdLineArgs::init(1,
- (char *[1]) {(char *) "svn"},
+ KCmdLineArgs::init(q_argc, q_argv,
get_application_name(parameters, pool),
"subversion",
ki18n(get_application_name(parameters, pool)),
@@ -289,12 +291,11 @@
QCoreApplication *app;
if (! qApp)
{
- int argc = 1;
- app = new QCoreApplication(argc, (char *[1]) {(char *) "svn"});
+ int argc = q_argc;
+ app = new QCoreApplication(argc, q_argv);
}
- KCmdLineArgs::init(1,
- (char *[1]) {(char *) "svn"},
+ KCmdLineArgs::init(q_argc, q_argv,
get_application_name(parameters, pool),
"subversion",
ki18n(get_application_name(parameters, pool)),
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/subversion-1.7.7/subversion/libsvn_client/merge.c new/subversion-1.7.8/subversion/libsvn_client/merge.c
--- old/subversion-1.7.7/subversion/libsvn_client/merge.c 2012-05-09 14:02:45.000000000 +0200
+++ new/subversion-1.7.8/subversion/libsvn_client/merge.c 2012-11-09 05:00:46.000000000 +0100
@@ -10577,6 +10577,32 @@
&working_revision, NULL, svn_depth_infinity,
NULL, ctx, scratch_pool, scratch_pool));
+ if (apr_hash_count(subtrees_with_mergeinfo))
+ {
+ apr_hash_t *externals;
+ apr_hash_index_t *hi;
+
+ SVN_ERR(svn_wc__externals_defined_below(&externals, ctx->wc_ctx,
+ target_abspath, scratch_pool,
+ scratch_pool));
+
+ for (hi = apr_hash_first(scratch_pool, subtrees_with_mergeinfo);
+ hi;
+ hi = apr_hash_next(hi))
+ {
+ const char *wc_path = svn__apr_hash_index_key(hi);
+
+ /* svn_client_propget4 picks up file externals with
+ mergeinfo, but we don't want those. */
+ if (apr_hash_get(externals, wc_path, APR_HASH_KEY_STRING))
+ {
+ apr_hash_set(subtrees_with_mergeinfo, wc_path,
+ APR_HASH_KEY_STRING, NULL);
+ continue;
+ }
+ }
+ }
+
/* Open two RA sessions, one to our source and one to our target. */
no_rev.kind = svn_opt_revision_unspecified;
SVN_ERR(svn_client__ra_session_from_path(&source_ra_session, &rev2, &url2,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/subversion-1.7.7/subversion/libsvn_diff/parse-diff.c new/subversion-1.7.8/subversion/libsvn_diff/parse-diff.c
--- old/subversion-1.7.7/subversion/libsvn_diff/parse-diff.c 2012-09-29 06:02:09.000000000 +0200
+++ new/subversion-1.7.8/subversion/libsvn_diff/parse-diff.c 2012-10-31 04:59:51.000000000 +0100
@@ -688,7 +688,6 @@
original_end = hunk_text_end;
if (modified_end == 0)
modified_end = hunk_text_end;
- break;
}
SVN_ERR(svn_io_file_seek(apr_file, APR_SET, &pos, iterpool));
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/subversion-1.7.7/subversion/libsvn_fs_fs/fs_fs.c new/subversion-1.7.8/subversion/libsvn_fs_fs/fs_fs.c
--- old/subversion-1.7.7/subversion/libsvn_fs_fs/fs_fs.c 2012-08-02 06:03:02.000000000 +0200
+++ new/subversion-1.7.8/subversion/libsvn_fs_fs/fs_fs.c 2012-11-21 05:02:07.000000000 +0100
@@ -5497,6 +5497,38 @@
return SVN_NO_ERROR;
}
+/* Something went wrong and the pool for the rep write is being
+ cleared before we've finished writing the rep. So we need
+ to remove the rep from the protorevfile and we need to unlock
+ the protorevfile. */
+static apr_status_t
+rep_write_cleanup(void *data)
+{
+ struct rep_write_baton *b = data;
+ const char *txn_id = svn_fs_fs__id_txn_id(b->noderev->id);
+ svn_error_t *err;
+
+ /* Truncate and close the protorevfile. */
+ err = svn_io_file_trunc(b->file, b->rep_offset, b->pool);
+ err = svn_error_compose_create(err, svn_io_file_close(b->file, b->pool));
+
+ /* Remove our lock regardless of any preceeding errors so that the
+ being_written flag is always removed and stays consistent with the
+ file lock which will be removed no matter what since the pool is
+ going away. */
+ err = svn_error_compose_create(err, unlock_proto_rev(b->fs, txn_id,
+ b->lockcookie, b->pool));
+ if (err)
+ {
+ apr_status_t rc = err->apr_err;
+ svn_error_clear(err);
+ return rc;
+ }
+
+ return APR_SUCCESS;
+}
+
+
/* Get a rep_write_baton and store it in *WB_P for the representation
indicated by NODEREV in filesystem FS. Perform allocations in
POOL. Only appropriate for file contents, not for props or
@@ -5560,6 +5592,10 @@
/* Now determine the offset of the actual svndiff data. */
SVN_ERR(get_file_offset(&b->delta_start, file, b->pool));
+ /* Cleanup in case something goes wrong. */
+ apr_pool_cleanup_register(b->pool, b, rep_write_cleanup,
+ apr_pool_cleanup_null);
+
/* Prepare to write the svndiff data. */
svn_txdelta_to_svndiff3(&wh,
&whb,
@@ -5667,6 +5703,9 @@
b->noderev->data_rep = rep;
}
+ /* Remove cleanup callback. */
+ apr_pool_cleanup_kill(b->pool, b, rep_write_cleanup);
+
/* Write out the new node-rev information. */
SVN_ERR(svn_fs_fs__put_node_revision(b->fs, b->noderev->id, b->noderev, FALSE,
b->pool));
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/subversion-1.7.7/subversion/libsvn_ra_serf/util.c new/subversion-1.7.8/subversion/libsvn_ra_serf/util.c
--- old/subversion-1.7.7/subversion/libsvn_ra_serf/util.c 2012-10-02 19:19:46.000000000 +0200
+++ new/subversion-1.7.8/subversion/libsvn_ra_serf/util.c 2012-10-31 05:00:11.000000000 +0100
@@ -758,7 +758,12 @@
SVN_ERR(svn_cstring_atoi64(&val, err_code));
ctx->error->apr_err = (apr_status_t)val;
}
- else
+
+ /* If there's no error code provided, or if the provided code is
+ 0 (which can happen sometimes depending on how the error is
+ constructed on the server-side), just pick a generic error
+ code to run with. */
+ if (! ctx->error->apr_err)
{
ctx->error->apr_err = SVN_ERR_RA_DAV_REQUEST_FAILED;
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/subversion-1.7.7/subversion/libsvn_repos/authz.c new/subversion-1.7.8/subversion/libsvn_repos/authz.c
--- old/subversion-1.7.7/subversion/libsvn_repos/authz.c 2011-11-15 19:13:44.000000000 +0100
+++ new/subversion-1.7.8/subversion/libsvn_repos/authz.c 2012-10-22 06:03:32.000000000 +0200
@@ -714,14 +714,15 @@
{
struct authz_validate_baton *b = baton;
- /* If the section is the groups definition, use the group checking
- callback. Otherwise, use the rule checking callback. */
- if (strncmp(name, "groups", 6) == 0)
+ /* Use the group checking callback for the "groups" section... */
+ if (strcmp(name, "groups") == 0)
svn_config_enumerate2(b->config, name, authz_validate_group,
baton, pool);
- else if (strncmp(name, "aliases", 7) == 0)
+ /* ...and the alias checking callback for "aliases"... */
+ else if (strcmp(name, "aliases") == 0)
svn_config_enumerate2(b->config, name, authz_validate_alias,
baton, pool);
+ /* ...but for everything else use the rule checking callback. */
else
svn_config_enumerate2(b->config, name, authz_validate_rule,
baton, pool);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/subversion-1.7.7/subversion/libsvn_repos/load-fs-vtable.c new/subversion-1.7.8/subversion/libsvn_repos/load-fs-vtable.c
--- old/subversion-1.7.7/subversion/libsvn_repos/load-fs-vtable.c 2011-07-08 03:28:39.000000000 +0200
+++ new/subversion-1.7.8/subversion/libsvn_repos/load-fs-vtable.c 2012-10-20 06:03:25.000000000 +0200
@@ -154,12 +154,12 @@
apr_pool_t *pool)
{
if (validate_props)
- return svn_fs_change_rev_prop2(svn_repos_fs(repos), revision, name,
- NULL, value, pool);
- else
return svn_repos_fs_change_rev_prop4(repos, revision, NULL, name,
NULL, value, FALSE, FALSE,
NULL, NULL, pool);
+ else
+ return svn_fs_change_rev_prop2(svn_repos_fs(repos), revision, name,
+ NULL, value, pool);
}
/* Change property NAME to VALUE for PATH in TXN_ROOT. If
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/subversion-1.7.7/subversion/libsvn_subr/dirent_uri.c new/subversion-1.7.8/subversion/libsvn_subr/dirent_uri.c
--- old/subversion-1.7.7/subversion/libsvn_subr/dirent_uri.c 2012-08-24 05:59:51.000000000 +0200
+++ new/subversion-1.7.8/subversion/libsvn_subr/dirent_uri.c 2012-12-06 05:02:28.000000000 +0100
@@ -2443,7 +2443,17 @@
*url = apr_pstrcat(pool, "file:", dirent, NULL);
}
else
- *url = apr_pstrcat(pool, "file:///", dirent, NULL);
+ {
+ char *uri = apr_pstrcat(pool, "file:///", dirent, NULL);
+ apr_size_t len = 8 /* strlen("file:///") */ + strlen(dirent);
+
+ /* "C:/" is a canonical dirent on Windows,
+ but "file:///C:/" is not a canonical uri */
+ if (uri[len-1] == '/')
+ uri[len-1] = '\0';
+
+ *url = uri;
+ }
#endif
return SVN_NO_ERROR;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/subversion-1.7.7/subversion/libsvn_subr/svn_cache_config.c new/subversion-1.7.8/subversion/libsvn_subr/svn_cache_config.c
--- old/subversion-1.7.7/subversion/libsvn_subr/svn_cache_config.c 2011-08-23 17:04:38.000000000 +0200
+++ new/subversion-1.7.8/subversion/libsvn_subr/svn_cache_config.c 2012-10-16 06:03:13.000000000 +0200
@@ -52,7 +52,7 @@
* has little impact on performance and a more modest
* value (< 100) may be more suitable.
*/
-#ifdef APR_HAS_THREADS
+#if APR_HAS_THREADS
FALSE /* assume multi-threaded operation.
* Because this simply activates proper synchronization
* between threads, it is a safe default.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/subversion-1.7.7/subversion/libsvn_subr/win32_crypto.c new/subversion-1.7.8/subversion/libsvn_subr/win32_crypto.c
--- old/subversion-1.7.7/subversion/libsvn_subr/win32_crypto.c 2012-10-02 19:18:00.000000000 +0200
+++ new/subversion-1.7.8/subversion/libsvn_subr/win32_crypto.c 2012-10-12 06:02:57.000000000 +0200
@@ -104,7 +104,7 @@
SVN_ERR(svn_auth__simple_password_get(done, &in, creds, realmstring, username,
parameters, non_interactive, pool));
- if (!done)
+ if (!*done)
return SVN_NO_ERROR;
blobin.cbData = strlen(in);
@@ -243,7 +243,7 @@
SVN_ERR(svn_auth__ssl_client_cert_pw_get(done, &in, creds, realmstring,
username, parameters,
non_interactive, pool));
- if (!done)
+ if (!*done)
return SVN_NO_ERROR;
blobin.cbData = strlen(in);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/subversion-1.7.7/subversion/libsvn_wc/update_editor.c new/subversion-1.7.8/subversion/libsvn_wc/update_editor.c
--- old/subversion-1.7.7/subversion/libsvn_wc/update_editor.c 2012-04-26 06:02:08.000000000 +0200
+++ new/subversion-1.7.8/subversion/libsvn_wc/update_editor.c 2012-12-10 18:56:17.000000000 +0100
@@ -750,6 +750,10 @@
initialized, this is never NULL, but it may have zero elements. */
apr_array_header_t *propchanges;
+ /* For existing files, whether there are local modifications. FALSE for added
+ files */
+ svn_boolean_t local_prop_mods;
+
/* Bump information for the directory this file lives in */
struct bump_dir_info *bump_info;
@@ -3299,7 +3303,7 @@
&fb->changed_author, NULL,
&fb->original_checksum, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL,
- &conflicted, NULL, NULL, NULL,
+ &conflicted, NULL, NULL, &fb->local_prop_mods,
NULL, NULL, &have_work,
eb->db, fb->local_abspath,
fb->pool, scratch_pool));
@@ -3522,6 +3526,85 @@
if (!fb->edited && svn_property_kind(NULL, name) == svn_prop_regular_kind)
SVN_ERR(mark_file_edited(fb, scratch_pool));
+ if (! fb->shadowed
+ && strcmp(name, SVN_PROP_SPECIAL) == 0)
+ {
+ struct edit_baton *eb = fb->edit_baton;
+ svn_boolean_t modified = FALSE;
+ svn_boolean_t becomes_symlink;
+ svn_boolean_t was_symlink;
+
+ /* Let's see if we have a change as in some scenarios servers report
+ non-changes of properties. */
+ becomes_symlink = (value != NULL);
+
+ if (fb->adding_file)
+ was_symlink = becomes_symlink; /* No change */
+ else
+ {
+ apr_hash_t *props;
+
+ /* We read the server-props, not the ACTUAL props here as we just
+ want to see if this is really an incoming prop change. */
+ SVN_ERR(svn_wc__db_base_get_props(&props, eb->db,
+ fb->local_abspath,
+ scratch_pool, scratch_pool));
+
+ was_symlink = ((props
+ && apr_hash_get(props, SVN_PROP_SPECIAL,
+ APR_HASH_KEY_STRING) != NULL)
+ ? svn_tristate_true
+ : svn_tristate_false);
+ }
+
+ if (was_symlink != becomes_symlink)
+ {
+ /* If the local node was not modified, we continue as usual, if
+ modified we want a tree conflict just like how we would handle
+ it when receiving a delete + add (aka "replace") */
+ if (fb->local_prop_mods)
+ modified = TRUE;
+ else
+ SVN_ERR(svn_wc__internal_file_modified_p(&modified, eb->db,
+ fb->local_abspath,
+ FALSE, scratch_pool));
+ }
+
+ if (modified)
+ {
+ svn_wc_conflict_description2_t *tree_conflict = NULL;
+
+ /* Create a copy of the existing (pre update) BASE node in WORKING,
+ mark a tree conflict and handle the rest of the update as
+ shadowed */
+ SVN_ERR(svn_wc__db_temp_op_make_copy(eb->db, fb->local_abspath,
+ scratch_pool));
+ /* ### Performance: We should just create the conflict here, without
+ ### verifying again */
+ SVN_ERR(check_tree_conflict(&tree_conflict, eb, fb->local_abspath,
+ svn_wc__db_status_added,
+ svn_wc__db_kind_file, TRUE,
+ svn_wc_conflict_action_edit,
+ svn_node_file, fb->new_relpath,
+ scratch_pool, scratch_pool));
+ SVN_ERR_ASSERT(tree_conflict != NULL);
+ SVN_ERR(svn_wc__db_op_set_tree_conflict(eb->db,
+ fb->local_abspath,
+ tree_conflict,
+ scratch_pool));
+ fb->edit_conflict = tree_conflict;
+
+ do_notification(eb, fb->local_abspath, svn_node_file,
+ svn_wc_notify_tree_conflict, scratch_pool);
+
+ /* Ok, we introduced a replacement, so we can now handle the rest
+ as a normal shadowed update */
+ fb->shadowed = TRUE;
+ fb->add_existed = FALSE;
+ fb->already_notified = TRUE;
+ }
+ }
+
return SVN_NO_ERROR;
}
@@ -4039,67 +4122,6 @@
if (current_actual_props == NULL)
current_actual_props = apr_hash_make(scratch_pool);
- /* Catch symlink-ness change.
- * add_file() doesn't know whether the incoming added node is a file or
- * a symlink, because symlink-ness is saved in a prop :(
- * So add_file() cannot notice when update wants to add a symlink where
- * locally there already is a file scheduled for addition, or vice versa.
- * It sees incoming symlinks as simple files and may wrongly try to offer
- * a text conflict. So flag a tree conflict here. */
- if (!fb->shadowed
- && (! fb->adding_file || fb->add_existed))
- {
- svn_boolean_t local_is_link;
- svn_boolean_t incoming_is_link;
- int i;
-
- local_is_link = apr_hash_get(local_actual_props,
- SVN_PROP_SPECIAL,
- APR_HASH_KEY_STRING) != NULL;
-
- incoming_is_link = local_is_link;
-
- /* Does an incoming propchange affect symlink-ness? */
- for (i = 0; i < regular_prop_changes->nelts; ++i)
- {
- const svn_prop_t *prop = &APR_ARRAY_IDX(regular_prop_changes, i,
- svn_prop_t);
-
- if (strcmp(prop->name, SVN_PROP_SPECIAL) == 0)
- {
- incoming_is_link = (prop->value != NULL);
- break;
- }
- }
-
- if (local_is_link != incoming_is_link)
- {
- svn_wc_conflict_description2_t *tree_conflict = NULL;
-
- fb->shadowed = TRUE;
- fb->obstruction_found = TRUE;
- fb->add_existed = FALSE;
-
- /* ### Performance: We should just create the conflict here, without
- ### verifying again */
- SVN_ERR(check_tree_conflict(&tree_conflict, eb, fb->local_abspath,
- svn_wc__db_status_added,
- svn_wc__db_kind_file, TRUE,
- svn_wc_conflict_action_add,
- svn_node_file, fb->new_relpath,
- scratch_pool, scratch_pool));
- SVN_ERR_ASSERT(tree_conflict != NULL);
- SVN_ERR(svn_wc__db_op_set_tree_conflict(eb->db,
- fb->local_abspath,
- tree_conflict,
- scratch_pool));
-
- fb->already_notified = TRUE;
- do_notification(eb, fb->local_abspath, svn_node_unknown,
- svn_wc_notify_tree_conflict, scratch_pool);
- }
- }
-
prop_state = svn_wc_notify_state_unknown;
if (! fb->shadowed)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/subversion-1.7.7/subversion/libsvn_wc/util.c new/subversion-1.7.8/subversion/libsvn_wc/util.c
--- old/subversion-1.7.7/subversion/libsvn_wc/util.c 2011-06-22 14:15:55.000000000 +0200
+++ new/subversion-1.7.8/subversion/libsvn_wc/util.c 2012-11-09 05:01:06.000000000 +0100
@@ -463,7 +463,7 @@
/* (Currently a no-op, but just make sure it is ok) */
if (old_status->repos_node_status == svn_wc_status_modified
|| old_status->repos_node_status == svn_wc_status_conflicted)
- (*status)->text_status = old_status->repos_text_status;
+ (*status)->repos_text_status = old_status->repos_text_status;
if (old_status->node_status == svn_wc_status_added)
(*status)->prop_status = svn_wc_status_none; /* No separate info */
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/subversion-1.7.7/subversion/mod_dav_svn/reports/update.c new/subversion-1.7.8/subversion/mod_dav_svn/reports/update.c
--- old/subversion-1.7.7/subversion/mod_dav_svn/reports/update.c 2012-04-26 06:01:59.000000000 +0200
+++ new/subversion-1.7.8/subversion/mod_dav_svn/reports/update.c 2012-12-07 05:02:33.000000000 +0100
@@ -845,6 +845,49 @@
}
+/* Validate that REVISION is a valid revision number for repository in
+ which YOUNGEST is the latest revision. Use RESOURCE as a
+ convenient way to access the request record and a pool for error
+ messaging. (It's okay if REVISION is SVN_INVALID_REVNUM, as in
+ the related contexts that just means "the youngest revision".)
+
+ REVTYPE is just a string describing the type/purpose of REVISION,
+ used in the generated error string. */
+static dav_error *
+validate_input_revision(svn_revnum_t revision,
+ svn_revnum_t youngest,
+ const char *revtype,
+ const dav_resource *resource)
+{
+ if (! SVN_IS_VALID_REVNUM(revision))
+ return SVN_NO_ERROR;
+
+ if (revision > youngest)
+ {
+ svn_error_t *serr;
+
+ if (dav_svn__get_master_uri(resource->info->r))
+ {
+ serr = svn_error_createf(SVN_ERR_FS_NO_SUCH_REVISION, 0,
+ "No such %s '%ld' found in the repository. "
+ "Perhaps the repository is out of date with "
+ "respect to the master repository?",
+ revtype, revision);
+ }
+ else
+ {
+ serr = svn_error_createf(SVN_ERR_FS_NO_SUCH_REVISION, 0,
+ "No such %s '%ld' found in the repository.",
+ revtype, revision);
+ }
+ return dav_svn__convert_err(serr, HTTP_INTERNAL_SERVER_ERROR,
+ "Invalid revision found in update report "
+ "request.", resource->pool);
+ }
+ return SVN_NO_ERROR;
+}
+
+
dav_error *
dav_svn__update_report(const dav_resource *resource,
const apr_xml_doc *doc,
@@ -854,8 +897,7 @@
apr_xml_elem *child;
void *rbaton = NULL;
update_ctx_t uc = { 0 };
- svn_revnum_t revnum = SVN_INVALID_REVNUM;
- svn_boolean_t revnum_is_head = FALSE;
+ svn_revnum_t youngest, revnum = SVN_INVALID_REVNUM;
svn_revnum_t from_revnum = SVN_INVALID_REVNUM;
int ns;
/* entry_counter and entry_is_empty are for operational logging. */
@@ -920,6 +962,14 @@
}
}
+ /* Ask the repository about its youngest revision (which we'll need
+ for some input validation later). */
+ if ((serr = svn_fs_youngest_rev(&youngest, repos->fs, resource->pool)))
+ return dav_svn__convert_err(serr, HTTP_INTERNAL_SERVER_ERROR,
+ "Could not determine the youngest "
+ "revision for the update process.",
+ resource->pool);
+
for (child = doc->root->first_child; child != NULL; child = child->next)
{
/* Note that child->name might not match any of the cases below.
@@ -1039,6 +1089,23 @@
}
}
+ /* If a target revision wasn't requested, or the requested target
+ revision was invalid, just update to HEAD as of the moment we
+ queried the youngest revision. Otherwise, at least make sure the
+ request makes sense in light of that youngest revision
+ number. */
+ if (! SVN_IS_VALID_REVNUM(revnum))
+ {
+ revnum = youngest;
+ }
+ else
+ {
+ derr = validate_input_revision(revnum, youngest, "target revision",
+ resource);
+ if (derr)
+ return derr;
+ }
+
if (!saw_depth && !saw_recursive && (requested_depth == svn_depth_unknown))
requested_depth = svn_depth_infinity;
@@ -1054,18 +1121,6 @@
SVN_DAV_ERROR_TAG);
}
- /* If a revision for this operation was not dictated to us, this
- means "update to whatever the current HEAD is now". */
- if (revnum == SVN_INVALID_REVNUM)
- {
- if ((serr = svn_fs_youngest_rev(&revnum, repos->fs, resource->pool)))
- return dav_svn__convert_err(serr, HTTP_INTERNAL_SERVER_ERROR,
- "Could not determine the youngest "
- "revision for the update process.",
- resource->pool);
- revnum_is_head = TRUE;
- }
-
uc.svndiff_version = resource->info->svndiff_version;
uc.resource = resource;
uc.output = output;
@@ -1179,27 +1234,10 @@
{
rev = SVN_STR_TO_REV(this_attr->value);
saw_rev = TRUE;
- if (revnum_is_head && rev > revnum)
- {
- if (dav_svn__get_master_uri(resource->info->r))
- return dav_svn__new_error_tag(
- resource->pool,
- HTTP_INTERNAL_SERVER_ERROR, 0,
- "A reported revision is higher than the "
- "current repository HEAD revision. "
- "Perhaps the repository is out of date "
- "with respect to the master repository?",
- SVN_DAV_ERROR_NAMESPACE,
- SVN_DAV_ERROR_TAG);
- else
- return dav_svn__new_error_tag(
- resource->pool,
- HTTP_INTERNAL_SERVER_ERROR, 0,
- "A reported revision is higher than the "
- "current repository HEAD revision.",
- SVN_DAV_ERROR_NAMESPACE,
- SVN_DAV_ERROR_TAG);
- }
+ if ((derr = validate_input_revision(rev, youngest,
+ "reported revision",
+ resource)))
+ return derr;
}
else if (strcmp(this_attr->name, "depth") == 0)
depth = svn_depth_from_word(this_attr->value);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/subversion-1.7.7/subversion/mod_dav_svn/repos.c new/subversion-1.7.8/subversion/mod_dav_svn/repos.c
--- old/subversion-1.7.7/subversion/mod_dav_svn/repos.c 2012-09-28 06:02:07.000000000 +0200
+++ new/subversion-1.7.8/subversion/mod_dav_svn/repos.c 2012-10-22 06:03:35.000000000 +0200
@@ -3075,6 +3075,13 @@
if ((serr == NULL) && (info.rev != SVN_INVALID_REVNUM))
{
mimetype = SVN_SVNDIFF_MIME_TYPE;
+
+ /* Note the base that this svndiff is based on, and tell any
+ intermediate caching proxies that this header is
+ significant. */
+ apr_table_setn(r->headers_out, "Vary", SVN_DAV_DELTA_BASE_HEADER);
+ apr_table_setn(r->headers_out, SVN_DAV_DELTA_BASE_HEADER,
+ resource->info->delta_base);
}
svn_error_clear(serr);
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/subversion-1.7.7/subversion/po/es.po new/subversion-1.7.8/subversion/po/es.po
--- old/subversion-1.7.7/subversion/po/es.po 2010-11-12 15:53:46.000000000 +0100
+++ new/subversion-1.7.8/subversion/po/es.po 2012-10-26 10:01:58.000000000 +0200
@@ -13565,7 +13565,7 @@
#~ " 'HEAD' lo último del repositorio\n"
#~ " 'BASE' rev base del ítem de la c. de trab.\n"
#~ " 'COMMITTED' último commit en o antes de BASE\n"
-#~ " 'PREV' revisión justo antes de COMMITED"
+#~ " 'PREV' revisión justo antes de COMMITTED"
#~ msgid "Can't open file '%s' for reading"
#~ msgstr "No se pudo abrir el archivo '%s' para leer"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/subversion-1.7.7/subversion/po/pt_BR.po new/subversion-1.7.8/subversion/po/pt_BR.po
--- old/subversion-1.7.7/subversion/po/pt_BR.po 2010-11-12 15:53:46.000000000 +0100
+++ new/subversion-1.7.8/subversion/po/pt_BR.po 2012-10-26 10:10:18.000000000 +0200
@@ -12663,8 +12663,8 @@
#~ " '{' DATA '}' revisão no início da data\n"
#~ " 'HEAD' último no repositório\n"
#~ " 'BASE' revisão base do item da cópia de trabalho\n"
-#~ " 'COMMITED' último commit em ou antes de BASE\n"
-#~ " 'PREV' revisão exatamente antes de COMMITED"
+#~ " 'COMMITTED' último commit em ou antes de BASE\n"
+#~ " 'PREV' revisão exatamente antes de COMMITTED"
#~ msgid "Can't get user name"
#~ msgstr "Não foi possível obter o nome do usuário"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/subversion-1.7.7/subversion/po/zh_TW.po new/subversion-1.7.8/subversion/po/zh_TW.po
--- old/subversion-1.7.7/subversion/po/zh_TW.po 2010-11-12 15:53:46.000000000 +0100
+++ new/subversion-1.7.8/subversion/po/zh_TW.po 2012-10-26 10:01:58.000000000 +0200
@@ -12810,7 +12810,7 @@
#~ " '{' DATE '}' 該日開始的修訂版\n"
#~ " 'HEAD' 檔案庫最新版本\n"
#~ " 'BASE' 該項目工作複本的基礎修訂版\n"
-#~ " 'COMMITED' 位於或早於 BASE 的最後送交\n"
+#~ " 'COMMITTED' 位於或早於 BASE 的最後送交\n"
#~ " 'PREV' COMMITTED 之前的修訂版"
#~ msgid "Error reading administrative log file in '%s'"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/subversion-1.7.7/subversion/svn/log-cmd.c new/subversion-1.7.8/subversion/svn/log-cmd.c
--- old/subversion-1.7.7/subversion/svn/log-cmd.c 2012-03-01 18:46:25.000000000 +0100
+++ new/subversion-1.7.8/subversion/svn/log-cmd.c 2012-10-20 06:03:28.000000000 +0200
@@ -464,7 +464,13 @@
/* <path action="X"> */
svn_xml_make_open_tag(&sb, pool, svn_xml_protect_pcdata, "path",
"action", action,
- "kind", svn_cl__node_kind_str_xml(log_item->node_kind), NULL);
+ "kind", svn_cl__node_kind_str_xml(
+ log_item->node_kind),
+ "text-mods", svn_tristate__to_word(
+ log_item->text_modified),
+ "prop-mods", svn_tristate__to_word(
+ log_item->props_modified),
+ NULL);
}
/* xxx</path> */
svn_xml_escape_cdata_cstring(&sb, path, pool);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/subversion-1.7.7/subversion/svnserve/main.c new/subversion-1.7.8/subversion/svnserve/main.c
--- old/subversion-1.7.7/subversion/svnserve/main.c 2011-06-21 20:00:13.000000000 +0200
+++ new/subversion-1.7.8/subversion/svnserve/main.c 2012-10-16 06:03:13.000000000 +0200
@@ -881,7 +881,7 @@
settings.single_threaded = TRUE;
if (handling_mode == connection_mode_thread)
{
-#ifdef APR_HAS_THREADS
+#if APR_HAS_THREADS
settings.single_threaded = FALSE;
#else
/* No requests will be processed at all
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/subversion-1.7.7/subversion/tests/cmdline/merge_tests.py new/subversion-1.7.8/subversion/tests/cmdline/merge_tests.py
--- old/subversion-1.7.7/subversion/tests/cmdline/merge_tests.py 2012-05-09 14:02:45.000000000 +0200
+++ new/subversion-1.7.8/subversion/tests/cmdline/merge_tests.py 2012-11-09 05:00:46.000000000 +0100
@@ -17438,6 +17438,60 @@
None, None, None, None,
None, 1, 0)
+#----------------------------------------------------------------------
+@SkipUnless(server_has_mergeinfo)
+def merge_with_externals_with_mergeinfo(sbox):
+ "merge with externals with mergeinfo"
+
+ # Some paths we'll care about.
+ A_path = sbox.ospath('A')
+ A_COPY_path = sbox.ospath('A_COPY')
+ file_external_path = sbox.ospath('A/file-external')
+ mu_COPY_path = sbox.ospath('A_COPY/mu')
+ mu_path = sbox.ospath('A/mu')
+
+ sbox.build()
+ wc_dir = sbox.wc_dir
+
+ # Make a branch of ^/A and then make a few edits under A in r3-6:
+ wc_disk, wc_status = set_up_branch(sbox)
+
+ svntest.main.file_write(mu_COPY_path, "branch edit")
+ svntest.actions.run_and_verify_svn(None, None, [], 'ci', '-m',
+ 'file edit on the branch', wc_dir)
+ svntest.actions.run_and_verify_svn(None, None, [], 'up', wc_dir)
+
+ # Create a file external under 'A' and set some bogus mergeinfo
+ # on it (the fact that this mergeinfo is bogus has no bearing on
+ # this test).
+ svntest.actions.run_and_verify_svn(None, None, [], 'propset',
+ 'svn:externals',
+ '^/iota file-external', A_path)
+ svntest.actions.run_and_verify_svn(None, None, [], 'ci', '-m',
+ 'set file external', wc_dir)
+ svntest.actions.run_and_verify_svn(None, None, [], 'up', wc_dir)
+ svntest.actions.run_and_verify_svn(None, None, [], 'ps', SVN_PROP_MERGEINFO,
+ "/bogus-mergeinfo:5", file_external_path)
+ svntest.actions.run_and_verify_svn(None, None, [], 'ci', '-m',
+ 'set mergeinfo on file external',
+ file_external_path)
+
+ # Sync merge ^/A to A_COPY and then reintegrate A_COPY back to A.
+ svntest.actions.run_and_verify_svn(None, None, [], 'merge',
+ sbox.repo_url + '/A', A_COPY_path)
+ svntest.actions.run_and_verify_svn(None, None, [], 'ci', '-m',
+ 'sync merge', wc_dir)
+ # This was segfaulting, see
+ # http://svn.haxx.se/dev/archive-2012-10/0364.shtml
+ svntest.actions.run_and_verify_svn(
+ None,
+ expected_merge_output(None,
+ ['U ' + mu_path + '\n',
+ ' U ' + A_path + '\n'],
+ two_url=True),
+ [], 'merge', '--reintegrate', sbox.repo_url + '/A_COPY',
+ A_path)
+
########################################################################
# Run the tests
@@ -17569,6 +17623,7 @@
reverse_merge_with_rename,
merge_adds_then_deletes_subtree,
merge_with_added_subtrees_with_mergeinfo,
+ merge_with_externals_with_mergeinfo,
]
if __name__ == '__main__':
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/subversion-1.7.7/subversion/tests/cmdline/patch_tests.py new/subversion-1.7.8/subversion/tests/cmdline/patch_tests.py
--- old/subversion-1.7.7/subversion/tests/cmdline/patch_tests.py 2012-09-29 06:02:09.000000000 +0200
+++ new/subversion-1.7.8/subversion/tests/cmdline/patch_tests.py 2012-11-09 15:36:08.000000000 +0100
@@ -3866,24 +3866,57 @@
patch_file_path = make_patch_path(sbox)
iota_path = os.path.join(wc_dir, 'iota')
+ mu_path = sbox.ospath('A/mu')
iota_contents = [
"This is the file iota."
]
+ mu_contents = [
+ "context\n",
+ "context\n",
+ "context\n",
+ "context\n",
+ "This is the file mu.\n",
+ "context\n",
+ "context\n",
+ "context\n",
+ "context", # no newline at end of file
+ ]
+
svntest.main.file_write(iota_path, ''.join(iota_contents))
+ svntest.main.file_write(mu_path, ''.join(mu_contents))
expected_output = svntest.wc.State(wc_dir, {
'iota' : Item(verb='Sending'),
+ 'A/mu' : Item(verb='Sending'),
})
expected_status = svntest.actions.get_virginal_state(wc_dir, 1)
expected_status.tweak('iota', wc_rev=2)
+ expected_status.tweak('A/mu', wc_rev=2)
svntest.actions.run_and_verify_commit(wc_dir, expected_output,
expected_status, None, wc_dir)
unidiff_patch = [
- "--- iota\t(revision 1)\n",
+ "Index: A/mu\n",
+ "===================================================================\n",
+ "--- A/mu\t(revision 2)\n",
+ "+++ A/mu\t(working copy)\n",
+ "@@ -2,8 +2,8 @@ context\n",
+ " context\n",
+ " context\n",
+ " context\n",
+ "-This is the file mu.\n",
+ "+It is really the file mu.\n",
+ " context\n",
+ " context\n",
+ " context\n",
+ " context\n",
+ "\\ No newline at end of file\n",
+ "Index: iota\n",
+ "===================================================================\n",
+ "--- iota\t(revision 2)\n",
"+++ iota\t(working copy)\n",
- "@@ -1,7 +1,7 @@\n",
- "-This is the file iota.\n"
+ "@@ -1 +1 @@\n",
+ "-This is the file iota.\n",
"\\ No newline at end of file\n",
"+It is really the file 'iota'.\n",
"\\ No newline at end of file\n",
@@ -3894,15 +3927,29 @@
iota_contents = [
"It is really the file 'iota'."
]
+ mu_contents = [
+ "context\n",
+ "context\n",
+ "context\n",
+ "context\n",
+ "It is really the file mu.\n",
+ "context\n",
+ "context\n",
+ "context\n",
+ "context", # no newline at end of file
+ ]
expected_output = [
+ 'U %s\n' % os.path.join(wc_dir, 'A', 'mu'),
'U %s\n' % os.path.join(wc_dir, 'iota'),
]
expected_disk = svntest.main.greek_state.copy()
expected_disk.tweak('iota', contents=''.join(iota_contents))
+ expected_disk.tweak('A/mu', contents=''.join(mu_contents))
expected_status = svntest.actions.get_virginal_state(wc_dir, 1)
expected_status.tweak('iota', status='M ', wc_rev=2)
+ expected_status.tweak('A/mu', status='M ', wc_rev=2)
expected_skip = wc.State('', { })
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/subversion-1.7.7/subversion/tests/cmdline/special_tests.py new/subversion-1.7.8/subversion/tests/cmdline/special_tests.py
--- old/subversion-1.7.7/subversion/tests/cmdline/special_tests.py 2012-03-01 05:00:59.000000000 +0100
+++ new/subversion-1.7.8/subversion/tests/cmdline/special_tests.py 2012-12-10 18:56:17.000000000 +0100
@@ -937,6 +937,115 @@
sbox.simple_commit()
+#----------------------------------------------------------------------
+def incoming_symlink_changes(sbox):
+ "verify incoming symlink change behavior"
+
+ sbox.build()
+ wc_dir = sbox.wc_dir
+
+ sbox.simple_add_symlink('iota', 's-replace')
+ sbox.simple_add_symlink('iota', 's-in-place')
+ sbox.simple_add_symlink('iota', 's-type')
+ sbox.simple_append('s-reverse', 'link iota')
+ sbox.simple_add('s-reverse')
+ sbox.simple_commit() # r2
+
+ # Replace s-replace
+ sbox.simple_rm('s-replace')
+ # Note that we don't use 'A/mu' as the length of that matches 'iota', which
+ # would make us depend on timestamp changes for detecting differences.
+ sbox.simple_add_symlink('A/D/G/pi', 's-replace')
+
+ # Change target of s-in-place
+ if svntest.main.is_posix_os():
+ os.remove(sbox.ospath('s-in-place'))
+ os.symlink('A/D/G/pi', sbox.ospath('s-in-place'))
+ else:
+ sbox.simple_append('s-in-place', 'link A/D/G/pi', truncate = True)
+
+ # r3
+ expected_output = svntest.wc.State(wc_dir, {
+ 's-replace' : Item(verb='Replacing'),
+ 's-in-place' : Item(verb='Sending'),
+ })
+ svntest.actions.run_and_verify_commit(wc_dir,
+ expected_output, None, None,
+ wc_dir)
+
+ # r4
+ svntest.main.run_svnmucc('propdel', 'svn:special',
+ sbox.repo_url + '/s-type',
+ '-m', 'Turn s-type into a file')
+
+ # r5
+ svntest.main.run_svnmucc('propset', 'svn:special', 'X',
+ sbox.repo_url + '/s-reverse',
+ '-m', 'Turn s-reverse into a symlink')
+
+ # Currently we expect to see 'U'pdates, but we would like to see
+ # replacements
+ expected_output = svntest.wc.State(wc_dir, {
+ 's-reverse' : Item(status=' U'),
+ 's-type' : Item(status=' U'),
+ })
+ expected_status = svntest.actions.get_virginal_state(wc_dir, 5)
+ expected_status.add({
+ 's-type' : Item(status=' ', wc_rev='5'),
+ 's-replace' : Item(status=' ', wc_rev='5'),
+ 's-reverse' : Item(status=' ', wc_rev='5'),
+ 's-in-place' : Item(status=' ', wc_rev='5'),
+ })
+
+ # Update to HEAD/r5 to fetch the r4 and r5 symlink changes
+ svntest.actions.run_and_verify_update(wc_dir,
+ expected_output,
+ None,
+ expected_status,
+ None, None, None, None, None,
+ check_props=True)
+
+ # Update back to r2, to prepare some local changes
+ expected_output = svntest.wc.State(wc_dir, {
+ # s-replace is D + A
+ 's-replace' : Item(status='A '),
+ 's-in-place' : Item(status='U '),
+ 's-reverse' : Item(status=' U'),
+ 's-type' : Item(status=' U'),
+ })
+ expected_status.tweak(wc_rev=2)
+
+ svntest.actions.run_and_verify_update(wc_dir,
+ expected_output,
+ None,
+ expected_status,
+ None, None, None, None, None,
+ True,
+ wc_dir, '-r', '2')
+
+ # Ok, now add a property on all of them to make future symlinkness changes
+ # a tree conflict
+ # ### We should also try this with a 'textual change'
+ sbox.simple_propset('x', 'y', 's-replace', 's-in-place', 's-reverse', 's-type')
+
+ expected_output = svntest.wc.State(wc_dir, {
+ 's-replace' : Item(status=' ', treeconflict='A'),
+ 's-in-place' : Item(status='U '),
+ 's-reverse' : Item(status=' ', treeconflict='C'),
+ 's-type' : Item(status=' ', treeconflict='C'),
+ })
+ expected_status.tweak(wc_rev=5)
+ expected_status.tweak('s-replace', 's-reverse', 's-type', status='RM',
+ copied='+', treeconflict='C', wc_rev='-')
+ expected_status.tweak('s-in-place', status=' M')
+
+ svntest.actions.run_and_verify_update(wc_dir,
+ expected_output,
+ None,
+ expected_status,
+ None, None, None, None, None,
+ True)
+
########################################################################
# Run the tests
@@ -965,6 +1074,7 @@
symlink_to_wc_svnversion,
update_symlink,
externals_as_symlink_targets,
+ incoming_symlink_changes,
]
if __name__ == '__main__':
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/subversion-1.7.7/subversion/tests/cmdline/svntest/sandbox.py new/subversion-1.7.8/subversion/tests/cmdline/svntest/sandbox.py
--- old/subversion-1.7.7/subversion/tests/cmdline/svntest/sandbox.py 2012-07-01 06:01:29.000000000 +0200
+++ new/subversion-1.7.8/subversion/tests/cmdline/svntest/sandbox.py 2012-12-10 18:56:17.000000000 +0100
@@ -262,6 +262,17 @@
targets = self.ospaths(targets)
svntest.main.run_svn(False, 'propdel', name, *targets)
+ def simple_add_symlink(self, dest, target):
+ """Create a symlink TARGET pointing to DEST and add it to subversion"""
+ if svntest.main.is_posix_os():
+ os.symlink(dest, self.ospath(target))
+ else:
+ svntest.main.file_write(self.ospath(target), "link %s" % dest)
+ self.simple_add(target)
+ if not svntest.main.is_posix_os():
+ # '*' is evaluated on Windows
+ self.simple_propset('svn:special', 'X', target)
+
def simple_copy(self, source, dest):
"""SOURCE and DEST are relpaths relative to the WC."""
source = self.ospath(source)
@@ -280,6 +291,10 @@
self.repo_url + '/' + source,
self.repo_url + '/' + dest)
+ def simple_append(self, dest, contents, truncate=False):
+ """Append CONTENTS to file DEST, optionally truncating it first."""
+ open(self.ospath(dest), truncate and 'w' or 'a').write(contents)
+
def is_url(target):
return (target.startswith('^/')
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/subversion-1.7.7/subversion/tests/cmdline/update_tests.py new/subversion-1.7.8/subversion/tests/cmdline/update_tests.py
--- old/subversion-1.7.7/subversion/tests/cmdline/update_tests.py 2012-02-25 14:51:45.000000000 +0100
+++ new/subversion-1.7.8/subversion/tests/cmdline/update_tests.py 2012-12-07 05:02:33.000000000 +0100
@@ -5397,9 +5397,12 @@
sbox.build(read_only = True)
wc_dir = sbox.wc_dir
+ # Attempt the update, expecting an error. (Sometimes the error
+ # strings says "No such revision", sometimes "No such target
+ # revision".)
svntest.actions.run_and_verify_update(wc_dir,
None, None, None,
- ".*No such revision",
+ "E160006.*No such.*revision",
None, None,
None, None, None, wc_dir, '-r', '2')
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/subversion-1.7.7/subversion/tests/libsvn_subr/dirent_uri-test.c new/subversion-1.7.8/subversion/tests/libsvn_subr/dirent_uri-test.c
--- old/subversion-1.7.7/subversion/tests/libsvn_subr/dirent_uri-test.c 2012-08-24 05:59:51.000000000 +0200
+++ new/subversion-1.7.8/subversion/tests/libsvn_subr/dirent_uri-test.c 2012-12-06 05:02:28.000000000 +0100
@@ -2492,7 +2492,7 @@
} tests[] = {
#ifdef SVN_USE_DOS_PATHS
{ "C:/file", "file:///C:/file" },
- { "C:/", "file:///C:/" },
+ { "C:/", "file:///C:" },
{ "C:/File#$", "file:///C:/File%23$" },
/* We can't check these as svn_dirent_get_absolute() won't work
on shares that don't exist */
@@ -2519,6 +2519,8 @@
"svn_uri_get_file_url_from_dirent(\"%s\") "
"returned \"%s\" expected \"%s\"",
tests[i].dirent, result, tests[i].result);
+
+ SVN_TEST_ASSERT(svn_uri_is_canonical(result, pool));
}
return SVN_NO_ERROR;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/subversion-1.7.7/tools/client-side/svnmucc/svnmucc.c new/subversion-1.7.8/tools/client-side/svnmucc/svnmucc.c
--- old/subversion-1.7.7/tools/client-side/svnmucc/svnmucc.c 2011-12-19 16:14:17.000000000 +0100
+++ new/subversion-1.7.8/tools/client-side/svnmucc/svnmucc.c 2012-12-05 19:03:25.000000000 +0100
@@ -1172,7 +1172,7 @@
else
anchor = svn_uri_get_longest_ancestor(anchor, url, pool);
- if ((++i == action_args->nelts) && (j >= num_url_args))
+ if ((++i == action_args->nelts) && (j + 1 < num_url_args))
insufficient(pool);
}
APR_ARRAY_PUSH(actions, struct action *) = action;
1
0
Hello community,
here is the log from the commit of package rubygem-fast_gettext for openSUSE:Factory checked in at 2012-12-21 10:34:31
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/rubygem-fast_gettext (Old)
and /work/SRC/openSUSE:Factory/.rubygem-fast_gettext.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "rubygem-fast_gettext", Maintainer is "ro(a)suse.com"
Changes:
--------
--- /work/SRC/openSUSE:Factory/rubygem-fast_gettext/rubygem-fast_gettext.changes 2012-11-05 15:02:46.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.rubygem-fast_gettext.new/rubygem-fast_gettext.changes 2012-12-21 10:34:33.000000000 +0100
@@ -1,0 +2,6 @@
+Thu Dec 20 06:24:31 UTC 2012 - coolo(a)suse.com
+
+- updated to version 0.7.0
+ set_locale resets to default locale if none of the available locales was tried to set
+
+-------------------------------------------------------------------
Old:
----
fast_gettext-0.6.11.gem
New:
----
fast_gettext-0.7.0.gem
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ rubygem-fast_gettext.spec ++++++
--- /var/tmp/diff_new_pack.7ENy1v/_old 2012-12-21 10:34:34.000000000 +0100
+++ /var/tmp/diff_new_pack.7ENy1v/_new 2012-12-21 10:34:34.000000000 +0100
@@ -17,7 +17,7 @@
Name: rubygem-fast_gettext
-Version: 0.6.11
+Version: 0.7.0
Release: 0
%define mod_name fast_gettext
%define mod_full_name %{mod_name}-%{version}
++++++ fast_gettext-0.6.11.gem -> fast_gettext-0.7.0.gem ++++++
Files /work/SRC/openSUSE:Factory/rubygem-fast_gettext/fast_gettext-0.6.11.gem and /work/SRC/openSUSE:Factory/.rubygem-fast_gettext.new/fast_gettext-0.7.0.gem differ
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package rpmlint for openSUSE:Factory checked in at 2012-12-21 10:34:18
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/rpmlint (Old)
and /work/SRC/openSUSE:Factory/.rpmlint.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "rpmlint", Maintainer is "DMueller(a)suse.com"
Changes:
--------
--- /work/SRC/openSUSE:Factory/rpmlint/rpmlint.changes 2012-12-09 14:12:06.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.rpmlint.new/rpmlint.changes 2012-12-21 10:34:20.000000000 +0100
@@ -1,0 +2,5 @@
+Thu Dec 20 15:55:34 UTC 2012 - lnussel(a)suse.de
+
+- update check for %run_permissions
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ rpmlint-checks-master.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rpmlint-checks-master/CheckSUIDPermissions.py new/rpmlint-checks-master/CheckSUIDPermissions.py
--- old/rpmlint-checks-master/CheckSUIDPermissions.py 2012-11-05 13:35:56.000000000 +0100
+++ new/rpmlint-checks-master/CheckSUIDPermissions.py 2012-12-20 16:57:00.000000000 +0100
@@ -182,7 +182,8 @@
found = True
break
- if "SuSEconfig --module permissions" in line:
+ if "SuSEconfig --module permissions" in line \
+ or "run_permissions is obsolete" in line:
found = True
found_suseconfig = True
break
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package qterm for openSUSE:Factory checked in at 2012-12-21 10:33:43
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/qterm (Old)
and /work/SRC/openSUSE:Factory/.qterm.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "qterm", Maintainer is "DMZhang(a)suse.com"
Changes:
--------
--- /work/SRC/openSUSE:Factory/qterm/qterm.changes 2012-03-23 12:10:08.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.qterm.new/qterm.changes 2012-12-21 10:33:46.000000000 +0100
@@ -1,0 +2,5 @@
+Fri Dec 14 03:44:17 UTC 2012 - bili(a)suse.com
+
+- Add qterm-0.5.12-cmake-2.6.patch to build with cmake 2.6.x.
+
+-------------------------------------------------------------------
New:
----
qterm-0.5.12-cmake-2.6.patch
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ qterm.spec ++++++
--- /var/tmp/diff_new_pack.lIZ0PF/_old 2012-12-21 10:33:47.000000000 +0100
+++ /var/tmp/diff_new_pack.lIZ0PF/_new 2012-12-21 10:33:47.000000000 +0100
@@ -23,6 +23,7 @@
BuildRequires: libqt4-devel-doc
BuildRequires: openssl-devel
BuildRequires: python-devel
+BuildRequires: qt4-qtscript
BuildRequires: update-desktop-files
Summary: QTerm is BBS client
License: GPL-2.0+
@@ -32,6 +33,7 @@
Url: http://qterm.sourceforge.net/
Source0: %{name}-%{version}.tar.bz2
Patch1: qterm-0.5.12-gcc-4.7.patch
+Patch2: qterm-0.5.12-cmake-2.6.patch
Source1: qterm.desktop
BuildRoot: %{_tmppath}/%{name}-%{version}-build
@@ -49,6 +51,7 @@
%prep
%setup -q -n %{name}-%{version}
%patch1 -p0
+%patch2 -p1
%build
# This package failed when testing with -Wl,-as-needed being default.
++++++ qterm-0.5.12-cmake-2.6.patch ++++++
Index: qterm-0.5.12/src/CMakeLists.txt
===================================================================
--- qterm-0.5.12.orig/src/CMakeLists.txt
+++ qterm-0.5.12/src/CMakeLists.txt
@@ -199,7 +199,7 @@ set(qterm_MISC
set(qterm_RCCS
qterm.qrc)
-file(COPY ${qterm_MISC} DESTINATION ${CMAKE_CURRENT_BINARY_DIR})
+configure_file(${qterm_MISC} ${CMAKE_CURRENT_BINARY_DIR}/DESTINATION COPYONLY)
if(WIN32)
if(MINGW)
Index: qterm-0.5.12/src/scheme/CMakeLists.txt
===================================================================
--- qterm-0.5.12.orig/src/scheme/CMakeLists.txt
+++ qterm-0.5.12/src/scheme/CMakeLists.txt
@@ -1,3 +1,3 @@
file(GLOB schemeFiles "${CMAKE_CURRENT_SOURCE_DIR}/*.scheme")
-file(COPY ${schemeFiles} DESTINATION ${CMAKE_CURRENT_BINARY_DIR})
+configure_file(${schemeFiles} ${CMAKE_CURRENT_BINARY_DIR}/DESTINATION COPYONLY)
install(FILES ${schemeFiles} DESTINATION share/qterm/scheme)
Index: qterm-0.5.12/src/scripts/CMakeLists.txt
===================================================================
--- qterm-0.5.12.orig/src/scripts/CMakeLists.txt
+++ qterm-0.5.12/src/scripts/CMakeLists.txt
@@ -1,4 +1,4 @@
file(GLOB scriptFiles "${CMAKE_CURRENT_SOURCE_DIR}/*.js")
-file(COPY ${scriptFiles} DESTINATION ${CMAKE_CURRENT_BINARY_DIR})
+configure_file(${scriptFiles} ${CMAKE_CURRENT_BINARY_DIR}/DESTINATION COPYONLY)
install(FILES ${scriptFiles} DESTINATION share/qterm/scripts)
add_subdirectory(ui)
Index: qterm-0.5.12/src/scripts/ui/CMakeLists.txt
===================================================================
--- qterm-0.5.12.orig/src/scripts/ui/CMakeLists.txt
+++ qterm-0.5.12/src/scripts/ui/CMakeLists.txt
@@ -1,3 +1,3 @@
file(GLOB scriptFiles "${CMAKE_CURRENT_SOURCE_DIR}/*.ui")
-file(COPY ${scriptFiles} DESTINATION ${CMAKE_CURRENT_BINARY_DIR})
+configure_file(${scriptFiles} ${CMAKE_CURRENT_BINARY_DIR}/DESTINATION COPYONLY)
install(FILES ${scriptFiles} DESTINATION share/qterm/scripts/ui)
Index: qterm-0.5.12/src/keyboard_profiles/CMakeLists.txt
===================================================================
--- qterm-0.5.12.orig/src/keyboard_profiles/CMakeLists.txt
+++ qterm-0.5.12/src/keyboard_profiles/CMakeLists.txt
@@ -1,3 +1,3 @@
file(GLOB keyboardFiles "${CMAKE_CURRENT_SOURCE_DIR}/*.keytab")
-file(COPY ${keyboardFiles} DESTINATION ${CMAKE_CURRENT_BINARY_DIR})
+configure_file(${keyboardFiles} ${CMAKE_CURRENT_BINARY_DIR}/DESTINATION COPYONLY)
install(FILES ${keyboardFiles} DESTINATION share/qterm/keyboard_profiles)
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package qemu for openSUSE:Factory checked in at 2012-12-21 10:32:54
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/qemu (Old)
and /work/SRC/openSUSE:Factory/.qemu.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "qemu", Maintainer is "AFaerber(a)suse.com"
Changes:
--------
--- /work/SRC/openSUSE:Factory/qemu/qemu.changes 2012-12-08 15:53:10.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.qemu.new/qemu.changes 2012-12-21 10:32:55.000000000 +0100
@@ -1,0 +2,16 @@
+Thu Dec 13 13:30:57 UTC 2012 - agraf(a)suse.com
+
+- linux-user: fix lseek with SEEK_END
+
+-------------------------------------------------------------------
+Thu Dec 13 10:47:52 UTC 2012 - agraf(a)suse.com
+
+- Cherry pick patches from qemu-kvm into the qemu package:
+ - 0033-Add-support-for-DictZip-enabled-gzi.patch
+ - 0034-Add-tar-container-format.patch.patch
+ - 0035-Legacy-Patch-kvm-qemu-preXX-dictzip.patch
+ - 0036-Legacy-Patch-kvm-qemu-preXX-report-.patch
+ - 0037-console-add-question-mark-escape-op.patch
+ - 0038-Make-char-muxer-more-robust-wrt-sma.patch
+
+-------------------------------------------------------------------
New:
----
0033-Add-support-for-DictZip-enabled-gzi.patch
0034-Add-tar-container-format.patch.patch
0035-Legacy-Patch-kvm-qemu-preXX-dictzip.patch
0036-Legacy-Patch-kvm-qemu-preXX-report-.patch
0037-console-add-question-mark-escape-op.patch
0038-Make-char-muxer-more-robust-wrt-sma.patch
0039-linux-user-lseek-explicitly-cast-en.patch
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ qemu.spec ++++++
--- /var/tmp/diff_new_pack.s3Go8h/_old 2012-12-21 10:32:56.000000000 +0100
+++ /var/tmp/diff_new_pack.s3Go8h/_new 2012-12-21 10:32:56.000000000 +0100
@@ -56,6 +56,13 @@
Patch0030: 0030-vnc-password-file-and-incoming-conn.patch
Patch0031: 0031-linux-user-add-more-blk-ioctls.patc.patch
Patch0032: 0032-linux-user-use-target_ulong.patch.patch
+Patch0033: 0033-Add-support-for-DictZip-enabled-gzi.patch
+Patch0034: 0034-Add-tar-container-format.patch.patch
+Patch0035: 0035-Legacy-Patch-kvm-qemu-preXX-dictzip.patch
+Patch0036: 0036-Legacy-Patch-kvm-qemu-preXX-report-.patch
+Patch0037: 0037-console-add-question-mark-escape-op.patch
+Patch0038: 0038-Make-char-muxer-more-robust-wrt-sma.patch
+Patch0039: 0039-linux-user-lseek-explicitly-cast-en.patch
# this is to make lint happy
Source300: rpmlintrc
Source302: bridge.conf
@@ -206,6 +213,13 @@
%patch0030 -p1
%patch0031 -p1
%patch0032 -p1
+%patch0033 -p1
+%patch0034 -p1
+%patch0035 -p1
+%patch0036 -p1
+%patch0037 -p1
+%patch0038 -p1
+%patch0039 -p1
%build
# build QEMU
++++++ 0001-Handle-CPU-interrupts-by-inline-che.patch ++++++
--- /var/tmp/diff_new_pack.s3Go8h/_old 2012-12-21 10:32:56.000000000 +0100
+++ /var/tmp/diff_new_pack.s3Go8h/_new 2012-12-21 10:32:56.000000000 +0100
@@ -29,7 +29,7 @@
linux-user/main.c | 8 ++++++++
qemu-options.hx | 9 +++++++++
vl.c | 5 +++++
- 6 Dateien geändert, 60 Zeilen hinzugefügt(+), 3 Zeilen entfernt(-)
+ 6 files changed, 60 insertions(+), 3 deletions(-)
diff --git a/cpu-exec.c b/cpu-exec.c
index 904ee73..b83d43e 100644
++++++ 0002-XXX-dont-dump-core-on-sigabort.patc.patch ++++++
--- /var/tmp/diff_new_pack.s3Go8h/_old 2012-12-21 10:32:56.000000000 +0100
+++ /var/tmp/diff_new_pack.s3Go8h/_new 2012-12-21 10:32:56.000000000 +0100
@@ -5,7 +5,7 @@
---
linux-user/signal.c | 6 ++++++
- 1 Datei geändert, 6 Zeilen hinzugefügt(+)
+ 1 files changed, 6 insertions(+), 0 deletions(-)
diff --git a/linux-user/signal.c b/linux-user/signal.c
index 95e2ffa..4758c11 100644
++++++ 0003-XXX-work-around-SA_RESTART-race-wit.patch ++++++
--- /var/tmp/diff_new_pack.s3Go8h/_old 2012-12-21 10:32:56.000000000 +0100
+++ /var/tmp/diff_new_pack.s3Go8h/_new 2012-12-21 10:32:56.000000000 +0100
@@ -9,7 +9,7 @@
linux-user/qemu.h | 3 ++
linux-user/signal.c | 22 ++++++++++++
linux-user/syscall.c | 90 +++++++++++++++++++++++++++++++++++++++++++++++++-
- 4 Dateien geändert, 130 Zeilen hinzugefügt(+), 10 Zeilen entfernt(-)
+ 4 files changed, 130 insertions(+), 10 deletions(-)
diff --git a/linux-user/main.c b/linux-user/main.c
index c339af8..c4d10ac 100644
++++++ 0004-qemu-0.9.0.cvs-binfmt.patch.patch ++++++
--- /var/tmp/diff_new_pack.s3Go8h/_old 2012-12-21 10:32:56.000000000 +0100
+++ /var/tmp/diff_new_pack.s3Go8h/_new 2012-12-21 10:32:56.000000000 +0100
@@ -11,7 +11,7 @@
Signed-off-by: Ulrich Hecht <uli(a)suse.de>
---
scripts/qemu-binfmt-conf.sh | 37 ++++++++++++++++++++-----------------
- 1 Datei geändert, 20 Zeilen hinzugefügt(+), 17 Zeilen entfernt(-)
+ 1 files changed, 20 insertions(+), 17 deletions(-)
diff --git a/scripts/qemu-binfmt-conf.sh b/scripts/qemu-binfmt-conf.sh
index 0da2618..dc652f0 100644
++++++ 0005-qemu-cvs-alsa_bitfield.patch.patch ++++++
--- /var/tmp/diff_new_pack.s3Go8h/_old 2012-12-21 10:32:57.000000000 +0100
+++ /var/tmp/diff_new_pack.s3Go8h/_new 2012-12-21 10:32:57.000000000 +0100
@@ -10,7 +10,7 @@
---
thunk.c | 21 +++++++++++++++++++++
thunk.h | 3 +++
- 2 Dateien geändert, 24 Zeilen hinzugefügt(+)
+ 2 files changed, 24 insertions(+), 0 deletions(-)
diff --git a/thunk.c b/thunk.c
index 8ebbbb4..bf43985 100644
++++++ 0006-qemu-cvs-alsa_ioctl.patch.patch ++++++
--- /var/tmp/diff_new_pack.s3Go8h/_old 2012-12-21 10:32:57.000000000 +0100
+++ /var/tmp/diff_new_pack.s3Go8h/_new 2012-12-21 10:32:57.000000000 +0100
@@ -14,7 +14,7 @@
linux-user/syscall_defs.h | 2 +
linux-user/syscall_types.h | 5 +
linux-user/syscall_types_alsa.h | 1336 +++++++++++++++++++++++++++++
- 6 Dateien geändert, 3555 Zeilen hinzugefügt(+)
+ 6 files changed, 3555 insertions(+), 0 deletions(-)
create mode 100644 linux-user/ioctls_alsa.h
create mode 100644 linux-user/ioctls_alsa_structs.h
create mode 100644 linux-user/syscall_types_alsa.h
++++++ 0007-qemu-cvs-alsa_mmap.patch.patch ++++++
--- /var/tmp/diff_new_pack.s3Go8h/_old 2012-12-21 10:32:57.000000000 +0100
+++ /var/tmp/diff_new_pack.s3Go8h/_new 2012-12-21 10:32:57.000000000 +0100
@@ -9,7 +9,7 @@
Signed-off-by: Ulrich Hecht <uli(a)suse.de>
---
linux-user/mmap.c | 14 ++++++++++++++
- 1 Datei geändert, 14 Zeilen hinzugefügt(+)
+ 1 files changed, 14 insertions(+), 0 deletions(-)
diff --git a/linux-user/mmap.c b/linux-user/mmap.c
index b412e3f..46523de 100644
++++++ 0008-qemu-cvs-gettimeofday.patch.patch ++++++
--- /var/tmp/diff_new_pack.s3Go8h/_old 2012-12-21 10:32:57.000000000 +0100
+++ /var/tmp/diff_new_pack.s3Go8h/_new 2012-12-21 10:32:57.000000000 +0100
@@ -6,7 +6,7 @@
No clue what this is for.
---
linux-user/syscall.c | 2 ++
- 1 Datei geändert, 2 Zeilen hinzugefügt(+)
+ 1 files changed, 2 insertions(+), 0 deletions(-)
diff --git a/linux-user/syscall.c b/linux-user/syscall.c
index 05d4809..edcc4c8 100644
++++++ 0009-qemu-cvs-ioctl_debug.patch.patch ++++++
--- /var/tmp/diff_new_pack.s3Go8h/_old 2012-12-21 10:32:57.000000000 +0100
+++ /var/tmp/diff_new_pack.s3Go8h/_new 2012-12-21 10:32:57.000000000 +0100
@@ -9,7 +9,7 @@
Signed-off-by: Ulrich Hecht <uli(a)suse.de>
---
linux-user/syscall.c | 7 ++++++-
- 1 Datei geändert, 6 Zeilen hinzugefügt(+), 1 Zeile entfernt(-)
+ 1 files changed, 6 insertions(+), 1 deletions(-)
diff --git a/linux-user/syscall.c b/linux-user/syscall.c
index edcc4c8..65246a1 100644
++++++ 0010-qemu-cvs-ioctl_nodirection.patch.patch ++++++
--- /var/tmp/diff_new_pack.s3Go8h/_old 2012-12-21 10:32:57.000000000 +0100
+++ /var/tmp/diff_new_pack.s3Go8h/_new 2012-12-21 10:32:57.000000000 +0100
@@ -12,7 +12,7 @@
Signed-off-by: Ulrich Hecht <uli(a)suse.de>
---
linux-user/syscall.c | 6 ++++++
- 1 Datei geändert, 6 Zeilen hinzugefügt(+)
+ 1 files changed, 6 insertions(+), 0 deletions(-)
diff --git a/linux-user/syscall.c b/linux-user/syscall.c
index 65246a1..d8d41c5 100644
++++++ 0011-block-vmdk-Support-creation-of-SCSI.patch ++++++
--- /var/tmp/diff_new_pack.s3Go8h/_old 2012-12-21 10:32:57.000000000 +0100
+++ /var/tmp/diff_new_pack.s3Go8h/_new 2012-12-21 10:32:57.000000000 +0100
@@ -3,7 +3,7 @@
Date: Tue, 14 Apr 2009 16:37:42 +0200
Subject: [PATCH] block/vmdk: Support creation of SCSI VMDK images in qemu-img
MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
+Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
Signed-off-by: Ulrich Hecht <uli(a)suse.de>
@@ -14,7 +14,7 @@
block/vmdk.c | 12 ++++++++++--
block_int.h | 2 ++
qemu-img.c | 8 +++++++-
- 4 Dateien geändert, 23 Zeilen hinzugefügt(+), 4 Zeilen entfernt(-)
+ 4 files changed, 23 insertions(+), 4 deletions(-)
diff --git a/block.c b/block.c
index c05875f..07e271c 100644
++++++ 0012-configure-Enable-mipsn32-linux-user.patch ++++++
--- /var/tmp/diff_new_pack.s3Go8h/_old 2012-12-21 10:32:57.000000000 +0100
+++ /var/tmp/diff_new_pack.s3Go8h/_new 2012-12-21 10:32:57.000000000 +0100
@@ -3,7 +3,7 @@
Date: Wed, 25 Aug 2010 14:23:43 +0200
Subject: [PATCH] configure: Enable mipsn32*-linux-user builds
MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
+Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
Signed-off-by: Ulrich Hecht <uli(a)suse.de>
@@ -12,7 +12,7 @@
Signed-off-by: Andreas Färber <afaerber(a)suse.de>
---
configure | 2 ++
- 1 Datei geändert, 2 Zeilen hinzugefügt(+)
+ 1 files changed, 2 insertions(+), 0 deletions(-)
diff --git a/configure b/configure
index 994f731..401f369 100755
++++++ 0013-linux-user-add-binfmt-wrapper-for-a.patch ++++++
--- /var/tmp/diff_new_pack.s3Go8h/_old 2012-12-21 10:32:57.000000000 +0100
+++ /var/tmp/diff_new_pack.s3Go8h/_new 2012-12-21 10:32:57.000000000 +0100
@@ -3,7 +3,7 @@
Date: Fri, 30 Sep 2011 19:40:36 +0200
Subject: [PATCH] linux-user: add binfmt wrapper for argv[0] handling
MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
+Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
When using qemu's linux-user binaries through binfmt, argv[0] gets lost
@@ -31,7 +31,7 @@
linux-user/Makefile.objs | 2 ++
linux-user/binfmt.c | 42 ++++++++++++++++++++++++++++++++++++++++++
scripts/qemu-binfmt-conf.sh | 34 +++++++++++++++++-----------------
- 4 Dateien geändert, 73 Zeilen hinzugefügt(+), 17 Zeilen entfernt(-)
+ 4 files changed, 73 insertions(+), 17 deletions(-)
create mode 100644 linux-user/binfmt.c
diff --git a/Makefile.target b/Makefile.target
++++++ 0014-linux-user-Ignore-timer_create-sysc.patch ++++++
--- /var/tmp/diff_new_pack.s3Go8h/_old 2012-12-21 10:32:57.000000000 +0100
+++ /var/tmp/diff_new_pack.s3Go8h/_new 2012-12-21 10:32:57.000000000 +0100
@@ -9,7 +9,7 @@
Signed-off-by: Alexander Graf <agraf(a)suse.de>
---
linux-user/syscall.c | 5 +++++
- 1 Datei geändert, 5 Zeilen hinzugefügt(+)
+ 1 files changed, 5 insertions(+), 0 deletions(-)
diff --git a/linux-user/syscall.c b/linux-user/syscall.c
index d8d41c5..1b8058c 100644
++++++ 0015-linux-user-be-silent-about-capget-f.patch ++++++
--- /var/tmp/diff_new_pack.s3Go8h/_old 2012-12-21 10:32:57.000000000 +0100
+++ /var/tmp/diff_new_pack.s3Go8h/_new 2012-12-21 10:32:57.000000000 +0100
@@ -10,7 +10,7 @@
Signed-off-by: Alexander Graf <agraf(a)suse.de>
---
linux-user/syscall.c | 2 +-
- 1 Datei geändert, 1 Zeile hinzugefügt(+), 1 Zeile entfernt(-)
+ 1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/linux-user/syscall.c b/linux-user/syscall.c
index 1b8058c..30ee613 100644
++++++ 0016-PPC-KVM-Disable-mmu-notifier-check..patch ++++++
--- /var/tmp/diff_new_pack.s3Go8h/_old 2012-12-21 10:32:57.000000000 +0100
+++ /var/tmp/diff_new_pack.s3Go8h/_new 2012-12-21 10:32:57.000000000 +0100
@@ -10,7 +10,7 @@
KVM guests work there, even if possibly racy in some odd circumstances.
---
exec.c | 2 ++
- 1 Datei geändert, 2 Zeilen hinzugefügt(+)
+ 1 files changed, 2 insertions(+), 0 deletions(-)
diff --git a/exec.c b/exec.c
index edb44fc..8971d61 100644
++++++ 0017-linux-user-fix-segfault-deadlock.pa.patch ++++++
--- /var/tmp/diff_new_pack.s3Go8h/_old 2012-12-21 10:32:57.000000000 +0100
+++ /var/tmp/diff_new_pack.s3Go8h/_new 2012-12-21 10:32:57.000000000 +0100
@@ -19,7 +19,7 @@
---
qemu-lock.h | 10 ++++++++++
user-exec.c | 4 ++++
- 2 Dateien geändert, 14 Zeilen hinzugefügt(+)
+ 2 files changed, 14 insertions(+), 0 deletions(-)
diff --git a/qemu-lock.h b/qemu-lock.h
index a72edda..e460e12 100644
++++++ 0018-linux-user-binfmt-support-host-bina.patch ++++++
--- /var/tmp/diff_new_pack.s3Go8h/_old 2012-12-21 10:32:57.000000000 +0100
+++ /var/tmp/diff_new_pack.s3Go8h/_new 2012-12-21 10:32:57.000000000 +0100
@@ -9,7 +9,7 @@
Signed-off-by: Alexander Graf <agraf(a)suse.de>
---
linux-user/binfmt.c | 25 +++++++++++++++++++++++++
- 1 Datei geändert, 25 Zeilen hinzugefügt(+)
+ 1 files changed, 25 insertions(+), 0 deletions(-)
diff --git a/linux-user/binfmt.c b/linux-user/binfmt.c
index cd1f513..87dc4c6 100644
++++++ 0019-linux-user-arm-no-tb_flush-on-reset.patch ++++++
--- /var/tmp/diff_new_pack.s3Go8h/_old 2012-12-21 10:32:57.000000000 +0100
+++ /var/tmp/diff_new_pack.s3Go8h/_new 2012-12-21 10:32:57.000000000 +0100
@@ -11,7 +11,7 @@
change to at least get a working build again.
---
target-arm/cpu.c | 4 ++++
- 1 Datei geändert, 4 Zeilen hinzugefügt(+)
+ 1 files changed, 4 insertions(+), 0 deletions(-)
diff --git a/target-arm/cpu.c b/target-arm/cpu.c
index b00f5fa..740dbc3 100644
++++++ 0020-linux-user-Ignore-broken-loop-ioctl.patch ++++++
--- /var/tmp/diff_new_pack.s3Go8h/_old 2012-12-21 10:32:57.000000000 +0100
+++ /var/tmp/diff_new_pack.s3Go8h/_new 2012-12-21 10:32:57.000000000 +0100
@@ -15,7 +15,7 @@
linux-user/linux_loop.h | 1 +
linux-user/syscall.c | 7 +++++++
linux-user/syscall_defs.h | 1 +
- 4 Dateien geändert, 10 Zeilen hinzugefügt(+)
+ 4 files changed, 10 insertions(+), 0 deletions(-)
diff --git a/linux-user/ioctls.h b/linux-user/ioctls.h
index 6af0cb7..bb76c56 100644
++++++ 0021-linux-user-fix-segmentation-fault-p.patch ++++++
--- /var/tmp/diff_new_pack.s3Go8h/_old 2012-12-21 10:32:57.000000000 +0100
+++ /var/tmp/diff_new_pack.s3Go8h/_new 2012-12-21 10:32:57.000000000 +0100
@@ -3,7 +3,7 @@
Date: Mon, 25 Jun 2012 19:02:32 +0200
Subject: [PATCH] linux-user: fix segmentation fault passing with g2h(x) != x
MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
+Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
When forwarding a segmentation fault into the guest process, we were passing
@@ -20,7 +20,7 @@
Signed-off-by: Andreas Färber <afaerber(a)suse.de>
---
user-exec.c | 6 ++++++
- 1 Datei geändert, 6 Zeilen hinzugefügt(+)
+ 1 files changed, 6 insertions(+), 0 deletions(-)
diff --git a/user-exec.c b/user-exec.c
index 1ec5d9a..71afbf1 100644
++++++ 0022-linux-user-lock-tcg.patch.patch ++++++
--- /var/tmp/diff_new_pack.s3Go8h/_old 2012-12-21 10:32:57.000000000 +0100
+++ /var/tmp/diff_new_pack.s3Go8h/_new 2012-12-21 10:32:57.000000000 +0100
@@ -11,7 +11,7 @@
linux-user/mmap.c | 3 +++
tcg/tcg.c | 36 ++++++++++++++++++++++++++++++++++--
tcg/tcg.h | 6 ++++++
- 3 Dateien geändert, 43 Zeilen hinzugefügt(+), 2 Zeilen entfernt(-)
+ 3 files changed, 43 insertions(+), 2 deletions(-)
diff --git a/linux-user/mmap.c b/linux-user/mmap.c
index 46523de..59718b5 100644
++++++ 0023-linux-user-Run-multi-threaded-code-.patch ++++++
--- /var/tmp/diff_new_pack.s3Go8h/_old 2012-12-21 10:32:57.000000000 +0100
+++ /var/tmp/diff_new_pack.s3Go8h/_new 2012-12-21 10:32:57.000000000 +0100
@@ -16,7 +16,7 @@
Signed-off-by: Alexander Graf <agraf(a)suse.de>
---
linux-user/syscall.c | 9 +++++++++
- 1 Datei geändert, 9 Zeilen hinzugefügt(+)
+ 1 files changed, 9 insertions(+), 0 deletions(-)
diff --git a/linux-user/syscall.c b/linux-user/syscall.c
index d62e9e6..5295afb 100644
++++++ 0024-linux-user-lock-tb-flushing-too.pat.patch ++++++
--- /var/tmp/diff_new_pack.s3Go8h/_old 2012-12-21 10:32:57.000000000 +0100
+++ /var/tmp/diff_new_pack.s3Go8h/_new 2012-12-21 10:32:57.000000000 +0100
@@ -6,7 +6,7 @@
Signed-off-by: Alexander Graf <agraf(a)suse.de>
---
exec.c | 33 ++++++++++++++++++++++++++-------
- 1 Datei geändert, 26 Zeilen hinzugefügt(+), 7 Zeilen entfernt(-)
+ 1 files changed, 26 insertions(+), 7 deletions(-)
diff --git a/exec.c b/exec.c
index 8971d61..ee22e2c 100644
++++++ 0025-linux-user-Fake-proc-cpuinfo.patch.patch ++++++
--- /var/tmp/diff_new_pack.s3Go8h/_old 2012-12-21 10:32:57.000000000 +0100
+++ /var/tmp/diff_new_pack.s3Go8h/_new 2012-12-21 10:32:57.000000000 +0100
@@ -14,7 +14,7 @@
Signed-off-by: Alexander Graf <agraf(a)suse.de>
---
linux-user/syscall.c | 20 ++++++++++++++++++++
- 1 Datei geändert, 20 Zeilen hinzugefügt(+)
+ 1 files changed, 20 insertions(+), 0 deletions(-)
diff --git a/linux-user/syscall.c b/linux-user/syscall.c
index 5295afb..034cd5a 100644
++++++ 0026-linux-user-implement-FS_IOC_GETFLAG.patch ++++++
--- /var/tmp/diff_new_pack.s3Go8h/_old 2012-12-21 10:32:57.000000000 +0100
+++ /var/tmp/diff_new_pack.s3Go8h/_new 2012-12-21 10:32:57.000000000 +0100
@@ -7,7 +7,7 @@
---
linux-user/ioctls.h | 1 +
linux-user/syscall_defs.h | 2 ++
- 2 Dateien geändert, 3 Zeilen hinzugefügt(+)
+ 2 files changed, 3 insertions(+), 0 deletions(-)
diff --git a/linux-user/ioctls.h b/linux-user/ioctls.h
index bb76c56..1b798b3 100644
++++++ 0027-linux-user-implement-FS_IOC_SETFLAG.patch ++++++
--- /var/tmp/diff_new_pack.s3Go8h/_old 2012-12-21 10:32:57.000000000 +0100
+++ /var/tmp/diff_new_pack.s3Go8h/_new 2012-12-21 10:32:57.000000000 +0100
@@ -7,7 +7,7 @@
---
linux-user/ioctls.h | 1 +
linux-user/syscall_defs.h | 1 +
- 2 Dateien geändert, 2 Zeilen hinzugefügt(+)
+ 2 files changed, 2 insertions(+), 0 deletions(-)
diff --git a/linux-user/ioctls.h b/linux-user/ioctls.h
index 1b798b3..5027c74 100644
++++++ 0028-linux-user-XXX-disable-fiemap.patch.patch ++++++
--- /var/tmp/diff_new_pack.s3Go8h/_old 2012-12-21 10:32:57.000000000 +0100
+++ /var/tmp/diff_new_pack.s3Go8h/_new 2012-12-21 10:32:57.000000000 +0100
@@ -6,7 +6,7 @@
agraf: fiemap breaks in libarchive. Disable it for now.
---
linux-user/syscall.c | 5 +++++
- 1 Datei geändert, 5 Zeilen hinzugefügt(+)
+ 1 files changed, 5 insertions(+), 0 deletions(-)
diff --git a/linux-user/syscall.c b/linux-user/syscall.c
index 034cd5a..526e0f0 100644
++++++ 0029-slirp-nooutgoing.patch.patch ++++++
--- /var/tmp/diff_new_pack.s3Go8h/_old 2012-12-21 10:32:57.000000000 +0100
+++ /var/tmp/diff_new_pack.s3Go8h/_new 2012-12-21 10:32:57.000000000 +0100
@@ -1,5 +1,5 @@
From ce4a86e1d33b1ca4fd3c3bd67a009e74a1dc5636 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Andreas=20F=C3=A4rber?= <afaerber(a)suse.de>
+From: =?utf-8?q?Andreas=20F=C3=A4rber?= <afaerber(a)suse.de>
Date: Wed, 29 Aug 2012 18:42:56 +0200
Subject: [PATCH] slirp: -nooutgoing
@@ -9,7 +9,7 @@
slirp/socket.c | 8 ++++++++
slirp/tcp_subr.c | 16 ++++++++++++++++
vl.c | 9 +++++++++
- 4 Dateien geändert, 43 Zeilen hinzugefügt(+)
+ 4 files changed, 43 insertions(+), 0 deletions(-)
diff --git a/qemu-options.hx b/qemu-options.hx
index 94a1c50..9635327 100644
++++++ 0030-vnc-password-file-and-incoming-conn.patch ++++++
--- /var/tmp/diff_new_pack.s3Go8h/_old 2012-12-21 10:32:57.000000000 +0100
+++ /var/tmp/diff_new_pack.s3Go8h/_new 2012-12-21 10:32:57.000000000 +0100
@@ -1,12 +1,12 @@
From 1915e62ecadb41ebd1fcc563afe4f6c0dea8f43b Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Andreas=20F=C3=A4rber?= <afaerber(a)suse.de>
+From: =?utf-8?q?Andreas=20F=C3=A4rber?= <afaerber(a)suse.de>
Date: Wed, 29 Aug 2012 20:06:01 +0200
Subject: [PATCH] vnc: password-file= and incoming-connections=
TBD (from SUSE Studio team)
---
ui/vnc.c | 71 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
- 1 Datei geändert, 71 Zeilen hinzugefügt(+)
+ 1 files changed, 71 insertions(+), 0 deletions(-)
diff --git a/ui/vnc.c b/ui/vnc.c
index ba30362..d99c1bd 100644
++++++ 0031-linux-user-add-more-blk-ioctls.patc.patch ++++++
--- /var/tmp/diff_new_pack.s3Go8h/_old 2012-12-21 10:32:57.000000000 +0100
+++ /var/tmp/diff_new_pack.s3Go8h/_new 2012-12-21 10:32:57.000000000 +0100
@@ -10,7 +10,7 @@
linux-user/ioctls.h | 18 ++++++++++++++++++
linux-user/syscall_defs.h | 6 ++++++
linux-user/syscall_types.h | 3 +++
- 3 Dateien geändert, 27 Zeilen hinzugefügt(+)
+ 3 files changed, 27 insertions(+), 0 deletions(-)
diff --git a/linux-user/ioctls.h b/linux-user/ioctls.h
index 5027c74..4522c14 100644
++++++ 0032-linux-user-use-target_ulong.patch.patch ++++++
--- /var/tmp/diff_new_pack.s3Go8h/_old 2012-12-21 10:32:57.000000000 +0100
+++ /var/tmp/diff_new_pack.s3Go8h/_new 2012-12-21 10:32:57.000000000 +0100
@@ -14,7 +14,7 @@
---
linux-user/qemu.h | 8 ++++----
linux-user/syscall.c | 8 ++++----
- 2 Dateien geändert, 8 Zeilen hinzugefügt(+), 8 Zeilen entfernt(-)
+ 2 files changed, 8 insertions(+), 8 deletions(-)
diff --git a/linux-user/qemu.h b/linux-user/qemu.h
index 7cc7b87..88de318 100644
++++++ 0033-Add-support-for-DictZip-enabled-gzi.patch ++++++
++++ 608 lines (skipped)
++++++ 0034-Add-tar-container-format.patch.patch ++++++
>From ea0fed7478adeeaf13696c23493c2c6d86d73889 Mon Sep 17 00:00:00 2001
From: Alexander Graf <agraf(a)suse.de>
Date: Wed, 5 Aug 2009 17:28:38 +0200
Subject: [PATCH] Add tar container format
Tar is a very widely used format to store data in. Sometimes people even put
virtual machine images in there.
So it makes sense for qemu to be able to read from tar files. I implemented a
written from scratch reader that also knows about the GNU sparse format, which
is what pigz creates.
This version checks for filenames that end on well-known extensions. The logic
could be changed to search for filenames given on the command line, but that
would require changes to more parts of qemu.
The tar reader in conjunctiuon with dzip gives us the chance to download
tar'ed up virtual machine images (even via http) and instantly make use of
them.
Signed-off-by: Alexander Graf <agraf(a)suse.de>
Signed-off-by: Bruce Rogers <brogers(a)novell.com>
---
block/Makefile.objs | 1 +
block/tar.c | 356 +++++++++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 357 insertions(+), 0 deletions(-)
create mode 100644 block/tar.c
diff --git a/block/Makefile.objs b/block/Makefile.objs
index 054b06e..34850e3 100644
--- a/block/Makefile.objs
+++ b/block/Makefile.objs
@@ -19,3 +19,4 @@ common-obj-y += stream.o
common-obj-y += commit.o
common-obj-y += mirror.o
common-obj-y += dictzip.o
+common-obj-y += tar.o
diff --git a/block/tar.c b/block/tar.c
new file mode 100644
index 0000000..27750c7
--- /dev/null
+++ b/block/tar.c
@@ -0,0 +1,356 @@
+/*
+ * Tar block driver
+ *
+ * Copyright (c) 2009 Alexander Graf <agraf(a)suse.de>
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+
+#include "qemu-common.h"
+#include "block_int.h"
+
+// #define DEBUG
+
+#ifdef DEBUG
+#define dprintf(fmt, ...) do { printf("tar: " fmt, ## __VA_ARGS__); } while (0)
+#else
+#define dprintf(fmt, ...) do { } while (0)
+#endif
+
+#define SECTOR_SIZE 512
+
+#define POSIX_TAR_MAGIC "ustar"
+#define OFFS_LENGTH 0x7c
+#define OFFS_TYPE 0x9c
+#define OFFS_MAGIC 0x101
+
+#define OFFS_S_SP 0x182
+#define OFFS_S_EXT 0x1e2
+#define OFFS_S_LENGTH 0x1e3
+#define OFFS_SX_EXT 0x1f8
+
+typedef struct SparseCache {
+ uint64_t start;
+ uint64_t end;
+} SparseCache;
+
+typedef struct BDRVTarState {
+ BlockDriverState *hd;
+ size_t file_sec;
+ uint64_t file_len;
+ SparseCache *sparse;
+ int sparse_num;
+ uint64_t last_end;
+ char longfile[2048];
+} BDRVTarState;
+
+static int tar_probe(const uint8_t *buf, int buf_size, const char *filename)
+{
+ if (buf_size < OFFS_MAGIC + 5)
+ return 0;
+
+ /* we only support newer tar */
+ if (!strncmp((char*)buf + OFFS_MAGIC, POSIX_TAR_MAGIC, 5))
+ return 100;
+
+ return 0;
+}
+
+static int str_ends(char *str, const char *end)
+{
+ int end_len = strlen(end);
+ int str_len = strlen(str);
+
+ if (str_len < end_len)
+ return 0;
+
+ return !strncmp(str + str_len - end_len, end, end_len);
+}
+
+static int is_target_file(BlockDriverState *bs, char *filename)
+{
+ int retval = 0;
+
+ if (str_ends(filename, ".raw"))
+ retval = 1;
+
+ if (str_ends(filename, ".qcow"))
+ retval = 1;
+
+ if (str_ends(filename, ".qcow2"))
+ retval = 1;
+
+ if (str_ends(filename, ".vmdk"))
+ retval = 1;
+
+ dprintf("does filename %s match? %s\n", filename, retval ? "yes" : "no");
+
+ /* make sure we're not using this name again */
+ filename[0] = '\0';
+ return retval;
+}
+
+static uint64_t tar2u64(char *ptr)
+{
+ uint64_t retval;
+ char oldend = ptr[12];
+
+ ptr[12] = '\0';
+ if (*ptr & 0x80) {
+ /* XXX we only support files up to 64 bit length */
+ retval = be64_to_cpu(*(uint64_t *)(ptr+4));
+ dprintf("Convert %lx -> %#lx\n", *(uint64_t*)(ptr+4), retval);
+ } else {
+ retval = strtol(ptr, NULL, 8);
+ dprintf("Convert %s -> %#lx\n", ptr, retval);
+ }
+
+ ptr[12] = oldend;
+
+ return retval;
+}
+
+static void tar_sparse(BDRVTarState *s, uint64_t offs, uint64_t len)
+{
+ SparseCache *sparse;
+
+ if (!len)
+ return;
+ if (!(offs - s->last_end)) {
+ s->last_end += len;
+ return;
+ }
+ if (s->last_end > offs)
+ return;
+
+ dprintf("Last chunk until %lx new chunk at %lx\n", s->last_end, offs);
+
+ s->sparse = g_realloc(s->sparse, (s->sparse_num + 1) * sizeof(SparseCache));
+ sparse = &s->sparse[s->sparse_num];
+ sparse->start = s->last_end;
+ sparse->end = offs;
+ s->last_end = offs + len;
+ s->sparse_num++;
+ dprintf("Sparse at %lx end=%lx\n", sparse->start,
+ sparse->end);
+}
+
+static int tar_open(BlockDriverState *bs, const char *filename, int flags)
+{
+ BDRVTarState *s = bs->opaque;
+ char header[SECTOR_SIZE];
+ char *real_file = header;
+ char *magic;
+ const char *fname = filename;
+ size_t header_offs = 0;
+ int ret;
+
+ if (!strncmp(filename, "tar://", 6))
+ fname += 6;
+ else if (!strncmp(filename, "tar:", 4))
+ fname += 4;
+
+ ret = bdrv_file_open(&s->hd, fname, flags);
+ if (ret < 0)
+ return ret;
+
+ /* Search the file for an image */
+
+ do {
+ /* tar header */
+ if (bdrv_pread(s->hd, header_offs, header, SECTOR_SIZE) != SECTOR_SIZE)
+ goto fail;
+
+ if ((header_offs > 1) && !header[0]) {
+ fprintf(stderr, "Tar: No image file found in archive\n");
+ goto fail;
+ }
+
+ magic = &header[OFFS_MAGIC];
+ if (strncmp(magic, POSIX_TAR_MAGIC, 5)) {
+ fprintf(stderr, "Tar: Invalid magic: %s\n", magic);
+ goto fail;
+ }
+
+ dprintf("file type: %c\n", header[OFFS_TYPE]);
+
+ /* file length*/
+ s->file_len = (tar2u64(&header[OFFS_LENGTH]) + (SECTOR_SIZE - 1)) &
+ ~(SECTOR_SIZE - 1);
+ s->file_sec = (header_offs / SECTOR_SIZE) + 1;
+
+ header_offs += s->file_len + SECTOR_SIZE;
+
+ if (header[OFFS_TYPE] == 'L') {
+ bdrv_pread(s->hd, header_offs - s->file_len, s->longfile,
+ sizeof(s->longfile));
+ s->longfile[sizeof(s->longfile)-1] = '\0';
+ } else if (s->longfile[0]) {
+ real_file = s->longfile;
+ } else {
+ real_file = header;
+ }
+ } while(!is_target_file(bs, real_file));
+
+ /* We found an image! */
+
+ if (header[OFFS_TYPE] == 'S') {
+ uint8_t isextended;
+ int i;
+
+ for (i = OFFS_S_SP; i < (OFFS_S_SP + (4 * 24)); i += 24)
+ tar_sparse(s, tar2u64(&header[i]), tar2u64(&header[i+12]));
+
+ s->file_len = tar2u64(&header[OFFS_S_LENGTH]);
+ isextended = header[OFFS_S_EXT];
+
+ while (isextended) {
+ if (bdrv_pread(s->hd, s->file_sec * SECTOR_SIZE, header,
+ SECTOR_SIZE) != SECTOR_SIZE)
+ goto fail;
+
+ for (i = 0; i < (21 * 24); i += 24)
+ tar_sparse(s, tar2u64(&header[i]), tar2u64(&header[i+12]));
+ isextended = header[OFFS_SX_EXT];
+ s->file_sec++;
+ }
+ tar_sparse(s, s->file_len, 1);
+ }
+
+ return 0;
+
+fail:
+ fprintf(stderr, "Tar: Error opening file\n");
+ bdrv_delete(s->hd);
+ return -EINVAL;
+}
+
+typedef struct TarAIOCB {
+ BlockDriverAIOCB common;
+ QEMUBH *bh;
+} TarAIOCB;
+
+/* This callback gets invoked when we have pure sparseness */
+static void tar_sparse_cb(void *opaque)
+{
+ TarAIOCB *acb = (TarAIOCB *)opaque;
+
+ acb->common.cb(acb->common.opaque, 0);
+ qemu_bh_delete(acb->bh);
+ qemu_aio_release(acb);
+}
+
+static void tar_aio_cancel(BlockDriverAIOCB *blockacb)
+{
+}
+
+static AIOCBInfo tar_aiocb_info = {
+ .aiocb_size = sizeof(TarAIOCB),
+ .cancel = tar_aio_cancel,
+};
+
+/* This is where we get a request from a caller to read something */
+static BlockDriverAIOCB *tar_aio_readv(BlockDriverState *bs,
+ int64_t sector_num, QEMUIOVector *qiov, int nb_sectors,
+ BlockDriverCompletionFunc *cb, void *opaque)
+{
+ BDRVTarState *s = bs->opaque;
+ SparseCache *sparse;
+ int64_t sec_file = sector_num + s->file_sec;
+ int64_t start = sector_num * SECTOR_SIZE;
+ int64_t end = start + (nb_sectors * SECTOR_SIZE);
+ int i;
+ TarAIOCB *acb;
+
+ for (i = 0; i < s->sparse_num; i++) {
+ sparse = &s->sparse[i];
+ if (sparse->start > end) {
+ /* We expect the cache to be start increasing */
+ break;
+ } else if ((sparse->start < start) && (sparse->end <= start)) {
+ /* sparse before our offset */
+ sec_file -= (sparse->end - sparse->start) / SECTOR_SIZE;
+ } else if ((sparse->start <= start) && (sparse->end >= end)) {
+ /* all our sectors are sparse */
+ char *buf = g_malloc0(nb_sectors * SECTOR_SIZE);
+
+ acb = qemu_aio_get(&tar_aiocb_info, bs, cb, opaque);
+ qemu_iovec_from_buf(qiov, 0, buf, nb_sectors * SECTOR_SIZE);
+ g_free(buf);
+ acb->bh = qemu_bh_new(tar_sparse_cb, acb);
+ qemu_bh_schedule(acb->bh);
+
+ return &acb->common;
+ } else if (((sparse->start >= start) && (sparse->start < end)) ||
+ ((sparse->end >= start) && (sparse->end < end))) {
+ /* we're semi-sparse (worst case) */
+ /* let's go synchronous and read all sectors individually */
+ char *buf = g_malloc(nb_sectors * SECTOR_SIZE);
+ uint64_t offs;
+
+ for (offs = 0; offs < (nb_sectors * SECTOR_SIZE);
+ offs += SECTOR_SIZE) {
+ bdrv_pread(bs, (sector_num * SECTOR_SIZE) + offs,
+ buf + offs, SECTOR_SIZE);
+ }
+
+ qemu_iovec_from_buf(qiov, 0, buf, nb_sectors * SECTOR_SIZE);
+ acb = qemu_aio_get(&tar_aiocb_info, bs, cb, opaque);
+ acb->bh = qemu_bh_new(tar_sparse_cb, acb);
+ qemu_bh_schedule(acb->bh);
+
+ return &acb->common;
+ }
+ }
+
+ return bdrv_aio_readv(s->hd, sec_file, qiov, nb_sectors,
+ cb, opaque);
+}
+
+static void tar_close(BlockDriverState *bs)
+{
+ dprintf("Close\n");
+}
+
+static int64_t tar_getlength(BlockDriverState *bs)
+{
+ BDRVTarState *s = bs->opaque;
+ dprintf("getlength -> %ld\n", s->file_len);
+ return s->file_len;
+}
+
+static BlockDriver bdrv_tar = {
+ .format_name = "tar",
+ .protocol_name = "tar",
+
+ .instance_size = sizeof(BDRVTarState),
+ .bdrv_file_open = tar_open,
+ .bdrv_close = tar_close,
+ .bdrv_getlength = tar_getlength,
+ .bdrv_probe = tar_probe,
+
+ .bdrv_aio_readv = tar_aio_readv,
+};
+
+static void tar_block_init(void)
+{
+ bdrv_register(&bdrv_tar);
+}
+
+block_init(tar_block_init);
++++++ 0035-Legacy-Patch-kvm-qemu-preXX-dictzip.patch ++++++
>From bd6cf9e4804b30c8212fe83ca3f08b12ab4f2d80 Mon Sep 17 00:00:00 2001
From: Alexander Graf <agraf(a)suse.de>
Date: Wed, 12 Dec 2012 19:11:30 +0100
Subject: [PATCH] Legacy Patch kvm-qemu-preXX-dictzip3.patch
---
block/tar.c | 13 +++++++++++--
1 files changed, 11 insertions(+), 2 deletions(-)
diff --git a/block/tar.c b/block/tar.c
index 27750c7..c5b75aa 100644
--- a/block/tar.c
+++ b/block/tar.c
@@ -83,7 +83,8 @@ static int str_ends(char *str, const char *end)
return !strncmp(str + str_len - end_len, end, end_len);
}
-static int is_target_file(BlockDriverState *bs, char *filename)
+static int is_target_file(BlockDriverState *bs, char *filename,
+ char *header)
{
int retval = 0;
@@ -99,10 +100,17 @@ static int is_target_file(BlockDriverState *bs, char *filename)
if (str_ends(filename, ".vmdk"))
retval = 1;
+ if (retval &&
+ (header[OFFS_TYPE] != '0') &&
+ (header[OFFS_TYPE] != 'S')) {
+ retval = 0;
+ }
+
dprintf("does filename %s match? %s\n", filename, retval ? "yes" : "no");
/* make sure we're not using this name again */
filename[0] = '\0';
+
return retval;
}
@@ -201,12 +209,13 @@ static int tar_open(BlockDriverState *bs, const char *filename, int flags)
bdrv_pread(s->hd, header_offs - s->file_len, s->longfile,
sizeof(s->longfile));
s->longfile[sizeof(s->longfile)-1] = '\0';
+ real_file = header;
} else if (s->longfile[0]) {
real_file = s->longfile;
} else {
real_file = header;
}
- } while(!is_target_file(bs, real_file));
+ } while(!is_target_file(bs, real_file, header));
/* We found an image! */
++++++ 0036-Legacy-Patch-kvm-qemu-preXX-report-.patch ++++++
>From fba5b73038a98aa1fd602ed3f7bc5c09026afd4a Mon Sep 17 00:00:00 2001
From: Alexander Graf <agraf(a)suse.de>
Date: Wed, 12 Dec 2012 19:11:31 +0100
Subject: [PATCH] Legacy Patch kvm-qemu-preXX-report-default-mac-used.patch
---
net.c | 22 ++++++++++++++++++++++
1 files changed, 22 insertions(+), 0 deletions(-)
diff --git a/net.c b/net.c
index e8ae13e..e181e50 100644
--- a/net.c
+++ b/net.c
@@ -138,6 +138,27 @@ void qemu_format_nic_info_str(NetClientState *nc, uint8_t macaddr[6])
macaddr[3], macaddr[4], macaddr[5]);
}
+static void default_mac_check(void)
+{
+ static const MACAddr def_mac = { .a = { 0x52,0x54,0x00,0x12,0x34,0x56 } };
+ static int warned = 0;
+ int i;
+
+ for (i = 0; i < MAX_NICS; i++)
+ {
+ if (!nd_table[i].used)
+ continue;
+ if (memcmp(nd_table[i].macaddr.a, def_mac.a, 5))
+ continue;
+ if (nd_table[i].macaddr.a[5] >= 0x56 &&
+ nd_table[i].macaddr.a[5] < 0x56 + MAX_NICS && !warned) {
+ warned = 1;
+ fprintf(stderr, "Warning: default mac address being used, creating "
+ "potential for address conflict\n");
+ }
+ }
+}
+
void qemu_macaddr_default_if_unset(MACAddr *macaddr)
{
static int index = 0;
@@ -1010,6 +1031,7 @@ int net_init_clients(void)
if (qemu_opts_foreach(net, net_init_client, NULL, 1) == -1) {
return -1;
}
+ default_mac_check();
return 0;
}
++++++ 0037-console-add-question-mark-escape-op.patch ++++++
>From 45c73a5a93f98bf1264d6678648a6e7392a0c7b1 Mon Sep 17 00:00:00 2001
From: Alexander Graf <agraf(a)suse.de>
Date: Mon, 6 Jun 2011 06:53:52 +0200
Subject: [PATCH] console: add question-mark escape operator
Some termcaps (found using SLES11SP1) use [? sequences. According to man
console_codes (http://linux.die.net/man/4/console_codes) the question mark
is a nop and should simply be ignored.
This patch does exactly that, rendering screen output readable when
outputting guest serial consoles to the graphical console emulator.
Signed-off-by: Alexander Graf <agraf(a)suse.de>
---
console.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/console.c b/console.c
index 048b48e..079f638 100644
--- a/console.c
+++ b/console.c
@@ -950,7 +950,7 @@ static void console_putchar(QemuConsole *s, int ch)
} else {
if (s->nb_esc_params < MAX_ESC_PARAMS)
s->nb_esc_params++;
- if (ch == ';')
+ if (ch == ';' || ch == '?')
break;
#ifdef DEBUG_CONSOLE
fprintf(stderr, "escape sequence CSI%d;%d%c, %d parameters\n",
++++++ 0038-Make-char-muxer-more-robust-wrt-sma.patch ++++++
>From afd30877ef2291d742fc1b57e24d80de8673b22c Mon Sep 17 00:00:00 2001
From: Alexander Graf <agraf(a)suse.de>
Date: Thu, 1 Apr 2010 17:36:23 +0200
Subject: [PATCH] Make char muxer more robust wrt small FIFOs
Virtio-Console can only process one character at a time. Using it on S390
gave me strage "lags" where I got the character I pressed before when
pressing one. So I typed in "abc" and only received "a", then pressed "d"
but the guest received "b" and so on.
While the stdio driver calls a poll function that just processes on its
queue in case virtio-console can't take multiple characters at once, the
muxer does not have such callbacks, so it can't empty its queue.
To work around that limitation, I introduced a new timer that only gets
active when the guest can not receive any more characters. In that case
it polls again after a while to check if the guest is now receiving input.
This patch fixes input when using -nographic on s390 for me.
---
qemu-char.c | 16 ++++++++++++++++
1 files changed, 16 insertions(+), 0 deletions(-)
diff --git a/qemu-char.c b/qemu-char.c
index 242b799..00e1b51 100644
--- a/qemu-char.c
+++ b/qemu-char.c
@@ -241,6 +241,9 @@ typedef struct {
IOEventHandler *chr_event[MAX_MUX];
void *ext_opaque[MAX_MUX];
CharDriverState *drv;
+#if defined(TARGET_S390X)
+ QEMUTimer *accept_timer;
+#endif
int focus;
int mux_cnt;
int term_got_escape;
@@ -397,6 +400,15 @@ static void mux_chr_accept_input(CharDriverState *chr)
d->chr_read[m](d->ext_opaque[m],
&d->buffer[m][d->cons[m]++ & MUX_BUFFER_MASK], 1);
}
+
+#if defined(TARGET_S390X)
+ /* We're still not able to sync producer and consumer, so let's wait a bit
+ and try again by then. */
+ if (d->prod[m] != d->cons[m]) {
+ qemu_mod_timer(d->accept_timer, qemu_get_clock_ns(vm_clock)
+ + (int64_t)100000);
+ }
+#endif
}
static int mux_chr_can_read(void *opaque)
@@ -479,6 +491,10 @@ static CharDriverState *qemu_chr_open_mux(CharDriverState *drv)
chr->opaque = d;
d->drv = drv;
d->focus = -1;
+#if defined(TARGET_S390X)
+ d->accept_timer = qemu_new_timer_ns(vm_clock,
+ (QEMUTimerCB*)mux_chr_accept_input, chr);
+#endif
chr->chr_write = mux_chr_write;
chr->chr_update_read_handler = mux_chr_update_read_handler;
chr->chr_accept_input = mux_chr_accept_input;
++++++ 0039-linux-user-lseek-explicitly-cast-en.patch ++++++
>From 9b90b7e01f2f4d474e68a43b5f1b2e821dfa8619 Mon Sep 17 00:00:00 2001
From: Alexander Graf <agraf(a)suse.de>
Date: Thu, 13 Dec 2012 14:29:22 +0100
Subject: [PATCH] linux-user: lseek: explicitly cast end offsets to signed
When doing lseek, SEEK_END indicates that the offset is a signed variable
that is usually negative, while and other SEEK indicates that it's unsigned.
When converting from 32bit to 64bit parameters, we need to take this into
account and enable SEEK_END to be negative, while other SEEKs usually indicate
absolute position which we need to maintain as unsigned.
Signed-off-by: Alexander Graf <agraf(a)suse.de>
---
linux-user/syscall.c | 9 +++++++--
1 files changed, 7 insertions(+), 2 deletions(-)
diff --git a/linux-user/syscall.c b/linux-user/syscall.c
index a694181..a038cbe 100644
--- a/linux-user/syscall.c
+++ b/linux-user/syscall.c
@@ -5597,9 +5597,14 @@ abi_long do_syscall(void *cpu_env, int num, abi_ulong arg1,
case TARGET_NR_oldstat:
goto unimplemented;
#endif
- case TARGET_NR_lseek:
- ret = get_errno(lseek(arg1, arg2, arg3));
+ case TARGET_NR_lseek: {
+ off_t off = arg2;
+ if (arg3 == SEEK_END) {
+ off = (abi_long)arg2;
+ }
+ ret = get_errno(lseek(arg1, off, arg3));
break;
+ }
#if defined(TARGET_NR_getxpid) && defined(TARGET_ALPHA)
/* Alpha specific */
case TARGET_NR_getxpid:
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package perl-Contextual-Return for openSUSE:Factory checked in at 2012-12-21 10:31:43
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/perl-Contextual-Return (Old)
and /work/SRC/openSUSE:Factory/.perl-Contextual-Return.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "perl-Contextual-Return", Maintainer is ""
Changes:
--------
--- /work/SRC/openSUSE:Factory/perl-Contextual-Return/perl-Contextual-Return.changes 2012-09-06 09:00:05.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.perl-Contextual-Return.new/perl-Contextual-Return.changes 2012-12-21 10:31:45.000000000 +0100
@@ -1,0 +2,20 @@
+Mon Dec 17 14:06:41 UTC 2012 - dvaleev(a)suse.com
+
+- update to 0.004007
+ - Further patch to failures.t
+ - Added redefinition of Scalar::Util::blessed() to avoid nasty
+ surprises (thanks Andrew!)
+ - Added confess() and cluck() overrides
+ and fixed caller() override to set @DB::args when appropriate
+ - Further patch for t/confess.t
+ (Thanks, David!)
+ - Circumvented annoying undef-as-key warnings in Perl 5.17+
+ - Honour @CARP_NOT's when reporting context
+ - Added BLESSED handler for better control over how blessed() lies
+ - Upgraded reimplementation of blessed() to make more sense
+
+- reanable tests for ARM (fixed upstream)
+- fix ppc test failures
+- provide Build.PL to be able to use create_packlist=0
+
+-------------------------------------------------------------------
Old:
----
Contextual-Return-0.004003.tar.gz
New:
----
Build.PL
Contextual-Return-0.004007.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ perl-Contextual-Return.spec ++++++
--- /var/tmp/diff_new_pack.n7DKJs/_old 2012-12-21 10:31:46.000000000 +0100
+++ /var/tmp/diff_new_pack.n7DKJs/_new 2012-12-21 10:31:46.000000000 +0100
@@ -17,7 +17,7 @@
Name: perl-Contextual-Return
-Version: 0.004003
+Version: 0.004007
Release: 0
%define cpan_name Contextual-Return
Summary: Create context-sensitive return values
@@ -25,6 +25,7 @@
Group: Development/Libraries/Perl
Url: http://search.cpan.org/dist/Contextual-Return/
Source: http://www.cpan.org/authors/id/D/DC/DCONWAY/%{cpan_name}-%{version}.tar.gz
+Source1: Build.PL
BuildArch: noarch
BuildRoot: %{_tmppath}/%{name}-%{version}-build
BuildRequires: perl
@@ -88,16 +89,13 @@
%prep
%setup -q -n %{cpan_name}-%{version}
+cp %{S:1} ./
%build
%{__perl} Build.PL installdirs=vendor
./Build build flags=%{?_smp_mflags}
%check
-# doesn't work for ARM
-if test "%_host_cpu" = "armv7hl"; then
- rm -f t/failures.t
-fi
./Build test
%install
++++++ Build.PL ++++++
use strict;
use warnings;
use Module::Build;
my $builder = Module::Build->new(
module_name => 'Contextual::Return',
license => 'perl',
dist_author => 'Damian Conway <DCONWAY(a)cpan.org>',
dist_version_from => 'lib/Contextual/Return.pm',
requires => {
'Test::More' => 0,
'version' => 0,
'Want' => 0,
},
add_to_cleanup => [ 'Contextual-Return-*' ],
);
$builder->create_build_script();
++++++ Contextual-Return-0.004003.tar.gz -> Contextual-Return-0.004007.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Contextual-Return-0.004003/Build.PL new/Contextual-Return-0.004007/Build.PL
--- old/Contextual-Return-0.004003/Build.PL 2006-02-13 01:54:33.000000000 +0100
+++ new/Contextual-Return-0.004007/Build.PL 1970-01-01 01:00:00.000000000 +0100
@@ -1,18 +0,0 @@
-use strict;
-use warnings;
-use Module::Build;
-
-my $builder = Module::Build->new(
- module_name => 'Contextual::Return',
- license => 'perl',
- dist_author => 'Damian Conway <DCONWAY(a)cpan.org>',
- dist_version_from => 'lib/Contextual/Return.pm',
- requires => {
- 'Test::More' => 0,
- 'version' => 0,
- 'Want' => 0,
- },
- add_to_cleanup => [ 'Contextual-Return-*' ],
-);
-
-$builder->create_build_script();
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Contextual-Return-0.004003/Changes new/Contextual-Return-0.004007/Changes
--- old/Contextual-Return-0.004003/Changes 2012-04-11 08:55:49.000000000 +0200
+++ new/Contextual-Return-0.004007/Changes 2012-10-06 00:05:05.000000000 +0200
@@ -115,3 +115,34 @@
- Patched failures.t to account from bleadperl changes
(thanks Zefram!)
+
+
+0.004004 Sun Aug 5 17:46:56 2012
+
+ - Further patch to failures.t
+
+ - Added redefinition of Scalar::Util::blessed() to avoid nasty
+ surprises (thanks Andrew!)
+
+ - Added confess() and cluck() overrides
+ and fixed caller() override to set @DB::args when appropriate
+
+
+0.004005 Mon Aug 20 10:44:35 2012
+
+ - Further patch for t/confess.t
+ (Thanks, David!)
+
+
+0.004006 Thu Oct 4 16:49:47 2012
+
+ - Circumvented annoying undef-as-key warnings in Perl 5.17+
+
+ - Honour @CARP_NOT's when reporting context
+
+
+0.004007 Fri Oct 5 23:05:05 2012
+
+ - Added BLESSED handler for better control over how blessed() lies
+
+ - Upgraded reimplementation of blessed() to make more sense
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Contextual-Return-0.004003/MANIFEST new/Contextual-Return-0.004007/MANIFEST
--- old/Contextual-Return-0.004003/MANIFEST 2012-04-11 08:55:51.000000000 +0200
+++ new/Contextual-Return-0.004007/MANIFEST 2012-10-06 00:05:06.000000000 +0200
@@ -1,7 +1,5 @@
-Build.PL
Changes
MANIFEST
-META.yml # Will be created by "make dist"
Makefile.PL
README
lib/Contextual/Return.pm
@@ -37,4 +35,6 @@
t/simple_rename.t
t/try
t/STRICT.t
-META.json Module JSON meta-data (added by MakeMaker)
+t/blessed.t
+t/confess.t
+META.yml Module meta-data (added by MakeMaker)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Contextual-Return-0.004003/META.json new/Contextual-Return-0.004007/META.json
--- old/Contextual-Return-0.004003/META.json 2012-04-11 08:55:51.000000000 +0200
+++ new/Contextual-Return-0.004007/META.json 1970-01-01 01:00:00.000000000 +0100
@@ -1,43 +0,0 @@
-{
- "abstract" : "Create context-sensitive return values",
- "author" : [
- "Damian Conway <DCONWAY(a)cpan.org>"
- ],
- "dynamic_config" : 1,
- "generated_by" : "ExtUtils::MakeMaker version 6.62, CPAN::Meta::Converter version 2.112150",
- "license" : [
- "unknown"
- ],
- "meta-spec" : {
- "url" : "http://search.cpan.org/perldoc?CPAN::Meta::Spec",
- "version" : "2"
- },
- "name" : "Contextual-Return",
- "no_index" : {
- "directory" : [
- "t",
- "inc"
- ]
- },
- "prereqs" : {
- "build" : {
- "requires" : {
- "ExtUtils::MakeMaker" : 0
- }
- },
- "configure" : {
- "requires" : {
- "ExtUtils::MakeMaker" : 0
- }
- },
- "runtime" : {
- "requires" : {
- "Test::More" : 0,
- "Want" : 0,
- "version" : 0
- }
- }
- },
- "release_status" : "stable",
- "version" : "0.004003"
-}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Contextual-Return-0.004003/META.yml new/Contextual-Return-0.004007/META.yml
--- old/Contextual-Return-0.004003/META.yml 2012-04-11 08:55:51.000000000 +0200
+++ new/Contextual-Return-0.004007/META.yml 2012-10-06 00:05:06.000000000 +0200
@@ -1,24 +1,24 @@
----
-abstract: 'Create context-sensitive return values'
+--- #YAML:1.0
+name: Contextual-Return
+version: 0.004007
+abstract: Create context-sensitive return values
author:
- - 'Damian Conway <DCONWAY(a)cpan.org>'
-build_requires:
- ExtUtils::MakeMaker: 0
+ - Damian Conway <DCONWAY(a)cpan.org>
+license: perl
+distribution_type: module
configure_requires:
- ExtUtils::MakeMaker: 0
-dynamic_config: 1
-generated_by: 'ExtUtils::MakeMaker version 6.62, CPAN::Meta::Converter version 2.112150'
-license: unknown
-meta-spec:
- url: http://module-build.sourceforge.net/META-spec-v1.4.html
- version: 1.4
-name: Contextual-Return
-no_index:
- directory:
- - t
- - inc
+ ExtUtils::MakeMaker: 0
+build_requires:
+ ExtUtils::MakeMaker: 0
requires:
- Test::More: 0
- Want: 0
- version: 0
-version: 0.004003
+ Test::More: 0
+ version: 0
+ Want: 0
+no_index:
+ directory:
+ - t
+ - inc
+generated_by: ExtUtils::MakeMaker version 6.57_05
+meta-spec:
+ url: http://module-build.sourceforge.net/META-spec-v1.4.html
+ version: 1.4
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Contextual-Return-0.004003/Makefile.PL new/Contextual-Return-0.004007/Makefile.PL
--- old/Contextual-Return-0.004003/Makefile.PL 2006-02-13 01:54:40.000000000 +0100
+++ new/Contextual-Return-0.004007/Makefile.PL 2012-04-12 20:54:04.000000000 +0200
@@ -7,6 +7,7 @@
AUTHOR => 'Damian Conway <DCONWAY(a)cpan.org>',
VERSION_FROM => 'lib/Contextual/Return.pm',
ABSTRACT_FROM => 'lib/Contextual/Return.pm',
+ LICENSE => 'perl',
PL_FILES => {},
PREREQ_PM => {
'Test::More' => 0,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Contextual-Return-0.004003/README new/Contextual-Return-0.004007/README
--- old/Contextual-Return-0.004003/README 2012-04-11 08:55:49.000000000 +0200
+++ new/Contextual-Return-0.004007/README 2012-10-06 00:05:05.000000000 +0200
@@ -1,4 +1,4 @@
-Contextual::Return version 0.004003
+Contextual::Return version 0.004007
This module provides a collection of named blocks that allow a return
statement to return different values depending on the context in which it's
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Contextual-Return-0.004003/lib/Contextual/Return/Failure.pm new/Contextual-Return-0.004007/lib/Contextual/Return/Failure.pm
--- old/Contextual-Return-0.004003/lib/Contextual/Return/Failure.pm 2010-10-04 06:30:30.000000000 +0200
+++ new/Contextual-Return-0.004007/lib/Contextual/Return/Failure.pm 2012-09-07 05:23:20.000000000 +0200
@@ -104,10 +104,10 @@
if (ref $exception) {
my $message = "$exception";
$message =~ s/$/\n/;
- die _in_context $message, "Attempted to use failure value"
+ die _in_context $message, "Attempted to use failure value";
}
else {
- die _in_context $exception, "Attempted to use failure value"
+ die _in_context $exception, "Attempted to use failure value";
}
}
METHOD {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Contextual-Return-0.004003/lib/Contextual/Return.pm new/Contextual-Return-0.004007/lib/Contextual/Return.pm
--- old/Contextual-Return-0.004003/lib/Contextual/Return.pm 2012-04-11 08:55:49.000000000 +0200
+++ new/Contextual-Return-0.004007/lib/Contextual/Return.pm 2012-10-06 00:05:05.000000000 +0200
@@ -1,21 +1,38 @@
package Contextual::Return;
-# Fake out CORE::GLOBAL::caller and Carp very early...
+my %attrs_of;
+
+# Fake out CORE::GLOBAL::caller, Carp::*, and Scalar::Util::blessed() very early...
BEGIN {
no warnings 'redefine';
my $fallback_caller = *CORE::GLOBAL::caller{CODE};
*CORE::GLOBAL::caller = sub {
my ($uplevels) = shift || 0;
- if ($fallback_caller) {
- return $fallback_caller->($uplevels + 2 + $Contextual::Return::uplevel)
- if $Contextual::Return::uplevel;
- return $fallback_caller->($uplevels + 1);
+ if (CORE::caller eq 'DB') {
+ package DB;
+ if ($fallback_caller) {
+ return $fallback_caller->($uplevels + 2 + $Contextual::Return::uplevel)
+ if $Contextual::Return::uplevel;
+ return $fallback_caller->($uplevels + 1);
+ }
+ else {
+ return CORE::caller($uplevels + 2 + $Contextual::Return::uplevel)
+ if $Contextual::Return::uplevel;
+ return CORE::caller($uplevels + 1);
+ }
}
else {
- return CORE::caller($uplevels + 2 + $Contextual::Return::uplevel)
- if $Contextual::Return::uplevel;
- return CORE::caller($uplevels + 1);
+ if ($fallback_caller) {
+ return $fallback_caller->($uplevels + 2 + $Contextual::Return::uplevel)
+ if $Contextual::Return::uplevel;
+ return $fallback_caller->($uplevels + 1);
+ }
+ else {
+ return CORE::caller($uplevels + 2 + $Contextual::Return::uplevel)
+ if $Contextual::Return::uplevel;
+ return CORE::caller($uplevels + 1);
+ }
}
};
@@ -33,9 +50,44 @@
die _in_context(@_);
};
+ # Scalar::Util::blessed()...
+ use Scalar::Util 'refaddr';
+
+ # Remember the current blessed()...
+ my $original_blessing = *Scalar::Util::blessed{CODE};
+
+ # ...and replace it...
+ *Scalar::Util::blessed = sub($) {
+ # Are we operating on a CRV???
+ my $attrs = $attrs_of{refaddr $_[0] or q{}};
+
+ # If not, use the original code...
+ goto &{$original_blessing} if !$attrs;
+
+ # Does this object have a BLESSED handler???
+ if (exists $attrs->{BLESSED}) {
+ return $attrs->{BLESSED}->(@{$attrs->{args}});
+ }
+
+ # Otherwise, find the appropriate scalar handler...
+ handler:
+ for my $context (qw( OBJREF LAZY REF SCALAR VALUE NONVOID DEFAULT )) {
+ my $handler = $attrs->{$context}
+ or next handler;
+
+ my $obj_ref = eval { $handler->(@{$attrs->{args}}) };
+
+ my $was_blessed = $original_blessing->($obj_ref);
+ return $was_blessed if $was_blessed;
+ }
+
+ # Otherwise, simulate unblessed status...
+ return undef;
+ };
}
-our $VERSION = '0.004003';
+
+our $VERSION = '0.004007';
use warnings;
use strict;
@@ -64,6 +116,10 @@
# Track the call up the stack...
$LOC = qq{at $file line $line};
+ # Ignore any @CARP_NOT'ed packages
+ next STACK_FRAME
+ if do { no strict 'refs'; *{$package.'::CARP_NOT'}{ARRAY}; };
+
# Ignore transitions within original caller...
next STACK_FRAME
if $package eq $orig_package && $prev_package eq $orig_package;
@@ -98,16 +154,15 @@
GLOBREF
OBJREF
METHOD
+ BLESSED
);
-my %attrs_of;
-
my @ALL_EXPORTS = (
@CONTEXTS,
qw(
LAZY RESULT RVALUE METHOD FAIL
FIXED RECOVER LVALUE RETOBJ FAIL_WITH
- ACTIVE CLEANUP NVALUE STRICT
+ ACTIVE CLEANUP NVALUE STRICT BLESSED
)
);
@@ -271,7 +326,7 @@
no strict 'refs';
*{$modifier_name} = sub ($) {
my ($crv) = @_;
- my $attrs = $attrs_of{refaddr $crv};
+ my $attrs = $attrs_of{refaddr $crv or q{}};
# Track context...
my $wantarray = wantarray;
@@ -876,7 +931,7 @@
my $type = ref $data_ref;
return if !$type;
for my $value ( $type eq 'SCALAR' ? ${$data_ref} : @{$data_ref} ) {
- no warnings 'numeric';
+ no warnings 'numeric', 'uninitialized';
if ($value == $obj_ref) {
$value = '<<<self-reference>>>';
}
@@ -908,7 +963,7 @@
# Detect self-referential overloadings (to avoid infinite recursion)...
{
- no warnings 'numeric';
+ no warnings 'numeric', 'uninitialized';
if (ref $retval eq 'REF' && ${$retval} == ${$self}) {
return { $context => "<<<self-reference>>>" };
}
@@ -1626,7 +1681,7 @@
=head1 VERSION
-This document describes Contextual::Return version 0.004003
+This document describes Contextual::Return version 0.004007
=head1 SYNOPSIS
@@ -2160,6 +2215,8 @@
|--< GLOBREF
|
`--< OBJREF <....... METHOD
+ ^
+ :........... BLESSED
As before, each dashed arrow represents a fallback relationship. That
is, if the required context specifier isn't available, the arrows are
@@ -2209,7 +2266,7 @@
print "There are ${get_todo_tasks()}..."; # Throws an exception
-=head2 Treating returns values as objects
+=head2 Treating return values as objects
Normally, when a return value is treated as an object (i.e. has a method
called on it), Contextual::Return invokes any C<OBJREF> handler that was
@@ -2257,6 +2314,70 @@
(if it is also specified).
+=head2 Not treating return values as objects
+
+The use of C<OBJREF> and C<METHOD> are slightly complicated by the fact
+that contextual return values are themselves objects.
+
+For example, prior to version 0.4.4 of the module, if you passed a
+contextual return value to C<Scalar::Util::blessed()>, it always
+returned a true value (namely, the string: 'Contextual::Return::Value'),
+even if the return value had not specified handlers for C<OBJREF> or
+C<METHOD>.
+
+In other words, the I<implementation> of contextual return values (as
+objects) was getting in the way of the I<use> of contextual return
+values (as non-objects).
+
+So the module now also provides a C<BLESSED> handler, which allows you
+to explicitly control how contextual return values interact with
+C<Scalar::Util::blessed()>.
+
+If C<$crv> is a contextual return value, by default
+C<Scalar::Util::blessed($crv)> will now only return true if that return
+value has a C<OBJREF>, C<LAZY>, C<REF>, C<SCALAR>, C<VALUE>, C<NONVOID>,
+or C<DEFAULT> handler that in turn returns a blessed object.
+
+However if C<$crv> also provides a C<BLESSED> handler, C<blessed()>
+will return whatever that handler returns.
+
+This means:
+
+ sub simulate_non_object {
+ return BOOL { 1 }
+ NUM { 42 }
+ }
+
+ sub simulate_real_object {
+ return OBJREF { bless {}, 'My::Class' }
+ BOOL { 1 }
+ NUM { 42 }
+ }
+
+ sub simulate_faked_object {
+ return BLESSED { 'Foo' }
+ BOOL { 1 }
+ NUM { 42 }
+ }
+
+ sub simulate_previous_behaviour {
+ return BLESSED { 'Contextual::Return::Value' }
+ BOOL { 1 }
+ NUM { 42 }
+ }
+
+
+ say blessed( simulate_non_object() ); # undef
+ say blessed( simulate_real_object() ); # My::Class
+ say blessed( simulate_faked_object() ); # Foo
+ say blessed( simulate_previous_behaviour() ); # Contextual::Return::Value
+
+Typically, you either want no C<BLESSED> handler (in which case
+contextual return values pretend not to be blessed objects), or you want
+C<BLESSED { 'Contextual::Return::Value' }> for backwards compatibility
+with pre-v0.4.7 behaviour.
+
+
=head3 Preventing fallbacks
Sometimes fallbacks can be too helpful. Or sometimes you want to impose
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Contextual-Return-0.004003/t/blessed.t new/Contextual-Return-0.004007/t/blessed.t
--- old/Contextual-Return-0.004003/t/blessed.t 1970-01-01 01:00:00.000000000 +0100
+++ new/Contextual-Return-0.004007/t/blessed.t 2012-10-05 23:30:36.000000000 +0200
@@ -0,0 +1,60 @@
+use Contextual::Return;
+
+sub blessed_obj { return bless {}, 'Blessed' }
+sub unblessed_obj { return 42 }
+
+sub blessed_OBJREF { return OBJREF { bless {}, 'Blessed' } }
+sub blessed_REF { return REF { bless {}, 'Blessed' } }
+sub blessed_SCALAR { return SCALAR { bless {}, 'Blessed' } }
+sub blessed_VALUE { return VALUE { bless {}, 'Blessed' } }
+sub blessed_NONVOID { return NONVOID { bless {}, 'Blessed' } }
+sub blessed_DEFAULT { return DEFAULT { bless {}, 'Blessed' } }
+sub blessed_BLESSED { return BLESSED { 'EXPLICITLY_BLESSED' } }
+
+sub unblessed_OBJREF { return OBJREF { 'unblessed' } }
+sub unblessed_REF { return REF { 'unblessed' } }
+sub unblessed_SCALAR { return SCALAR { 'unblessed' } }
+sub unblessed_VALUE { return VALUE { 'unblessed' } }
+sub unblessed_NONVOID { return NONVOID { 'unblessed' } }
+sub unblessed_DEFAULT { return DEFAULT { 'unblessed' } }
+sub unblessed_BLESSED { return BLESSED { undef } }
+
+package Other;
+use Test::More 'no_plan';
+use Scalar::Util 'blessed';
+
+is ref( ::blessed_obj ()), 'Blessed' => 'ref blessed obj ';
+is ref( ::blessed_OBJREF ()), 'Contextual::Return::Value' => 'ref blessed OBJREF ';
+is ref( ::blessed_REF ()), 'Contextual::Return::Value' => 'ref blessed REF ';
+is ref( ::blessed_SCALAR ()), 'Contextual::Return::Value' => 'ref blessed SCALAR ';
+is ref( ::blessed_VALUE ()), 'Contextual::Return::Value' => 'ref blessed VALUE ';
+is ref( ::blessed_NONVOID()), 'Contextual::Return::Value' => 'ref blessed NONVOID';
+is ref( ::blessed_DEFAULT()), 'Contextual::Return::Value' => 'ref blessed DEFAULT';
+is ref( ::blessed_BLESSED()), 'Contextual::Return::Value' => 'ref blessed BLESSED';
+
+is ref( ::unblessed_obj ()), q{} => 'ref unblessed obj ';
+is ref( ::unblessed_OBJREF ()), 'Contextual::Return::Value' => 'ref unblessed OBJREF ';
+is ref( ::unblessed_REF ()), 'Contextual::Return::Value' => 'ref unblessed REF ';
+is ref( ::unblessed_SCALAR ()), 'Contextual::Return::Value' => 'ref unblessed SCALAR ';
+is ref( ::unblessed_VALUE ()), 'Contextual::Return::Value' => 'ref unblessed VALUE ';
+is ref( ::unblessed_NONVOID()), 'Contextual::Return::Value' => 'ref unblessed NONVOID';
+is ref( ::unblessed_DEFAULT()), 'Contextual::Return::Value' => 'ref unblessed DEFAULT';
+is ref( ::unblessed_BLESSED()), 'Contextual::Return::Value' => 'ref unblessed BLESSED';
+
+is blessed( ::blessed_obj ()), 'Blessed' => 'blessed obj ';
+is blessed( ::blessed_OBJREF ()), 'Blessed' => 'blessed OBJREF ';
+is blessed( ::blessed_REF ()), 'Blessed' => 'blessed REF ';
+is blessed( ::blessed_SCALAR ()), 'Blessed' => 'blessed SCALAR ';
+is blessed( ::blessed_VALUE ()), 'Blessed' => 'blessed VALUE ';
+is blessed( ::blessed_NONVOID()), 'Blessed' => 'blessed NONVOID';
+is blessed( ::blessed_DEFAULT()), 'Blessed' => 'blessed DEFAULT';
+is blessed( ::blessed_BLESSED()), 'EXPLICITLY_BLESSED' => 'blessed BLESSED';
+
+is blessed(::unblessed_obj ()), undef() => 'unblessed obj ';
+is blessed(::unblessed_OBJREF ()), undef() => 'unblessed OBJREF ';
+is blessed(::unblessed_REF ()), undef() => 'unblessed REF ';
+is blessed(::unblessed_SCALAR ()), undef() => 'unblessed SCALAR ';
+is blessed(::unblessed_VALUE ()), undef() => 'unblessed VALUE ';
+is blessed(::unblessed_NONVOID()), undef() => 'unblessed NONVOID';
+is blessed(::unblessed_DEFAULT()), undef() => 'unblessed DEFAULT';
+is blessed(::unblessed_BLESSED()), undef() => 'unblessed BLESSED';
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Contextual-Return-0.004003/t/confess.t new/Contextual-Return-0.004007/t/confess.t
--- old/Contextual-Return-0.004003/t/confess.t 1970-01-01 01:00:00.000000000 +0100
+++ new/Contextual-Return-0.004007/t/confess.t 2012-08-20 02:42:35.000000000 +0200
@@ -0,0 +1,12 @@
+use Contextual::Return;
+use Carp;
+use Test::More tests => 3;
+
+sub f { Carp::confess("Forgive me..."); };
+ok !defined eval { f() } => 'eval fails';
+my $exception = $@;
+ like $exception, qr{line\s${\(__LINE__-3)}\.?\n.*line\s${\(__LINE__-2)}}xms
+ => 'error message';
+unlike $exception, qr{\*\* Incomplete caller override detected; \@DB::args were not set \*\*}
+ => 'Complete override';
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Contextual-Return-0.004003/t/fail.t new/Contextual-Return-0.004007/t/fail.t
--- old/Contextual-Return-0.004003/t/fail.t 2010-10-04 06:32:57.000000000 +0200
+++ new/Contextual-Return-0.004007/t/fail.t 2012-08-14 12:48:00.000000000 +0200
@@ -1,4 +1,4 @@
-use Contextual::Return;
+use Contextual::Return qw< FAIL FAIL_WITH >;
use Test::More 'no_plan';
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Contextual-Return-0.004003/t/fail_with.t new/Contextual-Return-0.004007/t/fail_with.t
--- old/Contextual-Return-0.004003/t/fail_with.t 2007-03-08 01:14:15.000000000 +0100
+++ new/Contextual-Return-0.004007/t/fail_with.t 2012-08-14 12:48:56.000000000 +0200
@@ -1,4 +1,4 @@
-use Contextual::Return;
+use Contextual::Return qw< FAIL FAIL_WITH >;
use Carp;
my $FAIL_SPEC_ref;
@@ -11,7 +11,7 @@
$FAIL_SPEC_ref = {
good => sub { BOOL { 0 } DEFAULT { croak 'good'} },
bad => sub { BOOL { 1 } DEFAULT { () } },
- ugly => sub { BOOL { undef } DEFAULT { croak 'ugly'} },
+ ugly => sub { BOOL { undef } DEFAULT { confess 'ugly'} },
};
Contextual::Return::FAIL_WITH $FAIL_SPEC_ref, qw(oh be a good boy);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Contextual-Return-0.004003/t/failures.t new/Contextual-Return-0.004007/t/failures.t
--- old/Contextual-Return-0.004003/t/failures.t 2012-03-27 00:09:37.000000000 +0200
+++ new/Contextual-Return-0.004007/t/failures.t 2012-08-05 09:17:48.000000000 +0200
@@ -17,7 +17,8 @@
return sub {
# diag( "Caught warning: '@_'" );
ok $_[0] =~ $msg => "Warn msg correct at line $line";
- ok $_[0] =~ /line $line\.?\Z/ => "Line number correct at line $line";
+ ok $_[0] =~ /line $line\.?\Z/ => "Line number correct at line $line"
+ if $line;
}
}
@@ -73,5 +74,5 @@
like $exception, qr/^Can't use HASH as export specifier/
=> 'Correct exception';
-local $SIG{__WARN__} = ok_if_warn q{didn't export anything}, 1;
+local $SIG{__WARN__} = ok_if_warn q{didn't export anything};
eval 'use Contextual::Return qr/HANDLER/';
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package parcellite for openSUSE:Factory checked in at 2012-12-21 10:31:36
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/parcellite (Old)
and /work/SRC/openSUSE:Factory/.parcellite.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "parcellite", Maintainer is ""
Changes:
--------
--- /work/SRC/openSUSE:Factory/parcellite/parcellite.changes 2012-02-14 19:04:39.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.parcellite.new/parcellite.changes 2012-12-21 10:31:38.000000000 +0100
@@ -1,0 +2,21 @@
+Wed Dec 19 11:02:14 UTC 2012 - andrea(a)opensuse.org
+
+- new upstream version 1.0.2rc5
+ * Fixed 100% CPU bug that occurs with certain clipboard data.
+ * Fixed list not staying at the top of the list.
+ * Added patch that corrects clipboard losing text data when app closes.
+ * Added more man page information.
+ * Created new icon ‘parcellite’ and added it to install.
+ * Moved newline to after elipsizing (thanks, Christian).
+ * Added right-click delete.
+ * Added history location
+ * Added search as you type.
+ * Added Data Size limt.
+ * Fixed build so dist-clean does not remove icons.
+ * Added wrapper p_strcmp so it builds with Gtk <2.16
+ * and many many more
+- removed parcellite-0.9.1-ld_fix.diff now in upstream code
+- rebased parcellite-0.9.1-defaults.diff to apply
+- added parcellite-1.0.2rc5-rpmlint_happy.patch to fix some compiler warnings
+
+-------------------------------------------------------------------
Old:
----
parcellite-0.9.1-ld_fix.diff
parcellite-0.9.2.tar.bz2
New:
----
parcellite-1.0.2rc5-rpmlint_happy.patch
parcellite-1.0.2rc5.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ parcellite.spec ++++++
--- /var/tmp/diff_new_pack.mpIif4/_old 2012-12-21 10:31:40.000000000 +0100
+++ /var/tmp/diff_new_pack.mpIif4/_new 2012-12-21 10:31:40.000000000 +0100
@@ -15,21 +15,22 @@
# Please submit bugfixes or comments via http://bugs.opensuse.org/
#
+
Name: parcellite
-Version: 0.9.2
+Version: 1.0.2rc5
Release: 0
Summary: A lightweight GTK+ clipboard manager
License: GPL-3.0+
Group: Productivity/Other
Url: http://parcellite.sourceforge.net/
-Source0: %{name}-%{version}.tar.bz2
+Source0: %{name}-%{version}.tar.gz
BuildRoot: %{_tmppath}/%{name}-%{version}-build
Patch0: parcellite-0.9.1-german.diff
Patch1: parcellite-0.9.1-lxde-autostart.patch
Patch2: parcellite-0.9.1-defaults.diff
-Patch3: parcellite-0.9.1-ld_fix.diff
# PATCH-FIX-UPSTREAM parcellite-0.9.2-fix-glib-includes.patch gber(a)opensuse.org -- Do not include glib/gtypes.h directly
Patch4: parcellite-0.9.2-fix-glib-includes.patch
+Patch5: parcellite-1.0.2rc5-rpmlint_happy.patch
BuildRequires: automake
BuildRequires: gnome-icon-theme
BuildRequires: gtk2-devel >= 2.10.0
@@ -50,8 +51,8 @@
%patch0 -p1
%patch1 -p1
%patch2 -p1
-%patch3 -p1
%patch4 -p1
+%patch5 -p1
%build
autoreconf -fi
@@ -62,11 +63,7 @@
%install
make install DESTDIR=$RPM_BUILD_ROOT INSTALL='install -p'
mkdir -p $RPM_BUILD_ROOT%{_datadir}/pixmaps
-%if 0%suse_version > 1110
%define iconname edit-paste
-%else
-%define iconname gtk-paste
-%endif
install -m 644 \
/usr/share/icons/gnome/32x32/actions/%{iconname}.png \
$RPM_BUILD_ROOT%{_datadir}/pixmaps/%{name}.png
@@ -77,14 +74,11 @@
%clean
rm -rf $RPM_BUILD_ROOT
-%if 0%{?suse_version} >= 1140
-
%post
%desktop_database_post
%postun
%desktop_database_postun
-%endif
%files -f %{name}.lang
%defattr(-,root,root,-)
@@ -92,7 +86,7 @@
%config(noreplace) %{_sysconfdir}/xdg/autostart/%{name}-startup.desktop
%{_bindir}/%{name}
%{_datadir}/applications/%{name}.desktop
-%{_datadir}/pixmaps/%{name}.png
+%{_datadir}/pixmaps/%{name}.*
%{_mandir}/man1/*
%changelog
++++++ parcellite-0.9.1-defaults.diff ++++++
--- /var/tmp/diff_new_pack.mpIif4/_old 2012-12-21 10:31:40.000000000 +0100
+++ /var/tmp/diff_new_pack.mpIif4/_new 2012-12-21 10:31:40.000000000 +0100
@@ -1,12 +1,7 @@
-change some defaults:
-- monitor primary
-- disable global key bindings
-
-Index: parcellite-0.9.2/src/preferences.h
-===================================================================
---- parcellite-0.9.2.orig/src/preferences.h
-+++ parcellite-0.9.2/src/preferences.h
-@@ -26,7 +26,7 @@ G_BEGIN_DECLS
+diff -uNr old-parcellite-1.0.2rc5/src/preferences.h parcellite-1.0.2rc5/src/preferences.h
+--- old-parcellite-1.0.2rc5/src/preferences.h 2011-09-10 01:02:32.000000000 +0200
++++ parcellite-1.0.2rc5/src/preferences.h 2012-12-19 12:24:35.302718735 +0100
+@@ -26,7 +26,7 @@
#define INIT_MENU_KEY NULL
#define DEF_USE_COPY TRUE
@@ -15,7 +10,7 @@
#define DEF_SYNCHRONIZE FALSE
#define DEF_SAVE_HISTORY TRUE
#define DEF_HISTORY_LIMIT 25
-@@ -36,9 +36,9 @@ G_BEGIN_DECLS
+@@ -36,9 +36,9 @@
#define DEF_REVERSE_HISTORY FALSE
#define DEF_ITEM_LENGTH 50
#define DEF_ELLIPSIZE 2
@@ -27,4 +22,4 @@
+#define DEF_MENU_KEY ""
#define DEF_NO_ICON FALSE
- #define ACTIONS_FILE ".local/share/parcellite/actions"
+ #define ACTIONS_FILE "parcellite/actions"
++++++ parcellite-1.0.2rc5-rpmlint_happy.patch ++++++
diff -uNr old-parcellite-1.0.2rc5/src/main.c parcellite-1.0.2rc5/src/main.c
--- old-parcellite-1.0.2rc5/src/main.c 2011-09-10 01:02:32.000000000 +0200
+++ parcellite-1.0.2rc5/src/main.c 2012-12-19 14:24:01.724585469 +0100
@@ -20,6 +20,9 @@
#include <config.h>
#endif
+#include <stdio.h>.
+#include <unistd.h>
+#include <sys/socket.h>
#include <glib.h>
#include <stdlib.h>
#include <unistd.h>
@@ -776,6 +779,7 @@
/*g_print("selection_active=%d\n",selection_active); */
/*g_print("Got selection_done\n"); */
gtk_widget_destroy((GtkWidget *)menushell);
+ return TRUE ;
}
/***************************************************************************/
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package package-translations for openSUSE:Factory checked in at 2012-12-21 10:31:30
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/package-translations (Old)
and /work/SRC/openSUSE:Factory/.package-translations.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "package-translations", Maintainer is "coolo(a)suse.com"
Changes:
--------
--- /work/SRC/openSUSE:Factory/package-translations/package-translations.changes 2012-12-14 10:14:52.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.package-translations.new/package-translations.changes 2012-12-21 10:31:31.000000000 +0100
@@ -2 +2 @@
-Mon Dec 10 16:13:42 CET 2012 - <coolo(a)suse.com>
+Thu Dec 13 16:13:49 CET 2012 - <coolo(a)suse.com>
@@ -4 +4 @@
-- automated update on 2012-12-10
+- automated update on 2012-12-13
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ package-translations.tar.bz2 ++++++
Files old/mo/package-translations-fr.mo and new/mo/package-translations-fr.mo differ
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package matio for openSUSE:Factory checked in at 2012-12-21 10:24:14
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/matio (Old)
and /work/SRC/openSUSE:Factory/.matio.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "matio", Maintainer is ""
Changes:
--------
--- /work/SRC/openSUSE:Factory/matio/matio.changes 2012-09-17 14:00:26.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.matio.new/matio.changes 2012-12-21 10:24:17.000000000 +0100
@@ -1,0 +2,10 @@
+Thu Dec 20 16:43:12 UTC 2012 - dvaleev(a)suse.com
+
+- Fix Big Endian issues in mat4. (mat4_bigendian.patch)
+
+-------------------------------------------------------------------
+Thu Dec 20 14:59:20 UTC 2012 - dvaleev(a)suse.com
+
+- Fix failing 684 686 test (matvar_struct.patch)
+
+-------------------------------------------------------------------
New:
----
mat4_bigendian.patch
matvar_struct.patch
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ matio.spec ++++++
--- /var/tmp/diff_new_pack.Hyb6QG/_old 2012-12-21 10:24:17.000000000 +0100
+++ /var/tmp/diff_new_pack.Hyb6QG/_new 2012-12-21 10:24:17.000000000 +0100
@@ -19,15 +19,19 @@
Name: matio
%define libname lib%{name}
Version: 1.5.0
-%define major 2
Release: 0
-License: BSD-2-Clause
+%define major 2
Summary: Open-source library for reading and writing MATLAB MAT files
-Url: http://sourceforge.net/projects/matio
+License: BSD-2-Clause
Group: System/Libraries
+Url: http://sourceforge.net/projects/matio
Source0: %{name}-%{version}.tar.gz
# PATCH-FIX-UPSTREAM gcc-warnings-fix.patch
Patch0: gcc-warnings-fix.patch
+# PATCH-FIX-UPSTREAM upstream commit 09f5c87438a5883361b38cc98b4848acfcb65d97
+Patch1: matvar_struct.patch
+# PATCH-FIX-UPSTREAM patch from upsream developer. Will hit git repo soon.
+Patch2: mat4_bigendian.patch
BuildRequires: hdf5-devel >= 1.8
BuildRequires: pkgconfig
BuildRequires: zlib-devel >= 1.2.3
@@ -73,6 +77,8 @@
%prep
%setup -q
%patch0 -p1
+%patch1 -p1
+%patch2 -p1
%build
%configure \
++++++ mat4_bigendian.patch ++++++
diff --git a/src/mat4.c b/src/mat4.c
index bf2aaae..b1d7194 100644
--- a/src/mat4.c
+++ b/src/mat4.c
@@ -193,6 +193,10 @@ Mat_VarReadNextInfo4(mat_t *mat)
long nBytes;
size_t err;
matvar_t *matvar = NULL;
+ union {
+ mat_uint32_t u;
+ mat_uint8_t c[4];
+ } endian;
if ( mat == NULL || mat->fp == NULL )
return NULL;
@@ -208,6 +212,8 @@ Mat_VarReadNextInfo4(mat_t *mat)
return NULL;
}
+ endian.u = 0x01020304;
+
/* See if MOPT may need byteswapping */
if ( tmp < 0 || tmp > 4052 ) {
if ( Mat_int32Swap(&tmp) > 4052 ) {
@@ -224,7 +230,16 @@ Mat_VarReadNextInfo4(mat_t *mat)
tmp -= data_type*10;
class_type = floor(tmp);
- mat->byteswap = (M == 1) ? 1 : 0;
+ switch ( M ) {
+ case 0:
+ /* IEEE little endian */
+ mat->byteswap = (endian.c[0] != 4);
+ break;
+ case 1:
+ /* IEEE big endian */
+ mat->byteswap = (endian.c[0] != 1);
+ break;
+ }
/* Convert the V4 data type */
switch ( data_type ) {
case 0:
++++++ matvar_struct.patch ++++++
>From 4636dfab4012b7468ff338e1de2b77db701f4107 Mon Sep 17 00:00:00 2001
From: Christopher Hulbert <chulbe2lsu(a)users.sourceforge.net>
Date: Wed, 19 Dec 2012 07:46:36 -0500
Subject: [PATCH 1/2] Initialize fields of structure to NULL
* src/matvar_struct.c (Mat_VarCreateStruct): Initialize the pointer to each
field to NULL after allocation
---
src/matvar_struct.c | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/src/matvar_struct.c b/src/matvar_struct.c
index af23fee..88a2a8a 100644
--- a/src/matvar_struct.c
+++ b/src/matvar_struct.c
@@ -88,8 +88,12 @@ Mat_VarCreateStruct(const char *name,int rank,size_t *dims,const char **fields,
}
}
if ( NULL != matvar && nmemb > 0 && nfields > 0 ) {
+ matvar_t **field_vars;
matvar->nbytes = nmemb*nfields*matvar->data_size;
matvar->data = malloc(matvar->nbytes);
+ field_vars = (matvar_t**)matvar->data;
+ for ( i = 0; i < nfields*nmemb; i++ )
+ field_vars[i] = NULL;
}
}
--
1.7.12.2
>From 09f5c87438a5883361b38cc98b4848acfcb65d97 Mon Sep 17 00:00:00 2001
From: Christopher Hulbert <chulbe2lsu(a)users.sourceforge.net>
Date: Wed, 19 Dec 2012 07:48:05 -0500
Subject: [PATCH 2/2] Fix NULL argument test for Mat_VarGetNumberOfFields
* test/test_mat.c (test_struct_api_getfieldnames): Pass NULL rather than
matvar to Mat_VarGetNumberOfFields when testing behavior of NULL
argument
---
test/test_mat.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/test/test_mat.c b/test/test_mat.c
index 8f2b236..fe87f65 100644
--- a/test/test_mat.c
+++ b/test/test_mat.c
@@ -2173,7 +2173,7 @@ test_struct_api_getfieldnames(void)
}
Mat_VarFree(matvar);
- nfields = Mat_VarGetNumberOfFields(matvar);
+ nfields = Mat_VarGetNumberOfFields(NULL);
fieldnames2 = Mat_VarGetStructFieldnames(NULL);
printf("Fieldnames of \"NULL\":\n");
if ( nfields < 1 ) {
--
1.7.12.2
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0