openSUSE Commits
Threads by month
- ----- 2025 -----
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2008 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2007 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2006 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
January 2014
- 1 participants
- 1358 discussions
Hello community,
here is the log from the commit of package java-1_7_0-openjdk for openSUSE:13.1:Update checked in at 2014-01-31 21:07:52
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:13.1:Update/java-1_7_0-openjdk (Old)
and /work/SRC/openSUSE:13.1:Update/.java-1_7_0-openjdk.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "java-1_7_0-openjdk"
Changes:
--------
New Changes file:
NO CHANGES FILE!!!
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ _link ++++++
--- /var/tmp/diff_new_pack.H3nKwU/_old 2014-01-31 21:07:56.000000000 +0100
+++ /var/tmp/diff_new_pack.H3nKwU/_new 2014-01-31 21:07:56.000000000 +0100
@@ -1 +1 @@
-<link package='java-1_7_0-openjdk.2260' cicount='copy' />
+<link package='java-1_7_0-openjdk.2491' cicount='copy' />
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package libqt5-qtbase.2442 for openSUSE:13.1:Update checked in at 2014-01-31 21:07:35
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:13.1:Update/libqt5-qtbase.2442 (Old)
and /work/SRC/openSUSE:13.1:Update/.libqt5-qtbase.2442.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "libqt5-qtbase.2442"
Changes:
--------
New Changes file:
--- /dev/null 2013-11-25 01:44:08.036031256 +0100
+++ /work/SRC/openSUSE:13.1:Update/.libqt5-qtbase.2442.new/libqt5-qtbase.changes 2014-01-31 21:07:36.000000000 +0100
@@ -0,0 +1,136 @@
+-------------------------------------------------------------------
+Mon Jan 6 12:39:03 UTC 2014 - hrvoje.senjan(a)gmail.com
+
+- added patches:
+ * disallow-deep-or-widely-nested-entity-references.patch: upstream
+ fix for bnc#856832 and CVE-2013-4549: xml entity expansion attacks
+
+-------------------------------------------------------------------
+Fri Oct 18 17:48:59 UTC 2013 - hrvoje.senjan(a)gmail.com
+
+- Added qtbase-opensource-src-5.1.1-bigendian.patch, also needed
+ for building on PowerPC, otherwise fromWordToBytes is
+ left undeclared
+
+-------------------------------------------------------------------
+Fri Oct 18 12:38:19 UTC 2013 - hrvoje.senjan(a)gmail.com
+
+- Added qtbase-qatomic-ppc.patch, fixes PowerPC build
+
+-------------------------------------------------------------------
+Fri Oct 4 14:23:42 UTC 2013 - hrvoje.senjan(a)gmail.com
+
+- Add convenient macros for packages building against Qt5:
+ %_libqt5_qmake, %qmake5, %make_jobs and %qmake5_install
+
+-------------------------------------------------------------------
+Thu Sep 12 19:58:38 UTC 2013 - hrvoje.senjan(a)gmail.com
+
+- Added missing pkgconfig(xkbcommon) BuildRequires
+- Drop checks for older openSUSE versions
+- Enable GL ES and kms only on arm for now
+
+-------------------------------------------------------------------
+Thu Sep 5 15:09:28 UTC 2013 - duwe(a)suse.com
+
+- enable support for opengl es2 and kms
+
+-------------------------------------------------------------------
+Thu Aug 29 16:38:30 UTC 2013 - hrvoje.senjan(a)gmail.com
+
+- Update to version 5.1.1:
+ * Bugfix release, please see
+ http://blog.qt.digia.com/blog/2013/08/28/qt-5-1-1-released/
+ http://qt.gitorious.org/qt/qtbase/blobs/release/dist/changes-5.1.1
+ and http://qt-project.org/wiki/Qt511KnownIssues for known issues
+- Small spec cleanup
+- Explicitly activate desktop openGL, and only BuildRequire
+ pkgconfig(gl) so whole Mesa stack isn't pulled
+
+-------------------------------------------------------------------
+Sat Aug 3 07:14:30 UTC 2013 - tittiatcoke(a)gmail.com
+
+- Adjust packaging naming conform Factory standards
+
+-------------------------------------------------------------------
+Sun Jul 7 12:14:37 UTC 2013 - hrvoje.senjan(a)gmail.com
+
+- Allow co-existance of Qt5 and Qt4:
+ * Install headers in %_includedir/qt5
+ * Install binaries in %_libdir/qt5/bin, create symlinks with -qt5
+ suffixes in %_libdir/qt5/bin and %_bindir
+- Spec cleanup:
+ * Removed checks for obsolete opensuse versions
+- Add new macros.qt5, which should be utilized for other Qt5 modules
+- Added baselibs.conf
+
+-------------------------------------------------------------------
+Sun Jul 7 07:23:51 UTC 2013 - stephan.binner(a)basyskom.com
+
+- update to Qt 5.1 release
+
+-------------------------------------------------------------------
+Tue Jun 18 20:00:00 UTC 2013 - stephan.binner(a)basyskom.com
+
+- update to Qt 5.1 RC 1
+
+-------------------------------------------------------------------
+Mon May 20 20:00:00 UTC 2013 - stephan.binner(a)basyskom.com
+
+- update to Qt 5.1 Beta 1
+
+-------------------------------------------------------------------
+Tue Apr 9 20:00:00 UTC 2013 - stephan.binner(a)basyskom.com
+
+- update to Qt 5.1 Alpha 1
+
+-------------------------------------------------------------------
+Fri Mar 29 11:58:55 UTC 2013 - stephan.binner(a)basyskom.com
+
+- update to Qt 5.0.2 RC1
+
+-------------------------------------------------------------------
+Wed Jan 30 19:00:00 UTC 2013 - stephan.binner(a)basyskom.com
+
+- update to Qt 5.0.1
+
+-------------------------------------------------------------------
+Wed Dec 19 20:40:40 UTC 2012 - stephan.binner(a)basyskom.com
+
+- update to Qt 5.0 release
+
+-------------------------------------------------------------------
+Thu Dec 13 10:50:52 UTC 2012 - stephan.binner(a)basyskom.com
+
+- update to Qt 5.0 Release Candidate 2
+
+-------------------------------------------------------------------
+Thu Dec 6 19:54:17 UTC 2012 - stephan.binner(a)basyskom.com
+
+- update to Qt 5.0 Release Candidate 1
+
+-------------------------------------------------------------------
+Thu Nov 15 12:14:39 UTC 2012 - stephan.binner(a)basyskom.com
+
+- update to Qt 5.0 Beta 2
+
+-------------------------------------------------------------------
+Thu Aug 30 11:31:45 UTC 2012 - stephan.binner(a)basyskom.com
+
+- update to Qt 5.0 Beta 1 release
+
+-------------------------------------------------------------------
+Thu May 24 15:29:20 UTC 2012 - stephan.binner(a)basyskom.com
+
+- update to newer Alpha snapshot / Beta candidate
+
+-------------------------------------------------------------------
+Fri Apr 13 13:22:38 UTC 2012 - stephan.binner(a)basyskom.com
+
+- rework package splitting for Qt 5 modularization
+
+-------------------------------------------------------------------
+Thu Apr 5 09:56:15 UTC 2012 - dmueller(a)suse.com
+
+- Initial packaging (Qt 5.0 Alpha)
+
New:
----
_constraints
baselibs.conf
disallow-deep-or-widely-nested-entity-references.patch
libqt5-libtool-nodate.diff
libqt5-qtbase.changes
libqt5-qtbase.spec
macros.qt5
qmake-add-usr-include.diff
qt-never-strip.diff
qtbase-opensource-src-5.1.1-bigendian.patch
qtbase-opensource-src-5.1.1.tar.xz
qtbase-qatomic-ppc.patch
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ libqt5-qtbase.spec ++++++
#
# spec file for package libqt5-qtbase
#
# 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
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via http://bugs.opensuse.org/
#
Name: libqt5-qtbase
BuildRequires: alsa-devel
BuildRequires: at-spi2-core-devel
BuildRequires: cups-devel
BuildRequires: fdupes
BuildRequires: freetype2-devel
BuildRequires: gcc-c++
BuildRequires: libjpeg-devel
BuildRequires: libmng-devel
BuildRequires: libmysqlclient-devel
BuildRequires: libpng-devel
BuildRequires: libtiff-devel
BuildRequires: openssl-devel
BuildRequires: pcre-devel
BuildRequires: pkgconfig
BuildRequires: postgresql-devel
BuildRequires: sqlite3-devel
BuildRequires: unixODBC-devel
BuildRequires: pkgconfig(dbus-1)
BuildRequires: pkgconfig(gl)
%ifarch %arm
BuildRequires: pkgconfig(gbm)
BuildRequires: pkgconfig(glesv2)
%endif
BuildRequires: xcb-util-image-devel
BuildRequires: xcb-util-keysyms-devel
BuildRequires: xcb-util-renderutil-devel
BuildRequires: xcb-util-wm-devel
BuildRequires: pkgconfig(glib-2.0)
BuildRequires: pkgconfig(gtk+-2.0)
BuildRequires: pkgconfig(xkbcommon) >= 0.2.0
Version: 5.1.1
Release: 0
Summary: C++ Program Library, Core Components
License: GPL-3.0 or SUSE-LGPL-2.1-with-digia-exception-1.1
Group: System/Libraries
Url: http://qt.digia.com
%define base_name libqt5
%define real_version 5.1.1
%define tar_version qtbase-opensource-src-%{real_version}
Source: %{tar_version}.tar.xz
Source2: macros.qt5
Source3: baselibs.conf
# PATCH-FIX-UPSTREAM qt-never-strip.diff -- for creating debug packages
Patch2: qt-never-strip.diff
# PATCH-FIX-UPSTREAM qtbase-qatomic-ppc.patch -- fixes build on PPC
Patch3: qtbase-qatomic-ppc.patch
# PATCH-FIX-UPSTREAM qtbase-opensource-src-5.1.1-bigendian.patch -- fixes build on big endian arches/PPC
Patch4: qtbase-opensource-src-5.1.1-bigendian.patch
# PATCH-FIX-UPSTREAM libqt5-libtool-nodate.diff -- for ommiting date/time on build
# PATCH-FIX-UPSTREAM libqt5-libtool-nodate.diff -- for ommiting date/time on build
Patch109: libqt5-libtool-nodate.diff
# PATCH-FIX-UPSTREAM qmake-add-usr-include.diff -- explicitly include /usr/include path
Patch131: qmake-add-usr-include.diff
# PATCH-FIX-UPSTREAM disallow-deep-or-widely-nested-entity-references.patch -- xml entity expansion attacks, bnc#856832, CVE-2013-4549
Patch132: disallow-deep-or-widely-nested-entity-references.patch
BuildRequires: clucene-core-devel
BuildRequires: gstreamer-0_10-plugins-base-devel
BuildRequires: libicu-devel
BuildRequires: libpulse-devel
BuildRequires: libudev-devel
BuildRequires: xorg-x11-devel
BuildRequires: xz
BuildRoot: %{_tmppath}/%{name}-%{version}-build
%description
Qt is a set of libraries for developing applications.
This package contains base tools, like string, xml, and network
handling.
%define libqt5_prefix %{_prefix}
%define libqt5_libdir %{_libdir}
%define libqt5_archdatadir %{_libdir}/qt5
%define libqt5_bindir %{libqt5_archdatadir}/bin
%define libqt5_datadir %{_datadir}/qt5
%define libqt5_docdir %{_docdir}/qt5
%define libqt5_examplesdir %{libqt5_archdatadir}/examples
%define libqt5_includedir %{_includedir}/qt5
%define libqt5_importdir %{libqt5_archdatadir}/imports
%define libqt5_libexecdir %{libqt5_archdatadir}/libexec
%define libqt5_plugindir %{libqt5_archdatadir}/plugins
%define libqt5_sysconfdir %{_sysconfdir}/xdg
%define libqt5_translationdir %{_datadir}/qt5/translations
%prep
%setup -q -n qtbase-opensource-src-%{real_version}
%patch2 -p1
%patch3 -p1
%patch4 -p1
%patch109 -p1
%patch131 -p1
%patch132 -p1
# be sure not to use them
rm -r src/3rdparty/{libjpeg,freetype,libpng,zlib}
#rm -r qtimageformats/src/3rdparty/{libtiff,libmng}
%package devel
Summary: Qt Development Kit
Group: Development/Libraries/X11
Requires: %{name} = %{version}
Requires: alsa-devel
Requires: at-spi2-core-devel
Requires: c++_compiler
Requires: cups-devel
Requires: freetype2-devel
Requires: libQt5Gui5 = %{version}
Requires: libQt5Test5 = %{version}
Requires: libQt5Widgets5 = %{version}
Requires: libjpeg-devel
Requires: libmng-devel
Requires: libpng-devel
Requires: libqt5-sql-sqlite >= %{version}
Requires: libtiff-devel
Requires: make
Requires: openssl-devel
Requires: pcre-devel
Requires: pkgconfig
Requires: sqlite3-devel
Requires: pkgconfig(dbus-1)
Requires: pkgconfig(gl)
%ifarch %arm
Requires: pkgconfig(gbm)
Requires: pkgconfig(glesv2)
%endif
Requires: gstreamer-0_10-plugins-base-devel
Requires: libicu-devel
Requires: libpulse-devel
Requires: libudev-devel
Requires: xcb-util-image-devel
Requires: xcb-util-keysyms-devel
Requires: xcb-util-renderutil-devel
Requires: xcb-util-wm-devel
Requires: xorg-x11-devel
Requires: zlib-devel
Requires: pkgconfig(glib-2.0)
Requires: pkgconfig(xkbcommon) >= 0.2.0
%description devel
You need this package, if you want to compile programs with Qt. It
contains the "Qt Crossplatform Development Kit". It does contain
include files and development applications like GUI designers,
translator tools and code generators.
%package -n libQt5Test5
Summary: Qt 5 Test Library
Group: Development/Libraries/X11
%description -n libQt5Test5
Qt 5 library for testing.
%package -n libQt5Widgets5
Summary: Qt 5 Test Library
Group: Development/Libraries/X11
%description -n libQt5Widgets5
Qt 5 library to display widgets.
%package -n libqt5-sql-sqlite
Summary: Qt 5 sqlite plugin
Group: Development/Libraries/C and C++
Requires: libQt5Sql5 = %{version}
Provides: libqt5_sql_backend = %{version}
%description -n libqt5-sql-sqlite
Qt 5 sqlite plugin to be able to use database functionality with Qt
applications without the need to setup a SQL server.
%package -n libqt5-sql-unixODBC
Summary: Qt 5 unixODBC plugin
Group: Development/Libraries/C and C++
Requires: libQt5Sql5 = %{version}
Provides: libqt5_sql_backend = %{version}
%description -n libqt5-sql-unixODBC
Qt unixODBC plugin to support databases via unixODBC within Qt
applications.
%package -n libqt5-sql-postgresql
Summary: Qt 5 PostgreSQL plugin
Group: Development/Libraries/C and C++
Requires: libQt5Sql5 = %{version}
Provides: libqt5_sql_backend = %{version}
%description -n libqt5-sql-postgresql
Qt SQL plugin to support PostgreSQL servers in Qt applications.
%package -n libqt5-sql-mysql
Summary: Qt 5 MySQL support
Group: Development/Libraries/C and C++
Requires: libQt5Sql5 = %{version}
Provides: libqt5_sql_backend = %{version}
%description -n libqt5-sql-mysql
A plugin to support MySQL server in Qt applications.
%package -n libQt5Gui5
Summary: Qt 5 GUI related libraries
Group: Development/Libraries/C and C++
Recommends: libqt5-qtimageformats = %{version}
%description -n libQt5Gui5
Qt 5 libraries which are depending on X11.
%package -n libQt5Sql5
Summary: Qt 5 SQL related libraries
Group: Development/Libraries/C and C++
Recommends: libqt5_sql_backend = %{version}
Suggests: libqt5-sql-sqlite
%description -n libQt5Sql5
Qt 5 libraries which are used for connection with an SQL server. You
will need also a plugin package for a supported SQL server.
%package private-headers-devel
Summary: Non-ABI stable experimental API
Group: Development/Libraries/C and C++
Requires: libqt5-qtbase-devel = %{version}
%description private-headers-devel
This package provides private headers of libqt5-qtbase-devel that are normally
not used by application development and that do not have any ABI or
API guarantees. The packages that build against these have to require
the exact Qt version.
%build
export QMAKESPEC=$PWD/mkspecs/linux-g++
%ifarch ppc64
RPM_OPT_FLAGS="%{optflags} -mminimal-toc"
%endif
export CXXFLAGS="$CXXFLAGS %{optflags} -DOPENSSL_LOAD_CONF"
export CFLAGS="$CFLAGS %{optflags} -DOPENSSL_LOAD_CONF"
export MAKEFLAGS="%{?_smp_mflags}"
%ifarch sparc64
platform="-platform linux-g++-64"
%else
platform=""
%endif
# Record mtime of changes file instead of build time
CHANGES=`stat --format="%y" %{SOURCE1}|cut --characters=1-10`
sed -i -e "s/qt_instdate=\$TODAY/qt_instdate=$CHANGES/" configure
echo yes | ./configure $platform \
-prefix %{_prefix} \
-L %{libqt5_libdir} \
-libdir %{libqt5_libdir} \
-archdatadir %{libqt5_archdatadir} \
-bindir %{libqt5_bindir} \
-datadir %{libqt5_datadir} \
-docdir %{libqt5_docdir} \
-examplesdir %{libqt5_examplesdir} \
-headerdir %{libqt5_includedir} \
-importdir %{libqt5_importdir} \
-libexecdir %{libqt5_libexecdir} \
-plugindir %{libqt5_plugindir} \
-sysconfdir %{libqt5_sysconfdir} \
-translationdir %{libqt5_translationdir} \
-verbose \
-reduce-relocations \
-optimized-qmake \
-accessibility \
-opensource \
-no-separate-debug-info \
-shared \
-xkb \
-xrender \
-xcursor \
-dbus-linked \
-xfixes \
-xrandr \
-xinerama \
-sm \
-no-rpath \
-system-libjpeg \
-openssl-linked \
-system-libpng \
-cups \
-nis \
-system-zlib \
-iconv \
-sysconfdir /etc/settings \
-no-pch \
-glib \
-system-sqlite \
-no-sql-mysql \
-xsync \
-xinput \
-gtkstyle \
-javascript-jit \
-xcb \
-no-eglfs \
-opengl desktop \
%ifarch %arm
-eglfs -kms \
-opengl es2 \
%else
-no-eglfs \
-opengl desktop \
%endif
-release \
%ifarch %arm
-no-neon \
%endif
-plugin-sql-sqlite -nomake examples \
-plugin-sql-psql -I/usr/include -I/usr/include/pgsql/ -I/usr/include/pgsql/server \
-plugin-sql-odbc \
-plugin-sql-mysql -I/usr/include/mysql/ -I/usr/include -v
make %{?_smp_mflags}
%install
make INSTALL_ROOT=%{buildroot} install
install -D -m644 %{SOURCE2} %{buildroot}%{_sysconfdir}/rpm/macros.qt5
# argggh, qmake is such a piece of <censored>
find %{buildroot}/%{libqt5_libdir} -type f -name '*prl' -exec perl -pi -e "s, -L$RPM_BUILD_DIR/\S+,,g" {} \;
find %{buildroot}/%{libqt5_libdir} -type f -name '*prl' -exec sed -i -e "/^QMAKE_PRL_BUILD_DIR/d" {} \;
find %{buildroot}/%{libqt5_libdir} -type f -name '*la' -print -exec perl -pi -e "s, -L$RPM_BUILD_DIR/?\S+,,g" {} \;
# insanity ...
find %{buildroot}/%{libqt5_libdir} -type f -name '*pc' -print -exec perl -pi -e "s, -L$RPM_BUILD_DIR/?\S+,,g" {} \; -exec sed -i -e "s,^moc_location=.*,moc_location=%libqt5_bindir/moc," -e "s,uic_location=.*,uic_location=%libqt5_bindir/uic," {} \;
find %{buildroot}/%{libqt5_libdir}/ -name 'lib*.a' -exec chmod -x -- {} \;
mkdir -p %{buildroot}/%{libqt5_plugindir}/sqldrivers
# put all the binaries to %{_bindir}, add -qt5 suffix, and symlink them back to %_qt5_bindir
mkdir %{buildroot}%{_bindir}
pushd %{buildroot}%{libqt5_bindir}
for i in * ; do
mv $i ../../../bin/${i}-qt5
ln -s ../../../bin/${i}-qt5 .
ln -s ../../../bin/${i}-qt5 $i
done
popd
pushd %{buildroot}%{libqt5_docdir}/global/template/images
chmod -R 644 *.png
popd
%fdupes %{buildroot}/%{libqt5_includedir}
%fdupes %{buildroot}/%{libqt5_archdatadir}/mkspecs
%clean
rm -rf %{buildroot}
%post -p /sbin/ldconfig
%post -n libQt5Gui5 -p /sbin/ldconfig
%post -n libQt5Sql5 -p /sbin/ldconfig
%post -n libQt5Test5 -p /sbin/ldconfig
%post -n libQt5Widgets5 -p /sbin/ldconfig
%postun -p /sbin/ldconfig
%postun -n libQt5Gui5 -p /sbin/ldconfig
%postun -n libQt5Sql5 -p /sbin/ldconfig
%postun -n libQt5Test5 -p /sbin/ldconfig
%postun -n libQt5Widgets5 -p /sbin/ldconfig
%files
%defattr(-,root,root,755)
%doc *.txt LICENSE.LGPL LICENSE.FDL
%dir %{libqt5_libdir}/qt5
%dir %{libqt5_plugindir}
%{libqt5_libdir}/libQt5Core.so.*
%{libqt5_libdir}/libQt5Concurrent.so.*
%{libqt5_libdir}/libQt5DBus.so.*
%{libqt5_libdir}/libQt5Network.so.*
%{libqt5_libdir}/libQt5Xml.so.*
%{libqt5_plugindir}/bearer
%files -n libQt5Test5
%defattr(-,root,root,755)
%doc *.txt LICENSE.LGPL LICENSE.FDL
%{libqt5_libdir}/libQt5Test.so.*
%files -n libQt5Widgets5
%defattr(-,root,root,755)
%doc *.txt LICENSE.LGPL LICENSE.FDL
%{libqt5_libdir}/libQt5Widgets.so.*
%{libqt5_libdir}/libQt5PrintSupport.so.*
%{libqt5_libdir}/libQt5OpenGL.so.*
%{libqt5_plugindir}/accessible
%{libqt5_plugindir}/printsupport
%files -n libQt5Gui5
%defattr(-,root,root,755)
%doc *.txt LICENSE.LGPL LICENSE.FDL
%{libqt5_libdir}/libQt5Gui.so.*
%{libqt5_plugindir}/generic
%{libqt5_plugindir}/imageformats
%{libqt5_plugindir}/platforminputcontexts
%{libqt5_plugindir}/platforms
%{libqt5_plugindir}/platformthemes
%files devel
%defattr(-,root,root,755)
%doc *.txt LICENSE.LGPL LICENSE.FDL
%{_bindir}/*
%libqt5_bindir/*
%dir %libqt5_bindir
%exclude %{libqt5_includedir}/*/5.1.1
%{libqt5_includedir}/
%{libqt5_libdir}/cmake
%{libqt5_libdir}/libQt5*.la
%{libqt5_libdir}/libQt5*.prl
%{libqt5_libdir}/libQt5*.so
%{libqt5_libdir}/libQt5*.a
%{libqt5_libdir}/pkgconfig/Qt5*.pc
%{libqt5_archdatadir}/mkspecs
%{libqt5_docdir}
%{_sysconfdir}/rpm/macros.qt5
%files private-headers-devel
%defattr(-,root,root,755)
%doc *.txt LICENSE.LGPL LICENSE.FDL
%{libqt5_includedir}/*/5.1.1
%files -n libQt5Sql5
%defattr(-,root,root,755)
%doc *.txt LICENSE.LGPL LICENSE.FDL
%{libqt5_libdir}/libQt5Sql.so.*
%dir %{libqt5_plugindir}/sqldrivers
%files -n libqt5-sql-sqlite
%defattr(-,root,root,755)
%doc *.txt LICENSE.LGPL LICENSE.FDL
%{libqt5_plugindir}/sqldrivers/libqsqlite*.so
%files -n libqt5-sql-unixODBC
%defattr(-,root,root,755)
%doc *.txt LICENSE.LGPL LICENSE.FDL
%{libqt5_plugindir}/sqldrivers/libqsqlodbc*.so
%files -n libqt5-sql-postgresql
%defattr(-,root,root,755)
%doc *.txt LICENSE.LGPL LICENSE.FDL
%{libqt5_plugindir}/sqldrivers/libqsqlpsql*.so
%files -n libqt5-sql-mysql
%defattr(-,root,root,755)
%doc *.txt LICENSE.LGPL LICENSE.FDL
%{libqt5_plugindir}/sqldrivers/libqsqlmysql*.so
%changelog
++++++ baselibs.conf ++++++
libqt5-qtbase
libQt5Test5
libQtWidgets5
libqt5-sql-sqlite
libqt5-sql-unixODBC
libqt5-sql-postgresql
libqt5-sql-mysql
libQt5Gui5
libQt5Sql5
libQt5Widgets5
++++++ disallow-deep-or-widely-nested-entity-references.patch ++++++
From: Mitch Curtis <mitch.curtis(a)digia.com>
Date: Fri, 27 Sep 2013 10:32:28 +0000
Subject: Disallow deep or widely nested entity references.
---
Disallow deep or widely nested entity references.
Nested entities with a depth of 2 or more will fail. Entities
that fully expand to more than 1024 characters will also fail.
Change-Id: I75525bc1edfa796c4db30a5109fe21011ad43a2d
Reviewed-by: Richard J. Moore <rich(a)kde.org>
Reviewed-by: Lars Knoll <lars.knoll(a)digia.com>
(cherries picked from commits 46a8885ae486e238a39efa5119c2714f328b08e4
and f1053d94f59f053ce4acad9320df14f1fbe4faac)
---
--- a/src/xml/sax/qxml.cpp
+++ b/src/xml/sax/qxml.cpp
@@ -424,6 +424,12 @@
int stringValueLen;
QString emptyStr;
+ // The limit to the amount of times the DTD parsing functions can be called
+ // for the DTD currently being parsed.
+ static const int dtdRecursionLimit = 2;
+ // The maximum amount of characters an entity value may contain, after expansion.
+ static const int entityCharacterLimit = 1024;
+
const QString &string();
void stringClear();
void stringAddC(QChar);
@@ -492,6 +498,8 @@
void unexpectedEof(ParseFunction where, int state);
void parseFailed(ParseFunction where, int state);
void pushParseState(ParseFunction function, int state);
+
+ bool isExpandedEntityValueTooLarge(QString *errorMessage);
Q_DECLARE_PUBLIC(QXmlSimpleReader)
QXmlSimpleReader *q_ptr;
@@ -5035,6 +5043,11 @@
}
break;
case Mup:
+ if (dtdRecursionLimit > 0 && parameterEntities.size() > dtdRecursionLimit) {
+ reportParseError(QString::fromLatin1(
+ "DTD parsing exceeded recursion limit of %1.").arg(dtdRecursionLimit));
+ return false;
+ }
if (!parseMarkupdecl()) {
parseFailed(&QXmlSimpleReaderPrivate::parseDoctype, state);
return false;
@@ -6644,6 +6657,50 @@
return false;
}
+bool QXmlSimpleReaderPrivate::isExpandedEntityValueTooLarge(QString *errorMessage)
+{
+ QMap<QString, int> literalEntitySizes;
+ // The entity at (QMap<QString,) referenced the entities at (QMap<QString,) (int>) times.
+ QMap<QString, QMap<QString, int> > referencesToOtherEntities;
+ QMap<QString, int> expandedSizes;
+
+ // For every entity, check how many times all entity names were referenced in its value.
+ foreach (QString toSearch, entities.keys()) {
+ // The amount of characters that weren't entity names, but literals, like 'X'.
+ QString leftOvers = entities.value(toSearch);
+ // How many times was entityName referenced by toSearch?
+ foreach (QString entityName, entities.keys()) {
+ for (int i = 0; i < leftOvers.size() && i != -1; ) {
+ i = leftOvers.indexOf(QString::fromLatin1("&%1;").arg(entityName), i);
+ if (i != -1) {
+ leftOvers.remove(i, entityName.size() + 2);
+ // The entityName we're currently trying to find was matched in this string; increase our count.
+ ++referencesToOtherEntities[toSearch][entityName];
+ }
+ }
+ }
+ literalEntitySizes[toSearch] = leftOvers.size();
+ }
+
+ foreach (QString entity, referencesToOtherEntities.keys()) {
+ expandedSizes[entity] = literalEntitySizes[entity];
+ foreach (QString referenceTo, referencesToOtherEntities.value(entity).keys()) {
+ const int references = referencesToOtherEntities.value(entity).value(referenceTo);
+ // The total size of an entity's value is the expanded size of all of its referenced entities, plus its literal size.
+ expandedSizes[entity] += expandedSizes[referenceTo] * references + literalEntitySizes[referenceTo] * references;
+ }
+
+ if (expandedSizes[entity] > entityCharacterLimit) {
+ if (errorMessage) {
+ *errorMessage = QString::fromLatin1("The XML entity \"%1\" expands too a string that is too large to process (%2 characters > %3).");
+ *errorMessage = (*errorMessage).arg(entity).arg(expandedSizes[entity]).arg(entityCharacterLimit);
+ }
+ return true;
+ }
+ }
+ return false;
+}
+
/*
Parse a EntityDecl [70].
@@ -6738,6 +6795,12 @@
switch (state) {
case EValue:
if ( !entityExist(name())) {
+ QString errorMessage;
+ if (isExpandedEntityValueTooLarge(&errorMessage)) {
+ reportParseError(errorMessage);
+ return false;
+ }
+
entities.insert(name(), string());
if (declHnd) {
if (!declHnd->internalEntityDecl(name(), string())) {
++++++ libqt5-libtool-nodate.diff ++++++
--- qtbase/qmake/generators/unix/unixmake2.cpp 2012/11/12 14:21:54 1.1
+++ qtbase/qmake/generators/unix/unixmake2.cpp 2012/11/12 14:22:13
@@ -1297,7 +1297,7 @@
QTextStream t(&ft);
t << "# " << lname << " - a libtool library file\n";
t << "# Generated by qmake/libtool (" QMAKE_VERSION_STR ") (Qt "
- << QT_VERSION_STR << ") on: " << QDateTime::currentDateTime().toString();
+ << QT_VERSION_STR << ")";
t << "\n";
t << "# The name that we can dlopen(3).\n"
++++++ macros.qt5 ++++++
%_libqt5_prefix %{_prefix}
%_libqt5_libdir %{_libdir}
%_libqt5_archdatadir %{_libqt5_libdir}/qt5
%_libqt5_bindir %{_libqt5_archdatadir}/bin
%_libqt5_datadir %{_datadir}/qt5
%_libqt5_docdir %{_docdir}/qt5
%_libqt5_examplesdir %{_libqt5_archdatadir}/examples
%_libqt5_includedir %{_includedir}/qt5
%_libqt5_importdir %{_libqt5_archdatadir}/imports
%_libqt5_libexecdir %{_libqt5_archdatadir}/libexec
%_libqt5_plugindir %{_libqt5_archdatadir}/plugins
%_libqt5_sysconfdir %{_sysconfdir}/xdg
%_libqt5_translationdir %{_libqt5_datadir}/qt5/translations
%_libqt5_qmake %{_libqt5_bindir}/qmake
%qmake5 \
export PATH=%{_libqt5_bindir}:$PATH ; \
export CXXFLAGS="$CXXFLAGS %{optflags} -DOPENSSL_LOAD_CONF" ; \
export CFLAGS="$CFLAGS %{optflags} -DOPENSSL_LOAD_CONF" ; \
%_libqt5_qmake
%make_jobs \
%{__make} %{?_smp_mflags} VERBOSE=1
%qmake5_install \
make INSTALL_ROOT=%{buildroot} install++++++ qmake-add-usr-include.diff ++++++
--- qtbase/qmake/generators/unix/unixmake2.cpp 2012/08/30 12:10:34 1.1
+++ qtbase/qmake/generators/unix/unixmake2.cpp 2012/08/30 12:10:41
@@ -128,7 +128,7 @@
<< varGlue("DEFINES","-D"," -D","") << endl;
t << "CFLAGS = " << var("QMAKE_CFLAGS") << " $(DEFINES)\n";
t << "CXXFLAGS = " << var("QMAKE_CXXFLAGS") << " $(DEFINES)\n";
- t << "INCPATH = -I" << specdir();
+ t << "INCPATH = " << "-I/usr/include -I" << specdir();
if(!project->isActiveConfig("no_include_pwd")) {
QString pwd = escapeFilePath(fileFixify(qmake_getpwd()));
if(pwd.isEmpty())
++++++ qt-never-strip.diff ++++++
--- qtbase/configure 2012/05/24 14:10:06 1.1
+++ qtbase/configure 2012/05/24 14:11:09
@@ -65,7 +65,6 @@
# initialize global variables
QMAKE_SWITCHES=
-QMAKE_VARS=
QMAKE_CONFIG=
QTCONFIG_CONFIG=
QT_CONFIG=
@@ -1199,7 +1198,7 @@
QMakeVar add QMAKE_CFLAGS -pg
QMakeVar add QMAKE_CXXFLAGS -pg
QMakeVar add QMAKE_LFLAGS -pg
- QMAKE_VARS="$QMAKE_VARS CONFIG+=nostrip"
+ QMakeVar add CONFIG nostrip
else
UNKNOWN_OPT=yes
fi
@@ -2426,6 +2425,8 @@
esac
fi
+QMakeVar add CONFIG nostrip
+
#-------------------------------------------------------------------------------
# tests that don't need qmake (must be run before displaying help)
#-------------------------------------------------------------------------------
++++++ qtbase-opensource-src-5.1.1-bigendian.patch ++++++
diff -up qtbase-opensource-src-5.1.1/src/3rdparty/sha3/KeccakF-1600-opt64.c.bigendian qtbase-opensource-src-5.1.1/src/3rdparty/sha3/KeccakF-1600-opt64.c
--- qtbase-opensource-src-5.1.1/src/3rdparty/sha3/KeccakF-1600-opt64.c.bigendian 2013-09-23 11:10:42.000000000 +0200
+++ qtbase-opensource-src-5.1.1/src/3rdparty/sha3/KeccakF-1600-opt64.c 2013-09-23 11:16:02.000000000 +0200
@@ -324,7 +324,7 @@ static void KeccakPermutation(unsigned c
KeccakPermutationOnWords((UINT64*)state);
}
-#if 0 // Unused in the Qt configuration
+#if (PLATFORM_BYTE_ORDER == IS_BIG_ENDIAN)
static void fromBytesToWord(UINT64 *word, const UINT8 *bytes)
{
unsigned int i;
@@ -445,7 +445,7 @@ static void KeccakAbsorb(unsigned char *
#endif
}
-#if 0 // Unused in the Qt configuration
+#if (PLATFORM_BYTE_ORDER == IS_BIG_ENDIAN)
static void fromWordToBytes(UINT8 *bytes, const UINT64 word)
{
unsigned int i;
++++++ qtbase-qatomic-ppc.patch ++++++
Index: qtbase-opensource-src-5.1.1/src/corelib/thread/qoldbasicatomic.h
===================================================================
--- qtbase-opensource-src-5.1.1.orig/src/corelib/thread/qoldbasicatomic.h
+++ qtbase-opensource-src-5.1.1/src/corelib/thread/qoldbasicatomic.h
@@ -63,7 +63,7 @@ public:
// Atomic API, implemented in qatomic_XXX.h
int load() const { return _q_value; }
- int loadAcquire() { return _q_value; }
+ int loadAcquire() const { return _q_value; }
void store(int newValue) { _q_value = newValue; }
void storeRelease(int newValue) { _q_value = newValue; }
@@ -107,7 +107,7 @@ public:
// Atomic API, implemented in qatomic_XXX.h
T *load() const { return _q_value; }
- T *loadAcquire() { return _q_value; }
+ T *loadAcquire() const { return _q_value; }
void store(T *newValue) { _q_value = newValue; }
void storeRelease(T *newValue) { _q_value = newValue; }
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package rpmlint-Factory for openSUSE:Factory checked in at 2014-01-31 20:11:22
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/rpmlint-Factory (Old)
and /work/SRC/openSUSE:Factory/.rpmlint-Factory.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "rpmlint-Factory"
Changes:
--------
--- /work/SRC/openSUSE:Factory/rpmlint-Factory/rpmlint-Factory.changes 2013-01-31 10:19:09.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.rpmlint-Factory.new/rpmlint-Factory.changes 2014-01-31 20:11:23.000000000 +0100
@@ -1,0 +2,5 @@
+Thu Jan 30 14:43:17 UTC 2014 - dmueller(a)suse.com
+
+- make anything >= 1000 fatal
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ rpmlint-Factory.spec ++++++
--- /var/tmp/diff_new_pack.MLHouK/_old 2014-01-31 20:11:24.000000000 +0100
+++ /var/tmp/diff_new_pack.MLHouK/_new 2014-01-31 20:11:24.000000000 +0100
@@ -1,7 +1,7 @@
#
# spec file for package rpmlint-Factory
#
-# 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
++++++ config ++++++
--- /var/tmp/diff_new_pack.MLHouK/_old 2014-01-31 20:11:24.000000000 +0100
+++ /var/tmp/diff_new_pack.MLHouK/_new 2014-01-31 20:11:24.000000000 +0100
@@ -25,7 +25,7 @@
# This line is mandatory to access the configuration functions
from Config import *
-setOption("BadnessThreshold", 1000)
+setOption("BadnessThreshold", 999)
# score table
setBadness('arch-dependent-file-in-usr-share', 590)
@@ -52,15 +52,14 @@
setBadness('executable-docs', 900)
setBadness('binary-in-etc', 900)
-setBadness('non-ghost-in-var-run', 1000)
-setBadness('non-ghost-in-var-lock', 1000)
-
# too many failures for now
#setBadness('dir-or-file-in-tmp', 900)
#fatal checks
#setBadness('files-attr-not-set', 10000)
+setBadness('non-ghost-in-var-run', 10000)
+setBadness('non-ghost-in-var-lock', 10000)
setBadness('percent-in-dependency', 10000)
setBadness('percent-in-obsoletes', 10000)
setBadness('percent-in-provides', 10000)
--
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 Test-DVD-x86_64 for openSUSE:Factory checked in at 2014-01-31 19:38:37
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/Test-DVD-x86_64 (Old)
and /work/SRC/openSUSE:Factory/.Test-DVD-x86_64.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "Test-DVD-x86_64"
Changes:
--------
New Changes file:
NO CHANGES FILE!!!
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ PRODUCT-x86_64.kiwi ++++++
--- /var/tmp/diff_new_pack.YAuLqf/_old 2014-01-31 19:38:39.000000000 +0100
+++ /var/tmp/diff_new_pack.YAuLqf/_new 2014-01-31 19:38:39.000000000 +0100
@@ -23,7 +23,7 @@
<productoptions>
<productvar name="DISTNAME">openSUSE</productvar>
<productvar name="FLAVOR">dvd</productvar>
- <productvar name="MEDIUM_NAME">Test-67</productvar>
+ <productvar name="MEDIUM_NAME">Test-68</productvar>
<productvar name="MULTIPLE_MEDIA">no</productvar>
<productvar name="PRODUCT_DIR">/</productvar>
<productvar name="PRODUCT_NAME">$DISTNAME-$FLAVOR</productvar>
@@ -74,6 +74,7 @@
<repopackage name="augeas-lenses"/>
<repopackage name="autoyast2-installation"/>
<repopackage name="bash"/>
+ <repopackage name="bash-completion"/>
<repopackage name="bash-lang"/>
<repopackage name="bind-libs"/>
<repopackage name="bind-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 xorg-x11-server for openSUSE:Factory checked in at 2014-01-31 16:47:10
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/xorg-x11-server (Old)
and /work/SRC/openSUSE:Factory/.xorg-x11-server.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "xorg-x11-server"
Changes:
--------
--- /work/SRC/openSUSE:Factory/xorg-x11-server/xorg-x11-server.changes 2014-01-23 15:58:48.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.xorg-x11-server.new/xorg-x11-server.changes 2014-01-31 16:47:11.000000000 +0100
@@ -1,0 +2,8 @@
+Thu Jan 30 10:33:43 UTC 2014 - lbsousajr(a)gmail.com
+
+- Rename u_keep_non_seat0_x_server_from_touching_vts.patch to
+ U_keep_non_seat0_x_server_from_touching_vts.patch, since it's
+ now upstreamed.
+ * See: http://cgit.freedesktop.org/xorg/xserver/commit/?id=46cf2a60934076bf568062e…
+
+-------------------------------------------------------------------
Old:
----
u_keep_non_seat0_x_server_from_touching_vts.patch
New:
----
U_keep_non_seat0_x_server_from_touching_vts.patch
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ xorg-x11-server.spec ++++++
--- /var/tmp/diff_new_pack.TkM5Y1/_old 2014-01-31 16:47:12.000000000 +0100
+++ /var/tmp/diff_new_pack.TkM5Y1/_new 2014-01-31 16:47:12.000000000 +0100
@@ -133,7 +133,7 @@
Patch162: b_cache-xkbcomp-output-for-fast-start-up.patch
Patch211: b_0001-Prevent-XSync-Alarms-from-senslessly-calling-CheckTr.patch
Patch222: b_sync-fix.patch
-Patch223: u_keep_non_seat0_x_server_from_touching_vts.patch
+Patch223: U_keep_non_seat0_x_server_from_touching_vts.patch
%description
This package contains the X.Org Server.
++++++ U_keep_non_seat0_x_server_from_touching_vts.patch ++++++
>From 405e2805d3903a8a631f01924593a227c634f05d Mon Sep 17 00:00:00 2001
From: Laércio de Sousa <lbsousajr(a)gmail.com>
Date: Thu, 12 Dec 2013 16:22:48 +0000
Subject: xfree86: Keep a non-seat0 X server from touching VTs (#71258)
Updated patch following Hans de Goede's advice.
If -seat option is passed with a value different from seat0,
X server won't call xf86OpenConsole().
This is needed to avoid any race condition between seat0 and
non-seat0 X servers. If a non-seat0 X server opens a given VT
before a seat0 one which expects to open the same VT, one can
get an inactive systemd-logind graphical session for seat0.
This patch was first tested in a multiseat setup with multiple
video cards and works quite well.
I suppose it can also make things like DontVTSwitch and -sharevts
meaningless for non-seat0 seats, so it may fix bug #69477, too.
Fixes: https://bugs.freedesktop.org/show_bug.cgi?id=71258
https://bugs.freedesktop.org/show_bug.cgi?id=69477 (maybe)
See also: http://lists.x.org/archives/xorg-devel/2013-October/038391.html
https://bugzilla.redhat.com/show_bug.cgi?id=1018196
Signed-off-by: Hans de Goede <hdegoede(a)redhat.com>
---
diff --git a/hw/xfree86/common/xf86Init.c b/hw/xfree86/common/xf86Init.c
index 91ec4c8..1e95061 100644
--- a/hw/xfree86/common/xf86Init.c
+++ b/hw/xfree86/common/xf86Init.c
@@ -544,7 +544,8 @@ InitOutput(ScreenInfo * pScreenInfo, int argc, char **argv)
if (NEED_IO_ENABLED(flags))
want_hw_access = TRUE;
- if (!(flags & HW_SKIP_CONSOLE))
+ /* Non-seat0 X servers should not open console */
+ if (!(flags & HW_SKIP_CONSOLE) && !ServerIsNotSeat0())
xorgHWOpenConsole = TRUE;
}
--
cgit v0.9.0.2-2-gbebe
--
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 xkeyboard-config for openSUSE:Factory checked in at 2014-01-31 16:42:41
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/xkeyboard-config (Old)
and /work/SRC/openSUSE:Factory/.xkeyboard-config.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "xkeyboard-config"
Changes:
--------
--- /work/SRC/openSUSE:Factory/xkeyboard-config/xkeyboard-config.changes 2013-10-08 11:08:06.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.xkeyboard-config.new/xkeyboard-config.changes 2014-01-31 16:42:42.000000000 +0100
@@ -1,0 +2,7 @@
+Thu Jan 30 11:08:13 UTC 2014 - sndirsch(a)suse.com
+
+- Update to version 2.11
+ + There is traditional massive code cleanup by Benno - and a
+ number of other fixes and updated translations (thanks to TP)
+
+-------------------------------------------------------------------
Old:
----
xkeyboard-config-2.10.1.tar.bz2
New:
----
xkeyboard-config-2.11.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ xkeyboard-config.spec ++++++
--- /var/tmp/diff_new_pack.uXk8h7/_old 2014-01-31 16:42:42.000000000 +0100
+++ /var/tmp/diff_new_pack.uXk8h7/_new 2014-01-31 16:42:42.000000000 +0100
@@ -1,7 +1,7 @@
#
# spec file for package xkeyboard-config
#
-# 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
@@ -28,12 +28,12 @@
Provides: XFree86:/etc/X11/xkb/symbols/us
Provides: xorg-x11:/etc/X11/xkb/symbols/us
PreReq: /bin/ln /bin/rm
-Version: 2.10.1
+Version: 2.11
Release: 0
Summary: The X Keyboard Extension
License: GPL-2.0+ and LGPL-2.1+ and MIT and CDDL-1.0
Group: System/X11/Utilities
-Source: http://xorg.freedesktop.org/archive/individual/data/xkeyboard-config/xkeybo…
+Source: http://xorg.freedesktop.org/archive/individual/data/xkeyboard-config/xkeybo…
Patch0: n_rs-cyralpha-The-key-z-on-US-keyboard-should-give-dze.patch
Patch100: n_suse.patch
# PATCH-FIX-OPENSUSE disable-2xalt_2xctrl-toggle.diff fdo#4927 -- This is just a workaround until fdo#4927 is fixed
++++++ xkeyboard-config-2.10.1.tar.bz2 -> xkeyboard-config-2.11.tar.bz2 ++++++
++++ 69972 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 xf86-video-ati for openSUSE:Factory checked in at 2014-01-31 16:42:31
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/xf86-video-ati (Old)
and /work/SRC/openSUSE:Factory/.xf86-video-ati.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "xf86-video-ati"
Changes:
--------
--- /work/SRC/openSUSE:Factory/xf86-video-ati/xf86-video-ati.changes 2013-08-10 10:51:45.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.xf86-video-ati.new/xf86-video-ati.changes 2014-01-31 16:42:32.000000000 +0100
@@ -1,0 +2,35 @@
+Thu Jan 30 10:42:16 UTC 2014 - sndirsch(a)suse.com
+
+- Update to 7.3.0; changes since 7.2.0:
+ radeon: disallow glamor on pre-R600 asics
+ radeon/kms: add berlin pci ids
+ radeon: enable glamor by default (v4)
+ radeon: fix limit handling for cards with >4G of ram
+ drm/radeon: fix non-glamor build
+ radeon: fix the non-glamor build harder...
+ radeon: enable tiling on SI by default (v2)
+ radeon: add support for Hawaii
+ radeon/kms: add Hawaii pci ids
+ drm/radeon: fix SUMO2 pci id
+ radeon/exa: Always use a scratch surface for UTS to vram
+ Require glamor 0.6.0
+ EXA/evergreen: Paranoia around linear tiling. (v2)
+ radeon: use glamor Xv support if present.
+ radeon/glamor: with new pixmap for dri2 drawable no need to
+ create new texture
+ Fix shadowfb on big-endian machines
+ DRI2: Install client callback only once
+ dri2: Make last_vblank_seq local unsigned to match dpms_last_seq
+ Don't require the glamoregl module to be pre-loaded with xserver >= 1.15
+ radeon: Set first parameter of drmOpen() to NULL
+ radeon: Restore kernel module load on FreeBSD.
+ radeon: disable 2D tiling on buffers < 128 pixels
+- removed obsolete patches xf86-video-ati.diff,
+ xf86-video-ati-bug519261-increase-virtual.diff,
+ xf86-video-ati-disable-dri-bug437651-ia64only.diff since
+ modesetting is now being done in kernel space (KMS) and IA64 is
+ no longer considered a relevant architecture for current SUSE
+ products
+- specfile cleanup
+
+-------------------------------------------------------------------
Old:
----
xf86-video-ati-7.2.0.tar.bz2
xf86-video-ati-bug519261-increase-virtual.diff
xf86-video-ati-disable-dri-bug437651-ia64only.diff
xf86-video-ati.diff
New:
----
xf86-video-ati-7.3.0.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ xf86-video-ati.spec ++++++
--- /var/tmp/diff_new_pack.F8qvE6/_old 2014-01-31 16:42:33.000000000 +0100
+++ /var/tmp/diff_new_pack.F8qvE6/_new 2014-01-31 16:42:33.000000000 +0100
@@ -1,7 +1,7 @@
#
# spec file for package xf86-video-ati
#
-# Copyright (c) 2013 SUSE LINUX Products GmbH, Nuernberg, Germany.
+# Copyright (c) 2014 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -17,16 +17,13 @@
Name: xf86-video-ati
-Version: 7.2.0
+Version: 7.3.0
Release: 0
Summary: ATI video driver for the Xorg X server
License: MIT
Group: System/X11/Servers/XF86_4
Url: http://xorg.freedesktop.org/
Source0: http://xorg.freedesktop.org/releases/individual/driver/%{name}-%{version}.t…
-Patch0: xf86-video-ati.diff
-Patch3: xf86-video-ati-bug519261-increase-virtual.diff
-Patch4: xf86-video-ati-disable-dri-bug437651-ia64only.diff
BuildRequires: Mesa-devel
BuildRequires: autoconf >= 2.60
@@ -66,13 +63,6 @@
%prep
%setup -q
-### File is gone (not applicable anymore?)
-#%patch0
-### File is gone (not applicable anymore?)
-#%patch3 -p1
-%ifarch ia64
-#%patch4 -p1
-%endif
%build
autoreconf -fi
@@ -87,12 +77,8 @@
%defattr(-,root,root)
%doc COPYING README
%dir %{_libdir}/xorg/modules/drivers
-#%dir %{_libdir}/xorg/modules/multimedia
%{_libdir}/xorg/modules/drivers/ati_drv.so
%{_libdir}/xorg/modules/drivers/radeon_drv.so
-#%{_libdir}/xorg/modules/multimedia/theatre200_drv.so
-#%{_libdir}/xorg/modules/multimedia/theatre_detect_drv.so
-#%{_libdir}/xorg/modules/multimedia/theatre_drv.so
%{_datadir}/man/man4/ati.4%{?ext_man}
%{_datadir}/man/man4/radeon.4%{?ext_man}
++++++ xf86-video-ati-7.2.0.tar.bz2 -> xf86-video-ati-7.3.0.tar.bz2 ++++++
++++ 7977 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 xcb-util-wm for openSUSE:Factory checked in at 2014-01-31 16:42:25
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/xcb-util-wm (Old)
and /work/SRC/openSUSE:Factory/.xcb-util-wm.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "xcb-util-wm"
Changes:
--------
--- /work/SRC/openSUSE:Factory/xcb-util-wm/xcb-util-wm.changes 2013-03-21 22:16:00.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.xcb-util-wm.new/xcb-util-wm.changes 2014-01-31 16:42:27.000000000 +0100
@@ -1,0 +2,8 @@
+Thu Jan 30 11:04:18 UTC 2014 - sndirsch(a)suse.com
+
+- update to version 0.4.0; changes since 0.3.9:
+ + Even though EWMH spec does not mandate window to be set, some
+ WM expect it to be set.
+ + Check submodules before running autoconf.
+
+-------------------------------------------------------------------
Old:
----
xcb-util-wm-0.3.9.tar.bz2
New:
----
xcb-util-wm-0.4.0.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ xcb-util-wm.spec ++++++
--- /var/tmp/diff_new_pack.t9qvAd/_old 2014-01-31 16:42:28.000000000 +0100
+++ /var/tmp/diff_new_pack.t9qvAd/_new 2014-01-31 16:42:28.000000000 +0100
@@ -1,7 +1,7 @@
#
# spec file for package xcb-util-wm
#
-# Copyright (c) 2013 SUSE LINUX Products GmbH, Nuernberg, Germany.
+# Copyright (c) 2014 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -17,7 +17,7 @@
Name: xcb-util-wm
-Version: 0.3.9
+Version: 0.4.0
Release: 0
Summary: XCB utility module for client- and WM-side ICCCM helpers
License: MIT
++++++ xcb-util-wm-0.3.9.tar.bz2 -> xcb-util-wm-0.4.0.tar.bz2 ++++++
++++ 7221 lines of diff (skipped)
++++ retrying with extended exclude list
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xcb-util-wm-0.3.9/ChangeLog new/xcb-util-wm-0.4.0/ChangeLog
--- old/xcb-util-wm-0.3.9/ChangeLog 2012-05-31 05:50:39.000000000 +0200
+++ new/xcb-util-wm-0.4.0/ChangeLog 2014-01-29 07:58:24.000000000 +0100
@@ -1,3 +1,36 @@
+commit 1ad70737e5076baf1f99cb6463e10a362f78ceee
+Author: Arnaud Fontaine <arnau(a)debian.org>
+Date: Wed Jan 29 15:45:03 2014 +0900
+
+ Release 0.4.0.
+
+ Signed-off-by: Arnaud Fontaine <arnau(a)debian.org>
+
+commit c3d61ece8098ec3f1b3f5c3f8c5c95f2a5c3c0f7
+Author: Niclas Zeising <zeising(a)daemonic.se>
+Date: Mon Aug 12 13:53:10 2013 +0200
+
+ Check submodules before running autoconf.
+
+ Exit early with an informative message if the submodules are missing,
+ since they are needed. Without this autoconf throws a bunch of
+ uninformative errors which does not point to the actual problem.
+ This was taken from util-keysyms.
+
+ Signed-off-by: Niclas Zeising <zeising(a)daemonic.se>
+ Reviewed-By: Arnaud Fontaine <arnau(a)debian.org>
+
+commit c33a20fa5876e96c5ec6ec882b681379f145a66e
+Author: Arnaud Fontaine <arnau(a)debian.org>
+Date: Tue Jul 16 17:48:32 2013 +0900
+
+ Even though EWMH spec does not mandate window to be set, some WM expect it to be set.
+
+ For example, Awesome 3.4 with Zaphod mode checks this attribute to match it to
+ the relevant root window.
+
+ Signed-off-by: Arnaud Fontaine <arnau(a)debian.org>
+
commit b488f4142298640f3237914a489c8eb6107922fd
Author: Arnaud Fontaine <arnau(a)debian.org>
Date: Thu May 31 11:22:27 2012 +0900
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xcb-util-wm-0.3.9/NEWS new/xcb-util-wm-0.4.0/NEWS
--- old/xcb-util-wm-0.3.9/NEWS 2012-05-31 04:12:01.000000000 +0200
+++ new/xcb-util-wm-0.4.0/NEWS 2014-01-29 07:53:42.000000000 +0100
@@ -1,3 +1,8 @@
+Release 0.4.0 (2014-01-19)
+==========================
+
+- Set EWMH ClientMessage window to the Root, not mandated but expected by some WMs.
+
Release 0.3.9 (2012-05-30)
==========================
@@ -17,4 +22,4 @@
- Link with -no-undefined.
- Validate size of wm_hints and wm_size_hints.
- Ensure get_wm_class_from_reply returns a valid C-string.
-- Add AM_MAINTAINER_MODE for vendors
+- Add AM_MAINTAINER_MODE for vendors.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xcb-util-wm-0.3.9/autogen.sh new/xcb-util-wm-0.4.0/autogen.sh
--- old/xcb-util-wm-0.3.9/autogen.sh 2011-04-14 04:44:24.000000000 +0200
+++ new/xcb-util-wm-0.4.0/autogen.sh 2014-01-29 07:43:15.000000000 +0100
@@ -6,6 +6,21 @@
ORIGDIR=`pwd`
cd $srcdir
+# If this is a git checkout, verify that the submodules are initialized,
+# otherwise autotools will just fail with an unhelpful error message.
+if [ -d ".git" ] && [ -r ".gitmodules" ]
+then
+ # If git is not in PATH, this will not return 0, thus not keeping us
+ # from building. Since the message is worthless when git is not
+ # installed, this is what we want.
+ if git submodule status 2>/dev/null | grep -q '^-'
+ then
+ echo "You have uninitialized git submodules." >&2
+ echo "Please run: git submodule update --init" >&2
+ exit 1
+ fi
+fi
+
autoreconf -v --install || exit 1
cd $ORIGDIR || exit $?
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xcb-util-wm-0.3.9/compile new/xcb-util-wm-0.4.0/compile
--- old/xcb-util-wm-0.3.9/compile 1970-01-01 01:00:00.000000000 +0100
+++ new/xcb-util-wm-0.4.0/compile 2014-01-29 07:58:19.000000000 +0100
@@ -0,0 +1,347 @@
+#! /bin/sh
+# Wrapper for compilers which do not understand '-c -o'.
+
+scriptversion=2012-10-14.11; # UTC
+
+# Copyright (C) 1999-2013 Free Software Foundation, Inc.
+# Written by Tom Tromey <tromey(a)cygnus.com>.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program that contains a
+# configuration script generated by Autoconf, you may include it under
+# the same distribution terms that you use for the rest of that program.
+
+# This file is maintained in Automake, please report
+# bugs to <bug-automake(a)gnu.org> or send patches to
+# <automake-patches(a)gnu.org>.
+
+nl='
+'
+
+# We need space, tab and new line, in precisely that order. Quoting is
+# there to prevent tools from complaining about whitespace usage.
+IFS=" "" $nl"
+
+file_conv=
+
+# func_file_conv build_file lazy
+# Convert a $build file to $host form and store it in $file
+# Currently only supports Windows hosts. If the determined conversion
+# type is listed in (the comma separated) LAZY, no conversion will
+# take place.
+func_file_conv ()
+{
+ file=$1
+ case $file in
+ / | /[!/]*) # absolute file, and not a UNC file
+ if test -z "$file_conv"; then
+ # lazily determine how to convert abs files
+ case `uname -s` in
+ MINGW*)
+ file_conv=mingw
+ ;;
+ CYGWIN*)
+ file_conv=cygwin
+ ;;
+ *)
+ file_conv=wine
+ ;;
+ esac
+ fi
+ case $file_conv/,$2, in
+ *,$file_conv,*)
+ ;;
+ mingw/*)
+ file=`cmd //C echo "$file " | sed -e 's/"\(.*\) " *$/\1/'`
+ ;;
+ cygwin/*)
+ file=`cygpath -m "$file" || echo "$file"`
+ ;;
+ wine/*)
+ file=`winepath -w "$file" || echo "$file"`
+ ;;
+ esac
+ ;;
+ esac
+}
+
+# func_cl_dashL linkdir
+# Make cl look for libraries in LINKDIR
+func_cl_dashL ()
+{
+ func_file_conv "$1"
+ if test -z "$lib_path"; then
+ lib_path=$file
+ else
+ lib_path="$lib_path;$file"
+ fi
+ linker_opts="$linker_opts -LIBPATH:$file"
+}
+
+# func_cl_dashl library
+# Do a library search-path lookup for cl
+func_cl_dashl ()
+{
+ lib=$1
+ found=no
+ save_IFS=$IFS
+ IFS=';'
+ for dir in $lib_path $LIB
+ do
+ IFS=$save_IFS
+ if $shared && test -f "$dir/$lib.dll.lib"; then
+ found=yes
+ lib=$dir/$lib.dll.lib
+ break
+ fi
+ if test -f "$dir/$lib.lib"; then
+ found=yes
+ lib=$dir/$lib.lib
+ break
+ fi
+ if test -f "$dir/lib$lib.a"; then
+ found=yes
+ lib=$dir/lib$lib.a
+ break
+ fi
+ done
+ IFS=$save_IFS
+
+ if test "$found" != yes; then
+ lib=$lib.lib
+ fi
+}
+
+# func_cl_wrapper cl arg...
+# Adjust compile command to suit cl
+func_cl_wrapper ()
+{
+ # Assume a capable shell
+ lib_path=
+ shared=:
+ linker_opts=
+ for arg
+ do
+ if test -n "$eat"; then
+ eat=
+ else
+ case $1 in
+ -o)
+ # configure might choose to run compile as 'compile cc -o foo foo.c'.
+ eat=1
+ case $2 in
+ *.o | *.[oO][bB][jJ])
+ func_file_conv "$2"
+ set x "$@" -Fo"$file"
+ shift
+ ;;
+ *)
+ func_file_conv "$2"
+ set x "$@" -Fe"$file"
+ shift
+ ;;
+ esac
+ ;;
+ -I)
+ eat=1
+ func_file_conv "$2" mingw
+ set x "$@" -I"$file"
+ shift
+ ;;
+ -I*)
+ func_file_conv "${1#-I}" mingw
+ set x "$@" -I"$file"
+ shift
+ ;;
+ -l)
+ eat=1
+ func_cl_dashl "$2"
+ set x "$@" "$lib"
+ shift
+ ;;
+ -l*)
+ func_cl_dashl "${1#-l}"
+ set x "$@" "$lib"
+ shift
+ ;;
+ -L)
+ eat=1
+ func_cl_dashL "$2"
+ ;;
+ -L*)
+ func_cl_dashL "${1#-L}"
+ ;;
+ -static)
+ shared=false
+ ;;
+ -Wl,*)
+ arg=${1#-Wl,}
+ save_ifs="$IFS"; IFS=','
+ for flag in $arg; do
+ IFS="$save_ifs"
+ linker_opts="$linker_opts $flag"
+ done
+ IFS="$save_ifs"
+ ;;
+ -Xlinker)
+ eat=1
+ linker_opts="$linker_opts $2"
+ ;;
+ -*)
+ set x "$@" "$1"
+ shift
+ ;;
+ *.cc | *.CC | *.cxx | *.CXX | *.[cC]++)
+ func_file_conv "$1"
+ set x "$@" -Tp"$file"
+ shift
+ ;;
+ *.c | *.cpp | *.CPP | *.lib | *.LIB | *.Lib | *.OBJ | *.obj | *.[oO])
+ func_file_conv "$1" mingw
+ set x "$@" "$file"
+ shift
+ ;;
+ *)
+ set x "$@" "$1"
+ shift
+ ;;
+ esac
+ fi
+ shift
+ done
+ if test -n "$linker_opts"; then
+ linker_opts="-link$linker_opts"
+ fi
+ exec "$@" $linker_opts
+ exit 1
+}
+
+eat=
+
+case $1 in
+ '')
+ echo "$0: No command. Try '$0 --help' for more information." 1>&2
+ exit 1;
+ ;;
+ -h | --h*)
+ cat <<\EOF
+Usage: compile [--help] [--version] PROGRAM [ARGS]
+
+Wrapper for compilers which do not understand '-c -o'.
+Remove '-o dest.o' from ARGS, run PROGRAM with the remaining
+arguments, and rename the output as expected.
+
+If you are trying to build a whole package this is not the
+right script to run: please start by reading the file 'INSTALL'.
+
+Report bugs to <bug-automake(a)gnu.org>.
+EOF
+ exit $?
+ ;;
+ -v | --v*)
+ echo "compile $scriptversion"
+ exit $?
+ ;;
+ cl | *[/\\]cl | cl.exe | *[/\\]cl.exe )
+ func_cl_wrapper "$@" # Doesn't return...
+ ;;
+esac
+
+ofile=
+cfile=
+
+for arg
+do
+ if test -n "$eat"; then
+ eat=
+ else
+ case $1 in
+ -o)
+ # configure might choose to run compile as 'compile cc -o foo foo.c'.
+ # So we strip '-o arg' only if arg is an object.
+ eat=1
+ case $2 in
+ *.o | *.obj)
+ ofile=$2
+ ;;
+ *)
+ set x "$@" -o "$2"
+ shift
+ ;;
+ esac
+ ;;
+ *.c)
+ cfile=$1
+ set x "$@" "$1"
+ shift
+ ;;
+ *)
+ set x "$@" "$1"
+ shift
+ ;;
+ esac
+ fi
+ shift
+done
+
+if test -z "$ofile" || test -z "$cfile"; then
+ # If no '-o' option was seen then we might have been invoked from a
+ # pattern rule where we don't need one. That is ok -- this is a
+ # normal compilation that the losing compiler can handle. If no
+ # '.c' file was seen then we are probably linking. That is also
+ # ok.
+ exec "$@"
+fi
+
+# Name of file we expect compiler to create.
+cofile=`echo "$cfile" | sed 's|^.*[\\/]||; s|^[a-zA-Z]:||; s/\.c$/.o/'`
+
+# Create the lock directory.
+# Note: use '[/\\:.-]' here to ensure that we don't use the same name
+# that we are using for the .o file. Also, base the name on the expected
+# object file name, since that is what matters with a parallel build.
+lockdir=`echo "$cofile" | sed -e 's|[/\\:.-]|_|g'`.d
+while true; do
+ if mkdir "$lockdir" >/dev/null 2>&1; then
+ break
+ fi
+ sleep 1
+done
+# FIXME: race condition here if user kills between mkdir and trap.
+trap "rmdir '$lockdir'; exit 1" 1 2 15
+
+# Run the compile.
+"$@"
+ret=$?
+
+if test -f "$cofile"; then
+ test "$cofile" = "$ofile" || mv "$cofile" "$ofile"
+elif test -f "${cofile}bj"; then
+ test "${cofile}bj" = "$ofile" || mv "${cofile}bj" "$ofile"
+fi
+
+rmdir "$lockdir"
+exit $ret
+
+# Local Variables:
+# mode: shell-script
+# sh-indentation: 2
+# eval: (add-hook 'write-file-hooks 'time-stamp)
+# time-stamp-start: "scriptversion="
+# time-stamp-format: "%:y-%02m-%02d.%02H"
+# time-stamp-time-zone: "UTC"
+# time-stamp-end: "; # UTC"
+# End:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xcb-util-wm-0.3.9/configure.ac new/xcb-util-wm-0.4.0/configure.ac
--- old/xcb-util-wm-0.3.9/configure.ac 2012-05-30 07:26:13.000000000 +0200
+++ new/xcb-util-wm-0.4.0/configure.ac 2014-01-29 07:44:32.000000000 +0100
@@ -1,6 +1,6 @@
dnl XCB_UTIL_M4_WITH_INCLUDE_PATH requires Autoconf >= 2.62
AC_PREREQ(2.62)
-AC_INIT([xcb-util-wm],0.3.9,[xcb(a)lists.freedesktop.org])
+AC_INIT([xcb-util-wm],0.4.0,[xcb(a)lists.freedesktop.org])
AC_CONFIG_SRCDIR([Makefile.am])
AC_CONFIG_MACRO_DIR([m4])
AM_INIT_AUTOMAKE([foreign dist-bzip2])
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xcb-util-wm-0.3.9/ewmh/ewmh.c new/xcb-util-wm-0.4.0/ewmh/ewmh.c
--- old/xcb-util-wm-0.3.9/ewmh/ewmh.c 2012-05-31 05:50:39.000000000 +0200
+++ new/xcb-util-wm-0.4.0/ewmh/ewmh.c 2013-06-12 14:03:30.000000000 +0200
@@ -740,7 +740,8 @@
{
const uint32_t data[] = { new_width, new_height };
- return xcb_ewmh_send_client_message(ewmh->connection, XCB_NONE,
+ return xcb_ewmh_send_client_message(ewmh->connection,
+ ewmh->screens[screen_nbr]->root,
ewmh->screens[screen_nbr]->root,
ewmh->_NET_DESKTOP_GEOMETRY,
sizeof(data), data);
@@ -791,7 +792,8 @@
{
const uint32_t data[] = { x, y };
- return xcb_ewmh_send_client_message(ewmh->connection, XCB_NONE,
+ return xcb_ewmh_send_client_message(ewmh->connection,
+ ewmh->screens[screen_nbr]->root,
ewmh->screens[screen_nbr]->root,
ewmh->_NET_DESKTOP_VIEWPORT,
sizeof(data), data);
@@ -811,7 +813,8 @@
{
const uint32_t data[] = { new_desktop, timestamp };
- return xcb_ewmh_send_client_message(ewmh->connection, XCB_NONE,
+ return xcb_ewmh_send_client_message(ewmh->connection,
+ ewmh->screens[screen_nbr]->root,
ewmh->screens[screen_nbr]->root,
ewmh->_NET_CURRENT_DESKTOP,
sizeof(data), data);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xcb-util-wm-0.3.9/ewmh/ewmh.c.m4 new/xcb-util-wm-0.4.0/ewmh/ewmh.c.m4
--- old/xcb-util-wm-0.3.9/ewmh/ewmh.c.m4 2012-05-30 07:32:17.000000000 +0200
+++ new/xcb-util-wm-0.4.0/ewmh/ewmh.c.m4 2013-06-12 13:52:16.000000000 +0200
@@ -662,7 +662,8 @@
{
const uint32_t data[] = { new_width, new_height };
- return xcb_ewmh_send_client_message(ewmh->connection, XCB_NONE,
+ return xcb_ewmh_send_client_message(ewmh->connection,
+ ewmh->screens[screen_nbr]->root,
ewmh->screens[screen_nbr]->root,
ewmh->_NET_DESKTOP_GEOMETRY,
sizeof(data), data);
@@ -713,7 +714,8 @@
{
const uint32_t data[] = { x, y };
- return xcb_ewmh_send_client_message(ewmh->connection, XCB_NONE,
+ return xcb_ewmh_send_client_message(ewmh->connection,
+ ewmh->screens[screen_nbr]->root,
ewmh->screens[screen_nbr]->root,
ewmh->_NET_DESKTOP_VIEWPORT,
sizeof(data), data);
@@ -733,7 +735,8 @@
{
const uint32_t data[] = { new_desktop, timestamp };
- return xcb_ewmh_send_client_message(ewmh->connection, XCB_NONE,
+ return xcb_ewmh_send_client_message(ewmh->connection,
+ ewmh->screens[screen_nbr]->root,
ewmh->screens[screen_nbr]->root,
ewmh->_NET_CURRENT_DESKTOP,
sizeof(data), data);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xcb-util-wm-0.3.9/m4/libtool.m4 new/xcb-util-wm-0.4.0/m4/libtool.m4
--- old/xcb-util-wm-0.3.9/m4/libtool.m4 2012-05-31 05:50:23.000000000 +0200
+++ new/xcb-util-wm-0.4.0/m4/libtool.m4 2014-01-29 07:58:13.000000000 +0100
@@ -1312,7 +1312,7 @@
rm -rf conftest*
;;
-x86_64-*kfreebsd*-gnu|x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*| \
+x86_64-*kfreebsd*-gnu|x86_64-*linux*|powerpc*-*linux*| \
s390*-*linux*|s390*-*tpf*|sparc*-*linux*)
# Find out which ABI we are using.
echo 'int i;' > conftest.$ac_ext
@@ -1324,9 +1324,19 @@
LD="${LD-ld} -m elf_i386_fbsd"
;;
x86_64-*linux*)
- LD="${LD-ld} -m elf_i386"
+ case `/usr/bin/file conftest.o` in
+ *x86-64*)
+ LD="${LD-ld} -m elf32_x86_64"
+ ;;
+ *)
+ LD="${LD-ld} -m elf_i386"
+ ;;
+ esac
+ ;;
+ powerpc64le-*)
+ LD="${LD-ld} -m elf32lppclinux"
;;
- ppc64-*linux*|powerpc64-*linux*)
+ powerpc64-*)
LD="${LD-ld} -m elf32ppclinux"
;;
s390x-*linux*)
@@ -1345,7 +1355,10 @@
x86_64-*linux*)
LD="${LD-ld} -m elf_x86_64"
;;
- ppc*-*linux*|powerpc*-*linux*)
+ powerpcle-*)
+ LD="${LD-ld} -m elf64lppc"
+ ;;
+ powerpc-*)
LD="${LD-ld} -m elf64ppc"
;;
s390*-*linux*|s390*-*tpf*)
@@ -1688,7 +1701,8 @@
;;
*)
lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null`
- if test -n "$lt_cv_sys_max_cmd_len"; then
+ if test -n "$lt_cv_sys_max_cmd_len" && \
+ test undefined != "$lt_cv_sys_max_cmd_len"; then
lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4`
lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3`
else
@@ -2512,17 +2526,6 @@
esac
;;
-gnu*)
- version_type=linux # correct to gnu/linux during the next big refactor
- need_lib_prefix=no
- need_version=no
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=no
- hardcode_into_libs=yes
- ;;
-
haiku*)
version_type=linux # correct to gnu/linux during the next big refactor
need_lib_prefix=no
@@ -2639,7 +2642,7 @@
;;
# This must be glibc/ELF.
-linux* | k*bsd*-gnu | kopensolaris*-gnu)
+linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*)
version_type=linux # correct to gnu/linux during the next big refactor
need_lib_prefix=no
need_version=no
@@ -3255,10 +3258,6 @@
fi
;;
-gnu*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-
haiku*)
lt_cv_deplibs_check_method=pass_all
;;
@@ -3297,7 +3296,7 @@
;;
# This must be glibc/ELF.
-linux* | k*bsd*-gnu | kopensolaris*-gnu)
+linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*)
lt_cv_deplibs_check_method=pass_all
;;
@@ -4049,7 +4048,7 @@
;;
esac
;;
- linux* | k*bsd*-gnu | kopensolaris*-gnu)
+ linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*)
case $cc_basename in
KCC*)
# KAI C++ Compiler
@@ -4348,7 +4347,7 @@
_LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
;;
- linux* | k*bsd*-gnu | kopensolaris*-gnu)
+ linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*)
case $cc_basename in
# old Intel for x86_64 which still supported -KPIC.
ecc*)
@@ -6241,9 +6240,6 @@
_LT_TAGVAR(ld_shlibs, $1)=yes
;;
- gnu*)
- ;;
-
haiku*)
_LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
_LT_TAGVAR(link_all_deplibs, $1)=yes
@@ -6405,7 +6401,7 @@
_LT_TAGVAR(inherit_rpath, $1)=yes
;;
- linux* | k*bsd*-gnu | kopensolaris*-gnu)
+ linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*)
case $cc_basename in
KCC*)
# Kuck and Associates, Inc. (KAI) C++ Compiler
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xcb-util-wm-0.3.9/missing new/xcb-util-wm-0.4.0/missing
--- old/xcb-util-wm-0.3.9/missing 2012-05-31 05:50:33.000000000 +0200
+++ new/xcb-util-wm-0.4.0/missing 2014-01-29 07:58:19.000000000 +0100
@@ -1,11 +1,10 @@
#! /bin/sh
-# Common stub for a few missing GNU programs while installing.
+# Common wrapper for a few potentially missing GNU programs.
-scriptversion=2012-01-06.13; # UTC
+scriptversion=2013-10-28.13; # UTC
-# Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005, 2006,
-# 2008, 2009, 2010, 2011, 2012 Free Software Foundation, Inc.
-# Originally by Fran,cois Pinard <pinard(a)iro.umontreal.ca>, 1996.
+# Copyright (C) 1996-2013 Free Software Foundation, Inc.
+# Originally written by Fran,cois Pinard <pinard(a)iro.umontreal.ca>, 1996.
# 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
@@ -26,68 +25,40 @@
# the same distribution terms that you use for the rest of that program.
if test $# -eq 0; then
- echo 1>&2 "Try \`$0 --help' for more information"
+ echo 1>&2 "Try '$0 --help' for more information"
exit 1
fi
-run=:
-sed_output='s/.* --output[ =]\([^ ]*\).*/\1/p'
-sed_minuso='s/.* -o \([^ ]*\).*/\1/p'
-
-# In the cases where this matters, `missing' is being run in the
-# srcdir already.
-if test -f configure.ac; then
- configure_ac=configure.ac
-else
- configure_ac=configure.in
-fi
+case $1 in
-msg="missing on your system"
+ --is-lightweight)
+ # Used by our autoconf macros to check whether the available missing
+ # script is modern enough.
+ exit 0
+ ;;
-case $1 in
---run)
- # Try to run requested program, and just exit if it succeeds.
- run=
- shift
- "$@" && exit 0
- # Exit code 63 means version mismatch. This often happens
- # when the user try to use an ancient version of a tool on
- # a file that requires a minimum version. In this case we
- # we should proceed has if the program had been absent, or
- # if --run hadn't been passed.
- if test $? = 63; then
- run=:
- msg="probably too old"
- fi
- ;;
+ --run)
+ # Back-compat with the calling convention used by older automake.
+ shift
+ ;;
-h|--h|--he|--hel|--help)
echo "\
$0 [OPTION]... PROGRAM [ARGUMENT]...
-Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an
-error status if there is no known handling for PROGRAM.
+Run 'PROGRAM [ARGUMENT]...', returning a proper advice when this fails due
+to PROGRAM being missing or too old.
Options:
-h, --help display this help and exit
-v, --version output version information and exit
- --run try to run the given command, and emulate it if it fails
Supported PROGRAM values:
- aclocal touch file \`aclocal.m4'
- autoconf touch file \`configure'
- autoheader touch file \`config.h.in'
- autom4te touch the output file, or create a stub one
- automake touch all \`Makefile.in' files
- bison create \`y.tab.[ch]', if possible, from existing .[ch]
- flex create \`lex.yy.c', if possible, from existing .c
- help2man touch the output file
- lex create \`lex.yy.c', if possible, from existing .c
- makeinfo touch the output file
- yacc create \`y.tab.[ch]', if possible, from existing .[ch]
+ aclocal autoconf autoheader autom4te automake makeinfo
+ bison yacc flex lex help2man
-Version suffixes to PROGRAM as well as the prefixes \`gnu-', \`gnu', and
-\`g' are ignored when checking the name.
+Version suffixes to PROGRAM as well as the prefixes 'gnu-', 'gnu', and
+'g' are ignored when checking the name.
Send bug reports to <bug-automake(a)gnu.org>."
exit $?
@@ -99,228 +70,141 @@
;;
-*)
- echo 1>&2 "$0: Unknown \`$1' option"
- echo 1>&2 "Try \`$0 --help' for more information"
+ echo 1>&2 "$0: unknown '$1' option"
+ echo 1>&2 "Try '$0 --help' for more information"
exit 1
;;
esac
-# normalize program name to check for.
-program=`echo "$1" | sed '
- s/^gnu-//; t
- s/^gnu//; t
- s/^g//; t'`
-
-# Now exit if we have it, but it failed. Also exit now if we
-# don't have it and --version was passed (most likely to detect
-# the program). This is about non-GNU programs, so use $1 not
-# $program.
-case $1 in
- lex*|yacc*)
- # Not GNU programs, they don't have --version.
- ;;
+# Run the given program, remember its exit status.
+"$@"; st=$?
- *)
- if test -z "$run" && ($1 --version) > /dev/null 2>&1; then
- # We have it, but it failed.
- exit 1
- elif test "x$2" = "x--version" || test "x$2" = "x--help"; then
- # Could not run --version or --help. This is probably someone
- # running `$TOOL --version' or `$TOOL --help' to check whether
- # $TOOL exists and not knowing $TOOL uses missing.
- exit 1
- fi
- ;;
-esac
-
-# If it does not exist, or fails to run (possibly an outdated version),
-# try to emulate it.
-case $program in
- aclocal*)
- echo 1>&2 "\
-WARNING: \`$1' is $msg. You should only need it if
- you modified \`acinclude.m4' or \`${configure_ac}'. You might want
- to install the \`Automake' and \`Perl' packages. Grab them from
- any GNU archive site."
- touch aclocal.m4
- ;;
-
- autoconf*)
- echo 1>&2 "\
-WARNING: \`$1' is $msg. You should only need it if
- you modified \`${configure_ac}'. You might want to install the
- \`Autoconf' and \`GNU m4' packages. Grab them from any GNU
- archive site."
- touch configure
- ;;
-
- autoheader*)
- echo 1>&2 "\
-WARNING: \`$1' is $msg. You should only need it if
- you modified \`acconfig.h' or \`${configure_ac}'. You might want
- to install the \`Autoconf' and \`GNU m4' packages. Grab them
- from any GNU archive site."
- files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${configure_ac}`
- test -z "$files" && files="config.h"
- touch_files=
- for f in $files; do
- case $f in
- *:*) touch_files="$touch_files "`echo "$f" |
- sed -e 's/^[^:]*://' -e 's/:.*//'`;;
- *) touch_files="$touch_files $f.in";;
- esac
- done
- touch $touch_files
- ;;
+# If it succeeded, we are done.
+test $st -eq 0 && exit 0
- automake*)
- echo 1>&2 "\
-WARNING: \`$1' is $msg. You should only need it if
- you modified \`Makefile.am', \`acinclude.m4' or \`${configure_ac}'.
- You might want to install the \`Automake' and \`Perl' packages.
- Grab them from any GNU archive site."
- find . -type f -name Makefile.am -print |
- sed 's/\.am$/.in/' |
- while read f; do touch "$f"; done
- ;;
-
- autom4te*)
- echo 1>&2 "\
-WARNING: \`$1' is needed, but is $msg.
- You might have modified some files without having the
- proper tools for further handling them.
- You can get \`$1' as part of \`Autoconf' from any GNU
- archive site."
-
- file=`echo "$*" | sed -n "$sed_output"`
- test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"`
- if test -f "$file"; then
- touch $file
- else
- test -z "$file" || exec >$file
- echo "#! /bin/sh"
- echo "# Created by GNU Automake missing as a replacement of"
- echo "# $ $@"
- echo "exit 0"
- chmod +x $file
- exit 1
- fi
- ;;
-
- bison*|yacc*)
- echo 1>&2 "\
-WARNING: \`$1' $msg. You should only need it if
- you modified a \`.y' file. You may need the \`Bison' package
- in order for those modifications to take effect. You can get
- \`Bison' from any GNU archive site."
- rm -f y.tab.c y.tab.h
- if test $# -ne 1; then
- eval LASTARG=\${$#}
- case $LASTARG in
- *.y)
- SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'`
- if test -f "$SRCFILE"; then
- cp "$SRCFILE" y.tab.c
- fi
- SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'`
- if test -f "$SRCFILE"; then
- cp "$SRCFILE" y.tab.h
- fi
- ;;
- esac
- fi
- if test ! -f y.tab.h; then
- echo >y.tab.h
- fi
- if test ! -f y.tab.c; then
- echo 'main() { return 0; }' >y.tab.c
- fi
- ;;
-
- lex*|flex*)
- echo 1>&2 "\
-WARNING: \`$1' is $msg. You should only need it if
- you modified a \`.l' file. You may need the \`Flex' package
- in order for those modifications to take effect. You can get
- \`Flex' from any GNU archive site."
- rm -f lex.yy.c
- if test $# -ne 1; then
- eval LASTARG=\${$#}
- case $LASTARG in
- *.l)
- SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'`
- if test -f "$SRCFILE"; then
- cp "$SRCFILE" lex.yy.c
- fi
- ;;
- esac
- fi
- if test ! -f lex.yy.c; then
- echo 'main() { return 0; }' >lex.yy.c
- fi
- ;;
-
- help2man*)
- echo 1>&2 "\
-WARNING: \`$1' is $msg. You should only need it if
- you modified a dependency of a manual page. You may need the
- \`Help2man' package in order for those modifications to take
- effect. You can get \`Help2man' from any GNU archive site."
-
- file=`echo "$*" | sed -n "$sed_output"`
- test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"`
- if test -f "$file"; then
- touch $file
- else
- test -z "$file" || exec >$file
- echo ".ab help2man is required to generate this page"
- exit $?
- fi
- ;;
-
- makeinfo*)
- echo 1>&2 "\
-WARNING: \`$1' is $msg. You should only need it if
- you modified a \`.texi' or \`.texinfo' file, or any other file
- indirectly affecting the aspect of the manual. The spurious
- call might also be the consequence of using a buggy \`make' (AIX,
- DU, IRIX). You might want to install the \`Texinfo' package or
- the \`GNU make' package. Grab either from any GNU archive site."
- # The file to touch is that specified with -o ...
- file=`echo "$*" | sed -n "$sed_output"`
- test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"`
- if test -z "$file"; then
- # ... or it is the one specified with @setfilename ...
- infile=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'`
- file=`sed -n '
- /^@setfilename/{
- s/.* \([^ ]*\) *$/\1/
- p
- q
- }' $infile`
- # ... or it is derived from the source name (dir/f.texi becomes f.info)
- test -z "$file" && file=`echo "$infile" | sed 's,.*/,,;s,.[^.]*$,,'`.info
- fi
- # If the file does not exist, the user really needs makeinfo;
- # let's fail without touching anything.
- test -f $file || exit 1
- touch $file
- ;;
-
- *)
- echo 1>&2 "\
-WARNING: \`$1' is needed, and is $msg.
- You might have modified some files without having the
- proper tools for further handling them. Check the \`README' file,
- it often tells you about the needed prerequisites for installing
- this package. You may also peek at any GNU archive site, in case
- some other package would contain this missing \`$1' program."
- exit 1
- ;;
-esac
+# Also exit now if we it failed (or wasn't found), and '--version' was
+# passed; such an option is passed most likely to detect whether the
+# program is present and works.
+case $2 in --version|--help) exit $st;; esac
+
+# Exit code 63 means version mismatch. This often happens when the user
+# tries to use an ancient version of a tool on a file that requires a
+# minimum version.
+if test $st -eq 63; then
+ msg="probably too old"
+elif test $st -eq 127; then
+ # Program was missing.
+ msg="missing on your system"
+else
+ # Program was found and executed, but failed. Give up.
+ exit $st
+fi
-exit 0
+perl_URL=http://www.perl.org/
+flex_URL=http://flex.sourceforge.net/
+gnu_software_URL=http://www.gnu.org/software
+
+program_details ()
+{
+ case $1 in
+ aclocal|automake)
+ echo "The '$1' program is part of the GNU Automake package:"
+ echo "<$gnu_software_URL/automake>"
+ echo "It also requires GNU Autoconf, GNU m4 and Perl in order to run:"
+ echo "<$gnu_software_URL/autoconf>"
+ echo "<$gnu_software_URL/m4/>"
+ echo "<$perl_URL>"
+ ;;
+ autoconf|autom4te|autoheader)
+ echo "The '$1' program is part of the GNU Autoconf package:"
+ echo "<$gnu_software_URL/autoconf/>"
+ echo "It also requires GNU m4 and Perl in order to run:"
+ echo "<$gnu_software_URL/m4/>"
+ echo "<$perl_URL>"
+ ;;
+ esac
+}
+
+give_advice ()
+{
+ # Normalize program name to check for.
+ normalized_program=`echo "$1" | sed '
+ s/^gnu-//; t
+ s/^gnu//; t
+ s/^g//; t'`
+
+ printf '%s\n' "'$1' is $msg."
+
+ configure_deps="'configure.ac' or m4 files included by 'configure.ac'"
+ case $normalized_program in
+ autoconf*)
+ echo "You should only need it if you modified 'configure.ac',"
+ echo "or m4 files included by it."
+ program_details 'autoconf'
+ ;;
+ autoheader*)
+ echo "You should only need it if you modified 'acconfig.h' or"
+ echo "$configure_deps."
+ program_details 'autoheader'
+ ;;
+ automake*)
+ echo "You should only need it if you modified 'Makefile.am' or"
+ echo "$configure_deps."
+ program_details 'automake'
+ ;;
+ aclocal*)
+ echo "You should only need it if you modified 'acinclude.m4' or"
+ echo "$configure_deps."
+ program_details 'aclocal'
+ ;;
+ autom4te*)
+ echo "You might have modified some maintainer files that require"
+ echo "the 'autom4te' program to be rebuilt."
+ program_details 'autom4te'
+ ;;
+ bison*|yacc*)
+ echo "You should only need it if you modified a '.y' file."
+ echo "You may want to install the GNU Bison package:"
+ echo "<$gnu_software_URL/bison/>"
+ ;;
+ lex*|flex*)
+ echo "You should only need it if you modified a '.l' file."
+ echo "You may want to install the Fast Lexical Analyzer package:"
+ echo "<$flex_URL>"
+ ;;
+ help2man*)
+ echo "You should only need it if you modified a dependency" \
+ "of a man page."
+ echo "You may want to install the GNU Help2man package:"
+ echo "<$gnu_software_URL/help2man/>"
+ ;;
+ makeinfo*)
+ echo "You should only need it if you modified a '.texi' file, or"
+ echo "any other file indirectly affecting the aspect of the manual."
+ echo "You might want to install the Texinfo package:"
+ echo "<$gnu_software_URL/texinfo/>"
+ echo "The spurious makeinfo call might also be the consequence of"
+ echo "using a buggy 'make' (AIX, DU, IRIX), in which case you might"
+ echo "want to install GNU make:"
+ echo "<$gnu_software_URL/make/>"
+ ;;
+ *)
+ echo "You might have modified some files without having the proper"
+ echo "tools for further handling them. Check the 'README' file, it"
+ echo "often tells you about the needed prerequisites for installing"
+ echo "this package. You may also peek at any GNU archive site, in"
+ echo "case some other package contains this missing '$1' program."
+ ;;
+ esac
+}
+
+give_advice "$1" | sed -e '1s/^/WARNING: /' \
+ -e '2,$s/^/ /' >&2
+
+# Propagate the correct exit status (expected to be 127 for a program
+# not found, 63 for a program that failed due to version mismatch).
+exit $st
# Local variables:
# eval: (add-hook 'write-file-hooks 'time-stamp)
--
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 php5-pear-symfony2-Yaml for openSUSE:Factory checked in at 2014-01-31 16:42:19
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/php5-pear-symfony2-Yaml (Old)
and /work/SRC/openSUSE:Factory/.php5-pear-symfony2-Yaml.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "php5-pear-symfony2-Yaml"
Changes:
--------
New Changes file:
--- /dev/null 2013-11-25 01:44:08.036031256 +0100
+++ /work/SRC/openSUSE:Factory/.php5-pear-symfony2-Yaml.new/php5-pear-symfony2-Yaml.changes 2014-01-31 16:42:19.000000000 +0100
@@ -0,0 +1,5 @@
+-------------------------------------------------------------------
+Sun Aug 4 21:05:57 UTC 2013 - robert.munteanu(a)gmail.com
+
+- Initial package at version 2.3.2
+
New:
----
Yaml-2.3.2.tgz
php5-pear-symfony2-Yaml.changes
php5-pear-symfony2-Yaml.spec
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ php5-pear-symfony2-Yaml.spec ++++++
#
# spec file for package php5-pear-symfony2-Yaml
#
# Copyright (c) 2013 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via http://bugs.opensuse.org/
#
Name: php5-pear-symfony2-Yaml
%define peardir %(pear config-get php_dir 2> /dev/null || echo %{_datadir}/pear)
%define xmldir /var/lib/pear
%define pear_name Yaml
%define pear_sname yaml
Summary: Symfony2 Yaml Component
License: MIT
Group: Development/Libraries/PHP
Version: 2.3.2
Release: 0
Source0: http://pear.symfony.com/get/%{pear_name}-%{version}.tgz
Url: http://pear.symfony.com/
%if 0%{?sles_version} == 11
BuildRequires: php53-devel
%else
BuildRequires: php-macros
%endif
BuildRequires: php5-pear-channel-symfony2
Requires: php5-pear-channel-symfony2
BuildArch: noarch
BuildRoot: %{_tmppath}/%{name}-%{version}-build
# Fix for renaming (package convention)
Provides: pear-%{pear_name}
Provides: pear-%{pear_sname} = %{version}
Provides: php-pear-%{pear_name}
Provides: php-pear-%{pear_sname} = %{version}
Provides: php5-pear-%{pear_sname} = %{version}
Obsoletes: pear-%{pear_sname} < %{version}
Obsoletes: php-pear-%{pear_sname} < %{version}
Obsoletes: php5-pear-%{pear_sname} < %{version}
%description
This is the Symfony YAML Component. YAML means Yet Another Markup Language and
is your opportunity to shoot yourself into the foot if xml didn't do it for you.
%prep
%setup -c
%build
%install
%{__mv} package.xml %{pear_name}-%{version}
pushd %{pear_name}-%{version}
PHP_PEAR_PHP_BIN="$(which php) -d memory_limit=50m"
%{__mkdir_p} %{buildroot}%{php_peardir}/.channels/
%{__cp} %{php_peardir}/.channels/pear.*.reg \
%{buildroot}%{php_peardir}/.channels/
%{__pear} -v \
-d doc_dir=/%{_docdir} \
-d bin_dir=%{_bindir} \
-d data_dir=%{php_peardir}/data \
install --offline --nodeps -R "%{buildroot}" package.xml
%{__install} -D -m 0644 package.xml %{buildroot}%{php_pearxmldir}/%{pear_name}.xml
%{__rm} -rf %{buildroot}/{doc,tmp}
%{__rm} -rf "%{buildroot}"/%{php_peardir}/.{filemap,lock,registry,channels,depdb,depdblock}
popd
%php_pear_gen_filelist
%post
# on `rpm -ivh` PARAM is 1
# on `rpm -Uvh` PARAM is 2
if [ "$1" = "1" ]; then
%{__pear} install --nodeps --soft --force --register-only %{php_pearxmldir}/%{pear_name}.xml
fi
if [ "$1" = "2" ]; then
%{__pear} upgrade --offline --register-only %{php_pearxmldir}/%{pear_name}.xml
fi
%postun
# on `rpm -e` PARAM is 0
if [ "$1" = "0" ]; then
%{__pear} uninstall --nodeps --ignore-errors --register-only pear.symfony.com/%{pear_name}
fi
%clean
%{__rm} -rf %{buildroot}
%files -f %{name}.files
%defattr(-,root,root)
%doc %{_docdir}/%{pear_name}
%changelog
--
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 systemd for openSUSE:Factory checked in at 2014-01-31 13:36:06
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/systemd (Old)
and /work/SRC/openSUSE:Factory/.systemd.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "systemd"
Changes:
--------
--- /work/SRC/openSUSE:Factory/systemd/systemd-mini.changes 2013-12-19 12:51:57.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.systemd.new/systemd-mini.changes 2014-01-31 13:36:07.000000000 +0100
@@ -1,0 +2,135 @@
+Thu Jan 30 08:29:00 UTC 2014 - werner(a)suse.de
+
+- Change patch 0001-add-hdflush-for-reboot-or-hddown-for-poweroff.patch
+ to skip already by the kernel managed devices
+
+-------------------------------------------------------------------
+Wed Jan 29 18:03:39 UTC 2014 - arvidjaar(a)gmail.com
+
+- fix timeout stopping user@.service (bnc#841544)
+ * 0001-core-introduce-new-KillMode-mixed-which-sends-SIGTER.patch
+ * 0002-service-allow-KillMode-mixed-in-conjunction-with-PAM.patch
+ * 0003-core-make-sure-to-always-go-through-both-SIGTERM-and.patch
+
+-------------------------------------------------------------------
+Tue Jan 28 12:44:07 UTC 2014 - werner(a)suse.de
+
+- Add patch 0001-upstream-systemctl-halt-reboot-error-handling.patch
+ to be able to detect if the sysctl reboot() returns.
+- Add patch 0001-add-hdflush-for-reboot-or-hddown-for-poweroff.patch
+ A check for unmaintained disk like devices is added to be able to
+ flush and maybe shut them down. Also the missing sync() system
+ call is added for the direct halt/reboot systemctl command. Then
+ the system halt is used as fallback if poweroff fails for both
+ the direct poweroff systemctl command as well as for the
+ systemd-shutdown utility.
+
+-------------------------------------------------------------------
+Thu Jan 23 13:24:53 UTC 2014 - werner(a)suse.de
+
+- Make systemd-mini build
+
+-------------------------------------------------------------------
+Thu Jan 23 13:18:39 UTC 2014 - werner(a)suse.de
+
+- Make requires bash-completion a recommends
+
+-------------------------------------------------------------------
+Tue Jan 21 13:05:59 UTC 2014 - werner(a)suse.de
+
+- Add patch 1017-skip-native-unit-handling-if-sysv-already-handled.patch
+ to avoid that enabled boot scripts will be handled as unit files
+ by systemctl status command (bnc#818044)
+
+-------------------------------------------------------------------
+Tue Jan 21 12:51:20 UTC 2014 - werner(a)suse.de
+
+- Drop patch 1017-enforce-sufficient-shutdown-warnings.patch
+ as the original code behaves exactly as the shutdown code of
+ the old SysVinit (bnc#750845)
+- Rename support-powerfail-with-powerstatus.patch to
+ 1016-support-powerfail-with-powerstatus.patch
+
+-------------------------------------------------------------------
+Mon Jan 20 10:18:20 UTC 2014 - fcrozat(a)suse.com
+
+- Add analyze-fix-crash-in-command-line-parsing.patch: fix crash in
+ systemd-analyze (bnc#859365)
+
+-------------------------------------------------------------------
+Fri Jan 17 16:09:24 UTC 2014 - werner(a)suse.de
+
+- Add patch
+ 1019-make-completion-smart-to-be-able-to-redirect.patch
+ to make redirections work with the bash command completions for
+ for systemd command tools (bnc#856858, bnc#859072)
+
+-------------------------------------------------------------------
+Fri Jan 17 12:24:13 UTC 2014 - werner(a)suse.de
+
+- Add patch
+ 1018-Make-LSB-Skripts-know-about-Required-and-Should.patch
+ to support the "+" to tag wanted dependencies as well as make
+ sure that required dependencies are handles as required ones.
+ This should fix bnc#858864 and bnc#857204.
+
+-------------------------------------------------------------------
+Thu Jan 16 16:08:00 UTC 2014 - lnussel(a)suse.de
+
+- apply preset also to service files that are new in upgrade
+
+-------------------------------------------------------------------
+Wed Jan 15 14:11:02 UTC 2014 - werner(a)suse.de
+
+- Change support-powerfail-with-powerstatus.patch to use BindsTo
+ instead of BindTo
+
+-------------------------------------------------------------------
+Wed Jan 15 12:34:53 UTC 2014 - werner(a)suse.de
+
+- Add patch 1017-enforce-sufficient-shutdown-warnings.patch
+ Warn once per hour in the last 3 hours, then all 30 minutes in last
+ hour, all 15 minutes in the last 45 minutes, all 10 minutes in the
+ last 15 minutes, and then all minute in the last 10 minutes (bnc#750845)
+
+-------------------------------------------------------------------
+Tue Jan 14 18:28:09 UTC 2014 - werner(a)suse.de
+
+- Add patch support-powerfail-with-powerstatus.patch and source
+ file systemd-powerfail to implement SIGPWR support with evaluation
+ of the file /var/run/powerstatus (bnc#737690)
+
+-------------------------------------------------------------------
+Fri Dec 20 12:06:18 UTC 2013 - werner(a)suse.de
+
+- Adapt patch
+ 1011-check-4-valid-kmsg-device.patch
+ to fit current upstream version maybe related to bnc#854884
+- Change patch
+ 1012-pam_systemd_do_override_XDG_RUNTIME_DIR_of_the_original_user.patch
+ to check if XDG_RUNTIME_DIR is set before the call of pam_putenv()
+ may fix bnc#855160
+
+-------------------------------------------------------------------
+Fri Dec 20 09:40:01 UTC 2013 - lbsousajr(a)gmail.com
+
+- Disable multi-seat-x build, since package xorg-x11-server
+ currently in Factory no longer needs it.
+
+-------------------------------------------------------------------
+Wed Dec 18 18:56:01 UTC 2013 - hrvoje.senjan(a)gmail.com
+
+- Added 0001-logind-garbage-collect-stale-users.patch: Don't stop a
+ running user manager from garbage-collecting the user. Original
+ behavior caused bnc#849870
+
+-------------------------------------------------------------------
+Mon Dec 16 11:08:33 UTC 2013 - lbsousajr(a)gmail.com
+
+- Add build-sys-make-multi-seat-x-optional.patch
+ * See: http://cgit.freedesktop.org/systemd/systemd/commit/?id=bd441fa27a22b7c6e11d…
+ * Now systemd-multi-seat-x build can be disabled with configure option
+ --disable-multi-seat-x. It should be done when xorg-x11-server
+ no longer needs it (work in progress).
+
+-------------------------------------------------------------------
@@ -17,0 +153,13 @@
+
+-------------------------------------------------------------------
+Sat Nov 30 08:16:02 UTC 2013 - arvidjaar(a)gmail.com
+
+- Add patch
+ 0001-core-replace-OnFailureIsolate-setting-by-a-more-gene.patch
+ Make sure emergency shell is not killed by attempt to start another unit
+ (bnc#852021). Backported from d420282b28f50720e233ccb1c02547c562195653.
+- Add patch
+ make-emergency.service-conflict-with-syslog.socket.patch
+ Previous patch did not fix problem if syslog connection request came
+ after emergency shell was already started. So forcibly stop syslog.socket
+ when starting emergency.service. (bnc#852232)
--- /work/SRC/openSUSE:Factory/systemd/systemd.changes 2013-12-30 10:45:01.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.systemd.new/systemd.changes 2014-01-31 13:36:07.000000000 +0100
@@ -1,0 +2,102 @@
+Thu Jan 30 08:29:00 UTC 2014 - werner(a)suse.de
+
+- Change patch 0001-add-hdflush-for-reboot-or-hddown-for-poweroff.patch
+ to skip already by the kernel managed devices
+
+-------------------------------------------------------------------
+Wed Jan 29 18:03:39 UTC 2014 - arvidjaar(a)gmail.com
+
+- fix timeout stopping user@.service (bnc#841544)
+ * 0001-core-introduce-new-KillMode-mixed-which-sends-SIGTER.patch
+ * 0002-service-allow-KillMode-mixed-in-conjunction-with-PAM.patch
+ * 0003-core-make-sure-to-always-go-through-both-SIGTERM-and.patch
+
+-------------------------------------------------------------------
+Tue Jan 28 12:44:07 UTC 2014 - werner(a)suse.de
+
+- Add patch 0001-upstream-systemctl-halt-reboot-error-handling.patch
+ to be able to detect if the sysctl reboot() returns.
+- Add patch 0001-add-hdflush-for-reboot-or-hddown-for-poweroff.patch
+ A check for unmaintained disk like devices is added to be able to
+ flush and maybe shut them down. Also the missing sync() system
+ call is added for the direct halt/reboot systemctl command. Then
+ the system halt is used as fallback if poweroff fails for both
+ the direct poweroff systemctl command as well as for the
+ systemd-shutdown utility.
+
+-------------------------------------------------------------------
+Thu Jan 23 13:24:53 UTC 2014 - werner(a)suse.de
+
+- Make systemd-mini build
+
+-------------------------------------------------------------------
+Thu Jan 23 13:18:39 UTC 2014 - werner(a)suse.de
+
+- Make requires bash-completion a recommends
+
+-------------------------------------------------------------------
+Tue Jan 21 13:05:59 UTC 2014 - werner(a)suse.de
+
+- Add patch 1017-skip-native-unit-handling-if-sysv-already-handled.patch
+ to avoid that enabled boot scripts will be handled as unit files
+ by systemctl status command (bnc#818044)
+
+-------------------------------------------------------------------
+Tue Jan 21 12:51:20 UTC 2014 - werner(a)suse.de
+
+- Drop patch 1017-enforce-sufficient-shutdown-warnings.patch
+ as the original code behaves exactly as the shutdown code of
+ the old SysVinit (bnc#750845)
+- Rename support-powerfail-with-powerstatus.patch to
+ 1016-support-powerfail-with-powerstatus.patch
+
+-------------------------------------------------------------------
+Mon Jan 20 10:18:20 UTC 2014 - fcrozat(a)suse.com
+
+- Add analyze-fix-crash-in-command-line-parsing.patch: fix crash in
+ systemd-analyze (bnc#859365)
+
+-------------------------------------------------------------------
+Fri Jan 17 16:09:24 UTC 2014 - werner(a)suse.de
+
+- Add patch
+ 1019-make-completion-smart-to-be-able-to-redirect.patch
+ to make redirections work with the bash command completions for
+ for systemd command tools (bnc#856858, bnc#859072)
+
+-------------------------------------------------------------------
+Fri Jan 17 12:24:13 UTC 2014 - werner(a)suse.de
+
+- Add patch
+ 1018-Make-LSB-Skripts-know-about-Required-and-Should.patch
+ to support the "+" to tag wanted dependencies as well as make
+ sure that required dependencies are handles as required ones.
+ This should fix bnc#858864 and bnc#857204.
+
+-------------------------------------------------------------------
+Thu Jan 16 16:08:00 UTC 2014 - lnussel(a)suse.de
+
+- apply preset also to service files that are new in upgrade
+
+-------------------------------------------------------------------
+Wed Jan 15 14:11:02 UTC 2014 - werner(a)suse.de
+
+- Change support-powerfail-with-powerstatus.patch to use BindsTo
+ instead of BindTo
+
+-------------------------------------------------------------------
+Wed Jan 15 12:34:53 UTC 2014 - werner(a)suse.de
+
+- Add patch 1017-enforce-sufficient-shutdown-warnings.patch
+ Warn once per hour in the last 3 hours, then all 30 minutes in last
+ hour, all 15 minutes in the last 45 minutes, all 10 minutes in the
+ last 15 minutes, and then all minute in the last 10 minutes (bnc#750845)
+
+-------------------------------------------------------------------
+Tue Jan 14 18:28:09 UTC 2014 - werner(a)suse.de
+
+- Add patch support-powerfail-with-powerstatus.patch and source
+ file systemd-powerfail to implement SIGPWR support with evaluation
+ of the file /var/run/powerstatus (bnc#737690)
+
+-------------------------------------------------------------------
@@ -50,0 +153,13 @@
+
+-------------------------------------------------------------------
+Sat Nov 30 08:16:02 UTC 2013 - arvidjaar(a)gmail.com
+
+- Add patch
+ 0001-core-replace-OnFailureIsolate-setting-by-a-more-gene.patch
+ Make sure emergency shell is not killed by attempt to start another unit
+ (bnc#852021). Backported from d420282b28f50720e233ccb1c02547c562195653.
+- Add patch
+ make-emergency.service-conflict-with-syslog.socket.patch
+ Previous patch did not fix problem if syslog connection request came
+ after emergency shell was already started. So forcibly stop syslog.socket
+ when starting emergency.service. (bnc#852232)
New:
----
0001-add-hdflush-for-reboot-or-hddown-for-poweroff.patch
0001-core-introduce-new-KillMode-mixed-which-sends-SIGTER.patch
0001-core-replace-OnFailureIsolate-setting-by-a-more-gene.patch
0001-upstream-systemctl-halt-reboot-error-handling.patch
0002-service-allow-KillMode-mixed-in-conjunction-with-PAM.patch
0003-core-make-sure-to-always-go-through-both-SIGTERM-and.patch
1016-support-powerfail-with-powerstatus.patch
1017-skip-native-unit-handling-if-sysv-already-handled.patch
1018-Make-LSB-Skripts-know-about-Required-and-Should.patch
1019-make-completion-smart-to-be-able-to-redirect.patch
analyze-fix-crash-in-command-line-parsing.patch
make-emergency.service-conflict-with-syslog.socket.patch
systemd-powerfail
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ systemd-mini.spec ++++++
--- /var/tmp/diff_new_pack.qgcb4v/_old 2014-01-31 13:36:08.000000000 +0100
+++ /var/tmp/diff_new_pack.qgcb4v/_new 2014-01-31 13:36:08.000000000 +0100
@@ -1,7 +1,7 @@
#
# spec file for package systemd-mini
#
-# 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
@@ -23,6 +23,11 @@
%define udevpkgname udev-mini
%define udev_major 1
+%if 0%{?sles_version} == 0
+%global with_bash_completion 1
+%endif
+%bcond_with bash_completion
+
Name: systemd-mini
Url: http://www.freedesktop.org/wiki/Software/systemd
Version: 208
@@ -89,6 +94,9 @@
# the buildignore is important for bootstrapping
#!BuildIgnore: udev
Requires: %{udevpkgname} >= 172
+%if %{with bash_completion}
+Recommends: bash-completion
+%endif
Requires: dbus-1 >= 1.4.0
Requires: kbd
Requires: kmod >= 14
@@ -117,6 +125,7 @@
Source9: nss-myhostname-config
Source10: macros.systemd.upstream
Source11: after-local.service
+Source12: systemd-powerfail
Source1060: boot.udev
Source1061: write_dev_root_rule
@@ -246,6 +255,22 @@
Patch80: 0001-analyze-set-text-on-side-with-most-space.patch
# PATCH-FIX-UPSTREAM 0001-logind-garbage-collect-stale-users.patch -- Don't stop a running user manager from garbage-collecting the user.
Patch81: 0001-logind-garbage-collect-stale-users.patch
+# PATCH-FIX-UPSTREAM analyze-fix-crash-in-command-line-parsing.patch fcrozat(a)suse.com bnc#859365 -- Fix crash in systemd-analyze
+Patch82: analyze-fix-crash-in-command-line-parsing.patch
+# PATCH-FIX-UPSTREAM 0001-core-replace-OnFailureIsolate-setting-by-a-more-gene.patch -- Prevent accidental kill of emergency shell (bnc#852021)
+Patch83: 0001-core-replace-OnFailureIsolate-setting-by-a-more-gene.patch
+# PATCH-FIX-OPENSUSE make-emergency.service-conflict-with-syslog.socket.patch (bnc#852232)
+Patch84: make-emergency.service-conflict-with-syslog.socket.patch
+# PATCH-FIX-UPSTREAM 0001-upstream-systemctl-halt-reboot-error-handling.patch
+Patch85: 0001-upstream-systemctl-halt-reboot-error-handling.patch
+# PATCH-FIX-SUSE 0001-add-hdflush-for-reboot-or-hddown-for-poweroff.patch
+Patch86: 0001-add-hdflush-for-reboot-or-hddown-for-poweroff.patch
+# PATCH-FIX-UPSTREAM 0001-core-introduce-new-KillMode-mixed-which-sends-SIGTER.patch -- Allow sending SIGTERM to main PID only (bnc#841544)
+Patch87: 0001-core-introduce-new-KillMode-mixed-which-sends-SIGTER.patch
+# PATCH-FIX-UPSTREAM 0002-service-allow-KillMode-mixed-in-conjunction-with-PAM.patch -- Allow using it with PAM enabled services (bnc#841544)
+Patch88: 0002-service-allow-KillMode-mixed-in-conjunction-with-PAM.patch
+# PATCH-FIX-UPSTREAM 0003-core-make-sure-to-always-go-through-both-SIGTERM-and.patch -- Make sure final SIGKILL actually kills everything (bnc#841544)
+Patch89: 0003-core-make-sure-to-always-go-through-both-SIGTERM-and.patch
# udev patches
# PATCH-FIX-OPENSUSE 1001-re-enable-by_path-links-for-ata-devices.patch
@@ -276,6 +301,14 @@
Patch1014: 1014-journald-with-journaling-FS.patch
# PATCH-FIX-UPSTREAM build-sys-make-multi-seat-x-optional.patch
Patch1015: build-sys-make-multi-seat-x-optional.patch
+# PATCH-FIX-SUSE 1016-support-powerfail-with-powerstatus.patch
+Patch1016: 1016-support-powerfail-with-powerstatus.patch
+# PATCH-FIX-UPSTREAM 1017-skip-native-unit-handling-if-sysv-already-handled.patch
+Patch1017: 1017-skip-native-unit-handling-if-sysv-already-handled.patch
+# PATCH-FIX-SUSE 1018-Make-LSB-Skripts-know-about-Required-and-Should.patch
+Patch1018: 1018-Make-LSB-Skripts-know-about-Required-and-Should.patch
+# PATCH-FIX-SUSE 1019-make-completion-smart-to-be-able-to-redirect.patch
+Patch1019: 1019-make-completion-smart-to-be-able-to-redirect.patch
%description
Systemd is a system and service manager, compatible with SysV and LSB
@@ -539,6 +572,14 @@
%patch79 -p1
%patch80 -p1
%patch81 -p1
+%patch82 -p1
+%patch83 -p1
+%patch84 -p1
+%patch85 -p1
+%patch86 -p1
+%patch87 -p1
+%patch88 -p1
+%patch89 -p1
# udev patches
%patch1001 -p1
@@ -558,6 +599,10 @@
%patch1013 -p1
%patch1014 -p1
%patch1015 -p1
+%patch1016 -p1
+%patch1017 -p1
+%patch1018 -p1
+%patch1019 -p1
# ensure generate files are removed
rm -f units/emergency.service
@@ -735,6 +780,23 @@
install -m 644 %{S:11} %{buildroot}/%{_prefix}/lib/systemd/system/
ln -s ../after-local.service %{buildroot}/%{_prefix}/lib/systemd/system/multi-user.target.wants/
+# support for SIGPWR handling with /var/run/powerstatus of e.g. powerd
+install -m 755 %{S:12} %{buildroot}/%{_prefix}/lib/systemd/
+install -m 644 units/powerfail.service %{buildroot}/%{_prefix}/lib/systemd/system/
+%if ! 0%{?bootstrap}
+install -m 644 man/systemd-powerfail.service.8 %{buildroot}/%{_mandir}/man8/
+%endif
+
+# clean out some completions which requires bash-completion package
+%if %{without bash_completion}
+for c in %{buildroot}/%{_datadir}/bash-completion/completions/*
+do
+ test -e "$c" || continue
+ grep -q _init_completion "$c" || continue
+ rm -vf "$c"
+done
+%endif
+
%fdupes -s %{buildroot}%{_mandir}
# packaged in systemd-rpm-macros
++++++ systemd-rpm-macros.spec ++++++
--- /var/tmp/diff_new_pack.qgcb4v/_old 2014-01-31 13:36:08.000000000 +0100
+++ /var/tmp/diff_new_pack.qgcb4v/_new 2014-01-31 13:36:08.000000000 +0100
@@ -1,7 +1,7 @@
#
# spec file for package systemd-rpm-macros
#
-# 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
++++++ systemd.spec ++++++
--- /var/tmp/diff_new_pack.qgcb4v/_old 2014-01-31 13:36:08.000000000 +0100
+++ /var/tmp/diff_new_pack.qgcb4v/_new 2014-01-31 13:36:08.000000000 +0100
@@ -1,7 +1,7 @@
#
# spec file for package systemd
#
-# 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
@@ -21,6 +21,11 @@
%define udevpkgname udev
%define udev_major 1
+%if 0%{?sles_version} == 0
+%global with_bash_completion 1
+%endif
+%bcond_with bash_completion
+
Name: systemd
Url: http://www.freedesktop.org/wiki/Software/systemd
Version: 208
@@ -84,6 +89,9 @@
# the buildignore is important for bootstrapping
#!BuildIgnore: udev
Requires: %{udevpkgname} >= 172
+%if %{with bash_completion}
+Recommends: bash-completion
+%endif
Requires: dbus-1 >= 1.4.0
Requires: kbd
Requires: kmod >= 14
@@ -112,6 +120,7 @@
Source9: nss-myhostname-config
Source10: macros.systemd.upstream
Source11: after-local.service
+Source12: systemd-powerfail
Source1060: boot.udev
Source1061: write_dev_root_rule
@@ -241,6 +250,22 @@
Patch80: 0001-analyze-set-text-on-side-with-most-space.patch
# PATCH-FIX-UPSTREAM 0001-logind-garbage-collect-stale-users.patch -- Don't stop a running user manager from garbage-collecting the user.
Patch81: 0001-logind-garbage-collect-stale-users.patch
+# PATCH-FIX-UPSTREAM analyze-fix-crash-in-command-line-parsing.patch fcrozat(a)suse.com bnc#859365 -- Fix crash in systemd-analyze
+Patch82: analyze-fix-crash-in-command-line-parsing.patch
+# PATCH-FIX-UPSTREAM 0001-core-replace-OnFailureIsolate-setting-by-a-more-gene.patch -- Prevent accidental kill of emergency shell (bnc#852021)
+Patch83: 0001-core-replace-OnFailureIsolate-setting-by-a-more-gene.patch
+# PATCH-FIX-OPENSUSE make-emergency.service-conflict-with-syslog.socket.patch (bnc#852232)
+Patch84: make-emergency.service-conflict-with-syslog.socket.patch
+# PATCH-FIX-UPSTREAM 0001-upstream-systemctl-halt-reboot-error-handling.patch
+Patch85: 0001-upstream-systemctl-halt-reboot-error-handling.patch
+# PATCH-FIX-SUSE 0001-add-hdflush-for-reboot-or-hddown-for-poweroff.patch
+Patch86: 0001-add-hdflush-for-reboot-or-hddown-for-poweroff.patch
+# PATCH-FIX-UPSTREAM 0001-core-introduce-new-KillMode-mixed-which-sends-SIGTER.patch -- Allow sending SIGTERM to main PID only (bnc#841544)
+Patch87: 0001-core-introduce-new-KillMode-mixed-which-sends-SIGTER.patch
+# PATCH-FIX-UPSTREAM 0002-service-allow-KillMode-mixed-in-conjunction-with-PAM.patch -- Allow using it with PAM enabled services (bnc#841544)
+Patch88: 0002-service-allow-KillMode-mixed-in-conjunction-with-PAM.patch
+# PATCH-FIX-UPSTREAM 0003-core-make-sure-to-always-go-through-both-SIGTERM-and.patch -- Make sure final SIGKILL actually kills everything (bnc#841544)
+Patch89: 0003-core-make-sure-to-always-go-through-both-SIGTERM-and.patch
# udev patches
# PATCH-FIX-OPENSUSE 1001-re-enable-by_path-links-for-ata-devices.patch
@@ -271,6 +296,14 @@
Patch1014: 1014-journald-with-journaling-FS.patch
# PATCH-FIX-UPSTREAM build-sys-make-multi-seat-x-optional.patch
Patch1015: build-sys-make-multi-seat-x-optional.patch
+# PATCH-FIX-SUSE 1016-support-powerfail-with-powerstatus.patch
+Patch1016: 1016-support-powerfail-with-powerstatus.patch
+# PATCH-FIX-UPSTREAM 1017-skip-native-unit-handling-if-sysv-already-handled.patch
+Patch1017: 1017-skip-native-unit-handling-if-sysv-already-handled.patch
+# PATCH-FIX-SUSE 1018-Make-LSB-Skripts-know-about-Required-and-Should.patch
+Patch1018: 1018-Make-LSB-Skripts-know-about-Required-and-Should.patch
+# PATCH-FIX-SUSE 1019-make-completion-smart-to-be-able-to-redirect.patch
+Patch1019: 1019-make-completion-smart-to-be-able-to-redirect.patch
%description
Systemd is a system and service manager, compatible with SysV and LSB
@@ -534,6 +567,14 @@
%patch79 -p1
%patch80 -p1
%patch81 -p1
+%patch82 -p1
+%patch83 -p1
+%patch84 -p1
+%patch85 -p1
+%patch86 -p1
+%patch87 -p1
+%patch88 -p1
+%patch89 -p1
# udev patches
%patch1001 -p1
@@ -553,6 +594,10 @@
%patch1013 -p1
%patch1014 -p1
%patch1015 -p1
+%patch1016 -p1
+%patch1017 -p1
+%patch1018 -p1
+%patch1019 -p1
# ensure generate files are removed
rm -f units/emergency.service
@@ -730,6 +775,23 @@
install -m 644 %{S:11} %{buildroot}/%{_prefix}/lib/systemd/system/
ln -s ../after-local.service %{buildroot}/%{_prefix}/lib/systemd/system/multi-user.target.wants/
+# support for SIGPWR handling with /var/run/powerstatus of e.g. powerd
+install -m 755 %{S:12} %{buildroot}/%{_prefix}/lib/systemd/
+install -m 644 units/powerfail.service %{buildroot}/%{_prefix}/lib/systemd/system/
+%if ! 0%{?bootstrap}
+install -m 644 man/systemd-powerfail.service.8 %{buildroot}/%{_mandir}/man8/
+%endif
+
+# clean out some completions which requires bash-completion package
+%if %{without bash_completion}
+for c in %{buildroot}/%{_datadir}/bash-completion/completions/*
+do
+ test -e "$c" || continue
+ grep -q _init_completion "$c" || continue
+ rm -vf "$c"
+done
+%endif
+
%fdupes -s %{buildroot}%{_mandir}
# packaged in systemd-rpm-macros
++++++ 0001-add-hdflush-for-reboot-or-hddown-for-poweroff.patch ++++++
This seems to be a SUSE specific patch. Here we add the check for unmaintained
disk like devices to be able to flush and maybe shut them down. Also we add the
missing sync() system call for the direct halt/reboot systemctl command. Then we
use the system halt as gfallback if poweroff fails for both the direct poweroff
systemctl command as well as for the systemd-shutdown utility.
---
Makefile.am | 2
Makefile.in | 7
src/core/shutdown.c | 8 -
src/shared/hdflush.c | 365 ++++++++++++++++++++++++++++++++++++++++++++++
src/shared/hdflush.h | 25 +++
src/systemctl/systemctl.c | 17 +-
6 files changed, 416 insertions(+), 8 deletions(-)
--- systemd-208/Makefile.am
+++ systemd-208/Makefile.am 2014-01-28 11:06:55.638238060 +0000
@@ -680,6 +680,8 @@ libsystemd_shared_la_SOURCES = \
src/shared/strbuf.h \
src/shared/strxcpyx.c \
src/shared/strxcpyx.h \
+ src/shared/hdflush.c \
+ src/shared/hdflush.h \
src/shared/conf-parser.c \
src/shared/conf-parser.h \
src/shared/log.c \
--- systemd-208/Makefile.in
+++ systemd-208/Makefile.in 2014-01-28 11:06:33.942246196 +0000
@@ -1509,7 +1509,7 @@ am_libsystemd_shared_la_OBJECTS = src/sh
src/shared/hashmap.lo src/shared/set.lo src/shared/fdset.lo \
src/shared/prioq.lo src/shared/sleep-config.lo \
src/shared/strv.lo src/shared/env-util.lo src/shared/strbuf.lo \
- src/shared/strxcpyx.lo src/shared/conf-parser.lo \
+ src/shared/strxcpyx.lo src/shared/hdflush.lo src/shared/conf-parser.lo \
src/shared/log.lo src/shared/ratelimit.lo \
src/shared/exit-status.lo src/shared/utf8.lo \
src/shared/pager.lo src/shared/socket-util.lo \
@@ -4137,6 +4137,8 @@ libsystemd_shared_la_SOURCES = \
src/shared/strbuf.h \
src/shared/strxcpyx.c \
src/shared/strxcpyx.h \
+ src/shared/hdflush.c \
+ src/shared/hdflush.h \
src/shared/conf-parser.c \
src/shared/conf-parser.h \
src/shared/log.c \
@@ -7073,6 +7075,8 @@ src/shared/strbuf.lo: src/shared/$(am__d
src/shared/$(DEPDIR)/$(am__dirstamp)
src/shared/strxcpyx.lo: src/shared/$(am__dirstamp) \
src/shared/$(DEPDIR)/$(am__dirstamp)
+src/shared/hdflush.lo: src/shared/$(am__dirstamp) \
+ src/shared/$(DEPDIR)/$(am__dirstamp)
src/shared/conf-parser.lo: src/shared/$(am__dirstamp) \
src/shared/$(DEPDIR)/$(am__dirstamp)
src/shared/log.lo: src/shared/$(am__dirstamp) \
@@ -9236,6 +9240,7 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@src/shared/$(DEPDIR)/strbuf.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@src/shared/$(DEPDIR)/strv.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@src/shared/$(DEPDIR)/strxcpyx.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@src/shared/$(DEPDIR)/hdflush.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@src/shared/$(DEPDIR)/time-dst.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@src/shared/$(DEPDIR)/time-util.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@src/shared/$(DEPDIR)/unit-name.Plo@am__quote@
--- systemd-208/src/shared/hdflush.c
+++ systemd-208/src/shared/hdflush.c 2014-01-28 10:58:56.490735704 +0000
@@ -0,0 +1,365 @@
+/*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: nil -*-*/
+
+/***
+ This file is part of systemd.
+
+ Copyright 2014 Werner Fink
+
+ systemd 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.
+
+ systemd 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 systemd; If not, see <http://www.gnu.org/licenses/>.
+***/
+
+/*
+ * Find all disks on the system, list out IDE, unmanaged ATA disks, and
+ * USB sticks flush the cache of those and optional shut them down.
+ */
+
+#include <libudev.h>
+#include <limits.h>
+#ifdef LIST_DEBUG
+# include <stdio.h>
+#endif
+#include <stdlib.h>
+#include <string.h>
+#include <unistd.h>
+
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <fcntl.h>
+#include <errno.h>
+
+#include <sys/ioctl.h>
+#include <linux/hdreg.h>
+#include <linux/fs.h>
+#ifdef WORDS_BIGENDIAN
+# include <byteswap.h>
+#endif
+
+/* Used in flush_cache_ext(), compare with <linux/hdreg.h> */
+#define IDBYTES 512
+#define MASK_EXT 0xE000 /* Bit 15 shall be zero, bit 14 shall be one, bit 13 flush cache ext */
+#define TEST_EXT 0x6000
+
+/* Maybe set in list_disks() and used in do_standby_disk() */
+#define DISK_IS_IDE 0x00000001
+#define DISK_IS_SATA 0x00000002
+#define DISK_EXTFLUSH 0x00000004
+#define DISK_REMOVABLE 0x00000008
+#define DISK_MANAGED 0x00000010
+#define DISK_FLUSHONLY 0x00000020
+
+struct sysfs {
+ struct udev *udev;
+ struct udev_enumerate *num;
+ struct udev_list_entry *item;
+ char *devnode;
+ size_t size;
+};
+
+static int flush_cache_ext(const struct sysfs *sysfs);
+
+static struct sysfs * open_sysfs(void)
+{
+ static struct sysfs sysfs;
+ sysfs.udev = udev_new();
+ if (!sysfs.udev)
+ goto err;
+ sysfs.num = udev_enumerate_new(sysfs.udev);
+ if (!sysfs.num)
+ goto err;
+ if (udev_enumerate_add_match_subsystem(sysfs.num, "block") < 0)
+ goto err;
+ if (udev_enumerate_add_match_sysname(sysfs.num, "sd?") < 0)
+ goto err;
+ if (udev_enumerate_add_match_sysname(sysfs.num, "hd?") < 0)
+ goto err;
+ if (udev_enumerate_scan_devices(sysfs.num) < 0)
+ goto err;
+ sysfs.item = udev_enumerate_get_list_entry(sysfs.num);
+ sysfs.devnode = NULL;
+ sysfs.size = 0;
+ return &sysfs;
+err:
+ if (sysfs.num)
+ udev_unref(sysfs.udev);
+ if (sysfs.udev)
+ udev_unref(sysfs.udev);
+ return NULL;
+}
+
+static void close_sysfs(struct sysfs *sysfs)
+{
+ if (sysfs->num)
+ udev_enumerate_unref(sysfs->num);
+ if (sysfs->udev)
+ udev_unref(sysfs->udev);
+ if (sysfs->devnode)
+ free(sysfs->devnode);
+ sysfs->devnode = NULL;
+}
+
+
+static char *list_disks(struct sysfs *sysfs, unsigned int* flags)
+{
+ struct udev_device *device, *parent;
+ struct udev_list_entry *item;
+ const char *devnode;
+ char path[PATH_MAX];
+
+ device = NULL;
+next:
+ if (device)
+ udev_device_unref(device);
+ if (sysfs->devnode)
+ free(sysfs->devnode);
+ sysfs->devnode = NULL;
+ sysfs->size = 0;
+ *flags = 0;
+
+ if (!sysfs->item)
+ goto empty;
+ item = sysfs->item;
+ sysfs->item = udev_list_entry_get_next(sysfs->item);
+
+ if (!(device = udev_device_new_from_syspath(sysfs->udev, udev_list_entry_get_name(item))))
+ goto out;
+ if (!(devnode = udev_device_get_devnode(device)))
+ goto out;
+ if (!(sysfs->devnode = strdup(devnode)))
+ goto out;
+
+ path[0] = '\0';
+ parent = udev_device_get_parent(device);
+ if (parent) {
+ const char *sysname, *devpath;
+ struct udev_device *disk;
+ const char *value;
+ int ret;
+
+ sysname = udev_device_get_sysname(parent);
+ devpath = udev_device_get_devpath(parent);
+
+ strcpy(path, "/sys");
+ strcat(path, devpath);
+ strcat(path, "/scsi_disk/");
+ strcat(path, sysname);
+
+ disk = udev_device_new_from_syspath(sysfs->udev, path);
+ if (disk) {
+ value = udev_device_get_sysattr_value(disk, "manage_start_stop");
+ udev_device_unref(disk);
+
+ if (value && *value != '0') {
+ *flags = DISK_MANAGED;
+#ifndef LIST_DEBUG
+ goto next; /* Device managed by the kernel */
+#endif
+ }
+ }
+
+ value = udev_device_get_sysattr_value(device, "size");
+ if (value && *value)
+ sysfs->size = (size_t)atoll(value);
+
+ value = udev_device_get_sysattr_value(device, "removable");
+ if (value && *value != '0') {
+ *flags |= DISK_REMOVABLE;
+
+ if ((ret = flush_cache_ext(sysfs))) {
+ if (ret < 0)
+ goto next;
+ *flags |= DISK_EXTFLUSH;
+ }
+ goto out; /* Removable disk like USB stick */
+ }
+
+ value = udev_device_get_sysname(device);
+ if (value && *value == 'h') {
+ *flags |= DISK_IS_IDE;
+
+ if ((ret = flush_cache_ext(sysfs))) {
+ if (ret < 0)
+ goto next;
+ *flags |= DISK_EXTFLUSH;
+ }
+ goto out; /* IDE disk found */
+ }
+
+ value = udev_device_get_sysattr_value(parent, "vendor");
+ if (value && strncmp(value, "ATA", 3) == 0) {
+ *flags |= (DISK_IS_IDE|DISK_IS_SATA);
+
+ if ((ret = flush_cache_ext(sysfs))) {
+ if (ret < 0)
+ goto next;
+ *flags |= DISK_EXTFLUSH;
+ }
+ goto out; /* SATA disk to shutdown */
+ }
+ goto next;
+ }
+out:
+ udev_device_unref(device);
+empty:
+ return sysfs->devnode;
+}
+#ifndef LIST_DEBUG
+/*
+ * Check IDE/(S)ATA hard disk identity for
+ * the FLUSH CACHE EXT bit set.
+ */
+static int flush_cache_ext(const struct sysfs *sysfs)
+{
+#ifndef WIN_IDENTIFY
+#define WIN_IDENTIFY 0xEC
+#endif
+ unsigned char args[4+IDBYTES];
+ unsigned short *id = (unsigned short*)(&args[4]);
+ int fd = -1, ret = 0;
+
+ if (sysfs->size < (1<<28))
+ goto out; /* small disk */
+
+ if ((fd = open(sysfs->devnode, O_RDONLY|O_NONBLOCK|O_CLOEXEC)) < 0)
+ goto out;
+
+ memset(&args[0], 0, sizeof(args));
+ args[0] = WIN_IDENTIFY;
+ args[3] = 1;
+ if (ioctl(fd, HDIO_DRIVE_CMD, &args))
+ goto out;
+#ifdef WORDS_BIGENDIAN
+# if 0
+ {
+ const unsigned short *end = id + IDBYTES/2;
+ const unsigned short *from = id;
+ unsigned short *to = id;
+
+ while (from < end)
+ *to++ = bswap_16(*from++);
+ }
+# else
+ id[83] = bswap_16(id[83]);
+# endif
+#endif
+ if ((id[83] & MASK_EXT) == TEST_EXT)
+ ret = 1;
+out:
+ if (fd >= 0)
+ close(fd);
+ return ret;
+}
+
+/*
+ * Put an IDE/SCSI/SATA disk in standby mode.
+ * Code stolen from hdparm.c
+ */
+static int do_standby_disk(struct sysfs *sysfs, unsigned int flags)
+{
+#ifndef WIN_STANDBYNOW1
+#define WIN_STANDBYNOW1 0xE0
+#endif
+#ifndef WIN_STANDBYNOW2
+#define WIN_STANDBYNOW2 0x94
+#endif
+#ifndef WIN_FLUSH_CACHE_EXT
+#define WIN_FLUSH_CACHE_EXT 0xEA
+#endif
+#ifndef WIN_FLUSH_CACHE
+#define WIN_FLUSH_CACHE 0xE7
+#endif
+ unsigned char flush1[4] = {WIN_FLUSH_CACHE_EXT,0,0,0};
+ unsigned char flush2[4] = {WIN_FLUSH_CACHE,0,0,0};
+ unsigned char stdby1[4] = {WIN_STANDBYNOW1,0,0,0};
+ unsigned char stdby2[4] = {WIN_STANDBYNOW2,0,0,0};
+ int fd, ret;
+
+ if ((fd = open(sysfs->devnode, O_RDWR|O_NONBLOCK|O_CLOEXEC)) < 0)
+ return -1;
+
+ switch (flags & DISK_EXTFLUSH) {
+ case DISK_EXTFLUSH:
+ if ((ret = ioctl(fd, HDIO_DRIVE_CMD, &flush1)) == 0)
+ break;
+ /* Extend flush rejected, try standard flush */
+ default:
+ ret = ioctl(fd, HDIO_DRIVE_CMD, &flush2) &&
+ ioctl(fd, BLKFLSBUF);
+ break;
+ }
+
+ if ((flags & DISK_FLUSHONLY) == 0x0) {
+ ret = ioctl(fd, HDIO_DRIVE_CMD, &stdby1) &&
+ ioctl(fd, HDIO_DRIVE_CMD, &stdby2);
+ }
+
+ close(fd);
+
+ if (ret)
+ return -1;
+ return 0;
+}
+#endif
+#ifdef LIST_DEBUG
+int main()
+{
+ char *disk;
+ unsigned int flags;
+ struct sysfs *sysfs = open_sysfs();
+ if (!sysfs)
+ goto err;
+ while ((disk = list_disks(sysfs, &flags)))
+ fprintf(stdout, "%s\n", sysfs->devnode);
+ close_sysfs(sysfs);
+err:
+ return 0;
+}
+#else
+/*
+ * List all disks and put them in standby mode.
+ * This has the side-effect of flushing the writecache,
+ * which is exactly what we want on poweroff.
+ */
+void hddown(void)
+{
+ struct sysfs *sysfs;
+ unsigned int flags;
+ char *disk;
+
+ if (!(sysfs = open_sysfs()))
+ return;
+
+ while ((disk = list_disks(sysfs, &flags)))
+ do_standby_disk(sysfs, flags);
+
+ close_sysfs(sysfs);
+}
+
+/*
+ * List all disks and cause them to flush their buffers.
+ */
+void hdflush(void)
+{
+ struct sysfs *sysfs;
+ unsigned int flags;
+ char *disk;
+
+ if (!(sysfs = open_sysfs()))
+ return;
+
+ while ((disk = list_disks(sysfs, &flags)))
+ do_standby_disk(sysfs, (flags|DISK_FLUSHONLY));
+
+ close_sysfs(sysfs);
+}
+#endif
--- systemd-208/src/shared/hdflush.h
+++ systemd-208/src/shared/hdflush.h 2014-01-28 11:00:08.286235696 +0000
@@ -0,0 +1,25 @@
+/*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: nil -*-*/
+
+#pragma once
+
+/***
+ This file is part of systemd.
+
+ Copyright 2014 Werner Fink
+
+ systemd 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.
+
+ systemd 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 systemd; If not, see <http://www.gnu.org/licenses/>.
+***/
+
+void hdflush(void);
+void hddown(void);
--- systemd-208/src/core/shutdown.c
+++ systemd-208/src/core/shutdown.c 2014-01-28 11:14:15.722235591 +0000
@@ -40,6 +40,7 @@
#include "missing.h"
#include "log.h"
#include "fileio.h"
+#include "hdflush.h"
#include "umount.h"
#include "util.h"
#include "mkdir.h"
@@ -302,8 +303,13 @@ int main(int argc, char *argv[]) {
* on reboot(), but the file systems need to be synce'd
* explicitly in advance. So let's do this here, but not
* needlessly slow down containers. */
- if (!in_container)
+ if (!in_container) {
sync();
+ if (cmd == RB_POWER_OFF || cmd == RB_HALT_SYSTEM)
+ hddown();
+ else
+ hdflush();
+ }
if (cmd == LINUX_REBOOT_CMD_KEXEC) {
--- systemd-208/src/systemctl/systemctl.c
+++ systemd-208/src/systemctl/systemctl.c 2014-01-28 11:31:27.150735613 +0000
@@ -87,6 +87,7 @@ static bool arg_no_pager = false;
static bool arg_no_wtmp = false;
static bool arg_no_wall = false;
static bool arg_no_reload = false;
+static bool arg_no_sync = false;
static bool arg_show_types = false;
static bool arg_ignore_inhibitors = false;
static bool arg_dry = false;
@@ -5272,6 +5273,7 @@ static int halt_parse_argv(int argc, cha
{ "reboot", no_argument, NULL, ARG_REBOOT },
{ "force", no_argument, NULL, 'f' },
{ "wtmp-only", no_argument, NULL, 'w' },
+ { "no-sync", no_argument, NULL, 'n' },
{ "no-wtmp", no_argument, NULL, 'd' },
{ "no-wall", no_argument, NULL, ARG_NO_WALL },
{ NULL, 0, NULL, 0 }
@@ -5324,10 +5326,13 @@ static int halt_parse_argv(int argc, cha
case 'i':
case 'h':
- case 'n':
/* Compatibility nops */
break;
+ case 'n':
+ arg_no_sync = true;
+ break;
+
case '?':
return -EINVAL;
@@ -5981,14 +5986,14 @@ static int halt_now(enum action a) {
switch (a) {
- case ACTION_HALT:
- log_info("Halting.");
- reboot(RB_HALT_SYSTEM);
- return -errno;
-
case ACTION_POWEROFF:
log_info("Powering off.");
reboot(RB_POWER_OFF);
+ /* Fall through */
+
+ case ACTION_HALT:
+ log_info("Halting.");
+ reboot(RB_HALT_SYSTEM);
return -errno;
case ACTION_REBOOT:
++++++ 0001-core-introduce-new-KillMode-mixed-which-sends-SIGTER.patch ++++++
>From 6fa7e1a944a2dbb89e794ad0f9da5d0fda5dc4a9 Mon Sep 17 00:00:00 2001
From: Lennart Poettering <lennart(a)poettering.net>
Date: Wed, 29 Jan 2014 13:38:55 +0100
Subject: [PATCH 1/3] core: introduce new KillMode=mixed which sends SIGTERM
only to the main process, but SIGKILL to all daemon processes
This should fix some race with terminating systemd --user, where the
system systemd instance might race against the user systemd instance
when sending SIGTERM.
---
man/systemd.kill.xml | 77 +++++++++++++++++++++++++++++++++-----------------
src/core/kill.c | 1 +
src/core/kill.h | 1 +
src/core/unit.c | 3 +-
units/user@.service.in | 1 +
5 files changed, 56 insertions(+), 27 deletions(-)
diff --git a/man/systemd.kill.xml b/man/systemd.kill.xml
index 1b10fba..a4009aa 100644
--- a/man/systemd.kill.xml
+++ b/man/systemd.kill.xml
@@ -44,39 +44,44 @@
<refnamediv>
<refname>systemd.kill</refname>
- <refpurpose>Kill environment configuration</refpurpose>
+ <refpurpose>Process killing procedure
+ configuration</refpurpose>
</refnamediv>
<refsynopsisdiv>
<para><filename><replaceable>service</replaceable>.service</filename>,
<filename><replaceable>socket</replaceable>.socket</filename>,
<filename><replaceable>mount</replaceable>.mount</filename>,
- <filename><replaceable>swap</replaceable>.swap</filename></para>
+ <filename><replaceable>swap</replaceable>.swap</filename>,
+ <filename><replaceable>scope</replaceable>.scope</filename></para>
</refsynopsisdiv>
<refsect1>
<title>Description</title>
<para>Unit configuration files for services, sockets,
- mount points and swap devices share a subset of
- configuration options which define the process killing
- parameters of spawned processes.</para>
+ mount points, swap devices and scopes share a subset
+ of configuration options which define the
+ killing procedure of processes belonging to the unit.</para>
<para>This man page lists the configuration options
- shared by these four unit types. See
+ shared by these five unit types. See
<citerefentry><refentrytitle>systemd.unit</refentrytitle><manvolnum>5</manvolnum></citerefentry>
- for the common options of all unit configuration
- files, and
+ for the common options shared by all unit
+ configuration files, and
<citerefentry><refentrytitle>systemd.service</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd.socket</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
- <citerefentry><refentrytitle>systemd.swap</refentrytitle><manvolnum>5</manvolnum></citerefentry>
- and
+ <citerefentry><refentrytitle>systemd.swap</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd.mount</refentrytitle><manvolnum>5</manvolnum></citerefentry>
- for more information on the specific unit
- configuration files. The execution specific
+ and
+ <citerefentry><refentrytitle>systemd.scope</refentrytitle><manvolnum>5</manvolnum></citerefentry>
+ for more information on the configuration file options
+ specific to each unit type.</para>
+
+ <para>The kill procedure
configuration options are configured in the [Service],
- [Socket], [Mount], or [Swap] section, depending on the unit
- type.</para>
+ [Socket], [Mount] or [Swap] section, depending on the
+ unit type.</para>
</refsect1>
<refsect1>
@@ -87,32 +92,40 @@
<varlistentry>
<term><varname>KillMode=</varname></term>
<listitem><para>Specifies how
- processes of this service shall be
+ processes of this unit shall be
killed. One of
<option>control-group</option>,
<option>process</option>,
+ <option>mixed</option>,
<option>none</option>.</para>
<para>If set to
<option>control-group</option>, all
remaining processes in the control
- group of this unit will be terminated
- on unit stop (for services: after the
+ group of this unit will be killed on
+ unit stop (for services: after the
stop command is executed, as
configured with
<varname>ExecStop=</varname>). If set
to <option>process</option>, only the
main process itself is killed. If set
- to <option>none</option>, no process is
+ to <option>mixed</option> the
+ <constant>SIGTERM</constant> signal
+ (see below) is sent to the main
+ process while the subsequent
+ <constant>SIGKILL</constant> signal
+ (see below) is sent to all remaining
+ processes of the unit's control
+ group. If set to
+ <option>none</option>, no process is
killed. In this case only the stop
- command will be executed on unit
- stop, but no process be killed
+ command will be executed on unit stop,
+ but no process be killed
otherwise. Processes remaining alive
after stop are left in their control
group and the control group continues
to exist after stop unless it is
- empty. Defaults to
- <option>control-group</option>.</para>
+ empty.</para>
<para>Processes will first be
terminated via
@@ -133,14 +146,24 @@
option). See
<citerefentry><refentrytitle>kill</refentrytitle><manvolnum>2</manvolnum></citerefentry>
for more
- information.</para></listitem>
+ information.</para>
+
+ <para>Defaults to
+ <option>control-group</option>.</para></listitem>
</varlistentry>
<varlistentry>
<term><varname>KillSignal=</varname></term>
<listitem><para>Specifies which signal
- to use when killing a
- service. Defaults to <constant>SIGTERM</constant>.
+ to use when killing a service. This
+ controls the signal that is sent as
+ first step of shutting down a unit
+ (see above), and is usually followed
+ by <constant>SIGKILL</constant> (see
+ above and below). For a list of valid
+ signals, see
+ <citerefentry><refentrytitle>signal</refentrytitle><manvolnum>7</manvolnum></citerefentry>. Defaults
+ to <constant>SIGTERM</constant>.
</para></listitem>
</varlistentry>
@@ -184,7 +207,9 @@
<citerefentry><refentrytitle>systemd.swap</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd.mount</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd.exec</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
- <citerefentry><refentrytitle>systemd.directives</refentrytitle><manvolnum>7</manvolnum></citerefentry>
+ <citerefentry><refentrytitle>systemd.directives</refentrytitle><manvolnum>7</manvolnum></citerefentry>,
+ <citerefentry><refentrytitle>kill</refentrytitle><manvolnum>2</manvolnum></citerefentry>,
+ <citerefentry><refentrytitle>signal</refentrytitle><manvolnum>7</manvolnum></citerefentry>
</para>
</refsect1>
diff --git a/src/core/kill.c b/src/core/kill.c
index ea947c2..4271346 100644
--- a/src/core/kill.c
+++ b/src/core/kill.c
@@ -52,6 +52,7 @@ void kill_context_dump(KillContext *c, FILE *f, const char *prefix) {
static const char* const kill_mode_table[_KILL_MODE_MAX] = {
[KILL_CONTROL_GROUP] = "control-group",
[KILL_PROCESS] = "process",
+ [KILL_MIXED] = "mixed",
[KILL_NONE] = "none"
};
diff --git a/src/core/kill.h b/src/core/kill.h
index 41773f0..d5f125f 100644
--- a/src/core/kill.h
+++ b/src/core/kill.h
@@ -32,6 +32,7 @@ typedef enum KillMode {
/* The kill mode is a property of a unit. */
KILL_CONTROL_GROUP = 0,
KILL_PROCESS,
+ KILL_MIXED,
KILL_NONE,
_KILL_MODE_MAX,
_KILL_MODE_INVALID = -1
diff --git a/src/core/unit.c b/src/core/unit.c
index 4b97710..0b10e57 100644
--- a/src/core/unit.c
+++ b/src/core/unit.c
@@ -3007,7 +3007,7 @@ int unit_kill_context(
}
}
- if (c->kill_mode == KILL_CONTROL_GROUP && u->cgroup_path) {
+ if ((c->kill_mode == KILL_CONTROL_GROUP || (c->kill_mode == KILL_MIXED && sigkill)) && u->cgroup_path) {
_cleanup_set_free_ Set *pid_set = NULL;
/* Exclude the main/control pids from being killed via the cgroup */
@@ -3021,6 +3021,7 @@ int unit_kill_context(
log_warning_unit(u->id, "Failed to kill control group: %s", strerror(-r));
} else if (r > 0) {
wait_for_exit = true;
+
if (c->send_sighup) {
set_free(pid_set);
diff --git a/units/user@.service.in b/units/user@.service.in
index 3718a57..3bb8696 100644
--- a/units/user@.service.in
+++ b/units/user@.service.in
@@ -17,3 +17,4 @@ Environment=SHELL=%s
ExecStart=-@rootlibexecdir@/systemd --user
Environment=DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/%I/dbus/user_bus_socket
Slice=user-%i.slice
+KillMode=mixed
--
1.8.4
++++++ 0001-core-replace-OnFailureIsolate-setting-by-a-more-gene.patch ++++++
>From d420282b28f50720e233ccb1c02547c562195653 Mon Sep 17 00:00:00 2001
From: Lennart Poettering <lennart(a)poettering.net>
Date: Tue, 26 Nov 2013 01:39:53 +0100
Subject: [PATCH] core: replace OnFailureIsolate= setting by a more generic
OnFailureJobMode= setting and make use of it where applicable
---
man/systemd.unit.xml | 40 +++++++++++++++++++++++++----------
src/core/dbus-unit.c | 3 ++-
src/core/job.h | 3 +--
src/core/load-fragment-gperf.gperf.m4 | 3 ++-
src/core/load-fragment.c | 31 +++++++++++++++++++++++++++
src/core/load-fragment.h | 2 ++
src/core/unit.c | 11 +++++-----
src/core/unit.h | 4 ++--
units/initrd-cleanup.service.in | 1 +
units/initrd-fs.target | 2 +-
units/initrd-parse-etc.service.in | 1 +
units/initrd-root-fs.target | 2 +-
units/initrd-switch-root.service.in | 1 +
units/initrd.target | 2 +-
units/local-fs.target | 2 +-
15 files changed, 82 insertions(+), 26 deletions(-)
Index: systemd-208/man/systemd.unit.xml
===================================================================
--- systemd-208.orig/man/systemd.unit.xml
+++ systemd-208/man/systemd.unit.xml
@@ -669,19 +669,37 @@
</varlistentry>
<varlistentry>
- <term><varname>OnFailureIsolate=</varname></term>
+ <term><varname>OnFailureJobMode=</varname></term>
- <listitem><para>Takes a boolean
- argument. If <option>true</option>, the
- unit listed in
+ <listitem><para>Takes a value of
+ <literal>fail</literal>,
+ <literal>replace</literal>,
+ <literal>replace-irreversibly</literal>
+ or
+ <literal>isolate</literal>. Defaults
+ to
+ <literal>replace</literal>. Specifies
+ how the units listed in
<varname>OnFailure=</varname> will be
- enqueued in isolation mode, i.e. all
- units that are not its dependency will
- be stopped. If this is set, only a
+ enqueued. If set to
+ <literal>fail</literal> and
+ contradicting jobs are already queued,
+ cause the activation to fail. If set
+ to <literal>replace</literal> and
+ contradicting jobs area already
+ queued, replace
+ those. <literal>replace-irreversibly</literal>
+ is similar to
+ <literal>replace</literal>, however,
+ creates jobs that cannot be reversed
+ unless they finished or are explicitly
+ canceled. <literal>isolate</literal>
+ may be used to terminate all other
+ units but the specified one. If
+ this is set to
+ <literal>isolate</literal>, only a
single unit may be listed in
- <varname>OnFailure=</varname>. Defaults
- to
- <option>false</option>.</para></listitem>
+ <varname>OnFailure=</varname>..</para></listitem>
</varlistentry>
<varlistentry>
Index: systemd-208/src/core/dbus-unit.c
===================================================================
--- systemd-208.orig/src/core/dbus-unit.c
+++ systemd-208/src/core/dbus-unit.c
@@ -133,6 +133,7 @@ static int bus_unit_append_description(D
}
static DEFINE_BUS_PROPERTY_APPEND_ENUM(bus_unit_append_load_state, unit_load_state, UnitLoadState);
+static DEFINE_BUS_PROPERTY_APPEND_ENUM(bus_unit_append_job_mode, job_mode, JobMode);
static int bus_unit_append_active_state(DBusMessageIter *i, const char *property, void *data) {
Unit *u = data;
@@ -1079,7 +1080,7 @@ const BusProperty bus_unit_properties[]
{ "RefuseManualStop", bus_property_append_bool, "b", offsetof(Unit, refuse_manual_stop) },
{ "AllowIsolate", bus_property_append_bool, "b", offsetof(Unit, allow_isolate) },
{ "DefaultDependencies", bus_property_append_bool, "b", offsetof(Unit, default_dependencies) },
- { "OnFailureIsolate", bus_property_append_bool, "b", offsetof(Unit, on_failure_isolate) },
+ { "OnFailureJobMode", bus_unit_append_job_mode, "s", offsetof(Unit, on_failure_job_mode) },
{ "IgnoreOnIsolate", bus_property_append_bool, "b", offsetof(Unit, ignore_on_isolate) },
{ "IgnoreOnSnapshot", bus_property_append_bool, "b", offsetof(Unit, ignore_on_snapshot) },
{ "NeedDaemonReload", bus_unit_append_need_daemon_reload, "b", 0 },
Index: systemd-208/src/core/job.h
===================================================================
--- systemd-208.orig/src/core/job.h
+++ systemd-208/src/core/job.h
@@ -83,7 +83,7 @@ enum JobState {
enum JobMode {
JOB_FAIL, /* Fail if a conflicting job is already queued */
JOB_REPLACE, /* Replace an existing conflicting job */
- JOB_REPLACE_IRREVERSIBLY, /* Like JOB_REPLACE + produce irreversible jobs */
+ JOB_REPLACE_IRREVERSIBLY,/* Like JOB_REPLACE + produce irreversible jobs */
JOB_ISOLATE, /* Start a unit, and stop all others */
JOB_IGNORE_DEPENDENCIES, /* Ignore both requirement and ordering dependencies */
JOB_IGNORE_REQUIREMENTS, /* Ignore requirement dependencies */
Index: systemd-208/src/core/load-fragment-gperf.gperf.m4
===================================================================
--- systemd-208.orig/src/core/load-fragment-gperf.gperf.m4
+++ systemd-208/src/core/load-fragment-gperf.gperf.m4
@@ -122,7 +122,8 @@ Unit.RefuseManualStart, config_
Unit.RefuseManualStop, config_parse_bool, 0, offsetof(Unit, refuse_manual_stop)
Unit.AllowIsolate, config_parse_bool, 0, offsetof(Unit, allow_isolate)
Unit.DefaultDependencies, config_parse_bool, 0, offsetof(Unit, default_dependencies)
-Unit.OnFailureIsolate, config_parse_bool, 0, offsetof(Unit, on_failure_isolate)
+Unit.OnFailureJobMode, config_parse_job_mode, 0, offsetof(Unit, on_failure_job_mode)
+Unit.OnFailureIsolate, config_parse_job_mode_isolate, 0, offsetof(Unit, on_failure_job_mode)
Unit.IgnoreOnIsolate, config_parse_bool, 0, offsetof(Unit, ignore_on_isolate)
Unit.IgnoreOnSnapshot, config_parse_bool, 0, offsetof(Unit, ignore_on_snapshot)
Unit.JobTimeoutSec, config_parse_sec, 0, offsetof(Unit, job_timeout)
Index: systemd-208/src/core/load-fragment.c
===================================================================
--- systemd-208.orig/src/core/load-fragment.c
+++ systemd-208/src/core/load-fragment.c
@@ -2314,6 +2314,36 @@ int config_parse_blockio_bandwidth(
return 0;
}
+DEFINE_CONFIG_PARSE_ENUM(config_parse_job_mode, job_mode, JobMode, "Failed to parse job mode");
+
+int config_parse_job_mode_isolate(
+ const char *unit,
+ const char *filename,
+ unsigned line,
+ const char *section,
+ const char *lvalue,
+ int ltype,
+ const char *rvalue,
+ void *data,
+ void *userdata) {
+
+ JobMode *m = data;
+ int r;
+
+ assert(filename);
+ assert(lvalue);
+ assert(rvalue);
+
+ r = parse_boolean(rvalue);
+ if (r < 0) {
+ log_syntax(unit, LOG_ERR, filename, line, EINVAL, "Failed to parse boolean, ignoring: %s", rvalue);
+ return 0;
+ }
+
+ *m = r ? JOB_ISOLATE : JOB_REPLACE;
+ return 0;
+}
+
#define FOLLOW_MAX 8
static int open_follow(char **filename, FILE **_f, Set *names, char **_final) {
Index: systemd-208/src/core/load-fragment.h
===================================================================
--- systemd-208.orig/src/core/load-fragment.h
+++ systemd-208/src/core/load-fragment.h
@@ -83,6 +83,8 @@ int config_parse_device_allow(const char
int config_parse_blockio_weight(const char *unit, const char *filename, unsigned line, const char *section, const char *lvalue, int ltype, const char *rvalue, void *data, void *userdata);
int config_parse_blockio_device_weight(const char *unit, const char *filename, unsigned line, const char *section, const char *lvalue, int ltype, const char *rvalue, void *data, void *userdata);
int config_parse_blockio_bandwidth(const char *unit, const char *filename, unsigned line, const char *section, const char *lvalue, int ltype, const char *rvalue, void *data, void *userdata);
+int config_parse_job_mode(const char *unit, const char *filename, unsigned line, const char *section, const char *lvalue, int ltype, const char *rvalue, void *data, void *userdata);
+int config_parse_job_mode_isolate(const char *unit, const char *filename, unsigned line, const char *section, const char *lvalue, int ltype, const char *rvalue, void *data, void *userdata);
/* gperf prototypes */
const struct ConfigPerfItem* load_fragment_gperf_lookup(const char *key, unsigned length);
Index: systemd-208/src/core/unit.c
===================================================================
--- systemd-208.orig/src/core/unit.c
+++ systemd-208/src/core/unit.c
@@ -85,6 +85,7 @@ Unit *unit_new(Manager *m, size_t size)
u->deserialized_job = _JOB_TYPE_INVALID;
u->default_dependencies = true;
u->unit_file_state = _UNIT_FILE_STATE_INVALID;
+ u->on_failure_job_mode = JOB_REPLACE;
return u;
}
@@ -807,14 +808,14 @@ void unit_dump(Unit *u, FILE *f, const c
"%s\tRefuseManualStart: %s\n"
"%s\tRefuseManualStop: %s\n"
"%s\tDefaultDependencies: %s\n"
- "%s\tOnFailureIsolate: %s\n"
+ "%s\tOnFailureJobMode: %s\n"
"%s\tIgnoreOnIsolate: %s\n"
"%s\tIgnoreOnSnapshot: %s\n",
prefix, yes_no(u->stop_when_unneeded),
prefix, yes_no(u->refuse_manual_start),
prefix, yes_no(u->refuse_manual_stop),
prefix, yes_no(u->default_dependencies),
- prefix, yes_no(u->on_failure_isolate),
+ prefix, job_mode_to_string(u->on_failure_job_mode),
prefix, yes_no(u->ignore_on_isolate),
prefix, yes_no(u->ignore_on_snapshot));
@@ -985,11 +986,11 @@ int unit_load(Unit *u) {
if (r < 0)
goto fail;
- if (u->on_failure_isolate &&
+ if (u->on_failure_job_mode == JOB_ISOLATE &&
set_size(u->dependencies[UNIT_ON_FAILURE]) > 1) {
log_error_unit(u->id,
- "More than one OnFailure= dependencies specified for %s but OnFailureIsolate= enabled. Refusing.", u->id);
+ "More than one OnFailure= dependencies specified for %s but OnFailureJobMode=isolate set. Refusing.", u->id);
r = -EINVAL;
goto fail;
@@ -1394,7 +1395,7 @@ void unit_start_on_failure(Unit *u) {
SET_FOREACH(other, u->dependencies[UNIT_ON_FAILURE], i) {
int r;
- r = manager_add_job(u->manager, JOB_START, other, u->on_failure_isolate ? JOB_ISOLATE : JOB_REPLACE, true, NULL, NULL);
+ r = manager_add_job(u->manager, JOB_START, other, u->on_failure_job_mode, true, NULL, NULL);
if (r < 0)
log_error_unit(u->id, "Failed to enqueue OnFailure= job: %s", strerror(-r));
}
Index: systemd-208/src/core/unit.h
===================================================================
--- systemd-208.orig/src/core/unit.h
+++ systemd-208/src/core/unit.h
@@ -228,8 +228,8 @@ struct Unit {
/* Allow isolation requests */
bool allow_isolate;
- /* Isolate OnFailure unit */
- bool on_failure_isolate;
+ /* How to start OnFailure units */
+ JobMode on_failure_job_mode;
/* Ignore this unit when isolating */
bool ignore_on_isolate;
Index: systemd-208/units/initrd-cleanup.service.in
===================================================================
--- systemd-208.orig/units/initrd-cleanup.service.in
+++ systemd-208/units/initrd-cleanup.service.in
@@ -10,6 +10,7 @@ Description=Cleaning Up and Shutting Dow
DefaultDependencies=no
ConditionPathExists=/etc/initrd-release
OnFailure=emergency.target
+OnFailureJobMode=replace-irreversibly
After=initrd-root-fs.target initrd-fs.target initrd.target
[Service]
Index: systemd-208/units/initrd-fs.target
===================================================================
--- systemd-208.orig/units/initrd-fs.target
+++ systemd-208/units/initrd-fs.target
@@ -9,7 +9,7 @@
Description=Initrd File Systems
Documentation=man:systemd.special(7)
OnFailure=emergency.target
-OnFailureIsolate=yes
+OnFailureJobMode=replace-irreversibly
ConditionPathExists=/etc/initrd-release
After=initrd-parse-etc.service
DefaultDependencies=no
Index: systemd-208/units/initrd-parse-etc.service.in
===================================================================
--- systemd-208.orig/units/initrd-parse-etc.service.in
+++ systemd-208/units/initrd-parse-etc.service.in
@@ -11,6 +11,7 @@ DefaultDependencies=no
Requires=initrd-root-fs.target
After=initrd-root-fs.target
OnFailure=emergency.target
+OnFailureJobMode=replace-irreversibly
ConditionPathExists=/etc/initrd-release
[Service]
Index: systemd-208/units/initrd-root-fs.target
===================================================================
--- systemd-208.orig/units/initrd-root-fs.target
+++ systemd-208/units/initrd-root-fs.target
@@ -10,6 +10,6 @@ Description=Initrd Root File System
Documentation=man:systemd.special(7)
ConditionPathExists=/etc/initrd-release
OnFailure=emergency.target
-OnFailureIsolate=yes
+OnFailureJobMode=replace-irreversibly
DefaultDependencies=no
Conflicts=shutdown.target
Index: systemd-208/units/initrd-switch-root.service.in
===================================================================
--- systemd-208.orig/units/initrd-switch-root.service.in
+++ systemd-208/units/initrd-switch-root.service.in
@@ -10,6 +10,7 @@ Description=Switch Root
DefaultDependencies=no
ConditionPathExists=/etc/initrd-release
OnFailure=emergency.target
+OnFailureJobMode=replace-irreversibly
AllowIsolate=yes
[Service]
Index: systemd-208/units/initrd.target
===================================================================
--- systemd-208.orig/units/initrd.target
+++ systemd-208/units/initrd.target
@@ -9,7 +9,7 @@
Description=Initrd Default Target
Documentation=man:systemd.special(7)
OnFailure=emergency.target
-OnFailureIsolate=yes
+OnFailureJobMode=replace-irreversibly
ConditionPathExists=/etc/initrd-release
Requires=basic.target
Wants=initrd-root-fs.target initrd-fs.target initrd-parse-etc.service
Index: systemd-208/units/local-fs.target
===================================================================
--- systemd-208.orig/units/local-fs.target
+++ systemd-208/units/local-fs.target
@@ -12,4 +12,4 @@ After=local-fs-pre.target
DefaultDependencies=no
Conflicts=shutdown.target
OnFailure=emergency.target
-OnFailureIsolate=no
+OnFailureJobMode=replace-irreversibly
++++++ 0001-upstream-systemctl-halt-reboot-error-handling.patch ++++++
--- systemd-208/src/core/shutdown.c
+++ systemd-208/src/core/shutdown.c 2014-01-27 11:31:38.486235816 +0000
@@ -329,6 +329,9 @@ int main(int argc, char *argv[]) {
reboot(cmd);
+ if (cmd == RB_POWER_OFF)
+ reboot(RB_HALT_SYSTEM);
+
if (errno == EPERM && in_container) {
/* If we are in a container, and we lacked
* CAP_SYS_BOOT just exit, this will kill our
--- systemd-208/src/systemctl/systemctl.c
+++ systemd-208/src/systemctl/systemctl.c 2014-01-27 11:05:18.298236035 +0000
@@ -138,7 +138,7 @@ static bool arg_plain = false;
static bool private_bus = false;
static int daemon_reload(DBusConnection *bus, char **args);
-static void halt_now(enum action a);
+static int halt_now(enum action a);
static void pager_open_if_enabled(void) {
@@ -2227,7 +2227,7 @@ static int start_special(DBusConnection
(a == ACTION_HALT ||
a == ACTION_POWEROFF ||
a == ACTION_REBOOT))
- halt_now(a);
+ return halt_now(a);
if (arg_force >= 1 &&
(a == ACTION_HALT ||
@@ -5973,7 +5973,7 @@ done:
return 0;
}
-static _noreturn_ void halt_now(enum action a) {
+static int halt_now(enum action a) {
/* Make sure C-A-D is handled by the kernel from this
* point on... */
@@ -5984,23 +5984,22 @@ static _noreturn_ void halt_now(enum act
case ACTION_HALT:
log_info("Halting.");
reboot(RB_HALT_SYSTEM);
- break;
+ return -errno;
case ACTION_POWEROFF:
log_info("Powering off.");
reboot(RB_POWER_OFF);
- break;
+ return -errno;
case ACTION_REBOOT:
log_info("Rebooting.");
reboot(RB_AUTOBOOT);
- break;
+ return -errno;
default:
- assert_not_reached("Unknown halt action.");
+ assert_not_reached("Unknown action.");
+ return -ENOSYS;
}
-
- assert_not_reached("Uh? This shouldn't happen.");
}
static int halt_main(DBusConnection *bus) {
@@ -6069,9 +6068,10 @@ static int halt_main(DBusConnection *bus
if (arg_dry)
return 0;
- halt_now(arg_action);
- /* We should never reach this. */
- return -ENOSYS;
+ r = halt_now(arg_action);
+ log_error("Failed to reboot: %s", strerror(-r));
+
+ return r;
}
static int runlevel_main(void) {
++++++ 0002-service-allow-KillMode-mixed-in-conjunction-with-PAM.patch ++++++
>From 95d57e7b631a2d78b9b5d841125194052895470f Mon Sep 17 00:00:00 2001
From: Lennart Poettering <lennart(a)poettering.net>
Date: Wed, 29 Jan 2014 13:49:54 +0100
Subject: [PATCH 2/3] service: allow KillMode=mixed in conjunction with
PAMName=
---
src/core/service.c | 20 +++++++-------------
1 file changed, 7 insertions(+), 13 deletions(-)
diff --git a/src/core/service.c b/src/core/service.c
index 6792024..e7f03e1 100644
--- a/src/core/service.c
+++ b/src/core/service.c
@@ -1105,37 +1105,31 @@ static int service_verify(Service *s) {
return 0;
if (!s->exec_command[SERVICE_EXEC_START]) {
- log_error_unit(UNIT(s)->id,
- "%s lacks ExecStart setting. Refusing.", UNIT(s)->id);
+ log_error_unit(UNIT(s)->id, "%s lacks ExecStart setting. Refusing.", UNIT(s)->id);
return -EINVAL;
}
if (s->type != SERVICE_ONESHOT &&
s->exec_command[SERVICE_EXEC_START]->command_next) {
- log_error_unit(UNIT(s)->id,
- "%s has more than one ExecStart setting, which is only allowed for Type=oneshot services. Refusing.", UNIT(s)->id);
+ log_error_unit(UNIT(s)->id, "%s has more than one ExecStart setting, which is only allowed for Type=oneshot services. Refusing.", UNIT(s)->id);
return -EINVAL;
}
if (s->type == SERVICE_ONESHOT && s->restart != SERVICE_RESTART_NO) {
- log_error_unit(UNIT(s)->id,
- "%s has Restart setting other than no, which isn't allowed for Type=oneshot services. Refusing.", UNIT(s)->id);
+ log_error_unit(UNIT(s)->id, "%s has Restart setting other than no, which isn't allowed for Type=oneshot services. Refusing.", UNIT(s)->id);
return -EINVAL;
}
if (s->type == SERVICE_DBUS && !s->bus_name) {
- log_error_unit(UNIT(s)->id,
- "%s is of type D-Bus but no D-Bus service name has been specified. Refusing.", UNIT(s)->id);
+ log_error_unit(UNIT(s)->id, "%s is of type D-Bus but no D-Bus service name has been specified. Refusing.", UNIT(s)->id);
return -EINVAL;
}
if (s->bus_name && s->type != SERVICE_DBUS)
- log_warning_unit(UNIT(s)->id,
- "%s has a D-Bus service name specified, but is not of type dbus. Ignoring.", UNIT(s)->id);
+ log_warning_unit(UNIT(s)->id, "%s has a D-Bus service name specified, but is not of type dbus. Ignoring.", UNIT(s)->id);
- if (s->exec_context.pam_name && s->kill_context.kill_mode != KILL_CONTROL_GROUP) {
- log_error_unit(UNIT(s)->id,
- "%s has PAM enabled. Kill mode must be set to 'control-group'. Refusing.", UNIT(s)->id);
+ if (s->exec_context.pam_name && !(s->kill_context.kill_mode == KILL_CONTROL_GROUP || s->kill_context.kill_mode == KILL_MIXED)) {
+ log_error_unit(UNIT(s)->id, "%s has PAM enabled. Kill mode must be set to 'control-group' or 'mixed'. Refusing.", UNIT(s)->id);
return -EINVAL;
}
--
1.8.4
++++++ 0003-core-make-sure-to-always-go-through-both-SIGTERM-and.patch ++++++
>From b2ffdc8da536cd88a305f97517f356e2c5383a52 Mon Sep 17 00:00:00 2001
From: Lennart Poettering <lennart(a)poettering.net>
Date: Wed, 29 Jan 2014 14:58:04 +0100
Subject: [PATCH 3/3] core: make sure to always go through both SIGTERM and
SIGKILL states of units
Given that we now have KillMode=mixed where SIGTERM might kill a smaller
set than SIGKILL we need to make sure to always go explicitly throught
the SIGKILL state to get the right end result.
---
src/core/mount.c | 8 +++++++-
src/core/scope.c | 4 +++-
src/core/service.c | 10 +++++++---
src/core/socket.c | 6 +++++-
src/core/swap.c | 6 +++++-
5 files changed, 27 insertions(+), 7 deletions(-)
diff --git a/src/core/mount.c b/src/core/mount.c
index 3d46557..e418d09 100644
--- a/src/core/mount.c
+++ b/src/core/mount.c
@@ -854,8 +854,14 @@ static void mount_enter_signal(Mount *m, MountState state, MountResult f) {
goto fail;
mount_set_state(m, state);
- } else if (state == MOUNT_REMOUNTING_SIGTERM || state == MOUNT_REMOUNTING_SIGKILL)
+ } else if (state == MOUNT_REMOUNTING_SIGTERM)
+ mount_enter_signal(m, MOUNT_REMOUNTING_SIGKILL, MOUNT_SUCCESS);
+ else if (state == MOUNT_REMOUNTING_SIGKILL)
mount_enter_mounted(m, MOUNT_SUCCESS);
+ else if (state == MOUNT_MOUNTING_SIGTERM)
+ mount_enter_signal(m, MOUNT_MOUNTING_SIGKILL, MOUNT_SUCCESS);
+ else if (state == MOUNT_UNMOUNTING_SIGTERM)
+ mount_enter_signal(m, MOUNT_UNMOUNTING_SIGKILL, MOUNT_SUCCESS);
else
mount_enter_dead(m, MOUNT_SUCCESS);
diff --git a/src/core/scope.c b/src/core/scope.c
index 50e5dba..3a5c95e 100644
--- a/src/core/scope.c
+++ b/src/core/scope.c
@@ -221,7 +221,9 @@ static void scope_enter_signal(Scope *s, ScopeState state, ScopeResult f) {
}
scope_set_state(s, state);
- } else
+ } else if (state == SCOPE_STOP_SIGTERM)
+ scope_enter_signal(s, SCOPE_STOP_SIGKILL, SCOPE_SUCCESS);
+ else
scope_enter_dead(s, SCOPE_SUCCESS);
return;
diff --git a/src/core/service.c b/src/core/service.c
index e7f03e1..4b481c2 100644
--- a/src/core/service.c
+++ b/src/core/service.c
@@ -1964,10 +1964,9 @@ static void service_enter_stop_post(Service *s, ServiceResult f) {
if (r < 0)
goto fail;
-
service_set_state(s, SERVICE_STOP_POST);
} else
- service_enter_dead(s, SERVICE_SUCCESS, true);
+ service_enter_signal(s, SERVICE_FINAL_SIGTERM, SERVICE_SUCCESS);
return;
@@ -1993,6 +1992,7 @@ static void service_enter_signal(Service *s, ServiceState state, ServiceResult f
s->main_pid,
s->control_pid,
s->main_pid_alien);
+
if (r < 0)
goto fail;
@@ -2005,8 +2005,12 @@ static void service_enter_signal(Service *s, ServiceState state, ServiceResult f
}
service_set_state(s, state);
- } else if (state == SERVICE_STOP_SIGTERM || state == SERVICE_STOP_SIGKILL)
+ } else if (state == SERVICE_STOP_SIGTERM)
+ service_enter_signal(s, SERVICE_STOP_SIGKILL, SERVICE_SUCCESS);
+ else if (state == SERVICE_STOP_SIGKILL)
service_enter_stop_post(s, SERVICE_SUCCESS);
+ else if (state == SERVICE_FINAL_SIGTERM)
+ service_enter_signal(s, SERVICE_FINAL_SIGKILL, SERVICE_SUCCESS);
else
service_enter_dead(s, SERVICE_SUCCESS, true);
diff --git a/src/core/socket.c b/src/core/socket.c
index 6c0ac1a..831876f 100644
--- a/src/core/socket.c
+++ b/src/core/socket.c
@@ -1298,8 +1298,12 @@ static void socket_enter_signal(Socket *s, SocketState state, SocketResult f) {
goto fail;
socket_set_state(s, state);
- } else if (state == SOCKET_STOP_PRE_SIGTERM || state == SOCKET_STOP_PRE_SIGKILL)
+ } else if (state == SOCKET_STOP_PRE_SIGTERM)
+ socket_enter_signal(s, SOCKET_STOP_PRE_SIGKILL, SOCKET_SUCCESS);
+ else if (state == SOCKET_STOP_PRE_SIGKILL)
socket_enter_stop_post(s, SOCKET_SUCCESS);
+ else if (state == SOCKET_FINAL_SIGTERM)
+ socket_enter_signal(s, SOCKET_FINAL_SIGKILL, SOCKET_SUCCESS);
else
socket_enter_dead(s, SOCKET_SUCCESS);
diff --git a/src/core/swap.c b/src/core/swap.c
index a68ab7c..8886fe8 100644
--- a/src/core/swap.c
+++ b/src/core/swap.c
@@ -655,7 +655,11 @@ static void swap_enter_signal(Swap *s, SwapState state, SwapResult f) {
goto fail;
swap_set_state(s, state);
- } else
+ } else if (state == SWAP_ACTIVATING_SIGTERM)
+ swap_enter_signal(s, SWAP_ACTIVATING_SIGKILL, SWAP_SUCCESS);
+ else if (state == SWAP_DEACTIVATING_SIGTERM)
+ swap_enter_signal(s, SWAP_DEACTIVATING_SIGKILL, SWAP_SUCCESS);
+ else
swap_enter_dead(s, SWAP_SUCCESS);
return;
--
1.8.4
++++++ 1016-support-powerfail-with-powerstatus.patch ++++++
--- systemd-208/units/sigpwr.target
+++ systemd-208/units/sigpwr.target 2014-01-14 15:53:32.878735762 +0000
@@ -8,3 +8,5 @@
[Unit]
Description=Power Failure
Documentation=man:systemd.special(7)
+BindsTo=powerfail.service
+DefaultDependencies=no
+RefuseManualStart=yes
--- systemd-208/units/powerfail.service
+++ systemd-208/units/powerfail.service 2014-01-14 16:11:41.802235712 +0000
@@ -0,0 +1,21 @@
+# This file is part of systemd.
+#
+# Copyright (c) 2014 SUSE LINUX Products GmbH, Germany.
+# Author: Werner Fink
+# Please send feedback to http://www.suse.de/feedback
+#
+# Description:
+#
+# Used to start the systemd-powerfail.service
+#
+
+[Unit]
+Description=powerfail handling
+BindsTo=sigpwr.target
+DefaultDependencies=no
+RefuseManualStart=yes
+
+[Service]
+Type=oneshot
+ExecStart=/usr/lib/systemd/systemd-powerfail
+RemainAfterExit=false
--- systemd-208/man/systemd-powerfail.service.8
+++ systemd-208/man/systemd-powerfail.service.8 2014-01-14 18:22:21.286735810 +0000
@@ -0,0 +1,54 @@
+'\" t
+.TH "SYSTEMD\-POWERFAIL\&.SERVICE" "8" "" "systemd 208" "systemd-powerfail.service"
+.\" -----------------------------------------------------------------
+.\" * Define some portability stuff
+.\" -----------------------------------------------------------------
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.\" http://bugs.debian.org/507673
+.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.ie \n(.g .ds Aq \(aq
+.el .ds Aq '
+.\" -----------------------------------------------------------------
+.\" * set default formatting
+.\" -----------------------------------------------------------------
+.\" disable hyphenation
+.nh
+.\" disable justification (adjust text to left margin only)
+.ad l
+.\" -----------------------------------------------------------------
+.\" * MAIN CONTENT STARTS HERE *
+.\" -----------------------------------------------------------------
+.SH "NAME"
+systemd-powerfail.service, systemd-powerfail \- Power Fail signal handling
+.SH "SYNOPSIS"
+.PP
+systemd\-powerfail\&.service
+.PP
+/usr/lib/systemd/systemd\-powerfail
+.SH "DESCRIPTION"
+.PP
+systemd\-powerfail
+is a system service that is used to evaulate the content of
+\fI/var/run/powerstatus\fR. Based on the content of this
+file:
+.IP F(AIL)
+Power is failing, UPS is providing the power. The
+systemd\-powerfail
+is now doing a timed shutdown.
+.IP O(K)
+The power has been restored, and pending shutdown
+will be cancled.
+.IP L(OW)
+The power is failing and the UPS has a low battery.
+The
+systemd\-powerfail
+is doing an immediate shutdown.
+.PP
+If \fI/var/run/powerstatus\fR doesn't exist or contains anything else then the letters
+F, O or L, systemd\-powerfail will behave as if it has read the letter F.
+.PP
+.SH "SEE ALSO"
+.PP
+\fBshutdown\fR(8),
+\fBpowerd\fR(8)
++++++ 1017-skip-native-unit-handling-if-sysv-already-handled.patch ++++++
For bnc#818044
Based on http://cgit.freedesktop.org/systemd/systemd/patch/?id=67d6621059085963a2a90…
---
systemctl.c | 5 +++++
1 file changed, 5 insertions(+)
--- systemd-208/src/systemctl/systemctl.c
+++ systemd-208/src/systemctl/systemctl.c 2014-01-21 13:00:52.910736187 +0000
@@ -4453,6 +4453,11 @@ static int enable_unit(DBusConnection *b
if (r < 0)
return r;
+ /* If the operation was fully executed by the SysV compat,
+ * let's finish early */
+ if (strv_isempty(mangled_names))
+ return 0;
+
if (!bus || avoid_bus()) {
if (streq(verb, "enable")) {
r = unit_file_enable(arg_scope, arg_runtime, arg_root, mangled_names, arg_force, &changes, &n_changes);
++++++ 1018-Make-LSB-Skripts-know-about-Required-and-Should.patch ++++++
--- systemd-208/src/core/service.c
+++ systemd-208/src/core/service.c 2014-01-17 12:15:52.527311588 +0000
@@ -380,6 +380,8 @@ static int sysv_translate_facility(const
"remote_fs", SPECIAL_REMOTE_FS_TARGET,
"syslog", NULL,
"time", SPECIAL_TIME_SYNC_TARGET,
+ "all", SPECIAL_DEFAULT_TARGET,
+ "null", NULL,
};
unsigned i;
@@ -389,7 +391,7 @@ static int sysv_translate_facility(const
assert(name);
assert(_r);
- n = *name == '$' ? name + 1 : name;
+ n = (*name == '$' || *name == '+') ? name + 1 : name;
for (i = 0; i < ELEMENTSOF(table); i += 2) {
@@ -816,10 +818,13 @@ static int service_load_sysv_path(Servic
startswith_no_case(t, "Should-Start:") ||
startswith_no_case(t, "X-Start-Before:") ||
startswith_no_case(t, "X-Start-After:")) {
+ UnitDependency d, e;
char *i, *w;
size_t z;
state = LSB;
+ d = startswith_no_case(t, "X-Start-Before:") ? UNIT_BEFORE : UNIT_AFTER;
+ e = startswith_no_case(t, "Required-Start:") ? UNIT_REQUIRES_OVERRIDABLE : UNIT_WANTS;
FOREACH_WORD_QUOTED(w, z, strchr(t, ':')+1, i) {
char *n, *m;
@@ -838,12 +843,15 @@ static int service_load_sysv_path(Servic
continue;
}
+ if (*n == '+')
+ e = UNIT_WANTS;
+
free(n);
if (r == 0)
continue;
- r = unit_add_dependency_by_name(u, startswith_no_case(t, "X-Start-Before:") ? UNIT_BEFORE : UNIT_AFTER, m, NULL, true);
+ r = unit_add_two_dependencies_by_name(u, d, e, m, NULL, true);
if (r < 0)
log_error_unit(u->id, "[%s:%u] Failed to add dependency on %s, ignoring: %s",
++++++ 1019-make-completion-smart-to-be-able-to-redirect.patch ++++++
--- systemd-208/shell-completion/bash/hostnamectl
+++ systemd-208/shell-completion/bash/hostnamectl 2014-01-17 14:27:16.183272019 +0000
@@ -30,6 +30,10 @@ _hostnamectl() {
local OPTS='-h --help --version --transient --static --pretty
--no-ask-password -H --host'
+ if __contains_word ">" ${COMP_WORDS[*]:0:COMP_CWORD}; then
+ return 0
+ fi
+
if [[ $cur = -* ]]; then
COMPREPLY=( $(compgen -W '${OPTS[*]}' -- "$cur") )
return 0
@@ -58,4 +62,4 @@ _hostnamectl() {
return 0
}
-complete -F _hostnamectl hostnamectl
+complete -o default -o bashdefault -F _hostnamectl hostnamectl
--- systemd-208/shell-completion/bash/journalctl
+++ systemd-208/shell-completion/bash/journalctl 2014-01-17 14:34:30.338737694 +0000
@@ -49,6 +49,10 @@ _journalctl() {
--verify-key'
)
+ if __contains_word ">" ${COMP_WORDS[*]:0:COMP_CWORD}; then
+ return 0
+ fi
+
if __contains_word "$prev" ${OPTS[ARG]} ${OPTS[ARGUNKNOWN]}; then
case $prev in
--boot|--this-boot|-b)
@@ -107,4 +111,4 @@ _journalctl() {
fi
}
-complete -F _journalctl journalctl
+complete -o default -o bashdefault -F _journalctl journalctl
--- systemd-208/shell-completion/bash/kernel-install
+++ systemd-208/shell-completion/bash/kernel-install 2014-01-17 14:34:41.982255874 +0000
@@ -18,11 +18,22 @@
# You should have received a copy of the GNU Lesser General Public License
# along with systemd; If not, see <http://www.gnu.org/licenses/>.
+__contains_word () {
+ local w word=$1; shift
+ for w in "$@"; do
+ [[ $w = "$word" ]] && return
+ done
+}
+
_kernel_install() {
local comps
local MACHINE_ID
local cur=${COMP_WORDS[COMP_CWORD]}
+ if __contains_word ">" ${COMP_WORDS[*]:0:COMP_CWORD}; then
+ return 0
+ fi
+
case $COMP_CWORD in
1)
comps="add remove"
@@ -47,4 +58,4 @@ _kernel_install() {
return 0
}
-complete -F _kernel_install kernel-install
+complete -o default -o bashdefault -F _kernel_install kernel-install
--- systemd-208/shell-completion/bash/localectl
+++ systemd-208/shell-completion/bash/localectl 2014-01-17 14:34:52.546235747 +0000
@@ -30,6 +30,10 @@ _localectl() {
local OPTS='-h --help --version --no-convert --no-pager --no-ask-password
-H --host'
+ if __contains_word ">" ${COMP_WORDS[*]:0:COMP_CWORD}; then
+ return 0
+ fi
+
if __contains_word "$prev" $OPTS; then
case $prev in
--host|-H)
@@ -73,4 +77,4 @@ _localectl() {
return 0
}
-complete -F _localectl localectl
+complete -o default -o bashdefault -F _localectl localectl
--- systemd-208/shell-completion/bash/loginctl
+++ systemd-208/shell-completion/bash/loginctl 2014-01-17 14:35:03.386245699 +0000
@@ -37,6 +37,10 @@ _loginctl () {
[ARG]='--host -H --kill-who --property -p --signal -s'
)
+ if __contains_word ">" ${COMP_WORDS[*]:0:COMP_CWORD}; then
+ return 0
+ fi
+
if __contains_word "$prev" ${OPTS[ARG]}; then
case $prev in
--signal|-s)
@@ -106,4 +110,4 @@ _loginctl () {
return 0
}
-complete -F _loginctl loginctl
+complete -o default -o bashdefault -F _loginctl loginctl
--- systemd-208/shell-completion/bash/systemctl
+++ systemd-208/shell-completion/bash/systemctl 2014-01-17 14:35:26.506235666 +0000
@@ -77,6 +77,10 @@ _systemctl () {
[ARG]='--host -H --kill-mode --kill-who --property -p --signal -s --type -t --state --root'
)
+ if __contains_word ">" ${COMP_WORDS[*]:0:COMP_CWORD}; then
+ return 0
+ fi
+
if __contains_word "--user" ${COMP_WORDS[*]}; then
mode=--user
else
@@ -226,4 +230,4 @@ _systemctl () {
return 0
}
-complete -F _systemctl systemctl
+complete -o default -o bashdefault -F _systemctl systemctl
--- systemd-208/shell-completion/bash/systemd-analyze
+++ systemd-208/shell-completion/bash/systemd-analyze 2014-01-17 14:35:38.366736021 +0000
@@ -37,6 +37,10 @@ _systemd_analyze() {
[LOG_LEVEL]='set-log-level'
)
+ if __contains_word ">" ${COMP_WORDS[*]:0:COMP_CWORD}; then
+ return 0
+ fi
+
_init_completion || return
for ((i=0; $i <= $COMP_CWORD; i++)); do
@@ -83,4 +87,4 @@ _systemd_analyze() {
return 0
}
-complete -F _systemd_analyze systemd-analyze
+complete -o default -o bashdefault -F _systemd_analyze systemd-analyze
--- systemd-208/shell-completion/bash/systemd-coredumpctl
+++ systemd-208/shell-completion/bash/systemd-coredumpctl 2014-01-17 14:35:46.434235632 +0000
@@ -44,6 +44,10 @@ _coredumpctl() {
[DUMP]='dump gdb'
)
+ if __contains_word ">" ${COMP_WORDS[*]:0:COMP_CWORD}; then
+ return 0
+ fi
+
if __contains_word "$prev" '--output -o'; then
comps=$( compgen -A file -- "$cur" )
compopt -o filenames
@@ -82,4 +86,4 @@ _coredumpctl() {
return 0
}
-complete -F _coredumpctl systemd-coredumpctl
+complete -o default -o bashdefault -F _coredumpctl systemd-coredumpctl
--- systemd-208/shell-completion/bash/systemd-run
+++ systemd-208/shell-completion/bash/systemd-run 2014-01-17 14:35:55.938236298 +0000
@@ -17,6 +17,13 @@
# You should have received a copy of the GNU Lesser General Public License
# along with systemd; If not, see <http://www.gnu.org/licenses/>.
+__contains_word () {
+ local w word=$1; shift
+ for w in "$@"; do
+ [[ $w = "$word" ]] && return
+ done
+}
+
__systemctl() {
local mode=$1; shift 1
systemctl $mode --full --no-legend "$@"
@@ -31,6 +38,11 @@ _systemd_run() {
local mode=--system
local i
+
+ if __contains_word ">" ${COMP_WORDS[*]:0:COMP_CWORD}; then
+ return 0
+ fi
+
for (( i=1; i <= COMP_CWORD; i++ )); do
if [[ ${COMP_WORDS[i]} != -* ]]; then
local root_command=${COMP_WORDS[i]}
@@ -60,4 +72,4 @@ _systemd_run() {
return 0
}
-complete -F _systemd_run systemd-run
+complete -o default -o bashdefault -F _systemd_run systemd-run
--- systemd-208/shell-completion/bash/timedatectl
+++ systemd-208/shell-completion/bash/timedatectl 2014-01-17 14:36:06.182735466 +0000
@@ -30,6 +30,10 @@ _timedatectl() {
local OPTS='-h --help --version --adjust-system-clock --no-pager
--no-ask-password -H --host'
+ if __contains_word ">" ${COMP_WORDS[*]:0:COMP_CWORD}; then
+ return 0
+ fi
+
if __contains_word "$prev" $OPTS; then
case $prev in
--host|-H)
@@ -73,4 +77,4 @@ _timedatectl() {
return 0
}
-complete -F _timedatectl timedatectl
+complete -o default -o bashdefault -F _timedatectl timedatectl
--- systemd-208/shell-completion/bash/udevadm
+++ systemd-208/shell-completion/bash/udevadm 2014-01-17 14:36:16.406236120 +0000
@@ -36,6 +36,10 @@ _udevadm() {
local verbs=(info trigger settle control monitor hwdb test-builtin test)
+ if __contains_word ">" ${COMP_WORDS[*]:0:COMP_CWORD}; then
+ return 0
+ fi
+
for ((i=0; i <= COMP_CWORD; i++)); do
if __contains_word "${COMP_WORDS[i]}" "${verbs[@]}" &&
! __contains_word "${COMP_WORDS[i-1]}" ${OPTS[ARG]}; then
@@ -94,4 +98,4 @@ _udevadm() {
return 0
}
-complete -F _udevadm udevadm
+complete -o default -o bashdefault -F _udevadm udevadm
++++++ analyze-fix-crash-in-command-line-parsing.patch ++++++
>From da6de8a55784115451582051c8da620056994a05 Mon Sep 17 00:00:00 2001
From: Frederic Crozat <fcrozat(a)suse.com>
Date: Mon, 20 Jan 2014 11:05:22 +0100
Subject: [PATCH] analyze: fix crash in command line parsing
Ensure DBusError is set before it can possibly be freed on return.
Fix crash when calling set-log-level without any parameter.
Fix https://bugzilla.novell.com/show_bug.cgi?id=859365
---
src/analyze/systemd-analyze.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/analyze/systemd-analyze.c b/src/analyze/systemd-analyze.c
index 27d063c..cdfae93 100644
--- a/src/analyze/systemd-analyze.c
+++ b/src/analyze/systemd-analyze.c
@@ -1226,13 +1226,13 @@ static int set_log_level(DBusConnection *bus, char **args) {
assert(bus);
assert(args);
+ dbus_error_init(&error);
if (strv_length(args) != 1) {
log_error("This command expects one argument only.");
return -E2BIG;
}
value = args[0];
- dbus_error_init(&error);
m = dbus_message_new_method_call("org.freedesktop.systemd1",
"/org/freedesktop/systemd1",
--
1.8.4
++++++ macros.systemd ++++++
--- /var/tmp/diff_new_pack.qgcb4v/_old 2014-01-31 13:36:09.000000000 +0100
+++ /var/tmp/diff_new_pack.qgcb4v/_new 2014-01-31 13:36:09.000000000 +0100
@@ -46,6 +46,13 @@
touch "/var/lib/systemd/migrated/$sysv_service" || : \
done \
else \
+ if [ $FIRST_ARG -gt 1 ]; then \
+ for service in %{?*} ; do \
+ if [ ! -e "/usr/lib/systemd/system/$service" ]; then \
+ touch "/run/rpm-%{name}-update-$service-new-in-upgrade" \
+ fi \
+ done \
+ fi \
for service in %{?*} ; do \
sysv_service=${service%.*} \
if [ ! -e "/var/lib/systemd/migrated/$sysv_service" ]; then \
@@ -74,6 +81,13 @@
/usr/sbin/systemd-sysv-convert --apply $services_to_migrate >/dev/null 2>&1 || : \
elif [ $FIRST_ARG -eq 1 ]; then \
/usr/bin/systemctl preset %{?*} >/dev/null 2>&1 || : \
+elif [ $FIRST_ARG -gt 1 ]; then \
+ for service in %{?*} ; do \
+ if [ -e "/run/rpm-%{name}-update-$service-new-in-upgrade" ]; then \
+ rm -f "/run/rpm-%{name}-update-$service-new-in-upgrade" \
+ /usr/bin/systemctl preset "$service" >/dev/null 2>&1 || : \
+ fi \
+ done \
fi \
%{nil}
++++++ make-emergency.service-conflict-with-syslog.socket.patch ++++++
If after emergency service had been started there is incoming
traffic on syslog.socket emergency.service gets killed due to
implicit dependencies on basic.target => sysinit.target which in
turn conflict with emergency.target.
As a workaround explicitly stop syslog.socket when entering
emergency.service.
Reference: bnc#852232
Index: systemd-208/units/emergency.service.in
===================================================================
--- systemd-208/units/emergency.service.in
+++ systemd-208/units/emergency.service.in
@@ -9,7 +9,7 @@
Description=Emergency Shell
Documentation=man:sulogin(8)
DefaultDependencies=no
-Conflicts=shutdown.target
+Conflicts=shutdown.target syslog.socket
Before=shutdown.target
[Service]
++++++ systemd-powerfail ++++++
#!/bin/bash
#
# /usr/lib/systemd/systemd-powerfail
#
# Copyright (c) 2014 SUSE LINUX Products GmbH, Germany.
# Author: Werner Fink
# Please send feedback to http://www.suse.de/feedback
#
# Description:
#
# Used to evaluate the status of /var/run/powerstatus
#
trap "echo" SIGINT SIGSEGV SIGTERM
POWERFAIL='THE POWER IS FAILED! SYSTEM GOING DOWN! PLEASE LOG OFF NOW!'
POWERFAILNOW='THE POWER IS FAILED! LOW BATTERY - EMERGENCY SYSTEM SHUTDOWN!'
POWERISBACK='THE POWER IS BACK'
typeset pwrstat=0
test -s /var/run/powerstatus && read pwrstat < /var/run/powerstatus
rm -f /var/run/powerstatus
case "$pwrstat" in
O*) exec /sbin/shutdown -c +0 "$POWERISBACK" ;;
L*) exec /sbin/shutdown -P +0 "$POWERFAILNOW" ;;
*) exec /sbin/shutdown -P +2 "$POWERFAIL" ;;
esac
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0