openSUSE Commits
Threads by month
- ----- 2024 -----
- 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
September 2011
- 1 participants
- 1857 discussions
Hello community,
here is the log from the commit of package mercurial for openSUSE:Factory
checked in at Mon Sep 5 16:38:56 CEST 2011.
--------
calling whatdependson for head-i586
Old:
----
mercurial-1.9.2.tar.bz2
New:
----
mercurial-1.9.2.tar.gz
tests.blacklist
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ mercurial.spec ++++++
--- /var/tmp/diff_new_pack.0IuSwY/_old 2011-09-05 16:38:37.000000000 +0200
+++ /var/tmp/diff_new_pack.0IuSwY/_new 2011-09-05 16:38:37.000000000 +0200
@@ -20,11 +20,11 @@
Name: mercurial
Summary: Scalable Distributed SCM
Version: 1.9.2
-Release: 1
+Release: 4
License: GPLv2+
Group: Development/Tools/Version Control
Url: http://mercurial.selenic.com/
-Source: http://mercurial.selenic.com/release/mercurial-%{version}.tar.bz2
+Source: http://mercurial.selenic.com/release/mercurial-%{version}.tar.gz
Source1: cacerts.rc
Source99: rpmlintrc
Patch0: mercurial-hgk-path-fix.diff
@@ -59,6 +59,7 @@
%{!?python_sitearch: %global python_sitearch %(%{__python} -c "from distutils.sysconfig import get_python_lib; print(get_python_lib(1))")}
%if 0%{?with_tests}
+Source90: tests.blacklist
BuildRequires: gpg ncurses-devel unzip
BuildRequires: bzr git subversion-python
BuildRequires: python-Pygments python-openssl
@@ -116,8 +117,7 @@
%if 0%{?with_tests}
%check
-make tests TESTFLAGS="-v"
-# currently (1.9.2) not working tests: i18n,status-color
+make tests TESTFLAGS="-v --blacklist=%{SOURCE90}"
%endif
%clean
++++++ _service ++++++
--- /var/tmp/diff_new_pack.0IuSwY/_old 2011-09-05 16:38:37.000000000 +0200
+++ /var/tmp/diff_new_pack.0IuSwY/_new 2011-09-05 16:38:37.000000000 +0200
@@ -1,5 +1,3 @@
<services>
- <service name="download_files" mode="localonly">
- <param name="recompress">yes</param>
- </service>
+ <service name="download_files" mode="localonly"/>
</services>
++++++ tests.blacklist ++++++
test-i18n.t
test-status-color.t
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Remember to have fun...
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package python-Fabric for openSUSE:Factory
checked in at Mon Sep 5 16:38:49 CEST 2011.
--------
--- python-Fabric/python-Fabric.changes 2011-08-04 14:05:02.000000000 +0200
+++ python-Fabric/python-Fabric.changes 2011-09-02 09:46:20.000000000 +0200
@@ -1,0 +2,32 @@
+Fri Sep 2 07:44:44 UTC 2011 - saschpe(a)suse.de
+
+- Fixed link expansion error
+- Removed some unneeded stuff
+
+-------------------------------------------------------------------
+Fri Sep 2 01:19:44 UTC 2011 - alexandre(a)exatati.com.br
+
+- Update to 1.2.2:
+ - [Bug] #252: settings would silently fail to set env values for
+ keys which did not exist outside the context manager block. It
+ now works as expected. Thanks to Will Maier for the catch and
+ suggested solution.
+ - [Support] #393: Fixed a typo in an example code snippet in the
+ task docs. Thanks to Hugo Garza for the catch.
+ - [Bug] #396: --shortlist broke after the addition of --list-format
+ and no longer displayed the short list format correctly. This has
+ been fixed.
+ - [Bug] #373: Re-added missing functionality preventing host exclusion
+ from working correctly.
+ - [Bug] #303: Updated terminal size detection to correctly skip over
+ non-tty stdout, such as when running fab taskname | other_command.
+- Aditional changes from version 1.2.1:
+ - [Bug] #417: abort_on_prompts would incorrectly abort when set to
+ True, even if both password and host were defined. This has been
+ fixed. Thanks to Valerie Ishida for the report.
+ - [Support] #416: Updated documentation to reflect move from Redmine
+ to Github.
+ - [Bug] #389: Fixed/improved error handling when Paramiko import
+ fails. Thanks to Brian Luft for the catch.
+
+-------------------------------------------------------------------
calling whatdependson for head-i586
Old:
----
Fabric-1.2.0.tar.bz2
New:
----
Fabric-1.2.2.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-Fabric.spec ++++++
--- /var/tmp/diff_new_pack.rkWuP5/_old 2011-09-05 16:38:21.000000000 +0200
+++ /var/tmp/diff_new_pack.rkWuP5/_new 2011-09-05 16:38:21.000000000 +0200
@@ -15,21 +15,16 @@
# Please submit bugfixes or comments via http://bugs.opensuse.org/
#
-# norootforbuild
-%{!?python_sitelib: %global python_sitelib %(%{__python} -c "from distutils.sysconfig import get_python_lib; print get_python_lib()")}
-%{!?python_sitearch: %global python_sitearch %(%{__python} -c "from distutils.sysconfig import get_python_lib; print get_python_lib(1)")}
-
-%define mod_name Fabric
-Name: python-%{mod_name}
-Version: 1.2.0
+Name: python-Fabric
+Version: 1.2.2
Release: 1
Url: http://fabfile.org
Summary: Fabric is a simple, Pythonic tool for remote execution and deployment
License: BSD
Group: Development/Languages/Python
-Source: %{mod_name}-%{version}.tar.bz2
+Source: Fabric-%{version}.tar.bz2
BuildRoot: %{_tmppath}/%{name}-%{version}-build
BuildRequires: python-devel
BuildRequires: python-distribute
@@ -41,6 +36,7 @@
BuildArch: noarch
%endif
%endif
+%{!?python_sitelib: %global python_sitelib %(%{__python} -c "from distutils.sysconfig import get_python_lib; print get_python_lib()")}
%description
Fabric is a Python (2.5 or higher) library and command-line tool for
@@ -48,20 +44,20 @@
administration tasks.
It provides a basic suite of operations for executing local or remote shell
-commands (normally or via ``sudo``) and uploading/downloading files, as well as
+commands (normally or via sudo) and uploading/downloading files, as well as
auxiliary functionality such as prompting the running user for input, or
aborting execution.
Typical use involves creating a Python module containing one or more functions,
-then executing them via the ``fab`` command-line tool. Below is a small but
-complete "fabfile" containing a single task::
+then executing them via the fab command-line tool. Below is a small but
+complete "fabfile" containing a single task:
from fabric.api import run
def host_type():
run('uname -s')
-Once a task is defined, it may be run on one or more servers, like so::
+Once a task is defined, it may be run on one or more servers, like so:
$ fab -H localhost,linuxbox host_type
[localhost] run: uname -s
@@ -73,24 +69,20 @@
Disconnecting from localhost... done.
Disconnecting from linuxbox... done.
-In addition to use via the ``fab`` tool, Fabric's components may be imported
+In addition to use via the fab tool, Fabric's components may be imported
into other Python code, providing a Pythonic interface to the SSH protocol
suite at a higher level than that provided by e.g. Paramiko (which
Fabric itself leverages.)
%prep
-%setup -q -n %{mod_name}-%{version}
+%setup -q -n Fabric-%{version}
%build
-export CFLAGS="%{optflags}"
python setup.py build
%install
python setup.py install --prefix=%{_prefix} --root=%{buildroot}
-%clean
-rm -rf %{buildroot}
-
%files
%defattr(-,root,root,-)
%doc README
++++++ Fabric-1.2.0.tar.bz2 -> Fabric-1.2.2.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Fabric-1.2.0/Fabric.egg-info/PKG-INFO new/Fabric-1.2.2/Fabric.egg-info/PKG-INFO
--- old/Fabric-1.2.0/Fabric.egg-info/PKG-INFO 2011-07-13 02:39:42.000000000 +0200
+++ new/Fabric-1.2.2/Fabric.egg-info/PKG-INFO 2011-09-02 00:29:16.000000000 +0200
@@ -1,6 +1,6 @@
Metadata-Version: 1.0
Name: Fabric
-Version: 1.2.0
+Version: 1.2.2
Summary: Fabric is a simple, Pythonic tool for remote execution and deployment.
Home-page: http://fabfile.org
Author: Jeff Forcier
@@ -8,7 +8,7 @@
License: UNKNOWN
Description:
To find out what's new in this version of Fabric, please see `the changelog
- <http://docs.fabfile.org/en/1.2.0/changelog.html>`_.
+ <http://docs.fabfile.org/en/1.2.2/changelog.html>`_.
You can also install the `in-development version
<https://github.com/fabric/fabric/tarball/master#egg=fabric-dev>`_ using
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Fabric-1.2.0/PKG-INFO new/Fabric-1.2.2/PKG-INFO
--- old/Fabric-1.2.0/PKG-INFO 2011-07-13 02:39:42.000000000 +0200
+++ new/Fabric-1.2.2/PKG-INFO 2011-09-02 00:29:16.000000000 +0200
@@ -1,6 +1,6 @@
Metadata-Version: 1.0
Name: Fabric
-Version: 1.2.0
+Version: 1.2.2
Summary: Fabric is a simple, Pythonic tool for remote execution and deployment.
Home-page: http://fabfile.org
Author: Jeff Forcier
@@ -8,7 +8,7 @@
License: UNKNOWN
Description:
To find out what's new in this version of Fabric, please see `the changelog
- <http://docs.fabfile.org/en/1.2.0/changelog.html>`_.
+ <http://docs.fabfile.org/en/1.2.2/changelog.html>`_.
You can also install the `in-development version
<https://github.com/fabric/fabric/tarball/master#egg=fabric-dev>`_ using
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Fabric-1.2.0/docs/changelog.rst new/Fabric-1.2.2/docs/changelog.rst
--- old/Fabric-1.2.0/docs/changelog.rst 2011-07-13 02:18:31.000000000 +0200
+++ new/Fabric-1.2.2/docs/changelog.rst 2011-09-02 00:29:08.000000000 +0200
@@ -25,6 +25,31 @@
Changelog
=========
+* :release:`1.2.2 <2011-09-01>`
+* :release:`1.1.4 <2011-09-01>`
+* :release:`1.0.4 <2011-09-01>`
+* :bug:`252` `~fabric.context_managers.settings` would silently fail to set
+ ``env`` values for keys which did not exist outside the context manager
+ block. It now works as expected. Thanks to Will Maier for the catch and
+ suggested solution.
+* :support:`393` Fixed a typo in an example code snippet in the task docs.
+ Thanks to Hugo Garza for the catch.
+* :bug:`396` :option:`--shortlist` broke after the addition of
+ :option:`--list-format <-F>` and no longer displayed the short list format
+ correctly. This has been fixed.
+* :bug:`373` Re-added missing functionality preventing :ref:`host exclusion
+ <excluding-hosts>` from working correctly.
+* :bug:`303` Updated terminal size detection to correctly skip over non-tty
+ stdout, such as when running ``fab taskname | other_command``.
+* :release:`1.2.1 <2011-08-21>`
+* :release:`1.1.3 <2011-08-21>`
+* :release:`1.0.3 <2011-08-21>`
+* :bug:`417` :ref:`abort-on-prompts` would incorrectly abort when set to True,
+ even if both password and host were defined. This has been fixed. Thanks to
+ Valerie Ishida for the report.
+* :support:`416` Updated documentation to reflect move from Redmine to Github.
+* :bug:`389` Fixed/improved error handling when Paramiko import fails. Thanks
+ to Brian Luft for the catch.
* :release:`1.2.0 <2011-07-12>`
* :feature:`22` Enhanced `@task <fabric.decorators.task>` to add :ref:`aliasing
<task-aliases>`, :ref:`per-module default tasks <default-tasks>`, and
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Fabric-1.2.0/docs/development.rst new/Fabric-1.2.2/docs/development.rst
--- old/Fabric-1.2.0/docs/development.rst 2011-07-09 01:39:34.000000000 +0200
+++ new/Fabric-1.2.2/docs/development.rst 2011-09-01 23:34:51.000000000 +0200
@@ -4,10 +4,9 @@
The Fabric development team is headed by `Jeff Forcier
<http://bitprophet.org>`_, aka ``bitprophet``. However, dozens of other
-developers pitch in by submitting patches and ideas, via individual emails,
-`Redmine <http://code.fabfile.org>`_, the `mailing list
-<http://lists.nongnu.org/mailman/listinfo/fab-user>`_ and `GitHub
-<http://github.com/fabric/fabric>`_.
+developers pitch in by submitting patches and ideas via `GitHub
+<https://github.com/fabric/fabric>`_, :ref:`IRC <irc>` or the `mailing list
+<http://lists.nongnu.org/mailman/listinfo/fab-user>`_.
Get the code
============
@@ -23,21 +22,21 @@
* **Use Fabric and send us feedback!** This is both the easiest and arguably
the most important way to improve the project -- let us know how you
currently use Fabric and how you want to use it. (Please do try to search the
- `ticket tracker <http://code.fabfile.org>`_ first, though, when submitting
- feature ideas.)
+ `ticket tracker <https://github.com/fabric/fabric/issues>`_ first, though,
+ when submitting feature ideas.)
* **Report bugs.** Pretty much a special case of the previous item: if you
- think you've found a bug in Fabric, check on the `Redmine ticket tracker
- <http://code.fabfile.org>`_ to see if anyone's reported it yet, and if not --
- file a bug! If possible, try to make sure you can replicate it repeatedly,
- and let us know the circumstances (what version of Fabric you're using, what
- platform you're on, and what exactly you were doing when the bug cropped up.)
-* **Submit patches or new features.** See the :ref:`source-code-checkouts`
- documentation, grab a Git clone of the source, and either email a patch to
- the mailing list or make your own GitHub fork and post a link to your fork
- (or a specific commit on a fork) in the appropriate Redmine ticket.
- While we may not always reply promptly, we do try to make time eventually to
- inspect all contributions and either incorporate them or explain why we don't
- feel the change is a good fit.
+ think you've found a bug in Fabric, check on the `ticket tracker
+ <https://github.com/fabric/fabric/issues>`_ to see if anyone's reported it
+ yet, and if not -- file a bug! If possible, try to make sure you can
+ replicate it repeatedly, and let us know the circumstances (what version of
+ Fabric you're using, what platform you're on, and what exactly you were doing
+ when the bug cropped up.)
+* **Submit patches or new features.** Make a `Github <https://github.com>`_
+ account, `create a fork <http://help.github.com/fork-a-repo/>`_ of `the main
+ Fabric repository <https://github.com/fabric/fabric>`_, and `submit a pull
+ request <http://help.github.com/send-pull-requests/>`_.
+
+While we may not always reply promptly, we do try to make time eventually to inspect all contributions and either incorporate them or explain why we don't feel the change is a good fit.
Communication
-------------
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Fabric-1.2.0/docs/index.rst new/Fabric-1.2.2/docs/index.rst
--- old/Fabric-1.2.0/docs/index.rst 2011-07-08 22:58:14.000000000 +0200
+++ new/Fabric-1.2.2/docs/index.rst 2011-09-01 23:34:51.000000000 +0200
@@ -170,10 +170,10 @@
Bugs/ticket tracker
-------------------
-To file new bugs or search existing ones, you may visit Fabric's `Redmine
-<http://redmine.org>`_ instance, located at `code.fabfile.org
-<http://code.fabfile.org>`_. Due to issues with spam, you'll need to (quickly
-and painlessly) register an account in order to post new tickets.
+To file new bugs or search existing ones, you may visit Fabric's `Github Issues
+<https://github.com/fabric/fabric/issues>`_ page. This does require a (free, easy to set up) Github account.
+
+.. _irc:
IRC
---
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Fabric-1.2.0/docs/installation.rst new/Fabric-1.2.2/docs/installation.rst
--- old/Fabric-1.2.0/docs/installation.rst 2011-07-09 01:39:34.000000000 +0200
+++ new/Fabric-1.2.2/docs/installation.rst 2011-09-01 23:34:51.000000000 +0200
@@ -143,18 +143,15 @@
To obtain a tar.gz or zip archive of the Fabric source code, you may visit
either of the following locations:
-* The official downloads are located in Fabric's Redmine instance at
- http://code.fabfile.org/projects/fabric/files/. This is the spot you want
- to download from for operating system packages, as the only changing part of
- the URL will be the filename itself and the md5 hashes will be consistent.
+* The official downloads are located on `our Github account's Downloads page
+ <https://github.com/fabric/fabric/downloads>`_. This is the spot you want to
+ download from for operating system packages, as the only changing part of the
+ URL will be the filename itself and the md5 hashes will be consistent.
* Our `Git repository viewer <http://git.fabfile.org>`_ provides downloads of
all tagged releases. See the "Download" column, next to the "Tag" column in
the middle of the front page. Please note that due to how cgit generates tag
archives, the md5 sums will change over time, so use of this location for
package downloads is not recommended.
-* `Our GitHub mirror <http://github.com/fabric/fabric>`_ also has downloads
- of all tagged releases -- just click the 'Download' button near the top of
- the main page.
* `Fabric's PyPI page <http://pypi.python.org/pypi/Fabric>`_ offers manual
downloads in addition to being the entry point for ``pip`` and
``easy-install``.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Fabric-1.2.0/docs/usage/execution.rst new/Fabric-1.2.2/docs/usage/execution.rst
--- old/Fabric-1.2.0/docs/usage/execution.rst 2011-07-09 01:39:07.000000000 +0200
+++ new/Fabric-1.2.2/docs/usage/execution.rst 2011-09-02 00:28:55.000000000 +0200
@@ -384,11 +384,29 @@
per-task kwargs, in that it is stripped from the actual task invocation. This
example would have the same result as the global exclude above::
- $ fab -R myrole mytask:exclude_hosts="host2;host5"
+ $ fab mytask:roles=myrole,exclude_hosts="host2;host5"
Note that the host list is semicolon-separated, just as with the ``hosts``
per-task argument.
+Combining exclusions
+~~~~~~~~~~~~~~~~~~~~
+
+Host exclusion lists, like host lists themselves, are not merged together
+across the different "levels" they can be declared in. For example, a global
+``-x`` option will not affect a per-task host list set with a decorator or
+keyword argument, nor will per-task ``exclude_hosts`` keyword arguments affect
+a global ``-H`` list.
+
+There is one minor exception to this rule, namely that CLI-level keyword
+arguments (``mytask:exclude_hosts=x,y``) **will** be taken into account when
+examining host lists set via ``@hosts`` or ``@roles``. Thus a task function
+decorated with ``@hosts('host1', 'host2')`` executed as ``fab
+taskname:exclude_hosts=host2`` will only run on ``host1``.
+
+As with the host list merging, this functionality is currently limited (partly
+to keep the implementation simple) and may be expanded in future releases.
+
.. _failures:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Fabric-1.2.0/docs/usage/tasks.rst new/Fabric-1.2.2/docs/usage/tasks.rst
--- old/Fabric-1.2.0/docs/usage/tasks.rst 2011-07-13 01:53:47.000000000 +0200
+++ new/Fabric-1.2.2/docs/usage/tasks.rst 2011-09-02 00:29:08.000000000 +0200
@@ -66,7 +66,7 @@
The quickest way to make use of new-style task features is to wrap basic task functions with `@task <fabric.decorators.task>`::
- from fabric.api import tasks, run
+ from fabric.api import task, run
@task
def mytask():
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Fabric-1.2.0/fabric/context_managers.py new/Fabric-1.2.2/fabric/context_managers.py
--- old/Fabric-1.2.0/fabric/context_managers.py 2011-06-29 21:05:04.000000000 +0200
+++ new/Fabric-1.2.2/fabric/context_managers.py 2011-09-02 00:22:46.000000000 +0200
@@ -85,14 +85,19 @@
to be used directly.
"""
previous = {}
+ new = []
for key, value in kwargs.iteritems():
if key in env:
previous[key] = env[key]
+ else:
+ new.append(key)
env[key] = value
try:
yield
finally:
env.update(previous)
+ for key in new:
+ del env[key]
def settings(*args, **kwargs):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Fabric-1.2.0/fabric/main.py new/Fabric-1.2.2/fabric/main.py
--- old/Fabric-1.2.0/fabric/main.py 2011-07-13 01:53:47.000000000 +0200
+++ new/Fabric-1.2.2/fabric/main.py 2011-09-02 00:29:08.000000000 +0200
@@ -518,8 +518,9 @@
for pair in _escape_split(',', argstr):
k, _, v = pair.partition('=')
if _:
- # Catch, interpret host/hosts/role/roles/exclude_hosts kwargs
- if k in ['host', 'hosts', 'role', 'roles','exclude_hosts']:
+ # Catch, interpret host/hosts/role/roles/exclude_hosts
+ # kwargs
+ if k in ['host', 'hosts', 'role', 'roles', 'exclude_hosts']:
if k == 'host':
hosts = [v.strip()]
elif k == 'hosts':
@@ -567,11 +568,12 @@
role_hosts += value
# Return deduped combo of hosts and role_hosts, preserving order within
- # them (vs using set(), which may lose ordering).
+ # them (vs using set(), which may lose ordering) and skipping hosts to be
+ # excluded.
cleaned_hosts = _clean_hosts(list(hosts) + list(role_hosts))
all_hosts = []
for host in cleaned_hosts:
- if host not in all_hosts:
+ if host not in all_hosts and host not in exclude:
all_hosts.append(host)
return all_hosts
@@ -594,9 +596,8 @@
# Decorator-specific hosts/roles go next
func_hosts = getattr(command, 'hosts', [])
func_roles = getattr(command, 'roles', [])
- func_exclude_hosts = getattr(command, 'exclude_hosts', [])
if func_hosts or func_roles:
- return _merge(func_hosts, func_roles, func_exclude_hosts)
+ return _merge(func_hosts, func_roles, cli_exclude_hosts)
# Finally, the env is checked (which might contain globally set lists from
# the CLI or from module-level code). This will be the empty list if these
# have not been set -- which is fine, this method should return an empty
@@ -646,7 +647,8 @@
for option in env_options:
state.env[option.dest] = getattr(options, option.dest)
- # Handle --hosts, --roles, --exclude-hosts (comma separated string => list)
+ # Handle --hosts, --roles, --exclude-hosts (comma separated string =>
+ # list)
for key in ['hosts', 'roles', 'exclude_hosts']:
if key in state.env and isinstance(state.env[key], basestring):
state.env[key] = state.env[key].split(',')
@@ -702,6 +704,7 @@
# it overrides use of --list-format if somebody were to specify both
if options.shortlist:
options.list_format = 'short'
+ options.list_commands = True
# List available commands
if options.list_commands:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Fabric-1.2.0/fabric/network.py new/Fabric-1.2.2/fabric/network.py
--- old/Fabric-1.2.0/fabric/network.py 2011-07-09 01:39:07.000000000 +0200
+++ new/Fabric-1.2.2/fabric/network.py 2011-09-02 00:28:55.000000000 +0200
@@ -17,9 +17,13 @@
import warnings
warnings.simplefilter('ignore', DeprecationWarning)
import paramiko as ssh
-except ImportError:
- abort("paramiko is a required module. Please install it:\n\t"
- "$ sudo easy_install paramiko")
+except ImportError, e:
+ print >> sys.stderr, """There was a problem importing our SSH library. Specifically:
+
+ %s
+
+Please make sure all dependencies are installed and importable.""" % e
+ sys.exit(1)
host_pattern = r'((?P<user>.+)@)?(?P<host>[^:]+)(:(?P<port>\d+))?'
@@ -319,8 +323,8 @@
@wraps(func)
def host_prompting_wrapper(*args, **kwargs):
- handle_prompt_abort()
while not env.get('host_string', False):
+ handle_prompt_abort()
host_string = raw_input("No hosts found. Please specify (single)"
" host string for connection: ")
interpret_host_string(host_string)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Fabric-1.2.0/fabric/operations.py new/Fabric-1.2.2/fabric/operations.py
--- old/Fabric-1.2.0/fabric/operations.py 2011-07-09 01:39:07.000000000 +0200
+++ new/Fabric-1.2.2/fabric/operations.py 2011-09-02 00:28:55.000000000 +0200
@@ -40,12 +40,13 @@
local (stdout-based) terminal window size on non-Windows platforms.
"""
rows, cols = 24, 80
- if not win32 and sys.stdin.isatty():
+ if not win32 and sys.stdout.isatty():
# We want two short unsigned integers (rows, cols)
fmt = 'HH'
# Create an empty (zeroed) buffer for ioctl to map onto. Yay for C!
buffer = struct.pack(fmt, 0, 0)
- # Call TIOCGWINSZ to get window size of stdout, returns our filled buffer
+ # Call TIOCGWINSZ to get window size of stdout, returns our filled
+ # buffer
try:
result = fcntl.ioctl(sys.stdout.fileno(), termios.TIOCGWINSZ,
buffer)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Fabric-1.2.0/fabric/version.py new/Fabric-1.2.2/fabric/version.py
--- old/Fabric-1.2.0/fabric/version.py 2011-07-13 02:17:18.000000000 +0200
+++ new/Fabric-1.2.2/fabric/version.py 2011-09-02 00:29:08.000000000 +0200
@@ -10,6 +10,9 @@
from os.path import abspath, dirname
+VERSION = (1, 2, 2, 'final', 0)
+
+
def git_sha():
loc = abspath(dirname(__file__))
p = Popen(
@@ -21,8 +24,6 @@
return p.communicate()[0]
-VERSION = (1, 2, 0, 'final', 0)
-
def get_version(form='short'):
"""
Return a version string for this package, based on `VERSION`.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Fabric-1.2.0/tests/test_context_managers.py new/Fabric-1.2.2/tests/test_context_managers.py
--- old/Fabric-1.2.0/tests/test_context_managers.py 2011-07-09 01:39:07.000000000 +0200
+++ new/Fabric-1.2.2/tests/test_context_managers.py 2011-09-02 00:28:55.000000000 +0200
@@ -1,6 +1,6 @@
from __future__ import with_statement
-from nose.tools import eq_
+from nose.tools import eq_, ok_
from fabric.state import env
from fabric.context_managers import cd, settings
@@ -44,14 +44,15 @@
# settings()
#
-def test_setting_new_env_dict_key_should_not_raise_keyerror():
+def test_setting_new_env_dict_key_should_work():
"""
- Using settings() with a previously nonexistent key should not error
+ Using settings() with a previously nonexistent key should work correctly
"""
- # Nose has no obvious way to assert a NON-RAISED exception :( so ye olde
- # "if it runs it passes" will have to do.
- with settings(thiskeyreallyshouldnotexist='value'):
- pass
+ key = 'thisshouldnevereverexistseriouslynow'
+ value = 'a winner is you'
+ with settings(**{key: value}):
+ ok_(key in env)
+ ok_(key not in env)
def test_settings():
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Fabric-1.2.0/tests/test_main.py new/Fabric-1.2.2/tests/test_main.py
--- old/Fabric-1.2.0/tests/test_main.py 2011-07-13 01:53:47.000000000 +0200
+++ new/Fabric-1.2.2/tests/test_main.py 2011-09-02 00:29:08.000000000 +0200
@@ -179,8 +179,7 @@
assert 'foo' not in get_hosts(command, [], [])
-@patched_env({'hosts': [' foo ', 'bar '], 'roles': [],
- 'exclude_hosts':[]})
+@patched_env({'hosts': [' foo ', 'bar '], 'roles': [], 'exclude_hosts': []})
def test_hosts_stripped_env_hosts():
"""
Make sure hosts defined in env.hosts are cleaned of extra spaces
@@ -232,6 +231,24 @@
#
+# Host exclusion
+#
+
+def dummy(): pass
+
+def test_get_hosts_excludes_cli_exclude_hosts_from_cli_hosts():
+ assert 'foo' not in get_hosts(dummy, ['foo', 'bar'], [], ['foo'])
+
+def test_get_hosts_excludes_cli_exclude_hosts_from_decorator_hosts():
+ assert 'foo' not in get_hosts(hosts('foo', 'bar')(dummy), [], [], ['foo'])
+
+@patched_env({'hosts': ['foo', 'bar'], 'exclude_hosts': ['foo']})
+def test_get_hosts_excludes_global_exclude_hosts_from_global_hosts():
+ assert 'foo' not in get_hosts(dummy, [], [], [])
+
+
+
+#
# Basic role behavior
#
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Fabric-1.2.0/tests/test_network.py new/Fabric-1.2.2/tests/test_network.py
--- old/Fabric-1.2.0/tests/test_network.py 2011-07-09 01:39:07.000000000 +0200
+++ new/Fabric-1.2.2/tests/test_network.py 2011-09-02 00:28:55.000000000 +0200
@@ -173,6 +173,9 @@
@raises(SystemExit)
@with_patched_object(output, 'aborts', False)
def test_aborts_on_prompt_with_abort_on_prompt(self):
+ """
+ abort_on_prompt=True should abort when prompt() is used
+ """
env.abort_on_prompts = True
prompt("This will abort")
@@ -181,6 +184,9 @@
@raises(SystemExit)
@with_patched_object(output, 'aborts', False)
def test_aborts_on_password_prompt_with_abort_on_prompt(self):
+ """
+ abort_on_prompt=True should abort when password prompts occur
+ """
env.password = None
env.abort_on_prompts = True
with password_response(PASSWORDS[env.user], times_called=1):
@@ -189,6 +195,18 @@
@mock_streams('stdout')
+ @server()
+ def test_does_not_abort_with_password_and_host_with_abort_on_prompt(self):
+ """
+ abort_on_prompt=True should not abort if no prompts are needed
+ """
+ env.abort_on_prompts = True
+ env.password = PASSWORDS[env.user]
+ # env.host_string is automatically filled in when using server()
+ run("ls /simple")
+
+
+ @mock_streams('stdout')
@server()
def test_trailing_newline_line_drop(self):
"""
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Remember to have fun...
--
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 mcelog for openSUSE:Factory
checked in at Mon Sep 5 16:38:45 CEST 2011.
--------
--- mcelog/mcelog.changes 2011-06-07 11:53:11.000000000 +0200
+++ mcelog/mcelog.changes 2011-08-18 00:20:41.000000000 +0200
@@ -1,0 +2,28 @@
+Thu Aug 18 00:09:50 CEST 2011 - ro(a)suse.de
+
+- update to GIT of today (6e4e2a000124f08f1a4e3791c2b02ec9ae6af393)
+- many bugfixes
+- Implement re-parsing of mcelog output in ASCII
+- Add support for non-page aligned EFI Configuration Tables
+- Add --debug-numerrors
+- Add decoder for corrected XEN events to --ascii
+- Correctly log kernel supplied time
+- record the trigger info in the log
+- mcelog: Implement dmi decoding for UEFI
+- mcelog: Add usage information to mcelog for --ignorenodev
+- Fix length calculation of SMBIOS mapping
+- change disclaimer
+- explictly spell out corrected errors
+
+-------------------------------------------------------------------
+Sat Jul 2 21:50:53 UTC 2011 - trenn(a)suse.de
+
+- Update to latest git version (fate#311830)
+ Unfortunately versions have not been increased, latest tag
+ still is 1.0-pre3 (same as 1 year ago), therefore the date
+ is included in the version. I try to push maintainers to
+ increase the version number.
+- Invert logic of db prefill messages -> info if it works, silent
+ if not
+
+-------------------------------------------------------------------
@@ -11,0 +40,9 @@
+
+-------------------------------------------------------------------
+Tue Apr 6 15:15:45 CEST 2010 - trenn(a)suse.de
+
+- Update to latest git version having quite some fixes (no features):
+ - Fixed some memleaks and made app valgrind conform
+ - Fixed theoretical DoS attack (bnc#586241)
+ - Added support of additional cpus
+ - Fixed a lot messages (in manpage, in triggers, in README, ...)
calling whatdependson for head-i586
Old:
----
mcelog-1.0pre3.6363f5b719e9.tar.bz2
New:
----
mcelog-1.0pre3.6e4e2a000124.tar.bz2
mcelog_invert_prefill_db_warning.patch
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ mcelog.spec ++++++
--- /var/tmp/diff_new_pack.d44muK/_old 2011-09-05 16:38:26.000000000 +0200
+++ /var/tmp/diff_new_pack.d44muK/_new 2011-09-05 16:38:26.000000000 +0200
@@ -21,8 +21,8 @@
Name: mcelog
License: GPLv2+
Summary: Log Machine Check Events
-Version: 1.0pre3.6363f5b719e9
-Release: 6
+Version: 1.0pre3.6e4e2a000124
+Release: 1
AutoReqProv: on
ExclusiveArch: x86_64
BuildRequires: libesmtp-devel
@@ -33,6 +33,7 @@
Source2: mcelog.sysconfig
Source6: README.email_setup
Patch1: email.patch
+Patch2: mcelog_invert_prefill_db_warning.patch
Group: System/Monitoring
BuildRoot: %{_tmppath}/%{name}-%{version}-build
@@ -55,6 +56,7 @@
%prep
%setup
%patch1 -p1
+%patch2 -p1
%build
export SUSE_ASNEEDED=0
++++++ email.patch ++++++
--- /var/tmp/diff_new_pack.d44muK/_old 2011-09-05 16:38:26.000000000 +0200
+++ /var/tmp/diff_new_pack.d44muK/_new 2011-09-05 16:38:26.000000000 +0200
@@ -1,22 +1,11 @@
----
- Makefile | 10 +++
- email.c | 184 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
- email.h | 32 ++++++++++
- mcelog.c | 93 +++++++++++++++++++++++++++++++
- mcelog.h | 1
- msg.c | 8 ++
- 6 files changed, 325 insertions(+), 3 deletions(-)
-
-Index: mcelog-1.0pre3.6363f5b719e9/Makefile
-===================================================================
---- mcelog-1.0pre3.6363f5b719e9.orig/Makefile
-+++ mcelog-1.0pre3.6363f5b719e9/Makefile
+--- mcelog-1.0pre3.6e4e2a000124/Makefile
++++ mcelog-1.0pre3.6e4e2a000124/Makefile
@@ -1,3 +1,4 @@
+CONFIG_EMAIL := 1
CFLAGS := -g -Os
prefix := /usr
etcprefix :=
-@@ -34,7 +35,8 @@ OBJ := p4.o k8.o mcelog.o dmi.o tsc.o co
+@@ -34,7 +35,8 @@
client.o cache.o sysfs.o yellow.o page.o rbtree.o \
xeon75xx.o sandy-bridge.o
DISKDB_OBJ := diskdb.o dimm.o db.o
@@ -26,7 +15,7 @@
DOC := mce.pdf
ADD_DEFINES :=
-@@ -46,6 +48,12 @@ OBJ += ${DISKDB_OBJ}
+@@ -46,6 +48,12 @@
all: dbquery
endif
@@ -39,10 +28,8 @@
SRC := $(OBJ:.o=.c)
mcelog: ${OBJ}
-Index: mcelog-1.0pre3.6363f5b719e9/email.c
-===================================================================
---- /dev/null
-+++ mcelog-1.0pre3.6363f5b719e9/email.c
+--- mcelog-1.0pre3.6e4e2a000124/email.c
++++ mcelog-1.0pre3.6e4e2a000124/email.c
@@ -0,0 +1,184 @@
+#include <unistd.h>
+#include <signal.h>
@@ -228,10 +215,8 @@
+ smtp_destroy_session (session);
+ return 0;
+}
-Index: mcelog-1.0pre3.6363f5b719e9/email.h
-===================================================================
---- /dev/null
-+++ mcelog-1.0pre3.6363f5b719e9/email.h
+--- mcelog-1.0pre3.6e4e2a000124/email.h
++++ mcelog-1.0pre3.6e4e2a000124/email.h
@@ -0,0 +1,32 @@
+#ifndef _MCELOG_EMAIL_H_
+#define _MCELOG_EMAIL_H_
@@ -265,19 +250,17 @@
+#endif
+
+#endif
-Index: mcelog-1.0pre3.6363f5b719e9/mcelog.c
-===================================================================
---- mcelog-1.0pre3.6363f5b719e9.orig/mcelog.c
-+++ mcelog-1.0pre3.6363f5b719e9/mcelog.c
+--- mcelog-1.0pre3.6e4e2a000124/mcelog.c
++++ mcelog-1.0pre3.6e4e2a000124/mcelog.c
@@ -37,6 +37,7 @@
#include <assert.h>
#include <signal.h>
#include <pwd.h>
+#include <sys/wait.h>
+ #include <fnmatch.h>
#include "mcelog.h"
#include "paths.h"
- #include "k8.h"
-@@ -58,6 +59,9 @@
+@@ -59,6 +60,9 @@
#include "yellow.h"
#include "page.h"
@@ -287,7 +270,7 @@
enum cputype cputype = CPU_GENERIC;
char *logfn = LOG_DEV_FILENAME;
-@@ -69,7 +73,7 @@ static double cpumhz;
+@@ -70,7 +74,7 @@
static int cpumhz_forced;
int ascii_mode;
int dump_raw_ascii;
@@ -296,7 +279,7 @@
static char *inputfile;
char *processor_flags;
static int foreground;
-@@ -792,6 +796,7 @@ void usage(void)
+@@ -914,6 +918,7 @@
"--num-errors N Only process N errors (for testing)\n"
"--pidfile file Write pid of daemon into file\n"
);
@@ -304,15 +287,15 @@
diskdb_usage();
print_cputypes();
exit(1);
-@@ -855,6 +860,7 @@ static struct option options[] = {
- { "num-errors", 1, NULL, O_NUMERRORS },
+@@ -979,6 +984,7 @@
{ "pidfile", 1, NULL, O_PIDFILE },
+ { "debug-numerrors", 0, NULL, O_DEBUG_NUMERRORS }, /* undocumented: for testing */
DISKDB_OPTIONS
+ EMAIL_OPTIONS
{}
};
-@@ -1026,11 +1032,86 @@ static void drop_cred(void)
+@@ -1153,11 +1159,86 @@
}
}
@@ -399,15 +382,7 @@
if (recordlen == 0) {
Wprintf("no data in mce record\n");
-@@ -1041,19 +1122,23 @@ static void process(int fd, unsigned rec
- if (len < 0)
- err("read");
-
-- for (i = 0; (i < len / (int)recordlen) && !finish; i++) {
-+ for (i = 0; (i < len / (int)recordlen) && !finish; i++) {
- struct mce *mce = (struct mce *)(buf + i*recordlen);
- mce_prepare(mce);
- if (numerrors > 0 && --numerrors == 0)
+@@ -1177,12 +1258,16 @@
finish = 1;
if (!mce_filter(mce, recordlen))
continue;
@@ -424,7 +399,7 @@
flushlog();
}
-@@ -1161,6 +1246,8 @@ int main(int ac, char **av)
+@@ -1293,6 +1378,8 @@
exit(0);
} else if (diskdb_cmd(opt, ac, av)) {
exit(0);
@@ -433,7 +408,7 @@
} else if (opt == 0)
break;
}
-@@ -1169,6 +1256,8 @@ int main(int ac, char **av)
+@@ -1301,6 +1388,8 @@
logfn = av[optind++];
if (av[optind])
usage();
@@ -442,10 +417,18 @@
checkdmi();
general_setup();
-Index: mcelog-1.0pre3.6363f5b719e9/msg.c
-===================================================================
---- mcelog-1.0pre3.6363f5b719e9.orig/msg.c
-+++ mcelog-1.0pre3.6363f5b719e9/msg.c
+--- mcelog-1.0pre3.6e4e2a000124/mcelog.h
++++ mcelog-1.0pre3.6e4e2a000124/mcelog.h
+@@ -120,6 +120,7 @@
+ enum option_ranges {
+ O_COMMON = 500,
+ O_DISKDB = 1000,
++ O_EMAIL = 1500,
+ };
+
+ enum syslog_opt {
+--- mcelog-1.0pre3.6e4e2a000124/msg.c
++++ mcelog-1.0pre3.6e4e2a000124/msg.c
@@ -8,10 +8,13 @@
#include "mcelog.h"
#include "msg.h"
@@ -460,7 +443,7 @@
static char *output_fn;
int need_stdout(void)
-@@ -135,6 +138,11 @@ int Wprintf(char *fmt, ...)
+@@ -135,6 +138,11 @@
n = vfprintf(output_fh ? output_fh : stdout, fmt, ap);
va_end(ap);
}
@@ -472,15 +455,3 @@
return n;
}
-Index: mcelog-1.0pre3.6363f5b719e9/mcelog.h
-===================================================================
---- mcelog-1.0pre3.6363f5b719e9.orig/mcelog.h
-+++ mcelog-1.0pre3.6363f5b719e9/mcelog.h
-@@ -122,6 +122,7 @@ enum cputype {
- enum option_ranges {
- O_COMMON = 500,
- O_DISKDB = 1000,
-+ O_EMAIL = 1500,
- };
-
- enum syslog_opt {
++++++ mcelog-1.0pre3.6363f5b719e9.tar.bz2 -> mcelog-1.0pre3.6e4e2a000124.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mcelog-1.0pre3.6363f5b719e9/CHANGES new/mcelog-1.0pre3.6e4e2a000124/CHANGES
--- old/mcelog-1.0pre3.6363f5b719e9/CHANGES 2010-10-17 20:33:36.000000000 +0200
+++ new/mcelog-1.0pre3.6e4e2a000124/CHANGES 2011-08-18 00:01:26.000000000 +0200
@@ -1,5 +1,7 @@
<newer changes first>
+Add Linux Kongress 2010 paper
+Add Sandy Bridge Support
Write pid file by default in daemon mode
Reopen log files on SIGUSR1 in daemon mode
Default --daemon mode to logging to /var/log/mcelog
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mcelog-1.0pre3.6363f5b719e9/README new/mcelog-1.0pre3.6e4e2a000124/README
--- old/mcelog-1.0pre3.6363f5b719e9/README 2010-10-17 20:33:36.000000000 +0200
+++ new/mcelog-1.0pre3.6e4e2a000124/README 2011-08-18 00:01:26.000000000 +0200
@@ -30,6 +30,14 @@
The recommended mode is daemon, because several new functions (like page error
predictive failure analysis) require a continuously running daemon.
+Documentation:
+
+The primary reference documentation are the man pages.
+lk10-mcelog.pdf has a overview over the errors mcelog handles
+(originally from Linux Kongress 2010)
+mce.pdf is a very old paper describing the first releases of mcelog
+(some parts are obsolete)
+
For distributors:
Please install a init script by default that runs mcelog in daemon mode.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mcelog-1.0pre3.6363f5b719e9/dmi.c new/mcelog-1.0pre3.6e4e2a000124/dmi.c
--- old/mcelog-1.0pre3.6363f5b719e9/dmi.c 2010-10-17 20:33:36.000000000 +0200
+++ new/mcelog-1.0pre3.6e4e2a000124/dmi.c 2011-08-18 00:01:26.000000000 +0200
@@ -137,6 +137,52 @@
}
}
+static int get_efi_base_addr(size_t *address)
+{
+ FILE *efi_systab;
+ const char *filename;
+ char linebuf[64];
+ int ret = 0;
+
+ *address = 0; /* Prevent compiler warning */
+
+ /* Linux 2.6.7 and up: /sys/firmware/efi/systab */
+ filename = "/sys/firmware/efi/systab";
+ if ((efi_systab = fopen(filename, "r")) != NULL)
+ goto check_symbol;
+
+ /* Linux up to 2.6.6: /proc/efi/systab */
+ filename = "/proc/efi/systab";
+ if ((efi_systab = fopen(filename, "r")) != NULL)
+ goto check_symbol;
+
+ /* Failed to open EFI interfaces */
+ return ret;
+
+check_symbol:
+ while ((fgets(linebuf, sizeof(linebuf) - 1, efi_systab)) != NULL) {
+ char *addrp = strchr(linebuf, '=');
+ *(addrp++) = '\0';
+
+ if (strcmp(linebuf, "SMBIOS") == 0) {
+ *address = strtoul(addrp, NULL, 0);
+ ret = 1;
+ break;
+ }
+ }
+
+ if (fclose(efi_systab) != 0)
+ perror(filename);
+
+ if (!ret)
+ Eprintf("%s: SMBIOS entry point missing", filename);
+
+ if (verbose)
+ printf("%s: SMBIOS entry point at 0x%08lx\n", filename,
+ (unsigned long)*address);
+ return ret;
+}
+
int opendmi(void)
{
struct anchor *a, *abase;
@@ -146,6 +192,8 @@
unsigned corr;
int err = -1;
const int segsize = 0x10000;
+ size_t entry_point_addr = 0;
+ size_t length = 0;
if (entries)
return 0;
@@ -156,9 +204,40 @@
return -1;
}
- abase = mmap(NULL, segsize-1, PROT_READ, MAP_SHARED, memfd, 0xf0000);
+ /*
+ * On EFI-based systems, the SMBIOS Entry Point structure can be
+ * located by looking in the EFI Configuration Table.
+ */
+ if (get_efi_base_addr(&entry_point_addr)) {
+ size_t addr_start = round_down(entry_point_addr, pagesize);
+ size_t addr_end = round_up(entry_point_addr + 0x20, pagesize);
+ length = addr_end - addr_start;
+
+ /* mmap() the address of SMBIOS structure table entry point. */
+ abase = mmap(NULL, length, PROT_READ, MAP_SHARED, memfd,
+ addr_start);
+ if (abase == (struct anchor *)-1) {
+ Eprintf("Cannot mmap 0x%lx for efi mode: %s",
+ (unsigned long)entry_point_addr,
+ strerror(errno));
+ goto legacy;
+ }
+ a = (struct anchor*)((char*)abase + (entry_point_addr - addr_start));
+ goto fill_entries;
+ }
+
+legacy:
+ /*
+ * On non-EFI systems, the SMBIOS Entry Point structure can be located
+ * by searching for the anchor-string on paragraph (16-byte) boundaries
+ * within the physical memory address range 000F0000h to 000FFFFFh
+ */
+ length = segsize - 1;
+ abase = mmap(NULL, length, PROT_READ, MAP_SHARED, memfd, 0xf0000);
+
if (abase == (struct anchor *)-1) {
- Eprintf("Cannot mmap 0xf0000: %s", strerror(errno));
+ Eprintf("Cannot mmap 0xf0000 for legacy mode: %s",
+ strerror(errno));
goto out;
}
@@ -175,11 +254,13 @@
a = p;
+fill_entries:
if (verbose)
printf("DMI tables at %x, %u bytes, %u entries\n",
a->table, a->length, a->numentries);
corr = a->table - round_down(a->table, pagesize);
- entrieslen = round_up(a->length + pagesize, pagesize);
+ entrieslen = round_up(a->table + a->length, pagesize) -
+ round_down(a->table, pagesize);
entries = mmap(NULL, entrieslen,
PROT_READ, MAP_SHARED, memfd,
round_down(a->table, pagesize));
@@ -195,7 +276,7 @@
err = 0;
out_mmap:
- munmap(abase, 0xffff);
+ munmap(abase, length);
out:
close(memfd);
return err;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mcelog-1.0pre3.6363f5b719e9/input/xen new/mcelog-1.0pre3.6e4e2a000124/input/xen
--- old/mcelog-1.0pre3.6363f5b719e9/input/xen 1970-01-01 01:00:00.000000000 +0100
+++ new/mcelog-1.0pre3.6e4e2a000124/input/xen 2011-08-18 00:01:26.000000000 +0200
@@ -0,0 +1,3 @@
+(XEN) MCE: The hardware reports a non fatal, correctable incident occurred on CPU 1.
+(XEN) Bank 2: d400008000040150 at 182c480179cf0
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mcelog-1.0pre3.6363f5b719e9/mcelog.c new/mcelog-1.0pre3.6e4e2a000124/mcelog.c
--- old/mcelog-1.0pre3.6363f5b719e9/mcelog.c 2010-10-17 20:33:36.000000000 +0200
+++ new/mcelog-1.0pre3.6e4e2a000124/mcelog.c 2011-08-18 00:01:26.000000000 +0200
@@ -37,6 +37,7 @@
#include <assert.h>
#include <signal.h>
#include <pwd.h>
+#include <fnmatch.h>
#include "mcelog.h"
#include "paths.h"
#include "k8.h"
@@ -80,14 +81,14 @@
static char logfile_default[] = LOG_FILE;
static char *pidfile = pidfile_default;
static char *logfile;
+static int debug_numerrors;
static void check_cpu(void);
static void disclaimer(void)
{
- Wprintf("HARDWARE ERROR. This is *NOT* a software problem!\n");
- Wprintf("Please contact your hardware vendor\n");
+ Wprintf("Hardware event. This is not a software error.\n");
}
static char *extended_bankname(unsigned bank)
@@ -192,6 +193,24 @@
*model += c.c.ext_model << 4;
}
+static u32 unparse_cpuid(unsigned family, unsigned model)
+{
+ union {
+ struct cpuid1 c;
+ u32 v;
+ } c;
+
+ c.c.family = family;
+ if (family >= 0xf) {
+ c.c.family = 0xf;
+ c.c.ext_family = family - 0xf;
+ }
+ c.c.model = model & 0xf;
+ if (family == 6 || family == 0xf)
+ c.c.ext_model = model >> 4;
+ return c.v;
+}
+
static char *cputype_name[] = {
[CPU_GENERIC] = "generic CPU",
[CPU_P6OLD] = "Intel PPro/P2/P3/old Xeon",
@@ -261,19 +280,35 @@
exit(1);
}
+static char *vendor[] = {
+ [0] = "Intel",
+ [1] = "Cyrix",
+ [2] = "AMD",
+ [3] = "UMC",
+ [4] = "vendor 4",
+ [5] = "Centaur",
+ [6] = "vendor 6",
+ [7] = "Transmeta",
+ [8] = "NSC"
+};
+
+static unsigned cpuvendor_to_num(char *name)
+{
+ unsigned i;
+ unsigned v;
+ char *end;
+
+ v = strtoul(name, &end, 0);
+ if (end > name)
+ return v;
+ for (i = 0; i < NELE(vendor); i++)
+ if (!strcmp(name, vendor[i]))
+ return i;
+ return 0;
+}
+
static char *cpuvendor_name(u32 cpuvendor)
{
- static char *vendor[] = {
- [0] = "Intel",
- [1] = "Cyrix",
- [2] = "AMD",
- [3] = "UMC",
- [4] = "vendor 4",
- [5] = "Centaur",
- [6] = "vendor 6",
- [7] = "Transmeta",
- [8] = "NSC"
- };
return (cpuvendor < NELE(vendor)) ? vendor[cpuvendor] : "Unknown vendor";
}
@@ -318,7 +353,7 @@
static void mce_prepare(struct mce *m)
{
mce_cpuid(m);
- if (m->time)
+ if (!m->time)
m->time = time(NULL);
}
@@ -409,10 +444,6 @@
CPRINT("SOCKETID %u", socketid);
CPRINT("APICID %u", apicid);
CPRINT("MCGCAP %#llx", mcgcap);
- if (m->aux0)
- CPRINT("AUX0 %#llx", aux0);
- if (m->aux1)
- CPRINT("AUX1 %#llx", aux1);
#undef CPRINT
Wprintf("\n");
}
@@ -491,8 +522,21 @@
return s;
}
+static char *skip_syslog(char *s)
+{
+ char *p;
+
+ /* Handle syslog output */
+ p = strstr(s, "mcelog: ");
+ if (p)
+ return p + sizeof("mcelog: ") - 1;
+ return s;
+}
+
static char *skipgunk(char *s)
{
+ s = skip_syslog(s);
+
s = skipspace(s);
if (*s == '<') {
s += strcspn(s, ">");
@@ -508,10 +552,42 @@
return skipspace(s);
}
+static inline int urange(unsigned val, unsigned lo, unsigned hi)
+{
+ return val >= lo && val <= hi;
+}
+
+static int is_short(char *name)
+{
+ return strlen(name) == 3 &&
+ isupper(name[0]) &&
+ islower(name[1]) &&
+ islower(name[2]);
+}
+
+static unsigned skip_date(char *s)
+{
+ unsigned day, hour, min, year, sec;
+ char dayname[11];
+ char month[11];
+ unsigned next;
+
+ if (sscanf(s, "%10s %10s %u %u:%u:%u %u%n",
+ dayname, month, &day, &hour, &min, &sec, &year, &next) != 7)
+ return 0;
+ if (!is_short(dayname) || !is_short(month) || !urange(day, 1, 31) ||
+ !urange(hour, 0, 24) || !urange(min, 0, 59) || !urange(sec, 0, 59) ||
+ year < 1900)
+ return 0;
+ return next;
+}
+
static void dump_mce_final(struct mce *m, char *symbol, int missing, int recordlen,
int dseen)
{
m->finished = 1;
+ if (m->cpuid)
+ mce_cpuid(m);
if (!dump_raw_ascii) {
if (!dseen)
disclaimer();
@@ -525,6 +601,23 @@
flushlog();
}
+static char *skip_patterns[] = {
+ "MCA:*",
+ "MCi_MISC register valid*",
+ "MC? status*",
+ "Unsupported new Family*",
+ "Kernel does not support page offline interface",
+ NULL
+};
+
+static int match_patterns(char *s, char **pat)
+{
+ for (; *pat; pat++)
+ if (!fnmatch(*pat, s, 0))
+ return 0;
+ return 1;
+}
+
#define FIELD(f) \
if (recordlen < endof_field(struct mce, f)) \
recordlen = endof_field(struct mce, f)
@@ -560,12 +653,14 @@
symbol[0] = '\0';
while (next > 0 || getdelim(&line, &linelen, '\n', inf) > 0) {
int n = 0;
+ char *start;
s = next > 0 ? s + next : line;
s = skipgunk(s);
+ start = s;
next = 0;
- if (!strncmp(s, "CPU", 3)) {
+ if (!strncmp(s, "CPU ", 4)) {
unsigned cpu = 0, bank = 0;
n = sscanf(s,
"CPU %u: Machine Check Exception: %16Lx Bank %d: %016Lx%n",
@@ -663,6 +758,8 @@
missing++;
else
FIELD(time);
+
+ next += skip_date(s + next);
}
else if (!strncmp(s, "MCGCAP", 6)) {
if ((n = sscanf(s, "MCGCAP %llx%n", &m.mcgcap, &next)) != 1)
@@ -682,26 +779,50 @@
else
FIELD(socketid);
}
- else if (!strncmp(s, "AUX0", 4)) {
- if ((n = sscanf(s, "AUX0 %llx%n", &m.aux0, &next)) != 1)
- missing++;
- else
- FIELD(aux0);
- }
- else if (!strncmp(s, "AUX1", 4)) {
- if ((n = sscanf(s, "AUX1 %llx%n", &m.aux1, &next)) != 1)
+ else if (!strncmp(s, "CPUID", 5)) {
+ unsigned fam, mod;
+ char vendor[31];
+
+ if ((n = sscanf(s, "CPUID Vendor %30s Family %u Model %u\n",
+ vendor, &fam, &mod)) < 3)
missing++;
- else
- FIELD(aux1);
- }
+ else {
+ m.cpuvendor = cpuvendor_to_num(vendor);
+ m.cpuid = unparse_cpuid(fam, mod);
+ FIELD(cpuid);
+ FIELD(cpuvendor);
+ }
+ }
else if (strstr(s, "HARDWARE ERROR"))
disclaimer_seen = 1;
+ else if (!strncmp(s, "(XEN)", 5)) {
+ char *w;
+ unsigned bank, cpu;
+
+ if (strstr(s, "The hardware reports a non fatal, correctable incident occurred")) {
+ w = strstr(s, "CPU");
+ if (w && sscanf(w, "CPU %d", &cpu)) {
+ m.cpu = cpu;
+ FIELD(cpu);
+ }
+ } else if ((n = sscanf(s, "(XEN) Bank %d: %llx at %llx",
+ &bank, &m.status, &m.addr) >= 1)) {
+ m.bank = bank;
+ FIELD(bank);
+ if (n >= 2)
+ FIELD(status);
+ if (n >= 3)
+ FIELD(addr);
+ }
+ }
+ else if (!match_patterns(s, skip_patterns))
+ n = 0;
else {
s = skipspace(s);
if (*s && data)
dump_mce_final(&m, symbol, missing, recordlen, disclaimer_seen);
if (!dump_raw_ascii)
- Wprintf("%s", line);
+ Wprintf("%s", start);
if (*s && data)
goto restart;
}
@@ -777,6 +898,7 @@
"--cpumhz MHZ Set CPU Mhz to decode time (output unreliable, not needed on new kernels)\n"
"--raw (with --ascii) Dump in raw ASCII format for machine processing\n"
"--daemon Run in background waiting for events (needs newer kernel)\n"
+"--ignorenodev Exit silently when the device cannot be opened\n"
"--file filename With --ascii read machine check log from filename instead of stdin\n"
"--syslog Log decoded machine checks in syslog (default stdout or syslog for daemon)\n"
"--syslog-error Log decoded machine checks in syslog with error level\n"
@@ -823,6 +945,7 @@
O_FOREGROUND,
O_NUMERRORS,
O_PIDFILE,
+ O_DEBUG_NUMERRORS,
};
static struct option options[] = {
@@ -854,6 +977,7 @@
{ "client", 0, NULL, O_CLIENT },
{ "num-errors", 1, NULL, O_NUMERRORS },
{ "pidfile", 1, NULL, O_PIDFILE },
+ { "debug-numerrors", 0, NULL, O_DEBUG_NUMERRORS }, /* undocumented: for testing */
DISKDB_OPTIONS
{}
};
@@ -955,6 +1079,9 @@
case O_CONFIG_FILE:
/* parsed in config.c */
break;
+ case O_DEBUG_NUMERRORS:
+ debug_numerrors = 1;
+ break;
case 0:
break;
default:
@@ -1038,8 +1165,10 @@
}
len = read(fd, buf, recordlen * loglen);
- if (len < 0)
- err("read");
+ if (len < 0) {
+ SYSERRprintf("mcelog read");
+ return;
+ }
for (i = 0; (i < len / (int)recordlen) && !finish; i++) {
struct mce *mce = (struct mce *)(buf + i*recordlen);
@@ -1057,6 +1186,9 @@
flushlog();
}
+ if (debug_numerrors && numerrors <= 0)
+ finish = 1;
+
if (recordlen > sizeof(struct mce)) {
Eprintf("warning: %lu bytes ignored in each record\n",
(unsigned long)recordlen - sizeof(struct mce));
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mcelog-1.0pre3.6363f5b719e9/mcelog.conf new/mcelog-1.0pre3.6e4e2a000124/mcelog.conf
--- old/mcelog-1.0pre3.6363f5b719e9/mcelog.conf 2010-10-17 20:33:36.000000000 +0200
+++ new/mcelog-1.0pre3.6e4e2a000124/mcelog.conf 2011-08-18 00:01:26.000000000 +0200
@@ -117,7 +117,7 @@
[socket]
# Memory error accounting per socket
-socket-tracing-enabled = yes
+socket-tracking-enabled = yes
# Threshold and trigger for uncorrected memory errors on a socket
# mem-uc-error-trigger = socket-memory-error-trigger
mem-uc-error-threshold = 100 / 24h
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mcelog-1.0pre3.6363f5b719e9/mcelog.h new/mcelog-1.0pre3.6e4e2a000124/mcelog.h
--- old/mcelog-1.0pre3.6363f5b719e9/mcelog.h 2010-10-17 20:33:36.000000000 +0200
+++ new/mcelog-1.0pre3.6e4e2a000124/mcelog.h 2011-08-18 00:01:26.000000000 +0200
@@ -31,8 +31,6 @@
__u32 socketid; /* CPU socket ID */
__u32 apicid; /* CPU initial apic ID */
__u64 mcgcap; /* MCGCAP MSR: machine check capabilities of CPU */
- __u64 aux0;
- __u64 aux1;
};
#define X86_VENDOR_INTEL 0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mcelog-1.0pre3.6363f5b719e9/p4.c new/mcelog-1.0pre3.6e4e2a000124/p4.c
--- old/mcelog-1.0pre3.6363f5b719e9/p4.c 2010-10-17 20:33:36.000000000 +0200
+++ new/mcelog-1.0pre3.6e4e2a000124/p4.c 2011-08-18 00:01:26.000000000 +0200
@@ -257,6 +257,8 @@
if (status & MCI_STATUS_UC)
Wprintf("Uncorrected error\n");
+ else
+ Wprintf("Corrected error\n");
if (status & MCI_STATUS_EN)
Wprintf("Error enabled\n");
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mcelog-1.0pre3.6363f5b719e9/sysfs.c new/mcelog-1.0pre3.6e4e2a000124/sysfs.c
--- old/mcelog-1.0pre3.6363f5b719e9/sysfs.c 2010-10-17 20:33:36.000000000 +0200
+++ new/mcelog-1.0pre3.6e4e2a000124/sysfs.c 2011-08-18 00:01:26.000000000 +0200
@@ -20,6 +20,7 @@
#include <unistd.h>
#include <string.h>
#include <sys/fcntl.h>
+#include <sys/stat.h>
#include <stdarg.h>
#include <errno.h>
#include "mcelog.h"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mcelog-1.0pre3.6363f5b719e9/tests/Makefile new/mcelog-1.0pre3.6e4e2a000124/tests/Makefile
--- old/mcelog-1.0pre3.6363f5b719e9/tests/Makefile 2010-10-17 20:33:36.000000000 +0200
+++ new/mcelog-1.0pre3.6e4e2a000124/tests/Makefile 2011-08-18 00:01:26.000000000 +0200
@@ -7,6 +7,7 @@
./test page "${DEBUG}"
./test memdb "${DEBUG}"
./test socket "${DEBUG}"
+ ./test pfa "${DEBUG}"
clean:
rm -f */*log
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mcelog-1.0pre3.6363f5b719e9/tests/pfa/PFA_test_howto new/mcelog-1.0pre3.6e4e2a000124/tests/pfa/PFA_test_howto
--- old/mcelog-1.0pre3.6363f5b719e9/tests/pfa/PFA_test_howto 1970-01-01 01:00:00.000000000 +0100
+++ new/mcelog-1.0pre3.6e4e2a000124/tests/pfa/PFA_test_howto 2011-08-18 00:01:26.000000000 +0200
@@ -0,0 +1,213 @@
+This README file describes the steps of testing PFA (Predictive Failure
+Analysis) functionality of mcelog under Linux which is facilitated by using
+mce-inject.
+
+PFA is a RAS Feature. PFA capable system can monitor corrected hardware errors
+and take corrective action in advance before uncorrected error happen. For
+example, PFA should offline a memory page if more than 10 errors per hour on a
+memory page are found. It mostly focuses on memory errors.
+
+0. Preparation work
+*******************************
+- Install the Linux kernel with full MCE injection support
+
+ Make sure following configuration options are enabled:
+
+ CONFIG_X86_MCE=y
+ CONFIG_X86_MCE_INTEL=y
+ CONFIG_X86_MCE_INJECT=y or CONFIG_X86_MCE_INJECT=m
+
+- Build mcelog and install in /usr/bin (or rather first in your $PATH)
+
+ # cd $HOME/mcelog
+ # make
+ # make install
+
+- Get mce-inject git version from
+ git://git.kernel.org/pub/scm/utils/cpu/mce/mce-inject.git
+ and install in /usr/bin (or rather first in your $PATH)
+
+ # cd $HOME
+ # git clone git://git.kernel.org/pub/scm/utils/cpu/mce/mce-inject.git
+ # cd mce-inject
+ # make
+ # make install
+
+- Install page-types tool, which is accompanied with Linux kernel source
+ (2.6.32 or newer).
+
+ # cd $KERNEL_SRC/Documentation/vm/
+ # gcc -o page-types page-types.c
+ # cp page-types /usr/bin/
+
+
+
+1. Start PFA test
+*******************************
+
+The PFA test cases in mcelog are in the following directories:
+
+- mcelog/tests/pfa #page level pfa test cases
+
+You can run all PFA test cases simply just by typing:
+
+ # cd mcelog/tests
+ # ./test pfa
+
+all the test cases in the specified subdirectory will be ran and the test
+results will be saved in files:
+
+ mcelog/tests/pfa/results
+
+When you examine the content of the file, you will find such results:
+
+- if one case passed:
+
+ "*.conf: triggers trigger as expected"
+
+- if one case failed
+
+ "*.conf: triggers did not trigger as expected: $expected_num !=
+ $actual_got_num"
+
+you can refer to the "*.log" file in the specific subdirectory for the log saved
+by mcelog.
+
+
+2. Modify or add new test cases
+*******************************
+
+If you want to modify the existing test cases or add your own case, the
+following description will have a more detailed look which might help:
+
+- To add or run a page level PFA test, you need first get a configure file in
+
+ mcelog/tests/pfa/
+
+ directory defining mainly the threshold and trigger actions you want, then the
+ number of trigger events you expect to happen.
+
+
+- A typical configure file is as following:
+
+ mcelog/tests/pfa/page-account.conf
+ ----------------------------------------------------------
+ # trigger: 5
+ # num-errors = 3
+
+ [page]
+ memory-ce-threshold = 2 / 1h
+ memory-ce-trigger = ../trigger
+ #memory-ce-action = off|account|soft|hard|soft-then-hard
+ memory-ce-action = account
+
+ [trigger]
+ directory = .
+ ------------------------------------------------------------
+
+ - “# trigger: 5”
+
+ Specify the count number of triggers you expect to get based
+ on the threshold defined in "memory-ce-threshold" described below.
+
+ mcelog/tests/test harness in the end will compare this count number with
+ the number of actual trigger events got from the log to verify the test
+ results.
+
+ please note the "#" is needed for mcelog/tests/test harness to read here.
+
+
+ - "# num-errors = 3"
+
+ "num-errors" is a mcelog configure option. if uncomment, it is used by
+ mcelog to stop processing the stored machine check records in mcelog
+ buffer read from /dev/mcelog and return(for debug purpose) when the
+ number is reached even there might be:
+ - still some unprocessed records left in the buffer which
+ will be ignored
+ - or there are not enough records in /dev/mcelog the program
+ will not return.
+
+ if not set as in this example, mcelog will return until finish processing
+ all the records.
+
+ When you are not sure what should be the correct num-errors number, it is
+ not recommended to set this option.
+
+
+ - "memory-ce-threshold = 2 / 1h"
+
+ Define the threshold for memory corrected errors per page. Here means
+ if there are 2 corrected errors detected in one page within 1 hour,
+ the trigger defined in “memory-ce-trigger” described below will be called.
+
+
+ - "memory-ce-trigger = ../trigger"
+
+ Specify the trigger you want when exceeding the threshold.
+ Here mcelog/tests/trigger will be called which simply print some text for
+ testing.
+
+
+ - "memory-ce-action = account"
+
+ specify the internal action in mcelog to exceeding a memory corrected error
+ threshold.
+
+ This is done in addition to executing the trigger script if available.
+ - off: No action
+ - account: only account errors
+ - soft: try to soft-offline page without killing any processes
+ This requires an update kernel. Might not be successful
+ - hard: try to hard-offline page without killing any processes
+ This requires an update kernel. Might not be successful
+ - soft-then-hard: First try to soft offline, then try hard offlining
+
+ The offline action is based on the sysfs_wirte action of:
+ /sys/devices/system/memory/soft_offline_page
+ or
+ /sys/devices/system/memory/hard_offline_page
+
+ Please note that offlining does not work for all pages, but only for pages
+ in the Linux page cache or free pages. And if offline action(soft, hard, or
+ soft-then-hard)are chosen in "memory-ce-action", there will trigger only
+ once for each page,no matter the offline action taken was successful or
+ failed.
+
+
+3. Influencing factors of the trigger results
+*******************************
+
+The correct expectation of triggers depends on 4 factors:
+
+- The count number of trigger expectation defined in "pfa/*.conf" file
+
+ As described above, in our example the trigger expectation are defined to be 5
+ times which means the "mcelog/tests/pfa/inject" script will randomly chosen 5
+ free pages to inject in turn and do the MCE injection on each page for
+ $memory-ce-threshold times.
+
+- The threshold defined in “memory-ce-trigger” of "pfa/*.conf" file
+
+ As described above, for “memory-ce-threshold = 2 / 1h” in our example,
+ "mcelog/tests/pfa/inject" script will do the MCE injection
+ 2 times continuously for each chosen page to make the trigger happen.
+
+- The “memory-ce-action” defined in "pfa/*.conf" file
+
+ As described above. if the “memory-ce-action” is soft/hard/soft-then-hard,
+ no matter offlining action succeed or not, triggers_per_page calculation will
+ changed to be:
+
+ triggers_per_page = INT(injections_per_page / memory-ce-threshold) >= 1? 1:0
+
+- The actual number of records read out if "num-errors" defined in "pfa/*.conf"
+ file
+
+ As described above. mcelog will just read out $num-errors records, that means:
+
+ readout_total_injections = MIN(num-errors, injection_per_page *
+ actual-inject_pages)
+
+ this might affect the trigger counts for some last injected pages since not
+ all the machine check records from /dev/mcelog are processed and counted.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mcelog-1.0pre3.6363f5b719e9/tests/pfa/inject new/mcelog-1.0pre3.6e4e2a000124/tests/pfa/inject
--- old/mcelog-1.0pre3.6363f5b719e9/tests/pfa/inject 1970-01-01 01:00:00.000000000 +0100
+++ new/mcelog-1.0pre3.6e4e2a000124/tests/pfa/inject 2011-08-18 00:01:26.000000000 +0200
@@ -0,0 +1,79 @@
+#!/bin/sh
+PATH=$PATH:$(pwd)/../../../mce-inject
+
+page_type="slab buddy mmap anonymous nopage huge"
+
+function get_free_page()
+{
+ local rand=0
+ cnt=`page-types -Nl -b $1 | tee page_$1 | wc -l`
+ if [ $cnt -gt 1 ]; then
+ rand=$(expr $RANDOM % $cnt + 1)
+ if [ ${rand} -eq 1 ]; then
+ # skip the title line of output
+ ((rand++))
+ fi
+ page=`awk -v line=${rand} 'NR == line {print $1}' page_$1`
+ echo 0x${page}
+ else
+ echo 0
+ fi
+ rm -f page_$1
+}
+
+if [ "$1" = "" ]; then
+ echo "usage $0 conf_file"
+ exit 1
+fi
+
+if [ ! -f $1 ]; then
+ echo "configure file not exists: $1"
+ exit 1
+fi
+
+which page-types > /dev/null 2>&1
+if [ $? -ne 0 ];then
+ echo "please install page-types tool first"
+ exit 1
+fi
+
+echo "+++ start the injection for $1 +++"
+
+NUMT="$(awk '/# trigger: / { print $3}' $1)"
+THRESHOLD="$(awk '/memory-ce-threshold = / { print $3}' $1)"
+
+if [ "$NUMT" -eq 0 ]; then
+ echo "No injection will be done!"
+ exit 0
+fi
+
+if [ "$THRESHOLD" -eq 0 ]; then
+ echo "Threshold should not be 0!"
+ exit 1
+fi
+
+trigger_cnt=0
+while [ "$trigger_cnt" -lt "$NUMT" ]; do
+ for i in ${page_type}; do
+ P=$(get_free_page $i)
+ if [ "$P" = "0" ]; then
+ continue
+ fi
+ if [ "$trigger_cnt" -ge "$NUMT" ]; then
+ exit 0;
+ fi
+ inject_cnt=0
+ while [ "$inject_cnt" -lt "$THRESHOLD" ]; do
+ echo "inject for page type $i at physical address ${P}000 [ NO. $inject_cnt ]"
+ ../../input/GENPAGE $P | mce-inject
+ inject_cnt=$(($inject_cnt+1))
+ done
+ if [ "$inject_cnt" -eq "$THRESHOLD" ]; then
+ trigger_cnt=$(($trigger_cnt+1))
+ fi
+ done
+ if [ "$trigger_cnt" -eq 0 ]; then
+ echo "None available free pages found!"
+ exit 1
+ fi
+done
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mcelog-1.0pre3.6363f5b719e9/tests/pfa/page-account.conf new/mcelog-1.0pre3.6e4e2a000124/tests/pfa/page-account.conf
--- old/mcelog-1.0pre3.6363f5b719e9/tests/pfa/page-account.conf 1970-01-01 01:00:00.000000000 +0100
+++ new/mcelog-1.0pre3.6e4e2a000124/tests/pfa/page-account.conf 2011-08-18 00:01:26.000000000 +0200
@@ -0,0 +1,12 @@
+# trigger: 1
+#num-errors = 3
+
+[page]
+memory-ce-threshold = 2 / 1h
+memory-ce-trigger = ../trigger
+#memory-ce-action = off|account|soft|hard|soft-then-hard
+memory-ce-action = account
+
+[trigger]
+directory = .
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mcelog-1.0pre3.6363f5b719e9/tests/pfa/page-hard.conf new/mcelog-1.0pre3.6e4e2a000124/tests/pfa/page-hard.conf
--- old/mcelog-1.0pre3.6363f5b719e9/tests/pfa/page-hard.conf 1970-01-01 01:00:00.000000000 +0100
+++ new/mcelog-1.0pre3.6e4e2a000124/tests/pfa/page-hard.conf 2011-08-18 00:01:26.000000000 +0200
@@ -0,0 +1,12 @@
+# trigger: 1
+#num-errors = 3
+
+[page]
+memory-ce-threshold = 2 / 1h
+memory-ce-trigger = ../trigger
+#memory-ce-action = off|account|soft|hard|soft-then-hard
+memory-ce-action = hard
+
+[trigger]
+directory = .
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mcelog-1.0pre3.6363f5b719e9/tests/pfa/page-soft-then-hard.conf new/mcelog-1.0pre3.6e4e2a000124/tests/pfa/page-soft-then-hard.conf
--- old/mcelog-1.0pre3.6363f5b719e9/tests/pfa/page-soft-then-hard.conf 1970-01-01 01:00:00.000000000 +0100
+++ new/mcelog-1.0pre3.6e4e2a000124/tests/pfa/page-soft-then-hard.conf 2011-08-18 00:01:26.000000000 +0200
@@ -0,0 +1,12 @@
+# trigger: 1
+#num-errors = 3
+
+[page]
+memory-ce-threshold = 1 / 1h
+memory-ce-trigger = ../trigger
+#memory-ce-action = off|account|soft|hard|soft-then-hard
+memory-ce-action = soft-then-hard
+
+[trigger]
+directory = .
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mcelog-1.0pre3.6363f5b719e9/tests/pfa/page-soft.conf new/mcelog-1.0pre3.6e4e2a000124/tests/pfa/page-soft.conf
--- old/mcelog-1.0pre3.6363f5b719e9/tests/pfa/page-soft.conf 1970-01-01 01:00:00.000000000 +0100
+++ new/mcelog-1.0pre3.6e4e2a000124/tests/pfa/page-soft.conf 2011-08-18 00:01:26.000000000 +0200
@@ -0,0 +1,12 @@
+# trigger: 1
+#num-errors = 3
+
+[page]
+memory-ce-threshold = 2 / 1h
+memory-ce-trigger = ../trigger
+#memory-ce-action = off|account|soft|hard|soft-then-hard
+memory-ce-action = soft
+
+[trigger]
+directory = .
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mcelog-1.0pre3.6363f5b719e9/tests/test new/mcelog-1.0pre3.6e4e2a000124/tests/test
--- old/mcelog-1.0pre3.6363f5b719e9/tests/test 2010-10-17 20:33:36.000000000 +0200
+++ new/mcelog-1.0pre3.6e4e2a000124/tests/test 2011-08-18 00:01:26.000000000 +0200
@@ -42,8 +42,8 @@
for conf in `ls *.conf`
do
log=`echo $conf | sed "s/conf/log/g"`
- ./inject
- $D ../../mcelog --foreground --daemon --config $conf --logfile $log
+ ./inject $conf
+ $D ../../mcelog --foreground --daemon --debug-numerrors --config $conf --logfile $log >> result
# let triggers finish
sleep 1
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mcelog-1.0pre3.6363f5b719e9/triggers/cache-error-trigger new/mcelog-1.0pre3.6e4e2a000124/triggers/cache-error-trigger
--- old/mcelog-1.0pre3.6363f5b719e9/triggers/cache-error-trigger 2010-10-17 20:33:36.000000000 +0200
+++ new/mcelog-1.0pre3.6e4e2a000124/triggers/cache-error-trigger 2011-08-18 00:01:26.000000000 +0200
@@ -19,7 +19,7 @@
#
EXIT=0
-for i in $CPUS_AFFECTED ; do
+for i in $AFFECTED_CPUS ; do
if [ $i = 0 ] ; then
logger -s -p daemon.warn -t mcelog "Not offlining CPU 0"
EXIT=1
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mcelog-1.0pre3.6363f5b719e9/xeon75xx.c new/mcelog-1.0pre3.6e4e2a000124/xeon75xx.c
--- old/mcelog-1.0pre3.6363f5b719e9/xeon75xx.c 2010-10-17 20:33:36.000000000 +0200
+++ new/mcelog-1.0pre3.6e4e2a000124/xeon75xx.c 2011-08-18 00:01:26.000000000 +0200
@@ -25,142 +25,15 @@
#include "mcelog.h"
#include "xeon75xx.h"
-/* DIMM description */
-struct aux_pfa_dimm {
- u8 fbd_channel_id;
- u8 ddr_channel_id;
- u8 ddr_dimm_id;
- u8 ddr_rank_id;
- u8 ddr_dimm_bank_id;
- u8 ddr_dimm_row_id;
- u8 ddr_dimm_column_id;
- u8 valid;
-} __attribute__((packed));
-
-enum {
- MCE_BANK_MBOX0 = 8,
- MCE_BANK_MBOX1 = 9,
-
- DIMM_VALID_FBD_CHAN = (1 << 0),
- DIMM_VALID_DDR_CHAN = (1 << 1),
- DIMM_VALID_DDR_DIMM = (1 << 2),
- DIMM_VALID_DDR_RANK = (1 << 3),
- DIMM_VALID_DIMM_BANK = (1 << 4),
- DIMM_VALID_DIMM_ROW = (1 << 5),
- DIMM_VALID_DIMM_COLUMN = (1 << 6),
- DIMM_VALID_ALL = 0x7f,
-};
-
-static struct id {
- char *name;
- unsigned offset;
- unsigned valid;
- enum {
- NL = 1<<0,
- IND = 1<<1,
- } flags;
-} ids[] = {
-#define V(n,f,b) n, offsetof(struct aux_pfa_dimm, f), b
- { V("FBD-Channel", fbd_channel_id, DIMM_VALID_FBD_CHAN) },
- { V("DDR-Channel", ddr_channel_id, DIMM_VALID_DDR_CHAN) },
- { V("DDR-DIMM", ddr_dimm_id, DIMM_VALID_DDR_DIMM) },
- { V("DDR-Rank", ddr_rank_id, DIMM_VALID_DDR_RANK) },
- { V("DIMM-Bank", ddr_dimm_bank_id, DIMM_VALID_DIMM_BANK), NL|IND },
- { V("DIMM-Row", ddr_dimm_row_id, DIMM_VALID_DIMM_ROW) },
- { V("DIMM-Column", ddr_dimm_column_id, DIMM_VALID_DIMM_COLUMN), NL },
-#undef V
- {}
-};
-
-#if 0
-/* Use for memdb channel output */
-
-static int opt_number(char *buf, int val)
-{
- if (val == (u8)-1) {
- *buf++ = '?';
- return 1;
- }
- return sprintf(buf, "%u", val);
-}
-
-static void print_channel(int channel, char *buf)
-{
- int n;
- n = opt_number(buf, ((channel) >> 8) & 0xff);
- buf[n++] = ':';
- opt_number(buf + n, channel & 0xff);
-}
-#endif
-
-static void decode_dimm(struct aux_pfa_dimm *d, int *channel, int *dimm)
-{
- if (d->valid == 0)
- return;
- if (d->valid & DIMM_VALID_DDR_DIMM)
- *dimm = d->ddr_dimm_id;
- if (d->valid & (DIMM_VALID_DDR_CHAN|DIMM_VALID_FBD_CHAN)) {
- int fbd_chan = (d->valid & DIMM_VALID_FBD_CHAN) ?
- d->fbd_channel_id : (u8)-1;
- int ddr_chan = (d->valid & DIMM_VALID_DDR_CHAN) ?
- d->ddr_channel_id : (u8)-1;
- *channel = (fbd_chan << 8) | ddr_chan;
- }
-}
-
-static void print_dimm(int num, struct aux_pfa_dimm *d)
-{
- struct id *id;
- int indent;
- int k;
-
- if (d->valid == 0)
- return;
-
- k = indent = Wprintf("DIMM %d: ", num);
- for (id = ids; id->name; id++) {
- if (d->valid & id->valid)
- k += Wprintf("%s %u ", id->name, *((u8*)d + id->offset));
- if (k > 0) {
- if (id->flags & NL) {
- Wprintf("\n");
- k = 0;
- }
- if (id->flags & IND)
- Wprintf("%.*s", indent, "");
- }
- }
-}
-
-static int is_mem_err(struct mce *m, unsigned msize)
-{
- if (msize < offsetof(struct mce, aux1) + sizeof(u64))
- return 0;
- if (m->bank != MCE_BANK_MBOX0 && m->bank != MCE_BANK_MBOX1)
- return 0;
- return 1;
-}
-
-union d {
- struct aux_pfa_dimm d;
- u64 val;
-};
+/* This used to decode the old xeon 75xx memory error aux format. But that has never
+ been merged into mainline kernels, so removed it again. */
void
xeon75xx_memory_error(struct mce *m, unsigned msize, int *channel, int *dimm)
{
- if (!is_mem_err(m, msize))
- return;
-
- decode_dimm(&((union d *)&m->aux0)->d, &channel[0], &dimm[0]);
- decode_dimm(&((union d *)&m->aux1)->d, &channel[1], &dimm[1]);
}
void xeon75xx_decode_dimm(struct mce *m, unsigned msize)
{
- if (!is_mem_err(m, msize))
- return;
- print_dimm(0, &((union d *)&m->aux0)->d);
- print_dimm(1, &((union d *)&m->aux1)->d);
}
++++++ mcelog_invert_prefill_db_warning.patch ++++++
---
memdb.c | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
Index: mcelog-1.0.2011.06.08/memdb.c
===================================================================
--- mcelog-1.0.2011.06.08.orig/memdb.c
+++ mcelog-1.0.2011.06.08/memdb.c
@@ -417,11 +417,11 @@ void prefill_memdb(void)
md->location = xstrdup(bl);
md->name = xstrdup(dmi_getstring(&d->header, d->device_locator));
}
- if (missed) {
- static int warned;
- if (!warned) {
- Eprintf("failed to prefill DIMM database from DMI data");
- warned = 1;
+ if (!missed) {
+ static int db_rill_msg;
+ if (!db_rill_msg) {
+ Gprintf("Prefilled DIMM database from DMI data");
+ db_rill_msg = 1;
}
}
}
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Remember to have fun...
--
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 lxc for openSUSE:Factory
checked in at Mon Sep 5 16:38:20 CEST 2011.
--------
--- lxc/lxc.changes 2011-08-31 13:49:56.000000000 +0200
+++ lxc/lxc.changes 2011-09-02 10:30:48.000000000 +0200
@@ -1,0 +2,6 @@
+Fri Sep 2 08:26:28 UTC 2011 - fcrozat(a)suse.com
+
+- Fix license tag, it is LGPLv2.1+ (using LGPLv2+ tag to be
+ consistent).
+
+-------------------------------------------------------------------
calling whatdependson for head-i586
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ lxc.spec ++++++
--- /var/tmp/diff_new_pack.ZQc7BG/_old 2011-09-05 16:38:06.000000000 +0200
+++ /var/tmp/diff_new_pack.ZQc7BG/_new 2011-09-05 16:38:06.000000000 +0200
@@ -19,12 +19,12 @@
Name: lxc
Version: 0.7.5
-Release: 1
+Release: 2
Url: http://lxc.sourceforge.net/
Summary: Linux containers implementation
Group: System/Management
AutoReqProv: on
-License: LGPLv2.1
+License: LGPLv2+
Source: http://lxc.sourceforge.net/download/lxc/%{name}-%{version}.tar.gz
Source1: README.SUSE
BuildRoot: %{_tmppath}/%{name}-%{version}-build
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Remember to have fun...
--
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 libxfce4menu for openSUSE:Factory
checked in at Mon Sep 5 16:38:13 CEST 2011.
--------
--- libxfce4menu/libxfce4menu.changes 2011-02-03 19:38:47.000000000 +0100
+++ /mounts/work_src_done/STABLE/libxfce4menu/libxfce4menu.changes 2011-08-26 21:45:10.000000000 +0200
@@ -1,0 +2,6 @@
+Fri Aug 26 19:42:20 UTC 2011 - gber(a)opensuse.org
+
+- added libxfce4menu-fix-linking.patch in order to fix an
+ underlinking issue
+
+-------------------------------------------------------------------
calling whatdependson for head-i586
New:
----
libxfce4menu-fix-linking.patch
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ libxfce4menu.spec ++++++
--- /var/tmp/diff_new_pack.3cqsSA/_old 2011-09-05 16:37:01.000000000 +0200
+++ /var/tmp/diff_new_pack.3cqsSA/_new 2011-09-05 16:37:01.000000000 +0200
@@ -19,7 +19,7 @@
Name: libxfce4menu
Version: 4.6.2
-Release: 4
+Release: 11
License: LGPLv2.1+
%define fullname %{name}-0.1
%define libname %{name}-0_1-0
@@ -30,6 +30,8 @@
Patch0: %{name}-no-yast-desktop-files.patch
# PATCH-FEATURE-UPSTREAM libxfce4menu-4.6.2-add-enum-types.patch gber(a)opensuse.org -- Generates enum types (backported from upstream git)
Patch1: libxfce4menu-4.6.2-add-enum-types.patch
+# PATCH-FIX-UPSTREAM libxfce4menu-fix-linking.patch gber(a)opensuse.org -- Fixes underlinking
+Patch2: libxfce4menu-fix-linking.patch
BuildRequires: gtk-doc
BuildRequires: intltool
BuildRequires: xfce4-dev-tools
@@ -68,6 +70,7 @@
%setup -q
%patch0
%patch1 -p1
+%patch2 -p1
%build
xdt-autogen
++++++ libxfce4menu-fix-linking.patch ++++++
diff -ur libxfce4menu-4.6.2.orig/configure.in libxfce4menu-4.6.2/configure.in
--- libxfce4menu-4.6.2.orig/configure.in 2010-05-21 18:53:23.000000000 +0200
+++ libxfce4menu-4.6.2/configure.in 2011-08-26 21:30:56.749999887 +0200
@@ -128,6 +128,7 @@
XDT_CHECK_PACKAGE([GLIB], [glib-2.0], [2.6.0])
XDT_CHECK_PACKAGE([GTK], [gtk+-2.0], [2.6.0])
XDT_CHECK_PACKAGE([GTHREAD], [gthread-2.0], [2.6.0])
+XDT_CHECK_PACKAGE([GOBJECT], [gobject-2.0], [2.6.0])
XDT_CHECK_PACKAGE([LIBXFCE4UTIL], [libxfce4util-1.0], [4.6.0])
dnl *************************
diff -ur libxfce4menu-4.6.2.orig/docs/reference/Makefile.am libxfce4menu-4.6.2/docs/reference/Makefile.am
--- libxfce4menu-4.6.2.orig/docs/reference/Makefile.am 2010-05-21 18:53:23.000000000 +0200
+++ libxfce4menu-4.6.2/docs/reference/Makefile.am 2011-08-26 21:32:53.603000025 +0200
@@ -42,12 +42,14 @@
-I$(top_srcdir) \
-I$(top_builddir) \
$(GLIB_CFLAGS) \
+ $(GOBJECT_CFLAGS) \
$(GTHREAD_CFLAGS) \
$(GTK_CFLAGS) \
$(LIBXFCE4UTIL_CFLAGS)
GTKDOC_LIBS = \
$(GLIB_CFLAGS) \
+ $(GOBJECT_LIBS) \
$(GTHREAD_LIBS) \
$(GTK_CFLAGS) \
$(LIBXFCE4UTIL_LIBS) \
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Remember to have fun...
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package python-Cython for openSUSE:Factory
checked in at Mon Sep 5 16:38:08 CEST 2011.
--------
New Changes file:
--- /dev/null 2010-08-26 16:28:41.000000000 +0200
+++ python-Cython/python-Cython.changes 2011-09-02 13:06:10.000000000 +0200
@@ -0,0 +1,41 @@
+-------------------------------------------------------------------
+Fri Sep 2 11:03:40 UTC 2011 - saschpe(a)suse.de
+
+- Fixed a typo
+- Removed testsuite again, fixes SLE build
+
+-------------------------------------------------------------------
+Fri Sep 2 09:50:25 UTC 2011 - saschpe(a)suse.de
+
+- Update to version 0.15:
+ * For loop docs fix and pointer iteration.
+ * Pure decorators now implemented.
+ * fix bug #707: optimised dict iteration over non-trivial expressions fail...
+ * optimise object.pop() for sets
+ * Py2.4 fix: PySet_Pop() appeared in Py2.5
+ * Py3.3 test fix
+ * Support module level control flow and Entry-level error on uninitialized
+- Spec file cleanup:
+ - Fixed wrong EOL encodings and non-excutable scripts
+ - Set license to Apache-2.0
+ - Run testsuite
+
+-------------------------------------------------------------------
+Wed Apr 20 00:29:18 UTC 2011 - prusnak(a)opensuse.org
+
+- updated to 0.14.1
+ - changes too numerous to list, see the following for more details:
+ * http://wiki.cython.org/ReleaseNotes-0.13
+ * http://wiki.cython.org/ReleaseNotes-0.14
+ * http://wiki.cython.org/ReleaseNotes-0.14.1
+
+-------------------------------------------------------------------
+Sun Jun 6 21:21:32 UTC 2010 - dimstar(a)opensuse.org
+
+- Use renewed python-macros, also for compatibility with other
+ build targets.
+
+-------------------------------------------------------------------
+Sun Jun 6 12:14:18 UTC 2010 - dimstar(a)opensuse.org
+
+- Initial package of Cython 0.12.1
calling whatdependson for head-i586
New:
----
Cython-0.15.tar.gz
python-Cython.changes
python-Cython.spec
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-Cython.spec ++++++
#
# spec file for package python-Cython
#
# Copyright (c) 2011 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: python-Cython
Version: 0.15
Release: 1
Url: http://www.cython.org
Summary: The Cython compiler for writing C extensions for the Python language
License: Apache-2.0
Group: Development/Languages/Python
Source: http://pypi.python.org/packages/source/C/Cython/Cython-%{version}.tar.gz
BuildRoot: %{_tmppath}/%{name}-%{version}-build
BuildRequires: python-devel
%if 0%{?suse_version}
%py_requires
%endif
%{!?python_sitearch: %global python_sitearch %(%{__python} -c "from distutils.sysconfig import get_python_lib; print get_python_lib(1)")}
%description
The Cython language makes writing C extensions for the Python language as
easy as Python itself. Cython is a source code translator based on the
well-known Pyrex, but supports more cutting edge functionality and
optimizations.
The Cython language is very close to the Python language (and most Python
code is also valid Cython code), but Cython additionally supports calling C
functions and declaring C types on variables and class attributes. This
allows the compiler to generate very efficient C code from Cython code.
This makes Cython the ideal language for writing glue code for external C
libraries, and for fast C modules that speed up the execution of Python
code.
%prep
%setup -q -n Cython-%{version}
sed -i "s/\r//" Demos/{callback/README.txt,callback/cheesefinder.h,embed/Makefile.unix,embed/Makefile.msc.static} Doc/primes.c # Fix EOL encoding
sed -i "1d" {Cython/Debugger/libpython,Cython/Debugger/Cygdb,cython}.py # Fix non-excutable scripts
%build
CFLAGS="%{optflags} -fno-strict-aliasing" python setup.py build
%install
python setup.py install --prefix=%{_prefix} --root=%{buildroot}
%files
%defattr(-,root,root,-)
%doc COPYING.txt LICENSE.txt README.txt ToDo.txt USAGE.txt Doc Demos
%{_bindir}/cy*
%{python_sitearch}/*
%changelog
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Remember to have fun...
--
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 lightdm for openSUSE:Factory
checked in at Mon Sep 5 16:38:06 CEST 2011.
--------
--- lightdm/lightdm.changes 2011-07-31 14:36:53.000000000 +0200
+++ lightdm/lightdm.changes 2011-09-03 14:39:52.000000000 +0200
@@ -1,0 +2,86 @@
+Sat Sep 3 12:27:28 UTC 2011 - gber(a)opensuse.org
+
+- add branding for lightdm-gtk-greeter
+
+-------------------------------------------------------------------
+Fri Sep 2 17:26:24 UTC 2011 - gber(a)opensuse.org
+
+- reworked lightdm-add-scripting-hooks.patch in order to match the
+ version committed upstream
+- added lightdm-set-gdmflexiserver-envvar.patch which sets the
+ GDMFLEXISERVER environment variable for the gdmflexiserver
+ wrapper
+- added lightdm-lock-screen-before-switch.patch in order to try
+ locking the screen before switching users
+- fixed usage of --libexecdir
+
+-------------------------------------------------------------------
+Sat Aug 27 20:49:21 UTC 2011 - gber(a)opensuse.org
+
+- use update-alternatives for selecting the default greeter
+
+-------------------------------------------------------------------
+Sat Aug 27 14:01:19 UTC 2011 - gber(a)opensuse.org
+
+- added lightdm-fix-underlinking.patch in order to fix an
+ underlinking issue with test-qt-greeter
+
+-------------------------------------------------------------------
+Thu Aug 25 08:56:38 UTC 2011 - andrea(a)opensuse.org
+
+- Added proper Supplements for the greeters
+- remove version require for the greeters, 3rd party greeters
+ don't always follow the same version as lightdm
+
+-------------------------------------------------------------------
+Tue Aug 23 07:17:19 UTC 2011 - gber(a)opensuse.org
+
+- added lightdm-add-scripting-hooks.patch which implements
+ scripting hooks compatible with xdm/gdm (lp#602505)
+
+-------------------------------------------------------------------
+Mon Aug 22 20:51:09 UTC 2011 - gber(a)opensuse.org
+
+- update to verion 0.9.4
+ - lightdm-set-defaults enables tweaking the default session and
+ chosen greeter for lightdm
+ - move xsessions-directory and xgreeters-directory from
+ [SeatDefaults] to [LightDM].
+ - add AddSeat D-Bus method for adding dynamic seats
+ - added a dm-tool program that allows user switching and adding
+ seats
+ - allow remote X servers, e.g. launched using dm-tool
+ add-nested-seat
+ - don't allow autologin-username to be set to empty
+- removed obsolete lightdm-handle-empty-autologin-user.patch
+- package gdmflexiserver under libexecdir
+
+-------------------------------------------------------------------
+Mon Aug 22 18:51:01 UTC 2011 - andrea(a)opensuse.org
+
+- added dbus-glib-1 as build requires to fix pkgconfig dependencies
+
+-------------------------------------------------------------------
+Mon Aug 22 12:32:53 UTC 2011 - gber(a)opensuse.org
+
+- fixed typo
+- removed dependency of lightdm-gobject-devel on lightdm
+- removed stale dependency of lightdm-gtk-greeter on gtk2
+
+-------------------------------------------------------------------
+Thu Aug 11 16:11:52 UTC 2011 - gber(a)opensuse.org
+
+- update to version 0.9.3
+ - unlock ConsoleKit sessions when switching to them
+ - add a gdmflexiserver binary that provides backwards
+ compatibility with existing sessions
+ - set XDG_SEAT_PATH and XDG_SESSION_PATH environment variables
+ for sessions
+ - always set XAUTHORITY environment variable so sudo keeps
+ accessing the correct X authority
+ - connect up lightdm_user_get_logged_in in liblightdm-gobject
+ - ignore sessions that fail TryExec or are hidden
+ - add missing home_directory User property missing in Vala
+ bindings
+
+-------------------------------------------------------------------
calling whatdependson for head-i586
Old:
----
lightdm-0.9.2.tar.gz
lightdm-handle-empty-autologin-user.patch
New:
----
lightdm-0.9.4.tar.gz
lightdm-add-scripting-hooks.patch
lightdm-fix-underlinking.patch
lightdm-lock-screen-before-switch.patch
lightdm-set-gdmflexiserver-envvar.patch
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ lightdm.spec ++++++
--- /var/tmp/diff_new_pack.azIsdR/_old 2011-09-05 16:37:09.000000000 +0200
+++ /var/tmp/diff_new_pack.azIsdR/_new 2011-09-05 16:37:09.000000000 +0200
@@ -23,7 +23,7 @@
%define qt_lib lib%{qt_libname}-0
Name: lightdm
-Version: 0.9.2
+Version: 0.9.4
Release: 1
Summary: Lightweight, Cross-desktop Display Manager
Group: System/X11/Displaymanagers
@@ -33,16 +33,23 @@
Source1: %{name}.pamd
Source2: %{name}-autologin.pamd
Source100: %{name}-rpmlintrc
-# PATCH-FEATURE-OPENSUSE lightdm-default-configuration.patch gber(a)opensuse.org -- Modifies configuration with suitable defaults for openSUSE
-Patch0: lightdm-default-configuration.patch
+# PATCH-FEATURE-UPSTREAM lightdm-add-scripting-hooks.patch lp#602505 gber(a)opensuse.org -- Implements scripting hooks compatible with xdm/gdm
+Patch0: lightdm-add-scripting-hooks.patch
# PATCH-FEATURE-OPENSUSE lightdm-sysconfig-support.patch gber(a)opensuse.org -- Adds support for reading configuration options from /etc/sysconfig/displaymanager and /etc/sysconfig/windowmanager
Patch1: lightdm-sysconfig-support.patch
# PATCH-FEATURE-OPENSUSE lightdm-xauthlocalhostname-support.patch gber(a)opensuse.org -- Set XAUTHLOCALHOSTNAME to localhost for local logins to avoid issues in the session in case the hostname changes
Patch2: lightdm-xauthlocalhostname-support.patch
# PATCH-FEATURE-OPENSUSE lightdm-desktop-session-env-pam.patch gber(a)opensuse.org -- Sets a PAM environment variable to let the pam gnome-keyring module know which session is started
Patch3: lightdm-desktop-session-env-pam.patch
-# PATCH-FIX-UPSTREAM lightdm-handle-empty-autologin-user.patch gber(a)opensuse.org -- Prevent auto-login as nobody when autologin-user or DISPLAYMANAGER_AUTOLOGIN are set to an empty string
-Patch4: lightdm-handle-empty-autologin-user.patch
+# PATCH-FEATURE-OPENSUSE lightdm-set-gdmflexiserver-envvar.patch gber(a)opensuse.org -- Sets the GDMFLEXISERVER environment variable for the gdmflexiserver wrapper
+Patch4: lightdm-set-gdmflexiserver-envvar.patch
+# PATCH-FEATURE-OPENSUSE lightdm-default-configuration.patch gber(a)opensuse.org -- Modifies configuration with suitable defaults for openSUSE
+Patch5: lightdm-default-configuration.patch
+# PATCH-FIX-UPSTREAM lightdm-fix-underlinking.patch lp#835465 gber(a)opensuse.org -- Fixes an underlinking issue with test-qt-greeter
+Patch6: lightdm-fix-underlinking.patch
+# PATCH-FIX-UPSTREAM lightdm-lock-screen-before-switch.patch gber(a)opensuse.org -- Try to lock the screen before switching users
+Patch7: lightdm-lock-screen-before-switch.patch
+
BuildRequires: pkgconfig(glib-2.0)
BuildRequires: pkgconfig(xcb)
BuildRequires: pkgconfig(xdmcp)
@@ -51,6 +58,7 @@
BuildRequires: pkgconfig(QtGui)
BuildRequires: pkgconfig(gtk+-3.0)
BuildRequires: pkgconfig(gobject-introspection-1.0)
+BuildRequires: pkgconfig(dbus-glib-1)
BuildRequires: gcc-c++
BuildRequires: vala
BuildRequires: pam-devel
@@ -58,7 +66,9 @@
BuildRequires: gtk-doc
BuildRequires: gnome-common
Requires(pre): pwdutils
-Requires: lightdm-greeter = %{version}
+# 3rd party greeters don't have to follow
+# the same versioning of lightdm
+Requires: lightdm-greeter
Recommends: %{name}-lang
BuildRoot: %{_tmppath}/%{name}-%{version}-build
@@ -70,6 +80,7 @@
several toolkits such as Qt and GTK.
+
%lang_package
%package -n %{gobject_lib}
@@ -83,7 +94,6 @@
Summary: Development Files for %{gobject_lib}
Group: Development/Libraries/C and C++
-Requires: %{name} = %{version}
Requires: %{gobject_lib} = %{version}
%description gobject-devel
@@ -102,7 +112,6 @@
Summary: Development Files for %{qt_lib}
Group: Development/Libraries/C and C++
-Requires: %{name} = %{version}
Requires: %{qt_lib} = %{version}
%description qt-devel
@@ -113,20 +122,39 @@
Summary: GTK-based Greeter for LightDM
Group: System/X11/Displaymanagers
+Requires(post): update-alternatives
+Requires(postun):update-alternatives
Requires: %{gobject_lib} = %{version}
-Requires: gtk2 >= 2.24
+Requires: %{name}-gtk-greeter-branding = %{version}
Provides: lightdm-greeter = %{version}
%description gtk-greeter
This is the reference implementation of a LightDM greeter based on the GTK
toolkit.
+%package gtk-greeter-branding-upstream
+
+Summary: Upstream branding of %{name}-gtk-greeter
+Group: System/X11/Displaymanagers
+Requires: %{name}-gtk-greeter = %{version}
+Provides: %{name}-gtk-greeter-branding = %{version}
+Conflicts: otherproviders(%{name}-gtk-greeter-branding)
+Supplements: packageand(%{name}-gtk-greeter:branding-upstream)
+BuildArch: noarch
+#BRAND: /etc/lightdm/lightdm-gtk-greeter.conf: Determines a number of greeter
+#BRAND: settings, in particular the background image.
+
+%description gtk-greeter-branding-upstream
+This package provides the upstream look and feel for the %{name}-gtk-greeter.
+
%package qt-greeter
Summary: Qt-based Greeter for LightDM
Group: System/X11/Displaymanagers
+Requires(post): update-alternatives
+Requires(postun):update-alternatives
Requires: %{qt_lib} = %{version}
-Provides: liblightdm-greeter = %{version}
+Provides: lightdm-greeter = %{version}
%description qt-greeter
This is the reference implementation of a LightDM greeter based on the Qt
@@ -139,13 +167,18 @@
%patch2 -p1
%patch3 -p1
%patch4 -p1
+%patch5 -p1
+%patch6 -p1
+%patch7 -p1
%build
./autogen.sh
%configure \
+ --libexecdir=%{_libexecdir} \
--disable-static \
--enable-gtk-doc \
--with-user-session=twm \
+ --with-greeter-session=lightdm-default-greeter \
--with-greeter-user=lightdm
make %{?_smp_mflags} V=1
@@ -158,6 +191,9 @@
install -D -m 644 %{SOURCE1} %{buildroot}%{_sysconfdir}/pam.d/lightdm
install -D -m 644 %{SOURCE2} %{buildroot}%{_sysconfdir}/pam.d/lightdm-autologin
+mv %{buildroot}%{_libexecdir}/lightdm-set-defaults \
+ %{buildroot}%{_libexecdir}/lightdm/lightdm-set-defaults
+
install -d %{buildroot}%{_localstatedir}/log/lightdm
install -d %{buildroot}%{_localstatedir}/run/lightdm
install -d %{buildroot}%{_localstatedir}/lib/lightdm
@@ -181,10 +217,40 @@
%postun -n %{qt_lib} -p /sbin/ldconfig
+%post qt-greeter
+/usr/sbin/update-alternatives --install \
+ %{_datadir}/xgreeters/lightdm-default-greeter.desktop \
+ lightdm-default-greeter.desktop \
+ %{_datadir}/xgreeters/lightdm-qt-greeter.desktop \
+ 20
+
+%postun qt-greeter
+if [ $1 -eq 0 ]; then
+ /usr/sbin/update-alternatives --remove lightdm-default-greeter.desktop \
+ %{_datadir}/xgreeters/lightdm-qt-greeter.desktop
+fi
+
+%post gtk-greeter
+/usr/sbin/update-alternatives --install \
+ %{_datadir}/xgreeters/lightdm-default-greeter.desktop \
+ lightdm-default-greeter.desktop \
+ %{_datadir}/xgreeters/lightdm-gtk-greeter.desktop \
+ 20
+
+%postun gtk-greeter
+if [ $1 -eq 0 ]; then
+ /usr/sbin/update-alternatives --remove lightdm-default-greeter.desktop \
+ %{_datadir}/xgreeters/lightdm-gtk-greeter.desktop
+fi
+
%files
%defattr(-,root,root,-)
%doc COPYING ChangeLog NEWS README
+%{_bindir}/dm-tool
%{_sbindir}/lightdm
+%dir %{_libexecdir}/lightdm/
+%{_libexecdir}/%{name}/lightdm-set-defaults
+%{_libexecdir}/%{name}/gdmflexiserver
%dir %{_sysconfdir}/lightdm/
%config %{_sysconfdir}/lightdm/lightdm.conf
%config %{_sysconfdir}/lightdm/users.conf
@@ -227,14 +293,21 @@
%files gtk-greeter
%defattr(-,root,root,-)
-%config %{_sysconfdir}/lightdm/lightdm-gtk-greeter.conf
%{_sbindir}/lightdm-gtk-greeter
%{_datadir}/lightdm-gtk-greeter
%{_datadir}/xgreeters/lightdm-gtk-greeter.desktop
+%ghost %attr(644,root,root) %{_datadir}/xgreeters/lightdm-default-greeter.desktop
+%ghost %attr(644,root,root) %{_sysconfdir}/alternatives/lightdm-default-greeter.desktop
+
+%files gtk-greeter-branding-upstream
+%defattr(-,root,root,-)
+%config(noreplace) %{_sysconfdir}/lightdm/lightdm-gtk-greeter.conf
%files qt-greeter
%defattr(-,root,root,-)
%{_sbindir}/lightdm-qt-greeter
%{_datadir}/xgreeters/lightdm-qt-greeter.desktop
+%ghost %attr(644,root,root) %{_datadir}/xgreeters/lightdm-default-greeter.desktop
+%ghost %attr(644,root,root) %{_sysconfdir}/alternatives/lightdm-default-greeter.desktop
%changelog
++++++ lightdm-0.9.2.tar.gz -> lightdm-0.9.4.tar.gz ++++++
++++ 26449 lines of diff (skipped)
++++++ lightdm-add-scripting-hooks.patch ++++++
# HG changeset patch
# Parent 68db418b62175b48f3976ce61149fe28b6e1e070
add scripting hooks for compatibility with xdm/gdm
diff --git a/data/lightdm.conf b/data/lightdm.conf
--- a/data/lightdm.conf
+++ b/data/lightdm.conf
@@ -41,6 +41,10 @@
# allow-guest = True if guest login is allowed
# guest-session = Session to load for guests (overrides user-session)
# session-wrapper = Wrapper script to run session with
+# display-setup-script = Script to run when starting a greeter session (runs as root)
+# greeter-setup-script = Script to run when starting a greeter (runs as root)
+# session-setup-script = Script to run when starting a user session (runs as root)
+# session-cleanup-script = Script to run when quitting a user session (runs as root)
# autologin-guest = True to log in as guest by default
# autologin-user = User to log in with by default (overrides autologin-guest)
# autologin-user-timeout = Number of seconds to wait before loading default user
@@ -59,6 +63,10 @@
#allow-guest=true
#guest-session=UNIMPLEMENTED
#session-wrapper=lightdm-session
+#display-setup-script=
+#greeter-setup-script=
+#session-setup-script=
+#session-cleanup-script=
#autologin-guest=false
#autologin-user=
#autologin-user-timeout=0
diff --git a/src/display.c b/src/display.c
--- a/src/display.c
+++ b/src/display.c
@@ -29,6 +29,7 @@ enum {
SWITCH_TO_USER,
SWITCH_TO_GUEST,
GET_GUEST_USERNAME,
+ GREETER_STARTED,
SESSION_CREATED,
SESSION_STARTED,
SESSION_STOPPED,
@@ -761,6 +762,7 @@ start_greeter_session (Display *display)
if (result)
{
display->priv->indicated_ready = TRUE;
+ g_signal_emit (display, signals[GREETER_STARTED], 0);
g_signal_emit (display, signals[READY], 0);
}
@@ -1096,6 +1098,14 @@ display_class_init (DisplayClass *klass)
NULL,
ldm_marshal_STRING__VOID,
G_TYPE_STRING, 0);
+ signals[GREETER_STARTED] =
+ g_signal_new ("greeter-started",
+ G_TYPE_FROM_CLASS (klass),
+ G_SIGNAL_RUN_LAST,
+ G_STRUCT_OFFSET (DisplayClass, greeter_started),
+ NULL, NULL,
+ g_cclosure_marshal_VOID__VOID,
+ G_TYPE_NONE, 0);
signals[SESSION_CREATED] =
g_signal_new ("session-created",
G_TYPE_FROM_CLASS (klass),
diff --git a/src/display.h b/src/display.h
--- a/src/display.h
+++ b/src/display.h
@@ -44,6 +44,7 @@ typedef struct
gboolean (*switch_to_user)(Display *display, User *user);
gboolean (*switch_to_guest)(Display *display);
gchar *(*get_guest_username)(Display *display);
+ void (*greeter_started)(Display *display);
void (*session_created)(Display *display, Session *session);
void (*session_started)(Display *display);
void (*session_stopped)(Display *display);
diff --git a/src/seat.c b/src/seat.c
--- a/src/seat.c
+++ b/src/seat.c
@@ -14,7 +14,8 @@
#include "seat.h"
#include "display.h"
-#include "xserver.h"
+#include "xserver.h" // FIXME: Shouldn't know if it's an xserver
+#include "xserver-local.h" // FIXME: Shouldn't know if it's an xserver
#include "guest-account.h"
enum {
@@ -231,19 +232,161 @@ display_get_guest_username_cb (Display *
return g_strdup (seat->priv->guest_username);
}
+static gboolean
+run_script (Display *display, const gchar *script_name, User *user)
+{
+ GPtrArray *env_array;
+ gchar **argv, **envp;
+ gchar *env, *command;
+ gint exit_status;
+ DisplayServer *display_server;
+ GError *error = NULL;
+
+ if (getuid () != 0)
+ return TRUE;
+
+ if (!(g_file_test (script_name, G_FILE_TEST_IS_REGULAR) &&
+ g_file_test (script_name, G_FILE_TEST_IS_EXECUTABLE)))
+ {
+ g_warning ("Could not execute %s", script_name);
+ return FALSE;
+ }
+
+ if (!g_shell_parse_argv (script_name, NULL, &argv, &error)) {
+ g_warning ("Could not parse %s: %s", script_name, error->message);
+ g_error_free (error);
+ return FALSE;
+ }
+
+ env_array = g_ptr_array_sized_new (10);
+ if (!env_array)
+ return FALSE;
+
+ g_ptr_array_add (env_array, g_strdup ("SHELL=/bin/sh"));
+ g_ptr_array_add (env_array, g_strdup ("PATH=/usr/local/bin:/usr/bin:/bin"));
+
+ if (user)
+ {
+ g_ptr_array_add (env_array, g_strdup_printf ("USER=%s", user_get_name (user)));
+ g_ptr_array_add (env_array, g_strdup_printf ("USERNAME=%s", user_get_name (user)));
+ g_ptr_array_add (env_array, g_strdup_printf ("LOGNAME=%s", user_get_name (user)));
+ g_ptr_array_add (env_array, g_strdup_printf ("HOME=%s", user_get_home_directory (user)));
+ }
+ else
+ {
+ g_ptr_array_add (env_array, g_strdup ("HOME=/"));
+ }
+
+ display_server = display_get_display_server (display);
+ // FIXME: This should be done in a different layer
+ if (IS_XSERVER (display_server))
+ {
+ XServer *xserver = XSERVER (display_server);
+ gchar *hostname, *xauthority_path;
+
+ g_ptr_array_add (env_array, g_strdup_printf ("DISPLAY=%s", xserver_get_address (xserver)));
+
+ if (!IS_XSERVER_LOCAL (xserver) &&
+ (hostname = xserver_get_hostname (xserver)))
+ {
+ g_ptr_array_add (env_array, g_strdup_printf ("REMOTE_HOST=%s", hostname));
+ g_free (hostname);
+ }
+
+ if (IS_XSERVER_LOCAL (xserver) &&
+ (xauthority_path = xserver_local_get_authority_file_path (XSERVER_LOCAL (xserver))))
+ {
+ g_ptr_array_add (env_array, g_strdup_printf ("XAUTHORITY=%s", xauthority_path));
+ g_free (xauthority_path);
+ }
+ }
+
+ g_ptr_array_add (env_array, NULL);
+ envp = (gchar **) g_ptr_array_free (env_array, FALSE);
+
+ env = g_strjoinv (" ", envp);
+ command = g_strjoin (" ", env, script_name, NULL);
+ g_debug ("Executing script: %s", command);
+ g_free (env);
+ g_free (command);
+ if (!g_spawn_sync (NULL,
+ argv,
+ envp,
+ G_SPAWN_SEARCH_PATH,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ &exit_status,
+ &error))
+ {
+ g_warning ("Error executing %s: %s", script_name, error->message);
+ g_error_free (error);
+ }
+ g_strfreev (argv);
+ g_strfreev (envp);
+
+ if (WIFEXITED (exit_status)) {
+ g_debug ("Exit status of %s: %d", script_name, WEXITSTATUS (exit_status));
+ return WEXITSTATUS (exit_status) == EXIT_SUCCESS;
+ }
+
+ return FALSE;
+}
+
static void
display_ready_cb (Display *display, Seat *seat)
{
+ const gchar *script;
+
+ /* Run setup script */
+ script = seat_get_string_property (seat, "display-setup-script");
+ if (script)
+ run_script (display, script, NULL);
+
/* Switch to this new display */
SEAT_GET_CLASS (seat)->set_active_display (seat, display);
}
static void
+display_greeter_started_cb (Display *display, Seat *seat)
+{
+ Session *session;
+ const gchar *script;
+
+ session = display_get_session (display);
+
+ script = seat_get_string_property (seat, "greeter-setup-script");
+ if (script)
+ run_script (display, script, session_get_user (session));
+}
+
+static void
+display_session_created_cb (Display *display, Seat *seat)
+{
+ Session *session;
+ const gchar *script;
+
+ session = display_get_session (display);
+
+ script = seat_get_string_property (seat, "session-setup-script");
+ if (script)
+ run_script (display, script, session_get_user (session));
+}
+
+static void
display_session_stopped_cb (Display *display, Seat *seat)
{
Session *session;
+ const gchar *script;
session = display_get_session (display);
+
+ /* Cleanup */
+ script = seat_get_string_property (seat, "session-cleanup-script");
+ if (script)
+ run_script (display, script, session_get_user (session));
+
if (seat->priv->guest_username && strcmp (user_get_name (session_get_user (session)), seat->priv->guest_username) == 0)
{
guest_account_cleanup (seat->priv->guest_username);
@@ -325,6 +468,8 @@ switch_to_user_or_start_greeter (Seat *s
g_signal_connect (new_display, "switch-to-guest", G_CALLBACK (display_switch_to_guest_cb), seat);
g_signal_connect (new_display, "get-guest-username", G_CALLBACK (display_get_guest_username_cb), seat);
g_signal_connect (new_display, "ready", G_CALLBACK (display_ready_cb), seat);
+ g_signal_connect (new_display, "greeter-started", G_CALLBACK (display_greeter_started_cb), seat);
+ g_signal_connect (new_display, "session-created", G_CALLBACK (display_session_created_cb), seat);
g_signal_connect (new_display, "session-stopped", G_CALLBACK (display_session_stopped_cb), seat);
g_signal_connect (new_display, "stopped", G_CALLBACK (display_stopped_cb), seat);
display_set_greeter_session (new_display, seat_get_string_property (seat, "greeter-session"));
diff --git a/src/xserver-local.c b/src/xserver-local.c
--- a/src/xserver-local.c
+++ b/src/xserver-local.c
@@ -196,6 +196,15 @@ xserver_local_get_vt (XServerLocal *serv
return server->priv->vt;
}
+gchar *
+xserver_local_get_authority_file_path (XServerLocal *server)
+{
+ g_return_val_if_fail (server != NULL, 0);
+ if (server->priv->authority_file)
+ return g_file_get_path (server->priv->authority_file);
+ return NULL;
+}
+
static gchar *
get_absolute_command (const gchar *command)
{
diff --git a/src/xserver-local.h b/src/xserver-local.h
--- a/src/xserver-local.h
+++ b/src/xserver-local.h
@@ -57,6 +57,8 @@ void xserver_local_set_xdmcp_key (XServe
gint xserver_local_get_vt (XServerLocal *server);
+gchar *xserver_local_get_authority_file_path (XServerLocal *server);
+
G_END_DECLS
#endif /* _XSERVER_LOCAL_H_ */
++++++ lightdm-default-configuration.patch ++++++
--- /var/tmp/diff_new_pack.azIsdR/_old 2011-09-05 16:37:10.000000000 +0200
+++ /var/tmp/diff_new_pack.azIsdR/_new 2011-09-05 16:37:10.000000000 +0200
@@ -1,11 +1,11 @@
# HG changeset patch
-# Parent 01212b89b5009138462f18b2761afeff203d17f2
+# Parent de431b5b06f188b2d9f49724a5cac9f523a8b0f9
openSUSE-specific default configuration
diff --git a/data/lightdm.conf b/data/lightdm.conf
--- a/data/lightdm.conf
+++ b/data/lightdm.conf
-@@ -16,7 +16,7 @@
+@@ -45,7 +45,7 @@
#greeter-user=lightdm
#minimum-display-number=0
#minimum-vt=7
@@ -14,7 +14,7 @@
#guest-account-script=guest-account
#log-directory=/var/log/lightdm
#run-directory=/var/run/lightdm
-@@ -45,7 +45,7 @@
+@@ -78,7 +78,7 @@
# autologin-session = Session to load for automatic login (overrides user-session)
#
[SeatDefaults]
@@ -23,12 +23,19 @@
#xserver-layout=
#xserver-config=
#xdmcp-manager=
-@@ -58,7 +58,7 @@
+@@ -89,11 +89,11 @@
#user-session=default
#allow-guest=true
#guest-session=UNIMPLEMENTED
-#session-wrapper=lightdm-session
+session-wrapper=/etc/X11/xdm/Xsession
+ #display-setup-script=
+-#greeter-setup-script=
+-#session-setup-script=
+-#session-cleanup-script=
++greeter-setup-script=/etc/X11/xdm/Xsetup
++session-setup-script=/etc/X11/xdm/Xstartup
++session-cleanup-script=/etc/X11/xdm/Xreset
#autologin-guest=false
#autologin-user=
#autologin-user-timeout=0
++++++ lightdm-desktop-session-env-pam.patch ++++++
--- /var/tmp/diff_new_pack.azIsdR/_old 2011-09-05 16:37:10.000000000 +0200
+++ /var/tmp/diff_new_pack.azIsdR/_new 2011-09-05 16:37:10.000000000 +0200
@@ -1,40 +1,23 @@
# HG changeset patch
-# Parent ee07a16ac75168b54e672ee1b5740e0358624c45
+# Parent 1d329005a5224b3b88546b87ec2221e5590b1149
+pass a DESKTOP_SESSION environment variable with the name of the selected session into the PAM environment
diff --git a/src/display.c b/src/display.c
--- a/src/display.c
+++ b/src/display.c
-@@ -441,7 +441,7 @@ autologin_authentication_result_cb (PAMS
- if (result == PAM_SUCCESS)
- {
- g_debug ("User %s authorized", pam_session_get_username (display->priv->pam_session));
-- pam_session_open (display->priv->pam_session);
-+ pam_session_open (display->priv->pam_session, display->priv->user_session);
- started_session = start_user_session (display);
- if (!started_session)
- g_debug ("Failed to start autologin session");
-@@ -552,7 +552,7 @@ greeter_session_stopped_cb (Session *ses
- {
- display->priv->in_user_session = TRUE;
- display->priv->pam_session = g_object_ref (greeter_get_pam_session (display->priv->greeter));
-- pam_session_open (display->priv->pam_session);
-+ pam_session_open (display->priv->pam_session, display->priv->user_session);
- started_session = start_user_session (display);
- if (!started_session)
- g_debug ("Failed to start user session");
-@@ -750,7 +750,7 @@ start_greeter_session (Display *display)
- }
- display->priv->in_user_session = FALSE;
- display->priv->pam_session = pam_session_new (display->priv->pam_service, user_get_name (user));
-- pam_session_open (display->priv->pam_session);
-+ pam_session_open (display->priv->pam_session, NULL);
- g_object_unref (user);
+@@ -596,6 +596,8 @@ create_session (Display *display, PAMSes
+ session_set_is_greeter (session, is_greeter);
+ session_set_authentication (session, authentication);
+ session_set_command (session, command);
++ if (!is_greeter)
++ session_set_user_session_name (session, session_name);
- log_dir = config_get_string (config_get_instance (), "LightDM", "log-directory");
+ process_set_env (PROCESS (session), "DESKTOP_SESSION", session_name); // FIXME: Apparently deprecated?
+ process_set_env (PROCESS (session), "GDMSESSION", session_name); // FIXME: Not cross-desktop
diff --git a/src/pam-session.c b/src/pam-session.c
--- a/src/pam-session.c
+++ b/src/pam-session.c
-@@ -110,7 +110,7 @@ pam_session_get_is_authenticated (PAMSes
+@@ -113,7 +113,7 @@ pam_session_get_is_authenticated (PAMSes
}
gboolean
@@ -43,16 +26,14 @@
{
int result = PAM_SUCCESS;
-@@ -120,6 +120,16 @@ pam_session_open (PAMSession *session)
+@@ -123,6 +123,14 @@ pam_session_open (PAMSession *session)
if (!passwd_file && getuid () == 0)
{
+ gchar *desktop_session;
+
-+ if (session_name)
++ if (session_name && (desktop_session = g_strdup_printf ("DESKTOP_SESSION=%s", session_name)))
+ {
-+ desktop_session = g_strdup_printf ("DESKTOP_SESSION=%s", session_name);
-+ /* FIXME check desktop_session? */
+ pam_putenv (session->priv->pam_handle, desktop_session);
+ g_free (desktop_session);
+ }
@@ -63,7 +44,7 @@
diff --git a/src/pam-session.h b/src/pam-session.h
--- a/src/pam-session.h
+++ b/src/pam-session.h
-@@ -50,7 +50,7 @@ gboolean pam_session_authenticate (PAMSe
+@@ -52,7 +52,7 @@ gboolean pam_session_authenticate (PAMSe
gboolean pam_session_get_is_authenticated (PAMSession *session);
@@ -72,3 +53,61 @@
gboolean pam_session_get_in_session (PAMSession *session);
+diff --git a/src/session.c b/src/session.c
+--- a/src/session.c
++++ b/src/session.c
+@@ -25,6 +25,9 @@ struct SessionPrivate
+ /* Authentication for this session */
+ PAMSession *authentication;
+
++ /* Name of the user session */
++ gchar *user_session_name;
++
+ /* Command to run for this session */
+ gchar *command;
+
+@@ -88,6 +91,21 @@ session_get_command (Session *session)
+ return session->priv->command;
+ }
+
++session_set_user_session_name (Session *session, const gchar *user_session_name)
++{
++ g_return_if_fail (session != NULL);
++
++ g_free (session->priv->user_session_name);
++ session->priv->user_session_name = g_strdup (user_session_name);
++}
++
++const gchar *
++session_get_user_session_name (Session *session)
++{
++ g_return_val_if_fail (session != NULL, NULL);
++ return session->priv->user_session_name;
++}
++
+ void
+ session_set_cookie (Session *session, const gchar *cookie)
+ {
+@@ -197,7 +215,7 @@ session_start (Session *session)
+
+ g_debug ("Launching session");
+
+- pam_session_open (session->priv->authentication);
++ pam_session_open (session->priv->authentication, session->priv->user_session_name);
+
+ user = pam_session_get_user (session->priv->authentication);
+ process_set_env (PROCESS (session), "PATH", "/usr/local/bin:/usr/bin:/bin");
+diff --git a/src/session.h b/src/session.h
+--- a/src/session.h
++++ b/src/session.h
+@@ -55,6 +55,10 @@ void session_set_command (Session *sessi
+
+ const gchar *session_get_command (Session *session);
+
++void session_set_user_session_name (Session *session, const gchar *user_session_name);
++
++const gchar *session_get_user_session_name (Session *session);
++
+ void session_set_cookie (Session *session, const gchar *cookie);
+
+ const gchar *session_get_cookie (Session *session);
++++++ lightdm-fix-underlinking.patch ++++++
# HG changeset patch
# Parent a18ca4bf18b3649c54c157da91efaace5bcfd5d0
fix an underlinking issue with test-qt-greeter
diff --git a/tests/src/Makefile.am b/tests/src/Makefile.am
--- a/tests/src/Makefile.am
+++ b/tests/src/Makefile.am
@@ -53,11 +53,13 @@ test-qt-greeter_moc.cpp: test-qt-greeter
test_qt_greeter_SOURCES = test-qt-greeter.cpp test-qt-greeter.h test-qt-greeter_moc.cpp status.c status.h
test_qt_greeter_CXXFLAGS = \
-I$(top_srcdir)/liblightdm-qt \
- $(LIGHTDM_QT_GREETER_CFLAGS)
+ $(LIGHTDM_QT_GREETER_CFLAGS) \
+ $(XCB_CFLAGS)
test_qt_greeter_LDADD = \
-L$(top_builddir)/liblightdm-qt \
-llightdm-qt-1 \
- $(LIGHTDM_QT_GREETER_LIBS)
+ $(LIGHTDM_QT_GREETER_LIBS) \
+ $(XCB_LIBS)
test_session_SOURCES = test-session.c status.c status.h
test_session_CFLAGS = \
++++++ lightdm-lock-screen-before-switch.patch ++++++
# HG changeset patch
# Parent 9b1573da6be87e6608fdc6807225ca87cdfc006a
try to lock the screen before switching users
diff --git a/utils/gdmflexiserver b/utils/gdmflexiserver
--- a/utils/gdmflexiserver
+++ b/utils/gdmflexiserver
@@ -9,9 +9,47 @@
#
# See http://www.gnu.org/copyleft/gpl.html for the full text of the license.
+PATH=/usr/local/bin:/bin:/usr/bin
+export PATH
+
if [ -z "$XDG_SEAT_PATH" ]; then
# something went wrong
exit 1
fi
+find_command () {
+ cmd="$1"
+ oIFS="${IFS}"; IFS=:
+ set -- ${PATH}
+ IFS="${oIFS}"
+
+ for part; do
+ [ -x "${part}/${cmd}" ] && return 0
+ done
+ return 1
+}
+
+lock_screen () {
+ for lock_cmd in \
+ "xscreensaver-command -lock" \
+ "gnome-screensaver-command --lock" \
+ "dbus-send --session --dest=org.freedesktop.ScreenSaver --type=method_call /ScreenSaver org.freedesktop.ScreenSaver.Lock"
+ do
+ ${lock_cmd} >/dev/null 2>&1 && return
+ done
+
+ for lock_cmd in \
+ "slock" \
+ "xlock -mode blank"
+ do
+ set -- ${lock_cmd}
+ if find_command "$1"; then
+ ${lock_cmd} >/dev/null 2>&1 &
+ return
+ fi
+ done
+}
+
+lock_screen
+
dbus-send --system --type=method_call --print-reply --dest=org.freedesktop.DisplayManager $XDG_SEAT_PATH org.freedesktop.DisplayManager.Seat.SwitchToGreeter
++++++ lightdm-set-gdmflexiserver-envvar.patch ++++++
# HG changeset patch
# Parent 6f6ad13bc3f9a6ec6247851d548370f93bb4f601
set the GDMFLEXISERVER environment variable for the gdmflexiserver wrapper
diff --git a/src/session.c b/src/session.c
--- a/src/session.c
+++ b/src/session.c
@@ -223,6 +223,7 @@ session_start (Session *session)
process_set_env (PROCESS (session), "USERNAME", user_get_name (user)); // FIXME: Is this required?
process_set_env (PROCESS (session), "HOME", user_get_home_directory (user));
process_set_env (PROCESS (session), "SHELL", user_get_shell (user));
+ process_set_env (PROCESS (session), "GDMFLEXISERVER", PKGLIBEXEC_DIR "/gdmflexiserver");
set_env_from_authentication (session, session->priv->authentication);
/* Insert our own utility directory to PATH
++++++ lightdm-sysconfig-support.patch ++++++
--- /var/tmp/diff_new_pack.azIsdR/_old 2011-09-05 16:37:10.000000000 +0200
+++ /var/tmp/diff_new_pack.azIsdR/_new 2011-09-05 16:37:10.000000000 +0200
@@ -49,7 +49,7 @@
diff --git a/src/display.c b/src/display.c
--- a/src/display.c
+++ b/src/display.c
-@@ -966,7 +966,10 @@ static void
+@@ -1004,7 +1004,10 @@ static void
display_init (Display *display)
{
display->priv = G_TYPE_INSTANCE_GET_PRIVATE (display, DISPLAY_TYPE, DisplayPrivate);
@@ -70,9 +70,9 @@
#include "configuration.h"
+#include "opensuse-sysconfig.h"
#include "display-manager.h"
- #include "xserver.h"
- #include "user.h"
-@@ -53,6 +54,114 @@ typedef struct
+ #include "xdmcp-server.h"
+ #include "seat-xdmcp-session.h"
+@@ -55,6 +56,114 @@ typedef struct
#define LDM_BUS_NAME "org.freedesktop.DisplayManager"
@@ -187,7 +187,7 @@
static void
log_cb (const gchar *log_domain, GLogLevelFlags log_level,
const gchar *message, gpointer data)
-@@ -886,6 +995,9 @@ main (int argc, char **argv)
+@@ -985,6 +1094,9 @@ main (int argc, char **argv)
loop = g_main_loop_new (NULL, FALSE);
++++++ lightdm-xauthlocalhostname-support.patch ++++++
--- /var/tmp/diff_new_pack.azIsdR/_old 2011-09-05 16:37:10.000000000 +0200
+++ /var/tmp/diff_new_pack.azIsdR/_new 2011-09-05 16:37:10.000000000 +0200
@@ -1,11 +1,22 @@
# HG changeset patch
-# Parent 809135989727855e0efe09f0198856238c586e03
+# Parent fe8c7281c141b60c639196e03934595e0e8328b8
set XAUTHLOCALHOSTNAME to localhost for local logins to avoid issues in the session in case the hostname changes
+diff --git a/src/seat.c b/src/seat.c
+--- a/src/seat.c
++++ b/src/seat.c
+@@ -297,6 +297,7 @@ run_script (Display *display, const gcha
+ (xauthority_path = xserver_local_get_authority_file_path (XSERVER_LOCAL (xserver))))
+ {
+ g_ptr_array_add (env_array, g_strdup_printf ("XAUTHORITY=%s", xauthority_path));
++ g_ptr_array_add (env_array, g_strdup ("XAUTHLOCALHOSTNAME=localhost"));
+ g_free (xauthority_path);
+ }
+ }
diff --git a/src/xserver-local.c b/src/xserver-local.c
--- a/src/xserver-local.c
+++ b/src/xserver-local.c
-@@ -336,7 +336,8 @@ xserver_local_start (DisplayServer *disp
+@@ -345,7 +345,8 @@ xserver_local_start (DisplayServer *disp
XServerLocal *server = XSERVER_LOCAL (display_server);
gboolean result;
gchar *filename, *dir, *path, *absolute_command;
@@ -15,7 +26,7 @@
GString *command;
GError *error = NULL;
-@@ -380,7 +381,6 @@ xserver_local_start (DisplayServer *disp
+@@ -389,7 +390,6 @@ xserver_local_start (DisplayServer *disp
if (server->priv->layout)
g_string_append_printf (command, " -layout %s", server->priv->layout);
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Remember to have fun...
--
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 libsynce for openSUSE:Factory
checked in at Mon Sep 5 16:37:50 CEST 2011.
--------
New Changes file:
--- /dev/null 2010-08-26 16:28:41.000000000 +0200
+++ libsynce/libsynce.changes 2011-04-19 16:33:41.000000000 +0200
@@ -0,0 +1,54 @@
+-------------------------------------------------------------------
+Tue Apr 19 14:33:34 UTC 2011 - tejas.guruswamy(a)opensuse.org
+
+- Disable hal support
+
+-------------------------------------------------------------------
+Wed Mar 30 19:21:08 UTC 2011 - tejas.guruswamy(a)opensuse.org
+
+- Update to version 0.15.1
+ + support for connections through udev based connection dccm
+
+-------------------------------------------------------------------
+Mon Oct 18 17:12:14 UTC 2010 - masterpatricko(a)gmail.com
+
+- Fix build of python wrappers against python2.7 with libsynce-date-undef.patch
+
+-------------------------------------------------------------------
+Sun May 2 12:48:23 UTC 2010 - masterpatricko(a)gmail.com
+
+- Update to version 0.15
+ + Bugfixes and under the hood stuff.
+ + A few more registry functions in pyrapi2.
+ + A new API based on MS RAPI2 is mostly complete and certainly usable.
+
+-------------------------------------------------------------------
+Sat Jul 18 20:34:48 CEST 2009 - masterpatricko(a)gmail.com
+
+- Updated to version 0.14
+ + Mostly bugfixes and developer stuff, with some changes to the
+ python wrapper, including documentation !
+ + Also now supports some unusual WM2003 devices with 4 endpoints
+ with kernel 2.6.30
+
+-------------------------------------------------------------------
+Fri Jan 16 20:33:59 GMT 2009 - masterpatricko(a)gmail.com
+- Updated to version 0.13
+ * lib/synce_log.c - check for incomplete conversion in wstr logging
+ * man/wstr_to_ascii.3 - notes about NULL return from incomplete conversion
+ * lib/synce_log.c - use wstr_to_current() in wstr logging
+ * lib/info.c - use correct keys to get os and hardware from vdccm info file
+ * lib/info.c - check odccm is running before attempting to get devices, ignore devices from hal without pda.pocketpc.name as these are not valid
+ * lib/synce_socket.c - applied patch from andyakadum to build on Solaris, many thanks !
+
+-------------------------------------------------------------------
+Sat Aug 9 15:11:28 BST 2008 - masterpatricko(a)gmail.com
+- Updated to version 0.12
+
+-------------------------------------------------------------------
+Wed Jun 11 00:07:44 BST 2008 - masterpatricko(a)gmail.com
+- Initial release of package, svn revision 3488
+
+-------------------------------------------------------------------
+Sun May 11 23:14:00 BST 2008 - masterpatricko(a)gmail.com
+- Initial release of package, svn revision 3446
calling whatdependson for head-i586
New:
----
libsynce-0.15.1.tar.bz2
libsynce-date-undef.patch
libsynce.changes
libsynce.spec
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ libsynce.spec ++++++
#
# spec file for package libsynce
#
# Copyright (c) 2011 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/
#
%if 0%{?suse_version} > 1110
%bcond_with hal
%else
%bcond_without hal
%endif
%define major 0
Name: libsynce
Version: 0.15.1
Release: 1
License: MIT
Summary: Core library for the SynCE project
Url: http://www.synce.org
Group: System/Libraries
BuildRoot: %{_tmppath}/%{name}-%{version}-build
Source0: %{name}-%{version}.tar.bz2
Patch0: libsynce-date-undef.patch
BuildRequires: dbus-1-glib-devel
%if %{with hal}
BuildRequires: hal-devel
%endif
%description
The purpose of the SynCE project is to provide a means of communication with a Windows Mobile, or Windows CE, device from a computer running Linux, FreeBSD or a similar operating system.
%package -n %{name}%{major}
Summary: Core library for the SynCE project
Group: System/Libraries
Provides: %{name} = %{version}
Obsoletes: %{name} < %{version}
%description -n %{name}%{major}
The purpose of the SynCE project is to provide a means of communication with a Windows Mobile, or Windows CE, device from a computer running Linux, FreeBSD or a similar operating system.
Libsynce is a common library for various SynCE project tools, containing various utility and helper functions.
%package devel
Summary: Header files, libraries and development documentation for %{name}
Group: Development/Libraries/C and C++
Requires: %{name} = %{version}
Requires: dbus-1-glib-devel
%if %{with hal}
Requires: hal-devel
%endif
%description devel
This package contains the header files, static libraries and development documentation for %{name}. If you like to develop programs using %{name}, you will need to install %{name}-devel.
%prep
%setup -q
%patch0 -p1
%build
%configure --disable-rpath \
--disable-static \
%if %{with hal}
--enable-hal-support
%else
--disable-hal-support
%endif
make %{?_smp_mflags}
%install
%makeinstall DESTDIR=%{buildroot}
rm -f %{buildroot}%{_libdir}/*.{la,a}
%clean
rm -rf %{buildroot}
%post -n %{name}%{major} -p /sbin/ldconfig
%postun -n %{name}%{major} -p /sbin/ldconfig
%files -n %{name}%{major}
%defattr(-,root,root)
%doc ChangeLog LICENSE README TODO
%{_mandir}/man7/synce.7.gz
%{_libdir}/libsynce.so.0.0.0
%{_libdir}/libsynce.so.0
%files devel
%defattr(-,root,root)
%{_mandir}/man3/*
%{_includedir}/synce_socket.h
%{_includedir}/synce_sys_error.h
%{_includedir}/synce.h
%{_includedir}/synce_log.h
%{_includedir}/synce_hash.h
%{_includedir}/synce_types.h
%{_includedir}/synce_ini.h
%{_includedir}/synce_vector_template.h
%{_libdir}/pkgconfig/libsynce.pc
%{_libdir}/libsynce.so
%changelog
++++++ libsynce-date-undef.patch ++++++
Index: libsynce-0.15/lib/synce_types.h
===================================================================
--- libsynce-0.15.orig/lib/synce_types.h
+++ libsynce-0.15/lib/synce_types.h
@@ -38,6 +38,8 @@ typedef uint64_t ULARGE_INTEGER;
/* XXX: sizeof(double) must be 8 */
+//Python2.7 defines DATE as a macro in /usr/include/python2.7/pyconfig.h
+#undef DATE
typedef double DATE;
/*
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Remember to have fun...
--
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 libreoffice-l10n for openSUSE:Factory
checked in at Mon Sep 5 16:36:48 CEST 2011.
--------
--- libreoffice-l10n/libreoffice-l10n.changes 2011-08-24 16:35:06.000000000 +0200
+++ libreoffice-l10n/libreoffice-l10n.changes 2011-09-02 17:09:11.000000000 +0200
@@ -1,0 +2,5 @@
+Fri Sep 2 14:25:16 UTC 2011 - pmladek(a)suse.com
+
+- updated to libreoffice-3.4.2.5 (SUSE 3.4.2-rc2)
+
+-------------------------------------------------------------------
calling whatdependson for head-i586
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ libreoffice-l10n.spec ++++++
--- /var/tmp/diff_new_pack.k6QQVs/_old 2011-09-05 16:36:20.000000000 +0200
+++ /var/tmp/diff_new_pack.k6QQVs/_new 2011-09-05 16:36:20.000000000 +0200
@@ -19,11 +19,11 @@
Name: libreoffice-l10n
-Version: 3.4.2.4
+Version: 3.4.2.5
Release: 1
%define piece l10n
-%define ooo_build_version 3.4.2.4
-%define ooo_piece_version 3.4.2.4
+%define ooo_build_version 3.4.2.5
+%define ooo_piece_version 3.4.2.5
%define ooo_sourcedirname libreoffice-build-%ooo_piece_version
%define ooo_home libreoffice
%define ooo_basis_dir basis3.4
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Remember to have fun...
--
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 libreoffice-icon-themes for openSUSE:Factory
checked in at Mon Sep 5 16:36:46 CEST 2011.
--------
--- libreoffice-icon-themes/libreoffice-icon-themes.changes 2011-08-24 16:34:53.000000000 +0200
+++ libreoffice-icon-themes/libreoffice-icon-themes.changes 2011-09-02 17:10:05.000000000 +0200
@@ -1,0 +2,5 @@
+Fri Sep 2 14:25:16 UTC 2011 - pmladek(a)suse.com
+
+- updated to libreoffice-3.4.2.5 (SUSE 3.4.2-rc2)
+
+-------------------------------------------------------------------
calling whatdependson for head-i586
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ libreoffice-icon-themes.spec ++++++
--- /var/tmp/diff_new_pack.Ire3Lf/_old 2011-09-05 16:35:41.000000000 +0200
+++ /var/tmp/diff_new_pack.Ire3Lf/_new 2011-09-05 16:35:41.000000000 +0200
@@ -19,10 +19,10 @@
Name: libreoffice-icon-themes
-Version: 3.4.2.4
+Version: 3.4.2.5
Release: 1
-%define ooo_build_version 3.4.2.4
-%define ooo_piece_version 3.4.2.4
+%define ooo_build_version 3.4.2.5
+%define ooo_piece_version 3.4.2.5
%define ooo_basis_dir basis3.4
%define ooo_home libreoffice
BuildRequires: libreoffice-icon-themes-prebuilt = %version
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Remember to have fun...
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0