openSUSE Commits
Threads by month
- ----- 2025 -----
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2008 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2007 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2006 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
February 2015
- 1 participants
- 1390 discussions
Hello community,
here is the log from the commit of package ansible for openSUSE:Factory checked in at 2015-02-24 13:02:42
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/ansible (Old)
and /work/SRC/openSUSE:Factory/.ansible.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "ansible"
Changes:
--------
--- /work/SRC/openSUSE:Factory/ansible/ansible.changes 2014-12-10 23:43:58.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.ansible.new/ansible.changes 2015-02-24 13:07:05.000000000 +0100
@@ -1,0 +2,9 @@
+Mon Feb 23 11:46:55 UTC 2015 - boris(a)steki.net
+
+- updated to version 1.8.4 from 1.8.2
+ * Fixed regressions in ec2 and mount modules, introduced in 1.8.3
+ * Fixing a security bug related to the default permissions set on a
+ tempoary file created when using "ansible-vault view ".
+ * Many bug fixes, for both core code and core modules.
+
+-------------------------------------------------------------------
Old:
----
ansible-1.8.2.tar.gz
New:
----
ansible-1.8.4.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ ansible.spec ++++++
--- /var/tmp/diff_new_pack.4ovGoN/_old 2015-02-24 13:07:06.000000000 +0100
+++ /var/tmp/diff_new_pack.4ovGoN/_new 2015-02-24 13:07:06.000000000 +0100
@@ -1,7 +1,7 @@
#
# spec file for package ansible
#
-# Copyright (c) 2014 SUSE LINUX Products GmbH, Nuernberg, Germany.
+# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany.
# Copyright 2013 by Lars Vogdt
# Copyright 2014 by Boris Manojlovic
#
@@ -19,7 +19,7 @@
Name: ansible
-Version: 1.8.2
+Version: 1.8.4
Release: 0
Summary: Radically simple IT automation
License: GPL-3.0
++++++ ansible-1.8.2.tar.gz -> ansible-1.8.4.tar.gz ++++++
++++ 2375 lines of diff (skipped)
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package python-dulwich for openSUSE:Factory checked in at 2015-02-24 13:02:41
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-dulwich (Old)
and /work/SRC/openSUSE:Factory/.python-dulwich.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-dulwich"
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-dulwich/python-dulwich.changes 2013-11-01 17:42:23.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.python-dulwich.new/python-dulwich.changes 2015-02-24 13:07:04.000000000 +0100
@@ -1,0 +2,157 @@
+Sun Feb 22 20:54:12 UTC 2015 - develop7(a)develop7.info
+
+- update to version 0.9.8
+ + disabled tests
+
+- Changes from 0.9.7
+ + BUG FIXES
+ * Various fixes to improve test suite running on Windows.
+ (Gary van der Merwe)
+ * Limit delta copy length to 64K in v2 pack files. (Robert Brown)
+ * Strip newline from final ACKed SHA while fetching packs.
+ (Michael Edgar)
+ * Remove assignment to PyList_SIZE() that was causing segfaults on
+ pypy. (Jelmer Vernooij, #196)
+ + IMPROVEMENTS
+ * Add porcelain 'receive-pack' and 'upload-pack'. (Jelmer Vernooij)
+ * Handle SIGINT signals in bin/dulwich. (Jelmer Vernooij)
+ * Add 'status' support to bin/dulwich. (Jelmer Vernooij)
+ * Add 'branch_create', 'branch_list', 'branch_delete' porcelain.
+ (Jelmer Vernooij)
+ * Add 'fetch' porcelain. (Jelmer Vernooij)
+ * Add 'tag_delete' porcelain. (Jelmer Vernooij)
+ * Add support for serializing/deserializing 'gpgsig' attributes in Commit.
+ (Jelmer Vernooij)
+ + CHANGES
+ * dul-web is now available as 'dulwich web-daemon'.
+ (Jelmer Vernooij)
+ * dulwich.porcelain.tag has been renamed to tag_create.
+ dulwich.porcelain.list_tags has been renamed to tag_list.
+ (Jelmer Vernooij)
+ + API CHANGES
+ * Restore support for Python 2.6. (Jelmer Vernooij, Gary van der Merwe)
+
+- Changes from 0.9.6
+ + BUG FIXES
+ * Fix tests dependent on hash ordering. (Michael Edgar)
+ * Support staging symbolic links in Repo.stage.
+ (Robert Brown)
+ * Ensure that all files object are closed when running the test suite.
+ (Gary van der Merwe)
+ * When writing OFS_DELTA pack entries, write correct offset.
+ (Augie Fackler)
+ * Fix handler of larger copy operations in packs. (Augie Fackler)
+ * Various fixes to improve test suite running on Windows.
+ (Gary van der Merwe)
+ * Fix logic for extra adds of identical files in rename detector.
+ (Robert Brown)
+ + IMPROVEMENTS
+ * Add porcelain 'status'. (Ryan Faulkner)
+ * Add porcelain 'daemon'. (Jelmer Vernooij)
+ * Add `dulwich.greenthreads` module which provides support
+ for concurrency of some object store operations.
+ (Fabien Boucher)
+ * Various changes to improve compatibility with Python 3.
+ (Gary van der Merwe, Hannu Valtonen, michael-k)
+ * Add OpenStack Swift backed repository implementation
+ in dulwich.contrib. See README.swift for details. (Fabien Boucher)
+ + API CHANGES
+ * An optional close function can be passed to the Protocol class. This will
+ be called by its close method. (Gary van der Merwe)
+ * All classes with close methods are now context managers, so that they can
+ be easily closed using a `with` statement. (Gary van der Merwe)
+ * Remove deprecated `num_objects` argument to `write_pack` methods.
+ (Jelmer Vernooij)
+ + OTHER CHANGES
+ * The 'dul-daemon' script has been removed. The same functionality
+ is now available as 'dulwich daemon'. (Jelmer Vernooij)
+
+- Changes from 0.9.5
+ + IMPROVEMENTS
+ * Add support for recursive add in 'git add'.
+ (Ryan Faulkner, Jelmer Vernooij)
+ * Add porcelain 'list_tags'. (Ryan Faulkner)
+ * Add porcelain 'push'. (Ryan Faulkner)
+ * Add porcelain 'pull'. (Ryan Faulkner)
+ * Support 'http.proxy' in HttpGitClient.
+ (Jelmer Vernooij, #1096030)
+ * Support 'http.useragent' in HttpGitClient.
+ (Jelmer Vernooij)
+ * In server, wait for clients to send empty list of
+ wants when talking to empty repository.
+ (Damien Tournoud)
+ * Various changes to improve compatibility with
+ Python 3. (Gary van der Merwe)
+ + BUG FIXES
+ * Support unseekable 'wsgi.input' streams.
+ (Jonas Haag)
+ * Raise TypeError when passing unicode() object
+ to Repo.__getitem__.
+ (Jonas Haag)
+ * Fix handling of `reset` command in dulwich.fastexport.
+ (Jelmer Vernooij, #1249029)
+ * In client, don't wait for server to close connection
+ first. Fixes hang when used against GitHub
+ server implementation. (Siddharth Agarwal)
+ * DeltaChainIterator: fix a corner case where an object is inflated as an
+ object already in the repository.
+ (Damien Tournoud, #135)
+ * Stop leaking file handles during pack reload. (Damien Tournoud)
+ * Avoid reopening packs during pack cache reload. (Jelmer Vernooij)
+ + API CHANGES
+ * Drop support for Python 2.6. (Jelmer Vernooij)
+
+- Changes from 0.9.4
+ + IMPROVEMENTS
+ * Add porcelain 'tag'. (Ryan Faulkner)
+ * New module `dulwich.objectspec` for parsing strings referencing
+ objects and commit ranges. (Jelmer Vernooij)
+ * Add shallow branch support. (milki)
+ * Allow passing urllib2 `opener` into HttpGitClient.
+ (Dov Feldstern, #909037)
+ + CHANGES
+ * Drop support for Python 2.4 and 2.5. (Jelmer Vernooij)
+ + API CHANGES
+ * Remove long deprecated ``Repo.commit``, ``Repo.get_blob``,
+ ``Repo.tree`` and ``Repo.tag``. (Jelmer Vernooij)
+ * Remove long deprecated ``Repo.revision_history`` and ``Repo.ref``.
+ (Jelmer Vernooij)
+ * Remove long deprecated ``Tree.entries``. (Jelmer Vernooij)
+ + BUG FIXES
+ * Raise KeyError rather than TypeError when passing in
+ unicode object of length 20 or 40 to Repo.__getitem__.
+ (Jelmer Vernooij)
+ * Use 'rm' rather than 'unlink' in tests, since the latter
+ does not exist on OpenBSD and other platforms.
+ (Dmitrij D. Czarkoff)
+
+- Changes from 0.9.3
+ + IMPROVEMENTS
+ * Add ssh_kwargs attribute to ParamikoSSHVendor. (milki)
+ * Add Repo.set_description(). (Víðir Valberg Guðmundsson)
+ * Add a basic `dulwich.porcelain` module. (Jelmer Vernooij, Marcin Kuzminski)
+ * Various performance improvements for object access.
+ (Jelmer Vernooij)
+ * New function `get_transport_and_path_from_url`,
+ similar to `get_transport_and_path` but only
+ supports URLs.
+ (Jelmer Vernooij)
+ * Add support for file:// URLs in `get_transport_and_path_from_url`.
+ (Jelmer Vernooij)
+ * Add LocalGitClient implementation.
+ (Jelmer Vernooij)
+ + BUG FIXES
+ * Support filesystems with 64bit inode and device numbers.
+ (André Roth)
+ + CHANGES
+ * Ref handling has been moved to dulwich.refs.
+ (Jelmer Vernooij)
+ + API CHANGES
+ * Remove long deprecated RefsContainer.set_ref().
+ (Jelmer Vernooij)
+ * Repo.ref() is now deprecated in favour of Repo.refs[].
+ (Jelmer Vernooij)
+ + FEATURES
+ * Add support for graftpoints. (milki)
+
+-------------------------------------------------------------------
Old:
----
dulwich-0.9.3.tar.gz
New:
----
dulwich-0.9.8.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-dulwich.spec ++++++
--- /var/tmp/diff_new_pack.0XLfUF/_old 2015-02-24 13:07:05.000000000 +0100
+++ /var/tmp/diff_new_pack.0XLfUF/_new 2015-02-24 13:07:05.000000000 +0100
@@ -1,7 +1,7 @@
#
# spec file for package python-dulwich
#
-# Copyright (c) 2013 SUSE LINUX Products GmbH, Nuernberg, Germany.
+# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -17,7 +17,7 @@
Name: python-dulwich
-Version: 0.9.3
+Version: 0.9.8
Release: 0
Url: http://samba.org/~jelmer/dulwich
Summary: Pure-Python Git Library
@@ -45,16 +45,11 @@
%install
python setup.py install --prefix=%{_prefix} --root=%{buildroot}
-%check
-python setup.py test
-
%files
%defattr(-,root,root,-)
-%doc COPYING NEWS README build/sphinx/html
-%{_bindir}/dul-daemon
+%doc COPYING NEWS README.md build/sphinx/html
%{_bindir}/dul-receive-pack
%{_bindir}/dul-upload-pack
-%{_bindir}/dul-web
%{_bindir}/dulwich
%{python_sitearch}/*
++++++ dulwich-0.9.3.tar.gz -> dulwich-0.9.8.tar.gz ++++++
++++ 20678 lines of diff (skipped)
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package python-blinker for openSUSE:Factory checked in at 2015-02-24 13:02:39
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-blinker (Old)
and /work/SRC/openSUSE:Factory/.python-blinker.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-blinker"
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-blinker/python-blinker.changes 2012-08-23 16:05:39.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.python-blinker.new/python-blinker.changes 2015-02-24 13:07:03.000000000 +0100
@@ -1,0 +2,10 @@
+Sun Feb 22 17:44:07 UTC 2015 - benoit.monin(a)gmx.fr
+
+- update to version 1.3:
+ * The global signal stash behind blinker.signal() is now backed
+ by a regular name-to-Signal dictionary
+ * blinker.Namespace is now built on a regular dict
+ * Signal.connect('text-sender') uses an alterate hashing strategy
+ to avoid sharp edges in text identity.
+
+-------------------------------------------------------------------
Old:
----
blinker-1.2.tar.gz
New:
----
blinker-1.3.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-blinker.spec ++++++
--- /var/tmp/diff_new_pack.6SwVKD/_old 2015-02-24 13:07:04.000000000 +0100
+++ /var/tmp/diff_new_pack.6SwVKD/_new 2015-02-24 13:07:04.000000000 +0100
@@ -1,7 +1,7 @@
#
# spec file for package python-blinker
#
-# Copyright (c) 2013 SUSE LINUX Products GmbH, Nuernberg, Germany.
+# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -17,7 +17,7 @@
Name: python-blinker
-Version: 1.2
+Version: 1.3
Release: 0
Url: http://discorporate.us/projects/Blinker/
Summary: Fast, simple object-to-object and broadcast signaling
++++++ blinker-1.2.tar.gz -> blinker-1.3.tar.gz ++++++
++++ 3841 lines of diff (skipped)
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package python-zake for openSUSE:Factory checked in at 2015-02-24 13:02:37
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-zake (Old)
and /work/SRC/openSUSE:Factory/.python-zake.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-zake"
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-zake/python-zake.changes 2014-07-02 15:05:12.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.python-zake.new/python-zake.changes 2015-02-24 13:07:02.000000000 +0100
@@ -1,0 +2,12 @@
+Sat Feb 21 06:46:04 UTC 2015 - dmueller(a)suse.com
+
+- add dependency on testtools (which is needed during runtime)
+
+-------------------------------------------------------------------
+Tue Sep 16 19:56:08 UTC 2014 - dmueller(a)suse.com
+
+- update to 0.1.6:
+ * Support for multi-client storage
+ * Bugfixes
+
+-------------------------------------------------------------------
Old:
----
zake-0.0.20.tar.gz
New:
----
zake-0.1.6.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-zake.spec ++++++
--- /var/tmp/diff_new_pack.cDy3XF/_old 2015-02-24 13:07:03.000000000 +0100
+++ /var/tmp/diff_new_pack.cDy3XF/_new 2015-02-24 13:07:03.000000000 +0100
@@ -1,7 +1,7 @@
#
# spec file for package python-zake
#
-# Copyright (c) 2014 SUSE LINUX Products GmbH, Nuernberg, Germany.
+# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -17,7 +17,7 @@
Name: python-zake
-Version: 0.0.20
+Version: 0.1.6
Release: 0
Summary: Testing utilities for the kazoo library
License: Apache-2.0
@@ -28,6 +28,7 @@
BuildRequires: python-setuptools
Requires: python-kazoo
Requires: python-six
+Requires: python-testtools
BuildRoot: %{_tmppath}/%{name}-%{version}-build
%if 0%{?suse_version} && 0%{?suse_version} <= 1110
%{!?python_sitelib: %global python_sitelib %(python -c "from distutils.sysconfig import get_python_lib; print get_python_lib()")}
++++++ zake-0.0.20.tar.gz -> zake-0.1.6.tar.gz ++++++
++++ 1847 lines of diff (skipped)
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package python-ecdsa for openSUSE:Factory checked in at 2015-02-24 13:02:35
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-ecdsa (Old)
and /work/SRC/openSUSE:Factory/.python-ecdsa.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-ecdsa"
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-ecdsa/python-ecdsa.changes 2014-09-17 17:25:28.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.python-ecdsa.new/python-ecdsa.changes 2015-02-24 13:07:01.000000000 +0100
@@ -1,0 +2,16 @@
+Sat Feb 21 01:31:36 UTC 2015 - prusnak(a)opensuse.org
+
+- update to 0.13
+
+ Fix the argument order for Curve constructor (put openssl_name= at the end,
+ with a default value) to unbreak compatibility with external callers who used
+ the 0.11 convention.
+
+* update to 0.12
+
+ Switch to Versioneer for version-string management (fixing the broken
+ `ecdsa.__version__` attribute). Add Curve.openssl_name property. Mention
+ secp256k1 in README, test against OpenSSL. Produce "wheel" distributions. Add
+ py3.4 and pypy3 compatibility testing. Other minor fixes.
+
+-------------------------------------------------------------------
Old:
----
ecdsa-0.11.tar.gz
New:
----
ecdsa-0.13.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-ecdsa.spec ++++++
--- /var/tmp/diff_new_pack.CQIPFx/_old 2015-02-24 13:07:02.000000000 +0100
+++ /var/tmp/diff_new_pack.CQIPFx/_new 2015-02-24 13:07:02.000000000 +0100
@@ -1,7 +1,7 @@
#
# spec file for package python-ecdsa
#
-# Copyright (c) 2014 SUSE LINUX Products GmbH, Nuernberg, Germany.
+# Copyright (c) 2015 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -17,7 +17,7 @@
Name: python-ecdsa
-Version: 0.11
+Version: 0.13
Release: 0
Summary: ECDSA cryptographic signature library (pure python)
License: MIT
++++++ ecdsa-0.11.tar.gz -> ecdsa-0.13.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ecdsa-0.11/MANIFEST.in new/ecdsa-0.13/MANIFEST.in
--- old/ecdsa-0.11/MANIFEST.in 2013-10-02 01:50:50.000000000 +0200
+++ new/ecdsa-0.13/MANIFEST.in 2015-02-04 11:02:21.000000000 +0100
@@ -1,2 +1,3 @@
# basic metadata
-include MANIFEST.in LICENSE NEWS README.md
+include MANIFEST.in LICENSE NEWS README.md versioneer.py
+include ecdsa/_version.py
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ecdsa-0.11/NEWS new/ecdsa-0.13/NEWS
--- old/ecdsa-0.11/NEWS 2014-03-10 23:49:39.000000000 +0100
+++ new/ecdsa-0.13/NEWS 2015-02-07 19:18:55.000000000 +0100
@@ -1,3 +1,16 @@
+* Release 0.13 (07 Feb 2015)
+
+Fix the argument order for Curve constructor (put openssl_name= at the end,
+with a default value) to unbreak compatibility with external callers who used
+the 0.11 convention.
+
+* Release 0.12 (06 Feb 2015)
+
+Switch to Versioneer for version-string management (fixing the broken
+`ecdsa.__version__` attribute). Add Curve.openssl_name property. Mention
+secp256k1 in README, test against OpenSSL. Produce "wheel" distributions. Add
+py3.4 and pypy3 compatibility testing. Other minor fixes.
+
* Release 0.11 (10 Mar 2014)
Add signature-encoding functions "sigencode_{strings,string,der}_canonize"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ecdsa-0.11/PKG-INFO new/ecdsa-0.13/PKG-INFO
--- old/ecdsa-0.11/PKG-INFO 2014-03-10 23:54:24.000000000 +0100
+++ new/ecdsa-0.13/PKG-INFO 2015-02-07 19:26:16.000000000 +0100
@@ -1,6 +1,6 @@
Metadata-Version: 1.1
Name: ecdsa
-Version: 0.11
+Version: 0.13
Summary: ECDSA cryptographic signature library (pure python)
Home-page: http://github.com/warner/python-ecdsa
Author: Brian Warner
@@ -15,3 +15,4 @@
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.2
Classifier: Programming Language :: Python :: 3.3
+Classifier: Programming Language :: Python :: 3.4
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ecdsa-0.11/README.md new/ecdsa-0.13/README.md
--- old/ecdsa-0.11/README.md 2014-02-17 21:48:01.000000000 +0100
+++ new/ecdsa-0.13/README.md 2015-02-06 22:14:49.000000000 +0100
@@ -1,6 +1,8 @@
# Pure-Python ECDSA
[![build status](https://travis-ci.org/warner/python-ecdsa.png)](http://travis-ci.or…
+[![Coverage Status](https://coveralls.io/repos/warner/python-ecdsa/badge.svg)](https://coveralls.io/r/warner/python-ecdsa)
+[![Latest Version](https://pypip.in/version/ecdsa/badge.svg?style=flat)](https://pypi…
This is an easy-to-use implementation of ECDSA cryptography (Elliptic Curve
@@ -15,8 +17,10 @@
This library provides key generation, signing, and verifying, for five
popular NIST "Suite B" GF(p) curves, with key lengths of 192, 224, 256, 384,
and 521 bits. The "short names" for these curves, as known by the OpenSSL
-tool, are: prime192v1, secp224r1, prime256v1, secp384r1, and secp521r1. No
-other curves are included, but it would not be too hard to add more.
+tool (`openssl ecparam --list_curves`), are: prime192v1, secp224r1,
+prime256v1, secp384r1, and secp521r1. It also includes the 256-bit curve used
+by Bitcoin, whose short name is secp256k1. No other curves are included, but
+it would not be too hard to add more.
## Dependencies
@@ -33,7 +37,7 @@
(keygen=), to sign data (sign=), and to verify those signatures (verify=), on
my 2008 Mac laptop. All times are in seconds. It also shows the length of a
signature (in bytes): the verifying ("public") key is typically the same
-length as the signature, and the signing ("private") key is half that length.
+length as the signature, and the signing ("private") key is half that length. Use "python setup.py speed" to generate this table on your own computer.
* NIST192p: siglen= 48, keygen=0.160s, sign=0.058s, verify=0.116s
* NIST224p: siglen= 56, keygen=0.230s, sign=0.086s, verify=0.165s
@@ -68,12 +72,9 @@
There are four test suites, three for the original Pearson module, and one
more for the wrapper. To run them all, do this:
- python ecdsa/numbertheory.py # look for "****" and "failed" for problems
- python ecdsa/ellipticcurve.py # look for "Bad" for problems
- python ecdsa/ecdsa.py # look for "****" and "failed" for problems
- python ecdsa/test_pyecdsa.py # look for "FAILED" for problems
+ python setup.py test
-On my 2009 Mac laptop, the combined tests take about 34 seconds to run. On a
+On my 2014 Mac Mini, the combined tests take about 20 seconds to run. On a
2.4GHz P4 Linux box, they take 81 seconds.
One component of `test_pyecdsa.py` checks compatibility with OpenSSL, by
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ecdsa-0.11/ecdsa/__init__.py new/ecdsa-0.13/ecdsa/__init__.py
--- old/ecdsa-0.11/ecdsa/__init__.py 2013-10-23 20:28:18.000000000 +0200
+++ new/ecdsa-0.13/ecdsa/__init__.py 2015-02-04 11:02:21.000000000 +0100
@@ -9,9 +9,6 @@
# This code comes from http://github.com/warner/python-ecdsa
-try:
- from _version import __version__ as v
- __version__ = v
- del v
-except ImportError:
- __version__ = "UNKNOWN"
+from ._version import get_versions
+__version__ = get_versions()['version']
+del get_versions
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ecdsa-0.11/ecdsa/_version.py new/ecdsa-0.13/ecdsa/_version.py
--- old/ecdsa-0.11/ecdsa/_version.py 2014-03-10 23:54:24.000000000 +0100
+++ new/ecdsa-0.13/ecdsa/_version.py 2015-02-07 19:26:16.000000000 +0100
@@ -1,5 +1,11 @@
-# This file is originally generated from Git information by running 'setup.py
-# version'. Distribution tarballs contain a pre-generated copy of this file.
+# This file was generated by 'versioneer.py' (0.12) from
+# revision-control system data, or from the parent directory name of an
+# unpacked source archive. Distribution tarballs contain a pre-generated copy
+# of this file.
+
+version_version = '0.13'
+version_full = '5a6fc047222cf21ad89f6cbf8782d0f1e3ddacda'
+def get_versions(default={}, verbose=False):
+ return {'version': version_version, 'full': version_full}
-__version__ = '0.11'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ecdsa-0.11/ecdsa/curves.py new/ecdsa-0.13/ecdsa/curves.py
--- old/ecdsa-0.11/ecdsa/curves.py 2013-10-02 01:13:25.000000000 +0200
+++ new/ecdsa-0.13/ecdsa/curves.py 2015-02-07 19:16:22.000000000 +0100
@@ -10,8 +10,9 @@
# the NIST curves
class Curve:
- def __init__(self, name, curve, generator, oid):
+ def __init__(self, name, curve, generator, oid, openssl_name=None):
self.name = name
+ self.openssl_name = openssl_name # maybe None
self.curve = curve
self.generator = generator
self.order = generator.order()
@@ -22,18 +23,17 @@
self.encoded_oid = der.encode_oid(*oid)
NIST192p = Curve("NIST192p", ecdsa.curve_192, ecdsa.generator_192,
- (1, 2, 840, 10045, 3, 1, 1))
+ (1, 2, 840, 10045, 3, 1, 1), "prime192v1")
NIST224p = Curve("NIST224p", ecdsa.curve_224, ecdsa.generator_224,
- (1, 3, 132, 0, 33))
+ (1, 3, 132, 0, 33), "secp224r1")
NIST256p = Curve("NIST256p", ecdsa.curve_256, ecdsa.generator_256,
- (1, 2, 840, 10045, 3, 1, 7))
+ (1, 2, 840, 10045, 3, 1, 7), "prime256v1")
NIST384p = Curve("NIST384p", ecdsa.curve_384, ecdsa.generator_384,
- (1, 3, 132, 0, 34))
+ (1, 3, 132, 0, 34), "secp384r1")
NIST521p = Curve("NIST521p", ecdsa.curve_521, ecdsa.generator_521,
- (1, 3, 132, 0, 35))
-SECP256k1 = Curve("SECP256k1",
- ecdsa.curve_secp256k1, ecdsa.generator_secp256k1,
- (1, 3, 132, 0, 10))
+ (1, 3, 132, 0, 35), "secp521r1")
+SECP256k1 = Curve("SECP256k1", ecdsa.curve_secp256k1, ecdsa.generator_secp256k1,
+ (1, 3, 132, 0, 10), "secp256k1")
curves = [NIST192p, NIST224p, NIST256p, NIST384p, NIST521p, SECP256k1]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ecdsa-0.11/ecdsa/der.py new/ecdsa-0.13/ecdsa/der.py
--- old/ecdsa-0.11/ecdsa/der.py 2013-10-02 01:13:25.000000000 +0200
+++ new/ecdsa-0.13/ecdsa/der.py 2015-02-04 11:02:21.000000000 +0100
@@ -2,7 +2,7 @@
import binascii
import base64
-from .six import int2byte, b, PY3, integer_types, text_type
+from .six import int2byte, b, integer_types, text_type
class UnexpectedDER(Exception):
pass
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ecdsa-0.11/ecdsa/keys.py new/ecdsa-0.13/ecdsa/keys.py
--- old/ecdsa-0.11/ecdsa/keys.py 2014-03-10 23:45:22.000000000 +0100
+++ new/ecdsa-0.13/ecdsa/keys.py 2015-02-04 11:02:21.000000000 +0100
@@ -232,7 +232,8 @@
See RFC 6979 for more details.
"""
secexp = self.privkey.secret_multiplier
- k = rfc6979.generate_k(self.curve.generator, secexp, hashfunc, digest)
+ k = rfc6979.generate_k(
+ self.curve.generator.order(), secexp, hashfunc, digest)
return self.sign_digest(digest, sigencode=sigencode, k=k)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ecdsa-0.11/ecdsa/numbertheory.py new/ecdsa-0.13/ecdsa/numbertheory.py
--- old/ecdsa-0.11/ecdsa/numbertheory.py 2013-10-02 01:41:06.000000000 +0200
+++ new/ecdsa-0.13/ecdsa/numbertheory.py 2015-02-04 11:02:21.000000000 +0100
@@ -15,7 +15,6 @@
from .six.moves import reduce
import math
-import types
class Error( Exception ):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ecdsa-0.11/ecdsa/rfc6979.py new/ecdsa-0.13/ecdsa/rfc6979.py
--- old/ecdsa-0.11/ecdsa/rfc6979.py 2013-10-02 01:40:27.000000000 +0200
+++ new/ecdsa-0.13/ecdsa/rfc6979.py 2015-02-04 11:02:51.000000000 +0100
@@ -51,18 +51,18 @@
return number_to_string_crop(z2, order)
# https://tools.ietf.org/html/rfc6979#section-3.2
-def generate_k(generator, secexp, hash_func, data):
+def generate_k(order, secexp, hash_func, data):
'''
- generator - ECDSA generator used in the signature
+ order - order of the DSA generator used in the signature
secexp - secure exponent (private key) in numeric form
hash_func - reference to the same hash function used for generating hash
data - hash in binary form of the signing data
'''
- qlen = bit_length(generator.order())
+ qlen = bit_length(order)
holen = hash_func().digest_size
rolen = (qlen + 7) / 8
- bx = number_to_string(secexp, generator.order()) + bits2octets(data, generator.order())
+ bx = number_to_string(secexp, order) + bits2octets(data, order)
# Step B
v = b('\x01') * holen
@@ -96,7 +96,7 @@
# Step H3
secret = bits2int(t, qlen)
- if secret >= 1 and secret < generator.order():
+ if secret >= 1 and secret < order:
return secret
k = hmac.new(k, v+b('\x00'), hash_func).digest()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ecdsa-0.11/ecdsa/test_pyecdsa.py new/ecdsa-0.13/ecdsa/test_pyecdsa.py
--- old/ecdsa-0.11/ecdsa/test_pyecdsa.py 2013-10-02 01:31:28.000000000 +0200
+++ new/ecdsa-0.13/ecdsa/test_pyecdsa.py 2015-02-07 19:16:22.000000000 +0100
@@ -57,7 +57,8 @@
priv = SigningKey.from_secret_exponent(secexp, SECP256k1, sha256)
pub = priv.get_verifying_key()
- k = rfc6979.generate_k(SECP256k1.generator, secexp, sha256, sha256(data).digest())
+ k = rfc6979.generate_k(
+ SECP256k1.generator.order(), secexp, sha256, sha256(data).digest())
sig1 = priv.sign(data, k=k)
self.assertTrue(pub.verify(sig1, data))
@@ -245,7 +246,7 @@
badpub = VerifyingKey.from_der(pub1_der)
class FakeGenerator:
def order(self): return 123456789
- badcurve = Curve("unknown", None, FakeGenerator(), (1,2,3,4,5,6))
+ badcurve = Curve("unknown", None, FakeGenerator(), (1,2,3,4,5,6), None)
badpub.curve = badcurve
badder = badpub.to_der()
self.assertRaises(UnknownCurveError, VerifyingKey.from_der, badder)
@@ -331,15 +332,21 @@
# sig: 5:OpenSSL->python 6:python->OpenSSL
def test_from_openssl_nist192p(self):
- return self.do_test_from_openssl(NIST192p, "prime192v1")
+ return self.do_test_from_openssl(NIST192p)
def test_from_openssl_nist224p(self):
- return self.do_test_from_openssl(NIST224p, "secp224r1")
+ return self.do_test_from_openssl(NIST224p)
+ def test_from_openssl_nist256p(self):
+ return self.do_test_from_openssl(NIST256p)
def test_from_openssl_nist384p(self):
- return self.do_test_from_openssl(NIST384p, "secp384r1")
+ return self.do_test_from_openssl(NIST384p)
def test_from_openssl_nist521p(self):
- return self.do_test_from_openssl(NIST521p, "secp521r1")
-
- def do_test_from_openssl(self, curve, curvename):
+ return self.do_test_from_openssl(NIST521p)
+ def test_from_openssl_secp256k1(self):
+ return self.do_test_from_openssl(SECP256k1)
+
+ def do_test_from_openssl(self, curve):
+ curvename = curve.openssl_name
+ assert curvename
# OpenSSL: create sk, vk, sign.
# Python: read vk(3), checksig(5), read sk(1), sign, check
mdarg = self.get_openssl_messagedigest_arg()
@@ -364,15 +371,21 @@
self.assertTrue(vk.verify(sig, data))
def test_to_openssl_nist192p(self):
- self.do_test_to_openssl(NIST192p, "prime192v1")
+ self.do_test_to_openssl(NIST192p)
def test_to_openssl_nist224p(self):
- self.do_test_to_openssl(NIST224p, "secp224r1")
+ self.do_test_to_openssl(NIST224p)
+ def test_to_openssl_nist256p(self):
+ self.do_test_to_openssl(NIST256p)
def test_to_openssl_nist384p(self):
- self.do_test_to_openssl(NIST384p, "secp384r1")
+ self.do_test_to_openssl(NIST384p)
def test_to_openssl_nist521p(self):
- self.do_test_to_openssl(NIST521p, "secp521r1")
-
- def do_test_to_openssl(self, curve, curvename):
+ self.do_test_to_openssl(NIST521p)
+ def test_to_openssl_secp256k1(self):
+ self.do_test_to_openssl(SECP256k1)
+
+ def do_test_to_openssl(self, curve):
+ curvename = curve.openssl_name
+ assert curvename
# Python: create sk, vk, sign.
# OpenSSL: read vk(4), checksig(6), read sk(2), sign, check
mdarg = self.get_openssl_messagedigest_arg()
@@ -510,7 +523,7 @@
class RFC6979(unittest.TestCase):
# https://tools.ietf.org/html/rfc6979#appendix-A.1
def _do(self, generator, secexp, hsh, hash_func, expected):
- actual = rfc6979.generate_k(generator, secexp, hash_func, hsh)
+ actual = rfc6979.generate_k(generator.order(), secexp, hash_func, hsh)
self.assertEqual(expected, actual)
def test_SECP256k1(self):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ecdsa-0.11/ecdsa/util.py new/ecdsa-0.13/ecdsa/util.py
--- old/ecdsa-0.11/ecdsa/util.py 2014-03-10 23:45:10.000000000 +0100
+++ new/ecdsa-0.13/ecdsa/util.py 2015-02-04 11:02:21.000000000 +0100
@@ -28,7 +28,7 @@
Note that this function is not declared to be forwards-compatible: we may
change the behavior in future releases. The entropy= argument (which
- should get a callable that behaves like os.entropy) can be used to
+ should get a callable that behaves like os.urandom) can be used to
achieve stability within a given release (for repeatable unit tests), but
should not be used as a long-term-compatible key generation algorithm.
"""
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ecdsa-0.11/setup.cfg new/ecdsa-0.13/setup.cfg
--- old/ecdsa-0.11/setup.cfg 1970-01-01 01:00:00.000000000 +0100
+++ new/ecdsa-0.13/setup.cfg 2015-02-04 11:02:21.000000000 +0100
@@ -0,0 +1,2 @@
+[wheel]
+universal = 1
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ecdsa-0.11/setup.py new/ecdsa-0.13/setup.py
--- old/ecdsa-0.11/setup.py 2014-02-17 21:48:01.000000000 +0100
+++ new/ecdsa-0.13/setup.py 2015-02-04 11:02:21.000000000 +0100
@@ -1,8 +1,20 @@
#!/usr/bin/env python
-import os, subprocess, re
-from distutils.core import setup, Command
-from distutils.command.sdist import sdist as _sdist
-from ecdsa.six import print_
+try:
+ # try setuptools, so devs can run bdist_wheel
+ from setuptools import setup, Command
+except ImportError:
+ # but most users really don't require it
+ from distutils.core import setup, Command
+import timeit
+
+import versioneer
+versioneer.versionfile_source = "ecdsa/_version.py"
+versioneer.versionfile_build = versioneer.versionfile_source
+versioneer.tag_prefix = "python-ecdsa-"
+versioneer.parentdir_prefix = "ecdsa-"
+versioneer.VCS = "git"
+
+commands = versioneer.get_cmdclass().copy()
class Test(Command):
description = "run unit tests"
@@ -22,78 +34,56 @@
from ecdsa import test_pyecdsa
test_pyecdsa.unittest.main(module=test_pyecdsa, argv=["dummy"])
# all tests os.exit(1) upon failure
+commands["test"] = Test
-VERSION_PY = """
-# This file is originally generated from Git information by running 'setup.py
-# version'. Distribution tarballs contain a pre-generated copy of this file.
-
-__version__ = '%s'
-"""
-
-def update_version_py():
- if not os.path.isdir(".git"):
- print_("This does not appear to be a Git repository.")
- return
- try:
- p = subprocess.Popen(["git", "describe",
- "--tags", "--dirty", "--always"],
- stdout=subprocess.PIPE)
- except EnvironmentError:
- print_("unable to run git, leaving ecdsa/_version.py alone")
- return
- stdout = p.communicate()[0]
- if p.returncode != 0:
- print_("unable to run git, leaving ecdsa/_version.py alone")
- return
- # we use tags like "python-ecdsa-0.5", so strip the prefix
- assert stdout.startswith("python-ecdsa-")
- ver = stdout[len("python-ecdsa-"):].strip()
- f = open("ecdsa/_version.py", "w")
- f.write(VERSION_PY % ver)
- f.close()
- print_("set ecdsa/_version.py to '%s'" % ver)
-
-def get_version():
- try:
- f = open("ecdsa/_version.py")
- except EnvironmentError:
- return None
- for line in f.readlines():
- mo = re.match("__version__ = '([^']+)'", line)
- if mo:
- ver = mo.group(1)
- return ver
- return None
-
-class Version(Command):
- description = "update _version.py from Git repo"
- user_options = []
- boolean_options = []
- def initialize_options(self):
- pass
- def finalize_options(self):
- pass
+class Speed(Test):
+ description = "run benchmark suite"
def run(self):
- update_version_py()
- print_("Version is now", get_version())
+ def do(setup_statements, statement):
+ # extracted from timeit.py
+ t = timeit.Timer(stmt=statement,
+ setup="\n".join(setup_statements))
+ # determine number so that 0.2 <= total time < 2.0
+ for i in range(1, 10):
+ number = 10**i
+ x = t.timeit(number)
+ if x >= 0.2:
+ break
+ return x / number
+
+ for curve in ["NIST192p", "NIST224p", "NIST256p", "SECP256k1",
+ "NIST384p", "NIST521p"]:
+ S1 = "from ecdsa import six, SigningKey, %s" % curve
+ S2 = "sk = SigningKey.generate(%s)" % curve
+ S3 = "msg = six.b('msg')"
+ S4 = "sig = sk.sign(msg)"
+ S5 = "vk = sk.get_verifying_key()"
+ S6 = "vk.verify(sig, msg)"
+ # We happen to know that .generate() also calculates the
+ # verifying key, which is the time-consuming part. If the code
+ # were changed to lazily calculate vk, we'd need to change this
+ # benchmark to loop over S5 instead of S2
+ keygen = do([S1], S2)
+ sign = do([S1,S2,S3], S4)
+ verf = do([S1,S2,S3,S4,S5], S6)
+ import ecdsa
+ c = getattr(ecdsa, curve)
+ sig = ecdsa.SigningKey.generate(c).sign(ecdsa.six.b("msg"))
+ print("%9s: siglen=%3d, keygen=%.3fs, sign=%.3fs, verify=%.3fs" \
+ % (curve, len(sig), keygen, sign, verf))
+
+commands["speed"] = Speed
-class sdist(_sdist):
- def run(self):
- update_version_py()
- # unless we update this, the sdist command will keep using the old
- # version
- self.distribution.metadata.version = get_version()
- return _sdist.run(self)
setup(name="ecdsa",
- version=get_version(),
+ version=versioneer.get_version(),
description="ECDSA cryptographic signature library (pure python)",
author="Brian Warner",
author_email="warner-pyecdsa(a)lothar.com",
url="http://github.com/warner/python-ecdsa",
packages=["ecdsa"],
license="MIT",
- cmdclass={ "test": Test, "version": Version, "sdist": sdist },
+ cmdclass=commands,
classifiers=[
"Programming Language :: Python",
"Programming Language :: Python :: 2",
@@ -102,5 +92,6 @@
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.2",
"Programming Language :: Python :: 3.3",
+ "Programming Language :: Python :: 3.4",
],
)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ecdsa-0.11/versioneer.py new/ecdsa-0.13/versioneer.py
--- old/ecdsa-0.11/versioneer.py 1970-01-01 01:00:00.000000000 +0100
+++ new/ecdsa-0.13/versioneer.py 2015-02-04 11:02:21.000000000 +0100
@@ -0,0 +1,901 @@
+
+# Version: 0.12
+
+"""
+The Versioneer
+==============
+
+* like a rocketeer, but for versions!
+* https://github.com/warner/python-versioneer
+* Brian Warner
+* License: Public Domain
+* Compatible With: python2.6, 2.7, 3.2, 3.3, 3.4, and pypy
+
+[![Build Status](https://travis-ci.org/warner/python-versioneer.png?branch=master)](…
+
+This is a tool for managing a recorded version number in distutils-based
+python projects. The goal is to remove the tedious and error-prone "update
+the embedded version string" step from your release process. Making a new
+release should be as easy as recording a new tag in your version-control
+system, and maybe making new tarballs.
+
+
+## Quick Install
+
+* `pip install versioneer` to somewhere to your $PATH
+* run `versioneer-installer` in your source tree: this installs `versioneer.py`
+* follow the instructions below (also in the `versioneer.py` docstring)
+
+## Version Identifiers
+
+Source trees come from a variety of places:
+
+* a version-control system checkout (mostly used by developers)
+* a nightly tarball, produced by build automation
+* a snapshot tarball, produced by a web-based VCS browser, like github's
+ "tarball from tag" feature
+* a release tarball, produced by "setup.py sdist", distributed through PyPI
+
+Within each source tree, the version identifier (either a string or a number,
+this tool is format-agnostic) can come from a variety of places:
+
+* ask the VCS tool itself, e.g. "git describe" (for checkouts), which knows
+ about recent "tags" and an absolute revision-id
+* the name of the directory into which the tarball was unpacked
+* an expanded VCS keyword ($Id$, etc)
+* a `_version.py` created by some earlier build step
+
+For released software, the version identifier is closely related to a VCS
+tag. Some projects use tag names that include more than just the version
+string (e.g. "myproject-1.2" instead of just "1.2"), in which case the tool
+needs to strip the tag prefix to extract the version identifier. For
+unreleased software (between tags), the version identifier should provide
+enough information to help developers recreate the same tree, while also
+giving them an idea of roughly how old the tree is (after version 1.2, before
+version 1.3). Many VCS systems can report a description that captures this,
+for example 'git describe --tags --dirty --always' reports things like
+"0.7-1-g574ab98-dirty" to indicate that the checkout is one revision past the
+0.7 tag, has a unique revision id of "574ab98", and is "dirty" (it has
+uncommitted changes.
+
+The version identifier is used for multiple purposes:
+
+* to allow the module to self-identify its version: `myproject.__version__`
+* to choose a name and prefix for a 'setup.py sdist' tarball
+
+## Theory of Operation
+
+Versioneer works by adding a special `_version.py` file into your source
+tree, where your `__init__.py` can import it. This `_version.py` knows how to
+dynamically ask the VCS tool for version information at import time. However,
+when you use "setup.py build" or "setup.py sdist", `_version.py` in the new
+copy is replaced by a small static file that contains just the generated
+version data.
+
+`_version.py` also contains `$Revision$` markers, and the installation
+process marks `_version.py` to have this marker rewritten with a tag name
+during the "git archive" command. As a result, generated tarballs will
+contain enough information to get the proper version.
+
+
+## Installation
+
+First, decide on values for the following configuration variables:
+
+* `VCS`: the version control system you use. Currently accepts "git".
+
+* `versionfile_source`:
+
+ A project-relative pathname into which the generated version strings should
+ be written. This is usually a `_version.py` next to your project's main
+ `__init__.py` file, so it can be imported at runtime. If your project uses
+ `src/myproject/__init__.py`, this should be `src/myproject/_version.py`.
+ This file should be checked in to your VCS as usual: the copy created below
+ by `setup.py versioneer` will include code that parses expanded VCS
+ keywords in generated tarballs. The 'build' and 'sdist' commands will
+ replace it with a copy that has just the calculated version string.
+
+ This must be set even if your project does not have any modules (and will
+ therefore never import `_version.py`), since "setup.py sdist" -based trees
+ still need somewhere to record the pre-calculated version strings. Anywhere
+ in the source tree should do. If there is a `__init__.py` next to your
+ `_version.py`, the `setup.py versioneer` command (described below) will
+ append some `__version__`-setting assignments, if they aren't already
+ present.
+
+* `versionfile_build`:
+
+ Like `versionfile_source`, but relative to the build directory instead of
+ the source directory. These will differ when your setup.py uses
+ 'package_dir='. If you have `package_dir={'myproject': 'src/myproject'}`,
+ then you will probably have `versionfile_build='myproject/_version.py'` and
+ `versionfile_source='src/myproject/_version.py'`.
+
+ If this is set to None, then `setup.py build` will not attempt to rewrite
+ any `_version.py` in the built tree. If your project does not have any
+ libraries (e.g. if it only builds a script), then you should use
+ `versionfile_build = None` and override `distutils.command.build_scripts`
+ to explicitly insert a copy of `versioneer.get_version()` into your
+ generated script.
+
+* `tag_prefix`:
+
+ a string, like 'PROJECTNAME-', which appears at the start of all VCS tags.
+ If your tags look like 'myproject-1.2.0', then you should use
+ tag_prefix='myproject-'. If you use unprefixed tags like '1.2.0', this
+ should be an empty string.
+
+* `parentdir_prefix`:
+
+ a string, frequently the same as tag_prefix, which appears at the start of
+ all unpacked tarball filenames. If your tarball unpacks into
+ 'myproject-1.2.0', this should be 'myproject-'.
+
+This tool provides one script, named `versioneer-installer`. That script does
+one thing: write a copy of `versioneer.py` into the current directory.
+
+To versioneer-enable your project:
+
+* 1: Run `versioneer-installer` to copy `versioneer.py` into the top of your
+ source tree.
+
+* 2: add the following lines to the top of your `setup.py`, with the
+ configuration values you decided earlier:
+
+ import versioneer
+ versioneer.VCS = 'git'
+ versioneer.versionfile_source = 'src/myproject/_version.py'
+ versioneer.versionfile_build = 'myproject/_version.py'
+ versioneer.tag_prefix = '' # tags are like 1.2.0
+ versioneer.parentdir_prefix = 'myproject-' # dirname like 'myproject-1.2.0'
+
+* 3: add the following arguments to the setup() call in your setup.py:
+
+ version=versioneer.get_version(),
+ cmdclass=versioneer.get_cmdclass(),
+
+* 4: now run `setup.py versioneer`, which will create `_version.py`, and will
+ modify your `__init__.py` (if one exists next to `_version.py`) to define
+ `__version__` (by calling a function from `_version.py`). It will also
+ modify your `MANIFEST.in` to include both `versioneer.py` and the generated
+ `_version.py` in sdist tarballs.
+
+* 5: commit these changes to your VCS. To make sure you won't forget,
+ `setup.py versioneer` will mark everything it touched for addition.
+
+## Post-Installation Usage
+
+Once established, all uses of your tree from a VCS checkout should get the
+current version string. All generated tarballs should include an embedded
+version string (so users who unpack them will not need a VCS tool installed).
+
+If you distribute your project through PyPI, then the release process should
+boil down to two steps:
+
+* 1: git tag 1.0
+* 2: python setup.py register sdist upload
+
+If you distribute it through github (i.e. users use github to generate
+tarballs with `git archive`), the process is:
+
+* 1: git tag 1.0
+* 2: git push; git push --tags
+
+Currently, all version strings must be based upon a tag. Versioneer will
+report "unknown" until your tree has at least one tag in its history. This
+restriction will be fixed eventually (see issue #12).
+
+## Version-String Flavors
+
+Code which uses Versioneer can learn about its version string at runtime by
+importing `_version` from your main `__init__.py` file and running the
+`get_versions()` function. From the "outside" (e.g. in `setup.py`), you can
+import the top-level `versioneer.py` and run `get_versions()`.
+
+Both functions return a dictionary with different keys for different flavors
+of the version string:
+
+* `['version']`: condensed tag+distance+shortid+dirty identifier. For git,
+ this uses the output of `git describe --tags --dirty --always` but strips
+ the tag_prefix. For example "0.11-2-g1076c97-dirty" indicates that the tree
+ is like the "1076c97" commit but has uncommitted changes ("-dirty"), and
+ that this commit is two revisions ("-2-") beyond the "0.11" tag. For
+ released software (exactly equal to a known tag), the identifier will only
+ contain the stripped tag, e.g. "0.11".
+
+* `['full']`: detailed revision identifier. For Git, this is the full SHA1
+ commit id, followed by "-dirty" if the tree contains uncommitted changes,
+ e.g. "1076c978a8d3cfc70f408fe5974aa6c092c949ac-dirty".
+
+Some variants are more useful than others. Including `full` in a bug report
+should allow developers to reconstruct the exact code being tested (or
+indicate the presence of local changes that should be shared with the
+developers). `version` is suitable for display in an "about" box or a CLI
+`--version` output: it can be easily compared against release notes and lists
+of bugs fixed in various releases.
+
+In the future, this will also include a
+[PEP-0440](http://legacy.python.org/dev/peps/pep-0440/) -compatible flavor
+(e.g. `1.2.post0.dev123`). This loses a lot of information (and has no room
+for a hash-based revision id), but is safe to use in a `setup.py`
+"`version=`" argument. It also enables tools like *pip* to compare version
+strings and evaluate compatibility constraint declarations.
+
+The `setup.py versioneer` command adds the following text to your
+`__init__.py` to place a basic version in `YOURPROJECT.__version__`:
+
+ from ._version import get_versions
+ __version__ = get_versions()['version']
+ del get_versions
+
+## Updating Versioneer
+
+To upgrade your project to a new release of Versioneer, do the following:
+
+* install the new Versioneer (`pip install -U versioneer` or equivalent)
+* re-run `versioneer-installer` in your source tree to replace your copy of
+ `versioneer.py`
+* edit `setup.py`, if necessary, to include any new configuration settings
+ indicated by the release notes
+* re-run `setup.py versioneer` to replace `SRC/_version.py`
+* commit any changed files
+
+### Upgrading from 0.10 to 0.11
+
+You must add a `versioneer.VCS = "git"` to your `setup.py` before re-running
+`setup.py versioneer`. This will enable the use of additional version-control
+systems (SVN, etc) in the future.
+
+### Upgrading from 0.11 to 0.12
+
+Nothing special.
+
+## Future Directions
+
+This tool is designed to make it easily extended to other version-control
+systems: all VCS-specific components are in separate directories like
+src/git/ . The top-level `versioneer.py` script is assembled from these
+components by running make-versioneer.py . In the future, make-versioneer.py
+will take a VCS name as an argument, and will construct a version of
+`versioneer.py` that is specific to the given VCS. It might also take the
+configuration arguments that are currently provided manually during
+installation by editing setup.py . Alternatively, it might go the other
+direction and include code from all supported VCS systems, reducing the
+number of intermediate scripts.
+
+
+## License
+
+To make Versioneer easier to embed, all its code is hereby released into the
+public domain. The `_version.py` that it creates is also in the public
+domain.
+
+"""
+
+import os, sys, re, subprocess, errno
+from distutils.core import Command
+from distutils.command.sdist import sdist as _sdist
+from distutils.command.build import build as _build
+
+# these configuration settings will be overridden by setup.py after it
+# imports us
+versionfile_source = None
+versionfile_build = None
+tag_prefix = None
+parentdir_prefix = None
+VCS = None
+
+# these dictionaries contain VCS-specific tools
+LONG_VERSION_PY = {}
+
+def run_command(commands, args, cwd=None, verbose=False, hide_stderr=False):
+ assert isinstance(commands, list)
+ p = None
+ for c in commands:
+ try:
+ # remember shell=False, so use git.cmd on windows, not just git
+ p = subprocess.Popen([c] + args, cwd=cwd, stdout=subprocess.PIPE,
+ stderr=(subprocess.PIPE if hide_stderr
+ else None))
+ break
+ except EnvironmentError:
+ e = sys.exc_info()[1]
+ if e.errno == errno.ENOENT:
+ continue
+ if verbose:
+ print("unable to run %s" % args[0])
+ print(e)
+ return None
+ else:
+ if verbose:
+ print("unable to find command, tried %s" % (commands,))
+ return None
+ stdout = p.communicate()[0].strip()
+ if sys.version >= '3':
+ stdout = stdout.decode()
+ if p.returncode != 0:
+ if verbose:
+ print("unable to run %s (error)" % args[0])
+ return None
+ return stdout
+
+LONG_VERSION_PY['git'] = '''
+# This file helps to compute a version number in source trees obtained from
+# git-archive tarball (such as those provided by githubs download-from-tag
+# feature). Distribution tarballs (built by setup.py sdist) and build
+# directories (produced by setup.py build) will contain a much shorter file
+# that just contains the computed version number.
+
+# This file is released into the public domain. Generated by
+# versioneer-0.12 (https://github.com/warner/python-versioneer)
+
+# these strings will be replaced by git during git-archive
+git_refnames = "%(DOLLAR)sFormat:%%d%(DOLLAR)s"
+git_full = "%(DOLLAR)sFormat:%%H%(DOLLAR)s"
+
+# these strings are filled in when 'setup.py versioneer' creates _version.py
+tag_prefix = "%(TAG_PREFIX)s"
+parentdir_prefix = "%(PARENTDIR_PREFIX)s"
+versionfile_source = "%(VERSIONFILE_SOURCE)s"
+
+import os, sys, re, subprocess, errno
+
+def run_command(commands, args, cwd=None, verbose=False, hide_stderr=False):
+ assert isinstance(commands, list)
+ p = None
+ for c in commands:
+ try:
+ # remember shell=False, so use git.cmd on windows, not just git
+ p = subprocess.Popen([c] + args, cwd=cwd, stdout=subprocess.PIPE,
+ stderr=(subprocess.PIPE if hide_stderr
+ else None))
+ break
+ except EnvironmentError:
+ e = sys.exc_info()[1]
+ if e.errno == errno.ENOENT:
+ continue
+ if verbose:
+ print("unable to run %%s" %% args[0])
+ print(e)
+ return None
+ else:
+ if verbose:
+ print("unable to find command, tried %%s" %% (commands,))
+ return None
+ stdout = p.communicate()[0].strip()
+ if sys.version >= '3':
+ stdout = stdout.decode()
+ if p.returncode != 0:
+ if verbose:
+ print("unable to run %%s (error)" %% args[0])
+ return None
+ return stdout
+
+
+def versions_from_parentdir(parentdir_prefix, root, verbose=False):
+ # Source tarballs conventionally unpack into a directory that includes
+ # both the project name and a version string.
+ dirname = os.path.basename(root)
+ if not dirname.startswith(parentdir_prefix):
+ if verbose:
+ print("guessing rootdir is '%%s', but '%%s' doesn't start with prefix '%%s'" %%
+ (root, dirname, parentdir_prefix))
+ return None
+ return {"version": dirname[len(parentdir_prefix):], "full": ""}
+
+def git_get_keywords(versionfile_abs):
+ # the code embedded in _version.py can just fetch the value of these
+ # keywords. When used from setup.py, we don't want to import _version.py,
+ # so we do it with a regexp instead. This function is not used from
+ # _version.py.
+ keywords = {}
+ try:
+ f = open(versionfile_abs,"r")
+ for line in f.readlines():
+ if line.strip().startswith("git_refnames ="):
+ mo = re.search(r'=\s*"(.*)"', line)
+ if mo:
+ keywords["refnames"] = mo.group(1)
+ if line.strip().startswith("git_full ="):
+ mo = re.search(r'=\s*"(.*)"', line)
+ if mo:
+ keywords["full"] = mo.group(1)
+ f.close()
+ except EnvironmentError:
+ pass
+ return keywords
+
+def git_versions_from_keywords(keywords, tag_prefix, verbose=False):
+ if not keywords:
+ return {} # keyword-finding function failed to find keywords
+ refnames = keywords["refnames"].strip()
+ if refnames.startswith("$Format"):
+ if verbose:
+ print("keywords are unexpanded, not using")
+ return {} # unexpanded, so not in an unpacked git-archive tarball
+ refs = set([r.strip() for r in refnames.strip("()").split(",")])
+ # starting in git-1.8.3, tags are listed as "tag: foo-1.0" instead of
+ # just "foo-1.0". If we see a "tag: " prefix, prefer those.
+ TAG = "tag: "
+ tags = set([r[len(TAG):] for r in refs if r.startswith(TAG)])
+ if not tags:
+ # Either we're using git < 1.8.3, or there really are no tags. We use
+ # a heuristic: assume all version tags have a digit. The old git %%d
+ # expansion behaves like git log --decorate=short and strips out the
+ # refs/heads/ and refs/tags/ prefixes that would let us distinguish
+ # between branches and tags. By ignoring refnames without digits, we
+ # filter out many common branch names like "release" and
+ # "stabilization", as well as "HEAD" and "master".
+ tags = set([r for r in refs if re.search(r'\d', r)])
+ if verbose:
+ print("discarding '%%s', no digits" %% ",".join(refs-tags))
+ if verbose:
+ print("likely tags: %%s" %% ",".join(sorted(tags)))
+ for ref in sorted(tags):
+ # sorting will prefer e.g. "2.0" over "2.0rc1"
+ if ref.startswith(tag_prefix):
+ r = ref[len(tag_prefix):]
+ if verbose:
+ print("picking %%s" %% r)
+ return { "version": r,
+ "full": keywords["full"].strip() }
+ # no suitable tags, so we use the full revision id
+ if verbose:
+ print("no suitable tags, using full revision id")
+ return { "version": keywords["full"].strip(),
+ "full": keywords["full"].strip() }
+
+
+def git_versions_from_vcs(tag_prefix, root, verbose=False):
+ # this runs 'git' from the root of the source tree. This only gets called
+ # if the git-archive 'subst' keywords were *not* expanded, and
+ # _version.py hasn't already been rewritten with a short version string,
+ # meaning we're inside a checked out source tree.
+
+ if not os.path.exists(os.path.join(root, ".git")):
+ if verbose:
+ print("no .git in %%s" %% root)
+ return {}
+
+ GITS = ["git"]
+ if sys.platform == "win32":
+ GITS = ["git.cmd", "git.exe"]
+ stdout = run_command(GITS, ["describe", "--tags", "--dirty", "--always"],
+ cwd=root)
+ if stdout is None:
+ return {}
+ if not stdout.startswith(tag_prefix):
+ if verbose:
+ print("tag '%%s' doesn't start with prefix '%%s'" %% (stdout, tag_prefix))
+ return {}
+ tag = stdout[len(tag_prefix):]
+ stdout = run_command(GITS, ["rev-parse", "HEAD"], cwd=root)
+ if stdout is None:
+ return {}
+ full = stdout.strip()
+ if tag.endswith("-dirty"):
+ full += "-dirty"
+ return {"version": tag, "full": full}
+
+
+def get_versions(default={"version": "unknown", "full": ""}, verbose=False):
+ # I am in _version.py, which lives at ROOT/VERSIONFILE_SOURCE. If we have
+ # __file__, we can work backwards from there to the root. Some
+ # py2exe/bbfreeze/non-CPython implementations don't do __file__, in which
+ # case we can only use expanded keywords.
+
+ keywords = { "refnames": git_refnames, "full": git_full }
+ ver = git_versions_from_keywords(keywords, tag_prefix, verbose)
+ if ver:
+ return ver
+
+ try:
+ root = os.path.abspath(__file__)
+ # versionfile_source is the relative path from the top of the source
+ # tree (where the .git directory might live) to this file. Invert
+ # this to find the root from __file__.
+ for i in range(len(versionfile_source.split(os.sep))):
+ root = os.path.dirname(root)
+ except NameError:
+ return default
+
+ return (git_versions_from_vcs(tag_prefix, root, verbose)
+ or versions_from_parentdir(parentdir_prefix, root, verbose)
+ or default)
+'''
+
+def git_get_keywords(versionfile_abs):
+ # the code embedded in _version.py can just fetch the value of these
+ # keywords. When used from setup.py, we don't want to import _version.py,
+ # so we do it with a regexp instead. This function is not used from
+ # _version.py.
+ keywords = {}
+ try:
+ f = open(versionfile_abs,"r")
+ for line in f.readlines():
+ if line.strip().startswith("git_refnames ="):
+ mo = re.search(r'=\s*"(.*)"', line)
+ if mo:
+ keywords["refnames"] = mo.group(1)
+ if line.strip().startswith("git_full ="):
+ mo = re.search(r'=\s*"(.*)"', line)
+ if mo:
+ keywords["full"] = mo.group(1)
+ f.close()
+ except EnvironmentError:
+ pass
+ return keywords
+
+def git_versions_from_keywords(keywords, tag_prefix, verbose=False):
+ if not keywords:
+ return {} # keyword-finding function failed to find keywords
+ refnames = keywords["refnames"].strip()
+ if refnames.startswith("$Format"):
+ if verbose:
+ print("keywords are unexpanded, not using")
+ return {} # unexpanded, so not in an unpacked git-archive tarball
+ refs = set([r.strip() for r in refnames.strip("()").split(",")])
+ # starting in git-1.8.3, tags are listed as "tag: foo-1.0" instead of
+ # just "foo-1.0". If we see a "tag: " prefix, prefer those.
+ TAG = "tag: "
+ tags = set([r[len(TAG):] for r in refs if r.startswith(TAG)])
+ if not tags:
+ # Either we're using git < 1.8.3, or there really are no tags. We use
+ # a heuristic: assume all version tags have a digit. The old git %d
+ # expansion behaves like git log --decorate=short and strips out the
+ # refs/heads/ and refs/tags/ prefixes that would let us distinguish
+ # between branches and tags. By ignoring refnames without digits, we
+ # filter out many common branch names like "release" and
+ # "stabilization", as well as "HEAD" and "master".
+ tags = set([r for r in refs if re.search(r'\d', r)])
+ if verbose:
+ print("discarding '%s', no digits" % ",".join(refs-tags))
+ if verbose:
+ print("likely tags: %s" % ",".join(sorted(tags)))
+ for ref in sorted(tags):
+ # sorting will prefer e.g. "2.0" over "2.0rc1"
+ if ref.startswith(tag_prefix):
+ r = ref[len(tag_prefix):]
+ if verbose:
+ print("picking %s" % r)
+ return { "version": r,
+ "full": keywords["full"].strip() }
+ # no suitable tags, so we use the full revision id
+ if verbose:
+ print("no suitable tags, using full revision id")
+ return { "version": keywords["full"].strip(),
+ "full": keywords["full"].strip() }
+
+
+def git_versions_from_vcs(tag_prefix, root, verbose=False):
+ # this runs 'git' from the root of the source tree. This only gets called
+ # if the git-archive 'subst' keywords were *not* expanded, and
+ # _version.py hasn't already been rewritten with a short version string,
+ # meaning we're inside a checked out source tree.
+
+ if not os.path.exists(os.path.join(root, ".git")):
+ if verbose:
+ print("no .git in %s" % root)
+ return {}
+
+ GITS = ["git"]
+ if sys.platform == "win32":
+ GITS = ["git.cmd", "git.exe"]
+ stdout = run_command(GITS, ["describe", "--tags", "--dirty", "--always"],
+ cwd=root)
+ if stdout is None:
+ return {}
+ if not stdout.startswith(tag_prefix):
+ if verbose:
+ print("tag '%s' doesn't start with prefix '%s'" % (stdout, tag_prefix))
+ return {}
+ tag = stdout[len(tag_prefix):]
+ stdout = run_command(GITS, ["rev-parse", "HEAD"], cwd=root)
+ if stdout is None:
+ return {}
+ full = stdout.strip()
+ if tag.endswith("-dirty"):
+ full += "-dirty"
+ return {"version": tag, "full": full}
+
+
+def do_vcs_install(manifest_in, versionfile_source, ipy):
+ GITS = ["git"]
+ if sys.platform == "win32":
+ GITS = ["git.cmd", "git.exe"]
+ files = [manifest_in, versionfile_source]
+ if ipy:
+ files.append(ipy)
+ try:
+ me = __file__
+ if me.endswith(".pyc") or me.endswith(".pyo"):
+ me = os.path.splitext(me)[0] + ".py"
+ versioneer_file = os.path.relpath(me)
+ except NameError:
+ versioneer_file = "versioneer.py"
+ files.append(versioneer_file)
+ present = False
+ try:
+ f = open(".gitattributes", "r")
+ for line in f.readlines():
+ if line.strip().startswith(versionfile_source):
+ if "export-subst" in line.strip().split()[1:]:
+ present = True
+ f.close()
+ except EnvironmentError:
+ pass
+ if not present:
+ f = open(".gitattributes", "a+")
+ f.write("%s export-subst\n" % versionfile_source)
+ f.close()
+ files.append(".gitattributes")
+ run_command(GITS, ["add", "--"] + files)
+
+def versions_from_parentdir(parentdir_prefix, root, verbose=False):
+ # Source tarballs conventionally unpack into a directory that includes
+ # both the project name and a version string.
+ dirname = os.path.basename(root)
+ if not dirname.startswith(parentdir_prefix):
+ if verbose:
+ print("guessing rootdir is '%s', but '%s' doesn't start with prefix '%s'" %
+ (root, dirname, parentdir_prefix))
+ return None
+ return {"version": dirname[len(parentdir_prefix):], "full": ""}
+
+SHORT_VERSION_PY = """
+# This file was generated by 'versioneer.py' (0.12) from
+# revision-control system data, or from the parent directory name of an
+# unpacked source archive. Distribution tarballs contain a pre-generated copy
+# of this file.
+
+version_version = '%(version)s'
+version_full = '%(full)s'
+def get_versions(default={}, verbose=False):
+ return {'version': version_version, 'full': version_full}
+
+"""
+
+DEFAULT = {"version": "unknown", "full": "unknown"}
+
+def versions_from_file(filename):
+ versions = {}
+ try:
+ with open(filename) as f:
+ for line in f.readlines():
+ mo = re.match("version_version = '([^']+)'", line)
+ if mo:
+ versions["version"] = mo.group(1)
+ mo = re.match("version_full = '([^']+)'", line)
+ if mo:
+ versions["full"] = mo.group(1)
+ except EnvironmentError:
+ return {}
+
+ return versions
+
+def write_to_version_file(filename, versions):
+ with open(filename, "w") as f:
+ f.write(SHORT_VERSION_PY % versions)
+
+ print("set %s to '%s'" % (filename, versions["version"]))
+
+
+def get_root():
+ try:
+ return os.path.dirname(os.path.abspath(__file__))
+ except NameError:
+ return os.path.dirname(os.path.abspath(sys.argv[0]))
+
+def vcs_function(vcs, suffix):
+ return getattr(sys.modules[__name__], '%s_%s' % (vcs, suffix), None)
+
+def get_versions(default=DEFAULT, verbose=False):
+ # returns dict with two keys: 'version' and 'full'
+ assert versionfile_source is not None, "please set versioneer.versionfile_source"
+ assert tag_prefix is not None, "please set versioneer.tag_prefix"
+ assert parentdir_prefix is not None, "please set versioneer.parentdir_prefix"
+ assert VCS is not None, "please set versioneer.VCS"
+
+ # I am in versioneer.py, which must live at the top of the source tree,
+ # which we use to compute the root directory. py2exe/bbfreeze/non-CPython
+ # don't have __file__, in which case we fall back to sys.argv[0] (which
+ # ought to be the setup.py script). We prefer __file__ since that's more
+ # robust in cases where setup.py was invoked in some weird way (e.g. pip)
+ root = get_root()
+ versionfile_abs = os.path.join(root, versionfile_source)
+
+ # extract version from first of _version.py, VCS command (e.g. 'git
+ # describe'), parentdir. This is meant to work for developers using a
+ # source checkout, for users of a tarball created by 'setup.py sdist',
+ # and for users of a tarball/zipball created by 'git archive' or github's
+ # download-from-tag feature or the equivalent in other VCSes.
+
+ get_keywords_f = vcs_function(VCS, "get_keywords")
+ versions_from_keywords_f = vcs_function(VCS, "versions_from_keywords")
+ if get_keywords_f and versions_from_keywords_f:
+ vcs_keywords = get_keywords_f(versionfile_abs)
+ ver = versions_from_keywords_f(vcs_keywords, tag_prefix)
+ if ver:
+ if verbose: print("got version from expanded keyword %s" % ver)
+ return ver
+
+ ver = versions_from_file(versionfile_abs)
+ if ver:
+ if verbose: print("got version from file %s %s" % (versionfile_abs,ver))
+ return ver
+
+ versions_from_vcs_f = vcs_function(VCS, "versions_from_vcs")
+ if versions_from_vcs_f:
+ ver = versions_from_vcs_f(tag_prefix, root, verbose)
+ if ver:
+ if verbose: print("got version from VCS %s" % ver)
+ return ver
+
+ ver = versions_from_parentdir(parentdir_prefix, root, verbose)
+ if ver:
+ if verbose: print("got version from parentdir %s" % ver)
+ return ver
+
+ if verbose: print("got version from default %s" % default)
+ return default
+
+def get_version(verbose=False):
+ return get_versions(verbose=verbose)["version"]
+
+class cmd_version(Command):
+ description = "report generated version string"
+ user_options = []
+ boolean_options = []
+ def initialize_options(self):
+ pass
+ def finalize_options(self):
+ pass
+ def run(self):
+ ver = get_version(verbose=True)
+ print("Version is currently: %s" % ver)
+
+
+class cmd_build(_build):
+ def run(self):
+ versions = get_versions(verbose=True)
+ _build.run(self)
+ # now locate _version.py in the new build/ directory and replace it
+ # with an updated value
+ if versionfile_build:
+ target_versionfile = os.path.join(self.build_lib, versionfile_build)
+ print("UPDATING %s" % target_versionfile)
+ os.unlink(target_versionfile)
+ with open(target_versionfile, "w") as f:
+ f.write(SHORT_VERSION_PY % versions)
+
+if 'cx_Freeze' in sys.modules: # cx_freeze enabled?
+ from cx_Freeze.dist import build_exe as _build_exe
+
+ class cmd_build_exe(_build_exe):
+ def run(self):
+ versions = get_versions(verbose=True)
+ target_versionfile = versionfile_source
+ print("UPDATING %s" % target_versionfile)
+ os.unlink(target_versionfile)
+ with open(target_versionfile, "w") as f:
+ f.write(SHORT_VERSION_PY % versions)
+
+ _build_exe.run(self)
+ os.unlink(target_versionfile)
+ with open(versionfile_source, "w") as f:
+ assert VCS is not None, "please set versioneer.VCS"
+ LONG = LONG_VERSION_PY[VCS]
+ f.write(LONG % {"DOLLAR": "$",
+ "TAG_PREFIX": tag_prefix,
+ "PARENTDIR_PREFIX": parentdir_prefix,
+ "VERSIONFILE_SOURCE": versionfile_source,
+ })
+
+class cmd_sdist(_sdist):
+ def run(self):
+ versions = get_versions(verbose=True)
+ self._versioneer_generated_versions = versions
+ # unless we update this, the command will keep using the old version
+ self.distribution.metadata.version = versions["version"]
+ return _sdist.run(self)
+
+ def make_release_tree(self, base_dir, files):
+ _sdist.make_release_tree(self, base_dir, files)
+ # now locate _version.py in the new base_dir directory (remembering
+ # that it may be a hardlink) and replace it with an updated value
+ target_versionfile = os.path.join(base_dir, versionfile_source)
+ print("UPDATING %s" % target_versionfile)
+ os.unlink(target_versionfile)
+ with open(target_versionfile, "w") as f:
+ f.write(SHORT_VERSION_PY % self._versioneer_generated_versions)
+
+INIT_PY_SNIPPET = """
+from ._version import get_versions
+__version__ = get_versions()['version']
+del get_versions
+"""
+
+class cmd_update_files(Command):
+ description = "install/upgrade Versioneer files: __init__.py SRC/_version.py"
+ user_options = []
+ boolean_options = []
+ def initialize_options(self):
+ pass
+ def finalize_options(self):
+ pass
+ def run(self):
+ print(" creating %s" % versionfile_source)
+ with open(versionfile_source, "w") as f:
+ assert VCS is not None, "please set versioneer.VCS"
+ LONG = LONG_VERSION_PY[VCS]
+ f.write(LONG % {"DOLLAR": "$",
+ "TAG_PREFIX": tag_prefix,
+ "PARENTDIR_PREFIX": parentdir_prefix,
+ "VERSIONFILE_SOURCE": versionfile_source,
+ })
+
+ ipy = os.path.join(os.path.dirname(versionfile_source), "__init__.py")
+ if os.path.exists(ipy):
+ try:
+ with open(ipy, "r") as f:
+ old = f.read()
+ except EnvironmentError:
+ old = ""
+ if INIT_PY_SNIPPET not in old:
+ print(" appending to %s" % ipy)
+ with open(ipy, "a") as f:
+ f.write(INIT_PY_SNIPPET)
+ else:
+ print(" %s unmodified" % ipy)
+ else:
+ print(" %s doesn't exist, ok" % ipy)
+ ipy = None
+
+ # Make sure both the top-level "versioneer.py" and versionfile_source
+ # (PKG/_version.py, used by runtime code) are in MANIFEST.in, so
+ # they'll be copied into source distributions. Pip won't be able to
+ # install the package without this.
+ manifest_in = os.path.join(get_root(), "MANIFEST.in")
+ simple_includes = set()
+ try:
+ with open(manifest_in, "r") as f:
+ for line in f:
+ if line.startswith("include "):
+ for include in line.split()[1:]:
+ simple_includes.add(include)
+ except EnvironmentError:
+ pass
+ # That doesn't cover everything MANIFEST.in can do
+ # (http://docs.python.org/2/distutils/sourcedist.html#commands) so
+ # it might give some false negatives. Appending redundant 'include'
+ # lines is safe, though.
+ if "versioneer.py" not in simple_includes:
+ print(" appending 'versioneer.py' to MANIFEST.in")
+ with open(manifest_in, "a") as f:
+ f.write("include versioneer.py\n")
+ else:
+ print(" 'versioneer.py' already in MANIFEST.in")
+ if versionfile_source not in simple_includes:
+ print(" appending versionfile_source ('%s') to MANIFEST.in" %
+ versionfile_source)
+ with open(manifest_in, "a") as f:
+ f.write("include %s\n" % versionfile_source)
+ else:
+ print(" versionfile_source already in MANIFEST.in")
+
+ # Make VCS-specific changes. For git, this means creating/changing
+ # .gitattributes to mark _version.py for export-time keyword
+ # substitution.
+ do_vcs_install(manifest_in, versionfile_source, ipy)
+
+def get_cmdclass():
+ cmds = {'version': cmd_version,
+ 'versioneer': cmd_update_files,
+ 'build': cmd_build,
+ 'sdist': cmd_sdist,
+ }
+ if 'cx_Freeze' in sys.modules: # cx_freeze enabled?
+ cmds['build_exe'] = cmd_build_exe
+ del cmds['build']
+
+ return cmds
--
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-Markdown for openSUSE:Factory checked in at 2015-02-24 13:02:33
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-Markdown (Old)
and /work/SRC/openSUSE:Factory/.python-Markdown.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-Markdown"
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-Markdown/python-Markdown.changes 2014-11-28 08:44:43.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.python-Markdown.new/python-Markdown.changes 2015-02-24 13:06:59.000000000 +0100
@@ -1,0 +2,16 @@
+Fri Feb 20 18:47:34 UTC 2015 - benoit.monin(a)gmx.fr
+
+- update to version 2.6:
+ * `safe_mode` Deprecated
+ * Positional Arguments Deprecated
+ * "Shortened" Extension Names Deprecated
+ * Extension Configuration as Part of Extension Name Deprecated
+ * HeaderId Extension Pending Deprecation
+ * The `configs` Keyword is Deprecated
+ * Official Support for PyPy
+ * YAML Style Meta-Data
+ * Table of Contents Extension Refactored
+ * Pygments can now be disabled
+ * Miscellaneous
+
+-------------------------------------------------------------------
Old:
----
Markdown-2.5.2.tar.gz
New:
----
Markdown-2.6.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-Markdown.spec ++++++
--- /var/tmp/diff_new_pack.W6p8Ax/_old 2015-02-24 13:07:01.000000000 +0100
+++ /var/tmp/diff_new_pack.W6p8Ax/_new 2015-02-24 13:07:01.000000000 +0100
@@ -1,7 +1,7 @@
#
# spec file for package python-Markdown
#
-# Copyright (c) 2014 SUSE LINUX Products GmbH, Nuernberg, Germany.
+# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -17,7 +17,7 @@
Name: python-Markdown
-Version: 2.5.2
+Version: 2.6
Release: 0
Summary: Python implementation of Markdown
License: BSD-3-Clause
++++++ Markdown-2.5.2.tar.gz -> Markdown-2.6.tar.gz ++++++
++++ 8655 lines of diff (skipped)
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package python-rope for openSUSE:Factory checked in at 2015-02-24 13:02:31
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-rope (Old)
and /work/SRC/openSUSE:Factory/.python-rope.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-rope"
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-rope/python-rope.changes 2012-06-07 15:39:46.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.python-rope.new/python-rope.changes 2015-02-24 13:06:58.000000000 +0100
@@ -1,0 +2,10 @@
+Wed Feb 18 17:05:54 UTC 2015 - jmatejek(a)suse.com
+
+- update to version 0.10.2
+ * new maintainer revives project
+ * accumulated bugfixes
+ * better test coverage and all tests pass
+- disable dynamic object analysis by default, as it is a security risk
+ (CVE-2014-3539-disable-doa.patch, CVE-2014-3539, boo#916890)
+
+-------------------------------------------------------------------
Old:
----
rope-0.9.4.tar.gz
New:
----
CVE-2014-3539-disable-doa.patch
rope-0.10.2.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-rope.spec ++++++
--- /var/tmp/diff_new_pack.qRlLDU/_old 2015-02-24 13:06:59.000000000 +0100
+++ /var/tmp/diff_new_pack.qRlLDU/_new 2015-02-24 13:06:59.000000000 +0100
@@ -1,7 +1,7 @@
#
# spec file for package python-rope
#
-# Copyright (c) 2012 SUSE LINUX Products GmbH, Nuernberg, Germany.
+# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -17,37 +17,35 @@
Name: python-rope
-Version: 0.9.4
+Version: 0.10.2
Release: 0
Summary: A python refactoring library
License: GPL-2.0+
Group: Development/Languages/Python
-Url: http://rope.sf.net/
+Url: https://github.com/python-rope/rope
Source: http://pypi.python.org/packages/source/r/rope/rope-%{version}.tar.gz
+Patch0: CVE-2014-3539-disable-doa.patch
BuildRequires: python-devel
BuildRoot: %{_tmppath}/%{name}-%{version}-build
-%if 0%{?suse_version} && 0%{?suse_version} <= 1110
-%{!?python_sitelib: %global python_sitelib %(python -c "from distutils.sysconfig import get_python_lib; print get_python_lib()")}
-%else
BuildArch: noarch
-%endif
%description
Rope is a python refactoring library.
%prep
%setup -q -n rope-%{version}
+%patch0 -p1
%build
python2 setup.py build
%install
python2 setup.py install --prefix=%{_prefix} --root=%{buildroot}
-rm -rf %{buildroot}/%{py_sitedir}/python-rope/ropetest/
+rm -rf %{buildroot}/%{python_sitlib}/python-rope/ropetest/
%files
%defattr(-,root,root,-)
-%doc COPYING README.txt docs/
-%python_sitelib/
+%doc COPYING README.rst docs/
+%{python_sitelib}/
%changelog
++++++ CVE-2014-3539-disable-doa.patch ++++++
>From 5cd16e47baf76f57b0dab0d9ab1684a8e02ea6a8 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Mat=C4=9Bj=20Cepl?= <mcepl(a)cepl.eu>
Date: Wed, 11 Feb 2015 22:06:44 +0100
Subject: [PATCH 1/2] Simple hackish solution to CVE-2014-3539.
This doesn't resolve the issue, but at least people using DOA should be
intentional about it and aware of the security risks.
It is also necessary explicitly switch on 'perform_doa' preference for
tests that require it.
Fixes #105
---
rope/base/default_config.py | 12 +++++++++++-
ropetest/advanced_oi_test.py | 23 +++++++++++++++++++++++
2 files changed, 34 insertions(+), 1 deletion(-)
diff --git a/rope/base/default_config.py b/rope/base/default_config.py
index 0ee9937..e46509f 100644
--- a/rope/base/default_config.py
+++ b/rope/base/default_config.py
@@ -46,7 +46,17 @@ def set_prefs(prefs):
# If `False` when running modules or unit tests "dynamic object
# analysis" is turned off. This makes them much faster.
- prefs['perform_doa'] = True
+ #
+ # There is also a security risk involved with this (CVE-2014-3539),
+ # because during by this rope can be persuaded to open under some
+ # circumstances a network port for short moment of time, which can
+ # be used to push commands to the running process, so that such
+ # process could proceed some commands under the privilegis of the
+ # user running rope. Therefore this variable defaults to False, and
+ # anybody who would like to change its value to True is advised to
+ # make sure the computer is well firewalled against possible
+ # intruders.
+ prefs['perform_doa'] = False
# Rope can check the validity of its object DB when running.
prefs['validate_objectdb'] = True
diff --git a/ropetest/advanced_oi_test.py b/ropetest/advanced_oi_test.py
index 4130fae..e862307 100644
--- a/ropetest/advanced_oi_test.py
+++ b/ropetest/advanced_oi_test.py
@@ -17,6 +17,7 @@ def tearDown(self):
super(DynamicOITest, self).tearDown()
def test_simple_dti(self):
+ self.project.prefs['perform_doa'] = True
mod = testutils.create_module(self.project, 'mod')
code = 'def a_func(arg):\n return eval("arg")\n' \
'a_var = a_func(a_func)\n'
@@ -27,6 +28,7 @@ def test_simple_dti(self):
pymod['a_var'].get_object())
def test_module_dti(self):
+ self.project.prefs['perform_doa'] = True
mod1 = testutils.create_module(self.project, 'mod1')
mod2 = testutils.create_module(self.project, 'mod2')
code = 'import mod1\ndef a_func(arg):\n return eval("arg")\n' \
@@ -38,6 +40,7 @@ def test_module_dti(self):
pymod2['a_var'].get_object())
def test_class_from_another_module_dti(self):
+ self.project.prefs['perform_doa'] = True
mod1 = testutils.create_module(self.project, 'mod1')
mod2 = testutils.create_module(self.project, 'mod2')
code1 = 'class AClass(object):\n pass\n'
@@ -54,6 +57,7 @@ def test_class_from_another_module_dti(self):
def test_class_dti(self):
mod = testutils.create_module(self.project, 'mod')
+ self.project.prefs['perform_doa'] = True
code = 'class AClass(object):\n pass\n' \
'\ndef a_func(arg):\n return eval("arg")\n' \
'a_var = a_func(AClass)\n'
@@ -64,6 +68,7 @@ def test_class_dti(self):
pymod['a_var'].get_object())
def test_instance_dti(self):
+ self.project.prefs['perform_doa'] = True
mod = testutils.create_module(self.project, 'mod')
code = 'class AClass(object):\n pass\n' \
'\ndef a_func(arg):\n return eval("arg()")\n' \
@@ -75,6 +80,7 @@ def test_instance_dti(self):
pymod['a_var'].get_object().get_type())
def test_method_dti(self):
+ self.project.prefs['perform_doa'] = True
mod = testutils.create_module(self.project, 'mod')
code = 'class AClass(object):\n def a_method(self, arg):\n' \
' return eval("arg()")\n' \
@@ -87,6 +93,7 @@ def test_method_dti(self):
pymod['a_var'].get_object().get_type())
def test_function_argument_dti(self):
+ self.project.prefs['perform_doa'] = True
mod = testutils.create_module(self.project, 'mod')
code = 'def a_func(arg):\n pass\n' \
'a_func(a_func)\n'
@@ -97,6 +104,7 @@ def test_function_argument_dti(self):
pyscope.get_scopes()[0]['arg'].get_object())
def test_classes_with_the_same_name(self):
+ self.project.prefs['perform_doa'] = True
mod = testutils.create_module(self.project, 'mod')
code = 'def a_func(arg):\n class AClass(object):\n' \
' pass\n return eval("arg")\n' \
@@ -109,6 +117,7 @@ def test_classes_with_the_same_name(self):
pymod['a_var'].get_object())
def test_nested_classes(self):
+ self.project.prefs['perform_doa'] = True
mod = testutils.create_module(self.project, 'mod')
code = 'def a_func():\n class AClass(object):\n' \
' pass\n return AClass\n' \
@@ -121,6 +130,7 @@ def test_nested_classes(self):
pyscope['a_var'].get_object())
def test_function_argument_dti2(self):
+ self.project.prefs['perform_doa'] = True
mod = testutils.create_module(self.project, 'mod')
code = 'def a_func(arg, a_builtin_type):\n pass\n' \
'a_func(a_func, [])\n'
@@ -131,6 +141,7 @@ def test_function_argument_dti2(self):
pyscope.get_scopes()[0]['arg'].get_object())
def test_dti_and_concluded_data_invalidation(self):
+ self.project.prefs['perform_doa'] = True
mod = testutils.create_module(self.project, 'mod')
code = 'def a_func(arg):\n return eval("arg")\n' \
'a_var = a_func(a_func)\n'
@@ -142,6 +153,7 @@ def test_dti_and_concluded_data_invalidation(self):
pymod['a_var'].get_object())
def test_list_objects_and_dynamicoi(self):
+ self.project.prefs['perform_doa'] = True
mod = testutils.create_module(self.project, 'mod')
code = 'class C(object):\n pass\n' \
'def a_func(arg):\n return eval("arg")\n' \
@@ -154,6 +166,7 @@ def test_list_objects_and_dynamicoi(self):
self.assertEquals(c_class, a_var.get_type())
def test_for_loops_and_dynamicoi(self):
+ self.project.prefs['perform_doa'] = True
mod = testutils.create_module(self.project, 'mod')
code = 'class C(object):\n pass\n' \
'def a_func(arg):\n return eval("arg")\n' \
@@ -166,6 +179,7 @@ def test_for_loops_and_dynamicoi(self):
self.assertEquals(c_class, a_var.get_type())
def test_dict_objects_and_dynamicoi(self):
+ self.project.prefs['perform_doa'] = True
mod = testutils.create_module(self.project, 'mod')
code = 'class C(object):\n pass\n' \
'def a_func(arg):\n return eval("arg")\n' \
@@ -178,6 +192,7 @@ def test_dict_objects_and_dynamicoi(self):
self.assertEquals(c_class, a_var.get_type())
def test_dict_keys_and_dynamicoi(self):
+ self.project.prefs['perform_doa'] = True
mod = testutils.create_module(self.project, 'mod')
code = 'class C(object):\n pass\n' \
'def a_func(arg):\n return eval("arg")\n' \
@@ -190,6 +205,7 @@ def test_dict_keys_and_dynamicoi(self):
self.assertEquals(c_class, a_var.get_type())
def test_dict_keys_and_dynamicoi2(self):
+ self.project.prefs['perform_doa'] = True
mod = testutils.create_module(self.project, 'mod')
code = 'class C1(object):\n pass\nclass C2(object):\n pass\n' \
'def a_func(arg):\n return eval("arg")\n' \
@@ -205,6 +221,7 @@ def test_dict_keys_and_dynamicoi2(self):
self.assertEquals(c2_class, b_var.get_type())
def test_strs_and_dynamicoi(self):
+ self.project.prefs['perform_doa'] = True
mod = testutils.create_module(self.project, 'mod')
code = 'def a_func(arg):\n return eval("arg")\n' \
'a_var = a_func("hey")\n'
@@ -239,6 +256,7 @@ def complex_to_textual(pyobject):
def test_arguments_with_keywords(self):
mod = testutils.create_module(self.project, 'mod')
+ self.project.prefs['perform_doa'] = True
code = 'class C1(object):\n pass\nclass C2(object):\n pass\n' \
'def a_func(arg):\n return eval("arg")\n' \
'a = a_func(arg=C1())\nb = a_func(arg=C2())\n'
@@ -254,6 +272,7 @@ def test_arguments_with_keywords(self):
def test_a_function_with_different_returns(self):
mod = testutils.create_module(self.project, 'mod')
+ self.project.prefs['perform_doa'] = True
code = 'class C1(object):\n pass\nclass C2(object):\n pass\n' \
'def a_func(arg):\n return eval("arg")\n' \
'a = a_func(C1())\nb = a_func(C2())\n'
@@ -269,6 +288,7 @@ def test_a_function_with_different_returns(self):
def test_a_function_with_different_returns2(self):
mod = testutils.create_module(self.project, 'mod')
+ self.project.prefs['perform_doa'] = True
code = 'class C1(object):\n pass\nclass C2(object):\n pass\n' \
'def a_func(p):\n if p == C1:\n return C1()\n' \
' else:\n return C2()\n' \
@@ -284,6 +304,7 @@ def test_a_function_with_different_returns2(self):
self.assertEquals(c2_class, b_var.get_type())
def test_ignoring_star_args(self):
+ self.project.prefs['perform_doa'] = True
mod = testutils.create_module(self.project, 'mod')
code = 'class C1(object):\n pass\nclass C2(object):\n pass\n' \
'def a_func(p, *args):' \
@@ -301,6 +322,7 @@ def test_ignoring_star_args(self):
self.assertEquals(c2_class, b_var.get_type())
def test_ignoring_double_star_args(self):
+ self.project.prefs['perform_doa'] = True
mod = testutils.create_module(self.project, 'mod')
code = 'class C1(object):\n pass\nclass C2(object):\n pass\n' \
'def a_func(p, *kwds, **args):\n ' \
@@ -330,6 +352,7 @@ def test_invalidating_data_after_changing(self):
pymod['a_var'].get_object())
def test_invalidating_data_after_moving(self):
+ self.project.prefs['perform_doa'] = True
mod2 = testutils.create_module(self.project, 'mod2')
mod2.write('class C(object):\n pass\n')
mod = testutils.create_module(self.project, 'mod')
>From 8e9667d3318f2846362b8a3c350a9d27d7222818 Mon Sep 17 00:00:00 2001
From: Matej Cepl <mcepl(a)cepl.eu>
Date: Thu, 12 Feb 2015 01:12:15 +0100
Subject: [PATCH 2/2] limit socket connections to localhost
---
rope/base/oi/doa.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/rope/base/oi/doa.py b/rope/base/oi/doa.py
index 1b2a00f..74bb91b 100644
--- a/rope/base/oi/doa.py
+++ b/rope/base/oi/doa.py
@@ -113,7 +113,7 @@ def __init__(self):
self.data_port = 3037
while self.data_port < 4000:
try:
- self.server_socket.bind(('', self.data_port))
+ self.server_socket.bind(('127.0.0.1', self.data_port))
break
except socket.error:
self.data_port += 1
++++++ rope-0.9.4.tar.gz -> rope-0.10.2.tar.gz ++++++
++++ 15937 lines of diff (skipped)
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package xf86-video-tdfx for openSUSE:Factory checked in at 2015-02-24 13:02:29
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/xf86-video-tdfx (Old)
and /work/SRC/openSUSE:Factory/.xf86-video-tdfx.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "xf86-video-tdfx"
Changes:
--------
--- /work/SRC/openSUSE:Factory/xf86-video-tdfx/xf86-video-tdfx.changes 2015-02-10 20:17:14.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.xf86-video-tdfx.new/xf86-video-tdfx.changes 2015-02-24 13:06:57.000000000 +0100
@@ -1,0 +2,17 @@
+Mon Feb 23 13:36:49 UTC 2015 - sndirsch(a)suse.com
+
+- Update to version 1.4.6:
+ * Remove mibstore.h
+ * dri: Stop (uselessly) initializing the ValidateTree hooks
+ * Define local PCI IDs instead of using xf86PciInfo.h
+ * Rename XSERVER_PCIACCESS to XSERVER_LIBPCIACCESS
+ * Use new pci_device_(un)map_range functions instead of deprecated ones
+ * Remove unreachable breaks after return statements
+ * Use the PCI ID macros instead of hardcoded values
+ * Unmap MMIO ranges for all chips
+ * Add more PCI IDs for supported chips
+- supersedes U_Remove-mibstore.h.patch,
+ U_Rename-XSERVER_PCIACCESS-to-XSERVER_LIBPCIACCESS.patch,
+ U_dri-Stop-uselessly-initializing-the-ValidateTree-hoo.patch
+
+-------------------------------------------------------------------
Old:
----
U_Remove-mibstore.h.patch
U_Rename-XSERVER_PCIACCESS-to-XSERVER_LIBPCIACCESS.patch
U_dri-Stop-uselessly-initializing-the-ValidateTree-hoo.patch
xf86-video-tdfx-1.4.5.tar.bz2
New:
----
xf86-video-tdfx-1.4.6.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ xf86-video-tdfx.spec ++++++
--- /var/tmp/diff_new_pack.r2dq4D/_old 2015-02-24 13:06:58.000000000 +0100
+++ /var/tmp/diff_new_pack.r2dq4D/_new 2015-02-24 13:06:58.000000000 +0100
@@ -17,16 +17,13 @@
Name: xf86-video-tdfx
-Version: 1.4.5
+Version: 1.4.6
Release: 0
Summary: 3Dfx video driver for the Xorg X server
License: MIT
Group: System/X11/Servers/XF86_4
Url: http://xorg.freedesktop.org/
Source0: http://xorg.freedesktop.org/releases/individual/driver/%{name}-%{version}.t…
-Patch0: U_Remove-mibstore.h.patch
-Patch1: U_Rename-XSERVER_PCIACCESS-to-XSERVER_LIBPCIACCESS.patch
-Patch2: U_dri-Stop-uselessly-initializing-the-ValidateTree-hoo.patch
BuildRequires: Mesa-devel
BuildRequires: pkg-config
BuildRequires: pkgconfig(fontsproto)
@@ -52,9 +49,6 @@
%prep
%setup -q
-%patch0 -p1
-%patch1 -p1
-%patch2 -p1
%build
%configure
++++++ xf86-video-tdfx-1.4.5.tar.bz2 -> xf86-video-tdfx-1.4.6.tar.bz2 ++++++
++++ 26863 lines of diff (skipped)
++++ retrying with extended exclude list
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xf86-video-tdfx-1.4.5/ChangeLog new/xf86-video-tdfx-1.4.6/ChangeLog
--- old/xf86-video-tdfx-1.4.5/ChangeLog 2012-07-17 08:30:49.000000000 +0200
+++ new/xf86-video-tdfx-1.4.6/ChangeLog 2015-02-22 22:28:47.000000000 +0100
@@ -1,3 +1,102 @@
+commit 278042ff4c469f24ab7bc28e517e8a78e2821ddc
+Author: Matt Turner <mattst88(a)gmail.com>
+Date: Sun Feb 22 13:26:24 2015 -0800
+
+ xf86-video-tdfx 1.4.6
+
+ Signed-off-by: Matt Turner <mattst88(a)gmail.com>
+
+commit 2f71b05e29ae13a0fb6fbc74f4f76c78b6ddb0d7
+Author: Adam Jackson <ajax(a)redhat.com>
+Date: Tue Jul 29 09:15:49 2014 -0400
+
+ dri: Stop (uselessly) initializing the ValidateTree hooks
+
+ Signed-off-by: Adam Jackson <ajax(a)redhat.com>
+
+commit d8873445199bf1d229503ff1d12c6a2f3f23c863
+Author: Guillem Jover <guillem(a)hadrons.org>
+Date: Thu Oct 3 15:35:05 2013 +0200
+
+ Add more PCI IDs for supported chips
+
+ Add support for Velocity and Voodoo4 chips.
+
+ Signed-off-by: Guillem Jover <guillem(a)hadrons.org>
+ Reviewed-by: Adam Jackson <ajax(a)redhat.com>
+
+commit b15c1e8ef9858c85ead44ded22c7d48bd8ffa501
+Author: Guillem Jover <guillem(a)hadrons.org>
+Date: Thu Oct 3 14:25:45 2013 +0200
+
+ Unmap MMIO ranges for all chips
+
+ This is relevant on SLI setups, where each chip has their own MMIO
+ range.
+
+ Signed-off-by: Guillem Jover <guillem(a)hadrons.org>
+ Reviewed-by: Adam Jackson <ajax(a)redhat.com>
+
+commit 828c151064083e4488a4cb3854f8dcb23265e5cb
+Author: Guillem Jover <guillem(a)hadrons.org>
+Date: Wed Oct 2 21:22:33 2013 +0200
+
+ Use the PCI ID macros instead of hardcoded values
+
+ Signed-off-by: Guillem Jover <guillem(a)hadrons.org>
+ Reviewed-by: Adam Jackson <ajax(a)redhat.com>
+
+commit 58b2ac6dd1487580f49869f582a8852b003a34fa
+Author: Guillem Jover <guillem(a)hadrons.org>
+Date: Tue Oct 1 05:36:34 2013 +0200
+
+ Remove unreachable breaks after return statements
+
+ Signed-off-by: Guillem Jover <guillem(a)hadrons.org>
+ Reviewed-by: Adam Jackson <ajax(a)redhat.com>
+
+commit 774461a4ac92c39c3b3ec975a887540dfa791eae
+Author: Guillem Jover <guillem(a)hadrons.org>
+Date: Fri Sep 27 19:20:11 2013 +0200
+
+ Use new pci_device_(un)map_range functions instead of deprecated ones
+
+ Signed-off-by: Guillem Jover <guillem(a)hadrons.org>
+ Reviewed-by: Adam Jackson <ajax(a)redhat.com>
+
+commit 646137de571a9df950d3a3edb454803268fd5f98
+Author: Guillem Jover <guillem(a)hadrons.org>
+Date: Fri Sep 27 19:06:31 2013 +0200
+
+ Rename XSERVER_PCIACCESS to XSERVER_LIBPCIACCESS
+
+ Using the wrong macro name means that the code uses an obsolete typedef
+ that issues warnings.
+
+ Signed-off-by: Guillem Jover <guillem(a)hadrons.org>
+ Reviewed-by: Adam Jackson <ajax(a)redhat.com>
+
+commit 457bd576a4895f0d3a65e550dbe2470177bf650d
+Author: Guillem Jover <guillem(a)hadrons.org>
+Date: Fri Sep 27 18:52:01 2013 +0200
+
+ Define local PCI IDs instead of using xf86PciInfo.h
+
+ The header file is deprecated and issues a warning now. Stop using
+ it, and move the definitions to the local tree as recommended by the
+ warning.
+
+ Signed-off-by: Guillem Jover <guillem(a)hadrons.org>
+ Reviewed-by: Adam Jackson <ajax(a)redhat.com>
+
+commit 10498d2730c651eb7a1890eb9e728269732e9dad
+Author: Adam Jackson <ajax(a)redhat.com>
+Date: Tue Sep 25 08:54:59 2012 -0400
+
+ Remove mibstore.h
+
+ Signed-off-by: Adam Jackson <ajax(a)redhat.com>
+
commit a1037f73cf5da0ee3fec1867a5f20305d9267e63
Author: Dave Airlie <airlied(a)redhat.com>
Date: Tue Jul 17 16:05:09 2012 +1000
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xf86-video-tdfx-1.4.5/INSTALL new/xf86-video-tdfx-1.4.6/INSTALL
--- old/xf86-video-tdfx-1.4.5/INSTALL 2012-07-17 08:30:49.000000000 +0200
+++ new/xf86-video-tdfx-1.4.6/INSTALL 2015-02-22 22:28:47.000000000 +0100
@@ -1,11 +1,13 @@
Installation Instructions
*************************
-Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2004, 2005,
-2006, 2007, 2008 Free Software Foundation, Inc.
+Copyright (C) 1994-1996, 1999-2002, 2004-2011 Free Software Foundation,
+Inc.
- This file is free documentation; the Free Software Foundation gives
-unlimited permission to copy, distribute and modify it.
+ Copying and distribution of this file, with or without modification,
+are permitted in any medium without royalty provided the copyright
+notice and this notice are preserved. This file is offered as-is,
+without warranty of any kind.
Basic Installation
==================
@@ -13,7 +15,11 @@
Briefly, the shell commands `./configure; make; make install' should
configure, build, and install this package. The following
more-detailed instructions are generic; see the `README' file for
-instructions specific to this package.
+instructions specific to this package. Some packages provide this
+`INSTALL' file but do not implement all of the features documented
+below. The lack of an optional feature in a given package is not
+necessarily a bug. More recommendations for GNU packages can be found
+in *note Makefile Conventions: (standards)Makefile Conventions.
The `configure' shell script attempts to guess correct values for
various system-dependent variables used during compilation. It uses
@@ -42,7 +48,7 @@
you want to change it or regenerate `configure' using a newer version
of `autoconf'.
-The simplest way to compile this package is:
+ The simplest way to compile this package is:
1. `cd' to the directory containing the package's source code and type
`./configure' to configure the package for your system.
@@ -53,12 +59,22 @@
2. Type `make' to compile the package.
3. Optionally, type `make check' to run any self-tests that come with
- the package.
+ the package, generally using the just-built uninstalled binaries.
4. Type `make install' to install the programs and any data files and
- documentation.
+ documentation. When installing into a prefix owned by root, it is
+ recommended that the package be configured and built as a regular
+ user, and only the `make install' phase executed with root
+ privileges.
+
+ 5. Optionally, type `make installcheck' to repeat any self-tests, but
+ this time using the binaries in their final installed location.
+ This target does not install anything. Running this target as a
+ regular user, particularly if the prior `make install' required
+ root privileges, verifies that the installation completed
+ correctly.
- 5. You can remove the program binaries and object files from the
+ 6. You can remove the program binaries and object files from the
source code directory by typing `make clean'. To also remove the
files that `configure' created (so you can compile the package for
a different kind of computer), type `make distclean'. There is
@@ -67,8 +83,15 @@
all sorts of other programs in order to regenerate files that came
with the distribution.
- 6. Often, you can also type `make uninstall' to remove the installed
- files again.
+ 7. Often, you can also type `make uninstall' to remove the installed
+ files again. In practice, not all packages have tested that
+ uninstallation works correctly, even though it is required by the
+ GNU Coding Standards.
+
+ 8. Some packages, particularly those that use Automake, provide `make
+ distcheck', which can by used by developers to test that all other
+ targets like `make install' and `make uninstall' work correctly.
+ This target is generally not run by end users.
Compilers and Options
=====================
@@ -93,7 +116,8 @@
own directory. To do this, you can use GNU `make'. `cd' to the
directory where you want the object files and executables to go and run
the `configure' script. `configure' automatically checks for the
-source code in the directory that `configure' is in and in `..'.
+source code in the directory that `configure' is in and in `..'. This
+is known as a "VPATH" build.
With a non-GNU `make', it is safer to compile the package for one
architecture at a time in the source code directory. After you have
@@ -120,7 +144,8 @@
By default, `make install' installs the package's commands under
`/usr/local/bin', include files under `/usr/local/include', etc. You
can specify an installation prefix other than `/usr/local' by giving
-`configure' the option `--prefix=PREFIX'.
+`configure' the option `--prefix=PREFIX', where PREFIX must be an
+absolute file name.
You can specify separate installation prefixes for
architecture-specific files and architecture-independent files. If you
@@ -131,15 +156,46 @@
In addition, if you use an unusual directory layout you can give
options like `--bindir=DIR' to specify different values for particular
kinds of files. Run `configure --help' for a list of the directories
-you can set and what kinds of files go in them.
+you can set and what kinds of files go in them. In general, the
+default for these options is expressed in terms of `${prefix}', so that
+specifying just `--prefix' will affect all of the other directory
+specifications that were not explicitly provided.
+
+ The most portable way to affect installation locations is to pass the
+correct locations to `configure'; however, many packages provide one or
+both of the following shortcuts of passing variable assignments to the
+`make install' command line to change installation locations without
+having to reconfigure or recompile.
+
+ The first method involves providing an override variable for each
+affected directory. For example, `make install
+prefix=/alternate/directory' will choose an alternate location for all
+directory configuration variables that were expressed in terms of
+`${prefix}'. Any directories that were specified during `configure',
+but not in terms of `${prefix}', must each be overridden at install
+time for the entire installation to be relocated. The approach of
+makefile variable overrides for each directory variable is required by
+the GNU Coding Standards, and ideally causes no recompilation.
+However, some platforms have known limitations with the semantics of
+shared libraries that end up requiring recompilation when using this
+method, particularly noticeable in packages that use GNU Libtool.
+
+ The second method involves providing the `DESTDIR' variable. For
+example, `make install DESTDIR=/alternate/directory' will prepend
+`/alternate/directory' before all installation names. The approach of
+`DESTDIR' overrides is not required by the GNU Coding Standards, and
+does not work on platforms that have drive letters. On the other hand,
+it does better at avoiding recompilation issues, and works well even
+when some directory options were not specified in terms of `${prefix}'
+at `configure' time.
+
+Optional Features
+=================
If the package supports it, you can cause programs to be installed
with an extra prefix or suffix on their names by giving `configure' the
option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'.
-Optional Features
-=================
-
Some packages pay attention to `--enable-FEATURE' options to
`configure', where FEATURE indicates an optional part of the package.
They may also pay attention to `--with-PACKAGE' options, where PACKAGE
@@ -152,6 +208,13 @@
you can use the `configure' options `--x-includes=DIR' and
`--x-libraries=DIR' to specify their locations.
+ Some packages offer the ability to configure how verbose the
+execution of `make' will be. For these packages, running `./configure
+--enable-silent-rules' sets the default to minimal output, which can be
+overridden with `make V=1'; while running `./configure
+--disable-silent-rules' sets the default to verbose, which can be
+overridden with `make V=0'.
+
Particular systems
==================
@@ -159,10 +222,15 @@
CC is not installed, it is recommended to use the following options in
order to use an ANSI C compiler:
- ./configure CC="cc -Ae"
+ ./configure CC="cc -Ae -D_XOPEN_SOURCE=500"
and if that doesn't work, install pre-built binaries of GCC for HP-UX.
+ HP-UX `make' updates targets which have the same time stamps as
+their prerequisites, which makes it generally unusable when shipped
+generated files such as `configure' are involved. Use GNU `make'
+instead.
+
On OSF/1 a.k.a. Tru64, some versions of the default C compiler cannot
parse its `<wchar.h>' header file. The option `-nodtk' can be used as
a workaround. If GNU CC is not installed, it is therefore recommended
@@ -174,6 +242,16 @@
./configure CC="cc -nodtk"
+ On Solaris, don't put `/usr/ucb' early in your `PATH'. This
+directory contains several dysfunctional programs; working variants of
+these programs are available in `/usr/bin'. So, if you need `/usr/ucb'
+in your `PATH', put it _after_ `/usr/bin'.
+
+ On Haiku, software installed for all users goes in `/boot/common',
+not `/usr/local'. It is recommended to use the following options:
+
+ ./configure --prefix=/boot/common
+
Specifying the System Type
==========================
@@ -189,7 +267,8 @@
where SYSTEM can have one of these forms:
- OS KERNEL-OS
+ OS
+ KERNEL-OS
See the file `config.sub' for the possible values of each field. If
`config.sub' isn't included in this package, then this package doesn't
@@ -277,7 +356,7 @@
`configure' can determine that directory automatically.
`--prefix=DIR'
- Use DIR as the installation prefix. *Note Installation Names::
+ Use DIR as the installation prefix. *note Installation Names::
for more details, including other options available for fine-tuning
the installation locations.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xf86-video-tdfx-1.4.5/config.h.in new/xf86-video-tdfx-1.4.6/config.h.in
--- old/xf86-video-tdfx-1.4.5/config.h.in 2012-07-17 08:30:49.000000000 +0200
+++ new/xf86-video-tdfx-1.4.6/config.h.in 2015-02-22 22:28:42.000000000 +0100
@@ -35,8 +35,7 @@
/* Define to 1 if you have the <xaa.h> header file. */
#undef HAVE_XAA_H
-/* Define to the sub-directory in which libtool stores uninstalled libraries.
- */
+/* Define to the sub-directory where libtool stores uninstalled libraries. */
#undef LT_OBJDIR
/* Name of package */
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xf86-video-tdfx-1.4.5/configure.ac new/xf86-video-tdfx-1.4.6/configure.ac
--- old/xf86-video-tdfx-1.4.5/configure.ac 2012-07-17 08:00:16.000000000 +0200
+++ new/xf86-video-tdfx-1.4.6/configure.ac 2015-02-22 22:26:22.000000000 +0100
@@ -23,7 +23,7 @@
# Initialize Autoconf
AC_PREREQ([2.60])
AC_INIT([xf86-video-tdfx],
- [1.4.5],
+ [1.4.6],
[https://bugs.freedesktop.org/enter_bug.cgi?product=xorg]
[xf86-video-tdfx])
AC_CONFIG_SRCDIR([Makefile.am])
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xf86-video-tdfx-1.4.5/missing new/xf86-video-tdfx-1.4.6/missing
--- old/xf86-video-tdfx-1.4.5/missing 2012-06-06 13:47:33.000000000 +0200
+++ new/xf86-video-tdfx-1.4.6/missing 2015-02-22 22:28:43.000000000 +0100
@@ -1,11 +1,10 @@
#! /bin/sh
-# Common stub for a few missing GNU programs while installing.
+# Common wrapper for a few potentially missing GNU programs.
-scriptversion=2012-01-06.13; # UTC
+scriptversion=2012-06-26.16; # UTC
-# Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005, 2006,
-# 2008, 2009, 2010, 2011, 2012 Free Software Foundation, Inc.
-# Originally by Fran,cois Pinard <pinard(a)iro.umontreal.ca>, 1996.
+# Copyright (C) 1996-2013 Free Software Foundation, Inc.
+# Originally written by Fran,cois Pinard <pinard(a)iro.umontreal.ca>, 1996.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -26,68 +25,40 @@
# the same distribution terms that you use for the rest of that program.
if test $# -eq 0; then
- echo 1>&2 "Try \`$0 --help' for more information"
+ echo 1>&2 "Try '$0 --help' for more information"
exit 1
fi
-run=:
-sed_output='s/.* --output[ =]\([^ ]*\).*/\1/p'
-sed_minuso='s/.* -o \([^ ]*\).*/\1/p'
-
-# In the cases where this matters, `missing' is being run in the
-# srcdir already.
-if test -f configure.ac; then
- configure_ac=configure.ac
-else
- configure_ac=configure.in
-fi
+case $1 in
-msg="missing on your system"
+ --is-lightweight)
+ # Used by our autoconf macros to check whether the available missing
+ # script is modern enough.
+ exit 0
+ ;;
-case $1 in
---run)
- # Try to run requested program, and just exit if it succeeds.
- run=
- shift
- "$@" && exit 0
- # Exit code 63 means version mismatch. This often happens
- # when the user try to use an ancient version of a tool on
- # a file that requires a minimum version. In this case we
- # we should proceed has if the program had been absent, or
- # if --run hadn't been passed.
- if test $? = 63; then
- run=:
- msg="probably too old"
- fi
- ;;
+ --run)
+ # Back-compat with the calling convention used by older automake.
+ shift
+ ;;
-h|--h|--he|--hel|--help)
echo "\
$0 [OPTION]... PROGRAM [ARGUMENT]...
-Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an
-error status if there is no known handling for PROGRAM.
+Run 'PROGRAM [ARGUMENT]...', returning a proper advice when this fails due
+to PROGRAM being missing or too old.
Options:
-h, --help display this help and exit
-v, --version output version information and exit
- --run try to run the given command, and emulate it if it fails
Supported PROGRAM values:
- aclocal touch file \`aclocal.m4'
- autoconf touch file \`configure'
- autoheader touch file \`config.h.in'
- autom4te touch the output file, or create a stub one
- automake touch all \`Makefile.in' files
- bison create \`y.tab.[ch]', if possible, from existing .[ch]
- flex create \`lex.yy.c', if possible, from existing .c
- help2man touch the output file
- lex create \`lex.yy.c', if possible, from existing .c
- makeinfo touch the output file
- yacc create \`y.tab.[ch]', if possible, from existing .[ch]
+ aclocal autoconf autoheader autom4te automake makeinfo
+ bison yacc flex lex help2man
-Version suffixes to PROGRAM as well as the prefixes \`gnu-', \`gnu', and
-\`g' are ignored when checking the name.
+Version suffixes to PROGRAM as well as the prefixes 'gnu-', 'gnu', and
+'g' are ignored when checking the name.
Send bug reports to <bug-automake(a)gnu.org>."
exit $?
@@ -99,228 +70,141 @@
;;
-*)
- echo 1>&2 "$0: Unknown \`$1' option"
- echo 1>&2 "Try \`$0 --help' for more information"
+ echo 1>&2 "$0: unknown '$1' option"
+ echo 1>&2 "Try '$0 --help' for more information"
exit 1
;;
esac
-# normalize program name to check for.
-program=`echo "$1" | sed '
- s/^gnu-//; t
- s/^gnu//; t
- s/^g//; t'`
-
-# Now exit if we have it, but it failed. Also exit now if we
-# don't have it and --version was passed (most likely to detect
-# the program). This is about non-GNU programs, so use $1 not
-# $program.
-case $1 in
- lex*|yacc*)
- # Not GNU programs, they don't have --version.
- ;;
+# Run the given program, remember its exit status.
+"$@"; st=$?
- *)
- if test -z "$run" && ($1 --version) > /dev/null 2>&1; then
- # We have it, but it failed.
- exit 1
- elif test "x$2" = "x--version" || test "x$2" = "x--help"; then
- # Could not run --version or --help. This is probably someone
- # running `$TOOL --version' or `$TOOL --help' to check whether
- # $TOOL exists and not knowing $TOOL uses missing.
- exit 1
- fi
- ;;
-esac
-
-# If it does not exist, or fails to run (possibly an outdated version),
-# try to emulate it.
-case $program in
- aclocal*)
- echo 1>&2 "\
-WARNING: \`$1' is $msg. You should only need it if
- you modified \`acinclude.m4' or \`${configure_ac}'. You might want
- to install the \`Automake' and \`Perl' packages. Grab them from
- any GNU archive site."
- touch aclocal.m4
- ;;
-
- autoconf*)
- echo 1>&2 "\
-WARNING: \`$1' is $msg. You should only need it if
- you modified \`${configure_ac}'. You might want to install the
- \`Autoconf' and \`GNU m4' packages. Grab them from any GNU
- archive site."
- touch configure
- ;;
-
- autoheader*)
- echo 1>&2 "\
-WARNING: \`$1' is $msg. You should only need it if
- you modified \`acconfig.h' or \`${configure_ac}'. You might want
- to install the \`Autoconf' and \`GNU m4' packages. Grab them
- from any GNU archive site."
- files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${configure_ac}`
- test -z "$files" && files="config.h"
- touch_files=
- for f in $files; do
- case $f in
- *:*) touch_files="$touch_files "`echo "$f" |
- sed -e 's/^[^:]*://' -e 's/:.*//'`;;
- *) touch_files="$touch_files $f.in";;
- esac
- done
- touch $touch_files
- ;;
+# If it succeeded, we are done.
+test $st -eq 0 && exit 0
- automake*)
- echo 1>&2 "\
-WARNING: \`$1' is $msg. You should only need it if
- you modified \`Makefile.am', \`acinclude.m4' or \`${configure_ac}'.
- You might want to install the \`Automake' and \`Perl' packages.
- Grab them from any GNU archive site."
- find . -type f -name Makefile.am -print |
- sed 's/\.am$/.in/' |
- while read f; do touch "$f"; done
- ;;
-
- autom4te*)
- echo 1>&2 "\
-WARNING: \`$1' is needed, but is $msg.
- You might have modified some files without having the
- proper tools for further handling them.
- You can get \`$1' as part of \`Autoconf' from any GNU
- archive site."
-
- file=`echo "$*" | sed -n "$sed_output"`
- test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"`
- if test -f "$file"; then
- touch $file
- else
- test -z "$file" || exec >$file
- echo "#! /bin/sh"
- echo "# Created by GNU Automake missing as a replacement of"
- echo "# $ $@"
- echo "exit 0"
- chmod +x $file
- exit 1
- fi
- ;;
-
- bison*|yacc*)
- echo 1>&2 "\
-WARNING: \`$1' $msg. You should only need it if
- you modified a \`.y' file. You may need the \`Bison' package
- in order for those modifications to take effect. You can get
- \`Bison' from any GNU archive site."
- rm -f y.tab.c y.tab.h
- if test $# -ne 1; then
- eval LASTARG=\${$#}
- case $LASTARG in
- *.y)
- SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'`
- if test -f "$SRCFILE"; then
- cp "$SRCFILE" y.tab.c
- fi
- SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'`
- if test -f "$SRCFILE"; then
- cp "$SRCFILE" y.tab.h
- fi
- ;;
- esac
- fi
- if test ! -f y.tab.h; then
- echo >y.tab.h
- fi
- if test ! -f y.tab.c; then
- echo 'main() { return 0; }' >y.tab.c
- fi
- ;;
-
- lex*|flex*)
- echo 1>&2 "\
-WARNING: \`$1' is $msg. You should only need it if
- you modified a \`.l' file. You may need the \`Flex' package
- in order for those modifications to take effect. You can get
- \`Flex' from any GNU archive site."
- rm -f lex.yy.c
- if test $# -ne 1; then
- eval LASTARG=\${$#}
- case $LASTARG in
- *.l)
- SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'`
- if test -f "$SRCFILE"; then
- cp "$SRCFILE" lex.yy.c
- fi
- ;;
- esac
- fi
- if test ! -f lex.yy.c; then
- echo 'main() { return 0; }' >lex.yy.c
- fi
- ;;
-
- help2man*)
- echo 1>&2 "\
-WARNING: \`$1' is $msg. You should only need it if
- you modified a dependency of a manual page. You may need the
- \`Help2man' package in order for those modifications to take
- effect. You can get \`Help2man' from any GNU archive site."
-
- file=`echo "$*" | sed -n "$sed_output"`
- test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"`
- if test -f "$file"; then
- touch $file
- else
- test -z "$file" || exec >$file
- echo ".ab help2man is required to generate this page"
- exit $?
- fi
- ;;
-
- makeinfo*)
- echo 1>&2 "\
-WARNING: \`$1' is $msg. You should only need it if
- you modified a \`.texi' or \`.texinfo' file, or any other file
- indirectly affecting the aspect of the manual. The spurious
- call might also be the consequence of using a buggy \`make' (AIX,
- DU, IRIX). You might want to install the \`Texinfo' package or
- the \`GNU make' package. Grab either from any GNU archive site."
- # The file to touch is that specified with -o ...
- file=`echo "$*" | sed -n "$sed_output"`
- test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"`
- if test -z "$file"; then
- # ... or it is the one specified with @setfilename ...
- infile=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'`
- file=`sed -n '
- /^@setfilename/{
- s/.* \([^ ]*\) *$/\1/
- p
- q
- }' $infile`
- # ... or it is derived from the source name (dir/f.texi becomes f.info)
- test -z "$file" && file=`echo "$infile" | sed 's,.*/,,;s,.[^.]*$,,'`.info
- fi
- # If the file does not exist, the user really needs makeinfo;
- # let's fail without touching anything.
- test -f $file || exit 1
- touch $file
- ;;
-
- *)
- echo 1>&2 "\
-WARNING: \`$1' is needed, and is $msg.
- You might have modified some files without having the
- proper tools for further handling them. Check the \`README' file,
- it often tells you about the needed prerequisites for installing
- this package. You may also peek at any GNU archive site, in case
- some other package would contain this missing \`$1' program."
- exit 1
- ;;
-esac
+# Also exit now if we it failed (or wasn't found), and '--version' was
+# passed; such an option is passed most likely to detect whether the
+# program is present and works.
+case $2 in --version|--help) exit $st;; esac
+
+# Exit code 63 means version mismatch. This often happens when the user
+# tries to use an ancient version of a tool on a file that requires a
+# minimum version.
+if test $st -eq 63; then
+ msg="probably too old"
+elif test $st -eq 127; then
+ # Program was missing.
+ msg="missing on your system"
+else
+ # Program was found and executed, but failed. Give up.
+ exit $st
+fi
-exit 0
+perl_URL=http://www.perl.org/
+flex_URL=http://flex.sourceforge.net/
+gnu_software_URL=http://www.gnu.org/software
+
+program_details ()
+{
+ case $1 in
+ aclocal|automake)
+ echo "The '$1' program is part of the GNU Automake package:"
+ echo "<$gnu_software_URL/automake>"
+ echo "It also requires GNU Autoconf, GNU m4 and Perl in order to run:"
+ echo "<$gnu_software_URL/autoconf>"
+ echo "<$gnu_software_URL/m4/>"
+ echo "<$perl_URL>"
+ ;;
+ autoconf|autom4te|autoheader)
+ echo "The '$1' program is part of the GNU Autoconf package:"
+ echo "<$gnu_software_URL/autoconf/>"
+ echo "It also requires GNU m4 and Perl in order to run:"
+ echo "<$gnu_software_URL/m4/>"
+ echo "<$perl_URL>"
+ ;;
+ esac
+}
+
+give_advice ()
+{
+ # Normalize program name to check for.
+ normalized_program=`echo "$1" | sed '
+ s/^gnu-//; t
+ s/^gnu//; t
+ s/^g//; t'`
+
+ printf '%s\n' "'$1' is $msg."
+
+ configure_deps="'configure.ac' or m4 files included by 'configure.ac'"
+ case $normalized_program in
+ autoconf*)
+ echo "You should only need it if you modified 'configure.ac',"
+ echo "or m4 files included by it."
+ program_details 'autoconf'
+ ;;
+ autoheader*)
+ echo "You should only need it if you modified 'acconfig.h' or"
+ echo "$configure_deps."
+ program_details 'autoheader'
+ ;;
+ automake*)
+ echo "You should only need it if you modified 'Makefile.am' or"
+ echo "$configure_deps."
+ program_details 'automake'
+ ;;
+ aclocal*)
+ echo "You should only need it if you modified 'acinclude.m4' or"
+ echo "$configure_deps."
+ program_details 'aclocal'
+ ;;
+ autom4te*)
+ echo "You might have modified some maintainer files that require"
+ echo "the 'automa4te' program to be rebuilt."
+ program_details 'autom4te'
+ ;;
+ bison*|yacc*)
+ echo "You should only need it if you modified a '.y' file."
+ echo "You may want to install the GNU Bison package:"
+ echo "<$gnu_software_URL/bison/>"
+ ;;
+ lex*|flex*)
+ echo "You should only need it if you modified a '.l' file."
+ echo "You may want to install the Fast Lexical Analyzer package:"
+ echo "<$flex_URL>"
+ ;;
+ help2man*)
+ echo "You should only need it if you modified a dependency" \
+ "of a man page."
+ echo "You may want to install the GNU Help2man package:"
+ echo "<$gnu_software_URL/help2man/>"
+ ;;
+ makeinfo*)
+ echo "You should only need it if you modified a '.texi' file, or"
+ echo "any other file indirectly affecting the aspect of the manual."
+ echo "You might want to install the Texinfo package:"
+ echo "<$gnu_software_URL/texinfo/>"
+ echo "The spurious makeinfo call might also be the consequence of"
+ echo "using a buggy 'make' (AIX, DU, IRIX), in which case you might"
+ echo "want to install GNU make:"
+ echo "<$gnu_software_URL/make/>"
+ ;;
+ *)
+ echo "You might have modified some files without having the proper"
+ echo "tools for further handling them. Check the 'README' file, it"
+ echo "often tells you about the needed prerequisites for installing"
+ echo "this package. You may also peek at any GNU archive site, in"
+ echo "case some other package contains this missing '$1' program."
+ ;;
+ esac
+}
+
+give_advice "$1" | sed -e '1s/^/WARNING: /' \
+ -e '2,$s/^/ /' >&2
+
+# Propagate the correct exit status (expected to be 127 for a program
+# not found, 63 for a program that failed due to version mismatch).
+exit $st
# Local variables:
# eval: (add-hook 'write-file-hooks 'time-stamp)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xf86-video-tdfx-1.4.5/src/tdfx.h new/xf86-video-tdfx-1.4.6/src/tdfx.h
--- old/xf86-video-tdfx-1.4.5/src/tdfx.h 2012-07-17 07:21:16.000000000 +0200
+++ new/xf86-video-tdfx-1.4.6/src/tdfx.h 2015-02-22 22:25:54.000000000 +0100
@@ -12,7 +12,6 @@
#include <string.h>
#include <stdio.h>
-#include "xf86PciInfo.h"
#include "xf86Pci.h"
#include "xf86DDC.h"
#include "xf86xv.h"
@@ -73,6 +72,19 @@
(p)->memBase[region]
#endif
+#define PCI_VENDOR_3DFX 0x121A
+
+#define PCI_CHIP_VOODOO_GRAPHICS 0x0001
+#define PCI_CHIP_VOODOO2 0x0002
+#define PCI_CHIP_BANSHEE 0x0003
+#define PCI_CHIP_VELOCITY 0x0004
+#define PCI_CHIP_VOODOO3 0x0005
+#define PCI_CHIP_VOODOO4 0x0007
+#define PCI_CHIP_VOODOO5 0x0009
+
+#define PCI_CARD_VOODOO3_2000 0x0036
+#define PCI_CARD_VOODOO3_3000 0x003A
+
struct _TDFXRec;
typedef struct _TDFXRec *TDFXPtr;
@@ -216,7 +228,7 @@
unsigned long MMIOAddr[MAXCHIPS];
EntityInfoPtr pEnt;
int numChips;
-#ifndef XSERVER_PCIACCESS
+#ifndef XSERVER_LIBPCIACCESS
PCITAG PciTag[MAXCHIPS];
#endif
Bool Primary;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xf86-video-tdfx-1.4.5/src/tdfx_accel.c new/xf86-video-tdfx-1.4.6/src/tdfx_accel.c
--- old/xf86-video-tdfx-1.4.5/src/tdfx_accel.c 2012-07-17 07:21:16.000000000 +0200
+++ new/xf86-video-tdfx-1.4.6/src/tdfx_accel.c 2015-02-22 22:25:54.000000000 +0100
@@ -11,9 +11,6 @@
/* Drivers that need to access the PCI config space directly need this */
#include "xf86Pci.h"
-/* Drivers for PCI hardware need this */
-#include "xf86PciInfo.h"
-
/* Drivers that use XAA need this */
#ifdef HAVE_XAA_H
#include "xaalocal.h"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xf86-video-tdfx-1.4.5/src/tdfx_dri.c new/xf86-video-tdfx-1.4.6/src/tdfx_dri.c
--- old/xf86-video-tdfx-1.4.5/src/tdfx_dri.c 2012-07-17 07:21:16.000000000 +0200
+++ new/xf86-video-tdfx-1.4.6/src/tdfx_dri.c 2015-02-22 22:25:54.000000000 +0100
@@ -5,7 +5,6 @@
#include "xf86.h"
#include "xf86_OSproc.h"
-#include "xf86PciInfo.h"
#include "xf86Pci.h"
#include "fb.h"
#include "miline.h"
@@ -362,8 +361,6 @@
pDRIInfo->frameBufferStride = pTDFX->stride;
pDRIInfo->ddxDrawableTableEntry = TDFX_MAX_DRAWABLES;
- pDRIInfo->wrap.ValidateTree = 0;
- pDRIInfo->wrap.PostValidateTree = 0;
pTDFX->coreBlockHandler = pDRIInfo->wrap.BlockHandler;
pDRIInfo->wrap.BlockHandler = TDFXDoBlockHandler;
pTDFX->coreWakeupHandler = pDRIInfo->wrap.WakeupHandler;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xf86-video-tdfx-1.4.5/src/tdfx_driver.c new/xf86-video-tdfx-1.4.6/src/tdfx_driver.c
--- old/xf86-video-tdfx-1.4.5/src/tdfx_driver.c 2012-07-17 07:21:16.000000000 +0200
+++ new/xf86-video-tdfx-1.4.6/src/tdfx_driver.c 2015-02-22 22:25:54.000000000 +0100
@@ -62,10 +62,6 @@
#include "compiler.h"
-/* Drivers using the mi implementation of backing store need: */
-
-#include "mibstore.h"
-
/* All drivers using the vgahw module need this */
/* This driver needs to be modified to not use vgaHW for multihead operation */
#include "vgaHW.h"
@@ -153,17 +149,20 @@
#ifdef XSERVER_LIBPCIACCESS
#define TDFX_DEVICE_MATCH(d, sub, i) \
- { 0x121A, (d), PCI_MATCH_ANY, (sub), 0, 0, (i) }
+ { PCI_VENDOR_3DFX, (d), PCI_MATCH_ANY, (sub), 0, 0, (i) }
static const struct pci_id_match tdfx_device_match[] = {
TDFX_DEVICE_MATCH(PCI_CHIP_BANSHEE, PCI_MATCH_ANY, Banshee),
+ TDFX_DEVICE_MATCH(PCI_CHIP_VELOCITY, PCI_MATCH_ANY, Voodoo3_Unknown),
+
/* There are *many* missing PCI IDs here.
*/
- TDFX_DEVICE_MATCH(PCI_CHIP_VOODOO3, 0x0036, Voodoo3_2000),
- TDFX_DEVICE_MATCH(PCI_CHIP_VOODOO3, 0x003A, Voodoo3_3000),
+ TDFX_DEVICE_MATCH(PCI_CHIP_VOODOO3, PCI_CARD_VOODOO3_2000, Voodoo3_2000),
+ TDFX_DEVICE_MATCH(PCI_CHIP_VOODOO3, PCI_CARD_VOODOO3_3000, Voodoo3_3000),
TDFX_DEVICE_MATCH(PCI_CHIP_VOODOO3, PCI_MATCH_ANY, Voodoo3_Unknown),
+ TDFX_DEVICE_MATCH(PCI_CHIP_VOODOO4, PCI_MATCH_ANY, Voodoo5),
TDFX_DEVICE_MATCH(PCI_CHIP_VOODOO5, PCI_MATCH_ANY, Voodoo5),
{ 0, 0, 0 }
};
@@ -202,7 +201,9 @@
/* Chipsets */
static SymTabRec TDFXChipsets[] = {
{ PCI_CHIP_BANSHEE, "3dfx Banshee"},
+ { PCI_CHIP_VELOCITY, "3dfx Velocity"},
{ PCI_CHIP_VOODOO3, "3dfx Voodoo3"},
+ { PCI_CHIP_VOODOO4, "3dfx Voodoo4"},
{ PCI_CHIP_VOODOO5, "3dfx Voodoo5"},
{ -1, NULL }
};
@@ -210,7 +211,9 @@
#ifndef XSERVER_LIBPCIACCESS
static PciChipsets TDFXPciChipsets[] = {
{ PCI_CHIP_BANSHEE, PCI_CHIP_BANSHEE, RES_SHARED_VGA },
+ { PCI_CHIP_VELOCITY, PCI_CHIP_VELOCITY, RES_SHARED_VGA },
{ PCI_CHIP_VOODOO3, PCI_CHIP_VOODOO3, RES_SHARED_VGA },
+ { PCI_CHIP_VOODOO4, PCI_CHIP_VOODOO4, RES_SHARED_VGA },
{ PCI_CHIP_VOODOO5, PCI_CHIP_VOODOO5, RES_SHARED_VGA },
{ -1, -1, RES_UNDEFINED }
};
@@ -1054,6 +1057,7 @@
case PCI_CHIP_BANSHEE:
pTDFX->MaxClock = 270000;
break;
+ case PCI_CHIP_VELOCITY:
case PCI_CHIP_VOODOO3:
switch(match->subsysCard) {
case PCI_CARD_VOODOO3_2000:
@@ -1067,6 +1071,7 @@
break;
}
break;
+ case PCI_CHIP_VOODOO4:
case PCI_CHIP_VOODOO5:
pTDFX->MaxClock = 350000;
break;
@@ -1082,7 +1087,9 @@
case PCI_CHIP_BANSHEE:
clockRanges->interlaceAllowed = FALSE;
break;
+ case PCI_CHIP_VELOCITY:
case PCI_CHIP_VOODOO3:
+ case PCI_CHIP_VOODOO4:
case PCI_CHIP_VOODOO5:
clockRanges->interlaceAllowed = TRUE;
break;
@@ -1257,11 +1264,11 @@
* FIXME: don't have any such hardware to test.
*/
for (i = 0; i < pTDFX->numChips; i++) {
- err = pci_device_map_memory_range(pTDFX->PciInfo[i],
- pTDFX->MMIOAddr[i],
- TDFXIOMAPSIZE,
- TRUE,
- & pTDFX->MMIOBase[i]);
+ err = pci_device_map_range(pTDFX->PciInfo[i],
+ pTDFX->MMIOAddr[i],
+ TDFXIOMAPSIZE,
+ PCI_DEV_MAP_FLAG_WRITABLE,
+ & pTDFX->MMIOBase[i]);
if (err) {
xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
"Unable to map MMIO region for card %u (%d).\n",
@@ -1271,11 +1278,11 @@
}
- err = pci_device_map_memory_range(pTDFX->PciInfo[0],
- pTDFX->LinearAddr[0],
- pTDFX->FbMapSize,
- TRUE,
- & pTDFX->FbBase);
+ err = pci_device_map_range(pTDFX->PciInfo[0],
+ pTDFX->LinearAddr[0],
+ pTDFX->FbMapSize,
+ PCI_DEV_MAP_FLAG_WRITABLE,
+ & pTDFX->FbBase);
if (err) {
xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
"Unable to map framebuffer (%d).\n", err);
@@ -1311,8 +1318,15 @@
pTDFX = TDFXPTR(pScrn);
#ifdef XSERVER_LIBPCIACCESS
- pci_device_unmap_region(pTDFX->PciInfo[0], 0);
- pci_device_unmap_region(pTDFX->PciInfo[0], 1);
+ pci_device_unmap_range(pTDFX->PciInfo[0],
+ pTDFX->FbBase,
+ pTDFX->FbMapSize);
+
+ for (i = 0; i < pTDFX->numChips; i++) {
+ pci_device_unmap_range(pTDFX->PciInfo[i],
+ pTDFX->MMIOBase[i],
+ TDFXIOMAPSIZE);
+ }
(void) memset(pTDFX->MMIOBase, 0, sizeof(pTDFX->MMIOBase));
pTDFX->FbBase = NULL;
@@ -2264,7 +2278,7 @@
}
scanlines = (pTDFX->backOffset - pTDFX->fbOffset) / pTDFX->stride;
- if(pTDFX->ChipType < PCI_CHIP_VOODOO5) {
+ if(pTDFX->ChipType < PCI_CHIP_VOODOO4) {
if (scanlines > 2047)
scanlines = 2047;
} else {
@@ -2373,7 +2387,6 @@
}
}
- miInitializeBackingStore(pScreen);
xf86SetBackingStore(pScreen);
xf86SetSilkenMouse(pScreen);
@@ -2586,14 +2599,13 @@
switch (pTDFX->ChipType) {
case PCI_CHIP_BANSHEE:
return MODE_BAD;
- break;
+ case PCI_CHIP_VELOCITY:
case PCI_CHIP_VOODOO3:
+ case PCI_CHIP_VOODOO4:
case PCI_CHIP_VOODOO5:
return MODE_OK;
- break;
default:
return MODE_BAD;
- break;
}
}
/* In clock doubled mode widths must be divisible by 16 instead of 8 */
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package xf86-video-mga for openSUSE:Factory checked in at 2015-02-24 13:02:28
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/xf86-video-mga (Old)
and /work/SRC/openSUSE:Factory/.xf86-video-mga.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "xf86-video-mga"
Changes:
--------
--- /work/SRC/openSUSE:Factory/xf86-video-mga/xf86-video-mga.changes 2015-02-10 20:16:33.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.xf86-video-mga.new/xf86-video-mga.changes 2015-02-24 13:06:55.000000000 +0100
@@ -1,0 +2,12 @@
+Mon Feb 23 13:13:55 UTC 2015 - sndirsch(a)suse.com
+
+- Update to version 1.6.4
+ * man: Don't mention the HAL
+ * dri: Stop (uselessly) initializing the ValidateTree hooks
+ * undef DISABLE_VGA_IO
+ * xf86-video-mga: set the pan_ctl register
+ * xf86-video-mga: fix a lockup in the mga driver
+ * fix a type in previous lockup in the mga driver fix
+- supersedes U_dri-Stop-uselessly-initializing-the-ValidateTree-hoo.patch
+
+-------------------------------------------------------------------
Old:
----
U_dri-Stop-uselessly-initializing-the-ValidateTree-hoo.patch
xf86-video-mga-1.6.3.tar.bz2
New:
----
xf86-video-mga-1.6.4.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ xf86-video-mga.spec ++++++
--- /var/tmp/diff_new_pack.Ypz1mM/_old 2015-02-24 13:06:56.000000000 +0100
+++ /var/tmp/diff_new_pack.Ypz1mM/_new 2015-02-24 13:06:56.000000000 +0100
@@ -17,7 +17,7 @@
Name: xf86-video-mga
-Version: 1.6.3
+Version: 1.6.4
Release: 0
Summary: Matrox video driver for the Xorg X server
License: MIT
@@ -28,7 +28,6 @@
Patch1: u_Fix-compiler-warnings.patch
Patch2: u_Fix-crash-when-EXA-accel-mode-is-enabled.patch
Patch3: u_EXA-Fix-UploadToScreen.patch
-Patch4: U_dri-Stop-uselessly-initializing-the-ValidateTree-hoo.patch
BuildRequires: Mesa-devel
BuildRequires: pkg-config
BuildRequires: pkgconfig(fontsproto)
@@ -71,7 +70,6 @@
%patch1 -p1
%patch2 -p1
%patch3 -p1
-%patch4 -p1
%build
%configure
++++++ xf86-video-mga-1.6.3.tar.bz2 -> xf86-video-mga-1.6.4.tar.bz2 ++++++
++++ 25926 lines of diff (skipped)
++++ retrying with extended exclude list
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xf86-video-mga-1.6.3/ChangeLog new/xf86-video-mga-1.6.4/ChangeLog
--- old/xf86-video-mga-1.6.3/ChangeLog 2013-12-05 03:10:31.000000000 +0100
+++ new/xf86-video-mga-1.6.4/ChangeLog 2015-02-19 22:43:24.000000000 +0100
@@ -1,3 +1,89 @@
+commit 8ed77eb7920f375e9490a31f907eccb02fb123cd
+Author: Matt Turner <mattst88(a)gmail.com>
+Date: Thu Feb 19 13:39:18 2015 -0800
+
+ xf86-video-mga 1.6.4
+
+commit 132dee029e36c9a91a85f178885e94a9f9b5ee37
+Author: Adam Jackson <ajax(a)redhat.com>
+Date: Tue Jul 29 14:35:46 2014 -0400
+
+ undef DISABLE_VGA_IO
+
+ Dead conditional ever since m12n, must not be needed.
+
+ Signed-off-by: Adam Jackson <ajax(a)redhat.com>
+
+commit cf46b1017a2663c59f07abd417573b9580f0145f
+Author: Adam Jackson <ajax(a)redhat.com>
+Date: Tue Jul 29 09:14:15 2014 -0400
+
+ dri: Stop (uselessly) initializing the ValidateTree hooks
+
+ Signed-off-by: Adam Jackson <ajax(a)redhat.com>
+
+commit 1a5bc65f27e76263818a44ddbc4197f6083077cf
+Author: Adam Jackson <ajax(a)redhat.com>
+Date: Thu May 22 12:48:27 2014 -0400
+
+ man: Don't mention the HAL
+
+ I mentioned it once, but I think I got away with it all right.
+
+ Signed-off-by: Adam Jackson <ajax(a)redhat.com>
+
+commit d2c65c24e94dca1e8fb16c851d0e2fe41bf5d1c6
+Author: Mikulas Patocka <mpatocka(a)redhat.com>
+Date: Thu Mar 13 23:17:52 2014 -0400
+
+ fix a type in previous lockup in the mga driver fix
+
+ Oh, I had a typo in that patch - so please commit this to fix it.
+
+ Signed-off-by: Dave Airlie <airlied(a)redhat.com>
+
+commit 0789f3f2799e6497e9e2e7488da679c03b7fa468
+Author: Mikulas Patocka <mpatocka(a)redhat.com>
+Date: Thu Mar 13 18:25:56 2014 -0400
+
+ xf86-video-mga: fix a lockup in the mga driver
+
+ I've had a Xserver lockup in the mga driver, examining it with gdb showed
+ this obviously broken loop:
+ count = INREG(MGAREG_VCOUNT) + 2;
+ while(INREG(MGAREG_VCOUNT) < count);
+
+ It reads the line counter and waits until the counter advances by two. The
+ cause of the lockup is this - if the kernel reschedules the Xorg process
+ and lets it run in such a moment when INREG(MGAREG_VCOUNT) returns the
+ maximum (or maximum minus 1) line count, the loop never exits.
+
+ Signed-off-by: Dave Airlie <airlied(a)redhat.com>
+
+commit 62ba63f687d7b99aff7c88ffd2774f15a2471ce0
+Author: Mikulas Patocka <mpatocka(a)redhat.com>
+Date: Fri Jan 17 16:04:26 2014 -0500
+
+ xf86-video-mga: set the pan_ctl register
+
+ On my Matrox G550 most videomodes in Xorg didn't work. I found out that it
+ works if Xorg pixel clock is similar to the pixel clock set on framebuffer
+ console.
+
+ Further analysis showed that the Linux framebuffer driver sets the pan_ctl
+ register (the register 0xa2) according to the pixel clock, the Xorg driver
+ doesn't set it.
+
+ I copied the code to set the pan_ctl register from the Linux kernel to the
+ Xorg driver, and most videomodes in Xorg work.
+
+ The pan_ctl register is required for both analog and digital output.
+
+ The pan_ctl register is saved and restored, this is required so that we
+ restore text-mode screen or Linux framebuffer correctly.
+
+ Signed-off-by: Dave Airlie <airlied(a)redhat.com>
+
commit f647727a2c1d4c2a9261c411cd3df71c3c9f0c06
Author: Dave Airlie <airlied(a)redhat.com>
Date: Thu Dec 5 12:09:27 2013 +1000
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xf86-video-mga-1.6.3/INSTALL new/xf86-video-mga-1.6.4/INSTALL
--- old/xf86-video-mga-1.6.3/INSTALL 2013-12-05 03:10:31.000000000 +0100
+++ new/xf86-video-mga-1.6.4/INSTALL 2015-02-19 22:43:24.000000000 +0100
@@ -0,0 +1,291 @@
+Installation Instructions
+*************************
+
+Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2004, 2005,
+2006, 2007, 2008 Free Software Foundation, Inc.
+
+ This file is free documentation; the Free Software Foundation gives
+unlimited permission to copy, distribute and modify it.
+
+Basic Installation
+==================
+
+ Briefly, the shell commands `./configure; make; make install' should
+configure, build, and install this package. The following
+more-detailed instructions are generic; see the `README' file for
+instructions specific to this package.
+
+ The `configure' shell script attempts to guess correct values for
+various system-dependent variables used during compilation. It uses
+those values to create a `Makefile' in each directory of the package.
+It may also create one or more `.h' files containing system-dependent
+definitions. Finally, it creates a shell script `config.status' that
+you can run in the future to recreate the current configuration, and a
+file `config.log' containing compiler output (useful mainly for
+debugging `configure').
+
+ It can also use an optional file (typically called `config.cache'
+and enabled with `--cache-file=config.cache' or simply `-C') that saves
+the results of its tests to speed up reconfiguring. Caching is
+disabled by default to prevent problems with accidental use of stale
+cache files.
+
+ If you need to do unusual things to compile the package, please try
+to figure out how `configure' could check whether to do them, and mail
+diffs or instructions to the address given in the `README' so they can
+be considered for the next release. If you are using the cache, and at
+some point `config.cache' contains results you don't want to keep, you
+may remove or edit it.
+
+ The file `configure.ac' (or `configure.in') is used to create
+`configure' by a program called `autoconf'. You need `configure.ac' if
+you want to change it or regenerate `configure' using a newer version
+of `autoconf'.
+
+The simplest way to compile this package is:
+
+ 1. `cd' to the directory containing the package's source code and type
+ `./configure' to configure the package for your system.
+
+ Running `configure' might take a while. While running, it prints
+ some messages telling which features it is checking for.
+
+ 2. Type `make' to compile the package.
+
+ 3. Optionally, type `make check' to run any self-tests that come with
+ the package.
+
+ 4. Type `make install' to install the programs and any data files and
+ documentation.
+
+ 5. You can remove the program binaries and object files from the
+ source code directory by typing `make clean'. To also remove the
+ files that `configure' created (so you can compile the package for
+ a different kind of computer), type `make distclean'. There is
+ also a `make maintainer-clean' target, but that is intended mainly
+ for the package's developers. If you use it, you may have to get
+ all sorts of other programs in order to regenerate files that came
+ with the distribution.
+
+ 6. Often, you can also type `make uninstall' to remove the installed
+ files again.
+
+Compilers and Options
+=====================
+
+ Some systems require unusual options for compilation or linking that
+the `configure' script does not know about. Run `./configure --help'
+for details on some of the pertinent environment variables.
+
+ You can give `configure' initial values for configuration parameters
+by setting variables in the command line or in the environment. Here
+is an example:
+
+ ./configure CC=c99 CFLAGS=-g LIBS=-lposix
+
+ *Note Defining Variables::, for more details.
+
+Compiling For Multiple Architectures
+====================================
+
+ You can compile the package for more than one kind of computer at the
+same time, by placing the object files for each architecture in their
+own directory. To do this, you can use GNU `make'. `cd' to the
+directory where you want the object files and executables to go and run
+the `configure' script. `configure' automatically checks for the
+source code in the directory that `configure' is in and in `..'.
+
+ With a non-GNU `make', it is safer to compile the package for one
+architecture at a time in the source code directory. After you have
+installed the package for one architecture, use `make distclean' before
+reconfiguring for another architecture.
+
+ On MacOS X 10.5 and later systems, you can create libraries and
+executables that work on multiple system types--known as "fat" or
+"universal" binaries--by specifying multiple `-arch' options to the
+compiler but only a single `-arch' option to the preprocessor. Like
+this:
+
+ ./configure CC="gcc -arch i386 -arch x86_64 -arch ppc -arch ppc64" \
+ CXX="g++ -arch i386 -arch x86_64 -arch ppc -arch ppc64" \
+ CPP="gcc -E" CXXCPP="g++ -E"
+
+ This is not guaranteed to produce working output in all cases, you
+may have to build one architecture at a time and combine the results
+using the `lipo' tool if you have problems.
+
+Installation Names
+==================
+
+ By default, `make install' installs the package's commands under
+`/usr/local/bin', include files under `/usr/local/include', etc. You
+can specify an installation prefix other than `/usr/local' by giving
+`configure' the option `--prefix=PREFIX'.
+
+ You can specify separate installation prefixes for
+architecture-specific files and architecture-independent files. If you
+pass the option `--exec-prefix=PREFIX' to `configure', the package uses
+PREFIX as the prefix for installing programs and libraries.
+Documentation and other data files still use the regular prefix.
+
+ In addition, if you use an unusual directory layout you can give
+options like `--bindir=DIR' to specify different values for particular
+kinds of files. Run `configure --help' for a list of the directories
+you can set and what kinds of files go in them.
+
+ If the package supports it, you can cause programs to be installed
+with an extra prefix or suffix on their names by giving `configure' the
+option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'.
+
+Optional Features
+=================
+
+ Some packages pay attention to `--enable-FEATURE' options to
+`configure', where FEATURE indicates an optional part of the package.
+They may also pay attention to `--with-PACKAGE' options, where PACKAGE
+is something like `gnu-as' or `x' (for the X Window System). The
+`README' should mention any `--enable-' and `--with-' options that the
+package recognizes.
+
+ For packages that use the X Window System, `configure' can usually
+find the X include and library files automatically, but if it doesn't,
+you can use the `configure' options `--x-includes=DIR' and
+`--x-libraries=DIR' to specify their locations.
+
+Particular systems
+==================
+
+ On HP-UX, the default C compiler is not ANSI C compatible. If GNU
+CC is not installed, it is recommended to use the following options in
+order to use an ANSI C compiler:
+
+ ./configure CC="cc -Ae"
+
+and if that doesn't work, install pre-built binaries of GCC for HP-UX.
+
+ On OSF/1 a.k.a. Tru64, some versions of the default C compiler cannot
+parse its `<wchar.h>' header file. The option `-nodtk' can be used as
+a workaround. If GNU CC is not installed, it is therefore recommended
+to try
+
+ ./configure CC="cc"
+
+and if that doesn't work, try
+
+ ./configure CC="cc -nodtk"
+
+Specifying the System Type
+==========================
+
+ There may be some features `configure' cannot figure out
+automatically, but needs to determine by the type of machine the package
+will run on. Usually, assuming the package is built to be run on the
+_same_ architectures, `configure' can figure that out, but if it prints
+a message saying it cannot guess the machine type, give it the
+`--build=TYPE' option. TYPE can either be a short name for the system
+type, such as `sun4', or a canonical name which has the form:
+
+ CPU-COMPANY-SYSTEM
+
+where SYSTEM can have one of these forms:
+
+ OS KERNEL-OS
+
+ See the file `config.sub' for the possible values of each field. If
+`config.sub' isn't included in this package, then this package doesn't
+need to know the machine type.
+
+ If you are _building_ compiler tools for cross-compiling, you should
+use the option `--target=TYPE' to select the type of system they will
+produce code for.
+
+ If you want to _use_ a cross compiler, that generates code for a
+platform different from the build platform, you should specify the
+"host" platform (i.e., that on which the generated programs will
+eventually be run) with `--host=TYPE'.
+
+Sharing Defaults
+================
+
+ If you want to set default values for `configure' scripts to share,
+you can create a site shell script called `config.site' that gives
+default values for variables like `CC', `cache_file', and `prefix'.
+`configure' looks for `PREFIX/share/config.site' if it exists, then
+`PREFIX/etc/config.site' if it exists. Or, you can set the
+`CONFIG_SITE' environment variable to the location of the site script.
+A warning: not all `configure' scripts look for a site script.
+
+Defining Variables
+==================
+
+ Variables not defined in a site shell script can be set in the
+environment passed to `configure'. However, some packages may run
+configure again during the build, and the customized values of these
+variables may be lost. In order to avoid this problem, you should set
+them in the `configure' command line, using `VAR=value'. For example:
+
+ ./configure CC=/usr/local2/bin/gcc
+
+causes the specified `gcc' to be used as the C compiler (unless it is
+overridden in the site shell script).
+
+Unfortunately, this technique does not work for `CONFIG_SHELL' due to
+an Autoconf bug. Until the bug is fixed you can use this workaround:
+
+ CONFIG_SHELL=/bin/bash /bin/bash ./configure CONFIG_SHELL=/bin/bash
+
+`configure' Invocation
+======================
+
+ `configure' recognizes the following options to control how it
+operates.
+
+`--help'
+`-h'
+ Print a summary of all of the options to `configure', and exit.
+
+`--help=short'
+`--help=recursive'
+ Print a summary of the options unique to this package's
+ `configure', and exit. The `short' variant lists options used
+ only in the top level, while the `recursive' variant lists options
+ also present in any nested packages.
+
+`--version'
+`-V'
+ Print the version of Autoconf used to generate the `configure'
+ script, and exit.
+
+`--cache-file=FILE'
+ Enable the cache: use and save the results of the tests in FILE,
+ traditionally `config.cache'. FILE defaults to `/dev/null' to
+ disable caching.
+
+`--config-cache'
+`-C'
+ Alias for `--cache-file=config.cache'.
+
+`--quiet'
+`--silent'
+`-q'
+ Do not print messages saying which checks are being made. To
+ suppress all normal output, redirect it to `/dev/null' (any error
+ messages will still be shown).
+
+`--srcdir=DIR'
+ Look for the package's source code in directory DIR. Usually
+ `configure' can determine that directory automatically.
+
+`--prefix=DIR'
+ Use DIR as the installation prefix. *Note Installation Names::
+ for more details, including other options available for fine-tuning
+ the installation locations.
+
+`--no-create'
+`-n'
+ Run the configure checks, but stop before creating any output
+ files.
+
+`configure' also accepts some other, not widely useful, options. Run
+`configure --help' for more details.
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xf86-video-mga-1.6.3/compile new/xf86-video-mga-1.6.4/compile
--- old/xf86-video-mga-1.6.3/compile 1970-01-01 01:00:00.000000000 +0100
+++ new/xf86-video-mga-1.6.4/compile 2015-02-19 22:43:18.000000000 +0100
@@ -0,0 +1,347 @@
+#! /bin/sh
+# Wrapper for compilers which do not understand '-c -o'.
+
+scriptversion=2012-10-14.11; # UTC
+
+# Copyright (C) 1999-2013 Free Software Foundation, Inc.
+# Written by Tom Tromey <tromey(a)cygnus.com>.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program that contains a
+# configuration script generated by Autoconf, you may include it under
+# the same distribution terms that you use for the rest of that program.
+
+# This file is maintained in Automake, please report
+# bugs to <bug-automake(a)gnu.org> or send patches to
+# <automake-patches(a)gnu.org>.
+
+nl='
+'
+
+# We need space, tab and new line, in precisely that order. Quoting is
+# there to prevent tools from complaining about whitespace usage.
+IFS=" "" $nl"
+
+file_conv=
+
+# func_file_conv build_file lazy
+# Convert a $build file to $host form and store it in $file
+# Currently only supports Windows hosts. If the determined conversion
+# type is listed in (the comma separated) LAZY, no conversion will
+# take place.
+func_file_conv ()
+{
+ file=$1
+ case $file in
+ / | /[!/]*) # absolute file, and not a UNC file
+ if test -z "$file_conv"; then
+ # lazily determine how to convert abs files
+ case `uname -s` in
+ MINGW*)
+ file_conv=mingw
+ ;;
+ CYGWIN*)
+ file_conv=cygwin
+ ;;
+ *)
+ file_conv=wine
+ ;;
+ esac
+ fi
+ case $file_conv/,$2, in
+ *,$file_conv,*)
+ ;;
+ mingw/*)
+ file=`cmd //C echo "$file " | sed -e 's/"\(.*\) " *$/\1/'`
+ ;;
+ cygwin/*)
+ file=`cygpath -m "$file" || echo "$file"`
+ ;;
+ wine/*)
+ file=`winepath -w "$file" || echo "$file"`
+ ;;
+ esac
+ ;;
+ esac
+}
+
+# func_cl_dashL linkdir
+# Make cl look for libraries in LINKDIR
+func_cl_dashL ()
+{
+ func_file_conv "$1"
+ if test -z "$lib_path"; then
+ lib_path=$file
+ else
+ lib_path="$lib_path;$file"
+ fi
+ linker_opts="$linker_opts -LIBPATH:$file"
+}
+
+# func_cl_dashl library
+# Do a library search-path lookup for cl
+func_cl_dashl ()
+{
+ lib=$1
+ found=no
+ save_IFS=$IFS
+ IFS=';'
+ for dir in $lib_path $LIB
+ do
+ IFS=$save_IFS
+ if $shared && test -f "$dir/$lib.dll.lib"; then
+ found=yes
+ lib=$dir/$lib.dll.lib
+ break
+ fi
+ if test -f "$dir/$lib.lib"; then
+ found=yes
+ lib=$dir/$lib.lib
+ break
+ fi
+ if test -f "$dir/lib$lib.a"; then
+ found=yes
+ lib=$dir/lib$lib.a
+ break
+ fi
+ done
+ IFS=$save_IFS
+
+ if test "$found" != yes; then
+ lib=$lib.lib
+ fi
+}
+
+# func_cl_wrapper cl arg...
+# Adjust compile command to suit cl
+func_cl_wrapper ()
+{
+ # Assume a capable shell
+ lib_path=
+ shared=:
+ linker_opts=
+ for arg
+ do
+ if test -n "$eat"; then
+ eat=
+ else
+ case $1 in
+ -o)
+ # configure might choose to run compile as 'compile cc -o foo foo.c'.
+ eat=1
+ case $2 in
+ *.o | *.[oO][bB][jJ])
+ func_file_conv "$2"
+ set x "$@" -Fo"$file"
+ shift
+ ;;
+ *)
+ func_file_conv "$2"
+ set x "$@" -Fe"$file"
+ shift
+ ;;
+ esac
+ ;;
+ -I)
+ eat=1
+ func_file_conv "$2" mingw
+ set x "$@" -I"$file"
+ shift
+ ;;
+ -I*)
+ func_file_conv "${1#-I}" mingw
+ set x "$@" -I"$file"
+ shift
+ ;;
+ -l)
+ eat=1
+ func_cl_dashl "$2"
+ set x "$@" "$lib"
+ shift
+ ;;
+ -l*)
+ func_cl_dashl "${1#-l}"
+ set x "$@" "$lib"
+ shift
+ ;;
+ -L)
+ eat=1
+ func_cl_dashL "$2"
+ ;;
+ -L*)
+ func_cl_dashL "${1#-L}"
+ ;;
+ -static)
+ shared=false
+ ;;
+ -Wl,*)
+ arg=${1#-Wl,}
+ save_ifs="$IFS"; IFS=','
+ for flag in $arg; do
+ IFS="$save_ifs"
+ linker_opts="$linker_opts $flag"
+ done
+ IFS="$save_ifs"
+ ;;
+ -Xlinker)
+ eat=1
+ linker_opts="$linker_opts $2"
+ ;;
+ -*)
+ set x "$@" "$1"
+ shift
+ ;;
+ *.cc | *.CC | *.cxx | *.CXX | *.[cC]++)
+ func_file_conv "$1"
+ set x "$@" -Tp"$file"
+ shift
+ ;;
+ *.c | *.cpp | *.CPP | *.lib | *.LIB | *.Lib | *.OBJ | *.obj | *.[oO])
+ func_file_conv "$1" mingw
+ set x "$@" "$file"
+ shift
+ ;;
+ *)
+ set x "$@" "$1"
+ shift
+ ;;
+ esac
+ fi
+ shift
+ done
+ if test -n "$linker_opts"; then
+ linker_opts="-link$linker_opts"
+ fi
+ exec "$@" $linker_opts
+ exit 1
+}
+
+eat=
+
+case $1 in
+ '')
+ echo "$0: No command. Try '$0 --help' for more information." 1>&2
+ exit 1;
+ ;;
+ -h | --h*)
+ cat <<\EOF
+Usage: compile [--help] [--version] PROGRAM [ARGS]
+
+Wrapper for compilers which do not understand '-c -o'.
+Remove '-o dest.o' from ARGS, run PROGRAM with the remaining
+arguments, and rename the output as expected.
+
+If you are trying to build a whole package this is not the
+right script to run: please start by reading the file 'INSTALL'.
+
+Report bugs to <bug-automake(a)gnu.org>.
+EOF
+ exit $?
+ ;;
+ -v | --v*)
+ echo "compile $scriptversion"
+ exit $?
+ ;;
+ cl | *[/\\]cl | cl.exe | *[/\\]cl.exe )
+ func_cl_wrapper "$@" # Doesn't return...
+ ;;
+esac
+
+ofile=
+cfile=
+
+for arg
+do
+ if test -n "$eat"; then
+ eat=
+ else
+ case $1 in
+ -o)
+ # configure might choose to run compile as 'compile cc -o foo foo.c'.
+ # So we strip '-o arg' only if arg is an object.
+ eat=1
+ case $2 in
+ *.o | *.obj)
+ ofile=$2
+ ;;
+ *)
+ set x "$@" -o "$2"
+ shift
+ ;;
+ esac
+ ;;
+ *.c)
+ cfile=$1
+ set x "$@" "$1"
+ shift
+ ;;
+ *)
+ set x "$@" "$1"
+ shift
+ ;;
+ esac
+ fi
+ shift
+done
+
+if test -z "$ofile" || test -z "$cfile"; then
+ # If no '-o' option was seen then we might have been invoked from a
+ # pattern rule where we don't need one. That is ok -- this is a
+ # normal compilation that the losing compiler can handle. If no
+ # '.c' file was seen then we are probably linking. That is also
+ # ok.
+ exec "$@"
+fi
+
+# Name of file we expect compiler to create.
+cofile=`echo "$cfile" | sed 's|^.*[\\/]||; s|^[a-zA-Z]:||; s/\.c$/.o/'`
+
+# Create the lock directory.
+# Note: use '[/\\:.-]' here to ensure that we don't use the same name
+# that we are using for the .o file. Also, base the name on the expected
+# object file name, since that is what matters with a parallel build.
+lockdir=`echo "$cofile" | sed -e 's|[/\\:.-]|_|g'`.d
+while true; do
+ if mkdir "$lockdir" >/dev/null 2>&1; then
+ break
+ fi
+ sleep 1
+done
+# FIXME: race condition here if user kills between mkdir and trap.
+trap "rmdir '$lockdir'; exit 1" 1 2 15
+
+# Run the compile.
+"$@"
+ret=$?
+
+if test -f "$cofile"; then
+ test "$cofile" = "$ofile" || mv "$cofile" "$ofile"
+elif test -f "${cofile}bj"; then
+ test "${cofile}bj" = "$ofile" || mv "${cofile}bj" "$ofile"
+fi
+
+rmdir "$lockdir"
+exit $ret
+
+# Local Variables:
+# mode: shell-script
+# sh-indentation: 2
+# eval: (add-hook 'write-file-hooks 'time-stamp)
+# time-stamp-start: "scriptversion="
+# time-stamp-format: "%:y-%02m-%02d.%02H"
+# time-stamp-time-zone: "UTC"
+# time-stamp-end: "; # UTC"
+# End:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xf86-video-mga-1.6.3/config.h.in new/xf86-video-mga-1.6.4/config.h.in
--- old/xf86-video-mga-1.6.3/config.h.in 2013-12-05 03:10:31.000000000 +0100
+++ new/xf86-video-mga-1.6.4/config.h.in 2015-02-19 22:43:18.000000000 +0100
@@ -38,8 +38,7 @@
/* Have xf86ModeBandwidth */
#undef HAVE_XF86MODEBANDWIDTH
-/* Define to the sub-directory in which libtool stores uninstalled libraries.
- */
+/* Define to the sub-directory where libtool stores uninstalled libraries. */
#undef LT_OBJDIR
/* Enable DRI driver support */
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xf86-video-mga-1.6.3/configure.ac new/xf86-video-mga-1.6.4/configure.ac
--- old/xf86-video-mga-1.6.3/configure.ac 2013-12-05 03:08:37.000000000 +0100
+++ new/xf86-video-mga-1.6.4/configure.ac 2015-02-19 22:38:57.000000000 +0100
@@ -23,7 +23,7 @@
# Initialize Autoconf
AC_PREREQ([2.60])
AC_INIT([xf86-video-mga],
- [1.6.3],
+ [1.6.4],
[https://bugs.freedesktop.org/enter_bug.cgi?product=xorg]
[xf86-video-mga])
AC_CONFIG_SRCDIR([Makefile.am])
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xf86-video-mga-1.6.3/man/mga.man new/xf86-video-mga-1.6.4/man/mga.man
--- old/xf86-video-mga-1.6.3/man/mga.man 2012-04-23 11:37:14.000000000 +0200
+++ new/xf86-video-mga-1.6.4/man/mga.man 2015-02-19 20:51:35.000000000 +0100
@@ -22,11 +22,7 @@
on G200 and newer systems, with either
.B TexturedVideo
or video overlay. The second head of dual\-head cards is supported for the
-G450 and G550. Support for the second head on G400 cards requires a
-binary\-only "mga_hal" module that is available from Matrox
-<http://www.matrox.com>, and may be on the CD supplied with the card. That
-module also provides various other enhancements, and may be necessary to
-use the DVI (digital) output on the G550 (and other cards).
+G450 and G550.
.SH "SUPPORTED HARDWARE"
The
.B mga
@@ -117,10 +113,6 @@
possibly unstable. The default is
.B XAA.
.TP
-.BI "Option \*qNoHal\*q \*q" boolean \*q
-Disable or enable loading the "mga_hal" module. Default: the module is
-loaded when available and when using hardware that it supports.
-.TP
.BI "Option \*qOverclockMem\*q"
Set clocks to values used by some commercial X Servers (G100, G200 and G400
only). Default: off.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xf86-video-mga-1.6.3/missing new/xf86-video-mga-1.6.4/missing
--- old/xf86-video-mga-1.6.3/missing 2013-12-05 02:14:29.000000000 +0100
+++ new/xf86-video-mga-1.6.4/missing 2015-02-19 22:43:18.000000000 +0100
@@ -1,10 +1,10 @@
#! /bin/sh
-# Common stub for a few missing GNU programs while installing.
+# Common wrapper for a few potentially missing GNU programs.
-scriptversion=2012-01-06.18; # UTC
+scriptversion=2013-10-28.13; # UTC
-# Copyright (C) 1996-2012 Free Software Foundation, Inc.
-# Originally by Fran,cois Pinard <pinard(a)iro.umontreal.ca>, 1996.
+# Copyright (C) 1996-2013 Free Software Foundation, Inc.
+# Originally written by Fran,cois Pinard <pinard(a)iro.umontreal.ca>, 1996.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -29,61 +29,33 @@
exit 1
fi
-run=:
-sed_output='s/.* --output[ =]\([^ ]*\).*/\1/p'
-sed_minuso='s/.* -o \([^ ]*\).*/\1/p'
-
-# In the cases where this matters, 'missing' is being run in the
-# srcdir already.
-if test -f configure.ac; then
- configure_ac=configure.ac
-else
- configure_ac=configure.in
-fi
+case $1 in
-msg="missing on your system"
+ --is-lightweight)
+ # Used by our autoconf macros to check whether the available missing
+ # script is modern enough.
+ exit 0
+ ;;
-case $1 in
---run)
- # Try to run requested program, and just exit if it succeeds.
- run=
- shift
- "$@" && exit 0
- # Exit code 63 means version mismatch. This often happens
- # when the user try to use an ancient version of a tool on
- # a file that requires a minimum version. In this case we
- # we should proceed has if the program had been absent, or
- # if --run hadn't been passed.
- if test $? = 63; then
- run=:
- msg="probably too old"
- fi
- ;;
+ --run)
+ # Back-compat with the calling convention used by older automake.
+ shift
+ ;;
-h|--h|--he|--hel|--help)
echo "\
$0 [OPTION]... PROGRAM [ARGUMENT]...
-Handle 'PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an
-error status if there is no known handling for PROGRAM.
+Run 'PROGRAM [ARGUMENT]...', returning a proper advice when this fails due
+to PROGRAM being missing or too old.
Options:
-h, --help display this help and exit
-v, --version output version information and exit
- --run try to run the given command, and emulate it if it fails
Supported PROGRAM values:
- aclocal touch file 'aclocal.m4'
- autoconf touch file 'configure'
- autoheader touch file 'config.h.in'
- autom4te touch the output file, or create a stub one
- automake touch all 'Makefile.in' files
- bison create 'y.tab.[ch]', if possible, from existing .[ch]
- flex create 'lex.yy.c', if possible, from existing .c
- help2man touch the output file
- lex create 'lex.yy.c', if possible, from existing .c
- makeinfo touch the output file
- yacc create 'y.tab.[ch]', if possible, from existing .[ch]
+ aclocal autoconf autoheader autom4te automake makeinfo
+ bison yacc flex lex help2man
Version suffixes to PROGRAM as well as the prefixes 'gnu-', 'gnu', and
'g' are ignored when checking the name.
@@ -98,228 +70,141 @@
;;
-*)
- echo 1>&2 "$0: Unknown '$1' option"
+ echo 1>&2 "$0: unknown '$1' option"
echo 1>&2 "Try '$0 --help' for more information"
exit 1
;;
esac
-# normalize program name to check for.
-program=`echo "$1" | sed '
- s/^gnu-//; t
- s/^gnu//; t
- s/^g//; t'`
-
-# Now exit if we have it, but it failed. Also exit now if we
-# don't have it and --version was passed (most likely to detect
-# the program). This is about non-GNU programs, so use $1 not
-# $program.
-case $1 in
- lex*|yacc*)
- # Not GNU programs, they don't have --version.
- ;;
+# Run the given program, remember its exit status.
+"$@"; st=$?
- *)
- if test -z "$run" && ($1 --version) > /dev/null 2>&1; then
- # We have it, but it failed.
- exit 1
- elif test "x$2" = "x--version" || test "x$2" = "x--help"; then
- # Could not run --version or --help. This is probably someone
- # running '$TOOL --version' or '$TOOL --help' to check whether
- # $TOOL exists and not knowing $TOOL uses missing.
- exit 1
- fi
- ;;
-esac
-
-# If it does not exist, or fails to run (possibly an outdated version),
-# try to emulate it.
-case $program in
- aclocal*)
- echo 1>&2 "\
-WARNING: '$1' is $msg. You should only need it if
- you modified 'acinclude.m4' or '${configure_ac}'. You might want
- to install the Automake and Perl packages. Grab them from
- any GNU archive site."
- touch aclocal.m4
- ;;
-
- autoconf*)
- echo 1>&2 "\
-WARNING: '$1' is $msg. You should only need it if
- you modified '${configure_ac}'. You might want to install the
- Autoconf and GNU m4 packages. Grab them from any GNU
- archive site."
- touch configure
- ;;
-
- autoheader*)
- echo 1>&2 "\
-WARNING: '$1' is $msg. You should only need it if
- you modified 'acconfig.h' or '${configure_ac}'. You might want
- to install the Autoconf and GNU m4 packages. Grab them
- from any GNU archive site."
- files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${configure_ac}`
- test -z "$files" && files="config.h"
- touch_files=
- for f in $files; do
- case $f in
- *:*) touch_files="$touch_files "`echo "$f" |
- sed -e 's/^[^:]*://' -e 's/:.*//'`;;
- *) touch_files="$touch_files $f.in";;
- esac
- done
- touch $touch_files
- ;;
+# If it succeeded, we are done.
+test $st -eq 0 && exit 0
- automake*)
- echo 1>&2 "\
-WARNING: '$1' is $msg. You should only need it if
- you modified 'Makefile.am', 'acinclude.m4' or '${configure_ac}'.
- You might want to install the Automake and Perl packages.
- Grab them from any GNU archive site."
- find . -type f -name Makefile.am -print |
- sed 's/\.am$/.in/' |
- while read f; do touch "$f"; done
- ;;
-
- autom4te*)
- echo 1>&2 "\
-WARNING: '$1' is needed, but is $msg.
- You might have modified some files without having the
- proper tools for further handling them.
- You can get '$1' as part of Autoconf from any GNU
- archive site."
-
- file=`echo "$*" | sed -n "$sed_output"`
- test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"`
- if test -f "$file"; then
- touch $file
- else
- test -z "$file" || exec >$file
- echo "#! /bin/sh"
- echo "# Created by GNU Automake missing as a replacement of"
- echo "# $ $@"
- echo "exit 0"
- chmod +x $file
- exit 1
- fi
- ;;
-
- bison*|yacc*)
- echo 1>&2 "\
-WARNING: '$1' $msg. You should only need it if
- you modified a '.y' file. You may need the Bison package
- in order for those modifications to take effect. You can get
- Bison from any GNU archive site."
- rm -f y.tab.c y.tab.h
- if test $# -ne 1; then
- eval LASTARG=\${$#}
- case $LASTARG in
- *.y)
- SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'`
- if test -f "$SRCFILE"; then
- cp "$SRCFILE" y.tab.c
- fi
- SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'`
- if test -f "$SRCFILE"; then
- cp "$SRCFILE" y.tab.h
- fi
- ;;
- esac
- fi
- if test ! -f y.tab.h; then
- echo >y.tab.h
- fi
- if test ! -f y.tab.c; then
- echo 'main() { return 0; }' >y.tab.c
- fi
- ;;
-
- lex*|flex*)
- echo 1>&2 "\
-WARNING: '$1' is $msg. You should only need it if
- you modified a '.l' file. You may need the Flex package
- in order for those modifications to take effect. You can get
- Flex from any GNU archive site."
- rm -f lex.yy.c
- if test $# -ne 1; then
- eval LASTARG=\${$#}
- case $LASTARG in
- *.l)
- SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'`
- if test -f "$SRCFILE"; then
- cp "$SRCFILE" lex.yy.c
- fi
- ;;
- esac
- fi
- if test ! -f lex.yy.c; then
- echo 'main() { return 0; }' >lex.yy.c
- fi
- ;;
-
- help2man*)
- echo 1>&2 "\
-WARNING: '$1' is $msg. You should only need it if
- you modified a dependency of a manual page. You may need the
- Help2man package in order for those modifications to take
- effect. You can get Help2man from any GNU archive site."
-
- file=`echo "$*" | sed -n "$sed_output"`
- test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"`
- if test -f "$file"; then
- touch $file
- else
- test -z "$file" || exec >$file
- echo ".ab help2man is required to generate this page"
- exit $?
- fi
- ;;
-
- makeinfo*)
- echo 1>&2 "\
-WARNING: '$1' is $msg. You should only need it if
- you modified a '.texi' or '.texinfo' file, or any other file
- indirectly affecting the aspect of the manual. The spurious
- call might also be the consequence of using a buggy 'make' (AIX,
- DU, IRIX). You might want to install the Texinfo package or
- the GNU make package. Grab either from any GNU archive site."
- # The file to touch is that specified with -o ...
- file=`echo "$*" | sed -n "$sed_output"`
- test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"`
- if test -z "$file"; then
- # ... or it is the one specified with @setfilename ...
- infile=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'`
- file=`sed -n '
- /^@setfilename/{
- s/.* \([^ ]*\) *$/\1/
- p
- q
- }' $infile`
- # ... or it is derived from the source name (dir/f.texi becomes f.info)
- test -z "$file" && file=`echo "$infile" | sed 's,.*/,,;s,.[^.]*$,,'`.info
- fi
- # If the file does not exist, the user really needs makeinfo;
- # let's fail without touching anything.
- test -f $file || exit 1
- touch $file
- ;;
-
- *)
- echo 1>&2 "\
-WARNING: '$1' is needed, and is $msg.
- You might have modified some files without having the
- proper tools for further handling them. Check the 'README' file,
- it often tells you about the needed prerequisites for installing
- this package. You may also peek at any GNU archive site, in case
- some other package would contain this missing '$1' program."
- exit 1
- ;;
-esac
+# Also exit now if we it failed (or wasn't found), and '--version' was
+# passed; such an option is passed most likely to detect whether the
+# program is present and works.
+case $2 in --version|--help) exit $st;; esac
+
+# Exit code 63 means version mismatch. This often happens when the user
+# tries to use an ancient version of a tool on a file that requires a
+# minimum version.
+if test $st -eq 63; then
+ msg="probably too old"
+elif test $st -eq 127; then
+ # Program was missing.
+ msg="missing on your system"
+else
+ # Program was found and executed, but failed. Give up.
+ exit $st
+fi
-exit 0
+perl_URL=http://www.perl.org/
+flex_URL=http://flex.sourceforge.net/
+gnu_software_URL=http://www.gnu.org/software
+
+program_details ()
+{
+ case $1 in
+ aclocal|automake)
+ echo "The '$1' program is part of the GNU Automake package:"
+ echo "<$gnu_software_URL/automake>"
+ echo "It also requires GNU Autoconf, GNU m4 and Perl in order to run:"
+ echo "<$gnu_software_URL/autoconf>"
+ echo "<$gnu_software_URL/m4/>"
+ echo "<$perl_URL>"
+ ;;
+ autoconf|autom4te|autoheader)
+ echo "The '$1' program is part of the GNU Autoconf package:"
+ echo "<$gnu_software_URL/autoconf/>"
+ echo "It also requires GNU m4 and Perl in order to run:"
+ echo "<$gnu_software_URL/m4/>"
+ echo "<$perl_URL>"
+ ;;
+ esac
+}
+
+give_advice ()
+{
+ # Normalize program name to check for.
+ normalized_program=`echo "$1" | sed '
+ s/^gnu-//; t
+ s/^gnu//; t
+ s/^g//; t'`
+
+ printf '%s\n' "'$1' is $msg."
+
+ configure_deps="'configure.ac' or m4 files included by 'configure.ac'"
+ case $normalized_program in
+ autoconf*)
+ echo "You should only need it if you modified 'configure.ac',"
+ echo "or m4 files included by it."
+ program_details 'autoconf'
+ ;;
+ autoheader*)
+ echo "You should only need it if you modified 'acconfig.h' or"
+ echo "$configure_deps."
+ program_details 'autoheader'
+ ;;
+ automake*)
+ echo "You should only need it if you modified 'Makefile.am' or"
+ echo "$configure_deps."
+ program_details 'automake'
+ ;;
+ aclocal*)
+ echo "You should only need it if you modified 'acinclude.m4' or"
+ echo "$configure_deps."
+ program_details 'aclocal'
+ ;;
+ autom4te*)
+ echo "You might have modified some maintainer files that require"
+ echo "the 'autom4te' program to be rebuilt."
+ program_details 'autom4te'
+ ;;
+ bison*|yacc*)
+ echo "You should only need it if you modified a '.y' file."
+ echo "You may want to install the GNU Bison package:"
+ echo "<$gnu_software_URL/bison/>"
+ ;;
+ lex*|flex*)
+ echo "You should only need it if you modified a '.l' file."
+ echo "You may want to install the Fast Lexical Analyzer package:"
+ echo "<$flex_URL>"
+ ;;
+ help2man*)
+ echo "You should only need it if you modified a dependency" \
+ "of a man page."
+ echo "You may want to install the GNU Help2man package:"
+ echo "<$gnu_software_URL/help2man/>"
+ ;;
+ makeinfo*)
+ echo "You should only need it if you modified a '.texi' file, or"
+ echo "any other file indirectly affecting the aspect of the manual."
+ echo "You might want to install the Texinfo package:"
+ echo "<$gnu_software_URL/texinfo/>"
+ echo "The spurious makeinfo call might also be the consequence of"
+ echo "using a buggy 'make' (AIX, DU, IRIX), in which case you might"
+ echo "want to install GNU make:"
+ echo "<$gnu_software_URL/make/>"
+ ;;
+ *)
+ echo "You might have modified some files without having the proper"
+ echo "tools for further handling them. Check the 'README' file, it"
+ echo "often tells you about the needed prerequisites for installing"
+ echo "this package. You may also peek at any GNU archive site, in"
+ echo "case some other package contains this missing '$1' program."
+ ;;
+ esac
+}
+
+give_advice "$1" | sed -e '1s/^/WARNING: /' \
+ -e '2,$s/^/ /' >&2
+
+# Propagate the correct exit status (expected to be 127 for a program
+# not found, 63 for a program that failed due to version mismatch).
+exit $st
# Local variables:
# eval: (add-hook 'write-file-hooks 'time-stamp)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xf86-video-mga-1.6.3/src/mga.h new/xf86-video-mga-1.6.4/src/mga.h
--- old/xf86-video-mga-1.6.3/src/mga.h 2013-12-05 02:16:12.000000000 +0100
+++ new/xf86-video-mga-1.6.4/src/mga.h 2015-02-19 20:51:35.000000000 +0100
@@ -218,6 +218,7 @@
CARD32 Option2;
CARD32 Option3;
long Clock;
+ unsigned char Pan_Ctl;
Bool PIXPLLCSaved;
unsigned char PllM;
unsigned char PllN;
@@ -313,16 +314,6 @@
#define ISTV1(p) (p->pMgaHwInfo && ((p->pMgaHwInfo->ulCapsFirstOutput) & MGAHWINFOCAPS_OUTPUT_TV))
#define ISTV2(p) (p->pMgaHwInfo && ((p->pMgaHwInfo->ulCapsSecondOutput) & MGAHWINFOCAPS_OUTPUT_TV))
-#ifdef DISABLE_VGA_IO
-typedef struct mgaSave {
-#ifdef XSERVER_LIBPCIACCESS
- struct pci_device * pvp;
-#else
- pciVideoPtr pvp;
-#endif
- Bool enable;
-} MgaSave, *MgaSavePtr;
-#endif
typedef enum {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xf86-video-mga-1.6.3/src/mga_dacG.c new/xf86-video-mga-1.6.4/src/mga_dacG.c
--- old/xf86-video-mga-1.6.3/src/mga_dacG.c 2012-07-02 13:07:53.000000000 +0200
+++ new/xf86-video-mga-1.6.4/src/mga_dacG.c 2015-02-19 20:51:35.000000000 +0100
@@ -849,6 +849,43 @@
if(MGAISGx50(pMga)) {
pReg->Clock = f_out;
+ if (pMga->Chipset == PCI_CHIP_MGAG550) {
+ if (f_out < 45000) {
+ pReg->Pan_Ctl = 0x00;
+ } else if (f_out < 55000) {
+ pReg->Pan_Ctl = 0x08;
+ } else if (f_out < 70000) {
+ pReg->Pan_Ctl = 0x10;
+ } else if (f_out < 85000) {
+ pReg->Pan_Ctl = 0x18;
+ } else if (f_out < 100000) {
+ pReg->Pan_Ctl = 0x20;
+ } else if (f_out < 115000) {
+ pReg->Pan_Ctl = 0x28;
+ } else if (f_out < 125000) {
+ pReg->Pan_Ctl = 0x30;
+ } else {
+ pReg->Pan_Ctl = 0x38;
+ }
+ } else {
+ if (f_out < 45000) {
+ pReg->Pan_Ctl = 0x00;
+ } else if (f_out < 65000) {
+ pReg->Pan_Ctl = 0x08;
+ } else if (f_out < 85000) {
+ pReg->Pan_Ctl = 0x10;
+ } else if (f_out < 105000) {
+ pReg->Pan_Ctl = 0x18;
+ } else if (f_out < 135000) {
+ pReg->Pan_Ctl = 0x20;
+ } else if (f_out < 160000) {
+ pReg->Pan_Ctl = 0x28;
+ } else if (f_out < 175000) {
+ pReg->Pan_Ctl = 0x30;
+ } else {
+ pReg->Pan_Ctl = 0x38;
+ }
+ }
return;
}
@@ -1395,6 +1432,7 @@
* To test this we check for Clock == 0.
*/
MGAG450SetPLLFreq(pScrn, mgaReg->Clock);
+ outMGAdac(MGA1064_PAN_CTL, mgaReg->Pan_Ctl);
mgaReg->PIXPLLCSaved = FALSE;
}
@@ -1583,6 +1621,7 @@
* VESA modes (s.o.). MATROX: hint, hint.
*/
if (MGAISGx50(pMga)) {
+ mgaReg->Pan_Ctl = inMGAdac(MGA1064_PAN_CTL);
mgaReg->Clock = MGAG450SavePLLFreq(pScrn);
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xf86-video-mga-1.6.3/src/mga_dri.c new/xf86-video-mga-1.6.4/src/mga_dri.c
--- old/xf86-video-mga-1.6.3/src/mga_dri.c 2013-12-05 02:15:53.000000000 +0100
+++ new/xf86-video-mga-1.6.4/src/mga_dri.c 2015-02-19 20:51:35.000000000 +0100
@@ -1165,9 +1165,6 @@
pDRIInfo->frameBufferStride = pScrn->displayWidth*(pScrn->bitsPerPixel/8);
pDRIInfo->ddxDrawableTableEntry = MGA_MAX_DRAWABLES;
- pDRIInfo->wrap.ValidateTree = NULL;
- pDRIInfo->wrap.PostValidateTree = NULL;
-
pDRIInfo->createDummyCtx = TRUE;
pDRIInfo->createDummyCtxPriv = FALSE;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xf86-video-mga-1.6.3/src/mga_driver.c new/xf86-video-mga-1.6.4/src/mga_driver.c
--- old/xf86-video-mga-1.6.3/src/mga_driver.c 2013-12-05 02:15:53.000000000 +0100
+++ new/xf86-video-mga-1.6.4/src/mga_driver.c 2015-02-19 20:51:35.000000000 +0100
@@ -123,12 +123,6 @@
static Bool MGASaveScreen(ScreenPtr pScreen, int mode);
static Bool MGASaveScreenCrtc2(ScreenPtr pScreen, int mode);
-/* This shouldn't be needed since RAC will disable all I/O for MGA cards. */
-#ifdef DISABLE_VGA_IO
-static void VgaIOSave(int i, void *arg);
-static void VgaIORestore(int i, void *arg);
-#endif
-
/* Optional functions */
static void MGAFreeScreen(FREE_SCREEN_ARGS_DECL);
static ModeStatus MGAValidMode(SCRN_ARG_TYPE arg, DisplayModePtr mode,
@@ -667,13 +661,6 @@
ScrnInfoPtr pScrn = NULL;
EntityInfoPtr pEnt;
MGAPtr pMga;
-#ifdef DISABLE_VGA_IO
- MgaSavePtr smga;
-
-
- smga = xnfalloc(sizeof(MgaSave));
- smga->pvp = dev;
-#endif
if (pci_device_has_kernel_driver(dev)) {
/* If it's a G200 server chip, it's probably on KMS, so bail; if not,
@@ -697,11 +684,7 @@
/* Allocate a ScrnInfoRec and claim the slot */
pScrn = xf86ConfigPciEntity(pScrn, 0, entity_num, MGAPciChipsets,
NULL,
-#ifndef DISABLE_VGA_IO
NULL, NULL, NULL, NULL
-#else
- VgaIOSave, VgaIOSave, VgaIORestore, smga
-#endif
);
if (pScrn != NULL) {
/* Fill in what we can of the ScrnInfoRec */
@@ -838,22 +821,11 @@
ScrnInfoPtr pScrn = NULL;
EntityInfoPtr pEnt;
int attrib_no;
-#ifdef DISABLE_VGA_IO
- MgaSavePtr smga;
-#endif
/* Allocate a ScrnInfoRec and claim the slot */
-#ifndef DISABLE_VGA_IO
pScrn = xf86ConfigPciEntity(pScrn, 0,usedChips[i],
MGAPciChipsets, NULL, NULL,
NULL, NULL, NULL);
-#else
- smga = xnfalloc(sizeof(MgaSave));
- smga->pvp = xf86GetPciInfoForEntity(usedChips[i]);
- pScrn = xf86ConfigPciEntity(pScrn, 0,usedChips[i],
- MGAPciChipsets, NULL,VgaIOSave,
- VgaIOSave, VgaIORestore,smga);
-#endif
if (pScrn != NULL) {
MGAPtr pMga;
@@ -1389,90 +1361,6 @@
return MonInfo;
}
-#ifdef DISABLE_VGA_IO
-static void
-VgaIOSave(int i, void *arg)
-{
- MgaSavePtr sMga = arg;
-#ifndef XSERVER_LIBPCIACCESS
- PCITAG tag = pciTag(sMga->pvp->bus,sMga->pvp->device,sMga->pvp->func);
-#endif
- uint32_t temp;
-
-#ifdef DEBUG
- ErrorF("mga: VgaIOSave: %d:%d:%d\n", sMga->pvp->bus, sMga->pvp->device,
- sMga->pvp->func);
-#endif
-#ifdef XSERVER_LIBPCIACCESS
- pci_device_cfg_read_u32(pMga->PciInfo, & temp, PCI_OPTION_REG);
-#else
- temp = pciReadLong(tag, PCI_OPTION_REG);
-#endif
- sMga->enable = (temp & 0x100) != 0;
-}
-
-static void
-VgaIORestore(int i, void *arg)
-{
- MgaSavePtr sMga = arg;
-#ifndef XSERVER_LIBPCIACCESS
- PCITAG tag = pciTag(sMga->pvp->bus,sMga->pvp->device,sMga->pvp->func);
-#endif
-
-#ifdef DEBUG
- ErrorF("mga: VgaIORestore: %d:%d:%d\n", sMga->pvp->bus, sMga->pvp->device,
- sMga->pvp->func);
-#endif
-#ifdef XSERVER_LIBPCIACCESS
- pci_device_cfg_write_bits(pMga->PciInfo, 0x00000100, sMga->enable,
- PCI_OPTION_REG);
-#else
- pciSetBitsLong(tag, PCI_OPTION_REG, 0x100, sMga->enable ? 0x100 : 0x000);
-#endif
-}
-
-static void
-VgaIODisable(void *arg)
-{
- MGAPtr pMga = arg;
-
-#ifdef DEBUG
- ErrorF("mga: VgaIODisable: %d:%d:%d, %s, xf86ResAccessEnter is %s\n",
- pMga->PciInfo->bus, pMga->PciInfo->device, pMga->PciInfo->func,
- pMga->Primary ? "primary" : "secondary",
- BOOLTOSTRING(xf86ResAccessEnter));
-#endif
- /* Turn off the vgaioen bit. */
-#ifdef XSERVER_LIBPCIACCESS
- pci_device_cfg_write_bits(pMga->PciInfo, 0x00000100, 0x00000000,
- PCI_OPTION_REG);
-#else
- pciSetBitsLong(pMga->PciTag, PCI_OPTION_REG, 0x100, 0x000);
-#endif
-}
-
-static void
-VgaIOEnable(void *arg)
-{
- MGAPtr pMga = arg;
-
-#ifdef DEBUG
- ErrorF("mga: VgaIOEnable: %d:%d:%d, %s, xf86ResAccessEnter is %s\n",
- pMga->PciInfo->bus, pMga->PciInfo->device, pMga->PciInfo->func,
- pMga->Primary ? "primary" : "secondary",
- BOOLTOSTRING(xf86ResAccessEnter));
-#endif
- /* Turn on the vgaioen bit. */
- if (pMga->Primary) {
-#ifdef XSERVER_LIBPCIACCESS
- pci_device_cfg_write_bits(pMga->PciInfo, 0x00000100, 0x00000100,
- PCI_OPTION_REG);
-#else
- pciSetBitsLong(pMga->PciTag, PCI_OPTION_REG, 0x100, 0x100);
-#endif
- }
-}
-#endif /* DISABLE_VGA_IO */
void
MGAProbeDDC(ScrnInfoPtr pScrn, int index)
@@ -1587,20 +1475,10 @@
pMga->Primary = xf86IsPrimaryPci(pMga->PciInfo);
-#ifndef DISABLE_VGA_IO
#ifndef XSERVER_LIBPCIACCESS
xf86SetOperatingState(resVgaIo, pMga->pEnt->index, ResUnusedOpr);
xf86SetOperatingState(resVgaMem, pMga->pEnt->index, ResDisableOpr);
#endif
-#else
- /*
- * Set our own access functions, which control the vgaioen bit.
- */
- pMga->Access.AccessDisable = VgaIODisable;
- pMga->Access.AccessEnable = VgaIOEnable;
- pMga->Access.arg = pMga;
- xf86SetAccessFuncs(pMga->pEnt, &pMga->Access, &pMga->Access);
-#endif
/* Set pScrn->monitor */
pScrn->monitor = pScrn->confScreen->monitor;
@@ -3618,7 +3496,7 @@
MGAAdjustFrame(ADJUST_FRAME_ARGS_DECL)
{
SCRN_INFO_PTR(arg);
- int Base, tmp, count;
+ int Base, tmp, count, last_vcount;
MGAFBLayout *pLayout;
MGAPtr pMga;
@@ -3648,8 +3526,14 @@
while (INREG8(0x1FDA) & 0x08);
while (!(INREG8(0x1FDA) & 0x08));
/* wait until we're past the start (fixseg.c in the DDK) */
- count = INREG(MGAREG_VCOUNT) + 2;
- while(INREG(MGAREG_VCOUNT) < count);
+ last_vcount = INREG(MGAREG_VCOUNT);
+ count = last_vcount + 2;
+ while (1) {
+ int vcount = INREG(MGAREG_VCOUNT);
+ if (vcount >= count) break;
+ if (vcount < last_vcount) break;
+ last_vcount = vcount;
+ }
OUTREG16(MGAREG_CRTC_INDEX, (Base & 0x00FF00) | 0x0C);
OUTREG16(MGAREG_CRTC_INDEX, ((Base & 0x0000FF) << 8) | 0x0D);
--
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 hmconv for openSUSE:Factory checked in at 2015-02-24 13:02:26
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/hmconv (Old)
and /work/SRC/openSUSE:Factory/.hmconv.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "hmconv"
Changes:
--------
--- /work/SRC/openSUSE:Factory/hmconv/hmconv.changes 2011-10-06 16:03:54.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.hmconv.new/hmconv.changes 2015-02-24 13:06:54.000000000 +0100
@@ -1,0 +2,5 @@
+Wed Oct 8 11:30:42 UTC 2014 - jengelh(a)inai.de
+
+- Remove old specfile tags and sections
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ hmconv.spec ++++++
--- /var/tmp/diff_new_pack.6I9XIY/_old 2015-02-24 13:06:55.000000000 +0100
+++ /var/tmp/diff_new_pack.6I9XIY/_new 2015-02-24 13:06:55.000000000 +0100
@@ -1,7 +1,7 @@
#
# spec file for package hmconv
#
-# Copyright (c) 2011 SUSE LINUX Products GmbH, Nuernberg, Germany.
+# Copyright (c) 2014 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -15,16 +15,14 @@
# Please submit bugfixes or comments via http://bugs.opensuse.org/
#
-# norootforbuild
-
Name: hmconv
-License: SUSE-Public-Domain
-Group: System/I18n/Korean
-AutoReqProv: on
Version: 1.0pl5
-Release: 650
+Release: 0
Summary: HangulCode Conversion Program
+License: SUSE-Public-Domain
+Group: System/I18n/Korean
+Url: http://ftp.kaist.ac.kr/hangul/code/hmconv/
Source0: hmconv1.0pl3.tar.gz
Source1: hmconv.c
Patch0: hmconv.patch
@@ -51,9 +49,6 @@
mkdir -p %{buildroot}%{_prefix}/bin
install -m 755 hmconv %{buildroot}%{_prefix}/bin
-%clean
-rm -rf %{buildroot}
-
%files -n hmconv
%defattr(-,root,root)
%doc CHANGES README README.elm README.pine hmailedit
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0