Hello community, here is the log from the commit of package python-pkgconfig for openSUSE:Factory checked in at 2019-10-18 15:42:27 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/python-pkgconfig (Old) and /work/SRC/openSUSE:Factory/.python-pkgconfig.new.2352 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-pkgconfig" Fri Oct 18 15:42:27 2019 rev:7 rq:741066 version:1.5.1 Changes: -------- --- /work/SRC/openSUSE:Factory/python-pkgconfig/python-pkgconfig.changes 2019-05-06 13:21:31.288554152 +0200 +++ /work/SRC/openSUSE:Factory/.python-pkgconfig.new.2352/python-pkgconfig.changes 2019-10-18 15:42:29.891633996 +0200 @@ -1,0 +2,11 @@ +Fri Oct 18 12:17:58 UTC 2019 - Marketa Calabkova <mcalabk...@suse.com> + +- update to 1.5.1 + * Use poetry instead of setuptools directly + * Fix #42: raise exception if package is missing + * Fix version parsing for openssl-like version numbers, fixes #32 + * Add boolean static keyword to output private libraries as well + * Raise original OSError as well +- Do not launch tests (https://github.com/matze/pkgconfig/issues/45) + +------------------------------------------------------------------- Old: ---- pkgconfig-1.3.1.tar.gz New: ---- pkgconfig-1.5.1.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ python-pkgconfig.spec ++++++ --- /var/tmp/diff_new_pack.SCXSCA/_old 2019-10-18 15:42:30.523634674 +0200 +++ /var/tmp/diff_new_pack.SCXSCA/_new 2019-10-18 15:42:30.527634678 +0200 @@ -1,7 +1,7 @@ # # spec file for package python-pkgconfig # -# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany. +# Copyright (c) 2019 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 @@ -18,7 +18,7 @@ %{?!python_module:%define python_module() python-%{**} python3-%{**}} Name: python-pkgconfig -Version: 1.3.1 +Version: 1.5.1 Release: 0 Summary: Interface Python with pkg-config License: MIT @@ -48,9 +48,6 @@ %python_install %python_expand %fdupes %{buildroot}%{$python_sitelib} -%check -%python_exec -m nose test.py - %files %{python_files} %license LICENSE %doc README.rst ++++++ pkgconfig-1.3.1.tar.gz -> pkgconfig-1.5.1.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pkgconfig-1.3.1/MANIFEST.in new/pkgconfig-1.5.1/MANIFEST.in --- old/pkgconfig-1.3.1/MANIFEST.in 2017-05-15 09:26:06.000000000 +0200 +++ new/pkgconfig-1.5.1/MANIFEST.in 1970-01-01 01:00:00.000000000 +0100 @@ -1,4 +0,0 @@ -include LICENSE -include README.rst -include test.py -include data/* diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pkgconfig-1.3.1/PKG-INFO new/pkgconfig-1.5.1/PKG-INFO --- old/pkgconfig-1.3.1/PKG-INFO 2018-02-07 14:39:58.000000000 +0100 +++ new/pkgconfig-1.5.1/PKG-INFO 1970-01-01 01:00:00.000000000 +0100 @@ -1,109 +1,20 @@ -Metadata-Version: 1.0 +Metadata-Version: 2.1 Name: pkgconfig -Version: 1.3.1 +Version: 1.5.1 Summary: Interface Python with pkg-config -Home-page: http://github.com/matze/pkgconfig +Home-page: https://github.com/matze/pkgconfig Author: Matthias Vogelgesang Author-email: matthias.vogelges...@gmail.com -License: MIT -Description: pkgconfig - ========= - - .. image:: https://travis-ci.org/matze/pkgconfig.png?branch=master - :target: https://travis-ci.org/matze/pkgconfig - - ``pkgconfig`` is a Python module to interface with the ``pkg-config`` - command line tool and supports Python 2.6+. - - It can be used to - - - find all pkg-config packages :: - - >>> packages = pkgconfig.list_all() - - - check if a package exists :: - - >>> pkgconfig.exists('glib-2.0') - True - - - check if a package meets certain version requirements :: - - >>> pkgconfig.installed('glib-2.0', '< 2.26') - False - - - query CFLAGS and LDFLAGS :: - - >>> pkgconfig.cflags('glib-2.0') - '-I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include' - - >>> pkgconfig.libs('glib-2.0') - '-lglib-2.0' - - - get all variables defined for a package:: - - >>> pkgconfig.variables('glib-2.0') - {u'exec_prefix': u'/usr'} - - - parse the output to build extensions with setup.py :: - - >>> d = pkgconfig.parse('glib-2.0 gtk+-2.0') - >>> d['libraries'] - [u'gtk+-2.0', u'glib-2.0'] - - The ``pkgconfig.parse`` function return a dictonary of list. - The lists returned are an accurate representations of the equivalent - ``pkg-config`` call, both in content and order. - - If ``pkg-config`` is not on the path, raises ``EnvironmentError``. - - The ``pkgconfig`` module is licensed under the MIT license. - - - Changelog - --------- - - Version 1.3.1 - ~~~~~~~~~~~~~ - - - Fix compatibility problems with Python 2.6 - - Version 1.3.0 - ~~~~~~~~~~~~~ - - - Add variables() API to query defined variables - - Disable Python 3.2 and enable Python 3.5 and 3.6 tests - - Fix #16: handle spaces of values in .pc files correctly - - Version 1.2.1 and 1.2.2 - ~~~~~~~~~~~~~~~~~~~~~~~ - - Bug fix releases released on December 1st and 2nd 2016. - - - Include the ``data`` folder in the distribution in order to run tests - - Improve the tests - - - Version 1.2.0 - ~~~~~~~~~~~~~ - - Released on November 30th 2016. - - - Potential break: switch from result set to list - - Expose --list-all query - - Added support for PKG_CONFIG environment variable - - - Version 1.1.0 - ~~~~~~~~~~~~~ - - Released on November 6th 2013. - - - Multiple packages can now be parsed with a single call to ``.parse``. - - - Version 1.0.0 - ~~~~~~~~~~~~~ - - First release on September 8th 2013. - -Platform: UNKNOWN +Requires-Python: >=2.7, !=3.0.*, !=3.1.*, !=3.2.* +Classifier: Development Status :: 5 - Production/Stable +Classifier: Intended Audience :: Developers +Classifier: License :: OSI Approved :: MIT License +Classifier: Operating System :: OS Independent +Classifier: Programming Language :: Python :: 2 +Classifier: Programming Language :: Python :: 2.7 +Classifier: Programming Language :: Python :: 3 +Classifier: Programming Language :: Python :: 3.4 +Classifier: Programming Language :: Python :: 3.5 +Classifier: Programming Language :: Python :: 3.6 +Classifier: Programming Language :: Python :: 3.7 +Classifier: Topic :: Software Development :: Build Tools diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pkgconfig-1.3.1/README.rst new/pkgconfig-1.5.1/README.rst --- old/pkgconfig-1.3.1/README.rst 2018-02-07 14:20:00.000000000 +0100 +++ new/pkgconfig-1.5.1/README.rst 2019-03-30 23:12:33.122982000 +0100 @@ -5,7 +5,7 @@ :target: https://travis-ci.org/matze/pkgconfig ``pkgconfig`` is a Python module to interface with the ``pkg-config`` -command line tool and supports Python 2.6+. +command line tool and supports Python 2.6+ and 3.3+. It can be used to @@ -23,6 +23,10 @@ >>> pkgconfig.installed('glib-2.0', '< 2.26') False +- return the version :: + >>> pkgconfig.modversion('glib-2.0') + '2.56.3' + - query CFLAGS and LDFLAGS :: >>> pkgconfig.cflags('glib-2.0') @@ -42,9 +46,9 @@ >>> d['libraries'] [u'gtk+-2.0', u'glib-2.0'] - The ``pkgconfig.parse`` function return a dictonary of list. - The lists returned are an accurate representations of the equivalent - ``pkg-config`` call, both in content and order. + The ``pkgconfig.parse`` function returns a dictonary of lists. + The lists returned are accurate representations of the equivalent + ``pkg-config`` call's result, both in content and order. If ``pkg-config`` is not on the path, raises ``EnvironmentError``. @@ -54,6 +58,21 @@ Changelog --------- +Version 1.5.0 +~~~~~~~~~~~~~ + +- Use poetry instead of setuptools directly +- Fix #42: raise exception if package is missing +- Fix version parsing for openssl-like version numbers, fixes #32 +- Fix #31: expose --modversion +- Fix #30: strip whitespace from variable names + +Version 1.4.0 +~~~~~~~~~~~~~ + +- Add boolean ``static`` keyword to output private libraries as well +- Raise original ``OSError`` as well + Version 1.3.1 ~~~~~~~~~~~~~ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pkgconfig-1.3.1/data/fake-gtk+-3.0.pc new/pkgconfig-1.5.1/data/fake-gtk+-3.0.pc --- old/pkgconfig-1.3.1/data/fake-gtk+-3.0.pc 2017-05-15 09:26:06.000000000 +0200 +++ new/pkgconfig-1.5.1/data/fake-gtk+-3.0.pc 1970-01-01 01:00:00.000000000 +0100 @@ -1,14 +0,0 @@ -prefix=/usr -exec_prefix=/usr -libdir=/usr/lib_gtk_foo -includedir=/usr/include -targets=x11 broadway - -gtk_binary_version=3.0.0 -gtk_host=x86_64-suse-linux-gnu - -Name: GTK+ -Description: GTK+ Graphical UI Library -Version: 3.2.1 -Libs: -L${libdir} -lgtk-3 -Cflags: -I${includedir}/gtk-3.0 -DGSEAL_ENABLE diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pkgconfig-1.3.1/data/fake-python.pc new/pkgconfig-1.5.1/data/fake-python.pc --- old/pkgconfig-1.3.1/data/fake-python.pc 2017-05-15 09:26:06.000000000 +0200 +++ new/pkgconfig-1.5.1/data/fake-python.pc 1970-01-01 01:00:00.000000000 +0100 @@ -1,13 +0,0 @@ -prefix=/usr -exec_prefix=${prefix} -libdir=${exec_prefix}/lib_python_foo -includedir=${prefix}/include - -Name: Python -Description: Python library -Requires: -Version: 2.7 -Libs.private: -lpthread -ldl -lutil -Libs: -L${libdir} -lpython2.7 -Cflags: -I${includedir}/python2.7 - diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pkgconfig-1.3.1/pkgconfig/pkgconfig.py new/pkgconfig-1.5.1/pkgconfig/pkgconfig.py --- old/pkgconfig-1.3.1/pkgconfig/pkgconfig.py 2018-02-07 14:15:59.000000000 +0100 +++ new/pkgconfig-1.5.1/pkgconfig/pkgconfig.py 2019-03-30 23:07:00.462753800 +0100 @@ -30,16 +30,47 @@ from subprocess import call, PIPE, Popen +class PackageNotFoundError(Exception): + """ + Raised if a package was not found. + """ + def __init__(self, package): + message = '%s not found' % package + super(PackageNotFoundError, self).__init__(message) + + def _compare_versions(v1, v2): """ Compare two version strings and return -1, 0 or 1 depending on the equality of the subset of matching version numbers. - The implementation is taken from the top answer at + The implementation is inspired by the top answer at http://stackoverflow.com/a/1714190/997768. """ def normalize(v): - return [int(x) for x in re.sub(r'(\.0+)*$', '', v).split(".")] + # strip trailing .0 or .00 or .0.0 or ... + v = re.sub(r'(\.0+)*$', '', v) + result = [] + for part in v.split('.'): + # just digits + m = re.match(r'^(\d+)$', part) + if m: + result.append(int(m.group(1))) + continue + # digits letters + m = re.match(r'^(\d+)([a-zA-Z]+)$', part) + if m: + result.append(int(m.group(1))) + result.append(m.group(2)) + continue + # digits letters digits + m = re.match(r'^(\d+)([a-zA-Z]+)(\d+)$', part) + if m: + result.append(int(m.group(1))) + result.append(m.group(2)) + result.append(int(m.group(3))) + continue + return tuple(result) n1 = normalize(v1) n2 = normalize(v2) @@ -49,7 +80,7 @@ def _split_version_specifier(spec): """Splits version specifiers in the form ">= 0.1.2" into ('0.1.2', '>=')""" - m = re.search(r'([<>=]?=?)?\s*((\d*\.)*\d*)', spec) + m = re.search(r'([<>=]?=?)?\s*([0-9.a-zA-Z]+)', spec) return m.group(2), m.group(1) @@ -58,16 +89,24 @@ def _wrapper(*args, **kwargs): try: return func(*args, **kwargs) - except OSError: - raise EnvironmentError("pkg-config is not installed") - + except OSError as e: + raise EnvironmentError("pkg-config probably not installed: %r" % e) return _wrapper +def _build_options(option, static=False): + return (option, '--static') if static else (option,) + + +def _raise_if_not_exists(package): + if not exists(package): + raise PackageNotFoundError(package) + + @_convert_error -def _query(package, option): +def _query(package, *options): pkg_config_exe = os.environ.get('PKG_CONFIG', None) or 'pkg-config' - cmd = '{0} {1} {2}'.format(pkg_config_exe, option, package) + cmd = '{0} {1} {2}'.format(pkg_config_exe, ' '.join(options), package) proc = Popen(shlex.split(cmd), stdout=PIPE, stderr=PIPE) out, err = proc.communicate() @@ -100,14 +139,31 @@ """ Return the CFLAGS string returned by pkg-config. - If ``pkg-config`` not on path, raises ``EnvironmentError``. + If ``pkg-config`` is not on path, raises ``EnvironmentError``. """ + _raise_if_not_exists(package) return _query(package, '--cflags') -def libs(package): - """Return the LDFLAGS string returned by pkg-config.""" - return _query(package, '--libs') +def modversion(package): + """ + Return the version returned by pkg-config. + + If `pkg-config` is not in the path, raises ``EnvironmentError``. + """ + _raise_if_not_exists(package) + return _query(package, '--modversion') + + +def libs(package, static=False): + """ + Return the LDFLAGS string returned by pkg-config. + + The static specifier will also include libraries for static linking (i.e., + includes any private libraries). + """ + _raise_if_not_exists(package) + return _query(package, *_build_options('--libs', static=static)) def variables(package): @@ -115,12 +171,9 @@ Return a dictionary of all the variables defined in the .pc pkg-config file of 'package'. """ - if not exists(package): - msg = "Package `{0}' does not exist in PKG_CONFIG_PATH".format(package) - raise ValueError(msg) - + _raise_if_not_exists(package) result = _query(package, '--print-variables') - names = (x for x in result.split('\n') if x != '') + names = (x.strip() for x in result.split('\n') if x != '') return dict(((x, _query(package, '--variable={0}'.format(x)).strip()) for x in names)) @@ -178,47 +231,40 @@ } -def parse(packages): +def parse(packages, static=False): """ Parse the output from pkg-config about the passed package or packages. - Builds a dictionary containing the 'libraries', the 'library_dirs', - the 'include_dirs', and the 'define_macros' that are presented by - pkg-config. *package* is a string with space-delimited package names. - - If ``pkg-config`` not on path, raises ``EnvironmentError``. - """ - def parse_package(package): - result = collections.defaultdict(list) - - # Execute the query to pkg-config and clean the result. - out = _query(package, '--cflags --libs') - out = out.replace('\\"', '') + Builds a dictionary containing the 'libraries', the 'library_dirs', the + 'include_dirs', and the 'define_macros' that are presented by pkg-config. + *package* is a string with space-delimited package names. - # Iterate through each token in the output. - for token in re.split(r'(?<!\\) ', out): - key = _PARSE_MAP.get(token[:2]) - if key: - result[key].append(token[2:].strip()) + The static specifier will also include libraries for static linking (i.e., + includes any private libraries). - # Iterate and clean define macros. - macros = list() - for declaration in result['define_macros']: - macro = tuple(declaration.split('=')) - if len(macro) == 1: - macro += None, + If ``pkg-config`` is not on path, raises ``EnvironmentError``. + """ + for package in packages.split(): + _raise_if_not_exists(package) - macros.append(macro) + out = _query(packages, *_build_options('--cflags --libs', static=static)) + out = out.replace('\\"', '') + result = collections.defaultdict(list) - result['define_macros'] = macros + for token in re.split(r'(?<!\\) ', out): + key = _PARSE_MAP.get(token[:2]) + if key: + result[key].append(token[2:].strip()) - # Return parsed configuration. - return result + def split(m): + t = tuple(m.split('=')) + return t if len(t) > 1 else (t[0], None) - # Return the result of parse_package directly. - # We don't need to loop over the packages + result['define_macros'] = [split(m) for m in result['define_macros']] - return parse_package(packages) + # only have members with values not being the empty list (which is default + # anyway): + return collections.defaultdict(list, ((k, v) for k, v in result.items() if v)) def list_all(): diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pkgconfig-1.3.1/pkgconfig.egg-info/PKG-INFO new/pkgconfig-1.5.1/pkgconfig.egg-info/PKG-INFO --- old/pkgconfig-1.3.1/pkgconfig.egg-info/PKG-INFO 2018-02-07 14:39:58.000000000 +0100 +++ new/pkgconfig-1.5.1/pkgconfig.egg-info/PKG-INFO 1970-01-01 01:00:00.000000000 +0100 @@ -1,109 +0,0 @@ -Metadata-Version: 1.0 -Name: pkgconfig -Version: 1.3.1 -Summary: Interface Python with pkg-config -Home-page: http://github.com/matze/pkgconfig -Author: Matthias Vogelgesang -Author-email: matthias.vogelges...@gmail.com -License: MIT -Description: pkgconfig - ========= - - .. image:: https://travis-ci.org/matze/pkgconfig.png?branch=master - :target: https://travis-ci.org/matze/pkgconfig - - ``pkgconfig`` is a Python module to interface with the ``pkg-config`` - command line tool and supports Python 2.6+. - - It can be used to - - - find all pkg-config packages :: - - >>> packages = pkgconfig.list_all() - - - check if a package exists :: - - >>> pkgconfig.exists('glib-2.0') - True - - - check if a package meets certain version requirements :: - - >>> pkgconfig.installed('glib-2.0', '< 2.26') - False - - - query CFLAGS and LDFLAGS :: - - >>> pkgconfig.cflags('glib-2.0') - '-I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include' - - >>> pkgconfig.libs('glib-2.0') - '-lglib-2.0' - - - get all variables defined for a package:: - - >>> pkgconfig.variables('glib-2.0') - {u'exec_prefix': u'/usr'} - - - parse the output to build extensions with setup.py :: - - >>> d = pkgconfig.parse('glib-2.0 gtk+-2.0') - >>> d['libraries'] - [u'gtk+-2.0', u'glib-2.0'] - - The ``pkgconfig.parse`` function return a dictonary of list. - The lists returned are an accurate representations of the equivalent - ``pkg-config`` call, both in content and order. - - If ``pkg-config`` is not on the path, raises ``EnvironmentError``. - - The ``pkgconfig`` module is licensed under the MIT license. - - - Changelog - --------- - - Version 1.3.1 - ~~~~~~~~~~~~~ - - - Fix compatibility problems with Python 2.6 - - Version 1.3.0 - ~~~~~~~~~~~~~ - - - Add variables() API to query defined variables - - Disable Python 3.2 and enable Python 3.5 and 3.6 tests - - Fix #16: handle spaces of values in .pc files correctly - - Version 1.2.1 and 1.2.2 - ~~~~~~~~~~~~~~~~~~~~~~~ - - Bug fix releases released on December 1st and 2nd 2016. - - - Include the ``data`` folder in the distribution in order to run tests - - Improve the tests - - - Version 1.2.0 - ~~~~~~~~~~~~~ - - Released on November 30th 2016. - - - Potential break: switch from result set to list - - Expose --list-all query - - Added support for PKG_CONFIG environment variable - - - Version 1.1.0 - ~~~~~~~~~~~~~ - - Released on November 6th 2013. - - - Multiple packages can now be parsed with a single call to ``.parse``. - - - Version 1.0.0 - ~~~~~~~~~~~~~ - - First release on September 8th 2013. - -Platform: UNKNOWN diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pkgconfig-1.3.1/pkgconfig.egg-info/SOURCES.txt new/pkgconfig-1.5.1/pkgconfig.egg-info/SOURCES.txt --- old/pkgconfig-1.3.1/pkgconfig.egg-info/SOURCES.txt 2018-02-07 14:39:58.000000000 +0100 +++ new/pkgconfig-1.5.1/pkgconfig.egg-info/SOURCES.txt 1970-01-01 01:00:00.000000000 +0100 @@ -1,13 +0,0 @@ -LICENSE -MANIFEST.in -README.rst -setup.py -test.py -data/fake-gtk+-3.0.pc -data/fake-python.pc -pkgconfig/__init__.py -pkgconfig/pkgconfig.py -pkgconfig.egg-info/PKG-INFO -pkgconfig.egg-info/SOURCES.txt -pkgconfig.egg-info/dependency_links.txt -pkgconfig.egg-info/top_level.txt \ No newline at end of file diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pkgconfig-1.3.1/pkgconfig.egg-info/dependency_links.txt new/pkgconfig-1.5.1/pkgconfig.egg-info/dependency_links.txt --- old/pkgconfig-1.3.1/pkgconfig.egg-info/dependency_links.txt 2018-02-07 14:39:58.000000000 +0100 +++ new/pkgconfig-1.5.1/pkgconfig.egg-info/dependency_links.txt 1970-01-01 01:00:00.000000000 +0100 @@ -1 +0,0 @@ - diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pkgconfig-1.3.1/pkgconfig.egg-info/top_level.txt new/pkgconfig-1.5.1/pkgconfig.egg-info/top_level.txt --- old/pkgconfig-1.3.1/pkgconfig.egg-info/top_level.txt 2018-02-07 14:39:58.000000000 +0100 +++ new/pkgconfig-1.5.1/pkgconfig.egg-info/top_level.txt 1970-01-01 01:00:00.000000000 +0100 @@ -1 +0,0 @@ -pkgconfig diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pkgconfig-1.3.1/pyproject.toml new/pkgconfig-1.5.1/pyproject.toml --- old/pkgconfig-1.3.1/pyproject.toml 1970-01-01 01:00:00.000000000 +0100 +++ new/pkgconfig-1.5.1/pyproject.toml 2019-04-01 21:27:21.057493200 +0200 @@ -0,0 +1,24 @@ +[build-system] +requires = ["poetry>=0.12"] +build-backend = "poetry.masonry.api" + +[tool.poetry] +name = "pkgconfig" +version = "1.5.1" +license = "MIT" +description = "Interface Python with pkg-config" +authors = ["Matthias Vogelgesang <matthias.vogelges...@gmail.com>"] +readme = "README.rst" +homepage = "https://github.com/matze/pkgconfig" +classifiers = [ + "Development Status :: 5 - Production/Stable", + "Intended Audience :: Developers", + "Operating System :: OS Independent", + "Topic :: Software Development :: Build Tools", +] + +[tool.poetry.dependencies] +python = "~2.7 || ^3.3" + +[tool.poetry.dev-dependencies] +pytest = "^3.8.2" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pkgconfig-1.3.1/setup.cfg new/pkgconfig-1.5.1/setup.cfg --- old/pkgconfig-1.3.1/setup.cfg 2018-02-07 14:39:58.000000000 +0100 +++ new/pkgconfig-1.5.1/setup.cfg 1970-01-01 01:00:00.000000000 +0100 @@ -1,5 +0,0 @@ -[egg_info] -tag_build = -tag_date = 0 -tag_svn_revision = 0 - diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pkgconfig-1.3.1/setup.py new/pkgconfig-1.5.1/setup.py --- old/pkgconfig-1.3.1/setup.py 2018-02-07 14:19:29.000000000 +0100 +++ new/pkgconfig-1.5.1/setup.py 1970-01-01 01:00:00.000000000 +0100 @@ -1,18 +1,24 @@ -from setuptools import setup +# -*- coding: utf-8 -*- +from distutils.core import setup -VERSION = '1.3.1' +packages = \ +['pkgconfig'] -setup( - name='pkgconfig', - version=VERSION, - author='Matthias Vogelgesang', - author_email='matthias.vogelges...@gmail.com', - url='http://github.com/matze/pkgconfig', - license='MIT', - packages=['pkgconfig'], - description="Interface Python with pkg-config", - long_description=open('README.rst').read(), - tests_require=['nose>=1.0'], - python_requires='>=2.6, !=3.0.*, !=3.1.*, !=3.2.*', - test_suite='test', -) +package_data = \ +{'': ['*']} + +setup_kwargs = { + 'name': 'pkgconfig', + 'version': '1.5.1', + 'description': 'Interface Python with pkg-config', + 'long_description': "pkgconfig\n=========\n\n.. image:: https://travis-ci.org/matze/pkgconfig.png?branch=master\n :target: https://travis-ci.org/matze/pkgconfig\n\n``pkgconfig`` is a Python module to interface with the ``pkg-config``\ncommand line tool and supports Python 2.6+ and 3.3+.\n\nIt can be used to\n\n- find all pkg-config packages ::\n\n >>> packages = pkgconfig.list_all()\n\n- check if a package exists ::\n\n >>> pkgconfig.exists('glib-2.0')\n True\n\n- check if a package meets certain version requirements ::\n\n >>> pkgconfig.installed('glib-2.0', '< 2.26')\n False\n\n- return the version ::\n >>> pkgconfig.modversion('glib-2.0')\n '2.56.3'\n\n- query CFLAGS and LDFLAGS ::\n\n >>> pkgconfig.cflags('glib-2.0')\n '-I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include'\n\n >>> pkgconfig.libs('glib-2.0')\n '-lglib-2.0'\n\n- get all variables defined for a package::\n\n >>> pkgconfig.variables('glib-2.0')\n {u'exec_prefix': u'/usr'}\n\n- parse the output to build extensions with setup.py ::\n\n >>> d = pkgconfig.parse('glib-2.0 gtk+-2.0')\n >>> d['libraries']\n [u'gtk+-2.0', u'glib-2.0']\n\n The ``pkgconfig.parse`` function returns a dictonary of lists.\n The lists returned are accurate representations of the equivalent\n ``pkg-config`` call's result, both in content and order.\n\nIf ``pkg-config`` is not on the path, raises ``EnvironmentError``.\n\nThe ``pkgconfig`` module is licensed under the MIT license.\n\n\nChangelog\n---------\n\nVersion 1.5.0\n~~~~~~~~~~~~~\n\n- Use poetry instead of setuptools directly\n- Fix #42: raise exception if package is missing\n- Fix version parsing for openssl-like version numbers, fixes #32\n- Fix #31: expose --modversion\n- Fix #30: strip whitespace from variable names\n\nVersion 1.4.0\n~~~~~~~~~~~~~\n\n- Add boolean ``static`` keyword to output private libraries as well\n- Raise original ``OSError`` as well\n\nVersion 1.3.1\n~~~~~~~~~~~~~\n\n- Fix compatibility problems with Python 2.6\n\nVersion 1.3.0\n~~~~~~~~~~~~~\n\n- Add variables() API to query defined variables\n- Disable Python 3.2 and enable Python 3.5 and 3.6 tests\n- Fix #16: handle spaces of values in .pc files correctly\n\nVersion 1.2.1 and 1.2.2\n~~~~~~~~~~~~~~~~~~~~~~~\n\nBug fix releases released on December 1st and 2nd 2016.\n\n- Include the ``data`` folder in the distribution in order to run tests\n- Improve the tests\n\n\nVersion 1.2.0\n~~~~~~~~~~~~~\n\nReleased on November 30th 2016.\n\n- Potential break: switch from result set to list\n- Expose --list-all query\n- Added support for PKG_CONFIG environment variable\n\n\nVersion 1.1.0\n~~~~~~~~~~~~~\n\nReleased on November 6th 2013.\n\n- Multiple packages can now be parsed with a single call to ``.parse``.\n\n\nVersion 1.0.0\n~~~~~~~~~~~~~\n\nFirst release on September 8th 2013.\n", + 'author': 'Matthias Vogelgesang', + 'author_email': 'matthias.vogelges...@gmail.com', + 'url': 'https://github.com/matze/pkgconfig', + 'packages': packages, + 'package_data': package_data, + 'python_requires': '>=2.7, !=3.0.*, !=3.1.*, !=3.2.*', +} + + +setup(**setup_kwargs) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pkgconfig-1.3.1/test.py new/pkgconfig-1.5.1/test.py --- old/pkgconfig-1.3.1/test.py 2018-02-07 13:55:15.000000000 +0100 +++ new/pkgconfig-1.5.1/test.py 1970-01-01 01:00:00.000000000 +0100 @@ -1,71 +0,0 @@ -import os -import pkgconfig -import nose.tools as nt - -os.environ['PKG_CONFIG_PATH'] = os.path.abspath('./data') -PACKAGE_NAME = 'fake-gtk+-3.0' - - -def test_exists(): - nt.assert_true(pkgconfig.exists(PACKAGE_NAME)) - - -def test_version(): - assertions = { - '3.2.1': True, - '==3.2.1': True, - '==3.2.2': False, - '> 2.2': True, - '> 3.4': False, - '<= 3.3.5': True, - '< 2.3': False - } - - for version, val in assertions.items(): - nt.assert_true(pkgconfig.installed(PACKAGE_NAME, version) == val) - - -def test_cflags(): - flags = pkgconfig.cflags(PACKAGE_NAME) - - for flag in flags.split(' '): - nt.assert_true(flag in ('-DGSEAL_ENABLE', '-I/usr/include/gtk-3.0')) - - -def test_libs(): - flags = pkgconfig.libs(PACKAGE_NAME) - - for flag in flags.split(' '): - nt.assert_true(flag in ('-L/usr/lib_gtk_foo', '-lgtk-3')) - - -def test_parse(): - config = pkgconfig.parse("fake-gtk+-3.0 fake-python") - - nt.assert_true(('GSEAL_ENABLE', None) in config['define_macros']) - nt.assert_true('/usr/include/gtk-3.0' in config['include_dirs']) - nt.assert_true('/usr/lib_gtk_foo' in config['library_dirs']) - nt.assert_true('/usr/lib_python_foo' in config['library_dirs']) - nt.assert_true('gtk-3' in config['libraries']) - - nt.assert_true('/usr/include/python2.7' in config['include_dirs']) - - -def test_listall(): - packages = pkgconfig.list_all() - nt.assert_true('fake-gtk+-3.0' in packages) - nt.assert_true('fake-python' in packages) - - -def test_variables(): - variables = pkgconfig.variables('fake-python') - - nt.assert_true('prefix' in variables) - nt.assert_true('exec_prefix' in variables) - nt.assert_true('libdir' in variables) - nt.assert_true('includedir' in variables) - - nt.assert_true(variables['prefix'] == '/usr') - nt.assert_true(variables['exec_prefix'] == '/usr') - nt.assert_true(variables['libdir'] == '/usr/lib_python_foo') - nt.assert_true(variables['includedir'] == '/usr/include')