diff options
60 files changed, 2428 insertions, 1593 deletions
diff --git a/.travis.yml b/.travis.yml index 12840a4..fce7573 100644 --- a/.travis.yml +++ b/.travis.yml @@ -28,37 +28,8 @@ cache: directories: - $HOME/.ccache install: - - 'sudo apt-get -qq -y update' - - > - sudo apt-get -qq -y install - autoconf - automake - ccache - dbus - gnome-desktop-testing - libdbus-1-dev - libtool - - > - test -z "$dbus_ci_system_python" || sudo apt-get -qq -y install - ${dbus_ci_system_python} - ${dbus_ci_system_python%-dbg}-docutils - ${dbus_ci_system_python%-dbg}-gi - - > - test "${dbus_ci_system_python%-dbg}" = "${dbus_ci_system_python}" || - sudo apt-get -qq -y install - ${dbus_ci_system_python%-dbg}-gi-dbg - - > - if test "$dbus_ci_system_python" = python; then - sudo apt-get -qq -y install python-epydoc python-gobject-2; - fi - - > - wget - http://deb.debian.org/debian/pool/main/a/autoconf-archive/autoconf-archive_20160916-1_all.deb - - 'sudo dpkg -i autoconf-archive_*_all.deb' - - 'rm autoconf-archive_*_all.deb' - - test -n "$dbus_ci_system_python" || pip install tap.py - test -z "$dbus_ci_system_python" || deactivate - - test -z "$dbus_ci_system_python" || pip install --user tap.py + - tools/travis-ci-setup.sh python: - "3.5" - "3.5-dev" @@ -1 +1 @@ -1.2.6 +1.2.8 @@ -1,6 +1,336 @@ +commit b7f3f7757c28fdc25ce413ccb3c2c6f7e16cbb51 +Author: Simon McVittie <smcv@collabora.com> +Date: 2018-05-04 16:29:05 +0100 + + 1.2.8 + +M NEWS +M configure.ac + +commit c50a1c9fc86c598d49ea85f7c383777ab165c9a1 +Author: Simon McVittie <smcv@collabora.com> +Date: 2018-05-04 17:14:11 +0100 + + Revert "Generate a devhelp index for the HTML documentation" + + This reverts commit c57180785096f4271d45ccb1488086c468abcec1. + The devhelp + mode produces different HTML, and currently breaks Debian's + dh_sphinxdoc. + +M Makefile.am + +commit c57180785096f4271d45ccb1488086c468abcec1 +Author: Simon McVittie <smcv@collabora.com> +Date: 2018-05-03 14:59:58 +0100 + + Generate a devhelp index for the HTML documentation + + Signed-off-by: Simon McVittie <smcv@collabora.com> + +M Makefile.am + +commit 8c01125643e5ff94c9baa898dd61add8d4739680 +Author: Simon McVittie <smcv@collabora.com> +Date: 2018-05-03 13:14:37 +0100 + + Travis-CI: Use system Python to run pip for system Python + + Signed-off-by: Simon McVittie <smcv@collabora.com> + +M .travis.yml +A tools/travis-ci-setup.sh + +commit 25923e84c44965c5ebdac0567133d5a88885015e +Author: Simon McVittie <smcv@collabora.com> +Date: 2018-05-03 10:44:38 +0100 + + Travis-CI: Install sphinx from PyPI + + The one in Ubuntu 14.04 is too old for "python -m sphinx", and we + weren't installing it at all for non-system Pythons. + + Signed-off-by: Simon McVittie <smcv@collabora.com> + +M .travis.yml + +commit 224012fb6557c775513d8719af6e9129717db791 +Author: Simon McVittie <smcv@collabora.com> +Date: 2018-05-03 10:30:46 +0100 + + build: Don't install redirect pages intended for dbus.freedesktop.org + + Signed-off-by: Simon McVittie <smcv@collabora.com> + +M Makefile.am + +commit 08be9858414f257f047c1d4f11bcd6f26ee884f1 +Author: Simon McVittie <smcv@collabora.com> +Date: 2018-05-03 10:30:30 +0100 + + build: Don't install stamp file for documentation build + + Signed-off-by: Simon McVittie <smcv@collabora.com> + +M Makefile.am + +commit b6f7db7fea9bc25901ebd8bd4a1d3a4ea4058965 +Author: Simon McVittie <smcv@collabora.com> +Date: 2018-05-03 10:14:51 +0100 + + build: Install Sphinx documentation + + Signed-off-by: Simon McVittie <smcv@collabora.com> + +M Makefile.am + +commit b15465fde6dfa4d088d694ec9542ad99d7210d5e +Author: Simon McVittie <smcv@collabora.com> +Date: 2018-05-03 10:22:32 +0100 + + build: Enable Sphinx documentation if dependencies are available + + Signed-off-by: Simon McVittie <smcv@collabora.com> + +M configure.ac + +commit 174570d94e3000a91aac1ea1276292e5e154c36a +Author: Simon McVittie <smcv@collabora.com> +Date: 2018-05-02 19:30:33 +0100 + + Travis-CI: Pull in setuptools + + distcheck now requires it, to generate the egg_info. + + Signed-off-by: Simon McVittie <smcv@collabora.com> + +M .travis.yml + +commit 721ef6373069bfc6955018681204e20e1ad836e4 +Author: Simon McVittie <smcv@collabora.com> +Date: 2018-05-02 19:15:39 +0100 + + Remove remnants of old documentation + + Signed-off-by: Simon McVittie <smcv@collabora.com> + +M Makefile.am +M configure.ac +D m4/dbus-py-add-rst2htmlflag.m4 + +commit 48572c4dd8cea6c7a2661c4dacd73eb8d0d916c5 +Author: Simon McVittie <smcv@collabora.com> +Date: 2018-05-02 18:53:46 +0100 + + Travis-CI: Install sphinx + + Signed-off-by: Simon McVittie <smcv@collabora.com> + +M .travis.yml + +commit 72957e9f4af2ffd6308afaf7f5b30cebe5b278fe +Author: Simon McVittie <smcv@collabora.com> +Date: 2018-05-02 15:18:32 +0100 + + Use README as the long description + + PyPI no longer renders README by default. + + Signed-off-by: Simon McVittie <smcv@collabora.com> + +M setup.py + +commit 5f8122b0d1b340c6a1330c0f8f729c60d3b96359 +Author: Simon McVittie <smcv@collabora.com> +Date: 2018-05-02 12:51:29 +0100 + + Update NEWS + + Signed-off-by: Simon McVittie <smcv@collabora.com> + +M NEWS + +commit 5421e3703ca98ba278f67cab133e030949b01997 +Author: Simon McVittie <smcv@collabora.com> +Date: 2018-05-02 12:38:05 +0100 + + Fix distcheck + + Signed-off-by: Simon McVittie <smcv@collabora.com> + +M Makefile.am + +commit 9dbabdb569c949bd319a294c822d945dfe18bfa4 +Author: Simon McVittie <smcv@collabora.com> +Date: 2018-05-02 12:32:50 +0100 + + Add redirection from the old epydoc documentation to the new versions + + Signed-off-by: Simon McVittie <smcv@collabora.com> + +M Makefile.am +A doc/redirects +A doc/redirects.py + +commit b81df570c8e7a450cfcbd09663f2f15725906b7a +Author: Simon McVittie <smcv@collabora.com> +Date: 2018-05-02 12:05:30 +0100 + + Improve documentation for Sphinx + + Signed-off-by: Simon McVittie <smcv@collabora.com> + +M dbus_bindings/bytes.c +M dbus_bindings/conn.c +M dbus_bindings/containers.c +M dbus_bindings/int.c +M dbus_bindings/message.c +M dbus_bindings/signature.c +M dbus_bindings/string.c +M dbus_bindings/unixfd.c + +commit 780e299bc7cd72c30473162e266479656f3ab9ff +Author: Simon McVittie <smcv@collabora.com> +Date: 2018-05-02 11:11:00 +0100 + + doc: Be more clear about bytes vs. unicode + + Signed-off-by: Simon McVittie <smcv@collabora.com> + +M dbus_bindings/bytes.c +M dbus_bindings/message-get-args.c +M doc/tutorial.txt + +commit 7457ebb162febe9033ebcc7e6ef44e6f79d19410 +Author: Simon McVittie <smcv@collabora.com> +Date: 2018-05-02 11:09:42 +0100 + + Improve UTF8String documentation + + Signed-off-by: Simon McVittie <smcv@collabora.com> + +M dbus_bindings/string.c + +commit f78b1afbc01efbe58eff8d3fe5040733124027d5 +Author: Simon McVittie <smcv@collabora.com> +Date: 2018-05-02 11:08:28 +0100 + + dbus-gmain: Ignore more generated files + + Signed-off-by: Simon McVittie <smcv@collabora.com> + +M dbus-gmain/.gitignore + +commit 6c630a819f6504d48a3a205ab323b2d0458913e5 +Author: Simon McVittie <smcv@collabora.com> +Date: 2018-05-02 11:08:09 +0100 + + Convert documentation from epydoc to Sphinx + + Signed-off-by: Simon McVittie <smcv@collabora.com> + +M .gitignore +M Makefile.am +M README +M configure.ac +M dbus/__init__.py +M dbus/gi_service.py +M dbus/gobject_service.py +M dbus/service.py +M dbus_bindings/bytes.c +M dbus_bindings/containers.c +M dbus_bindings/int.c +M dbus_bindings/message-append.c +M dbus_bindings/signature.c +M dbus_bindings/string.c +M dbus_bindings/unixfd.c +M doc/HACKING.txt +M doc/PY3PORT.txt +A doc/_static/.gitignore +A doc/conf.py +A doc/dbus.bus.rst +A doc/dbus.connection.rst +A doc/dbus.decorators.rst +A doc/dbus.exceptions.rst +A doc/dbus.gi_service.rst +A doc/dbus.glib.rst +A doc/dbus.gobject_service.rst +A doc/dbus.lowlevel.rst +A doc/dbus.mainloop.rst +A doc/dbus.proxies.rst +A doc/dbus.rst +A doc/dbus.server.rst +A doc/dbus.service.rst +A doc/dbus.types.rst +C056 README doc/index.rst +A doc/news.rst + +commit 2d7f71cc7002b5d968f83adffe09e2fc8fd63eb5 +Author: Simon McVittie <smcv@collabora.com> +Date: 2018-05-02 11:02:38 +0100 + + .gitignore: Ignore more test logs + + Signed-off-by: Simon McVittie <smcv@collabora.com> + +M .gitignore + +commit 8a0dc04483ae99c1c92e34c979b571eba3afb88e +Author: Simon McVittie <smcv@collabora.com> +Date: 2018-04-21 16:10:15 +0100 + + Remove obsolete COMPAT.txt + + This was about compatibility with the rename and rewrite of + dbus_bindings as _dbus_bindings, which took place over a decade ago. + If any projects are still not compatible with the "new" dbus-python + then there is no hope for them. + + Signed-off-by: Simon McVittie <smcv@collabora.com> + +D COMPAT.txt + +commit fd4bd409e757dca1cee47188f5fb8a50ee9744c7 +Author: Simon McVittie <smcv@collabora.com> +Date: 2018-04-21 11:52:49 +0100 + + Include PKG-INFO and egg_info in dist tarballs + + PyPI no longer accepts uploads without these. + + Signed-off-by: Simon McVittie <smcv@collabora.com> + +M .gitignore +M Makefile.am + +commit cf961cbdc28a886fbaffb1d14bb73d8683ff8363 +Author: Simon McVittie <smcv@collabora.com> +Date: 2018-01-30 22:52:15 +0000 + + Create directories to hold .test files + + Some of the corresponding test scripts are in $(srcdir)/test, so there + is no guarantee that $(builddir)/test will exist before these recipes + run. This usually works, but can cause highly parallel builds to fail. + + Signed-off-by: Simon McVittie <smcv@collabora.com> + +M Makefile.am + +commit 94672070f0756c1c3123796761c74a5fb43325a9 +Author: Simon McVittie <smcv@collabora.com> +Date: 2018-01-29 19:47:44 +0000 + + Start towards 1.2.8 + + Signed-off-by: Simon McVittie <smcv@collabora.com> + +M NEWS +M configure.ac + commit bf54889b7bd2eee361843310c86bd6d7701110fc Author: Simon McVittie <smcv@collabora.com> -Date: 2018-01-29 12:41:57 +0000 +Date: 2018-01-29 12:41:57 +0000 Prepare 1.2.6 @@ -9,6 +9,7 @@ MANIFEST.in Makefile.am Makefile.in NEWS +PKG-INFO README aclocal.m4 build-aux/compile @@ -86,9 +87,33 @@ dbus_bindings/types-internal.h dbus_bindings/unixfd.c dbus_bindings/validation.c dbus_glib_bindings/module.c +dbus_python.egg-info/PKG-INFO +dbus_python.egg-info/SOURCES.txt +dbus_python.egg-info/dependency_links.txt +dbus_python.egg-info/top_level.txt doc/API_CHANGES.txt doc/HACKING.txt doc/PY3PORT.txt +doc/_static/.gitignore +doc/conf.py +doc/dbus.bus.rst +doc/dbus.connection.rst +doc/dbus.decorators.rst +doc/dbus.exceptions.rst +doc/dbus.gi_service.rst +doc/dbus.glib.rst +doc/dbus.gobject_service.rst +doc/dbus.lowlevel.rst +doc/dbus.mainloop.rst +doc/dbus.proxies.rst +doc/dbus.rst +doc/dbus.server.rst +doc/dbus.service.rst +doc/dbus.types.rst +doc/index.rst +doc/news.rst +doc/redirects +doc/redirects.py doc/tutorial.txt examples/example-async-client.py examples/example-client.py @@ -115,7 +140,6 @@ m4/ax_is_release.m4 m4/ax_python_devel.m4 m4/ax_python_module.m4 m4/ax_require_defined.m4 -m4/dbus-py-add-rst2htmlflag.m4 m4/libtool.m4 m4/ltoptions.m4 m4/ltsugar.m4 diff --git a/MANIFEST.in b/MANIFEST.in index ab1af64..5a82290 100644 --- a/MANIFEST.in +++ b/MANIFEST.in @@ -9,6 +9,7 @@ include MANIFEST.in include Makefile.am include Makefile.in include NEWS +include PKG-INFO include README include aclocal.m4 include build-aux/compile @@ -86,9 +87,33 @@ include dbus_bindings/types-internal.h include dbus_bindings/unixfd.c include dbus_bindings/validation.c include dbus_glib_bindings/module.c +include dbus_python.egg-info/PKG-INFO +include dbus_python.egg-info/SOURCES.txt +include dbus_python.egg-info/dependency_links.txt +include dbus_python.egg-info/top_level.txt include doc/API_CHANGES.txt include doc/HACKING.txt include doc/PY3PORT.txt +include doc/_static/.gitignore +include doc/conf.py +include doc/dbus.bus.rst +include doc/dbus.connection.rst +include doc/dbus.decorators.rst +include doc/dbus.exceptions.rst +include doc/dbus.gi_service.rst +include doc/dbus.glib.rst +include doc/dbus.gobject_service.rst +include doc/dbus.lowlevel.rst +include doc/dbus.mainloop.rst +include doc/dbus.proxies.rst +include doc/dbus.rst +include doc/dbus.server.rst +include doc/dbus.service.rst +include doc/dbus.types.rst +include doc/index.rst +include doc/news.rst +include doc/redirects +include doc/redirects.py include doc/tutorial.txt include examples/example-async-client.py include examples/example-client.py @@ -115,7 +140,6 @@ include m4/ax_is_release.m4 include m4/ax_python_devel.m4 include m4/ax_python_module.m4 include m4/ax_require_defined.m4 -include m4/dbus-py-add-rst2htmlflag.m4 include m4/libtool.m4 include m4/ltoptions.m4 include m4/ltsugar.m4 diff --git a/Makefile.am b/Makefile.am index 13ad510..fd480d4 100644 --- a/Makefile.am +++ b/Makefile.am @@ -16,6 +16,7 @@ EXTRA_DIST = \ COPYING \ ChangeLog \ dbus-python.pc.in \ + doc/_static/.gitignore \ examples/example-async-client.py \ examples/example-client.py \ examples/example-service.py \ @@ -26,7 +27,6 @@ EXTRA_DIST = \ examples/list-system-services.py \ examples/unix-fd-client.py \ examples/unix-fd-service.py \ - m4/dbus-py-add-rst2htmlflag.m4 \ setup.py \ test/TestSuitePythonService.service.in \ test/tmp-session-bus.conf.in \ @@ -336,18 +336,21 @@ installed_test_metadata = \ CLEANFILES += $(installed_test_metadata) $(patsubst %,%.test,$(dist_test_py)): %.test: Makefile + @$(MKDIR_P) $(dir $@) $(AM_V_GEN) (echo '[Test]' > $@.tmp; \ echo 'Type=session' >> $@.tmp; \ echo 'Exec=$(installed_log_compiler) $(PYTHON) $(installed_testdir)/$*' >> $@.tmp; \ mv $@.tmp $@) $(patsubst %,%.test,$(dist_test_sh)): %.test: Makefile + @$(MKDIR_P) $(dir $@) $(AM_V_GEN) (echo '[Test]' > $@.tmp; \ echo 'Type=session' >> $@.tmp; \ echo 'Exec=$(installed_log_compiler) $(installed_testdir)/$*' >> $@.tmp; \ mv $@.tmp $@) $(patsubst %,%.test,$(test_programs)): %.test: Makefile + @$(MKDIR_P) $(dir $@) $(AM_V_GEN) (echo '[Test]' > $@.tmp; \ echo 'Type=session' >> $@.tmp; \ echo 'Exec=$(installed_log_compiler) $(installed_testdir)/$*$(EXEEXT)' >> $@.tmp; \ @@ -361,86 +364,96 @@ dist-hook: dist-ChangeLog echo $(VERSION) > $(distdir)/.version touch $(distdir)/MANIFEST touch $(distdir)/MANIFEST.in + ( cd $(distdir) && $(PYTHON) setup.py egg_info ) + cp $(distdir)/dbus_python.egg-info/PKG-INFO $(distdir) ( cd $(distdir) && find -type d -o -print ) | \ LC_ALL=C sort | \ $(SED) -e 's|^\./||' \ > $(distdir)/MANIFEST sed -e 's/.*/include &/' < $(distdir)/MANIFEST > $(distdir)/MANIFEST.in + cp $(distdir)/MANIFEST $(distdir)/dbus_python.egg-info/SOURCES.txt -TXT_RSTDOCS = \ - doc/tutorial.txt \ +maintainer-upload: + rsync -tvpP --chmod=ugo=r $(DIST_ARCHIVES) $(DIST_ARCHIVES:%=%.asc) \ + dbus.freedesktop.org:/srv/dbus.freedesktop.org/www/releases/dbus-python/ + +sphinx_sources = \ doc/API_CHANGES.txt \ + doc/conf.py \ + doc/dbus.bus.rst \ + doc/dbus.connection.rst \ + doc/dbus.decorators.rst \ + doc/dbus.exceptions.rst \ + doc/dbus.gi_service.rst \ + doc/dbus.glib.rst \ + doc/dbus.gobject_service.rst \ + doc/dbus.lowlevel.rst \ + doc/dbus.mainloop.rst \ + doc/dbus.proxies.rst \ + doc/dbus.rst \ + doc/dbus.server.rst \ + doc/dbus.service.rst \ + doc/dbus.types.rst \ doc/HACKING.txt \ + doc/index.rst \ + doc/news.rst \ doc/PY3PORT.txt \ - $(NULL) -RSTDOCS = \ - README \ + doc/tutorial.txt \ NEWS \ + README \ $(NULL) -dist_doc_DATA = $(TXT_RSTDOCS) $(RSTDOCS) - -maintainer-upload: - rsync -tvpP --chmod=ugo=r $(DIST_ARCHIVES) $(DIST_ARCHIVES:%=%.asc) \ - dbus.freedesktop.org:/srv/dbus.freedesktop.org/www/releases/dbus-python/ - -maintainer-update-website: _maintainer-update-apidocs \ - _maintainer-update-htmldocs - -if ENABLE_DOCS -_maintainer-update-htmldocs: $(HTML_TXT_RSTDOCS) $(HTML_RSTDOCS) - rsync -rtvzPp --chmod=Dg+s,ug+rwX,o=rX doc \ - $(patsubst %,$(srcdir)/%,$(RSTDOCS)) $(HTML_RSTDOCS) \ +EXTRA_DIST += $(sphinx_sources) + +# A hack used for the HTML documentation on dbus.freedesktop.org +EXTRA_DIST += \ + doc/redirects \ + doc/redirects.py \ + $(NULL) + +install-data-local: install-data-local-sphinx +uninstall-local: uninstall-local-sphinx + +if ENABLE_DOCUMENTATION +all: doc/_build/.stamp + +doc/_build/.stamp: $(nobase_python_PYTHON) \ + _dbus_bindings.la \ + _dbus_glib_bindings.la \ + $(sphinx_sources) \ + Makefile \ + $(NULL) + rm -rf doc/_build + $(MKDIR_P) doc/_build + abs_top_srcdir='$(abs_top_srcdir)' \ + abs_top_builddir='$(abs_top_builddir)' \ + DBUS_PYTHON_NO_DEPRECATED=1 \ + $(PYTHON) -m sphinx -b html $(abs_top_srcdir)/doc doc/_build + touch $@ + +maintainer-update-website: doc/_build/.stamp + DBUS_TOP_SRCDIR="$(abs_top_srcdir)" \ + $(PYTHON) $(srcdir)/doc/redirects.py + rsync -rtvzPp --chmod=Dg+s,ug+rwX,o=rX doc/_build/ \ dbus.freedesktop.org:/srv/dbus.freedesktop.org/www/doc/dbus-python/ -HTML_TXT_RSTDOCS = $(patsubst %.txt,%.html,$(TXT_RSTDOCS)) -HTML_RSTDOCS = $(patsubst %,%.html,$(RSTDOCS)) -nodist_doc_DATA = $(HTML_TXT_RSTDOCS) $(HTML_RSTDOCS) - -CLEANFILES += $(nodist_doc_DATA) +install-data-local-sphinx: doc/_build/.stamp + $(mkinstalldirs) $(DESTDIR)$(htmldir) + cp -R doc/_build/* $(DESTDIR)$(htmldir) -$(HTML_TXT_RSTDOCS) : %.html: %.txt - $(INSTALL) -d doc - $(RST2HTML) $(RST2HTMLFLAGS) $< $@ -$(HTML_RSTDOCS) : %.html: % - $(RST2HTML) $(RST2HTMLFLAGS) $< $@ +uninstall-local-sphinx: + rm -fr $(DESTDIR)$(htmldir) else -_maintainer-update-htmldocs: - @echo "*** Not updating the HTML docs on the website - install rst2html" - @echo "*** from http://docutils.sourceforge.net/ and configure with " - @echo "*** --enable-html-docs" +maintainer-update-website: + @echo "*** Not updating the API docs on the website - install sphinx" + @echo "*** and configure with --enable-api-docs" +install-data-local-sphinx: + @: +uninstall-local-sphinx: + @: endif -if ENABLE_API_DOCS -all: api/index.html - clean-local: - rm -rf api - -APIDOC_PYTHONPATH = $(abs_top_srcdir):$(abs_top_builddir)/.libs - -api api/index.html: $(nobase_python_PYTHON) \ - _dbus_bindings.la \ - _dbus_glib_bindings.la - rm -rf api - mkdir api - cd $(abs_top_srcdir) && \ - PYTHONPATH=$(APIDOC_PYTHONPATH) DBUS_PYTHON_NO_DEPRECATED=1 \ - $(PYTHON) -Wignore::DeprecationWarning \ - $(EPYDOC) -o $(abs_top_builddir)/api --html \ - --docformat restructuredtext -v \ - `find dbus -name '*.py' \ - | sed -e 's#/__init__\.py##g' \ - -e 's/\.py\>//g' -e 's#/#.#'g` \ - || { rm -rf api; exit 1; } - -_maintainer-update-apidocs: api - rsync -rtvzPp --chmod=Dg+s,ug+rwX,o=rX api/ \ - dbus.freedesktop.org:/srv/dbus.freedesktop.org/www/doc/dbus-python/api/ -else -_maintainer-update-apidocs: - @echo "*** Not updating the API docs on the website - install epydoc 3" - @echo "*** alpha (or newer) and configure with --enable-api-docs" -endif + rm -rf doc/_build check_c_sources = \ $(_dbus_bindings_la_SOURCES) \ @@ -451,5 +464,4 @@ include $(top_srcdir)/tools/check-coding-style.mk .PHONY: cross-test-compile cross-test-server cross-test-client \ always-rebuild maintainer-update-website \ - _maintainer-update-apidocs _maintainer-update-htmldocs \ maintainer-upload diff --git a/Makefile.in b/Makefile.in index 7d00c95..f622aa1 100644 --- a/Makefile.in +++ b/Makefile.in @@ -115,7 +115,6 @@ TESTS = $(am__EXEEXT_2) $(am__EXEEXT_3) $(am__EXEEXT_1) @ENABLE_INSTALLED_TESTS_TRUE@nobase_installed_test_PROGRAMS = \ @ENABLE_INSTALLED_TESTS_TRUE@ $(am__EXEEXT_1) @ENABLE_INSTALLED_TESTS_FALSE@noinst_PROGRAMS = $(am__EXEEXT_1) -@ENABLE_DOCS_TRUE@am__append_6 = $(nodist_doc_DATA) subdir = . ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/ax_append_compile_flags.m4 \ @@ -132,7 +131,6 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/ax_append_compile_flags.m4 \ $(top_srcdir)/m4/ax_python_devel.m4 \ $(top_srcdir)/m4/ax_python_module.m4 \ $(top_srcdir)/m4/ax_require_defined.m4 \ - $(top_srcdir)/m4/dbus-py-add-rst2htmlflag.m4 \ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/pkg.m4 \ @@ -143,8 +141,8 @@ DIST_COMMON = $(srcdir)/Makefile.am $(top_srcdir)/configure \ $(am__configure_deps) $(am__dist_noinst_SCRIPTS_DIST) \ $(am__nobase_dist_installed_test_SCRIPTS_DIST) \ $(am__nobase_dist_installed_test_PYTHON_DIST) \ - $(am__nobase_python_PYTHON_DIST) $(dist_doc_DATA) \ - $(dbusinclude_HEADERS) $(am__DIST_COMMON) + $(am__nobase_python_PYTHON_DIST) $(dbusinclude_HEADERS) \ + $(am__DIST_COMMON) am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \ configure.lineno config.status.lineno mkinstalldirs = $(install_sh) -d @@ -182,8 +180,8 @@ am__installdirs = "$(DESTDIR)$(installed_testdir)" \ "$(DESTDIR)$(pyexecdir)" "$(DESTDIR)$(installed_testdir)" \ "$(DESTDIR)$(installed_testdir)" \ "$(DESTDIR)$(installed_testdir)" "$(DESTDIR)$(pythondir)" \ - "$(DESTDIR)$(docdir)" "$(DESTDIR)$(installed_test_metadir)" \ - "$(DESTDIR)$(installed_test_testdir)" "$(DESTDIR)$(docdir)" \ + "$(DESTDIR)$(installed_test_metadir)" \ + "$(DESTDIR)$(installed_test_testdir)" \ "$(DESTDIR)$(pkgconfigdir)" "$(DESTDIR)$(dbusincludedir)" LTLIBRARIES = $(nobase_installed_test_LTLIBRARIES) \ $(noinst_LTLIBRARIES) $(pyexec_LTLIBRARIES) @@ -326,9 +324,8 @@ am__nobase_python_PYTHON_DIST = dbus/bus.py dbus/connection.py \ dbus/mainloop/glib.py dbus/proxies.py dbus/server.py \ dbus/service.py dbus/types.py dbus/gobject_service.py py_compile = $(top_srcdir)/build-aux/py-compile -DATA = $(dist_doc_DATA) $(installed_test_meta_DATA) \ - $(installed_test_test_DATA) $(nodist_doc_DATA) $(noinst_DATA) \ - $(pkgconfig_DATA) +DATA = $(installed_test_meta_DATA) $(installed_test_test_DATA) \ + $(noinst_DATA) $(pkgconfig_DATA) HEADERS = $(dbusinclude_HEADERS) RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive @@ -625,7 +622,6 @@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ -EPYDOC = @EPYDOC@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GIT = @GIT@ @@ -680,8 +676,6 @@ PYTHON_PREFIX = @PYTHON_PREFIX@ PYTHON_SITE_PKG = @PYTHON_SITE_PKG@ PYTHON_VERSION = @PYTHON_VERSION@ RANLIB = @RANLIB@ -RST2HTML = @RST2HTML@ -RST2HTMLFLAGS = @RST2HTMLFLAGS@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ @@ -753,33 +747,23 @@ installed_test_metadir = ${datadir}/installed-tests/${PACKAGE_TARNAME} ACLOCAL_AMFLAGS = -I m4 SUBDIRS = dbus-gmain . CLEANFILES = test/test-service.log $(NULL) $(noinst_DATA) \ - $(installed_test_test_data) $(installed_test_metadata) \ - $(am__append_6) -EXTRA_DIST = \ - .travis.yml \ - AUTHORS \ - COPYING \ - ChangeLog \ - dbus-python.pc.in \ - examples/example-async-client.py \ - examples/example-client.py \ - examples/example-service.py \ + $(installed_test_test_data) $(installed_test_metadata) + +# A hack used for the HTML documentation on dbus.freedesktop.org +EXTRA_DIST = .travis.yml AUTHORS COPYING ChangeLog dbus-python.pc.in \ + doc/_static/.gitignore examples/example-async-client.py \ + examples/example-client.py examples/example-service.py \ examples/example-signal-emitter.py \ examples/example-signal-recipient.py \ examples/gconf-proxy-client.py \ examples/gconf-proxy-service2.py \ - examples/list-system-services.py \ - examples/unix-fd-client.py \ - examples/unix-fd-service.py \ - m4/dbus-py-add-rst2htmlflag.m4 \ - setup.py \ + examples/list-system-services.py examples/unix-fd-client.py \ + examples/unix-fd-service.py setup.py \ test/TestSuitePythonService.service.in \ - test/tmp-session-bus.conf.in \ - tools/check-c-style.sh \ - tools/check-coding-style.mk \ - tools/check-py-style.sh \ - tools/check-whitespace.sh - + test/tmp-session-bus.conf.in tools/check-c-style.sh \ + tools/check-coding-style.mk tools/check-py-style.sh \ + tools/check-whitespace.sh $(sphinx_sources) doc/redirects \ + doc/redirects.py $(NULL) # === C code === AM_CPPFLAGS = \ @@ -982,23 +966,32 @@ installed_test_metadata = \ $(patsubst %,%.test,$(test_programs)) \ $(NULL) -TXT_RSTDOCS = \ - doc/tutorial.txt \ +sphinx_sources = \ doc/API_CHANGES.txt \ + doc/conf.py \ + doc/dbus.bus.rst \ + doc/dbus.connection.rst \ + doc/dbus.decorators.rst \ + doc/dbus.exceptions.rst \ + doc/dbus.gi_service.rst \ + doc/dbus.glib.rst \ + doc/dbus.gobject_service.rst \ + doc/dbus.lowlevel.rst \ + doc/dbus.mainloop.rst \ + doc/dbus.proxies.rst \ + doc/dbus.rst \ + doc/dbus.server.rst \ + doc/dbus.service.rst \ + doc/dbus.types.rst \ doc/HACKING.txt \ + doc/index.rst \ + doc/news.rst \ doc/PY3PORT.txt \ - $(NULL) - -RSTDOCS = \ - README \ + doc/tutorial.txt \ NEWS \ + README \ $(NULL) -dist_doc_DATA = $(TXT_RSTDOCS) $(RSTDOCS) -@ENABLE_DOCS_TRUE@HTML_TXT_RSTDOCS = $(patsubst %.txt,%.html,$(TXT_RSTDOCS)) -@ENABLE_DOCS_TRUE@HTML_RSTDOCS = $(patsubst %,%.html,$(RSTDOCS)) -@ENABLE_DOCS_TRUE@nodist_doc_DATA = $(HTML_TXT_RSTDOCS) $(HTML_RSTDOCS) -@ENABLE_API_DOCS_TRUE@APIDOC_PYTHONPATH = $(abs_top_srcdir):$(abs_top_builddir)/.libs check_c_sources = \ $(_dbus_bindings_la_SOURCES) \ $(_dbus_glib_bindings_la_SOURCES) \ @@ -1521,27 +1514,6 @@ uninstall-nobase_pythonPYTHON: $(am__uninstall_files_from_dir) || st=$$?; \ done; \ exit $$st -install-dist_docDATA: $(dist_doc_DATA) - @$(NORMAL_INSTALL) - @list='$(dist_doc_DATA)'; test -n "$(docdir)" || list=; \ - if test -n "$$list"; then \ - echo " $(MKDIR_P) '$(DESTDIR)$(docdir)'"; \ - $(MKDIR_P) "$(DESTDIR)$(docdir)" || exit 1; \ - fi; \ - for p in $$list; do \ - if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ - echo "$$d$$p"; \ - done | $(am__base_list) | \ - while read files; do \ - echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(docdir)'"; \ - $(INSTALL_DATA) $$files "$(DESTDIR)$(docdir)" || exit $$?; \ - done - -uninstall-dist_docDATA: - @$(NORMAL_UNINSTALL) - @list='$(dist_doc_DATA)'; test -n "$(docdir)" || list=; \ - files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ - dir='$(DESTDIR)$(docdir)'; $(am__uninstall_files_from_dir) install-installed_test_metaDATA: $(installed_test_meta_DATA) @$(NORMAL_INSTALL) @list='$(installed_test_meta_DATA)'; test -n "$(installed_test_metadir)" || list=; \ @@ -1584,27 +1556,6 @@ uninstall-installed_test_testDATA: @list='$(installed_test_test_DATA)'; test -n "$(installed_test_testdir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ dir='$(DESTDIR)$(installed_test_testdir)'; $(am__uninstall_files_from_dir) -install-nodist_docDATA: $(nodist_doc_DATA) - @$(NORMAL_INSTALL) - @list='$(nodist_doc_DATA)'; test -n "$(docdir)" || list=; \ - if test -n "$$list"; then \ - echo " $(MKDIR_P) '$(DESTDIR)$(docdir)'"; \ - $(MKDIR_P) "$(DESTDIR)$(docdir)" || exit 1; \ - fi; \ - for p in $$list; do \ - if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ - echo "$$d$$p"; \ - done | $(am__base_list) | \ - while read files; do \ - echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(docdir)'"; \ - $(INSTALL_DATA) $$files "$(DESTDIR)$(docdir)" || exit $$?; \ - done - -uninstall-nodist_docDATA: - @$(NORMAL_UNINSTALL) - @list='$(nodist_doc_DATA)'; test -n "$(docdir)" || list=; \ - files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ - dir='$(DESTDIR)$(docdir)'; $(am__uninstall_files_from_dir) install-pkgconfigDATA: $(pkgconfig_DATA) @$(NORMAL_INSTALL) @list='$(pkgconfig_DATA)'; test -n "$(pkgconfigdir)" || list=; \ @@ -2129,7 +2080,7 @@ all-am: Makefile $(LTLIBRARIES) $(PROGRAMS) $(SCRIPTS) $(DATA) \ $(HEADERS) config.h installdirs: installdirs-recursive installdirs-am: - for dir in "$(DESTDIR)$(installed_testdir)" "$(DESTDIR)$(pyexecdir)" "$(DESTDIR)$(installed_testdir)" "$(DESTDIR)$(installed_testdir)" "$(DESTDIR)$(installed_testdir)" "$(DESTDIR)$(pythondir)" "$(DESTDIR)$(docdir)" "$(DESTDIR)$(installed_test_metadir)" "$(DESTDIR)$(installed_test_testdir)" "$(DESTDIR)$(docdir)" "$(DESTDIR)$(pkgconfigdir)" "$(DESTDIR)$(dbusincludedir)"; do \ + for dir in "$(DESTDIR)$(installed_testdir)" "$(DESTDIR)$(pyexecdir)" "$(DESTDIR)$(installed_testdir)" "$(DESTDIR)$(installed_testdir)" "$(DESTDIR)$(installed_testdir)" "$(DESTDIR)$(pythondir)" "$(DESTDIR)$(installed_test_metadir)" "$(DESTDIR)$(installed_test_testdir)" "$(DESTDIR)$(pkgconfigdir)" "$(DESTDIR)$(dbusincludedir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-recursive @@ -2172,7 +2123,6 @@ distclean-generic: maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." -@ENABLE_API_DOCS_FALSE@clean-local: clean: clean-recursive clean-am: clean-generic clean-libtool clean-local \ @@ -2199,15 +2149,14 @@ info: info-recursive info-am: -install-data-am: install-dbusincludeHEADERS install-dist_docDATA \ +install-data-am: install-data-local install-dbusincludeHEADERS \ install-installed_test_metaDATA \ install-installed_test_testDATA \ install-nobase_dist_installed_testPYTHON \ install-nobase_dist_installed_testSCRIPTS \ install-nobase_installed_testLTLIBRARIES \ install-nobase_installed_testPROGRAMS \ - install-nobase_pythonPYTHON install-nodist_docDATA \ - install-pkgconfigDATA + install-nobase_pythonPYTHON install-pkgconfigDATA install-dvi: install-dvi-recursive @@ -2255,15 +2204,15 @@ ps: ps-recursive ps-am: -uninstall-am: uninstall-dbusincludeHEADERS uninstall-dist_docDATA \ +uninstall-am: uninstall-dbusincludeHEADERS \ uninstall-installed_test_metaDATA \ - uninstall-installed_test_testDATA \ + uninstall-installed_test_testDATA uninstall-local \ uninstall-nobase_dist_installed_testPYTHON \ uninstall-nobase_dist_installed_testSCRIPTS \ uninstall-nobase_installed_testLTLIBRARIES \ uninstall-nobase_installed_testPROGRAMS \ - uninstall-nobase_pythonPYTHON uninstall-nodist_docDATA \ - uninstall-pkgconfigDATA uninstall-pyexecLTLIBRARIES + uninstall-nobase_pythonPYTHON uninstall-pkgconfigDATA \ + uninstall-pyexecLTLIBRARIES .MAKE: $(am__recursive_targets) all check-am install-am install-strip @@ -2279,31 +2228,30 @@ uninstall-am: uninstall-dbusincludeHEADERS uninstall-dist_docDATA \ distclean-generic distclean-hdr distclean-libtool \ distclean-tags distcleancheck distdir distuninstallcheck dvi \ dvi-am html html-am info info-am install install-am \ - install-data install-data-am install-dbusincludeHEADERS \ - install-dist_docDATA install-dvi install-dvi-am install-exec \ - install-exec-am install-html install-html-am install-info \ - install-info-am install-installed_test_metaDATA \ + install-data install-data-am install-data-local \ + install-dbusincludeHEADERS install-dvi install-dvi-am \ + install-exec install-exec-am install-html install-html-am \ + install-info install-info-am install-installed_test_metaDATA \ install-installed_test_testDATA install-man \ install-nobase_dist_installed_testPYTHON \ install-nobase_dist_installed_testSCRIPTS \ install-nobase_installed_testLTLIBRARIES \ install-nobase_installed_testPROGRAMS \ - install-nobase_pythonPYTHON install-nodist_docDATA install-pdf \ - install-pdf-am install-pkgconfigDATA install-ps install-ps-am \ + install-nobase_pythonPYTHON install-pdf install-pdf-am \ + install-pkgconfigDATA install-ps install-ps-am \ install-pyexecLTLIBRARIES install-strip installcheck \ installcheck-am installdirs installdirs-am maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-compile \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ recheck tags tags-am uninstall uninstall-am \ - uninstall-dbusincludeHEADERS uninstall-dist_docDATA \ - uninstall-installed_test_metaDATA \ - uninstall-installed_test_testDATA \ + uninstall-dbusincludeHEADERS uninstall-installed_test_metaDATA \ + uninstall-installed_test_testDATA uninstall-local \ uninstall-nobase_dist_installed_testPYTHON \ uninstall-nobase_dist_installed_testSCRIPTS \ uninstall-nobase_installed_testLTLIBRARIES \ uninstall-nobase_installed_testPROGRAMS \ - uninstall-nobase_pythonPYTHON uninstall-nodist_docDATA \ - uninstall-pkgconfigDATA uninstall-pyexecLTLIBRARIES + uninstall-nobase_pythonPYTHON uninstall-pkgconfigDATA \ + uninstall-pyexecLTLIBRARIES .PRECIOUS: Makefile @@ -2365,18 +2313,21 @@ $(installed_test_test_data): test/installable/%: test/%.in $< > $@ $(patsubst %,%.test,$(dist_test_py)): %.test: Makefile + @$(MKDIR_P) $(dir $@) $(AM_V_GEN) (echo '[Test]' > $@.tmp; \ echo 'Type=session' >> $@.tmp; \ echo 'Exec=$(installed_log_compiler) $(PYTHON) $(installed_testdir)/$*' >> $@.tmp; \ mv $@.tmp $@) $(patsubst %,%.test,$(dist_test_sh)): %.test: Makefile + @$(MKDIR_P) $(dir $@) $(AM_V_GEN) (echo '[Test]' > $@.tmp; \ echo 'Type=session' >> $@.tmp; \ echo 'Exec=$(installed_log_compiler) $(installed_testdir)/$*' >> $@.tmp; \ mv $@.tmp $@) $(patsubst %,%.test,$(test_programs)): %.test: Makefile + @$(MKDIR_P) $(dir $@) $(AM_V_GEN) (echo '[Test]' > $@.tmp; \ echo 'Type=session' >> $@.tmp; \ echo 'Exec=$(installed_log_compiler) $(installed_testdir)/$*$(EXEEXT)' >> $@.tmp; \ @@ -2390,60 +2341,60 @@ dist-hook: dist-ChangeLog echo $(VERSION) > $(distdir)/.version touch $(distdir)/MANIFEST touch $(distdir)/MANIFEST.in + ( cd $(distdir) && $(PYTHON) setup.py egg_info ) + cp $(distdir)/dbus_python.egg-info/PKG-INFO $(distdir) ( cd $(distdir) && find -type d -o -print ) | \ LC_ALL=C sort | \ $(SED) -e 's|^\./||' \ > $(distdir)/MANIFEST sed -e 's/.*/include &/' < $(distdir)/MANIFEST > $(distdir)/MANIFEST.in + cp $(distdir)/MANIFEST $(distdir)/dbus_python.egg-info/SOURCES.txt maintainer-upload: rsync -tvpP --chmod=ugo=r $(DIST_ARCHIVES) $(DIST_ARCHIVES:%=%.asc) \ dbus.freedesktop.org:/srv/dbus.freedesktop.org/www/releases/dbus-python/ -maintainer-update-website: _maintainer-update-apidocs \ - _maintainer-update-htmldocs - -@ENABLE_DOCS_TRUE@_maintainer-update-htmldocs: $(HTML_TXT_RSTDOCS) $(HTML_RSTDOCS) -@ENABLE_DOCS_TRUE@ rsync -rtvzPp --chmod=Dg+s,ug+rwX,o=rX doc \ -@ENABLE_DOCS_TRUE@ $(patsubst %,$(srcdir)/%,$(RSTDOCS)) $(HTML_RSTDOCS) \ -@ENABLE_DOCS_TRUE@ dbus.freedesktop.org:/srv/dbus.freedesktop.org/www/doc/dbus-python/ - -@ENABLE_DOCS_TRUE@$(HTML_TXT_RSTDOCS) : %.html: %.txt -@ENABLE_DOCS_TRUE@ $(INSTALL) -d doc -@ENABLE_DOCS_TRUE@ $(RST2HTML) $(RST2HTMLFLAGS) $< $@ -@ENABLE_DOCS_TRUE@$(HTML_RSTDOCS) : %.html: % -@ENABLE_DOCS_TRUE@ $(RST2HTML) $(RST2HTMLFLAGS) $< $@ -@ENABLE_DOCS_FALSE@_maintainer-update-htmldocs: -@ENABLE_DOCS_FALSE@ @echo "*** Not updating the HTML docs on the website - install rst2html" -@ENABLE_DOCS_FALSE@ @echo "*** from http://docutils.sourceforge.net/ and configure with " -@ENABLE_DOCS_FALSE@ @echo "*** --enable-html-docs" - -@ENABLE_API_DOCS_TRUE@all: api/index.html - -@ENABLE_API_DOCS_TRUE@clean-local: -@ENABLE_API_DOCS_TRUE@ rm -rf api - -@ENABLE_API_DOCS_TRUE@api api/index.html: $(nobase_python_PYTHON) \ -@ENABLE_API_DOCS_TRUE@ _dbus_bindings.la \ -@ENABLE_API_DOCS_TRUE@ _dbus_glib_bindings.la -@ENABLE_API_DOCS_TRUE@ rm -rf api -@ENABLE_API_DOCS_TRUE@ mkdir api -@ENABLE_API_DOCS_TRUE@ cd $(abs_top_srcdir) && \ -@ENABLE_API_DOCS_TRUE@ PYTHONPATH=$(APIDOC_PYTHONPATH) DBUS_PYTHON_NO_DEPRECATED=1 \ -@ENABLE_API_DOCS_TRUE@ $(PYTHON) -Wignore::DeprecationWarning \ -@ENABLE_API_DOCS_TRUE@ $(EPYDOC) -o $(abs_top_builddir)/api --html \ -@ENABLE_API_DOCS_TRUE@ --docformat restructuredtext -v \ -@ENABLE_API_DOCS_TRUE@ `find dbus -name '*.py' \ -@ENABLE_API_DOCS_TRUE@ | sed -e 's#/__init__\.py##g' \ -@ENABLE_API_DOCS_TRUE@ -e 's/\.py\>//g' -e 's#/#.#'g` \ -@ENABLE_API_DOCS_TRUE@ || { rm -rf api; exit 1; } - -@ENABLE_API_DOCS_TRUE@_maintainer-update-apidocs: api -@ENABLE_API_DOCS_TRUE@ rsync -rtvzPp --chmod=Dg+s,ug+rwX,o=rX api/ \ -@ENABLE_API_DOCS_TRUE@ dbus.freedesktop.org:/srv/dbus.freedesktop.org/www/doc/dbus-python/api/ -@ENABLE_API_DOCS_FALSE@_maintainer-update-apidocs: -@ENABLE_API_DOCS_FALSE@ @echo "*** Not updating the API docs on the website - install epydoc 3" -@ENABLE_API_DOCS_FALSE@ @echo "*** alpha (or newer) and configure with --enable-api-docs" +install-data-local: install-data-local-sphinx +uninstall-local: uninstall-local-sphinx + +@ENABLE_DOCUMENTATION_TRUE@all: doc/_build/.stamp + +@ENABLE_DOCUMENTATION_TRUE@doc/_build/.stamp: $(nobase_python_PYTHON) \ +@ENABLE_DOCUMENTATION_TRUE@ _dbus_bindings.la \ +@ENABLE_DOCUMENTATION_TRUE@ _dbus_glib_bindings.la \ +@ENABLE_DOCUMENTATION_TRUE@ $(sphinx_sources) \ +@ENABLE_DOCUMENTATION_TRUE@ Makefile \ +@ENABLE_DOCUMENTATION_TRUE@ $(NULL) +@ENABLE_DOCUMENTATION_TRUE@ rm -rf doc/_build +@ENABLE_DOCUMENTATION_TRUE@ $(MKDIR_P) doc/_build +@ENABLE_DOCUMENTATION_TRUE@ abs_top_srcdir='$(abs_top_srcdir)' \ +@ENABLE_DOCUMENTATION_TRUE@ abs_top_builddir='$(abs_top_builddir)' \ +@ENABLE_DOCUMENTATION_TRUE@ DBUS_PYTHON_NO_DEPRECATED=1 \ +@ENABLE_DOCUMENTATION_TRUE@ $(PYTHON) -m sphinx -b html $(abs_top_srcdir)/doc doc/_build +@ENABLE_DOCUMENTATION_TRUE@ touch $@ + +@ENABLE_DOCUMENTATION_TRUE@maintainer-update-website: doc/_build/.stamp +@ENABLE_DOCUMENTATION_TRUE@ DBUS_TOP_SRCDIR="$(abs_top_srcdir)" \ +@ENABLE_DOCUMENTATION_TRUE@ $(PYTHON) $(srcdir)/doc/redirects.py +@ENABLE_DOCUMENTATION_TRUE@ rsync -rtvzPp --chmod=Dg+s,ug+rwX,o=rX doc/_build/ \ +@ENABLE_DOCUMENTATION_TRUE@ dbus.freedesktop.org:/srv/dbus.freedesktop.org/www/doc/dbus-python/ + +@ENABLE_DOCUMENTATION_TRUE@install-data-local-sphinx: doc/_build/.stamp +@ENABLE_DOCUMENTATION_TRUE@ $(mkinstalldirs) $(DESTDIR)$(htmldir) +@ENABLE_DOCUMENTATION_TRUE@ cp -R doc/_build/* $(DESTDIR)$(htmldir) + +@ENABLE_DOCUMENTATION_TRUE@uninstall-local-sphinx: +@ENABLE_DOCUMENTATION_TRUE@ rm -fr $(DESTDIR)$(htmldir) +@ENABLE_DOCUMENTATION_FALSE@maintainer-update-website: +@ENABLE_DOCUMENTATION_FALSE@ @echo "*** Not updating the API docs on the website - install sphinx" +@ENABLE_DOCUMENTATION_FALSE@ @echo "*** and configure with --enable-api-docs" +@ENABLE_DOCUMENTATION_FALSE@install-data-local-sphinx: +@ENABLE_DOCUMENTATION_FALSE@ @: +@ENABLE_DOCUMENTATION_FALSE@uninstall-local-sphinx: +@ENABLE_DOCUMENTATION_FALSE@ @: + +clean-local: + rm -rf doc/_build check-local:: @fail=0; \ cd $(srcdir) || exit $$?; \ @@ -2473,7 +2424,6 @@ check-local:: .PHONY: cross-test-compile cross-test-server cross-test-client \ always-rebuild maintainer-update-website \ - _maintainer-update-apidocs _maintainer-update-htmldocs \ maintainer-upload # Tell versions [3.59,3.63) of GNU make to not export all variables. @@ -1,3 +1,27 @@ +D-Bus Python Bindings 1.2.8 (2018-05-04) +======================================== + +The “cursed ice surface” release. + +Dependencies: + +• Documentation requires Sphinx and the readthedocs theme +• Documentation no longer requires epydoc + +Enhancements: + +• Build documentation with Sphinx instead of epydoc + +• Remove obsolete COMPAT.txt, documenting compatibility breaks in + versions over a decade old + +Fixes: + +• Make sure $(builddir)/test exists before creating .test files there + +• Add PKG-INFO and egg_info to dist tarballs so they can be uploaded + to PyPI again + D-Bus Python Bindings 1.2.6 (2018-01-29) ======================================== diff --git a/PKG-INFO b/PKG-INFO new file mode 100644 index 0000000..f450eca --- /dev/null +++ b/PKG-INFO @@ -0,0 +1,53 @@ +Metadata-Version: 1.2 +Name: dbus-python +Version: 1.2.8 +Summary: Python bindings for libdbus +Home-page: http://www.freedesktop.org/wiki/Software/DBusBindings/#python +Maintainer: The D-Bus maintainers +Maintainer-email: dbus@lists.freedesktop.org +License: Expat (MIT/X11) +Download-URL: http://dbus.freedesktop.org/releases/dbus-python/ +Description: ======================================= + dbus-python_: Python bindings for D-Bus + ======================================= + + .. _dbus-python: http://www.freedesktop.org/wiki/Software/DBusBindings#python + + dbus-python is the original Python binding for ``dbus``, the reference + implementation of the D-Bus protocol. + + Online documentation can be found at + <http://dbus.freedesktop.org/doc/dbus-python/>. + + Problems and alternatives + ========================= + + dbus-python might not be the best D-Bus binding for you to use. dbus-python + does not follow the principle of "In the face of ambiguity, refuse the + temptation to guess", and can't be changed to not do so without seriously + breaking compatibility. + + In addition, it uses libdbus (which has known problems with multi-threaded + use) and attempts to be main-loop-agnostic (which means you have to select + a suitable main loop for your application). + + Alternative ways to get your Python code onto D-Bus include: + + * GDBus, part of the GIO module of `GLib`_, via GObject-Introspection and + `PyGI`_ (uses the GLib main loop and object model) + + * QtDBus, part of `Qt`_, via `PyQt`_ (uses the Qt main loop and object model) + + .. _GLib: http://developer.gnome.org/glib/ + .. _PyGI: https://live.gnome.org/PyGObject + .. _Qt: https://qt.nokia.com/ + .. _PyQT: http://www.riverbankcomputing.co.uk/software/pyqt/intro + +Platform: UNKNOWN +Classifier: Development Status :: 7 - Inactive +Classifier: License :: OSI Approved :: MIT License +Classifier: Programming Language :: C +Classifier: Programming Language :: Python :: 2 +Classifier: Programming Language :: Python :: 3 +Classifier: Programming Language :: Python :: Implementation :: CPython +Classifier: Topic :: Software Development :: Object Brokering @@ -4,35 +4,12 @@ dbus-python_: Python bindings for D-Bus .. _dbus-python: http://www.freedesktop.org/wiki/Software/DBusBindings#python -Usage -===== +dbus-python is the original Python binding for ``dbus``, the reference +implementation of the D-Bus protocol. Online documentation can be found at <http://dbus.freedesktop.org/doc/dbus-python/>. -There is an incomplete tutorial in `doc/tutorial.txt`__ -(if you compile dbus-python with `docutils`_' ``rst2html`` tool installed or -you're reading this document on the D-Bus website, there's also an -`HTML version`__). - -__ doc/tutorial.txt -__ doc/tutorial.html - -`API documentation`_ is generated if you compile dbus-python with `epydoc`_ -version 3 and `docutils`_ installed. An `online copy of the API documentation`_ -is also available. - -.. _API documentation: api/index.html -.. _epydoc: http://epydoc.sourceforge.net/ -.. _docutils: http://docutils.sourceforge.net/ -.. _online copy of the API documentation: - http://dbus.freedesktop.org/doc/dbus-python/api/ - -To develop on dbus-python, see `doc/HACKING.txt`__ or the `HTML version`__. - -__ doc/HACKING.txt -__ doc/HACKING.html - Problems and alternatives ========================= @@ -1436,7 +1436,6 @@ m4_include([m4/ax_is_release.m4]) m4_include([m4/ax_python_devel.m4]) m4_include([m4/ax_python_module.m4]) m4_include([m4/ax_require_defined.m4]) -m4_include([m4/dbus-py-add-rst2htmlflag.m4]) m4_include([m4/libtool.m4]) m4_include([m4/ltoptions.m4]) m4_include([m4/ltsugar.m4]) diff --git a/build-aux/config.guess b/build-aux/config.guess index 31e01ef..f50dcdb 100755 --- a/build-aux/config.guess +++ b/build-aux/config.guess @@ -1,8 +1,8 @@ #! /bin/sh # Attempt to guess a canonical system name. -# Copyright 1992-2017 Free Software Foundation, Inc. +# Copyright 1992-2018 Free Software Foundation, Inc. -timestamp='2017-11-07' +timestamp='2018-02-24' # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by @@ -50,7 +50,7 @@ version="\ GNU config.guess ($timestamp) Originally written by Per Bothner. -Copyright 1992-2017 Free Software Foundation, Inc. +Copyright 1992-2018 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." @@ -107,9 +107,9 @@ trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ; dummy=$tmp/dummy ; tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ; case $CC_FOR_BUILD,$HOST_CC,$CC in - ,,) echo "int x;" > $dummy.c ; + ,,) echo "int x;" > "$dummy.c" ; for c in cc gcc c89 c99 ; do - if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then + if ($c -c -o "$dummy.o" "$dummy.c") >/dev/null 2>&1 ; then CC_FOR_BUILD="$c"; break ; fi ; done ; @@ -132,14 +132,14 @@ UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown -case "${UNAME_SYSTEM}" in +case "$UNAME_SYSTEM" in Linux|GNU|GNU/*) # If the system lacks a compiler, then just pick glibc. # We could probably try harder. LIBC=gnu - eval $set_cc_for_build - cat <<-EOF > $dummy.c + eval "$set_cc_for_build" + cat <<-EOF > "$dummy.c" #include <features.h> #if defined(__UCLIBC__) LIBC=uclibc @@ -149,13 +149,20 @@ Linux|GNU|GNU/*) LIBC=gnu #endif EOF - eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC' | sed 's, ,,g'` + eval "`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^LIBC' | sed 's, ,,g'`" + + # If ldd exists, use it to detect musl libc. + if command -v ldd >/dev/null && \ + ldd --version 2>&1 | grep -q ^musl + then + LIBC=musl + fi ;; esac # Note: order is significant - the case branches are not exclusive. -case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in +case "$UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION" in *:NetBSD:*:*) # NetBSD (nbsd) targets should (where applicable) match one or # more of the tuples: *-*-netbsdelf*, *-*-netbsdaout*, @@ -169,30 +176,30 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in # portion of the name. We always set it to "unknown". sysctl="sysctl -n hw.machine_arch" UNAME_MACHINE_ARCH=`(uname -p 2>/dev/null || \ - /sbin/$sysctl 2>/dev/null || \ - /usr/sbin/$sysctl 2>/dev/null || \ + "/sbin/$sysctl" 2>/dev/null || \ + "/usr/sbin/$sysctl" 2>/dev/null || \ echo unknown)` - case "${UNAME_MACHINE_ARCH}" in + case "$UNAME_MACHINE_ARCH" in armeb) machine=armeb-unknown ;; arm*) machine=arm-unknown ;; sh3el) machine=shl-unknown ;; sh3eb) machine=sh-unknown ;; sh5el) machine=sh5le-unknown ;; earmv*) - arch=`echo ${UNAME_MACHINE_ARCH} | sed -e 's,^e\(armv[0-9]\).*$,\1,'` - endian=`echo ${UNAME_MACHINE_ARCH} | sed -ne 's,^.*\(eb\)$,\1,p'` - machine=${arch}${endian}-unknown + arch=`echo "$UNAME_MACHINE_ARCH" | sed -e 's,^e\(armv[0-9]\).*$,\1,'` + endian=`echo "$UNAME_MACHINE_ARCH" | sed -ne 's,^.*\(eb\)$,\1,p'` + machine="${arch}${endian}"-unknown ;; - *) machine=${UNAME_MACHINE_ARCH}-unknown ;; + *) machine="$UNAME_MACHINE_ARCH"-unknown ;; esac # The Operating System including object format, if it has switched # to ELF recently (or will in the future) and ABI. - case "${UNAME_MACHINE_ARCH}" in + case "$UNAME_MACHINE_ARCH" in earm*) os=netbsdelf ;; arm*|i386|m68k|ns32k|sh3*|sparc|vax) - eval $set_cc_for_build + eval "$set_cc_for_build" if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ | grep -q __ELF__ then @@ -208,10 +215,10 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in ;; esac # Determine ABI tags. - case "${UNAME_MACHINE_ARCH}" in + case "$UNAME_MACHINE_ARCH" in earm*) expr='s/^earmv[0-9]/-eabi/;s/eb$//' - abi=`echo ${UNAME_MACHINE_ARCH} | sed -e "$expr"` + abi=`echo "$UNAME_MACHINE_ARCH" | sed -e "$expr"` ;; esac # The OS release @@ -219,52 +226,55 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in # thus, need a distinct triplet. However, they do not need # kernel version information, so it can be replaced with a # suitable tag, in the style of linux-gnu. - case "${UNAME_VERSION}" in + case "$UNAME_VERSION" in Debian*) release='-gnu' ;; *) - release=`echo ${UNAME_RELEASE} | sed -e 's/[-_].*//' | cut -d. -f1,2` + release=`echo "$UNAME_RELEASE" | sed -e 's/[-_].*//' | cut -d. -f1,2` ;; esac # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: # contains redundant information, the shorter form: # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. - echo "${machine}-${os}${release}${abi}" + echo "$machine-${os}${release}${abi}" exit ;; *:Bitrig:*:*) UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'` - echo ${UNAME_MACHINE_ARCH}-unknown-bitrig${UNAME_RELEASE} + echo "$UNAME_MACHINE_ARCH"-unknown-bitrig"$UNAME_RELEASE" exit ;; *:OpenBSD:*:*) UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` - echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE} + echo "$UNAME_MACHINE_ARCH"-unknown-openbsd"$UNAME_RELEASE" exit ;; *:LibertyBSD:*:*) UNAME_MACHINE_ARCH=`arch | sed 's/^.*BSD\.//'` - echo ${UNAME_MACHINE_ARCH}-unknown-libertybsd${UNAME_RELEASE} + echo "$UNAME_MACHINE_ARCH"-unknown-libertybsd"$UNAME_RELEASE" exit ;; *:MidnightBSD:*:*) - echo ${UNAME_MACHINE}-unknown-midnightbsd${UNAME_RELEASE} + echo "$UNAME_MACHINE"-unknown-midnightbsd"$UNAME_RELEASE" exit ;; *:ekkoBSD:*:*) - echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE} + echo "$UNAME_MACHINE"-unknown-ekkobsd"$UNAME_RELEASE" exit ;; *:SolidBSD:*:*) - echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE} + echo "$UNAME_MACHINE"-unknown-solidbsd"$UNAME_RELEASE" exit ;; macppc:MirBSD:*:*) - echo powerpc-unknown-mirbsd${UNAME_RELEASE} + echo powerpc-unknown-mirbsd"$UNAME_RELEASE" exit ;; *:MirBSD:*:*) - echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE} + echo "$UNAME_MACHINE"-unknown-mirbsd"$UNAME_RELEASE" exit ;; *:Sortix:*:*) - echo ${UNAME_MACHINE}-unknown-sortix + echo "$UNAME_MACHINE"-unknown-sortix exit ;; *:Redox:*:*) - echo ${UNAME_MACHINE}-unknown-redox + echo "$UNAME_MACHINE"-unknown-redox exit ;; + mips:OSF1:*.*) + echo mips-dec-osf1 + exit ;; alpha:OSF1:*:*) case $UNAME_RELEASE in *4.0) @@ -316,7 +326,7 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in # A Tn.n version is a released field test version. # A Xn.n version is an unreleased experimental baselevel. # 1.2 uses "1.2" for uname -r. - echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz` + echo "$UNAME_MACHINE"-dec-osf"`echo "$UNAME_RELEASE" | sed -e 's/^[PVTX]//' | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz`" # Reset EXIT trap before exiting to avoid spurious non-zero exit code. exitcode=$? trap '' 0 @@ -325,10 +335,10 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in echo m68k-unknown-sysv4 exit ;; *:[Aa]miga[Oo][Ss]:*:*) - echo ${UNAME_MACHINE}-unknown-amigaos + echo "$UNAME_MACHINE"-unknown-amigaos exit ;; *:[Mm]orph[Oo][Ss]:*:*) - echo ${UNAME_MACHINE}-unknown-morphos + echo "$UNAME_MACHINE"-unknown-morphos exit ;; *:OS/390:*:*) echo i370-ibm-openedition @@ -340,7 +350,7 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in echo powerpc-ibm-os400 exit ;; arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) - echo arm-acorn-riscix${UNAME_RELEASE} + echo arm-acorn-riscix"$UNAME_RELEASE" exit ;; arm*:riscos:*:*|arm*:RISCOS:*:*) echo arm-unknown-riscos @@ -367,19 +377,19 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in sparc) echo sparc-icl-nx7; exit ;; esac ;; s390x:SunOS:*:*) - echo ${UNAME_MACHINE}-ibm-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + echo "$UNAME_MACHINE"-ibm-solaris2"`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`" exit ;; sun4H:SunOS:5.*:*) - echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + echo sparc-hal-solaris2"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`" exit ;; sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) - echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + echo sparc-sun-solaris2"`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`" exit ;; i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*) - echo i386-pc-auroraux${UNAME_RELEASE} + echo i386-pc-auroraux"$UNAME_RELEASE" exit ;; i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*) - eval $set_cc_for_build + eval "$set_cc_for_build" SUN_ARCH=i386 # If there is a compiler, see if it is configured for 64-bit objects. # Note that the Sun cc does not turn __LP64__ into 1 like gcc does. @@ -392,13 +402,13 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in SUN_ARCH=x86_64 fi fi - echo ${SUN_ARCH}-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + echo "$SUN_ARCH"-pc-solaris2"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`" exit ;; sun4*:SunOS:6*:*) # According to config.sub, this is the proper way to canonicalize # SunOS6. Hard to guess exactly what SunOS6 will be like, but # it's likely to be more like Solaris than SunOS4. - echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + echo sparc-sun-solaris3"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`" exit ;; sun4*:SunOS:*:*) case "`/usr/bin/arch -k`" in @@ -407,25 +417,25 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in ;; esac # Japanese Language versions have a version number like `4.1.3-JL'. - echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'` + echo sparc-sun-sunos"`echo "$UNAME_RELEASE"|sed -e 's/-/_/'`" exit ;; sun3*:SunOS:*:*) - echo m68k-sun-sunos${UNAME_RELEASE} + echo m68k-sun-sunos"$UNAME_RELEASE" exit ;; sun*:*:4.2BSD:*) UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` - test "x${UNAME_RELEASE}" = x && UNAME_RELEASE=3 + test "x$UNAME_RELEASE" = x && UNAME_RELEASE=3 case "`/bin/arch`" in sun3) - echo m68k-sun-sunos${UNAME_RELEASE} + echo m68k-sun-sunos"$UNAME_RELEASE" ;; sun4) - echo sparc-sun-sunos${UNAME_RELEASE} + echo sparc-sun-sunos"$UNAME_RELEASE" ;; esac exit ;; aushp:SunOS:*:*) - echo sparc-auspex-sunos${UNAME_RELEASE} + echo sparc-auspex-sunos"$UNAME_RELEASE" exit ;; # The situation for MiNT is a little confusing. The machine name # can be virtually everything (everything which is not @@ -436,44 +446,44 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in # MiNT. But MiNT is downward compatible to TOS, so this should # be no problem. atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) - echo m68k-atari-mint${UNAME_RELEASE} + echo m68k-atari-mint"$UNAME_RELEASE" exit ;; atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) - echo m68k-atari-mint${UNAME_RELEASE} + echo m68k-atari-mint"$UNAME_RELEASE" exit ;; *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) - echo m68k-atari-mint${UNAME_RELEASE} + echo m68k-atari-mint"$UNAME_RELEASE" exit ;; milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) - echo m68k-milan-mint${UNAME_RELEASE} + echo m68k-milan-mint"$UNAME_RELEASE" exit ;; hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) - echo m68k-hades-mint${UNAME_RELEASE} + echo m68k-hades-mint"$UNAME_RELEASE" exit ;; *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) - echo m68k-unknown-mint${UNAME_RELEASE} + echo m68k-unknown-mint"$UNAME_RELEASE" exit ;; m68k:machten:*:*) - echo m68k-apple-machten${UNAME_RELEASE} + echo m68k-apple-machten"$UNAME_RELEASE" exit ;; powerpc:machten:*:*) - echo powerpc-apple-machten${UNAME_RELEASE} + echo powerpc-apple-machten"$UNAME_RELEASE" exit ;; RISC*:Mach:*:*) echo mips-dec-mach_bsd4.3 exit ;; RISC*:ULTRIX:*:*) - echo mips-dec-ultrix${UNAME_RELEASE} + echo mips-dec-ultrix"$UNAME_RELEASE" exit ;; VAX*:ULTRIX*:*:*) - echo vax-dec-ultrix${UNAME_RELEASE} + echo vax-dec-ultrix"$UNAME_RELEASE" exit ;; 2020:CLIX:*:* | 2430:CLIX:*:*) - echo clipper-intergraph-clix${UNAME_RELEASE} + echo clipper-intergraph-clix"$UNAME_RELEASE" exit ;; mips:*:*:UMIPS | mips:*:*:RISCos) - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c + eval "$set_cc_for_build" + sed 's/^ //' << EOF > "$dummy.c" #ifdef __cplusplus #include <stdio.h> /* for printf() prototype */ int main (int argc, char *argv[]) { @@ -494,11 +504,11 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in exit (-1); } EOF - $CC_FOR_BUILD -o $dummy $dummy.c && - dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` && - SYSTEM_NAME=`$dummy $dummyarg` && + $CC_FOR_BUILD -o "$dummy" "$dummy.c" && + dummyarg=`echo "$UNAME_RELEASE" | sed -n 's/\([0-9]*\).*/\1/p'` && + SYSTEM_NAME=`"$dummy" "$dummyarg"` && { echo "$SYSTEM_NAME"; exit; } - echo mips-mips-riscos${UNAME_RELEASE} + echo mips-mips-riscos"$UNAME_RELEASE" exit ;; Motorola:PowerMAX_OS:*:*) echo powerpc-motorola-powermax @@ -524,17 +534,17 @@ EOF AViiON:dgux:*:*) # DG/UX returns AViiON for all architectures UNAME_PROCESSOR=`/usr/bin/uname -p` - if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ] + if [ "$UNAME_PROCESSOR" = mc88100 ] || [ "$UNAME_PROCESSOR" = mc88110 ] then - if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \ - [ ${TARGET_BINARY_INTERFACE}x = x ] + if [ "$TARGET_BINARY_INTERFACE"x = m88kdguxelfx ] || \ + [ "$TARGET_BINARY_INTERFACE"x = x ] then - echo m88k-dg-dgux${UNAME_RELEASE} + echo m88k-dg-dgux"$UNAME_RELEASE" else - echo m88k-dg-dguxbcs${UNAME_RELEASE} + echo m88k-dg-dguxbcs"$UNAME_RELEASE" fi else - echo i586-dg-dgux${UNAME_RELEASE} + echo i586-dg-dgux"$UNAME_RELEASE" fi exit ;; M88*:DolphinOS:*:*) # DolphinOS (SVR3) @@ -551,7 +561,7 @@ EOF echo m68k-tektronix-bsd exit ;; *:IRIX*:*:*) - echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'` + echo mips-sgi-irix"`echo "$UNAME_RELEASE"|sed -e 's/-/_/g'`" exit ;; ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id @@ -563,14 +573,14 @@ EOF if [ -x /usr/bin/oslevel ] ; then IBM_REV=`/usr/bin/oslevel` else - IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} + IBM_REV="$UNAME_VERSION.$UNAME_RELEASE" fi - echo ${UNAME_MACHINE}-ibm-aix${IBM_REV} + echo "$UNAME_MACHINE"-ibm-aix"$IBM_REV" exit ;; *:AIX:2:3) if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c + eval "$set_cc_for_build" + sed 's/^ //' << EOF > "$dummy.c" #include <sys/systemcfg.h> main() @@ -581,7 +591,7 @@ EOF exit(0); } EOF - if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` + if $CC_FOR_BUILD -o "$dummy" "$dummy.c" && SYSTEM_NAME=`"$dummy"` then echo "$SYSTEM_NAME" else @@ -595,7 +605,7 @@ EOF exit ;; *:AIX:*:[4567]) IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` - if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then + if /usr/sbin/lsattr -El "$IBM_CPU_ID" | grep ' POWER' >/dev/null 2>&1; then IBM_ARCH=rs6000 else IBM_ARCH=powerpc @@ -604,9 +614,9 @@ EOF IBM_REV=`/usr/bin/lslpp -Lqc bos.rte.libc | awk -F: '{ print $3 }' | sed s/[0-9]*$/0/` else - IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} + IBM_REV="$UNAME_VERSION.$UNAME_RELEASE" fi - echo ${IBM_ARCH}-ibm-aix${IBM_REV} + echo "$IBM_ARCH"-ibm-aix"$IBM_REV" exit ;; *:AIX:*:*) echo rs6000-ibm-aix @@ -615,7 +625,7 @@ EOF echo romp-ibm-bsd4.4 exit ;; ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and - echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to + echo romp-ibm-bsd"$UNAME_RELEASE" # 4.3 with uname added to exit ;; # report: romp-ibm BSD 4.3 *:BOSX:*:*) echo rs6000-bull-bosx @@ -630,28 +640,28 @@ EOF echo m68k-hp-bsd4.4 exit ;; 9000/[34678]??:HP-UX:*:*) - HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` - case "${UNAME_MACHINE}" in + HPUX_REV=`echo "$UNAME_RELEASE"|sed -e 's/[^.]*.[0B]*//'` + case "$UNAME_MACHINE" in 9000/31?) HP_ARCH=m68000 ;; 9000/[34]??) HP_ARCH=m68k ;; 9000/[678][0-9][0-9]) if [ -x /usr/bin/getconf ]; then sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` - case "${sc_cpu_version}" in + case "$sc_cpu_version" in 523) HP_ARCH=hppa1.0 ;; # CPU_PA_RISC1_0 528) HP_ARCH=hppa1.1 ;; # CPU_PA_RISC1_1 532) # CPU_PA_RISC2_0 - case "${sc_kernel_bits}" in + case "$sc_kernel_bits" in 32) HP_ARCH=hppa2.0n ;; 64) HP_ARCH=hppa2.0w ;; '') HP_ARCH=hppa2.0 ;; # HP-UX 10.20 esac ;; esac fi - if [ "${HP_ARCH}" = "" ]; then - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c + if [ "$HP_ARCH" = "" ]; then + eval "$set_cc_for_build" + sed 's/^ //' << EOF > "$dummy.c" #define _HPUX_SOURCE #include <stdlib.h> @@ -684,13 +694,13 @@ EOF exit (0); } EOF - (CCOPTS="" $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy` + (CCOPTS="" $CC_FOR_BUILD -o "$dummy" "$dummy.c" 2>/dev/null) && HP_ARCH=`"$dummy"` test -z "$HP_ARCH" && HP_ARCH=hppa fi ;; esac - if [ ${HP_ARCH} = hppa2.0w ] + if [ "$HP_ARCH" = hppa2.0w ] then - eval $set_cc_for_build + eval "$set_cc_for_build" # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler @@ -709,15 +719,15 @@ EOF HP_ARCH=hppa64 fi fi - echo ${HP_ARCH}-hp-hpux${HPUX_REV} + echo "$HP_ARCH"-hp-hpux"$HPUX_REV" exit ;; ia64:HP-UX:*:*) - HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` - echo ia64-hp-hpux${HPUX_REV} + HPUX_REV=`echo "$UNAME_RELEASE"|sed -e 's/[^.]*.[0B]*//'` + echo ia64-hp-hpux"$HPUX_REV" exit ;; 3050*:HI-UX:*:*) - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c + eval "$set_cc_for_build" + sed 's/^ //' << EOF > "$dummy.c" #include <unistd.h> int main () @@ -742,7 +752,7 @@ EOF exit (0); } EOF - $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` && + $CC_FOR_BUILD -o "$dummy" "$dummy.c" && SYSTEM_NAME=`"$dummy"` && { echo "$SYSTEM_NAME"; exit; } echo unknown-hitachi-hiuxwe2 exit ;; @@ -763,9 +773,9 @@ EOF exit ;; i*86:OSF1:*:*) if [ -x /usr/sbin/sysversion ] ; then - echo ${UNAME_MACHINE}-unknown-osf1mk + echo "$UNAME_MACHINE"-unknown-osf1mk else - echo ${UNAME_MACHINE}-unknown-osf1 + echo "$UNAME_MACHINE"-unknown-osf1 fi exit ;; parisc*:Lites*:*:*) @@ -790,109 +800,109 @@ EOF echo c4-convex-bsd exit ;; CRAY*Y-MP:*:*:*) - echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + echo ymp-cray-unicos"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*[A-Z]90:*:*:*) - echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \ + echo "$UNAME_MACHINE"-cray-unicos"$UNAME_RELEASE" \ | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \ -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \ -e 's/\.[^.]*$/.X/' exit ;; CRAY*TS:*:*:*) - echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + echo t90-cray-unicos"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*T3E:*:*:*) - echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + echo alphaev5-cray-unicosmk"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*SV1:*:*:*) - echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + echo sv1-cray-unicos"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/' exit ;; *:UNICOS/mp:*:*) - echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + echo craynv-cray-unicosmp"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/' exit ;; F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) FUJITSU_PROC=`uname -m | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz` FUJITSU_SYS=`uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///'` - FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` + FUJITSU_REL=`echo "$UNAME_RELEASE" | sed -e 's/ /_/'` echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" exit ;; 5000:UNIX_System_V:4.*:*) FUJITSU_SYS=`uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///'` - FUJITSU_REL=`echo ${UNAME_RELEASE} | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/ /_/'` + FUJITSU_REL=`echo "$UNAME_RELEASE" | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/ /_/'` echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" exit ;; i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) - echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} + echo "$UNAME_MACHINE"-pc-bsdi"$UNAME_RELEASE" exit ;; sparc*:BSD/OS:*:*) - echo sparc-unknown-bsdi${UNAME_RELEASE} + echo sparc-unknown-bsdi"$UNAME_RELEASE" exit ;; *:BSD/OS:*:*) - echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} + echo "$UNAME_MACHINE"-unknown-bsdi"$UNAME_RELEASE" exit ;; *:FreeBSD:*:*) UNAME_PROCESSOR=`/usr/bin/uname -p` - case ${UNAME_PROCESSOR} in + case "$UNAME_PROCESSOR" in amd64) UNAME_PROCESSOR=x86_64 ;; i386) UNAME_PROCESSOR=i586 ;; esac - echo ${UNAME_PROCESSOR}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` + echo "$UNAME_PROCESSOR"-unknown-freebsd"`echo "$UNAME_RELEASE"|sed -e 's/[-(].*//'`" exit ;; i*:CYGWIN*:*) - echo ${UNAME_MACHINE}-pc-cygwin + echo "$UNAME_MACHINE"-pc-cygwin exit ;; *:MINGW64*:*) - echo ${UNAME_MACHINE}-pc-mingw64 + echo "$UNAME_MACHINE"-pc-mingw64 exit ;; *:MINGW*:*) - echo ${UNAME_MACHINE}-pc-mingw32 + echo "$UNAME_MACHINE"-pc-mingw32 exit ;; *:MSYS*:*) - echo ${UNAME_MACHINE}-pc-msys + echo "$UNAME_MACHINE"-pc-msys exit ;; i*:PW*:*) - echo ${UNAME_MACHINE}-pc-pw32 + echo "$UNAME_MACHINE"-pc-pw32 exit ;; *:Interix*:*) - case ${UNAME_MACHINE} in + case "$UNAME_MACHINE" in x86) - echo i586-pc-interix${UNAME_RELEASE} + echo i586-pc-interix"$UNAME_RELEASE" exit ;; authenticamd | genuineintel | EM64T) - echo x86_64-unknown-interix${UNAME_RELEASE} + echo x86_64-unknown-interix"$UNAME_RELEASE" exit ;; IA64) - echo ia64-unknown-interix${UNAME_RELEASE} + echo ia64-unknown-interix"$UNAME_RELEASE" exit ;; esac ;; i*:UWIN*:*) - echo ${UNAME_MACHINE}-pc-uwin + echo "$UNAME_MACHINE"-pc-uwin exit ;; amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*) echo x86_64-unknown-cygwin exit ;; prep*:SunOS:5.*:*) - echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + echo powerpcle-unknown-solaris2"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`" exit ;; *:GNU:*:*) # the GNU system - echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-${LIBC}`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` + echo "`echo "$UNAME_MACHINE"|sed -e 's,[-/].*$,,'`-unknown-$LIBC`echo "$UNAME_RELEASE"|sed -e 's,/.*$,,'`" exit ;; *:GNU/*:*:*) # other systems with GNU libc and userland - echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr "[:upper:]" "[:lower:]"``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-${LIBC} + echo "$UNAME_MACHINE-unknown-`echo "$UNAME_SYSTEM" | sed 's,^[^/]*/,,' | tr "[:upper:]" "[:lower:]"``echo "$UNAME_RELEASE"|sed -e 's/[-(].*//'`-$LIBC" exit ;; i*86:Minix:*:*) - echo ${UNAME_MACHINE}-pc-minix + echo "$UNAME_MACHINE"-pc-minix exit ;; aarch64:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; aarch64_be:Linux:*:*) UNAME_MACHINE=aarch64_be - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; alpha:Linux:*:*) case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in @@ -906,63 +916,63 @@ EOF esac objdump --private-headers /bin/sh | grep -q ld.so.1 if test "$?" = 0 ; then LIBC=gnulibc1 ; fi - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; arc:Linux:*:* | arceb:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; arm*:Linux:*:*) - eval $set_cc_for_build + eval "$set_cc_for_build" if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \ | grep -q __ARM_EABI__ then - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" else if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \ | grep -q __ARM_PCS_VFP then - echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabi + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"eabi else - echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabihf + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"eabihf fi fi exit ;; avr32*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; cris:Linux:*:*) - echo ${UNAME_MACHINE}-axis-linux-${LIBC} + echo "$UNAME_MACHINE"-axis-linux-"$LIBC" exit ;; crisv32:Linux:*:*) - echo ${UNAME_MACHINE}-axis-linux-${LIBC} + echo "$UNAME_MACHINE"-axis-linux-"$LIBC" exit ;; e2k:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; frv:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; hexagon:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; i*86:Linux:*:*) - echo ${UNAME_MACHINE}-pc-linux-${LIBC} + echo "$UNAME_MACHINE"-pc-linux-"$LIBC" exit ;; ia64:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; k1om:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; m32r*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; m68*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; mips:Linux:*:* | mips64:Linux:*:*) - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c + eval "$set_cc_for_build" + sed 's/^ //' << EOF > "$dummy.c" #undef CPU #undef ${UNAME_MACHINE} #undef ${UNAME_MACHINE}el @@ -976,70 +986,74 @@ EOF #endif #endif EOF - eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'` - test x"${CPU}" != x && { echo "${CPU}-unknown-linux-${LIBC}"; exit; } + eval "`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^CPU'`" + test "x$CPU" != x && { echo "$CPU-unknown-linux-$LIBC"; exit; } ;; mips64el:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; openrisc*:Linux:*:*) - echo or1k-unknown-linux-${LIBC} + echo or1k-unknown-linux-"$LIBC" exit ;; or32:Linux:*:* | or1k*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; padre:Linux:*:*) - echo sparc-unknown-linux-${LIBC} + echo sparc-unknown-linux-"$LIBC" exit ;; parisc64:Linux:*:* | hppa64:Linux:*:*) - echo hppa64-unknown-linux-${LIBC} + echo hppa64-unknown-linux-"$LIBC" exit ;; parisc:Linux:*:* | hppa:Linux:*:*) # Look for CPU level case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in - PA7*) echo hppa1.1-unknown-linux-${LIBC} ;; - PA8*) echo hppa2.0-unknown-linux-${LIBC} ;; - *) echo hppa-unknown-linux-${LIBC} ;; + PA7*) echo hppa1.1-unknown-linux-"$LIBC" ;; + PA8*) echo hppa2.0-unknown-linux-"$LIBC" ;; + *) echo hppa-unknown-linux-"$LIBC" ;; esac exit ;; ppc64:Linux:*:*) - echo powerpc64-unknown-linux-${LIBC} + echo powerpc64-unknown-linux-"$LIBC" exit ;; ppc:Linux:*:*) - echo powerpc-unknown-linux-${LIBC} + echo powerpc-unknown-linux-"$LIBC" exit ;; ppc64le:Linux:*:*) - echo powerpc64le-unknown-linux-${LIBC} + echo powerpc64le-unknown-linux-"$LIBC" exit ;; ppcle:Linux:*:*) - echo powerpcle-unknown-linux-${LIBC} + echo powerpcle-unknown-linux-"$LIBC" exit ;; riscv32:Linux:*:* | riscv64:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; s390:Linux:*:* | s390x:Linux:*:*) - echo ${UNAME_MACHINE}-ibm-linux-${LIBC} + echo "$UNAME_MACHINE"-ibm-linux-"$LIBC" exit ;; sh64*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; sh*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; sparc:Linux:*:* | sparc64:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; tile*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; vax:Linux:*:*) - echo ${UNAME_MACHINE}-dec-linux-${LIBC} + echo "$UNAME_MACHINE"-dec-linux-"$LIBC" exit ;; x86_64:Linux:*:*) - echo ${UNAME_MACHINE}-pc-linux-${LIBC} + if objdump -f /bin/sh | grep -q elf32-x86-64; then + echo "$UNAME_MACHINE"-pc-linux-"$LIBC"x32 + else + echo "$UNAME_MACHINE"-pc-linux-"$LIBC" + fi exit ;; xtensa*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; i*86:DYNIX/ptx:4*:*) # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. @@ -1053,34 +1067,34 @@ EOF # I am not positive that other SVR4 systems won't match this, # I just have to hope. -- rms. # Use sysv4.2uw... so that sysv4* matches it. - echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION} + echo "$UNAME_MACHINE"-pc-sysv4.2uw"$UNAME_VERSION" exit ;; i*86:OS/2:*:*) # If we were able to find `uname', then EMX Unix compatibility # is probably installed. - echo ${UNAME_MACHINE}-pc-os2-emx + echo "$UNAME_MACHINE"-pc-os2-emx exit ;; i*86:XTS-300:*:STOP) - echo ${UNAME_MACHINE}-unknown-stop + echo "$UNAME_MACHINE"-unknown-stop exit ;; i*86:atheos:*:*) - echo ${UNAME_MACHINE}-unknown-atheos + echo "$UNAME_MACHINE"-unknown-atheos exit ;; i*86:syllable:*:*) - echo ${UNAME_MACHINE}-pc-syllable + echo "$UNAME_MACHINE"-pc-syllable exit ;; i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*) - echo i386-unknown-lynxos${UNAME_RELEASE} + echo i386-unknown-lynxos"$UNAME_RELEASE" exit ;; i*86:*DOS:*:*) - echo ${UNAME_MACHINE}-pc-msdosdjgpp + echo "$UNAME_MACHINE"-pc-msdosdjgpp exit ;; i*86:*:4.*:*) - UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'` + UNAME_REL=`echo "$UNAME_RELEASE" | sed 's/\/MP$//'` if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then - echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL} + echo "$UNAME_MACHINE"-univel-sysv"$UNAME_REL" else - echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL} + echo "$UNAME_MACHINE"-pc-sysv"$UNAME_REL" fi exit ;; i*86:*:5:[678]*) @@ -1090,12 +1104,12 @@ EOF *Pentium) UNAME_MACHINE=i586 ;; *Pent*|*Celeron) UNAME_MACHINE=i686 ;; esac - echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION} + echo "$UNAME_MACHINE-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}{$UNAME_VERSION}" exit ;; i*86:*:3.2:*) if test -f /usr/options/cb.name; then UNAME_REL=`sed -n 's/.*Version //p' </usr/options/cb.name` - echo ${UNAME_MACHINE}-pc-isc$UNAME_REL + echo "$UNAME_MACHINE"-pc-isc"$UNAME_REL" elif /bin/uname -X 2>/dev/null >/dev/null ; then UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')` (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486 @@ -1105,9 +1119,9 @@ EOF && UNAME_MACHINE=i686 (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \ && UNAME_MACHINE=i686 - echo ${UNAME_MACHINE}-pc-sco$UNAME_REL + echo "$UNAME_MACHINE"-pc-sco"$UNAME_REL" else - echo ${UNAME_MACHINE}-pc-sysv32 + echo "$UNAME_MACHINE"-pc-sysv32 fi exit ;; pc:*:*:*) @@ -1127,9 +1141,9 @@ EOF exit ;; i860:*:4.*:*) # i860-SVR4 if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then - echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4 + echo i860-stardent-sysv"$UNAME_RELEASE" # Stardent Vistra i860-SVR4 else # Add other i860-SVR4 vendors below as they are discovered. - echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4 + echo i860-unknown-sysv"$UNAME_RELEASE" # Unknown i860-SVR4 fi exit ;; mini*:CTIX:SYS*5:*) @@ -1149,9 +1163,9 @@ EOF test -r /etc/.relid \ && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ - && { echo i486-ncr-sysv4.3${OS_REL}; exit; } + && { echo i486-ncr-sysv4.3"$OS_REL"; exit; } /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ - && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; + && { echo i586-ncr-sysv4.3"$OS_REL"; exit; } ;; 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ && { echo i486-ncr-sysv4; exit; } ;; @@ -1160,28 +1174,28 @@ EOF test -r /etc/.relid \ && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ - && { echo i486-ncr-sysv4.3${OS_REL}; exit; } + && { echo i486-ncr-sysv4.3"$OS_REL"; exit; } /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ - && { echo i586-ncr-sysv4.3${OS_REL}; exit; } + && { echo i586-ncr-sysv4.3"$OS_REL"; exit; } /bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \ - && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; + && { echo i586-ncr-sysv4.3"$OS_REL"; exit; } ;; m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) - echo m68k-unknown-lynxos${UNAME_RELEASE} + echo m68k-unknown-lynxos"$UNAME_RELEASE" exit ;; mc68030:UNIX_System_V:4.*:*) echo m68k-atari-sysv4 exit ;; TSUNAMI:LynxOS:2.*:*) - echo sparc-unknown-lynxos${UNAME_RELEASE} + echo sparc-unknown-lynxos"$UNAME_RELEASE" exit ;; rs6000:LynxOS:2.*:*) - echo rs6000-unknown-lynxos${UNAME_RELEASE} + echo rs6000-unknown-lynxos"$UNAME_RELEASE" exit ;; PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*) - echo powerpc-unknown-lynxos${UNAME_RELEASE} + echo powerpc-unknown-lynxos"$UNAME_RELEASE" exit ;; SM[BE]S:UNIX_SV:*:*) - echo mips-dde-sysv${UNAME_RELEASE} + echo mips-dde-sysv"$UNAME_RELEASE" exit ;; RM*:ReliantUNIX-*:*:*) echo mips-sni-sysv4 @@ -1192,7 +1206,7 @@ EOF *:SINIX-*:*:*) if uname -p 2>/dev/null >/dev/null ; then UNAME_MACHINE=`(uname -p) 2>/dev/null` - echo ${UNAME_MACHINE}-sni-sysv4 + echo "$UNAME_MACHINE"-sni-sysv4 else echo ns32k-sni-sysv fi @@ -1212,23 +1226,23 @@ EOF exit ;; i*86:VOS:*:*) # From Paul.Green@stratus.com. - echo ${UNAME_MACHINE}-stratus-vos + echo "$UNAME_MACHINE"-stratus-vos exit ;; *:VOS:*:*) # From Paul.Green@stratus.com. echo hppa1.1-stratus-vos exit ;; mc68*:A/UX:*:*) - echo m68k-apple-aux${UNAME_RELEASE} + echo m68k-apple-aux"$UNAME_RELEASE" exit ;; news*:NEWS-OS:6*:*) echo mips-sony-newsos6 exit ;; R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) if [ -d /usr/nec ]; then - echo mips-nec-sysv${UNAME_RELEASE} + echo mips-nec-sysv"$UNAME_RELEASE" else - echo mips-unknown-sysv${UNAME_RELEASE} + echo mips-unknown-sysv"$UNAME_RELEASE" fi exit ;; BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. @@ -1247,39 +1261,39 @@ EOF echo x86_64-unknown-haiku exit ;; SX-4:SUPER-UX:*:*) - echo sx4-nec-superux${UNAME_RELEASE} + echo sx4-nec-superux"$UNAME_RELEASE" exit ;; SX-5:SUPER-UX:*:*) - echo sx5-nec-superux${UNAME_RELEASE} + echo sx5-nec-superux"$UNAME_RELEASE" exit ;; SX-6:SUPER-UX:*:*) - echo sx6-nec-superux${UNAME_RELEASE} + echo sx6-nec-superux"$UNAME_RELEASE" exit ;; SX-7:SUPER-UX:*:*) - echo sx7-nec-superux${UNAME_RELEASE} + echo sx7-nec-superux"$UNAME_RELEASE" exit ;; SX-8:SUPER-UX:*:*) - echo sx8-nec-superux${UNAME_RELEASE} + echo sx8-nec-superux"$UNAME_RELEASE" exit ;; SX-8R:SUPER-UX:*:*) - echo sx8r-nec-superux${UNAME_RELEASE} + echo sx8r-nec-superux"$UNAME_RELEASE" exit ;; SX-ACE:SUPER-UX:*:*) - echo sxace-nec-superux${UNAME_RELEASE} + echo sxace-nec-superux"$UNAME_RELEASE" exit ;; Power*:Rhapsody:*:*) - echo powerpc-apple-rhapsody${UNAME_RELEASE} + echo powerpc-apple-rhapsody"$UNAME_RELEASE" exit ;; *:Rhapsody:*:*) - echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE} + echo "$UNAME_MACHINE"-apple-rhapsody"$UNAME_RELEASE" exit ;; *:Darwin:*:*) UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown - eval $set_cc_for_build + eval "$set_cc_for_build" if test "$UNAME_PROCESSOR" = unknown ; then UNAME_PROCESSOR=powerpc fi - if test `echo "$UNAME_RELEASE" | sed -e 's/\..*//'` -le 10 ; then + if test "`echo "$UNAME_RELEASE" | sed -e 's/\..*//'`" -le 10 ; then if [ "$CC_FOR_BUILD" != no_compiler_found ]; then if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \ (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ @@ -1307,7 +1321,7 @@ EOF # that Apple uses in portable devices. UNAME_PROCESSOR=x86_64 fi - echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} + echo "$UNAME_PROCESSOR"-apple-darwin"$UNAME_RELEASE" exit ;; *:procnto*:*:* | *:QNX:[0123456789]*:*) UNAME_PROCESSOR=`uname -p` @@ -1315,22 +1329,25 @@ EOF UNAME_PROCESSOR=i386 UNAME_MACHINE=pc fi - echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE} + echo "$UNAME_PROCESSOR"-"$UNAME_MACHINE"-nto-qnx"$UNAME_RELEASE" exit ;; *:QNX:*:4*) echo i386-pc-qnx exit ;; NEO-*:NONSTOP_KERNEL:*:*) - echo neo-tandem-nsk${UNAME_RELEASE} + echo neo-tandem-nsk"$UNAME_RELEASE" exit ;; NSE-*:NONSTOP_KERNEL:*:*) - echo nse-tandem-nsk${UNAME_RELEASE} + echo nse-tandem-nsk"$UNAME_RELEASE" exit ;; NSR-*:NONSTOP_KERNEL:*:*) - echo nsr-tandem-nsk${UNAME_RELEASE} + echo nsr-tandem-nsk"$UNAME_RELEASE" + exit ;; + NSV-*:NONSTOP_KERNEL:*:*) + echo nsv-tandem-nsk"$UNAME_RELEASE" exit ;; NSX-*:NONSTOP_KERNEL:*:*) - echo nsx-tandem-nsk${UNAME_RELEASE} + echo nsx-tandem-nsk"$UNAME_RELEASE" exit ;; *:NonStop-UX:*:*) echo mips-compaq-nonstopux @@ -1339,7 +1356,7 @@ EOF echo bs2000-siemens-sysv exit ;; DS/*:UNIX_System_V:*:*) - echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE} + echo "$UNAME_MACHINE"-"$UNAME_SYSTEM"-"$UNAME_RELEASE" exit ;; *:Plan9:*:*) # "uname -m" is not consistent, so use $cputype instead. 386 @@ -1350,7 +1367,7 @@ EOF else UNAME_MACHINE="$cputype" fi - echo ${UNAME_MACHINE}-unknown-plan9 + echo "$UNAME_MACHINE"-unknown-plan9 exit ;; *:TOPS-10:*:*) echo pdp10-unknown-tops10 @@ -1371,14 +1388,14 @@ EOF echo pdp10-unknown-its exit ;; SEI:*:*:SEIUX) - echo mips-sei-seiux${UNAME_RELEASE} + echo mips-sei-seiux"$UNAME_RELEASE" exit ;; *:DragonFly:*:*) - echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` + echo "$UNAME_MACHINE"-unknown-dragonfly"`echo "$UNAME_RELEASE"|sed -e 's/[-(].*//'`" exit ;; *:*VMS:*:*) UNAME_MACHINE=`(uname -p) 2>/dev/null` - case "${UNAME_MACHINE}" in + case "$UNAME_MACHINE" in A*) echo alpha-dec-vms ; exit ;; I*) echo ia64-dec-vms ; exit ;; V*) echo vax-dec-vms ; exit ;; @@ -1387,16 +1404,16 @@ EOF echo i386-pc-xenix exit ;; i*86:skyos:*:*) - echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE} | sed -e 's/ .*$//'` + echo "$UNAME_MACHINE"-pc-skyos"`echo "$UNAME_RELEASE" | sed -e 's/ .*$//'`" exit ;; i*86:rdos:*:*) - echo ${UNAME_MACHINE}-pc-rdos + echo "$UNAME_MACHINE"-pc-rdos exit ;; i*86:AROS:*:*) - echo ${UNAME_MACHINE}-pc-aros + echo "$UNAME_MACHINE"-pc-aros exit ;; x86_64:VMkernel:*:*) - echo ${UNAME_MACHINE}-unknown-esx + echo "$UNAME_MACHINE"-unknown-esx exit ;; amd64:Isilon\ OneFS:*:*) echo x86_64-unknown-onefs @@ -1405,7 +1422,7 @@ esac echo "$0: unable to guess system type" >&2 -case "${UNAME_MACHINE}:${UNAME_SYSTEM}" in +case "$UNAME_MACHINE:$UNAME_SYSTEM" in mips:Linux | mips64:Linux) # If we got here on MIPS GNU/Linux, output extra information. cat >&2 <<EOF @@ -1447,10 +1464,10 @@ hostinfo = `(hostinfo) 2>/dev/null` /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null` /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null` -UNAME_MACHINE = ${UNAME_MACHINE} -UNAME_RELEASE = ${UNAME_RELEASE} -UNAME_SYSTEM = ${UNAME_SYSTEM} -UNAME_VERSION = ${UNAME_VERSION} +UNAME_MACHINE = "$UNAME_MACHINE" +UNAME_RELEASE = "$UNAME_RELEASE" +UNAME_SYSTEM = "$UNAME_SYSTEM" +UNAME_VERSION = "$UNAME_VERSION" EOF exit 1 diff --git a/build-aux/config.sub b/build-aux/config.sub index 00f68b8..1d8e98b 100755 --- a/build-aux/config.sub +++ b/build-aux/config.sub @@ -1,8 +1,8 @@ #! /bin/sh # Configuration validation subroutine script. -# Copyright 1992-2017 Free Software Foundation, Inc. +# Copyright 1992-2018 Free Software Foundation, Inc. -timestamp='2017-11-23' +timestamp='2018-02-22' # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by @@ -67,7 +67,7 @@ Report bugs and patches to <config-patches@gnu.org>." version="\ GNU config.sub ($timestamp) -Copyright 1992-2017 Free Software Foundation, Inc. +Copyright 1992-2018 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." @@ -94,7 +94,7 @@ while test $# -gt 0 ; do *local*) # First pass through any local machine types. - echo $1 + echo "$1" exit ;; * ) @@ -112,7 +112,7 @@ esac # Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any). # Here we must recognize all the valid KERNEL-OS combinations. -maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` +maybe_os=`echo "$1" | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` case $maybe_os in nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \ linux-musl* | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \ @@ -120,16 +120,16 @@ case $maybe_os in kopensolaris*-gnu* | cloudabi*-eabi* | \ storm-chaos* | os2-emx* | rtmk-nova*) os=-$maybe_os - basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` + basic_machine=`echo "$1" | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` ;; android-linux) os=-linux-android - basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`-unknown + basic_machine=`echo "$1" | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`-unknown ;; *) - basic_machine=`echo $1 | sed 's/-[^-]*$//'` - if [ $basic_machine != $1 ] - then os=`echo $1 | sed 's/.*-/-/'` + basic_machine=`echo "$1" | sed 's/-[^-]*$//'` + if [ "$basic_machine" != "$1" ] + then os=`echo "$1" | sed 's/.*-/-/'` else os=; fi ;; esac @@ -178,44 +178,44 @@ case $os in ;; -sco6) os=-sco5v6 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'` ;; -sco5) os=-sco3.2v5 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'` ;; -sco4) os=-sco3.2v4 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'` ;; -sco3.2.[4-9]*) os=`echo $os | sed -e 's/sco3.2./sco3.2v/'` - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'` ;; -sco3.2v[4-9]*) # Don't forget version if it is 3.2v4 or newer. - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'` ;; -sco5v6*) # Don't forget version if it is 3.2v4 or newer. - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'` ;; -sco*) os=-sco3.2v2 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'` ;; -udk*) - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'` ;; -isc) os=-isc2.2 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'` ;; -clix*) basic_machine=clipper-intergraph ;; -isc*) - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'` ;; -lynx*178) os=-lynxos178 @@ -227,7 +227,7 @@ case $os in os=-lynxos ;; -ptx*) - basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'` + basic_machine=`echo "$1" | sed -e 's/86-.*/86-sequent/'` ;; -psos*) os=-psos @@ -296,7 +296,7 @@ case $basic_machine in | nios | nios2 | nios2eb | nios2el \ | ns16k | ns32k \ | open8 | or1k | or1knd | or32 \ - | pdp10 | pdp11 | pj | pjl \ + | pdp10 | pj | pjl \ | powerpc | powerpc64 | powerpc64le | powerpcle \ | pru \ | pyramid \ @@ -333,7 +333,7 @@ case $basic_machine in basic_machine=$basic_machine-unknown os=-none ;; - m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k) + m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65) ;; ms1) basic_machine=mt-unknown @@ -362,7 +362,7 @@ case $basic_machine in ;; # Object if more than one company name word. *-*-*) - echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 + echo Invalid configuration \`"$1"\': machine \`"$basic_machine"\' not recognized 1>&2 exit 1 ;; # Recognize the basic CPU types with company name. @@ -457,7 +457,7 @@ case $basic_machine in # Recognize the various machine names and aliases which stand # for a CPU type and a company and sometimes even an OS. 386bsd) - basic_machine=i386-unknown + basic_machine=i386-pc os=-bsd ;; 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) @@ -491,7 +491,7 @@ case $basic_machine in basic_machine=x86_64-pc ;; amd64-*) - basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'` + basic_machine=x86_64-`echo "$basic_machine" | sed 's/^[^-]*-//'` ;; amdahl) basic_machine=580-amdahl @@ -536,7 +536,7 @@ case $basic_machine in os=-linux ;; blackfin-*) - basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'` + basic_machine=bfin-`echo "$basic_machine" | sed 's/^[^-]*-//'` os=-linux ;; bluegene*) @@ -544,13 +544,13 @@ case $basic_machine in os=-cnk ;; c54x-*) - basic_machine=tic54x-`echo $basic_machine | sed 's/^[^-]*-//'` + basic_machine=tic54x-`echo "$basic_machine" | sed 's/^[^-]*-//'` ;; c55x-*) - basic_machine=tic55x-`echo $basic_machine | sed 's/^[^-]*-//'` + basic_machine=tic55x-`echo "$basic_machine" | sed 's/^[^-]*-//'` ;; c6x-*) - basic_machine=tic6x-`echo $basic_machine | sed 's/^[^-]*-//'` + basic_machine=tic6x-`echo "$basic_machine" | sed 's/^[^-]*-//'` ;; c90) basic_machine=c90-cray @@ -648,7 +648,7 @@ case $basic_machine in os=$os"spe" ;; e500v[12]-*) - basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` + basic_machine=powerpc-`echo "$basic_machine" | sed 's/^[^-]*-//'` os=$os"spe" ;; ebmon29k) @@ -740,9 +740,6 @@ case $basic_machine in hp9k8[0-9][0-9] | hp8[0-9][0-9]) basic_machine=hppa1.0-hp ;; - hppa-next) - os=-nextstep3 - ;; hppaosf) basic_machine=hppa1.1-hp os=-osf @@ -755,26 +752,26 @@ case $basic_machine in basic_machine=i370-ibm ;; i*86v32) - basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` + basic_machine=`echo "$1" | sed -e 's/86.*/86-pc/'` os=-sysv32 ;; i*86v4*) - basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` + basic_machine=`echo "$1" | sed -e 's/86.*/86-pc/'` os=-sysv4 ;; i*86v) - basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` + basic_machine=`echo "$1" | sed -e 's/86.*/86-pc/'` os=-sysv ;; i*86sol2) - basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` + basic_machine=`echo "$1" | sed -e 's/86.*/86-pc/'` os=-solaris2 ;; i386mach) basic_machine=i386-mach os=-mach ;; - i386-vsta | vsta) + vsta) basic_machine=i386-unknown os=-vsta ;; @@ -793,19 +790,16 @@ case $basic_machine in os=-sysv ;; leon-*|leon[3-9]-*) - basic_machine=sparc-`echo $basic_machine | sed 's/-.*//'` + basic_machine=sparc-`echo "$basic_machine" | sed 's/-.*//'` ;; m68knommu) basic_machine=m68k-unknown os=-linux ;; m68knommu-*) - basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'` + basic_machine=m68k-`echo "$basic_machine" | sed 's/^[^-]*-//'` os=-linux ;; - m88k-omron*) - basic_machine=m88k-omron - ;; magnum | m3230) basic_machine=mips-mips os=-sysv @@ -837,10 +831,10 @@ case $basic_machine in os=-mint ;; mips3*-*) - basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'` + basic_machine=`echo "$basic_machine" | sed -e 's/mips3/mips64/'` ;; mips3*) - basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown + basic_machine=`echo "$basic_machine" | sed -e 's/mips3/mips64/'`-unknown ;; monitor) basic_machine=m68k-rom68k @@ -859,7 +853,7 @@ case $basic_machine in os=-msdos ;; ms1-*) - basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'` + basic_machine=`echo "$basic_machine" | sed -e 's/ms1-/mt-/'` ;; msys) basic_machine=i686-pc @@ -946,6 +940,9 @@ case $basic_machine in nsr-tandem) basic_machine=nsr-tandem ;; + nsv-tandem) + basic_machine=nsv-tandem + ;; nsx-tandem) basic_machine=nsx-tandem ;; @@ -981,7 +978,7 @@ case $basic_machine in os=-linux ;; parisc-*) - basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'` + basic_machine=hppa-`echo "$basic_machine" | sed 's/^[^-]*-//'` os=-linux ;; pbd) @@ -997,7 +994,7 @@ case $basic_machine in basic_machine=i386-pc ;; pc98-*) - basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'` + basic_machine=i386-`echo "$basic_machine" | sed 's/^[^-]*-//'` ;; pentium | p5 | k5 | k6 | nexgen | viac3) basic_machine=i586-pc @@ -1012,16 +1009,16 @@ case $basic_machine in basic_machine=i786-pc ;; pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*) - basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'` + basic_machine=i586-`echo "$basic_machine" | sed 's/^[^-]*-//'` ;; pentiumpro-* | p6-* | 6x86-* | athlon-*) - basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` + basic_machine=i686-`echo "$basic_machine" | sed 's/^[^-]*-//'` ;; pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*) - basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` + basic_machine=i686-`echo "$basic_machine" | sed 's/^[^-]*-//'` ;; pentium4-*) - basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'` + basic_machine=i786-`echo "$basic_machine" | sed 's/^[^-]*-//'` ;; pn) basic_machine=pn-gould @@ -1031,23 +1028,23 @@ case $basic_machine in ppc | ppcbe) basic_machine=powerpc-unknown ;; ppc-* | ppcbe-*) - basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` + basic_machine=powerpc-`echo "$basic_machine" | sed 's/^[^-]*-//'` ;; ppcle | powerpclittle) basic_machine=powerpcle-unknown ;; ppcle-* | powerpclittle-*) - basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'` + basic_machine=powerpcle-`echo "$basic_machine" | sed 's/^[^-]*-//'` ;; ppc64) basic_machine=powerpc64-unknown ;; - ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'` + ppc64-*) basic_machine=powerpc64-`echo "$basic_machine" | sed 's/^[^-]*-//'` ;; ppc64le | powerpc64little) basic_machine=powerpc64le-unknown ;; ppc64le-* | powerpc64little-*) - basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'` + basic_machine=powerpc64le-`echo "$basic_machine" | sed 's/^[^-]*-//'` ;; ps2) basic_machine=i386-ibm @@ -1101,17 +1098,10 @@ case $basic_machine in sequent) basic_machine=i386-sequent ;; - sh) - basic_machine=sh-hitachi - os=-hms - ;; sh5el) basic_machine=sh5le-unknown ;; - sh64) - basic_machine=sh64-unknown - ;; - sparclite-wrs | simso-wrs) + simso-wrs) basic_machine=sparclite-wrs os=-vxworks ;; @@ -1130,7 +1120,7 @@ case $basic_machine in os=-sysv4 ;; strongarm-* | thumb-*) - basic_machine=arm-`echo $basic_machine | sed 's/^[^-]*-//'` + basic_machine=arm-`echo "$basic_machine" | sed 's/^[^-]*-//'` ;; sun2) basic_machine=m68000-sun @@ -1244,9 +1234,6 @@ case $basic_machine in basic_machine=a29k-wrs os=-vxworks ;; - wasm32) - basic_machine=wasm32-unknown - ;; w65*) basic_machine=w65-wdc os=-none @@ -1266,20 +1253,12 @@ case $basic_machine in basic_machine=xps100-honeywell ;; xscale-* | xscalee[bl]-*) - basic_machine=`echo $basic_machine | sed 's/^xscale/arm/'` + basic_machine=`echo "$basic_machine" | sed 's/^xscale/arm/'` ;; ymp) basic_machine=ymp-cray os=-unicos ;; - z8k-*-coff) - basic_machine=z8k-unknown - os=-sim - ;; - z80-*-coff) - basic_machine=z80-unknown - os=-sim - ;; none) basic_machine=none-none os=-none @@ -1308,10 +1287,6 @@ case $basic_machine in vax) basic_machine=vax-dec ;; - pdp10) - # there are many clones, so DEC is not a safe bet - basic_machine=pdp10-unknown - ;; pdp11) basic_machine=pdp11-dec ;; @@ -1321,9 +1296,6 @@ case $basic_machine in sh[1234] | sh[24]a | sh[24]aeb | sh[34]eb | sh[1234]le | sh[23]ele) basic_machine=sh-unknown ;; - sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v) - basic_machine=sparc-sun - ;; cydra) basic_machine=cydra-cydrome ;; @@ -1343,7 +1315,7 @@ case $basic_machine in # Make sure to match an already-canonicalized machine name. ;; *) - echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 + echo Invalid configuration \`"$1"\': machine \`"$basic_machine"\' not recognized 1>&2 exit 1 ;; esac @@ -1351,10 +1323,10 @@ esac # Here we canonicalize certain aliases for manufacturers. case $basic_machine in *-digital*) - basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'` + basic_machine=`echo "$basic_machine" | sed 's/digital.*/dec/'` ;; *-commodore*) - basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'` + basic_machine=`echo "$basic_machine" | sed 's/commodore.*/cbm/'` ;; *) ;; @@ -1377,15 +1349,16 @@ case $os in -solaris) os=-solaris2 ;; - -svr4*) - os=-sysv4 - ;; -unixware*) os=-sysv4.2uw ;; -gnu/linux*) os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'` ;; + # es1800 is here to avoid being matched by es* (a different OS) + -es1800*) + os=-ose + ;; # Now accept the basic system types. # The portable systems comes first. # Each alternative MUST end in a * to match a version number. @@ -1398,7 +1371,7 @@ case $os in | -aos* | -aros* | -cloudabi* | -sortix* \ | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ - | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \ + | -hiux* | -knetbsd* | -mirbsd* | -netbsd* \ | -bitrig* | -openbsd* | -solidbsd* | -libertybsd* \ | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \ | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ @@ -1409,14 +1382,15 @@ case $os in | -midipix* | -mingw32* | -mingw64* | -linux-gnu* | -linux-android* \ | -linux-newlib* | -linux-musl* | -linux-uclibc* \ | -uxpv* | -beos* | -mpeix* | -udk* | -moxiebox* \ - | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ + | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* \ | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \ | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ - | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ + | -morphos* | -superux* | -rtmk* | -windiss* \ | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \ | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es* \ - | -onefs* | -tirtos* | -phoenix* | -fuchsia* | -redox*) + | -onefs* | -tirtos* | -phoenix* | -fuchsia* | -redox* | -bme* \ + | -midnightbsd*) # Remember, each alternative MUST END IN *, to match a version number. ;; -qnx*) @@ -1433,12 +1407,12 @@ case $os in -nto*) os=`echo $os | sed -e 's|nto|nto-qnx|'` ;; - -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \ - | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \ + -sim | -xray | -os68k* | -v88r* \ + | -windows* | -osx | -abug | -netware* | -os9* \ | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*) ;; -mac*) - os=`echo $os | sed -e 's|mac|macos|'` + os=`echo "$os" | sed -e 's|mac|macos|'` ;; -linux-dietlibc) os=-linux-dietlibc @@ -1447,10 +1421,10 @@ case $os in os=`echo $os | sed -e 's|linux|linux-gnu|'` ;; -sunos5*) - os=`echo $os | sed -e 's|sunos5|solaris2|'` + os=`echo "$os" | sed -e 's|sunos5|solaris2|'` ;; -sunos6*) - os=`echo $os | sed -e 's|sunos6|solaris3|'` + os=`echo "$os" | sed -e 's|sunos6|solaris3|'` ;; -opened*) os=-openedition @@ -1461,12 +1435,6 @@ case $os in -wince*) os=-wince ;; - -osfrose*) - os=-osfrose - ;; - -osf*) - os=-osf - ;; -utek*) os=-bsd ;; @@ -1513,7 +1481,7 @@ case $os in -oss*) os=-sysv3 ;; - -svr4) + -svr4*) os=-sysv4 ;; -svr3) @@ -1528,18 +1496,9 @@ case $os in -ose*) os=-ose ;; - -es1800*) - os=-ose - ;; - -xenix) - os=-xenix - ;; -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) os=-mint ;; - -aros*) - os=-aros - ;; -zvmoe) os=-zvmoe ;; @@ -1568,7 +1527,7 @@ case $os in *) # Get rid of the `-' at the beginning of $os. os=`echo $os | sed 's/[^-]*-//'` - echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2 + echo Invalid configuration \`"$1"\': system \`"$os"\' not recognized 1>&2 exit 1 ;; esac @@ -1664,9 +1623,6 @@ case $basic_machine in *-be) os=-beos ;; - *-haiku) - os=-haiku - ;; *-ibm) os=-aix ;; @@ -1721,9 +1677,6 @@ case $basic_machine in i370-*) os=-mvs ;; - *-next) - os=-nextstep3 - ;; *-gould) os=-sysv ;; @@ -1833,11 +1786,11 @@ case $basic_machine in vendor=stratus ;; esac - basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"` + basic_machine=`echo "$basic_machine" | sed "s/unknown/$vendor/"` ;; esac -echo $basic_machine$os +echo "$basic_machine$os" exit # Local variables: diff --git a/build-aux/ltmain.sh b/build-aux/ltmain.sh index a736cf9..e4eda6d 100644 --- a/build-aux/ltmain.sh +++ b/build-aux/ltmain.sh @@ -31,7 +31,7 @@ PROGRAM=libtool PACKAGE=libtool -VERSION="2.4.6 Debian-2.4.6-2" +VERSION="2.4.6 Debian-2.4.6-2.1" package_revision=2.4.6 @@ -64,7 +64,7 @@ package_revision=2.4.6 # libraries, which are installed to $pkgauxdir. # Set a version string for this script. -scriptversion=2015-01-20.17; # UTC +scriptversion=2015-10-12.13; # UTC # General shell script boiler plate, and helper functions. # Written by Gary V. Vaughan, 2004 @@ -580,16 +580,16 @@ if test yes = "$_G_HAVE_PLUSEQ_OP"; then { $debug_cmd - func_quote_for_eval "$2" - eval "$1+=\\ \$func_quote_for_eval_result" + func_quote_arg pretty "$2" + eval "$1+=\\ \$func_quote_arg_result" }' else func_append_quoted () { $debug_cmd - func_quote_for_eval "$2" - eval "$1=\$$1\\ \$func_quote_for_eval_result" + func_quote_arg pretty "$2" + eval "$1=\$$1\\ \$func_quote_arg_result" } fi @@ -1091,85 +1091,181 @@ func_relative_path () } -# func_quote_for_eval ARG... -# -------------------------- -# Aesthetically quote ARGs to be evaled later. -# This function returns two values: -# i) func_quote_for_eval_result -# double-quoted, suitable for a subsequent eval -# ii) func_quote_for_eval_unquoted_result -# has all characters that are still active within double -# quotes backslashified. -func_quote_for_eval () +# func_quote_portable EVAL ARG +# ---------------------------- +# Internal function to portably implement func_quote_arg. Note that we still +# keep attention to performance here so we as much as possible try to avoid +# calling sed binary (so far O(N) complexity as long as func_append is O(1)). +func_quote_portable () { $debug_cmd - func_quote_for_eval_unquoted_result= - func_quote_for_eval_result= - while test 0 -lt $#; do - case $1 in - *[\\\`\"\$]*) - _G_unquoted_arg=`printf '%s\n' "$1" |$SED "$sed_quote_subst"` ;; - *) - _G_unquoted_arg=$1 ;; - esac - if test -n "$func_quote_for_eval_unquoted_result"; then - func_append func_quote_for_eval_unquoted_result " $_G_unquoted_arg" - else - func_append func_quote_for_eval_unquoted_result "$_G_unquoted_arg" + func_quote_portable_result=$2 + + # one-time-loop (easy break) + while true + do + if $1; then + func_quote_portable_result=`$ECHO "$2" | $SED \ + -e "$sed_double_quote_subst" -e "$sed_double_backslash"` + break fi - case $_G_unquoted_arg in - # Double-quote args containing shell metacharacters to delay - # word splitting, command substitution and variable expansion - # for a subsequent eval. - # Many Bourne shells cannot handle close brackets correctly - # in scan sets, so we specify it separately. - *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") - _G_quoted_arg=\"$_G_unquoted_arg\" + # Quote for eval. + case $func_quote_portable_result in + *[\\\`\"\$]*) + case $func_quote_portable_result in + *[\[\*\?]*) + func_quote_portable_result=`$ECHO "$func_quote_portable_result" | $SED "$sed_quote_subst"` + break + ;; + esac + + func_quote_portable_old_IFS=$IFS + for _G_char in '\' '`' '"' '$' + do + # STATE($1) PREV($2) SEPARATOR($3) + set start "" "" + func_quote_portable_result=dummy"$_G_char$func_quote_portable_result$_G_char"dummy + IFS=$_G_char + for _G_part in $func_quote_portable_result + do + case $1 in + quote) + func_append func_quote_portable_result "$3$2" + set quote "$_G_part" "\\$_G_char" + ;; + start) + set first "" "" + func_quote_portable_result= + ;; + first) + set quote "$_G_part" "" + ;; + esac + done + done + IFS=$func_quote_portable_old_IFS ;; - *) - _G_quoted_arg=$_G_unquoted_arg - ;; + *) ;; esac - - if test -n "$func_quote_for_eval_result"; then - func_append func_quote_for_eval_result " $_G_quoted_arg" - else - func_append func_quote_for_eval_result "$_G_quoted_arg" - fi - shift + break done + + func_quote_portable_unquoted_result=$func_quote_portable_result + case $func_quote_portable_result in + # double-quote args containing shell metacharacters to delay + # word splitting, command substitution and variable expansion + # for a subsequent eval. + # many bourne shells cannot handle close brackets correctly + # in scan sets, so we specify it separately. + *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") + func_quote_portable_result=\"$func_quote_portable_result\" + ;; + esac } -# func_quote_for_expand ARG -# ------------------------- -# Aesthetically quote ARG to be evaled later; same as above, -# but do not quote variable references. -func_quote_for_expand () -{ - $debug_cmd +# func_quotefast_eval ARG +# ----------------------- +# Quote one ARG (internal). This is equivalent to 'func_quote_arg eval ARG', +# but optimized for speed. Result is stored in $func_quotefast_eval. +if test xyes = `(x=; printf -v x %q yes; echo x"$x") 2>/dev/null`; then + func_quotefast_eval () + { + printf -v func_quotefast_eval_result %q "$1" + } +else + func_quotefast_eval () + { + func_quote_portable false "$1" + func_quotefast_eval_result=$func_quote_portable_result + } +fi - case $1 in - *[\\\`\"]*) - _G_arg=`$ECHO "$1" | $SED \ - -e "$sed_double_quote_subst" -e "$sed_double_backslash"` ;; - *) - _G_arg=$1 ;; + +# func_quote_arg MODEs ARG +# ------------------------ +# Quote one ARG to be evaled later. MODEs argument may contain zero ore more +# specifiers listed below separated by ',' character. This function returns two +# values: +# i) func_quote_arg_result +# double-quoted (when needed), suitable for a subsequent eval +# ii) func_quote_arg_unquoted_result +# has all characters that are still active within double +# quotes backslashified. Available only if 'unquoted' is specified. +# +# Available modes: +# ---------------- +# 'eval' (default) +# - escape shell special characters +# 'expand' +# - the same as 'eval'; but do not quote variable references +# 'pretty' +# - request aesthetic output, i.e. '"a b"' instead of 'a\ b'. This might +# later used in func_quote to get output like: 'echo "a b"' instead of +# 'echo a\ b'. This is slower than default on some shells. +# 'unquoted' +# - produce also $func_quote_arg_unquoted_result which does not contain +# wrapping double-quotes. +# +# Examples for 'func_quote_arg pretty,unquoted string': +# +# string | *_result | *_unquoted_result +# ------------+-----------------------+------------------- +# " | \" | \" +# a b | "a b" | a b +# "a b" | "\"a b\"" | \"a b\" +# * | "*" | * +# z="${x-$y}" | "z=\"\${x-\$y}\"" | z=\"\${x-\$y}\" +# +# Examples for 'func_quote_arg pretty,unquoted,expand string': +# +# string | *_result | *_unquoted_result +# --------------+---------------------+-------------------- +# z="${x-$y}" | "z=\"${x-$y}\"" | z=\"${x-$y}\" +func_quote_arg () +{ + _G_quote_expand=false + case ,$1, in + *,expand,*) + _G_quote_expand=: + ;; esac - case $_G_arg in - # Double-quote args containing shell metacharacters to delay - # word splitting and command substitution for a subsequent eval. - # Many Bourne shells cannot handle close brackets correctly - # in scan sets, so we specify it separately. - *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") - _G_arg=\"$_G_arg\" + case ,$1, in + *,pretty,*|*,expand,*|*,unquoted,*) + func_quote_portable $_G_quote_expand "$2" + func_quote_arg_result=$func_quote_portable_result + func_quote_arg_unquoted_result=$func_quote_portable_unquoted_result + ;; + *) + # Faster quote-for-eval for some shells. + func_quotefast_eval "$2" + func_quote_arg_result=$func_quotefast_eval_result ;; esac +} - func_quote_for_expand_result=$_G_arg + +# func_quote MODEs ARGs... +# ------------------------ +# Quote all ARGs to be evaled later and join them into single command. See +# func_quote_arg's description for more info. +func_quote () +{ + $debug_cmd + _G_func_quote_mode=$1 ; shift + func_quote_result= + while test 0 -lt $#; do + func_quote_arg "$_G_func_quote_mode" "$1" + if test -n "$func_quote_result"; then + func_append func_quote_result " $func_quote_arg_result" + else + func_append func_quote_result "$func_quote_arg_result" + fi + shift + done } @@ -1215,8 +1311,8 @@ func_show_eval () _G_cmd=$1 _G_fail_exp=${2-':'} - func_quote_for_expand "$_G_cmd" - eval "func_notquiet $func_quote_for_expand_result" + func_quote_arg pretty,expand "$_G_cmd" + eval "func_notquiet $func_quote_arg_result" $opt_dry_run || { eval "$_G_cmd" @@ -1241,8 +1337,8 @@ func_show_eval_locale () _G_fail_exp=${2-':'} $opt_quiet || { - func_quote_for_expand "$_G_cmd" - eval "func_echo $func_quote_for_expand_result" + func_quote_arg expand,pretty "$_G_cmd" + eval "func_echo $func_quote_arg_result" } $opt_dry_run || { @@ -1370,7 +1466,7 @@ func_lt_ver () #! /bin/sh # Set a version string for this script. -scriptversion=2014-01-07.03; # UTC +scriptversion=2015-10-12.13; # UTC # A portable, pluggable option parser for Bourne shell. # Written by Gary V. Vaughan, 2010 @@ -1530,6 +1626,8 @@ func_run_hooks () { $debug_cmd + _G_rc_run_hooks=false + case " $hookable_fns " in *" $1 "*) ;; *) func_fatal_error "'$1' does not support hook funcions.n" ;; @@ -1538,16 +1636,16 @@ func_run_hooks () eval _G_hook_fns=\$$1_hooks; shift for _G_hook in $_G_hook_fns; do - eval $_G_hook '"$@"' - - # store returned options list back into positional - # parameters for next 'cmd' execution. - eval _G_hook_result=\$${_G_hook}_result - eval set dummy "$_G_hook_result"; shift + if eval $_G_hook '"$@"'; then + # store returned options list back into positional + # parameters for next 'cmd' execution. + eval _G_hook_result=\$${_G_hook}_result + eval set dummy "$_G_hook_result"; shift + _G_rc_run_hooks=: + fi done - func_quote_for_eval ${1+"$@"} - func_run_hooks_result=$func_quote_for_eval_result + $_G_rc_run_hooks && func_run_hooks_result=$_G_hook_result } @@ -1557,10 +1655,16 @@ func_run_hooks () ## --------------- ## # In order to add your own option parsing hooks, you must accept the -# full positional parameter list in your hook function, remove any -# options that you action, and then pass back the remaining unprocessed +# full positional parameter list in your hook function, you may remove/edit +# any options that you action, and then pass back the remaining unprocessed # options in '<hooked_function_name>_result', escaped suitably for -# 'eval'. Like this: +# 'eval'. In this case you also must return $EXIT_SUCCESS to let the +# hook's caller know that it should pay attention to +# '<hooked_function_name>_result'. Returning $EXIT_FAILURE signalizes that +# arguments are left untouched by the hook and therefore caller will ignore the +# result variable. +# +# Like this: # # my_options_prep () # { @@ -1570,9 +1674,11 @@ func_run_hooks () # usage_message=$usage_message' # -s, --silent don'\''t print informational messages # ' -# -# func_quote_for_eval ${1+"$@"} -# my_options_prep_result=$func_quote_for_eval_result +# # No change in '$@' (ignored completely by this hook). There is +# # no need to do the equivalent (but slower) action: +# # func_quote eval ${1+"$@"} +# # my_options_prep_result=$func_quote_result +# false # } # func_add_hook func_options_prep my_options_prep # @@ -1581,25 +1687,37 @@ func_run_hooks () # { # $debug_cmd # +# args_changed=false +# # # Note that for efficiency, we parse as many options as we can # # recognise in a loop before passing the remainder back to the # # caller on the first unrecognised argument we encounter. # while test $# -gt 0; do # opt=$1; shift # case $opt in -# --silent|-s) opt_silent=: ;; +# --silent|-s) opt_silent=: +# args_changed=: +# ;; # # Separate non-argument short options: # -s*) func_split_short_opt "$_G_opt" # set dummy "$func_split_short_opt_name" \ # "-$func_split_short_opt_arg" ${1+"$@"} # shift +# args_changed=: # ;; -# *) set dummy "$_G_opt" "$*"; shift; break ;; +# *) # Make sure the first unrecognised option "$_G_opt" +# # is added back to "$@", we could need that later +# # if $args_changed is true. +# set dummy "$_G_opt" ${1+"$@"}; shift; break ;; # esac # done # -# func_quote_for_eval ${1+"$@"} -# my_silent_option_result=$func_quote_for_eval_result +# if $args_changed; then +# func_quote eval ${1+"$@"} +# my_silent_option_result=$func_quote_result +# fi +# +# $args_changed # } # func_add_hook func_parse_options my_silent_option # @@ -1611,16 +1729,32 @@ func_run_hooks () # $opt_silent && $opt_verbose && func_fatal_help "\ # '--silent' and '--verbose' options are mutually exclusive." # -# func_quote_for_eval ${1+"$@"} -# my_option_validation_result=$func_quote_for_eval_result +# false # } # func_add_hook func_validate_options my_option_validation # -# You'll alse need to manually amend $usage_message to reflect the extra +# You'll also need to manually amend $usage_message to reflect the extra # options you parse. It's preferable to append if you can, so that # multiple option parsing hooks can be added safely. +# func_options_finish [ARG]... +# ---------------------------- +# Finishing the option parse loop (call 'func_options' hooks ATM). +func_options_finish () +{ + $debug_cmd + + _G_func_options_finish_exit=false + if func_run_hooks func_options ${1+"$@"}; then + func_options_finish_result=$func_run_hooks_result + _G_func_options_finish_exit=: + fi + + $_G_func_options_finish_exit +} + + # func_options [ARG]... # --------------------- # All the functions called inside func_options are hookable. See the @@ -1630,17 +1764,28 @@ func_options () { $debug_cmd - func_options_prep ${1+"$@"} - eval func_parse_options \ - ${func_options_prep_result+"$func_options_prep_result"} - eval func_validate_options \ - ${func_parse_options_result+"$func_parse_options_result"} + _G_rc_options=false - eval func_run_hooks func_options \ - ${func_validate_options_result+"$func_validate_options_result"} + for my_func in options_prep parse_options validate_options options_finish + do + if eval func_$my_func '${1+"$@"}'; then + eval _G_res_var='$'"func_${my_func}_result" + eval set dummy "$_G_res_var" ; shift + _G_rc_options=: + fi + done - # save modified positional parameters for caller - func_options_result=$func_run_hooks_result + # Save modified positional parameters for caller. As a top-level + # options-parser function we always need to set the 'func_options_result' + # variable (regardless the $_G_rc_options value). + if $_G_rc_options; then + func_options_result=$_G_res_var + else + func_quote eval ${1+"$@"} + func_options_result=$func_quote_result + fi + + $_G_rc_options } @@ -1649,9 +1794,9 @@ func_options () # All initialisations required before starting the option parse loop. # Note that when calling hook functions, we pass through the list of # positional parameters. If a hook function modifies that list, and -# needs to propogate that back to rest of this script, then the complete +# needs to propagate that back to rest of this script, then the complete # modified list must be put in 'func_run_hooks_result' before -# returning. +# returning $EXIT_SUCCESS (otherwise $EXIT_FAILURE is returned). func_hookable func_options_prep func_options_prep () { @@ -1661,10 +1806,14 @@ func_options_prep () opt_verbose=false opt_warning_types= - func_run_hooks func_options_prep ${1+"$@"} + _G_rc_options_prep=false + if func_run_hooks func_options_prep ${1+"$@"}; then + _G_rc_options_prep=: + # save modified positional parameters for caller + func_options_prep_result=$func_run_hooks_result + fi - # save modified positional parameters for caller - func_options_prep_result=$func_run_hooks_result + $_G_rc_options_prep } @@ -1678,18 +1827,20 @@ func_parse_options () func_parse_options_result= + _G_rc_parse_options=false # this just eases exit handling while test $# -gt 0; do # Defer to hook functions for initial option parsing, so they # get priority in the event of reusing an option name. - func_run_hooks func_parse_options ${1+"$@"} - - # Adjust func_parse_options positional parameters to match - eval set dummy "$func_run_hooks_result"; shift + if func_run_hooks func_parse_options ${1+"$@"}; then + eval set dummy "$func_run_hooks_result"; shift + _G_rc_parse_options=: + fi # Break out of the loop if we already parsed every option. test $# -gt 0 || break + _G_match_parse_options=: _G_opt=$1 shift case $_G_opt in @@ -1704,7 +1855,10 @@ func_parse_options () ;; --warnings|--warning|-W) - test $# = 0 && func_missing_arg $_G_opt && break + if test $# = 0 && func_missing_arg $_G_opt; then + _G_rc_parse_options=: + break + fi case " $warning_categories $1" in *" $1 "*) # trailing space prevents matching last $1 above @@ -1757,15 +1911,25 @@ func_parse_options () shift ;; - --) break ;; + --) _G_rc_parse_options=: ; break ;; -*) func_fatal_help "unrecognised option: '$_G_opt'" ;; - *) set dummy "$_G_opt" ${1+"$@"}; shift; break ;; + *) set dummy "$_G_opt" ${1+"$@"}; shift + _G_match_parse_options=false + break + ;; esac + + $_G_match_parse_options && _G_rc_parse_options=: done - # save modified positional parameters for caller - func_quote_for_eval ${1+"$@"} - func_parse_options_result=$func_quote_for_eval_result + + if $_G_rc_parse_options; then + # save modified positional parameters for caller + func_quote eval ${1+"$@"} + func_parse_options_result=$func_quote_result + fi + + $_G_rc_parse_options } @@ -1778,16 +1942,21 @@ func_validate_options () { $debug_cmd + _G_rc_validate_options=false + # Display all warnings if -W was not given. test -n "$opt_warning_types" || opt_warning_types=" $warning_categories" - func_run_hooks func_validate_options ${1+"$@"} + if func_run_hooks func_validate_options ${1+"$@"}; then + # save modified positional parameters for caller + func_validate_options_result=$func_run_hooks_result + _G_rc_validate_options=: + fi # Bail if the options were screwed! $exit_cmd $EXIT_FAILURE - # save modified positional parameters for caller - func_validate_options_result=$func_run_hooks_result + $_G_rc_validate_options } @@ -2068,7 +2237,7 @@ include the following information: compiler: $LTCC compiler flags: $LTCFLAGS linker: $LD (gnu? $with_gnu_ld) - version: $progname $scriptversion Debian-2.4.6-2 + version: $progname $scriptversion Debian-2.4.6-2.1 automake: `($AUTOMAKE --version) 2>/dev/null |$SED 1q` autoconf: `($AUTOCONF --version) 2>/dev/null |$SED 1q` @@ -2270,6 +2439,8 @@ libtool_options_prep () nonopt= preserve_args= + _G_rc_lt_options_prep=: + # Shorthand for --mode=foo, only valid as the first argument case $1 in clean|clea|cle|cl) @@ -2293,11 +2464,18 @@ libtool_options_prep () uninstall|uninstal|uninsta|uninst|unins|unin|uni|un|u) shift; set dummy --mode uninstall ${1+"$@"}; shift ;; + *) + _G_rc_lt_options_prep=false + ;; esac - # Pass back the list of options. - func_quote_for_eval ${1+"$@"} - libtool_options_prep_result=$func_quote_for_eval_result + if $_G_rc_lt_options_prep; then + # Pass back the list of options. + func_quote eval ${1+"$@"} + libtool_options_prep_result=$func_quote_result + fi + + $_G_rc_lt_options_prep } func_add_hook func_options_prep libtool_options_prep @@ -2309,9 +2487,12 @@ libtool_parse_options () { $debug_cmd + _G_rc_lt_parse_options=false + # Perform our own loop to consume as many options as possible in # each iteration. while test $# -gt 0; do + _G_match_lt_parse_options=: _G_opt=$1 shift case $_G_opt in @@ -2386,15 +2567,22 @@ libtool_parse_options () func_append preserve_args " $_G_opt" ;; - # An option not handled by this hook function: - *) set dummy "$_G_opt" ${1+"$@"}; shift; break ;; + # An option not handled by this hook function: + *) set dummy "$_G_opt" ${1+"$@"} ; shift + _G_match_lt_parse_options=false + break + ;; esac + $_G_match_lt_parse_options && _G_rc_lt_parse_options=: done + if $_G_rc_lt_parse_options; then + # save modified positional parameters for caller + func_quote eval ${1+"$@"} + libtool_parse_options_result=$func_quote_result + fi - # save modified positional parameters for caller - func_quote_for_eval ${1+"$@"} - libtool_parse_options_result=$func_quote_for_eval_result + $_G_rc_lt_parse_options } func_add_hook func_parse_options libtool_parse_options @@ -2451,8 +2639,8 @@ libtool_validate_options () } # Pass back the unparsed argument list - func_quote_for_eval ${1+"$@"} - libtool_validate_options_result=$func_quote_for_eval_result + func_quote eval ${1+"$@"} + libtool_validate_options_result=$func_quote_result } func_add_hook func_validate_options libtool_validate_options @@ -3418,8 +3606,8 @@ func_mode_compile () esac done - func_quote_for_eval "$libobj" - test "X$libobj" != "X$func_quote_for_eval_result" \ + func_quote_arg pretty "$libobj" + test "X$libobj" != "X$func_quote_arg_result" \ && $ECHO "X$libobj" | $GREP '[]~#^*{};<>?"'"'"' &()|`$[]' \ && func_warning "libobj name '$libobj' may not contain shell special characters." func_dirname_and_basename "$obj" "/" "" @@ -3492,8 +3680,8 @@ compiler." func_to_tool_file "$srcfile" func_convert_file_msys_to_w32 srcfile=$func_to_tool_file_result - func_quote_for_eval "$srcfile" - qsrcfile=$func_quote_for_eval_result + func_quote_arg pretty "$srcfile" + qsrcfile=$func_quote_arg_result # Only build a PIC object if we are building libtool libraries. if test yes = "$build_libtool_libs"; then @@ -4096,8 +4284,8 @@ func_mode_install () case $nonopt in *shtool*) :;; *) false;; esac then # Aesthetically quote it. - func_quote_for_eval "$nonopt" - install_prog="$func_quote_for_eval_result " + func_quote_arg pretty "$nonopt" + install_prog="$func_quote_arg_result " arg=$1 shift else @@ -4107,8 +4295,8 @@ func_mode_install () # The real first argument should be the name of the installation program. # Aesthetically quote it. - func_quote_for_eval "$arg" - func_append install_prog "$func_quote_for_eval_result" + func_quote_arg pretty "$arg" + func_append install_prog "$func_quote_arg_result" install_shared_prog=$install_prog case " $install_prog " in *[\\\ /]cp\ *) install_cp=: ;; @@ -4165,12 +4353,12 @@ func_mode_install () esac # Aesthetically quote the argument. - func_quote_for_eval "$arg" - func_append install_prog " $func_quote_for_eval_result" + func_quote_arg pretty "$arg" + func_append install_prog " $func_quote_arg_result" if test -n "$arg2"; then - func_quote_for_eval "$arg2" + func_quote_arg pretty "$arg2" fi - func_append install_shared_prog " $func_quote_for_eval_result" + func_append install_shared_prog " $func_quote_arg_result" done test -z "$install_prog" && \ @@ -4181,8 +4369,8 @@ func_mode_install () if test -n "$install_override_mode" && $no_mode; then if $install_cp; then :; else - func_quote_for_eval "$install_override_mode" - func_append install_shared_prog " -m $func_quote_for_eval_result" + func_quote_arg pretty "$install_override_mode" + func_append install_shared_prog " -m $func_quote_arg_result" fi fi @@ -4478,8 +4666,8 @@ func_mode_install () relink_command=`$ECHO "$relink_command" | $SED 's%@OUTPUT@%'"$outputname"'%g'` $opt_quiet || { - func_quote_for_expand "$relink_command" - eval "func_echo $func_quote_for_expand_result" + func_quote_arg expand,pretty "$relink_command" + eval "func_echo $func_quote_arg_result" } if eval "$relink_command"; then : else @@ -5258,7 +5446,8 @@ else if test \"\$libtool_execute_magic\" != \"$magic\"; then file=\"\$0\"" - qECHO=`$ECHO "$ECHO" | $SED "$sed_quote_subst"` + func_quote_arg pretty "$ECHO" + qECHO=$func_quote_arg_result $ECHO "\ # A function that is used when there is no print builtin or printf. @@ -5268,7 +5457,7 @@ func_fallback_echo () \$1 _LTECHO_EOF' } - ECHO=\"$qECHO\" + ECHO=$qECHO fi # Very basic option parsing. These options are (a) specific to @@ -6611,9 +6800,9 @@ func_mode_link () while test "$#" -gt 0; do arg=$1 shift - func_quote_for_eval "$arg" - qarg=$func_quote_for_eval_unquoted_result - func_append libtool_args " $func_quote_for_eval_result" + func_quote_arg pretty,unquoted "$arg" + qarg=$func_quote_arg_unquoted_result + func_append libtool_args " $func_quote_arg_result" # If the previous option needs an argument, assign it. if test -n "$prev"; then @@ -7211,9 +7400,9 @@ func_mode_link () save_ifs=$IFS; IFS=, for flag in $args; do IFS=$save_ifs - func_quote_for_eval "$flag" - func_append arg " $func_quote_for_eval_result" - func_append compiler_flags " $func_quote_for_eval_result" + func_quote_arg pretty "$flag" + func_append arg " $func_quote_arg_result" + func_append compiler_flags " $func_quote_arg_result" done IFS=$save_ifs func_stripname ' ' '' "$arg" @@ -7227,10 +7416,10 @@ func_mode_link () save_ifs=$IFS; IFS=, for flag in $args; do IFS=$save_ifs - func_quote_for_eval "$flag" - func_append arg " $wl$func_quote_for_eval_result" - func_append compiler_flags " $wl$func_quote_for_eval_result" - func_append linker_flags " $func_quote_for_eval_result" + func_quote_arg pretty "$flag" + func_append arg " $wl$func_quote_arg_result" + func_append compiler_flags " $wl$func_quote_arg_result" + func_append linker_flags " $func_quote_arg_result" done IFS=$save_ifs func_stripname ' ' '' "$arg" @@ -7254,8 +7443,8 @@ func_mode_link () # -msg_* for osf cc -msg_*) - func_quote_for_eval "$arg" - arg=$func_quote_for_eval_result + func_quote_arg pretty "$arg" + arg=$func_quote_arg_result ;; # Flags to be passed through unchanged, with rationale: @@ -7279,8 +7468,8 @@ func_mode_link () -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*|-tp=*|--sysroot=*| \ -O*|-g*|-flto*|-fwhopr*|-fuse-linker-plugin|-fstack-protector*|-stdlib=*| \ -specs=*|-fsanitize=*) - func_quote_for_eval "$arg" - arg=$func_quote_for_eval_result + func_quote_arg pretty "$arg" + arg=$func_quote_arg_result func_append compile_command " $arg" func_append finalize_command " $arg" func_append compiler_flags " $arg" @@ -7301,15 +7490,15 @@ func_mode_link () continue else # Otherwise treat like 'Some other compiler flag' below - func_quote_for_eval "$arg" - arg=$func_quote_for_eval_result + func_quote_arg pretty "$arg" + arg=$func_quote_arg_result fi ;; # Some other compiler flag. -* | +*) - func_quote_for_eval "$arg" - arg=$func_quote_for_eval_result + func_quote_arg pretty "$arg" + arg=$func_quote_arg_result ;; *.$objext) @@ -7429,8 +7618,8 @@ func_mode_link () *) # Unknown arguments in both finalize_command and compile_command need # to be aesthetically quoted because they are evaled later. - func_quote_for_eval "$arg" - arg=$func_quote_for_eval_result + func_quote_arg pretty "$arg" + arg=$func_quote_arg_result ;; esac # arg @@ -9942,8 +10131,8 @@ EOF for cmd in $concat_cmds; do IFS=$save_ifs $opt_quiet || { - func_quote_for_expand "$cmd" - eval "func_echo $func_quote_for_expand_result" + func_quote_arg expand,pretty "$cmd" + eval "func_echo $func_quote_arg_result" } $opt_dry_run || eval "$cmd" || { lt_exit=$? @@ -10036,8 +10225,8 @@ EOF eval cmd=\"$cmd\" IFS=$save_ifs $opt_quiet || { - func_quote_for_expand "$cmd" - eval "func_echo $func_quote_for_expand_result" + func_quote_arg expand,pretty "$cmd" + eval "func_echo $func_quote_arg_result" } $opt_dry_run || eval "$cmd" || { lt_exit=$? @@ -10511,12 +10700,12 @@ EOF elif eval var_value=\$$var; test -z "$var_value"; then relink_command="$var=; export $var; $relink_command" else - func_quote_for_eval "$var_value" - relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command" + func_quote_arg pretty "$var_value" + relink_command="$var=$func_quote_arg_result; export $var; $relink_command" fi done - relink_command="(cd `pwd`; $relink_command)" - relink_command=`$ECHO "$relink_command" | $SED "$sed_quote_subst"` + func_quote_arg pretty,unquoted "(cd `pwd`; $relink_command)" + relink_command=$func_quote_arg_unquoted_result fi # Only actually do things if not in dry run mode. @@ -10756,13 +10945,14 @@ EOF elif eval var_value=\$$var; test -z "$var_value"; then relink_command="$var=; export $var; $relink_command" else - func_quote_for_eval "$var_value" - relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command" + func_quote_arg pretty,unquoted "$var_value" + relink_command="$var=$func_quote_arg_unquoted_result; export $var; $relink_command" fi done # Quote the link command for shipping. relink_command="(cd `pwd`; $SHELL \"$progpath\" $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)" - relink_command=`$ECHO "$relink_command" | $SED "$sed_quote_subst"` + func_quote_arg pretty,unquoted "$relink_command" + relink_command=$func_quote_arg_unquoted_result if test yes = "$hardcode_automatic"; then relink_command= fi @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.69 for dbus-python 1.2.6. +# Generated by GNU Autoconf 2.69 for dbus-python 1.2.8. # # Report bugs to <http://bugs.freedesktop.org/enter_bug.cgi?product=dbus&component=python>. # @@ -591,8 +591,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='dbus-python' PACKAGE_TARNAME='dbus-python' -PACKAGE_VERSION='1.2.6' -PACKAGE_STRING='dbus-python 1.2.6' +PACKAGE_VERSION='1.2.8' +PACKAGE_STRING='dbus-python 1.2.8' PACKAGE_BUGREPORT='http://bugs.freedesktop.org/enter_bug.cgi?product=dbus&component=python' PACKAGE_URL='' @@ -647,14 +647,9 @@ DBUS_CFLAGS PKG_CONFIG_LIBDIR PKG_CONFIG_PATH PKG_CONFIG -ENABLE_DOCS_FALSE -ENABLE_DOCS_TRUE -ENABLE_API_DOCS_FALSE -ENABLE_API_DOCS_TRUE -RST2HTMLFLAGS -RST2HTML +ENABLE_DOCUMENTATION_FALSE +ENABLE_DOCUMENTATION_TRUE DBUS_RUN_SESSION -EPYDOC GENERATE_CHANGELOG_RULES GIT ENABLE_INSTALLED_TESTS_FALSE @@ -814,8 +809,7 @@ with_gnu_ld with_sysroot enable_libtool_lock enable_installed_tests -enable_html_docs -enable_api_docs +enable_documentation enable_compile_warnings enable_Werror enable_coding_style_checks @@ -1395,7 +1389,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures dbus-python 1.2.6 to adapt to many kinds of systems. +\`configure' configures dbus-python 1.2.8 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1466,7 +1460,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of dbus-python 1.2.6:";; + short | recursive ) echo "Configuration of dbus-python 1.2.8:";; esac cat <<\_ACEOF @@ -1491,10 +1485,8 @@ Optional Features: --enable-installed tests install test programs and helpers for as-installed testing - --enable-html-docs Enable HTML documentation building (requires - docutils, default: auto-detect) - --enable-api-docs Enable API documentation building (requires epydoc 3 - and docutils) + --enable-documentation Enable documentation building (requires sphinx and + sphinx_rtd_theme) --enable-compile-warnings=[no/yes/error] Enable compiler warnings and errors --disable-Werror Unconditionally make all compiler warnings non-fatal @@ -1620,7 +1612,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -dbus-python configure 1.2.6 +dbus-python configure 1.2.8 generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. @@ -1989,7 +1981,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by dbus-python $as_me 1.2.6, which was +It was created by dbus-python $as_me 1.2.8, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ @@ -2460,9 +2452,9 @@ $as_echo "#define DBUS_PYTHON_MINOR_VERSION 2" >>confdefs.h DBUS_PYTHON_MINOR_VERSION=2 -$as_echo "#define DBUS_PYTHON_MICRO_VERSION 6" >>confdefs.h +$as_echo "#define DBUS_PYTHON_MICRO_VERSION 8" >>confdefs.h -DBUS_PYTHON_MICRO_VERSION=6 +DBUS_PYTHON_MICRO_VERSION=8 @@ -4286,7 +4278,7 @@ fi # Define the identity of the package. PACKAGE='dbus-python' - VERSION='1.2.6' + VERSION='1.2.8' cat >>confdefs.h <<_ACEOF @@ -13108,33 +13100,13 @@ dist-ChangeLog: -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether you want to build HTML docs" >&5 -$as_echo_n "checking whether you want to build HTML docs... " >&6; } -# Check whether --enable-html-docs was given. -if test "${enable_html_docs+set}" = set; then : - enableval=$enable_html_docs; enable_html_docs=$enableval +# Check whether --enable-documentation was given. +if test "${enable_documentation+set}" = set; then : + enableval=$enable_documentation; : else - enable_html_docs="if possible" + enable_documentation=auto fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_html_docs" >&5 -$as_echo "$enable_html_docs" >&6; } - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether you want to build API docs" >&5 -$as_echo_n "checking whether you want to build API docs... " >&6; } -# Check whether --enable-api-docs was given. -if test "${enable_api_docs+set}" = set; then : - enableval=$enable_api_docs; enable_api_docs=$enableval -else - enable_api_docs="if possible" -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_api_docs" >&5 -$as_echo "$enable_api_docs" >&6; } - - -if test "$enable_api_docs" != no || test "$enable_html_docs" != no; then : - if test -z $PYTHON; then @@ -13146,84 +13118,35 @@ if test "$enable_api_docs" != no || test "$enable_html_docs" != no; then : fi fi PYTHON_NAME=`basename $PYTHON` - { $as_echo "$as_me:${as_lineno-$LINENO}: checking $PYTHON_NAME module: docutils" >&5 -$as_echo_n "checking $PYTHON_NAME module: docutils... " >&6; } - $PYTHON -c "import docutils" 2>/dev/null + { $as_echo "$as_me:${as_lineno-$LINENO}: checking $PYTHON_NAME module: sphinx" >&5 +$as_echo_n "checking $PYTHON_NAME module: sphinx... " >&6; } + $PYTHON -c "import sphinx" 2>/dev/null if test $? -eq 0; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } - eval HAVE_PYMOD_DOCUTILS=yes + eval HAVE_PYMOD_SPHINX=yes else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } - eval HAVE_PYMOD_DOCUTILS=no + eval HAVE_PYMOD_SPHINX=no # if test -n "" then - as_fn_error $? "failed to find required module docutils" "$LINENO" 5 + as_fn_error $? "failed to find required module sphinx" "$LINENO" 5 exit 1 fi fi - if test "$HAVE_PYMOD_DOCUTILS" = no; then : +if test "x$HAVE_PYMOD_SPHINX" = xno; then : - if test "$enable_api_docs" = "if possible"; then : - enable_api_docs=no -fi - if test "$enable_html_docs" = "if possible"; then : - enable_html_docs=no -fi - if test "$enable_api_docs" != no || test "$enable_html_docs" != no; then : - as_fn_error $? "cannot compile HTML documentation or API documentation without python-docutils installed" "$LINENO" 5 -fi - -fi - -fi - -if test "${enable_api_docs}" != no; then : - - # Extract the first word of "epydoc", so it can be a program name with args. -set dummy epydoc; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_path_EPYDOC+:} false; then : - $as_echo_n "(cached) " >&6 + if test "$enable_documentation" = yes; then : + as_fn_error $? "cannot build documentation without sphinx Python module" "$LINENO" 5 else - case $EPYDOC in - [\\/]* | ?:[\\/]*) - ac_cv_path_EPYDOC="$EPYDOC" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_path_EPYDOC="$as_dir/$ac_word$ac_exec_ext" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - - ;; -esac -fi -EPYDOC=$ac_cv_path_EPYDOC -if test -n "$EPYDOC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $EPYDOC" >&5 -$as_echo "$EPYDOC" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + enable_documentation=no fi - +fi if test -z $PYTHON; then @@ -13235,63 +13158,32 @@ fi fi fi PYTHON_NAME=`basename $PYTHON` - { $as_echo "$as_me:${as_lineno-$LINENO}: checking $PYTHON_NAME module: epydoc" >&5 -$as_echo_n "checking $PYTHON_NAME module: epydoc... " >&6; } - $PYTHON -c "import epydoc" 2>/dev/null + { $as_echo "$as_me:${as_lineno-$LINENO}: checking $PYTHON_NAME module: sphinx_rtd_theme" >&5 +$as_echo_n "checking $PYTHON_NAME module: sphinx_rtd_theme... " >&6; } + $PYTHON -c "import sphinx_rtd_theme" 2>/dev/null if test $? -eq 0; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } - eval HAVE_PYMOD_EPYDOC=yes + eval HAVE_PYMOD_SPHINX_RTD_THEME=yes else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } - eval HAVE_PYMOD_EPYDOC=no + eval HAVE_PYMOD_SPHINX_RTD_THEME=no # if test -n "" then - as_fn_error $? "failed to find required module epydoc" "$LINENO" 5 + as_fn_error $? "failed to find required module sphinx_rtd_theme" "$LINENO" 5 exit 1 fi fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking epydoc 3" >&5 -$as_echo_n "checking epydoc 3... " >&6; } - if test -n "$EPYDOC" && test "$HAVE_PYMOD_EPYDOC" = yes; then : - - EPYDOC_VERSION=`$EPYDOC --version` - case "$EPYDOC_VERSION" in #( - *ersion?3*) : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes, $EPYDOC_VERSION" >&5 -$as_echo "yes, $EPYDOC_VERSION" >&6; } - ;; #( - *) : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no, $EPYDOC_VERSION" >&5 -$as_echo "no, $EPYDOC_VERSION" >&6; } - EPYDOC= - ;; #( - *) : - ;; -esac +if test "x$HAVE_PYMOD_SPHINX_RTD_THEME" = xno; then : + if test "$enable_documentation" = yes; then : + as_fn_error $? "cannot build documentation without sphinx_rtd_theme Python module" "$LINENO" 5 else - - EPYDOC= - -fi - if test -z "$EPYDOC"; then : - - case "$enable_api_docs" in #( - if*possible) : - enable_api_docs=no ;; #( - *) : - as_fn_error $? "cannot compile API documentation without epydoc 3.0beta1 or newer installed" "$LINENO" 5 ;; #( - *) : - ;; -esac - + enable_documentation=no fi fi @@ -13339,285 +13231,12 @@ fi -RST2HTMLFLAGS= -if test "${enable_html_docs}" != no; then : - - for ac_prog in rst2html rst2html.py -do - # Extract the first word of "$ac_prog", so it can be a program name with args. -set dummy $ac_prog; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_RST2HTML+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$RST2HTML"; then - ac_cv_prog_RST2HTML="$RST2HTML" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_RST2HTML="$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -RST2HTML=$ac_cv_prog_RST2HTML -if test -n "$RST2HTML"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RST2HTML" >&5 -$as_echo "$RST2HTML" >&6; } + if test "$enable_documentation" != no; then + ENABLE_DOCUMENTATION_TRUE= + ENABLE_DOCUMENTATION_FALSE='#' else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - test -n "$RST2HTML" && break -done - - if test -z "$RST2HTML"; then : - - case "$enable_html_docs" in #( - if*possible) : - enable_html_docs=no ;; #( - *) : - as_fn_error $? "cannot compile HTML documentation without rst2html installed" "$LINENO" 5 ;; #( - *) : - ;; -esac - -fi - -else - - -case " $RST2HTMLFLAGS " in #( - *[\ \ ]--generator[\ \ ]*) : - ;; #( - *) : - - save_RST2HTMLFLAGS="$RST2HTMLFLAGS" - RST2HTMLFLAGS="$RST2HTMLFLAGS --generator" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $RST2HTML understands --generator" >&5 -$as_echo_n "checking whether $RST2HTML understands --generator... " >&6; } - if $RST2HTML --strict $RST2HTMLFLAGS /dev/null > /dev/null 2>/dev/null; then : - dbuspy_has_option=yes -else - dbuspy_has_option=no -fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $dbuspy_has_option" >&5 -$as_echo "$dbuspy_has_option" >&6; } - if test $dbuspy_has_option = no; then : - RST2HTMLFLAGS="$save_RST2HTMLFLAGS" -fi - ;; #( - *) : - ;; -esac - - -case " $RST2HTMLFLAGS " in #( - *[\ \ ]--date[\ \ ]*) : - ;; #( - *) : - - save_RST2HTMLFLAGS="$RST2HTMLFLAGS" - RST2HTMLFLAGS="$RST2HTMLFLAGS --date" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $RST2HTML understands --date" >&5 -$as_echo_n "checking whether $RST2HTML understands --date... " >&6; } - if $RST2HTML --strict $RST2HTMLFLAGS /dev/null > /dev/null 2>/dev/null; then : - dbuspy_has_option=yes -else - dbuspy_has_option=no -fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $dbuspy_has_option" >&5 -$as_echo "$dbuspy_has_option" >&6; } - if test $dbuspy_has_option = no; then : - RST2HTMLFLAGS="$save_RST2HTMLFLAGS" -fi - ;; #( - *) : - ;; -esac - - -case " $RST2HTMLFLAGS " in #( - *[\ \ ]--time[\ \ ]*) : - ;; #( - *) : - - save_RST2HTMLFLAGS="$RST2HTMLFLAGS" - RST2HTMLFLAGS="$RST2HTMLFLAGS --time" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $RST2HTML understands --time" >&5 -$as_echo_n "checking whether $RST2HTML understands --time... " >&6; } - if $RST2HTML --strict $RST2HTMLFLAGS /dev/null > /dev/null 2>/dev/null; then : - dbuspy_has_option=yes -else - dbuspy_has_option=no -fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $dbuspy_has_option" >&5 -$as_echo "$dbuspy_has_option" >&6; } - if test $dbuspy_has_option = no; then : - RST2HTMLFLAGS="$save_RST2HTMLFLAGS" -fi - ;; #( - *) : - ;; -esac - - -case " $RST2HTMLFLAGS " in #( - *[\ \ ]--exit-status=2[\ \ ]*) : - ;; #( - *) : - - save_RST2HTMLFLAGS="$RST2HTMLFLAGS" - RST2HTMLFLAGS="$RST2HTMLFLAGS --exit-status=2" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $RST2HTML understands --exit-status=2" >&5 -$as_echo_n "checking whether $RST2HTML understands --exit-status=2... " >&6; } - if $RST2HTML --strict $RST2HTMLFLAGS /dev/null > /dev/null 2>/dev/null; then : - dbuspy_has_option=yes -else - dbuspy_has_option=no -fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $dbuspy_has_option" >&5 -$as_echo "$dbuspy_has_option" >&6; } - if test $dbuspy_has_option = no; then : - RST2HTMLFLAGS="$save_RST2HTMLFLAGS" -fi - ;; #( - *) : - ;; -esac - - -case " $RST2HTMLFLAGS " in #( - *[\ \ ]--no-raw[\ \ ]*) : - ;; #( - *) : - - save_RST2HTMLFLAGS="$RST2HTMLFLAGS" - RST2HTMLFLAGS="$RST2HTMLFLAGS --no-raw" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $RST2HTML understands --no-raw" >&5 -$as_echo_n "checking whether $RST2HTML understands --no-raw... " >&6; } - if $RST2HTML --strict $RST2HTMLFLAGS /dev/null > /dev/null 2>/dev/null; then : - dbuspy_has_option=yes -else - dbuspy_has_option=no -fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $dbuspy_has_option" >&5 -$as_echo "$dbuspy_has_option" >&6; } - if test $dbuspy_has_option = no; then : - RST2HTMLFLAGS="$save_RST2HTMLFLAGS" -fi - ;; #( - *) : - ;; -esac - - -case " $RST2HTMLFLAGS " in #( - *[\ \ ]--no-file-insertion[\ \ ]*) : - ;; #( - *) : - - save_RST2HTMLFLAGS="$RST2HTMLFLAGS" - RST2HTMLFLAGS="$RST2HTMLFLAGS --no-file-insertion" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $RST2HTML understands --no-file-insertion" >&5 -$as_echo_n "checking whether $RST2HTML understands --no-file-insertion... " >&6; } - if $RST2HTML --strict $RST2HTMLFLAGS /dev/null > /dev/null 2>/dev/null; then : - dbuspy_has_option=yes -else - dbuspy_has_option=no -fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $dbuspy_has_option" >&5 -$as_echo "$dbuspy_has_option" >&6; } - if test $dbuspy_has_option = no; then : - RST2HTMLFLAGS="$save_RST2HTMLFLAGS" -fi - ;; #( - *) : - ;; -esac - - -case " $RST2HTMLFLAGS " in #( - *[\ \ ]--cloak-email-addresses[\ \ ]*) : - ;; #( - *) : - - save_RST2HTMLFLAGS="$RST2HTMLFLAGS" - RST2HTMLFLAGS="$RST2HTMLFLAGS --cloak-email-addresses" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $RST2HTML understands --cloak-email-addresses" >&5 -$as_echo_n "checking whether $RST2HTML understands --cloak-email-addresses... " >&6; } - if $RST2HTML --strict $RST2HTMLFLAGS /dev/null > /dev/null 2>/dev/null; then : - dbuspy_has_option=yes -else - dbuspy_has_option=no -fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $dbuspy_has_option" >&5 -$as_echo "$dbuspy_has_option" >&6; } - if test $dbuspy_has_option = no; then : - RST2HTMLFLAGS="$save_RST2HTMLFLAGS" -fi - ;; #( - *) : - ;; -esac - - -case " $RST2HTMLFLAGS " in #( - *[\ \ ]--input-encoding=UTF-8[\ \ ]*) : - ;; #( - *) : - - save_RST2HTMLFLAGS="$RST2HTMLFLAGS" - RST2HTMLFLAGS="$RST2HTMLFLAGS --input-encoding=UTF-8" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $RST2HTML understands --input-encoding=UTF-8" >&5 -$as_echo_n "checking whether $RST2HTML understands --input-encoding=UTF-8... " >&6; } - if $RST2HTML --strict $RST2HTMLFLAGS /dev/null > /dev/null 2>/dev/null; then : - dbuspy_has_option=yes -else - dbuspy_has_option=no -fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $dbuspy_has_option" >&5 -$as_echo "$dbuspy_has_option" >&6; } - if test $dbuspy_has_option = no; then : - RST2HTMLFLAGS="$save_RST2HTMLFLAGS" -fi - ;; #( - *) : - ;; -esac - - -fi - - - - if test "$enable_api_docs" != no; then - ENABLE_API_DOCS_TRUE= - ENABLE_API_DOCS_FALSE='#' -else - ENABLE_API_DOCS_TRUE='#' - ENABLE_API_DOCS_FALSE= -fi - - if test "$enable_html_docs" != no; then - ENABLE_DOCS_TRUE= - ENABLE_DOCS_FALSE='#' -else - ENABLE_DOCS_TRUE='#' - ENABLE_DOCS_FALSE= + ENABLE_DOCUMENTATION_TRUE='#' + ENABLE_DOCUMENTATION_FALSE= fi @@ -15172,12 +14791,8 @@ if test -z "${ENABLE_INSTALLED_TESTS_TRUE}" && test -z "${ENABLE_INSTALLED_TESTS as_fn_error $? "conditional \"ENABLE_INSTALLED_TESTS\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi -if test -z "${ENABLE_API_DOCS_TRUE}" && test -z "${ENABLE_API_DOCS_FALSE}"; then - as_fn_error $? "conditional \"ENABLE_API_DOCS\" was never defined. -Usually this means the macro was only invoked conditionally." "$LINENO" 5 -fi -if test -z "${ENABLE_DOCS_TRUE}" && test -z "${ENABLE_DOCS_FALSE}"; then - as_fn_error $? "conditional \"ENABLE_DOCS\" was never defined. +if test -z "${ENABLE_DOCUMENTATION_TRUE}" && test -z "${ENABLE_DOCUMENTATION_FALSE}"; then + as_fn_error $? "conditional \"ENABLE_DOCUMENTATION\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi @@ -15577,7 +15192,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by dbus-python $as_me 1.2.6, which was +This file was extended by dbus-python $as_me 1.2.8, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -15643,7 +15258,7 @@ _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ -dbus-python config.status 1.2.6 +dbus-python config.status 1.2.8 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" diff --git a/configure.ac b/configure.ac index be22583..e21ff2a 100644 --- a/configure.ac +++ b/configure.ac @@ -5,7 +5,7 @@ dnl The dbus-python version number m4_define(dbus_python_major_version, 1) m4_define(dbus_python_minor_version, 2) dnl Micro version is odd for non-releases -m4_define(dbus_python_micro_version, 6) +m4_define(dbus_python_micro_version, 8) AC_INIT([dbus-python], dbus_python_major_version.dbus_python_minor_version.dbus_python_micro_version, @@ -99,93 +99,31 @@ dnl Building documentation AX_GENERATE_CHANGELOG -AC_MSG_CHECKING([whether you want to build HTML docs]) -AC_ARG_ENABLE(html-docs, -AC_HELP_STRING([--enable-html-docs], [Enable HTML documentation building (requires docutils, default: auto-detect)]), enable_html_docs=$enableval, enable_html_docs="if possible") -AC_MSG_RESULT([$enable_html_docs]) - -AC_MSG_CHECKING([whether you want to build API docs]) -AC_ARG_ENABLE(api-docs, -AC_HELP_STRING([--enable-api-docs], [Enable API documentation building (requires epydoc 3 and docutils)]), enable_api_docs=$enableval, enable_api_docs="if possible") -AC_MSG_RESULT([$enable_api_docs]) - - -AS_IF([test "$enable_api_docs" != no || test "$enable_html_docs" != no], +AC_ARG_ENABLE([documentation], + [AC_HELP_STRING([--enable-documentation], + [Enable documentation building (requires sphinx and sphinx_rtd_theme)])], + [:], + [enable_documentation=auto]) +AX_PYTHON_MODULE([sphinx]) +AS_IF([test "x$HAVE_PYMOD_SPHINX" = xno], [ - AX_PYTHON_MODULE([docutils]) - AS_IF([test "$HAVE_PYMOD_DOCUTILS" = no], - [ - AS_IF([test "$enable_api_docs" = "if possible"], [enable_api_docs=no]) - AS_IF([test "$enable_html_docs" = "if possible"], [enable_html_docs=no]) - AS_IF([test "$enable_api_docs" != no || test "$enable_html_docs" != no], - [AC_MSG_ERROR([cannot compile HTML documentation or API documentation without python-docutils installed])]) - ]) + AS_IF([test "$enable_documentation" = yes], + [AC_MSG_ERROR([cannot build documentation without sphinx Python module])], + [enable_documentation=no]) ]) - -AS_IF([test "${enable_api_docs}" != no], +AX_PYTHON_MODULE([sphinx_rtd_theme]) +AS_IF([test "x$HAVE_PYMOD_SPHINX_RTD_THEME" = xno], [ - AC_PATH_PROG([EPYDOC], [epydoc]) - AX_PYTHON_MODULE([epydoc]) - AC_MSG_CHECKING([epydoc 3]) - AS_IF([test -n "$EPYDOC" && test "$HAVE_PYMOD_EPYDOC" = yes], - [ - EPYDOC_VERSION=`$EPYDOC --version` - AS_CASE(["$EPYDOC_VERSION"], - [*ersion?3*], - [ - AC_MSG_RESULT([yes, $EPYDOC_VERSION]) - ], - [*], - [ - AC_MSG_RESULT([no, $EPYDOC_VERSION]) - EPYDOC= - ]) - ], - [ - EPYDOC= - ]) - AS_IF([test -z "$EPYDOC"], - [ - AS_CASE(["$enable_api_docs"], - [if*possible], - [enable_api_docs=no], - [*], - [AC_MSG_ERROR([cannot compile API documentation without epydoc 3.0beta1 or newer installed])]) - ]) + AS_IF([test "$enable_documentation" = yes], + [AC_MSG_ERROR([cannot build documentation without sphinx_rtd_theme Python module])], + [enable_documentation=no]) ]) AC_ARG_VAR([DBUS_RUN_SESSION], [The dbus-run-session tool from dbus 1.8 or later]) AC_PATH_PROG([DBUS_RUN_SESSION], [dbus-run-session], [dbus-run-session]) -RST2HTMLFLAGS= -AS_IF([test "${enable_html_docs}" != no], - [ - AC_CHECK_PROGS([RST2HTML], [rst2html rst2html.py], []) - AS_IF([test -z "$RST2HTML"], - [ - AS_CASE(["$enable_html_docs"], - [if*possible], - [enable_html_docs=no], - [*], - [AC_MSG_ERROR([cannot compile HTML documentation without rst2html installed])]) - ]) - ], - [ - DBUS_PY_ADD_RST2HTMLFLAG([--generator]) - DBUS_PY_ADD_RST2HTMLFLAG([--date]) - DBUS_PY_ADD_RST2HTMLFLAG([--time]) - DBUS_PY_ADD_RST2HTMLFLAG([--exit-status=2]) - DBUS_PY_ADD_RST2HTMLFLAG([--no-raw]) - DBUS_PY_ADD_RST2HTMLFLAG([--no-file-insertion]) - DBUS_PY_ADD_RST2HTMLFLAG([--cloak-email-addresses]) - DBUS_PY_ADD_RST2HTMLFLAG([--input-encoding=UTF-8]) - ]) -AC_SUBST([RST2HTML]) -AC_SUBST([RST2HTMLFLAGS]) - -AM_CONDITIONAL([ENABLE_API_DOCS], [test "$enable_api_docs" != no]) -AM_CONDITIONAL([ENABLE_DOCS], [test "$enable_html_docs" != no]) +AM_CONDITIONAL([ENABLE_DOCUMENTATION], [test "$enable_documentation" != no]) PKG_CHECK_MODULES(DBUS, [dbus-1 >= 1.8]) PKG_CHECK_MODULES([GLIB], [glib-2.0 >= 2.40]) diff --git a/dbus-gmain/Makefile.in b/dbus-gmain/Makefile.in index a20ab28..6ca4d4b 100644 --- a/dbus-gmain/Makefile.in +++ b/dbus-gmain/Makefile.in @@ -109,7 +109,6 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/ax_append_compile_flags.m4 \ $(top_srcdir)/m4/ax_python_devel.m4 \ $(top_srcdir)/m4/ax_python_module.m4 \ $(top_srcdir)/m4/ax_require_defined.m4 \ - $(top_srcdir)/m4/dbus-py-add-rst2htmlflag.m4 \ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/pkg.m4 \ @@ -464,7 +463,6 @@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ -EPYDOC = @EPYDOC@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GIT = @GIT@ @@ -519,8 +517,6 @@ PYTHON_PREFIX = @PYTHON_PREFIX@ PYTHON_SITE_PKG = @PYTHON_SITE_PKG@ PYTHON_VERSION = @PYTHON_VERSION@ RANLIB = @RANLIB@ -RST2HTML = @RST2HTML@ -RST2HTMLFLAGS = @RST2HTMLFLAGS@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ diff --git a/dbus/__init__.py b/dbus/__init__.py index e96bd99..a2aeac9 100644 --- a/dbus/__init__.py +++ b/dbus/__init__.py @@ -1,12 +1,6 @@ """\ Implements the public API for a D-Bus client. See the dbus.service module to export objects or claim well-known names. - -.. - for epydoc's benefit - -:NewField SupportedUsage: Supported usage -:NewField Constructor: Constructor """ # Copyright (C) 2003, 2004, 2005, 2006 Red Hat Inc. <http://www.redhat.com/> diff --git a/dbus/gi_service.py b/dbus/gi_service.py index c182d0a..e091771 100644 --- a/dbus/gi_service.py +++ b/dbus/gi_service.py @@ -74,9 +74,7 @@ def ExportedGObject__init__(self, conn=None, object_path=None, **kwargs): bus_name=bus_name) ExportedGObject__doc__ = ''' -A GObject which is exported on the D-Bus. - -:undocumented: __gtype__ +A GObject which is exported on D-Bus. ''' ExportedGObject = ExportedGObjectType( diff --git a/dbus/gobject_service.py b/dbus/gobject_service.py index 3d096c4..ef16009 100644 --- a/dbus/gobject_service.py +++ b/dbus/gobject_service.py @@ -55,8 +55,6 @@ class ExportedGObject(gobject.GObject, dbus.service.Object): the naive approach using simple multiple inheritance won't work. This class has `ExportedGObjectType` as its metaclass, which is sufficient to make it work correctly. - - :undocumented: __gtype__ """ __metaclass__ = ExportedGObjectType diff --git a/dbus/service.py b/dbus/service.py index 2953229..6093ac5 100644 --- a/dbus/service.py +++ b/dbus/service.py @@ -75,11 +75,11 @@ class BusName(object): If a well-known name is requested multiple times, multiple references to the same BusName object will be returned. - Caveats - ------- - - Assumes that named services are only ever requested using this class - - if you request names from the bus directly, confusion may occur. - - Does not handle queueing. + :Caveats: + + - Assumes that named services are only ever requested using this class - + if you request names from the bus directly, confusion may occur. + - Does not handle queueing. """ def __new__(cls, name, bus=None, allow_replacement=False , replace_existing=False, do_not_queue=False): """Constructor, which may either return an existing cached object diff --git a/dbus_bindings/bytes.c b/dbus_bindings/bytes.c index b0ff817..873a2fa 100644 --- a/dbus_bindings/bytes.c +++ b/dbus_bindings/bytes.c @@ -37,22 +37,22 @@ #endif PyDoc_STRVAR(Byte_tp_doc, +"dbus.Byte(integer or bytes of length 1[, variant_level])\n" +"\n" "An unsigned byte: a subtype of int, with range restricted to [0, 255].\n" "\n" -"A Byte b may be converted to a str of length 1 via str(b) == chr(b).\n" +"A Byte `b` may be converted to a ``str`` of length 1 via\n" +"``str(b) == chr(b)`` (Python 2) or to a ``bytes`` of length 1\n" +"via ``bytes([b])`` (Python 3).\n" "\n" "Most of the time you don't want to use this class - it mainly exists\n" "for symmetry with the other D-Bus types. See `dbus.ByteArray` for a\n" "better way to handle arrays of Byte.\n" "\n" -"Constructor::\n" -"\n" -" dbus.Byte(integer or str of length 1[, variant_level])\n" +":py:attr:`variant_level` must be non-negative; the default is 0.\n" "\n" -"``variant_level`` must be non-negative; the default is 0.\n" +".. py:attribute:: variant_level\n" "\n" -":IVariables:\n" -" `variant_level` : int\n" " Indicates how many nested Variant containers this object\n" " is contained in: if a message's wire format has a variant containing a\n" " variant containing a byte, this is represented in Python by a\n" @@ -204,8 +204,12 @@ PyTypeObject DBusPyByte_Type = { #endif PyDoc_STRVAR(ByteArray_tp_doc, -"ByteArray is a subtype of str which can be used when you want an\n" -"efficient immutable representation of a D-Bus byte array (signature 'ay').\n" +"ByteArray(str)\n" +"\n" +"ByteArray is a subtype of :py:class:`bytes` (an alias for\n" +":py:class:`str` in Python 2 but a distinct type in Python 3)\n" +"which can be used when you want an\n" +"efficient immutable representation of a D-Bus byte array (signature ``ay``).\n" "\n" "By default, when byte arrays are converted from D-Bus to Python, they\n" "come out as a `dbus.Array` of `dbus.Byte`. This is just for symmetry with\n" diff --git a/dbus_bindings/conn.c b/dbus_bindings/conn.c index 9ef1487..739f305 100644 --- a/dbus_bindings/conn.c +++ b/dbus_bindings/conn.c @@ -31,11 +31,9 @@ /* Connection definition ============================================ */ PyDoc_STRVAR(Connection_tp_doc, -"A D-Bus connection.\n" -"\n" -"::\n" +"_dbus_bindings.Connection(address, mainloop=None)\n" "\n" -" Connection(address, mainloop=None) -> Connection\n" +"A D-Bus connection.\n" ); /* D-Bus Connection user data slot, containing an owned reference to either diff --git a/dbus_bindings/containers.c b/dbus_bindings/containers.c index e364f98..26f983b 100644 --- a/dbus_bindings/containers.c +++ b/dbus_bindings/containers.c @@ -33,6 +33,8 @@ /* Array ============================================================ */ PyDoc_STRVAR(Array_tp_doc, +"dbus.Array([iterable][, signature][, variant_level])\n" +"\n" "An array of similar items, implemented as a subtype of list.\n" "\n" "As currently implemented, an Array behaves just like a list, but\n" @@ -40,11 +42,7 @@ PyDoc_STRVAR(Array_tp_doc, "conversion of its items to D-Bus types is only done when it's sent in\n" "a Message. This might change in future so validation is done earlier.\n" "\n" -"Constructor::\n" -"\n" -" dbus.Array([iterable][, signature][, variant_level])\n" -"\n" -"``variant_level`` must be non-negative; the default is 0.\n" +":py:attr:`variant_level` must be non-negative; the default is 0.\n" "\n" "``signature`` is the D-Bus signature string for a single element of the\n" "array, or None. If not None it must represent a single complete type, the\n" @@ -53,13 +51,6 @@ PyDoc_STRVAR(Array_tp_doc, "\n" "If None (the default), when the Array is sent over\n" "D-Bus, the item signature will be guessed from the first element.\n" -"\n" -":IVariables:\n" -" `variant_level` : int\n" -" Indicates how many nested Variant containers this object\n" -" is contained in: if a message's wire format has a variant containing a\n" -" variant containing an array, this is represented in Python by an\n" -" Array with variant_level==2.\n" ); static struct PyMemberDef Array_tp_members[] = { @@ -68,8 +59,11 @@ static struct PyMemberDef Array_tp_members[] = { "instance)"}, {"variant_level", T_LONG, offsetof(DBusPyArray, variant_level), READONLY, - "The number of nested variants wrapping the real data. " - "0 if not in a variant."}, + "Indicates how many nested Variant containers this object\n" + "is contained in: if a message's wire format has a variant containing a\n" + "variant containing an array, this is represented in Python by an\n" + "Array with variant_level==2.\n" + }, {NULL}, }; @@ -265,6 +259,8 @@ PyTypeObject DBusPyArray_Type = { /* Dict ============================================================= */ PyDoc_STRVAR(Dict_tp_doc, +"dbus.Dictionary(mapping_or_iterable=(), signature=None, variant_level=0)\n" +"\n" "An mapping whose keys are similar and whose values are similar,\n" "implemented as a subtype of dict.\n" "\n" @@ -273,11 +269,7 @@ PyDoc_STRVAR(Dict_tp_doc, "conversion of its items to D-Bus types is only done when it's sent in\n" "a Message. This may change in future so validation is done earlier.\n" "\n" -"Constructor::\n" -"\n" -" Dictionary(mapping_or_iterable=(), signature=None, variant_level=0)\n" -"\n" -"``variant_level`` must be non-negative; the default is 0.\n" +":py:attr:`variant_level` must be non-negative; the default is 0.\n" "\n" "``signature`` is either a string or None. If a string, it must consist\n" "of exactly two complete type signatures, representing the 'key' type\n" @@ -288,13 +280,6 @@ PyDoc_STRVAR(Dict_tp_doc, "If it is None (the default), when the Dictionary is sent over\n" "D-Bus, the key and value signatures will be guessed from an arbitrary\n" "element of the Dictionary.\n" -"\n" -":IVariables:\n" -" `variant_level` : int\n" -" Indicates how many nested Variant containers this object\n" -" is contained in: if a message's wire format has a variant containing a\n" -" variant containing an array of DICT_ENTRY, this is represented in\n" -" Python by a Dictionary with variant_level==2.\n" ); static struct PyMemberDef Dict_tp_members[] = { @@ -303,8 +288,11 @@ static struct PyMemberDef Dict_tp_members[] = { "that of each value in this Dictionary, as a Signature instance."}, {"variant_level", T_LONG, offsetof(DBusPyDict, variant_level), READONLY, - "The number of nested variants wrapping the real data. " - "0 if not in a variant."}, + "Indicates how many nested Variant containers this object\n" + "is contained in: if a message's wire format has a variant containing a\n" + "variant containing a dictionary, this is represented in Python by a\n" + "Dictionary with variant_level==2.\n" + }, {NULL}, }; @@ -524,11 +512,9 @@ PyTypeObject DBusPyDict_Type = { static PyObject *struct_signatures; PyDoc_STRVAR(Struct_tp_doc, -"An structure containing items of possibly distinct types.\n" -"\n" -"Constructor::\n" +"dbus.Struct(iterable, signature=None, variant_level=0)\n" "\n" -" dbus.Struct(iterable, signature=None, variant_level=0) -> Struct\n" +"An structure containing items of possibly distinct types.\n" "\n" "D-Bus structs may not be empty, so the iterable argument is required and\n" "may not be an empty iterable.\n" @@ -540,10 +526,10 @@ PyDoc_STRVAR(Struct_tp_doc, "If the signature is None (default) it will be guessed\n" "from the types of the items during construction.\n" "\n" -"``variant_level`` must be non-negative; the default is 0.\n" +":py:attr:`variant_level` must be non-negative; the default is 0.\n" +"\n" +".. py:attribute:: variant_level\n" "\n" -":IVariables:\n" -" `variant_level` : int\n" " Indicates how many nested Variant containers this object\n" " is contained in: if a message's wire format has a variant containing a\n" " variant containing a struct, this is represented in Python by a\n" diff --git a/dbus_bindings/int.c b/dbus_bindings/int.c index 66ad9e0..109d4c7 100644 --- a/dbus_bindings/int.c +++ b/dbus_bindings/int.c @@ -29,8 +29,10 @@ #ifdef PY3 #define INTBASE (DBusPyLongBase_Type) +#define LONG_TYPE_NAME "int" #else #define INTBASE (DBusPyIntBase_Type) +#define LONG_TYPE_NAME "long" #endif /* Specific types =================================================== */ @@ -38,19 +40,17 @@ /* Boolean, a subclass of DBusPythonInt ============================= */ PyDoc_STRVAR(Boolean_tp_doc, -"A boolean, represented as a subtype of `int` (not `bool`, because `bool`\n" -"cannot be subclassed).\n" -"\n" -"Constructor::\n" +"dbus.Boolean(value: bool[, variant_level: int])\n" "\n" -" dbus.Boolean(value[, variant_level]) -> Boolean\n" +"A boolean, represented as a subtype of ``int`` (not ``bool``, because ``bool``\n" +"cannot be subclassed).\n" "\n" "``value`` is converted to 0 or 1 as if by ``int(bool(value))``.\n" "\n" -"``variant_level`` must be non-negative; the default is 0.\n" +":py:attr:`variant_level` must be non-negative; the default is 0.\n" +"\n" +".. py:attribute:: variant_level\n" "\n" -":IVariables:\n" -" `variant_level` : int\n" " Indicates how many nested Variant containers this object\n" " is contained in: if a message's wire format has a variant containing a\n" " variant containing a boolean, this is represented in Python by a\n" @@ -148,20 +148,18 @@ PyTypeObject DBusPyBoolean_Type = { /* Int16 ============================================================ */ PyDoc_STRVAR(Int16_tp_doc, +"dbus.Int16(value: int[, variant_level: int])\n" +"\n" "A signed 16-bit integer between -0x8000 and +0x7FFF, represented as\n" "a subtype of `int`.\n" "\n" -"Constructor::\n" -"\n" -" dbus.Int16(value: int[, variant_level: int]) -> Int16\n" -"\n" "value must be within the allowed range, or OverflowError will be\n" "raised.\n" "\n" " variant_level must be non-negative; the default is 0.\n" "\n" -":IVariables:\n" -" `variant_level` : int\n" +".. py:attribute:: variant_level\n" +"\n" " Indicates how many nested Variant containers this object\n" " is contained in: if a message's wire format has a variant containing a\n" " variant containing an int16, this is represented in Python by an\n" @@ -238,20 +236,18 @@ PyTypeObject DBusPyInt16_Type = { /* UInt16 =========================================================== */ PyDoc_STRVAR(UInt16_tp_doc, -"An unsigned 16-bit integer between 0 and 0xFFFF, represented as\n" -"a subtype of `int`.\n" -"\n" -"Constructor::\n" +"dbus.UInt16(value: int[, variant_level: int])\n" "\n" -" dbus.UInt16(value: int[, variant_level: int]) -> UInt16\n" +"An unsigned 16-bit integer between 0 and 0xFFFF, represented as\n" +"a subtype of ``int``.\n" "\n" "``value`` must be within the allowed range, or `OverflowError` will be\n" "raised.\n" "\n" -"``variant_level`` must be non-negative; the default is 0.\n" +":py:attr:`variant_level` must be non-negative; the default is 0.\n" +"\n" +".. py:attribute:: variant_level\n" "\n" -":IVariables:\n" -" `variant_level` : int\n" " Indicates how many nested Variant containers this object\n" " is contained in: if a message's wire format has a variant containing a\n" " variant containing a uint16, this is represented in Python by a\n" @@ -330,20 +326,18 @@ PyTypeObject DBusPyUInt16_Type = { /* Int32 ============================================================ */ PyDoc_STRVAR(Int32_tp_doc, -"A signed 32-bit integer between -0x8000 0000 and +0x7FFF FFFF, represented as\n" -"a subtype of `int`.\n" -"\n" -"Constructor::\n" +"dbus.Int32(value: int[, variant_level: int])\n" "\n" -" dbus.Int32(value: int[, variant_level: int]) -> Int32\n" +"A signed 32-bit integer between -0x8000 0000 and +0x7FFF FFFF, represented as\n" +"a subtype of ``int``.\n" "\n" "``value`` must be within the allowed range, or `OverflowError` will be\n" "raised.\n" "\n" -"``variant_level`` must be non-negative; the default is 0.\n" +":py:attr:`variant_level` must be non-negative; the default is 0.\n" +"\n" +".. py:attribute:: variant_level\n" "\n" -":IVariables:\n" -" `variant_level` : int\n" " Indicates how many nested Variant containers this object\n" " is contained in: if a message's wire format has a variant containing a\n" " variant containing an int32, this is represented in Python by an\n" @@ -420,23 +414,18 @@ PyTypeObject DBusPyInt32_Type = { /* UInt32 =========================================================== */ PyDoc_STRVAR(UInt32_tp_doc, -"An unsigned 32-bit integer between 0 and 0xFFFF FFFF, represented as a\n" -"subtype of `long`.\n" -"\n" -"Note that this may be changed in future to be a subtype of `int` on\n" -"64-bit platforms; applications should not rely on either behaviour.\n" -"\n" -"Constructor::\n" +"dbus.UInt32(value: " LONG_TYPE_NAME "[, variant_level: int])\n" "\n" -" dbus.UInt32(value: long[, variant_level: int]) -> UInt32\n" +"An unsigned 32-bit integer between 0 and 0xFFFF FFFF, represented as a\n" +"subtype of ``long`` in Python 2 or ``int`` in Python 3.\n" "\n" "``value`` must be within the allowed range, or `OverflowError` will be\n" "raised.\n" "\n" -"``variant_level`` must be non-negative; the default is 0.\n" +":py:attr:`variant_level` must be non-negative; the default is 0.\n" +"\n" +".. py:attribute:: variant_level\n" "\n" -":IVariables:\n" -" `variant_level` : int\n" " Indicates how many nested Variant containers this object\n" " is contained in: if a message's wire format has a variant containing a\n" " variant containing a uint32, this is represented in Python by a\n" @@ -521,26 +510,22 @@ PyTypeObject DBusPyUInt32_Type = { /* Int64 =========================================================== */ PyDoc_STRVAR(Int64_tp_doc, +"dbus.Int64(value: " LONG_TYPE_NAME "[, variant_level: int])\n" +"\n" "A signed 64-bit integer between -0x8000 0000 0000 0000 and\n" -"+0x7FFF FFFF FFFF FFFF, represented as a subtype of `long`.\n" +"+0x7FFF FFFF FFFF FFFF, represented as a\n" +"subtype of ``long`` in Python 2 or ``int`` in Python 3.\n" "\n" "Note that this may be changed in future to be a subtype of `int` on\n" "64-bit platforms; applications should not rely on either behaviour.\n" "\n" -"This type only works on platforms where the C compiler has suitable\n" -"64-bit types, such as C99 ``long long``.\n" -"\n" -"Constructor::\n" -"\n" -" dbus.Int64(value: long[, variant_level: int]) -> Int64\n" -"\n" "``value`` must be within the allowed range, or `OverflowError` will be\n" "raised.\n" "\n" -"``variant_level`` must be non-negative; the default is 0.\n" +":py:attr:`variant_level` must be non-negative; the default is 0.\n" +"\n" +".. py:attribute:: variant_level\n" "\n" -":IVariables:\n" -" `variant_level` : int\n" " Indicates how many nested Variant containers this object\n" " is contained in: if a message's wire format has a variant containing a\n" " variant containing an int64, this is represented in Python by an\n" @@ -631,23 +616,18 @@ PyTypeObject DBusPyInt64_Type = { /* UInt64 =========================================================== */ PyDoc_STRVAR(UInt64_tp_doc, -"An unsigned 64-bit integer between 0 and 0xFFFF FFFF FFFF FFFF,\n" -"represented as a subtype of `long`.\n" +"dbus.UInt64(value: " LONG_TYPE_NAME "[, variant_level: int])\n" "\n" -"This type only exists on platforms where the C compiler has suitable\n" -"64-bit types, such as C99 ``unsigned long long``.\n" -"\n" -"Constructor::\n" -"\n" -" dbus.UInt64(value: long[, variant_level: int]) -> UInt64\n" +"An unsigned 64-bit integer between 0 and 0xFFFF FFFF FFFF FFFF,\n" +"subtype of ``long`` in Python 2 or ``int`` in Python 3.\n" "\n" "``value`` must be within the allowed range, or `OverflowError` will be\n" "raised.\n" "\n" -"``variant_level`` must be non-negative; the default is 0.\n" +":py:attr:`variant_level` must be non-negative; the default is 0.\n" +"\n" +".. py:attribute:: variant_level\n" "\n" -":IVariables:\n" -" `variant_level` : int\n" " Indicates how many nested Variant containers this object\n" " is contained in: if a message's wire format has a variant containing a\n" " variant containing a uint64, this is represented in Python by a\n" diff --git a/dbus_bindings/message-append.c b/dbus_bindings/message-append.c index d20b493..0480ceb 100644 --- a/dbus_bindings/message-append.c +++ b/dbus_bindings/message-append.c @@ -70,7 +70,8 @@ get_variant_level(PyObject *obj) } char dbus_py_Message_append__doc__[] = ( -"set_args(*args[, **kwargs])\n\n" +"message.append(*args, **kwargs)\n" +"\n" "Set the message's arguments from the positional parameter, according to\n" "the signature given by the ``signature`` keyword parameter.\n" "\n" diff --git a/dbus_bindings/message-get-args.c b/dbus_bindings/message-get-args.c index 49670c1..65596d9 100644 --- a/dbus_bindings/message-get-args.c +++ b/dbus_bindings/message-get-args.c @@ -45,8 +45,8 @@ char dbus_py_Message_get_args_list__doc__[] = ( " If false (default), convert them into a dbus.Array of Bytes.\n" #ifndef PY3 " `utf8_strings` : bool\n" -" If true, return D-Bus strings as Python 8-bit strings (of UTF-8).\n" -" If false (default), return D-Bus strings as Python unicode objects.\n" +" If true, return D-Bus strings as Python `bytes` objects (in UTF-8).\n" +" If false (default), return D-Bus strings as Python `unicode` objects.\n" #endif "\n" "Most of the type mappings should be fairly obvious:\n" @@ -60,7 +60,7 @@ char dbus_py_Message_get_args_list__doc__[] = ( "intNN, uintNN dbus.IntNN, dbus.UIntNN (int or long subclasses)\n" "double (d) dbus.Double\n" "string (s) dbus.String (unicode subclass)\n" -" (or dbus.UTF8String, str subclass, if utf8_strings set)\n" +" (or dbus.UTF8String, bytes subclass, if utf8_strings set)\n" "Object path (o) dbus.ObjectPath (str subclass)\n" "dict (a{...}) dbus.Dictionary\n" "array (a...) dbus.Array (list subclass) containing appropriate types\n" diff --git a/dbus_bindings/message.c b/dbus_bindings/message.c index ded8fe1..43b8df6 100644 --- a/dbus_bindings/message.c +++ b/dbus_bindings/message.c @@ -93,12 +93,11 @@ MethodCallMessage_tp_repr(PyObject *self) path, interface, member, destination); } -PyDoc_STRVAR(MethodCallMessage_tp_doc, "A method-call message.\n" +PyDoc_STRVAR(MethodCallMessage_tp_doc, +"dbus.lowlevel.MethodCallMessage(destination: str or None, path: str, " +"interface: str or None, method: str)\n" "\n" -"Constructor::\n" -"\n" -" dbus.lowlevel.MethodCallMessage(destination: str or None, path: str,\n" -" interface: str or None, method: str)\n" +"A method-call message.\n" "\n" "``destination`` is the destination bus name, or None to send the\n" "message directly to the peer (usually the bus daemon).\n" @@ -139,9 +138,10 @@ MethodCallMessage_tp_init(Message *self, PyObject *args, PyObject *kwargs) return 0; } -PyDoc_STRVAR(MethodReturnMessage_tp_doc, "A method-return message.\n\n" -"Constructor::\n\n" -" dbus.lowlevel.MethodReturnMessage(method_call: MethodCallMessage)\n"); +PyDoc_STRVAR(MethodReturnMessage_tp_doc, +"dbus.lowlevel.MethodReturnMessage(method_call: MethodCallMessage)\n" +"\n" +"A method-return message."); static int MethodReturnMessage_tp_init(Message *self, PyObject *args, PyObject *kwargs) @@ -165,9 +165,10 @@ MethodReturnMessage_tp_init(Message *self, PyObject *args, PyObject *kwargs) return 0; } -PyDoc_STRVAR(SignalMessage_tp_doc, "A signal message.\n\n" -"Constructor::\n\n" -" dbus.lowlevel.SignalMessage(path: str, interface: str, method: str)\n"); +PyDoc_STRVAR(SignalMessage_tp_doc, +"dbus.lowlevel.SignalMessage(path: str, interface: str, method: str)\n" +"\n" +"A signal message.\n"); static int SignalMessage_tp_init(Message *self, PyObject *args, PyObject *kwargs) { @@ -216,10 +217,11 @@ SignalMessage_tp_repr(PyObject *self) path, interface, member, destination); } -PyDoc_STRVAR(ErrorMessage_tp_doc, "An error message.\n\n" -"Constructor::\n\n" -" dbus.lowlevel.ErrorMessage(reply_to: Message, error_name: str,\n" -" error_message: str or None)\n"); +PyDoc_STRVAR(ErrorMessage_tp_doc, +"dbus.lowlevel.ErrorMessage(reply_to: Message, error_name: str, " +"error_message: str or None)\n" +"\n" +"An error message.\n"); static int ErrorMessage_tp_init(Message *self, PyObject *args, PyObject *kwargs) { diff --git a/dbus_bindings/signature.c b/dbus_bindings/signature.c index e3a555c..c1a32e7 100644 --- a/dbus_bindings/signature.c +++ b/dbus_bindings/signature.c @@ -31,21 +31,19 @@ #include "types-internal.h" PyDoc_STRVAR(Signature_tp_doc, +"Signature(value: str or unicode[, variant_level: int])\n" +"\n" "A string subclass whose values are restricted to valid D-Bus\n" "signatures. When iterated over, instead of individual characters it\n" "produces Signature instances representing single complete types.\n" "\n" -"Constructor::\n" -"\n" -" ``Signature(value: str or unicode[, variant_level: int]) -> Signature``\n" -"\n" "``value`` must be a valid D-Bus signature (zero or more single complete\n" "types).\n" "\n" -"``variant_level`` must be non-negative; the default is 0.\n" +":py:attr:`variant_level` must be non-negative; the default is 0.\n" +"\n" +".. py:attribute:: variant_level\n" "\n" -":IVariables:\n" -" `variant_level` : int\n" " Indicates how many nested Variant containers this object\n" " is contained in: if a message's wire format has a variant containing a\n" " variant containing a signature, this is represented in Python by a\n" diff --git a/dbus_bindings/string.c b/dbus_bindings/string.c index 8363f98..ce8f03d 100644 --- a/dbus_bindings/string.c +++ b/dbus_bindings/string.c @@ -32,7 +32,10 @@ /* UTF-8 string representation ====================================== */ PyDoc_STRVAR(UTF8String_tp_doc, -"A string represented using UTF-8 - a subtype of `str`.\n" +"dbus.UTF8String(value: bytes or unicode[, variant_level: int=0])\n" +"\n" +"A string represented using UTF-8 - a subtype of `bytes`.\n" +"This type is only available in Python 2.\n" "\n" "All strings on D-Bus are required to be valid Unicode; in the \"wire\n" "protocol\" they're transported as UTF-8.\n" @@ -50,21 +53,17 @@ PyDoc_STRVAR(UTF8String_tp_doc, "* `dbus.Interface.connect_to_signal`\n" "* `Bus.add_signal_receiver`\n" "\n" -"\n" -"Constructor::\n" -"\n" -" dbus.UTF8String(value: str or unicode[, variant_level: int]) -> UTF8String\n" -"\n" -"If value is a str object it must be valid UTF-8.\n" +"If value is a bytes object it must be valid UTF-8.\n" "\n" "variant_level must be non-negative; the default is 0.\n" "\n" -":IVariables:\n" -" `variant_level` : int\n" +".. py:attribute:: variant_level\n" +"\n" " Indicates how many nested Variant containers this object\n" " is contained in: if a message's wire format has a variant containing a\n" " variant containing a string, this is represented in Python by a\n" " String or UTF8String with variant_level==2.\n" +"\n" ":Since: 0.80 (in older versions, use dbus.String)\n" ); @@ -129,19 +128,16 @@ PyTypeObject DBusPyUTF8String_Type = { /* Object path ====================================================== */ PyDoc_STRVAR(ObjectPath_tp_doc, -"A D-Bus object path, such as '/com/example/MyApp/Documents/abc'.\n" -"\n" -"ObjectPath is a subtype of str, and object-paths behave like strings.\n" +"dbus.ObjectPath(path: str[, variant_level: int=0])\n" +"A D-Bus object path, such as ``/com/example/MyApp/Documents/abc``.\n" "\n" -"Constructor::\n" -"\n" -" dbus.ObjectPath(path: str, variant_level: int) -> ObjectPath\n" +"ObjectPath is a subtype of :py:class:`str`, and object-paths behave like strings.\n" "\n" "path must be an ASCII string following the syntax of object paths.\n" "variant_level must be non-negative; the default is 0.\n" "\n" -":IVariables:\n" -" `variant_level` : int\n" +".. py:attribute:: variant_level\n" +"\n" " Indicates how many nested Variant containers this object\n" " is contained in: if a message's wire format has a variant containing a\n" " variant containing an object path, this is represented in Python by an\n" @@ -207,36 +203,32 @@ PyTypeObject DBusPyObjectPath_Type = { /* Unicode string representation ==================================== */ PyDoc_STRVAR(String_tp_doc, -"A string represented using Unicode - a subtype of `unicode`.\n" +"dbus.String(value: str or unicode[, variant_level: int])\n" +"\n" +"A string represented using Unicode - a subtype of ``unicode`` (Python 2)\n" +"or ``str`` (Python 3).\n" "\n" "All strings on D-Bus are required to be valid Unicode; in the \"wire\n" "protocol\" they're transported as UTF-8.\n" "\n" "By default, when strings are converted from D-Bus to Python, they\n" -"come out as this class. If you prefer to get UTF-8 strings (as instances\n" +"come out as this class. In Python 2, if you prefer to get UTF-8 strings\n" +"(as instances\n" "of a subtype of `str`) or you want to avoid the conversion overhead of\n" "going from UTF-8 to Python's internal Unicode representation, see the\n" "documentation for `dbus.UTF8String`.\n" "\n" -"Constructor::\n" -"\n" -" String(value: str or unicode[, variant_level: int]) -> String\n" -"\n" "variant_level must be non-negative; the default is 0.\n" -"\n" -":IVariables:\n" -" `variant_level` : int\n" -" Indicates how many nested Variant containers this object\n" -" is contained in: if a message's wire format has a variant containing a\n" -" variant containing a string, this is represented in Python by a\n" -" String or UTF8String with variant_level==2.\n" ); static PyMemberDef String_tp_members[] = { {"variant_level", T_LONG, offsetof(DBusPyString, variant_level), READONLY, - "The number of nested variants wrapping the real data. " - "0 if not in a variant"}, + "Indicates how many nested Variant containers this object\n" + "is contained in: if a message's wire format has a variant containing a\n" + "variant containing an array, this is represented in Python by a\n" + "String or UTF8String with variant_level==2.\n" + }, {NULL}, }; diff --git a/dbus_bindings/unixfd.c b/dbus_bindings/unixfd.c index 648dd2c..ecb32d2 100644 --- a/dbus_bindings/unixfd.c +++ b/dbus_bindings/unixfd.c @@ -29,11 +29,9 @@ #include "types-internal.h" PyDoc_STRVAR(UnixFd_tp_doc, -"An Unix Fd.\n" +"dbus.UnixFd(value: int or file object[, variant_level: int])\n" "\n" -"Constructor::\n" -"\n" -" dbus.UnixFd(value: int or file object[, variant_level: int]) -> UnixFd\n" +"A Unix Fd.\n" "\n" "``value`` must be the integer value of a file descriptor, or an object that\n" "implements the fileno() method. Otherwise, `ValueError` will be\n" @@ -42,10 +40,10 @@ PyDoc_STRVAR(UnixFd_tp_doc, "UnixFd keeps a dup() (duplicate) of the supplied file descriptor. The\n" "caller remains responsible for closing the original fd.\n" "\n" -"``variant_level`` must be non-negative; the default is 0.\n" +":py:attr:`variant_level` must be non-negative; the default is 0.\n" +"\n" +".. py:attribute:: variant_level\n" "\n" -":IVariables:\n" -" `variant_level` : int\n" " Indicates how many nested Variant containers this object\n" " is contained in: if a message's wire format has a variant containing a\n" " variant containing an Unix Fd, this is represented in Python by an\n" diff --git a/dbus_python.egg-info/PKG-INFO b/dbus_python.egg-info/PKG-INFO new file mode 100644 index 0000000..f450eca --- /dev/null +++ b/dbus_python.egg-info/PKG-INFO @@ -0,0 +1,53 @@ +Metadata-Version: 1.2 +Name: dbus-python +Version: 1.2.8 +Summary: Python bindings for libdbus +Home-page: http://www.freedesktop.org/wiki/Software/DBusBindings/#python +Maintainer: The D-Bus maintainers +Maintainer-email: dbus@lists.freedesktop.org +License: Expat (MIT/X11) +Download-URL: http://dbus.freedesktop.org/releases/dbus-python/ +Description: ======================================= + dbus-python_: Python bindings for D-Bus + ======================================= + + .. _dbus-python: http://www.freedesktop.org/wiki/Software/DBusBindings#python + + dbus-python is the original Python binding for ``dbus``, the reference + implementation of the D-Bus protocol. + + Online documentation can be found at + <http://dbus.freedesktop.org/doc/dbus-python/>. + + Problems and alternatives + ========================= + + dbus-python might not be the best D-Bus binding for you to use. dbus-python + does not follow the principle of "In the face of ambiguity, refuse the + temptation to guess", and can't be changed to not do so without seriously + breaking compatibility. + + In addition, it uses libdbus (which has known problems with multi-threaded + use) and attempts to be main-loop-agnostic (which means you have to select + a suitable main loop for your application). + + Alternative ways to get your Python code onto D-Bus include: + + * GDBus, part of the GIO module of `GLib`_, via GObject-Introspection and + `PyGI`_ (uses the GLib main loop and object model) + + * QtDBus, part of `Qt`_, via `PyQt`_ (uses the Qt main loop and object model) + + .. _GLib: http://developer.gnome.org/glib/ + .. _PyGI: https://live.gnome.org/PyGObject + .. _Qt: https://qt.nokia.com/ + .. _PyQT: http://www.riverbankcomputing.co.uk/software/pyqt/intro + +Platform: UNKNOWN +Classifier: Development Status :: 7 - Inactive +Classifier: License :: OSI Approved :: MIT License +Classifier: Programming Language :: C +Classifier: Programming Language :: Python :: 2 +Classifier: Programming Language :: Python :: 3 +Classifier: Programming Language :: Python :: Implementation :: CPython +Classifier: Topic :: Software Development :: Object Brokering diff --git a/dbus_python.egg-info/SOURCES.txt b/dbus_python.egg-info/SOURCES.txt new file mode 100644 index 0000000..93abb63 --- /dev/null +++ b/dbus_python.egg-info/SOURCES.txt @@ -0,0 +1,171 @@ +.travis.yml +.version +AUTHORS +COPYING +ChangeLog +INSTALL +MANIFEST +MANIFEST.in +Makefile.am +Makefile.in +NEWS +PKG-INFO +README +aclocal.m4 +build-aux/compile +build-aux/config.guess +build-aux/config.sub +build-aux/depcomp +build-aux/install-sh +build-aux/ltmain.sh +build-aux/missing +build-aux/py-compile +build-aux/tap-driver.sh +build-aux/test-driver +config.h.in +configure +configure.ac +dbus-gmain/AUTHORS +dbus-gmain/CONTRIBUTING +dbus-gmain/COPYING +dbus-gmain/Makefile.am +dbus-gmain/Makefile.in +dbus-gmain/README +dbus-gmain/dbus-gmain.c +dbus-gmain/dbus-gmain.h +dbus-gmain/tests/30574.c +dbus-gmain/tests/test-thread-client.c +dbus-gmain/tests/test-thread-server.c +dbus-gmain/tests/test-thread.h +dbus-gmain/tests/util.c +dbus-gmain/tests/util.h +dbus-python.pc.in +dbus/__init__.py +dbus/_compat.py +dbus/_dbus.py +dbus/_expat_introspect_parser.py +dbus/bus.py +dbus/connection.py +dbus/decorators.py +dbus/exceptions.py +dbus/gi_service.py +dbus/glib.py +dbus/gobject_service.py +dbus/lowlevel.py +dbus/mainloop/__init__.py +dbus/mainloop/glib.py +dbus/proxies.py +dbus/server.py +dbus/service.py +dbus/types.py +dbus_bindings/abstract.c +dbus_bindings/bus.c +dbus_bindings/bytes.c +dbus_bindings/compat-internal.h +dbus_bindings/conn-internal.h +dbus_bindings/conn-methods.c +dbus_bindings/conn.c +dbus_bindings/containers.c +dbus_bindings/dbus_bindings-internal.h +dbus_bindings/debug.c +dbus_bindings/exceptions.c +dbus_bindings/float.c +dbus_bindings/generic.c +dbus_bindings/int.c +dbus_bindings/libdbusconn.c +dbus_bindings/mainloop.c +dbus_bindings/message-append.c +dbus_bindings/message-get-args.c +dbus_bindings/message-internal.h +dbus_bindings/message.c +dbus_bindings/module.c +dbus_bindings/pending-call.c +dbus_bindings/server.c +dbus_bindings/signature.c +dbus_bindings/string.c +dbus_bindings/types-internal.h +dbus_bindings/unixfd.c +dbus_bindings/validation.c +dbus_glib_bindings/module.c +dbus_python.egg-info/PKG-INFO +dbus_python.egg-info/SOURCES.txt +dbus_python.egg-info/dependency_links.txt +dbus_python.egg-info/top_level.txt +doc/API_CHANGES.txt +doc/HACKING.txt +doc/PY3PORT.txt +doc/_static/.gitignore +doc/conf.py +doc/dbus.bus.rst +doc/dbus.connection.rst +doc/dbus.decorators.rst +doc/dbus.exceptions.rst +doc/dbus.gi_service.rst +doc/dbus.glib.rst +doc/dbus.gobject_service.rst +doc/dbus.lowlevel.rst +doc/dbus.mainloop.rst +doc/dbus.proxies.rst +doc/dbus.rst +doc/dbus.server.rst +doc/dbus.service.rst +doc/dbus.types.rst +doc/index.rst +doc/news.rst +doc/redirects +doc/redirects.py +doc/tutorial.txt +examples/example-async-client.py +examples/example-client.py +examples/example-service.py +examples/example-signal-emitter.py +examples/example-signal-recipient.py +examples/gconf-proxy-client.py +examples/gconf-proxy-service2.py +examples/list-system-services.py +examples/unix-fd-client.py +examples/unix-fd-service.py +include/dbus/dbus-python.h +m4/ax_append_compile_flags.m4 +m4/ax_append_flag.m4 +m4/ax_append_link_flags.m4 +m4/ax_check_compile_flag.m4 +m4/ax_check_link_flag.m4 +m4/ax_compiler_flags.m4 +m4/ax_compiler_flags_cflags.m4 +m4/ax_compiler_flags_gir.m4 +m4/ax_compiler_flags_ldflags.m4 +m4/ax_generate_changelog.m4 +m4/ax_is_release.m4 +m4/ax_python_devel.m4 +m4/ax_python_module.m4 +m4/ax_require_defined.m4 +m4/libtool.m4 +m4/ltoptions.m4 +m4/ltsugar.m4 +m4/ltversion.m4 +m4/lt~obsolete.m4 +m4/pkg.m4 +setup.py +test/TestSuitePythonService.service.in +test/cross-test-client.py +test/cross-test-server.py +test/crosstest.py +test/dbus_py_test.c +test/import-repeatedly.c +test/run-test.sh +test/test-client.py +test/test-exception-py2.py +test/test-exception-py3.py +test/test-p2p.py +test/test-service.py +test/test-signals.py +test/test-standalone.py +test/test-unusable-main-loop.py +test/tmp-session-bus.conf.in +test/wait-for-name.py +test/with-session-bus.sh +tools/check-c-style.sh +tools/check-coding-style.mk +tools/check-py-style.sh +tools/check-whitespace.sh diff --git a/dbus_python.egg-info/dependency_links.txt b/dbus_python.egg-info/dependency_links.txt new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/dbus_python.egg-info/dependency_links.txt @@ -0,0 +1 @@ + diff --git a/dbus_python.egg-info/top_level.txt b/dbus_python.egg-info/top_level.txt new file mode 100644 index 0000000..7d64792 --- /dev/null +++ b/dbus_python.egg-info/top_level.txt @@ -0,0 +1,3 @@ +_dbus_bindings +_dbus_glib_bindings +dbus diff --git a/doc/HACKING.txt b/doc/HACKING.txt index c019198..b53655c 100644 --- a/doc/HACKING.txt +++ b/doc/HACKING.txt @@ -1,6 +1,6 @@ -========================================= -D-Bus Python bindings - notes for hackers -========================================= +=============== +Developer notes +=============== :Author: Simon McVittie, `Collabora`_ :Date: 2007-01-24 diff --git a/doc/PY3PORT.txt b/doc/PY3PORT.txt index a028153..e159849 100644 --- a/doc/PY3PORT.txt +++ b/doc/PY3PORT.txt @@ -1,6 +1,6 @@ -=============================== -Porting python-dbus to Python 3 -=============================== +=================== +Porting to Python 3 +=================== This is an experimental port to Python 3.x where x >= 2. There are lots of great sources for porting C extensions to Python 3, including: diff --git a/doc/_static/.gitignore b/doc/_static/.gitignore new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/doc/_static/.gitignore diff --git a/doc/conf.py b/doc/conf.py new file mode 100644 index 0000000..f094a26 --- /dev/null +++ b/doc/conf.py @@ -0,0 +1,165 @@ +# -*- coding: utf-8 -*- +# +# Configuration file for the Sphinx documentation builder. +# +# This file does only contain a selection of the most common options. For a +# full list see the documentation: +# http://www.sphinx-doc.org/en/stable/config + +# -- Path setup -------------------------------------------------------------- + +import os +import sys + +sys.path.insert(0, + os.path.join( + os.environ.get('abs_top_builddir', os.path.abspath('..')), + '.libs', + ), +) +sys.path.insert(0, os.environ.get('abs_top_srcdir', os.path.abspath('..'))) + +import _dbus_bindings + +# -- Project information ----------------------------------------------------- + +project = u'dbus-python' +copyright = u'2003-2018, D-Bus contributors' +author = u'D-Bus contributors' + +# The short X.Y version +version = _dbus_bindings.__version__ +# The full version, including alpha/beta/rc tags +release = version + + +# -- General configuration --------------------------------------------------- + +# If your documentation needs a minimal Sphinx version, state it here. +# +# needs_sphinx = '1.0' + +# Add any Sphinx extension module names here, as strings. They can be +# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom +# ones. +extensions = [ + 'sphinx.ext.autodoc', + 'sphinx.ext.coverage', +] + +# Add any paths that contain templates here, relative to this directory. +templates_path = ['_templates'] + +# The suffix(es) of source filenames. +# You can specify multiple suffix as a list of string: +# +# source_suffix = ['.rst', '.md'] +source_suffix = ['.rst', '.txt'] + +# The master toctree document. +master_doc = 'index' + +# The language for content autogenerated by Sphinx. Refer to documentation +# for a list of supported languages. +# +# This is also used if you do content translation via gettext catalogs. +# Usually you set "language" from the command line for these cases. +language = None + +# List of patterns, relative to source directory, that match files and +# directories to ignore when looking for source files. +# This pattern also affects html_static_path and html_extra_path . +exclude_patterns = [u'_build', 'Thumbs.db', '.DS_Store'] + +# The name of the Pygments (syntax highlighting) style to use. +pygments_style = 'sphinx' + + +# -- Options for HTML output ------------------------------------------------- + +# The theme to use for HTML and HTML Help pages. See the documentation for +# a list of builtin themes. +# +html_theme = 'sphinx_rtd_theme' + +# Theme options are theme-specific and customize the look and feel of a theme +# further. For a list of options available for each theme, see the +# documentation. +# +# html_theme_options = {} + +# Add any paths that contain custom static files (such as style sheets) here, +# relative to this directory. They are copied after the builtin static files, +# so a file named "default.css" will overwrite the builtin "default.css". +html_static_path = ['_static'] + +# Custom sidebar templates, must be a dictionary that maps document names +# to template names. +# +# The default sidebars (for documents that don't match any pattern) are +# defined by theme itself. Builtin themes are using these templates by +# default: ``['localtoc.html', 'relations.html', 'sourcelink.html', +# 'searchbox.html']``. +# +# html_sidebars = {} + + +# -- Options for HTMLHelp output --------------------------------------------- + +# Output file base name for HTML help builder. +htmlhelp_basename = 'dbus-python' + + +# -- Options for LaTeX output ------------------------------------------------ + +latex_elements = { + # The paper size ('letterpaper' or 'a4paper'). + # + # 'papersize': 'letterpaper', + + # The font size ('10pt', '11pt' or '12pt'). + # + # 'pointsize': '10pt', + + # Additional stuff for the LaTeX preamble. + # + # 'preamble': '', + + # Latex figure (float) alignment + # + # 'figure_align': 'htbp', +} + +# Grouping the document tree into LaTeX files. List of tuples +# (source start file, target name, title, +# author, documentclass [howto, manual, or own class]). +latex_documents = [ + (master_doc, 'dbus-python.tex', u'dbus-python Documentation', + u'D-Bus contributors', 'manual'), +] + + +# -- Options for manual page output ------------------------------------------ + +# One entry per manual page. List of tuples +# (source start file, name, description, authors, manual section). +man_pages = [ + (master_doc, 'dbus-python', u'dbus-python Documentation', + [author], 3) +] + + +# -- Options for Texinfo output ---------------------------------------------- + +# Grouping the document tree into Texinfo files. List of tuples +# (source start file, target name, title, author, +# dir menu entry, description, category) +texinfo_documents = [ + (master_doc, 'dbus-python', u'dbus-python Documentation', + author, 'dbus-python', + 'Python bindings for the reference implementation of D-Bus.', + 'Miscellaneous'), +] + + +# -- Extension configuration ------------------------------------------------- diff --git a/doc/dbus.bus.rst b/doc/dbus.bus.rst new file mode 100644 index 0000000..1f78f3e --- /dev/null +++ b/doc/dbus.bus.rst @@ -0,0 +1,7 @@ +dbus.bus module +=============== + +.. automodule:: dbus.bus + :members: + :undoc-members: + :show-inheritance: diff --git a/doc/dbus.connection.rst b/doc/dbus.connection.rst new file mode 100644 index 0000000..7b78212 --- /dev/null +++ b/doc/dbus.connection.rst @@ -0,0 +1,7 @@ +dbus.connection module +====================== + +.. automodule:: dbus.connection + :members: + :undoc-members: + :show-inheritance: diff --git a/doc/dbus.decorators.rst b/doc/dbus.decorators.rst new file mode 100644 index 0000000..3f6625c --- /dev/null +++ b/doc/dbus.decorators.rst @@ -0,0 +1,7 @@ +dbus.decorators module +---------------------- + +.. automodule:: dbus.decorators + :members: + :undoc-members: + :show-inheritance: diff --git a/doc/dbus.exceptions.rst b/doc/dbus.exceptions.rst new file mode 100644 index 0000000..fea743c --- /dev/null +++ b/doc/dbus.exceptions.rst @@ -0,0 +1,7 @@ +dbus.exceptions module +---------------------- + +.. automodule:: dbus.exceptions + :members: + :undoc-members: + :show-inheritance: diff --git a/doc/dbus.gi_service.rst b/doc/dbus.gi_service.rst new file mode 100644 index 0000000..945d5a0 --- /dev/null +++ b/doc/dbus.gi_service.rst @@ -0,0 +1,7 @@ +dbus.gi\_service module +----------------------- + +.. automodule:: dbus.gi_service + :members: + :undoc-members: + :show-inheritance: diff --git a/doc/dbus.glib.rst b/doc/dbus.glib.rst new file mode 100644 index 0000000..20958be --- /dev/null +++ b/doc/dbus.glib.rst @@ -0,0 +1,7 @@ +dbus.glib module +---------------- + +.. automodule:: dbus.glib + :members: + :undoc-members: + :show-inheritance: diff --git a/doc/dbus.gobject_service.rst b/doc/dbus.gobject_service.rst new file mode 100644 index 0000000..b1ff1be --- /dev/null +++ b/doc/dbus.gobject_service.rst @@ -0,0 +1,36 @@ +.. This is not done via automodule because it cannot be imported in +.. Python 3. + +dbus.gobject\_service module +---------------------------- + +.. py:module:: gobject_service + +This module is only available when using Python 2, and is deprecated. + +.. py:class:: ExportedGObjectType(cls, name, bases, dct) + + A metaclass which inherits from both GObjectMeta and + `dbus.service.InterfaceType`. Used as the metaclass for + `ExportedGObject`. + +.. py:class:: ExportedGObject(self, conn=None, object_path=None, **kwargs) + + A GObject which is exported on the D-Bus. + + Because GObject and `dbus.service.Object` both have custom metaclasses, + the naive approach using simple multiple inheritance won't work. This + class has `ExportedGObjectType` as its metaclass, which is sufficient + to make it work correctly. + + :param dbus.connection.Connection conn: + The D-Bus connection or bus + :param str object_path: + The object path at which to register this object. + :keyword dbus.service.BusName bus_name: + A bus name to be held on behalf of this object, or None. + :keyword dict gobject_properties: + GObject properties to be set on the constructed object. + + Any unrecognised keyword arguments will also be interpreted + as GObject properties. diff --git a/doc/dbus.lowlevel.rst b/doc/dbus.lowlevel.rst new file mode 100644 index 0000000..74e5f47 --- /dev/null +++ b/doc/dbus.lowlevel.rst @@ -0,0 +1,7 @@ +dbus.lowlevel module +-------------------- + +.. automodule:: dbus.lowlevel + :members: + :undoc-members: + :show-inheritance: diff --git a/doc/dbus.mainloop.rst b/doc/dbus.mainloop.rst new file mode 100644 index 0000000..14bbf14 --- /dev/null +++ b/doc/dbus.mainloop.rst @@ -0,0 +1,18 @@ +dbus.mainloop package +===================== + +Module contents +--------------- + +.. automodule:: dbus.mainloop + :members: + :undoc-members: + :show-inheritance: + +dbus.mainloop.glib module +------------------------- + +.. automodule:: dbus.mainloop.glib + :members: + :undoc-members: + :show-inheritance: diff --git a/doc/dbus.proxies.rst b/doc/dbus.proxies.rst new file mode 100644 index 0000000..8e4e8e3 --- /dev/null +++ b/doc/dbus.proxies.rst @@ -0,0 +1,7 @@ +dbus.proxies module +------------------- + +.. automodule:: dbus.proxies + :members: + :undoc-members: + :show-inheritance: diff --git a/doc/dbus.rst b/doc/dbus.rst new file mode 100644 index 0000000..2b2ab96 --- /dev/null +++ b/doc/dbus.rst @@ -0,0 +1,35 @@ +dbus package API reference +========================== + +Submodules +---------- + +.. toctree:: + + dbus.bus + dbus.connection + dbus.decorators + dbus.exceptions + dbus.gi_service + dbus.lowlevel + dbus.mainloop + dbus.proxies + dbus.server + dbus.service + dbus.types + +Deprecated submodules +--------------------- + +.. toctree:: + + dbus.glib + dbus.gobject_service + +Module contents +--------------- + +.. automodule:: dbus + :members: + :undoc-members: + :show-inheritance: diff --git a/doc/dbus.server.rst b/doc/dbus.server.rst new file mode 100644 index 0000000..c0d94c6 --- /dev/null +++ b/doc/dbus.server.rst @@ -0,0 +1,7 @@ +dbus.server module +------------------ + +.. automodule:: dbus.server + :members: + :undoc-members: + :show-inheritance: diff --git a/doc/dbus.service.rst b/doc/dbus.service.rst new file mode 100644 index 0000000..61958d6 --- /dev/null +++ b/doc/dbus.service.rst @@ -0,0 +1,7 @@ +dbus.service module +------------------- + +.. automodule:: dbus.service + :members: + :undoc-members: + :show-inheritance: diff --git a/doc/dbus.types.rst b/doc/dbus.types.rst new file mode 100644 index 0000000..c02c788 --- /dev/null +++ b/doc/dbus.types.rst @@ -0,0 +1,7 @@ +dbus.types module +----------------- + +.. automodule:: dbus.types + :members: + :undoc-members: + :show-inheritance: diff --git a/doc/index.rst b/doc/index.rst new file mode 100644 index 0000000..ca754b5 --- /dev/null +++ b/doc/index.rst @@ -0,0 +1,53 @@ +======================================= +dbus-python_: Python bindings for D-Bus +======================================= + +.. _dbus-python: http://www.freedesktop.org/wiki/Software/DBusBindings#python + +dbus-python is a Python binding for ``dbus``, the reference implementation +of the D-Bus protocol. + +Problems and alternatives +========================= + +dbus-python might not be the best D-Bus binding for you to use. dbus-python +does not follow the principle of "In the face of ambiguity, refuse the +temptation to guess", and can't be changed to not do so without seriously +breaking compatibility. + +In addition, it uses libdbus (which has known problems with multi-threaded +use) and attempts to be main-loop-agnostic (which means you have to select +a suitable main loop for your application). + +Alternative ways to get your Python code onto D-Bus include: + +* GDBus, part of the GIO module of `GLib`_, via GObject-Introspection and + `PyGI`_ (uses the GLib main loop and object model) + +* QtDBus, part of `Qt`_, via `PyQt`_ (uses the Qt main loop and object model) + +.. _GLib: http://developer.gnome.org/glib/ +.. _PyGI: https://live.gnome.org/PyGObject +.. _Qt: https://qt.nokia.com/ +.. _PyQT: http://www.riverbankcomputing.co.uk/software/pyqt/intro + +Documentation +============= + +.. toctree:: + :maxdepth: 2 + :caption: Contents: + + tutorial + dbus + PY3PORT + news + HACKING + API_CHANGES + +Indices and tables +================== + +* :ref:`genindex` +* :ref:`modindex` +* :ref:`search` diff --git a/doc/news.rst b/doc/news.rst new file mode 100644 index 0000000..249c431 --- /dev/null +++ b/doc/news.rst @@ -0,0 +1,5 @@ +=============== +Release history +=============== + +.. include:: ../NEWS diff --git a/doc/redirects b/doc/redirects new file mode 100644 index 0000000..659373d --- /dev/null +++ b/doc/redirects @@ -0,0 +1,138 @@ +doc/API_CHANGES.html ../API_CHANGES.html +doc/API_CHANGES.txt "See ../API_CHANGES.html" +doc/HACKING.html ../HACKING.html +doc/HACKING.txt "See ../HACKING.html" +doc/PY3PORT.html ../PY3PORT.html +doc/PY3PORT.txt "See ../PY3PORT.html" +doc/tutorial.html ../tutorial.html +doc/tutorial.txt "See ../tutorial.html" +api/change-index.html ../news.html +api/class-tree.html ../index.html +api/dbus.Array-class.html ../dbus.html +api/dbus.Boolean-class.html ../dbus.html +api/dbus.bus.BusConnection-class.html ../dbus.bus.html +api/dbus.bus-module.html ../dbus.bus.html +api/dbus.bus.NameOwnerWatch-class.html ../dbus.bus.html +api/dbus.bus-pysrc.html ../dbus.bus.html +api/dbus.ByteArray-class.html ../dbus.html +api/dbus.Byte-class.html ../dbus.html +api/dbus._compat-module.html ../dbus.html +api/dbus._compat-pysrc.html ../dbus.html +api/dbus.connection.Connection-class.html ../dbus.connection.html +api/dbus.connection-module.html ../dbus.connection.html +api/dbus.connection-pysrc.html ../dbus.connection.html +api/dbus.connection.SignalMatch-class.html ../dbus.connection.html +api/dbus.dbus_bindings.ConnectionError-class.html ../dbus.html +api/dbus.dbus_bindings-module.html ../dbus.html +api/dbus.dbus_bindings-pysrc.html ../dbus.html +api/dbus._dbus.Bus-class.html ../dbus.html +api/dbus._dbus._DBusBindingsEmulation-class.html ../dbus.html +api/dbus._dbus-module.html ../dbus.html +api/dbus._dbus-pysrc.html ../dbus.html +api/dbus._dbus.SessionBus-class.html ../dbus.html +api/dbus._dbus.StarterBus-class.html ../dbus.html +api/dbus._dbus.SystemBus-class.html ../dbus.html +api/dbus.decorators-module.html ../dbus.decorators.html +api/dbus.decorators-pysrc.html ../dbus.decorators.html +api/dbus.Dictionary-class.html ../dbus.html +api/dbus.Double-class.html ../dbus.html +api/dbus.exceptions.DBusException-class.html ../dbus.html +api/dbus.exceptions.IntrospectionParserException-class.html ../dbus.html +api/dbus.exceptions.MissingErrorHandlerException-class.html ../dbus.html +api/dbus.exceptions.MissingReplyHandlerException-class.html ../dbus.html +api/dbus.exceptions-module.html ../dbus.html +api/dbus.exceptions.NameExistsException-class.html ../dbus.html +api/dbus.exceptions-pysrc.html ../dbus.html +api/dbus.exceptions.UnknownMethodException-class.html ../dbus.html +api/dbus.exceptions.ValidationException-class.html ../dbus.html +api/dbus._expat_introspect_parser-module.html ../dbus.html +api/dbus._expat_introspect_parser._Parser-class.html ../dbus.html +api/dbus._expat_introspect_parser-pysrc.html ../dbus.html +api/dbus.gi_service.ExportedGObject-class.html ../dbus.gi_service.html +api/dbus.gi_service.ExportedGObjectType-class.html ../dbus.gi_service.html +api/dbus.gi_service-module.html ../dbus.gi_service.html +api/dbus.gi_service-pysrc.html ../dbus.gi_service.html +api/dbus.glib-module.html ../dbus.glib.html +api/dbus.glib-pysrc.html ../dbus.glib.html +api/dbus.gobject_service.ExportedGObject-class.html ../dbus.gobject_service.html +api/dbus.gobject_service.ExportedGObjectType-class.html ../dbus.gobject_service.html +api/dbus.gobject_service-module.html ../dbus.gobject_service.html +api/dbus.gobject_service-pysrc.html ../dbus.gobject_service.html +api/dbus.Int16-class.html ../dbus.html +api/dbus.Int32-class.html ../dbus.html +api/dbus.Int64-class.html ../dbus.html +api/dbus.lowlevel.ErrorMessage-class.html ../dbus.lowlevel.html +api/dbus.lowlevel.Message-class.html ../dbus.lowlevel.html +api/dbus.lowlevel.MethodCallMessage-class.html ../dbus.lowlevel.html +api/dbus.lowlevel.MethodReturnMessage-class.html ../dbus.lowlevel.html +api/dbus.lowlevel-module.html ../dbus.lowlevel.html +api/dbus.lowlevel.PendingCall-class.html ../dbus.lowlevel.html +api/dbus.lowlevel-pysrc.html ../dbus.lowlevel.html +api/dbus.lowlevel.SignalMessage-class.html ../dbus.lowlevel.html +api/dbus.mainloop.glib-module.html ../dbus.mainloop.html +api/dbus.mainloop.glib-pysrc.html ../dbus.mainloop.html +api/dbus.mainloop-module.html ../dbus.mainloop.html +api/dbus.mainloop.NativeMainLoop-class.html ../dbus.mainloop.html +api/dbus.mainloop-pysrc.html ../dbus.mainloop.html +api/dbus-module.html ../dbus.html +api/dbus.ObjectPath-class.html ../dbus.html +api/dbus.proxies._DeferredMethod-class.html ../dbus.proxies.html +api/dbus.proxies.Interface-class.html ../dbus.proxies.html +api/dbus.proxies-module.html ../dbus.proxies.html +api/dbus.proxies._ProxyMethod-class.html ../dbus.proxies.html +api/dbus.proxies.ProxyObject-class.html ../dbus.proxies.html +api/dbus.proxies-pysrc.html ../dbus.proxies.html +api/dbus-pysrc.html ../dbus.html +api/dbus.server-module.html ../dbus.server.html +api/dbus.server-pysrc.html ../dbus.server.html +api/dbus.server.Server-class.html ../dbus.server.html +api/dbus.service.BusName-class.html ../dbus.service.html +api/dbus.service.FallbackObject-class.html ../dbus.service.html +api/dbus.service.Interface-class.html ../dbus.service.html +api/dbus.service.InterfaceType-class.html ../dbus.service.html +api/dbus.service-module.html ../dbus.service.html +api/dbus.service.Object-class.html ../dbus.service.html +api/dbus.service-pysrc.html ../dbus.service.html +api/dbus.service._VariantSignature-class.html ../dbus.service.html +api/dbus.Signature-class.html ../dbus.html +api/dbus.String-class.html ../dbus.html +api/dbus.Struct-class.html ../dbus.html +api/dbus.types-module.html ../dbus.html +api/dbus.types-pysrc.html ../dbus.html +api/dbus.types.UnixFd-class.html ../dbus.html +api/dbus.UInt16-class.html ../dbus.html +api/dbus.UInt32-class.html ../dbus.html +api/dbus.UInt64-class.html ../dbus.html +api/dbus.UTF8String-class.html ../dbus.html +api/dbus._version-module.html ../dbus.html +api/dbus._version-pysrc.html ../dbus.html +api/deprecated-index.html ../dbus.html +api/frames.html ../dbus.html +api/help.html ../dbus.html +api/identifier-dbus.html ../dbus.html +api/index.html ../dbus.html +api/module-tree.html ../dbus.html +api/redirect.html ../dbus.html +api/since-index.html ../news.html +api/toc-dbus.bus-module.html ../dbus.bus.html +api/toc-dbus._compat-module.html ../dbus.html +api/toc-dbus.connection-module.html ../dbus.connection.html +api/toc-dbus.dbus_bindings-module.html ../dbus.html +api/toc-dbus._dbus-module.html ../dbus.html +api/toc-dbus.decorators-module.html ../dbus.decorators.html +api/toc-dbus.exceptions-module.html ../dbus.exceptions.html +api/toc-dbus._expat_introspect_parser-module.html ../dbus.html +api/toc-dbus.gi_service-module.html ../dbus.gi_service.html +api/toc-dbus.glib-module.html ../dbus.glib.html +api/toc-dbus.gobject_service-module.html ../dbus.gobject_service.html +api/toc-dbus.lowlevel-module.html ../dbus.lowlevel.html +api/toc-dbus.mainloop.glib-module.html ../dbus.mainloop.html +api/toc-dbus.mainloop-module.html ../dbus.mainloop.html +api/toc-dbus-module.html ../dbus.html +api/toc-dbus.proxies-module.html ../dbus.proxies.html +api/toc-dbus.server-module.html ../dbus.server.html +api/toc-dbus.service-module.html ../dbus.service.html +api/toc-dbus.types-module.html ../dbus.types.html +api/toc-dbus._version-module.html ../dbus.html +api/toc-everything.html ../dbus.html +api/toc.html ../dbus.html diff --git a/doc/redirects.py b/doc/redirects.py new file mode 100644 index 0000000..5cee516 --- /dev/null +++ b/doc/redirects.py @@ -0,0 +1,43 @@ +#!/usr/bin/python + +import os + +SRCDIR = os.environ.get('DBUS_TOP_SRCDIR', '.') + +if __name__ == '__main__': + with open(os.path.join(SRCDIR, 'doc', 'redirects'), 'r') as reader: + for line in reader: + line = line.strip() + + if not line: + continue + + if line.startswith('#'): + continue + + page, dest = line.split(None, 1) + + try: + os.makedirs(os.path.join('doc', '_build', os.path.dirname(page))) + except OSError: + pass + + assert not os.path.exists(os.path.join('doc', '_build', page)) + + if dest.startswith('"'): + assert page.endswith('.txt') + text = dest.strip('"') + + with open(os.path.join('doc', '_build', page), 'w') as writer: + writer.write(text) + writer.write('\n') + else: + assert page.endswith('.html') + + with open(os.path.join('doc', '_build', page), 'w') as writer: + writer.write( + '<meta http-equiv="refresh" content="0; url={}" />\n'.format( + dest)) + writer.write( + 'See <a href="{}">{}</a>\n'.format( + dest, dest)) diff --git a/doc/tutorial.txt b/doc/tutorial.txt index ad0e8a3..cc7a99e 100644 --- a/doc/tutorial.txt +++ b/doc/tutorial.txt @@ -178,38 +178,72 @@ Basic types The following basic data types are supported. -========================== ============================= ===== -Python type converted to D-Bus type notes -========================== ============================= ===== -D-Bus `proxy object`_ ObjectPath (signature 'o') `(+)`_ -`dbus.Interface`_ ObjectPath (signature 'o') `(+)`_ -`dbus.service.Object`_ ObjectPath (signature 'o') `(+)`_ -``dbus.Boolean`` Boolean (signature 'b') a subclass of ``int`` -``dbus.Byte`` byte (signature 'y') a subclass of ``int`` -``dbus.Int16`` 16-bit signed integer ('n') a subclass of ``int`` -``dbus.Int32`` 32-bit signed integer ('i') a subclass of ``int`` -``dbus.Int64`` 64-bit signed integer ('x') `(*)`_ -``dbus.UInt16`` 16-bit unsigned integer ('q') a subclass of ``int`` -``dbus.UInt32`` 32-bit unsigned integer ('u') `(*)_` -``dbus.UInt64`` 64-bit unsigned integer ('t') `(*)_` -``dbus.Double`` double-precision float ('d') a subclass of ``float`` -``dbus.ObjectPath`` object path ('o') a subclass of ``str`` -``dbus.Signature`` signature ('g') a subclass of ``str`` -``dbus.String`` string ('s') a subclass of - ``unicode`` -``dbus.UTF8String`` string ('s') a subclass of ``str`` -``bool`` Boolean ('b') -``int`` or subclass 32-bit signed integer ('i') -``long`` or subclass 64-bit signed integer ('x') -``float`` or subclass double-precision float ('d') -``str`` or subclass string ('s') must be valid UTF-8 -``unicode`` or subclass string ('s') -========================== ============================= ===== - -.. _(*): - -Types marked (*) may be a subclass of either ``int`` or ``long``, depending -on platform. ++-----------------------+---------------------+-----------------------+ +|Python type |converted to |notes | +| |D-Bus type | | ++=======================+=====================+=======================+ +|D-Bus `proxy object`_ |object path |`(+)`_ | ++-----------------------+(signature 'o') | | +|`dbus.Interface`_ | | | ++-----------------------+ | | +|`dbus.service.Object`_ | | | ++-----------------------+---------------------+-----------------------+ +|``dbus.Boolean`` |Boolean |a subclass of ``int`` | +| |(signature 'b') | | ++-----------------------+---------------------+ | +|``dbus.Byte`` |byte (signature 'y') | | ++-----------------------+---------------------+ | +|``dbus.Int16`` |16-bit signed | | +| |integer ('n') | | ++-----------------------+---------------------+ | +|``dbus.UInt16`` |16-bit unsigned | | +| |integer ('q') | | ++-----------------------+---------------------+ | +|``dbus.Int32`` |32-bit signed | | +| |integer ('i') | | ++-----------------------+---------------------+-----------------------+ +|``dbus.UInt32`` |32-bit unsigned |a subclass of ``long`` | +| |integer ('u') |(Python 2) | ++-----------------------+---------------------+ | +|``dbus.Int64`` |64-bit signed |a subclass of ``int`` | +| |integer ('x') |(Python 3) | ++-----------------------+---------------------+ | +|``dbus.UInt64`` |64-bit unsigned | | +| |integer ('t') | | ++-----------------------+---------------------+-----------------------+ +|``dbus.Double`` |double-precision |a subclass of ``float``| +| |floating point ('d') | | ++-----------------------+---------------------+-----------------------+ +|``dbus.ObjectPath`` |object path ('o') |a subclass of ``str`` | ++-----------------------+---------------------+ | +|``dbus.Signature`` |signature ('g') | | ++-----------------------+---------------------+-----------------------+ +|``dbus.String`` |string ('s') |a subclass of | +| | |``unicode`` (Python 2) | +| | | | +| | |a subclass of ``str`` | +| | |(Python 3) | ++-----------------------+---------------------+-----------------------+ +|``dbus.UTF8String`` |string ('s') |a subclass of ``str``, | +| | |only in Python 2 | ++-----------------------+---------------------+-----------------------+ +|``bool`` |Boolean ('b') | | ++-----------------------+---------------------+-----------------------+ +|``int`` or subclass |32-bit signed | | +| |integer ('i') | | ++-----------------------+---------------------+-----------------------+ +|``long`` or subclass |64-bit signed | Python 2 only | +| |integer ('i') | | ++-----------------------+---------------------+-----------------------+ +|``float`` or subclass |double-precision | | +| |floating point ('d') | | ++-----------------------+---------------------+-----------------------+ +|``bytes`` or subclass |string ('s') | must be valid UTF-8 | ++-----------------------+---------------------+-----------------------+ +|Python 2 ``unicode`` |string ('s') | | ++-----------------------+ | | +|Python 3 ``str`` | | | ++-----------------------+---------------------+-----------------------+ .. _(+): @@ -249,7 +283,7 @@ The signature of an array is 'ax' where 'x' represents the signature of one item. For instance, you could also have 'as' (array of strings) or 'a(ii)' (array of structs each containing two 32-bit integers). -There's also a type ``dbus.ByteArray`` which is a subclass of ``str``, +There's also a type ``dbus.ByteArray`` which is a subclass of ``bytes``, used as a more efficient representation of a D-Bus array of bytes (signature 'ay'). @@ -305,11 +339,11 @@ If a D-Bus method returns multiple values, the Python proxy method will return a tuple containing those values. If you want strings returned as ``dbus.UTF8String`` (a subclass of -``str``) pass the keyword parameter ``utf8_strings=True`` to the proxy -method. +``bytes``) pass the keyword parameter ``utf8_strings=True`` to the proxy +method. This mode is only available in Python 2. If you want byte arrays returned as ``dbus.ByteArray`` (also a -subclass of ``str`` - in practice, this is often what you want) pass +subclass of ``bytes`` - in practice, this is often what you want) pass the keyword parameter ``byte_arrays=True`` to the proxy method. .. -------------------------------------------------------------------- @@ -469,10 +503,11 @@ String argument matching ------------------------ If there are keyword parameters for the form ``arg``\ *n* where n is a -small non-negative number, their values must be ``unicode`` objects -or UTF-8 strings. The handler will only be called if that argument -of the signal (numbered from zero) is a D-Bus string (in particular, -not an object-path or a signature) with that value. +small non-negative number, their values must be Unicode strings (Python +2 ``unicode`` or Python 3 ``str``) or UTF-8 bytestrings. The handler +will only be called if that argument of the signal (numbered from zero) +is a D-Bus string (in particular, not an object-path or a signature) +with that value. .. *this comment is to stop the above breaking vim syntax highlighting* diff --git a/m4/dbus-py-add-rst2htmlflag.m4 b/m4/dbus-py-add-rst2htmlflag.m4 deleted file mode 100644 index 59e37ec..0000000 --- a/m4/dbus-py-add-rst2htmlflag.m4 +++ /dev/null @@ -1,21 +0,0 @@ -dnl DBUS_PY_ADD_RST2HTMLFLAG(FLAG) -dnl checks whether rst2html supports the given flag, and if so, adds -dnl it to $RST2HTMLFLAGS. Same as JH_ADD_CFLAG, really. -AC_DEFUN([DBUS_PY_ADD_RST2HTMLFLAG], -[ -AS_CASE([" $RST2HTMLFLAGS "], -[*@<:@\ \ @:>@$1@<:@\ \ @:>@*], - [], -[*], - [ - save_RST2HTMLFLAGS="$RST2HTMLFLAGS" - RST2HTMLFLAGS="$RST2HTMLFLAGS $1" - AC_MSG_CHECKING([whether [$]RST2HTML understands $1]) - AS_IF([$RST2HTML --strict $RST2HTMLFLAGS /dev/null > /dev/null 2>/dev/null], - [dbuspy_has_option=yes], - [dbuspy_has_option=no]) - AC_MSG_RESULT($dbuspy_has_option) - AS_IF([test $dbuspy_has_option = no], - [RST2HTMLFLAGS="$save_RST2HTMLFLAGS"]) - ]) -]) @@ -84,6 +84,7 @@ setup( name='dbus-python', version=version, description='Python bindings for libdbus', + long_description=open('README').read(), maintainer='The D-Bus maintainers', maintainer_email='dbus@lists.freedesktop.org', download_url='http://dbus.freedesktop.org/releases/dbus-python/', |