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
April 2014
- 1 participants
- 1084 discussions
17 Apr '14
Hello community,
here is the log from the commit of package rubygem-activeresource-3_2 for openSUSE:Factory checked in at 2014-04-17 14:09:23
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/rubygem-activeresource-3_2 (Old)
and /work/SRC/openSUSE:Factory/.rubygem-activeresource-3_2.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "rubygem-activeresource-3_2"
Changes:
--------
--- /work/SRC/openSUSE:Factory/rubygem-activeresource-3_2/rubygem-activeresource-3_2.changes 2013-03-20 09:54:09.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.rubygem-activeresource-3_2.new/rubygem-activeresource-3_2.changes 2014-04-17 14:09:24.000000000 +0200
@@ -1,0 +2,8 @@
+Thu Apr 3 15:04:01 UTC 2014 - jmassaguerpla(a)suse.com
+
+- updated to version 3.2.17
+ * I had to update other rails components because of security issues,
+ thus I am updating this one so that we have all rails components
+ in the same version
+
+-------------------------------------------------------------------
Old:
----
activeresource-3.2.13.gem
New:
----
activeresource-3.2.17.gem
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ rubygem-activeresource-3_2.spec ++++++
--- /var/tmp/diff_new_pack.O8SHZ5/_old 2014-04-17 14:09:25.000000000 +0200
+++ /var/tmp/diff_new_pack.O8SHZ5/_new 2014-04-17 14:09:25.000000000 +0200
@@ -1,7 +1,7 @@
#
# spec file for package rubygem-activeresource-3_2
#
-# Copyright (c) 2013 SUSE LINUX Products GmbH, Nuernberg, Germany.
+# Copyright (c) 2014 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -17,7 +17,7 @@
Name: rubygem-activeresource-3_2
-Version: 3.2.13
+Version: 3.2.17
Release: 0
%define mod_name activeresource
%define mod_full_name %{mod_name}-%{version}
--
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 rubygem-activerecord-3_2 for openSUSE:Factory checked in at 2014-04-17 14:09:19
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/rubygem-activerecord-3_2 (Old)
and /work/SRC/openSUSE:Factory/.rubygem-activerecord-3_2.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "rubygem-activerecord-3_2"
Changes:
--------
--- /work/SRC/openSUSE:Factory/rubygem-activerecord-3_2/rubygem-activerecord-3_2.changes 2013-03-21 22:13:42.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.rubygem-activerecord-3_2.new/rubygem-activerecord-3_2.changes 2014-04-17 14:09:20.000000000 +0200
@@ -1,0 +2,8 @@
+Thu Apr 3 14:41:10 UTC 2014 - jmassaguerpla(a)suse.com
+
+- updated to version 3.2.17
+ * I had to update other rails components because of security issues,
+ thus I am updating this one so that we have all rails components
+ in the same version
+
+-------------------------------------------------------------------
Old:
----
activerecord-3.2.13.gem
New:
----
activerecord-3.2.17.gem
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ rubygem-activerecord-3_2.spec ++++++
--- /var/tmp/diff_new_pack.pIB43y/_old 2014-04-17 14:09:21.000000000 +0200
+++ /var/tmp/diff_new_pack.pIB43y/_new 2014-04-17 14:09:21.000000000 +0200
@@ -1,7 +1,7 @@
#
# spec file for package rubygem-activerecord-3_2
#
-# Copyright (c) 2013 SUSE LINUX Products GmbH, Nuernberg, Germany.
+# Copyright (c) 2014 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -17,7 +17,7 @@
Name: rubygem-activerecord-3_2
-Version: 3.2.13
+Version: 3.2.17
Release: 0
%define mod_name activerecord
%define mod_full_name %{mod_name}-%{version}
--
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 rubygem-activemodel-3_2 for openSUSE:Factory checked in at 2014-04-17 14:09:15
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/rubygem-activemodel-3_2 (Old)
and /work/SRC/openSUSE:Factory/.rubygem-activemodel-3_2.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "rubygem-activemodel-3_2"
Changes:
--------
--- /work/SRC/openSUSE:Factory/rubygem-activemodel-3_2/rubygem-activemodel-3_2.changes 2013-03-20 09:53:55.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.rubygem-activemodel-3_2.new/rubygem-activemodel-3_2.changes 2014-04-17 14:09:16.000000000 +0200
@@ -1,0 +2,8 @@
+Thu Apr 3 14:38:15 UTC 2014 - jmassaguerpla(a)suse.com
+
+- updated to version 3.2.17
+ * I had to update other rails components because of security issues,
+ thus I am updating this one so that we have all rails components
+ in the same version
+
+-------------------------------------------------------------------
Old:
----
activemodel-3.2.13.gem
New:
----
activemodel-3.2.17.gem
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ rubygem-activemodel-3_2.spec ++++++
--- /var/tmp/diff_new_pack.yx9unO/_old 2014-04-17 14:09:17.000000000 +0200
+++ /var/tmp/diff_new_pack.yx9unO/_new 2014-04-17 14:09:17.000000000 +0200
@@ -1,7 +1,7 @@
#
# spec file for package rubygem-activemodel-3_2
#
-# Copyright (c) 2013 SUSE LINUX Products GmbH, Nuernberg, Germany.
+# Copyright (c) 2014 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -17,7 +17,7 @@
Name: rubygem-activemodel-3_2
-Version: 3.2.13
+Version: 3.2.17
Release: 0
%define mod_name activemodel
%define mod_full_name %{mod_name}-%{version}
--
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 rubygem-actionmailer-3_2 for openSUSE:Factory checked in at 2014-04-17 14:09:11
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/rubygem-actionmailer-3_2 (Old)
and /work/SRC/openSUSE:Factory/.rubygem-actionmailer-3_2.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "rubygem-actionmailer-3_2"
Changes:
--------
--- /work/SRC/openSUSE:Factory/rubygem-actionmailer-3_2/rubygem-actionmailer-3_2.changes 2013-03-21 22:13:36.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.rubygem-actionmailer-3_2.new/rubygem-actionmailer-3_2.changes 2014-04-17 14:09:12.000000000 +0200
@@ -1,0 +2,6 @@
+Thu Apr 3 14:32:26 UTC 2014 - jmassaguerpla(a)suse.com
+
+- updated to version 3.2.17. Contains, among others, a patch for
+ CVE-2013-4389 (bnc#846239)
+
+-------------------------------------------------------------------
Old:
----
actionmailer-3.2.13.gem
New:
----
actionmailer-3.2.17.gem
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ rubygem-actionmailer-3_2.spec ++++++
--- /var/tmp/diff_new_pack.9zpwKR/_old 2014-04-17 14:09:13.000000000 +0200
+++ /var/tmp/diff_new_pack.9zpwKR/_new 2014-04-17 14:09:13.000000000 +0200
@@ -1,7 +1,7 @@
#
# spec file for package rubygem-actionmailer-3_2
#
-# Copyright (c) 2013 SUSE LINUX Products GmbH, Nuernberg, Germany.
+# Copyright (c) 2014 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -17,7 +17,7 @@
Name: rubygem-actionmailer-3_2
-Version: 3.2.13
+Version: 3.2.17
Release: 0
%define mod_name actionmailer
%define mod_full_name %{mod_name}-%{version}
--
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 retext for openSUSE:Factory checked in at 2014-04-17 14:09:05
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/retext (Old)
and /work/SRC/openSUSE:Factory/.retext.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "retext"
Changes:
--------
--- /work/SRC/openSUSE:Factory/retext/retext.changes 2013-02-25 20:43:42.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.retext.new/retext.changes 2014-04-17 14:09:06.000000000 +0200
@@ -1,0 +2,19 @@
+Wed Apr 16 09:29:11 UTC 2014 - mailaender(a)opensuse.org
+
+- update version 4.1.2
+- added GPG file verification
+
+-------------------------------------------------------------------
+Sat Sep 21 10:35:09 UTC 2013 - mailaender(a)opensuse.org
+
+- update version 4.1.1
+ * Added configuration dialog
+ * Added current line highlighting and line numbers support
+ * Added support for PyQt5 and PySide libraries
+ * Use new signals/slots syntax
+ * Added option to select file encoding
+ * Dropped support for Python 2 and support for running
+ without WebKit installed
+- adhere to https://en.opensuse.org/SourceUrls
+
+-------------------------------------------------------------------
@@ -20 +38,0 @@
-
Old:
----
ReText-4.0.0.tar.gz
New:
----
ReText-4.1.2.tar.gz
ReText-4.1.2.tar.gz.asc
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ retext.spec ++++++
--- /var/tmp/diff_new_pack.89piaD/_old 2014-04-17 14:09:07.000000000 +0200
+++ /var/tmp/diff_new_pack.89piaD/_new 2014-04-17 14:09:07.000000000 +0200
@@ -1,7 +1,7 @@
#
# spec file for package retext
#
-# Copyright (c) 2010 SUSE LINUX Products GmbH, Nuernberg, Germany.
+# Copyright (c) 2014 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -15,44 +15,44 @@
# Please submit bugfixes or comments via http://bugs.opensuse.org/
#
-%{!?python_sitelib: %global python_sitelib %(%{__python} -c "from distutils.sysconfig import get_python_lib; print get_python_lib()")}
-%{!?py_ver: %global py_ver %(%{__python} -c "import sys; v=sys.version_info[:2]; print '%%d.%%d'%%v" 2>/dev/null || echo PYTHON-NOT-FOUND")}
Name: retext
-Version: 4.0.0
+Version: 4.1.2
Release: 0
-License: GPL-3.0+
Summary: Simple editor for Markdown and reStructuredText
-Url: http://sourceforge.net/p/retext/home/ReText
+License: GPL-3.0+
Group: Productivity/Editors/Other
-Source: ReText-%{version}.tar.gz
+Url: http://sourceforge.net/p/retext/home/ReText
+Source: http://downloads.sourceforge.net/retext/ReText-%{version}.tar.gz
Source1: %{name}.desktop
-BuildRequires: update-desktop-files
+Source2: http://downloads.sourceforge.net/retext/ReText-%{version}.tar.gz.asc
+BuildRequires: python3
+BuildRequires: python3-devel
BuildRequires: rsvg-view
-BuildRequires: python-devel
-Requires: python-qt4
-Requires: python-markdown
-Requires: python-docutils
-Requires: python-enchant
-Requires: python-Markups
+BuildRequires: update-desktop-files
+BuildRequires: fdupes
+Requires: python3-Markdown
+Requires: python3-Markups
+Requires: python3-docutils
+Requires: python3-pyenchant
+Requires: python3-qt4
Provides: ReText = %{version}
BuildRoot: %{_tmppath}/%{name}-%{version}-build
-%if 0%{?suse_version} >= 1140
BuildArch: noarch
-%endif
%description
ReText is simple text editor that supports Markdown and reStructuredText
markup languages. It is written in Python using PyQt libraries.
%prep
+%{?gpg_verify: %gpg_verify %{S:2}}
%setup -q -n ReText-%{version}
%build
-python setup.py build
+python3 setup.py build
%install
-python setup.py install --root=%{buildroot} --prefix=%{_prefix}
+python3 setup.py install --root=%{buildroot} --prefix=%{_prefix}
%{__mkdir} -pv %{buildroot}%{_datadir}/icons/hicolor/scalable/apps/
%{__mkdir} -pv %{buildroot}%{_datadir}/%{name}/
@@ -69,22 +69,21 @@
popd
%{__cp} -r %{S:1} %{buildroot}%{_datadir}/applications/
-ln -sf %{_bindir}/%{name}.py %{buildroot}%{_bindir}/%{name}
-
%suse_update_desktop_file %{name}
+%fdupes %{buildroot}%{_prefix}
%files
%defattr(-,root,root)
%doc changelog.md README
%{_bindir}/%{name}
-%{_bindir}/%{name}.py
-%{_bindir}/wpgen.py
-%{python_sitelib}/ReText/
-%{python_sitelib}/ReText-%{version}-py%{py_ver}.egg-info
+%{_bindir}/wpgen
+%{python3_sitelib}/ReText/
+%{python3_sitelib}/*
%{_datadir}/icons/hicolor/*/apps/%{name}.png
%{_datadir}/icons/hicolor/scalable/apps/%{name}.svg
%{_datadir}/%{name}/
+%{_datadir}/wpgen/
%{_datadir}/applications/%{name}.desktop
%changelog
++++++ ReText-4.0.0.tar.gz -> ReText-4.1.2.tar.gz ++++++
++++ 14078 lines of diff (skipped)
++++++ ReText-4.1.2.tar.gz.asc ++++++
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1
iQIcBAABCAAGBQJTNYLmAAoJEGAmk20vHIrgzZUQAJB5oSKwUQV19486rlzWLcHE
A6ljB9NFDeWyJymtPlxyt7GRFG5aDu4L4ucW9XbLr2a70nZpMTFb70G5Uzwg7xOv
XCovXwiEH/EI0chTchjdIyZS6ffqjUl2iubCEAYTU6TOb8P1c5PlNCLHDgH75Lpr
ofL3wo6I4Dk8KnmRYxFja0ufpBg7OpLhrNWgvs/JBI9MOBigwW5g+uGGvX0BW2er
JFbYGusJc0p68Sl0/fd+78b1zqlOjXUPLBzg4LAwY3ZZf5QyV/ZXKsGub7jT9MV8
G/1MYxi7hW34/QtEVAYCvpJLbnevVQohva3BPMWS90b7Eq6V6yOcfJHvvw+bHo6w
61SDk3vf/g8tEQ39uxjP1ei93xcKaTmhRB14NeDyDCQtI9asmJCr809UfChuymUy
kkdi14S4gUdC/BqVbBA9UyaZSJP73JxXKk6ST6h0f17tvfYHFL+rSZyRpDNKj9C0
ra3ySbVaKJzSnSJd3W7NPCATJyt8XjqxAUCrGL9CziJCDI/9XVVAznC7xv/D5AFe
T5RMGr63j/x5lECAiWZ0qdSvBFbB7cSk0tzeuz6gwVY4xJfgDOuuWaM3X7mf2qyc
ghOh2DXc3VOn2O/AM49Javv1CbsuaNBCZ+eGsZBKp3n2rLC9t648ExiLgJdV/7pm
d1MjnysdqMG/KCUu2Ofb
=ZpPW
-----END PGP SIGNATURE-----
--
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 qmmp for openSUSE:Factory checked in at 2014-04-17 14:09:00
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/qmmp (Old)
and /work/SRC/openSUSE:Factory/.qmmp.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "qmmp"
Changes:
--------
--- /work/SRC/openSUSE:Factory/qmmp/qmmp.changes 2014-02-19 07:52:00.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.qmmp.new/qmmp.changes 2014-04-17 14:09:01.000000000 +0200
@@ -1,0 +2,11 @@
+Wed Apr 16 07:43:43 UTC 2014 - reddwarf(a)opensuse.org
+
+- Update to 0.7.6
+ * added libav 10 and ffmpeg 2.2 support
+ * fixed url parsing
+ * fixed freezing on playback resume
+ * fixed random freezing in the mplayer plugin
+ * fixed reset selection of tracks when calling context menu
+ * fixed multimedia keys support under win32
+
+-------------------------------------------------------------------
Old:
----
qmmp-0.7.5.tar.bz2
New:
----
qmmp-0.7.6.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ qmmp.spec ++++++
--- /var/tmp/diff_new_pack.ivAwSx/_old 2014-04-17 14:09:02.000000000 +0200
+++ /var/tmp/diff_new_pack.ivAwSx/_new 2014-04-17 14:09:02.000000000 +0200
@@ -23,7 +23,7 @@
%define soname 0
Name: qmmp
-Version: 0.7.5
+Version: 0.7.6
Release: 0
Summary: XMMS-like audio player
License: GPL-2.0+
++++++ qmmp-0.7.5.tar.bz2 -> qmmp-0.7.6.tar.bz2 ++++++
++++ 5258 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 python3-numpy for openSUSE:Factory checked in at 2014-04-17 14:08:52
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python3-numpy (Old)
and /work/SRC/openSUSE:Factory/.python3-numpy.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python3-numpy"
Changes:
--------
--- /work/SRC/openSUSE:Factory/python3-numpy/python3-numpy-doc.changes 2013-11-04 16:18:27.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.python3-numpy.new/python3-numpy-doc.changes 2014-04-17 14:08:53.000000000 +0200
@@ -1,0 +2,5 @@
+Mon Apr 14 05:13:17 UTC 2014 - arun(a)gmx.de
+
+- update to 1.8.1, bugfix release
+
+-------------------------------------------------------------------
--- /work/SRC/openSUSE:Factory/python3-numpy/python3-numpy.changes 2013-12-08 19:34:42.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.python3-numpy.new/python3-numpy.changes 2014-04-17 14:08:53.000000000 +0200
@@ -1,0 +2,5 @@
+Mon Apr 14 05:11:10 UTC 2014 - arun(a)gmx.de
+
+- bugfix release 1.8.1
+
+-------------------------------------------------------------------
Old:
----
numpy-1.8.0.tar.gz
New:
----
numpy-1.8.1.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python3-numpy-doc.spec ++++++
--- /var/tmp/diff_new_pack.jK4Wdc/_old 2014-04-17 14:08:54.000000000 +0200
+++ /var/tmp/diff_new_pack.jK4Wdc/_new 2014-04-17 14:08:54.000000000 +0200
@@ -1,7 +1,7 @@
#
# spec file for package python3-numpy-doc
#
-# Copyright (c) 2013 SUSE LINUX Products GmbH, Nuernberg, Germany.
+# Copyright (c) 2014 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -17,7 +17,7 @@
Name: python3-numpy-doc
-Version: 1.8.0
+Version: 1.8.1
Release: 0
Url: http://sourceforge.net/projects/numpy
Summary: Documentation for python3-numpy
++++++ python3-numpy.spec ++++++
--- /var/tmp/diff_new_pack.jK4Wdc/_old 2014-04-17 14:08:54.000000000 +0200
+++ /var/tmp/diff_new_pack.jK4Wdc/_new 2014-04-17 14:08:54.000000000 +0200
@@ -1,7 +1,7 @@
#
# spec file for package python3-numpy
#
-# Copyright (c) 2013 SUSE LINUX Products GmbH, Nuernberg, Germany.
+# Copyright (c) 2014 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -19,7 +19,7 @@
%define with_atlas 0
Name: python3-numpy
-Version: 1.8.0
+Version: 1.8.1
Release: 0
Url: http://sourceforge.net/projects/numpy
Summary: NumPy array processing for numbers, strings, records and objects
++++++ numpy-1.8.0.tar.gz -> numpy-1.8.1.tar.gz ++++++
++++ 31958 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 python-suds for openSUSE:Factory checked in at 2014-04-17 14:08:46
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-suds (Old)
and /work/SRC/openSUSE:Factory/.python-suds.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-suds"
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-suds/python-suds.changes 2014-01-23 15:54:50.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.python-suds.new/python-suds.changes 2014-04-17 14:08:48.000000000 +0200
@@ -1,0 +2,14 @@
+Mon Apr 14 08:17:43 UTC 2014 - mcihar(a)suse.cz
+
+- Run testsuite using pytest
+- Fixed Source URL
+- Included HACKING.rst in the documentation
+
+-------------------------------------------------------------------
+Fri Apr 11 11:38:30 UTC 2014 - mcihar(a)suse.cz
+
+- Update to version 0.6 (forked upstream)
+ - supports Python 3
+ - many bugfixes see https://bitbucket.org/jurko/suds/overview
+
+-------------------------------------------------------------------
Old:
----
python-suds-0.4.tar.gz
New:
----
suds-jurko-0.6.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-suds.spec ++++++
--- /var/tmp/diff_new_pack.XUlUb0/_old 2014-04-17 14:08:49.000000000 +0200
+++ /var/tmp/diff_new_pack.XUlUb0/_new 2014-04-17 14:08:49.000000000 +0200
@@ -17,17 +17,18 @@
Name: python-suds
-Version: 0.4
+Version: 0.6
Release: 0
Summary: A lightweight SOAP python client that provides a service proxy for Web Services
License: LGPL-3.0+
Group: Development/Languages/Python
Url: https://fedorahosted.org/suds
-Source: %{name}-%{version}.tar.gz
+Source: https://pypi.python.org/packages/source/s/suds-jurko/suds-jurko-%{version}.…
# PATCH-FIX-UPSTREAM speilicke(a)suse.com
Patch0: suds-insecure-cache-tempdir.patch
BuildRequires: fdupes
BuildRequires: python-devel
+BuildRequires: python-pytest
BuildRequires: python-setuptools
BuildRequires: python-xml
BuildRoot: %{_tmppath}/%{name}-%{version}-build
@@ -53,7 +54,7 @@
* Supports unicode
%prep
-%setup -q
+%setup -q -n suds-jurko-%{version}
%patch0 -p1
%build
@@ -67,16 +68,11 @@
%fdupes %{buildroot}
%check
-#NOTE(saschpe): We can only run tests that don't need internet or server access.
-# Put the installed 'suds' module and the local 'tests' module into PYTHONPATH:
-export PYTHONPATH=%{buildroot}%{python_sitelib}:.
-for t in builtin saxenc ; do
-python tests/$t.py
-done
+py.test
%files
%defattr(-,root,root,-)
-%doc README LICENSE
+%doc README.rst LICENSE.txt HACKING.rst
%{python_sitelib}/*
%changelog
++++++ suds-insecure-cache-tempdir.patch ++++++
--- /var/tmp/diff_new_pack.XUlUb0/_old 2014-04-17 14:08:49.000000000 +0200
+++ /var/tmp/diff_new_pack.XUlUb0/_new 2014-04-17 14:08:49.000000000 +0200
@@ -1,31 +1,52 @@
-diff -ruN a/suds/cache.py b/suds/cache.py
---- a/suds/cache.py 2010-04-14 21:04:17.000000000 +0200
-+++ b/suds/cache.py 2013-11-27 14:16:34.968138726 +0100
-@@ -19,8 +19,9 @@
- """
-
+--- a/suds/cache.py
++++ b/suds/cache.py
+@@ -26,7 +26,8 @@
+ from datetime import datetime as dt
+ from datetime import timedelta
import os
-+import shutil
- import suds
-from tempfile import gettempdir as tmp
++import shutil
+import tempfile
- from suds.transport import *
- from suds.sax.parser import Parser
- from suds.sax.element import Element
-@@ -138,11 +139,15 @@
+ try:
+ import cPickle as pickle
+ except Exception:
+@@ -111,13 +112,19 @@
+ The duration may be: (months|weeks|days|hours|minutes|seconds).
@type duration: {unit:value}
"""
++ self.auto_location = False
if location is None:
- location = os.path.join(tmp(), 'suds')
+ location = tempfile.mkdtemp()
++ self.auto_location = True
self.location = location
self.duration = (None, 0)
self.setduration(**duration)
self.checkversion()
-+
+
+ def __del__(self):
-+ if self.location.startswith("/tmp"):
++ if self.auto_location:
+ shutil.rmtree(self.location)
-
++
def fnsuffix(self):
"""
+ Get the file name suffix
+--- a/tests/test_cache.py
++++ b/tests/test_cache.py
+@@ -134,12 +134,12 @@
+
+
+ def test_FileCache_location(tmpdir):
+- defaultLocation = os.path.join(tempfile.gettempdir(), "suds")
++ defaultLocation = tempfile.gettempdir()
+ cache = suds.cache.FileCache()
+ assert os.path.isdir(cache.location)
+- assert cache.location == defaultLocation
+- assert suds.cache.FileCache().location == defaultLocation
+- assert cache.location == defaultLocation
++ assert cache.location.startswith(defaultLocation)
++ assert suds.cache.FileCache().location.startswith(defaultLocation)
++ assert cache.location.startswith(defaultLocation)
+
+ cacheFolder1 = tmpdir.join("flip-flop1").strpath
+ assert not os.path.isdir(cacheFolder1)
--
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 python-happybase for openSUSE:Factory checked in at 2014-04-17 14:08:40
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-happybase (Old)
and /work/SRC/openSUSE:Factory/.python-happybase.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-happybase"
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-happybase/python-happybase.changes 2013-12-11 16:21:30.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.python-happybase.new/python-happybase.changes 2014-04-17 14:08:41.000000000 +0200
@@ -1,0 +2,10 @@
+Tue Apr 15 21:00:40 UTC 2014 - dmueller(a)suse.com
+
+- update to 0.8:
+ * Add (and default to) '0.96' compatibility mode in :py:class:`Connection`.
+ * Add support for retrieving sorted columns, which is possible with the HBase
+ 0.96 Thrift API
+ * The `batch_size` argument to :py:meth:`Table.scan` is no longer propagated to
+ `Scan.setBatching()` at the Java side (inside the Thrift server).
+
+-------------------------------------------------------------------
Old:
----
happybase-0.7.tar.gz
New:
----
happybase-0.8.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-happybase.spec ++++++
--- /var/tmp/diff_new_pack.4RaE2F/_old 2014-04-17 14:08:41.000000000 +0200
+++ /var/tmp/diff_new_pack.4RaE2F/_new 2014-04-17 14:08:41.000000000 +0200
@@ -1,7 +1,7 @@
#
# spec file for package python-happybase
#
-# Copyright (c) 2013 SUSE LINUX Products GmbH, Nuernberg, Germany.
+# Copyright (c) 2014 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -17,13 +17,13 @@
Name: python-happybase
-Version: 0.7
+Version: 0.8
Release: 0
Summary: A developer-friendly Python library to interact with Apache HBase
License: MIT
Group: Development/Languages/Python
Url: https://github.com/wbolster/happybase
-Source: http://pypi.python.org/packages/source/h/happybase/happybase-%{version}.tar…
+Source: https://pypi.python.org/packages/source/h/happybase/happybase-%{version}.ta…
BuildRequires: python-Sphinx
BuildRequires: python-devel
BuildRequires: python-setuptools
++++++ happybase-0.7.tar.gz -> happybase-0.8.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/happybase-0.7/NEWS.rst new/happybase-0.8/NEWS.rst
--- old/happybase-0.7/NEWS.rst 2013-11-06 23:16:45.000000000 +0100
+++ new/happybase-0.8/NEWS.rst 2014-02-25 21:15:11.000000000 +0100
@@ -4,6 +4,29 @@
.. py:currentmodule:: happybase
+HappyBase 0.8
+-------------
+
+Release date: 2014-02-25
+
+* Add (and default to) '0.96' compatibility mode in :py:class:`Connection`.
+
+* Add support for retrieving sorted columns, which is possible with the HBase
+ 0.96 Thrift API. This feature uses a new `sorted_columns` argument to
+ :py:meth:`Table.scan`. An ```OrderedDict`` implementation is required for this
+ feature; with Python 2.7 this is available from the standard library, but for
+ Python 2.6 a separate ```ordereddict``` pacakge has to be installed from PyPI.
+ (`issue #39 <https://github.com/wbolster/happybase/issues/39>`_)
+
+* The `batch_size` argument to :py:meth:`Table.scan` is no longer propagated to
+ `Scan.setBatching()` at the Java side (inside the Thrift server). To influence
+ the `Scan.setBatching()` (which may split rows into partial rows) a new
+ `scan_batching` argument to :py:meth:`Table.scan` has been added. See `issue
+ #54 <https://github.com/wbolster/happybase/issues/54>`_, `issue #56
+ <https://github.com/wbolster/happybase/issues/56>`_, and the HBase docs for
+ `Scan.setBatching()` for more details.
+
+
HappyBase 0.7
-------------
@@ -12,7 +35,7 @@
* Added a `wal` argument to various data manipulation methods on the
:py:class:`Table` and :py:class:`Batch` classes to determine whether to write
the mutation to the Write-Ahead Log (WAL). (`issue #36
- <https://github.com/wbolster/happybase/issues/36>`_).
+ <https://github.com/wbolster/happybase/issues/36>`_)
* Pass batch_size to underlying Thrift Scan instance (`issue #38
<https://github.com/wbolster/happybase/issues/38>`_).
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/happybase-0.7/PKG-INFO new/happybase-0.8/PKG-INFO
--- old/happybase-0.7/PKG-INFO 2013-11-06 23:20:23.000000000 +0100
+++ new/happybase-0.8/PKG-INFO 2014-02-25 21:19:38.000000000 +0100
@@ -1,6 +1,6 @@
Metadata-Version: 1.1
Name: happybase
-Version: 0.7
+Version: 0.8
Summary: A developer-friendly Python library to interact with Apache HBase
Home-page: https://github.com/wbolster/happybase
Author: Wouter Bolsterlee
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/happybase-0.7/doc/user.rst new/happybase-0.8/doc/user.rst
--- old/happybase-0.7/doc/user.rst 2013-11-03 17:50:17.000000000 +0100
+++ new/happybase-0.8/doc/user.rst 2014-01-25 21:51:13.000000000 +0100
@@ -30,11 +30,11 @@
In some setups, the :py:class:`Connection` class needs some additional
information about the HBase version it will be connecting to, and which Thrift
transport to use. If you're still using HBase 0.90.x, you need to set the
-`compat` parameter to make sure HappyBase speaks the correct wire protocol.
+`compat` argument to make sure HappyBase speaks the correct wire protocol.
Additionally, if you're using HBase 0.94 with a non-standard Thrift transport
-mode, make sure to supply the right `transport` parameter. See the API
+mode, make sure to supply the right `transport` argument. See the API
documentation for the :py:class:`Connection` class for more information about
-these parameters and their supported values.
+these arguments and their supported values.
When a :py:class:`Connection` is created, it automatically opens a socket
connection to the HBase Thrift server. This behaviour can be disabled by
@@ -116,7 +116,7 @@
``myproject_XYZ``.
Instead of adding this application-specific prefix each time a table name is
-passed to HappyBase, the `table_prefix` parameter to :py:class:`Connection` can
+passed to HappyBase, the `table_prefix` argument to :py:class:`Connection` can
take care of this. HappyBase will prepend that prefix (and an underscore) to
each table name handled by that :py:class:`Connection` instance. For example::
@@ -211,7 +211,7 @@
By default, HappyBase does not include timestamps in the results it returns. In
your application needs access to the timestamps, simply set the
-`include_timestamp` parameter to ``True``. Now, each cell in the result will be
+`include_timestamp` argument to ``True``. Now, each cell in the result will be
returned as a `(value, timestamp)` tuple instead of just a value::
row = table.row('row-key', columns=['cf1:col1'], include_timestamp=True)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/happybase-0.7/happybase/_version.py new/happybase-0.8/happybase/_version.py
--- old/happybase-0.7/happybase/_version.py 2013-11-06 23:09:14.000000000 +0100
+++ new/happybase-0.8/happybase/_version.py 2014-02-25 21:19:18.000000000 +0100
@@ -5,4 +5,4 @@
setup.py.
"""
-__version__ = '0.7'
+__version__ = '0.8'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/happybase-0.7/happybase/connection.py new/happybase-0.8/happybase/connection.py
--- old/happybase-0.7/happybase/connection.py 2013-11-03 17:50:17.000000000 +0100
+++ new/happybase-0.8/happybase/connection.py 2014-01-25 21:52:24.000000000 +0100
@@ -17,7 +17,7 @@
logger = logging.getLogger(__name__)
-COMPAT_MODES = ('0.90', '0.92', '0.94')
+COMPAT_MODES = ('0.90', '0.92', '0.94', '0.96')
THRIFT_TRANSPORTS = dict(
buffered=TBufferedTransport,
framed=TFramedTransport,
@@ -26,50 +26,52 @@
DEFAULT_HOST = 'localhost'
DEFAULT_PORT = 9090
DEFAULT_TRANSPORT = 'buffered'
-DEFAULT_COMPAT = '0.94'
+DEFAULT_COMPAT = '0.96'
class Connection(object):
"""Connection to an HBase Thrift server.
- The `host` and `port` parameters specify the host name and TCP port
+ The `host` and `port` arguments specify the host name and TCP port
of the HBase Thrift server to connect to. If omitted or ``None``,
a connection to the default port on ``localhost`` is made. If
- specifed, the `timeout` parameter specifies the socket timeout in
+ specifed, the `timeout` argument specifies the socket timeout in
milliseconds.
- If `autoconnect` is `True` (the default) the connection is made directly,
- otherwise :py:meth:`Connection.open` must be called explicitly before first
- use.
-
- The optional `table_prefix` and `table_prefix_separator` arguments specify
- a prefix and a separator string to be prepended to all table names, e.g.
- when :py:meth:`Connection.table` is invoked. For example, if `table_prefix`
- is ``myproject``, all tables tables will have names like ``myproject_XYZ``.
-
- The optional `compat` parameter sets the compatibility level for this
- connection. Older HBase versions have slightly different Thrift interfaces,
- and using the wrong protocol can lead to crashes caused by communication
- errors, so make sure to use the correct one. This value can be either the
- string ``0.92`` (the default) for use with HBase 0.92.x and later versions,
- or ``0.90`` for use with HBase 0.90.x.
-
- The optional `transport` parameter specifies the Thrift transport mode to
- use. Supported values for this parameter are ``buffered`` (the default) and
- ``framed``. Make sure to choose the right one, since otherwise you might
- see non-obvious connection errors or program hangs when making
- a connection. HBase versions before 0.94 always use the buffered transport.
- Starting with HBase 0.94, the Thrift server optionally uses a framed
- transport, depending on the parameter passed to the ``hbase-daemon.sh start
- thrift`` command. The default ``-threadpool`` mode uses the buffered
- transport; the ``-hsha``, ``-nonblocking``, and ``-threadedselector`` modes
- use the framed transport.
+ If `autoconnect` is `True` (the default) the connection is made
+ directly, otherwise :py:meth:`Connection.open` must be called
+ explicitly before first use.
+
+ The optional `table_prefix` and `table_prefix_separator` arguments
+ specify a prefix and a separator string to be prepended to all table
+ names, e.g. when :py:meth:`Connection.table` is invoked. For
+ example, if `table_prefix` is ``myproject``, all tables tables will
+ have names like ``myproject_XYZ``.
+
+ The optional `compat` argument sets the compatibility level for
+ this connection. Older HBase versions have slightly different Thrift
+ interfaces, and using the wrong protocol can lead to crashes caused
+ by communication errors, so make sure to use the correct one. This
+ value can be either the string ``0.90``, ``0.92``, ``0.94``, or
+ ``0.96`` (the default).
+
+ The optional `transport` argument specifies the Thrift transport
+ mode to use. Supported values for this argument are ``buffered``
+ (the default) and ``framed``. Make sure to choose the right one,
+ since otherwise you might see non-obvious connection errors or
+ program hangs when making a connection. HBase versions before 0.94
+ always use the buffered transport. Starting with HBase 0.94, the
+ Thrift server optionally uses a framed transport, depending on the
+ argument passed to the ``hbase-daemon.sh start thrift`` command.
+ The default ``-threadpool`` mode uses the buffered transport; the
+ ``-hsha``, ``-nonblocking``, and ``-threadedselector`` modes use the
+ framed transport.
.. versionadded:: 0.5
- `timeout` parameter
+ `timeout` argument
.. versionadded:: 0.4
- `table_prefix_separator` parameter
+ `table_prefix_separator` argument
.. versionadded:: 0.4
support for framed Thrift transports
@@ -177,16 +179,17 @@
def table(self, name, use_prefix=True):
"""Return a table object.
- Returns a :py:class:`happybase.Table` instance for the table named
- `name`. This does not result in a round-trip to the server, and the
- table is not checked for existence.
-
- The optional `use_prefix` parameter specifies whether the table prefix
- (if any) is prepended to the specified `name`. Set this to `False` if
- you want to use a table that resides in another ‘prefix namespace’,
- e.g. a table from a ‘friendly’ application co-hosted on the same HBase
- instance. See the `table_prefix` parameter to the
- :py:class:`Connection` constructor for more information.
+ Returns a :py:class:`happybase.Table` instance for the table
+ named `name`. This does not result in a round-trip to the
+ server, and the table is not checked for existence.
+
+ The optional `use_prefix` argument specifies whether the table
+ prefix (if any) is prepended to the specified `name`. Set this
+ to `False` if you want to use a table that resides in another
+ ‘prefix namespace’, e.g. a table from a ‘friendly’ application
+ co-hosted on the same HBase instance. See the `table_prefix`
+ argument to the :py:class:`Connection` constructor for more
+ information.
:param str name: the name of the table
:param bool use_prefix: whether to use the table prefix (if any)
@@ -226,7 +229,7 @@
:param str name: The table name
:param dict families: The name and options for each column family
- The `families` parameter is a dictionary mapping column family
+ The `families` argument is a dictionary mapping column family
names to a dictionary containing the options for this column
family, e.g.
@@ -283,11 +286,11 @@
"""Delete the specified table.
.. versionadded:: 0.5
- the `disable` parameter
+ `disable` argument
- In HBase, a table always needs to be disabled before it can be deleted.
- If the `disable` parameter is `True`, this method first disables the
- table if it wasn't already and then deletes it.
+ In HBase, a table always needs to be disabled before it can be
+ deleted. If the `disable` argument is `True`, this method first
+ disables the table if it wasn't already and then deletes it.
:param str name: The table name
:param bool disable: Whether to first disable the table if needed
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/happybase-0.7/happybase/pool.py new/happybase-0.8/happybase/pool.py
--- old/happybase-0.7/happybase/pool.py 2013-06-21 15:40:35.000000000 +0200
+++ new/happybase-0.8/happybase/pool.py 2014-01-25 21:51:13.000000000 +0100
@@ -40,7 +40,7 @@
.. versionadded:: 0.5
- The `size` parameter specifies how many connections this pool
+ The `size` argument specifies how many connections this pool
manages. Additional keyword arguments are passed unmodified to the
:py:class:`happybase.Connection` constructor, with the exception of
the `autoconnect` argument, since maintaining connections is the
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/happybase-0.7/happybase/table.py new/happybase-0.8/happybase/table.py
--- old/happybase-0.7/happybase/table.py 2013-11-06 22:46:27.000000000 +0100
+++ new/happybase-0.8/happybase/table.py 2014-02-25 21:19:18.000000000 +0100
@@ -8,7 +8,7 @@
from struct import Struct
from .hbase.ttypes import TScan
-from .util import thrift_type_to_dict, str_increment
+from .util import thrift_type_to_dict, str_increment, OrderedDict
from .batch import Batch
logger = logging.getLogger(__name__)
@@ -24,6 +24,14 @@
return dict((cn, cellfn(cell)) for cn, cell in cell_map.iteritems())
+def make_ordered_row(sorted_columns, include_timestamp):
+ """Make a row dict for sorted column results from scans."""
+ cellfn = include_timestamp and make_cell_timestamp or make_cell
+ return OrderedDict(
+ (column.columnName, cellfn(column.cell))
+ for column in sorted_columns)
+
+
class Table(object):
"""HBase table abstraction class.
@@ -50,13 +58,14 @@
descriptors = self.connection.client.getColumnDescriptors(self.name)
families = dict()
for name, descriptor in descriptors.items():
- name = name[:-1] # drop trailing ':'
+ name = name.rstrip(':')
families[name] = thrift_type_to_dict(descriptor)
return families
def _column_family_names(self):
"""Retrieve the column family names for this table (internal use)"""
- return self.connection.client.getColumnDescriptors(self.name).keys()
+ names = self.connection.client.getColumnDescriptors(self.name).keys()
+ return [name.rstrip(':') for name in names]
def regions(self):
"""Retrieve the regions for this table.
@@ -184,10 +193,10 @@
if versions is None:
versions = (2 ** 31) - 1 # Thrift type is i32
elif not isinstance(versions, int):
- raise TypeError("'versions' parameter must be a number or None")
+ raise TypeError("'versions' argument must be a number or None")
elif versions < 1:
raise ValueError(
- "'versions' parameter must be at least 1 (or None)")
+ "'versions' argument must be at least 1 (or None)")
if timestamp is None:
cells = self.connection.client.getVer(
@@ -205,7 +214,8 @@
def scan(self, row_start=None, row_stop=None, row_prefix=None,
columns=None, filter=None, timestamp=None,
- include_timestamp=False, batch_size=1000, limit=None):
+ include_timestamp=False, batch_size=1000, scan_batching=None,
+ limit=None, sorted_columns=False):
"""Create a scanner for data in the table.
This method returns an iterable that can be used for looping over the
@@ -240,9 +250,28 @@
this to a low value (or even 1) if your data is large, since a low
batch size results in added round-trips to the server.
- **Compatibility note:** The `filter` argument is only available when
- using HBase 0.92 (or up). In HBase 0.90 compatibility mode, specifying
- a `filter` raises an exception.
+ The optional `scan_batching` is for advanced usage only; it
+ translates to `Scan.setBatching()` at the Java side (inside the
+ Thrift server). By setting this value rows may be split into
+ partial rows, so result rows may be incomplete, and the number
+ of results returned by te scanner may no longer correspond to
+ the number of rows matched by the scan.
+
+ If `sorted_columns` is `True`, the columns in the rows returned
+ by this scanner will be retrieved in sorted order, and the data
+ will be stored in `OrderedDict` instances.
+
+ **Compatibility notes:**
+
+ * The `filter` argument is only available when using HBase 0.92
+ (or up). In HBase 0.90 compatibility mode, specifying
+ a `filter` raises an exception.
+
+ * The `sorted_columns` argument is only available when using
+ HBase 0.96 (or up).
+
+ .. versionadded:: 0.8
+ `sorted_columns` argument
:param str row_start: the row key to start at (inclusive)
:param str row_stop: the row key to stop at (exclusive)
@@ -252,6 +281,9 @@
:param int timestamp: timestamp (optional)
:param bool include_timestamp: whether timestamps are returned
:param int batch_size: batch size for retrieving resuls
+ :param bool scan_batching: server-side scan batching (optional)
+ :param int limit: max number of rows to return
+ :param bool sorted_columns: whether to return sorted columns
:return: generator yielding the rows matching the scan
:rtype: iterable of `(row_key, row_data)` tuples
@@ -262,6 +294,10 @@
if limit is not None and limit < 1:
raise ValueError("'limit' must be >= 1")
+ if sorted_columns and self.connection.compat < '0.96':
+ raise NotImplementedError(
+ "'sorted_columns' is not supported in HBase >= 0.96")
+
if row_prefix is not None:
if row_start is not None or row_stop is not None:
raise TypeError(
@@ -299,10 +335,25 @@
self.name, row_start, row_stop, columns, timestamp, {})
else:
- # The scan's caching size is set to the batch_size, so that
- # the HTable on the Java side retrieves rows from the region
- # servers in the same chunk sizes that it sends out over
- # Thrift.
+ # XXX: The "batch_size" can be slightly confusing to those
+ # familiar with the HBase Java API:
+ #
+ # * TScan.caching (Thrift API) translates to
+ # Scan.setCaching() (Java API)
+ #
+ # * TScan.batchSize (Thrift API) translates to
+ # Scan.setBatching (Java API) .
+ #
+ # However, we set Scan.setCaching() to what is called
+ # batch_size in the HappyBase API, so that the HTable on the
+ # Java side (inside the Thrift server) retrieves rows from
+ # the region servers in the same chunk sizes that it sends
+ # out again to Python (over Thrift). This cannot be tweaked
+ # (by design).
+ #
+ # The Scan.setBatching() value (Java API), which possibly
+ # cuts rows into multiple partial rows, can be set using the
+ # slightly strange name scan_batching.
scan = TScan(
startRow=row_start,
stopRow=row_stop,
@@ -310,7 +361,8 @@
columns=columns,
caching=batch_size,
filterString=filter,
- batchSize=batch_size,
+ batchSize=scan_batching,
+ sortColumns=sorted_columns,
)
scan_id = self.connection.client.scannerOpenWithScan(
self.name, scan, {})
@@ -334,7 +386,14 @@
n_fetched += len(items)
for n_returned, item in enumerate(items, n_returned + 1):
- yield item.row, make_row(item.columns, include_timestamp)
+ if sorted_columns:
+ row = make_ordered_row(item.sortedColumns,
+ include_timestamp)
+ else:
+ row = make_row(item.columns, include_timestamp)
+
+ yield item.row, row
+
if limit is not None and n_returned == limit:
return
@@ -364,7 +423,7 @@
method to manipulate data.
.. versionadded:: 0.7
- `wal` parameter
+ `wal` argument
:param str row: the row key
:param dict data: the data to store
@@ -384,7 +443,7 @@
method to manipulate data.
.. versionadded:: 0.7
- `wal` parameter
+ `wal` argument
:param str row: the row key
:param list_or_tuple columns: list of columns (optional)
@@ -420,7 +479,7 @@
:py:meth:`Batch.delete`.
.. versionadded:: 0.7
- `wal` parameter
+ `wal` argument
:param bool transaction: whether this batch should behave like
a transaction (only useful when used as a
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/happybase-0.7/happybase/util.py new/happybase-0.8/happybase/util.py
--- old/happybase-0.7/happybase/util.py 2013-11-06 22:46:27.000000000 +0100
+++ new/happybase-0.8/happybase/util.py 2014-01-25 21:51:13.000000000 +0100
@@ -9,6 +9,21 @@
CAPITALS = re.compile('([A-Z])')
+try:
+ # Python 2.7
+ from collections import OrderedDict
+except ImportError:
+ try:
+ # External package for Python 2.6
+ from ordereddict import OrderedDict
+ except ImportError as exc:
+ # Stub to throw errors at run-time (not import time)
+ def OrderedDict(*args, **kwargs):
+ raise RuntimeError(
+ "No OrderedDict implementation available; please "
+ "install the 'ordereddict' Package from PyPI.")
+
+
def camel_case_to_pep8(name):
"""Convert a camel cased name to PEP8 style."""
converted = CAPITALS.sub(lambda m: '_' + m.groups()[0].lower(), name)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/happybase-0.7/happybase.egg-info/PKG-INFO new/happybase-0.8/happybase.egg-info/PKG-INFO
--- old/happybase-0.7/happybase.egg-info/PKG-INFO 2013-11-06 23:20:22.000000000 +0100
+++ new/happybase-0.8/happybase.egg-info/PKG-INFO 2014-02-25 21:19:38.000000000 +0100
@@ -1,6 +1,6 @@
Metadata-Version: 1.1
Name: happybase
-Version: 0.7
+Version: 0.8
Summary: A developer-friendly Python library to interact with Apache HBase
Home-page: https://github.com/wbolster/happybase
Author: Wouter Bolsterlee
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/happybase-0.7/tests/test_api.py new/happybase-0.8/tests/test_api.py
--- old/happybase-0.7/tests/test_api.py 2013-11-06 22:46:27.000000000 +0100
+++ new/happybase-0.8/tests/test_api.py 2014-02-25 21:09:55.000000000 +0100
@@ -14,6 +14,7 @@
assert_in,
assert_is_instance,
assert_is_not_none,
+ assert_list_equal,
assert_not_in,
assert_raises,
assert_true,
@@ -23,7 +24,7 @@
HAPPYBASE_HOST = os.environ.get('HAPPYBASE_HOST')
HAPPYBASE_PORT = os.environ.get('HAPPYBASE_PORT')
-HAPPYBASE_COMPAT = os.environ.get('HAPPYBASE_COMPAT', '0.92')
+HAPPYBASE_COMPAT = os.environ.get('HAPPYBASE_COMPAT', '0.96')
HAPPYBASE_TRANSPORT = os.environ.get('HAPPYBASE_TRANSPORT', 'buffered')
KEEP_TABLE = ('HAPPYBASE_NO_CLEANUP' in os.environ)
@@ -273,7 +274,6 @@
exp = {'cf1:col1': 'v1new',
'cf1:col2': 'v2'}
assert_dict_equal(exp, row(row_key, ['cf1']))
- assert_dict_equal(exp, row(row_key, ['cf1:']))
exp = {'cf1:col1': 'v1new',
'cf2:col2': 'v4'}
@@ -428,6 +428,31 @@
next(scanner)
+def test_scan_sorting():
+ if connection.compat < '0.96':
+ return # not supported
+
+ input_row = {}
+ for i in xrange(100):
+ input_row['cf1:col-%03d' % i] = ''
+ input_key = 'row-scan-sorted'
+ table.put(input_key, input_row)
+
+ scan = table.scan(row_start=input_key, sorted_columns=True)
+ key, row = next(scan)
+ assert_equal(key, input_key)
+ assert_list_equal(
+ sorted(input_row.items()),
+ row.items())
+
+
+def test_scan_filter_and_batch_size():
+ # See issue #54 and #56
+ filter = "SingleColumnValueFilter ('cf1', 'qual1', =, 'binary:val1')"
+ for k, v in table.scan(filter=filter):
+ print v
+
+
def test_delete():
row_key = 'row-test-delete'
data = {'cf1:col1': 'v1',
--
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-Moose for openSUSE:Factory checked in at 2014-04-17 14:08:35
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/perl-Moose (Old)
and /work/SRC/openSUSE:Factory/.perl-Moose.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "perl-Moose"
Changes:
--------
--- /work/SRC/openSUSE:Factory/perl-Moose/perl-Moose.changes 2013-06-13 18:14:51.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.perl-Moose.new/perl-Moose.changes 2014-04-17 14:08:36.000000000 +0200
@@ -1,0 +2,78 @@
+Mon Apr 14 08:13:41 UTC 2014 - mcaj(a)suse.com
+
+updated to 2.1204
+ - bump minimum prereq needed for optional test using MooseX::NonMoose (which
+ broke with new Module::Runtime, see 2.1203), so users can install Moose
+ and pass tests before updating MooseX::NonMoose.
+ - bump prereq on Module::Runtime to properly detect when a module fails to
+ load, and fix how we call these subs (Zefram, RT#92770, RT#86394, RT#92791)
+ - string comparisons are now possible with Moose exceptions (RT#92232)
+ - re-release to index pod files (Moose::Cookbook::*, Moose::Manual::* etc).
+ - Releasing 2.1108 as stable (last stable release was 2.1005).
+ - fixed distribution manifest
+ - minor documentation and metadata updates
+ - many additions to the list of conflicting modules (those that require
+ updates after installing Moose), reflecting recent API changes
+ - now failing early at build time, with a useful error message, if a
+ compiler is not available
+ - throw_error import cleaned from Moose::Object after use (doy)
+ - resolved new circular load issue between Moose::Util and Class::MOP (Kent
+ Fredric, RT#89713 and PR#42)
+ - legacy throw_error now takes multiple arguments, like confess does
+ (Karen Etheridge)
+ - Class::MOP::Object::_inline_throw_error is back, used by some MooseX
+ modules (Upasana)
+ - fix errors in last trial release relating to Moose::Error::Default,
+ Moose::Util::throw_error (Upasana)
+ - die if a role to consume can't be found -- this restores behaviour as in
+ 2.1005 (doy)
+ - fix test to accomodate Devel::PartialDump possibly not being installed
+ (Upasana)
+ - Moose string exceptions have been replaced by Moose::Exception objects. See
+ Moose::Manual::Delta for details.
+ - Class::MOP::load_class, Class::MOP::is_class_loaded, and
+ Class::MOP::load_first_existing_class are now deprecated. See
+ Moose::Manual::Delta for details.
+ - The non-arrayref forms of enum and duck_type have been deprecated. See
+ Moose::Manual::Delta for details.
+ - Many deprecated features have now been removed:
+ - optimize_as for type constraints
+ - the "default is" and "default default" features for native delegations
+ - setting coerce => 1 on an attribute whose type constraint has no coercion
+ - the public version of Moose::Meta::Method::Destructor::initialize_body
+ - Creating classes with Moose now always sets the appropriate entry in %INC,
+ even if it wasn't loaded from a file. This should make writing classes
+ inline easier, and will allow us to be more intelligent about figuring out
+ when classes are loaded in the future. See Moose::Manual::Delta for more
+ details. Note that this is slightly backwards-incompatible in some edge
+ cases.
+ - Moose now uses Module::Runtime instead of Class::Load to load classes. This
+ means that there are no more issues with the weird heuristics that
+ Class::Load does to determine if a class was previously loaded (inheriting
+ from an empty package is now possible, for instance). See
+ Moose::Manual::Delta for more details. This is also slightly
+ backwards-incompatible in some edge cases.
+ - add_method now accepts blessed subs (Graham Knop, PR#28)
+ - If a role consumed another role, we resolve method conflicts just like a
+ class consuming a role, but when metaclass compat tried to fix up
+ metaclass roles, we were putting all methods into one composite role and
+ allowing methods in the metaclass roles to conflict. Now we resolve them
+ as we should. (Jesse Luehrs, PR#27)
+ - Some edge cases in tests with base.pm and non-existent module files are
+ handled more strictly (see also perl RT#118561) (Graham Knop, PR#25)
+ - 2.1003 was released with some bad metadata, which caused the prereq test
+ to fail.
+ - Releasing 2.0901 as stable.
+ - The with_immutable() sub from Test::Moose now passes a boolean value to
+ the code block containing tests indicating whether or not the classes have
+ been made immutable. This can make for nicer test descriptions. (Dave
+ Rolsky)
+ - You can now use Specio types instead of Moose builtins or
+ MooseX::Types. As a bonus, Specio types inline coercion. However, this
+ support is still experimental (as is Specio), so use it with care. (Dave
+ Rolsky)
+ - Fixed the Num builtin type to reject NaN, Inf, numbers with whitespace,
+ and other questionable strings. The MooseX::Types::LaxNum distro
+ implements the old behavior. RT#70539 (Upasana)
+
+-------------------------------------------------------------------
Old:
----
Moose-2.0802.tar.gz
New:
----
Moose-2.1204.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ perl-Moose.spec ++++++
--- /var/tmp/diff_new_pack.LxaqDd/_old 2014-04-17 14:08:37.000000000 +0200
+++ /var/tmp/diff_new_pack.LxaqDd/_new 2014-04-17 14:08:37.000000000 +0200
@@ -1,7 +1,7 @@
#
# spec file for package perl-Moose
#
-# Copyright (c) 2013 SUSE LINUX Products GmbH, Nuernberg, Germany.
+# Copyright (c) 2014 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -17,7 +17,7 @@
Name: perl-Moose
-Version: 2.0802
+Version: 2.1204
Release: 0
%define cpan_name Moose
Summary: A postmodern object system for Perl 5
@@ -38,6 +38,7 @@
BuildRequires: perl(Class::Load::XS) >= 0.01
BuildRequires: perl(Data::OptList) >= 0.107
BuildRequires: perl(Devel::GlobalDestruction)
+BuildRequires: perl(Devel::StackTrace) => 1.30
BuildRequires: perl(Dist::CheckConflicts) >= 0.02
BuildRequires: perl(Eval::Closure) >= 0.04
BuildRequires: perl(List::MoreUtils) >= 0.28
@@ -54,6 +55,7 @@
BuildRequires: perl(Test::More) >= 0.88
BuildRequires: perl(Test::Requires) >= 0.05
BuildRequires: perl(Try::Tiny) >= 0.02
+BuildRequires: perl(parent) => 0.223
Requires: perl(Carp) >= 1.22
Requires: perl(Class::Load) >= 0.09
Requires: perl(Class::Load::XS) >= 0.01
@@ -118,6 +120,7 @@
%files -f %{name}.files
%defattr(-,root,root,755)
-%doc Changes Changes.Class-MOP doc examples LICENSE README.md TODO
+%doc Changes Changes.Class-MOP doc LICENSE README.md TODO
+#examples
%changelog
++++++ Moose-2.0802.tar.gz -> Moose-2.1204.tar.gz ++++++
++++ 68471 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 man-pages for openSUSE:Factory checked in at 2014-04-17 14:08:26
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/man-pages (Old)
and /work/SRC/openSUSE:Factory/.man-pages.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "man-pages"
Changes:
--------
--- /work/SRC/openSUSE:Factory/man-pages/man-pages.changes 2014-04-13 13:15:26.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.man-pages.new/man-pages.changes 2014-04-17 14:08:27.000000000 +0200
@@ -1,0 +2,5 @@
+Wed Apr 16 06:35:18 UTC 2014 - pgajdos(a)suse.com
+
+- package getent.1 [bnc#873645]
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ man-pages.spec ++++++
--- /var/tmp/diff_new_pack.QoMBtN/_old 2014-04-17 14:08:28.000000000 +0200
+++ /var/tmp/diff_new_pack.QoMBtN/_new 2014-04-17 14:08:28.000000000 +0200
@@ -59,7 +59,7 @@
# nfs-utils
rm -f man5/exports.5
# coreutils, diffutils
-rm -f man1/vdir.1 man1/touch.1 man1/rmdir.1 man1/rm.1 man1/mv.1 man1/mknod.1 man1/mkfifo.1 man1/mkdir.1 man1/ls.1 man1/ln.1 man1/install.1 man1/du.1 man1/dircolors.1 man1/dir.1 man1/diff.1 man1/df.1 man1/dd.1 man1/cp.1 man1/chown.1 man1/chmod.1 man1/chgrp.1 man1/getent.1 man3/getaddrinfo.3.orig man3/{getifaddrs.3,freeifaddrs.3}
+rm -f man1/vdir.1 man1/touch.1 man1/rmdir.1 man1/rm.1 man1/mv.1 man1/mknod.1 man1/mkfifo.1 man1/mkdir.1 man1/ls.1 man1/ln.1 man1/install.1 man1/du.1 man1/dircolors.1 man1/dir.1 man1/diff.1 man1/df.1 man1/dd.1 man1/cp.1 man1/chown.1 man1/chmod.1 man1/chgrp.1 man3/getaddrinfo.3.orig man3/{getifaddrs.3,freeifaddrs.3}
# glibc
rm -f man3/crypt.3 man3/crypt_r.3 man1/locale.1
# time
--
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 cfengine for openSUSE:Factory checked in at 2014-04-17 14:07:58
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/cfengine (Old)
and /work/SRC/openSUSE:Factory/.cfengine.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "cfengine"
Changes:
--------
--- /work/SRC/openSUSE:Factory/cfengine/cfengine.changes 2013-12-13 11:55:22.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.cfengine.new/cfengine.changes 2014-04-17 14:07:59.000000000 +0200
@@ -1,0 +2,111 @@
+Fri Apr 11 07:32:08 UTC 2014 - kkaempf(a)suse.com
+
+- Upgrade to 3.6.0rc
+ Bugfix release
+ Full ChangeLog at https://raw.githubusercontent.com/cfengine/core/3.6.x/ChangeLog
+
+-------------------------------------------------------------------
+Thu Apr 10 14:02:11 UTC 2014 - kkaempf(a)suse.com
+
+- add 0001-Simplify-and-fix-parsing-of-etc-SuSE-release-fixes-i.patch
+ * add 'suse' class for consistency with other vendor classes
+ (fixes #5417)
+ * distinction between "SUSE Linux Enterprise Server" (sles) and
+ "... Desktop" (sled)
+ * distinction between SUSE Linux Enterprise products (suse) and
+ openSUSE (opensuse)
+ * extract version from VERSION and PATCHLEVEL lines instead of
+ first line of /etc/SuSE-release
+
+-------------------------------------------------------------------
+Fri Apr 4 19:36:47 UTC 2014 - kkaempf(a)suse.com
+
+- merge cfengine-server with cfengine. A policy server only
+ gets cfengine-masterfiles but is otherwise identical to
+ a client.
+
+-------------------------------------------------------------------
+Thu Apr 3 13:10:56 UTC 2014 - kkaempf(a)suse.com
+
+- install cfengine.SuSEfirewall2
+
+-------------------------------------------------------------------
+Thu Apr 3 12:41:44 UTC 2014 - kkaempf(a)suse.com
+
+- install cfengine-masterfiles together with cfengine-server only.
+ A cfengine client will get the masterfiles from the server.
+
+-------------------------------------------------------------------
+Wed Apr 2 13:14:34 UTC 2014 - kkaempf(a)suse.com
+
+- clean up /var/cfengine/inputs cache on removal.
+
+-------------------------------------------------------------------
+Wed Mar 26 16:08:16 UTC 2014 - kkaempf(a)suse.com
+
+- remove '.unknown' from reported version
+ add drop-revision.patch
+
+-------------------------------------------------------------------
+Wed Mar 26 08:24:00 UTC 2014 - kkaempf(a)suse.com
+
+- Fix all .service files, type is forking.
+
+-------------------------------------------------------------------
+Tue Mar 18 11:30:23 UTC 2014 - kkaempf(a)suse.com
+
+- Update to 3.6.0b2
+ - performance has been significantly improved, with a 10-20% speed
+ increase over 3.5 when using the default masterfiles
+ - agents support the legacy protocol without TLS envelope
+ This allows upgrading of an agent before the policy server.
+ - several general improvements and bug fixes too numerous to list
+ here.
+
+- remove cfengine-bootstrap.patch, included upstream
+
+- split masterfiles off as cfengine-masterfiles package
+
+-------------------------------------------------------------------
+Tue Mar 18 10:20:55 UTC 2014 - aeszter(a)gwdg.de
+
+- fix build for RHEL
+ * MySQL connector: disabled
+ * docs go into versioned directory
+
+-------------------------------------------------------------------
+Thu Feb 20 23:54:22 UTC 2014 - chris(a)computersalat.de
+
+- merge with my last (not committed changes)
+ * bootstrap patch
+- fix changes file
+ * update 3.0.4b2 -> 3.4.0b2
+- fix docs install
+- fix build for SLE_11 (MySQL connector: disabled)
+
+-------------------------------------------------------------------
+Sun Feb 9 12:02:45 UTC 2014 - kkaempf(a)suse.com
+
+- use lmdb instead of tokyocabinet
+- add primer.pdf
+
+-------------------------------------------------------------------
+Tue Feb 4 07:10:49 UTC 2014 - kkaempf(a)suse.com
+
+- split off -examples sub-package
+
+-------------------------------------------------------------------
+Mon Feb 3 18:30:23 UTC 2014 - kkaempf(a)suse.com
+
+- Upgrade to 3.6.0b1
+ - New promise type "users" for managing local user accounts.
+ - TLS authentication and fully encrypted network protocol
+ - New attributes in 'bundle server access_rules'
+ - New variable type 'data' for handling of structured data
+ - Tagging of classes and variables with meta data
+ - Many new built-in variables
+ - Many new functions
+
+ - Replace tokyocabinet with lmdb database
+
+-------------------------------------------------------------------
@@ -280 +391 @@
-- update to 3.0.4b2
+- update to 3.4.0b2
@@ -318,0 +430,6 @@
+-------------------------------------------------------------------
+Wed Mar 7 13:02:30 UTC 2012 - chris(a)computersalat.de
+
+- add bootstrap patch
+ * set correct "workdir"
+
Old:
----
cfengine-3.5.3.tar.gz
libacl-headers.patch
New:
----
0001-Simplify-and-fix-parsing-of-etc-SuSE-release-fixes-i.patch
cfengine.SuSEfirewall2
core-3.6rc.tar.gz
drop-revision.patch
primer.pdf
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ cfengine.spec ++++++
--- /var/tmp/diff_new_pack.3Qbnkf/_old 2014-04-17 14:08:02.000000000 +0200
+++ /var/tmp/diff_new_pack.3Qbnkf/_new 2014-04-17 14:08:02.000000000 +0200
@@ -1,7 +1,7 @@
#
# spec file for package cfengine
#
-# Copyright (c) 2013 SUSE LINUX Products GmbH, Nuernberg, Germany.
+# Copyright (c) 2014 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -17,6 +17,7 @@
Name: cfengine
+%define srcname core
%define libname libpromises
%define libsoname %{libname}3
@@ -24,25 +25,19 @@
# reported upstream as https://cfengine.com/dev/issues/1896
%define basedir /var/%{name}
%define workdir %{basedir}
+# This is the place where workdir should be
+#define basedir /var/lib/%{name}
+#define workdir %{basedir}/work
Summary: CFEngine automates large-scale IT computing infrastructure
License: GPL-3.0
Group: Productivity/Networking/System
-Version: 3.5.3
+Version: 3.6rc
Release: 0
Url: http://www.cfengine.org/
-Source: %{name}-%{version}.tar.gz
-# there's no /usr/include/acl.h in SUSE or Fedora, kkaempf(a)suse.de
-Patch1: libacl-headers.patch
-# SLE 11 or RHEL5 autoconf does not support AM_SUBST_NOTMAKE, kkaempf(a)suse.de
-Patch2: remove-am_subst_notmake.patch
+Source: %{srcname}-%{version}.tar.gz
+Source1: %{name}.SuSEfirewall2
-Source1: http://www.cfengine.org/manuals/cf3-Reference.pdf
-Source2: http://www.cfengine.org/manuals/cf3-conceptguide.pdf
-Source3: http://www.cfengine.org/manuals/cf3-glossary.pdf
-Source4: http://www.cfengine.org/manuals/cf3-quickstart.pdf
-Source5: http://www.cfengine.org/manuals/cf3-solutions.pdf
-Source6: http://www.cfengine.org/manuals/cf3-tutorial.pdf
# wtf? SLE_11 does not honor rpmlintrc
%if 0%{?suse_version} <= 1130
BuildRequires: -post-build-checks
@@ -58,13 +53,35 @@
%endif
Source10: %{name}.cron
Source11: %{name}-rpmlintrc
+
+# docs
+Source101: http://www.cfengine.org/manuals/cf3-Reference.pdf
+Source102: http://www.cfengine.org/manuals/cf3-conceptguide.pdf
+Source103: http://www.cfengine.org/manuals/cf3-glossary.pdf
+Source104: http://www.cfengine.org/manuals/cf3-quickstart.pdf
+Source105: http://www.cfengine.org/manuals/cf3-solutions.pdf
+Source106: http://www.cfengine.org/manuals/cf3-tutorial.pdf
+Source107: http://www.verticalsysadmin.com/cfengine/primer.pdf
+
+# SLE 11 or RHEL5 autoconf does not support AM_SUBST_NOTMAKE, kkaempf(a)suse.de
+Patch2: remove-am_subst_notmake.patch
+
+# drop revision from configure.ac, autotools will evaluate it as 'unkwown'
+# kkaempf(a)suse.de
+Patch3: drop-revision.patch
+
+# PATCH-FIX-UPSTREAM add 'suse' class for consistency with other vendor classes
+# PATCH-FEATURE-UPSTREAM better /etc/SuSE-release parsing, upstream #5423
+Patch5: 0001-Simplify-and-fix-parsing-of-etc-SuSE-release-fixes-i.patch
+
BuildRoot: %{_tmppath}/%{name}-%{version}-build
BuildRequires: bison
BuildRequires: db-devel
BuildRequires: flex
-BuildRequires: libtokyocabinet-devel
BuildRequires: libtool
BuildRequires: libxml2-devel
+BuildRequires: lmdb-devel
+BuildRequires: pam-devel
#
# Disable mysql for SLE_11:
#
@@ -73,7 +90,7 @@
# library or disable MySQL connector. See
# http://bugs.mysql.com/bug.php?id=65055 for details.
#
-%if 0%{?suse_version} != 1110
+%if 0%{?suse_version} != 1110 && 0%{?rhel_version} == 0
BuildRequires: mysql-devel
%endif
BuildRequires: libacl-devel
@@ -101,6 +118,8 @@
BuildRequires: fdupes
%endif
+Requires: %{libsoname} = %{version}
+
%description
CFEngine is the core of a configuration management system: ensuring
the availability, security and compliance of mission-critical
@@ -114,8 +133,8 @@
%package -n %{libsoname}
Summary: Shared library of cfengine
Group: System/Libraries
-Provides: %{libname}1
-Obsoletes: %{libname}1
+Provides: %{libname}1 = %{version}
+Obsoletes: %{libname}1 < %{version}
%if 0%{?suse_version} == 1010
Requires: glibc
%endif
@@ -126,7 +145,7 @@
%package -n %{libname}-devel
Summary: Development package for libpromises
Group: Development/Libraries/C and C++
-Provides: %{name}-devel < %{version}
+Provides: %{name}-devel = %{version}
Obsoletes: %{name}-devel < %{version}
Requires: %{libsoname} = %{version}
Requires: glibc-devel
@@ -139,7 +158,7 @@
%package doc
Summary: CFEngine automates large-scale IT computing infrastructure - documentation
-Group: Productivity/Networking/System
+Group: Documentation/Other
%if 0%{?rhel_version} || 0%{?centos_version}
BuildRequires: tetex
BuildRequires: tetex-dvips
@@ -150,26 +169,23 @@
%description doc
Full documentation for cfengine
-%package server
-Summary: CFEngine automates large-scale IT computing infrastructure - server
-Group: Productivity/Networking/System
-Requires: %{name} = %{version}-%{release}
-
-%description server
-This package contains the files of the cfengine server.
+%package examples
+Summary: CFEngine example promises
+Group: Documentation/Other
+%description examples
+Lots of examples promises for CFEngine.
%prep
-%setup -q -n %{name}-%{version}
-%if 0%{?suse_version} || 0%{?fedora_version} || 0%{?rhel_version}
-%patch1 -p1
-%endif
-%if 0%{?suse_version} > 0 && 0%{?suse_version} <= 1110
+%setup -q -n %{srcname}-%{version}
+%if 0%{?suse_version} <= 1110
%patch2 -p1
%endif
%if 0%{?rhel_version} >= 500 && 0%{?rhel_version} < 600
%patch2 -p1
%endif
+%patch3 -p1
+%patch5 -p1
##### rpmlint
#### wrong-file-end-of-line-encoding
@@ -177,25 +193,36 @@
### http://www.fsf.org/about/contact/
find ./examples -type f -name "*.cf" -exec perl -p -i -e 's|\r\n|\n|,s|^# Foundation.*|# Foundation, 51 Franklin Street, Suite 500, Boston, MA 02110-1335, USA|' {} \;
+### install extra docs
+%{__install} -d docs
+cp -a $RPM_SOURCE_DIR/*pdf docs/
+
%build
-autoreconf -fi
+autoreconf -fi -I m4
# /usr/include/sys for acl.h
CC=gcc CFLAGS="$RPM_OPT_FLAGS -fno-strict-aliasing" \
%configure \
--disable-static \
--enable-fhs \
- --with-libxml2 \
--datadir=/var \
--with-workdir=%{workdir} \
--with-postgresql \
+%if 0%{?suse_version} != 1110 && 0%{?rhel_version} == 0 && 0%{?fedora_version} != 20
+ --with-mysql \
+%endif
+ --without-qdbm \
+ --without-tokyocabinet \
+ --with-lmdb \
--with-pthreads \
--with-openssl \
--with-pcre \
--with-libvirt \
--with-libacl \
--with-libxml2 \
-%if 0%{?suse_version} >= 1110 || 0%{?rhel_version} >= 600
+%if 0%{?suse_version} >= 1110
--docdir=%{_docdir}/%{name}
+%else if 0%{?rhel_version} >= 600
+ --docdir=%{_docdir}/%{name}-%{version}
%endif
# SLE 10 and RHEL5 don't recognize --docdir
@@ -211,10 +238,16 @@
[ -d %{buildroot} ] && [ "%{buildroot}" != "/" ] && %{__rm} -rf %{buildroot}
%endif
%{__make} "DESTDIR=%{buildroot}" install
+
+%if 0%{?suse_version} >= 1110 || 0%{?rhel_version} >= 600
+# will appear in cfengine-examples
+rm -rf %{buildroot}/%{_docdir}/%{name}/examples
+%endif
+
%{__install} -d %{buildroot}/{usr/sbin,%{workdir}/{bin,inputs,reports}}
# create dirs needed for better organizing dirs and files
-%{__install} -d %{buildroot}/%{basedir}/{backup,failsafe,config}
+%{__install} -d %{buildroot}/%{basedir}/{backup,failsafe,config,plugins}
#%%{__install} -d %{buildroot}/%%{basedir}/config/{development,production}
# install cron file
@@ -239,28 +272,30 @@
%{buildroot}/etc/init.d/cf-* %{buildroot}/etc/cron.d/%{name}
%endif
-# install docs
-%{__install} -d %{buildroot}/%{_datadir}/doc/%{name}
-%{__install} -m 0644 %{S:1} %{S:2} %{S:3} %{S:4} %{S:5} %{S:6} %{buildroot}/%{_datadir}/doc/%{name}
-
# create symlinks for sbin_PROGRAMS
# because: cf-promises needs to be installed in /var/cfengine/work/bin for pre-validation of full configuration
-for i in cf-agent cf-execd cf-key cf-monitord cf-promises cf-runagent cf-serverd; do
+for i in cf-agent cf-execd cf-key cf-monitord cf-promises cf-runagent cf-serverd cf-upgrade; do
%{__ln_s} -f ../../..%{_sbindir}/${i} %{buildroot}%{workdir}/bin/${i}
done
-# Install masterfiles (as %%config(noreplace) )
-%{__install} -d %{buildroot}/%{basedir}/masterfiles
-%{__install} -m 0644 masterfiles/def.cf %{buildroot}/%{basedir}/masterfiles
-%{__install} -m 0644 masterfiles/promises.cf %{buildroot}/%{basedir}/masterfiles
-%{__install} -m 0644 masterfiles/libraries/cfengine_stdlib.cf %{buildroot}/%{basedir}/masterfiles
-
rm -rf %{buildroot}/%{_libdir}/%{name}/libpromises.la
# will appear in %%docdir
rm -rf %{buildroot}/%{_datadir}/%{name}/ChangeLog
rm -rf %{buildroot}/%{_datadir}/%{name}/README
+# create man pages, see https://cfengine.com/dev/issues/2989
+%{__install} -d %{buildroot}/%{_mandir}/man8
+for i in cf-agent cf-execd cf-key cf-monitord cf-promises cf-runagent cf-serverd
+do
+ LD_LIBRARY_PATH=%{buildroot}%{_libdir}/%{name} %{buildroot}%{_sbindir}/$i -M > %{buildroot}%{_mandir}/man8/$i.8
+ gzip %{buildroot}%{_mandir}/man8/$i.8
+done
+
+%if 0%{?suse_version} > 1010
+install -D -m 644 %{S:1} $RPM_BUILD_ROOT%{_sysconfdir}/sysconfig/SuSEfirewall2.d/services/cfengine
+%endif
+
%if 0%{?suse_version} > 01020
%fdupes %{buildroot}/usr/share/cfengine
%endif
@@ -268,55 +303,53 @@
# systemd
%if 0%{?suse_version} >= 1210
+####################################################################
+# Systemd
+####################################################################
+
%pre
-%service_add_pre cf-execd.service cf-monitord.service
+%service_add_pre cf-execd.service cf-monitord.service cf-serverd.service
%post
-%service_add_post cf-execd.service cf-monitord.service
+%service_add_post cf-execd.service cf-monitord.service cf-serverd.service
%if 0%{?suse_version} > 1010
%install_info --name=%{name} --info-dir=%{_infodir} %{_infodir}/cf3-reference.info.gz
%endif
/sbin/ldconfig
if [ $1 -lt 2 ]; then
+ # first install, generate key pair
cf-key
fi
%preun
-%service_del_preun cf-execd.service cf-monitord.service
+%service_del_preun cf-execd.service cf-monitord.service cf-serverd.service
%postun
-%service_del_postun cf-execd.service cf-monitord.service
+%service_del_postun cf-execd.service cf-monitord.service cf-serverd.service
%if 0%{?suse_version} > 1010
%install_info_delete --name=%{name} --info-dir=%{_infodir} %{_infodir}/cf3-reference.info.gz
%endif
-/sbin/ldconfig
-
-%pre server
-%service_add_pre cf-serverd.service
-
-%post server
-if [ ${1:-0} -ne 1 ]; then
- cp -a /usr/share/cfengine/CoreBase/controls /var/cfengine/inputs
- cp -a /usr/share/cfengine/CoreBase/libraries /var/cfengine/inputs
- cp -a /usr/share/cfengine/CoreBase/services /var/cfengine/inputs
+if [ $1 -eq 0 ]; then
+ # clean up inputs cache dir on removal
+ rm -rf %{basedir}/inputs/*
fi
-%service_add_post cf-serverd.service
-
-%preun server
-%service_del_preun cf-serverd.service
-
-%postun server
-%service_del_postun cf-serverd.service
+/sbin/ldconfig
%else # !systemd
+####################################################################
+# Non-systemd
+####################################################################
+
%preun
%if 0%{?suse_version}
%stop_on_removal cf-monitord
%stop_on_removal cf-execd
+%stop_on_removal cf-serverd
%else
/etc/init.d/cf-execd stop
/etc/init.d/cf-monitord stop
+/etc/init.d/cf-serverd stop
%endif
%post
@@ -329,13 +362,13 @@
%if 0%{?suse_version} > 1010
%install_info_delete --name=%{name} --info-dir=%{_infodir} %{_infodir}/cf3-reference.info.gz
%insserv_cleanup
- for i in execd monitord; do
+ for i in execd monitord serverd; do
%restart_on_update cf-${i}
done
%else
# Update ?
if [ ${1:-0} -eq 1 ]; then
- for i in execd monitord; do
+ for i in execd monitord serverd; do
/etc/init.d/cf-${i} restart
done
else
@@ -344,25 +377,6 @@
%endif
/sbin/ldconfig
-%preun server
-%if 0%{?suse_version}
-%stop_on_removal cf-serverd
-%else
-/etc/init.d/cf-serverd stop
-%endif
-
-%postun server
-%if 0%{?suse_version}
-%restart_on_update cf-serverd
-%else
- # Update ?
- if [ ${1:-0} -eq 1 ]; then
- /etc/init.d/cf-serverd restart
- else
-:
- fi
-%endif
-
%endif # !systemd
%post -n %{libsoname} -p /sbin/ldconfig
@@ -371,45 +385,38 @@
%files
%defattr(-,root,root)
-%doc LICENSE
-# %doc README
-%doc ChangeLog
+%doc ChangeLog LICENSE README.md
%{_sbindir}/cf-agent
%{_sbindir}/cf-execd
%{_sbindir}/cf-key
%{_sbindir}/cf-monitord
%{_sbindir}/cf-promises
+%{_sbindir}/cf-serverd
+%{_sbindir}/cf-upgrade
%{_sbindir}/cf-runagent
%{_sbindir}/rpmvercmp
%if 0%{?suse_version} >= 1210
%_unitdir/cf-execd.service
%_unitdir/cf-monitord.service
+%_unitdir/cf-serverd.service
%else
-%exclude /etc/init.d/cf-serverd
%config %attr(0755,root,root) /etc/init.d/*
%{_sbindir}/rccf-execd
%{_sbindir}/rccf-monitord
+%{_sbindir}/rccf-serverd
+%endif
+%if 0%{?suse_version} > 1010
+%config %{_sysconfdir}/sysconfig/SuSEfirewall2.d/services/cfengine
%endif
-# %{_mandir}/man?/*
+%{_mandir}/man8/*
%dir %{basedir}
-/var/%{name}
-%exclude %{basedir}/backup
-%exclude %{basedir}/config
-#%%exclude %%{basedir}/failsafe
-
-%dir %{_datadir}/%{name}
-%{_datadir}/%{name}/*
%dir %{workdir}
%{workdir}/*
-%exclude %{workdir}/bin/cf-serverd
%config(noreplace) /etc/cron.d/%{name}
-%dir %{basedir}/masterfiles
-%config(noreplace) %{basedir}/masterfiles/*.cf
-
%files -n %{libsoname}
%defattr(-,root,root)
%dir %{_libdir}/%{name}
@@ -421,20 +428,10 @@
%files doc
%defattr(-,root,root)
-%dir %{_datadir}/doc/%{name}
-%{_datadir}/doc/%{name}/*
+%doc docs/*.pdf
-%files server
+%files examples
%defattr(-,root,root)
-%{basedir}/backup
-%{basedir}/config
-%{_sbindir}/cf-serverd
-%{workdir}/bin/cf-serverd
-%if 0%{?suse_version} >= 1210
-%_unitdir/cf-serverd.service
-%else
-/etc/init.d/cf-serverd
-%{_sbindir}/rccf-serverd
-%endif
+%doc examples/*cf
%changelog
++++++ 0001-Simplify-and-fix-parsing-of-etc-SuSE-release-fixes-i.patch ++++++
>From 2790065efcf484d5b51e2f5ab410983d9f37c74c Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Klaus=20K=C3=A4mpf?= <kkaempf(a)suse.de>
Date: Fri, 11 Apr 2014 09:25:05 +0200
Subject: [PATCH] Simplify and fix parsing of /etc/SuSE-release (fixes issue
#5423)
This patch is a simplification of sysinfo.c:Linux_Suse_Version()
to achieve the following
- distinction between "SUSE Linux Enterprise Server" (sles) and "... Desktop" (sled)
- distinction between SUSE Linux Enterprise products (suse) and openSUSE (opensuse)
- extract version from VERSION and PATCHLEVEL lines instead of
first line of /etc/SuSE-release
- verified for sles version 9,10,11,12; sled versions 10,11,12, openSUSE 13.1
---
libenv/sysinfo.c | 187 ++++++++++++++++++-------------------------------------
1 file changed, 60 insertions(+), 127 deletions(-)
diff --git a/libenv/sysinfo.c b/libenv/sysinfo.c
index 72eb71f75d8d..6f2a05fc4cdd 100644
--- a/libenv/sysinfo.c
+++ b/libenv/sysinfo.c
@@ -1629,6 +1629,7 @@ static int Linux_Suse_Version(EvalContext *ctx)
#define SUSE_RELEASE_FLAG "linux "
char classbuf[CF_MAXVARSIZE];
+ char *vendor = "suse";
Log(LOG_LEVEL_VERBOSE, "This appears to be a SUSE system.");
EvalContextClassPutHard(ctx, "SUSE", "inventory,attribute_name=none,source=agent");
@@ -1648,23 +1649,26 @@ static int Linux_Suse_Version(EvalContext *ctx)
return 1;
}
- char vbuf[CF_BUFSIZE], strversion[CF_MAXVARSIZE], strpatch[CF_MAXVARSIZE];
- strversion[0] = '\0';
- strpatch[0] = '\0';
+ char vbuf[CF_BUFSIZE];
int major = -1, minor = -1;
while (fgets(vbuf, sizeof(vbuf), fp) != NULL)
{
if (strncmp(vbuf, "VERSION", strlen("version")) == 0)
{
- strlcpy(strversion, vbuf, sizeof(strversion));
- sscanf(vbuf, "VERSION = %d", &major);
+ int res;
+ res = sscanf(vbuf, "VERSION = %d.%d", &major, &minor);
+ Log(LOG_LEVEL_VERBOSE, "VERSION sscanf returned %d.", res);
+ if (res < 1)
+ major = -1;
+ else if (res < 2)
+ minor = -1;
}
if (strncmp(vbuf, "PATCH", strlen("PATCH")) == 0)
{
- strlcpy(strpatch, vbuf, sizeof(strpatch));
- sscanf(vbuf, "PATCHLEVEL = %d", &minor);
+ if (sscanf(vbuf, "PATCHLEVEL = %d", &minor) != 1)
+ minor = -1;
}
}
if (ferror(fp))
@@ -1678,28 +1682,38 @@ static int Linux_Suse_Version(EvalContext *ctx)
fclose(fp);
- /* Check if it's a SUSE Enterprise version */
+ /* Check which SUSE/openSUSE product it is */
- Log(LOG_LEVEL_VERBOSE, "Looking for SUSE enterprise info in '%s'", relstring);
+ Log(LOG_LEVEL_VERBOSE, "Looking for SUSE product info in '%s'", relstring);
- /* Convert relstring to lowercase to handle rename of SuSE to
- * SUSE with SUSE 10.0.
- */
-
- for (int i = 0; i < strlen(relstring); i++)
+ if (!strncasecmp(relstring, SUSE_SLES8_ID, strlen(SUSE_SLES8_ID)))
{
- relstring[i] = tolower(relstring[i]);
+ EvalContextClassPutHard(ctx, "SLES8", "inventory,attribute_name=none,source=agent");
}
-
- /* Check if it's a SUSE Enterprise version (all in lowercase) */
-
- if (!strncmp(relstring, SUSE_SLES8_ID, strlen(SUSE_SLES8_ID)))
+ else if (!strncasecmp(relstring, SUSE_SLES_ID, strlen(SUSE_SLES_ID)))
{
- classbuf[0] = '\0';
- strcat(classbuf, "SLES8");
- EvalContextClassPutHard(ctx, classbuf, "inventory,attribute_name=none,source=agent");
+ EvalContextClassPutHard(ctx, "sles", "inventory,attribute_name=none,source=agent");
+ if (major != -1)
+ {
+ snprintf(classbuf, CF_MAXVARSIZE, "SLES%d", major);
+ EvalContextClassPutHard(ctx, classbuf, "inventory,attribute_name=none,source=agent");
+ }
+ }
+ else if (!strncasecmp(relstring, SUSE_SLED_ID, strlen(SUSE_SLED_ID)))
+ {
+ EvalContextClassPutHard(ctx, "sled", "inventory,attribute_name=none,source=agent");
+ if (major != -1)
+ {
+ snprintf(classbuf, CF_MAXVARSIZE, "SLED%d", major);
+ EvalContextClassPutHard(ctx, classbuf, "inventory,attribute_name=none,source=agent");
+ }
+ }
+ else if (!strncasecmp(relstring, "opensuse", strlen("opensuse")))
+ {
+ vendor = "opensuse";
+ EvalContextClassPutHard(ctx, vendor, "inventory,attribute_name=none,source=agent");
}
- else if (strncmp(relstring, "sles", 4) == 0)
+ else if (strncasecmp(relstring, "sles", 4) == 0)
{
Item *list, *ip;
@@ -1717,120 +1731,39 @@ static int Linux_Suse_Version(EvalContext *ctx)
}
else
{
- for (int version = 9; version < 13; version++)
- {
- snprintf(vbuf, CF_BUFSIZE, "%s %d ", SUSE_SLES_ID, version);
- Log(LOG_LEVEL_DEBUG, "Checking for SUSE [%s]", vbuf);
-
- if (!strncmp(relstring, vbuf, strlen(vbuf)))
- {
- snprintf(classbuf, CF_MAXVARSIZE, "SLES%d", version);
- EvalContextClassPutHard(ctx, classbuf, "inventory,attribute_name=none,source=agent");
- }
- else
- {
- snprintf(vbuf, CF_BUFSIZE, "%s %d ", SUSE_SLED_ID, version);
- Log(LOG_LEVEL_DEBUG, "Checking for SUSE [%s]", vbuf);
-
- if (!strncmp(relstring, vbuf, strlen(vbuf)))
- {
- snprintf(classbuf, CF_MAXVARSIZE, "SLED%d", version);
- EvalContextClassPutHard(ctx, classbuf, "inventory,attribute_name=none,source=agent");
- }
- }
- }
+ Log(LOG_LEVEL_WARNING, "Unknown product '%s' in /etc/SuSE-release", relstring);
}
- /* Determine release version. We assume that the version follows
- * the string "SuSE Linux" or "SUSE LINUX".
- */
-
- char *release = strstr(relstring, SUSE_RELEASE_FLAG);
- if (release == NULL)
+ if (major != -1)
{
- release = strstr(relstring, "opensuse");
- if (release == NULL)
+ strncpy(classbuf, vendor, CF_MAXVARSIZE);
+ EvalContextClassPutHard(ctx, classbuf, "inventory,attribute_name=none,source=agent");
+ snprintf(classbuf + strlen(classbuf), CF_MAXVARSIZE - strlen(classbuf), "_%d", major);
+ SetFlavour(ctx, classbuf);
+ if (minor != -1)
{
- release = strversion;
+ snprintf(classbuf + strlen(classbuf), CF_MAXVARSIZE - strlen(classbuf), "_%d", minor);
+ EvalContextClassPutHard(ctx, classbuf, "inventory,attribute_name=none,source=agent");
}
- }
-
- if (release == NULL)
- {
- Log(LOG_LEVEL_VERBOSE,
- "Could not find a numeric OS release in %s",
- SUSE_REL_FILENAME);
- return 2;
+ /* The correct spelling for SUSE is "SUSE" but CFEngine used to use "SuSE".
+ * Keep this for backwards compatibility until CFEngine 3.7
+ */
+ strncpy(classbuf, "SuSE", CF_MAXVARSIZE);
+ EvalContextClassPutHard(ctx, classbuf, "inventory,attribute_name=none,source=agent");
+ snprintf(classbuf + strlen(classbuf), CF_MAXVARSIZE - strlen(classbuf), "_%d", major);
+ EvalContextClassPutHard(ctx, classbuf, "inventory,attribute_name=none,source=agent");
+ if (minor != -1)
+ {
+ snprintf(classbuf + strlen(classbuf), CF_MAXVARSIZE - strlen(classbuf), "_%d", minor);
+ EvalContextClassPutHard(ctx, classbuf, "inventory,attribute_name=none,source=agent");
+ }
+ Log(LOG_LEVEL_VERBOSE, "Discovered %s version %d.%d", vendor, major, minor);
}
else
{
- char strmajor[PRINTSIZE(major)], strminor[PRINTSIZE(minor)];
- if (strchr(release, '.'))
- {
- sscanf(release, "%*s %d.%d", &major, &minor);
- sprintf(strmajor, "%d", major);
- sprintf(strminor, "%d", minor);
-
- if (major != -1 && minor != -1)
- {
- strcpy(classbuf, "SUSE");
- EvalContextClassPutHard(ctx, classbuf, "inventory,attribute_name=none,source=agent");
- strcat(classbuf, "_");
- strcat(classbuf, strmajor);
- SetFlavour(ctx, classbuf);
- strcat(classbuf, "_");
- strcat(classbuf, strminor);
- EvalContextClassPutHard(ctx, classbuf, "inventory,attribute_name=none,source=agent");
-
- /* The correct spelling for SUSE is "SUSE" but CFEngine used to use "SuSE".
- * Keep this for backwards compatibility until CFEngine 3.7
- */
- strcpy(classbuf, "SuSE");
- EvalContextClassPutHard(ctx, classbuf, "inventory,attribute_name=none,source=agent");
- strcat(classbuf, "_");
- strcat(classbuf, strmajor);
- EvalContextClassPutHard(ctx, classbuf, "inventory,attribute_name=none,source=agent");
- strcat(classbuf, "_");
- strcat(classbuf, strminor);
- EvalContextClassPutHard(ctx, classbuf, "inventory,attribute_name=none,source=agent");
-
- Log(LOG_LEVEL_VERBOSE, "Discovered SUSE version %s", classbuf);
- return 0;
- }
- }
- else
- {
- sscanf(strversion, "VERSION = %s", strmajor);
- sscanf(strpatch, "PATCHLEVEL = %s", strminor);
-
- if (major != -1 && minor != -1)
- {
- strcpy(classbuf, "SLES");
- EvalContextClassPutHard(ctx, classbuf, "inventory,attribute_name=none,source=agent");
- strcat(classbuf, "_");
- strcat(classbuf, strmajor);
- EvalContextClassPutHard(ctx, classbuf, "inventory,attribute_name=none,source=agent");
- strcat(classbuf, "_");
- strcat(classbuf, strminor);
- EvalContextClassPutHard(ctx, classbuf, "inventory,attribute_name=none,source=agent");
-
- snprintf(classbuf, CF_MAXVARSIZE, "SUSE_%d", major);
- SetFlavour(ctx, classbuf);
-
- /* The correct spelling for SUSE is "SUSE" but CFEngine used to use "SuSE".
- * Keep this for backwards compatibility until CFEngine 3.7
- */
- snprintf(classbuf, CF_MAXVARSIZE, "SuSE_%d", major);
- EvalContextClassPutHard(ctx, classbuf, "source=agent");
-
- Log(LOG_LEVEL_VERBOSE, "Discovered SUSE version %s", classbuf);
- return 0;
- }
- }
+ Log(LOG_LEVEL_VERBOSE, "Could not find a numeric OS release in %s", SUSE_REL_FILENAME);
}
- Log(LOG_LEVEL_VERBOSE, "Could not find a numeric OS release in %s", SUSE_REL_FILENAME);
-
return 0;
}
--
1.8.4.5
++++++ cf-execd.service ++++++
--- /var/tmp/diff_new_pack.3Qbnkf/_old 2014-04-17 14:08:02.000000000 +0200
+++ /var/tmp/diff_new_pack.3Qbnkf/_new 2014-04-17 14:08:02.000000000 +0200
@@ -3,6 +3,7 @@
After=syslog.target
[Service]
+Type=forking
ExecStart=/usr/sbin/cf-execd
[Install]
++++++ cf-monitord.service ++++++
--- /var/tmp/diff_new_pack.3Qbnkf/_old 2014-04-17 14:08:02.000000000 +0200
+++ /var/tmp/diff_new_pack.3Qbnkf/_new 2014-04-17 14:08:02.000000000 +0200
@@ -3,6 +3,7 @@
After=syslog.target
[Service]
+Type=forking
ExecStart=/usr/sbin/cf-monitord
[Install]
++++++ cf-serverd.service ++++++
--- /var/tmp/diff_new_pack.3Qbnkf/_old 2014-04-17 14:08:02.000000000 +0200
+++ /var/tmp/diff_new_pack.3Qbnkf/_new 2014-04-17 14:08:02.000000000 +0200
@@ -3,6 +3,7 @@
After=syslog.target
[Service]
+Type=forking
ExecStart=/usr/sbin/cf-serverd
[Install]
++++++ cfengine.SuSEfirewall2 ++++++
## Name: CFEngine server
## Description: opens ports for CFEngine server in order to be used as a policy hub
# space separated list of allowed ports
TCP="5308"
++++++ drop-revision.patch ++++++
diff -wruN -x '*~' -x '*.o' -x '*.a' -x '*.so' -x '*.so.[0-9]' -x autom4te.cache -x .deps -x .libs ../orig-core-3.6rc/configure.ac ./configure.ac
--- ../orig-core-3.6rc/configure.ac 2014-04-10 14:27:57.000000000 +0200
+++ ./configure.ac 2014-04-11 09:30:17.105777237 +0200
@@ -25,7 +25,7 @@
dnl
_AM_SET_OPTION([tar-ustar])
-AM_INIT_AUTOMAKE(cfengine, 3.6.0rc.revision)
+AM_INIT_AUTOMAKE(cfengine, 3.6.0rc)
AM_MAINTAINER_MODE([enable])
AC_DEFINE(BUILD_YEAR, esyscmd([date +%Y | tr -d '\n']), "Software build year")
--
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 booth for openSUSE:Factory checked in at 2014-04-17 14:07:49
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/booth (Old)
and /work/SRC/openSUSE:Factory/.booth.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "booth"
Changes:
--------
--- /work/SRC/openSUSE:Factory/booth/booth.changes 2014-03-04 13:20:36.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.booth.new/booth.changes 2014-04-17 14:07:50.000000000 +0200
@@ -1,0 +2,35 @@
+Mon Apr 7 15:04:43 UTC 2014 - dmuhamedagic(a)suse.com
+
+- init script is not needed in this package (bnc#872063)
+- upstream version: 60de8d
+
+-------------------------------------------------------------------
+Wed Apr 2 12:18:43 UTC 2014 - dmuhamedagic(a)suse.com
+
+- fix building manpages
+
+-------------------------------------------------------------------
+Wed Apr 2 10:11:34 UTC 2014 - dmuhamedagic(a)suse.com
+
+- fix format related warnings
+
+-------------------------------------------------------------------
+Mon Mar 31 17:13:12 CET 2014 - philipp.marek(a)linbit.com
+
+- Small fine-tuning changes
+
+-------------------------------------------------------------------
+Thu Mar 27 14:45:31 CET 2014 - philipp.marek(a)linbit.com
+
+- Rewrite, using Raft instead of Paxos.
+- Version 0.2.0
+
+-------------------------------------------------------------------
+Wed Mar 5 10:31:42 CET 2014 - philipp.marek(a)linbit.com
+
+- Provided a script to check resource health
+- Replaced "resource_monitor" functionality; now an external
+ script is called before the ticket is acquired/renewed.
+- Version 0.1.7
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ booth.spec ++++++
--- /var/tmp/diff_new_pack.1bvFl6/_old 2014-04-17 14:07:51.000000000 +0200
+++ /var/tmp/diff_new_pack.1bvFl6/_new 2014-04-17 14:07:51.000000000 +0200
@@ -24,7 +24,6 @@
%define with_extra_warnings 0
%define with_debugging 0
%define without_fatal_warnings 1
-%define with_resource_monitor 1
%if 0%{?fedora_version} || 0%{?centos_version} || 0%{?rhel_version}
%define pkg_group System Environment/Daemons
%else
@@ -38,23 +37,21 @@
Summary: The Booth Cluster Ticket Manager
License: GPL-2.0+
Group: Productivity/Clustering/HA
-Version: 0.1.6
+Version: 0.2.0
Release: 0
Source: booth.tar.bz2
Source1: %name-rpmlintrc
BuildRoot: %{_tmppath}/%{name}-%{version}-build
# 1.1.6-2 on SLES has latest ticket support
Requires: pacemaker-ticket-support >= 2.0
+BuildRequires: asciidoc
BuildRequires: autoconf
BuildRequires: automake
BuildRequires: glib2-devel
BuildRequires: libglue-devel
+BuildRequires: libpacemaker-devel
BuildRequires: libxml2-devel
BuildRequires: pkgconfig
-%if %{with_resource_monitor}
-BuildRequires: libpacemaker-devel
-#pacemaker-libs-devel
-%endif
%description
Booth manages the ticket which authorizes one of the cluster sites
@@ -73,16 +70,12 @@
%build
./autogen.sh
%configure \
-%if %{with_resource_monitor}
- --enable-resource-monitor \
-%endif
--with-initddir=%{_initrddir}
make
%install
make DESTDIR=$RPM_BUILD_ROOT install docdir=%{_defaultdocdir}/%{name}
-ln -s ../../etc/init.d/booth-arbitrator %{buildroot}/usr/sbin/rcbooth-arbitrator
mkdir -p %{buildroot}/%{_mandir}/man8/
gzip < docs/boothd.8 > %{buildroot}/%{_mandir}/man8/booth.8.gz
@@ -120,17 +113,14 @@
%defattr(-,root,root)
%{_sbindir}/booth
%{_sbindir}/boothd
-%{_sbindir}/rcbooth-arbitrator
-%if %{with_resource_monitor}
-%{_sbindir}/booth_resource_monitord
-%endif
+%exclude %{_sbindir}/rcbooth-arbitrator
%{_mandir}/man8/booth.8.gz
%{_mandir}/man8/boothd.8.gz
%dir /usr/lib/ocf
%dir /usr/lib/ocf/resource.d
%dir /usr/lib/ocf/resource.d/pacemaker
%dir %{_sysconfdir}/booth
-%{_initddir}/booth-arbitrator
+%exclude %{_initddir}/booth-arbitrator
/usr/lib/ocf/resource.d/pacemaker/booth-site
%config %{_sysconfdir}/booth/booth.conf.example
++++++ booth.tar.bz2 ++++++
++++ 16132 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 zip for openSUSE:13.1:Update checked in at 2014-04-17 08:29:40
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:13.1:Update/zip (Old)
and /work/SRC/openSUSE:13.1:Update/.zip.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "zip"
Changes:
--------
New Changes file:
NO CHANGES FILE!!!
New:
----
_link
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ _link ++++++
<link package='zip.2717' cicount='copy' />
--
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 sysconfig for openSUSE:13.1:Update checked in at 2014-04-17 08:29:08
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:13.1:Update/sysconfig (Old)
and /work/SRC/openSUSE:13.1:Update/.sysconfig.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "sysconfig"
Changes:
--------
New Changes file:
NO CHANGES FILE!!!
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ _link ++++++
--- /var/tmp/diff_new_pack.ZQ2HNP/_old 2014-04-17 08:29:09.000000000 +0200
+++ /var/tmp/diff_new_pack.ZQ2HNP/_new 2014-04-17 08:29:09.000000000 +0200
@@ -1 +1 @@
-<link package='sysconfig.2699' cicount='copy' />
+<link package='sysconfig.2730' cicount='copy' />
--
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 kernel-firmware for openSUSE:13.1:Update checked in at 2014-04-17 08:28:03
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:13.1:Update/kernel-firmware (Old)
and /work/SRC/openSUSE:13.1:Update/.kernel-firmware.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "kernel-firmware"
Changes:
--------
New Changes file:
NO CHANGES FILE!!!
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ _link ++++++
--- /var/tmp/diff_new_pack.iOkdjE/_old 2014-04-17 08:28:04.000000000 +0200
+++ /var/tmp/diff_new_pack.iOkdjE/_new 2014-04-17 08:28:04.000000000 +0200
@@ -1 +1 @@
-<link package='kernel-firmware.2419' cicount='copy' />
+<link package='kernel-firmware.2727' cicount='copy' />
--
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 bcache-tools for openSUSE:13.1:Update checked in at 2014-04-16 09:20:16
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:13.1:Update/bcache-tools (Old)
and /work/SRC/openSUSE:13.1:Update/.bcache-tools.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "bcache-tools"
Changes:
--------
New Changes file:
NO CHANGES FILE!!!
New:
----
_link
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ _link ++++++
<link package='bcache-tools.2725' cicount='copy' />
--
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 lvm2 for openSUSE:13.1:Update checked in at 2014-04-16 09:18:54
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:13.1:Update/lvm2 (Old)
and /work/SRC/openSUSE:13.1:Update/.lvm2.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "lvm2"
Changes:
--------
New Changes file:
NO CHANGES FILE!!!
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ _link ++++++
--- /var/tmp/diff_new_pack.XnmmQC/_old 2014-04-16 09:18:56.000000000 +0200
+++ /var/tmp/diff_new_pack.XnmmQC/_new 2014-04-16 09:18:56.000000000 +0200
@@ -1 +1 @@
-<link package='lvm2.2466' cicount='copy' />
+<link package='lvm2.2722' cicount='copy' />
--
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 yast2-slide-show for openSUSE:Factory checked in at 2014-04-16 07:45:57
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/yast2-slide-show (Old)
and /work/SRC/openSUSE:Factory/.yast2-slide-show.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "yast2-slide-show"
Changes:
--------
--- /work/SRC/openSUSE:Factory/yast2-slide-show/yast2-slide-show.changes 2013-11-19 10:57:12.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.yast2-slide-show.new/yast2-slide-show.changes 2014-04-16 07:45:59.000000000 +0200
@@ -1,0 +2,18 @@
+Tue Apr 15 13:39:29 UTC 2014 - ke(a)suse.de
+
+- Add more SLES images.
+- Use SLES contents for SLED, too.
+
+-------------------------------------------------------------------
+Tue Apr 15 09:13:27 UTC 2014 - ke(a)suse.de
+
+- Add SLES test images.
+- 3.1.2
+
+-------------------------------------------------------------------
+Mon Apr 14 14:20:32 UTC 2014 - ke(a)suse.de
+
+- Enable SLES; use contents provided by mge.
+- 3.1.1
+
+-------------------------------------------------------------------
Old:
----
yast2-slide-show-3.1.0.tar.bz2
New:
----
yast2-slide-show-3.1.3.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ yast2-slide-show.spec ++++++
--- /var/tmp/diff_new_pack.k1HtmW/_old 2014-04-16 07:46:00.000000000 +0200
+++ /var/tmp/diff_new_pack.k1HtmW/_new 2014-04-16 07:46:00.000000000 +0200
@@ -1,7 +1,7 @@
#
# spec file for package yast2-slide-show
#
-# Copyright (c) 2013 SUSE LINUX Products GmbH, Nuernberg, Germany.
+# Copyright (c) 2014 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -17,19 +17,20 @@
Name: yast2-slide-show
-Version: 3.1.0
+Version: 3.1.3
Release: 0
BuildRoot: %{_tmppath}/%{name}-%{version}-build
Source0: %{name}-%{version}.tar.bz2
# xml2po uses temporary files that do not like being called twice
+# xml2po probably is not thread-safe.
%define jobs 1
BuildRequires: docbook_4
BuildRequires: gnome-doc-utils
BuildRequires: pkgconfig
BuildRequires: sgml-skel
-BuildRequires: yast2-devtools >= 3.0.6
+BuildRequires: yast2-devtools >= 3.1.10
%if 0%{?suse_version} > 1120
# was in gnome-doc-utils before
BuildRequires: xml2po
@@ -42,28 +43,28 @@
Source12: slideshow-sled-po.tar.gz
%description
-The slide show displayed during package installation with YaST2.
+The slide show displayed during package installation with YaST.
%package SuSELinux
-Summary: YaST2 - Slide Show (openSUSE)
+Summary: YaST - Slide Show (openSUSE)
Group: Metapackages
%description SuSELinux
-The slide show displayed during package installation with YaST2.
+The slide show displayed during package installation with YaST.
%package SLES
-Summary: YaST2 - Slide Show (SUSE Linux Enterprise Server)
+Summary: YaST - Slide Show (SUSE Linux Enterprise Server)
Group: Metapackages
%description SLES
-The slide show displayed during package installation with YaST2.
+The slide show displayed during package installation with YaST.
%package SLED
-Summary: YaST2 - Slide Show (SUSE Linux Enterprise Desktop)
+Summary: YaST - Slide Show (SUSE Linux Enterprise Desktop)
Group: Metapackages
%description SLED
-The slide show displayed during package installation with YaST2.
+The slide show displayed during package installation with YaST.
%prep
%setup -n %{name}-%{version}
@@ -77,6 +78,12 @@
tar xf %{S:12}
langs=$(tar tf %{S:12}|sed 's=.*po/==;s=\.po$==;/^$/d'|sort -u|fmt -w1000)
sed -i "s|^langs *=.*$|langs = en $langs|" Makefile.am
+popd
+
+pushd SLES
+tar xf %{S:12}
+langs=$(tar tf %{S:12}|sed 's=.*po/==;s=\.po$==;/^$/d'|sort -u|fmt -w1000)
+sed -i "s|^langs *=.*$|langs = en $langs|" Makefile.am
popd
%build
++++++ yast2-slide-show-3.1.0.tar.bz2 -> yast2-slide-show-3.1.3.tar.bz2 ++++++
Files old/yast2-slide-show-3.1.0/SLED/pic/01_welcome.png and new/yast2-slide-show-3.1.3/SLED/pic/01_welcome.png differ
Files old/yast2-slide-show-3.1.0/SLED/pic/02_cont_running_sys.png and new/yast2-slide-show-3.1.3/SLED/pic/02_cont_running_sys.png differ
Files old/yast2-slide-show-3.1.0/SLED/pic/02_innovation.png and new/yast2-slide-show-3.1.3/SLED/pic/02_innovation.png differ
Files old/yast2-slide-show-3.1.0/SLED/pic/03_best_managed_linux.png and new/yast2-slide-show-3.1.3/SLED/pic/03_best_managed_linux.png differ
Files old/yast2-slide-show-3.1.0/SLED/pic/03_connect.png and new/yast2-slide-show-3.1.3/SLED/pic/03_connect.png differ
Files old/yast2-slide-show-3.1.0/SLED/pic/04_cloud.png and new/yast2-slide-show-3.1.3/SLED/pic/04_cloud.png differ
Files old/yast2-slide-show-3.1.0/SLED/pic/04_office.png and new/yast2-slide-show-3.1.3/SLED/pic/04_office.png differ
Files old/yast2-slide-show-3.1.0/SLED/pic/05_inter_os.png and new/yast2-slide-show-3.1.3/SLED/pic/05_inter_os.png differ
Files old/yast2-slide-show-3.1.0/SLED/pic/05_music.png and new/yast2-slide-show-3.1.3/SLED/pic/05_music.png differ
Files old/yast2-slide-show-3.1.0/SLED/pic/06_graphics.png and new/yast2-slide-show-3.1.3/SLED/pic/06_graphics.png differ
Files old/yast2-slide-show-3.1.0/SLED/pic/06_modular.png and new/yast2-slide-show-3.1.3/SLED/pic/06_modular.png differ
Files old/yast2-slide-show-3.1.0/SLED/pic/07_greenIT.png and new/yast2-slide-show-3.1.3/SLED/pic/07_greenIT.png differ
Files old/yast2-slide-show-3.1.0/SLED/pic/07_life.png and new/yast2-slide-show-3.1.3/SLED/pic/07_life.png differ
Files old/yast2-slide-show-3.1.0/SLED/pic/08_desktop.png and new/yast2-slide-show-3.1.3/SLED/pic/08_desktop.png differ
Files old/yast2-slide-show-3.1.0/SLED/pic/08_security.png and new/yast2-slide-show-3.1.3/SLED/pic/08_security.png differ
Files old/yast2-slide-show-3.1.0/SLED/pic/09_openSUSE.png and new/yast2-slide-show-3.1.3/SLED/pic/09_openSUSE.png differ
Files old/yast2-slide-show-3.1.0/SLED/pic/09_scc.png and new/yast2-slide-show-3.1.3/SLED/pic/09_scc.png differ
Files old/yast2-slide-show-3.1.0/SLED/pic/10_easy-management.png and new/yast2-slide-show-3.1.3/SLED/pic/10_easy-management.png differ
Files old/yast2-slide-show-3.1.0/SLED/pic/10_more.png and new/yast2-slide-show-3.1.3/SLED/pic/10_more.png differ
Files old/yast2-slide-show-3.1.0/SLED/pic/11_hardware.png and new/yast2-slide-show-3.1.3/SLED/pic/11_hardware.png differ
Files old/yast2-slide-show-3.1.0/SLED/pic/12_interoperability.png and new/yast2-slide-show-3.1.3/SLED/pic/12_interoperability.png differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-slide-show-3.1.0/SLED/slideshow.xml new/yast2-slide-show-3.1.3/SLED/slideshow.xml
--- old/yast2-slide-show-3.1.0/SLED/slideshow.xml 2013-11-18 18:10:10.000000000 +0100
+++ new/yast2-slide-show-3.1.3/SLED/slideshow.xml 2014-04-15 15:52:37.000000000 +0200
@@ -5,6 +5,9 @@
<!ENTITY suselinux "&suse; Linux">
<!ENTITY opensuse "openSUSE">
<!ENTITY suse-version "11.1">
+<!ENTITY sle "&suselinux; Enterprise">
+<!ENTITY sls "&sle; Server">
+<!ENTITY sld "&sle; Desktop">
]>
<!-- <table cellspacing="10" cellpadding="5"> -->
<!-- <tr> -->
@@ -13,264 +16,356 @@
<section>
<title>Slide Show</title>
+
+ <section label="01_sle12">
+ <title>&sle; 12</title>
+ <itemizedlist>
+ <listitem>
+ <para>
+ Continuously Running Systems
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Best Managed Linux
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Made for Cloud
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Most Interoperable Operating System
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Modular Design
+ </para>
+ </listitem>
+ </itemizedlist>
+ </section>
-<section label="01_welcome">
- <title>Welcome to SUSE Linux Enterprise Desktop</title>
-
-<para>SUSE Linux Enterprise Desktop is the industry's leading
-enterprise-quality Linux operating system that is optimized and ready
-for both, business and personal use. SUSE Linux Enterprise Desktop
-provides market-leading usability, seamless interoperability with
-existing enterprise computer systems, and dozens of essential office
-applications that enable businesses to use Linux and open source with
-confidence. Designed for general-purpose use, SUSE Linux Enterprise
-Desktop can also be tailored to fit fixed-function or special-purpose
-roles such as on technical workstations, kiosks, and thin clients.</para>
-</section>
-<section label="02_innovation">
- <title>The Latest Desktop Innovations</title>
-
-<para>Novell's leadership in desktop innovation is unparalleled. Combining
-results from extensive and ongoing usability studies with an outstanding
-technology vision, Novell introduces SUSE Linux Enterprise Desktop 11 as
-the most integrated and powerful Linux desktop. SUSE Linux Enterprise
-Desktop can be installed on a wide range of client devices including
-desktops, notebooks, netbooks, nettops, workstations, and more and
-includes all the applications you need to be productive at work
-or home.</para>
-
-<para>Novell's sponsorship and industry leadership in key open source
-projects such as the Linux kernel, OpenOffice.org, GNOME, Evolution,
-NetworkManager, Banshee, Mono, Compiz, F-Spot, Beagle, and many others
-illustrate Novell's unmatched innovation in the Linux desktop.</para>
-
-</section>
-<section label="03_connect">
- <title>Connect and Communicate</title>
-
- <para>SUSE Linux Enterprise Desktop 11 provides all the tools you need
- to communicate with the world.</para>
-
- <para>The Firefox Web browser is the best Web browser in the market. It
- boasts a complete set of browser features and lightning-fast performance
- out of the box, and delivers a rich user experience through plug-ins
- such as Java, Novell Moonlight, Adobe Acrobat Reader, and Adobe
- Flash Player, which are all included in SUSE Linux Enterprise Desktop
- 11.</para>
-
- <para>Novell Evolution is a complete collaboration client suite
- supporting collaboration open standards. It includes Novell GroupWise
- and Microsoft Exchange connectivity for messaging, contact management,
- calendaring and task management.</para>
-
- <para>SUSE Linux Enterprise Desktop also includes an instant messaging
- client that lets you connect with people all over the world.</para>
-
- <para>So to always have you online NetworkManager, our easy-to-use
- network configuration tool can access the most complex and secured
- networks, including WEP, WPA, VPN and other technologies, or simply
- the open wireless network from your coffee shop, and makes sure to keep
- you connected to the Internet no matter where you are.</para>
-
-</section>
-<section label="04_office">
- <title>Spreadsheets, Presentations, Text Documents and More</title>
- <para>SUSE Linux Enterprise Desktop comes complete with the latest
- version of the leading open source office productivity suite,
- OpenOffice.org. OpenOffice.org Novell Edition comes with word
- processing, spreadsheet, presentation, database, and drawing
- applications.</para>
-
-<para>As the leading alternative to Microsoft Office, OpenOffice.org
-Novell Edition fully supports the latest open document format standards,
-the widest range of Microsoft Office file formats and many others.</para>
-
-<para>OpenOffice.org Novell Edition also provides enhanced VBA macro
-support, an improved Solver, and pivot table capability. To spice up all
-your presentations, OpenOffice.org Novell Edition has great new slide
-transitions that nicely blend with our desktop effects.</para>
-
-</section>
-<section label="05_music">
- <title>Banshee: Manage your Media Library</title>
-
-<para>Novell is proud to sponsor the open source Banshee project,
-the easy-to-use and beautifully polished media management application.
-Listen to music, manage your music library, burn your own music CDs, or
-synchronize your music to your portable media player or smartphone to
-be able to listen to your music on-the-go. Banshee also gives you the ability
-to subscribe to a variety of sources, including streamed music and
-podcasts.</para>
-
-<para>To ensure the highest quality recordings and playback, Novell
-developed its own state of the art Advanced Audio Coding (AAC) encoder
-and decoder.</para>
-
-<para>New to SUSE Linux Enterprise Desktop 11, Banshee enables you to
-include videos into your media library, effortlessly letting you get
-entertained and up-to-date with video podcasts directly from your Linux
-desktop. Synchronize video podcasts to your portable media player for
-viewing on-the-go.</para>
-
-<para>Discover new music through the use of greatly integrated Web
-services like Last.fm radio.</para>
-
-</section>
-<section label="06_graphics">
- <title>Photos, Images, Drawings, Graphics</title>
-
-<para>Our Photo management tool in SUSE Linux Enterprise Desktop could
-very well be the most user-friendly one ever invented. Recognizing
-virtually all digital cameras and photo storage devices automatically,
-F-Spot will let you import and manage all your
-photos in very few clicks. It keeps an original copy of your photos, allowing you to be
-creative and try all kinds of modifications while making sure you never
-lose any of those precious snapshots again. Uploading pictures to the
-Internet has never been easier. Whether it is for printing or for your
-friends and family to enjoy, your photos are just 1-click away.</para>
-
-<para>For advanced image manipulation and graphics creation, the
-open-source community created GIMP. It is a fantastic and a complete
-photo retouching, image composition and image authoring application. GIMP
-has enough features to satisfy the most exacting artist.</para>
-
-<para>Wondering about advanced vector graphics? Then Inkscape is the right graphical software for
-you. It is a versatile graphics solution using the W3C standard Scalable
-Vector Graphics (SVG) file format. Inkscape natively supports opening
-or importing SVG, SVGZ (gzipped SVG), PDF, and AI (Adobe Illustrator)
-formats.</para>
-
-</section>
-<section label="07_greenIT">
- <title>Linux Helps Reduce Your Carbon Footprint</title>
-
-<para>We are concerned about the environment. Whether you are a mobile
-worker or desktop user, SUSE Linux Enterprise Desktop reduces your
-power consumption without impacting your productivity in any way. With
-increasing reliability, the system will maximize energy saving and will
-even let you track it.</para>
-
-<para>Now with effective power management on the processor, chipsets,
-platform and operating system level, Novell and its partners optimize
-power consumption in order to provide you with the longest possible
-battery life.</para>
-
-<para>Novell works with its hardware manufacturing partners to ensure
-that their systems installed with SUSE Linux Enterprise Desktop earn
-the ENERGY STAR qualification.</para>
-
-<para>By seamlessly providing remote desktop access, Novell aims to
-promote more electronic collaboration and even reduce your need for
-travel.</para>
-
-</section>
-<section label="08_security">
- <title>Keep Your System Secure and Up-to-Date</title>
-
- <para>When your system is connected to the Internet, you will be happy
- to know that we enabled the SUSE Linux Firewall to help secure
- your system and data from intruders. We also included AppArmor,
- the most effective and easy-to-use Linux application security system
- available. It proactively protects the operating system and applications
- from external or internal threats.</para>
-
-
-<para>In SUSE Linux Enterprise Desktop 11, we have introduced a new
-granular privilege system PolicyKit that greatly improves the ability
-for users and applications to be granted access to privileged operations
-when needed. Furthermore, we have improved wireless and wired
-network security connectivity and data encryption capabilities.</para>
-
-<para>Novell is dedicated to promptly provide its users with the latest
-security updates. To ensure that the latest security patches are installed
-on your system, Novell provides a comprehensive resource management
-solution that allows you to stay up-to-date with all security updates.</para>
-
-</section>
- <section label="09_openSUSE">
- <title>openSUSE.org</title>
+ <section label="02_cont_running_sys">
+ <title>Continuously Running Systems</title>
+ <para>
+ Snapshot & rollback for the full system
+ </para>
+ <para>
+ Have a well <emphasis>known state</emphasis> to which you can go
+ back, to give you <emphasis>peace of mind</emphasis> for:
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ Kernel upgrades
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Service pack installations
+ </para>
+ </listitem>
+ </itemizedlist>
+ </section>
- <para>The openSUSE project is a worldwide community program sponsored by
- Novell that promotes the use of Linux everywhere. Please visit opensuse.org
- where you can find and join a community of users and developers who all have
- the same goal in mind: to create and distribute the world's most usable
- Linux distribution. openSUSE provides the base of our award-winning SUSE Linux
- Enterprise products.</para>
-
- <para>The openSUSE Build Service is an open and complete distribution
- development platform that provides a transparent infrastructure for
- development of the openSUSE distribution. With the openSUSE Build Service,
- you can easily find the latest open source packages you are looking for. It
- provides a bridge between developers and users with feedback and rating
- functionality. For developers it is an efficient place to build up groups and
- work together through its project model.</para>
-
- <para>Zypp is our software management engine and open source project that
- powers products like YaST, Zypper and ZENworks with a powerful dependency
- resolver and a convenient package management API.</para>
+ <section label="03_best_managed_linux">
+ <title>Best Managed Linux</title>
+ <itemizedlist>
+ <listitem>
+ <para>
+ <emphasis>YaST:</emphasis> the only integrated single system
+ management solution in the Linux world
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ Write your own extensions in Ruby now!
+ </para>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ <listitem>
+ <para>
+ Wicked: a new framework for simplifying the complexity of Linux
+ network management
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ Network configuration as a service
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Smooth adoption & migration
+ </para>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ </itemizedlist>
</section>
+ <section label="04_cloud">
+ <title>Made for Cloud</title>
+ <itemizedlist>
+ <listitem>
+ <para>
+ Reliable Host
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ KVM and Xen support included </para>
+ </listitem>
+ <listitem>
+ <para>
+ Basis for OpenStack-based SUSE® Cloud
+ </para>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ <listitem>
+ <para>
+ Perfect Guest
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ Works well on mainstream hypervisors: Xen, KVM, VMware® vSphere,
+ Microsoft® Hyper-V etc.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Available on Amazon® EC2, Microsoft® Azure, Google® Compute
+ Engine, and other 50+ public clouds
+ </para>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ </itemizedlist>
+ </section>
+ <section label="05_inter_os">
+ <title>Most Interoperable Operating System</title>
-<section label="10_easy-management">
- <title>Easy to Deploy and Manage</title>
+ <itemizedlist>
+ <listitem>
+ <para>
+ Networking – IPv6
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ Scalable network infrastructures
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Compliant to USGv6 standard
+ </para>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ <listitem>
+ <para>
+ Operating Systems
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ Windows: Samba 4
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ Active Directory integration
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Out-of-the-box experience via YaST
+ </para>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ <listitem>
+ <para>
+ UNIX & Linux: NFSv4.1
+ </para>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ </itemizedlist>
+ </section>
-<para>SUSE Linux Enterprise supports many deployment strategies
-providing system administrators flexible ways to customize and tailor
-the distribution to their needs.</para>
-
-<para>AutoYaST is an integrated solution for installing one or more systems
-automatically without user intervention. Installations are performed
-using a control file with installation and configuration data.</para>
-
-<para>The openSUSE KIWI imaging system provides a complete operating
-system image solution for supported hardware platforms as well as
-virtualization systems.</para>
-
-<para>With these solutions combined with several key open source projects
-such as GConf, PolicyKit and Firstboot, SUSE Linux Enterprise Desktop
-is the easiest Linux desktop to deploy and manage.</para>
+ <section label="06_modular">
+ <title>Modular Design</title>
-</section>
-<section label="11_hardware">
- <title>Certified for SUSE Linux Enterprise Desktop</title>
+ <para>
+ Five different modules give you balance between the latest
+ technologies and enterprise-level stability:
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ Web and Scripting Module
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Legacy Module
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Toolchain Module
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Public Cloud Module
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ … Module
+ </para>
+ </listitem>
+ </itemizedlist>
+ </section>
+
+ <section label="07_life">
+ <title>Lifecycle and LTSS</title>
+
+ <para>
+ SUSE® Linux Enterprise Server:
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ 13-year lifecycle
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ 10 years of general support
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Up to 3 years of extended support
+ </para>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ <listitem>
+ <para>
+ 5-year lifecycle per Service Pack
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ 2 years of general support
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Up to 3 years of extended support
+ </para>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ <listitem>
+ <para>
+ Long Term Service Pack Support (LTSS) available for all releases
+ </para>
+ </listitem>
+ </itemizedlist>
+ </section>
+ <section label="08_desktop">
+ <title>Desktop Experience</title>
-<para>By successfully completing stringent compatibility testing
-requirements, Novell's partners qualify their systems for SUSE Linux
-Enterprise Desktop certification.</para>
-
-<para>With a system certified for SUSE Linux Enterprise Desktop you can
-trustfully use our software to manage your media library, collaborate
-on projects and stay connected with your friends.</para>
-
-<para>You can find all the systems that have passed logo certification
-by visiting novell.com/desktop. Systems with certification fully take
-advantage of SUSE Linux Enterprise Desktop to deliver rich Internet
-experience, ease of use, and excellent performance.</para>
-
-<para>Novell is pleased to also be part of the Linux Driver Project
-focused on working with manufacturers to create and maintain open source
-Linux kernel drivers for all types of devices. Timely hardware enablement
-for desktop components is achieved by porting drivers to the Linux kernel
-that powers SUSE Linux Enterprise.</para>
+ <para>
+ GNOME 3 as the desktop environment for SUSE® Linux Enterprise 12
+ provides two desktop experiences for you to chose from:
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ Using GNOME 3's GNOME Shell you can explore next-generation desktop
+ features that can be used with a mouse and a touchscreen.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ SUSE's default GNOME 3 Classic Mode utilizes the same modern
+ technology, while maintaining well known usage patterns.
+ </para>
+ </listitem>
+ </itemizedlist>
+ </section>
-</section>
-<section label="12_interoperability">
- <title>Interoperability: Work with Everyone</title>
+ <section label="09_scc">
+ <title>SUSE Customer Center</title>
-<para>SUSE Linux Enterprise Desktop is designed with today's heterogeneous
-world in mind. It is fully capable to seamlessly integrate into existing
-Windows file and print environments. In addition, it plugs into existing
-Microsoft Active Directory and Novell eDirectory environments. With
-its broad use of open standards, SUSE Linux Enterprise Desktop enables
-you to share information across any IT system so that you can easily
-communicate with all users around you.</para>
-
-<para>OpenOffice.org Novell Edition works with the widest range of
-document formats including Open Document Format, Microsoft Office formats
-(including OO XML), Works, WordPerfect and others.</para>
-
-<para>Furthermore, SUSE Linux Enterprise Desktop provides accessibility features
-so that anyone can take advantage of the improved productivity and lower
-cost that a Linux desktop provides.</para>
+ <para>
+ Discover a new way of managing your SUSE account and subscriptions
+ via one interface, anytime, anywhere!
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ Centralize access to subscriptions and entitlements
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Quick access to support tools
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Easy way to provide feedback
+ </para>
+ </listitem>
+ </itemizedlist>
+ </section>
+ <section label="10_more">
+ <title>More from SUSE ...</title>
+ <itemizedlist>
+ <listitem>
+ <para>
+ SUSE Linux Enterprise
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ High Availability Extension
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ SUSE Manager
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ SUSE Cloud
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ SUSE Storage
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ More
+ </para>
+ </listitem>
+ </itemizedlist>
</section>
</section>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-slide-show-3.1.0/SLES/Makefile.am new/yast2-slide-show-3.1.3/SLES/Makefile.am
--- old/yast2-slide-show-3.1.0/SLES/Makefile.am 2013-11-18 18:10:10.000000000 +0100
+++ new/yast2-slide-show-3.1.3/SLES/Makefile.am 2014-04-15 15:52:37.000000000 +0200
@@ -1,16 +1,93 @@
#
-# Makefile.am for slide-show/slide
+# Makefile.am for slide-show/SLED
#
-instdir = /SuSE/SuSE-SLES/CD1/suse/setup/slide
+instdir = /SuSE/SuSE-SLES/CD1/suse/setup/slide
-# note: txt/*/*.rtf does not work. you get a dir called "txt/*"!
-EXTRA_DIST = pic/*.png \
- txt/cs/*.rtf \
- txt/de/*.rtf \
- txt/en/*.rtf
+fname = slideshow
+# list of languages available in SVN
+# CAUTION: Czech is "cs", not "cz"! Use the LANG abbrev, not the country!
+langs =
+# list of languages ready for distribution _and_ installation
+dist_langs = $(langs)
+# take the files from txt/LL/*.rtf
+# txt/*/*.rtf does not work. you get a dir called "txt/*"!
+dist_lang_files = $(addprefix txt/,$(addsuffix /*.rtf,$(dist_langs)))
+
+EXTRA_DIST = \
+ $(fname).xml $(xsl_styles) \
+ $(pofiles) \
+ pic/*.png \
+ $(dist_lang_files)
+
+xml = $(addsuffix .xml,$(langs))
+rtf = $(xml:.xml=.rtf)
+valid = $(xml:.xml=.valid)
+# nochunk = $(xml:.xml=.nochunk)
+#pofiles = $(xml:.xml=.po)
+# po/LL.po
+pofiles=$(addprefix po/,$(addsuffix .po,$(langs)))
+xsl_styles = $(fname).xsl
+
+SUFFIXES = .xml .rtf .valid .po .pot
+
+CLEANFILES = $(rtf) $(valid) $(xml) $(fname).pot
+
+XSLTPROC = @XSLTPROC@
+XMLLINT = @XMLLINT@
+XML2PO = @XML2PO@
+
+MSGMERGE_UPDATE = @MSGMERGE@ --update
+
+all: validate rtf
+
+outdir:
+ rm -fr txt
+ mkdir txt
+
+rtf: $(rtf)
+%.rtf: %.xml outdir
+ ll=`echo $< | sed "s/\.xml$$//"`; \
+ mkdir txt/$$ll ; \
+ $(XSLTPROC) --nonet --stringparam out.dir "txt/$$ll" \
+ $(fname).xsl $< 1>/dev/null; \
+ pushd txt/$$ll ; \
+ for f in *.rtf ; do \
+ sed -i 's/\/>/>/;s/%imagedir%/\&imagedir;/' $$f; \
+ done ; \
+ popd
+
+validate: $(valid)
+%.valid: %.xml
+ $(XMLLINT) --nonet --valid --noout $< && touch $@
+
+pot: $(fname).pot
+$(fname).pot: $(fname).xml
+ $(XMLLINT) --nonet --valid --noout $(fname).xml
+ $(XML2PO) --expand-all-entities -o $(fname).pot $(fname).xml
+
+# re-merge po translation files
+po: $(pofiles)
+$(pofiles): $(fname).pot
+ @lang=`echo $@ | sed -e 's,.*/,,' -e 's/\.po$$//'`; \
+ echo "$(MSGMERGE_UPDATE) po/$${lang}.po $(fname).pot"; \
+ if [ $${lang} = en ]; then \
+ msgen -o po/$${lang}.po $(fname).pot ;\
+ else $(MSGMERGE_UPDATE) po/$${lang}.po $(fname).pot ; fi
+
+xml: $(xml)
+%.xml: po/%.po
+ @lang=`echo $@ | sed -e 's,.*/,,' -e 's,$(fname)_/,,' -e 's/\.xml$$//'`; \
+ echo "$(XML2PO) -p po/$${lang}.po -o $${lang}.xml $(fname).pot"; \
+ $(XML2PO) -p po/$${lang}.po -o $${lang}.xml $(fname).xml
+
+# rndir=$(DESTDIR)$(datadir)/doc/$(PACKAGE_NAME)
install-data-local:
+# $(mkinstalldirs) $(rndir)
+# for file in $(html); do \
+# $(INSTALL_DATA) $$file $(rndir) ; \
+# done
mkdir -p $(DESTDIR)/$(instdir)
-test -d $(srcdir)/txt && cp -a $(srcdir)/txt $(DESTDIR)/$(instdir)
-test -d $(srcdir)/pic && cp -a $(srcdir)/pic $(DESTDIR)/$(instdir)
Files old/yast2-slide-show-3.1.0/SLES/pic/01_welcome.png and new/yast2-slide-show-3.1.3/SLES/pic/01_welcome.png differ
Files old/yast2-slide-show-3.1.0/SLES/pic/02_cont_running_sys.png and new/yast2-slide-show-3.1.3/SLES/pic/02_cont_running_sys.png differ
Files old/yast2-slide-show-3.1.0/SLES/pic/02_platforms.png and new/yast2-slide-show-3.1.3/SLES/pic/02_platforms.png differ
Files old/yast2-slide-show-3.1.0/SLES/pic/03_best_managed_linux.png and new/yast2-slide-show-3.1.3/SLES/pic/03_best_managed_linux.png differ
Files old/yast2-slide-show-3.1.0/SLES/pic/03_ul.png and new/yast2-slide-show-3.1.3/SLES/pic/03_ul.png differ
Files old/yast2-slide-show-3.1.0/SLES/pic/04_cloud.png and new/yast2-slide-show-3.1.3/SLES/pic/04_cloud.png differ
Files old/yast2-slide-show-3.1.0/SLES/pic/04_maintenance.png and new/yast2-slide-show-3.1.3/SLES/pic/04_maintenance.png differ
Files old/yast2-slide-show-3.1.0/SLES/pic/05_certification.png and new/yast2-slide-show-3.1.3/SLES/pic/05_certification.png differ
Files old/yast2-slide-show-3.1.0/SLES/pic/05_inter_os.png and new/yast2-slide-show-3.1.3/SLES/pic/05_inter_os.png differ
Files old/yast2-slide-show-3.1.0/SLES/pic/06_family.png and new/yast2-slide-show-3.1.3/SLES/pic/06_family.png differ
Files old/yast2-slide-show-3.1.0/SLES/pic/06_modular.png and new/yast2-slide-show-3.1.3/SLES/pic/06_modular.png differ
Files old/yast2-slide-show-3.1.0/SLES/pic/07_life.png and new/yast2-slide-show-3.1.3/SLES/pic/07_life.png differ
Files old/yast2-slide-show-3.1.0/SLES/pic/07_oes.png and new/yast2-slide-show-3.1.3/SLES/pic/07_oes.png differ
Files old/yast2-slide-show-3.1.0/SLES/pic/08_desktop.png and new/yast2-slide-show-3.1.3/SLES/pic/08_desktop.png differ
Files old/yast2-slide-show-3.1.0/SLES/pic/08_firewall.png and new/yast2-slide-show-3.1.3/SLES/pic/08_firewall.png differ
Files old/yast2-slide-show-3.1.0/SLES/pic/09_lotus.png and new/yast2-slide-show-3.1.3/SLES/pic/09_lotus.png differ
Files old/yast2-slide-show-3.1.0/SLES/pic/09_scc.png and new/yast2-slide-show-3.1.3/SLES/pic/09_scc.png differ
Files old/yast2-slide-show-3.1.0/SLES/pic/10_more.png and new/yast2-slide-show-3.1.3/SLES/pic/10_more.png differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-slide-show-3.1.0/SLES/slideshow.xml new/yast2-slide-show-3.1.3/SLES/slideshow.xml
--- old/yast2-slide-show-3.1.0/SLES/slideshow.xml 1970-01-01 01:00:00.000000000 +0100
+++ new/yast2-slide-show-3.1.3/SLES/slideshow.xml 2014-04-15 15:52:37.000000000 +0200
@@ -0,0 +1,371 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN" "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd" [
+<!ENTITY yast "YaST">
+<!ENTITY suse "SUSE">
+<!ENTITY suselinux "&suse; Linux">
+<!ENTITY opensuse "openSUSE">
+<!ENTITY suse-version "11.1">
+<!ENTITY sle "&suselinux; Enterprise">
+<!ENTITY sls "&sle; Server">
+<!ENTITY sld "&sle; Desktop">
+]>
+<!-- <table cellspacing="10" cellpadding="5"> -->
+<!-- <tr> -->
+<!-- <td valign="top"><img src="&imagedir;/01_welcome.png" width="150" valign="top"></td> -->
+<!-- <td> -->
+
+<section>
+ <title>Slide Show</title>
+
+ <section label="01_sle12">
+ <title>&sle; 12</title>
+ <itemizedlist>
+ <listitem>
+ <para>
+ Continuously Running Systems
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Best Managed Linux
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Made for Cloud
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Most Interoperable Operating System
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Modular Design
+ </para>
+ </listitem>
+ </itemizedlist>
+ </section>
+
+ <section label="02_cont_running_sys">
+ <title>Continuously Running Systems</title>
+ <para>
+ Snapshot & rollback for the full system
+ </para>
+ <para>
+ Have a well <emphasis>known state</emphasis> to which you can go
+ back, to give you <emphasis>peace of mind</emphasis> for:
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ Kernel upgrades
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Service pack installations
+ </para>
+ </listitem>
+ </itemizedlist>
+ </section>
+
+ <section label="03_best_managed_linux">
+ <title>Best Managed Linux</title>
+ <itemizedlist>
+ <listitem>
+ <para>
+ <emphasis>YaST:</emphasis> the only integrated single system
+ management solution in the Linux world
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ Write your own extensions in Ruby now!
+ </para>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ <listitem>
+ <para>
+ Wicked: a new framework for simplifying the complexity of Linux
+ network management
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ Network configuration as a service
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Smooth adoption & migration
+ </para>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ </itemizedlist>
+ </section>
+ <section label="04_cloud">
+ <title>Made for Cloud</title>
+ <itemizedlist>
+ <listitem>
+ <para>
+ Reliable Host
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ KVM and Xen support included </para>
+ </listitem>
+ <listitem>
+ <para>
+ Basis for OpenStack-based SUSE® Cloud
+ </para>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ <listitem>
+ <para>
+ Perfect Guest
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ Works well on mainstream hypervisors: Xen, KVM, VMware® vSphere,
+ Microsoft® Hyper-V etc.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Available on Amazon® EC2, Microsoft® Azure, Google® Compute
+ Engine, and other 50+ public clouds
+ </para>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ </itemizedlist>
+ </section>
+ <section label="05_inter_os">
+ <title>Most Interoperable Operating System</title>
+
+ <itemizedlist>
+ <listitem>
+ <para>
+ Networking – IPv6
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ Scalable network infrastructures
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Compliant to USGv6 standard
+ </para>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ <listitem>
+ <para>
+ Operating Systems
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ Windows: Samba 4
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ Active Directory integration
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Out-of-the-box experience via YaST
+ </para>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ <listitem>
+ <para>
+ UNIX & Linux: NFSv4.1
+ </para>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ </itemizedlist>
+ </section>
+
+ <section label="06_modular">
+ <title>Modular Design</title>
+
+ <para>
+ Five different modules give you balance between the latest
+ technologies and enterprise-level stability:
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ Web and Scripting Module
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Legacy Module
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Toolchain Module
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Public Cloud Module
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ … Module
+ </para>
+ </listitem>
+ </itemizedlist>
+ </section>
+
+ <section label="07_life">
+ <title>Lifecycle and LTSS</title>
+
+ <para>
+ SUSE® Linux Enterprise Server:
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ 13-year lifecycle
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ 10 years of general support
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Up to 3 years of extended support
+ </para>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ <listitem>
+ <para>
+ 5-year lifecycle per Service Pack
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ 2 years of general support
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Up to 3 years of extended support
+ </para>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ <listitem>
+ <para>
+ Long Term Service Pack Support (LTSS) available for all releases
+ </para>
+ </listitem>
+ </itemizedlist>
+ </section>
+ <section label="08_desktop">
+ <title>Desktop Experience</title>
+
+ <para>
+ GNOME 3 as the desktop environment for SUSE® Linux Enterprise 12
+ provides two desktop experiences for you to chose from:
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ Using GNOME 3's GNOME Shell you can explore next-generation desktop
+ features that can be used with a mouse and a touchscreen.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ SUSE's default GNOME 3 Classic Mode utilizes the same modern
+ technology, while maintaining well known usage patterns.
+ </para>
+ </listitem>
+ </itemizedlist>
+ </section>
+
+ <section label="09_scc">
+ <title>SUSE Customer Center</title>
+
+ <para>
+ Discover a new way of managing your SUSE account and subscriptions
+ via one interface, anytime, anywhere!
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ Centralize access to subscriptions and entitlements
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Quick access to support tools
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Easy way to provide feedback
+ </para>
+ </listitem>
+ </itemizedlist>
+ </section>
+ <section label="10_more">
+ <title>More from SUSE ...</title>
+
+ <itemizedlist>
+ <listitem>
+ <para>
+ SUSE Linux Enterprise
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ High Availability Extension
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ SUSE Manager
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ SUSE Cloud
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ SUSE Storage
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ More
+ </para>
+ </listitem>
+ </itemizedlist>
+ </section>
+</section>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-slide-show-3.1.0/SLES/slideshow.xsl new/yast2-slide-show-3.1.3/SLES/slideshow.xsl
--- old/yast2-slide-show-3.1.0/SLES/slideshow.xsl 1970-01-01 01:00:00.000000000 +0100
+++ new/yast2-slide-show-3.1.3/SLES/slideshow.xsl 2014-04-15 15:52:37.000000000 +0200
@@ -0,0 +1,96 @@
+<?xml version='1.0'?>
+<xsl:stylesheet
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"
+ xmlns:exsl="http://exslt.org/common"
+ extension-element-prefixes="exsl">
+
+<xsl:output method="html" encoding = "UTF-8"/>
+<xsl:param name="out.dir" select="'outdir'"/>
+
+<xsl:template match="section/section">
+ <xsl:variable name="chunk.name"
+ select="@label"/>
+ <xsl:variable name="imgdir"
+ select="concat ($out.dir, '/', $chunk.name, '.rtf')"/>
+
+ <xsl:choose>
+ <xsl:when test="element-available('exsl:document')">
+ <exsl:document href = "{$imgdir}"
+ omit-xml-declaration = "yes"
+ method = "xml"
+ encoding = "UTF-8"
+ media-type = "print"
+ indent = "yes">
+ <table>
+ <xsl:attribute name="cellspacing">
+ <xsl:value-of select="'10'"/>
+ </xsl:attribute>
+ <xsl:attribute name="cellpadding">
+ <xsl:value-of select="'5'"/>
+ </xsl:attribute>
+
+ <tr>
+ <td>
+ <xsl:attribute name="valign">
+ <xsl:value-of select="'top'"/>
+ </xsl:attribute>
+ <!-- <xsl:text><![CDATA[<img src="&imagedir;/]]></xsl:text> -->
+ <img>
+ <xsl:attribute name="src">
+ <xsl:value-of select="concat('%imagedir%/', $chunk.name, '.png')"/>
+</xsl:attribute>
+
+ <xsl:attribute name="width">
+ <xsl:value-of select="'150'"/>
+ </xsl:attribute>
+ <xsl:attribute name="valign">
+ <xsl:value-of select="'top'"/>
+ </xsl:attribute>
+<!-- <xsl:text><![CDATA[>]]></xsl:text> -->
+</img>
+ </td>
+ <td>
+ <xsl:apply-templates />
+ </td>
+ </tr>
+ </table>
+ </exsl:document>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:message>exsl missing</xsl:message>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template match="section/section/title">
+ <h2>
+ <xsl:apply-templates />
+ </h2>
+</xsl:template>
+
+<xsl:template match="para">
+ <p>
+ <xsl:apply-templates />
+ </p>
+</xsl:template>
+
+<xsl:template match="itemizedlist">
+ <ul><xsl:apply-templates /></ul>
+</xsl:template>
+<xsl:template match="orderedlist">
+ <ol><xsl:apply-templates /></ol>
+</xsl:template>
+<xsl:template match="listitem">
+ <li><xsl:apply-templates /></li>
+</xsl:template>
+<xsl:template match="emphasis">
+ <em><xsl:apply-templates /></em>
+</xsl:template>
+
+</xsl:stylesheet>
+
+<!--
+ <xsl:message>
+ <xsl:value-of select="$chunk.name" />
+</xsl:message>
+-->
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-slide-show-3.1.0/VERSION new/yast2-slide-show-3.1.3/VERSION
--- old/yast2-slide-show-3.1.0/VERSION 2013-11-18 18:10:10.000000000 +0100
+++ new/yast2-slide-show-3.1.3/VERSION 1970-01-01 01:00:00.000000000 +0100
@@ -1 +0,0 @@
-3.1.0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-slide-show-3.1.0/package/yast2-slide-show.changes new/yast2-slide-show-3.1.3/package/yast2-slide-show.changes
--- old/yast2-slide-show-3.1.0/package/yast2-slide-show.changes 2013-11-18 18:10:10.000000000 +0100
+++ new/yast2-slide-show-3.1.3/package/yast2-slide-show.changes 2014-04-15 15:52:37.000000000 +0200
@@ -1,4 +1,22 @@
-------------------------------------------------------------------
+Tue Apr 15 13:39:29 UTC 2014 - ke(a)suse.de
+
+- Add more SLES images.
+- Use SLES contents for SLED, too.
+
+-------------------------------------------------------------------
+Tue Apr 15 09:13:27 UTC 2014 - ke(a)suse.de
+
+- Add SLES test images.
+- 3.1.2
+
+-------------------------------------------------------------------
+Mon Apr 14 14:20:32 UTC 2014 - ke(a)suse.de
+
+- Enable SLES; use contents provided by mge.
+- 3.1.1
+
+-------------------------------------------------------------------
Thu Sep 19 16:47:05 UTC 2013 - lslezak(a)suse.cz
- do not use *.spec.in template, use *.spec file with RPM macros
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-slide-show-3.1.0/package/yast2-slide-show.spec new/yast2-slide-show-3.1.3/package/yast2-slide-show.spec
--- old/yast2-slide-show-3.1.0/package/yast2-slide-show.spec 2013-11-18 18:10:10.000000000 +0100
+++ new/yast2-slide-show-3.1.3/package/yast2-slide-show.spec 2014-04-15 15:52:37.000000000 +0200
@@ -17,7 +17,7 @@
Name: yast2-slide-show
-Version: 3.1.0
+Version: 3.1.3
Release: 0
BuildRoot: %{_tmppath}/%{name}-%{version}-build
@@ -25,12 +25,13 @@
# xml2po uses temporary files that do not like being called twice
+# xml2po probably is not thread-safe.
%define jobs 1
BuildRequires: docbook_4
BuildRequires: gnome-doc-utils
BuildRequires: pkgconfig
BuildRequires: sgml-skel
-BuildRequires: yast2-devtools >= 3.0.6
+BuildRequires: yast2-devtools >= 3.1.10
%if 0%{?suse_version} > 1120
# was in gnome-doc-utils before
BuildRequires: xml2po
@@ -43,28 +44,28 @@
Source12: slideshow-sled-po.tar.gz
%description
-The slide show displayed during package installation with YaST2.
+The slide show displayed during package installation with YaST.
%package SuSELinux
-Summary: YaST2 - Slide Show (openSUSE)
+Summary: YaST - Slide Show (openSUSE)
Group: Metapackages
%description SuSELinux
-The slide show displayed during package installation with YaST2.
+The slide show displayed during package installation with YaST.
%package SLES
-Summary: YaST2 - Slide Show (SUSE Linux Enterprise Server)
+Summary: YaST - Slide Show (SUSE Linux Enterprise Server)
Group: Metapackages
%description SLES
-The slide show displayed during package installation with YaST2.
+The slide show displayed during package installation with YaST.
%package SLED
-Summary: YaST2 - Slide Show (SUSE Linux Enterprise Desktop)
+Summary: YaST - Slide Show (SUSE Linux Enterprise Desktop)
Group: Metapackages
%description SLED
-The slide show displayed during package installation with YaST2.
+The slide show displayed during package installation with YaST.
%prep
%setup -n %{name}-%{version}
@@ -78,6 +79,12 @@
tar xf %{S:12}
langs=$(tar tf %{S:12}|sed 's=.*po/==;s=\.po$==;/^$/d'|sort -u|fmt -w1000)
sed -i "s|^langs *=.*$|langs = en $langs|" Makefile.am
+popd
+
+pushd SLES
+tar xf %{S:12}
+langs=$(tar tf %{S:12}|sed 's=.*po/==;s=\.po$==;/^$/d'|sort -u|fmt -w1000)
+sed -i "s|^langs *=.*$|langs = en $langs|" Makefile.am
popd
%build
--
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 xen for openSUSE:Factory checked in at 2014-04-16 07:44:06
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/xen (Old)
and /work/SRC/openSUSE:Factory/.xen.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "xen"
Changes:
--------
--- /work/SRC/openSUSE:Factory/xen/xen.changes 2014-03-15 17:36:00.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.xen.new/xen.changes 2014-04-16 07:44:07.000000000 +0200
@@ -1,0 +2,70 @@
+Wed Apr 9 08:07:03 MDT 2014 - carnold(a)suse.com
+
+- Upstream patches from Jan
+ 53356c1e-x86-HVM-correct-CPUID-leaf-80000008-handling.patch
+ 533ad1ee-VMX-fix-PAT-value-seen-by-guest.patch
+ 533d413b-x86-mm-fix-checks-against-max_mapped_pfn.patch
+
+-------------------------------------------------------------------
+Thu Apr 3 16:21:03 UTC 2014 - carnold(a)suse.com
+
+- bnc#862608 - SLES 11 SP3 vm-install should get RHEL 7 support
+ when released
+ 53206661-pygrub-support-linux16-and-initrd16.patch
+- Upstream bug fixes
+ 53299d8f-xenconsole-reset-tty-on-failure.patch
+ 53299d8f-xenconsole-tolerate-tty-errors.patch
+
+-------------------------------------------------------------------
+Thu Apr 3 16:21:03 UTC 2014 - dmueller(a)suse.com
+
+- fix build for armv7l and aarch64
+
+-------------------------------------------------------------------
+Thu Apr 3 15:40:31 CEST 2014 - ohering(a)suse.de
+
+- Remove compiletime strings from qemu-upstream
+ qemu-xen-upstream-megasas-buildtime.patch
+
+-------------------------------------------------------------------
+Wed Apr 2 08:47:27 MDT 2014 - carnold(a)suse.com
+
+- bnc#871546 - KMPs are not signed in SUSE:SLE-12:GA?
+ xen.spec
+
+-------------------------------------------------------------------
+Tue Apr 1 08:14:29 MDT 2014 - carnold(a)suse.com
+
+- Upstream patches from Jan
+ 532fff53-x86-fix-determination-of-bit-count-for-struct-domain-allocations.patch
+ 5331917d-x86-enforce-preemption-in-HVM_set_mem_access-p2m_set_mem_access.patch
+- Drop xsa89.patch for upstream version (see bnc#867910, 5331917d-x86-enforce...)
+
+-------------------------------------------------------------------
+Fri Mar 28 11:00:07 MDT 2014 - carnold(a)suse.com
+
+- bnc#863821 - Xen unable to boot paravirtualized VMs installed
+ with btrfs. Add 'Requires: grub2-x86_64-xen' to xen-tools.
+- Restore soft links for qemu-system-i386 and qemu-dm
+- Cleanup inconsistency in which version of qemu-system-i386 is
+ being used (Xen vs qemu-x86). Use only Xen's version.
+ xen.spec
+
+-------------------------------------------------------------------
+Wed Mar 27 14:18:06 MDT 2014 - carnold(a)suse.com
+
+- Add conditionals for SLE12 when defining xend and max_cpus
+ xen.spec
+
+-------------------------------------------------------------------
+Wed Mar 19 14:18:06 MDT 2014 - carnold(a)suse.com
+
+- Upstream patches from Jan
+ 5321b20b-common-make-hypercall-preemption-checks-consistent.patch
+ 5321b257-x86-make-hypercall-preemption-checks-consistent.patch
+ 53271880-VT-d-fix-RMRR-handling.patch
+ 5327190a-x86-Intel-work-around-Xeon-7400-series-erratum-AAI65.patch
+- Dropped the following as now part of 5321b257
+ 5310bac3-mm-ensure-useful-progress-in-decrease_reservation.patch
+
+-------------------------------------------------------------------
@@ -3,0 +74,3 @@
+- bnc#867910 - VUL-0: EMBARGOED: xen: XSA-89: HVMOP_set_mem_access
+ is not preemptible
+ xsa89.patch
Old:
----
5310bac3-mm-ensure-useful-progress-in-decrease_reservation.patch
New:
----
53206661-pygrub-support-linux16-and-initrd16.patch
5321b20b-common-make-hypercall-preemption-checks-consistent.patch
5321b257-x86-make-hypercall-preemption-checks-consistent.patch
53271880-VT-d-fix-RMRR-handling.patch
5327190a-x86-Intel-work-around-Xeon-7400-series-erratum-AAI65.patch
53299d8f-xenconsole-reset-tty-on-failure.patch
53299d8f-xenconsole-tolerate-tty-errors.patch
532fff53-x86-fix-determination-of-bit-count-for-struct-domain-allocations.patch
5331917d-x86-enforce-preemption-in-HVM_set_mem_access-p2m_set_mem_access.patch
53356c1e-x86-HVM-correct-CPUID-leaf-80000008-handling.patch
533ad1ee-VMX-fix-PAT-value-seen-by-guest.patch
533d413b-x86-mm-fix-checks-against-max_mapped_pfn.patch
qemu-xen-upstream-megasas-buildtime.patch
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ xen.spec ++++++
--- /var/tmp/diff_new_pack.tVefOJ/_old 2014-04-16 07:44:11.000000000 +0200
+++ /var/tmp/diff_new_pack.tVefOJ/_new 2014-04-16 07:44:11.000000000 +0200
@@ -41,10 +41,18 @@
%define with_qemu_traditional 1
%define with_xend_tools_pkg 0
%if %suse_version > 1230
+%if %suse_version == 1315
+%define with_xend_tools_pkg 0
+%else
%define with_xend_tools_pkg 1
%endif
+%endif
%if %suse_version > 1230
+%if %suse_version == 1315
+%define with_xend 0
+%else
%define with_xend 1
+%endif
%else
%define with_xend 1
%endif
@@ -56,8 +64,12 @@
#
%define max_cpus 4
%ifarch x86_64
+%if %suse_version == 1315
+%define max_cpus 1024
+%else
%define max_cpus 512
%endif
+%endif
#
%define xen_install_suffix %{nil}
%ifarch x86_64
@@ -84,19 +96,19 @@
%ifarch %ix86 x86_64
BuildRequires: dev86
%endif
-BuildRequires: flex
BuildRequires: bison
BuildRequires: fdupes
+BuildRequires: flex
BuildRequires: glib2-devel
BuildRequires: libaio-devel
BuildRequires: libbz2-devel
+BuildRequires: libpixman-1-0-devel
BuildRequires: libuuid-devel
BuildRequires: libxml2-devel
BuildRequires: libyajl-devel
-BuildRequires: libpixman-1-0-devel
%if %{?with_qemu_traditional}0
-BuildRequires: pciutils-devel
BuildRequires: SDL-devel
+BuildRequires: pciutils-devel
%endif
%if %{?with_stubdom}0
%if 0%{?suse_version} < 1230
@@ -134,12 +146,13 @@
BuildRequires: module-init-tools
%if %suse_version >= 1230
BuildRequires: lndir
+BuildRequires: pesign-obs-integration
%else
BuildRequires: xorg-x11-util-devel
%endif
%endif
-Version: 4.4.0_08
+Version: 4.4.0_14
Release: 0
PreReq: %insserv_prereq %fillup_prereq
Summary: Xen Virtualization: Hypervisor (aka VMM aka Microkernel)
@@ -202,15 +215,26 @@
Patch2: 530b2880-Nested-VMX-update-nested-paging-mode-on-vmexit.patch
Patch3: 530b28c5-x86-MSI-don-t-risk-division-by-zero.patch
Patch4: 530c54c3-x86-mce-Reduce-boot-time-logspam.patch
-Patch5: 5310bac3-mm-ensure-useful-progress-in-decrease_reservation.patch
-Patch6: 5315a254-IOMMU-generalize-and-correct-softirq-processing.patch
-Patch7: 5315a3bb-x86-don-t-propagate-acpi_skip_timer_override-do-Dom0.patch
-Patch8: 5315a43a-x86-ACPI-also-print-address-space-for-PM1x-fields.patch
-Patch9: 531d8db1-x86-hvm-refine-the-judgment-on-IDENT_PT-for-EMT.patch
-Patch10: 531d8e09-x86-HVM-fix-memory-type-merging-in-epte_get_entry_emt.patch
-Patch11: 531d8e34-x86-HVM-consolidate-passthrough-handling-in-epte_get_entry_emt.patch
-Patch12: 531d8fd0-kexec-identify-which-cpu-the-kexec-image-is-being-executed-on.patch
-Patch13: 531dc0e2-xmalloc-handle-correctly-page-allocation-when-align-size.patch
+Patch5: 5315a254-IOMMU-generalize-and-correct-softirq-processing.patch
+Patch6: 5315a3bb-x86-don-t-propagate-acpi_skip_timer_override-do-Dom0.patch
+Patch7: 5315a43a-x86-ACPI-also-print-address-space-for-PM1x-fields.patch
+Patch8: 531d8db1-x86-hvm-refine-the-judgment-on-IDENT_PT-for-EMT.patch
+Patch9: 531d8e09-x86-HVM-fix-memory-type-merging-in-epte_get_entry_emt.patch
+Patch10: 531d8e34-x86-HVM-consolidate-passthrough-handling-in-epte_get_entry_emt.patch
+Patch11: 531d8fd0-kexec-identify-which-cpu-the-kexec-image-is-being-executed-on.patch
+Patch12: 531dc0e2-xmalloc-handle-correctly-page-allocation-when-align-size.patch
+Patch13: 53206661-pygrub-support-linux16-and-initrd16.patch
+Patch14: 5321b20b-common-make-hypercall-preemption-checks-consistent.patch
+Patch15: 5321b257-x86-make-hypercall-preemption-checks-consistent.patch
+Patch16: 53271880-VT-d-fix-RMRR-handling.patch
+Patch17: 5327190a-x86-Intel-work-around-Xeon-7400-series-erratum-AAI65.patch
+Patch18: 53299d8f-xenconsole-reset-tty-on-failure.patch
+Patch19: 53299d8f-xenconsole-tolerate-tty-errors.patch
+Patch20: 532fff53-x86-fix-determination-of-bit-count-for-struct-domain-allocations.patch
+Patch21: 5331917d-x86-enforce-preemption-in-HVM_set_mem_access-p2m_set_mem_access.patch
+Patch22: 53356c1e-x86-HVM-correct-CPUID-leaf-80000008-handling.patch
+Patch23: 533ad1ee-VMX-fix-PAT-value-seen-by-guest.patch
+Patch24: 533d413b-x86-mm-fix-checks-against-max_mapped_pfn.patch
# Upstream qemu
Patch250: VNC-Support-for-ExtendedKeyEvent-client-message.patch
Patch251: 0001-net-move-the-tap-buffer-into-TAPState.patch
@@ -277,6 +301,7 @@
Patch386: libxc-pass-errno-to-callers-of-xc_domain_save.patch
Patch387: libxl.set-migration-constraints-from-cmdline.patch
Patch388: libxl.honor-more-top-level-vfb-options.patch
+Patch389: qemu-xen-upstream-megasas-buildtime.patch
# Xend
Patch400: xend-set-migration-constraints-from-cmdline.patch
Patch402: xen.migrate.tools-xend_move_assert_to_exception_block.patch
@@ -425,6 +450,7 @@
Summary: Xen Virtualization: Control tools for domain 0
Group: System/Kernel
Requires: bridge-utils
+Requires: grub2-x86_64-xen
Requires: multipath-tools
Requires: python
Requires: python-curses
@@ -529,6 +555,9 @@
Summary: Xen para-virtual device drivers for fully virtualized guests
Group: System/Kernel
Conflicts: xen
+%if %suse_version >= 1230
+Requires: pesign-obs-integration
+%endif
%description KMP
Xen is a virtual machine monitor for x86 that supports execution of
@@ -577,6 +606,17 @@
%patch11 -p1
%patch12 -p1
%patch13 -p1
+%patch14 -p1
+%patch15 -p1
+%patch16 -p1
+%patch17 -p1
+%patch18 -p1
+%patch19 -p1
+%patch20 -p1
+%patch21 -p1
+%patch22 -p1
+%patch23 -p1
+%patch24 -p1
# Upstream qemu patches
%patch250 -p1
%patch251 -p1
@@ -642,6 +682,7 @@
%patch386 -p1
%patch387 -p1
%patch388 -p1
+%patch389 -p1
# Xend
%patch400 -p1
%patch402 -p1
@@ -786,6 +827,7 @@
export EXTRA_CFLAGS_QEMU_XEN="$RPM_OPT_FLAGS"
# EFI
%if %{?with_dom0_support}0
+export BRP_PESIGN_FILES="*.ko *.efi /lib/firmware"
make -C xen install \
%if %{?with_gcc47}0
CC=gcc-4.7 \
@@ -832,6 +874,8 @@
echo %{_libdir}/efi >> xen.files.txt
fi
%ifarch x86_64
+ln -s /usr/lib/xen/bin/qemu-dm $RPM_BUILD_ROOT/%{_libdir}/xen/bin/qemu-dm
+ln -s /usr/lib/xen/bin/qemu-system-i386 $RPM_BUILD_ROOT/%{_libdir}/xen/bin/qemu-system-i386
cp -avL xenalyze.hg/dump-raw $RPM_BUILD_ROOT/%{_bindir}/xenalyze.dump-raw
cp -avL xenalyze.hg/xenalyze $RPM_BUILD_ROOT/%{_bindir}
%endif
@@ -1340,14 +1384,6 @@
%{fillup_and_insserv -y -n xendomains xendomains}
%{fillup_only -n pciback}
%endif
-if [ -f /usr/bin/qemu-system-i386 ]; then
- rm -f /usr/lib/xen/bin/qemu-system-i386
- ln -s /usr/bin/qemu-system-i386 /usr/lib/xen/bin/qemu-system-i386
-fi
-if [ -f /usr/bin/qemu-system-x86_64 ]; then
- rm -f /usr/lib/xen/bin/qemu-system-x86_64
- ln -s /usr/bin/qemu-system-x86_64 /usr/lib/xen/bin/qemu-system-x86_64
-fi
if [ -f /usr/bin/qemu-img ]; then
if [ -f /usr/bin/qemu-img-xen ]; then
rm /usr/bin/qemu-img-xen
++++++ 531d8e34-x86-HVM-consolidate-passthrough-handling-in-epte_get_entry_emt.patch ++++++
--- /var/tmp/diff_new_pack.tVefOJ/_old 2014-04-16 07:44:11.000000000 +0200
+++ /var/tmp/diff_new_pack.tVefOJ/_new 2014-04-16 07:44:11.000000000 +0200
@@ -19,9 +19,21 @@
Reviewed-by: "Xu, Dongxiao" <dongxiao.xu(a)intel.com>
Acked-by: Keir Fraser <keir(a)xen.org>
+# Commit 1f8b57779785bf9f55c16312bb1ec679929c314b
+# Date 2014-03-28 13:43:25 +0100
+# Author Jan Beulich <jbeulich(a)suse.com>
+# Committer Jan Beulich <jbeulich(a)suse.com>
+x86/EPT: relax treatment of APIC MFN
+
+There's no point in this being mapped UC by the guest due to using a
+respective PAT index - set the ignore-PAT flag to true.
+
+Signed-off-by: Jan Beulich <jbeulich(a)suse.com>
+Reviewed-by: Tim Deegan <tim(a)xen.org>
+
--- a/xen/arch/x86/hvm/mtrr.c
+++ b/xen/arch/x86/hvm/mtrr.c
-@@ -698,14 +698,20 @@ uint8_t epte_get_entry_emt(struct domain
+@@ -698,14 +698,24 @@ uint8_t epte_get_entry_emt(struct domain
if ( hvm_get_mem_pinned_cacheattr(d, gfn, &type) )
return type;
@@ -39,8 +51,12 @@
if ( direct_mmio )
- return MTRR_TYPE_UNCACHABLE;
-+ return mfn_x(mfn) != d->arch.hvm_domain.vmx.apic_access_mfn
-+ ? MTRR_TYPE_UNCACHABLE : MTRR_TYPE_WRBACK;
++ {
++ if ( mfn_x(mfn) != d->arch.hvm_domain.vmx.apic_access_mfn )
++ return MTRR_TYPE_UNCACHABLE;
++ *ipat = 1;
++ return MTRR_TYPE_WRBACK;
++ }
if ( iommu_snoop )
{
++++++ 53206661-pygrub-support-linux16-and-initrd16.patch ++++++
Subject: xen/pygrub: grub2/grub.cfg from RHEL 7 has new commands in menuentry
From: Joby Poriyath joby.poriyath(a)citrix.com Tue Feb 4 18:10:35 2014 +0000
Date: Wed Mar 12 13:51:29 2014 +0000:
Git: dd03048708af072374963d6d0721cc6d4c5f52cf
menuentry in grub2/grub.cfg uses linux16 and initrd16 commands
instead of linux and initrd. Due to this RHEL 7 (beta) guest failed to
boot after the installation.
In addition to this, RHEL 7 menu entries have two different single-quote
delimited strings on the same line, and the greedy grouping for menuentry
parsing gets both strings, and the options inbetween.
Signed-off-by: Joby Poriyath <joby.poriyath(a)citrix.com>
Reviewed-by: Andrew Cooper <andrew.cooper3(a)citrix.com>
Acked-by: Ian Campbell <ian.campbell(a)citrix.com>
Cc: george.dunlap(a)citrix.com
diff --git a/tools/pygrub/examples/rhel-7-beta.grub2 b/tools/pygrub/examples/rhel-7-beta.grub2
new file mode 100644
index 0000000..88f0f99
--- /dev/null
+++ b/tools/pygrub/examples/rhel-7-beta.grub2
@@ -0,0 +1,118 @@
+#
+# DO NOT EDIT THIS FILE
+#
+# It is automatically generated by grub2-mkconfig using templates
+# from /etc/grub.d and settings from /etc/default/grub
+#
+
+### BEGIN /etc/grub.d/00_header ###
+set pager=1
+
+if [ -s $prefix/grubenv ]; then
+ load_env
+fi
+if [ "${next_entry}" ] ; then
+ set default="${next_entry}"
+ set next_entry=
+ save_env next_entry
+ set boot_once=true
+else
+ set default="${saved_entry}"
+fi
+
+if [ x"${feature_menuentry_id}" = xy ]; then
+ menuentry_id_option="--id"
+else
+ menuentry_id_option=""
+fi
+
+export menuentry_id_option
+
+if [ "${prev_saved_entry}" ]; then
+ set saved_entry="${prev_saved_entry}"
+ save_env saved_entry
+ set prev_saved_entry=
+ save_env prev_saved_entry
+ set boot_once=true
+fi
+
+function savedefault {
+ if [ -z "${boot_once}" ]; then
+ saved_entry="${chosen}"
+ save_env saved_entry
+ fi
+}
+
+function load_video {
+ if [ x$feature_all_video_module = xy ]; then
+ insmod all_video
+ else
+ insmod efi_gop
+ insmod efi_uga
+ insmod ieee1275_fb
+ insmod vbe
+ insmod vga
+ insmod video_bochs
+ insmod video_cirrus
+ fi
+}
+
+terminal_output console
+set timeout=5
+### END /etc/grub.d/00_header ###
+
+### BEGIN /etc/grub.d/10_linux ###
+menuentry 'Red Hat Enterprise Linux Everything, with Linux 3.10.0-54.0.1.el7.x86_64' --class red --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-3.10.0-54.0.1.el7.x86_64-advanced-d23b8b49-4cfe-4900-8ef1-ec80bc633163' {
+ load_video
+ set gfxpayload=keep
+ insmod gzio
+ insmod part_msdos
+ insmod xfs
+ set root='hd0,msdos1'
+ if [ x$feature_platform_search_hint = xy ]; then
+ search --no-floppy --fs-uuid --set=root --hint='hd0,msdos1' 89ffef78-82b3-457c-bc57-42cccc373851
+ else
+ search --no-floppy --fs-uuid --set=root 89ffef78-82b3-457c-bc57-42cccc373851
+ fi
+ linux16 /vmlinuz-3.10.0-54.0.1.el7.x86_64 root=/dev/mapper/rhel-root ro rd.lvm.lv=rhel/swap vconsole.keymap=uk crashkernel=auto rd.lvm.lv=rhel/root vconsole.font=latarcyrheb-sun16 LANG=en_GB.UTF-8
+ initrd16 /initramfs-3.10.0-54.0.1.el7.x86_64.img
+}
+menuentry 'Red Hat Enterprise Linux Everything, with Linux 0-rescue-af34f0b8cf364cdbbe6d093f8228a37f' --class red --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-0-rescue-af34f0b8cf364cdbbe6d093f8228a37f-advanced-d23b8b49-4cfe-4900-8ef1-ec80bc633163' {
+ load_video
+ insmod gzio
+ insmod part_msdos
+ insmod xfs
+ set root='hd0,msdos1'
+ if [ x$feature_platform_search_hint = xy ]; then
+ search --no-floppy --fs-uuid --set=root --hint='hd0,msdos1' 89ffef78-82b3-457c-bc57-42cccc373851
+ else
+ search --no-floppy --fs-uuid --set=root 89ffef78-82b3-457c-bc57-42cccc373851
+ fi
+ linux16 /vmlinuz-0-rescue-af34f0b8cf364cdbbe6d093f8228a37f root=/dev/mapper/rhel-root ro rd.lvm.lv=rhel/swap vconsole.keymap=uk crashkernel=auto rd.lvm.lv=rhel/root vconsole.font=latarcyrheb-sun16
+ initrd16 /initramfs-0-rescue-af34f0b8cf364cdbbe6d093f8228a37f.img
+}
+
+### END /etc/grub.d/10_linux ###
+
+### BEGIN /etc/grub.d/20_linux_xen ###
+### END /etc/grub.d/20_linux_xen ###
+
+### BEGIN /etc/grub.d/20_ppc_terminfo ###
+### END /etc/grub.d/20_ppc_terminfo ###
+
+### BEGIN /etc/grub.d/30_os-prober ###
+### END /etc/grub.d/30_os-prober ###
+
+### BEGIN /etc/grub.d/40_custom ###
+# This file provides an easy way to add custom menu entries. Simply type the
+# menu entries you want to add after this comment. Be careful not to change
+# the 'exec tail' line above.
+### END /etc/grub.d/40_custom ###
+
+### BEGIN /etc/grub.d/41_custom ###
+if [ -f ${config_directory}/custom.cfg ]; then
+ source ${config_directory}/custom.cfg
+elif [ -z "${config_directory}" -a -f $prefix/custom.cfg ]; then
+ source $prefix/custom.cfg;
+fi
+### END /etc/grub.d/41_custom ###
diff --git a/tools/pygrub/src/GrubConf.py b/tools/pygrub/src/GrubConf.py
index cb853c9..974cded 100644
--- a/tools/pygrub/src/GrubConf.py
+++ b/tools/pygrub/src/GrubConf.py
@@ -348,7 +348,9 @@ class Grub2Image(_GrubImage):
commands = {'set:root': 'root',
'linux': 'kernel',
+ 'linux16': 'kernel',
'initrd': 'initrd',
+ 'initrd16': 'initrd',
'echo': None,
'insmod': None,
'search': None}
@@ -394,7 +396,7 @@ class Grub2ConfigFile(_GrubConfigFile):
continue
# new image
- title_match = re.match('^menuentry ["\'](.*)["\'] (.*){', l)
+ title_match = re.match('^menuentry ["\'](.*?)["\'] (.*){', l)
if title_match:
if img is not None:
raise RuntimeError, "syntax error: cannot nest menuentry (%d %s)" % (len(img),img)
++++++ 5321b20b-common-make-hypercall-preemption-checks-consistent.patch ++++++
# Commit 8c0eed2cc8d8a2ccccdffe4c386b625b672dc12a
# Date 2014-03-13 14:26:35 +0100
# Author Jan Beulich <jbeulich(a)suse.com>
# Committer Jan Beulich <jbeulich(a)suse.com>
common: make hypercall preemption checks consistent
- never preempt on the first iteration (ensure forward progress)
- do cheap checks first
Signed-off-by: Jan Beulich <jbeulich(a)suse.com>
Reviewed-by: Andrew Cooper <andrew.cooper3(a)citrix.com>
Reviewed-by: Tim Deegan <tim(a)xen.org>
Acked-by: Keir Fraser <keir(a)xen.org>
--- a/xen/common/memory.c
+++ b/xen/common/memory.c
@@ -63,7 +63,7 @@ static void increase_reservation(struct
for ( i = a->nr_done; i < a->nr_extents; i++ )
{
- if ( hypercall_preempt_check() )
+ if ( i != a->nr_done && hypercall_preempt_check() )
{
a->preempted = 1;
goto out;
@@ -109,7 +109,7 @@ static void populate_physmap(struct memo
for ( i = a->nr_done; i < a->nr_extents; i++ )
{
- if ( hypercall_preempt_check() )
+ if ( i != a->nr_done && hypercall_preempt_check() )
{
a->preempted = 1;
goto out;
@@ -268,7 +268,7 @@ static void decrease_reservation(struct
for ( i = a->nr_done; i < a->nr_extents; i++ )
{
- if ( hypercall_preempt_check() )
+ if ( i != a->nr_done && hypercall_preempt_check() )
{
a->preempted = 1;
goto out;
@@ -398,7 +398,8 @@ static long memory_exchange(XEN_GUEST_HA
i < (exch.in.nr_extents >> in_chunk_order);
i++ )
{
- if ( hypercall_preempt_check() )
+ if ( i != (exch.nr_exchanged >> in_chunk_order) &&
+ hypercall_preempt_check() )
{
exch.nr_exchanged = i << in_chunk_order;
rcu_unlock_domain(d);
--- a/xen/common/multicall.c
+++ b/xen/common/multicall.c
@@ -52,7 +52,7 @@ do_multicall(
for ( i = 0; !rc && i < nr_calls; i++ )
{
- if ( hypercall_preempt_check() )
+ if ( i && hypercall_preempt_check() )
goto preempted;
if ( unlikely(__copy_from_guest(&mcs->call, call_list, 1)) )
--- a/xen/drivers/char/console.c
+++ b/xen/drivers/char/console.c
@@ -375,12 +375,12 @@ static DECLARE_SOFTIRQ_TASKLET(notify_do
static long guest_console_write(XEN_GUEST_HANDLE_PARAM(char) buffer, int count)
{
char kbuf[128];
- int kcount;
+ int kcount = 0;
struct domain *cd = current->domain;
while ( count > 0 )
{
- if ( hypercall_preempt_check() )
+ if ( kcount && hypercall_preempt_check() )
return hypercall_create_continuation(
__HYPERVISOR_console_io, "iih",
CONSOLEIO_write, count, buffer);
++++++ 5321b257-x86-make-hypercall-preemption-checks-consistent.patch ++++++
# Commit fd7bfce0395ace266159760e35dc49f7af3b90ce
# Date 2014-03-13 14:27:51 +0100
# Author Jan Beulich <jbeulich(a)suse.com>
# Committer Jan Beulich <jbeulich(a)suse.com>
x86: make hypercall preemption checks consistent
- never preempt on the first iteration (ensure forward progress)
- never preempt on the last iteration (pointless/wasteful)
Signed-off-by: Jan Beulich <jbeulich(a)suse.com>
Reviewed-by: Andrew Cooper <andrew.cooper3(a)citrix.com>
Reviewed-by: Tim Deegan <tim(a)xen.org>
Acked-by: Keir Fraser <keir(a)xen.org>
--- a/xen/arch/x86/mm.c
+++ b/xen/arch/x86/mm.c
@@ -2934,7 +2934,7 @@ long do_mmuext_op(
for ( i = 0; i < count; i++ )
{
- if ( curr->arch.old_guest_table || hypercall_preempt_check() )
+ if ( curr->arch.old_guest_table || (i && hypercall_preempt_check()) )
{
rc = -EAGAIN;
break;
@@ -3481,7 +3481,7 @@ long do_mmu_update(
for ( i = 0; i < count; i++ )
{
- if ( curr->arch.old_guest_table || hypercall_preempt_check() )
+ if ( curr->arch.old_guest_table || (i && hypercall_preempt_check()) )
{
rc = -EAGAIN;
break;
--- a/xen/arch/x86/mm/hap/hap.c
+++ b/xen/arch/x86/mm/hap/hap.c
@@ -326,7 +326,7 @@ hap_set_allocation(struct domain *d, uns
else
pages -= d->arch.paging.hap.p2m_pages;
- while ( d->arch.paging.hap.total_pages != pages )
+ for ( ; ; )
{
if ( d->arch.paging.hap.total_pages < pages )
{
@@ -355,6 +355,8 @@ hap_set_allocation(struct domain *d, uns
d->arch.paging.hap.total_pages--;
free_domheap_page(pg);
}
+ else
+ break;
/* Check to see if we need to yield and try again */
if ( preempted && hypercall_preempt_check() )
--- a/xen/arch/x86/mm/p2m-pod.c
+++ b/xen/arch/x86/mm/p2m-pod.c
@@ -242,7 +242,8 @@ p2m_pod_set_cache_target(struct p2m_doma
p2m_pod_cache_add(p2m, page, order);
- if ( hypercall_preempt_check() && preemptible )
+ if ( preemptible && pod_target != p2m->pod.count &&
+ hypercall_preempt_check() )
{
ret = -EAGAIN;
goto out;
@@ -286,7 +287,8 @@ p2m_pod_set_cache_target(struct p2m_doma
put_page(page+i);
- if ( hypercall_preempt_check() && preemptible )
+ if ( preemptible && pod_target != p2m->pod.count &&
+ hypercall_preempt_check() )
{
ret = -EAGAIN;
goto out;
--- a/xen/arch/x86/mm/shadow/common.c
+++ b/xen/arch/x86/mm/shadow/common.c
@@ -1674,7 +1674,7 @@ static unsigned int sh_set_allocation(st
SHADOW_PRINTK("current %i target %i\n",
d->arch.paging.shadow.total_pages, pages);
- while ( d->arch.paging.shadow.total_pages != pages )
+ for ( ; ; )
{
if ( d->arch.paging.shadow.total_pages < pages )
{
@@ -1709,6 +1709,8 @@ static unsigned int sh_set_allocation(st
d->arch.paging.shadow.total_pages--;
free_domheap_page(sp);
}
+ else
+ break;
/* Check to see if we need to yield and try again */
if ( preempted && hypercall_preempt_check() )
--- a/xen/arch/x86/traps.c
+++ b/xen/arch/x86/traps.c
@@ -3595,13 +3595,6 @@ long do_set_trap_table(XEN_GUEST_HANDLE_
for ( ; ; )
{
- if ( hypercall_preempt_check() )
- {
- rc = hypercall_create_continuation(
- __HYPERVISOR_set_trap_table, "h", traps);
- break;
- }
-
if ( copy_from_guest(&cur, traps, 1) )
{
rc = -EFAULT;
@@ -3622,6 +3615,13 @@ long do_set_trap_table(XEN_GUEST_HANDLE_
init_int80_direct_trap(curr);
guest_handle_add_offset(traps, 1);
+
+ if ( hypercall_preempt_check() )
+ {
+ rc = hypercall_create_continuation(
+ __HYPERVISOR_set_trap_table, "h", traps);
+ break;
+ }
}
return rc;
--- a/xen/arch/x86/x86_64/compat/traps.c
+++ b/xen/arch/x86/x86_64/compat/traps.c
@@ -329,13 +329,6 @@ int compat_set_trap_table(XEN_GUEST_HAND
for ( ; ; )
{
- if ( hypercall_preempt_check() )
- {
- rc = hypercall_create_continuation(
- __HYPERVISOR_set_trap_table, "h", traps);
- break;
- }
-
if ( copy_from_guest(&cur, traps, 1) )
{
rc = -EFAULT;
@@ -353,6 +346,13 @@ int compat_set_trap_table(XEN_GUEST_HAND
init_int80_direct_trap(current);
guest_handle_add_offset(traps, 1);
+
+ if ( hypercall_preempt_check() )
+ {
+ rc = hypercall_create_continuation(
+ __HYPERVISOR_set_trap_table, "h", traps);
+ break;
+ }
}
return rc;
++++++ 53271880-VT-d-fix-RMRR-handling.patch ++++++
# Commit dd527061770789d8152b1dea68056987b202d87a
# Date 2014-03-17 16:45:04 +0100
# Author Jan Beulich <jbeulich(a)suse.com>
# Committer Jan Beulich <jbeulich(a)suse.com>
VT-d: fix RMRR handling
Removing mapped RMRR tracking structures in dma_pte_clear_one() is
wrong for two reasons: First, these regions may cover more than a
single page. And second, multiple devices (and hence multiple devices
assigned to any particular guest) may share a single RMRR (whether
assigning such devices to distinct guests is a safe thing to do is
another question).
Therefore move the removal of the tracking structures into the
counterpart function to the one doing the insertion -
intel_iommu_remove_device(), and add a reference count to the tracking
structure.
Further, for the handling of the mappings of the respective memory
regions to be correct, RMRRs must not overlap. Add a respective check
to acpi_parse_one_rmrr().
And finally, with all of this being VT-d specific, move the cleanup
of the list as well as the structure type definition where it belongs -
in VT-d specific rather than IOMMU generic code.
Note that this doesn't address yet another issue associated with RMRR
handling: The purpose of the RMRRs as well as the way the respective
IOMMU page table mappings get inserted both suggest that these regions
would need to be marked E820_RESERVED in all (HVM?) guests' memory
maps, yet nothing like this is being done in hvmloader. (For PV guests
this would also seem to be necessary, but may conflict with PV guests
possibly assuming there to be just a single E820 entry representing all
of its RAM.)
Signed-off-by: Jan Beulich <jbeulich(a)suse.com>
Acked-by: Xiantao Zhang <xiantao.zhang(a)intel.com>
--- a/xen/drivers/passthrough/iommu.c
+++ b/xen/drivers/passthrough/iommu.c
@@ -412,9 +412,8 @@ static int iommu_populate_page_table(str
void iommu_domain_destroy(struct domain *d)
{
struct hvm_iommu *hd = domain_hvm_iommu(d);
- struct list_head *ioport_list, *rmrr_list, *tmp;
+ struct list_head *ioport_list, *tmp;
struct g2m_ioport *ioport;
- struct mapped_rmrr *mrmrr;
if ( !iommu_enabled || !hd->platform_ops )
return;
@@ -428,13 +427,6 @@ void iommu_domain_destroy(struct domain
list_del(&ioport->list);
xfree(ioport);
}
-
- list_for_each_safe ( rmrr_list, tmp, &hd->mapped_rmrrs )
- {
- mrmrr = list_entry(rmrr_list, struct mapped_rmrr, list);
- list_del(&mrmrr->list);
- xfree(mrmrr);
- }
}
int iommu_map_page(struct domain *d, unsigned long gfn, unsigned long mfn,
--- a/xen/drivers/passthrough/vtd/dmar.c
+++ b/xen/drivers/passthrough/vtd/dmar.c
@@ -580,6 +580,16 @@ acpi_parse_one_rmrr(struct acpi_dmar_hea
if ( (ret = acpi_dmar_check_length(header, sizeof(*rmrr))) != 0 )
return ret;
+ list_for_each_entry(rmrru, &acpi_rmrr_units, list)
+ if ( base_addr <= rmrru->end_address && rmrru->base_address <= end_addr )
+ {
+ printk(XENLOG_ERR VTDPREFIX
+ "Overlapping RMRRs [%"PRIx64",%"PRIx64"] and [%"PRIx64",%"PRIx64"]\n",
+ rmrru->base_address, rmrru->end_address,
+ base_addr, end_addr);
+ return -EEXIST;
+ }
+
/* This check is here simply to detect when RMRR values are
* not properly represented in the system memory map and
* inform the user
--- a/xen/drivers/passthrough/vtd/iommu.c
+++ b/xen/drivers/passthrough/vtd/iommu.c
@@ -42,6 +42,12 @@
#include "vtd.h"
#include "../ats.h"
+struct mapped_rmrr {
+ struct list_head list;
+ u64 base, end;
+ unsigned int count;
+};
+
/* Possible unfiltered LAPIC/MSI messages from untrusted sources? */
bool_t __read_mostly untrusted_msi;
@@ -619,7 +625,6 @@ static void dma_pte_clear_one(struct dom
struct hvm_iommu *hd = domain_hvm_iommu(domain);
struct dma_pte *page = NULL, *pte = NULL;
u64 pg_maddr;
- struct mapped_rmrr *mrmrr;
spin_lock(&hd->mapping_lock);
/* get last level pte */
@@ -648,21 +653,6 @@ static void dma_pte_clear_one(struct dom
__intel_iommu_iotlb_flush(domain, addr >> PAGE_SHIFT_4K, 1, 1);
unmap_vtd_domain_page(page);
-
- /* if the cleared address is between mapped RMRR region,
- * remove the mapped RMRR
- */
- spin_lock(&hd->mapping_lock);
- list_for_each_entry ( mrmrr, &hd->mapped_rmrrs, list )
- {
- if ( addr >= mrmrr->base && addr <= mrmrr->end )
- {
- list_del(&mrmrr->list);
- xfree(mrmrr);
- break;
- }
- }
- spin_unlock(&hd->mapping_lock);
}
static void iommu_free_pagetable(u64 pt_maddr, int level)
@@ -1700,10 +1690,17 @@ static int reassign_device_ownership(
void iommu_domain_teardown(struct domain *d)
{
struct hvm_iommu *hd = domain_hvm_iommu(d);
+ struct mapped_rmrr *mrmrr, *tmp;
if ( list_empty(&acpi_drhd_units) )
return;
+ list_for_each_entry_safe ( mrmrr, tmp, &hd->mapped_rmrrs, list )
+ {
+ list_del(&mrmrr->list);
+ xfree(mrmrr);
+ }
+
if ( iommu_use_hap_pt(d) )
return;
@@ -1848,14 +1845,17 @@ static int rmrr_identity_mapping(struct
ASSERT(rmrr->base_address < rmrr->end_address);
/*
- * No need to acquire hd->mapping_lock, as the only theoretical race is
- * with the insertion below (impossible due to holding pcidevs_lock).
+ * No need to acquire hd->mapping_lock: Both insertion and removal
+ * get done while holding pcidevs_lock.
*/
list_for_each_entry( mrmrr, &hd->mapped_rmrrs, list )
{
if ( mrmrr->base == rmrr->base_address &&
mrmrr->end == rmrr->end_address )
+ {
+ ++mrmrr->count;
return 0;
+ }
}
base = rmrr->base_address & PAGE_MASK_4K;
@@ -1876,9 +1876,8 @@ static int rmrr_identity_mapping(struct
return -ENOMEM;
mrmrr->base = rmrr->base_address;
mrmrr->end = rmrr->end_address;
- spin_lock(&hd->mapping_lock);
+ mrmrr->count = 1;
list_add_tail(&mrmrr->list, &hd->mapped_rmrrs);
- spin_unlock(&hd->mapping_lock);
return 0;
}
@@ -1940,17 +1939,52 @@ static int intel_iommu_remove_device(u8
if ( !pdev->domain )
return -EINVAL;
- /* If the device belongs to dom0, and it has RMRR, don't remove it
- * from dom0, because BIOS may use RMRR at booting time.
- */
- if ( pdev->domain->domain_id == 0 )
+ for_each_rmrr_device ( rmrr, bdf, i )
{
- for_each_rmrr_device ( rmrr, bdf, i )
+ struct hvm_iommu *hd;
+ struct mapped_rmrr *mrmrr, *tmp;
+
+ if ( rmrr->segment != pdev->seg ||
+ PCI_BUS(bdf) != pdev->bus ||
+ PCI_DEVFN2(bdf) != devfn )
+ continue;
+
+ /*
+ * If the device belongs to dom0, and it has RMRR, don't remove
+ * it from dom0, because BIOS may use RMRR at booting time.
+ */
+ if ( is_hardware_domain(pdev->domain) )
+ return 0;
+
+ hd = domain_hvm_iommu(pdev->domain);
+
+ /*
+ * No need to acquire hd->mapping_lock: Both insertion and removal
+ * get done while holding pcidevs_lock.
+ */
+ ASSERT(spin_is_locked(&pcidevs_lock));
+ list_for_each_entry_safe ( mrmrr, tmp, &hd->mapped_rmrrs, list )
{
- if ( rmrr->segment == pdev->seg &&
- PCI_BUS(bdf) == pdev->bus &&
- PCI_DEVFN2(bdf) == devfn )
- return 0;
+ unsigned long base_pfn, end_pfn;
+
+ if ( rmrr->base_address != mrmrr->base ||
+ rmrr->end_address != mrmrr->end )
+ continue;
+
+ if ( --mrmrr->count )
+ break;
+
+ base_pfn = (mrmrr->base & PAGE_MASK_4K) >> PAGE_SHIFT_4K;
+ end_pfn = PAGE_ALIGN_4K(mrmrr->end) >> PAGE_SHIFT_4K;
+ while ( base_pfn < end_pfn )
+ {
+ if ( intel_iommu_unmap_page(pdev->domain, base_pfn) )
+ return -ENXIO;
+ base_pfn++;
+ }
+
+ list_del(&mrmrr->list);
+ xfree(mrmrr);
}
}
--- a/xen/include/xen/hvm/iommu.h
+++ b/xen/include/xen/hvm/iommu.h
@@ -29,12 +29,6 @@ struct g2m_ioport {
unsigned int np;
};
-struct mapped_rmrr {
- struct list_head list;
- u64 base;
- u64 end;
-};
-
struct hvm_iommu {
u64 pgd_maddr; /* io page directory machine address */
spinlock_t mapping_lock; /* io page table lock */
++++++ 5327190a-x86-Intel-work-around-Xeon-7400-series-erratum-AAI65.patch ++++++
# Commit 96d1b237ae9b2f2718bb1c59820701f17d3d86e0
# Date 2014-03-17 16:47:22 +0100
# Author Jan Beulich <jbeulich(a)suse.com>
# Committer Jan Beulich <jbeulich(a)suse.com>
x86/Intel: work around Xeon 7400 series erratum AAI65
Linux commit 40e2d7f9b5dae048789c64672bf3027fbb663ffa ("x86 idle:
Repair large-server 50-watt idle-power regression") tells us that this
applies not just to the named Xeon 7400 series, but also NHM-EX and
WSM-EX; sadly Intel's documentation is so badly searchable that I
wasn't able to locate the respective errata (and hence can't quote
their numbers here).
Signed-off-by: Jan Beulich <jbeulich(a)suse.com>
Reviewed-by: Andrew Cooper <andrew.cooper3(a)citrix.com>
Acked-by: Kevin Tian <kevin.tian(a)intel.com>
--- a/xen/arch/x86/acpi/cpu_idle.c
+++ b/xen/arch/x86/acpi/cpu_idle.c
@@ -296,6 +296,9 @@ void mwait_idle_with_hints(unsigned int
unsigned int cpu = smp_processor_id();
s_time_t expires = per_cpu(timer_deadline, cpu);
+ if ( boot_cpu_has(X86_FEATURE_CLFLUSH_MONITOR) )
+ clflush((void *)&mwait_wakeup(cpu));
+
__monitor((void *)&mwait_wakeup(cpu), 0, 0);
smp_mb();
--- a/xen/arch/x86/cpu/intel.c
+++ b/xen/arch/x86/cpu/intel.c
@@ -147,6 +147,9 @@ void __devinit early_intel_workaround(st
/*
* P4 Xeon errata 037 workaround.
* Hardware prefetcher may cause stale data to be loaded into the cache.
+ *
+ * Xeon 7400 erratum AAI65 (and further newer Xeons)
+ * MONITOR/MWAIT may have excessive false wakeups
*/
static void __devinit Intel_errata_workarounds(struct cpuinfo_x86 *c)
{
@@ -161,6 +164,10 @@ static void __devinit Intel_errata_worka
wrmsr (MSR_IA32_MISC_ENABLE, lo, hi);
}
}
+
+ if (c->x86 == 6 && cpu_has_clflush &&
+ (c->x86_model == 29 || c->x86_model == 46 || c->x86_model == 47))
+ set_bit(X86_FEATURE_CLFLUSH_MONITOR, c->x86_capability);
}
--- a/xen/include/asm-x86/cpufeature.h
+++ b/xen/include/asm-x86/cpufeature.h
@@ -71,6 +71,7 @@
#define X86_FEATURE_TSC_RELIABLE (3*32+12) /* TSC is known to be reliable */
#define X86_FEATURE_XTOPOLOGY (3*32+13) /* cpu topology enum extensions */
#define X86_FEATURE_CPUID_FAULTING (3*32+14) /* cpuid faulting */
+#define X86_FEATURE_CLFLUSH_MONITOR (3*32+15) /* clflush reqd with monitor */
/* Intel-defined CPU features, CPUID level 0x00000001 (ecx), word 4 */
#define X86_FEATURE_XMM3 (4*32+ 0) /* Streaming SIMD Extensions-3 */
++++++ 53299d8f-xenconsole-reset-tty-on-failure.patch ++++++
Subject: tools/console: reset tty when xenconsole fails
From: Ian Jackson ian.jackson(a)eu.citrix.com Mon Feb 24 15:16:19 2014 +0000
Date: Wed Mar 19 13:37:19 2014 +0000:
Git: 111931f36885874103d65685ab15ea3d25d93da7
If xenconsole (the client program) fails, it calls err. This would
previously neglect to reset the user's terminal to sanity. Use atexit
to do so.
This routinely happens in Xen 4.4 RC5 with pygrub because libxl
writes the value "" to the tty xenstore key when using xenconsole.
After this patch this just results in a harmless error message.
Reported-by: M A Young <m.a.young(a)durham.ac.uk>
Signed-off-by: Ian Jackson <Ian.Jackson(a)eu.citrix.com>
CC: M A Young <m.a.young(a)durham.ac.uk>
CC: Ian Campbell <Ian.Campbell(a)citrix.com>
Acked-by: George Dunlap <george.dunlap(a)eu.citrix.com>
Acked-by: Ian Campbell <ian.campbell(a)citrix.com>
---
v2: Fix whitespace error (reintroduce hard tab)
Fix commit message not to claim ignorance about root cause
Index: xen-4.4.0-testing/tools/console/client/main.c
===================================================================
--- xen-4.4.0-testing.orig/tools/console/client/main.c
+++ xen-4.4.0-testing/tools/console/client/main.c
@@ -258,6 +258,13 @@ typedef enum {
CONSOLE_SERIAL,
} console_type;
+static struct termios stdin_old_attr;
+
+static void restore_term_stdin(void)
+{
+ restore_term(STDIN_FILENO, &stdin_old_attr);
+}
+
int main(int argc, char **argv)
{
struct termios attr;
@@ -384,9 +391,9 @@ int main(int argc, char **argv)
}
init_term(spty, &attr);
- init_term(STDIN_FILENO, &attr);
+ init_term(STDIN_FILENO, &stdin_old_attr);
+ atexit(restore_term_stdin); /* if this fails, oh dear */
console_loop(spty, xs, path);
- restore_term(STDIN_FILENO, &attr);
free(path);
free(dom_path);
++++++ 53299d8f-xenconsole-tolerate-tty-errors.patch ++++++
Subject: tools/console: xenconsole tolerate tty errors
From: Ian Jackson ian.jackson(a)eu.citrix.com Thu Feb 27 17:46:49 2014 +0000
Date: Wed Mar 19 13:37:19 2014 +0000:
Git: 39ba2989b10b6a1852e253b204eb010f8e7026f1
Since 28d386fc4341 (XSA-57), libxl writes an empty value for the
console tty node, with read-only permission for the guest, when
setting up pv console "frontends". (The actual tty value is later set
by xenconsoled.) Writing an empty node is not strictly necessary to
stop the frontend from writing dangerous values here, but it is a good
belt-and-braces approach.
Unfortunately this confuses xenconsole. It reads the empty value, and
tries to open it as the tty. xenconsole then exits.
Fix this by having xenconsole treat an empty value the same way as no
value at all.
Also, make the error opening the tty be nonfatal: we just print a
warning, but do not exit. I think this is helpful in theoretical
situations where xenconsole is racing with libxl and/or xenconsoled.
Signed-off-by: Ian Jackson <Ian.Jackson(a)eu.citrix.com>
Acked-by: Ian Campbell <Ian.Campbell(a)citrix.com>
CC: George Dunlap <george.dunlap(a)eu.citrix.com>
---
v2: Combine two conditions and move the free
Index: xen-4.4.0-testing/tools/console/client/main.c
===================================================================
--- xen-4.4.0-testing.orig/tools/console/client/main.c
+++ xen-4.4.0-testing/tools/console/client/main.c
@@ -115,12 +115,12 @@ static int get_pty_fd(struct xs_handle *
/* We only watch for one thing, so no need to
* disambiguate: just read the pty path */
pty_path = xs_read(xs, XBT_NULL, path, &len);
- if (pty_path != NULL) {
+ if (pty_path != NULL && pty_path[0] != '\0') {
pty_fd = open(pty_path, O_RDWR | O_NOCTTY);
if (pty_fd == -1)
- err(errno, "Could not open tty `%s'", pty_path);
- free(pty_path);
+ warn("Could not open tty `%s'", pty_path);
}
+ free(pty_path);
}
} while (pty_fd == -1 && (now = time(NULL)) < start + seconds);
++++++ 532fff53-x86-fix-determination-of-bit-count-for-struct-domain-allocations.patch ++++++
# Commit b3d2f8b2cba9fce5bc8995612d0d13fcefec7769
# Date 2014-03-24 10:48:03 +0100
# Author Jan Beulich <jbeulich(a)suse.com>
# Committer Jan Beulich <jbeulich(a)suse.com>
x86: fix determination of bit count for struct domain allocations
We can't just add in the hole shift value, as the hole may be at or
above the 44-bit boundary. Instead we need to determine the total bit
count until reaching 32 significant (not squashed out) bits in PFN
representations.
Signed-off-by: Jan Beulich <jbeulich(a)suse.com>
Acked-by: Keir Fraser <keir(a)xen.org>
--- a/xen/arch/x86/domain.c
+++ b/xen/arch/x86/domain.c
@@ -180,6 +180,28 @@ void dump_pageframe_info(struct domain *
spin_unlock(&d->page_alloc_lock);
}
+/*
+ * The hole may be at or above the 44-bit boundary, so we need to determine
+ * the total bit count until reaching 32 significant (not squashed out) bits
+ * in PFN representations.
+ * Note that the way "bits" gets initialized/updated/bounds-checked guarantees
+ * that the function will never return zero, and hence will never be called
+ * more than once (which is important due to it being deliberately placed in
+ * .init.text).
+ */
+static unsigned int __init noinline _domain_struct_bits(void)
+{
+ unsigned int bits = 32 + PAGE_SHIFT;
+ unsigned int sig = hweight32(~pfn_hole_mask);
+ unsigned int mask = pfn_hole_mask >> 32;
+
+ for ( ; bits < BITS_PER_LONG && sig < 32; ++bits, mask >>= 1 )
+ if ( !(mask & 1) )
+ ++sig;
+
+ return bits;
+}
+
struct domain *alloc_domain_struct(void)
{
struct domain *d;
@@ -187,7 +209,10 @@ struct domain *alloc_domain_struct(void)
* We pack the PDX of the domain structure into a 32-bit field within
* the page_info structure. Hence the MEMF_bits() restriction.
*/
- unsigned int bits = 32 + PAGE_SHIFT + pfn_pdx_hole_shift;
+ static unsigned int __read_mostly bits;
+
+ if ( unlikely(!bits) )
+ bits = _domain_struct_bits();
BUILD_BUG_ON(sizeof(*d) > PAGE_SIZE);
d = alloc_xenheap_pages(0, MEMF_bits(bits));
++++++ 5331917d-x86-enforce-preemption-in-HVM_set_mem_access-p2m_set_mem_access.patch ++++++
References: bnc#867910 CVE-2014-2599 XSA-89
# Commit 0fe53c4f279e1a8ef913e71ed000236d21ce96de
# Date 2014-03-25 15:23:57 +0100
# Author Jan Beulich <jbeulich(a)suse.com>
# Committer Jan Beulich <jbeulich(a)suse.com>
x86: enforce preemption in HVM_set_mem_access / p2m_set_mem_access()
Processing up to 4G PFNs may take almost arbitrarily long, so
preemption is needed here.
This is CVE-2014-2599 / XSA-89.
Signed-off-by: Jan Beulich <jbeulich(a)suse.com>
Reviewed-by: Tim Deegan <tim(a)xen.org>
--- a/xen/arch/x86/hvm/hvm.c
+++ b/xen/arch/x86/hvm/hvm.c
@@ -4465,6 +4465,15 @@ long do_hvm_op(unsigned long op, XEN_GUE
goto param_fail5;
rc = p2m_set_mem_access(d, a.first_pfn, a.nr, a.hvmmem_access);
+ if ( rc > 0 )
+ {
+ a.first_pfn += a.nr - rc;
+ a.nr = rc;
+ if ( __copy_to_guest(arg, &a, 1) )
+ rc = -EFAULT;
+ else
+ rc = -EAGAIN;
+ }
param_fail5:
rcu_unlock_domain(d);
--- a/xen/arch/x86/mm/p2m.c
+++ b/xen/arch/x86/mm/p2m.c
@@ -1366,15 +1366,14 @@ void p2m_mem_access_resume(struct domain
/* Set access type for a region of pfns.
* If start_pfn == -1ul, sets the default access type */
-int p2m_set_mem_access(struct domain *d, unsigned long start_pfn,
- uint32_t nr, hvmmem_access_t access)
+long p2m_set_mem_access(struct domain *d, unsigned long pfn, uint32_t nr,
+ hvmmem_access_t access)
{
struct p2m_domain *p2m = p2m_get_hostp2m(d);
- unsigned long pfn;
p2m_access_t a, _a;
p2m_type_t t;
mfn_t mfn;
- int rc = 0;
+ long rc;
/* N.B. _not_ static: initializer depends on p2m->default_access */
p2m_access_t memaccess[] = {
@@ -1397,14 +1396,17 @@ int p2m_set_mem_access(struct domain *d,
a = memaccess[access];
/* If request to set default access */
- if ( start_pfn == ~0ull )
+ if ( pfn == ~0ul )
{
p2m->default_access = a;
return 0;
}
+ if ( !nr )
+ return 0;
+
p2m_lock(p2m);
- for ( pfn = start_pfn; pfn < start_pfn + nr; pfn++ )
+ for ( ; ; ++pfn )
{
mfn = p2m->get_entry(p2m, pfn, &t, &_a, 0, NULL);
if ( p2m->set_entry(p2m, pfn, mfn, PAGE_ORDER_4K, t, a) == 0 )
@@ -1412,6 +1414,13 @@ int p2m_set_mem_access(struct domain *d,
rc = -ENOMEM;
break;
}
+
+ /* Check for continuation if it's not the last interation. */
+ if ( !--nr || hypercall_preempt_check() )
+ {
+ rc = nr;
+ break;
+ }
}
p2m_unlock(p2m);
return rc;
--- a/xen/include/asm-x86/p2m.h
+++ b/xen/include/asm-x86/p2m.h
@@ -576,8 +576,8 @@ void p2m_mem_access_resume(struct domain
/* Set access type for a region of pfns.
* If start_pfn == -1ul, sets the default access type */
-int p2m_set_mem_access(struct domain *d, unsigned long start_pfn,
- uint32_t nr, hvmmem_access_t access);
+long p2m_set_mem_access(struct domain *d, unsigned long start_pfn,
+ uint32_t nr, hvmmem_access_t access);
/* Get access type for a pfn
* If pfn == -1ul, gets the default access type */
++++++ 53356c1e-x86-HVM-correct-CPUID-leaf-80000008-handling.patch ++++++
# Commit ef437690af8b75e6758dce77af75a22b63982883
# Date 2014-03-28 13:33:34 +0100
# Author Jan Beulich <jbeulich(a)suse.com>
# Committer Jan Beulich <jbeulich(a)suse.com>
x86/HVM: correct CPUID leaf 80000008 handling
CPUID[80000008].EAX[23:16] have been given the meaning of the guest
physical address restriction (in case it needs to be smaller than the
host's), hence we need to mirror that into vCPUID[80000008].EAX[7:0].
Enforce a lower limit at the same time, as well as a fixed value for
the virtual address bits, and zero for the guest physical address ones.
In order for the vMTRR code to see these overrides we need to make it
call hvm_cpuid() instead of domain_cpuid(), which in turn requires
special casing (and relaxing) the controlling domain.
This additionally should hide an ordering problem in the tools: Both
xend and xl appear to be restoring a guest from its image before
setting up the CPUID policy in the hypervisor, resulting in
domain_cpuid() returning all zeros and hence the check in
mtrr_var_range_msr_set() failing if the guest previously had more than
the minimum 36 physical address bits.
Signed-off-by: Jan Beulich <jbeulich(a)suse.com>
Reviewed-by: Tim Deegan <tim(a)xen.org>
--- a/xen/arch/x86/hvm/hvm.c
+++ b/xen/arch/x86/hvm/hvm.c
@@ -2885,6 +2885,8 @@ void hvm_cpuid(unsigned int input, unsig
switch ( input )
{
+ unsigned int sub_leaf, _eax, _ebx, _ecx, _edx;
+
case 0x1:
/* Fix up VLAPIC details. */
*ebx &= 0x00FFFFFFu;
@@ -2918,8 +2920,6 @@ void hvm_cpuid(unsigned int input, unsig
*edx = v->vcpu_id * 2;
break;
case 0xd:
- {
- unsigned int sub_leaf, _eax, _ebx, _ecx, _edx;
/* EBX value of main leaf 0 depends on enabled xsave features */
if ( count == 0 && v->arch.xcr0 )
{
@@ -2936,7 +2936,7 @@ void hvm_cpuid(unsigned int input, unsig
}
}
break;
- }
+
case 0x80000001:
/* We expose RDTSCP feature to guest only when
tsc_mode == TSC_MODE_DEFAULT and host_tsc_is_safe() returns 1 */
@@ -2950,6 +2950,23 @@ void hvm_cpuid(unsigned int input, unsig
if ( !(hvm_pae_enabled(v) || hvm_long_mode_enabled(v)) )
*edx &= ~cpufeat_mask(X86_FEATURE_PSE36);
break;
+
+ case 0x80000008:
+ count = cpuid_eax(0x80000008);
+ count = (count >> 16) & 0xff ?: count & 0xff;
+ if ( (*eax & 0xff) > count )
+ *eax = (*eax & ~0xff) | count;
+
+ hvm_cpuid(1, NULL, NULL, NULL, &_edx);
+ count = _edx & (cpufeat_mask(X86_FEATURE_PAE) |
+ cpufeat_mask(X86_FEATURE_PSE36)) ? 36 : 32;
+ if ( (*eax & 0xff) < count )
+ *eax = (*eax & ~0xff) | count;
+
+ hvm_cpuid(0x80000001, NULL, NULL, NULL, &_edx);
+ *eax = (*eax & ~0xffff00) | (_edx & cpufeat_mask(X86_FEATURE_LM)
+ ? 0x3000 : 0x2000);
+ break;
}
}
--- a/xen/arch/x86/hvm/mtrr.c
+++ b/xen/arch/x86/hvm/mtrr.c
@@ -145,7 +145,7 @@ bool_t is_var_mtrr_overlapped(struct mtr
static int hvm_mtrr_pat_init(void)
{
- unsigned int i, j, phys_addr;
+ unsigned int i, j;
memset(&mtrr_epat_tbl, INVALID_MEM_TYPE, sizeof(mtrr_epat_tbl));
for ( i = 0; i < MTRR_NUM_TYPES; i++ )
@@ -172,11 +172,7 @@ static int hvm_mtrr_pat_init(void)
}
}
- phys_addr = 36;
- if ( cpuid_eax(0x80000000) >= 0x80000008 )
- phys_addr = (uint8_t)cpuid_eax(0x80000008);
-
- size_or_mask = ~((1 << (phys_addr - PAGE_SHIFT)) - 1);
+ size_or_mask = ~((1 << (paddr_bits - PAGE_SHIFT)) - 1);
return 0;
}
@@ -455,7 +451,7 @@ bool_t mtrr_fix_range_msr_set(struct mtr
bool_t mtrr_var_range_msr_set(
struct domain *d, struct mtrr_state *m, uint32_t msr, uint64_t msr_content)
{
- uint32_t index, type, phys_addr, eax, ebx, ecx, edx;
+ uint32_t index, type, phys_addr, eax;
uint64_t msr_mask;
uint64_t *var_range_base = (uint64_t*)m->var_ranges;
@@ -468,16 +464,21 @@ bool_t mtrr_var_range_msr_set(
type == 4 || type == 5 || type == 6)) )
return 0;
- phys_addr = 36;
- domain_cpuid(d, 0x80000000, 0, &eax, &ebx, &ecx, &edx);
- if ( eax >= 0x80000008 )
+ if ( d == current->domain )
{
- domain_cpuid(d, 0x80000008, 0, &eax, &ebx, &ecx, &edx);
- phys_addr = (uint8_t)eax;
+ phys_addr = 36;
+ hvm_cpuid(0x80000000, &eax, NULL, NULL, NULL);
+ if ( eax >= 0x80000008 )
+ {
+ hvm_cpuid(0x80000008, &eax, NULL, NULL, NULL);
+ phys_addr = (uint8_t)eax;
+ }
}
+ else
+ phys_addr = paddr_bits;
msr_mask = ~((((uint64_t)1) << phys_addr) - 1);
msr_mask |= (index & 1) ? 0x7ffUL : 0xf00UL;
- if ( unlikely(msr_content && (msr_content & msr_mask)) )
+ if ( unlikely(msr_content & msr_mask) )
{
HVM_DBG_LOG(DBG_LEVEL_MSR, "invalid msr content:%"PRIx64"\n",
msr_content);
++++++ 533ad1ee-VMX-fix-PAT-value-seen-by-guest.patch ++++++
# Commit fce79f8ce91dc45f3a4d699ee67c49e6cbeb1197
# Date 2014-04-01 16:49:18 +0200
# Author Jan Beulich <jbeulich(a)suse.com>
# Committer Jan Beulich <jbeulich(a)suse.com>
VMX: fix PAT value seen by guest
The XSA-60 fixes introduced a window during which the guest PAT gets
forced to all zeros. This shouldn't be visible to the guest. Therefore
we need to intercept PAT MSR accesses during that time period.
Signed-off-by: Jan Beulich <jbeulich(a)suse.com>
Reviewed-by: Liu Jinsong <jinsong.liu(a)intel.com>
--- a/xen/arch/x86/hvm/vmx/vmx.c
+++ b/xen/arch/x86/hvm/vmx/vmx.c
@@ -984,6 +984,8 @@ static void vmx_handle_cd(struct vcpu *v
vmx_get_guest_pat(v, pat);
vmx_set_guest_pat(v, uc_pat);
+ vmx_enable_intercept_for_msr(v, MSR_IA32_CR_PAT,
+ MSR_TYPE_R | MSR_TYPE_W);
wbinvd(); /* flush possibly polluted cache */
hvm_asid_flush_vcpu(v); /* invalidate memory type cached in TLB */
@@ -993,6 +995,9 @@ static void vmx_handle_cd(struct vcpu *v
{
v->arch.hvm_vcpu.cache_mode = NORMAL_CACHE_MODE;
vmx_set_guest_pat(v, *pat);
+ if ( !iommu_enabled || iommu_snoop )
+ vmx_disable_intercept_for_msr(v, MSR_IA32_CR_PAT,
+ MSR_TYPE_R | MSR_TYPE_W);
hvm_asid_flush_vcpu(v); /* no need to flush cache */
}
}
++++++ 533d413b-x86-mm-fix-checks-against-max_mapped_pfn.patch ++++++
# Commit 088ee1d47b65d6bb92de61b404805f4ca92e3240
# Date 2014-04-03 12:08:43 +0100
# Author Jan Beulich <JBeulich(a)suse.com>
# Committer Tim Deegan <tim(a)xen.org>
x86/mm: fix checks against max_mapped_pfn
This value is an inclusive one, i.e. this fixes an off-by-one in memory
sharing and an off-by-two in shadow code.
Signed-off-by: Jan Beulich <jbeulich(a)suse.com>
Reviewed-by: Tim Deegan <tim(a)xen.org>
--- a/xen/arch/x86/mm/mem_sharing.c
+++ b/xen/arch/x86/mm/mem_sharing.c
@@ -1268,8 +1268,8 @@ int relinquish_shared_pages(struct domai
return 0;
p2m_lock(p2m);
- for (gfn = p2m->next_shared_gfn_to_relinquish;
- gfn < p2m->max_mapped_pfn; gfn++ )
+ for ( gfn = p2m->next_shared_gfn_to_relinquish;
+ gfn <= p2m->max_mapped_pfn; gfn++ )
{
p2m_access_t a;
p2m_type_t t;
--- a/xen/arch/x86/mm/shadow/common.c
+++ b/xen/arch/x86/mm/shadow/common.c
@@ -3489,9 +3489,7 @@ int shadow_track_dirty_vram(struct domai
struct sh_dirty_vram *dirty_vram = d->arch.hvm_domain.dirty_vram;
struct p2m_domain *p2m = p2m_get_hostp2m(d);
- if (end_pfn < begin_pfn
- || begin_pfn > p2m->max_mapped_pfn
- || end_pfn >= p2m->max_mapped_pfn)
+ if ( end_pfn < begin_pfn || end_pfn > p2m->max_mapped_pfn + 1 )
return -EINVAL;
/* We perform p2m lookups, so lock the p2m upfront to avoid deadlock */
++++++ qemu-xen-upstream-megasas-buildtime.patch ++++++
Causes rebuilds.
Says rpmlint.
---
tools/qemu-xen-dir-remote/hw/scsi/megasas.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
Index: xen-4.4.0-testing/tools/qemu-xen-dir-remote/hw/scsi/megasas.c
===================================================================
--- xen-4.4.0-testing.orig/tools/qemu-xen-dir-remote/hw/scsi/megasas.c
+++ xen-4.4.0-testing/tools/qemu-xen-dir-remote/hw/scsi/megasas.c
@@ -712,8 +712,8 @@ static int megasas_ctrl_get_info(Megasas
snprintf(info.package_version, 0x60, "%s-QEMU", QEMU_VERSION);
memcpy(info.image_component[0].name, "APP", 3);
memcpy(info.image_component[0].version, MEGASAS_VERSION "-QEMU", 9);
- memcpy(info.image_component[0].build_date, __DATE__, 11);
- memcpy(info.image_component[0].build_time, __TIME__, 8);
+ memcpy(info.image_component[0].build_date, "Apr 1 2014", 11);
+ memcpy(info.image_component[0].build_time, "12:34:56", 8);
info.image_component_count = 1;
if (pci_dev->has_rom) {
uint8_t biosver[32];
++++++ xen2libvirt.py ++++++
--- /var/tmp/diff_new_pack.tVefOJ/_old 2014-04-16 07:44:11.000000000 +0200
+++ /var/tmp/diff_new_pack.tVefOJ/_new 2014-04-16 07:44:11.000000000 +0200
@@ -1,113 +1,113 @@
-#!/usr/bin/env python
-#
-# Copyright (C) 2014 SUSE LINUX Products GmbH, Nuernberg, Germany.
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2.1 of the License, or (at your option) any later version.
-#
-# This library is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with this library. If not, see
-# <http://www.gnu.org/licenses/>.
-#
-# Authors:
-# Jim Fehlig <jfehlig(a)suse.com>
-#
-# Read native Xen configuration format, convert to libvirt domXML, and
-# import (virsh define <xml>) into libvirt.
-
-import sys
-import os
-import argparse
-import re
-
-try:
- import libvirt
-except ImportError:
- print 'Unable to import the libvirt module. Is libvirt-python installed?'
- sys.exit(1)
-
-parser = argparse.ArgumentParser(description='Import Xen domain configuration into libvirt')
-parser.add_argument('-c', '--convert-only', help='Convert Xen domain configuration into libvirt domXML, but do not import into libvirt', action='store_true', dest='convert_only')
-parser.add_argument('-r', '--recursive', help='Operate recursivelly on all Xen domain configuration rooted at path', action='store_true')
-parser.add_argument('-f', '--format', help='Format of Xen domain configuration. Supported formats are xm and sexpr', choices=['xm', 'sexpr'], default=None)
-parser.add_argument('-v', '--verbose', help='Print information about the import process', action='store_true')
-parser.add_argument('path', help='Path to Xen domain configuration')
-
-
-def print_verbose(msg):
- if args.verbose:
- print msg
-
-
-def check_config(path, config):
- isbinary = os.system('file -b ' + path + ' | grep text > /dev/null')
-
- if isbinary:
- print 'File %s is not a text file containing Xen xm or sexpr configuration'
- sys.exit(1)
-
- if config.find('\(domain'):
- return 'sexpr'
- return 'xm'
-
-
-def import_domain(conn, path, format=None, convert_only=False):
-
- f = open(path, 'r')
- config = f.read()
- print_verbose('Xen domain configuration read from %s:\n %s' % (path, config))
- if format is None:
- format = check_config(path, config)
-
- if format == 'sexpr':
- print_verbose('scrubbing domin from configuration')
- config = re.sub("\(domid [0-9]*\)", "", config)
- print_verbose('scrubbed sexpr:\n %s' % config)
- xml = conn.domainXMLFromNative('xen-sxpr', config, 0)
- else:
- # if format != sexpr, try xm
- xml = conn.domainXMLFromNative('xen-xm', config, 0)
-
- f.close()
-
- print_verbose('Successfully converted Xen domain configuration to '
- 'libvirt domXML:\n %s' % xml)
- if convert_only:
- print xml
- else:
- print_verbose('Importing converted libvirt domXML into libvirt...')
- dom = conn.defineXML(xml)
- if dom is None:
- print 'Failed to define domain from converted domXML'
- sys.exit(1)
- print_verbose('domXML successfully imported into libvirt')
-
-
-args = parser.parse_args()
-path = args.path
-
-# Connect to libvirt
-conn = libvirt.open(None)
-if conn is None:
- print('Failed to open connection to the hypervisor')
- sys.exit(1)
-
-if args.recursive:
- try:
- for root, dirs, files in os.walk(path):
- for name in files:
- abs_name = os.path.join(root, name)
- print_verbose('Processing file %s' % abs_name)
- import_domain(conn, abs_name, args.format, args.convert_only)
- except IOError:
- print('Failed to open/read path %s' % path)
- sys.exit(1)
-else:
- import_domain(conn, args.path, args.format, args.convert_only)
+#!/usr/bin/env python
+#
+# Copyright (C) 2014 SUSE LINUX Products GmbH, Nuernberg, Germany.
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License as published by the Free Software Foundation; either
+# version 2.1 of the License, or (at your option) any later version.
+#
+# This library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this library. If not, see
+# <http://www.gnu.org/licenses/>.
+#
+# Authors:
+# Jim Fehlig <jfehlig(a)suse.com>
+#
+# Read native Xen configuration format, convert to libvirt domXML, and
+# import (virsh define <xml>) into libvirt.
+
+import sys
+import os
+import argparse
+import re
+
+try:
+ import libvirt
+except ImportError:
+ print 'Unable to import the libvirt module. Is libvirt-python installed?'
+ sys.exit(1)
+
+parser = argparse.ArgumentParser(description='Import Xen domain configuration into libvirt')
+parser.add_argument('-c', '--convert-only', help='Convert Xen domain configuration into libvirt domXML, but do not import into libvirt', action='store_true', dest='convert_only')
+parser.add_argument('-r', '--recursive', help='Operate recursivelly on all Xen domain configuration rooted at path', action='store_true')
+parser.add_argument('-f', '--format', help='Format of Xen domain configuration. Supported formats are xm and sexpr', choices=['xm', 'sexpr'], default=None)
+parser.add_argument('-v', '--verbose', help='Print information about the import process', action='store_true')
+parser.add_argument('path', help='Path to Xen domain configuration')
+
+
+def print_verbose(msg):
+ if args.verbose:
+ print msg
+
+
+def check_config(path, config):
+ isbinary = os.system('file -b ' + path + ' | grep text > /dev/null')
+
+ if isbinary:
+ print 'File %s is not a text file containing Xen xm or sexpr configuration'
+ sys.exit(1)
+
+ if config.find('\(domain'):
+ return 'sexpr'
+ return 'xm'
+
+
+def import_domain(conn, path, format=None, convert_only=False):
+
+ f = open(path, 'r')
+ config = f.read()
+ print_verbose('Xen domain configuration read from %s:\n %s' % (path, config))
+ if format is None:
+ format = check_config(path, config)
+
+ if format == 'sexpr':
+ print_verbose('scrubbing domin from configuration')
+ config = re.sub("\(domid [0-9]*\)", "", config)
+ print_verbose('scrubbed sexpr:\n %s' % config)
+ xml = conn.domainXMLFromNative('xen-sxpr', config, 0)
+ else:
+ # if format != sexpr, try xm
+ xml = conn.domainXMLFromNative('xen-xm', config, 0)
+
+ f.close()
+
+ print_verbose('Successfully converted Xen domain configuration to '
+ 'libvirt domXML:\n %s' % xml)
+ if convert_only:
+ print xml
+ else:
+ print_verbose('Importing converted libvirt domXML into libvirt...')
+ dom = conn.defineXML(xml)
+ if dom is None:
+ print 'Failed to define domain from converted domXML'
+ sys.exit(1)
+ print_verbose('domXML successfully imported into libvirt')
+
+
+args = parser.parse_args()
+path = args.path
+
+# Connect to libvirt
+conn = libvirt.open(None)
+if conn is None:
+ print('Failed to open connection to the hypervisor')
+ sys.exit(1)
+
+if args.recursive:
+ try:
+ for root, dirs, files in os.walk(path):
+ for name in files:
+ abs_name = os.path.join(root, name)
+ print_verbose('Processing file %s' % abs_name)
+ import_domain(conn, abs_name, args.format, args.convert_only)
+ except IOError:
+ print('Failed to open/read path %s' % path)
+ sys.exit(1)
+else:
+ import_domain(conn, args.path, args.format, args.convert_only)
++++++ xenconsole-no-multiple-connections.patch ++++++
--- /var/tmp/diff_new_pack.tVefOJ/_old 2014-04-16 07:44:11.000000000 +0200
+++ /var/tmp/diff_new_pack.tVefOJ/_new 2014-04-16 07:44:11.000000000 +0200
@@ -10,16 +10,18 @@
fd_set watch_fdset;
int xs_fd = xs_fileno(xs), pty_fd = -1;
int start, now;
-@@ -119,6 +120,12 @@ static int get_pty_fd(struct xs_handle *
+@@ -119,6 +120,14 @@ static int get_pty_fd(struct xs_handle *
pty_fd = open(pty_path, O_RDWR | O_NOCTTY);
if (pty_fd == -1)
- err(errno, "Could not open tty `%s'", pty_path);
-+ memset(&lock, 0, sizeof(lock));
-+ lock.l_type = F_WRLCK;
-+ lock.l_whence = SEEK_SET;
-+ if (fcntl(pty_fd, F_SETLK, &lock) != 0)
-+ err(errno, "Could not lock tty '%s'",
-+ pty_path);
- free(pty_path);
+ warn("Could not open tty `%s'", pty_path);
++ else {
++ memset(&lock, 0, sizeof(lock));
++ lock.l_type = F_WRLCK;
++ lock.l_whence = SEEK_SET;
++ if (fcntl(pty_fd, F_SETLK, &lock) != 0)
++ err(errno, "Could not lock tty '%s'",
++ pty_path);
++ }
}
+ free(pty_path);
}
--
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 suse-xsl-stylesheets for openSUSE:Factory checked in at 2014-04-16 07:43:58
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/suse-xsl-stylesheets (Old)
and /work/SRC/openSUSE:Factory/.suse-xsl-stylesheets.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "suse-xsl-stylesheets"
Changes:
--------
--- /work/SRC/openSUSE:Factory/suse-xsl-stylesheets/suse-xsl-stylesheets.changes 2014-01-14 21:52:04.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.suse-xsl-stylesheets.new/suse-xsl-stylesheets.changes 2014-04-16 07:43:59.000000000 +0200
@@ -1,0 +2,19 @@
+Tue Apr 15 11:14:36 UTC 2014 - rsalevsky(a)suse.com
+
+Version 2.0~beta3:
+
+- 2013 Stylesheets
+ * PDF output: Hyphenate URLs as workaround for FOP issue (daps#135)
+ * HTML output: When using --meta, output only one file name per
+ information box
+ * HTML output: Support for os="hidden"
+ * HTML output: light frames for figures
+
+- 2005 Stylesheets:
+ * HTML output: When using --meta, multiple file names would sometimes
+ erroneously be output in the information boxes
+
+- Novdoc:
+ * Add some basic missing attributes to uri element
+
+-------------------------------------------------------------------
Old:
----
suse-xsl-stylesheets-2.0~beta2.tar.bz2
New:
----
suse-xsl-stylesheets-2.0~beta3.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ suse-xsl-stylesheets.spec ++++++
--- /var/tmp/diff_new_pack.XjIzHj/_old 2014-04-16 07:44:00.000000000 +0200
+++ /var/tmp/diff_new_pack.XjIzHj/_new 2014-04-16 07:44:00.000000000 +0200
@@ -17,7 +17,7 @@
Name: suse-xsl-stylesheets
-Version: 2.0~beta2
+Version: 2.0~beta3
Release: 0
###############################################################
++++++ suse-xsl-stylesheets-2.0~beta2.tar.bz2 -> suse-xsl-stylesheets-2.0~beta3.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/suse-xsl-stylesheets/schema/novdocx.dtd new/suse-xsl-stylesheets/schema/novdocx.dtd
--- old/suse-xsl-stylesheets/schema/novdocx.dtd 2013-12-16 14:32:27.000000000 +0100
+++ new/suse-xsl-stylesheets/schema/novdocx.dtd 2014-03-13 10:43:54.000000000 +0100
@@ -1006,6 +1006,12 @@
%profiling.attributes;
%xmlbase;>
+<!ATTLIST uri
+ type CDATA #IMPLIED
+ role CDATA #IMPLIED
+ %profiling.attributes;
+ %xmlbase;>
+
<!ATTLIST variablelist
id ID #IMPLIED
%profiling.attributes;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/suse-xsl-stylesheets/xslt2005/xhtml/sections.xsl new/suse-xsl-stylesheets/xslt2005/xhtml/sections.xsl
--- old/suse-xsl-stylesheets/xslt2005/xhtml/sections.xsl 2012-04-11 13:10:06.000000000 +0200
+++ new/suse-xsl-stylesheets/xslt2005/xhtml/sections.xsl 2014-03-20 14:50:58.000000000 +0100
@@ -19,7 +19,7 @@
self::sect1 or
self::sect2 or
self::sect3 or
- self::sect4]/@xml:base"/>
+ self::sect4][1]/@xml:base"/>
<xsl:if test="$draft.mode = 'yes' and $xmlbase != ''">
<div class="filenameblock">
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/suse-xsl-stylesheets/xslt2013/fo/docbook.xsl new/suse-xsl-stylesheets/xslt2013/fo/docbook.xsl
--- old/suse-xsl-stylesheets/xslt2013/fo/docbook.xsl 2013-12-16 16:18:23.000000000 +0100
+++ new/suse-xsl-stylesheets/xslt2013/fo/docbook.xsl 2014-03-10 11:47:56.000000000 +0100
@@ -54,12 +54,12 @@
<xsl:include href="admon.xsl"/>
<xsl:include href="component.xsl"/>
<xsl:include href="block.xsl"/>
+ <xsl:include href="hyphenate-url.xsl"/>
<xsl:include href="titlepage.xsl"/>
<xsl:include href="titlepage.templates.xsl"/>
<xsl:include href="pagesetup.xsl"/>
-
<xsl:include href="lists.xsl"/>
<xsl:include href="l10n.properties.xsl"/>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/suse-xsl-stylesheets/xslt2013/fo/formal.xsl new/suse-xsl-stylesheets/xslt2013/fo/formal.xsl
--- old/suse-xsl-stylesheets/xslt2013/fo/formal.xsl 2013-09-03 19:09:41.000000000 +0200
+++ new/suse-xsl-stylesheets/xslt2013/fo/formal.xsl 2014-01-29 15:29:25.000000000 +0100
@@ -22,6 +22,112 @@
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:fo="http://www.w3.org/1999/XSL/Format">
+ <!-- Hopefully, a future version of the DocBook stylesheets will feature a
+ more
+ stomachable version of this template, in which case we can simply move our
+ modification to not use example.properties except when ...[FIXME] -->
+ <xsl:template name="formal.object">
+ <xsl:param name="placement" select="'before'"/>
+
+ <xsl:variable name="id">
+ <xsl:call-template name="object.id"/>
+ </xsl:variable>
+
+ <xsl:variable name="content">
+ <xsl:if test="$placement = 'before'">
+ <xsl:call-template name="formal.object.heading">
+ <xsl:with-param name="placement" select="$placement"/>
+ </xsl:call-template>
+ </xsl:if>
+ <fo:block>
+ <!-- The equivalent of div.complex-example in HTML-->
+ <xsl:if test="self::example">
+ <xsl:if test="glosslist|bibliolist|itemizedlist|orderedlist|
+ segmentedlist|simplelist|variablelist|programlistingco|
+ screenco|screenshot|cmdsynopsis|funcsynopsis|
+ classsynopsis|fieldsynopsis|constructorsynopsis|
+ destructorsynopsis|methodsynopsis|formalpara|para|
+ simpara|address|blockquote|graphicco|mediaobjectco|
+ indexterm|beginpage">
+ <xsl:attribute name="border-left"
+ ><xsl:value-of select="&mediumline;"/>mm solid &light-gray;</xsl:attribute>
+ <xsl:attribute name="margin-left"
+ ><xsl:value-of select="&mediumline; div 2"/>mm</xsl:attribute>
+ <!-- This is seemingly illogical... but looks better with both FOP and
+ XEP. -->
+ <xsl:attribute name="padding-left"
+ ><xsl:value-of select="&columnfragment;"/>mm</xsl:attribute>
+ </xsl:if>
+ </xsl:if>
+ <xsl:apply-templates/>
+ </fo:block>
+ <xsl:if test="$placement != 'before'">
+ <xsl:call-template name="formal.object.heading">
+ <xsl:with-param name="placement" select="$placement"/>
+ </xsl:call-template>
+ </xsl:if>
+ </xsl:variable>
+
+ <xsl:variable name="keep.together">
+ <xsl:call-template name="pi.dbfo_keep-together"/>
+ </xsl:variable>
+
+ <xsl:choose>
+ <!-- tables have their own templates and
+ are not handled by formal.object -->
+ <xsl:when test="self::figure">
+ <fo:block id="{$id}"
+ xsl:use-attribute-sets="figure.properties">
+ <xsl:if test="$keep.together != ''">
+ <xsl:attribute name="keep-together.within-column"><xsl:value-of
+ select="$keep.together"/></xsl:attribute>
+ </xsl:if>
+ <xsl:copy-of select="$content"/>
+ </fo:block>
+ </xsl:when>
+ <xsl:when test="self::example">
+ <fo:block id="{$id}"
+ xsl:use-attribute-sets="example.properties">
+ <xsl:if test="$keep.together != ''">
+ <xsl:attribute name="keep-together.within-column"><xsl:value-of
+ select="$keep.together"/></xsl:attribute>
+ </xsl:if>
+ <xsl:copy-of select="$content"/>
+ </fo:block>
+ </xsl:when>
+ <xsl:when test="self::equation">
+ <fo:block id="{$id}"
+ xsl:use-attribute-sets="equation.properties">
+ <xsl:if test="$keep.together != ''">
+ <xsl:attribute name="keep-together.within-column"><xsl:value-of
+ select="$keep.together"/></xsl:attribute>
+ </xsl:if>
+ <xsl:copy-of select="$content"/>
+ </fo:block>
+ </xsl:when>
+ <xsl:when test="self::procedure">
+ <fo:block id="{$id}"
+ xsl:use-attribute-sets="procedure.properties">
+ <xsl:if test="$keep.together != ''">
+ <xsl:attribute name="keep-together.within-column"><xsl:value-of
+ select="$keep.together"/></xsl:attribute>
+ </xsl:if>
+ <xsl:copy-of select="$content"/>
+ </fo:block>
+ </xsl:when>
+ <xsl:otherwise>
+ <fo:block id="{$id}"
+ xsl:use-attribute-sets="formal.object.properties">
+ <xsl:if test="$keep.together != ''">
+ <xsl:attribute name="keep-together.within-column"><xsl:value-of
+ select="$keep.together"/></xsl:attribute>
+ </xsl:if>
+ <xsl:copy-of select="$content"/>
+ </fo:block>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
<xsl:template
match="procedure|example|table|figure|variablelist|itemizedlist|orderedlist"
mode="object.label.template">
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/suse-xsl-stylesheets/xslt2013/fo/hyphenate-url.xsl new/suse-xsl-stylesheets/xslt2013/fo/hyphenate-url.xsl
--- old/suse-xsl-stylesheets/xslt2013/fo/hyphenate-url.xsl 1970-01-01 01:00:00.000000000 +0100
+++ new/suse-xsl-stylesheets/xslt2013/fo/hyphenate-url.xsl 2014-03-10 11:47:56.000000000 +0100
@@ -0,0 +1,188 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- $Id: hyphenate-url.xsl 43839 2009-08-31 14:50:03Z toms $ -->
+<!DOCTYPE xsl:stylesheet >
+<xsl:stylesheet version="1.0"
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:fo="http://www.w3.org/1999/XSL/Format">
+
+<!--
+ Template hyphenate-url: Prepare URL to be hyphenated
+
+ Parameters:
+ * url: The respective URL
+ * removestartslash: Remove a start slash, if available?
+ * removeendslash: Remove the trailing slash, if available?
+ * insertendslash: Insert a slash at the end of the hyphenated URL?
+-->
+<xsl:template name="hyphenate-url">
+ <xsl:param name="url" select="''"/>
+ <xsl:param name="removestartslash" select="true()"/>
+ <xsl:param name="removeendslash" select="true()"/>
+ <xsl:param name="insertendslash" select="false()"/>
+
+ <xsl:variable name="normalurl" select="normalize-space($url)"/>
+
+ <!--
+ The variables A and B can only hold 0 (zero) or 1. These are precalculated
+ indices for start (A) and end (B), used by the substring function.
+ This is used to avoid nasty linebreaks between a text and a '/'
+ character when the URL touches almost the right text margin.
+ -->
+ <xsl:variable name="A" select="starts-with($url, '/') and
+ $removestartslash and $normalurl != '/'"/>
+ <xsl:variable name="B" select="(substring($url, string-length($url), 1) = '/')
+ and $removeendslash and $normalurl != '/'"/>
+ <xsl:variable name="len" select="string-length($normalurl)"/>
+
+
+<!-- <xsl:message> hyphenate-url:
+ url = '<xsl:value-of select="$normalurl"/>'
+ len = <xsl:value-of select="string-length($normalurl)"/>
+ A = '<xsl:value-of select="$A"/>'
+ B = '<xsl:value-of select="$B"/>'
+
+ removestartslash = '<xsl:value-of select="$removestartslash"/>'
+ C = <xsl:value-of select="string-length($normalurl) - $A - $B"/>
+ start-with= '<xsl:value-of select="starts-with($url, '/')"/>'
+ firstchar = '<xsl:value-of select="substring($normalurl, 1,1 )"/>'
+ lastchar = '<xsl:value-of select="substring($normalurl,
+ string-length($normalurl), 1)"/>'
+ substring = '<xsl:value-of select="substring($normalurl, $A +1,
+ $len - $A - $B)"/>'
+ substring3 = '<xsl:value-of select="substring($normalurl,
+ string-length(substring-before($normalurl, '://'))+4,
+ $len - string-length(
+ substring-before($normalurl, '://'))+3 - $B)"/>'
+ </xsl:message>-->
+
+
+ <xsl:choose>
+ <!-- Don't use the hyphenation algorithm at all, if
+ ulink.hyphenate is empty
+ -->
+ <xsl:when test="$ulink.hyphenate = '' or $fop1.extensions != 0">
+ <xsl:value-of select="$normalurl"/>
+ </xsl:when>
+
+ <!-- This is only executed, when you have something like "smb://".
+ If you skip this test, you get "smb:///" in the output.
+ -->
+ <xsl:when test="contains($normalurl, '://') and
+ (string-length($normalurl) -
+ string-length(substring-before($normalurl,'://')))
+ = 3
+ ">
+ <xsl:copy-of select="$normalurl"/>
+ </xsl:when>
+
+
+ <!-- Remove the "SCHEMA://" prefix, so it does not disturbs the
+ algorithm in "hyphenate-url-string" -->
+ <xsl:when test="contains($normalurl, '://')">
+ <xsl:variable name="schema" select="substring-before($normalurl,'://')"/>
+ <xsl:variable name="core" select="substring($normalurl,
+ string-length(substring-before($normalurl, '://'))+4,
+ $len - string-length($schema) -3 - $B)"/>
+ <xsl:value-of select="$schema"/>
+ <xsl:text>://</xsl:text>
+ <xsl:copy-of select="$ulink.hyphenate"/>
+ <xsl:call-template name="hyphenate-url-string">
+ <xsl:with-param name="url" select="$core"/>
+ </xsl:call-template>
+ <xsl:if test="$B or $insertendslash">
+ <xsl:text>/</xsl:text>
+ </xsl:if>
+ </xsl:when>
+
+ <xsl:otherwise>
+ <xsl:if test="$A">
+ <xsl:text>/</xsl:text>
+ </xsl:if>
+ <xsl:call-template name="hyphenate-url-string">
+ <xsl:with-param name="url"
+ select="substring($normalurl,
+ $A +1,
+ string-length($normalurl) - $A - $B)"/>
+ </xsl:call-template>
+ <xsl:if test="$B">
+ <xsl:text>/</xsl:text>
+ </xsl:if>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<!--
+ Template hyphenate-url-string: Hyphenate URL
+
+ Parameter:
+ * url: The URL, removed from schemas like http://, ftp://, etc. and
+ a trailing slash
+-->
+<xsl:template name="hyphenate-url-string">
+ <xsl:param name="url" select="''"/>
+ <xsl:variable name="char" select="substring($url,1,1)"/>
+
+ <xsl:choose>
+ <xsl:when test="$url=''"/>
+
+ <!-- Insert breakpoint _before_ the character -->
+ <xsl:when test="contains($ulink.hyphenate.before.chars, $char)">
+ <xsl:value-of select="concat($ulink.hyphenate, $char)"/>
+ <xsl:call-template name="hyphenate-url-string">
+ <xsl:with-param name="url" select="substring($url, 2)"/>
+ </xsl:call-template>
+ </xsl:when>
+
+ <!-- Insert breakpoint _after_ the character -->
+ <xsl:when test="contains($ulink.hyphenate.after.chars, $char)">
+ <xsl:value-of select="concat($char, $ulink.hyphenate)"/>
+ <xsl:call-template name="hyphenate-url-string">
+ <xsl:with-param name="url" select="substring($url, 2)"/>
+ </xsl:call-template>
+ </xsl:when>
+
+ <xsl:otherwise>
+ <xsl:value-of select="$char"/>
+ <xsl:call-template name="hyphenate-url-string">
+ <xsl:with-param name="url" select="substring($url, 2)"/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+
+<!-- ==================================================================== -->
+<xsl:template match="filename" mode="hyphenate-url">
+ <xsl:apply-templates mode="hyphenate-url"/>
+</xsl:template>
+
+
+<xsl:template match="text()" mode="hyphenate-url">
+ <xsl:call-template name="hyphenate-url">
+ <xsl:with-param name="url" select="."/>
+ </xsl:call-template>
+</xsl:template>
+
+
+<xsl:template match="text()[preceding-sibling::replaceable]" mode="hyphenate-url">
+ <xsl:call-template name="hyphenate-url">
+ <xsl:with-param name="url" select="."/>
+ <xsl:with-param name="removestartslash" select="false()"/>
+ </xsl:call-template>
+</xsl:template>
+
+
+<xsl:template match="replaceable" mode="hyphenate-url">
+ <xsl:call-template name="inline.italicseq">
+ <xsl:with-param name="content">
+ <xsl:call-template name="hyphenate-url">
+ <xsl:with-param name="url">
+ <xsl:apply-templates mode="hyphenate-url"/>
+ </xsl:with-param>
+ </xsl:call-template>
+ </xsl:with-param>
+ </xsl:call-template>
+</xsl:template>
+
+
+</xsl:stylesheet>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/suse-xsl-stylesheets/xslt2013/fo/inline.xsl new/suse-xsl-stylesheets/xslt2013/fo/inline.xsl
--- old/suse-xsl-stylesheets/xslt2013/fo/inline.xsl 2014-01-14 13:39:00.000000000 +0100
+++ new/suse-xsl-stylesheets/xslt2013/fo/inline.xsl 2014-02-07 13:29:34.000000000 +0100
@@ -30,6 +30,7 @@
xmlns:fo="http://www.w3.org/1999/XSL/Format"
xmlns:svg="http://www.w3.org/2000/svg">
+
<xsl:template name="inline.monoseq">
<xsl:param name="content">
<xsl:call-template name="simple.xlink">
@@ -39,18 +40,29 @@
</xsl:call-template>
</xsl:param>
<xsl:param name="purpose" select="'none'"/>
- <xsl:param name="mono-ancestor" select="0"/>
+ <xsl:param name="mode" select="'normal'"/>
<xsl:param name="before" select="''"/>
<xsl:param name="after" select="''"/>
<xsl:variable name="mono-verbatim-ancestor">
- <xsl:if test="$mono-ancestor = 1 or ancestor::screen or
+ <xsl:if test="$mode = 'mono-ancestor' or ancestor::screen or
ancestor::programlisting or ancestor::synopsis">1</xsl:if>
</xsl:variable>
+ <xsl:variable name="underline-color">
+ <xsl:choose>
+ <xsl:when test="(ancestor::title and
+ not(ancestor::note or ancestor::tip or ancestor::important or
+ ancestor::warning or ancestor::caution)) or
+ $purpose = 'xref'">
+ <xsl:value-of select="$dark-green"/>
+ </xsl:when>
+ <xsl:otherwise>&mid-gray;</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
<fo:inline xsl:use-attribute-sets="monospace.properties" font-weight="normal"
font-style="normal">
<xsl:if test="$mono-verbatim-ancestor != 1">
- <xsl:attribute name="border-bottom">&thinline;mm solid &mid-gray;</xsl:attribute>
+ <xsl:attribute name="border-bottom">&thinline;mm solid <xsl:value-of select="$underline-color"/></xsl:attribute>
<xsl:attribute name="padding-bottom">0.1em</xsl:attribute>
</xsl:if>
<xsl:choose>
@@ -101,18 +113,29 @@
</xsl:call-template>
</xsl:param>
<xsl:param name="purpose" select="'none'"/>
- <xsl:param name="mono-ancestor" select="0"/>
+ <xsl:param name="mode" select="'normal'"/>
<xsl:param name="before" select="''"/>
<xsl:param name="after" select="''"/>
<xsl:variable name="mono-verbatim-ancestor">
- <xsl:if test="$mono-ancestor = 1 or ancestor::screen or
+ <xsl:if test="$mode = 'mono-ancestor' or ancestor::screen or
ancestor::programlisting or ancestor::synopsis">1</xsl:if>
</xsl:variable>
+ <xsl:variable name="underline-color">
+ <xsl:choose>
+ <xsl:when test="(ancestor::title and
+ not(ancestor::note or ancestor::tip or ancestor::important or
+ ancestor::warning or ancestor::caution)) or
+ $purpose = 'xref'">
+ <xsl:value-of select="$dark-green"/>
+ </xsl:when>
+ <xsl:otherwise>&mid-gray;</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
<fo:inline xsl:use-attribute-sets="monospace.properties mono.bold"
font-style="normal">
<xsl:if test="$mono-verbatim-ancestor != 1">
- <xsl:attribute name="border-bottom">&thinline;mm solid &mid-gray;</xsl:attribute>
+ <xsl:attribute name="border-bottom">&thinline;mm solid <xsl:value-of select="$underline-color"/></xsl:attribute>
<xsl:attribute name="padding-bottom">0.1em</xsl:attribute>
</xsl:if>
<xsl:choose>
@@ -163,18 +186,29 @@
</xsl:call-template>
</xsl:param>
<xsl:param name="purpose" select="'none'"/>
- <xsl:param name="mono-ancestor" select="0"/>
+ <xsl:param name="mode" select="'normal'"/>
<xsl:param name="before" select="''"/>
<xsl:param name="after" select="''"/>
<xsl:variable name="mono-verbatim-ancestor">
- <xsl:if test="$mono-ancestor = 1 or ancestor::screen or
+ <xsl:if test="$mode = 'mono-ancestor' or ancestor::screen or
ancestor::programlisting or ancestor::synopsis">1</xsl:if>
</xsl:variable>
+ <xsl:variable name="underline-color">
+ <xsl:choose>
+ <xsl:when test="(ancestor::title and
+ not(ancestor::note or ancestor::tip or ancestor::important or
+ ancestor::warning or ancestor::caution)) or
+ $purpose = 'xref'">
+ <xsl:value-of select="$dark-green"/>
+ </xsl:when>
+ <xsl:otherwise>&mid-gray;</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
<fo:inline xsl:use-attribute-sets="monospace.properties italicized"
font-weight="normal">
<xsl:if test="$mono-verbatim-ancestor != 1">
- <xsl:attribute name="border-bottom">&thinline;mm solid &mid-gray;</xsl:attribute>
+ <xsl:attribute name="border-bottom">&thinline;mm solid <xsl:value-of select="$underline-color"/></xsl:attribute>
<xsl:attribute name="padding-bottom">0.1em</xsl:attribute>
</xsl:if>
<xsl:choose>
@@ -284,29 +318,33 @@
</xsl:apply-templates>
</xsl:template>
-
+<!-- No mode -->
<xsl:template match="command|userinput">
<xsl:param name="purpose" select="'none'"/>
+ <xsl:param name="mode" select="'normal'"/>
<xsl:call-template name="inline.boldmonoseq">
<xsl:with-param name="purpose" select="$purpose"/>
+ <xsl:with-param name="mode" select="$mode"/>
</xsl:call-template>
</xsl:template>
<xsl:template match="classname|exceptionname|interfacename|methodname
|computeroutput|constant|envar|filename|function|literal
|code|option|parameter|prompt|systemitem|varname|email|uri
- |cmdsynopsis/command|function|literal|package">
+ |cmdsynopsis/command|package">
<xsl:param name="purpose" select="'none'"/>
+ <xsl:param name="mode" select="'normal'"/>
<xsl:call-template name="inline.monoseq">
<xsl:with-param name="purpose" select="$purpose"/>
+ <xsl:with-param name="mode" select="$mode"/>
</xsl:call-template>
</xsl:template>
<xsl:template match="sgmltag|tag" name="sgmltag">
<xsl:param name="purpose" select="'none'"/>
- <xsl:param name="mono-ancestor" select="0"/>
+ <xsl:param name="mode" select="'normal'"/>
<xsl:variable name="class">
<xsl:if test="@class">
<xsl:value-of select="@class"/>
@@ -339,7 +377,7 @@
<xsl:call-template name="inline.monoseq">
<xsl:with-param name="purpose" select="$purpose"/>
- <xsl:with-param name="mono-ancestor" select="$mono-ancestor"/>
+ <xsl:with-param name="mode" select="$mode"/>
<xsl:with-param name="before" select="$before"/>
<xsl:with-param name="after" select="$after"/>
</xsl:call-template>
@@ -347,31 +385,35 @@
<xsl:template match="replaceable|structfield">
<xsl:param name="purpose" select="'none'"/>
+ <xsl:param name="mode" select="'normal'"/>
<xsl:call-template name="inline.italicmonoseq">
<xsl:with-param name="purpose" select="$purpose"/>
+ <xsl:with-param name="mode" select="$mode"/>
</xsl:call-template>
</xsl:template>
+
+<!-- Mode: mono-ancestor -->
<xsl:template match="command|userinput" mode="mono-ancestor">
<xsl:param name="purpose" select="'none'"/>
<xsl:call-template name="inline.boldmonoseq">
<xsl:with-param name="purpose" select="$purpose"/>
- <xsl:with-param name="mono-ancestor" select="1"/>
+ <xsl:with-param name="mode" select="'mono-ancestor'"/>
</xsl:call-template>
</xsl:template>
<xsl:template match="classname|exceptionname|interfacename|methodname
|computeroutput|constant|envar|filename|function|literal
|code|option|parameter|prompt|systemitem|varname|email|uri
- |cmdsynopsis/command|function|literal|package"
+ |cmdsynopsis/command|package"
mode="mono-ancestor">
<xsl:param name="purpose" select="'none'"/>
<xsl:call-template name="inline.monoseq">
<xsl:with-param name="purpose" select="$purpose"/>
- <xsl:with-param name="mono-ancestor" select="1"/>
+ <xsl:with-param name="mode" select="'mono-ancestor'"/>
</xsl:call-template>
</xsl:template>
@@ -380,7 +422,7 @@
<xsl:call-template name="sgmltag">
<xsl:with-param name="purpose" select="$purpose"/>
- <xsl:with-param name="mono-ancestor" select="1"/>
+ <xsl:with-param name="mode" select="'mono-ancestor'"/>
</xsl:call-template>
</xsl:template>
@@ -390,7 +432,7 @@
<xsl:call-template name="inline.italicmonoseq">
<xsl:with-param name="purpose" select="$purpose"/>
- <xsl:with-param name="mono-ancestor" select="1"/>
+ <xsl:with-param name="mode" select="'mono-ancestor'"/>
</xsl:call-template>
</xsl:template>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/suse-xsl-stylesheets/xslt2013/fo/param.xsl new/suse-xsl-stylesheets/xslt2013/fo/param.xsl
--- old/suse-xsl-stylesheets/xslt2013/fo/param.xsl 2013-12-03 19:01:53.000000000 +0100
+++ new/suse-xsl-stylesheets/xslt2013/fo/param.xsl 2014-03-10 11:47:56.000000000 +0100
@@ -356,4 +356,14 @@
<xsl:param name="titlepage.background.width"
><xsl:value-of select="(&column; * 5) + (&gutter; * 3)"/>mm</xsl:param>
+
+<!-- Characters for the hyphenation algorithm:
+ Contains characters hyhenated before or after other text
+-->
+<xsl:param name="ulink.hyphenate.before.chars"
+ >.,%?&#\~+{_-</xsl:param>
+<xsl:param name="ulink.hyphenate.after.chars"
+ >/:@=};</xsl:param>
+
+
</xsl:stylesheet>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/suse-xsl-stylesheets/xslt2013/static/css/style.css new/suse-xsl-stylesheets/xslt2013/static/css/style.css
--- old/suse-xsl-stylesheets/xslt2013/static/css/style.css 2013-12-18 14:30:44.000000000 +0100
+++ new/suse-xsl-stylesheets/xslt2013/static/css/style.css 2014-04-14 11:53:11.000000000 +0200
@@ -59,11 +59,7 @@
}
#_toolbar-bottom,
-#_fixed-header-wrap #_bubble-toc, #_content > .set, #_content > .book,
-#_content > .article, #_content > .part, #_content > .chapter, #_content > .preface,
-#_content > .appendix, #_content > .glossary, #_content > .reference,
-#_content > .refentry, #_content > .bibliography, #_content > .index,
-.page-bottom {
+#_fixed-header-wrap #_bubble-toc, .documentation, .page-bottom {
margin: 0 auto;
min-width: 150px;
max-width: 978px;
@@ -83,11 +79,7 @@
padding-top: 40px;
}
-#_footer, #_toolbar-bottom, #_content > .set, #_content > .book,
-#_content > .article, #_content > .part, #_content > .chapter,
-#_content > .preface, #_content > .appendix, #_content > .glossary,
-#_content > .reference, #_content > .refentry, #_content > .bibliography,
-#_content > .index, #_content > .page-bottom {
+#_footer, #_toolbar-bottom, .documentation, .page-bottom {
overflow: hidden;
}
@@ -1173,17 +1165,14 @@
/* .CHAPTER/... AREA */
-#_content > .set, #_content > .book, #_content > .article, #_content > .part,
-#_content > .chapter, #_content > .preface, #_content > .appendix,
-#_content > .glossary, #_content > .reference, #_content > .refentry,
-#_content > .bibliography, #_content > .index {
+.documentation {
padding: 0 20px;
}
/* We need to scroll ~30 pixels up, such that the headline won't be hidden by the fixed header. */
/* [attribute] selector works in IE 7+. Firefox, Opera and Webkit-based browsers had it far earlier. */
-#_content a[id] {
+.documentation a[id] {
position: relative;
top: -33px;
display: block;
@@ -1191,7 +1180,7 @@
height: 0;
}
-#_content [id]:target > span, #_content .admonition[id]:target > h6 {
+.documentation [id]:target > span, .documentation .admonition[id]:target > h6 {
background-color: rgba(255,255,0,0.3);
transition: background-color 0.2s ease-out 0.3s;
/* Clean the below up in Q3 2013 or so... */
@@ -1224,7 +1213,7 @@
display: none;
}
-#_content .screen a[id] {
+.documentation .screen a[id] {
display: none;
}
@@ -1439,7 +1428,7 @@
line-height: 15px;
overflow: hidden;
padding: 0 3px;
- border-bottom: 1px solid #FFF;
+ border-bottom: 1px solid transparent;
background-color: #EEE;
text-transform: uppercase;
display: inline-block;
@@ -1565,7 +1554,7 @@
/* Text styles */
-#_content span, #_content a, #_content p, #_content em, #_content strong {
+.documentation span, .documentation a, .documentation p, .documentation em, .documentation strong {
position: relative;
z-index: 2;
}
@@ -1913,7 +1902,6 @@
max-width: 100%;
min-height: 60px;
text-align: center;
- color: #999;
margin: 24px 0 -9px;
overflow: hidden;
position: relative;
@@ -1927,24 +1915,22 @@
text-align: center;
color: #999;
padding: 12px 10px;
- background-color: #333;
+ background-color: #FFF;
overflow: hidden;
- border-top: 1px solid #202020;
- border-left: 1px solid #202020;
- border-right: 1px solid #202020;
+ border: 1px solid #EFEFF0;
}
.figure img {
padding: 0;
- background-color: #FFF;
width: auto;
margin: 0 auto;
/* Please clean this mess out in ~2014 -- leave only the line with "calc" in there */
+ min-width: 50px;
max-width: 100%;
max-width: calc(100% - 2px);
max-width: -moz-calc(100% - 2px);
max-width: -webkit-calc(100% - 2px);
- display: block; /* inline images weirdly have some whitespace below them, thus block'ing */
+ display: block; /* inline images weirdly have some whitespace below them, thus blocking */
}
.figure-title {
@@ -1954,28 +1940,19 @@
}
div.figure .figure-title-wrap {
- background-color: #202020;
+ background-color: #EFEFF0;
width: 100%;
overflow: hidden;
}
-div.figure .number, div.figure .permalink:hover, div.figure .permalink:focus, div.figure .permalink:active {
- color: #76AD2D;
- text-decoration: none;
- font-weight: normal;
-}
-
-div.figure .name, div.figure .permalink {
- color: #FFF;
-}
-
.informalfigure img {
+ min-width: 50px;
max-width: 100%;
display: block; /* inline images weirdly have some whitespace below them, thus block'ing */
color: #999;
margin: 17px 0 24px;
padding: 1px;
- border: 1px solid #202020;
+ border: 1px solid #EFEFF0;
width: auto;
}
@@ -2314,7 +2291,7 @@
padding: 10px;
}
-#_content > .doc-status {
+.documentation > .doc-status {
margin: 0 auto;
min-width: 380px;
max-width: 978px;
@@ -2342,6 +2319,36 @@
font-size: 22px;
}
+.hidden {
+ background-color: #E3C1C1;
+ position: static;
+ margin-top: 20px;
+ margin-left: -10px;
+ margin-right: -10px;
+ padding-left: 10px;
+ padding-right: 10px;
+ padding-bottom: 10px;
+}
+
+.hidden:before {
+ content: 'Hidden';
+ display: block;
+ float: left;
+ background-color: #8C0000;
+ color: #FFF;
+ padding: 3px 5px;
+ margin-top: 10px;
+}
+
+.hidden .hidden {
+ margin-top: 0;
+ padding-bottom: 0;
+}
+
+.hidden .hidden:before {
+ content: none;
+}
+
body.draft {
background: url(../images/draft.png) no-repeat fixed left 50%;
}
@@ -2363,10 +2370,7 @@
color: #202020;
}
- #_content > .set, #_content > .book, #_content > .article,
- #_content > .part, #_content > .chapter, #_content > .preface,
- #_content > .appendix, #_content > .glossary, #_content > .reference,
- #_content > .refentry, #_content > .bibliography, #_content > .index {
+ .documentation {
padding: 0;
}
@@ -2535,10 +2539,7 @@
padding: 0;
}
- #_footer, #_content > .set, #_content > .book, #_content > .article, #_content > .part,
- #_content > .chapter, #_content > .preface, #_content > .appendix,
- #_content > .glossary, #_content > .reference, #_content > .refentry,
- #_content > .bibliography, #_content > .index {
+ #_footer, .documentation {
padding: 0 10px;
}
@@ -2871,7 +2872,7 @@
margin: 0 auto;
}
- #_content ul, #_content ol {
+ .documentation ul, .documentation ol {
padding-left: 10px;
}
@@ -2917,7 +2918,7 @@
max-width: -webkit-calc(100% + 20px);
max-width: calc(100% + 20px);
}
- #_content ol.procedure {
+ .documentation ol.procedure {
padding-left: 20px;
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/suse-xsl-stylesheets/xslt2013/xhtml/chunk-common.xsl new/suse-xsl-stylesheets/xslt2013/xhtml/chunk-common.xsl
--- old/suse-xsl-stylesheets/xslt2013/xhtml/chunk-common.xsl 2013-10-16 11:54:03.000000000 +0200
+++ new/suse-xsl-stylesheets/xslt2013/xhtml/chunk-common.xsl 2014-03-13 14:16:42.000000000 +0100
@@ -614,9 +614,11 @@
<xsl:with-param name="node" select="'id-content'"/>
</xsl:call-template>
<xsl:call-template name="metadata"/>
+ <div class="documentation">
<xsl:copy-of select="$content"/>
+ </div>
<div class="page-bottom">
<xsl:call-template name="bottom.navigation">
<xsl:with-param name="prev" select="$prev"/>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/suse-xsl-stylesheets/xslt2013/xhtml/docbook.xsl new/suse-xsl-stylesheets/xslt2013/xhtml/docbook.xsl
--- old/suse-xsl-stylesheets/xslt2013/xhtml/docbook.xsl 2013-10-28 17:11:16.000000000 +0100
+++ new/suse-xsl-stylesheets/xslt2013/xhtml/docbook.xsl 2014-03-13 14:16:42.000000000 +0100
@@ -510,7 +510,7 @@
</xsl:template>
<xsl:template name="outerelement.class.attribute">
- <!-- To accommodate ActiveDoc's needs, we add this to both body and
+ <!-- To accommodate for ActiveDoc's needs, add this to both body and
#_content.-->
<xsl:param name="node" select="'body'"/>
@@ -579,9 +579,11 @@
<xsl:with-param name="node" select="'id-content'"/>
</xsl:call-template>
<xsl:call-template name="metadata"/>
+ <div class="documentation">
<xsl:apply-templates select="."/>
+ </div>
<div class="page-bottom">
<xsl:call-template name="share.and.print">
<xsl:with-param name="prev" select="$prev"/>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/suse-xsl-stylesheets/xslt2013/xhtml/html.xsl new/suse-xsl-stylesheets/xslt2013/xhtml/html.xsl
--- old/suse-xsl-stylesheets/xslt2013/xhtml/html.xsl 2012-11-07 13:47:52.000000000 +0100
+++ new/suse-xsl-stylesheets/xslt2013/xhtml/html.xsl 2014-03-26 19:16:38.000000000 +0100
@@ -36,4 +36,24 @@
</xsl:choose>
</xsl:template>
-</xsl:stylesheet>
\ No newline at end of file
+
+ <!-- Adapted to support hidden value of OS - currently this value
+ is only used in the SUSE Manager documentation. -->
+ <xsl:template name="common.html.attributes">
+ <xsl:param name="inherit" select="0"/>
+ <xsl:param name="class">
+ <xsl:value-of select="local-name(.)"/>
+ <xsl:text> </xsl:text>
+ <xsl:if test="($draft.mode = 'yes' or $draft.mode = 'maybe')
+ and normalize-space(@os) = 'hidden'">
+ <xsl:value-of select="@os"/>
+ </xsl:if>
+ </xsl:param>
+
+ <xsl:apply-templates select="." mode="common.html.attributes">
+ <xsl:with-param name="class" select="$class"/>
+ <xsl:with-param name="inherit" select="$inherit"/>
+ </xsl:apply-templates>
+ </xsl:template>
+
+</xsl:stylesheet>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/suse-xsl-stylesheets/xslt2013/xhtml/sections.xsl new/suse-xsl-stylesheets/xslt2013/xhtml/sections.xsl
--- old/suse-xsl-stylesheets/xslt2013/xhtml/sections.xsl 2013-09-25 13:27:58.000000000 +0200
+++ new/suse-xsl-stylesheets/xslt2013/xhtml/sections.xsl 2014-03-20 15:59:22.000000000 +0100
@@ -229,10 +229,18 @@
<xsl:call-template name="create.permalink">
<xsl:with-param name="object" select="$section"/>
</xsl:call-template>
+ <xsl:call-template name="create.header.line">
+ <xsl:with-param name="object" select="$section"/>
+ </xsl:call-template>
</xsl:element>
<xsl:call-template name="debug.filename-id"/>
</xsl:template>
+<!-- Hook for additional customizations -->
+<xsl:template name="create.header.line">
+ <xsl:param name="object" select="."/>
+</xsl:template>
+
<xsl:template name="debug.filename-id">
<xsl:param name="node" select="."/>
<xsl:variable name="xmlbase"
@@ -245,7 +253,7 @@
self::sect1 or
self::sect2 or
self::sect3 or
- self::sect4]/@xml:base"/>
+ self::sect4][1]/@xml:base"/>
<xsl:if test="$draft.mode = 'yes' and $xmlbase != ''">
<div class="doc-status">
--
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 pinta for openSUSE:Factory checked in at 2014-04-16 07:35:17
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/pinta (Old)
and /work/SRC/openSUSE:Factory/.pinta.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "pinta"
Changes:
--------
--- /work/SRC/openSUSE:Factory/pinta/pinta.changes 2012-10-03 09:55:27.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.pinta.new/pinta.changes 2014-04-16 07:35:18.000000000 +0200
@@ -1,0 +2,5 @@
+Sat Apr 12 09:13:48 UTC 2014 - mailaender(a)opensuse.org
+
+- added %post macros
+
+-------------------------------------------------------------------
@@ -8 +13 @@
-Wed Jun 13 04:50:23 UTC 2012 - Matthias Mailänder
+Wed Jun 13 04:50:23 UTC 2012 - mailaender(a)opensuse.org
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ pinta.spec ++++++
--- /var/tmp/diff_new_pack.VMK8DO/_old 2014-04-16 07:35:19.000000000 +0200
+++ /var/tmp/diff_new_pack.VMK8DO/_new 2014-04-16 07:35:19.000000000 +0200
@@ -1,7 +1,7 @@
#
# spec file for package pinta
#
-# Copyright (c) 2012 SUSE LINUX Products GmbH, Nuernberg, Germany.
+# Copyright (c) 2014 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -30,6 +30,7 @@
BuildRequires: mono-devel >= 2.8
BuildRequires: mono-addins
BuildRequires: update-desktop-files
+BuildRequires: hicolor-icon-theme
Requires: gnome-icon-theme
BuildRoot: %{_tmppath}/%{name}-%{version}-build
BuildArch: noarch
@@ -55,8 +56,15 @@
%suse_update_desktop_file -n %{name}
-%clean
-%{__rm} -rf '%{buildroot}'
+%if 0%{?suse_version} >= 1140
+%post
+%desktop_database_post
+%icon_theme_cache_post
+
+%postun
+%desktop_database_postun
+%icon_theme_cache_postun
+%endif
%files -f %{name}.lang
%defattr(-, root, root)
--
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 mlocate for openSUSE:Factory checked in at 2014-04-16 07:28:42
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/mlocate (Old)
and /work/SRC/openSUSE:Factory/.mlocate.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "mlocate"
Changes:
--------
--- /work/SRC/openSUSE:Factory/mlocate/mlocate.changes 2014-04-03 17:11:23.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.mlocate.new/mlocate.changes 2014-04-16 07:28:44.000000000 +0200
@@ -1,0 +2,6 @@
+Tue Apr 15 09:52:00 UTC 2014 - tchvatal(a)suse.com
+
+- Update once more to always hit the same code and to avoid
+ regressions that are hit only under some setup scenarios.
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ mlocate.cron ++++++
--- /var/tmp/diff_new_pack.ggaVUo/_old 2014-04-16 07:28:45.000000000 +0200
+++ /var/tmp/diff_new_pack.ggaVUo/_new 2014-04-16 07:28:45.000000000 +0200
@@ -56,15 +56,13 @@
# run the updatedb if possible
if [ -x /usr/bin/updatedb ]; then
- if [ -n "${RUN_UPDATEDB_AS}" ] ; then
- # change the perms to the var directory to our desired user
- chown -R "${RUN_UPDATEDB_AS}":root /var/lib/mlocate
- # change the user and run the updatedb under it
- /usr/bin/su "${RUN_UPDATEDB_AS}" -c "/usr/bin/updatedb ${NODEVS} ${UPDATEDB_PRUNEFS} ${UPDATEDB_PRUNEPATHS}"
- else
- # just run it as root
- /usr/bin/updatedb ${NODEVS} ${UPDATEDB_PRUNEFS} ${UPDATEDB_PRUNEPATHS}
+ if [ -z "${RUN_UPDATEDB_AS}" ] ; then
+ RUN_UPDATEDB_AS=root
fi
+ # change the perms to the var directory to our desired user
+ chown -R "${RUN_UPDATEDB_AS}":root /var/lib/mlocate
+ # change the user and run the updatedb under it
+ /usr/bin/su "${RUN_UPDATEDB_AS}" -c "/usr/bin/updatedb ${NODEVS} ${UPDATEDB_PRUNEFS} ${UPDATEDB_PRUNEPATHS}"
else
echo >&2 "Warning: \"/usr/bin/updatedb\" is not executable, unable to run updatedb."
exit 0
--
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 libvirt for openSUSE:Factory checked in at 2014-04-16 07:27:02
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/libvirt (Old)
and /work/SRC/openSUSE:Factory/.libvirt.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "libvirt"
Changes:
--------
--- /work/SRC/openSUSE:Factory/libvirt/libvirt.changes 2014-04-05 16:47:25.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.libvirt.new/libvirt.changes 2014-04-16 07:27:04.000000000 +0200
@@ -1,0 +2,13 @@
+Tue Apr 8 09:44:50 MDT 2014 - jfehlig(a)suse.com
+
+- libxl: Set disk format for empty cdrom device
+ 0e0c1a74-domid-fix.patch, 7a1452f5-libxl-empty-cdrom.patch
+ bnc#872517
+
+-------------------------------------------------------------------
+Mon Apr 7 14:34:59 CST 2014 - cyliu(a)suse.com
+
+- Fate#315125: add NOCOW flag
+ add-nocow-to-vol-xml.patch
+
+-------------------------------------------------------------------
New:
----
0e0c1a74-domid-fix.patch
7a1452f5-libxl-empty-cdrom.patch
add-nocow-to-vol-xml.patch
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ libvirt.spec ++++++
--- /var/tmp/diff_new_pack.mRudzx/_old 2014-04-16 07:27:05.000000000 +0200
+++ /var/tmp/diff_new_pack.mRudzx/_new 2014-04-16 07:27:05.000000000 +0200
@@ -428,10 +428,13 @@
Source2: libvirtd-relocation-server.fw
Source99: baselibs.conf
# Upstream patches
+Patch0: 0e0c1a74-domid-fix.patch
+Patch1: 7a1452f5-libxl-empty-cdrom.patch
# Need to go upstream
Patch100: xen-name-for-devid.patch
Patch101: ia64-clone.patch
Patch102: xen-pv-cdrom.patch
+Patch103: add-nocow-to-vol-xml.patch
# Our patches
Patch200: libvirtd-defaults.patch
Patch201: libvirtd-init-script.patch
@@ -943,9 +946,12 @@
%prep
%setup -q
+%patch0 -p1
+%patch1 -p1
%patch100 -p1
%patch101 -p1
%patch102 -p1
+%patch103 -p1
%patch200 -p1
%patch201 -p1
%patch202 -p1
++++++ 0e0c1a74-domid-fix.patch ++++++
commit 0e0c1a7489a6a04c5060d0fe7fad6337ed98ec01
Author: Stefan Bader <stefan.bader(a)canonical.com>
Date: Thu Mar 27 17:55:02 2014 +0100
libxl: Use id from virDomainObj inside the driver
There is a domain id in the virDomain structure as well as in the
virDomainObj structure. While the former can become stale the latter
is kept up to date. So it is safer to always (virDomainObjPtr)->def->id
internally.
This will fix issues seen when managing Xen guests through libvirt from
virt-manager (not being able to get domain info after define or reboot).
This was caused both though libxlDomainGetInfo() only but there were
a lot of places that might potentially cause issues, too.
Signed-off-by: Stefan Bader <stefan.bader(a)canonical.com>
Index: libvirt-1.2.3/src/libxl/libxl_driver.c
===================================================================
--- libvirt-1.2.3.orig/src/libxl/libxl_driver.c
+++ libvirt-1.2.3/src/libxl/libxl_driver.c
@@ -770,10 +770,10 @@ libxlDomainSuspend(virDomainPtr dom)
priv = vm->privateData;
if (virDomainObjGetState(vm, NULL) != VIR_DOMAIN_PAUSED) {
- if (libxl_domain_pause(priv->ctx, dom->id) != 0) {
+ if (libxl_domain_pause(priv->ctx, vm->def->id) != 0) {
virReportError(VIR_ERR_INTERNAL_ERROR,
_("Failed to suspend domain '%d' with libxenlight"),
- dom->id);
+ vm->def->id);
goto endjob;
}
@@ -829,10 +829,10 @@ libxlDomainResume(virDomainPtr dom)
priv = vm->privateData;
if (virDomainObjGetState(vm, NULL) == VIR_DOMAIN_PAUSED) {
- if (libxl_domain_unpause(priv->ctx, dom->id) != 0) {
+ if (libxl_domain_unpause(priv->ctx, vm->def->id) != 0) {
virReportError(VIR_ERR_INTERNAL_ERROR,
_("Failed to resume domain '%d' with libxenlight"),
- dom->id);
+ vm->def->id);
goto endjob;
}
@@ -883,10 +883,10 @@ libxlDomainShutdownFlags(virDomainPtr do
}
priv = vm->privateData;
- if (libxl_domain_shutdown(priv->ctx, dom->id) != 0) {
+ if (libxl_domain_shutdown(priv->ctx, vm->def->id) != 0) {
virReportError(VIR_ERR_INTERNAL_ERROR,
_("Failed to shutdown domain '%d' with libxenlight"),
- dom->id);
+ vm->def->id);
goto cleanup;
}
@@ -930,10 +930,10 @@ libxlDomainReboot(virDomainPtr dom, unsi
}
priv = vm->privateData;
- if (libxl_domain_reboot(priv->ctx, dom->id) != 0) {
+ if (libxl_domain_reboot(priv->ctx, vm->def->id) != 0) {
virReportError(VIR_ERR_INTERNAL_ERROR,
_("Failed to reboot domain '%d' with libxenlight"),
- dom->id);
+ vm->def->id);
goto cleanup;
}
ret = 0;
@@ -974,7 +974,7 @@ libxlDomainDestroyFlags(virDomainPtr dom
priv = vm->privateData;
if (libxl_domain_destroy(priv->ctx, vm->def->id, NULL) < 0) {
virReportError(VIR_ERR_INTERNAL_ERROR,
- _("Failed to destroy domain '%d'"), dom->id);
+ _("Failed to destroy domain '%d'"), vm->def->id);
goto cleanup;
}
@@ -1105,10 +1105,10 @@ libxlDomainSetMemoryFlags(virDomainPtr d
if (flags & VIR_DOMAIN_MEM_LIVE) {
priv = vm->privateData;
- if (libxl_domain_setmaxmem(priv->ctx, dom->id, newmem) < 0) {
+ if (libxl_domain_setmaxmem(priv->ctx, vm->def->id, newmem) < 0) {
virReportError(VIR_ERR_INTERNAL_ERROR,
_("Failed to set maximum memory for domain '%d'"
- " with libxenlight"), dom->id);
+ " with libxenlight"), vm->def->id);
goto endjob;
}
}
@@ -1138,13 +1138,13 @@ libxlDomainSetMemoryFlags(virDomainPtr d
priv = vm->privateData;
/* Unlock virDomainObj while ballooning memory */
virObjectUnlock(vm);
- res = libxl_set_memory_target(priv->ctx, dom->id, newmem, 0,
+ res = libxl_set_memory_target(priv->ctx, vm->def->id, newmem, 0,
/* force */ 1);
virObjectLock(vm);
if (res < 0) {
virReportError(VIR_ERR_INTERNAL_ERROR,
_("Failed to set memory for domain '%d'"
- " with libxenlight"), dom->id);
+ " with libxenlight"), vm->def->id);
goto endjob;
}
}
@@ -1202,9 +1202,10 @@ libxlDomainGetInfo(virDomainPtr dom, vir
info->memory = vm->def->mem.cur_balloon;
info->maxMem = vm->def->mem.max_balloon;
} else {
- if (libxl_domain_info(priv->ctx, &d_info, dom->id) != 0) {
+ if (libxl_domain_info(priv->ctx, &d_info, vm->def->id) != 0) {
virReportError(VIR_ERR_INTERNAL_ERROR,
- _("libxl_domain_info failed for domain '%d'"), dom->id);
+ _("libxl_domain_info failed for domain '%d'"),
+ vm->def->id);
goto cleanup;
}
info->cpuTime = d_info.cpu_time;
@@ -1483,11 +1484,11 @@ libxlDomainCoreDump(virDomainPtr dom, co
if (!(flags & VIR_DUMP_LIVE) &&
virDomainObjGetState(vm, NULL) == VIR_DOMAIN_RUNNING) {
- if (libxl_domain_pause(priv->ctx, dom->id) != 0) {
+ if (libxl_domain_pause(priv->ctx, vm->def->id) != 0) {
virReportError(VIR_ERR_INTERNAL_ERROR,
_("Before dumping core, failed to suspend domain '%d'"
" with libxenlight"),
- dom->id);
+ vm->def->id);
goto endjob;
}
virDomainObjSetState(vm, VIR_DOMAIN_PAUSED, VIR_DOMAIN_PAUSED_DUMP);
@@ -1496,20 +1497,20 @@ libxlDomainCoreDump(virDomainPtr dom, co
/* Unlock virDomainObj while dumping core */
virObjectUnlock(vm);
- ret = libxl_domain_core_dump(priv->ctx, dom->id, to, NULL);
+ ret = libxl_domain_core_dump(priv->ctx, vm->def->id, to, NULL);
virObjectLock(vm);
if (ret != 0) {
virReportError(VIR_ERR_INTERNAL_ERROR,
_("Failed to dump core of domain '%d' with libxenlight"),
- dom->id);
+ vm->def->id);
ret = -1;
goto unpause;
}
if (flags & VIR_DUMP_CRASH) {
- if (libxl_domain_destroy(priv->ctx, dom->id, NULL) < 0) {
+ if (libxl_domain_destroy(priv->ctx, vm->def->id, NULL) < 0) {
virReportError(VIR_ERR_INTERNAL_ERROR,
- _("Failed to destroy domain '%d'"), dom->id);
+ _("Failed to destroy domain '%d'"), vm->def->id);
goto unpause;
}
@@ -1524,10 +1525,10 @@ libxlDomainCoreDump(virDomainPtr dom, co
unpause:
if (virDomainObjIsActive(vm) && paused) {
- if (libxl_domain_unpause(priv->ctx, dom->id) != 0) {
+ if (libxl_domain_unpause(priv->ctx, vm->def->id) != 0) {
virReportError(VIR_ERR_INTERNAL_ERROR,
_("After dumping core, failed to resume domain '%d' with"
- " libxenlight"), dom->id);
+ " libxenlight"), vm->def->id);
} else {
virDomainObjSetState(vm, VIR_DOMAIN_RUNNING,
VIR_DOMAIN_RUNNING_UNPAUSED);
@@ -1786,19 +1787,19 @@ libxlDomainSetVcpusFlags(virDomainPtr do
break;
case VIR_DOMAIN_VCPU_LIVE:
- if (libxl_set_vcpuonline(priv->ctx, dom->id, &map) != 0) {
+ if (libxl_set_vcpuonline(priv->ctx, vm->def->id, &map) != 0) {
virReportError(VIR_ERR_INTERNAL_ERROR,
_("Failed to set vcpus for domain '%d'"
- " with libxenlight"), dom->id);
+ " with libxenlight"), vm->def->id);
goto endjob;
}
break;
case VIR_DOMAIN_VCPU_LIVE | VIR_DOMAIN_VCPU_CONFIG:
- if (libxl_set_vcpuonline(priv->ctx, dom->id, &map) != 0) {
+ if (libxl_set_vcpuonline(priv->ctx, vm->def->id, &map) != 0) {
virReportError(VIR_ERR_INTERNAL_ERROR,
_("Failed to set vcpus for domain '%d'"
- " with libxenlight"), dom->id);
+ " with libxenlight"), vm->def->id);
goto endjob;
}
def->vcpus = nvcpus;
@@ -1934,7 +1935,7 @@ libxlDomainPinVcpuFlags(virDomainPtr dom
libxlDomainObjPrivatePtr priv;
priv = vm->privateData;
- if (libxl_set_vcpuaffinity(priv->ctx, dom->id, vcpu, &map) != 0) {
+ if (libxl_set_vcpuaffinity(priv->ctx, vm->def->id, vcpu, &map) != 0) {
virReportError(VIR_ERR_INTERNAL_ERROR,
_("Failed to pin vcpu '%d' with libxenlight"),
vcpu);
@@ -2099,11 +2100,11 @@ libxlDomainGetVcpus(virDomainPtr dom, vi
}
priv = vm->privateData;
- if ((vcpuinfo = libxl_list_vcpu(priv->ctx, dom->id, &maxcpu,
+ if ((vcpuinfo = libxl_list_vcpu(priv->ctx, vm->def->id, &maxcpu,
&hostcpus)) == NULL) {
virReportError(VIR_ERR_INTERNAL_ERROR,
_("Failed to list vcpus for domain '%d' with libxenlight"),
- dom->id);
+ vm->def->id);
goto cleanup;
}
@@ -3608,7 +3609,7 @@ libxlDomainGetSchedulerType(virDomainPtr
default:
virReportError(VIR_ERR_INTERNAL_ERROR,
_("Failed to get scheduler id for domain '%d'"
- " with libxenlight"), dom->id);
+ " with libxenlight"), vm->def->id);
goto cleanup;
}
@@ -3659,10 +3660,10 @@ libxlDomainGetSchedulerParametersFlags(v
goto cleanup;
}
- if (libxl_domain_sched_params_get(priv->ctx, dom->id, &sc_info) != 0) {
+ if (libxl_domain_sched_params_get(priv->ctx, vm->def->id, &sc_info) != 0) {
virReportError(VIR_ERR_INTERNAL_ERROR,
_("Failed to get scheduler parameters for domain '%d'"
- " with libxenlight"), dom->id);
+ " with libxenlight"), vm->def->id);
goto cleanup;
}
@@ -3740,10 +3741,10 @@ libxlDomainSetSchedulerParametersFlags(v
goto endjob;
}
- if (libxl_domain_sched_params_get(priv->ctx, dom->id, &sc_info) != 0) {
+ if (libxl_domain_sched_params_get(priv->ctx, vm->def->id, &sc_info) != 0) {
virReportError(VIR_ERR_INTERNAL_ERROR,
_("Failed to get scheduler parameters for domain '%d'"
- " with libxenlight"), dom->id);
+ " with libxenlight"), vm->def->id);
goto endjob;
}
@@ -3756,10 +3757,10 @@ libxlDomainSetSchedulerParametersFlags(v
sc_info.cap = params[i].value.ui;
}
- if (libxl_domain_sched_params_set(priv->ctx, dom->id, &sc_info) != 0) {
+ if (libxl_domain_sched_params_set(priv->ctx, vm->def->id, &sc_info) != 0) {
virReportError(VIR_ERR_INTERNAL_ERROR,
_("Failed to set scheduler parameters for domain '%d'"
- " with libxenlight"), dom->id);
+ " with libxenlight"), vm->def->id);
goto endjob;
}
++++++ 7a1452f5-libxl-empty-cdrom.patch ++++++
commit 7a1452f5334f98680187ae6d11fe2a49c1b38548
Author: Stefan Bader <stefan.bader(a)canonical.com>
Date: Thu Mar 27 17:55:03 2014 +0100
libxl: Set disk format for empty cdrom device
The XML config for a CDROM device can be without a source path,
indicating that there is no media present. Without this change
the libxl driver fails to start a guest in that case because
the libxl library checks for the LIBXL_DISK_FORMAT_EMPTY format
type and tries to stat the NULL pointer that gets passed on.
> libxl: error: libxl_device.c:265:libxl__device_disk_set_backend:
> Disk vdev=hdc failed to stat: (null): Bad address
Signed-off-by: Stefan Bader <stefan.bader(a)canonical.com>
Index: libvirt-1.2.3/src/libxl/libxl_conf.c
===================================================================
--- libvirt-1.2.3.orig/src/libxl/libxl_conf.c
+++ libvirt-1.2.3/src/libxl/libxl_conf.c
@@ -827,6 +827,9 @@ libxlMakeDisk(virDomainDiskDefPtr l_disk
x_disk->removable = 1;
x_disk->readwrite = !l_disk->readonly;
x_disk->is_cdrom = l_disk->device == VIR_DOMAIN_DISK_DEVICE_CDROM ? 1 : 0;
+ /* An empty CDROM must have the empty format, otherwise libxl fails. */
+ if (x_disk->is_cdrom && !x_disk->pdev_path)
+ x_disk->format = LIBXL_DISK_FORMAT_EMPTY;
if (l_disk->transient) {
virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
_("libxenlight does not support transient disks"));
++++++ add-nocow-to-vol-xml.patch ++++++
Index: libvirt-1.2.3/docs/schemas/storagevol.rng
===================================================================
--- libvirt-1.2.3.orig/docs/schemas/storagevol.rng
+++ libvirt-1.2.3/docs/schemas/storagevol.rng
@@ -139,6 +139,11 @@
<ref name='compat'/>
</optional>
<optional>
+ <element name='nocow'>
+ <empty/>
+ </element>
+ </optional>
+ <optional>
<ref name='fileFormatFeatures'/>
</optional>
</interleave>
Index: libvirt-1.2.3/src/conf/storage_conf.c
===================================================================
--- libvirt-1.2.3.orig/src/conf/storage_conf.c
+++ libvirt-1.2.3/src/conf/storage_conf.c
@@ -1401,6 +1401,9 @@ virStorageVolDefParseXML(virStoragePoolD
virStringFreeList(version);
}
+ if (virXPathNode("./target/nocow", ctxt))
+ ret->target.nocow = true;
+
if (options->featureFromString && virXPathNode("./target/features", ctxt)) {
if ((n = virXPathNodeSet("./target/features/*", ctxt, &nodes)) < 0)
goto error;
Index: libvirt-1.2.3/src/conf/storage_conf.h
===================================================================
--- libvirt-1.2.3.orig/src/conf/storage_conf.h
+++ libvirt-1.2.3/src/conf/storage_conf.h
@@ -90,6 +90,7 @@ struct _virStorageVolTarget {
virStorageEncryptionPtr encryption;
virBitmapPtr features;
char *compat;
+ bool nocow;
};
typedef struct _virStorageVolDef virStorageVolDef;
Index: libvirt-1.2.3/src/storage/storage_backend.c
===================================================================
--- libvirt-1.2.3.orig/src/storage/storage_backend.c
+++ libvirt-1.2.3/src/storage/storage_backend.c
@@ -37,6 +37,9 @@
#ifdef __linux__
# include <sys/ioctl.h>
# include <linux/fs.h>
+# ifndef FS_NOCOW_FL
+# define FS_NOCOW_FL 0x00800000 /* Do not cow file */
+# endif
#endif
#if WITH_SELINUX
@@ -449,6 +452,21 @@ virStorageBackendCreateRaw(virConnectPtr
goto cleanup;
}
+ if (vol->target.nocow) {
+#ifdef __linux__
+ int attr;
+
+ /* Set NOCOW flag. This is an optimisation for btrfs.
+ * The FS_IOC_SETFLAGS ioctl return value will be ignored since any
+ * failure of this operation should not block the left work.
+ */
+ if (ioctl(fd, FS_IOC_GETFLAGS, &attr) == 0) {
+ attr |= FS_NOCOW_FL;
+ ioctl(fd, FS_IOC_SETFLAGS, &attr);
+ }
+#endif
+ }
+
if ((ret = createRawFile(fd, vol, inputvol)) < 0)
/* createRawFile already reported the exact error. */
ret = -1;
@@ -712,6 +730,7 @@ virStorageBackendCreateQemuImgOpts(char
bool preallocate,
int format,
const char *compat,
+ bool nocow,
virBitmapPtr features)
{
virBuffer buf = VIR_BUFFER_INITIALIZER;
@@ -724,6 +743,8 @@ virStorageBackendCreateQemuImgOpts(char
virBufferAddLit(&buf, "encryption=on,");
if (preallocate)
virBufferAddLit(&buf, "preallocation=metadata,");
+ if (nocow)
+ virBufferAddLit(&buf, "nocow=on,");
if (compat)
virBufferAsprintf(&buf, "compat=%s,", compat);
@@ -945,6 +966,7 @@ virStorageBackendCreateQemuImgCmd(virCon
do_encryption, preallocate,
vol->target.format,
compat,
+ vol->target.nocow,
vol->target.features) < 0) {
virCommandFree(cmd);
return NULL;
++++++ fix-pci-attach-xen-driver.patch ++++++
--- /var/tmp/diff_new_pack.mRudzx/_old 2014-04-16 07:27:05.000000000 +0200
+++ /var/tmp/diff_new_pack.mRudzx/_new 2014-04-16 07:27:05.000000000 +0200
@@ -8,11 +8,11 @@
This patch changes the xend driver to always call 'device_configure' for
PCI devices to be consistent with the usage in the xen tools.
-Index: libvirt-1.2.2/src/xen/xend_internal.c
+Index: libvirt-1.2.3/src/xen/xend_internal.c
===================================================================
---- libvirt-1.2.2.orig/src/xen/xend_internal.c
-+++ libvirt-1.2.2/src/xen/xend_internal.c
-@@ -2217,6 +2217,7 @@ xenDaemonAttachDeviceFlags(virConnectPtr
+--- libvirt-1.2.3.orig/src/xen/xend_internal.c
++++ libvirt-1.2.3/src/xen/xend_internal.c
+@@ -2219,6 +2219,7 @@ xenDaemonAttachDeviceFlags(virConnectPtr
virBuffer buf = VIR_BUFFER_INITIALIZER;
char class[8], ref[80];
char *target = NULL;
@@ -20,7 +20,7 @@
virCheckFlags(VIR_DOMAIN_AFFECT_LIVE | VIR_DOMAIN_AFFECT_CONFIG, -1);
-@@ -2315,8 +2316,18 @@ xenDaemonAttachDeviceFlags(virConnectPtr
+@@ -2317,8 +2318,18 @@ xenDaemonAttachDeviceFlags(virConnectPtr
}
sexpr = virBufferContentAndReset(&buf);
++++++ ia64-clone.patch ++++++
--- /var/tmp/diff_new_pack.mRudzx/_old 2014-04-16 07:27:05.000000000 +0200
+++ /var/tmp/diff_new_pack.mRudzx/_new 2014-04-16 07:27:05.000000000 +0200
@@ -1,8 +1,8 @@
-Index: libvirt-1.2.2/src/lxc/lxc_container.c
+Index: libvirt-1.2.3/src/lxc/lxc_container.c
===================================================================
---- libvirt-1.2.2.orig/src/lxc/lxc_container.c
-+++ libvirt-1.2.2/src/lxc/lxc_container.c
-@@ -162,12 +162,19 @@ int lxcContainerHasReboot(void)
+--- libvirt-1.2.3.orig/src/lxc/lxc_container.c
++++ libvirt-1.2.3/src/lxc/lxc_container.c
+@@ -164,12 +164,19 @@ int lxcContainerHasReboot(void)
VIR_FREE(buf);
cmd = v ? LINUX_REBOOT_CMD_CAD_ON : LINUX_REBOOT_CMD_CAD_OFF;
@@ -22,7 +22,7 @@
VIR_FREE(stack);
if (cpid < 0) {
virReportSystemError(errno, "%s",
-@@ -2004,6 +2011,9 @@ int lxcContainerStart(virDomainDefPtr de
+@@ -2007,6 +2014,9 @@ int lxcContainerStart(virDomainDefPtr de
.handshakefd = handshakefd
};
@@ -32,7 +32,7 @@
/* allocate a stack for the container */
if (VIR_ALLOC_N(stack, stacksize) < 0)
return -1;
-@@ -2029,7 +2039,11 @@ int lxcContainerStart(virDomainDefPtr de
+@@ -2032,7 +2042,11 @@ int lxcContainerStart(virDomainDefPtr de
cflags |= CLONE_NEWNET;
}
@@ -44,7 +44,7 @@
VIR_FREE(stack);
VIR_DEBUG("clone() completed, new container PID is %d", pid);
-@@ -2063,12 +2077,19 @@ int lxcContainerAvailable(int features)
+@@ -2066,12 +2080,19 @@ int lxcContainerAvailable(int features)
if (features & LXC_CONTAINER_FEATURE_NET)
flags |= CLONE_NEWNET;
++++++ libvirt-guests-init-script.patch ++++++
--- /var/tmp/diff_new_pack.mRudzx/_old 2014-04-16 07:27:05.000000000 +0200
+++ /var/tmp/diff_new_pack.mRudzx/_new 2014-04-16 07:27:05.000000000 +0200
@@ -1,9 +1,9 @@
Adjust libvirt-guests init files to conform to SUSE standards
-Index: libvirt-1.2.2/tools/libvirt-guests.init.in
+Index: libvirt-1.2.3/tools/libvirt-guests.init.in
===================================================================
---- libvirt-1.2.2.orig/tools/libvirt-guests.init.in
-+++ libvirt-1.2.2/tools/libvirt-guests.init.in
+--- libvirt-1.2.3.orig/tools/libvirt-guests.init.in
++++ libvirt-1.2.3/tools/libvirt-guests.init.in
@@ -3,15 +3,15 @@
# the following is the LSB init header
#
@@ -28,10 +28,10 @@
### END INIT INFO
# the following is chkconfig init header
-Index: libvirt-1.2.2/tools/libvirt-guests.sh.in
+Index: libvirt-1.2.3/tools/libvirt-guests.sh.in
===================================================================
---- libvirt-1.2.2.orig/tools/libvirt-guests.sh.in
-+++ libvirt-1.2.2/tools/libvirt-guests.sh.in
+--- libvirt-1.2.3.orig/tools/libvirt-guests.sh.in
++++ libvirt-1.2.3/tools/libvirt-guests.sh.in
@@ -16,14 +16,13 @@
# License along with this library. If not, see
# <http://www.gnu.org/licenses/>.
@@ -189,10 +189,10 @@
esac
-exit $RETVAL
+rc_exit
-Index: libvirt-1.2.2/tools/libvirt-guests.sysconf
+Index: libvirt-1.2.3/tools/libvirt-guests.sysconf
===================================================================
---- libvirt-1.2.2.orig/tools/libvirt-guests.sysconf
-+++ libvirt-1.2.2/tools/libvirt-guests.sysconf
+--- libvirt-1.2.3.orig/tools/libvirt-guests.sysconf
++++ libvirt-1.2.3/tools/libvirt-guests.sysconf
@@ -1,19 +1,29 @@
+## Path: System/Virtualization/libvirt-guests
+
++++++ libvirt-suse-netcontrol.patch ++++++
--- /var/tmp/diff_new_pack.mRudzx/_old 2014-04-16 07:27:05.000000000 +0200
+++ /var/tmp/diff_new_pack.mRudzx/_new 2014-04-16 07:27:05.000000000 +0200
@@ -1,7 +1,7 @@
-Index: libvirt-1.2.2/configure.ac
+Index: libvirt-1.2.3/configure.ac
===================================================================
---- libvirt-1.2.2.orig/configure.ac
-+++ libvirt-1.2.2/configure.ac
+--- libvirt-1.2.3.orig/configure.ac
++++ libvirt-1.2.3/configure.ac
@@ -231,6 +231,7 @@ LIBVIRT_CHECK_FUSE
LIBVIRT_CHECK_GLUSTER
LIBVIRT_CHECK_HAL
@@ -10,7 +10,7 @@
LIBVIRT_CHECK_NUMACTL
LIBVIRT_CHECK_OPENWSMAN
LIBVIRT_CHECK_PCIACCESS
-@@ -2368,11 +2369,12 @@ if test "$with_libvirtd" = "no" ; then
+@@ -2374,11 +2375,12 @@ if test "$with_libvirtd" = "no" ; then
with_interface=no
fi
@@ -26,7 +26,7 @@
esac
if test "$with_interface" = "yes" ; then
-@@ -2766,6 +2768,7 @@ LIBVIRT_RESULT_FUSE
+@@ -2772,6 +2774,7 @@ LIBVIRT_RESULT_FUSE
LIBVIRT_RESULT_GLUSTER
LIBVIRT_RESULT_HAL
LIBVIRT_RESULT_NETCF
@@ -34,11 +34,11 @@
LIBVIRT_RESULT_NUMACTL
LIBVIRT_RESULT_OPENWSMAN
LIBVIRT_RESULT_PCIACCESS
-Index: libvirt-1.2.2/src/Makefile.am
+Index: libvirt-1.2.3/src/Makefile.am
===================================================================
---- libvirt-1.2.2.orig/src/Makefile.am
-+++ libvirt-1.2.2/src/Makefile.am
-@@ -801,6 +801,10 @@ if WITH_NETCF
+--- libvirt-1.2.3.orig/src/Makefile.am
++++ libvirt-1.2.3/src/Makefile.am
+@@ -807,6 +807,10 @@ if WITH_NETCF
INTERFACE_DRIVER_SOURCES += \
interface/interface_backend_netcf.c
endif WITH_NETCF
@@ -49,7 +49,7 @@
if WITH_UDEV
INTERFACE_DRIVER_SOURCES += \
interface/interface_backend_udev.c
-@@ -1386,10 +1390,15 @@ if WITH_NETCF
+@@ -1396,10 +1400,15 @@ if WITH_NETCF
libvirt_driver_interface_la_CFLAGS += $(NETCF_CFLAGS)
libvirt_driver_interface_la_LIBADD += $(NETCF_LIBS)
else ! WITH_NETCF
@@ -65,11 +65,11 @@
endif ! WITH_NETCF
if WITH_DRIVER_MODULES
libvirt_driver_interface_la_LIBADD += ../gnulib/lib/libgnu.la
-Index: libvirt-1.2.2/tools/virsh.c
+Index: libvirt-1.2.3/tools/virsh.c
===================================================================
---- libvirt-1.2.2.orig/tools/virsh.c
-+++ libvirt-1.2.2/tools/virsh.c
-@@ -3209,6 +3209,8 @@ vshShowVersion(vshControl *ctl ATTRIBUTE
+--- libvirt-1.2.3.orig/tools/virsh.c
++++ libvirt-1.2.3/tools/virsh.c
+@@ -3251,6 +3251,8 @@ vshShowVersion(vshControl *ctl ATTRIBUTE
vshPrint(ctl, " Interface");
# if defined(WITH_NETCF)
vshPrint(ctl, " netcf");
@@ -78,10 +78,10 @@
# elif defined(WITH_UDEV)
vshPrint(ctl, " udev");
# endif
-Index: libvirt-1.2.2/src/interface/interface_backend_netcf.c
+Index: libvirt-1.2.3/src/interface/interface_backend_netcf.c
===================================================================
---- libvirt-1.2.2.orig/src/interface/interface_backend_netcf.c
-+++ libvirt-1.2.2/src/interface/interface_backend_netcf.c
+--- libvirt-1.2.3.orig/src/interface/interface_backend_netcf.c
++++ libvirt-1.2.3/src/interface/interface_backend_netcf.c
@@ -23,7 +23,12 @@
#include <config.h>
@@ -96,7 +96,7 @@
#include "virerror.h"
#include "datatypes.h"
-@@ -63,6 +68,37 @@ VIR_ONCE_GLOBAL_INIT(virNetcfDriverState
+@@ -65,6 +70,37 @@ VIR_ONCE_GLOBAL_INIT(virNetcfDriverState
static virNetcfDriverStatePtr driverState = NULL;
@@ -134,7 +134,7 @@
static void
virNetcfDriverStateDispose(void *obj)
-@@ -85,7 +121,22 @@ netcfStateInitialize(bool privileged ATT
+@@ -87,7 +123,22 @@ netcfStateInitialize(bool privileged ATT
if (!(driverState = virObjectLockableNew(virNetcfDriverStateClass)))
return -1;
@@ -157,7 +157,7 @@
if (ncf_init(&driverState->netcf, NULL) != 0) {
virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
_("failed to initialize netcf"));
-@@ -93,6 +144,7 @@ netcfStateInitialize(bool privileged ATT
+@@ -95,6 +146,7 @@ netcfStateInitialize(bool privileged ATT
driverState = NULL;
return -1;
}
@@ -165,11 +165,11 @@
return 0;
}
-Index: libvirt-1.2.2/src/interface/interface_driver.c
+Index: libvirt-1.2.3/src/interface/interface_driver.c
===================================================================
---- libvirt-1.2.2.orig/src/interface/interface_driver.c
-+++ libvirt-1.2.2/src/interface/interface_driver.c
-@@ -28,8 +28,15 @@ interfaceRegister(void) {
+--- libvirt-1.2.3.orig/src/interface/interface_driver.c
++++ libvirt-1.2.3/src/interface/interface_driver.c
+@@ -30,8 +30,15 @@ interfaceRegister(void)
if (netcfIfaceRegister() == 0)
return 0;
#endif /* WITH_NETCF */
@@ -186,10 +186,10 @@
if (udevIfaceRegister() == 0)
return 0;
#endif /* WITH_UDEV */
-Index: libvirt-1.2.2/m4/virt-netcontrol.m4
+Index: libvirt-1.2.3/m4/virt-netcontrol.m4
===================================================================
--- /dev/null
-+++ libvirt-1.2.2/m4/virt-netcontrol.m4
++++ libvirt-1.2.3/m4/virt-netcontrol.m4
@@ -0,0 +1,35 @@
+dnl The libnetcontrol library
+dnl
++++++ libvirtd-defaults.patch ++++++
--- /var/tmp/diff_new_pack.mRudzx/_old 2014-04-16 07:27:05.000000000 +0200
+++ /var/tmp/diff_new_pack.mRudzx/_new 2014-04-16 07:27:05.000000000 +0200
@@ -1,7 +1,7 @@
-Index: libvirt-1.2.2/daemon/libvirtd.conf
+Index: libvirt-1.2.3/daemon/libvirtd.conf
===================================================================
---- libvirt-1.2.2.orig/daemon/libvirtd.conf
-+++ libvirt-1.2.2/daemon/libvirtd.conf
+--- libvirt-1.2.3.orig/daemon/libvirtd.conf
++++ libvirt-1.2.3/daemon/libvirtd.conf
@@ -18,8 +18,8 @@
# It is necessary to setup a CA and issue server certificates before
# using this capability.
@@ -13,11 +13,11 @@
# Listen for unencrypted TCP connections on the public TCP/IP port.
# NB, must pass the --listen flag to the libvirtd process for this to
-Index: libvirt-1.2.2/daemon/libvirtd-config.c
+Index: libvirt-1.2.3/daemon/libvirtd-config.c
===================================================================
---- libvirt-1.2.2.orig/daemon/libvirtd-config.c
-+++ libvirt-1.2.2/daemon/libvirtd-config.c
-@@ -222,7 +222,7 @@ daemonConfigNew(bool privileged ATTRIBUT
+--- libvirt-1.2.3.orig/daemon/libvirtd-config.c
++++ libvirt-1.2.3/daemon/libvirtd-config.c
+@@ -229,7 +229,7 @@ daemonConfigNew(bool privileged ATTRIBUT
if (VIR_ALLOC(data) < 0)
return NULL;
++++++ support-managed-pci-xen-driver.patch ++++++
--- /var/tmp/diff_new_pack.mRudzx/_old 2014-04-16 07:27:05.000000000 +0200
+++ /var/tmp/diff_new_pack.mRudzx/_new 2014-04-16 07:27:05.000000000 +0200
@@ -8,11 +8,11 @@
src/xenxs/xen_xm.c | 28 +++++++++++++++++++++++++++-
2 files changed, 35 insertions(+), 15 deletions(-)
-Index: libvirt-1.2.2/src/xenxs/xen_sxpr.c
+Index: libvirt-1.2.3/src/xenxs/xen_sxpr.c
===================================================================
---- libvirt-1.2.2.orig/src/xenxs/xen_sxpr.c
-+++ libvirt-1.2.2/src/xenxs/xen_sxpr.c
-@@ -998,6 +998,7 @@ xenParseSxprPCI(virDomainDefPtr def,
+--- libvirt-1.2.3.orig/src/xenxs/xen_sxpr.c
++++ libvirt-1.2.3/src/xenxs/xen_sxpr.c
+@@ -997,6 +997,7 @@ xenParseSxprPCI(virDomainDefPtr def,
int busID;
int slotID;
int funcID;
@@ -20,7 +20,7 @@
node = cur->u.s.car;
if (!sexpr_lookup(node, "dev"))
-@@ -1045,11 +1046,13 @@ xenParseSxprPCI(virDomainDefPtr def,
+@@ -1044,11 +1045,13 @@ xenParseSxprPCI(virDomainDefPtr def,
goto error;
}
@@ -35,7 +35,7 @@
dev->source.subsys.type = VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_PCI;
dev->source.subsys.u.pci.addr.domain = domainID;
dev->source.subsys.u.pci.addr.bus = busID;
-@@ -1993,11 +1996,15 @@ static void
+@@ -1991,11 +1994,15 @@ static void
xenFormatSxprPCI(virDomainHostdevDefPtr def,
virBufferPtr buf)
{
@@ -52,7 +52,7 @@
}
-@@ -2016,12 +2023,6 @@ xenFormatSxprOnePCI(virDomainHostdevDefP
+@@ -2014,12 +2021,6 @@ xenFormatSxprOnePCI(virDomainHostdevDefP
virBufferPtr buf,
int detach)
{
@@ -65,7 +65,7 @@
virBufferAddLit(buf, "(pci ");
xenFormatSxprPCI(def, buf);
if (detach)
-@@ -2076,12 +2077,6 @@ xenFormatSxprAllPCI(virDomainDefPtr def,
+@@ -2074,12 +2075,6 @@ xenFormatSxprAllPCI(virDomainDefPtr def,
for (i = 0; i < def->nhostdevs; i++) {
if (def->hostdevs[i]->mode == VIR_DOMAIN_HOSTDEV_MODE_SUBSYS &&
def->hostdevs[i]->source.subsys.type == VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_PCI) {
@@ -78,11 +78,11 @@
xenFormatSxprPCI(def->hostdevs[i], buf);
}
}
-Index: libvirt-1.2.2/src/xenxs/xen_xm.c
+Index: libvirt-1.2.3/src/xenxs/xen_xm.c
===================================================================
---- libvirt-1.2.2.orig/src/xenxs/xen_xm.c
-+++ libvirt-1.2.2/src/xenxs/xen_xm.c
-@@ -802,6 +802,8 @@ xenParseXM(virConfPtr conf, int xendConf
+--- libvirt-1.2.3.orig/src/xenxs/xen_xm.c
++++ libvirt-1.2.3/src/xenxs/xen_xm.c
+@@ -807,6 +807,8 @@ xenParseXM(virConfPtr conf, int xendConf
int busID;
int slotID;
int funcID;
@@ -91,7 +91,7 @@
domain[0] = bus[0] = slot[0] = func[0] = '\0';
-@@ -811,6 +813,11 @@ xenParseXM(virConfPtr conf, int xendConf
+@@ -816,6 +818,11 @@ xenParseXM(virConfPtr conf, int xendConf
/* pci=['0000:00:1b.0','0000:00:13.0'] */
if (!(key = list->str))
goto skippci;
@@ -103,7 +103,7 @@
if (!(nextkey = strchr(key, ':')))
goto skippci;
-@@ -859,10 +866,30 @@ xenParseXM(virConfPtr conf, int xendConf
+@@ -864,10 +871,30 @@ xenParseXM(virConfPtr conf, int xendConf
if (virStrToLong_i(func, NULL, 16, &funcID) < 0)
goto skippci;
++++++ virtlockd-init-script.patch ++++++
--- /var/tmp/diff_new_pack.mRudzx/_old 2014-04-16 07:27:05.000000000 +0200
+++ /var/tmp/diff_new_pack.mRudzx/_new 2014-04-16 07:27:05.000000000 +0200
@@ -1,9 +1,9 @@
Adjust virtlockd init files to conform to SUSE standards
-Index: libvirt-1.2.2/src/locking/virtlockd.sysconf
+Index: libvirt-1.2.3/src/locking/virtlockd.sysconf
===================================================================
---- libvirt-1.2.2.orig/src/locking/virtlockd.sysconf
-+++ libvirt-1.2.2/src/locking/virtlockd.sysconf
+--- libvirt-1.2.3.orig/src/locking/virtlockd.sysconf
++++ libvirt-1.2.3/src/locking/virtlockd.sysconf
@@ -1,3 +1,7 @@
+## Path: System/Virtualization/virtlockd
+
@@ -12,10 +12,10 @@
#
# Pass extra arguments to virtlockd
#VIRTLOCKD_ARGS=
-Index: libvirt-1.2.2/src/locking/virtlockd.init.in
+Index: libvirt-1.2.3/src/locking/virtlockd.init.in
===================================================================
---- libvirt-1.2.2.orig/src/locking/virtlockd.init.in
-+++ libvirt-1.2.2/src/locking/virtlockd.init.in
+--- libvirt-1.2.3.orig/src/locking/virtlockd.init.in
++++ libvirt-1.2.3/src/locking/virtlockd.init.in
@@ -4,12 +4,14 @@
# http://www.linux-foundation.org/spec//booksets/LSB-Core-generic/LSB-Core-ge…
#
++++++ xen-pv-cdrom.patch ++++++
--- /var/tmp/diff_new_pack.mRudzx/_old 2014-04-16 07:27:05.000000000 +0200
+++ /var/tmp/diff_new_pack.mRudzx/_new 2014-04-16 07:27:05.000000000 +0200
@@ -1,8 +1,8 @@
-Index: libvirt-1.2.2/src/xenxs/xen_sxpr.c
+Index: libvirt-1.2.3/src/xenxs/xen_sxpr.c
===================================================================
---- libvirt-1.2.2.orig/src/xenxs/xen_sxpr.c
-+++ libvirt-1.2.2/src/xenxs/xen_sxpr.c
-@@ -330,7 +330,7 @@ error:
+--- libvirt-1.2.3.orig/src/xenxs/xen_sxpr.c
++++ libvirt-1.2.3/src/xenxs/xen_sxpr.c
+@@ -332,7 +332,7 @@ xenParseSxprChar(const char *value,
static int
xenParseSxprDisks(virDomainDefPtr def,
const struct sexpr *root,
@@ -11,7 +11,7 @@
int xendConfigVersion)
{
const struct sexpr *cur, *node;
-@@ -381,7 +381,6 @@ xenParseSxprDisks(virDomainDefPtr def,
+@@ -383,7 +383,6 @@ xenParseSxprDisks(virDomainDefPtr def,
/* There is a case without the uname to the CD-ROM device */
offset = strchr(dst, ':');
if (!offset ||
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
16 Apr '14
Hello community,
here is the log from the commit of package libsocialweb-branding-openSUSE for openSUSE:Factory checked in at 2014-04-16 07:26:55
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/libsocialweb-branding-openSUSE (Old)
and /work/SRC/openSUSE:Factory/.libsocialweb-branding-openSUSE.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "libsocialweb-branding-openSUSE"
Changes:
--------
--- /work/SRC/openSUSE:Factory/libsocialweb-branding-openSUSE/libsocialweb-branding-openSUSE.changes 2013-09-09 10:52:56.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.libsocialweb-branding-openSUSE.new/libsocialweb-branding-openSUSE.changes 2014-04-16 07:26:56.000000000 +0200
@@ -1,0 +2,5 @@
+Tue Apr 15 11:49:11 UTC 2014 - zaitor(a)opensuse.org
+
+- Bump version to 13.2, to prepare for next version of openSUSE.
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ libsocialweb-branding-openSUSE.spec ++++++
--- /var/tmp/diff_new_pack.8orsP1/_old 2014-04-16 07:26:57.000000000 +0200
+++ /var/tmp/diff_new_pack.8orsP1/_new 2014-04-16 07:26:57.000000000 +0200
@@ -19,7 +19,7 @@
%define keydir %{_datadir}/libsocialweb/keys
Name: libsocialweb-branding-openSUSE
-Version: 13.1
+Version: 13.2
Release: 0
Summary: A personal social data server -- API keys from openSUSE
License: SUSE-Public-Domain
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0