openSUSE Commits
Threads by month
- ----- 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
June 2014
- 1 participants
- 1147 discussions
Hello community,
here is the log from the commit of package ImageMagick for openSUSE:Factory checked in at 2014-06-26 07:57:55
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/ImageMagick (Old)
and /work/SRC/openSUSE:Factory/.ImageMagick.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "ImageMagick"
Changes:
--------
--- /work/SRC/openSUSE:Factory/ImageMagick/ImageMagick.changes 2014-06-16 21:43:52.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.ImageMagick.new/ImageMagick.changes 2014-06-26 07:57:57.000000000 +0200
@@ -1,0 +2,8 @@
+Wed Jun 25 07:19:42 UTC 2014 - pgajdos(a)suse.com
+
+- updated to 6.8.9-4
+ * Support RMS argument for -evaluate-sequence and -statistic options.
+ * Pipe image to display program no longer reports an exception.
+ * Check that profile is non-NULL in coders/tiff.c.
+
+-------------------------------------------------------------------
Old:
----
ImageMagick-6.8.9-3.tar.xz
ImageMagick-6.8.9-3.tar.xz.asc
New:
----
ImageMagick-6.8.9-4.tar.xz
ImageMagick-6.8.9-4.tar.xz.asc
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ ImageMagick.spec ++++++
--- /var/tmp/diff_new_pack.JnwjFo/_old 2014-06-26 07:57:58.000000000 +0200
+++ /var/tmp/diff_new_pack.JnwjFo/_new 2014-06-26 07:57:58.000000000 +0200
@@ -63,11 +63,11 @@
%define maj 6
%define mfr_version %{maj}.8.9
-%define mfr_revision 3
+%define mfr_revision 4
%define quantum_depth 16
%define source_version %{mfr_version}-%{mfr_revision}
%define clibver 2
-%define cxxlibver 4
+%define cxxlibver 5
%define libspec -%{maj}_Q%{quantum_depth}
Version: %{mfr_version}.%{mfr_revision}
Release: 0
++++++ ImageMagick-6.8.9-3.tar.xz -> ImageMagick-6.8.9-4.tar.xz ++++++
/work/SRC/openSUSE:Factory/ImageMagick/ImageMagick-6.8.9-3.tar.xz /work/SRC/openSUSE:Factory/.ImageMagick.new/ImageMagick-6.8.9-4.tar.xz differ: char 26, line 1
--
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-qt4 for openSUSE:Factory checked in at 2014-06-26 07:57:54
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-qt4 (Old)
and /work/SRC/openSUSE:Factory/.python-qt4.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-qt4"
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-qt4/python-qt4.changes 2014-03-25 13:27:16.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.python-qt4.new/python-qt4.changes 2014-06-26 07:57:55.000000000 +0200
@@ -1,0 +2,24 @@
+Sun Jun 15 18:46:24 UTC 2014 - lbeltrame(a)kde.org
+
+- Add pyqt4_add_pro_files.diff: fix .pro files not being generated
+ with configure.py
+- Switch back to configure.py as -ng does not generate pyqtconfig4
+ and that is needed by downstream projects (PyKDE4)
+
+-------------------------------------------------------------------
+Thu May 29 02:29:20 UTC 2014 - termim(a)gmail.com
+
+- Update to 4.11
+ - By default a Python slot is only invoked if the underlying C++ instance
+ still exists.
+ - Added the no_receiver_check argument to connect().
+ - Added support for Qt v4.8.6.
+ - Added --target-py-version, --sysroot and --no-tools options to
+ configure-ng.py.
+ - Cross-compiling (specifically to iOS and Android when building against Qt
+ v5) is now supported.
+ - SIP v4.16 is now required.
+ - Bug fixes.
+
+
+-------------------------------------------------------------------
--- /work/SRC/openSUSE:Factory/python-qt4/python3-qt4.changes 2014-03-25 13:27:16.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.python-qt4.new/python3-qt4.changes 2014-06-26 07:57:55.000000000 +0200
@@ -1,0 +2,23 @@
+Sun Jun 15 18:49:31 UTC 2014 - lbeltrame(a)kde.org
+
+- Add pyqt4_add_pro_files.diff: fix .pro files not being generated
+ with configure.py
+- Switch back to configure.py as -ng does not generate pyqtconfig4
+ and that is needed by downstream projects (PyKDE4)
+
+-------------------------------------------------------------------
+Thu May 29 02:30:39 UTC 2014 - termim(a)gmail.com
+
+- Update to 4.11
+ - By default a Python slot is only invoked if the underlying C++ instance
+ still exists.
+ - Added the no_receiver_check argument to connect().
+ - Added support for Qt v4.8.6.
+ - Added --target-py-version, --sysroot and --no-tools options to
+ configure-ng.py.
+ - Cross-compiling (specifically to iOS and Android when building against Qt
+ v5) is now supported.
+ - SIP v4.16 is now required.
+ - Bug fixes.
+
+-------------------------------------------------------------------
Old:
----
PyQt-x11-gpl-4.10.4.tar.gz
New:
----
PyQt-x11-gpl-4.11.tar.gz
pyqt4_add_pro_files.diff
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-qt4.spec ++++++
--- /var/tmp/diff_new_pack.6tuGkg/_old 2014-06-26 07:57:56.000000000 +0200
+++ /var/tmp/diff_new_pack.6tuGkg/_new 2014-06-26 07:57:56.000000000 +0200
@@ -17,7 +17,7 @@
Name: python-qt4
-Version: 4.10.4
+Version: 4.11
Release: 0
Summary: PyQt - python bindings for Qt 4
License: SUSE-GPL-2.0-with-FLOSS-exception or GPL-3.0 or SUSE-NonFree
@@ -27,13 +27,15 @@
Source0: http://sourceforge.net/projects/pyqt/files/PyQt4/PyQt-%{rversion}/PyQt-x11-…
Patch0: link-python.diff
Patch2: build-compare.diff
+# PATCH-FIX-UPSTREAM: Fix .pro files not being generated by configure.py
+Patch3: pyqt4_add_pro_files.diff
BuildRequires: dbus-1-python-devel
BuildRequires: fdupes
BuildRequires: libQtWebKit-devel
BuildRequires: libqt4-devel
BuildRequires: phonon-devel
BuildRequires: python-devel
-BuildRequires: python-sip-devel >= 4.15.1
+BuildRequires: python-sip-devel >= 4.16
%requires_ge dbus-1-python
%requires_ge libqt4-x11
%if 0%{?sles_version} == 10
@@ -86,6 +88,7 @@
%setup -q -n PyQt-x11-gpl-%{rversion}
%patch0 -p1
%patch2
+%patch3 -p1
%build
export CXXFLAGS="%{optflags}"
@@ -110,7 +113,6 @@
%defattr(-,root,root)
%doc README
%{python_sitearch}/PyQt4/
-%exclude %{python_sitearch}/PyQt4/pyqtconfig.py
%{python_sitelib}/dbus/mainloop/qt.so
%files devel
@@ -119,7 +121,6 @@
%{_datadir}/qt4/qsci/
%{_docdir}/python-qt4-devel
%{_libdir}/qt4/plugins/designer/libpyqt4.so
-%{python_sitearch}/PyQt4/pyqtconfig.py
%files utils
%defattr(-,root,root)
++++++ python3-qt4.spec ++++++
--- /var/tmp/diff_new_pack.6tuGkg/_old 2014-06-26 07:57:56.000000000 +0200
+++ /var/tmp/diff_new_pack.6tuGkg/_new 2014-06-26 07:57:56.000000000 +0200
@@ -17,7 +17,7 @@
Name: python3-qt4
-Version: 4.10.4
+Version: 4.11
Release: 0
Summary: PyQt - python bindings for Qt 4
License: SUSE-GPL-2.0-with-FLOSS-exception or GPL-3.0 or SUSE-NonFree
@@ -27,12 +27,14 @@
Source0: http://sourceforge.net/projects/pyqt/files/PyQt4/PyQt-%{rversion}/PyQt-x11-…
Patch0: link-python3.diff
Patch2: build-compare.diff
+# PATCH-FIX-UPSTREAM: Fix .pro files not being generated by configure.py
+Patch3: pyqt4_add_pro_files.diff
BuildRoot: %{_tmppath}/%{name}-%{version}-build
BuildRequires: fdupes
BuildRequires: libQtWebKit-devel
BuildRequires: libqt4-devel
BuildRequires: phonon-devel
-BuildRequires: python3-sip-devel >= 4.15.1
+BuildRequires: python3-sip-devel >= 4.16
%requires_ge dbus-1-python
%requires_ge libqt4-x11
Requires: python(abi) = %{py3_ver}
@@ -69,6 +71,7 @@
%setup -q -n PyQt-x11-gpl-%{rversion}
%patch0 -p1
%patch2
+%patch3 -p1
%build
export CXXFLAGS="%{optflags}"
@@ -99,7 +102,6 @@
%defattr(-,root,root)
%doc README
%{python3_sitearch}/PyQt4/
-%exclude %{python3_sitearch}/PyQt4/pyqtconfig.py
%files devel
%defattr(-,root,root)
@@ -107,6 +109,5 @@
%{_datadir}/qt4/qsci/
%{_docdir}/python3-qt4-devel
%{_libdir}/qt4/plugins/designer/libpy3qt4.so
-%{python3_sitearch}/PyQt4/pyqtconfig.py
%changelog
++++++ PyQt-x11-gpl-4.10.4.tar.gz -> PyQt-x11-gpl-4.11.tar.gz ++++++
/work/SRC/openSUSE:Factory/python-qt4/PyQt-x11-gpl-4.10.4.tar.gz /work/SRC/openSUSE:Factory/.python-qt4.new/PyQt-x11-gpl-4.11.tar.gz differ: char 5, line 1
++++++ pyqt4_add_pro_files.diff ++++++
Description: add missing .pro files needed by configure.py
Origin: upstream, changeset e8700c99e8da
Last-Update: 2014-06-01
--- a/qpy/QtCore/qpycore.pro
+++ b/qpy/QtCore/qpycore.pro
@@ -0,0 +1,84 @@
+# This is the qmake project file for the QPy support code for the QtCore
+# module. Note that it is not required by configure-ng.py.
+#
+# Copyright (c) 2014 Riverbank Computing Limited <info(a)riverbankcomputing.com>
+#
+# This file is part of PyQt.
+#
+# This file may be used under the terms of the GNU General Public
+# License versions 2.0 or 3.0 as published by the Free Software
+# Foundation and appearing in the files LICENSE.GPL2 and LICENSE.GPL3
+# included in the packaging of this file. Alternatively you may (at
+# your option) use any later version of the GNU General Public
+# License if such license has been publicly approved by Riverbank
+# Computing Limited (or its successors, if any) and the KDE Free Qt
+# Foundation. In addition, as a special exception, Riverbank gives you
+# certain additional rights. These rights are described in the Riverbank
+# GPL Exception version 1.1, which can be found in the file
+# GPL_EXCEPTION.txt in this package.
+#
+# If you are unsure which license is appropriate for your use, please
+# contact the sales department at sales(a)riverbankcomputing.com.
+#
+# This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
+# WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
+
+
+CONFIG += static warn_on
+TARGET = qpycore
+TEMPLATE = lib
+DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x04ffff
+
+# Python's type system relies on type punning.
+!win32: QMAKE_CXXFLAGS += -fno-strict-aliasing
+
+# This seems to be necessary for Qt v4.5.2.
+win32: INCLUDEPATH += .
+
+SOURCES = \
+ qpycore_qabstracteventdispatcher.cpp \
+ qpycore_chimera.cpp \
+ qpycore_chimera_signature.cpp \
+ qpycore_chimera_storage.cpp \
+ qpycore_classinfo.cpp \
+ qpycore_init.cpp \
+ qpycore_misc.cpp \
+ qpycore_post_init.cpp \
+ qpycore_pyqtboundsignal.cpp \
+ qpycore_pyqtconfigure.cpp \
+ qpycore_pyqtmethodproxy.cpp \
+ qpycore_pyqtproperty.cpp \
+ qpycore_pyqtproxy.cpp \
+ qpycore_pyqtpyobject.cpp \
+ qpycore_pyqtsignal.cpp \
+ qpycore_pyqtslot.cpp \
+ qpycore_qmetaobject.cpp \
+ qpycore_qmetaobject_helpers.cpp \
+ qpycore_qobject_getattr.cpp \
+ qpycore_qobject_helpers.cpp \
+ qpycore_qpynullvariant.cpp \
+ qpycore_qstring.cpp \
+ qpycore_qstringlist.cpp \
+ qpycore_sip_helpers.cpp \
+ qpycore_types.cpp \
+ qpycore_qvariant.cpp \
+ qpycore_qvariant_value.cpp
+
+HEADERS = \
+ qpycore_api.h \
+ qpycore_chimera.h \
+ qpycore_classinfo.h \
+ qpycore_misc.h \
+ qpycore_namespace.h \
+ qpycore_pyqtboundsignal.h \
+ qpycore_pyqtproperty.h \
+ qpycore_pyqtproxy.h \
+ qpycore_pyqtpyobject.h \
+ qpycore_pyqtsignal.h \
+ qpycore_pyqtmethodproxy.h \
+ qpycore_qmetaobjectbuilder.h \
+ qpycore_qobject_helpers.h \
+ qpycore_qpynullvariant.h \
+ qpycore_sip.h \
+ qpycore_sip_helpers.h \
+ qpycore_types.h
--- a/qpy/QtDBus/qpydbus.pro
+++ b/qpy/QtDBus/qpydbus.pro
@@ -0,0 +1,42 @@
+# This is the qmake project file for the QPy support code for the QtDBus
+# module. Note that it is not required by configure-ng.py.
+#
+# Copyright (c) 2014 Riverbank Computing Limited <info(a)riverbankcomputing.com>
+#
+# This file is part of PyQt.
+#
+# This file may be used under the terms of the GNU General Public
+# License versions 2.0 or 3.0 as published by the Free Software
+# Foundation and appearing in the files LICENSE.GPL2 and LICENSE.GPL3
+# included in the packaging of this file. Alternatively you may (at
+# your option) use any later version of the GNU General Public
+# License if such license has been publicly approved by Riverbank
+# Computing Limited (or its successors, if any) and the KDE Free Qt
+# Foundation. In addition, as a special exception, Riverbank gives you
+# certain additional rights. These rights are described in the Riverbank
+# GPL Exception version 1.1, which can be found in the file
+# GPL_EXCEPTION.txt in this package.
+#
+# If you are unsure which license is appropriate for your use, please
+# contact the sales department at sales(a)riverbankcomputing.com.
+#
+# This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
+# WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
+
+
+QT += dbus
+CONFIG += static warn_on
+TARGET = qpydbus
+TEMPLATE = lib
+
+SOURCES = \
+ qpydbus_chimera_helpers.cpp \
+ qpydbus_post_init.cpp \
+ qpydbuspendingreply.cpp \
+ qpydbusreply.cpp
+
+HEADERS = \
+ qpydbus_api.h \
+ qpydbus_chimera_helpers.h \
+ qpydbuspendingreply.h \
+ qpydbusreply.h
--- a/qpy/QtDeclarative/qpydeclarative.pro
+++ b/qpy/QtDeclarative/qpydeclarative.pro
@@ -0,0 +1,43 @@
+# This is the qmake project file for the QPy support code for the QtDeclarative
+# module. Note that it is not required by configure-ng.py.
+#
+# Copyright (c) 2014 Riverbank Computing Limited <info(a)riverbankcomputing.com>
+#
+# This file is part of PyQt.
+#
+# This file may be used under the terms of the GNU General Public
+# License versions 2.0 or 3.0 as published by the Free Software
+# Foundation and appearing in the files LICENSE.GPL2 and LICENSE.GPL3
+# included in the packaging of this file. Alternatively you may (at
+# your option) use any later version of the GNU General Public
+# License if such license has been publicly approved by Riverbank
+# Computing Limited (or its successors, if any) and the KDE Free Qt
+# Foundation. In addition, as a special exception, Riverbank gives you
+# certain additional rights. These rights are described in the Riverbank
+# GPL Exception version 1.1, which can be found in the file
+# GPL_EXCEPTION.txt in this package.
+#
+# If you are unsure which license is appropriate for your use, please
+# contact the sales department at sales(a)riverbankcomputing.com.
+#
+# This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
+# WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
+
+
+QT += declarative
+CONFIG += static warn_on
+TARGET = qpydeclarative
+TEMPLATE = lib
+
+SOURCES = \
+ qpydeclarative_chimera_helpers.cpp \
+ qpydeclarative_listwrapper.cpp \
+ qpydeclarative_post_init.cpp \
+ qpydeclarativelistproperty.cpp
+
+HEADERS = \
+ qpydeclarative_api.h \
+ qpydeclarative_chimera_helpers.h \
+ qpydeclarative_listwrapper.h \
+ qpydeclarativelistproperty.h \
+ qpydeclarativepropertyvaluesource.h
--- a/qpy/QtDesigner/qpydesigner.pro
+++ b/qpy/QtDesigner/qpydesigner.pro
@@ -0,0 +1,46 @@
+# This is the qmake project file for the QPy support code for the QtDesigner
+# module. Note that it is not required by configure-ng.py.
+#
+# Copyright (c) 2014 Riverbank Computing Limited <info(a)riverbankcomputing.com>
+#
+# This file is part of PyQt.
+#
+# This file may be used under the terms of the GNU General Public
+# License versions 2.0 or 3.0 as published by the Free Software
+# Foundation and appearing in the files LICENSE.GPL2 and LICENSE.GPL3
+# included in the packaging of this file. Alternatively you may (at
+# your option) use any later version of the GNU General Public
+# License if such license has been publicly approved by Riverbank
+# Computing Limited (or its successors, if any) and the KDE Free Qt
+# Foundation. In addition, as a special exception, Riverbank gives you
+# certain additional rights. These rights are described in the Riverbank
+# GPL Exception version 1.1, which can be found in the file
+# GPL_EXCEPTION.txt in this package.
+#
+# If you are unsure which license is appropriate for your use, please
+# contact the sales department at sales(a)riverbankcomputing.com.
+#
+# This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
+# WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
+
+
+CONFIG += static plugin warn_on
+
+greaterThan(QT_MAJOR_VERSION, 4) {
+ QT += designer
+}
+
+lessThan(QT_MAJOR_VERSION, 5) {
+ CONFIG += designer
+}
+
+TARGET = qpydesigner
+TEMPLATE = lib
+
+HEADERS = \
+ qpydesignercontainerextension.h \
+ qpydesignercustomwidgetcollectionplugin.h \
+ qpydesignercustomwidgetplugin.h \
+ qpydesignermembersheetextension.h \
+ qpydesignerpropertysheetextension.h \
+ qpydesignertaskmenuextension.h
--- a/qpy/QtGui/qpygui.pro
+++ b/qpy/QtGui/qpygui.pro
@@ -0,0 +1,32 @@
+# This is the qmake project file for the QPy support code for the QtGui module.
+# Note that it is not required by configure-ng.py.
+#
+# Copyright (c) 2014 Riverbank Computing Limited <info(a)riverbankcomputing.com>
+#
+# This file is part of PyQt.
+#
+# This file may be used under the terms of the GNU General Public
+# License versions 2.0 or 3.0 as published by the Free Software
+# Foundation and appearing in the files LICENSE.GPL2 and LICENSE.GPL3
+# included in the packaging of this file. Alternatively you may (at
+# your option) use any later version of the GNU General Public
+# License if such license has been publicly approved by Riverbank
+# Computing Limited (or its successors, if any) and the KDE Free Qt
+# Foundation. In addition, as a special exception, Riverbank gives you
+# certain additional rights. These rights are described in the Riverbank
+# GPL Exception version 1.1, which can be found in the file
+# GPL_EXCEPTION.txt in this package.
+#
+# If you are unsure which license is appropriate for your use, please
+# contact the sales department at sales(a)riverbankcomputing.com.
+#
+# This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
+# WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
+
+
+CONFIG += static warn_on
+TARGET = qpygui
+TEMPLATE = lib
+
+HEADERS = \
+ qpytextobject.h
--- a/qpy/QtOpenGL/qpyopengl.pro
+++ b/qpy/QtOpenGL/qpyopengl.pro
@@ -0,0 +1,37 @@
+# This is the qmake project file for the QPy support code for the QtOpenGL
+# module. Note that it is not required by configure-ng.py.
+#
+# Copyright (c) 2014 Riverbank Computing Limited <info(a)riverbankcomputing.com>
+#
+# This file is part of PyQt.
+#
+# This file may be used under the terms of the GNU General Public
+# License versions 2.0 or 3.0 as published by the Free Software
+# Foundation and appearing in the files LICENSE.GPL2 and LICENSE.GPL3
+# included in the packaging of this file. Alternatively you may (at
+# your option) use any later version of the GNU General Public
+# License if such license has been publicly approved by Riverbank
+# Computing Limited (or its successors, if any) and the KDE Free Qt
+# Foundation. In addition, as a special exception, Riverbank gives you
+# certain additional rights. These rights are described in the Riverbank
+# GPL Exception version 1.1, which can be found in the file
+# GPL_EXCEPTION.txt in this package.
+#
+# If you are unsure which license is appropriate for your use, please
+# contact the sales department at sales(a)riverbankcomputing.com.
+#
+# This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
+# WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
+
+
+QT += opengl
+CONFIG += static warn_on
+TARGET = qpyopengl
+TEMPLATE = lib
+
+SOURCES = \
+ qpyopengl_attribute_array.cpp \
+ qpyopengl_uniform_value_array.cpp
+
+HEADERS = \
+ qpyopengl_api.h
--
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-sip for openSUSE:Factory checked in at 2014-06-26 07:57:50
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-sip (Old)
and /work/SRC/openSUSE:Factory/.python-sip.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-sip"
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-sip/python-sip.changes 2014-03-21 13:34:21.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.python-sip.new/python-sip.changes 2014-06-26 07:57:52.000000000 +0200
@@ -1,0 +2,24 @@
+Tue Jun 10 03:02:11 UTC 2014 - termim(a)gmail.com
+
+- Update to 4.16.1
+ - Bug fixes.
+
+-------------------------------------------------------------------
+Thu May 29 02:13:29 UTC 2014 - termim(a)gmail.com
+
+- Update to 4.16
+ - Added the /NoSetter/ variable annotation.
+ - Added the -B option to sip.
+ - Changed the handling of timelines (introducing a potential incompatibility)
+ so that later versions of wrapped libraries can be wrapped so long as they
+ are compatible with known versions.
+ - Added support for the 'no_receiver_check' argument to connect() in PyQt
+ v4.11.
+ - Added the --configuration option to configure.py.
+ - Added the --sysroot option to configure.py.
+ - Added the --target-py-version option to configure.py.
+ - Added the --no-tools option to configure.py.
+ - Added the --use-qmake option to configure.py.
+ - Bug fixes.
+
+-------------------------------------------------------------------
--- /work/SRC/openSUSE:Factory/python-sip/python3-sip.changes 2014-03-21 13:34:21.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.python-sip.new/python3-sip.changes 2014-06-26 07:57:52.000000000 +0200
@@ -1,0 +2,24 @@
+Tue Jun 10 03:02:59 UTC 2014 - termim(a)gmail.com
+
+- Update to 4.16.1
+ - Bug fixes.
+
+-------------------------------------------------------------------
+Thu May 29 02:12:07 UTC 2014 - termim(a)gmail.com
+
+- Update to 4.16
+ - Added the /NoSetter/ variable annotation.
+ - Added the -B option to sip.
+ - Changed the handling of timelines (introducing a potential incompatibility)
+ so that later versions of wrapped libraries can be wrapped so long as they
+ are compatible with known versions.
+ - Added support for the 'no_receiver_check' argument to connect() in PyQt
+ v4.11.
+ - Added the --configuration option to configure.py.
+ - Added the --sysroot option to configure.py.
+ - Added the --target-py-version option to configure.py.
+ - Added the --no-tools option to configure.py.
+ - Added the --use-qmake option to configure.py.
+ - Bug fixes.
+
+-------------------------------------------------------------------
Old:
----
sip-4.15.5.tar.gz
New:
----
sip-4.16.1.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-sip.spec ++++++
--- /var/tmp/diff_new_pack.LBK0ug/_old 2014-06-26 07:57:53.000000000 +0200
+++ /var/tmp/diff_new_pack.LBK0ug/_new 2014-06-26 07:57:53.000000000 +0200
@@ -16,17 +16,16 @@
#
-%define rversion %{version}
-%define python_sip_api 11.0
+%define python_sip_api 11.1
Name: python-sip
-Version: 4.15.5
+Version: 4.16.1
Release: 0
Summary: SIP tool to use python sip bindings
License: GPL-2.0 or GPL-3.0 or SUSE-SIP
Group: Development/Libraries/Python
Url: http://www.riverbankcomputing.com/software/sip/introa
-Source0: http://downloads.sourceforge.net/project/pyqt/sip/sip-%{rversion}/sip-%{rve…
+Source0: sip-%{version}.tar.gz
# PATCH-FIX-OPENSUSE disable-rpaths.diff -- Disable rpaths
Patch0: disable-rpaths.diff
# PATCH-FIX-OPENSUSE build-compare.diff cmorve69(a)yahoo.es -- Fix build-compare
@@ -64,7 +63,7 @@
own sip bindings.
%prep
-%setup -q -n sip-%{rversion}
+%setup -q -n sip-%{version}
%patch0
%patch1
++++++ python3-sip.spec ++++++
--- /var/tmp/diff_new_pack.LBK0ug/_old 2014-06-26 07:57:53.000000000 +0200
+++ /var/tmp/diff_new_pack.LBK0ug/_new 2014-06-26 07:57:53.000000000 +0200
@@ -16,17 +16,16 @@
#
-%define rversion %{version}
-%define python_sip_api 11.0
+%define python_sip_api 11.1
Name: python3-sip
-Version: 4.15.5
+Version: 4.16.1
Release: 0
Summary: SIP tool to use python sip bindings
License: GPL-2.0 or GPL-3.0 or SUSE-SIP
Group: Development/Libraries/Python
Url: http://www.riverbankcomputing.com/software/sip/intro
-Source0: http://downloads.sourceforge.net/project/pyqt/sip/sip-%{rversion}/sip-%{rve…
+Source0: sip-%{version}.tar.gz
# PATCH-FIX-OPENSUSE disable-rpaths.diff -- Disable rpaths
Patch0: disable-rpaths.diff
# PATCH-FIX-OPENSUSE build-compare.diff cmorve69(a)yahoo.es -- Fix build-compare
@@ -67,7 +66,7 @@
own sip bindings.
%prep
-%setup -q -n sip-%{rversion}
+%setup -q -n sip-%{version}
%patch0
%patch1
++++++ sip-4.15.5.tar.gz -> sip-4.16.1.tar.gz ++++++
++++ 10222 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 libvirt for openSUSE:Factory checked in at 2014-06-25 21:20:31
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
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-06-10 14:38:30.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.libvirt.new/libvirt.changes 2014-06-25 21:20:47.000000000 +0200
@@ -1,0 +2,9 @@
+Wed Jun 25 13:42:00 UTC 2014 - cbosdonnat(a)suse.com
+
+- lxc-keep-caps-feature.patch: allow to keep/drop additional
+ capabilities for LXC containers. bnc#881465
+- lxc-keep-caps-feature-conversion.patch: convert lxc.cap.drop to
+ the new domain configuration.
+- lxc-keep-caps-feature-doc.patch: documentation for the new feature.
+
+-------------------------------------------------------------------
New:
----
lxc-keep-caps-feature-conversion.patch
lxc-keep-caps-feature-doc.patch
lxc-keep-caps-feature.patch
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ libvirt.spec ++++++
--- /var/tmp/diff_new_pack.fBGSmt/_old 2014-06-25 21:20:49.000000000 +0200
+++ /var/tmp/diff_new_pack.fBGSmt/_new 2014-06-25 21:20:49.000000000 +0200
@@ -435,6 +435,9 @@
Patch103: add-nocow-to-vol-xml.patch
# pending review upstream patches
Patch150: libxl-migration-support.patch
+Patch151: lxc-keep-caps-feature.patch
+Patch152: lxc-keep-caps-feature-conversion.patch
+Patch153: lxc-keep-caps-feature-doc.patch
# Our patches
Patch200: libvirtd-defaults.patch
Patch201: libvirtd-init-script.patch
@@ -951,6 +954,9 @@
%patch102 -p1
%patch103 -p1
%patch150 -p1
+%patch151 -p1
+%patch152 -p1
+%patch153 -p1
%patch200 -p1
%patch201 -p1
%patch202 -p1
++++++ lxc-keep-caps-feature-conversion.patch ++++++
>From f199dbab24896c31c90a3291c4779daccef949ed Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?C=C3=A9dric=20Bosdonnat?= <cbosdonnat(a)suse.com>
Date: Wed, 11 Jun 2014 16:43:45 +0200
Subject: [PATCH 2/3] lxc domain from xml: convert lxc.cap.drop
---
src/lxc/lxc_native.c | 25 ++++++++++++++++++++++
tests/lxcconf2xmldata/lxcconf2xml-blkiotune.xml | 2 ++
tests/lxcconf2xmldata/lxcconf2xml-cpusettune.xml | 2 ++
tests/lxcconf2xmldata/lxcconf2xml-cputune.xml | 2 ++
tests/lxcconf2xmldata/lxcconf2xml-idmap.xml | 2 ++
.../lxcconf2xmldata/lxcconf2xml-macvlannetwork.xml | 4 ++++
tests/lxcconf2xmldata/lxcconf2xml-memtune.xml | 2 ++
tests/lxcconf2xmldata/lxcconf2xml-nonenetwork.xml | 4 ++++
tests/lxcconf2xmldata/lxcconf2xml-nonetwork.xml | 2 ++
tests/lxcconf2xmldata/lxcconf2xml-physnetwork.xml | 4 ++++
tests/lxcconf2xmldata/lxcconf2xml-simple.xml | 8 +++++++
tests/lxcconf2xmldata/lxcconf2xml-vlannetwork.xml | 4 ++++
12 files changed, 61 insertions(+)
diff --git a/src/lxc/lxc_native.c b/src/lxc/lxc_native.c
index f4c4556..29ec188 100644
--- a/src/lxc/lxc_native.c
+++ b/src/lxc/lxc_native.c
@@ -838,6 +838,28 @@ lxcSetBlkioTune(virDomainDefPtr def, virConfPtr properties)
return 0;
}
+static void
+lxcSetCapDrop(virDomainDefPtr def, virConfPtr properties)
+{
+ virConfValuePtr value;
+ char **toDrop = NULL;
+ const char *capString;
+ size_t i;
+
+ if ((value = virConfGetValue(properties, "lxc.cap.drop")) && value->str)
+ toDrop = virStringSplit(value->str, " ", 0);
+
+ for (i = 0; i < VIR_DOMAIN_CAPS_FEATURE_LAST; i++) {
+ capString = virDomainCapsFeatureTypeToString(i);
+ if (toDrop != NULL && virStringArrayHasString(toDrop, capString))
+ def->caps_features[i] = VIR_DOMAIN_FEATURE_STATE_OFF;
+ }
+
+ def->features[VIR_DOMAIN_FEATURE_CAPABILITIES] = VIR_DOMAIN_CAPABILITIES_POLICY_ALLOW;
+
+ virStringFreeList(toDrop);
+}
+
virDomainDefPtr
lxcParseConfigString(const char *config)
{
@@ -935,6 +957,9 @@ lxcParseConfigString(const char *config)
if (lxcSetBlkioTune(vmdef, properties) < 0)
goto error;
+ /* lxc.cap.drop */
+ lxcSetCapDrop(vmdef, properties);
+
goto cleanup;
error:
diff --git a/tests/lxcconf2xmldata/lxcconf2xml-blkiotune.xml b/tests/lxcconf2xmldata/lxcconf2xml-blkiotune.xml
index 36b8e52..c9c0469 100644
--- a/tests/lxcconf2xmldata/lxcconf2xml-blkiotune.xml
+++ b/tests/lxcconf2xmldata/lxcconf2xml-blkiotune.xml
@@ -25,6 +25,8 @@
</os>
<features>
<privnet/>
+ <capabilities policy='allow'>
+ </capabilities>
</features>
<clock offset='utc'/>
<on_poweroff>destroy</on_poweroff>
diff --git a/tests/lxcconf2xmldata/lxcconf2xml-cpusettune.xml b/tests/lxcconf2xmldata/lxcconf2xml-cpusettune.xml
index 932ab61..e7863fa 100644
--- a/tests/lxcconf2xmldata/lxcconf2xml-cpusettune.xml
+++ b/tests/lxcconf2xmldata/lxcconf2xml-cpusettune.xml
@@ -13,6 +13,8 @@
</os>
<features>
<privnet/>
+ <capabilities policy='allow'>
+ </capabilities>
</features>
<clock offset='utc'/>
<on_poweroff>destroy</on_poweroff>
diff --git a/tests/lxcconf2xmldata/lxcconf2xml-cputune.xml b/tests/lxcconf2xmldata/lxcconf2xml-cputune.xml
index 1bab1c6..50c5358 100644
--- a/tests/lxcconf2xmldata/lxcconf2xml-cputune.xml
+++ b/tests/lxcconf2xmldata/lxcconf2xml-cputune.xml
@@ -15,6 +15,8 @@
</os>
<features>
<privnet/>
+ <capabilities policy='allow'>
+ </capabilities>
</features>
<clock offset='utc'/>
<on_poweroff>destroy</on_poweroff>
diff --git a/tests/lxcconf2xmldata/lxcconf2xml-idmap.xml b/tests/lxcconf2xmldata/lxcconf2xml-idmap.xml
index 050ccd6..80a83ff 100644
--- a/tests/lxcconf2xmldata/lxcconf2xml-idmap.xml
+++ b/tests/lxcconf2xmldata/lxcconf2xml-idmap.xml
@@ -14,6 +14,8 @@
</idmap>
<features>
<privnet/>
+ <capabilities policy='allow'>
+ </capabilities>
</features>
<clock offset='utc'/>
<on_poweroff>destroy</on_poweroff>
diff --git a/tests/lxcconf2xmldata/lxcconf2xml-macvlannetwork.xml b/tests/lxcconf2xmldata/lxcconf2xml-macvlannetwork.xml
index 996c0f7..3105b8c 100644
--- a/tests/lxcconf2xmldata/lxcconf2xml-macvlannetwork.xml
+++ b/tests/lxcconf2xmldata/lxcconf2xml-macvlannetwork.xml
@@ -8,6 +8,10 @@
<type>exe</type>
<init>/sbin/init</init>
</os>
+ <features>
+ <capabilities policy='allow'>
+ </capabilities>
+ </features>
<clock offset='utc'/>
<on_poweroff>destroy</on_poweroff>
<on_reboot>restart</on_reboot>
diff --git a/tests/lxcconf2xmldata/lxcconf2xml-memtune.xml b/tests/lxcconf2xmldata/lxcconf2xml-memtune.xml
index b7c919e..7df1ef0 100644
--- a/tests/lxcconf2xmldata/lxcconf2xml-memtune.xml
+++ b/tests/lxcconf2xmldata/lxcconf2xml-memtune.xml
@@ -15,6 +15,8 @@
</os>
<features>
<privnet/>
+ <capabilities policy='allow'>
+ </capabilities>
</features>
<clock offset='utc'/>
<on_poweroff>destroy</on_poweroff>
diff --git a/tests/lxcconf2xmldata/lxcconf2xml-nonenetwork.xml b/tests/lxcconf2xmldata/lxcconf2xml-nonenetwork.xml
index 6d9e16d..e002b99 100644
--- a/tests/lxcconf2xmldata/lxcconf2xml-nonenetwork.xml
+++ b/tests/lxcconf2xmldata/lxcconf2xml-nonenetwork.xml
@@ -8,6 +8,10 @@
<type>exe</type>
<init>/sbin/init</init>
</os>
+ <features>
+ <capabilities policy='allow'>
+ </capabilities>
+ </features>
<clock offset='utc'/>
<on_poweroff>destroy</on_poweroff>
<on_reboot>restart</on_reboot>
diff --git a/tests/lxcconf2xmldata/lxcconf2xml-nonetwork.xml b/tests/lxcconf2xmldata/lxcconf2xml-nonetwork.xml
index 101324a..dc9d635 100644
--- a/tests/lxcconf2xmldata/lxcconf2xml-nonetwork.xml
+++ b/tests/lxcconf2xmldata/lxcconf2xml-nonetwork.xml
@@ -10,6 +10,8 @@
</os>
<features>
<privnet/>
+ <capabilities policy='allow'>
+ </capabilities>
</features>
<clock offset='utc'/>
<on_poweroff>destroy</on_poweroff>
diff --git a/tests/lxcconf2xmldata/lxcconf2xml-physnetwork.xml b/tests/lxcconf2xmldata/lxcconf2xml-physnetwork.xml
index 5fe1b03..cfaceb5 100644
--- a/tests/lxcconf2xmldata/lxcconf2xml-physnetwork.xml
+++ b/tests/lxcconf2xmldata/lxcconf2xml-physnetwork.xml
@@ -8,6 +8,10 @@
<type>exe</type>
<init>/sbin/init</init>
</os>
+ <features>
+ <capabilities policy='allow'>
+ </capabilities>
+ </features>
<clock offset='utc'/>
<on_poweroff>destroy</on_poweroff>
<on_reboot>restart</on_reboot>
diff --git a/tests/lxcconf2xmldata/lxcconf2xml-simple.xml b/tests/lxcconf2xmldata/lxcconf2xml-simple.xml
index b3c3659..549fc39 100644
--- a/tests/lxcconf2xmldata/lxcconf2xml-simple.xml
+++ b/tests/lxcconf2xmldata/lxcconf2xml-simple.xml
@@ -8,6 +8,14 @@
<type arch='i686'>exe</type>
<init>/sbin/init</init>
</os>
+ <features>
+ <capabilities policy='allow'>
+ <mac_admin state='off'/>
+ <mac_override state='off'/>
+ <mknod state='off'/>
+ <sys_module state='off'/>
+ </capabilities>
+ </features>
<clock offset='utc'/>
<on_poweroff>destroy</on_poweroff>
<on_reboot>restart</on_reboot>
diff --git a/tests/lxcconf2xmldata/lxcconf2xml-vlannetwork.xml b/tests/lxcconf2xmldata/lxcconf2xml-vlannetwork.xml
index 45348ed..712be3e 100644
--- a/tests/lxcconf2xmldata/lxcconf2xml-vlannetwork.xml
+++ b/tests/lxcconf2xmldata/lxcconf2xml-vlannetwork.xml
@@ -8,6 +8,10 @@
<type>exe</type>
<init>/sbin/init</init>
</os>
+ <features>
+ <capabilities policy='allow'>
+ </capabilities>
+ </features>
<clock offset='utc'/>
<on_poweroff>destroy</on_poweroff>
<on_reboot>restart</on_reboot>
--
1.8.4.5
++++++ lxc-keep-caps-feature-doc.patch ++++++
>From b6f1f5a3be5b2643b255882effdca2e903d9d738 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?C=C3=A9dric=20Bosdonnat?= <cbosdonnat(a)suse.com>
Date: Wed, 11 Jun 2014 17:01:11 +0200
Subject: [PATCH 3/3] lxc: update doc to mention features/capabilities/* domain
configuration
---
docs/drvlxc.html.in | 47 +++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 47 insertions(+)
diff --git a/docs/drvlxc.html.in b/docs/drvlxc.html.in
index fc4bc20..403ce24 100644
--- a/docs/drvlxc.html.in
+++ b/docs/drvlxc.html.in
@@ -540,6 +540,53 @@ debootstrap, whatever) under /opt/vm-1-root:
</domain>
</pre>
+<h2><a name="capabilities">Altering the available capabilities</a></h2>
+
+<p>
+By default the libvirt LXC driver drops some capabilities among which CAP_MKNOD.
+However <span class="since">since 1.2.6</span> libvirt can be told to keep or
+drop some capabilities using a domain configuration like the following:
+</p>
+<pre>
+...
+<features>
+ <capabilities policy='default'>
+ <mknod state='on'/>
+ <sys_chroot state='off'/>
+ </capabilities>
+</features>
+...
+</pre>
+<p>
+The capabilities children elements are named after the capabilities as defined in
+<code>man 7 capabilities</code>. An <code>off</code> state tells libvirt to drop the
+capability, while an <code>on</code> state will force to keep the capability even though
+this one is dropped by default.
+</p>
+<p>
+The <code>policy</code> attribute can be one of <code>default</code>, <code>allow</code>
+or <code>deny</code>. It defines the default rules for capabilities: either keep the
+default behavior that is dropping a few selected capabilities, or keep all capabilities
+or drop all capabilities. The interest of <code>allow</code> and <code>deny</code> is that
+they guarantee that all capabilities will be kept (or removed) even if new ones are added
+later.
+</p>
+<p>
+The following example, drops all capabilities but CAP_MKNOD:
+</p>
+<pre>
+...
+<features>
+ <capabilities policy='deny'>
+ <mknod state='on'/>
+ </capabilities>
+</features>
+...
+</pre>
+<p>
+Note that allowing capabilities that are normally dropped by default can seriously
+affect the security of the container and the host.
+</p>
<h2><a name="usage">Container usage / management</a></h2>
--
1.8.4.5
++++++ lxc-keep-caps-feature.patch ++++++
++++ 863 lines (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 cfengine-masterfiles for openSUSE:Factory checked in at 2014-06-25 21:20:30
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/cfengine-masterfiles (Old)
and /work/SRC/openSUSE:Factory/.cfengine-masterfiles.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "cfengine-masterfiles"
Changes:
--------
--- /work/SRC/openSUSE:Factory/cfengine-masterfiles/cfengine-masterfiles.changes 2014-06-01 19:41:29.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.cfengine-masterfiles.new/cfengine-masterfiles.changes 2014-06-25 21:20:47.000000000 +0200
@@ -1,0 +2,6 @@
+Wed Jun 18 13:40:29 UTC 2014 - kkaempf(a)suse.com
+
+- Update to 3.6.0 final
+ Bugfixes
+
+-------------------------------------------------------------------
Old:
----
masterfiles-3.6rc2-build1.tar.gz
New:
----
masterfiles-3.6.0.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ cfengine-masterfiles.spec ++++++
--- /var/tmp/diff_new_pack.pCxdIe/_old 2014-06-25 21:20:47.000000000 +0200
+++ /var/tmp/diff_new_pack.pCxdIe/_new 2014-06-25 21:20:47.000000000 +0200
@@ -18,7 +18,7 @@
Name: cfengine-masterfiles
-%define srcname masterfiles-3.6rc2-build1
+%define srcname masterfiles-3.6.0
# Yes, its not FHS conformant but in sync with cfengine documentation
# reported upstream as https://cfengine.com/dev/issues/1896
@@ -28,7 +28,7 @@
Summary: CFEngine promises master files
License: MIT and LGPL-3.0+
Group: Productivity/Networking/System
-Version: 3.6.0rc2
+Version: 3.6.0
Release: 0
Url: http://www.cfengine.org/
Source: %{srcname}.tar.gz
++++++ masterfiles-3.6rc2-build1.tar.gz -> masterfiles-3.6.0.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/masterfiles-3.6rc2-build1/README.md new/masterfiles-3.6.0/README.md
--- old/masterfiles-3.6rc2-build1/README.md 2014-05-26 22:07:16.000000000 +0200
+++ new/masterfiles-3.6.0/README.md 2014-06-12 13:14:42.000000000 +0200
@@ -25,6 +25,22 @@
make install DESTDIR=/my/other/install/directory
```
+## Host report
+
+A very important piece of functionality, which you may want for your
+own use but will certainly be helpful for debugging or submitting bugs
+to CFEngine (core, masterfiles, or any other are) is the host report.
+
+Run the host report like so: `cf-agent -b host_info_report`
+
+You should see output like:
+
+```
+R: Host info report generated and avilable at '/var/cfengine/reports/host_info_report.txt'
+```
+
+Take a look at the resulting file, it has lots of useful information about the system.
+
## Setting up
First, review `update.cf` and `def.cf`. Most settings you need to change will live here.
@@ -167,9 +183,11 @@
##### trustkeysfrom
-`trustkeysfrom` tells the policy server what hosts to trust for
-bootstrapping. As the comments say, empty it after your hosts have
-been bootstrapped to avoid unpleasant surprises.
+`trustkeysfrom` tells the policy server from which IPs it should accept
+connections even if the host's key is unknown, trusting it at connect
+time. This is only useful to be open during for bootstrapping these
+hosts. As the comments say, empty it after your hosts have been
+bootstrapped to avoid unpleasant surprises.
##### services_autorun
@@ -317,15 +335,6 @@
use the `services_autorun` facility, to ensure the bundles in them are
found.
-## Unexpected behavior
-
-Note that in this document, the term "unexpected behavior" has been
-used, so a definition would help.
-
-Last year, a CFEngine user got hit by a flying frisbee while walking
-backwards through a revolving door. This year, he won 4 track events
-in the **winter** Olympics. That's unexpected behavior.
-
## Further structure
* `cfe_internal`: internal CFEngine policies you shouldn't modify or you will get unexpected behavior
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/masterfiles-3.6rc2-build1/cfe_internal/CFE_knowledge.cf new/masterfiles-3.6.0/cfe_internal/CFE_knowledge.cf
--- old/masterfiles-3.6rc2-build1/cfe_internal/CFE_knowledge.cf 2014-05-26 22:07:16.000000000 +0200
+++ new/masterfiles-3.6.0/cfe_internal/CFE_knowledge.cf 2014-06-12 13:14:42.000000000 +0200
@@ -40,7 +40,7 @@
"$(cfe_internal_hub_vars.docroot)/.htaccess"
comment => "Correct up htaccess file in doc root",
handle => "cfe_internal_setup_knowledge_files_doc_root_htaccess",
- perms => mog("0644",$(def.cf_apache_user),$(def.cf_apache_group)),
+ perms => mog("0644","root","root"),
copy_from => no_backup_cp("$(sys.workdir)/share/GUI/Apache-htaccess");
"$(cfe_internal_hub_vars.docroot)/hub/."
@@ -48,14 +48,14 @@
handle => "cfe_internal_setup_knowledge_files_doc_root_hub",
create => "true",
depth_search => recurse_basedir("inf"),
- perms => mog("0755",$(def.cf_apache_user),$(def.cf_apache_group));
+ perms => mog("0755","root","root");
"$(cfe_internal_hub_vars.docroot)/scripts/."
comment => "Ensure permissions for $(cfe_internal_hub_vars.docroot)/scripts",
handle => "cfe_internal_setup_knowledge_files_doc_root_scripts",
create => "true",
depth_search => recurse_basedir("inf"),
- perms => mog("0644",$(def.cf_apache_user),$(def.cf_apache_group));
+ perms => mog("0644","root","root");
"$(cfe_internal_hub_vars.docroot)/tmp/."
comment => "Ensure permissions for $(cfe_internal_hub_vars.docroot)/tmp (temp files to email)",
@@ -69,6 +69,7 @@
handle => "cfe_internal_setup_knowledge_files_doc_root_application_logs",
create => "true",
depth_search => recurse_basedir("inf"),
+ file_select => cfe_internal_exclude_index_html,
perms => mog("0644",$(def.cf_apache_user),$(def.cf_apache_group));
"$(cfe_internal_hub_vars.docroot)/application"
@@ -86,18 +87,25 @@
perms => m("0644");
"$(cfe_internal_hub_vars.docroot)/api"
- comment => "Ensure permissions for $(cfe_internal_hub_vars.docroot)/api (writing exported reports PDF/CSV)",
+ comment => "Ensure permissions for $(cfe_internal_hub_vars.docroot)/api",
handle => "cfe_internal_setup_knowledge_files_doc_root_api",
- file_select => cfe_internal_exclude_sh_scripts,
+ file_select => cfe_internal_exclude_sh_pl_scripts,
+ depth_search => recurse_basedir_exclude("inf"),
+ perms => mog("0644","root","root");
+
+
+ "$(cfe_internal_hub_vars.docroot)/api/static/."
+ comment => "Ensure permissions for $(cfe_internal_hub_vars.docroot)/api/static (writing exported reports PDF/CSV)",
+ handle => "cfe_internal_setup_knowledge_files_doc_root_api_static",
depth_search => recurse_basedir("inf"),
perms => mog("0644",$(def.cf_apache_user),$(def.cf_apache_group));
"$(cfe_internal_hub_vars.docroot)/api/dc-scripts"
comment => "Ensure permissions for $(cfe_internal_hub_vars.docroot)/api/dc-scripts (execute git push/pull)",
handle => "cfe_internal_setup_knowledge_files_doc_root_api_dc_scripts",
- file_select => cfe_internal_sh_scripts,
+ file_select => cfe_internal_sh_pl_scripts,
depth_search => recurse_basedir("inf"),
- perms => mog("0700",$(def.cf_apache_user),$(def.cf_apache_group));
+ perms => mog("0755","root","root");
"$(cfe_internal_hub_vars.docroot)/sql_lite/."
comment => "Create a directory sql_lite for analytic to be working",
@@ -112,6 +120,12 @@
depth_search => recurse_basedir("inf"),
comment => "Create tmp directories for httpd internal use",
handle => "cfe_internal_setup_knowledge_files_tmp_dir";
+
+ "$(sys.workdir)/httpd/logs/."
+ comment => "Ensure permissions for $(sys.workdir)/httpd/logs",
+ handle => "cfe_internal_setup_knowledge_files_httpd_logs",
+ create => "true",
+ perms => mog("0664","root","cfapache");
}
#############################################################################
@@ -125,26 +139,27 @@
############################################################################
-body file_select knowledge_files
+body file_select folder(regex)
{
- leaf_name => { ".*.cf", ".*.html", ".*.png", ".*php", ".*css" };
+ leaf_name => { ".*$(regex)$"};
file_result => "leaf_name";
}
############################################################################
-body file_select folder(regex)
+body depth_search recurse_basedir(d)
{
- leaf_name => { ".*$(regex)$"};
- file_result => "leaf_name";
+ depth => "$(d)";
+ include_basedir => "true";
}
-############################################################################
+###########################################################################
-body depth_search recurse_basedir(d)
+body depth_search recurse_basedir_exclude(d)
{
depth => "$(d)";
include_basedir => "true";
+ exclude_dirs => { "static" };
}
############################################################################
@@ -152,7 +167,7 @@
body depth_search recurse_exclude(d)
{
depth => "$(d)";
- exclude_dirs => { "hub" , "graphs", "scripts", "tmp", "logs", "api", "sql_lite", "rest", "application" };
+ exclude_dirs => { "hub" , "graphs", "scripts", "tmp", "logs", "api", "sql_lite", "rest", "application", "dc-scripts" };
}
############################################################################
@@ -164,14 +179,27 @@
out_of_range_define => { "$(out)" };
}
-body file_select cfe_internal_exclude_sh_scripts
+############################################################################
+
+body file_select cfe_internal_exclude_sh_pl_scripts
{
- leaf_name => { ".*\.sh" };
+ leaf_name => { ".*\.sh",".*\.pl"};
file_result => "!leaf_name";
}
-body file_select cfe_internal_sh_scripts
+############################################################################
+
+body file_select cfe_internal_sh_pl_scripts
{
- leaf_name => { ".*\.sh" };
+ leaf_name => { ".*\.sh",".*\.pl" };
file_result => "leaf_name";
}
+
+############################################################################
+
+body file_select cfe_internal_exclude_index_html
+{
+ leaf_name => { "index.html" };
+ file_result => "!leaf_name";
+}
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/masterfiles-3.6rc2-build1/controls/cf_serverd.cf new/masterfiles-3.6.0/controls/cf_serverd.cf
--- old/masterfiles-3.6rc2-build1/controls/cf_serverd.cf 2014-05-26 22:07:16.000000000 +0200
+++ new/masterfiles-3.6.0/controls/cf_serverd.cf 2014-06-12 13:14:42.000000000 +0200
@@ -24,6 +24,10 @@
# following ones. SEE COMMENTS IN def.cf
trustkeysfrom => { @(def.trustkeysfrom) };
+ ## List of hosts that we'll accept connections not using latest protocol
+ ## (absence of this option means allow all, empty list means allow none)
+ # allowlegacyconnects => { };
+
# Maximum number of concurrent connections.
# Suggested value >= total number of hosts
maxconnections => "100";
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/masterfiles-3.6rc2-build1/inventory/README.md new/masterfiles-3.6.0/inventory/README.md
--- old/masterfiles-3.6rc2-build1/inventory/README.md 1970-01-01 01:00:00.000000000 +0100
+++ new/masterfiles-3.6.0/inventory/README.md 2014-06-12 13:14:42.000000000 +0200
@@ -0,0 +1,299 @@
+# CFEngine 3 inventory modules
+
+The CFEngine 3 inventory modules are pieces of CFEngine policy that
+are loaded and used by the `promises.cf` mechanism in order to
+*inventory* the system.
+
+CFEngine Enterprise has specific functionality to show and use
+inventory data, but users of the Community Version can use them as
+well locally on each host.
+
+## How It Works
+
+The inventory modules are called in `promises.cf`:
+
+```
+body common control
+{
+ bundlesequence => {
+ # Common bundle first (Best Practice)
+ inventory_control,
+ @(inventory.bundles),
+ ...
+```
+
+As you see, this calls the `inventory_control` bundle, and then each
+bundle in the list `inventory.bundles`. That list is built in the
+top-level common `inventory` bundle, which will load the right things
+for some common cases. The `any.cf` inventory module is always loaded;
+the rest are loaded if they are appropriate for the platform. For
+instance, Debian systems will load `debian.cf` and `linux.cf` and
+`lsb.cf` but may load others as needed.
+
+The effect for users is that the right inventory modules will be
+loaded and evaluated.
+
+The `inventory_control` bundle lives in `def.cf` and defines what
+inventory modules should be disabled. You can simply set
+`disable_inventory` to avoid the whole system, or you can look for the
+`disable_inventory_xyz` class to disable module `xyz`.
+
+Any inventory module works the same way, by doing some discovery work
+and then tagging its classes and variables with the `report` or
+`inventory` tags. For example:
+
+```
+ vars:
+ "ports" slist => { @(mon.listening_ports) },
+ meta => { "inventory", "attribute_name=Ports listening" };
+```
+
+This defines a reported attribute "Ports listening" which contains a
+list of strings representing the listening ports. More on this in a
+second.
+
+## Your Very Own Inventory Module
+
+The good news is, writing an inventory module is incredibly easy.
+
+They are just CFEngine bundles. You can see a simple one that collects
+the listening ports in `any.cf`:
+
+```
+bundle agent cfe_autorun_inventory_listening_ports
+# @brief Inventory the listening ports
+#
+# This bundle uses `mon.listening_ports` and is always enabled by
+# default, as it runs instantly and has no side effects.
+{
+ vars:
+ "ports" slist => { @(mon.listening_ports) },
+ meta => { "inventory", "attribute_name=Ports listening" };
+}
+```
+
+Well, the slist copy is a CFEngine detail (we get the listening ports
+from the monitoring daemon), so just assume that the data is correct.
+What's important is the second line that starts with `meta`. That
+defines metadata for the promise that CFEngine will use to determine
+that this data is indeed inventory data and should be reported to the
+CFEngine Enterprise Hub.
+
+That's it. Really. The comments are optional but nice to have. You
+don't have to put your new bundle in a file under the `inventory`
+directory, either. The variables and classes can be declared anywhere
+as long as they have the right tags. So you can use the `services`
+directory or whatever else makes sense to you.
+
+## CFEngine Enterprise vs. Community
+
+In CFEngine Enterprise, the reported data is aggregated in the hub and
+reported across the whole host population.
+
+In CFEngine Community, users can use the `classesmatching()` and
+`variablesmatching()` functions to collect all the inventory variables
+and classes and report them in other ways.
+
+## What Modules Are Available?
+
+As soon as you use the `promises.cf` provided in the parent directory,
+quite a few inventory modules will be enabled (if appropriate for your
+system). Here's the list of modules and what they provide. Note they
+are all enabled by code in `def.cf` as explained above.
+
+### LSB
+
+* lives in: `lsb.cf`
+* applies to: LSB systems (most Linux distributions, basically)
+* runs: `lsb_release -a`
+* sample data:
+```
+Distributor ID: Ubuntu
+Description: Ubuntu 14.04 LTS
+Release: 14.04
+Codename: trusty
+```
+* provides:
+ * classes `lsb_$(os)`, `lsb_$(os)_$(release)`, `lsb_$(os)_$(codename)`
+ * variables: `inventory_lsb.os` (Distributor ID), `inventory_lsb.codename`, `inventory_lsb.release`, `inventory_lsb.flavor`, `inventory_lsb.description`
+* implementation:
+[%CFEngine_include_snippet(masterfiles/inventory/lsb.cf, .* )%]
+
+* sample output:
+```
+% cf-agent -KI -binventory_control,inventory_lsb
+
+R: inventory_lsb: OS = Ubuntu, codename = trusty, release = 14.04, flavor = Ubuntu_14_04, description = Ubuntu 14.04 LTS
+```
+
+### SUSE
+
+* lives in: `suse.cf`
+* applies to: SUSE Linux
+* provides classes: `suse_pure` and `suse_derived`
+* implementation:
+[%CFEngine_include_snippet(masterfiles/inventory/suse.cf, .* )%]
+
+### Debian
+
+* lives in: `debian.cf`
+* applies to: Debian and its derivatives
+* provides:
+ * variables: `inventory_debian.mint_release` and `inventory_debian.mint_codename`
+ * classes: `debian_pure`, `debian_derived`, `linuxmint`, `lmde`, `linuxmint_$(mint_release)`, `linuxmint_$(mint_codename)`, `$(mint_codename)`
+* implementation:
+[%CFEngine_include_snippet(masterfiles/inventory/debian.cf, .* )%]
+
+### Red Hat
+
+* lives in: `redhat.cf`
+* applies to: Red Hat and its derivatives
+* provides classes: `redhat_pure`, `redhat_derived`
+* implementation:
+[%CFEngine_include_snippet(masterfiles/inventory/redhat.cf, .* )%]
+
+### Windows
+
+* lives in: `windows.cf`
+
+### Mac OS X
+
+* lives in: `macos.cf`
+
+### Generic (unknown OS)
+
+* lives in: `generic.cf` (see `any.cf` for generally applicable inventory modules)
+
+### LLDP
+
+* lives in: `any.cf`
+* runs `inventory_control.lldpctl_exec` through a Perl filter
+* provides variables: `cfe_autorun_inventory_LLDP.K` for each `K` returned by the LLDB executable
+* implementation:
+[%CFEngine_include_snippet(masterfiles/inventory/any.cf, .+cfe_autorun_inventory_LLDP, \})%]
+
+### mtab
+
+* lives in: `any.cf`
+* parses: `/etc/mtab`
+* provides classes: `have_mount_FSTYPE` and `have_mount_FSTYPE_MOUNTPOINT`
+* implementation:
+[%CFEngine_include_snippet(masterfiles/inventory/any.cf, .+cfe_autorun_inventory_mtab, \})%]
+
+* sample output (note this is verbose mode with `-v` because there's a lot of output):
+
+```
+% cf-agent -Kv -binventory_control,cfe_autorun_inventory_mtab|grep 'cfe_autorun_inventory_mtab: we have'
+
+R: cfe_autorun_inventory_mtab: we have a ext4 mount under /
+...
+R: cfe_autorun_inventory_mtab: we have a cgroup mount under /sys/fs/cgroup/systemd
+R: cfe_autorun_inventory_mtab: we have a tmpfs mount under /run/shm
+```
+
+### fstab
+
+* lives in: `any.cf`
+* parses: `sys.fstab`
+* provides classes: `have_fs_FSTYPE` `have_fs_MOUNTPOINT` and `have_fs_FSTYPE_MOUNTPOINT`
+* implementation:
+[%CFEngine_include_snippet(masterfiles/inventory/any.cf, .+cfe_autorun_inventory_fstab, \})%]
+
+* sample output (note this is verbose mode with `-v` because there's a LOT of output):
+
+```
+% cf-agent -Kv -binventory_control,cfe_autorun_inventory_fstab|grep 'cfe_autorun_inventory_fstab: we have'
+
+R: cfe_autorun_inventory_fstab: we have a ext4 fstab entry under /
+R: cfe_autorun_inventory_fstab: we have a cifs fstab entry under /backups/load
+R: cfe_autorun_inventory_fstab: we have a auto fstab entry under /mnt/cdrom
+```
+
+### CMDB
+
+* lives in: `any.cf`
+* parses: `me.json` (which is copied from the policy server; see implementation)
+* provides classes: `CLASS` for each CLASS found under the `classes` key in the JSON data
+* provides variables: `inventory_cmdb_load.VARNAME` for each VARNAME found under the `vars` key in the JSON data
+* implementation:
+[%CFEngine_include_snippet(masterfiles/inventory/any.cf, .+inventory_cmdb_load, \})%]
+
+### DMI decoding
+
+* lives in: `any.cf`
+* runs: `dmidecode`
+* provides variables: `cfe_autorun_inventory_dmidecode.dmi[K]` for each key K in the `dmidecode` output
+* implementation:
+[%CFEngine_include_snippet(masterfiles/inventory/any.cf, .+cfe_autorun_inventory_dmidecode, \})%]
+
+* sample output (sudo is needed to access the DMI):
+
+```
+% sudo /var/cfengine/bin/cf-agent -KI -binventory_control,cfe_autorun_inventory_dmidecode
+
+R: cfe_autorun_inventory_dmidecode: Obtained BIOS vendor = 'Intel Corp.'
+R: cfe_autorun_inventory_dmidecode: Obtained BIOS version = 'BLH6710H.86A.0146.2013.1555.1888'
+R: cfe_autorun_inventory_dmidecode: Obtained System serial number = ''
+R: cfe_autorun_inventory_dmidecode: Obtained System manufacturer = ''
+R: cfe_autorun_inventory_dmidecode: Obtained System version = ''
+R: cfe_autorun_inventory_dmidecode: Obtained CPU model = 'Intel(R) Core(TM) i7-2600 CPU @ 3.40GHz'
+```
+
+### Listening ports
+
+* lives in: `any.cf`
+* provides variables: `cfe_autorun_inventory_listening_ports.ports` as a copy of `mon.listening_ports`
+* implementation:
+[%CFEngine_include_snippet(masterfiles/inventory/any.cf, .+cfe_autorun_inventory_listening_ports, \})%]
+
+### Disk space
+
+* lives in: `any.cf`
+* provides variables: `cfe_autorun_inventory_disk.free` as a copy of `mon.value_diskfree`
+* implementation:
+[%CFEngine_include_snippet(masterfiles/inventory/any.cf, .+cfe_autorun_inventory_disk, \})%]
+
+### Available memory
+
+* lives in: `any.cf`
+* provides variables: `cfe_autorun_inventory_memory.free` as a copy of `mon.value_mem_free` and `cfe_autorun_inventory_memory.total` as a copy of `mon.value_mem_total`
+* implementation:
+[%CFEngine_include_snippet(masterfiles/inventory/any.cf, .+cfe_autorun_inventory_memory, \})%]
+
+### Load average
+
+* lives in: `any.cf`
+* provides variables: `cfe_autorun_inventory_loadaverage.value` as a copy of `mon.value_loadavg`
+* implementation:
+[%CFEngine_include_snippet(masterfiles/inventory/any.cf, .+cfe_autorun_inventory_loadaverage, \})%]
+
+### procfs
+
+* lives in: `any.cf`
+* parses: `consoles`, `cpuinfo`, `modules`, `partitions`, `version`
+* provides variables: `cfe_autorun_inventory_proc.console_count`, `cfe_autorun_inventory_proc.cpuinfo[K]` for each CPU info key, `cfe_autorun_inventory_proc.paritions[K]` for each partition key
+* provides classes: `_have_console_CONSOLENAME`, `have_module_MODULENAME`
+* implementation:
+[%CFEngine_include_snippet(masterfiles/inventory/any.cf, .+cfe_autorun_inventory_proc, \})%]
+
+* sample output (note this is verbose mode with `-v` because there's a LOT of output):
+
+```
+% cf-agent -Kv -binventory_control,cfe_autorun_inventory_proc|grep 'cfe_autorun_inventory_proc: we have'
+
+R: cfe_autorun_inventory_proc: we have console tty0
+
+R: cfe_autorun_inventory_proc: we have module snd_seq_midi
+...
+R: cfe_autorun_inventory_proc: we have module ghash_clmulni_intel
+
+R: cfe_autorun_inventory_proc: we have cpuinfo flags = fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf eagerfpu pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic popcnt tsc_deadline_timer aes xsave avx lahf_lm ida arat epb xsaveopt pln pts dtherm tpr_shadow vnmi flexpriority ept vpid
+...
+R: cfe_autorun_inventory_proc: we have cpuinfo model name = Intel(R) Core(TM) i7-2600 CPU @ 3.40GHz
+
+R: cfe_autorun_inventory_proc: we have partitions sr0 with 1048575 blocks
+...
+R: cfe_autorun_inventory_proc: we have partitions sda with 468851544 blocks
+
+R: cfe_autorun_inventory_proc: we have kernel version 'Linux version 3.11.0-15-generic (buildd@roseapple) (gcc version 4.8.1 (Ubuntu/Linaro 4.8.1-10ubuntu8) ) #25-Ubuntu SMP Thu Jan 30 17:22:01 UTC 2014'
+```
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/masterfiles-3.6rc2-build1/promises.cf new/masterfiles-3.6.0/promises.cf
--- old/masterfiles-3.6rc2-build1/promises.cf 2014-05-26 22:07:16.000000000 +0200
+++ new/masterfiles-3.6.0/promises.cf 2014-06-12 13:14:42.000000000 +0200
@@ -72,6 +72,9 @@
version => "CFEngine Promises.cf 3.6.0";
+ # Uncomment to connect to the hub using latest protocol.
+ #protocol_version => "latest";
+
# goal_categories => { "goals", "targets", "milestones" };
# goal_patterns => { "goal_.*", "target.*","milestone.*" };
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/masterfiles-3.6rc2-build1/templates/host_info_report.mustache new/masterfiles-3.6.0/templates/host_info_report.mustache
--- old/masterfiles-3.6rc2-build1/templates/host_info_report.mustache 2014-05-26 22:07:16.000000000 +0200
+++ new/masterfiles-3.6.0/templates/host_info_report.mustache 2014-06-12 13:14:42.000000000 +0200
@@ -10,6 +10,7 @@
Last Agent Run: {{vars.host_info_report_cfengine.last_agent_run}}
Policy Release ID: {{vars.host_info_report_cfengine.cf_promises_release_id.releaseId}}
Policy Last Updated: {{vars.host_info_report_cfengine.cf_promises_validated_timestamp_formatted}}
+Bootstrapped to: {{vars.sys.policy_hub}}
## OS
Architecture: {{vars.sys.arch}}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/masterfiles-3.6rc2-build1/update.cf new/masterfiles-3.6.0/update.cf
--- old/masterfiles-3.6rc2-build1/update.cf 2014-05-26 22:07:16.000000000 +0200
+++ new/masterfiles-3.6.0/update.cf 2014-06-12 13:14:42.000000000 +0200
@@ -24,6 +24,9 @@
"update/update_policy.cf",
"update/update_processes.cf"
};
+
+ # Uncomment to connect to the hub using latest protocol.
+ #protocol_version => "latest";
}
#############################################################################
--
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-06-25 21:20:28
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
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 2014-06-01 19:41:26.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.cfengine.new/cfengine.changes 2014-06-25 21:20:44.000000000 +0200
@@ -1,0 +2,8 @@
+Wed Jun 18 13:36:37 UTC 2014 - kkaempf(a)suse.com
+
+- Upgrade to 3.6.0 final
+ Bugfixes
+
+- remove drop-revision.patch, included upstream
+
+-------------------------------------------------------------------
Old:
----
core-3.6rc2-build1.tar.gz
drop-revision.patch
New:
----
core-3.6.0.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ cfengine.spec ++++++
--- /var/tmp/diff_new_pack.0Js2vW/_old 2014-06-25 21:20:46.000000000 +0200
+++ /var/tmp/diff_new_pack.0Js2vW/_new 2014-06-25 21:20:46.000000000 +0200
@@ -17,7 +17,7 @@
Name: cfengine
-%define srcname core-3.6rc2-build1
+%define srcname core-3.6.0
%define libname libpromises
%define libsoname %{libname}3
@@ -32,7 +32,7 @@
Summary: CFEngine automates large-scale IT computing infrastructure
License: GPL-3.0
Group: Productivity/Networking/System
-Version: 3.6.0rc2
+Version: 3.6.0
Release: 0
Url: http://www.cfengine.org/
Source: %{srcname}.tar.gz
@@ -66,10 +66,6 @@
# 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
# kkaempf(a)suse.de
@@ -190,7 +186,6 @@
%if 0%{?rhel_version} >= 500 && 0%{?rhel_version} < 600
%patch2 -p1
%endif
-%patch3 -p1
%patch5 -p1
%patch6 -p1
++++++ core-3.6rc2-build1.tar.gz -> core-3.6.0.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/core-3.6rc2-build1/ChangeLog new/core-3.6.0/ChangeLog
--- old/core-3.6rc2-build1/ChangeLog 2014-05-26 18:01:14.000000000 +0200
+++ new/core-3.6.0/ChangeLog 2014-06-12 15:06:46.000000000 +0200
@@ -1,4 +1,4 @@
-3.6 Release Candidate
+3.6.0
Changes:
- Changes to logging output
@@ -29,14 +29,19 @@
- including the same file multiple times in 'body control inputs' is not an error
- portnumber in body copy_from now supports service names like
"cfengine", "pop3" etc, check /etc/services for more.
- - The failsafe.cf policy, run on bootstrap and in some other
- unusual cases, has been extracted from C code into libpromises/failsafe.cf
+ - The failsafe.cf policy, run on bootstrap and in some other
+ unusual cases, has been extracted from C code into libpromises/failsafe.cf
- masterfiles
- cf_promises_validated is now in JSON format
- timestamp key is timestamp (sec since unix epoch) of last time validated
- the masterfiles now come from https://github.com/cfengine/masterfiles and are
not in the core repository
- cf-serverd calls cf-agent with -Dcfruncommand when executing cf-runagent requests
+ - Mark as removed: promise_notkept_log_include, promise_notkept_log_exclude, promise_repaired_log_include,
+ promise_repaired_log_exclude, classes_include, classes_exclude, variables_include,
+ variables_exclude attributes from report_data_select body (syntax is valid but not functional).
+ They have been replaced by the following attributes: promise_handle_include,
+ promise_handle_exclude, metatags_include, metatags_exclude.
New features:
- New promise type "users" for managing local user accounts.
@@ -94,7 +99,7 @@
"deny_keys".
- New "shortcut" attribute in bundle server access_rules used to
dynamically expand non-absolute request paths.
- - masterfiles
+ - masterfiles
- standard library split: lib/3.5 (compatibility) and lib/3.6 (mainline)
- many standard library bundles and bodies, especially packages- and file-related,
were revised and fixed
@@ -104,15 +109,15 @@
- cf_promises_release_id contains the policy release ID which is the GIT HEAD SHA
if available or hash of tree
- a bunch'o'bundles to make starting with CFEngine easier:
- - file-related: file_mustache, file_mustache_jsonstring, file_tidy, dir_sync, file_copy,
+ - file-related: file_mustache, file_mustache_jsonstring, file_tidy, dir_sync, file_copy,
file_link, file_hardlink, file_empty, file_make
- - packages-related: package_absent, package_present, package_latest,
+ - packages-related: package_absent, package_present, package_latest,
package_specific_present, package_specific_absent, package_specific_latest, package_specific
- - XML-related: xml_insert_tree_nopath, xml_insert_tree, xml_set_value, xml_set_attribute
- - VCS-related: git_init, git_add, git_checkout, git_checkout_new_branch,
+ - XML-related: xml_insert_tree_nopath, xml_insert_tree, xml_set_value, xml_set_attribute
+ - VCS-related: git_init, git_add, git_checkout, git_checkout_new_branch,
git_clean, git_stash, git_stash_and_clean, git_commit, git
- - process-related: process_kill
- - other: cmerge, url_ping, logrotate, prunedir
+ - process-related: process_kill
+ - other: cmerge, url_ping, logrotate, prunedir
- New command line options for agent binaries
- New options to cf-promises
- '--show-classes' and '--show-vars'
@@ -143,7 +148,7 @@
- 'getvariablemetatags' - returns list of meta tags for a variable
- 'body file control' has an 'inputs' attribute to include library files and other
dependencies
- - bundlesequences can be built with bundlesmatching() based on bundle name and tags
+ - bundlesequences can be built with bundlesmatching() based on bundle name and tags
- New attributes in existing promise types and bodies
- New option 'preserve_all_lines' for insert_type in insert_lines promises
- Caching of expensive system functions to avoid multiple executions of
@@ -200,19 +205,20 @@
Deprecations:
- 'splitstring' - deprecated by 'string_split'
- - 'track_value'
- - 'skipverify'
+ - 'track_value'
+ - 'skipverify'
Bug fixes: for a complete list of fixed bugs, see Redmine at https://cfengine.com/dev
- various fixes in evaluation and variable resolution
- Improve performance of list iteration (Redmine #1875)
- Removed limitation of input length to internal buffer sizes
- - directories ending with "/" are not ignored
- - lsdir() always return a list now, never a scalar
+ - directories ending with "/" are not ignored
+ - lsdir() always return a list now, never a scalar
- 'abortclasses' fixed to work in common bundles and other cases
- namespaced 'edit_line' bundles now work (Redmine#3781)
- lists are interpolated in correct order (Redmine#3122)
- cf-serverd reloads policies properly when they change
+ - lots of leaks (memory and file descriptor) fixed
3.5.3
Changes:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/core-3.6rc2-build1/cf-agent/verify_exec.c new/core-3.6.0/cf-agent/verify_exec.c
--- old/core-3.6rc2-build1/cf-agent/verify_exec.c 2014-05-26 18:01:14.000000000 +0200
+++ new/core-3.6.0/cf-agent/verify_exec.c 2014-06-12 15:06:46.000000000 +0200
@@ -291,11 +291,12 @@
}
#endif /* !__MINGW32__ */
+ const char *open_mode = a.module ? "rt" : "r";
if (a.contain.shelltype == SHELL_TYPE_POWERSHELL)
{
#ifdef __MINGW32__
pfp =
- cf_popen_powershell_setuid(cmdline, "r", a.contain.owner, a.contain.group, a.contain.chdir, a.contain.chroot,
+ cf_popen_powershell_setuid(cmdline, open_mode, a.contain.owner, a.contain.group, a.contain.chdir, a.contain.chroot,
a.transaction.background);
#else // !__MINGW32__
Log(LOG_LEVEL_ERR, "Powershell is only supported on Windows");
@@ -305,13 +306,13 @@
else if (a.contain.shelltype == SHELL_TYPE_USE)
{
pfp =
- cf_popen_shsetuid(cmdline, "r", a.contain.owner, a.contain.group, a.contain.chdir, a.contain.chroot,
+ cf_popen_shsetuid(cmdline, open_mode, a.contain.owner, a.contain.group, a.contain.chdir, a.contain.chroot,
a.transaction.background);
}
else
{
pfp =
- cf_popensetuid(cmdline, "r", a.contain.owner, a.contain.group, a.contain.chdir, a.contain.chroot,
+ cf_popensetuid(cmdline, open_mode, a.contain.owner, a.contain.group, a.contain.chdir, a.contain.chroot,
a.transaction.background);
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/core-3.6rc2-build1/cf-agent/verify_users.c new/core-3.6.0/cf-agent/verify_users.c
--- old/core-3.6rc2-build1/cf-agent/verify_users.c 2014-05-26 18:01:14.000000000 +0200
+++ new/core-3.6.0/cf-agent/verify_users.c 2014-06-12 15:06:46.000000000 +0200
@@ -60,7 +60,7 @@
switch (result) {
case PROMISE_RESULT_NOOP:
- cfPS(ctx, LOG_LEVEL_INFO, PROMISE_RESULT_NOOP, pp, a, "User promise kept");
+ cfPS(ctx, LOG_LEVEL_VERBOSE, PROMISE_RESULT_NOOP, pp, a, "User promise kept");
break;
case PROMISE_RESULT_FAIL:
case PROMISE_RESULT_DENIED:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/core-3.6rc2-build1/cf-key/cf-key-functions.c new/core-3.6.0/cf-key/cf-key-functions.c
--- old/core-3.6rc2-build1/cf-key/cf-key-functions.c 2014-05-26 18:01:14.000000000 +0200
+++ new/core-3.6.0/cf-key/cf-key-functions.c 2014-06-12 15:06:46.000000000 +0200
@@ -129,6 +129,8 @@
return (ok? 0 : 1);
}
+extern bool cf_key_interrupted;
+
bool ShowHost(const char *hostkey, const char *address, bool incoming,
const KeyHostSeen *quality, void *ctx)
{
@@ -144,7 +146,7 @@
address, (ret != -1) ? hostname : "-",
cf_strtimestamp_local(quality->lastseen, timebuf), hostkey);
- return true;
+ return !cf_key_interrupted;
}
void ShowLastSeenHosts()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/core-3.6rc2-build1/cf-key/cf-key.c new/core-3.6.0/cf-key/cf-key.c
--- old/core-3.6rc2-build1/cf-key/cf-key.c 2014-05-26 18:01:14.000000000 +0200
+++ new/core-3.6.0/cf-key/cf-key.c 2014-06-12 15:06:46.000000000 +0200
@@ -36,6 +36,7 @@
#include <crypto.h>
#include <known_dirs.h>
#include <man.h>
+#include <signals.h>
#include <cf-key-functions.h>
@@ -97,6 +98,26 @@
/*****************************************************************************/
+typedef void (*CfKeySigHandler)(int signum);
+bool cf_key_interrupted = false;
+
+static void handleShowKeysSignal(int signum)
+{
+ cf_key_interrupted = true;
+
+ signal(signum, handleShowKeysSignal);
+}
+
+static void ThisAgentInit(CfKeySigHandler sighandler)
+{
+ signal(SIGINT, sighandler);
+ signal(SIGTERM, sighandler);
+ signal(SIGHUP, SIG_IGN);
+ signal(SIGPIPE, SIG_IGN);
+ signal(SIGUSR1, HandleSignalsForAgent);
+ signal(SIGUSR2, HandleSignalsForAgent);
+}
+
int main(int argc, char *argv[])
{
GenericAgentConfig *config = CheckOpts(argc, argv);
@@ -107,6 +128,7 @@
if (SHOWHOSTS)
{
+ ThisAgentInit(handleShowKeysSignal);
ShowLastSeenHosts();
return 0;
}
@@ -116,6 +138,7 @@
return PrintDigest(print_digest_arg);
}
+ ThisAgentInit(HandleSignalsForAgent);
if (REMOVEKEYS)
{
int status;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/core-3.6rc2-build1/cf-serverd/tls_server.c new/core-3.6.0/cf-serverd/tls_server.c
--- old/core-3.6rc2-build1/cf-serverd/tls_server.c 2014-05-26 18:01:14.000000000 +0200
+++ new/core-3.6.0/cf-serverd/tls_server.c 2014-06-12 15:06:46.000000000 +0200
@@ -165,13 +165,13 @@
}
else if (got == 0)
{
- Log(LOG_LEVEL_NOTICE,
+ Log(LOG_LEVEL_INFO,
"Peer closed TCP connection without sending data!");
return -1;
}
else if (got < peek_size)
{
- Log(LOG_LEVEL_NOTICE,
+ Log(LOG_LEVEL_INFO,
"Peer sent only %lld bytes! Considering the protocol as Classic",
(long long)got);
ConnectionInfoSetProtocolVersion(conn_info, CF_PROTOCOL_CLASSIC);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/core-3.6rc2-build1/configure.ac new/core-3.6.0/configure.ac
--- old/core-3.6rc2-build1/configure.ac 2014-05-26 18:01:14.000000000 +0200
+++ new/core-3.6.0/configure.ac 2014-06-12 15:06:46.000000000 +0200
@@ -25,7 +25,7 @@
dnl
_AM_SET_OPTION([tar-ustar])
-AM_INIT_AUTOMAKE(cfengine, 3.6.0.revision)
+AM_INIT_AUTOMAKE(cfengine, 3.6.0)
AM_MAINTAINER_MODE([enable])
AC_DEFINE(BUILD_YEAR, esyscmd([date +%Y | tr -d '\n']), "Software build year")
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/core-3.6rc2-build1/examples/container_key_iteration.cf new/core-3.6.0/examples/container_key_iteration.cf
--- old/core-3.6rc2-build1/examples/container_key_iteration.cf 1970-01-01 01:00:00.000000000 +0100
+++ new/core-3.6.0/examples/container_key_iteration.cf 2014-06-12 15:06:46.000000000 +0200
@@ -0,0 +1,73 @@
+# Copyright (C) Cfengine AS
+
+# This file is part of Cfengine 3 - written and maintained by Cfengine AS.
+
+# This program is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by the
+# Free Software Foundation; version 3.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+
+# To the extent this program is licensed as part of the Enterprise
+# versions of Cfengine, the applicable Commercial Open Source License
+# (COSL) may apply to this file if you as a licensee so wish it. See
+# included file COSL.txt.
+
+#+begin_src cfengine3
+body common control
+{
+ bundlesequence => { run };
+}
+
+bundle agent run
+{
+ vars:
+ "animals" data => parsejson('
+ {
+ "dog": { "legs": 4, "tail": true, "names": [ "Fido", "Cooper", "Sandy" ] },
+ "cat": { "legs": 4, "tail": true, "names": [ "Fluffy", "Snowball", "Tabby" ] },
+ "dolphin": { "legs": 0, "tail": true, "names": [ "Flipper", "Duffy" ] },
+ "hamster": { "legs": 4, "tail": true, "names": [ "Skullcrusher", "Kimmy", "Fluffadoo" ] },
+ }');
+
+ "keys_unsorted" slist => getindices("animals");
+ "keys" slist => sort(keys_unsorted, "lex");
+
+ "animals_$(keys)" data => mergedata("animals[$(keys)]");
+
+ methods:
+ # pass the container and a key inside it
+ "any" usebundle => analyze(@(animals), $(keys));
+}
+
+bundle agent analyze(animals, a)
+{
+ vars:
+ "names" slist => getvalues("animals[$(a)][names]");
+ "names_str" string => format("%S", names);
+
+ reports:
+ "$(this.bundle): possible names for animal '$(a)': $(names_str)";
+ "$(this.bundle): describe animal '$(a)' => name = $(a), legs = $(animals[$(a)][legs]), tail = $(animals[$(a)][tail])";
+}
+#+end_src
+###############################################################################
+#+begin_src example_output
+#@ ```
+#@ R: analyze: possible names for animal 'cat': { "Fluffy", "Snowball", "Tabby" }
+#@ R: analyze: describe animal 'cat' => name = cat, legs = 4, tail = true
+#@ R: analyze: possible names for animal 'dog': { "Fido", "Cooper", "Sandy" }
+#@ R: analyze: describe animal 'dog' => name = dog, legs = 4, tail = true
+#@ R: analyze: possible names for animal 'dolphin': { "Flipper", "Duffy" }
+#@ R: analyze: describe animal 'dolphin' => name = dolphin, legs = 0, tail = true
+#@ R: analyze: possible names for animal 'hamster': { "Skullcrusher", "Kimmy", "Fluffadoo" }
+#@ R: analyze: describe animal 'hamster' => name = hamster, legs = 4, tail = true
+#@ ```
+#+end_src
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/core-3.6rc2-build1/examples/readtcp.cf new/core-3.6.0/examples/readtcp.cf
--- old/core-3.6rc2-build1/examples/readtcp.cf 2014-05-26 18:01:14.000000000 +0200
+++ new/core-3.6.0/examples/readtcp.cf 2014-06-12 15:06:46.000000000 +0200
@@ -30,7 +30,7 @@
{
vars:
- "my80" string => readtcp("cfengine.com","80","GET /wp-includes/js/jquery/jquery.color.min.js HTTP/1.1$(const.r)$(const.n)Host: cfengine.com$(const.r)$(const.n)$(const.r)$(const.n)",20);
+ "my80" string => readtcp("myserver.com","80","GET /index.html HTTP/1.1$(const.r)$(const.n)Host: myserver.com$(const.r)$(const.n)$(const.r)$(const.n)",20);
classes:
@@ -47,9 +47,3 @@
"Server is not responding - got $(my80)";
}
#+end_src
-###############################################################################
-#+begin_src example_output
-#@ ```
-#@ R: Server is alive
-#@ ```
-#+end_src
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/core-3.6rc2-build1/examples/some.cf new/core-3.6.0/examples/some.cf
--- old/core-3.6rc2-build1/examples/some.cf 2014-05-26 18:01:14.000000000 +0200
+++ new/core-3.6.0/examples/some.cf 2014-06-12 15:06:46.000000000 +0200
@@ -29,12 +29,25 @@
bundle agent test
{
classes:
+
+ # This is an easy way to check if a list is empty, better than
+ # expression => strcmp(length(x), "0")
+
+ # Note that if you use length() or none() or every() they will
+ # go through all the elements!!! some() returns as soon as any
+ # element matches.
+ "empty_x" not => some(".*", x);
+ "empty_y" not => some(".*", y);
+
"some11" expression => some("long string", test1);
"some12" expression => some("none", test1);
"some21" expression => some("long string", test2);
"some22" expression => some("none", test2);
vars:
+ "x" slist => { "a", "b" };
+ "y" slist => { };
+
"test1" slist => {
1,2,3,
"one", "two", "three",
@@ -51,6 +64,12 @@
"one", "two", "three",]');
reports:
+ empty_x::
+ "x has no elements";
+ empty_y::
+ "y has no elements";
+
+ any::
"The test1 list is $(test1)";
some11::
"some() test1 1 passed";
@@ -76,6 +95,7 @@
###############################################################################
#+begin_src example_output
#@ ```
+#@ R: y has no elements
#@ R: The test1 list is 1
#@ R: The test1 list is 2
#@ R: The test1 list is 3
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/core-3.6rc2-build1/libcfnet/net.c new/core-3.6.0/libcfnet/net.c
--- old/core-3.6rc2-build1/libcfnet/net.c 2014-05-26 18:01:14.000000000 +0200
+++ new/core-3.6.0/libcfnet/net.c 2014-06-12 15:06:46.000000000 +0200
@@ -330,7 +330,7 @@
if (ret == -1)
{
Log(LOG_LEVEL_ERR,
- "Could not set socket to non-blocking mode. (fcntl: %s)",
+ "Failed to set socket to non-blocking mode (fcntl: %s)",
GetErrorStr());
}
@@ -339,7 +339,7 @@
{
if (errno != EINPROGRESS)
{
- Log(LOG_LEVEL_INFO, "Error connecting to server. (connect: %s)",
+ Log(LOG_LEVEL_INFO, "Failed to connect to server (connect: %s)",
GetErrorStr());
return false;
}
@@ -372,9 +372,17 @@
}
if (ret == -1)
{
- Log(LOG_LEVEL_ERR,
- "Error while waiting for connection (select: %s)",
- GetErrorStr());
+ if (errno == EINTR)
+ {
+ Log(LOG_LEVEL_ERR,
+ "Socket connect was interrupted by signal");
+ }
+ else
+ {
+ Log(LOG_LEVEL_ERR,
+ "Failure while connecting (select: %s)",
+ GetErrorStr());
+ }
return false;
}
@@ -390,7 +398,7 @@
if (errcode != 0)
{
- Log(LOG_LEVEL_INFO, "Error connecting to server: %s",
+ Log(LOG_LEVEL_INFO, "Failed to connect to server: %s",
GetErrorStrFromCode(errcode));
return false;
}
@@ -401,7 +409,7 @@
if (ret == -1)
{
Log(LOG_LEVEL_ERR,
- "Could not set socket back to blocking mode (fcntl: %s)",
+ "Failed to set socket back to blocking mode (fcntl: %s)",
GetErrorStr());
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/core-3.6rc2-build1/libcfnet/tls_generic.c new/core-3.6.0/libcfnet/tls_generic.c
--- old/core-3.6rc2-build1/libcfnet/tls_generic.c 2014-05-26 18:01:14.000000000 +0200
+++ new/core-3.6.0/libcfnet/tls_generic.c 2014-06-12 15:06:46.000000000 +0200
@@ -536,10 +536,41 @@
* for SSL_read() and SSL_write(). */
const char *errstr2 = TLSSecondarySSLError(code);
- Log(level, "%s: (%d %s) %s %s",
- prepend, code, errstr1,
- (errstr2 == NULL) ? "" : errstr2, /* most likely empty */
- syserr);
+ /* We know the socket is always blocking. However our blocking sockets
+ * have a timeout set via means of setsockopt(SO_RCVTIMEO), so internally
+ * OpenSSL can still get the EWOULDBLOCK error code from recv(). In that
+ * case OpenSSL gives us SSL_ERROR_WANT_READ despite the socket being
+ * blocking. So we log a proper error message! */
+ if (errcode == SSL_ERROR_WANT_READ)
+ {
+ Log(level, "%s: receive timeout", prepend);
+ }
+ else if (errcode == SSL_ERROR_WANT_WRITE)
+ {
+ Log(level, "%s: send timeout", prepend);
+ }
+ else
+ {
+ Log(level, "%s: (%d %s) %s %s",
+ prepend, code, errstr1,
+ (errstr2 == NULL) ? "" : errstr2, /* most likely empty */
+ syserr);
+ }
+}
+
+static void assert_SSLIsBlocking(const SSL *ssl)
+{
+#ifndef NDEBUG
+ int fd = SSL_get_fd(ssl);
+ if (fd >= 0)
+ {
+ int flags = fcntl(fd, F_GETFL, 0);
+ if (flags != -1 && (flags & O_NONBLOCK) != 0)
+ {
+ ProgrammingError("OpenSSL socket is non-blocking!");
+ }
+ }
+#endif
}
/**
@@ -559,6 +590,7 @@
int TLSSend(SSL *ssl, const char *buffer, int length)
{
assert(length >= 0);
+ assert_SSLIsBlocking(ssl);
if (length == 0)
{
@@ -606,6 +638,7 @@
{
assert(length > 0);
assert(length < CF_BUFSIZE);
+ assert_SSLIsBlocking(ssl);
int received = SSL_read(ssl, buffer, length);
if (received < 0)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/core-3.6rc2-build1/libpromises/dbm_lmdb.c new/core-3.6.0/libpromises/dbm_lmdb.c
--- old/core-3.6rc2-build1/libpromises/dbm_lmdb.c 2014-05-26 18:01:14.000000000 +0200
+++ new/core-3.6.0/libpromises/dbm_lmdb.c 2014-06-12 15:06:46.000000000 +0200
@@ -134,9 +134,16 @@
static void AbortTransaction(DBPriv *db)
{
DBTxn *db_txn = pthread_getspecific(db->txn_key);
- mdb_txn_abort(db_txn->txn);
- db_txn->txn = NULL;
- db_txn->rw_txn = false;
+ if (db_txn != NULL)
+ {
+ if (db_txn->txn != NULL)
+ {
+ mdb_txn_abort(db_txn->txn);
+ }
+
+ pthread_setspecific(db->txn_key, NULL);
+ free(db_txn);
+ }
}
static void DestroyTransaction(void *ptr)
@@ -258,10 +265,15 @@
void DBPrivCloseDB(DBPriv *db)
{
+ /* Abort LMDB transaction of the current thread. There should only be some
+ * transaction open when the signal handler or atexit() hook is called. */
+ AbortTransaction(db);
+
if (db->env)
{
mdb_env_close(db->env);
}
+
pthread_key_delete(db->txn_key);
free(db);
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/core-3.6rc2-build1/libpromises/eval_context.c new/core-3.6.0/libpromises/eval_context.c
--- old/core-3.6rc2-build1/libpromises/eval_context.c 2014-05-26 18:01:14.000000000 +0200
+++ new/core-3.6.0/libpromises/eval_context.c 2014-06-12 15:06:46.000000000 +0200
@@ -1198,8 +1198,6 @@
LoggingPrivSetLevels(CalculateLogLevel(pexp), CalculateReportLevel(pexp));
- EvalContextVariablePutSpecial(ctx, SPECIAL_SCOPE_THIS, "promiser", pexp->promiser, CF_DATA_TYPE_STRING, "source=promise");
-
return pexp;
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/core-3.6rc2-build1/libpromises/lastseen.c new/core-3.6.0/libpromises/lastseen.c
--- old/core-3.6rc2-build1/libpromises/lastseen.c 2014-05-26 18:01:14.000000000 +0200
+++ new/core-3.6.0/libpromises/lastseen.c 2014-06-12 15:06:46.000000000 +0200
@@ -482,29 +482,18 @@
/*****************************************************************************/
bool ScanLastSeenQuality(LastSeenQualityCallback callback, void *ctx)
{
- DBHandle *db;
- DBCursor *cursor;
-
- if (!OpenDB(&db, dbid_lastseen))
- {
- Log(LOG_LEVEL_ERR, "Unable to open lastseen database");
- return false;
- }
-
- if (!NewDBCursor(db, &cursor))
+ StringMap *lastseen_db = LoadDatabaseToStringMap(dbid_lastseen);
+ if (!lastseen_db)
{
- Log(LOG_LEVEL_ERR, "Unable to create lastseen database cursor");
- CloseDB(db);
return false;
}
+ MapIterator it = MapIteratorInit(lastseen_db->impl);
+ MapKeyValue *item;
- char *key;
- void *value;
- int ksize, vsize;
Seq *hostkeys = SeqNew(100, free);
-
- while (NextDB(cursor, &key, &ksize, &value, &vsize))
+ while ((item = MapIteratorNext(&it)) != NULL)
{
+ char *key = item->key;
/* Only look for "keyhost" entries */
if (key[0] != 'k')
{
@@ -513,17 +502,15 @@
SeqAppend(hostkeys, xstrdup(key + 1));
}
-
- DeleteDBCursor(cursor);
-
for (int i = 0; i < SeqLength(hostkeys); ++i)
{
const char *hostkey = SeqAt(hostkeys, i);
char keyhost_key[CF_BUFSIZE];
snprintf(keyhost_key, CF_BUFSIZE, "k%s", hostkey);
- char address[CF_BUFSIZE];
- if (!ReadDB(db, keyhost_key, &address, sizeof(address)))
+ char *address = NULL;
+ address = (char*)StringMapGet(lastseen_db, keyhost_key);
+ if (!address)
{
Log(LOG_LEVEL_ERR, "Failed to read address for key '%s'.", hostkey);
continue;
@@ -531,10 +518,11 @@
char incoming_key[CF_BUFSIZE];
snprintf(incoming_key, CF_BUFSIZE, "qi%s", hostkey);
- KeyHostSeen incoming;
- if (ReadDB(db, incoming_key, &incoming, sizeof(incoming)))
+ KeyHostSeen *incoming = NULL;
+ incoming = (KeyHostSeen*)StringMapGet(lastseen_db, incoming_key);
+ if (incoming)
{
- if (!(*callback)(hostkey, address, true, &incoming, ctx))
+ if (!(*callback)(hostkey, address, true, incoming, ctx))
{
break;
}
@@ -542,20 +530,20 @@
char outgoing_key[CF_BUFSIZE];
snprintf(outgoing_key, CF_BUFSIZE, "qo%s", hostkey);
- KeyHostSeen outgoing;
- if (ReadDB(db, outgoing_key, &outgoing, sizeof(outgoing)))
+ KeyHostSeen *outgoing = NULL;
+ outgoing = (KeyHostSeen*)StringMapGet(lastseen_db, outgoing_key);
+ if (outgoing)
{
- if (!(*callback)(hostkey, address, false, &outgoing, ctx))
+ if (!(*callback)(hostkey, address, false, outgoing, ctx))
{
break;
}
}
}
+ StringMapDestroy(lastseen_db);
SeqDestroy(hostkeys);
- CloseDB(db);
-
return true;
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/core-3.6rc2-build1/libpromises/promises.c new/core-3.6.0/libpromises/promises.c
--- old/core-3.6rc2-build1/libpromises/promises.c 2014-05-26 18:01:14.000000000 +0200
+++ new/core-3.6.0/libpromises/promises.c 2014-06-12 15:06:46.000000000 +0200
@@ -284,6 +284,13 @@
Rval returnval = ExpandPrivateRval(ctx, NULL, "this", pp->promiser, RVAL_TYPE_SCALAR);
pcopy->promiser = RvalScalarValue(returnval);
+ if ((strcmp("files", pp->parent_promise_type->name) != 0) &&
+ (strcmp("storage", pp->parent_promise_type->name) != 0))
+ {
+ EvalContextVariablePutSpecial(ctx, SPECIAL_SCOPE_THIS, "promiser", pcopy->promiser,
+ CF_DATA_TYPE_STRING, "source=promise");
+ }
+
if (pp->promisee.item)
{
pcopy->promisee = EvaluateFinalRval(ctx, PromiseGetPolicy(pp), NULL, "this", pp->promisee, true, pp);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/core-3.6rc2-build1/tests/acceptance/01_vars/01_basic/staging/this_promises_in_command_args.cf new/core-3.6.0/tests/acceptance/01_vars/01_basic/staging/this_promises_in_command_args.cf
--- old/core-3.6rc2-build1/tests/acceptance/01_vars/01_basic/staging/this_promises_in_command_args.cf 1970-01-01 01:00:00.000000000 +0100
+++ new/core-3.6.0/tests/acceptance/01_vars/01_basic/staging/this_promises_in_command_args.cf 2014-06-12 15:06:46.000000000 +0200
@@ -0,0 +1,32 @@
+#######################################################
+#
+# Redmine#5959
+#
+#######################################################
+
+body common control
+{
+ inputs => { "../../default.cf.sub" };
+ bundlesequence => { default("$(this.promise_filename)") };
+ version => "1.0";
+}
+
+#######################################################
+
+bundle agent test
+{
+ commands:
+ # should expand to "touch testfile touch testfile.2"
+ "$(G.touch) $(G.testfile)"
+ args => "$(this.promiser).2";
+}
+
+#######################################################
+
+bundle agent check
+{
+ methods:
+ "" usebundle => dcs_passif_fileexists("$(G.testfile).2",
+ $(this.promise_filename));
+
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/core-3.6rc2-build1/tests/acceptance/08_commands/01_modules/001.cf new/core-3.6.0/tests/acceptance/08_commands/01_modules/001.cf
--- old/core-3.6rc2-build1/tests/acceptance/08_commands/01_modules/001.cf 2014-05-26 18:01:14.000000000 +0200
+++ new/core-3.6.0/tests/acceptance/08_commands/01_modules/001.cf 2014-06-12 15:06:46.000000000 +0200
@@ -6,7 +6,7 @@
body common control
{
- inputs => { "../../default.cf.sub" };
+ inputs => { "../../default.cf.sub", "../../plucked.cf.sub" };
bundlesequence => { default("$(this.promise_filename)") };
version => "1.0";
}
@@ -16,46 +16,42 @@
bundle agent init
{
vars:
- "script_name" string => "$(this.promise_filename).script";
+ "script_name" string => "$(this.promise_filename).txt";
}
#######################################################
bundle agent test
{
- meta:
- "test_suppress_fail" string => "windows",
- meta => { "redmine1884" };
-
- classes:
- "matched" expression => regextract(".+/([^/]+)$",
- "${init.script_name}",
- "script_basename");
+ vars:
+ !windows::
+ "cat_prefix" string => "cat";
+ windows::
+ "cat_prefix" string => "cat_exe";
commands:
- "$(init.script_name)" module => "true";
+ "$(G.cat) $(init.script_name)"
+ contain => in_shell,
+ module => "true";
}
#######################################################
bundle agent check
{
- vars:
- "canonical_script_basename" string => canonify("${test.script_basename[1]}");
-
classes:
CLASSTOBEDEFINED.!UNDEFINEDCLASS::
"classok" expression => "any";
any::
- "varok" expression => strcmp("${${canonical_script_basename}.answer}", "42");
+ "varok" expression => strcmp("${$(test.cat_prefix).answer}", "42");
"ok" and => { "classok", "varok" };
reports:
DEBUG::
- "${${canonical_script_basename}.answer} =?= 42";
+ "${$(test.cat_prefix).answer} =?= 42";
ok::
"$(this.promise_filename) Pass";
!ok::
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/core-3.6rc2-build1/tests/acceptance/08_commands/01_modules/001.cf.script new/core-3.6.0/tests/acceptance/08_commands/01_modules/001.cf.script
--- old/core-3.6rc2-build1/tests/acceptance/08_commands/01_modules/001.cf.script 2014-05-26 18:01:14.000000000 +0200
+++ new/core-3.6.0/tests/acceptance/08_commands/01_modules/001.cf.script 1970-01-01 01:00:00.000000000 +0100
@@ -1,5 +0,0 @@
-#!/bin/sh
-
-echo +CLASSTOBEDEFINED
-echo -UNDEFINEDCLASS
-echo =answer=42
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/core-3.6rc2-build1/tests/acceptance/08_commands/01_modules/001.cf.txt new/core-3.6.0/tests/acceptance/08_commands/01_modules/001.cf.txt
--- old/core-3.6rc2-build1/tests/acceptance/08_commands/01_modules/001.cf.txt 1970-01-01 01:00:00.000000000 +0100
+++ new/core-3.6.0/tests/acceptance/08_commands/01_modules/001.cf.txt 2014-06-12 15:06:46.000000000 +0200
@@ -0,0 +1,3 @@
++CLASSTOBEDEFINED
+-UNDEFINEDCLASS
+=answer=42
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/core-3.6rc2-build1/tests/acceptance/08_commands/01_modules/002.cf new/core-3.6.0/tests/acceptance/08_commands/01_modules/002.cf
--- old/core-3.6rc2-build1/tests/acceptance/08_commands/01_modules/002.cf 2014-05-26 18:01:14.000000000 +0200
+++ new/core-3.6.0/tests/acceptance/08_commands/01_modules/002.cf 2014-06-12 15:06:46.000000000 +0200
@@ -6,7 +6,7 @@
body common control
{
- inputs => { "../../default.cf.sub" };
+ inputs => { "../../default.cf.sub", "../../plucked.cf.sub" };
bundlesequence => { default("$(this.promise_filename)") };
version => "1.0";
}
@@ -15,24 +15,23 @@
bundle agent init
{
vars:
- "script_name" string => "$(this.promise_filename).script";
+ "script_name" string => "$(this.promise_filename).txt";
}
#######################################################
bundle agent test
{
- meta:
- "test_suppress_fail" string => "windows",
- meta => { "redmine1884" };
-
- classes:
- "matched" expression => regextract(".+/([^/]+)$",
- "${init.script_name}",
- "script_basename");
+ vars:
+ !windows::
+ "cat_prefix" string => "cat";
+ windows::
+ "cat_prefix" string => "cat_exe";
commands:
- "$(init.script_name)" module => "true";
+ "$(G.cat) $(init.script_name)"
+ contain => in_shell,
+ module => "true";
}
#######################################################
@@ -40,18 +39,16 @@
bundle agent check
{
vars:
- "canonical_script_basename" string => canonify("${test.script_basename[1]}");
-
- "generated_indices" slist => getindices("${canonical_script_basename}.answer");
+ "generated_indices" slist => getindices("$(test.cat_prefix).answer");
classes:
- "ok" and => { strcmp("${${canonical_script_basename}.answer[42]}", "Yes"),
- strcmp("${${canonical_script_basename}.answer[41]}", "No") };
+ "ok" and => { strcmp("${$(test.cat_prefix).answer[42]}", "Yes"),
+ strcmp("${$(test.cat_prefix).answer[41]}", "No") };
reports:
DEBUG::
- "${${canonical_script_basename}.answer[${generated_indices}]}";
+ "${$(test.cat_prefix).answer[${generated_indices}]}";
ok::
"$(this.promise_filename) Pass";
!ok::
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/core-3.6rc2-build1/tests/acceptance/08_commands/01_modules/002.cf.script new/core-3.6.0/tests/acceptance/08_commands/01_modules/002.cf.script
--- old/core-3.6rc2-build1/tests/acceptance/08_commands/01_modules/002.cf.script 2014-05-26 18:01:14.000000000 +0200
+++ new/core-3.6.0/tests/acceptance/08_commands/01_modules/002.cf.script 1970-01-01 01:00:00.000000000 +0100
@@ -1,5 +0,0 @@
-#!/bin/sh
-
-echo =answer[42]=Yes
-echo =answer[41]=No
-
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/core-3.6rc2-build1/tests/acceptance/08_commands/01_modules/002.cf.txt new/core-3.6.0/tests/acceptance/08_commands/01_modules/002.cf.txt
--- old/core-3.6rc2-build1/tests/acceptance/08_commands/01_modules/002.cf.txt 1970-01-01 01:00:00.000000000 +0100
+++ new/core-3.6.0/tests/acceptance/08_commands/01_modules/002.cf.txt 2014-06-12 15:06:46.000000000 +0200
@@ -0,0 +1,2 @@
+=answer[42]=Yes
+=answer[41]=No
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/core-3.6rc2-build1/tests/acceptance/08_commands/01_modules/003.cf new/core-3.6.0/tests/acceptance/08_commands/01_modules/003.cf
--- old/core-3.6rc2-build1/tests/acceptance/08_commands/01_modules/003.cf 2014-05-26 18:01:14.000000000 +0200
+++ new/core-3.6.0/tests/acceptance/08_commands/01_modules/003.cf 2014-06-12 15:06:46.000000000 +0200
@@ -6,7 +6,7 @@
body common control
{
- inputs => { "../../default.cf.sub" };
+ inputs => { "../../default.cf.sub", "../../plucked.cf.sub" };
bundlesequence => { default("$(this.promise_filename)") };
version => "1.0";
}
@@ -16,39 +16,35 @@
bundle agent init
{
vars:
- "script_name" string => "$(this.promise_filename).script";
+ "script_name" string => "$(this.promise_filename).txt";
}
#######################################################
bundle agent test
{
- meta:
- "test_suppress_fail" string => "windows",
- meta => { "redmine1884" };
-
- classes:
- "matched" expression => regextract(".+/([^/]+)$",
- "${init.script_name}",
- "script_basename");
+ vars:
+ !windows::
+ "cat_prefix" string => "cat";
+ windows::
+ "cat_prefix" string => "cat_exe";
commands:
- "$(init.script_name)" module => "true";
+ "$(G.cat) $(init.script_name)"
+ contain => in_shell,
+ module => "true";
}
#######################################################
bundle agent check
{
- vars:
- "canonical_script_basename" string => canonify("${test.script_basename[1]}");
-
classes:
- "ok" expression => strcmp("$($(canonical_script_basename).myvar[dot.dash-test])", "42");
+ "ok" expression => strcmp("$($(test.cat_prefix).myvar[dot.dash-test])", "42");
reports:
DEBUG::
- "${${canonical_script_basename}.myvar[dot.dash-test]} =?= 42";
+ "${$(test.cat_prefix).myvar[dot.dash-test]} =?= 42";
ok::
"$(this.promise_filename) Pass";
!ok::
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/core-3.6rc2-build1/tests/acceptance/08_commands/01_modules/003.cf.script new/core-3.6.0/tests/acceptance/08_commands/01_modules/003.cf.script
--- old/core-3.6rc2-build1/tests/acceptance/08_commands/01_modules/003.cf.script 2014-05-26 18:01:14.000000000 +0200
+++ new/core-3.6.0/tests/acceptance/08_commands/01_modules/003.cf.script 1970-01-01 01:00:00.000000000 +0100
@@ -1,3 +0,0 @@
-#!/bin/sh
-
-echo =myvar[dot.dash-test]=42
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/core-3.6rc2-build1/tests/acceptance/08_commands/01_modules/003.cf.txt new/core-3.6.0/tests/acceptance/08_commands/01_modules/003.cf.txt
--- old/core-3.6rc2-build1/tests/acceptance/08_commands/01_modules/003.cf.txt 1970-01-01 01:00:00.000000000 +0100
+++ new/core-3.6.0/tests/acceptance/08_commands/01_modules/003.cf.txt 2014-06-12 15:06:46.000000000 +0200
@@ -0,0 +1 @@
+=myvar[dot.dash-test]=42
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/core-3.6rc2-build1/tests/acceptance/08_commands/01_modules/004.cf new/core-3.6.0/tests/acceptance/08_commands/01_modules/004.cf
--- old/core-3.6rc2-build1/tests/acceptance/08_commands/01_modules/004.cf 2014-05-26 18:01:14.000000000 +0200
+++ new/core-3.6.0/tests/acceptance/08_commands/01_modules/004.cf 2014-06-12 15:06:46.000000000 +0200
@@ -6,7 +6,7 @@
body common control
{
- inputs => { "../../default.cf.sub" };
+ inputs => { "../../default.cf.sub", "../../plucked.cf.sub" };
bundlesequence => { default("$(this.promise_filename)") };
version => "1.0";
}
@@ -16,7 +16,7 @@
bundle agent init
{
vars:
- "script_name" string => "$(this.promise_filename).script";
+ "script_name" string => "$(this.promise_filename).txt";
}
@@ -24,18 +24,16 @@
bundle agent test
{
- meta:
- "test_suppress_fail" string => "windows",
- meta => { "redmine1884" };
-
- classes:
- "matched" expression => regextract(".+/([^/]+)$",
- "${init.script_name}",
- "script_basename");
+ vars:
+ !windows::
+ "cat_prefix" string => "cat";
+ windows::
+ "cat_prefix" string => "cat_exe";
commands:
- "$(init.script_name)" module => "true";
-
+ "$(G.cat) $(init.script_name)"
+ contain => in_shell,
+ module => "true";
}
#######################################################
@@ -53,12 +51,10 @@
"actual2" string => join(":", "list2");
"actual3" string => join(":", "list3");
- "canonical_script_basename" string => canonify("${test.script_basename[1]}");
-
- "joined0" string => join(":", "${canonical_script_basename}.mylist");
- "joined1" string => join(":", "${canonical_script_basename}.myalist");
- "joined2" string => join(":", "${canonical_script_basename}.myblist");
- "joined3" string => join(":", "${canonical_script_basename}.myclist");
+ "joined0" string => join(":", "$(test.cat_prefix).mylist");
+ "joined1" string => join(":", "$(test.cat_prefix).myalist");
+ "joined2" string => join(":", "$(test.cat_prefix).myblist");
+ "joined3" string => join(":", "$(test.cat_prefix).myclist");
classes:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/core-3.6rc2-build1/tests/acceptance/08_commands/01_modules/004.cf.script new/core-3.6.0/tests/acceptance/08_commands/01_modules/004.cf.script
--- old/core-3.6rc2-build1/tests/acceptance/08_commands/01_modules/004.cf.script 2014-05-26 18:01:14.000000000 +0200
+++ new/core-3.6.0/tests/acceptance/08_commands/01_modules/004.cf.script 1970-01-01 01:00:00.000000000 +0100
@@ -1,6 +0,0 @@
-#!/bin/sh
-
-echo "@mylist={\"abc\", \"def\", \"ghi\"}"
-echo "@myalist={\"{{abc}}\", \" ' def}\", \"ghi'''\"}"
-echo "@myblist={'{{a,bc}}', ' \" de,f}', 'gh,,i\"\"\"'}"
-echo "@myclist={\"{{a'bc',,}}\", ' \",, d\"ef}', \"ghi,},'''\"}"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/core-3.6rc2-build1/tests/acceptance/08_commands/01_modules/004.cf.txt new/core-3.6.0/tests/acceptance/08_commands/01_modules/004.cf.txt
--- old/core-3.6rc2-build1/tests/acceptance/08_commands/01_modules/004.cf.txt 1970-01-01 01:00:00.000000000 +0100
+++ new/core-3.6.0/tests/acceptance/08_commands/01_modules/004.cf.txt 2014-06-12 15:06:46.000000000 +0200
@@ -0,0 +1,4 @@
+@mylist={"abc", "def", "ghi"}
+@myalist={"{{abc}}", " ' def}", "ghi'''"}
+@myblist={'{{a,bc}}', ' " de,f}', 'gh,,i"""'}
+@myclist={"{{a'bc',,}}", ' ",, d"ef}', "ghi,},'''"}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/core-3.6rc2-build1/tests/acceptance/08_commands/01_modules/set-context.cf new/core-3.6.0/tests/acceptance/08_commands/01_modules/set-context.cf
--- old/core-3.6rc2-build1/tests/acceptance/08_commands/01_modules/set-context.cf 2014-05-26 18:01:14.000000000 +0200
+++ new/core-3.6.0/tests/acceptance/08_commands/01_modules/set-context.cf 2014-06-12 15:06:46.000000000 +0200
@@ -7,7 +7,7 @@
body common control
{
- inputs => { "../../default.cf.sub" };
+ inputs => { "../../default.cf.sub", "../../plucked.cf.sub" };
bundlesequence => { default("$(this.promise_filename)") };
version => "1.0";
}
@@ -17,7 +17,7 @@
bundle agent init
{
vars:
- "script_name" string => "$(this.promise_filename).script";
+ "script_name" string => "$(this.promise_filename).txt";
}
@@ -25,18 +25,10 @@
bundle agent test
{
- meta:
- "test_suppress_fail" string => "windows",
- meta => { "redmine1884" };
-
- classes:
- "matched" expression => regextract(".+/([^/]+)$",
- "${init.script_name}",
- "script_basename");
-
commands:
- "$(init.script_name)" module => "true";
-
+ "$(G.cat) $(init.script_name)"
+ contain => in_shell,
+ module => "true";
}
#######################################################
@@ -54,8 +46,6 @@
"actual2" string => join(":", "list2");
"actual3" string => join(":", "list3");
- "canonical_script_basename" string => canonify("${test.script_basename[1]}");
-
"joined0" string => join(":", "xyz.mylist");
"joined1" string => join(":", "xyz.myalist");
"joined2" string => join(":", "xyz.myblist");
@@ -85,7 +75,7 @@
"ok_c6" expression => strcmp($(e6) , $(c6));
"ok" and => { "myclass", "var0ok", "var1ok", "var2ok", "var3ok", "var4ok",
- "ok_c1", "ok_c2", "ok_c3", "ok_c4", };
+ "ok_c1", "ok_c2", "ok_c3", "ok_c4", "ok_c5", "ok_c6" };
reports:
DEBUG::
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/core-3.6rc2-build1/tests/acceptance/08_commands/01_modules/set-context.cf.script new/core-3.6.0/tests/acceptance/08_commands/01_modules/set-context.cf.script
--- old/core-3.6rc2-build1/tests/acceptance/08_commands/01_modules/set-context.cf.script 2014-05-26 18:01:14.000000000 +0200
+++ new/core-3.6.0/tests/acceptance/08_commands/01_modules/set-context.cf.script 1970-01-01 01:00:00.000000000 +0100
@@ -1,15 +0,0 @@
-#!/bin/sh
-
-echo "^context=xyz"
-echo "+myclass"
-echo "=myvar=hello there"
-echo "@mylist={\"abc\", \"def\", \"ghi\"}"
-echo "@myalist={\"{{abc}}\", \" ' def}\", \"ghi'''\"}"
-echo "@myblist={'{{a,bc}}', ' \" de,f}', 'gh,,i\"\"\"'}"
-echo "@myclist={\"{{a'bc',,}}\", ' \",, d\"ef}', \"ghi,},'''\"}"
-echo '%mycontainer1={"x":[456,789]}'
-echo '%mycontainer2={"x":"y"'
-echo '%mycontainer3="long string here"'
-echo '%mycontainer4=null'
-echo '%mycontainer5=["read", "some", "strings"]'
-echo '%mycontainer6={"mix": ["match"], "ping": "pong", "paddle": true, "nothing": null}'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/core-3.6rc2-build1/tests/acceptance/08_commands/01_modules/set-context.cf.txt new/core-3.6.0/tests/acceptance/08_commands/01_modules/set-context.cf.txt
--- old/core-3.6rc2-build1/tests/acceptance/08_commands/01_modules/set-context.cf.txt 1970-01-01 01:00:00.000000000 +0100
+++ new/core-3.6.0/tests/acceptance/08_commands/01_modules/set-context.cf.txt 2014-06-12 15:06:46.000000000 +0200
@@ -0,0 +1,13 @@
+^context=xyz
++myclass
+=myvar=hello there
+@mylist={"abc", "def", "ghi"}
+@myalist={"{{abc}}", " ' def}", "ghi'''"}
+@myblist={'{{a,bc}}', ' " de,f}', 'gh,,i"""'}
+@myclist={"{{a'bc',,}}", ' ",, d"ef}', "ghi,},'''"}
+%mycontainer1={"x":[456,789]}
+%mycontainer2={"x":"y"
+%mycontainer3="long string here"
+%mycontainer4=null
+%mycontainer5=["read", "some", "strings"]
+%mycontainer6={"mix": ["match"], "ping": "pong", "paddle": true, "nothing": null}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/core-3.6rc2-build1/tests/acceptance/08_commands/01_modules/set-tags.cf new/core-3.6.0/tests/acceptance/08_commands/01_modules/set-tags.cf
--- old/core-3.6rc2-build1/tests/acceptance/08_commands/01_modules/set-tags.cf 2014-05-26 18:01:14.000000000 +0200
+++ new/core-3.6.0/tests/acceptance/08_commands/01_modules/set-tags.cf 2014-06-12 15:06:46.000000000 +0200
@@ -6,7 +6,7 @@
body common control
{
- inputs => { "../../default.cf.sub" };
+ inputs => { "../../default.cf.sub", "../../plucked.cf.sub" };
bundlesequence => { default("$(this.promise_filename)") };
version => "1.0";
}
@@ -16,7 +16,7 @@
bundle common init
{
vars:
- "script_name" string => "$(this.promise_filename).script";
+ "script_name" string => "$(this.promise_filename).txt";
}
@@ -24,13 +24,10 @@
bundle agent test
{
- meta:
- "test_suppress_fail" string => "windows",
- meta => { "redmine1884" };
-
commands:
- "$(init.script_name)" module => "true";
-
+ "$(G.cat) $(init.script_name)"
+ contain => in_shell,
+ module => "true";
}
#######################################################
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/core-3.6rc2-build1/tests/acceptance/08_commands/01_modules/set-tags.cf.script new/core-3.6.0/tests/acceptance/08_commands/01_modules/set-tags.cf.script
--- old/core-3.6rc2-build1/tests/acceptance/08_commands/01_modules/set-tags.cf.script 2014-05-26 18:01:14.000000000 +0200
+++ new/core-3.6.0/tests/acceptance/08_commands/01_modules/set-tags.cf.script 1970-01-01 01:00:00.000000000 +0100
@@ -1,14 +0,0 @@
-#!/bin/sh
-
-echo "^context=xyz"
-echo "^meta=xyz,abc=def,,??what is this??"
-echo "+myclass"
-echo "=myvar=hello there"
-echo "@mylist={\"abc\", \"def\", \"ghi\"}"
-echo "@myalist={\"{{abc}}\", \" ' def}\", \"ghi'''\"}"
-echo "^meta=1,2,3"
-echo "@myblist={'{{a,bc}}', ' \" de,f}', 'gh,,i\"\"\"'}"
-echo "+mybclass"
-echo "^meta=a,b,c"
-echo "@myclist={\"{{a'bc',,}}\", ' \",, d\"ef}', \"ghi,},'''\"}"
-echo "+mycclass"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/core-3.6rc2-build1/tests/acceptance/08_commands/01_modules/set-tags.cf.txt new/core-3.6.0/tests/acceptance/08_commands/01_modules/set-tags.cf.txt
--- old/core-3.6rc2-build1/tests/acceptance/08_commands/01_modules/set-tags.cf.txt 1970-01-01 01:00:00.000000000 +0100
+++ new/core-3.6.0/tests/acceptance/08_commands/01_modules/set-tags.cf.txt 2014-06-12 15:06:46.000000000 +0200
@@ -0,0 +1,12 @@
+^context=xyz
+^meta=xyz,abc=def,,??what is this??
++myclass
+=myvar=hello there
+@mylist={"abc", "def", "ghi"}
+@myalist={"{{abc}}", " ' def}", "ghi'''"}
+^meta=1,2,3
+@myblist={'{{a,bc}}', ' " de,f}', 'gh,,i"""'}
++mybclass
+^meta=a,b,c
+@myclist={"{{a'bc',,}}", ' ",, d"ef}', "ghi,},'''"}
++mycclass
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/core-3.6rc2-build1/tests/acceptance/18_examples/network/check_outputs.cf new/core-3.6.0/tests/acceptance/18_examples/network/check_outputs.cf
--- old/core-3.6rc2-build1/tests/acceptance/18_examples/network/check_outputs.cf 2014-05-26 18:01:14.000000000 +0200
+++ new/core-3.6.0/tests/acceptance/18_examples/network/check_outputs.cf 1970-01-01 01:00:00.000000000 +0100
@@ -1,96 +0,0 @@
-#######################################################
-#
-# Check the example outputs
-#
-#######################################################
-
-body common control
-{
- inputs => { "../../default.cf.sub" };
- bundlesequence => { default("$(this.promise_filename)") };
-}
-
-#######################################################
-
-bundle agent init
-{
- vars:
- "basedir" string => "../../examples";
- "checker" string => "$(basedir)/remake_outputs.pl";
- "all_examples" slist => findfiles("$(basedir)/*.cf");
-
- commands:
- # we need to avoid the cf-key messages
- "$(sys.cf_key)";
-
- reports:
- DEBUG_LOTS::
- "$(this.bundle): will consider example $(all_examples)";
-}
-
-#######################################################
-
-bundle agent test
-{
- meta:
- "test_skip_unsupported" string => "windows";
-
- vars:
- "examples" slist => { @(init.all_examples) };
- "canon[$(examples)]" string => canonify($(examples));
-
- classes:
- "has_output_block_$(canon[$(examples)])"
- expression => regline(".*example_output.*", $(examples));
-
- methods:
- "$(examples)" usebundle => test_example($(examples)),
- ifvarclass => "has_output_block_$(canon[$(examples)])";
-
- reports:
- DEBUG::
- "$(this.bundle): found example with output $(examples)"
- ifvarclass => "has_output_block_$(canon[$(examples)])";
-}
-
-bundle agent test_example(file)
-{
- vars:
- "cfile" string => canonify($(file));
-
- "checker" string => "$(G.perl) $(init.checker) --cfagent=$(sys.cf_agent) --workdir=$(G.testdir) -c";
-
- classes:
- "failure_$(cfile)" not => returnszero("$(checker) $(file)", "noshell"), scope => "namespace";
-
- methods:
- "with verbose" usebundle => verbose_output("$(checker) -v $(file)"),
- ifvarclass => "failure_$(cfile)";
-
- reports:
- "$(this.bundle): checker '$(checker) $(file)' returned error"
- ifvarclass => "failure_$(cfile)";
-
- DEBUG::
- "$(this.bundle): ran checker '$(checker) $(file)'";
-}
-
-bundle agent verbose_output(runme)
-{
- commands:
- "$(runme)";
-}
-
-#######################################################
-
-bundle agent check
-{
- classes:
- "ok" not => classmatch("failure.*");
-
- reports:
- ok::
- "$(this.promise_filename) Pass";
- !ok::
- "$(this.promise_filename) FAIL";
-}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/core-3.6rc2-build1/tests/acceptance/18_examples/ouputs/check_outputs.cf new/core-3.6.0/tests/acceptance/18_examples/ouputs/check_outputs.cf
--- old/core-3.6rc2-build1/tests/acceptance/18_examples/ouputs/check_outputs.cf 1970-01-01 01:00:00.000000000 +0100
+++ new/core-3.6.0/tests/acceptance/18_examples/ouputs/check_outputs.cf 2014-06-12 15:06:46.000000000 +0200
@@ -0,0 +1,96 @@
+#######################################################
+#
+# Check the example outputs
+#
+#######################################################
+
+body common control
+{
+ inputs => { "../../default.cf.sub" };
+ bundlesequence => { default("$(this.promise_filename)") };
+}
+
+#######################################################
+
+bundle agent init
+{
+ vars:
+ "basedir" string => "../../examples";
+ "checker" string => "$(basedir)/remake_outputs.pl";
+ "all_examples" slist => findfiles("$(basedir)/*.cf");
+
+ commands:
+ # we need to avoid the cf-key messages
+ "$(sys.cf_key)";
+
+ reports:
+ DEBUG_LOTS::
+ "$(this.bundle): will consider example $(all_examples)";
+}
+
+#######################################################
+
+bundle agent test
+{
+ meta:
+ "test_skip_unsupported" string => "windows";
+
+ vars:
+ "examples" slist => { @(init.all_examples) };
+ "canon[$(examples)]" string => canonify($(examples));
+
+ classes:
+ "has_output_block_$(canon[$(examples)])"
+ expression => regline(".*example_output.*", $(examples));
+
+ methods:
+ "$(examples)" usebundle => test_example($(examples)),
+ ifvarclass => "has_output_block_$(canon[$(examples)])";
+
+ reports:
+ DEBUG::
+ "$(this.bundle): found example with output $(examples)"
+ ifvarclass => "has_output_block_$(canon[$(examples)])";
+}
+
+bundle agent test_example(file)
+{
+ vars:
+ "cfile" string => canonify($(file));
+
+ "checker" string => "$(G.perl) $(init.checker) --cfagent=$(sys.cf_agent) --workdir=$(G.testdir) -c";
+
+ classes:
+ "failure_$(cfile)" not => returnszero("$(checker) $(file)", "noshell"), scope => "namespace";
+
+ methods:
+ "with verbose" usebundle => verbose_output("$(checker) -v $(file)"),
+ ifvarclass => "failure_$(cfile)";
+
+ reports:
+ "$(this.bundle): checker '$(checker) $(file)' returned error"
+ ifvarclass => "failure_$(cfile)";
+
+ DEBUG::
+ "$(this.bundle): ran checker '$(checker) $(file)'";
+}
+
+bundle agent verbose_output(runme)
+{
+ commands:
+ "$(runme)";
+}
+
+#######################################################
+
+bundle agent check
+{
+ classes:
+ "ok" not => classmatch("failure.*");
+
+ reports:
+ ok::
+ "$(this.promise_filename) Pass";
+ !ok::
+ "$(this.promise_filename) FAIL";
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/core-3.6rc2-build1/tests/acceptance/Makefile.am new/core-3.6.0/tests/acceptance/Makefile.am
--- old/core-3.6rc2-build1/tests/acceptance/Makefile.am 2014-05-26 18:01:14.000000000 +0200
+++ new/core-3.6.0/tests/acceptance/Makefile.am 2014-06-12 15:06:46.000000000 +0200
@@ -26,7 +26,7 @@
$(LIBXML2_LIBS)
endif
-EXTRA_DIST = default.cf.sub testall
+EXTRA_DIST = default.cf.sub dcs.cf.sub plucked.cf.sub testall
TESTS = testall
TESTS_ENVIRONMENT = env \
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/core-3.6rc2-build1/tests/acceptance/testall new/core-3.6.0/tests/acceptance/testall
--- old/core-3.6rc2-build1/tests/acceptance/testall 2014-05-26 18:01:14.000000000 +0200
+++ new/core-3.6.0/tests/acceptance/testall 2014-06-12 15:06:46.000000000 +0200
@@ -214,7 +214,7 @@
echo
echo " --no-crashing disable tests that are expected to crash (for use with valgrind)."
echo
- echo " --printlog print the full test.log output immediately."
+ echo " --printlog print the full test.log output immediately. Override with $PRINTLOG"
echo
echo " --gdb Run test under GDB"
echo " --valgrind Run test under Valgrind"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/core-3.6rc2-build1/tests/unit/Makefile.am new/core-3.6.0/tests/unit/Makefile.am
--- old/core-3.6rc2-build1/tests/unit/Makefile.am 2014-05-26 18:01:14.000000000 +0200
+++ new/core-3.6.0/tests/unit/Makefile.am 2014-06-12 15:06:46.000000000 +0200
@@ -76,6 +76,7 @@
files_lib_test \
file_lib_test \
map_test \
+ parsemode_test \
parser_test \
policy_test \
sort_test \
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/core-3.6rc2-build1/tests/unit/cf_key_functions_test.c new/core-3.6.0/tests/unit/cf_key_functions_test.c
--- old/core-3.6rc2-build1/tests/unit/cf_key_functions_test.c 2014-05-26 18:01:14.000000000 +0200
+++ new/core-3.6.0/tests/unit/cf_key_functions_test.c 2014-06-12 15:06:46.000000000 +0200
@@ -5,6 +5,9 @@
#include <cmockery.h>
#include <cf-key-functions.h>
+// Satisfy extern declared signal flag in cf-key-functions.c
+bool cf_key_interrupted = false;
+
static void test_RemoveKeys(void)
{
assert_true(1);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/core-3.6rc2-build1/tests/unit/parsemode_test.c new/core-3.6.0/tests/unit/parsemode_test.c
--- old/core-3.6rc2-build1/tests/unit/parsemode_test.c 1970-01-01 01:00:00.000000000 +0100
+++ new/core-3.6.0/tests/unit/parsemode_test.c 2014-06-12 15:06:46.000000000 +0200
@@ -0,0 +1,68 @@
+#include <test.h>
+
+#include <cf3.defs.h>
+
+typedef struct {
+ char *string;
+ mode_t plus;
+ mode_t minus;
+} mode_definition;
+
+mode_definition modes[] = {
+ { "666", S_IRUSR|S_IRGRP|S_IROTH|S_IWUSR|S_IWGRP|S_IWOTH, S_IXUSR|S_IXGRP|S_IXOTH|S_ISUID|S_ISGID|S_ISVTX },
+ { "g+w", S_IWGRP, 0 },
+ { "u+r,u+w,g-w,o-rw", S_IRUSR|S_IWUSR, S_IWGRP|S_IWOTH|S_IROTH },
+ { NULL, 0, 0 } // last case, still tested
+};
+
+void test_mode(void)
+{
+ int ret = false;
+ mode_t plus = 0;
+ mode_t minus = 0;
+
+ int mode = 0;
+ do {
+ ret = ParseModeString(modes[mode].string, &plus, &minus);
+ assert_true(ret);
+ assert_int_equal(modes[mode].plus, plus);
+ assert_int_equal(modes[mode].minus, minus);
+ } while (modes[mode++].string);
+}
+
+typedef struct {
+ char *string;
+ bool valid;
+} validation_mode;
+
+validation_mode validation_modes[] = {
+ { "", false },
+ { "abc", false },
+ { "222222", false },
+ { "22222", true },
+ { NULL, true } // last case, still tested
+};
+
+void test_validation(void)
+{
+ int ret = false;
+ mode_t minus = 0;
+ mode_t plus = 0;
+
+ int mode = 0;
+ do {
+ ret = ParseModeString( validation_modes[mode].string, &plus, &minus);
+ assert_int_equal(validation_modes[mode].valid, ret);
+ } while (validation_modes[mode++].string);
+}
+
+int main()
+{
+ PRINT_TEST_BANNER();
+ const UnitTest tests[] =
+ {
+ unit_test(test_validation),
+ unit_test(test_mode)
+ };
+ return run_tests(tests);
+}
--
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 virt-sandbox for openSUSE:Factory checked in at 2014-06-25 21:20:27
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/virt-sandbox (Old)
and /work/SRC/openSUSE:Factory/.virt-sandbox.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "virt-sandbox"
Changes:
--------
--- /work/SRC/openSUSE:Factory/virt-sandbox/virt-sandbox.changes 2014-06-06 14:36:36.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.virt-sandbox.new/virt-sandbox.changes 2014-06-25 21:20:43.000000000 +0200
@@ -1,0 +2,9 @@
+Wed Jun 25 13:17:30 UTC 2014 - cbosdonnat(a)suse.com
+
+- Renamed lib-prefix-fix.patch into 87a9b5cc-lib-prefix-fix.patch as
+ the patch has been integrated upstream.
+- Removed selinux-only-if-supported.patch and created
+ 945e8e71-selinux-only-if-supported.patch with the version of the
+ patch that was integrated upstream.
+
+-------------------------------------------------------------------
Old:
----
lib-prefix-fix.patch
selinux-only-if-supported.patch
New:
----
87a9b5cc-lib-prefix-fix.patch
945e8e71-selinux-only-if-supported.patch
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ virt-sandbox.spec ++++++
--- /var/tmp/diff_new_pack.lMjyq7/_old 2014-06-25 21:20:44.000000000 +0200
+++ /var/tmp/diff_new_pack.lMjyq7/_new 2014-06-25 21:20:44.000000000 +0200
@@ -27,10 +27,11 @@
License: LGPL-2.0+
Group: System/Management
Source0: ftp://libvirt.org/libvirt/sandbox/libvirt-sandbox-%{version}.tar.gz
+Source1: %{name}.rpmlintrc
# Pending upstream
-Patch0: lib-prefix-fix.patch
-Patch1: selinux-only-if-supported.patch
+Patch0: 87a9b5cc-lib-prefix-fix.patch
+Patch1: 945e8e71-selinux-only-if-supported.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-build
BuildRequires: glib2-devel >= 2.32.0
++++++ 87a9b5cc-lib-prefix-fix.patch ++++++
>From 2b6684d938bbfe7efafd0c3e2595cc30619b1f0c Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?C=C3=A9dric=20Bosdonnat?= <cbosdonnat(a)suse.com>
Date: Tue, 13 May 2014 09:51:58 +0200
Subject: [PATCH] virt-sandbox-service: fixed /lib/ into /usr/lib for searching
unit files
---
bin/virt-sandbox-service | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/bin/virt-sandbox-service b/bin/virt-sandbox-service
index 2dcbfb8..9ed37e0 100755
--- a/bin/virt-sandbox-service
+++ b/bin/virt-sandbox-service
@@ -1071,7 +1071,7 @@ class CheckUnit(argparse.Action):
src = "/etc/systemd/system/" + unit
if os.path.exists(src):
return src
- src = "/lib/systemd/system/" + unit
+ src = "/usr/lib/systemd/system/" + unit
if os.path.exists(src):
return src
return None
--
1.8.4.5
++++++ 945e8e71-selinux-only-if-supported.patch ++++++
>From 945e8e71436d457d2e94750fbf151e48b1d2ec63 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?C=C3=A9dric=20Bosdonnat?= <cbosdonnat(a)suse.com>
Date: Tue, 17 Jun 2014 16:01:53 +0200
Subject: [PATCH] Only set SELinux seclabel if supported by the host.
This code depends on new API in libvirt-gconfig to extract the
secmodels handled by the host.
---
libvirt-sandbox/libvirt-sandbox-builder.c | 50 +++++++++++++++++++++++++++----
1 file changed, 44 insertions(+), 6 deletions(-)
diff --git a/libvirt-sandbox/libvirt-sandbox-builder.c b/libvirt-sandbox/libvirt-sandbox-builder.c
index 48b3acc..48fc9bc 100644
--- a/libvirt-sandbox/libvirt-sandbox-builder.c
+++ b/libvirt-sandbox/libvirt-sandbox-builder.c
@@ -322,12 +322,10 @@ static gboolean gvir_sandbox_builder_construct_devices(GVirSandboxBuilder *build
return TRUE;
}
-
-static gboolean gvir_sandbox_builder_construct_security(GVirSandboxBuilder *builder G_GNUC_UNUSED,
- GVirSandboxConfig *config G_GNUC_UNUSED,
- const gchar *statedir G_GNUC_UNUSED,
- GVirConfigDomain *domain,
- GError **error G_GNUC_UNUSED)
+static gboolean gvir_sandbox_builder_construct_security_selinux (GVirSandboxBuilder *builder,
+ GVirSandboxConfig *config,
+ GVirConfigDomain *domain,
+ GError **error)
{
GVirConfigDomainSeclabel *sec = gvir_config_domain_seclabel_new();
const char *label = gvir_sandbox_config_get_security_label(config);
@@ -360,6 +358,46 @@ static gboolean gvir_sandbox_builder_construct_security(GVirSandboxBuilder *buil
return TRUE;
}
+static gboolean gvir_sandbox_builder_construct_security(GVirSandboxBuilder *builder,
+ GVirSandboxConfig *config,
+ const gchar *statedir G_GNUC_UNUSED,
+ GVirConfigDomain *domain,
+ GError **error)
+{
+ GVirConnection *connection = gvir_sandbox_builder_get_connection(builder);
+ GVirConfigCapabilities *configCapabilities;
+ GVirConfigCapabilitiesHost *hostCapabilities;
+ GList *secmodels, *iter;
+ gboolean supportsSelinux = FALSE;
+
+ /* What security models are available on the host? */
+ if (!(configCapabilities = gvir_connection_get_capabilities(connection, error))) {
+ g_object_unref(connection);
+ return FALSE;
+ }
+
+ hostCapabilities = gvir_config_capabilities_get_host(configCapabilities);
+
+ secmodels = gvir_config_capabilities_host_get_secmodels(hostCapabilities);
+ for (iter = secmodels; iter != NULL; iter = iter->next) {
+ if (g_str_equal(gvir_config_capabilities_host_secmodel_get_model(
+ GVIR_CONFIG_CAPABILITIES_HOST_SECMODEL(iter->data)), "selinux"))
+ supportsSelinux = TRUE;
+ g_object_unref(iter->data);
+ }
+
+ g_list_free(secmodels);
+ g_object_unref(hostCapabilities);
+ g_object_unref(configCapabilities);
+ g_object_unref(connection);
+
+ if (supportsSelinux)
+ return gvir_sandbox_builder_construct_security_selinux(builder, config,
+ domain, error);
+
+ return TRUE;
+}
+
static gboolean gvir_sandbox_builder_clean_post_start_default(GVirSandboxBuilder *builder G_GNUC_UNUSED,
GVirSandboxConfig *config G_GNUC_UNUSED,
--
1.8.4.5
--
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 xrootd for openSUSE:Factory checked in at 2014-06-25 21:20:26
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/xrootd (Old)
and /work/SRC/openSUSE:Factory/.xrootd.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "xrootd"
Changes:
--------
--- /work/SRC/openSUSE:Factory/xrootd/xrootd.changes 2014-01-29 22:23:36.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.xrootd.new/xrootd.changes 2014-06-25 21:20:42.000000000 +0200
@@ -1,0 +2,5 @@
+Wed Jun 25 13:40:42 UTC 2014 - bugs(a)vdm-design.de
+
+- Remove %ghost entry in /var/run to fix rpmlint error
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ xrootd.spec ++++++
--- /var/tmp/diff_new_pack.fWuNWA/_old 2014-06-25 21:20:43.000000000 +0200
+++ /var/tmp/diff_new_pack.fWuNWA/_new 2014-06-25 21:20:43.000000000 +0200
@@ -251,7 +251,6 @@
%config(noreplace) %{_sysconfdir}/%{name}/xrootd-clustered.cfg
%config(noreplace) %{_sysconfdir}/%{name}/xrootd-standalone.cfg
%ghost%attr(-,daemon,daemon) %dir %{_var}/log/%{name}
-%ghost %attr(-,daemon,daemon) %dir %{_var}/run/%{name}
%attr(-,daemon,daemon) %dir %{_var}/spool/%{name}
%dir %{_datadir}/%{name}
%{_datadir}/%{name}/utils
--
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-glib for openSUSE:Factory checked in at 2014-06-25 21:20:25
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/libvirt-glib (Old)
and /work/SRC/openSUSE:Factory/.libvirt-glib.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "libvirt-glib"
Changes:
--------
--- /work/SRC/openSUSE:Factory/libvirt-glib/libvirt-glib.changes 2014-06-05 10:50:14.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.libvirt-glib.new/libvirt-glib.changes 2014-06-25 21:20:40.000000000 +0200
@@ -1,0 +2,6 @@
+Wed Jun 25 13:11:14 UTC 2014 - cbosdonnat(a)suse.com
+
+- secmodel-caps.patch patch accepted upstream, renamed into
+ 0b4d331b-secmodel-caps.patch with upstream changes
+
+-------------------------------------------------------------------
Old:
----
secmodel-caps.patch
New:
----
0b4d331b-secmodel-caps.patch
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ libvirt-glib.spec ++++++
--- /var/tmp/diff_new_pack.tduaCE/_old 2014-06-25 21:20:41.000000000 +0200
+++ /var/tmp/diff_new_pack.tduaCE/_new 2014-06-25 21:20:41.000000000 +0200
@@ -26,8 +26,8 @@
Url: http://libvirt.org
Source: http://libvirt.org/sources/glib/%{name}-%{version}.tar.gz
-# Patches pending upstreaming
-Patch0: secmodel-caps.patch
+# Upstream patches
+Patch0: 0b4d331b-secmodel-caps.patch
BuildRequires: intltool >= 0.35.0
BuildRequires: libtool
++++++ 0b4d331b-secmodel-caps.patch ++++++
>From 0b4d331b24f3b36d61e24e8cea62971d28855ff8 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?C=C3=A9dric=20Bosdonnat?= <cbosdonnat(a)suse.com>
Date: Thu, 12 Jun 2014 10:50:50 +0200
Subject: [PATCH] Add API to get security models from host capabilities
---
libvirt-gconfig/Makefile.am | 2 +
.../libvirt-gconfig-capabilities-host-secmodel.c | 62 +++++++++++++++++++
.../libvirt-gconfig-capabilities-host-secmodel.h | 69 ++++++++++++++++++++++
.../libvirt-gconfig-capabilities-host.c | 60 +++++++++++++++++++
.../libvirt-gconfig-capabilities-host.h | 3 +
libvirt-gconfig/libvirt-gconfig.h | 1 +
libvirt-gconfig/libvirt-gconfig.sym | 6 ++
libvirt-gconfig/tests/test-capabilities-parse.c | 15 ++++-
libvirt-gconfig/tests/test-capabilities-parse.xml | 4 ++
9 files changed, 221 insertions(+), 1 deletion(-)
create mode 100644 libvirt-gconfig/libvirt-gconfig-capabilities-host-secmodel.c
create mode 100644 libvirt-gconfig/libvirt-gconfig-capabilities-host-secmodel.h
Index: libvirt-glib-0.1.8/libvirt-gconfig/Makefile.am
===================================================================
--- libvirt-glib-0.1.8.orig/libvirt-gconfig/Makefile.am
+++ libvirt-glib-0.1.8/libvirt-gconfig/Makefile.am
@@ -20,6 +20,7 @@ GCONFIG_HEADER_FILES = \
libvirt-gconfig-capabilities-guest-arch.h \
libvirt-gconfig-capabilities-guest-domain.h \
libvirt-gconfig-capabilities-guest-feature.h \
+ libvirt-gconfig-capabilities-host-secmodel.h \
libvirt-gconfig-domain.h \
libvirt-gconfig-domain-address.h \
libvirt-gconfig-domain-address-pci.h \
@@ -106,6 +107,7 @@ GCONFIG_SOURCE_FILES = \
libvirt-gconfig-capabilities-guest-arch.c \
libvirt-gconfig-capabilities-guest-domain.c \
libvirt-gconfig-capabilities-guest-feature.c \
+ libvirt-gconfig-capabilities-host-secmodel.c \
libvirt-gconfig-domain.c \
libvirt-gconfig-domain-address.c \
libvirt-gconfig-domain-address-pci.c \
Index: libvirt-glib-0.1.8/libvirt-gconfig/libvirt-gconfig-capabilities-host-secmodel.c
===================================================================
--- /dev/null
+++ libvirt-glib-0.1.8/libvirt-gconfig/libvirt-gconfig-capabilities-host-secmodel.c
@@ -0,0 +1,62 @@
+/*
+ * libvirt-gconfig-capabilities-host-secmodel.c: libvirt security model capabilities
+ *
+ * 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: Cédric Bosdonnat <cbosdonnat(a)suse.com>
+ */
+
+#include <config.h>
+
+#include "libvirt-gconfig/libvirt-gconfig.h"
+#include "libvirt-gconfig/libvirt-gconfig-private.h"
+
+#define GVIR_CONFIG_CAPABILITIES_HOST_SECMODEL_GET_PRIVATE(obj) \
+ (G_TYPE_INSTANCE_GET_PRIVATE((obj), GVIR_CONFIG_TYPE_CAPABILITIES_HOST_SECMODEL, GVirConfigCapabilitiesHostSecModelPrivate))
+
+struct _GVirConfigCapabilitiesHostSecModelPrivate
+{
+ gboolean unused;
+};
+
+G_DEFINE_TYPE(GVirConfigCapabilitiesHostSecModel, gvir_config_capabilities_host_secmodel, GVIR_CONFIG_TYPE_OBJECT);
+
+static void gvir_config_capabilities_host_secmodel_class_init(GVirConfigCapabilitiesHostSecModelClass *klass)
+{
+ g_type_class_add_private(klass, sizeof(GVirConfigCapabilitiesHostSecModelPrivate));
+}
+
+static void gvir_config_capabilities_host_secmodel_init(GVirConfigCapabilitiesHostSecModel *secmodel)
+{
+ g_debug("Init GVirConfigCapabilitiesHostSecModel=%p", secmodel);
+
+ secmodel->priv = GVIR_CONFIG_CAPABILITIES_HOST_SECMODEL_GET_PRIVATE(secmodel);
+}
+
+const gchar *
+gvir_config_capabilities_host_secmodel_get_model(GVirConfigCapabilitiesHostSecModel *secmodel)
+{
+ return gvir_config_object_get_node_content(GVIR_CONFIG_OBJECT(secmodel),
+ "model");
+}
+
+const gchar *
+gvir_config_capabilities_host_secmodel_get_doi(GVirConfigCapabilitiesHostSecModel *secmodel)
+{
+ return gvir_config_object_get_node_content(GVIR_CONFIG_OBJECT(secmodel),
+ "doi");
+}
Index: libvirt-glib-0.1.8/libvirt-gconfig/libvirt-gconfig-capabilities-host-secmodel.h
===================================================================
--- /dev/null
+++ libvirt-glib-0.1.8/libvirt-gconfig/libvirt-gconfig-capabilities-host-secmodel.h
@@ -0,0 +1,69 @@
+/*
+ * libvirt-gconfig-capabilities-host-secmodel.h: libvirt security model capabilities
+ *
+ * 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: Cédric Bosdonnat <cbosdonnat(a)suse.com>
+ */
+
+#if !defined(__LIBVIRT_GCONFIG_H__) && !defined(LIBVIRT_GCONFIG_BUILD)
+#error "Only <libvirt-gconfig/libvirt-gconfig.h> can be included directly."
+#endif
+
+#ifndef __LIBVIRT_GCONFIG_CAPABILITIES_HOST_SECMODEL_H__
+#define __LIBVIRT_GCONFIG_CAPABILITIES_HOST_SECMODEL_H__
+
+G_BEGIN_DECLS
+
+#define GVIR_CONFIG_TYPE_CAPABILITIES_HOST_SECMODEL (gvir_config_capabilities_host_secmodel_get_type ())
+#define GVIR_CONFIG_CAPABILITIES_HOST_SECMODEL(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GVIR_CONFIG_TYPE_CAPABILITIES_HOST_SECMODEL, GVirConfigCapabilitiesHostSecModel))
+#define GVIR_CONFIG_CAPABILITIES_HOST_SECMODEL_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GVIR_CONFIG_TYPE_CAPABILITIES_HOST_SECMODEL, GVirConfigCapabilitiesHostSecModelClass))
+#define GVIR_CONFIG_IS_CAPABILITIES_HOST_SECMODEL(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GVIR_CONFIG_TYPE_CAPABILITIES_HOST_SECMODEL))
+#define GVIR_CONFIG_IS_CAPABILITIES_HOST_SECMODEL_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GVIR_CONFIG_TYPE_CAPABILITIES_HOST_SECMODEL))
+#define GVIR_CONFIG_CAPABILITIES_HOST_SECMODEL_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GVIR_CONFIG_TYPE_CAPABILITIES_HOST_SECMODEL, GVirConfigCapabilitiesHostSecModelClass))
+
+typedef struct _GVirConfigCapabilitiesHostSecModel GVirConfigCapabilitiesHostSecModel;
+typedef struct _GVirConfigCapabilitiesHostSecModelPrivate GVirConfigCapabilitiesHostSecModelPrivate;
+typedef struct _GVirConfigCapabilitiesHostSecModelClass GVirConfigCapabilitiesHostSecModelClass;
+
+struct _GVirConfigCapabilitiesHostSecModel
+{
+ GVirConfigObject parent;
+
+ GVirConfigCapabilitiesHostSecModelPrivate *priv;
+
+ /* Do not add fields to this struct */
+};
+
+struct _GVirConfigCapabilitiesHostSecModelClass
+{
+ GVirConfigObjectClass parent_class;
+
+ gpointer padding[20];
+};
+
+GType gvir_config_capabilities_host_secmodel_get_type(void);
+
+const gchar *
+gvir_config_capabilities_host_secmodel_get_model(GVirConfigCapabilitiesHostSecModel *secmodel);
+
+const gchar *
+gvir_config_capabilities_host_secmodel_get_doi(GVirConfigCapabilitiesHostSecModel *secmodel);
+
+G_END_DECLS
+
+#endif /* __LIBVIRT_GCONFIG_CAPABILITIES_HOST_SECMODEL_H__ */
Index: libvirt-glib-0.1.8/libvirt-gconfig/libvirt-gconfig-capabilities-host.c
===================================================================
--- libvirt-glib-0.1.8.orig/libvirt-gconfig/libvirt-gconfig-capabilities-host.c
+++ libvirt-glib-0.1.8/libvirt-gconfig/libvirt-gconfig-capabilities-host.c
@@ -77,3 +77,63 @@ gvir_config_capabilities_host_get_cpu(GV
return GVIR_CONFIG_CAPABILITIES_CPU(object);
}
+
+struct GetSecModelData {
+ GVirConfigXmlDoc *doc;
+ const gchar *schema;
+ GList *secmodels;
+ GType type;
+};
+
+static gboolean add_secmodel(xmlNodePtr node, gpointer opaque)
+{
+ struct GetSecModelData* data = (struct GetSecModelData*)opaque;
+ GVirConfigObject *secmodel;
+
+ if (g_strcmp0((const gchar *)node->name, "secmodel") != 0)
+ return TRUE;
+
+ secmodel = gvir_config_object_new_from_tree
+ (data->type,
+ data->doc,
+ data->schema,
+ node);
+ if (secmodel != NULL)
+ data->secmodels = g_list_append(data->secmodels, secmodel);
+ else
+ g_debug("Failed to parse %s node", node->name);
+
+ return TRUE;
+}
+
+/**
+ * gvir_config_capabilities_host_get_secmodels:
+ * @host: a #GVirConfigCapabilitiesHost
+ *
+ * Get the security models listed in @host capabilities.
+ *
+ * Returns: (element-type LibvirtGConfig.CapabilitiesHostSecModel) (transfer full):
+ * a newly allocated #GList of #GVirConfigCapabilitiesHostSecModel.
+ */
+GList *
+gvir_config_capabilities_host_get_secmodels(GVirConfigCapabilitiesHost *host)
+{
+ struct GetSecModelData data;
+
+ g_return_val_if_fail(GVIR_CONFIG_IS_CAPABILITIES_HOST(host), NULL);
+
+ data.schema = gvir_config_object_get_schema(GVIR_CONFIG_OBJECT(host));
+ g_object_get(G_OBJECT(host), "doc", &data.doc, NULL);
+ g_return_val_if_fail(data.doc != NULL, NULL);
+ data.secmodels = NULL;
+ data.type = GVIR_CONFIG_TYPE_CAPABILITIES_HOST_SECMODEL;
+
+ gvir_config_object_foreach_child(GVIR_CONFIG_OBJECT(host),
+ NULL,
+ add_secmodel,
+ &data);
+
+ g_clear_object(&data.doc);
+
+ return data.secmodels;
+}
Index: libvirt-glib-0.1.8/libvirt-gconfig/libvirt-gconfig-capabilities-host.h
===================================================================
--- libvirt-glib-0.1.8.orig/libvirt-gconfig/libvirt-gconfig-capabilities-host.h
+++ libvirt-glib-0.1.8/libvirt-gconfig/libvirt-gconfig-capabilities-host.h
@@ -67,6 +67,9 @@ gvir_config_capabilities_host_get_uuid(G
GVirConfigCapabilitiesCpu *
gvir_config_capabilities_host_get_cpu(GVirConfigCapabilitiesHost *host);
+GList *
+gvir_config_capabilities_host_get_secmodels(GVirConfigCapabilitiesHost *host);
+
G_END_DECLS
#endif /* __LIBVIRT_GCONFIG_CAPABILITIES_HOST_H__ */
Index: libvirt-glib-0.1.8/libvirt-gconfig/libvirt-gconfig.h
===================================================================
--- libvirt-glib-0.1.8.orig/libvirt-gconfig/libvirt-gconfig.h
+++ libvirt-glib-0.1.8/libvirt-gconfig/libvirt-gconfig.h
@@ -37,6 +37,7 @@
#include <libvirt-gconfig/libvirt-gconfig-capabilities-guest-domain.h>
#include <libvirt-gconfig/libvirt-gconfig-capabilities-guest-feature.h>
#include <libvirt-gconfig/libvirt-gconfig-capabilities-host.h>
+#include <libvirt-gconfig/libvirt-gconfig-capabilities-host-secmodel.h>
#include <libvirt-gconfig/libvirt-gconfig-domain.h>
#include <libvirt-gconfig/libvirt-gconfig-domain-address.h>
#include <libvirt-gconfig/libvirt-gconfig-domain-address-pci.h>
Index: libvirt-glib-0.1.8/libvirt-gconfig/libvirt-gconfig.sym
===================================================================
--- libvirt-glib-0.1.8.orig/libvirt-gconfig/libvirt-gconfig.sym
+++ libvirt-glib-0.1.8/libvirt-gconfig/libvirt-gconfig.sym
@@ -614,6 +614,12 @@ LIBVIRT_GCONFIG_0.1.7 {
LIBVIRT_GCONFIG_0.1.8 {
global:
+ gvir_config_capabilities_host_get_secmodels;
+
+ gvir_config_capabilities_host_secmodel_get_doi;
+ gvir_config_capabilities_host_secmodel_get_model;
+ gvir_config_capabilities_host_secmodel_get_type;
+
gvir_config_domain_clock_get_offset;
gvir_config_domain_clock_get_timezone;
gvir_config_domain_clock_get_variable_offset;
Index: libvirt-glib-0.1.8/libvirt-gconfig/tests/test-capabilities-parse.c
===================================================================
--- libvirt-glib-0.1.8.orig/libvirt-gconfig/tests/test-capabilities-parse.c
+++ libvirt-glib-0.1.8/libvirt-gconfig/tests/test-capabilities-parse.c
@@ -35,7 +35,7 @@ static void verify_host_caps(GVirConfigC
{
GVirConfigCapabilitiesCpu *cpu_caps;
GVirConfigCapabilitiesCpuTopology *topology;
- GList *features, *iter;
+ GList *features, *iter, *secmodels;
const char *str;
g_assert(host_caps != NULL);
@@ -60,6 +60,19 @@ static void verify_host_caps(GVirConfigC
g_assert(gvir_config_capabilities_cpu_topology_get_threads(topology) == 2);
g_object_unref(G_OBJECT(topology));
g_object_unref(G_OBJECT(cpu_caps));
+
+ secmodels = gvir_config_capabilities_host_get_secmodels(host_caps);
+ g_assert(g_list_length(secmodels) == 2);
+ for (iter = secmodels; iter != NULL; iter = iter->next) {
+ GVirConfigCapabilitiesHostSecModel *secmodel;
+
+ g_assert(iter->data != NULL);
+ secmodel = GVIR_CONFIG_CAPABILITIES_HOST_SECMODEL(iter->data);
+ g_assert(gvir_config_capabilities_host_secmodel_get_model(secmodel) != NULL);
+ g_assert(gvir_config_capabilities_host_secmodel_get_doi(secmodel) != NULL);
+ g_object_unref(G_OBJECT(iter->data));
+ }
+ g_list_free(secmodels);
}
static void verify_guest_caps(GVirConfigCapabilitiesGuest *guest_caps)
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
25 Jun '14
Hello community,
here is the log from the commit of package xfce4-panel-plugin-weather for openSUSE:Factory checked in at 2014-06-25 21:20:23
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/xfce4-panel-plugin-weather (Old)
and /work/SRC/openSUSE:Factory/.xfce4-panel-plugin-weather.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "xfce4-panel-plugin-weather"
Changes:
--------
--- /work/SRC/openSUSE:Factory/xfce4-panel-plugin-weather/xfce4-panel-plugin-weather.changes 2013-02-19 13:41:24.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.xfce4-panel-plugin-weather.new/xfce4-panel-plugin-weather.changes 2014-06-25 21:20:39.000000000 +0200
@@ -1,0 +2,6 @@
+Tue Jun 10 06:35:29 UTC 2014 - gber(a)opensuse.org
+
+- Add xfce4-panel-plugin-weather-upower-0.99.patch in order to
+ support upower >= 0.99 (backported from upstream git, bxo#10922)
+
+-------------------------------------------------------------------
New:
----
xfce4-panel-plugin-weather-upower-0.99.patch
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ xfce4-panel-plugin-weather.spec ++++++
--- /var/tmp/diff_new_pack.cTaDxG/_old 2014-06-25 21:20:40.000000000 +0200
+++ /var/tmp/diff_new_pack.cTaDxG/_new 2014-06-25 21:20:40.000000000 +0200
@@ -1,7 +1,7 @@
#
# spec file for package xfce4-panel-plugin-weather
#
-# 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
@@ -29,6 +29,8 @@
Source0: http://archive.xfce.org/src/panel-plugins/%{plugin_name}/0.8/%{plugin_name}…
# PATCH-FIX-UPSTREAM xfce4-panel-plugin-weather-fix-no-return-in-nonvoid-function.patch gber(a)opensuse.org -- Return bogus value in case of an unhandled switch case
Patch0: xfce4-panel-plugin-weather-fix-no-return-in-nonvoid-function.patch
+# PATCH-FIX-UPSTREAM xfce4-panel-plugin-weather-upower-0.99.patch bxo#10922 gber(a)opensuse.org -- Support upower-0.99 (backported from upstream git)
+Patch1: xfce4-panel-plugin-weather-upower-0.99.patch
BuildRequires: fdupes
BuildRequires: intltool
BuildRequires: pkgconfig(gthread-2.0)
@@ -53,6 +55,7 @@
%prep
%setup -q -n %{plugin_name}-%{version}
%patch0 -p1
+%patch1 -p1
%build
%configure --disable-static
++++++ xfce4-panel-plugin-weather-upower-0.99.patch ++++++
>From d51c1ea939ffeecac6f9f5cd136d35628b585e73 Mon Sep 17 00:00:00 2001
From: Eric Koegel <eric(a)xfce.org>
Date: Tue, 3 Jun 2014 20:44:16 +0200
Subject: Support upower-0.99 (bug #10922).
upower-0.99 changed from the "changed" signal to "notify" as well as
the function signature. This patch adds that while still supporting
the previous versions of upower.
Index: xfce4-weather-plugin-0.8.3/panel-plugin/weather.c
===================================================================
--- xfce4-weather-plugin-0.8.3.orig/panel-plugin/weather.c
+++ xfce4-weather-plugin-0.8.3/panel-plugin/weather.c
@@ -1484,8 +1484,14 @@ mi_click(GtkWidget *widget,
#ifdef HAVE_UPOWER_GLIB
static void
+#if UP_CHECK_VERSION(0, 99, 0)
upower_changed_cb(UpClient *client,
+ GParamSpec *pspec,
plugin_data *data)
+#else /* UP_CHECK_VERSION < 0.99 */
+upower_changed_cb(UpClient *client,
+ plugin_data *data)
+#endif /* UP_CHECK_VERSION */
{
gboolean on_battery, lid_closed;
@@ -1512,7 +1518,7 @@ upower_changed_cb(UpClient *client,
schedule_next_wakeup(data);
}
}
-#endif
+#endif /* HAVE_UPOWER_GLIB */
static void
@@ -2090,10 +2096,16 @@ weather_construct(XfcePanelPlugin *plugi
G_CALLBACK(xfceweather_show_about), data);
#ifdef HAVE_UPOWER_GLIB
- if (data->upower)
- g_signal_connect(data->upower, "changed",
- G_CALLBACK(upower_changed_cb), data);
-#endif
+ if (data->upower) {
+#if UP_CHECK_VERSION(0, 99, 0)
+ g_signal_connect (data->upower, "notify",
+ G_CALLBACK(upower_changed_cb), data);
+#else /* UP_CHECK_VERSION < 0.99 */
+ g_signal_connect (data->upower, "changed",
+ G_CALLBACK(upower_changed_cb), data);
+#endif /* UP_CHECK_VERSION */
+ }
+#endif /* HAVE_UPOWER_GLIB */
/* call update handler updates */
update_handler(data);
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0