[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

dbusada: Please update for gnat-7



control: severity -1 serious

Hello dear maintainer,

since we got no answer, and this is blocking the gnat transition (one of the last blockers), I think
we should bump severity and go ahead even without a maintainer answer (please followup, there is still
time to address the issue without having to NMU the package).

the following attached tarballs are part of the package uploaded in unstable.

I'm also attaching the debdiff and the filtered debdiff for "debian" directory.

Changes since the patch queue above are:
- one patch from Ubuntu, fixing the wl-asneeded linking order
- std-version is 4.1.0
- changelog updated.

Feel free to reschedule, defer, cancel if you think the packaging has issues.

(ccing debian-ada, as per doko suggestion on irc)

G.

Attachment: dbusada_0.4.0.orig.tar.bz2
Description: application/bzip

Attachment: dbusada_0.4.0-0.1.debian.tar.xz
Description: application/xz

diff -Nru dbusada-0.3.3/d_bus_ada_examples.gpr dbusada-0.4.0/d_bus_ada_examples.gpr
--- dbusada-0.3.3/d_bus_ada_examples.gpr	2016-07-18 10:37:43.000000000 +0200
+++ dbusada-0.4.0/d_bus_ada_examples.gpr	2017-07-17 09:07:25.000000000 +0200
@@ -52,7 +52,7 @@
    end Compiler;
 
    package Linker is
-      for Linker_Options use D_Bus_Ada_Common.Linker_Switches;
+      for Default_Switches ("ada") use D_Bus_Ada_Common.Linker_Switches;
    end Linker;
 
    package Binder is
diff -Nru dbusada-0.3.3/d_bus_ada_lib.gpr dbusada-0.4.0/d_bus_ada_lib.gpr
--- dbusada-0.3.3/d_bus_ada_lib.gpr	2016-07-18 10:37:43.000000000 +0200
+++ dbusada-0.4.0/d_bus_ada_lib.gpr	2017-07-17 09:07:25.000000000 +0200
@@ -38,8 +38,15 @@
    for Library_Version use "libdbusada.so." & D_Bus_Ada_Common.Version;
 
    Compiler_Switches := D_Bus_Ada_Common.Compiler_Switches & "-gnatwale";
-   Linker_Switches   := D_Bus_Ada_Common.Linker_Switches
-     & External_As_List ("LDFLAGS", " ");
+   Linker_Switches   := ();
+
+   case D_Bus_Ada_Common.Libtype
+   is
+      when "dynamic" =>
+         Linker_Switches := D_Bus_Ada_Common.Linker_Switches
+           & External_As_List ("LDFLAGS", " ");
+      when "static"  => Linker_Switches := External_As_List ("LDFLAGS", " ");
+   end case;
 
    for Library_Options use Linker_Switches;
 
diff -Nru dbusada-0.3.3/d_bus_ada_tests.gpr dbusada-0.4.0/d_bus_ada_tests.gpr
--- dbusada-0.3.3/d_bus_ada_tests.gpr	2016-07-18 10:37:43.000000000 +0200
+++ dbusada-0.4.0/d_bus_ada_tests.gpr	2017-07-17 09:07:25.000000000 +0200
@@ -44,7 +44,7 @@
    end Compiler;
 
    package Linker is
-      for Linker_Options use D_Bus_Ada_Common.Linker_Switches;
+      for Default_Switches ("ada") use D_Bus_Ada_Common.Linker_Switches;
    end Linker;
 
    package Binder is
diff -Nru dbusada-0.3.3/debian/addon/dbus_ada.gpr dbusada-0.4.0/debian/addon/dbus_ada.gpr
--- dbusada-0.3.3/debian/addon/dbus_ada.gpr	2016-07-11 09:37:25.000000000 +0200
+++ dbusada-0.4.0/debian/addon/dbus_ada.gpr	1970-01-01 01:00:00.000000000 +0100
@@ -1,24 +0,0 @@
---  D_Bus/Ada project file
---  Copyright (C) 2012-2016 Reto Buerki <reet@codelabs.ch>
---
---  This program is free software; you can redistribute it and/or modify
---  it under the terms of the GNU General Public License as published by
---  the Free Software Foundation; either version 2 of the License, or
---  (at your option) any later version.
---
---  This program is distributed in the hope that it will be useful,
---  but WITHOUT ANY WARRANTY; without even the implied warranty of
---  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
---  GNU General Public License for more details.
-
-project DBus_Ada is
-   for Source_Dirs use ("/usr/share/ada/adainclude/dbus-ada");
-   for Library_Name use "dbusada";
-   for Library_Dir use "/usr/lib";
-   for Library_ALI_Dir use "/usr/lib/ada/adalib/dbus-ada";
-   for Library_Kind use "dynamic";
-   for Externally_Built use "true";
-   package Linker is
-      for Linker_Options use ("-ldbus-1");
-   end Linker;
-end DBus_Ada;
diff -Nru dbusada-0.3.3/debian/changelog dbusada-0.4.0/debian/changelog
--- dbusada-0.3.3/debian/changelog	2016-07-18 10:37:11.000000000 +0200
+++ dbusada-0.4.0/debian/changelog	2017-09-01 13:18:41.000000000 +0200
@@ -1,3 +1,30 @@
+dbusada (0.4.0-0.1) unstable; urgency=medium
+
+  [ Gianfranco Costamagna <locutusofborg@debian.org>
+  * Non-maintainer upload.
+
+  [ Nicolas Boulenguez <nicolas@debian.org> ]
+  * New upstream release (Closes: #872544).
+  * Update watch file.
+  * Test: remove unused variable, display executed commands.
+  * Debhelper 10. Replace deprecated --fail-missing dh_install option.
+  * Update std-version to 4.1.0.
+  * Update URLs in https mode.
+  * Handle nocheck or nodoc if in DEB_BUILD_OPTIONS is set.
+  * Avoid hardcoded versions whenever possible.
+  * Enable all hardening flags.
+  * d/rules: Declare phony targets.
+  * Make runtime package Multi-Arch: same. Install project into right path.
+  * debian/control: make short descriptions distinct.
+  * Register documentation in doc-base.
+  * Build with gnat-7 and libahven6-dev.
+  * Refresh the thin binding.
+
+  [ Steve Langasek <steve.langasek@ubuntu.com> ]
+  * Fix order of options passed when linking the test runner
+
+ -- Gianfranco Costamagna <locutusofborg@debian.org>  Fri, 01 Sep 2017 13:18:41 +0200
+
 dbusada (0.3.3-1) unstable; urgency=medium
 
   * Update to release 0.3.3 (Closes: #758741, #795983)
diff -Nru dbusada-0.3.3/debian/compat dbusada-0.4.0/debian/compat
--- dbusada-0.3.3/debian/compat	2016-07-11 09:37:25.000000000 +0200
+++ dbusada-0.4.0/debian/compat	2017-09-01 13:18:41.000000000 +0200
@@ -1 +1 @@
-9
+10
diff -Nru dbusada-0.3.3/debian/control dbusada-0.4.0/debian/control
--- dbusada-0.3.3/debian/control	2016-07-11 09:37:25.000000000 +0200
+++ dbusada-0.4.0/debian/control	2017-09-01 13:18:41.000000000 +0200
@@ -2,25 +2,33 @@
 Section: libs
 Priority: optional
 Maintainer: Reto Buerki <reet@codelabs.ch>
-Build-Depends: asciidoc, debhelper (>= 9), gnat, gnat-6, libahven5-dev,
+Build-Depends: asciidoc, debhelper (>= 10),
+ gnat, gnat-7,
+# This line is parsed by debian/rules.
+ libahven6-dev,
+ pkg-config,
+# To regenerate the thin binding.
  libdbus-1-dev, libdbus-glib-1-dev, source-highlight
-Standards-Version: 3.9.8
+Standards-Version: 4.1.0
 Homepage: https://www.codelabs.ch/dbus-ada/
 Vcs-Browser: https://git.codelabs.ch/?p=dbus-ada.git
 Vcs-Git: https://git.codelabs.ch/git/dbus-ada.git -b debian
 
-Package: libdbusada0.3.3
+Package: libdbusada0.4.0
+# This line is parsed by debian/rules.
 Architecture: any
+Multi-Arch: same
 Depends: ${shlibs:Depends}, ${misc:Depends}
-Description: Ada bindings to the D-Bus message bus system
+Description: Ada bindings to the D-Bus message bus system (runtime)
  The D_Bus/Ada library provides an Ada binding to the D-Bus message bus used for
  inter-process communication on Linux desktop systems.
 
-Package: libdbusada2-dev
+Package: libdbusada3-dev
+# This line is parsed by debian/rules.
 Section: libdevel
 Architecture: any
-Depends: ${misc:Depends}, libdbusada0.3.3 (= ${binary:Version}),
- libdbus-1-dev, libdbus-glib-1-dev, gnat, gnat-6
+Depends: ${misc:Depends}, libdbusada0.4.0 (= ${binary:Version}),
+ libdbus-1-dev, libdbus-glib-1-dev, gnat, gnat-7
 Description: Ada bindings to the D-Bus message bus system
  The D_Bus/Ada library provides an Ada binding to the D-Bus message bus used for
  inter-process communication on Linux desktop systems.
diff -Nru dbusada-0.3.3/debian/copyright dbusada-0.4.0/debian/copyright
--- dbusada-0.3.3/debian/copyright	2016-07-11 09:37:25.000000000 +0200
+++ dbusada-0.4.0/debian/copyright	2017-09-01 13:18:41.000000000 +0200
@@ -1,4 +1,4 @@
-Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
+Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
 Upstream-Name: D_Bus/Ada
 Upstream-Contact: Reto Buerki <reet@codelabs.ch>
 Source: http://www.codelabs.ch/download/
diff -Nru dbusada-0.3.3/debian/dbus_ada.gpr dbusada-0.4.0/debian/dbus_ada.gpr
--- dbusada-0.3.3/debian/dbus_ada.gpr	1970-01-01 01:00:00.000000000 +0100
+++ dbusada-0.4.0/debian/dbus_ada.gpr	2017-09-01 13:18:41.000000000 +0200
@@ -0,0 +1,6 @@
+--  This project is deprecated.
+--  Please use "dbusada.gpr" instead (without underscore).
+
+with "dbusada.gpr";
+abstract project DBus_Ada is
+end DBus_Ada;
diff -Nru dbusada-0.3.3/debian/libdbusada0.3.3.install dbusada-0.4.0/debian/libdbusada0.3.3.install
--- dbusada-0.3.3/debian/libdbusada0.3.3.install	2016-07-11 09:37:25.000000000 +0200
+++ dbusada-0.4.0/debian/libdbusada0.3.3.install	1970-01-01 01:00:00.000000000 +0100
@@ -1 +0,0 @@
-lib/*.so.* /usr/lib
diff -Nru dbusada-0.3.3/debian/libdbusada0.3.3.lintian-overrides dbusada-0.4.0/debian/libdbusada0.3.3.lintian-overrides
--- dbusada-0.3.3/debian/libdbusada0.3.3.lintian-overrides	2016-07-11 09:37:25.000000000 +0200
+++ dbusada-0.4.0/debian/libdbusada0.3.3.lintian-overrides	1970-01-01 01:00:00.000000000 +0100
@@ -1 +0,0 @@
-libdbusada0.3.3: shlib-with-executable-stack usr/lib/libdbusada.so.0.3.3
diff -Nru dbusada-0.3.3/debian/libdbusada0.4.0.lintian-overrides dbusada-0.4.0/debian/libdbusada0.4.0.lintian-overrides
--- dbusada-0.3.3/debian/libdbusada0.4.0.lintian-overrides	1970-01-01 01:00:00.000000000 +0100
+++ dbusada-0.4.0/debian/libdbusada0.4.0.lintian-overrides	2017-09-01 13:18:41.000000000 +0200
@@ -0,0 +1 @@
+shlib-with-executable-stack usr/lib/*/libdbusada.so.*
diff -Nru dbusada-0.3.3/debian/libdbusada2-dev.docs dbusada-0.4.0/debian/libdbusada2-dev.docs
--- dbusada-0.3.3/debian/libdbusada2-dev.docs	2016-07-11 09:37:25.000000000 +0200
+++ dbusada-0.4.0/debian/libdbusada2-dev.docs	1970-01-01 01:00:00.000000000 +0100
@@ -1 +0,0 @@
-doc/html/*
diff -Nru dbusada-0.3.3/debian/libdbusada2-dev.examples dbusada-0.4.0/debian/libdbusada2-dev.examples
--- dbusada-0.3.3/debian/libdbusada2-dev.examples	2016-07-11 09:37:25.000000000 +0200
+++ dbusada-0.4.0/debian/libdbusada2-dev.examples	1970-01-01 01:00:00.000000000 +0100
@@ -1 +0,0 @@
-examples/*
diff -Nru dbusada-0.3.3/debian/libdbusada2-dev.install dbusada-0.4.0/debian/libdbusada2-dev.install
--- dbusada-0.3.3/debian/libdbusada2-dev.install	2016-07-11 09:37:25.000000000 +0200
+++ dbusada-0.4.0/debian/libdbusada2-dev.install	1970-01-01 01:00:00.000000000 +0100
@@ -1,5 +0,0 @@
-lib/*.so /usr/lib/
-lib/*.a /usr/lib/
-lib/dbus-ada/*.ali usr/lib/ada/adalib/dbus-ada
-include/dbus-ada/*.ad* usr/share/ada/adainclude/dbus-ada
-debian/addon/dbus_ada.gpr usr/share/ada/adainclude
diff -Nru dbusada-0.3.3/debian/patches/fix-test-linker-order.patch dbusada-0.4.0/debian/patches/fix-test-linker-order.patch
--- dbusada-0.3.3/debian/patches/fix-test-linker-order.patch	1970-01-01 01:00:00.000000000 +0100
+++ dbusada-0.4.0/debian/patches/fix-test-linker-order.patch	2017-09-01 13:18:41.000000000 +0200
@@ -0,0 +1,19 @@
+Description: Fix order of options passed when linking the test runner
+ This reverts a change between 0.3.3 and 0.4.0 which changes the order in
+ which options are passed to the linker on the commandline.  That change
+ broke compatibility with Ubuntu's default linker options, which include
+ -Wl,--as-needed.
+Author: Steve Langasek <steve.langasek@ubuntu.com>
+Last-Update: 2017-09-01
+
+--- dbusada-0.4.0.orig/d_bus_ada_tests.gpr
++++ dbusada-0.4.0/d_bus_ada_tests.gpr
+@@ -44,7 +44,7 @@ project D_Bus_Ada_Tests is
+    end Compiler;
+ 
+    package Linker is
+-      for Default_Switches ("ada") use D_Bus_Ada_Common.Linker_Switches;
++      for Linker_Options use D_Bus_Ada_Common.Linker_Switches;
+    end Linker;
+ 
+    package Binder is
diff -Nru dbusada-0.3.3/debian/patches/refresh-thin.diff dbusada-0.4.0/debian/patches/refresh-thin.diff
--- dbusada-0.3.3/debian/patches/refresh-thin.diff	1970-01-01 01:00:00.000000000 +0100
+++ dbusada-0.4.0/debian/patches/refresh-thin.diff	2017-09-01 13:18:41.000000000 +0200
@@ -0,0 +1,63 @@
+Description: provide a target to regenerate the thin binding
+Author: Nicolas Boulenguez <nicolas@debian.org>
+
+--- a/Makefile
++++ b/Makefile
+@@ -34,14 +34,14 @@
+ 
+ all: build_lib
+ 
+-build_lib:
++build_lib: | $(THINDIR)
+ 	gnatmake $(GMAKE_OPTS) -p -Pd_bus_ada_lib -XVERSION="$(VERSION)" \
+ 		-XLIBRARY_KIND="$(LIBRARY_KIND)" -XLDFLAGS="$(LDFLAGS)"
+ 
+-build_tests:
++build_tests: | $(THINDIR)
+ 	gnatmake $(GMAKE_OPTS) -p -Pd_bus_ada_tests
+ 
+-build_examples:
++build_examples: | $(THINDIR)
+ 	gnatmake $(GMAKE_OPTS) -p -Pd_bus_ada_examples
+ 
+ install: install_lib install_$(LIBRARY_KIND)
+@@ -79,9 +79,37 @@
+ 	@rm -rf $(OBJDIR)
+ 	@rm -rf $(LIBDIR)
+ 	@rm -rf $(DOCDIR)
++	@rm -rf $(THINDIR)
+ 
+-dist:
++base_tarball := $(TARBALL:.bz2=)
++dist: | $(THINDIR)
+ 	@echo "Creating release tarball $(TARBALL) ... "
+-	@git archive --format=tar HEAD --prefix $(DBUSADA)/ | bzip2 > $(TARBALL)
++	@git archive --output=$(base_tarball) HEAD --prefix $(DBUSADA)/
++	tar -rf $(base_tarball) --transform='s~^~$(DBUSADA)/~' $(THINDIR)
++	bzip2 $(base_tarball)
+ 
+ .PHONY: doc tests
++
++# This part requires that CXX is the GCC C++ compiler.
++dbus_lib      = dbus-1
++dbus_includes = $(shell pkg-config --cflags-only-I $(dbus_lib) | sed 's/-I//g')
++dbus_h        = $(shell find $(dbus_includes) -name "dbus.h")
++$(THINDIR):
++	mkdir $@
++	cd $@ && \
++	$(CXX) --dump-ada-spec $(dbus_h) `pkg-config --cflags $(dbus_lib)`
++  # Remove unused file.
++	rm -f $@/*_dbus_syntax_h.ads
++  # Fix an error.
++	sed -i '/^   subtype nullptr_t is ;  --/d' $@/stddef_h.ads
++  # Remove arch, path or version dependent prefixes.
++	cd $@ && for i in *dbus_dbus_*; do \
++	  mv $$i `echo $$i | sed 's/.*dbus_dbus_/dbus_/'`; \
++	done
++	sed -i 's/[a-z0-9_]*dbus_dbus_/dbus_/g' $@/*
++  # Fix a warning about unused entities.
++	sed -i '/^with Interfaces\.C; use Interfaces\.C;$$/d' \
++	  $@/dbus_memory_h.ads \
++	  $@/dbus_pending_call_h.ads \
++	  $@/dbus_shared_h.ads \
++	  $@/stdarg_h.ads
diff -Nru dbusada-0.3.3/debian/patches/series dbusada-0.4.0/debian/patches/series
--- dbusada-0.3.3/debian/patches/series	1970-01-01 01:00:00.000000000 +0100
+++ dbusada-0.4.0/debian/patches/series	2017-09-01 13:18:41.000000000 +0200
@@ -0,0 +1,2 @@
+refresh-thin.diff
+fix-test-linker-order.patch
diff -Nru dbusada-0.3.3/debian/rules dbusada-0.4.0/debian/rules
--- dbusada-0.3.3/debian/rules	2016-07-11 09:37:25.000000000 +0200
+++ dbusada-0.4.0/debian/rules	2017-09-01 13:18:41.000000000 +0200
@@ -1,29 +1,87 @@
 #!/usr/bin/make -f
 
+$(foreach line,$(shell sed -n '\
+  s/^ gnat, gnat-\([0-9.]\+\),$$/ \
+    gnat_version:=\1 \
+  /p;\
+  s/^Package: \(libdbusada\([0-9.]\+\)\)$$/ \
+    lib_pkg:=\1 \
+    soversion:=\2 \
+  /p;\
+  s/^Package: \(libdbusada[0-9.]\+-dev\)$$/ \
+    dev_pkg:=\1 \
+  /p;\
+  ' debian/control),$(eval $(line)))
+
+DEB_BUILD_MAINT_OPTIONS := hardening=+all
 DPKG_EXPORT_BUILDFLAGS = 1
+include /usr/share/dpkg/architecture.mk
 include /usr/share/dpkg/buildflags.mk
-include /usr/share/ada/debian_packaging-6.mk
+include /usr/share/ada/debian_packaging-$(gnat_version).mk
 
 export GNAT_BUILDER_FLAGS = $(BUILDER_OPTIONS)
 
 %:
 	dh ${@}
 
+# Force regeneration of the thin binding included in the tarball.
+.PHONY: override_dh_auto_configure
+override_dh_auto_configure:
+	rm -fr thin
+	$(MAKE) thin CXX=g++-$(gnat_version)
+
+.PHONY: override_dh_auto_build
 override_dh_auto_build:
 	$(MAKE)
 	$(MAKE) LIBRARY_KIND=static
+ifeq (,$(filter nodoc,$(DEB_BUILD_OPTIONS)))
 	$(MAKE) doc
+endif
 
+.PHONY: override_dh_auto_install
 override_dh_auto_install:
 	$(MAKE) PREFIX=$(CURDIR)/debian/tmp install
 	$(MAKE) LIBRARY_KIND=static PREFIX=$(CURDIR)/debian/tmp install
 	rm -rf debian/tmp/lib/gnat
 
+.PHONY: override_dh_auto_test
 override_dh_auto_test:
+ifeq (,$(filter nocheck,$(DEB_BUILD_OPTIONS)))
 	$(MAKE) tests
+endif
 
-override_dh_install:
-	dh_install --fail-missing
+.PHONY: override_dh_install
+override_dh_install: debian/dbusada.gpr
+	dh_install -p$(lib_pkg) lib/libdbusada.so.$(soversion) usr/lib/$(DEB_HOST_MULTIARCH)
+	dh_install -p$(dev_pkg) lib/libdbusada.so usr/lib/$(DEB_HOST_MULTIARCH)
+	dh_install -p$(dev_pkg) lib/libdbusada.a usr/lib/$(DEB_HOST_MULTIARCH)
+	dh_install -p$(dev_pkg) lib/dbus-ada/*.ali usr/lib/$(DEB_HOST_MULTIARCH)/ada/adalib/dbus-ada
+	dh_install -p$(dev_pkg) include/dbus-ada/*.ad[bs] usr/share/ada/adainclude/dbus-ada
+	dh_install -p$(dev_pkg) debian/dbusada.gpr usr/share/gpr
+	dh_install -p$(dev_pkg) debian/dbus_ada.gpr usr/share/gpr
+	dh_missing --fail-missing
+
+debian/dbusada.gpr: debian/template_dbusada.gpr
+	sed s/@DEB_HOST_MULTIARCH@/$(DEB_HOST_MULTIARCH)/ $< > $@
+
+.PHONY: override_dh_clean
+override_dh_clean:
+	dh_clean debian/dbusada.gpr debian/$(dev_pkg).doc-base
+
+.PHONY: override_dh_installdocs
+override_dh_installdocs: debian/$(dev_pkg).doc-base
+	dh_installdocs -p$(dev_pkg) doc/html/*
+	dh_installdocs --remaining-packages
+
+debian/$(dev_pkg).doc-base: debian/template_libdbusada-dev.doc-base
+	sed s/@dev_pkg@/$(dev_pkg)/ $< > $@
+
+.PHONY: override_dh_installexamples
+override_dh_installexamples:
+	dh_installexamples -p$(dev_pkg) examples/*
+	dh_installexamples --remaining-packages
 
+.PHONY: override_dh_compress
 override_dh_compress:
-	dh_compress -X.ads -X.adb -XMakefile
+	dh_compress -p$(dev_pkg) -X.ads -X.adb -XMakefile
+	dh_compress --remaining-packages
diff -Nru dbusada-0.3.3/debian/template_dbusada.gpr dbusada-0.4.0/debian/template_dbusada.gpr
--- dbusada-0.3.3/debian/template_dbusada.gpr	1970-01-01 01:00:00.000000000 +0100
+++ dbusada-0.4.0/debian/template_dbusada.gpr	2017-09-01 13:18:41.000000000 +0200
@@ -0,0 +1,24 @@
+--  D_Bus/Ada project file
+--  Copyright (C) 2012-2016 Reto Buerki <reet@codelabs.ch>
+--
+--  This program is free software; you can redistribute it and/or modify
+--  it under the terms of the GNU General Public License as published by
+--  the Free Software Foundation; either version 2 of the License, or
+--  (at your option) any later version.
+--
+--  This program is distributed in the hope that it will be useful,
+--  but WITHOUT ANY WARRANTY; without even the implied warranty of
+--  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+--  GNU General Public License for more details.
+
+project DBusAda is
+   for Source_Dirs use ("/usr/share/ada/adainclude/dbus-ada");
+   for Library_Name use "dbusada";
+   for Library_Dir use "/usr/lib/@DEB_HOST_MULTIARCH@";
+   for Library_ALI_Dir use "/usr/lib/@DEB_HOST_MULTIARCH@/ada/adalib/dbus-ada";
+   for Library_Kind use "dynamic";
+   for Externally_Built use "true";
+   package Linker is
+      for Linker_Options use ("-ldbus-1");
+   end Linker;
+end DBusAda;
diff -Nru dbusada-0.3.3/debian/template_libdbusada-dev.doc-base dbusada-0.4.0/debian/template_libdbusada-dev.doc-base
--- dbusada-0.3.3/debian/template_libdbusada-dev.doc-base	1970-01-01 01:00:00.000000000 +0100
+++ dbusada-0.4.0/debian/template_libdbusada-dev.doc-base	2017-09-01 13:18:41.000000000 +0200
@@ -0,0 +1,11 @@
+Document: dbusada
+Title: D-Bus/Ada documentation
+Author: Reto Buerki <reet@codelabs.ch>
+Abstract: Ada bindings to the D-Bus message bus system
+ The D_Bus/Ada library provides an Ada binding to the D-Bus message bus
+ used for inter-process communication on most modern Linux desktop systems.
+Section: Programming
+
+Format: HTML
+Index: /usr/share/doc/@dev_pkg@/index.html
+Files: /usr/share/doc/@dev_pkg@/asciidoc.css
diff -Nru dbusada-0.3.3/debian/tests/link-with-shared dbusada-0.4.0/debian/tests/link-with-shared
--- dbusada-0.3.3/debian/tests/link-with-shared	2016-07-11 09:37:25.000000000 +0200
+++ dbusada-0.4.0/debian/tests/link-with-shared	2017-09-01 13:18:41.000000000 +0200
@@ -1,6 +1,5 @@
 #!/bin/sh
 set -C -e -f -u
-TOP_SOURCE_DIR="`pwd`"
 cd "$ADTTMP"
 
 cat > p.gpr <<EOF
@@ -17,5 +16,5 @@
    null;
 end P;
 EOF
-gprbuild p.gpr
+gprbuild -v p.gpr
 ./p
diff -Nru dbusada-0.3.3/debian/watch dbusada-0.4.0/debian/watch
--- dbusada-0.3.3/debian/watch	2016-07-11 09:37:25.000000000 +0200
+++ dbusada-0.4.0/debian/watch	2017-09-01 13:18:41.000000000 +0200
@@ -1,2 +1,2 @@
-version=3
-http://www.codelabs.ch/download/libdbusada-(.*)\.tar\.bz2
+version=4
+http://www.codelabs.ch/download/libdbusada@ANY_VERSION@@ARCHIVE_EXT@
diff -Nru dbusada-0.3.3/Makefile dbusada-0.4.0/Makefile
--- dbusada-0.3.3/Makefile	2016-07-18 10:37:43.000000000 +0200
+++ dbusada-0.4.0/Makefile	2017-07-17 09:07:25.000000000 +0200
@@ -12,8 +12,8 @@
 TESTPID = `pidof rebounder`
 
 MAJOR   = 0
-MINOR   = 3
-REV     = 3
+MINOR   = 4
+REV     = 0
 VERSION = $(MAJOR).$(MINOR).$(REV)
 DBUSADA = libdbusada-$(VERSION)
 TARBALL = $(DBUSADA).tar.bz2
diff -Nru dbusada-0.3.3/src/d_bus-arguments.adb dbusada-0.4.0/src/d_bus-arguments.adb
--- dbusada-0.3.3/src/d_bus-arguments.adb	2016-07-18 10:37:43.000000000 +0200
+++ dbusada-0.4.0/src/d_bus-arguments.adb	2017-07-17 09:07:25.000000000 +0200
@@ -64,7 +64,7 @@
             Type_Tag  : Ada.Tags.Tag;
          begin
             Type_Code := dbus_message_h.dbus_message_iter_get_arg_type
-              (arg1 => D_Args);
+              (iter => D_Args);
 
             if Type_Code /= 0 then
                Type_Char (1) := Character'Val (Type_Code);
@@ -87,7 +87,7 @@
             end if;
 
             exit when dbus_message_h.dbus_message_iter_next
-              (arg1 => D_Args) = 0;
+              (iter => D_Args) = 0;
          end;
       end loop;
 
diff -Nru dbusada-0.3.3/src/d_bus-arguments-basic.adb dbusada-0.4.0/src/d_bus-arguments-basic.adb
--- dbusada-0.3.3/src/d_bus-arguments-basic.adb	2016-07-18 10:37:43.000000000 +0200
+++ dbusada-0.4.0/src/d_bus-arguments-basic.adb	2017-07-17 09:07:25.000000000 +0200
@@ -569,8 +569,8 @@
    is
    begin
       dbus_message_h.dbus_message_iter_get_basic
-        (arg1 => D_Arg,
-         arg2 => Address);
+        (iter  => D_Arg,
+         value => Address);
    end Deserialize;
 
    -------------------------------------------------------------------------
@@ -586,9 +586,9 @@
       D_Res : dbus_types_h.dbus_bool_t;
    begin
       D_Res := dbus_message_h.dbus_message_iter_append_basic
-        (arg1 => D_Arg,
-         arg2 => C.int (Code),
-         arg3 => Address);
+        (iter   => D_Arg,
+         c_type => C.int (Code),
+         value  => Address);
 
       if D_Res = 0 then
          raise D_Bus_Error with "Unable to append basic "
diff -Nru dbusada-0.3.3/src/d_bus-arguments-containers.adb dbusada-0.4.0/src/d_bus-arguments-containers.adb
--- dbusada-0.3.3/src/d_bus-arguments-containers.adb	2016-07-18 10:37:43.000000000 +0200
+++ dbusada-0.4.0/src/d_bus-arguments-containers.adb	2017-07-17 09:07:25.000000000 +0200
@@ -171,8 +171,8 @@
       D_Sub_Args : aliased dbus_message_h.DBusMessageIter;
    begin
       dbus_message_h.dbus_message_iter_recurse
-        (arg1 => D_Args,
-         arg2 => D_Sub_Args'Access);
+        (iter => D_Args,
+         sub  => D_Sub_Args'Access);
 
       return Result : Array_Type do
          Argument_List_Type (Result)
@@ -189,8 +189,8 @@
       D_Sub_Args : aliased dbus_message_h.DBusMessageIter;
    begin
       dbus_message_h.dbus_message_iter_recurse
-        (arg1 => D_Args,
-         arg2 => D_Sub_Args'Access);
+        (iter => D_Args,
+         sub  => D_Sub_Args'Access);
 
       return Result : Struct_Type do
          Argument_List_Type (Result)
@@ -207,8 +207,8 @@
       D_Sub_Args : aliased dbus_message_h.DBusMessageIter;
    begin
       dbus_message_h.dbus_message_iter_recurse
-        (arg1 => D_Args,
-         arg2 => D_Sub_Args'Access);
+        (iter => D_Args,
+         sub  => D_Sub_Args'Access);
 
       return Result : Dict_Entry_Type do
          Argument_List_Type (Result)
@@ -225,8 +225,8 @@
       D_Sub_Args : aliased dbus_message_h.DBusMessageIter;
    begin
       dbus_message_h.dbus_message_iter_recurse
-        (arg1 => D_Args,
-         arg2 => D_Sub_Args'Access);
+        (iter => D_Args,
+         sub  => D_Sub_Args'Access);
 
       return Result : Variant_Type do
          Argument_List_Type (Result)
@@ -399,10 +399,10 @@
       end if;
 
       D_Res := dbus_message_h.dbus_message_iter_open_container
-        (arg1 => D_Args,
-         arg2 => C.int (Code_Table (Code)),
-         arg3 => C_Sig,
-         arg4 => D_Sub_Args'Access);
+        (iter                => D_Args,
+         c_type              => C.int (Code_Table (Code)),
+         contained_signature => C_Sig,
+         sub                 => D_Sub_Args'Access);
 
       if C_Sig /= C.Strings.Null_Ptr then
          C.Strings.Free (Item => C_Sig);
@@ -415,8 +415,8 @@
       Args.Serialize (D_Args => D_Sub_Args'Access);
 
       D_Res := dbus_message_h.dbus_message_iter_close_container
-        (arg1 => D_Args,
-         arg2 => D_Sub_Args'Access);
+        (iter => D_Args,
+         sub  => D_Sub_Args'Access);
 
       if D_Res = 0 then
          raise D_Bus_Error with "Unable to close D-Bus container";
diff -Nru dbusada-0.3.3/src/d_bus-connection.adb dbusada-0.4.0/src/d_bus-connection.adb
--- dbusada-0.3.3/src/d_bus-connection.adb	2016-07-18 10:37:43.000000000 +0200
+++ dbusada-0.4.0/src/d_bus-connection.adb	2017-07-17 09:07:25.000000000 +0200
@@ -55,6 +55,9 @@
       Args      : Arguments.Argument_List_Type);
    --  Add arguments to low-level D-Bus message.
 
+   procedure Free_Usr_Data (arg1 : System.Address) is null;
+   pragma Convention (C, Free_Usr_Data);
+
    -------------------------------------------------------------------------
 
    procedure Add_Args
@@ -64,8 +67,8 @@
       D_Args : aliased dbus_message_h.DBusMessageIter;
    begin
       dbus_message_h.dbus_message_iter_init_append
-        (arg1 => D_Message,
-         arg2 => D_Args'Access);
+        (message => D_Message,
+         iter    => D_Args'Access);
 
       Arguments.Serialize
         (Args   => Args,
@@ -83,9 +86,9 @@
         (Str => Rule);
    begin
       dbus_bus_h.dbus_bus_add_match
-        (arg1 => Connection.Thin_Connection,
-         arg2 => C_Str,
-         arg3 => D_Err'Access);
+        (connection => Connection.Thin_Connection,
+         rule       => C_Str,
+         error      => D_Err'Access);
       C.Strings.Free (Item => C_Str);
       Check (Result => D_Err'Access);
    end Add_Match;
@@ -135,10 +138,10 @@
       C_Method := C.Strings.New_String (Str => Method);
 
       D_Msg := dbus_message_h.dbus_message_new_method_call
-        (arg1 => C_Dest,
-         arg2 => C_Path,
-         arg3 => C_Iface,
-         arg4 => C_Method);
+        (bus_name => C_Dest,
+         path     => C_Path,
+         iface    => C_Iface,
+         method   => C_Method);
       Free_Strings;
 
       if D_Msg = System.Null_Address then
@@ -149,11 +152,11 @@
                 Args      => Args);
 
       D_Reply := dbus_connection_h.dbus_connection_send_with_reply_and_block
-        (arg1 => Connection.Thin_Connection,
-         arg2 => D_Msg,
-         arg3 => -1,
-         arg4 => D_Err'Access);
-      dbus_message_h.dbus_message_unref (arg1 => D_Msg);
+        (connection           => Connection.Thin_Connection,
+         message              => D_Msg,
+         timeout_milliseconds => -1,
+         error                => D_Err'Access);
+      dbus_message_h.dbus_message_unref (message => D_Msg);
       D_Msg := System.Null_Address;
 
       if D_Reply = System.Null_Address then
@@ -166,16 +169,16 @@
          D_Args : aliased dbus_message_h.DBusMessageIter;
       begin
          if dbus_message_h.dbus_message_iter_init
-           (arg1 => D_Reply,
-            arg2 => D_Args'Access) = 0
+           (message => D_Reply,
+            iter    => D_Args'Access) = 0
          then
-            dbus_message_h.dbus_message_unref (arg1 => D_Reply);
+            dbus_message_h.dbus_message_unref (message => D_Reply);
             return Arguments.Empty_Argument_List;
          end if;
 
          return A : Arguments.Argument_List_Type do
             A := Arguments.Deserialize (D_Args => D_Args'Access);
-            dbus_message_h.dbus_message_unref (arg1 => D_Reply);
+            dbus_message_h.dbus_message_unref (message => D_Reply);
          end return;
       end;
    end Call_Blocking;
@@ -186,11 +189,11 @@
    is
       use type dbus_types_h.dbus_bool_t;
    begin
-      if dbus_errors_h.dbus_error_is_set (arg1 => Result) = 1 then
+      if dbus_errors_h.dbus_error_is_set (error => Result) = 1 then
          declare
             Error_String : constant String := C.Strings.Value (Result.message);
          begin
-            dbus_errors_h.dbus_error_free (arg1 => Result);
+            dbus_errors_h.dbus_error_free (error => Result);
             raise D_Bus_Error with Error_String;
          end;
       end if;
@@ -204,8 +207,8 @@
       D_Err  : aliased dbus_errors_h.DBusError;
    begin
       D_Conn := dbus_bus_h.dbus_bus_get
-        (arg1 => Bus_Types (Bus),
-         arg2 => D_Err'Access);
+        (c_type => Bus_Types (Bus),
+         error  => D_Err'Access);
       Check (Result => D_Err'Access);
 
       return Connection_Type'(Thin_Connection => D_Conn);
@@ -220,8 +223,8 @@
       D_Err  : aliased dbus_errors_h.DBusError;
    begin
       D_Conn := dbus_connection_h.dbus_connection_open
-        (arg1 => C_Addr,
-         arg2 => D_Err'Access);
+        (address => C_Addr,
+         error   => D_Err'Access);
       C.Strings.Free (Item => C_Addr);
       Check (Result => D_Err'Access);
 
@@ -242,6 +245,7 @@
          Msg      : System.Address;
          Usr_Data : System.Address)
          return dbus_shared_h.DBusHandlerResult;
+      pragma Convention (C, Call_Back);
       --  Dispatch deserialized message to given callback procedure.
 
       function Call_Back
@@ -257,23 +261,21 @@
          return dbus_shared_h.DBUS_HANDLER_RESULT_HANDLED;
       end Call_Back;
 
-      procedure Free_Usr_Data (arg1 : System.Address) is null;
-
       D_Res : dbus_types_h.dbus_bool_t;
    begin
       D_Res := dbus_connection_h.dbus_connection_add_filter
-        (arg1 => Connection.Thin_Connection,
-         arg2 => Call_Back'Access,
-         arg3 => System.Null_Address,
-         arg4 => Free_Usr_Data'Access);
+        (connection         => Connection.Thin_Connection,
+         c_function         => Call_Back'Unrestricted_Access,
+         user_data          => System.Null_Address,
+         free_data_function => Free_Usr_Data'Access);
 
       if D_Res = 0 then
          raise D_Bus_Error with "Could not add connection filter";
       end if;
 
       while dbus_connection_h.dbus_connection_read_write_dispatch
-        (arg1 => Connection.Thin_Connection,
-         arg2 => -1) = 1
+        (connection           => Connection.Thin_Connection,
+         timeout_milliseconds => -1) = 1
       loop
          null;
       end loop;
@@ -285,7 +287,7 @@
    is
    begin
       dbus_connection_h.dbus_connection_flush
-        (arg1 => Connection.Thin_Connection);
+        (connection => Connection.Thin_Connection);
    end Flush;
 
    -------------------------------------------------------------------------
@@ -302,10 +304,10 @@
       D_Err  : aliased dbus_errors_h.DBusError;
    begin
       C_Res := dbus_bus_h.dbus_bus_request_name
-        (arg1 => Connection.Thin_Connection,
-         arg2 => C_Name,
-         arg3 => dbus_shared_h.DBUS_NAME_FLAG_REPLACE_EXISTING,
-         arg4 => D_Err'Access);
+        (connection => Connection.Thin_Connection,
+         name       => C_Name,
+         flags      => dbus_shared_h.DBUS_NAME_FLAG_REPLACE_EXISTING,
+         error      => D_Err'Access);
       C.Strings.Free (Item => C_Name);
 
       Check (Result => D_Err'Access);
@@ -327,9 +329,9 @@
       D_Serial : aliased dbus_arch_deps_h.dbus_uint32_t := 0;
    begin
       if dbus_connection_h.dbus_connection_send
-        (arg1 => Connection.Thin_Connection,
-         arg2 => Messages.To_Thin (Msg => Message),
-         arg3 => D_Serial'Access) = 0
+        (connection    => Connection.Thin_Connection,
+         message       => Messages.To_Thin (Msg => Message),
+         client_serial => D_Serial'Access) = 0
       then
          raise D_Bus_Error with "Could not send message: out of memory";
       end if;
@@ -372,9 +374,9 @@
       C_Name   := C.Strings.New_String (Str => Name);
 
       D_Msg := dbus_message_h.dbus_message_new_signal
-        (arg1 => C_Object,
-         arg2 => C_Iface,
-         arg3 => C_Name);
+        (path  => C_Object,
+         iface => C_Iface,
+         name  => C_Name);
 
       if D_Msg = System.Null_Address then
          Free_Strings;
@@ -397,9 +399,9 @@
          D_Serial : aliased dbus_arch_deps_h.dbus_uint32_t := 0;
       begin
          if dbus_connection_h.dbus_connection_send
-           (arg1 => Connection.Thin_Connection,
-            arg2 => D_Msg,
-            arg3 => D_Serial'Access) = 0
+           (connection    => Connection.Thin_Connection,
+            message       => D_Msg,
+            client_serial => D_Serial'Access) = 0
          then
             Free_Strings;
             raise D_Bus_Error with "Could not send signal";
@@ -407,7 +409,7 @@
       end;
 
       Free_Strings;
-      dbus_message_h.dbus_message_unref (arg1 => D_Msg);
+      dbus_message_h.dbus_message_unref (message => D_Msg);
    end Send_Signal;
 
 end D_Bus.Connection;
diff -Nru dbusada-0.3.3/src/d_bus-connection-g_main.adb dbusada-0.4.0/src/d_bus-connection-g_main.adb
--- dbusada-0.3.3/src/d_bus-connection-g_main.adb	2016-07-18 10:37:43.000000000 +0200
+++ dbusada-0.4.0/src/d_bus-connection-g_main.adb	2017-07-17 09:07:25.000000000 +0200
@@ -49,13 +49,16 @@
       msg  : System.Address;
       data : System.Address)
       return dbus_shared_h.DBusHandlerResult;
+   pragma Convention (C, Object_Path_Message);
    --  Handler for path messages.
 
    procedure Object_Path_Unregister
      (conn : System.Address;
       data : System.Address) is null;
+   pragma Convention (C, Object_Path_Unregister);
 
    procedure Nul_Pad (arg1 : System.Address) is null;
+   pragma Convention (C, Nul_Pad);
 
    Obj_Path_Table : aliased constant dbus_connection_h.DBusObjectPathVTable
      := (unregister_function => Object_Path_Unregister'Access,
@@ -122,10 +125,10 @@
       D_Res    : dbus_types_h.dbus_bool_t;
    begin
       D_Res := dbus_connection_h.dbus_connection_register_object_path
-        (arg1 => Connection.Thin_Connection,
-         arg2 => C_Path,
-         arg3 => Obj_Path_Table'Access,
-         arg4 => System.Null_Address);
+        (connection => Connection.Thin_Connection,
+         path       => C_Path,
+         vtable     => Obj_Path_Table'Access,
+         user_data  => System.Null_Address);
       C.Strings.Free (Item => C_Path);
 
       if D_Res /= 1 then
diff -Nru dbusada-0.3.3/src/d_bus-messages.adb dbusada-0.4.0/src/d_bus-messages.adb
--- dbusada-0.3.3/src/d_bus-messages.adb	2016-07-18 10:37:43.000000000 +0200
+++ dbusada-0.4.0/src/d_bus-messages.adb	2017-07-17 09:07:25.000000000 +0200
@@ -50,8 +50,9 @@
    is
       D_Args : aliased DBusMessageIter;
    begin
-      dbus_message_iter_init_append (arg1 => Msg.Thin_Msg,
-                                     arg2 => D_Args'Access);
+      dbus_message_iter_init_append
+        (message => Msg.Thin_Msg,
+         iter    => D_Args'Access);
       Arguments.Serialize (Args   => Args,
                            D_Args => D_Args'Access);
    end Add_Arguments;
@@ -78,8 +79,8 @@
       Args   : Arguments.Argument_List_Type;
    begin
       if dbus_message_h.dbus_message_iter_init
-        (arg1 => Msg.Thin_Msg,
-         arg2 => D_Args'Access) = 1
+        (message => Msg.Thin_Msg,
+         iter    => D_Args'Access) = 1
       then
          Args := Arguments.Deserialize (D_Args'Access);
       end if;
@@ -92,7 +93,7 @@
    function Get_Destination (Msg : Message_Type) return String
    is
       C_Dest : constant C.Strings.chars_ptr := dbus_message_get_destination
-        (arg1 => Msg.Thin_Msg);
+        (message => Msg.Thin_Msg);
    begin
       return Value_Or_Empty (Ptr => C_Dest);
    end Get_Destination;
@@ -102,7 +103,7 @@
    function Get_Interface (Msg : Message_Type) return String
    is
       C_Iface : constant C.Strings.chars_ptr := dbus_message_get_interface
-        (arg1 => Msg.Thin_Msg);
+        (message => Msg.Thin_Msg);
    begin
       return Value_Or_Empty (Ptr => C_Iface);
    end Get_Interface;
@@ -112,7 +113,7 @@
    function Get_Member (Msg : Message_Type) return String
    is
       C_Member : constant C.Strings.chars_ptr := dbus_message_get_member
-        (arg1 => Msg.Thin_Msg);
+        (message => Msg.Thin_Msg);
    begin
       return Value_Or_Empty (Ptr => C_Member);
    end Get_Member;
@@ -122,7 +123,7 @@
    function Get_Path (Msg : Message_Type) return String
    is
       C_Path : constant C.Strings.chars_ptr := dbus_message_get_path
-        (arg1 => Msg.Thin_Msg);
+        (message => Msg.Thin_Msg);
    begin
       return Value_Or_Empty (Ptr => C_Path);
    end Get_Path;
@@ -132,7 +133,7 @@
    function Get_Sender (Msg : Message_Type) return String
    is
       C_Sender : constant C.Strings.chars_ptr := dbus_message_get_sender
-        (arg1 => Msg.Thin_Msg);
+        (message => Msg.Thin_Msg);
    begin
       return Value_Or_Empty (Ptr => C_Sender);
    end Get_Sender;
@@ -142,7 +143,7 @@
    function Get_Serial (Msg : Message_Type) return Positive
    is
    begin
-      return Positive (dbus_message_get_serial (arg1 => Msg.Thin_Msg));
+      return Positive (dbus_message_get_serial (message => Msg.Thin_Msg));
 
    exception
       when Constraint_Error =>
@@ -155,7 +156,7 @@
    is
    begin
       return Message_Variant'Val
-        (dbus_message_get_type (arg1 => Msg.Thin_Msg));
+        (dbus_message_get_type (message => Msg.Thin_Msg));
 
    exception
       when Constraint_Error =>
@@ -192,9 +193,9 @@
         := C.Strings.New_String (Str => Error_Message);
    begin
       Error.Thin_Msg := dbus_message_new_error
-        (arg1 => Reply_To.Thin_Msg,
-         arg2 => C_Name,
-         arg3 => C_Msg);
+        (reply_to      => Reply_To.Thin_Msg,
+         error_name    => C_Name,
+         error_message => C_Msg);
       C.Strings.Free (Item => C_Name);
       C.Strings.Free (Item => C_Msg);
 
@@ -214,7 +215,7 @@
       Reply : Message_Type;
    begin
       Reply.Thin_Msg := dbus_message_new_method_return
-        (arg1 => Method_Call.Thin_Msg);
+        (method_call => Method_Call.Thin_Msg);
 
       if Reply.Thin_Msg = System.Null_Address then
          raise D_Bus_Error with "Could not create method reply message";
diff -Nru dbusada-0.3.3/tests/c/dbus-rebound.c dbusada-0.4.0/tests/c/dbus-rebound.c
--- dbusada-0.3.3/tests/c/dbus-rebound.c	2016-07-18 10:37:43.000000000 +0200
+++ dbusada-0.4.0/tests/c/dbus-rebound.c	2017-07-17 09:07:25.000000000 +0200
@@ -20,6 +20,7 @@
  */
 
 #include <glib.h>
+#include <glib/gstdio.h>
 
 #include <dbus/dbus.h>
 #include <dbus/dbus-glib-lowlevel.h>
diff -Nru dbusada-0.3.3/thin/dbus_address_h.ads dbusada-0.4.0/thin/dbus_address_h.ads
--- dbusada-0.3.3/thin/dbus_address_h.ads	2016-07-18 10:37:43.000000000 +0200
+++ dbusada-0.4.0/thin/dbus_address_h.ads	2017-07-17 09:07:25.000000000 +0200
@@ -1,3 +1,4 @@
+pragma Ada_2005;
 pragma Style_Checks (Off);
 
 with Interfaces.C; use Interfaces.C;
@@ -11,25 +12,25 @@
    --  skipped empty struct DBusAddressEntry
 
    function dbus_parse_address
-     (arg1 : Interfaces.C.Strings.chars_ptr;
-      arg2 : System.Address;
-      arg3 : access int;
-      arg4 : access dbus_errors_h.DBusError) return dbus_types_h.dbus_bool_t;  -- ../dbus/dbus-address.h:43:13
+     (address : Interfaces.C.Strings.chars_ptr;
+      c_entry : System.Address;
+      array_len : access int;
+      error : access dbus_errors_h.DBusError) return dbus_types_h.dbus_bool_t;  -- ../dbus/dbus-address.h:44
    pragma Import (C, dbus_parse_address, "dbus_parse_address");
 
-   function dbus_address_entry_get_value (arg1 : System.Address; arg2 : Interfaces.C.Strings.chars_ptr) return Interfaces.C.Strings.chars_ptr;  -- ../dbus/dbus-address.h:47:13
+   function dbus_address_entry_get_value (c_entry : System.Address; key : Interfaces.C.Strings.chars_ptr) return Interfaces.C.Strings.chars_ptr;  -- ../dbus/dbus-address.h:49
    pragma Import (C, dbus_address_entry_get_value, "dbus_address_entry_get_value");
 
-   function dbus_address_entry_get_method (arg1 : System.Address) return Interfaces.C.Strings.chars_ptr;  -- ../dbus/dbus-address.h:49:13
+   function dbus_address_entry_get_method (c_entry : System.Address) return Interfaces.C.Strings.chars_ptr;  -- ../dbus/dbus-address.h:52
    pragma Import (C, dbus_address_entry_get_method, "dbus_address_entry_get_method");
 
-   procedure dbus_address_entries_free (arg1 : System.Address);  -- ../dbus/dbus-address.h:50:13
+   procedure dbus_address_entries_free (entries : System.Address);  -- ../dbus/dbus-address.h:54
    pragma Import (C, dbus_address_entries_free, "dbus_address_entries_free");
 
-   function dbus_address_escape_value (arg1 : Interfaces.C.Strings.chars_ptr) return Interfaces.C.Strings.chars_ptr;  -- ../dbus/dbus-address.h:52:7
+   function dbus_address_escape_value (value : Interfaces.C.Strings.chars_ptr) return Interfaces.C.Strings.chars_ptr;  -- ../dbus/dbus-address.h:57
    pragma Import (C, dbus_address_escape_value, "dbus_address_escape_value");
 
-   function dbus_address_unescape_value (arg1 : Interfaces.C.Strings.chars_ptr; arg2 : access dbus_errors_h.DBusError) return Interfaces.C.Strings.chars_ptr;  -- ../dbus/dbus-address.h:53:7
+   function dbus_address_unescape_value (value : Interfaces.C.Strings.chars_ptr; error : access dbus_errors_h.DBusError) return Interfaces.C.Strings.chars_ptr;  -- ../dbus/dbus-address.h:59
    pragma Import (C, dbus_address_unescape_value, "dbus_address_unescape_value");
 
 end dbus_address_h;
diff -Nru dbusada-0.3.3/thin/dbus_arch_deps_h.ads dbusada-0.4.0/thin/dbus_arch_deps_h.ads
--- dbusada-0.3.3/thin/dbus_arch_deps_h.ads	2016-07-18 10:37:43.000000000 +0200
+++ dbusada-0.4.0/thin/dbus_arch_deps_h.ads	2017-07-17 09:07:25.000000000 +0200
@@ -1,35 +1,31 @@
+pragma Ada_2005;
 pragma Style_Checks (Off);
 
 with Interfaces.C; use Interfaces.C;
-with Interfaces.C.Extensions;
 
 package dbus_arch_deps_h is
 
-
    DBUS_HAVE_INT64 : constant := 1;  --  ../dbus/dbus-arch-deps.h:35
-   --  unsupported macro: DBUS_INT64_CONSTANT(val) (_DBUS_GNUC_EXTENSION (val ##LL))
-   --  unsupported macro: DBUS_UINT64_CONSTANT(val) (_DBUS_GNUC_EXTENSION (val ##ULL))
-
-   DBUS_MAJOR_VERSION : constant := 1;  --  ../dbus/dbus-arch-deps.h:57
-   DBUS_MINOR_VERSION : constant := 2;  --  ../dbus/dbus-arch-deps.h:58
-   DBUS_MICRO_VERSION : constant := 16;  --  ../dbus/dbus-arch-deps.h:59
-
-   DBUS_VERSION_STRING : aliased constant String := "1.2.16" & ASCII.NUL;  --  ../dbus/dbus-arch-deps.h:61
+   --  unsupported macro: DBUS_INT64_CONSTANT(val) (_DBUS_GNUC_EXTENSION (val ##L))
+   --  unsupported macro: DBUS_UINT64_CONSTANT(val) (_DBUS_GNUC_EXTENSION (val ##UL))
 
-   type Version_Mod is mod 2 ** 16;
+   DBUS_MAJOR_VERSION : constant := 1;  --  ../dbus/dbus-arch-deps.h:51
+   DBUS_MINOR_VERSION : constant := 10;  --  ../dbus/dbus-arch-deps.h:52
+   DBUS_MICRO_VERSION : constant := 18;  --  ../dbus/dbus-arch-deps.h:53
 
-   DBUS_VERSION : constant Version_Mod := ((2 ** 16) or (2 ** 8) or (16));  --  ../dbus/dbus-arch-deps.h:63
+   DBUS_VERSION_STRING : aliased constant String := "1.10.18" & ASCII.NUL;  --  ../dbus/dbus-arch-deps.h:55
+   --  unsupported macro: DBUS_VERSION ((1 << 16) | (10 << 8) | (18))
 
-   subtype dbus_int64_t is Long_Long_Integer;  -- ../dbus/dbus-arch-deps.h:36:40
+   subtype dbus_int64_t is long;  -- ../dbus/dbus-arch-deps.h:36
 
-   subtype dbus_uint64_t is Extensions.unsigned_long_long;  -- ../dbus/dbus-arch-deps.h:37:49
+   subtype dbus_uint64_t is unsigned_long;  -- ../dbus/dbus-arch-deps.h:37
 
-   subtype dbus_int32_t is int;  -- ../dbus/dbus-arch-deps.h:48:13
+   subtype dbus_int32_t is int;  -- ../dbus/dbus-arch-deps.h:42
 
-   subtype dbus_uint32_t is unsigned;  -- ../dbus/dbus-arch-deps.h:49:22
+   subtype dbus_uint32_t is unsigned;  -- ../dbus/dbus-arch-deps.h:43
 
-   subtype dbus_int16_t is short;  -- ../dbus/dbus-arch-deps.h:51:15
+   subtype dbus_int16_t is short;  -- ../dbus/dbus-arch-deps.h:45
 
-   subtype dbus_uint16_t is unsigned_short;  -- ../dbus/dbus-arch-deps.h:52:24
+   subtype dbus_uint16_t is unsigned_short;  -- ../dbus/dbus-arch-deps.h:46
 
 end dbus_arch_deps_h;
diff -Nru dbusada-0.3.3/thin/dbus_bus_h.ads dbusada-0.4.0/thin/dbus_bus_h.ads
--- dbusada-0.3.3/thin/dbus_bus_h.ads	2016-07-18 10:37:43.000000000 +0200
+++ dbusada-0.4.0/thin/dbus_bus_h.ads	2017-07-17 09:07:25.000000000 +0200
@@ -1,3 +1,4 @@
+pragma Ada_2005;
 pragma Style_Checks (Off);
 
 with Interfaces.C; use Interfaces.C;
@@ -10,67 +11,67 @@
 
 package dbus_bus_h is
 
-   function dbus_bus_get (arg1 : dbus_shared_h.DBusBusType; arg2 : access dbus_errors_h.DBusError) return System.Address;  -- ../dbus/dbus-bus.h:39:17
+   function dbus_bus_get (c_type : dbus_shared_h.DBusBusType; error : access dbus_errors_h.DBusError) return System.Address;  -- ../dbus/dbus-bus.h:40
    pragma Import (C, dbus_bus_get, "dbus_bus_get");
 
-   function dbus_bus_get_private (arg1 : dbus_shared_h.DBusBusType; arg2 : access dbus_errors_h.DBusError) return System.Address;  -- ../dbus/dbus-bus.h:41:17
+   function dbus_bus_get_private (c_type : dbus_shared_h.DBusBusType; error : access dbus_errors_h.DBusError) return System.Address;  -- ../dbus/dbus-bus.h:43
    pragma Import (C, dbus_bus_get_private, "dbus_bus_get_private");
 
-   function dbus_bus_register (arg1 : System.Address; arg2 : access dbus_errors_h.DBusError) return dbus_types_h.dbus_bool_t;  -- ../dbus/dbus-bus.h:44:17
+   function dbus_bus_register (connection : System.Address; error : access dbus_errors_h.DBusError) return dbus_types_h.dbus_bool_t;  -- ../dbus/dbus-bus.h:47
    pragma Import (C, dbus_bus_register, "dbus_bus_register");
 
-   function dbus_bus_set_unique_name (arg1 : System.Address; arg2 : Interfaces.C.Strings.chars_ptr) return dbus_types_h.dbus_bool_t;  -- ../dbus/dbus-bus.h:46:17
+   function dbus_bus_set_unique_name (connection : System.Address; unique_name : Interfaces.C.Strings.chars_ptr) return dbus_types_h.dbus_bool_t;  -- ../dbus/dbus-bus.h:50
    pragma Import (C, dbus_bus_set_unique_name, "dbus_bus_set_unique_name");
 
-   function dbus_bus_get_unique_name (arg1 : System.Address) return Interfaces.C.Strings.chars_ptr;  -- ../dbus/dbus-bus.h:48:17
+   function dbus_bus_get_unique_name (connection : System.Address) return Interfaces.C.Strings.chars_ptr;  -- ../dbus/dbus-bus.h:53
    pragma Import (C, dbus_bus_get_unique_name, "dbus_bus_get_unique_name");
 
    function dbus_bus_get_unix_user
-     (arg1 : System.Address;
-      arg2 : Interfaces.C.Strings.chars_ptr;
-      arg3 : access dbus_errors_h.DBusError) return unsigned_long;  -- ../dbus/dbus-bus.h:49:17
+     (connection : System.Address;
+      name : Interfaces.C.Strings.chars_ptr;
+      error : access dbus_errors_h.DBusError) return unsigned_long;  -- ../dbus/dbus-bus.h:55
    pragma Import (C, dbus_bus_get_unix_user, "dbus_bus_get_unix_user");
 
-   function dbus_bus_get_id (arg1 : System.Address; arg2 : access dbus_errors_h.DBusError) return Interfaces.C.Strings.chars_ptr;  -- ../dbus/dbus-bus.h:52:17
+   function dbus_bus_get_id (connection : System.Address; error : access dbus_errors_h.DBusError) return Interfaces.C.Strings.chars_ptr;  -- ../dbus/dbus-bus.h:59
    pragma Import (C, dbus_bus_get_id, "dbus_bus_get_id");
 
    function dbus_bus_request_name
-     (arg1 : System.Address;
-      arg2 : Interfaces.C.Strings.chars_ptr;
-      arg3 : unsigned;
-      arg4 : access dbus_errors_h.DBusError) return int;  -- ../dbus/dbus-bus.h:54:17
+     (connection : System.Address;
+      name : Interfaces.C.Strings.chars_ptr;
+      flags : unsigned;
+      error : access dbus_errors_h.DBusError) return int;  -- ../dbus/dbus-bus.h:62
    pragma Import (C, dbus_bus_request_name, "dbus_bus_request_name");
 
    function dbus_bus_release_name
-     (arg1 : System.Address;
-      arg2 : Interfaces.C.Strings.chars_ptr;
-      arg3 : access dbus_errors_h.DBusError) return int;  -- ../dbus/dbus-bus.h:58:17
+     (connection : System.Address;
+      name : Interfaces.C.Strings.chars_ptr;
+      error : access dbus_errors_h.DBusError) return int;  -- ../dbus/dbus-bus.h:67
    pragma Import (C, dbus_bus_release_name, "dbus_bus_release_name");
 
    function dbus_bus_name_has_owner
-     (arg1 : System.Address;
-      arg2 : Interfaces.C.Strings.chars_ptr;
-      arg3 : access dbus_errors_h.DBusError) return dbus_types_h.dbus_bool_t;  -- ../dbus/dbus-bus.h:61:17
+     (connection : System.Address;
+      name : Interfaces.C.Strings.chars_ptr;
+      error : access dbus_errors_h.DBusError) return dbus_types_h.dbus_bool_t;  -- ../dbus/dbus-bus.h:71
    pragma Import (C, dbus_bus_name_has_owner, "dbus_bus_name_has_owner");
 
    function dbus_bus_start_service_by_name
-     (arg1 : System.Address;
-      arg2 : Interfaces.C.Strings.chars_ptr;
-      arg3 : dbus_arch_deps_h.dbus_uint32_t;
-      arg4 : access dbus_arch_deps_h.dbus_uint32_t;
-      arg5 : access dbus_errors_h.DBusError) return dbus_types_h.dbus_bool_t;  -- ../dbus/dbus-bus.h:65:17
+     (connection : System.Address;
+      name : Interfaces.C.Strings.chars_ptr;
+      flags : dbus_arch_deps_h.dbus_uint32_t;
+      reply : access dbus_arch_deps_h.dbus_uint32_t;
+      error : access dbus_errors_h.DBusError) return dbus_types_h.dbus_bool_t;  -- ../dbus/dbus-bus.h:76
    pragma Import (C, dbus_bus_start_service_by_name, "dbus_bus_start_service_by_name");
 
    procedure dbus_bus_add_match
-     (arg1 : System.Address;
-      arg2 : Interfaces.C.Strings.chars_ptr;
-      arg3 : access dbus_errors_h.DBusError);  -- ../dbus/dbus-bus.h:71:17
+     (connection : System.Address;
+      rule : Interfaces.C.Strings.chars_ptr;
+      error : access dbus_errors_h.DBusError);  -- ../dbus/dbus-bus.h:83
    pragma Import (C, dbus_bus_add_match, "dbus_bus_add_match");
 
    procedure dbus_bus_remove_match
-     (arg1 : System.Address;
-      arg2 : Interfaces.C.Strings.chars_ptr;
-      arg3 : access dbus_errors_h.DBusError);  -- ../dbus/dbus-bus.h:74:17
+     (connection : System.Address;
+      rule : Interfaces.C.Strings.chars_ptr;
+      error : access dbus_errors_h.DBusError);  -- ../dbus/dbus-bus.h:87
    pragma Import (C, dbus_bus_remove_match, "dbus_bus_remove_match");
 
 end dbus_bus_h;
diff -Nru dbusada-0.3.3/thin/dbus_connection_h.ads dbusada-0.4.0/thin/dbus_connection_h.ads
--- dbusada-0.3.3/thin/dbus_connection_h.ads	2016-07-18 10:37:43.000000000 +0200
+++ dbusada-0.4.0/thin/dbus_connection_h.ads	2017-07-17 09:07:25.000000000 +0200
@@ -1,3 +1,4 @@
+pragma Ada_2005;
 pragma Style_Checks (Off);
 
 with Interfaces.C; use Interfaces.C;
@@ -7,6 +8,7 @@
 with dbus_shared_h;
 limited with dbus_errors_h;
 with dbus_arch_deps_h;
+with dbus_memory_h;
 
 package dbus_connection_h is
 
@@ -24,386 +26,400 @@
    DBUS_WATCH_READABLE : constant DBusWatchFlags := 1;
    DBUS_WATCH_WRITABLE : constant DBusWatchFlags := 2;
    DBUS_WATCH_ERROR : constant DBusWatchFlags := 4;
-   DBUS_WATCH_HANGUP : constant DBusWatchFlags := 8;  -- ../dbus/dbus-connection.h:72:3
+   DBUS_WATCH_HANGUP : constant DBusWatchFlags := 8;  -- ../dbus/dbus-connection.h:73
 
-   subtype DBusDispatchStatus is unsigned;
-   DBUS_DISPATCH_DATA_REMAINS : constant DBusDispatchStatus := 0;
-   DBUS_DISPATCH_COMPLETE : constant DBusDispatchStatus := 1;
-   DBUS_DISPATCH_NEED_MEMORY : constant DBusDispatchStatus := 2;  -- ../dbus/dbus-connection.h:83:3
+   type DBusDispatchStatus is
+     (DBUS_DISPATCH_DATA_REMAINS,
+      DBUS_DISPATCH_COMPLETE,
+      DBUS_DISPATCH_NEED_MEMORY);
+   pragma Convention (C, DBusDispatchStatus);  -- ../dbus/dbus-connection.h:84
 
-   type DBusAddWatchFunction is access function (arg1 : System.Address; arg2 : System.Address) return dbus_types_h.dbus_bool_t;  -- ../dbus/dbus-connection.h:90:24
+   type DBusAddWatchFunction is access function (arg1 : System.Address; arg2 : System.Address) return dbus_types_h.dbus_bool_t;
+   pragma Convention (C, DBusAddWatchFunction);  -- ../dbus/dbus-connection.h:91
 
-   type DBusWatchToggledFunction is access procedure (arg1 : System.Address; arg2 : System.Address);  -- ../dbus/dbus-connection.h:96:24
+   type DBusWatchToggledFunction is access procedure (arg1 : System.Address; arg2 : System.Address);
+   pragma Convention (C, DBusWatchToggledFunction);  -- ../dbus/dbus-connection.h:97
 
-   type DBusRemoveWatchFunction is access procedure (arg1 : System.Address; arg2 : System.Address);  -- ../dbus/dbus-connection.h:102:24
+   type DBusRemoveWatchFunction is access procedure (arg1 : System.Address; arg2 : System.Address);
+   pragma Convention (C, DBusRemoveWatchFunction);  -- ../dbus/dbus-connection.h:103
 
-   type DBusAddTimeoutFunction is access function (arg1 : System.Address; arg2 : System.Address) return dbus_types_h.dbus_bool_t;  -- ../dbus/dbus-connection.h:109:24
+   type DBusAddTimeoutFunction is access function (arg1 : System.Address; arg2 : System.Address) return dbus_types_h.dbus_bool_t;
+   pragma Convention (C, DBusAddTimeoutFunction);  -- ../dbus/dbus-connection.h:110
 
-   type DBusTimeoutToggledFunction is access procedure (arg1 : System.Address; arg2 : System.Address);  -- ../dbus/dbus-connection.h:116:24
+   type DBusTimeoutToggledFunction is access procedure (arg1 : System.Address; arg2 : System.Address);
+   pragma Convention (C, DBusTimeoutToggledFunction);  -- ../dbus/dbus-connection.h:117
 
-   type DBusRemoveTimeoutFunction is access procedure (arg1 : System.Address; arg2 : System.Address);  -- ../dbus/dbus-connection.h:122:24
+   type DBusRemoveTimeoutFunction is access procedure (arg1 : System.Address; arg2 : System.Address);
+   pragma Convention (C, DBusRemoveTimeoutFunction);  -- ../dbus/dbus-connection.h:123
 
    type DBusDispatchStatusFunction is access procedure
         (arg1 : System.Address;
          arg2 : DBusDispatchStatus;
-         arg3 : System.Address);  -- ../dbus/dbus-connection.h:127:24
+         arg3 : System.Address);
+   pragma Convention (C, DBusDispatchStatusFunction);  -- ../dbus/dbus-connection.h:128
 
-   type DBusWakeupMainFunction is access procedure (arg1 : System.Address);  -- ../dbus/dbus-connection.h:134:24
+   type DBusWakeupMainFunction is access procedure (arg1 : System.Address);
+   pragma Convention (C, DBusWakeupMainFunction);  -- ../dbus/dbus-connection.h:135
 
    type DBusAllowUnixUserFunction is access function
         (arg1 : System.Address;
          arg2 : unsigned_long;
-         arg3 : System.Address) return dbus_types_h.dbus_bool_t;  -- ../dbus/dbus-connection.h:142:24
+         arg3 : System.Address) return dbus_types_h.dbus_bool_t;
+   pragma Convention (C, DBusAllowUnixUserFunction);  -- ../dbus/dbus-connection.h:143
 
    type DBusAllowWindowsUserFunction is access function
         (arg1 : System.Address;
          arg2 : Interfaces.C.Strings.chars_ptr;
-         arg3 : System.Address) return dbus_types_h.dbus_bool_t;  -- ../dbus/dbus-connection.h:152:24
+         arg3 : System.Address) return dbus_types_h.dbus_bool_t;
+   pragma Convention (C, DBusAllowWindowsUserFunction);  -- ../dbus/dbus-connection.h:153
 
-   type DBusPendingCallNotifyFunction is access procedure (arg1 : System.Address; arg2 : System.Address);  -- ../dbus/dbus-connection.h:161:17
+   type DBusPendingCallNotifyFunction is access procedure (arg1 : System.Address; arg2 : System.Address);
+   pragma Convention (C, DBusPendingCallNotifyFunction);  -- ../dbus/dbus-connection.h:162
 
    type DBusHandleMessageFunction is access function
         (arg1 : System.Address;
          arg2 : System.Address;
-         arg3 : System.Address) return dbus_shared_h.DBusHandlerResult;  -- ../dbus/dbus-connection.h:168:30
+         arg3 : System.Address) return dbus_shared_h.DBusHandlerResult;
+   pragma Convention (C, DBusHandleMessageFunction);  -- ../dbus/dbus-connection.h:169
 
-   function dbus_connection_open (arg1 : Interfaces.C.Strings.chars_ptr; arg2 : access dbus_errors_h.DBusError) return System.Address;  -- ../dbus/dbus-connection.h:172:20
+   function dbus_connection_open (address : Interfaces.C.Strings.chars_ptr; error : access dbus_errors_h.DBusError) return System.Address;  -- ../dbus/dbus-connection.h:173
    pragma Import (C, dbus_connection_open, "dbus_connection_open");
 
-   function dbus_connection_open_private (arg1 : Interfaces.C.Strings.chars_ptr; arg2 : access dbus_errors_h.DBusError) return System.Address;  -- ../dbus/dbus-connection.h:174:20
+   function dbus_connection_open_private (address : Interfaces.C.Strings.chars_ptr; error : access dbus_errors_h.DBusError) return System.Address;  -- ../dbus/dbus-connection.h:176
    pragma Import (C, dbus_connection_open_private, "dbus_connection_open_private");
 
-   function dbus_connection_ref (arg1 : System.Address) return System.Address;  -- ../dbus/dbus-connection.h:176:20
+   function dbus_connection_ref (connection : System.Address) return System.Address;  -- ../dbus/dbus-connection.h:179
    pragma Import (C, dbus_connection_ref, "dbus_connection_ref");
 
-   procedure dbus_connection_unref (arg1 : System.Address);  -- ../dbus/dbus-connection.h:177:20
+   procedure dbus_connection_unref (connection : System.Address);  -- ../dbus/dbus-connection.h:181
    pragma Import (C, dbus_connection_unref, "dbus_connection_unref");
 
-   procedure dbus_connection_close (arg1 : System.Address);  -- ../dbus/dbus-connection.h:178:20
+   procedure dbus_connection_close (connection : System.Address);  -- ../dbus/dbus-connection.h:183
    pragma Import (C, dbus_connection_close, "dbus_connection_close");
 
-   function dbus_connection_get_is_connected (arg1 : System.Address) return dbus_types_h.dbus_bool_t;  -- ../dbus/dbus-connection.h:179:20
+   function dbus_connection_get_is_connected (connection : System.Address) return dbus_types_h.dbus_bool_t;  -- ../dbus/dbus-connection.h:185
    pragma Import (C, dbus_connection_get_is_connected, "dbus_connection_get_is_connected");
 
-   function dbus_connection_get_is_authenticated (arg1 : System.Address) return dbus_types_h.dbus_bool_t;  -- ../dbus/dbus-connection.h:180:20
+   function dbus_connection_get_is_authenticated (connection : System.Address) return dbus_types_h.dbus_bool_t;  -- ../dbus/dbus-connection.h:187
    pragma Import (C, dbus_connection_get_is_authenticated, "dbus_connection_get_is_authenticated");
 
-   function dbus_connection_get_is_anonymous (arg1 : System.Address) return dbus_types_h.dbus_bool_t;  -- ../dbus/dbus-connection.h:181:20
+   function dbus_connection_get_is_anonymous (connection : System.Address) return dbus_types_h.dbus_bool_t;  -- ../dbus/dbus-connection.h:189
    pragma Import (C, dbus_connection_get_is_anonymous, "dbus_connection_get_is_anonymous");
 
-   function dbus_connection_get_server_id (arg1 : System.Address) return Interfaces.C.Strings.chars_ptr;  -- ../dbus/dbus-connection.h:182:20
+   function dbus_connection_get_server_id (connection : System.Address) return Interfaces.C.Strings.chars_ptr;  -- ../dbus/dbus-connection.h:191
    pragma Import (C, dbus_connection_get_server_id, "dbus_connection_get_server_id");
 
-   procedure dbus_connection_set_exit_on_disconnect (arg1 : System.Address; arg2 : dbus_types_h.dbus_bool_t);  -- ../dbus/dbus-connection.h:183:20
+   function dbus_connection_can_send_type (connection : System.Address; c_type : int) return dbus_types_h.dbus_bool_t;  -- ../dbus/dbus-connection.h:193
+   pragma Import (C, dbus_connection_can_send_type, "dbus_connection_can_send_type");
+
+   procedure dbus_connection_set_exit_on_disconnect (connection : System.Address; exit_on_disconnect : dbus_types_h.dbus_bool_t);  -- ../dbus/dbus-connection.h:197
    pragma Import (C, dbus_connection_set_exit_on_disconnect, "dbus_connection_set_exit_on_disconnect");
 
-   procedure dbus_connection_flush (arg1 : System.Address);  -- ../dbus/dbus-connection.h:185:20
+   procedure dbus_connection_flush (connection : System.Address);  -- ../dbus/dbus-connection.h:200
    pragma Import (C, dbus_connection_flush, "dbus_connection_flush");
 
-   function dbus_connection_read_write_dispatch (arg1 : System.Address; arg2 : int) return dbus_types_h.dbus_bool_t;  -- ../dbus/dbus-connection.h:186:20
+   function dbus_connection_read_write_dispatch (connection : System.Address; timeout_milliseconds : int) return dbus_types_h.dbus_bool_t;  -- ../dbus/dbus-connection.h:202
    pragma Import (C, dbus_connection_read_write_dispatch, "dbus_connection_read_write_dispatch");
 
-   function dbus_connection_read_write (arg1 : System.Address; arg2 : int) return dbus_types_h.dbus_bool_t;  -- ../dbus/dbus-connection.h:188:20
+   function dbus_connection_read_write (connection : System.Address; timeout_milliseconds : int) return dbus_types_h.dbus_bool_t;  -- ../dbus/dbus-connection.h:205
    pragma Import (C, dbus_connection_read_write, "dbus_connection_read_write");
 
-   function dbus_connection_borrow_message (arg1 : System.Address) return System.Address;  -- ../dbus/dbus-connection.h:190:20
+   function dbus_connection_borrow_message (connection : System.Address) return System.Address;  -- ../dbus/dbus-connection.h:208
    pragma Import (C, dbus_connection_borrow_message, "dbus_connection_borrow_message");
 
-   procedure dbus_connection_return_message (arg1 : System.Address; arg2 : System.Address);  -- ../dbus/dbus-connection.h:191:20
+   procedure dbus_connection_return_message (connection : System.Address; message : System.Address);  -- ../dbus/dbus-connection.h:210
    pragma Import (C, dbus_connection_return_message, "dbus_connection_return_message");
 
-   procedure dbus_connection_steal_borrowed_message (arg1 : System.Address; arg2 : System.Address);  -- ../dbus/dbus-connection.h:193:20
+   procedure dbus_connection_steal_borrowed_message (connection : System.Address; message : System.Address);  -- ../dbus/dbus-connection.h:213
    pragma Import (C, dbus_connection_steal_borrowed_message, "dbus_connection_steal_borrowed_message");
 
-   function dbus_connection_pop_message (arg1 : System.Address) return System.Address;  -- ../dbus/dbus-connection.h:195:20
+   function dbus_connection_pop_message (connection : System.Address) return System.Address;  -- ../dbus/dbus-connection.h:216
    pragma Import (C, dbus_connection_pop_message, "dbus_connection_pop_message");
 
-   function dbus_connection_get_dispatch_status (arg1 : System.Address) return DBusDispatchStatus;  -- ../dbus/dbus-connection.h:196:20
+   function dbus_connection_get_dispatch_status (connection : System.Address) return DBusDispatchStatus;  -- ../dbus/dbus-connection.h:218
    pragma Import (C, dbus_connection_get_dispatch_status, "dbus_connection_get_dispatch_status");
 
-   function dbus_connection_dispatch (arg1 : System.Address) return DBusDispatchStatus;  -- ../dbus/dbus-connection.h:197:20
+   function dbus_connection_dispatch (connection : System.Address) return DBusDispatchStatus;  -- ../dbus/dbus-connection.h:220
    pragma Import (C, dbus_connection_dispatch, "dbus_connection_dispatch");
 
-   function dbus_connection_has_messages_to_send (arg1 : System.Address) return dbus_types_h.dbus_bool_t;  -- ../dbus/dbus-connection.h:198:20
+   function dbus_connection_has_messages_to_send (connection : System.Address) return dbus_types_h.dbus_bool_t;  -- ../dbus/dbus-connection.h:222
    pragma Import (C, dbus_connection_has_messages_to_send, "dbus_connection_has_messages_to_send");
 
    function dbus_connection_send
-     (arg1 : System.Address;
-      arg2 : System.Address;
-      arg3 : access dbus_arch_deps_h.dbus_uint32_t) return dbus_types_h.dbus_bool_t;  -- ../dbus/dbus-connection.h:199:20
+     (connection : System.Address;
+      message : System.Address;
+      client_serial : access dbus_arch_deps_h.dbus_uint32_t) return dbus_types_h.dbus_bool_t;  -- ../dbus/dbus-connection.h:224
    pragma Import (C, dbus_connection_send, "dbus_connection_send");
 
    function dbus_connection_send_with_reply
-     (arg1 : System.Address;
-      arg2 : System.Address;
-      arg3 : System.Address;
-      arg4 : int) return dbus_types_h.dbus_bool_t;  -- ../dbus/dbus-connection.h:202:20
+     (connection : System.Address;
+      message : System.Address;
+      pending_return : System.Address;
+      timeout_milliseconds : int) return dbus_types_h.dbus_bool_t;  -- ../dbus/dbus-connection.h:228
    pragma Import (C, dbus_connection_send_with_reply, "dbus_connection_send_with_reply");
 
    function dbus_connection_send_with_reply_and_block
-     (arg1 : System.Address;
-      arg2 : System.Address;
-      arg3 : int;
-      arg4 : access dbus_errors_h.DBusError) return System.Address;  -- ../dbus/dbus-connection.h:206:20
+     (connection : System.Address;
+      message : System.Address;
+      timeout_milliseconds : int;
+      error : access dbus_errors_h.DBusError) return System.Address;  -- ../dbus/dbus-connection.h:233
    pragma Import (C, dbus_connection_send_with_reply_and_block, "dbus_connection_send_with_reply_and_block");
 
    function dbus_connection_set_watch_functions
-     (arg1 : System.Address;
-      arg2 : access function (arg1 : System.Address; arg2 : System.Address) return dbus_types_h.dbus_bool_t;
-      arg3 : access procedure (arg1 : System.Address; arg2 : System.Address);
-      arg4 : access procedure (arg1 : System.Address; arg2 : System.Address);
-      arg5 : System.Address;
-      arg6 : access procedure (arg1 : System.Address)) return dbus_types_h.dbus_bool_t;  -- ../dbus/dbus-connection.h:210:20
+     (connection : System.Address;
+      add_function : DBusAddWatchFunction;
+      remove_function : DBusRemoveWatchFunction;
+      toggled_function : DBusWatchToggledFunction;
+      data : System.Address;
+      free_data_function : dbus_memory_h.DBusFreeFunction) return dbus_types_h.dbus_bool_t;  -- ../dbus/dbus-connection.h:238
    pragma Import (C, dbus_connection_set_watch_functions, "dbus_connection_set_watch_functions");
 
    function dbus_connection_set_timeout_functions
-     (arg1 : System.Address;
-      arg2 : access function (arg1 : System.Address; arg2 : System.Address) return dbus_types_h.dbus_bool_t;
-      arg3 : access procedure (arg1 : System.Address; arg2 : System.Address);
-      arg4 : access procedure (arg1 : System.Address; arg2 : System.Address);
-      arg5 : System.Address;
-      arg6 : access procedure (arg1 : System.Address)) return dbus_types_h.dbus_bool_t;  -- ../dbus/dbus-connection.h:216:20
+     (connection : System.Address;
+      add_function : DBusAddTimeoutFunction;
+      remove_function : DBusRemoveTimeoutFunction;
+      toggled_function : DBusTimeoutToggledFunction;
+      data : System.Address;
+      free_data_function : dbus_memory_h.DBusFreeFunction) return dbus_types_h.dbus_bool_t;  -- ../dbus/dbus-connection.h:245
    pragma Import (C, dbus_connection_set_timeout_functions, "dbus_connection_set_timeout_functions");
 
    procedure dbus_connection_set_wakeup_main_function
-     (arg1 : System.Address;
-      arg2 : access procedure (arg1 : System.Address);
-      arg3 : System.Address;
-      arg4 : access procedure (arg1 : System.Address));  -- ../dbus/dbus-connection.h:222:20
+     (connection : System.Address;
+      wakeup_main_function : DBusWakeupMainFunction;
+      data : System.Address;
+      free_data_function : dbus_memory_h.DBusFreeFunction);  -- ../dbus/dbus-connection.h:252
    pragma Import (C, dbus_connection_set_wakeup_main_function, "dbus_connection_set_wakeup_main_function");
 
    procedure dbus_connection_set_dispatch_status_function
-     (arg1 : System.Address;
-      arg2 : access procedure
-        (arg1 : System.Address;
-         arg2 : DBusDispatchStatus;
-         arg3 : System.Address);
-      arg3 : System.Address;
-      arg4 : access procedure (arg1 : System.Address));  -- ../dbus/dbus-connection.h:226:20
+     (connection : System.Address;
+      c_function : DBusDispatchStatusFunction;
+      data : System.Address;
+      free_data_function : dbus_memory_h.DBusFreeFunction);  -- ../dbus/dbus-connection.h:257
    pragma Import (C, dbus_connection_set_dispatch_status_function, "dbus_connection_set_dispatch_status_function");
 
-   function dbus_connection_get_unix_user (arg1 : System.Address; arg2 : access unsigned_long) return dbus_types_h.dbus_bool_t;  -- ../dbus/dbus-connection.h:230:20
+   function dbus_connection_get_unix_user (connection : System.Address; uid : access unsigned_long) return dbus_types_h.dbus_bool_t;  -- ../dbus/dbus-connection.h:262
    pragma Import (C, dbus_connection_get_unix_user, "dbus_connection_get_unix_user");
 
-   function dbus_connection_get_unix_process_id (arg1 : System.Address; arg2 : access unsigned_long) return dbus_types_h.dbus_bool_t;  -- ../dbus/dbus-connection.h:232:20
+   function dbus_connection_get_unix_process_id (connection : System.Address; pid : access unsigned_long) return dbus_types_h.dbus_bool_t;  -- ../dbus/dbus-connection.h:265
    pragma Import (C, dbus_connection_get_unix_process_id, "dbus_connection_get_unix_process_id");
 
    function dbus_connection_get_adt_audit_session_data
-     (arg1 : System.Address;
-      arg2 : System.Address;
-      arg3 : access dbus_arch_deps_h.dbus_int32_t) return dbus_types_h.dbus_bool_t;  -- ../dbus/dbus-connection.h:234:20
+     (connection : System.Address;
+      data : System.Address;
+      data_size : access dbus_arch_deps_h.dbus_int32_t) return dbus_types_h.dbus_bool_t;  -- ../dbus/dbus-connection.h:268
    pragma Import (C, dbus_connection_get_adt_audit_session_data, "dbus_connection_get_adt_audit_session_data");
 
    procedure dbus_connection_set_unix_user_function
-     (arg1 : System.Address;
-      arg2 : access function
-        (arg1 : System.Address;
-         arg2 : unsigned_long;
-         arg3 : System.Address) return dbus_types_h.dbus_bool_t;
-      arg3 : System.Address;
-      arg4 : access procedure (arg1 : System.Address));  -- ../dbus/dbus-connection.h:237:20
+     (connection : System.Address;
+      c_function : DBusAllowUnixUserFunction;
+      data : System.Address;
+      free_data_function : dbus_memory_h.DBusFreeFunction);  -- ../dbus/dbus-connection.h:272
    pragma Import (C, dbus_connection_set_unix_user_function, "dbus_connection_set_unix_user_function");
 
-   function dbus_connection_get_windows_user (arg1 : System.Address; arg2 : System.Address) return dbus_types_h.dbus_bool_t;  -- ../dbus/dbus-connection.h:241:20
+   function dbus_connection_get_windows_user (connection : System.Address; windows_sid_p : System.Address) return dbus_types_h.dbus_bool_t;  -- ../dbus/dbus-connection.h:277
    pragma Import (C, dbus_connection_get_windows_user, "dbus_connection_get_windows_user");
 
    procedure dbus_connection_set_windows_user_function
-     (arg1 : System.Address;
-      arg2 : access function
-        (arg1 : System.Address;
-         arg2 : Interfaces.C.Strings.chars_ptr;
-         arg3 : System.Address) return dbus_types_h.dbus_bool_t;
-      arg3 : System.Address;
-      arg4 : access procedure (arg1 : System.Address));  -- ../dbus/dbus-connection.h:243:20
+     (connection : System.Address;
+      c_function : DBusAllowWindowsUserFunction;
+      data : System.Address;
+      free_data_function : dbus_memory_h.DBusFreeFunction);  -- ../dbus/dbus-connection.h:280
    pragma Import (C, dbus_connection_set_windows_user_function, "dbus_connection_set_windows_user_function");
 
-   procedure dbus_connection_set_allow_anonymous (arg1 : System.Address; arg2 : dbus_types_h.dbus_bool_t);  -- ../dbus/dbus-connection.h:247:20
+   procedure dbus_connection_set_allow_anonymous (connection : System.Address; value : dbus_types_h.dbus_bool_t);  -- ../dbus/dbus-connection.h:285
    pragma Import (C, dbus_connection_set_allow_anonymous, "dbus_connection_set_allow_anonymous");
 
-   procedure dbus_connection_set_route_peer_messages (arg1 : System.Address; arg2 : dbus_types_h.dbus_bool_t);  -- ../dbus/dbus-connection.h:249:20
+   procedure dbus_connection_set_route_peer_messages (connection : System.Address; value : dbus_types_h.dbus_bool_t);  -- ../dbus/dbus-connection.h:288
    pragma Import (C, dbus_connection_set_route_peer_messages, "dbus_connection_set_route_peer_messages");
 
    function dbus_connection_add_filter
-     (arg1 : System.Address;
-      arg2 : access function
-        (arg1 : System.Address;
-         arg2 : System.Address;
-         arg3 : System.Address) return dbus_shared_h.DBusHandlerResult;
-      arg3 : System.Address;
-      arg4 : access procedure (arg1 : System.Address)) return dbus_types_h.dbus_bool_t;  -- ../dbus/dbus-connection.h:255:13
+     (connection : System.Address;
+      c_function : DBusHandleMessageFunction;
+      user_data : System.Address;
+      free_data_function : dbus_memory_h.DBusFreeFunction) return dbus_types_h.dbus_bool_t;  -- ../dbus/dbus-connection.h:295
    pragma Import (C, dbus_connection_add_filter, "dbus_connection_add_filter");
 
    procedure dbus_connection_remove_filter
-     (arg1 : System.Address;
-      arg2 : access function
-        (arg1 : System.Address;
-         arg2 : System.Address;
-         arg3 : System.Address) return dbus_shared_h.DBusHandlerResult;
-      arg3 : System.Address);  -- ../dbus/dbus-connection.h:259:13
+     (connection : System.Address;
+      c_function : DBusHandleMessageFunction;
+      user_data : System.Address);  -- ../dbus/dbus-connection.h:300
    pragma Import (C, dbus_connection_remove_filter, "dbus_connection_remove_filter");
 
-   function dbus_connection_allocate_data_slot (arg1 : access dbus_arch_deps_h.dbus_int32_t) return dbus_types_h.dbus_bool_t;  -- ../dbus/dbus-connection.h:265:13
+   function dbus_connection_allocate_data_slot (slot_p : access dbus_arch_deps_h.dbus_int32_t) return dbus_types_h.dbus_bool_t;  -- ../dbus/dbus-connection.h:307
    pragma Import (C, dbus_connection_allocate_data_slot, "dbus_connection_allocate_data_slot");
 
-   procedure dbus_connection_free_data_slot (arg1 : access dbus_arch_deps_h.dbus_int32_t);  -- ../dbus/dbus-connection.h:266:13
+   procedure dbus_connection_free_data_slot (slot_p : access dbus_arch_deps_h.dbus_int32_t);  -- ../dbus/dbus-connection.h:309
    pragma Import (C, dbus_connection_free_data_slot, "dbus_connection_free_data_slot");
 
    function dbus_connection_set_data
-     (arg1 : System.Address;
-      arg2 : dbus_arch_deps_h.dbus_int32_t;
-      arg3 : System.Address;
-      arg4 : access procedure (arg1 : System.Address)) return dbus_types_h.dbus_bool_t;  -- ../dbus/dbus-connection.h:267:13
+     (connection : System.Address;
+      slot : dbus_arch_deps_h.dbus_int32_t;
+      data : System.Address;
+      free_data_func : dbus_memory_h.DBusFreeFunction) return dbus_types_h.dbus_bool_t;  -- ../dbus/dbus-connection.h:311
    pragma Import (C, dbus_connection_set_data, "dbus_connection_set_data");
 
-   function dbus_connection_get_data (arg1 : System.Address; arg2 : dbus_arch_deps_h.dbus_int32_t) return System.Address;  -- ../dbus/dbus-connection.h:271:13
+   function dbus_connection_get_data (connection : System.Address; slot : dbus_arch_deps_h.dbus_int32_t) return System.Address;  -- ../dbus/dbus-connection.h:316
    pragma Import (C, dbus_connection_get_data, "dbus_connection_get_data");
 
-   procedure dbus_connection_set_change_sigpipe (arg1 : dbus_types_h.dbus_bool_t);  -- ../dbus/dbus-connection.h:274:13
+   procedure dbus_connection_set_change_sigpipe (will_modify_sigpipe : dbus_types_h.dbus_bool_t);  -- ../dbus/dbus-connection.h:320
    pragma Import (C, dbus_connection_set_change_sigpipe, "dbus_connection_set_change_sigpipe");
 
-   procedure dbus_connection_set_max_message_size (arg1 : System.Address; arg2 : long);  -- ../dbus/dbus-connection.h:276:6
+   procedure dbus_connection_set_max_message_size (connection : System.Address; size : long);  -- ../dbus/dbus-connection.h:323
    pragma Import (C, dbus_connection_set_max_message_size, "dbus_connection_set_max_message_size");
 
-   function dbus_connection_get_max_message_size (arg1 : System.Address) return long;  -- ../dbus/dbus-connection.h:278:6
+   function dbus_connection_get_max_message_size (connection : System.Address) return long;  -- ../dbus/dbus-connection.h:326
    pragma Import (C, dbus_connection_get_max_message_size, "dbus_connection_get_max_message_size");
 
-   procedure dbus_connection_set_max_received_size (arg1 : System.Address; arg2 : long);  -- ../dbus/dbus-connection.h:279:6
+   procedure dbus_connection_set_max_received_size (connection : System.Address; size : long);  -- ../dbus/dbus-connection.h:328
    pragma Import (C, dbus_connection_set_max_received_size, "dbus_connection_set_max_received_size");
 
-   function dbus_connection_get_max_received_size (arg1 : System.Address) return long;  -- ../dbus/dbus-connection.h:281:6
+   function dbus_connection_get_max_received_size (connection : System.Address) return long;  -- ../dbus/dbus-connection.h:331
    pragma Import (C, dbus_connection_get_max_received_size, "dbus_connection_get_max_received_size");
 
-   function dbus_connection_get_outgoing_size (arg1 : System.Address) return long;  -- ../dbus/dbus-connection.h:282:6
+   procedure dbus_connection_set_max_message_unix_fds (connection : System.Address; n : long);  -- ../dbus/dbus-connection.h:334
+   pragma Import (C, dbus_connection_set_max_message_unix_fds, "dbus_connection_set_max_message_unix_fds");
+
+   function dbus_connection_get_max_message_unix_fds (connection : System.Address) return long;  -- ../dbus/dbus-connection.h:337
+   pragma Import (C, dbus_connection_get_max_message_unix_fds, "dbus_connection_get_max_message_unix_fds");
+
+   procedure dbus_connection_set_max_received_unix_fds (connection : System.Address; n : long);  -- ../dbus/dbus-connection.h:339
+   pragma Import (C, dbus_connection_set_max_received_unix_fds, "dbus_connection_set_max_received_unix_fds");
+
+   function dbus_connection_get_max_received_unix_fds (connection : System.Address) return long;  -- ../dbus/dbus-connection.h:342
+   pragma Import (C, dbus_connection_get_max_received_unix_fds, "dbus_connection_get_max_received_unix_fds");
+
+   function dbus_connection_get_outgoing_size (connection : System.Address) return long;  -- ../dbus/dbus-connection.h:345
    pragma Import (C, dbus_connection_get_outgoing_size, "dbus_connection_get_outgoing_size");
 
-   function dbus_connection_preallocate_send (arg1 : System.Address) return System.Address;  -- ../dbus/dbus-connection.h:284:23
+   function dbus_connection_get_outgoing_unix_fds (connection : System.Address) return long;  -- ../dbus/dbus-connection.h:347
+   pragma Import (C, dbus_connection_get_outgoing_unix_fds, "dbus_connection_get_outgoing_unix_fds");
+
+   function dbus_connection_preallocate_send (connection : System.Address) return System.Address;  -- ../dbus/dbus-connection.h:350
    pragma Import (C, dbus_connection_preallocate_send, "dbus_connection_preallocate_send");
 
-   procedure dbus_connection_free_preallocated_send (arg1 : System.Address; arg2 : System.Address);  -- ../dbus/dbus-connection.h:285:23
+   procedure dbus_connection_free_preallocated_send (connection : System.Address; preallocated : System.Address);  -- ../dbus/dbus-connection.h:352
    pragma Import (C, dbus_connection_free_preallocated_send, "dbus_connection_free_preallocated_send");
 
    procedure dbus_connection_send_preallocated
-     (arg1 : System.Address;
-      arg2 : System.Address;
-      arg3 : System.Address;
-      arg4 : access dbus_arch_deps_h.dbus_uint32_t);  -- ../dbus/dbus-connection.h:287:23
+     (connection : System.Address;
+      preallocated : System.Address;
+      message : System.Address;
+      client_serial : access dbus_arch_deps_h.dbus_uint32_t);  -- ../dbus/dbus-connection.h:355
    pragma Import (C, dbus_connection_send_preallocated, "dbus_connection_send_preallocated");
 
-   type DBusObjectPathUnregisterFunction is access procedure (arg1 : System.Address; arg2 : System.Address);  -- ../dbus/dbus-connection.h:299:30
+   type DBusObjectPathUnregisterFunction is access procedure (arg1 : System.Address; arg2 : System.Address);
+   pragma Convention (C, DBusObjectPathUnregisterFunction);  -- ../dbus/dbus-connection.h:367
 
    type DBusObjectPathMessageFunction is access function
         (arg1 : System.Address;
          arg2 : System.Address;
-         arg3 : System.Address) return dbus_shared_h.DBusHandlerResult;  -- ../dbus/dbus-connection.h:306:30
-
-   --  XXX: Fix 'wrong convention' misunderstandings with FSF gnat-4.6 and gnat-4.9.
-   --       See also GNAT RM, section 8.17 'Conventions and Anonymous Access Types'.
-   type INTERNALPadFunction is access procedure (arg1 : System.Address);
+         arg3 : System.Address) return dbus_shared_h.DBusHandlerResult;
+   pragma Convention (C, DBusObjectPathMessageFunction);  -- ../dbus/dbus-connection.h:374
 
    type DBusObjectPathVTable is record
-      unregister_function : DBusObjectPathUnregisterFunction;  -- ../dbus/dbus-connection.h:318:38
-      message_function : DBusObjectPathMessageFunction;  -- ../dbus/dbus-connection.h:319:38
-      dbus_internal_pad1 : INTERNALPadFunction;  -- ../dbus/dbus-connection.h:321:11
-      dbus_internal_pad2 : INTERNALPadFunction;  -- ../dbus/dbus-connection.h:322:11
-      dbus_internal_pad3 : INTERNALPadFunction;  -- ../dbus/dbus-connection.h:323:11
-      dbus_internal_pad4 : INTERNALPadFunction;  -- ../dbus/dbus-connection.h:324:11
+      unregister_function : DBusObjectPathUnregisterFunction;  -- ../dbus/dbus-connection.h:386
+      message_function : DBusObjectPathMessageFunction;  -- ../dbus/dbus-connection.h:387
+      dbus_internal_pad1 : access procedure (arg1 : System.Address);  -- ../dbus/dbus-connection.h:389
+      dbus_internal_pad2 : access procedure (arg1 : System.Address);  -- ../dbus/dbus-connection.h:390
+      dbus_internal_pad3 : access procedure (arg1 : System.Address);  -- ../dbus/dbus-connection.h:391
+      dbus_internal_pad4 : access procedure (arg1 : System.Address);  -- ../dbus/dbus-connection.h:392
    end record;
-   pragma Convention (C_Pass_By_Copy, DBusObjectPathVTable);  -- ../dbus/dbus-connection.h:53:16
+   pragma Convention (C_Pass_By_Copy, DBusObjectPathVTable);  -- ../dbus/dbus-connection.h:384
 
    function dbus_connection_try_register_object_path
-     (arg1 : System.Address;
-      arg2 : Interfaces.C.Strings.chars_ptr;
-      arg3 : access constant DBusObjectPathVTable;
-      arg4 : System.Address;
-      arg5 : access dbus_errors_h.DBusError) return dbus_types_h.dbus_bool_t;  -- ../dbus/dbus-connection.h:327:13
+     (connection : System.Address;
+      path : Interfaces.C.Strings.chars_ptr;
+      vtable : access constant DBusObjectPathVTable;
+      user_data : System.Address;
+      error : access dbus_errors_h.DBusError) return dbus_types_h.dbus_bool_t;  -- ../dbus/dbus-connection.h:396
    pragma Import (C, dbus_connection_try_register_object_path, "dbus_connection_try_register_object_path");
 
    function dbus_connection_register_object_path
-     (arg1 : System.Address;
-      arg2 : Interfaces.C.Strings.chars_ptr;
-      arg3 : access constant DBusObjectPathVTable;
-      arg4 : System.Address) return dbus_types_h.dbus_bool_t;  -- ../dbus/dbus-connection.h:333:13
+     (connection : System.Address;
+      path : Interfaces.C.Strings.chars_ptr;
+      vtable : access constant DBusObjectPathVTable;
+      user_data : System.Address) return dbus_types_h.dbus_bool_t;  -- ../dbus/dbus-connection.h:403
    pragma Import (C, dbus_connection_register_object_path, "dbus_connection_register_object_path");
 
    function dbus_connection_try_register_fallback
-     (arg1 : System.Address;
-      arg2 : Interfaces.C.Strings.chars_ptr;
-      arg3 : access constant DBusObjectPathVTable;
-      arg4 : System.Address;
-      arg5 : access dbus_errors_h.DBusError) return dbus_types_h.dbus_bool_t;  -- ../dbus/dbus-connection.h:338:13
+     (connection : System.Address;
+      path : Interfaces.C.Strings.chars_ptr;
+      vtable : access constant DBusObjectPathVTable;
+      user_data : System.Address;
+      error : access dbus_errors_h.DBusError) return dbus_types_h.dbus_bool_t;  -- ../dbus/dbus-connection.h:409
    pragma Import (C, dbus_connection_try_register_fallback, "dbus_connection_try_register_fallback");
 
    function dbus_connection_register_fallback
-     (arg1 : System.Address;
-      arg2 : Interfaces.C.Strings.chars_ptr;
-      arg3 : access constant DBusObjectPathVTable;
-      arg4 : System.Address) return dbus_types_h.dbus_bool_t;  -- ../dbus/dbus-connection.h:344:13
+     (connection : System.Address;
+      path : Interfaces.C.Strings.chars_ptr;
+      vtable : access constant DBusObjectPathVTable;
+      user_data : System.Address) return dbus_types_h.dbus_bool_t;  -- ../dbus/dbus-connection.h:416
    pragma Import (C, dbus_connection_register_fallback, "dbus_connection_register_fallback");
 
-   function dbus_connection_unregister_object_path (arg1 : System.Address; arg2 : Interfaces.C.Strings.chars_ptr) return dbus_types_h.dbus_bool_t;  -- ../dbus/dbus-connection.h:348:13
+   function dbus_connection_unregister_object_path (connection : System.Address; path : Interfaces.C.Strings.chars_ptr) return dbus_types_h.dbus_bool_t;  -- ../dbus/dbus-connection.h:421
    pragma Import (C, dbus_connection_unregister_object_path, "dbus_connection_unregister_object_path");
 
    function dbus_connection_get_object_path_data
-     (arg1 : System.Address;
-      arg2 : Interfaces.C.Strings.chars_ptr;
-      arg3 : System.Address) return dbus_types_h.dbus_bool_t;  -- ../dbus/dbus-connection.h:351:13
+     (connection : System.Address;
+      path : Interfaces.C.Strings.chars_ptr;
+      data_p : System.Address) return dbus_types_h.dbus_bool_t;  -- ../dbus/dbus-connection.h:425
    pragma Import (C, dbus_connection_get_object_path_data, "dbus_connection_get_object_path_data");
 
    function dbus_connection_list_registered
-     (arg1 : System.Address;
-      arg2 : Interfaces.C.Strings.chars_ptr;
-      arg3 : System.Address) return dbus_types_h.dbus_bool_t;  -- ../dbus/dbus-connection.h:355:13
+     (connection : System.Address;
+      parent_path : Interfaces.C.Strings.chars_ptr;
+      child_entries : System.Address) return dbus_types_h.dbus_bool_t;  -- ../dbus/dbus-connection.h:430
    pragma Import (C, dbus_connection_list_registered, "dbus_connection_list_registered");
 
-   function dbus_connection_get_unix_fd (arg1 : System.Address; arg2 : access int) return dbus_types_h.dbus_bool_t;  -- ../dbus/dbus-connection.h:359:13
+   function dbus_connection_get_unix_fd (connection : System.Address; fd : access int) return dbus_types_h.dbus_bool_t;  -- ../dbus/dbus-connection.h:435
    pragma Import (C, dbus_connection_get_unix_fd, "dbus_connection_get_unix_fd");
 
-   function dbus_connection_get_socket (arg1 : System.Address; arg2 : access int) return dbus_types_h.dbus_bool_t;  -- ../dbus/dbus-connection.h:361:13
+   function dbus_connection_get_socket (connection : System.Address; fd : access int) return dbus_types_h.dbus_bool_t;  -- ../dbus/dbus-connection.h:438
    pragma Import (C, dbus_connection_get_socket, "dbus_connection_get_socket");
 
-   function dbus_watch_get_fd (arg1 : System.Address) return int;  -- ../dbus/dbus-connection.h:373:21
+   function dbus_watch_get_fd (watch : System.Address) return int;  -- ../dbus/dbus-connection.h:451
    pragma Import (C, dbus_watch_get_fd, "dbus_watch_get_fd");
 
-   function dbus_watch_get_unix_fd (arg1 : System.Address) return int;  -- ../dbus/dbus-connection.h:376:14
+   function dbus_watch_get_unix_fd (watch : System.Address) return int;  -- ../dbus/dbus-connection.h:455
    pragma Import (C, dbus_watch_get_unix_fd, "dbus_watch_get_unix_fd");
 
-   function dbus_watch_get_socket (arg1 : System.Address) return int;  -- ../dbus/dbus-connection.h:377:14
+   function dbus_watch_get_socket (watch : System.Address) return int;  -- ../dbus/dbus-connection.h:457
    pragma Import (C, dbus_watch_get_socket, "dbus_watch_get_socket");
 
-   function dbus_watch_get_flags (arg1 : System.Address) return unsigned;  -- ../dbus/dbus-connection.h:378:14
+   function dbus_watch_get_flags (watch : System.Address) return unsigned;  -- ../dbus/dbus-connection.h:459
    pragma Import (C, dbus_watch_get_flags, "dbus_watch_get_flags");
 
-   function dbus_watch_get_data (arg1 : System.Address) return System.Address;  -- ../dbus/dbus-connection.h:379:14
+   function dbus_watch_get_data (watch : System.Address) return System.Address;  -- ../dbus/dbus-connection.h:461
    pragma Import (C, dbus_watch_get_data, "dbus_watch_get_data");
 
    procedure dbus_watch_set_data
-     (arg1 : System.Address;
-      arg2 : System.Address;
-      arg3 : access procedure (arg1 : System.Address));  -- ../dbus/dbus-connection.h:380:14
+     (watch : System.Address;
+      data : System.Address;
+      free_data_function : dbus_memory_h.DBusFreeFunction);  -- ../dbus/dbus-connection.h:463
    pragma Import (C, dbus_watch_set_data, "dbus_watch_set_data");
 
-   function dbus_watch_handle (arg1 : System.Address; arg2 : unsigned) return dbus_types_h.dbus_bool_t;  -- ../dbus/dbus-connection.h:383:14
+   function dbus_watch_handle (watch : System.Address; flags : unsigned) return dbus_types_h.dbus_bool_t;  -- ../dbus/dbus-connection.h:467
    pragma Import (C, dbus_watch_handle, "dbus_watch_handle");
 
-   function dbus_watch_get_enabled (arg1 : System.Address) return dbus_types_h.dbus_bool_t;  -- ../dbus/dbus-connection.h:385:14
+   function dbus_watch_get_enabled (watch : System.Address) return dbus_types_h.dbus_bool_t;  -- ../dbus/dbus-connection.h:470
    pragma Import (C, dbus_watch_get_enabled, "dbus_watch_get_enabled");
 
-   function dbus_timeout_get_interval (arg1 : System.Address) return int;  -- ../dbus/dbus-connection.h:394:13
+   function dbus_timeout_get_interval (timeout : System.Address) return int;  -- ../dbus/dbus-connection.h:480
    pragma Import (C, dbus_timeout_get_interval, "dbus_timeout_get_interval");
 
-   function dbus_timeout_get_data (arg1 : System.Address) return System.Address;  -- ../dbus/dbus-connection.h:395:13
+   function dbus_timeout_get_data (timeout : System.Address) return System.Address;  -- ../dbus/dbus-connection.h:482
    pragma Import (C, dbus_timeout_get_data, "dbus_timeout_get_data");
 
    procedure dbus_timeout_set_data
-     (arg1 : System.Address;
-      arg2 : System.Address;
-      arg3 : access procedure (arg1 : System.Address));  -- ../dbus/dbus-connection.h:396:13
+     (timeout : System.Address;
+      data : System.Address;
+      free_data_function : dbus_memory_h.DBusFreeFunction);  -- ../dbus/dbus-connection.h:484
    pragma Import (C, dbus_timeout_set_data, "dbus_timeout_set_data");
 
-   function dbus_timeout_handle (arg1 : System.Address) return dbus_types_h.dbus_bool_t;  -- ../dbus/dbus-connection.h:399:13
+   function dbus_timeout_handle (timeout : System.Address) return dbus_types_h.dbus_bool_t;  -- ../dbus/dbus-connection.h:488
    pragma Import (C, dbus_timeout_handle, "dbus_timeout_handle");
 
-   function dbus_timeout_get_enabled (arg1 : System.Address) return dbus_types_h.dbus_bool_t;  -- ../dbus/dbus-connection.h:400:13
+   function dbus_timeout_get_enabled (timeout : System.Address) return dbus_types_h.dbus_bool_t;  -- ../dbus/dbus-connection.h:490
    pragma Import (C, dbus_timeout_get_enabled, "dbus_timeout_get_enabled");
 
 end dbus_connection_h;
diff -Nru dbusada-0.3.3/thin/dbus_errors_h.ads dbusada-0.4.0/thin/dbus_errors_h.ads
--- dbusada-0.3.3/thin/dbus_errors_h.ads	2016-07-18 10:37:43.000000000 +0200
+++ dbusada-0.4.0/thin/dbus_errors_h.ads	2017-07-17 09:07:25.000000000 +0200
@@ -1,3 +1,4 @@
+pragma Ada_2005;
 pragma Style_Checks (Off);
 
 with Interfaces.C; use Interfaces.C;
@@ -10,44 +11,44 @@
 
    --  unsupported macro: DBUS_ERROR_INIT { NULL, NULL, TRUE, 0, 0, 0, 0, NULL }
    type DBusError is record
-      name : Interfaces.C.Strings.chars_ptr;  -- ../dbus/dbus-errors.h:49:15
-      message : Interfaces.C.Strings.chars_ptr;  -- ../dbus/dbus-errors.h:50:15
-      dummy1 : Extensions.Unsigned_1;  -- ../dbus/dbus-errors.h:52:16
-      dummy2 : Extensions.Unsigned_1;  -- ../dbus/dbus-errors.h:53:16
-      dummy3 : Extensions.Unsigned_1;  -- ../dbus/dbus-errors.h:54:16
-      dummy4 : Extensions.Unsigned_1;  -- ../dbus/dbus-errors.h:55:16
-      dummy5 : Extensions.Unsigned_1;  -- ../dbus/dbus-errors.h:56:16
-      padding1 : System.Address;  -- ../dbus/dbus-errors.h:58:9
+      name : Interfaces.C.Strings.chars_ptr;  -- ../dbus/dbus-errors.h:50
+      message : Interfaces.C.Strings.chars_ptr;  -- ../dbus/dbus-errors.h:51
+      dummy1 : Extensions.Unsigned_1;  -- ../dbus/dbus-errors.h:53
+      dummy2 : Extensions.Unsigned_1;  -- ../dbus/dbus-errors.h:54
+      dummy3 : Extensions.Unsigned_1;  -- ../dbus/dbus-errors.h:55
+      dummy4 : Extensions.Unsigned_1;  -- ../dbus/dbus-errors.h:56
+      dummy5 : Extensions.Unsigned_1;  -- ../dbus/dbus-errors.h:57
+      padding1 : System.Address;  -- ../dbus/dbus-errors.h:59
    end record;
    pragma Convention (C_Pass_By_Copy, DBusError);
-   pragma Pack (DBusError);  -- ../dbus/dbus-errors.h:42:16
+   pragma Pack (DBusError);  -- ../dbus/dbus-errors.h:48
 
-   procedure dbus_error_init (arg1 : access DBusError);  -- ../dbus/dbus-errors.h:63:13
+   procedure dbus_error_init (error : access DBusError);  -- ../dbus/dbus-errors.h:65
    pragma Import (C, dbus_error_init, "dbus_error_init");
 
-   procedure dbus_error_free (arg1 : access DBusError);  -- ../dbus/dbus-errors.h:64:13
+   procedure dbus_error_free (error : access DBusError);  -- ../dbus/dbus-errors.h:67
    pragma Import (C, dbus_error_free, "dbus_error_free");
 
    procedure dbus_set_error
-     (arg1 : access DBusError;
-      arg2 : Interfaces.C.Strings.chars_ptr;
-      arg3 : Interfaces.C.Strings.chars_ptr  -- , ...
-      );  -- ../dbus/dbus-errors.h:65:13
+     (error : access DBusError;
+      name : Interfaces.C.Strings.chars_ptr;
+      message : Interfaces.C.Strings.chars_ptr  -- , ...
+      );  -- ../dbus/dbus-errors.h:69
    pragma Import (C, dbus_set_error, "dbus_set_error");
 
    procedure dbus_set_error_const
-     (arg1 : access DBusError;
-      arg2 : Interfaces.C.Strings.chars_ptr;
-      arg3 : Interfaces.C.Strings.chars_ptr);  -- ../dbus/dbus-errors.h:69:13
+     (error : access DBusError;
+      name : Interfaces.C.Strings.chars_ptr;
+      message : Interfaces.C.Strings.chars_ptr);  -- ../dbus/dbus-errors.h:74
    pragma Import (C, dbus_set_error_const, "dbus_set_error_const");
 
-   procedure dbus_move_error (arg1 : access DBusError; arg2 : access DBusError);  -- ../dbus/dbus-errors.h:72:13
+   procedure dbus_move_error (src : access DBusError; dest : access DBusError);  -- ../dbus/dbus-errors.h:78
    pragma Import (C, dbus_move_error, "dbus_move_error");
 
-   function dbus_error_has_name (arg1 : access constant DBusError; arg2 : Interfaces.C.Strings.chars_ptr) return dbus_types_h.dbus_bool_t;  -- ../dbus/dbus-errors.h:74:13
+   function dbus_error_has_name (error : access constant DBusError; name : Interfaces.C.Strings.chars_ptr) return dbus_types_h.dbus_bool_t;  -- ../dbus/dbus-errors.h:81
    pragma Import (C, dbus_error_has_name, "dbus_error_has_name");
 
-   function dbus_error_is_set (arg1 : access constant DBusError) return dbus_types_h.dbus_bool_t;  -- ../dbus/dbus-errors.h:76:13
+   function dbus_error_is_set (error : access constant DBusError) return dbus_types_h.dbus_bool_t;  -- ../dbus/dbus-errors.h:84
    pragma Import (C, dbus_error_is_set, "dbus_error_is_set");
 
 end dbus_errors_h;
diff -Nru dbusada-0.3.3/thin/dbus_memory_h.ads dbusada-0.4.0/thin/dbus_memory_h.ads
--- dbusada-0.3.3/thin/dbus_memory_h.ads	2016-07-18 10:37:43.000000000 +0200
+++ dbusada-0.4.0/thin/dbus_memory_h.ads	2017-07-17 09:07:25.000000000 +0200
@@ -1,32 +1,34 @@
+pragma Ada_2005;
 pragma Style_Checks (Off);
-pragma Warnings (Off);
 
-with Interfaces.C; use Interfaces.C;
 with stddef_h;
 with System;
 
 package dbus_memory_h is
 
-   --  unsupported macro: dbus_new(type,count) ((type*)dbus_malloc (sizeof (type) * (count)));
-   --  unsupported macro: dbus_new0(type,count) ((type*)dbus_malloc0 (sizeof (type) * (count)));
-   function dbus_malloc (arg1 : stddef_h.size_t) return System.Address;  -- ../dbus/dbus-memory.h:40:7
+   --  arg-macro: function dbus_new (type, count)
+   --    return (type*)dbus_malloc (sizeof (type) * (count));
+   --  arg-macro: function dbus_new0 (type, count)
+   --    return (type*)dbus_malloc0 (sizeof (type) * (count));
+   function dbus_malloc (bytes : stddef_h.size_t) return System.Address;  -- ../dbus/dbus-memory.h:43
    pragma Import (C, dbus_malloc, "dbus_malloc");
 
-   function dbus_malloc0 (arg1 : stddef_h.size_t) return System.Address;  -- ../dbus/dbus-memory.h:41:7
+   function dbus_malloc0 (bytes : stddef_h.size_t) return System.Address;  -- ../dbus/dbus-memory.h:48
    pragma Import (C, dbus_malloc0, "dbus_malloc0");
 
-   function dbus_realloc (arg1 : System.Address; arg2 : stddef_h.size_t) return System.Address;  -- ../dbus/dbus-memory.h:42:7
+   function dbus_realloc (memory : System.Address; bytes : stddef_h.size_t) return System.Address;  -- ../dbus/dbus-memory.h:53
    pragma Import (C, dbus_realloc, "dbus_realloc");
 
-   procedure dbus_free (arg1 : System.Address);  -- ../dbus/dbus-memory.h:44:7
+   procedure dbus_free (memory : System.Address);  -- ../dbus/dbus-memory.h:56
    pragma Import (C, dbus_free, "dbus_free");
 
-   procedure dbus_free_string_array (arg1 : System.Address);  -- ../dbus/dbus-memory.h:49:6
+   procedure dbus_free_string_array (str_array : System.Address);  -- ../dbus/dbus-memory.h:62
    pragma Import (C, dbus_free_string_array, "dbus_free_string_array");
 
-   type DBusFreeFunction is access procedure (arg1 : System.Address);  -- ../dbus/dbus-memory.h:51:17
+   type DBusFreeFunction is access procedure (arg1 : System.Address);
+   pragma Convention (C, DBusFreeFunction);  -- ../dbus/dbus-memory.h:64
 
-   procedure dbus_shutdown;  -- ../dbus/dbus-memory.h:53:6
+   procedure dbus_shutdown;  -- ../dbus/dbus-memory.h:67
    pragma Import (C, dbus_shutdown, "dbus_shutdown");
 
 end dbus_memory_h;
diff -Nru dbusada-0.3.3/thin/dbus_message_h.ads dbusada-0.4.0/thin/dbus_message_h.ads
--- dbusada-0.3.3/thin/dbus_message_h.ads	2016-07-18 10:37:43.000000000 +0200
+++ dbusada-0.4.0/thin/dbus_message_h.ads	2017-07-17 09:07:25.000000000 +0200
@@ -1,3 +1,4 @@
+pragma Ada_2005;
 pragma Style_Checks (Off);
 
 with Interfaces.C; use Interfaces.C;
@@ -5,301 +6,313 @@
 with dbus_arch_deps_h;
 with Interfaces.C.Strings;
 with dbus_types_h;
-with stdarg_h;
 limited with dbus_errors_h;
+with dbus_memory_h;
 
 package dbus_message_h is
 
    --  skipped empty struct DBusMessage
 
    type DBusMessageIter is record
-      dummy1 : System.Address;  -- ../dbus/dbus-message.h:53:9
-      dummy2 : System.Address;  -- ../dbus/dbus-message.h:54:9
-      dummy3 : aliased dbus_arch_deps_h.dbus_uint32_t;  -- ../dbus/dbus-message.h:55:17
-      dummy4 : aliased int;  -- ../dbus/dbus-message.h:56:7
-      dummy5 : aliased int;  -- ../dbus/dbus-message.h:57:7
-      dummy6 : aliased int;  -- ../dbus/dbus-message.h:58:7
-      dummy7 : aliased int;  -- ../dbus/dbus-message.h:59:7
-      dummy8 : aliased int;  -- ../dbus/dbus-message.h:60:7
-      dummy9 : aliased int;  -- ../dbus/dbus-message.h:61:7
-      dummy10 : aliased int;  -- ../dbus/dbus-message.h:62:7
-      dummy11 : aliased int;  -- ../dbus/dbus-message.h:63:7
-      pad1 : aliased int;  -- ../dbus/dbus-message.h:64:7
-      pad2 : aliased int;  -- ../dbus/dbus-message.h:65:7
-      pad3 : System.Address;  -- ../dbus/dbus-message.h:66:9
+      dummy1 : System.Address;  -- ../dbus/dbus-message.h:53
+      dummy2 : System.Address;  -- ../dbus/dbus-message.h:54
+      dummy3 : aliased dbus_arch_deps_h.dbus_uint32_t;  -- ../dbus/dbus-message.h:55
+      dummy4 : aliased int;  -- ../dbus/dbus-message.h:56
+      dummy5 : aliased int;  -- ../dbus/dbus-message.h:57
+      dummy6 : aliased int;  -- ../dbus/dbus-message.h:58
+      dummy7 : aliased int;  -- ../dbus/dbus-message.h:59
+      dummy8 : aliased int;  -- ../dbus/dbus-message.h:60
+      dummy9 : aliased int;  -- ../dbus/dbus-message.h:61
+      dummy10 : aliased int;  -- ../dbus/dbus-message.h:62
+      dummy11 : aliased int;  -- ../dbus/dbus-message.h:63
+      pad1 : aliased int;  -- ../dbus/dbus-message.h:64
+      pad2 : System.Address;  -- ../dbus/dbus-message.h:65
+      pad3 : System.Address;  -- ../dbus/dbus-message.h:66
    end record;
-   pragma Convention (C_Pass_By_Copy, DBusMessageIter);  -- ../dbus/dbus-message.h:46:16
+   pragma Convention (C_Pass_By_Copy, DBusMessageIter);  -- ../dbus/dbus-message.h:51
 
-   function dbus_message_new (arg1 : int) return System.Address;  -- ../dbus/dbus-message.h:69:14
+   function dbus_message_new (message_type : int) return System.Address;  -- ../dbus/dbus-message.h:70
    pragma Import (C, dbus_message_new, "dbus_message_new");
 
    function dbus_message_new_method_call
-     (arg1 : Interfaces.C.Strings.chars_ptr;
-      arg2 : Interfaces.C.Strings.chars_ptr;
-      arg3 : Interfaces.C.Strings.chars_ptr;
-      arg4 : Interfaces.C.Strings.chars_ptr) return System.Address;  -- ../dbus/dbus-message.h:70:14
+     (bus_name : Interfaces.C.Strings.chars_ptr;
+      path : Interfaces.C.Strings.chars_ptr;
+      iface : Interfaces.C.Strings.chars_ptr;
+      method : Interfaces.C.Strings.chars_ptr) return System.Address;  -- ../dbus/dbus-message.h:72
    pragma Import (C, dbus_message_new_method_call, "dbus_message_new_method_call");
 
-   function dbus_message_new_method_return (arg1 : System.Address) return System.Address;  -- ../dbus/dbus-message.h:74:14
+   function dbus_message_new_method_return (method_call : System.Address) return System.Address;  -- ../dbus/dbus-message.h:77
    pragma Import (C, dbus_message_new_method_return, "dbus_message_new_method_return");
 
    function dbus_message_new_signal
-     (arg1 : Interfaces.C.Strings.chars_ptr;
-      arg2 : Interfaces.C.Strings.chars_ptr;
-      arg3 : Interfaces.C.Strings.chars_ptr) return System.Address;  -- ../dbus/dbus-message.h:75:14
+     (path : Interfaces.C.Strings.chars_ptr;
+      iface : Interfaces.C.Strings.chars_ptr;
+      name : Interfaces.C.Strings.chars_ptr) return System.Address;  -- ../dbus/dbus-message.h:79
    pragma Import (C, dbus_message_new_signal, "dbus_message_new_signal");
 
    function dbus_message_new_error
-     (arg1 : System.Address;
-      arg2 : Interfaces.C.Strings.chars_ptr;
-      arg3 : Interfaces.C.Strings.chars_ptr) return System.Address;  -- ../dbus/dbus-message.h:78:14
+     (reply_to : System.Address;
+      error_name : Interfaces.C.Strings.chars_ptr;
+      error_message : Interfaces.C.Strings.chars_ptr) return System.Address;  -- ../dbus/dbus-message.h:83
    pragma Import (C, dbus_message_new_error, "dbus_message_new_error");
 
    function dbus_message_new_error_printf
-     (arg1 : System.Address;
-      arg2 : Interfaces.C.Strings.chars_ptr;
-      arg3 : Interfaces.C.Strings.chars_ptr  -- , ...
-      ) return System.Address;  -- ../dbus/dbus-message.h:81:14
+     (reply_to : System.Address;
+      error_name : Interfaces.C.Strings.chars_ptr;
+      error_format : Interfaces.C.Strings.chars_ptr  -- , ...
+      ) return System.Address;  -- ../dbus/dbus-message.h:87
    pragma Import (C, dbus_message_new_error_printf, "dbus_message_new_error_printf");
 
-   function dbus_message_copy (arg1 : System.Address) return System.Address;  -- ../dbus/dbus-message.h:86:14
+   function dbus_message_copy (message : System.Address) return System.Address;  -- ../dbus/dbus-message.h:93
    pragma Import (C, dbus_message_copy, "dbus_message_copy");
 
-   function dbus_message_ref (arg1 : System.Address) return System.Address;  -- ../dbus/dbus-message.h:88:15
+   function dbus_message_ref (message : System.Address) return System.Address;  -- ../dbus/dbus-message.h:96
    pragma Import (C, dbus_message_ref, "dbus_message_ref");
 
-   procedure dbus_message_unref (arg1 : System.Address);  -- ../dbus/dbus-message.h:89:15
+   procedure dbus_message_unref (message : System.Address);  -- ../dbus/dbus-message.h:98
    pragma Import (C, dbus_message_unref, "dbus_message_unref");
 
-   function dbus_message_get_type (arg1 : System.Address) return int;  -- ../dbus/dbus-message.h:90:15
+   function dbus_message_get_type (message : System.Address) return int;  -- ../dbus/dbus-message.h:100
    pragma Import (C, dbus_message_get_type, "dbus_message_get_type");
 
-   function dbus_message_set_path (arg1 : System.Address; arg2 : Interfaces.C.Strings.chars_ptr) return dbus_types_h.dbus_bool_t;  -- ../dbus/dbus-message.h:91:15
+   function dbus_message_set_path (message : System.Address; object_path : Interfaces.C.Strings.chars_ptr) return dbus_types_h.dbus_bool_t;  -- ../dbus/dbus-message.h:102
    pragma Import (C, dbus_message_set_path, "dbus_message_set_path");
 
-   function dbus_message_get_path (arg1 : System.Address) return Interfaces.C.Strings.chars_ptr;  -- ../dbus/dbus-message.h:93:15
+   function dbus_message_get_path (message : System.Address) return Interfaces.C.Strings.chars_ptr;  -- ../dbus/dbus-message.h:105
    pragma Import (C, dbus_message_get_path, "dbus_message_get_path");
 
-   function dbus_message_has_path (arg1 : System.Address; arg2 : Interfaces.C.Strings.chars_ptr) return dbus_types_h.dbus_bool_t;  -- ../dbus/dbus-message.h:94:15
+   function dbus_message_has_path (message : System.Address; object_path : Interfaces.C.Strings.chars_ptr) return dbus_types_h.dbus_bool_t;  -- ../dbus/dbus-message.h:107
    pragma Import (C, dbus_message_has_path, "dbus_message_has_path");
 
-   function dbus_message_set_interface (arg1 : System.Address; arg2 : Interfaces.C.Strings.chars_ptr) return dbus_types_h.dbus_bool_t;  -- ../dbus/dbus-message.h:96:15
+   function dbus_message_set_interface (message : System.Address; iface : Interfaces.C.Strings.chars_ptr) return dbus_types_h.dbus_bool_t;  -- ../dbus/dbus-message.h:110
    pragma Import (C, dbus_message_set_interface, "dbus_message_set_interface");
 
-   function dbus_message_get_interface (arg1 : System.Address) return Interfaces.C.Strings.chars_ptr;  -- ../dbus/dbus-message.h:98:15
+   function dbus_message_get_interface (message : System.Address) return Interfaces.C.Strings.chars_ptr;  -- ../dbus/dbus-message.h:113
    pragma Import (C, dbus_message_get_interface, "dbus_message_get_interface");
 
-   function dbus_message_has_interface (arg1 : System.Address; arg2 : Interfaces.C.Strings.chars_ptr) return dbus_types_h.dbus_bool_t;  -- ../dbus/dbus-message.h:99:15
+   function dbus_message_has_interface (message : System.Address; iface : Interfaces.C.Strings.chars_ptr) return dbus_types_h.dbus_bool_t;  -- ../dbus/dbus-message.h:115
    pragma Import (C, dbus_message_has_interface, "dbus_message_has_interface");
 
-   function dbus_message_set_member (arg1 : System.Address; arg2 : Interfaces.C.Strings.chars_ptr) return dbus_types_h.dbus_bool_t;  -- ../dbus/dbus-message.h:101:15
+   function dbus_message_set_member (message : System.Address; member : Interfaces.C.Strings.chars_ptr) return dbus_types_h.dbus_bool_t;  -- ../dbus/dbus-message.h:118
    pragma Import (C, dbus_message_set_member, "dbus_message_set_member");
 
-   function dbus_message_get_member (arg1 : System.Address) return Interfaces.C.Strings.chars_ptr;  -- ../dbus/dbus-message.h:103:15
+   function dbus_message_get_member (message : System.Address) return Interfaces.C.Strings.chars_ptr;  -- ../dbus/dbus-message.h:121
    pragma Import (C, dbus_message_get_member, "dbus_message_get_member");
 
-   function dbus_message_has_member (arg1 : System.Address; arg2 : Interfaces.C.Strings.chars_ptr) return dbus_types_h.dbus_bool_t;  -- ../dbus/dbus-message.h:104:15
+   function dbus_message_has_member (message : System.Address; member : Interfaces.C.Strings.chars_ptr) return dbus_types_h.dbus_bool_t;  -- ../dbus/dbus-message.h:123
    pragma Import (C, dbus_message_has_member, "dbus_message_has_member");
 
-   function dbus_message_set_error_name (arg1 : System.Address; arg2 : Interfaces.C.Strings.chars_ptr) return dbus_types_h.dbus_bool_t;  -- ../dbus/dbus-message.h:106:15
+   function dbus_message_set_error_name (message : System.Address; name : Interfaces.C.Strings.chars_ptr) return dbus_types_h.dbus_bool_t;  -- ../dbus/dbus-message.h:126
    pragma Import (C, dbus_message_set_error_name, "dbus_message_set_error_name");
 
-   function dbus_message_get_error_name (arg1 : System.Address) return Interfaces.C.Strings.chars_ptr;  -- ../dbus/dbus-message.h:108:15
+   function dbus_message_get_error_name (message : System.Address) return Interfaces.C.Strings.chars_ptr;  -- ../dbus/dbus-message.h:129
    pragma Import (C, dbus_message_get_error_name, "dbus_message_get_error_name");
 
-   function dbus_message_set_destination (arg1 : System.Address; arg2 : Interfaces.C.Strings.chars_ptr) return dbus_types_h.dbus_bool_t;  -- ../dbus/dbus-message.h:109:15
+   function dbus_message_set_destination (message : System.Address; destination : Interfaces.C.Strings.chars_ptr) return dbus_types_h.dbus_bool_t;  -- ../dbus/dbus-message.h:131
    pragma Import (C, dbus_message_set_destination, "dbus_message_set_destination");
 
-   function dbus_message_get_destination (arg1 : System.Address) return Interfaces.C.Strings.chars_ptr;  -- ../dbus/dbus-message.h:111:15
+   function dbus_message_get_destination (message : System.Address) return Interfaces.C.Strings.chars_ptr;  -- ../dbus/dbus-message.h:134
    pragma Import (C, dbus_message_get_destination, "dbus_message_get_destination");
 
-   function dbus_message_set_sender (arg1 : System.Address; arg2 : Interfaces.C.Strings.chars_ptr) return dbus_types_h.dbus_bool_t;  -- ../dbus/dbus-message.h:112:15
+   function dbus_message_set_sender (message : System.Address; sender : Interfaces.C.Strings.chars_ptr) return dbus_types_h.dbus_bool_t;  -- ../dbus/dbus-message.h:136
    pragma Import (C, dbus_message_set_sender, "dbus_message_set_sender");
 
-   function dbus_message_get_sender (arg1 : System.Address) return Interfaces.C.Strings.chars_ptr;  -- ../dbus/dbus-message.h:114:15
+   function dbus_message_get_sender (message : System.Address) return Interfaces.C.Strings.chars_ptr;  -- ../dbus/dbus-message.h:139
    pragma Import (C, dbus_message_get_sender, "dbus_message_get_sender");
 
-   function dbus_message_get_signature (arg1 : System.Address) return Interfaces.C.Strings.chars_ptr;  -- ../dbus/dbus-message.h:115:15
+   function dbus_message_get_signature (message : System.Address) return Interfaces.C.Strings.chars_ptr;  -- ../dbus/dbus-message.h:141
    pragma Import (C, dbus_message_get_signature, "dbus_message_get_signature");
 
-   procedure dbus_message_set_no_reply (arg1 : System.Address; arg2 : dbus_types_h.dbus_bool_t);  -- ../dbus/dbus-message.h:116:15
+   procedure dbus_message_set_no_reply (message : System.Address; no_reply : dbus_types_h.dbus_bool_t);  -- ../dbus/dbus-message.h:143
    pragma Import (C, dbus_message_set_no_reply, "dbus_message_set_no_reply");
 
-   function dbus_message_get_no_reply (arg1 : System.Address) return dbus_types_h.dbus_bool_t;  -- ../dbus/dbus-message.h:118:15
+   function dbus_message_get_no_reply (message : System.Address) return dbus_types_h.dbus_bool_t;  -- ../dbus/dbus-message.h:146
    pragma Import (C, dbus_message_get_no_reply, "dbus_message_get_no_reply");
 
    function dbus_message_is_method_call
-     (arg1 : System.Address;
-      arg2 : Interfaces.C.Strings.chars_ptr;
-      arg3 : Interfaces.C.Strings.chars_ptr) return dbus_types_h.dbus_bool_t;  -- ../dbus/dbus-message.h:119:15
+     (message : System.Address;
+      iface : Interfaces.C.Strings.chars_ptr;
+      method : Interfaces.C.Strings.chars_ptr) return dbus_types_h.dbus_bool_t;  -- ../dbus/dbus-message.h:148
    pragma Import (C, dbus_message_is_method_call, "dbus_message_is_method_call");
 
    function dbus_message_is_signal
-     (arg1 : System.Address;
-      arg2 : Interfaces.C.Strings.chars_ptr;
-      arg3 : Interfaces.C.Strings.chars_ptr) return dbus_types_h.dbus_bool_t;  -- ../dbus/dbus-message.h:122:15
+     (message : System.Address;
+      iface : Interfaces.C.Strings.chars_ptr;
+      signal_name : Interfaces.C.Strings.chars_ptr) return dbus_types_h.dbus_bool_t;  -- ../dbus/dbus-message.h:152
    pragma Import (C, dbus_message_is_signal, "dbus_message_is_signal");
 
-   function dbus_message_is_error (arg1 : System.Address; arg2 : Interfaces.C.Strings.chars_ptr) return dbus_types_h.dbus_bool_t;  -- ../dbus/dbus-message.h:125:15
+   function dbus_message_is_error (message : System.Address; error_name : Interfaces.C.Strings.chars_ptr) return dbus_types_h.dbus_bool_t;  -- ../dbus/dbus-message.h:156
    pragma Import (C, dbus_message_is_error, "dbus_message_is_error");
 
-   function dbus_message_has_destination (arg1 : System.Address; arg2 : Interfaces.C.Strings.chars_ptr) return dbus_types_h.dbus_bool_t;  -- ../dbus/dbus-message.h:127:15
+   function dbus_message_has_destination (message : System.Address; bus_name : Interfaces.C.Strings.chars_ptr) return dbus_types_h.dbus_bool_t;  -- ../dbus/dbus-message.h:159
    pragma Import (C, dbus_message_has_destination, "dbus_message_has_destination");
 
-   function dbus_message_has_sender (arg1 : System.Address; arg2 : Interfaces.C.Strings.chars_ptr) return dbus_types_h.dbus_bool_t;  -- ../dbus/dbus-message.h:129:15
+   function dbus_message_has_sender (message : System.Address; unique_bus_name : Interfaces.C.Strings.chars_ptr) return dbus_types_h.dbus_bool_t;  -- ../dbus/dbus-message.h:162
    pragma Import (C, dbus_message_has_sender, "dbus_message_has_sender");
 
-   function dbus_message_has_signature (arg1 : System.Address; arg2 : Interfaces.C.Strings.chars_ptr) return dbus_types_h.dbus_bool_t;  -- ../dbus/dbus-message.h:131:15
+   function dbus_message_has_signature (message : System.Address; signature : Interfaces.C.Strings.chars_ptr) return dbus_types_h.dbus_bool_t;  -- ../dbus/dbus-message.h:165
    pragma Import (C, dbus_message_has_signature, "dbus_message_has_signature");
 
-   function dbus_message_get_serial (arg1 : System.Address) return dbus_arch_deps_h.dbus_uint32_t;  -- ../dbus/dbus-message.h:133:15
+   function dbus_message_get_serial (message : System.Address) return dbus_arch_deps_h.dbus_uint32_t;  -- ../dbus/dbus-message.h:168
    pragma Import (C, dbus_message_get_serial, "dbus_message_get_serial");
 
-   procedure dbus_message_set_serial (arg1 : System.Address; arg2 : dbus_arch_deps_h.dbus_uint32_t);  -- ../dbus/dbus-message.h:134:15
+   procedure dbus_message_set_serial (message : System.Address; serial : dbus_arch_deps_h.dbus_uint32_t);  -- ../dbus/dbus-message.h:170
    pragma Import (C, dbus_message_set_serial, "dbus_message_set_serial");
 
-   function dbus_message_set_reply_serial (arg1 : System.Address; arg2 : dbus_arch_deps_h.dbus_uint32_t) return dbus_types_h.dbus_bool_t;  -- ../dbus/dbus-message.h:136:15
+   function dbus_message_set_reply_serial (message : System.Address; reply_serial : dbus_arch_deps_h.dbus_uint32_t) return dbus_types_h.dbus_bool_t;  -- ../dbus/dbus-message.h:173
    pragma Import (C, dbus_message_set_reply_serial, "dbus_message_set_reply_serial");
 
-   function dbus_message_get_reply_serial (arg1 : System.Address) return dbus_arch_deps_h.dbus_uint32_t;  -- ../dbus/dbus-message.h:138:15
+   function dbus_message_get_reply_serial (message : System.Address) return dbus_arch_deps_h.dbus_uint32_t;  -- ../dbus/dbus-message.h:176
    pragma Import (C, dbus_message_get_reply_serial, "dbus_message_get_reply_serial");
 
-   procedure dbus_message_set_auto_start (arg1 : System.Address; arg2 : dbus_types_h.dbus_bool_t);  -- ../dbus/dbus-message.h:140:15
+   procedure dbus_message_set_auto_start (message : System.Address; auto_start : dbus_types_h.dbus_bool_t);  -- ../dbus/dbus-message.h:179
    pragma Import (C, dbus_message_set_auto_start, "dbus_message_set_auto_start");
 
-   function dbus_message_get_auto_start (arg1 : System.Address) return dbus_types_h.dbus_bool_t;  -- ../dbus/dbus-message.h:142:15
+   function dbus_message_get_auto_start (message : System.Address) return dbus_types_h.dbus_bool_t;  -- ../dbus/dbus-message.h:182
    pragma Import (C, dbus_message_get_auto_start, "dbus_message_get_auto_start");
 
-   function dbus_message_get_path_decomposed (arg1 : System.Address; arg2 : System.Address) return dbus_types_h.dbus_bool_t;  -- ../dbus/dbus-message.h:144:15
+   function dbus_message_get_path_decomposed (message : System.Address; path : System.Address) return dbus_types_h.dbus_bool_t;  -- ../dbus/dbus-message.h:185
    pragma Import (C, dbus_message_get_path_decomposed, "dbus_message_get_path_decomposed");
 
-   function dbus_message_append_args (arg1 : System.Address; arg2 : int  -- , ...
-      ) return dbus_types_h.dbus_bool_t;  -- ../dbus/dbus-message.h:147:13
+   function dbus_message_append_args (message : System.Address; first_arg_type : int  -- , ...
+      ) return dbus_types_h.dbus_bool_t;  -- ../dbus/dbus-message.h:189
    pragma Import (C, dbus_message_append_args, "dbus_message_append_args");
 
    function dbus_message_append_args_valist
-     (arg1 : System.Address;
-      arg2 : int;
-      arg3 : stdarg_h.va_list) return dbus_types_h.dbus_bool_t;  -- ../dbus/dbus-message.h:150:13
+     (message : System.Address;
+      first_arg_type : int;
+      var_args : access System.Address) return dbus_types_h.dbus_bool_t;  -- ../dbus/dbus-message.h:193
    pragma Import (C, dbus_message_append_args_valist, "dbus_message_append_args_valist");
 
    function dbus_message_get_args
-     (arg1 : System.Address;
-      arg2 : access dbus_errors_h.DBusError;
-      arg3 : int  -- , ...
-      ) return dbus_types_h.dbus_bool_t;  -- ../dbus/dbus-message.h:153:13
+     (message : System.Address;
+      error : access dbus_errors_h.DBusError;
+      first_arg_type : int  -- , ...
+      ) return dbus_types_h.dbus_bool_t;  -- ../dbus/dbus-message.h:197
    pragma Import (C, dbus_message_get_args, "dbus_message_get_args");
 
    function dbus_message_get_args_valist
-     (arg1 : System.Address;
-      arg2 : access dbus_errors_h.DBusError;
-      arg3 : int;
-      arg4 : stdarg_h.va_list) return dbus_types_h.dbus_bool_t;  -- ../dbus/dbus-message.h:157:13
+     (message : System.Address;
+      error : access dbus_errors_h.DBusError;
+      first_arg_type : int;
+      var_args : access System.Address) return dbus_types_h.dbus_bool_t;  -- ../dbus/dbus-message.h:202
    pragma Import (C, dbus_message_get_args_valist, "dbus_message_get_args_valist");
 
-   function dbus_message_iter_init (arg1 : System.Address; arg2 : access DBusMessageIter) return dbus_types_h.dbus_bool_t;  -- ../dbus/dbus-message.h:163:13
+   function dbus_message_contains_unix_fds (message : System.Address) return dbus_types_h.dbus_bool_t;  -- ../dbus/dbus-message.h:208
+   pragma Import (C, dbus_message_contains_unix_fds, "dbus_message_contains_unix_fds");
+
+   function dbus_message_iter_init (message : System.Address; iter : access DBusMessageIter) return dbus_types_h.dbus_bool_t;  -- ../dbus/dbus-message.h:211
    pragma Import (C, dbus_message_iter_init, "dbus_message_iter_init");
 
-   function dbus_message_iter_has_next (arg1 : access DBusMessageIter) return dbus_types_h.dbus_bool_t;  -- ../dbus/dbus-message.h:165:13
+   function dbus_message_iter_has_next (iter : access DBusMessageIter) return dbus_types_h.dbus_bool_t;  -- ../dbus/dbus-message.h:214
    pragma Import (C, dbus_message_iter_has_next, "dbus_message_iter_has_next");
 
-   function dbus_message_iter_next (arg1 : access DBusMessageIter) return dbus_types_h.dbus_bool_t;  -- ../dbus/dbus-message.h:166:13
+   function dbus_message_iter_next (iter : access DBusMessageIter) return dbus_types_h.dbus_bool_t;  -- ../dbus/dbus-message.h:216
    pragma Import (C, dbus_message_iter_next, "dbus_message_iter_next");
 
-   function dbus_message_iter_get_signature (arg1 : access DBusMessageIter) return Interfaces.C.Strings.chars_ptr;  -- ../dbus/dbus-message.h:167:13
+   function dbus_message_iter_get_signature (iter : access DBusMessageIter) return Interfaces.C.Strings.chars_ptr;  -- ../dbus/dbus-message.h:218
    pragma Import (C, dbus_message_iter_get_signature, "dbus_message_iter_get_signature");
 
-   function dbus_message_iter_get_arg_type (arg1 : access DBusMessageIter) return int;  -- ../dbus/dbus-message.h:168:13
+   function dbus_message_iter_get_arg_type (iter : access DBusMessageIter) return int;  -- ../dbus/dbus-message.h:220
    pragma Import (C, dbus_message_iter_get_arg_type, "dbus_message_iter_get_arg_type");
 
-   function dbus_message_iter_get_element_type (arg1 : access DBusMessageIter) return int;  -- ../dbus/dbus-message.h:169:13
+   function dbus_message_iter_get_element_type (iter : access DBusMessageIter) return int;  -- ../dbus/dbus-message.h:222
    pragma Import (C, dbus_message_iter_get_element_type, "dbus_message_iter_get_element_type");
 
-   procedure dbus_message_iter_recurse (arg1 : access DBusMessageIter; arg2 : access DBusMessageIter);  -- ../dbus/dbus-message.h:170:13
+   procedure dbus_message_iter_recurse (iter : access DBusMessageIter; sub : access DBusMessageIter);  -- ../dbus/dbus-message.h:224
    pragma Import (C, dbus_message_iter_recurse, "dbus_message_iter_recurse");
 
-   procedure dbus_message_iter_get_basic (arg1 : access DBusMessageIter; arg2 : System.Address);  -- ../dbus/dbus-message.h:172:13
+   procedure dbus_message_iter_get_basic (iter : access DBusMessageIter; value : System.Address);  -- ../dbus/dbus-message.h:227
    pragma Import (C, dbus_message_iter_get_basic, "dbus_message_iter_get_basic");
 
-   function dbus_message_iter_get_array_len (arg1 : access DBusMessageIter) return int;  -- ../dbus/dbus-message.h:178:29
+   function dbus_message_iter_get_element_count (iter : access DBusMessageIter) return int;  -- ../dbus/dbus-message.h:230
+   pragma Import (C, dbus_message_iter_get_element_count, "dbus_message_iter_get_element_count");
+
+   function dbus_message_iter_get_array_len (iter : access DBusMessageIter) return int;  -- ../dbus/dbus-message.h:237
    pragma Import (C, dbus_message_iter_get_array_len, "dbus_message_iter_get_array_len");
 
    procedure dbus_message_iter_get_fixed_array
-     (arg1 : access DBusMessageIter;
-      arg2 : System.Address;
-      arg3 : access int);  -- ../dbus/dbus-message.h:180:13
+     (iter : access DBusMessageIter;
+      value : System.Address;
+      n_elements : access int);  -- ../dbus/dbus-message.h:240
    pragma Import (C, dbus_message_iter_get_fixed_array, "dbus_message_iter_get_fixed_array");
 
-   procedure dbus_message_iter_init_append (arg1 : System.Address; arg2 : access DBusMessageIter);  -- ../dbus/dbus-message.h:185:13
+   procedure dbus_message_iter_init_append (message : System.Address; iter : access DBusMessageIter);  -- ../dbus/dbus-message.h:246
    pragma Import (C, dbus_message_iter_init_append, "dbus_message_iter_init_append");
 
    function dbus_message_iter_append_basic
-     (arg1 : access DBusMessageIter;
-      arg2 : int;
-      arg3 : System.Address) return dbus_types_h.dbus_bool_t;  -- ../dbus/dbus-message.h:187:13
+     (iter : access DBusMessageIter;
+      c_type : int;
+      value : System.Address) return dbus_types_h.dbus_bool_t;  -- ../dbus/dbus-message.h:249
    pragma Import (C, dbus_message_iter_append_basic, "dbus_message_iter_append_basic");
 
    function dbus_message_iter_append_fixed_array
-     (arg1 : access DBusMessageIter;
-      arg2 : int;
-      arg3 : System.Address;
-      arg4 : int) return dbus_types_h.dbus_bool_t;  -- ../dbus/dbus-message.h:190:13
+     (iter : access DBusMessageIter;
+      element_type : int;
+      value : System.Address;
+      n_elements : int) return dbus_types_h.dbus_bool_t;  -- ../dbus/dbus-message.h:253
    pragma Import (C, dbus_message_iter_append_fixed_array, "dbus_message_iter_append_fixed_array");
 
    function dbus_message_iter_open_container
-     (arg1 : access DBusMessageIter;
-      arg2 : int;
-      arg3 : Interfaces.C.Strings.chars_ptr;
-      arg4 : access DBusMessageIter) return dbus_types_h.dbus_bool_t;  -- ../dbus/dbus-message.h:194:13
+     (iter : access DBusMessageIter;
+      c_type : int;
+      contained_signature : Interfaces.C.Strings.chars_ptr;
+      sub : access DBusMessageIter) return dbus_types_h.dbus_bool_t;  -- ../dbus/dbus-message.h:258
    pragma Import (C, dbus_message_iter_open_container, "dbus_message_iter_open_container");
 
-   function dbus_message_iter_close_container (arg1 : access DBusMessageIter; arg2 : access DBusMessageIter) return dbus_types_h.dbus_bool_t;  -- ../dbus/dbus-message.h:198:13
+   function dbus_message_iter_close_container (iter : access DBusMessageIter; sub : access DBusMessageIter) return dbus_types_h.dbus_bool_t;  -- ../dbus/dbus-message.h:263
    pragma Import (C, dbus_message_iter_close_container, "dbus_message_iter_close_container");
 
-   procedure dbus_message_iter_abandon_container (arg1 : access DBusMessageIter; arg2 : access DBusMessageIter);  -- ../dbus/dbus-message.h:200:13
+   procedure dbus_message_iter_abandon_container (iter : access DBusMessageIter; sub : access DBusMessageIter);  -- ../dbus/dbus-message.h:266
    pragma Import (C, dbus_message_iter_abandon_container, "dbus_message_iter_abandon_container");
 
-   procedure dbus_message_lock (arg1 : System.Address);  -- ../dbus/dbus-message.h:203:6
+   procedure dbus_message_lock (message : System.Address);  -- ../dbus/dbus-message.h:270
    pragma Import (C, dbus_message_lock, "dbus_message_lock");
 
-   function dbus_set_error_from_message (arg1 : access dbus_errors_h.DBusError; arg2 : System.Address) return dbus_types_h.dbus_bool_t;  -- ../dbus/dbus-message.h:205:14
+   function dbus_set_error_from_message (error : access dbus_errors_h.DBusError; message : System.Address) return dbus_types_h.dbus_bool_t;  -- ../dbus/dbus-message.h:273
    pragma Import (C, dbus_set_error_from_message, "dbus_set_error_from_message");
 
-   function dbus_message_allocate_data_slot (arg1 : access dbus_arch_deps_h.dbus_int32_t) return dbus_types_h.dbus_bool_t;  -- ../dbus/dbus-message.h:209:13
+   function dbus_message_allocate_data_slot (slot_p : access dbus_arch_deps_h.dbus_int32_t) return dbus_types_h.dbus_bool_t;  -- ../dbus/dbus-message.h:278
    pragma Import (C, dbus_message_allocate_data_slot, "dbus_message_allocate_data_slot");
 
-   procedure dbus_message_free_data_slot (arg1 : access dbus_arch_deps_h.dbus_int32_t);  -- ../dbus/dbus-message.h:210:13
+   procedure dbus_message_free_data_slot (slot_p : access dbus_arch_deps_h.dbus_int32_t);  -- ../dbus/dbus-message.h:280
    pragma Import (C, dbus_message_free_data_slot, "dbus_message_free_data_slot");
 
    function dbus_message_set_data
-     (arg1 : System.Address;
-      arg2 : dbus_arch_deps_h.dbus_int32_t;
-      arg3 : System.Address;
-      arg4 : access procedure (arg1 : System.Address)) return dbus_types_h.dbus_bool_t;  -- ../dbus/dbus-message.h:211:13
+     (message : System.Address;
+      slot : dbus_arch_deps_h.dbus_int32_t;
+      data : System.Address;
+      free_data_func : dbus_memory_h.DBusFreeFunction) return dbus_types_h.dbus_bool_t;  -- ../dbus/dbus-message.h:282
    pragma Import (C, dbus_message_set_data, "dbus_message_set_data");
 
-   function dbus_message_get_data (arg1 : System.Address; arg2 : dbus_arch_deps_h.dbus_int32_t) return System.Address;  -- ../dbus/dbus-message.h:215:13
+   function dbus_message_get_data (message : System.Address; slot : dbus_arch_deps_h.dbus_int32_t) return System.Address;  -- ../dbus/dbus-message.h:287
    pragma Import (C, dbus_message_get_data, "dbus_message_get_data");
 
-   function dbus_message_type_from_string (arg1 : Interfaces.C.Strings.chars_ptr) return int;  -- ../dbus/dbus-message.h:218:13
+   function dbus_message_type_from_string (type_str : Interfaces.C.Strings.chars_ptr) return int;  -- ../dbus/dbus-message.h:291
    pragma Import (C, dbus_message_type_from_string, "dbus_message_type_from_string");
 
-   function dbus_message_type_to_string (arg1 : int) return Interfaces.C.Strings.chars_ptr;  -- ../dbus/dbus-message.h:219:13
+   function dbus_message_type_to_string (c_type : int) return Interfaces.C.Strings.chars_ptr;  -- ../dbus/dbus-message.h:293
    pragma Import (C, dbus_message_type_to_string, "dbus_message_type_to_string");
 
    function dbus_message_marshal
-     (arg1 : System.Address;
-      arg2 : System.Address;
-      arg3 : access int) return dbus_types_h.dbus_bool_t;  -- ../dbus/dbus-message.h:221:14
+     (msg : System.Address;
+      marshalled_data_p : System.Address;
+      len_p : access int) return dbus_types_h.dbus_bool_t;  -- ../dbus/dbus-message.h:296
    pragma Import (C, dbus_message_marshal, "dbus_message_marshal");
 
    function dbus_message_demarshal
-     (arg1 : Interfaces.C.Strings.chars_ptr;
-      arg2 : int;
-      arg3 : access dbus_errors_h.DBusError) return System.Address;  -- ../dbus/dbus-message.h:224:14
+     (str : Interfaces.C.Strings.chars_ptr;
+      len : int;
+      error : access dbus_errors_h.DBusError) return System.Address;  -- ../dbus/dbus-message.h:300
    pragma Import (C, dbus_message_demarshal, "dbus_message_demarshal");
 
-   function dbus_message_demarshal_bytes_needed (arg1 : Interfaces.C.Strings.chars_ptr; arg2 : int) return int;  -- ../dbus/dbus-message.h:228:14
+   function dbus_message_demarshal_bytes_needed (str : Interfaces.C.Strings.chars_ptr; len : int) return int;  -- ../dbus/dbus-message.h:305
    pragma Import (C, dbus_message_demarshal_bytes_needed, "dbus_message_demarshal_bytes_needed");
 
+   procedure dbus_message_set_allow_interactive_authorization (message : System.Address; allow : dbus_types_h.dbus_bool_t);  -- ../dbus/dbus-message.h:309
+   pragma Import (C, dbus_message_set_allow_interactive_authorization, "dbus_message_set_allow_interactive_authorization");
+
+   function dbus_message_get_allow_interactive_authorization (message : System.Address) return dbus_types_h.dbus_bool_t;  -- ../dbus/dbus-message.h:313
+   pragma Import (C, dbus_message_get_allow_interactive_authorization, "dbus_message_get_allow_interactive_authorization");
+
 end dbus_message_h;
diff -Nru dbusada-0.3.3/thin/dbus_misc_h.ads dbusada-0.4.0/thin/dbus_misc_h.ads
--- dbusada-0.3.3/thin/dbus_misc_h.ads	2016-07-18 10:37:43.000000000 +0200
+++ dbusada-0.4.0/thin/dbus_misc_h.ads	2017-07-17 09:07:25.000000000 +0200
@@ -1,17 +1,22 @@
+pragma Ada_2005;
 pragma Style_Checks (Off);
 
 with Interfaces.C; use Interfaces.C;
 with Interfaces.C.Strings;
+with dbus_types_h;
 
 package dbus_misc_h is
 
-   function dbus_get_local_machine_id return Interfaces.C.Strings.chars_ptr;  -- ../dbus/dbus-misc.h:40:13
+   function dbus_get_local_machine_id return Interfaces.C.Strings.chars_ptr;  -- ../dbus/dbus-misc.h:40
    pragma Import (C, dbus_get_local_machine_id, "dbus_get_local_machine_id");
 
    procedure dbus_get_version
-     (arg1 : access int;
-      arg2 : access int;
-      arg3 : access int);  -- ../dbus/dbus-misc.h:42:13
+     (major_version_p : access int;
+      minor_version_p : access int;
+      micro_version_p : access int);  -- ../dbus/dbus-misc.h:43
    pragma Import (C, dbus_get_version, "dbus_get_version");
 
+   function dbus_setenv (variable : Interfaces.C.Strings.chars_ptr; value : Interfaces.C.Strings.chars_ptr) return dbus_types_h.dbus_bool_t;  -- ../dbus/dbus-misc.h:48
+   pragma Import (C, dbus_setenv, "dbus_setenv");
+
 end dbus_misc_h;
diff -Nru dbusada-0.3.3/thin/dbus_pending_call_h.ads dbusada-0.4.0/thin/dbus_pending_call_h.ads
--- dbusada-0.3.3/thin/dbus_pending_call_h.ads	2016-07-18 10:37:43.000000000 +0200
+++ dbusada-0.4.0/thin/dbus_pending_call_h.ads	2017-07-17 09:07:25.000000000 +0200
@@ -1,52 +1,56 @@
+pragma Ada_2005;
 pragma Style_Checks (Off);
-pragma Warnings (Off);
 
-with Interfaces.C; use Interfaces.C;
 with System;
+with dbus_connection_h;
+with dbus_memory_h;
 with dbus_types_h;
 with dbus_arch_deps_h;
 
 package dbus_pending_call_h is
 
-   function dbus_pending_call_ref (arg1 : System.Address) return System.Address;  -- ../dbus/dbus-pending-call.h:41:18
+   --  unsupported macro: DBUS_TIMEOUT_INFINITE ((int) 0x7fffffff)
+   DBUS_TIMEOUT_USE_DEFAULT : constant := (-1);  --  ../dbus/dbus-pending-call.h:42
+
+   function dbus_pending_call_ref (pending : System.Address) return System.Address;  -- ../dbus/dbus-pending-call.h:45
    pragma Import (C, dbus_pending_call_ref, "dbus_pending_call_ref");
 
-   procedure dbus_pending_call_unref (arg1 : System.Address);  -- ../dbus/dbus-pending-call.h:42:14
+   procedure dbus_pending_call_unref (pending : System.Address);  -- ../dbus/dbus-pending-call.h:47
    pragma Import (C, dbus_pending_call_unref, "dbus_pending_call_unref");
 
    function dbus_pending_call_set_notify
-     (arg1 : System.Address;
-      arg2 : access procedure (arg1 : System.Address; arg2 : System.Address);
-      arg3 : System.Address;
-      arg4 : access procedure (arg1 : System.Address)) return dbus_types_h.dbus_bool_t;  -- ../dbus/dbus-pending-call.h:43:14
+     (pending : System.Address;
+      c_function : dbus_connection_h.DBusPendingCallNotifyFunction;
+      user_data : System.Address;
+      free_user_data : dbus_memory_h.DBusFreeFunction) return dbus_types_h.dbus_bool_t;  -- ../dbus/dbus-pending-call.h:49
    pragma Import (C, dbus_pending_call_set_notify, "dbus_pending_call_set_notify");
 
-   procedure dbus_pending_call_cancel (arg1 : System.Address);  -- ../dbus/dbus-pending-call.h:47:14
+   procedure dbus_pending_call_cancel (pending : System.Address);  -- ../dbus/dbus-pending-call.h:54
    pragma Import (C, dbus_pending_call_cancel, "dbus_pending_call_cancel");
 
-   function dbus_pending_call_get_completed (arg1 : System.Address) return dbus_types_h.dbus_bool_t;  -- ../dbus/dbus-pending-call.h:48:14
+   function dbus_pending_call_get_completed (pending : System.Address) return dbus_types_h.dbus_bool_t;  -- ../dbus/dbus-pending-call.h:56
    pragma Import (C, dbus_pending_call_get_completed, "dbus_pending_call_get_completed");
 
-   function dbus_pending_call_steal_reply (arg1 : System.Address) return System.Address;  -- ../dbus/dbus-pending-call.h:49:14
+   function dbus_pending_call_steal_reply (pending : System.Address) return System.Address;  -- ../dbus/dbus-pending-call.h:58
    pragma Import (C, dbus_pending_call_steal_reply, "dbus_pending_call_steal_reply");
 
-   procedure dbus_pending_call_block (arg1 : System.Address);  -- ../dbus/dbus-pending-call.h:50:14
+   procedure dbus_pending_call_block (pending : System.Address);  -- ../dbus/dbus-pending-call.h:60
    pragma Import (C, dbus_pending_call_block, "dbus_pending_call_block");
 
-   function dbus_pending_call_allocate_data_slot (arg1 : access dbus_arch_deps_h.dbus_int32_t) return dbus_types_h.dbus_bool_t;  -- ../dbus/dbus-pending-call.h:52:13
+   function dbus_pending_call_allocate_data_slot (slot_p : access dbus_arch_deps_h.dbus_int32_t) return dbus_types_h.dbus_bool_t;  -- ../dbus/dbus-pending-call.h:63
    pragma Import (C, dbus_pending_call_allocate_data_slot, "dbus_pending_call_allocate_data_slot");
 
-   procedure dbus_pending_call_free_data_slot (arg1 : access dbus_arch_deps_h.dbus_int32_t);  -- ../dbus/dbus-pending-call.h:53:13
+   procedure dbus_pending_call_free_data_slot (slot_p : access dbus_arch_deps_h.dbus_int32_t);  -- ../dbus/dbus-pending-call.h:65
    pragma Import (C, dbus_pending_call_free_data_slot, "dbus_pending_call_free_data_slot");
 
    function dbus_pending_call_set_data
-     (arg1 : System.Address;
-      arg2 : dbus_arch_deps_h.dbus_int32_t;
-      arg3 : System.Address;
-      arg4 : access procedure (arg1 : System.Address)) return dbus_types_h.dbus_bool_t;  -- ../dbus/dbus-pending-call.h:54:13
+     (pending : System.Address;
+      slot : dbus_arch_deps_h.dbus_int32_t;
+      data : System.Address;
+      free_data_func : dbus_memory_h.DBusFreeFunction) return dbus_types_h.dbus_bool_t;  -- ../dbus/dbus-pending-call.h:67
    pragma Import (C, dbus_pending_call_set_data, "dbus_pending_call_set_data");
 
-   function dbus_pending_call_get_data (arg1 : System.Address; arg2 : dbus_arch_deps_h.dbus_int32_t) return System.Address;  -- ../dbus/dbus-pending-call.h:58:13
+   function dbus_pending_call_get_data (pending : System.Address; slot : dbus_arch_deps_h.dbus_int32_t) return System.Address;  -- ../dbus/dbus-pending-call.h:72
    pragma Import (C, dbus_pending_call_get_data, "dbus_pending_call_get_data");
 
 end dbus_pending_call_h;
diff -Nru dbusada-0.3.3/thin/dbus_server_h.ads dbusada-0.4.0/thin/dbus_server_h.ads
--- dbusada-0.3.3/thin/dbus_server_h.ads	2016-07-18 10:37:43.000000000 +0200
+++ dbusada-0.4.0/thin/dbus_server_h.ads	2017-07-17 09:07:25.000000000 +0200
@@ -1,3 +1,4 @@
+pragma Ada_2005;
 pragma Style_Checks (Off);
 
 with Interfaces.C; use Interfaces.C;
@@ -5,6 +6,8 @@
 with Interfaces.C.Strings;
 limited with dbus_errors_h;
 with dbus_types_h;
+with dbus_memory_h;
+with dbus_connection_h;
 with dbus_arch_deps_h;
 
 package dbus_server_h is
@@ -14,74 +17,72 @@
    type DBusNewConnectionFunction is access procedure
         (arg1 : System.Address;
          arg2 : System.Address;
-         arg3 : System.Address);  -- ../dbus/dbus-server.h:47:17
+         arg3 : System.Address);
+   pragma Convention (C, DBusNewConnectionFunction);  -- ../dbus/dbus-server.h:47
 
-   function dbus_server_listen (arg1 : Interfaces.C.Strings.chars_ptr; arg2 : access dbus_errors_h.DBusError) return System.Address;  -- ../dbus/dbus-server.h:51:13
+   function dbus_server_listen (address : Interfaces.C.Strings.chars_ptr; error : access dbus_errors_h.DBusError) return System.Address;  -- ../dbus/dbus-server.h:52
    pragma Import (C, dbus_server_listen, "dbus_server_listen");
 
-   function dbus_server_ref (arg1 : System.Address) return System.Address;  -- ../dbus/dbus-server.h:53:13
+   function dbus_server_ref (server : System.Address) return System.Address;  -- ../dbus/dbus-server.h:55
    pragma Import (C, dbus_server_ref, "dbus_server_ref");
 
-   procedure dbus_server_unref (arg1 : System.Address);  -- ../dbus/dbus-server.h:54:13
+   procedure dbus_server_unref (server : System.Address);  -- ../dbus/dbus-server.h:57
    pragma Import (C, dbus_server_unref, "dbus_server_unref");
 
-   procedure dbus_server_disconnect (arg1 : System.Address);  -- ../dbus/dbus-server.h:55:13
+   procedure dbus_server_disconnect (server : System.Address);  -- ../dbus/dbus-server.h:59
    pragma Import (C, dbus_server_disconnect, "dbus_server_disconnect");
 
-   function dbus_server_get_is_connected (arg1 : System.Address) return dbus_types_h.dbus_bool_t;  -- ../dbus/dbus-server.h:56:13
+   function dbus_server_get_is_connected (server : System.Address) return dbus_types_h.dbus_bool_t;  -- ../dbus/dbus-server.h:61
    pragma Import (C, dbus_server_get_is_connected, "dbus_server_get_is_connected");
 
-   function dbus_server_get_address (arg1 : System.Address) return Interfaces.C.Strings.chars_ptr;  -- ../dbus/dbus-server.h:57:13
+   function dbus_server_get_address (server : System.Address) return Interfaces.C.Strings.chars_ptr;  -- ../dbus/dbus-server.h:63
    pragma Import (C, dbus_server_get_address, "dbus_server_get_address");
 
-   function dbus_server_get_id (arg1 : System.Address) return Interfaces.C.Strings.chars_ptr;  -- ../dbus/dbus-server.h:58:13
+   function dbus_server_get_id (server : System.Address) return Interfaces.C.Strings.chars_ptr;  -- ../dbus/dbus-server.h:65
    pragma Import (C, dbus_server_get_id, "dbus_server_get_id");
 
    procedure dbus_server_set_new_connection_function
-     (arg1 : System.Address;
-      arg2 : access procedure
-        (arg1 : System.Address;
-         arg2 : System.Address;
-         arg3 : System.Address);
-      arg3 : System.Address;
-      arg4 : access procedure (arg1 : System.Address));  -- ../dbus/dbus-server.h:59:13
+     (server : System.Address;
+      c_function : DBusNewConnectionFunction;
+      data : System.Address;
+      free_data_function : dbus_memory_h.DBusFreeFunction);  -- ../dbus/dbus-server.h:67
    pragma Import (C, dbus_server_set_new_connection_function, "dbus_server_set_new_connection_function");
 
    function dbus_server_set_watch_functions
-     (arg1 : System.Address;
-      arg2 : access function (arg1 : System.Address; arg2 : System.Address) return dbus_types_h.dbus_bool_t;
-      arg3 : access procedure (arg1 : System.Address; arg2 : System.Address);
-      arg4 : access procedure (arg1 : System.Address; arg2 : System.Address);
-      arg5 : System.Address;
-      arg6 : access procedure (arg1 : System.Address)) return dbus_types_h.dbus_bool_t;  -- ../dbus/dbus-server.h:63:13
+     (server : System.Address;
+      add_function : dbus_connection_h.DBusAddWatchFunction;
+      remove_function : dbus_connection_h.DBusRemoveWatchFunction;
+      toggled_function : dbus_connection_h.DBusWatchToggledFunction;
+      data : System.Address;
+      free_data_function : dbus_memory_h.DBusFreeFunction) return dbus_types_h.dbus_bool_t;  -- ../dbus/dbus-server.h:72
    pragma Import (C, dbus_server_set_watch_functions, "dbus_server_set_watch_functions");
 
    function dbus_server_set_timeout_functions
-     (arg1 : System.Address;
-      arg2 : access function (arg1 : System.Address; arg2 : System.Address) return dbus_types_h.dbus_bool_t;
-      arg3 : access procedure (arg1 : System.Address; arg2 : System.Address);
-      arg4 : access procedure (arg1 : System.Address; arg2 : System.Address);
-      arg5 : System.Address;
-      arg6 : access procedure (arg1 : System.Address)) return dbus_types_h.dbus_bool_t;  -- ../dbus/dbus-server.h:69:13
+     (server : System.Address;
+      add_function : dbus_connection_h.DBusAddTimeoutFunction;
+      remove_function : dbus_connection_h.DBusRemoveTimeoutFunction;
+      toggled_function : dbus_connection_h.DBusTimeoutToggledFunction;
+      data : System.Address;
+      free_data_function : dbus_memory_h.DBusFreeFunction) return dbus_types_h.dbus_bool_t;  -- ../dbus/dbus-server.h:79
    pragma Import (C, dbus_server_set_timeout_functions, "dbus_server_set_timeout_functions");
 
-   function dbus_server_set_auth_mechanisms (arg1 : System.Address; arg2 : System.Address) return dbus_types_h.dbus_bool_t;  -- ../dbus/dbus-server.h:75:13
+   function dbus_server_set_auth_mechanisms (server : System.Address; mechanisms : System.Address) return dbus_types_h.dbus_bool_t;  -- ../dbus/dbus-server.h:86
    pragma Import (C, dbus_server_set_auth_mechanisms, "dbus_server_set_auth_mechanisms");
 
-   function dbus_server_allocate_data_slot (arg1 : access dbus_arch_deps_h.dbus_int32_t) return dbus_types_h.dbus_bool_t;  -- ../dbus/dbus-server.h:78:13
+   function dbus_server_allocate_data_slot (slot_p : access dbus_arch_deps_h.dbus_int32_t) return dbus_types_h.dbus_bool_t;  -- ../dbus/dbus-server.h:90
    pragma Import (C, dbus_server_allocate_data_slot, "dbus_server_allocate_data_slot");
 
-   procedure dbus_server_free_data_slot (arg1 : access dbus_arch_deps_h.dbus_int32_t);  -- ../dbus/dbus-server.h:79:13
+   procedure dbus_server_free_data_slot (slot_p : access dbus_arch_deps_h.dbus_int32_t);  -- ../dbus/dbus-server.h:92
    pragma Import (C, dbus_server_free_data_slot, "dbus_server_free_data_slot");
 
    function dbus_server_set_data
-     (arg1 : System.Address;
-      arg2 : int;
-      arg3 : System.Address;
-      arg4 : access procedure (arg1 : System.Address)) return dbus_types_h.dbus_bool_t;  -- ../dbus/dbus-server.h:80:13
+     (server : System.Address;
+      slot : int;
+      data : System.Address;
+      free_data_func : dbus_memory_h.DBusFreeFunction) return dbus_types_h.dbus_bool_t;  -- ../dbus/dbus-server.h:94
    pragma Import (C, dbus_server_set_data, "dbus_server_set_data");
 
-   function dbus_server_get_data (arg1 : System.Address; arg2 : int) return System.Address;  -- ../dbus/dbus-server.h:84:13
+   function dbus_server_get_data (server : System.Address; slot : int) return System.Address;  -- ../dbus/dbus-server.h:99
    pragma Import (C, dbus_server_get_data, "dbus_server_get_data");
 
 end dbus_server_h;
diff -Nru dbusada-0.3.3/thin/dbus_shared_h.ads dbusada-0.4.0/thin/dbus_shared_h.ads
--- dbusada-0.3.3/thin/dbus_shared_h.ads	2016-07-18 10:37:43.000000000 +0200
+++ dbusada-0.4.0/thin/dbus_shared_h.ads	2017-07-17 09:07:25.000000000 +0200
@@ -1,10 +1,8 @@
+pragma Ada_2005;
 pragma Style_Checks (Off);
 
-with Interfaces.C; use Interfaces.C;
-
 package dbus_shared_h is
 
-
    DBUS_SERVICE_DBUS : aliased constant String := "org.freedesktop.DBus" & ASCII.NUL;  --  ../dbus/dbus-shared.h:76
 
    DBUS_PATH_DBUS : aliased constant String := "/org/freedesktop/DBus" & ASCII.NUL;  --  ../dbus/dbus-shared.h:80
@@ -13,38 +11,44 @@
 
    DBUS_INTERFACE_DBUS : aliased constant String := "org.freedesktop.DBus" & ASCII.NUL;  --  ../dbus/dbus-shared.h:88
 
-   DBUS_INTERFACE_INTROSPECTABLE : aliased constant String := "org.freedesktop.DBus.Introspectable" & ASCII.NUL;  --  ../dbus/dbus-shared.h:90
+   DBUS_INTERFACE_MONITORING : aliased constant String := "org.freedesktop.DBus.Monitoring" & ASCII.NUL;  --  ../dbus/dbus-shared.h:90
+
+   DBUS_INTERFACE_VERBOSE : aliased constant String := "org.freedesktop.DBus.Verbose" & ASCII.NUL;  --  ../dbus/dbus-shared.h:93
+
+   DBUS_INTERFACE_INTROSPECTABLE : aliased constant String := "org.freedesktop.DBus.Introspectable" & ASCII.NUL;  --  ../dbus/dbus-shared.h:95
 
-   DBUS_INTERFACE_PROPERTIES : aliased constant String := "org.freedesktop.DBus.Properties" & ASCII.NUL;  --  ../dbus/dbus-shared.h:92
+   DBUS_INTERFACE_PROPERTIES : aliased constant String := "org.freedesktop.DBus.Properties" & ASCII.NUL;  --  ../dbus/dbus-shared.h:97
 
-   DBUS_INTERFACE_PEER : aliased constant String := "org.freedesktop.DBus.Peer" & ASCII.NUL;  --  ../dbus/dbus-shared.h:94
+   DBUS_INTERFACE_PEER : aliased constant String := "org.freedesktop.DBus.Peer" & ASCII.NUL;  --  ../dbus/dbus-shared.h:99
 
-   DBUS_INTERFACE_LOCAL : aliased constant String := "org.freedesktop.DBus.Local" & ASCII.NUL;  --  ../dbus/dbus-shared.h:100
+   DBUS_INTERFACE_LOCAL : aliased constant String := "org.freedesktop.DBus.Local" & ASCII.NUL;  --  ../dbus/dbus-shared.h:105
 
-   DBUS_NAME_FLAG_ALLOW_REPLACEMENT : constant := 16#1#;  --  ../dbus/dbus-shared.h:103
-   DBUS_NAME_FLAG_REPLACE_EXISTING : constant := 16#2#;  --  ../dbus/dbus-shared.h:104
-   DBUS_NAME_FLAG_DO_NOT_QUEUE : constant := 16#4#;  --  ../dbus/dbus-shared.h:105
+   DBUS_NAME_FLAG_ALLOW_REPLACEMENT : constant := 16#1#;  --  ../dbus/dbus-shared.h:108
+   DBUS_NAME_FLAG_REPLACE_EXISTING : constant := 16#2#;  --  ../dbus/dbus-shared.h:109
+   DBUS_NAME_FLAG_DO_NOT_QUEUE : constant := 16#4#;  --  ../dbus/dbus-shared.h:110
 
-   DBUS_REQUEST_NAME_REPLY_PRIMARY_OWNER : constant := 1;  --  ../dbus/dbus-shared.h:108
-   DBUS_REQUEST_NAME_REPLY_IN_QUEUE : constant := 2;  --  ../dbus/dbus-shared.h:109
-   DBUS_REQUEST_NAME_REPLY_EXISTS : constant := 3;  --  ../dbus/dbus-shared.h:110
-   DBUS_REQUEST_NAME_REPLY_ALREADY_OWNER : constant := 4;  --  ../dbus/dbus-shared.h:111
+   DBUS_REQUEST_NAME_REPLY_PRIMARY_OWNER : constant := 1;  --  ../dbus/dbus-shared.h:113
+   DBUS_REQUEST_NAME_REPLY_IN_QUEUE : constant := 2;  --  ../dbus/dbus-shared.h:114
+   DBUS_REQUEST_NAME_REPLY_EXISTS : constant := 3;  --  ../dbus/dbus-shared.h:115
+   DBUS_REQUEST_NAME_REPLY_ALREADY_OWNER : constant := 4;  --  ../dbus/dbus-shared.h:116
 
-   DBUS_RELEASE_NAME_REPLY_RELEASED : constant := 1;  --  ../dbus/dbus-shared.h:114
-   DBUS_RELEASE_NAME_REPLY_NON_EXISTENT : constant := 2;  --  ../dbus/dbus-shared.h:115
-   DBUS_RELEASE_NAME_REPLY_NOT_OWNER : constant := 3;  --  ../dbus/dbus-shared.h:116
+   DBUS_RELEASE_NAME_REPLY_RELEASED : constant := 1;  --  ../dbus/dbus-shared.h:119
+   DBUS_RELEASE_NAME_REPLY_NON_EXISTENT : constant := 2;  --  ../dbus/dbus-shared.h:120
+   DBUS_RELEASE_NAME_REPLY_NOT_OWNER : constant := 3;  --  ../dbus/dbus-shared.h:121
 
-   DBUS_START_REPLY_SUCCESS : constant := 1;  --  ../dbus/dbus-shared.h:119
-   DBUS_START_REPLY_ALREADY_RUNNING : constant := 2;  --  ../dbus/dbus-shared.h:120
+   DBUS_START_REPLY_SUCCESS : constant := 1;  --  ../dbus/dbus-shared.h:124
+   DBUS_START_REPLY_ALREADY_RUNNING : constant := 2;  --  ../dbus/dbus-shared.h:125
 
-   subtype DBusBusType is unsigned;
-   DBUS_BUS_SESSION : constant DBusBusType := 0;
-   DBUS_BUS_SYSTEM : constant DBusBusType := 1;
-   DBUS_BUS_STARTER : constant DBusBusType := 2;  -- ../dbus/dbus-shared.h:61:3
+   type DBusBusType is 
+     (DBUS_BUS_SESSION,
+      DBUS_BUS_SYSTEM,
+      DBUS_BUS_STARTER);
+   pragma Convention (C, DBusBusType);  -- ../dbus/dbus-shared.h:61
 
-   subtype DBusHandlerResult is unsigned;
-   DBUS_HANDLER_RESULT_HANDLED : constant DBusHandlerResult := 0;
-   DBUS_HANDLER_RESULT_NOT_YET_HANDLED : constant DBusHandlerResult := 1;
-   DBUS_HANDLER_RESULT_NEED_MEMORY : constant DBusHandlerResult := 2;  -- ../dbus/dbus-shared.h:71:3
+   type DBusHandlerResult is 
+     (DBUS_HANDLER_RESULT_HANDLED,
+      DBUS_HANDLER_RESULT_NOT_YET_HANDLED,
+      DBUS_HANDLER_RESULT_NEED_MEMORY);
+   pragma Convention (C, DBusHandlerResult);  -- ../dbus/dbus-shared.h:71
 
 end dbus_shared_h;
diff -Nru dbusada-0.3.3/thin/dbus_signature_h.ads dbusada-0.4.0/thin/dbus_signature_h.ads
--- dbusada-0.3.3/thin/dbus_signature_h.ads	2016-07-18 10:37:43.000000000 +0200
+++ dbusada-0.4.0/thin/dbus_signature_h.ads	2017-07-17 09:07:25.000000000 +0200
@@ -1,3 +1,4 @@
+pragma Ada_2005;
 pragma Style_Checks (Off);
 
 with Interfaces.C; use Interfaces.C;
@@ -10,45 +11,50 @@
 package dbus_signature_h is
 
    type DBusSignatureIter is record
-      dummy1 : System.Address;  -- ../dbus/dbus-signature.h:46:9
-      dummy2 : System.Address;  -- ../dbus/dbus-signature.h:47:9
-      dummy8 : aliased dbus_arch_deps_h.dbus_uint32_t;  -- ../dbus/dbus-signature.h:48:17
-      dummy12 : aliased int;  -- ../dbus/dbus-signature.h:49:7
-      dummy17 : aliased int;  -- ../dbus/dbus-signature.h:50:7
+      dummy1 : System.Address;  -- ../dbus/dbus-signature.h:46
+      dummy2 : System.Address;  -- ../dbus/dbus-signature.h:47
+      dummy8 : aliased dbus_arch_deps_h.dbus_uint32_t;  -- ../dbus/dbus-signature.h:48
+      dummy12 : aliased int;  -- ../dbus/dbus-signature.h:49
+      dummy17 : aliased int;  -- ../dbus/dbus-signature.h:50
    end record;
-   pragma Convention (C_Pass_By_Copy, DBusSignatureIter);  -- ../dbus/dbus-signature.h:51:3
+   pragma Convention (C_Pass_By_Copy, DBusSignatureIter);  -- ../dbus/dbus-signature.h:51
 
-   procedure dbus_signature_iter_init (arg1 : access DBusSignatureIter; arg2 : Interfaces.C.Strings.chars_ptr);  -- ../dbus/dbus-signature.h:53:17
+   --  skipped anonymous struct anon_7
+
+   procedure dbus_signature_iter_init (iter : access DBusSignatureIter; signature : Interfaces.C.Strings.chars_ptr);  -- ../dbus/dbus-signature.h:54
    pragma Import (C, dbus_signature_iter_init, "dbus_signature_iter_init");
 
-   function dbus_signature_iter_get_current_type (arg1 : access constant DBusSignatureIter) return int;  -- ../dbus/dbus-signature.h:56:17
+   function dbus_signature_iter_get_current_type (iter : access constant DBusSignatureIter) return int;  -- ../dbus/dbus-signature.h:58
    pragma Import (C, dbus_signature_iter_get_current_type, "dbus_signature_iter_get_current_type");
 
-   function dbus_signature_iter_get_signature (arg1 : access constant DBusSignatureIter) return Interfaces.C.Strings.chars_ptr;  -- ../dbus/dbus-signature.h:58:17
+   function dbus_signature_iter_get_signature (iter : access constant DBusSignatureIter) return Interfaces.C.Strings.chars_ptr;  -- ../dbus/dbus-signature.h:61
    pragma Import (C, dbus_signature_iter_get_signature, "dbus_signature_iter_get_signature");
 
-   function dbus_signature_iter_get_element_type (arg1 : access constant DBusSignatureIter) return int;  -- ../dbus/dbus-signature.h:60:17
+   function dbus_signature_iter_get_element_type (iter : access constant DBusSignatureIter) return int;  -- ../dbus/dbus-signature.h:64
    pragma Import (C, dbus_signature_iter_get_element_type, "dbus_signature_iter_get_element_type");
 
-   function dbus_signature_iter_next (arg1 : access DBusSignatureIter) return dbus_types_h.dbus_bool_t;  -- ../dbus/dbus-signature.h:62:17
+   function dbus_signature_iter_next (iter : access DBusSignatureIter) return dbus_types_h.dbus_bool_t;  -- ../dbus/dbus-signature.h:67
    pragma Import (C, dbus_signature_iter_next, "dbus_signature_iter_next");
 
-   procedure dbus_signature_iter_recurse (arg1 : access constant DBusSignatureIter; arg2 : access DBusSignatureIter);  -- ../dbus/dbus-signature.h:64:17
+   procedure dbus_signature_iter_recurse (iter : access constant DBusSignatureIter; subiter : access DBusSignatureIter);  -- ../dbus/dbus-signature.h:70
    pragma Import (C, dbus_signature_iter_recurse, "dbus_signature_iter_recurse");
 
-   function dbus_signature_validate (arg1 : Interfaces.C.Strings.chars_ptr; arg2 : access dbus_errors_h.DBusError) return dbus_types_h.dbus_bool_t;  -- ../dbus/dbus-signature.h:67:17
+   function dbus_signature_validate (signature : Interfaces.C.Strings.chars_ptr; error : access dbus_errors_h.DBusError) return dbus_types_h.dbus_bool_t;  -- ../dbus/dbus-signature.h:74
    pragma Import (C, dbus_signature_validate, "dbus_signature_validate");
 
-   function dbus_signature_validate_single (arg1 : Interfaces.C.Strings.chars_ptr; arg2 : access dbus_errors_h.DBusError) return dbus_types_h.dbus_bool_t;  -- ../dbus/dbus-signature.h:70:17
+   function dbus_signature_validate_single (signature : Interfaces.C.Strings.chars_ptr; error : access dbus_errors_h.DBusError) return dbus_types_h.dbus_bool_t;  -- ../dbus/dbus-signature.h:78
    pragma Import (C, dbus_signature_validate_single, "dbus_signature_validate_single");
 
-   function dbus_type_is_basic (arg1 : int) return dbus_types_h.dbus_bool_t;  -- ../dbus/dbus-signature.h:73:17
+   function dbus_type_is_valid (typecode : int) return dbus_types_h.dbus_bool_t;  -- ../dbus/dbus-signature.h:82
+   pragma Import (C, dbus_type_is_valid, "dbus_type_is_valid");
+
+   function dbus_type_is_basic (typecode : int) return dbus_types_h.dbus_bool_t;  -- ../dbus/dbus-signature.h:85
    pragma Import (C, dbus_type_is_basic, "dbus_type_is_basic");
 
-   function dbus_type_is_container (arg1 : int) return dbus_types_h.dbus_bool_t;  -- ../dbus/dbus-signature.h:74:17
+   function dbus_type_is_container (typecode : int) return dbus_types_h.dbus_bool_t;  -- ../dbus/dbus-signature.h:87
    pragma Import (C, dbus_type_is_container, "dbus_type_is_container");
 
-   function dbus_type_is_fixed (arg1 : int) return dbus_types_h.dbus_bool_t;  -- ../dbus/dbus-signature.h:75:17
+   function dbus_type_is_fixed (typecode : int) return dbus_types_h.dbus_bool_t;  -- ../dbus/dbus-signature.h:89
    pragma Import (C, dbus_type_is_fixed, "dbus_type_is_fixed");
 
 end dbus_signature_h;
diff -Nru dbusada-0.3.3/thin/dbus_threads_h.ads dbusada-0.4.0/thin/dbus_threads_h.ads
--- dbusada-0.3.3/thin/dbus_threads_h.ads	2016-07-18 10:37:43.000000000 +0200
+++ dbusada-0.4.0/thin/dbus_threads_h.ads	2017-07-17 09:07:25.000000000 +0200
@@ -1,3 +1,4 @@
+pragma Ada_2005;
 pragma Style_Checks (Off);
 
 with Interfaces.C; use Interfaces.C;
@@ -10,36 +11,50 @@
 
    --  skipped empty struct DBusCondVar
 
-   type DBusMutexNewFunction is access function return System.Address;  -- ../dbus/dbus-threads.h:46:24
+   type DBusMutexNewFunction is access function return System.Address;
+   pragma Convention (C, DBusMutexNewFunction);  -- ../dbus/dbus-threads.h:46
 
-   type DBusMutexFreeFunction is access procedure (arg1 : System.Address);  -- ../dbus/dbus-threads.h:48:24
+   type DBusMutexFreeFunction is access procedure (arg1 : System.Address);
+   pragma Convention (C, DBusMutexFreeFunction);  -- ../dbus/dbus-threads.h:48
 
-   type DBusMutexLockFunction is access function (arg1 : System.Address) return dbus_types_h.dbus_bool_t;  -- ../dbus/dbus-threads.h:50:24
+   type DBusMutexLockFunction is access function (arg1 : System.Address) return dbus_types_h.dbus_bool_t;
+   pragma Convention (C, DBusMutexLockFunction);  -- ../dbus/dbus-threads.h:50
 
-   type DBusMutexUnlockFunction is access function (arg1 : System.Address) return dbus_types_h.dbus_bool_t;  -- ../dbus/dbus-threads.h:52:24
+   type DBusMutexUnlockFunction is access function (arg1 : System.Address) return dbus_types_h.dbus_bool_t;
+   pragma Convention (C, DBusMutexUnlockFunction);  -- ../dbus/dbus-threads.h:52
 
-   type DBusRecursiveMutexNewFunction is access function return System.Address;  -- ../dbus/dbus-threads.h:61:24
+   type DBusRecursiveMutexNewFunction is access function return System.Address;
+   pragma Convention (C, DBusRecursiveMutexNewFunction);  -- ../dbus/dbus-threads.h:61
 
-   type DBusRecursiveMutexFreeFunction is access procedure (arg1 : System.Address);  -- ../dbus/dbus-threads.h:64:24
+   type DBusRecursiveMutexFreeFunction is access procedure (arg1 : System.Address);
+   pragma Convention (C, DBusRecursiveMutexFreeFunction);  -- ../dbus/dbus-threads.h:64
 
-   type DBusRecursiveMutexLockFunction is access procedure (arg1 : System.Address);  -- ../dbus/dbus-threads.h:68:24
+   type DBusRecursiveMutexLockFunction is access procedure (arg1 : System.Address);
+   pragma Convention (C, DBusRecursiveMutexLockFunction);  -- ../dbus/dbus-threads.h:68
 
-   type DBusRecursiveMutexUnlockFunction is access procedure (arg1 : System.Address);  -- ../dbus/dbus-threads.h:72:24
+   type DBusRecursiveMutexUnlockFunction is access procedure (arg1 : System.Address);
+   pragma Convention (C, DBusRecursiveMutexUnlockFunction);  -- ../dbus/dbus-threads.h:72
 
-   type DBusCondVarNewFunction is access function return System.Address;  -- ../dbus/dbus-threads.h:77:26
+   type DBusCondVarNewFunction is access function return System.Address;
+   pragma Convention (C, DBusCondVarNewFunction);  -- ../dbus/dbus-threads.h:77
 
-   type DBusCondVarFreeFunction is access procedure (arg1 : System.Address);  -- ../dbus/dbus-threads.h:80:26
+   type DBusCondVarFreeFunction is access procedure (arg1 : System.Address);
+   pragma Convention (C, DBusCondVarFreeFunction);  -- ../dbus/dbus-threads.h:80
 
-   type DBusCondVarWaitFunction is access procedure (arg1 : System.Address; arg2 : System.Address);  -- ../dbus/dbus-threads.h:92:26
+   type DBusCondVarWaitFunction is access procedure (arg1 : System.Address; arg2 : System.Address);
+   pragma Convention (C, DBusCondVarWaitFunction);  -- ../dbus/dbus-threads.h:92
 
    type DBusCondVarWaitTimeoutFunction is access function
         (arg1 : System.Address;
          arg2 : System.Address;
-         arg3 : int) return dbus_types_h.dbus_bool_t;  -- ../dbus/dbus-threads.h:101:26
+         arg3 : int) return dbus_types_h.dbus_bool_t;
+   pragma Convention (C, DBusCondVarWaitTimeoutFunction);  -- ../dbus/dbus-threads.h:101
 
-   type DBusCondVarWakeOneFunction is access procedure (arg1 : System.Address);  -- ../dbus/dbus-threads.h:108:26
+   type DBusCondVarWakeOneFunction is access procedure (arg1 : System.Address);
+   pragma Convention (C, DBusCondVarWakeOneFunction);  -- ../dbus/dbus-threads.h:108
 
-   type DBusCondVarWakeAllFunction is access procedure (arg1 : System.Address);  -- ../dbus/dbus-threads.h:114:26
+   type DBusCondVarWakeAllFunction is access procedure (arg1 : System.Address);
+   pragma Convention (C, DBusCondVarWakeAllFunction);  -- ../dbus/dbus-threads.h:114
 
    subtype DBusThreadFunctionsMask is unsigned;
    DBUS_THREAD_FUNCTIONS_MUTEX_NEW_MASK : constant DBusThreadFunctionsMask := 1;
@@ -56,38 +71,37 @@
    DBUS_THREAD_FUNCTIONS_RECURSIVE_MUTEX_FREE_MASK : constant DBusThreadFunctionsMask := 2048;
    DBUS_THREAD_FUNCTIONS_RECURSIVE_MUTEX_LOCK_MASK : constant DBusThreadFunctionsMask := 4096;
    DBUS_THREAD_FUNCTIONS_RECURSIVE_MUTEX_UNLOCK_MASK : constant DBusThreadFunctionsMask := 8192;
-   DBUS_THREAD_FUNCTIONS_ALL_MASK : constant DBusThreadFunctionsMask := 16383;  -- ../dbus/dbus-threads.h:138:3
+   DBUS_THREAD_FUNCTIONS_ALL_MASK : constant DBusThreadFunctionsMask := 16383;  -- ../dbus/dbus-threads.h:138
 
    type DBusThreadFunctions is record
-      mask : aliased unsigned;  -- ../dbus/dbus-threads.h:163:16
-      mutex_new : access function return System.Address;  -- ../dbus/dbus-threads.h:165:24
-      mutex_free : access procedure (arg1 : System.Address);  -- ../dbus/dbus-threads.h:166:25
-      mutex_lock : access function (arg1 : System.Address) return dbus_types_h.dbus_bool_t;  -- ../dbus/dbus-threads.h:167:25
-      mutex_unlock : access function (arg1 : System.Address) return dbus_types_h.dbus_bool_t;  -- ../dbus/dbus-threads.h:168:27
-      condvar_new : access function return System.Address;  -- ../dbus/dbus-threads.h:170:26
-      condvar_free : access procedure (arg1 : System.Address);  -- ../dbus/dbus-threads.h:171:27
-      condvar_wait : access procedure (arg1 : System.Address; arg2 : System.Address);  -- ../dbus/dbus-threads.h:172:27
-      condvar_wait_timeout : access function
-           (arg1 : System.Address;
-            arg2 : System.Address;
-            arg3 : int) return dbus_types_h.dbus_bool_t;  -- ../dbus/dbus-threads.h:173:34
-      condvar_wake_one : access procedure (arg1 : System.Address);  -- ../dbus/dbus-threads.h:174:30
-      condvar_wake_all : access procedure (arg1 : System.Address);  -- ../dbus/dbus-threads.h:175:30
-      recursive_mutex_new : access function return System.Address;  -- ../dbus/dbus-threads.h:177:33
-      recursive_mutex_free : access procedure (arg1 : System.Address);  -- ../dbus/dbus-threads.h:178:34
-      recursive_mutex_lock : access procedure (arg1 : System.Address);  -- ../dbus/dbus-threads.h:179:34
-      recursive_mutex_unlock : access procedure (arg1 : System.Address);  -- ../dbus/dbus-threads.h:180:36
-      padding1 : access procedure;  -- ../dbus/dbus-threads.h:182:11
-      padding2 : access procedure;  -- ../dbus/dbus-threads.h:183:11
-      padding3 : access procedure;  -- ../dbus/dbus-threads.h:184:11
-      padding4 : access procedure;  -- ../dbus/dbus-threads.h:185:11
+      mask : aliased unsigned;  -- ../dbus/dbus-threads.h:154
+      mutex_new : DBusMutexNewFunction;  -- ../dbus/dbus-threads.h:156
+      mutex_free : DBusMutexFreeFunction;  -- ../dbus/dbus-threads.h:157
+      mutex_lock : DBusMutexLockFunction;  -- ../dbus/dbus-threads.h:158
+      mutex_unlock : DBusMutexUnlockFunction;  -- ../dbus/dbus-threads.h:159
+      condvar_new : DBusCondVarNewFunction;  -- ../dbus/dbus-threads.h:161
+      condvar_free : DBusCondVarFreeFunction;  -- ../dbus/dbus-threads.h:162
+      condvar_wait : DBusCondVarWaitFunction;  -- ../dbus/dbus-threads.h:163
+      condvar_wait_timeout : DBusCondVarWaitTimeoutFunction;  -- ../dbus/dbus-threads.h:164
+      condvar_wake_one : DBusCondVarWakeOneFunction;  -- ../dbus/dbus-threads.h:165
+      condvar_wake_all : DBusCondVarWakeAllFunction;  -- ../dbus/dbus-threads.h:166
+      recursive_mutex_new : DBusRecursiveMutexNewFunction;  -- ../dbus/dbus-threads.h:168
+      recursive_mutex_free : DBusRecursiveMutexFreeFunction;  -- ../dbus/dbus-threads.h:169
+      recursive_mutex_lock : DBusRecursiveMutexLockFunction;  -- ../dbus/dbus-threads.h:170
+      recursive_mutex_unlock : DBusRecursiveMutexUnlockFunction;  -- ../dbus/dbus-threads.h:171
+      padding1 : access procedure;  -- ../dbus/dbus-threads.h:173
+      padding2 : access procedure;  -- ../dbus/dbus-threads.h:174
+      padding3 : access procedure;  -- ../dbus/dbus-threads.h:175
+      padding4 : access procedure;  -- ../dbus/dbus-threads.h:176
    end record;
-   pragma Convention (C_Pass_By_Copy, DBusThreadFunctions);  -- ../dbus/dbus-threads.h:187:3
+   pragma Convention (C_Pass_By_Copy, DBusThreadFunctions);  -- ../dbus/dbus-threads.h:178
 
-   function dbus_threads_init (arg1 : access constant DBusThreadFunctions) return dbus_types_h.dbus_bool_t;  -- ../dbus/dbus-threads.h:189:14
+   --  skipped anonymous struct anon_9
+
+   function dbus_threads_init (functions : access constant DBusThreadFunctions) return dbus_types_h.dbus_bool_t;  -- ../dbus/dbus-threads.h:181
    pragma Import (C, dbus_threads_init, "dbus_threads_init");
 
-   function dbus_threads_init_default return dbus_types_h.dbus_bool_t;  -- ../dbus/dbus-threads.h:190:14
+   function dbus_threads_init_default return dbus_types_h.dbus_bool_t;  -- ../dbus/dbus-threads.h:183
    pragma Import (C, dbus_threads_init_default, "dbus_threads_init_default");
 
 end dbus_threads_h;
diff -Nru dbusada-0.3.3/thin/dbus_types_h.ads dbusada-0.4.0/thin/dbus_types_h.ads
--- dbusada-0.3.3/thin/dbus_types_h.ads	2016-07-18 10:37:43.000000000 +0200
+++ dbusada-0.4.0/thin/dbus_types_h.ads	2017-07-17 09:07:25.000000000 +0200
@@ -1,13 +1,58 @@
+pragma Ada_2005;
 pragma Style_Checks (Off);
-pragma Warnings (Off);
 
 with Interfaces.C; use Interfaces.C;
 with dbus_arch_deps_h;
+with Interfaces.C.Strings;
 
 package dbus_types_h is
 
-   subtype dbus_unichar_t is dbus_arch_deps_h.dbus_uint32_t;  -- ../dbus/dbus-types.h:33:24
+   subtype dbus_unichar_t is dbus_arch_deps_h.dbus_uint32_t;  -- ../dbus/dbus-types.h:33
 
-   subtype dbus_bool_t is dbus_arch_deps_h.dbus_uint32_t;  -- ../dbus/dbus-types.h:35:24
+   subtype dbus_bool_t is dbus_arch_deps_h.dbus_uint32_t;  -- ../dbus/dbus-types.h:35
+
+   type DBus8ByteStruct is record
+      first32 : aliased dbus_arch_deps_h.dbus_uint32_t;  -- ../dbus/dbus-types.h:123
+      second32 : aliased dbus_arch_deps_h.dbus_uint32_t;  -- ../dbus/dbus-types.h:124
+   end record;
+   pragma Convention (C_Pass_By_Copy, DBus8ByteStruct);  -- ../dbus/dbus-types.h:125
+
+   --  skipped anonymous struct anon_1
+
+   type DBusBasicValue_bytes_array is array (0 .. 7) of aliased unsigned_char;
+   type DBusBasicValue (discr : unsigned := 0) is record
+      case discr is
+         when 0 =>
+            bytes : aliased DBusBasicValue_bytes_array;  -- ../dbus/dbus-types.h:139
+         when 1 =>
+            i16 : aliased dbus_arch_deps_h.dbus_int16_t;  -- ../dbus/dbus-types.h:140
+         when 2 =>
+            u16 : aliased dbus_arch_deps_h.dbus_uint16_t;  -- ../dbus/dbus-types.h:141
+         when 3 =>
+            i32 : aliased dbus_arch_deps_h.dbus_int32_t;  -- ../dbus/dbus-types.h:142
+         when 4 =>
+            u32 : aliased dbus_arch_deps_h.dbus_uint32_t;  -- ../dbus/dbus-types.h:143
+         when 5 =>
+            bool_val : aliased dbus_bool_t;  -- ../dbus/dbus-types.h:144
+         when 6 =>
+            i64 : aliased dbus_arch_deps_h.dbus_int64_t;  -- ../dbus/dbus-types.h:145
+         when 7 =>
+            u64 : aliased dbus_arch_deps_h.dbus_uint64_t;  -- ../dbus/dbus-types.h:146
+         when 8 =>
+            eight : aliased DBus8ByteStruct;  -- ../dbus/dbus-types.h:147
+         when 9 =>
+            dbl : aliased double;  -- ../dbus/dbus-types.h:148
+         when 10 =>
+            byt : aliased unsigned_char;  -- ../dbus/dbus-types.h:149
+         when 11 =>
+            str : Interfaces.C.Strings.chars_ptr;  -- ../dbus/dbus-types.h:150
+         when others =>
+            fd : aliased int;  -- ../dbus/dbus-types.h:151
+      end case;
+   end record;
+   pragma Convention (C_Pass_By_Copy, DBusBasicValue);
+   pragma Unchecked_Union (DBusBasicValue);  -- ../dbus/dbus-types.h:152
+
+   --  skipped anonymous struct anon_2
 
 end dbus_types_h;
diff -Nru dbusada-0.3.3/thin/stdarg_h.ads dbusada-0.4.0/thin/stdarg_h.ads
--- dbusada-0.3.3/thin/stdarg_h.ads	2016-07-18 10:37:43.000000000 +0200
+++ dbusada-0.4.0/thin/stdarg_h.ads	2017-07-17 09:07:25.000000000 +0200
@@ -1,17 +1,20 @@
+pragma Ada_2005;
 pragma Style_Checks (Off);
-pragma Warnings (Off);
 
-with Interfaces.C; use Interfaces.C;
 with System;
 
 package stdarg_h is
 
-   --  unsupported macro: va_start(v,l) __builtin_va_start(v,l)
-   --  unsupported macro: va_end(v) __builtin_va_end(v)
-   --  unsupported macro: va_arg(v,l) __builtin_va_arg(v,l)
-   --  unsupported macro: va_copy(d,s) __builtin_va_copy(d,s)
-   subtype uu_gnuc_va_list is System.Address;  -- /opt/gnat-gpl-2010/bin/../lib/gcc/i686-pc-linux-gnu/4.3.6/include/stdarg.h:43:27
+   --  arg-macro: procedure va_start (v, l)
+   --    __builtin_va_start(v,l)
+   --  arg-macro: procedure va_end (v)
+   --    __builtin_va_end(v)
+   --  arg-macro: procedure va_arg (v, l)
+   --    __builtin_va_arg(v,l)
+   --  arg-macro: procedure va_copy (d, s)
+   --    __builtin_va_copy(d,s)
+   subtype uu_gnuc_va_list is System.Address;  -- /opt/gnat-gpl-2017-x86_64-linux-bin/lib/gcc/x86_64-pc-linux-gnu/6.3.1/include/stdarg.h:40
 
-   subtype va_list is uu_gnuc_va_list;  -- /opt/gnat-gpl-2010/bin/../lib/gcc/i686-pc-linux-gnu/4.3.6/include/stdarg.h:105:24
+   subtype va_list is uu_gnuc_va_list;  -- /opt/gnat-gpl-2017-x86_64-linux-bin/lib/gcc/x86_64-pc-linux-gnu/6.3.1/include/stdarg.h:99
 
 end stdarg_h;
diff -Nru dbusada-0.3.3/thin/stddef_h.ads dbusada-0.4.0/thin/stddef_h.ads
--- dbusada-0.3.3/thin/stddef_h.ads	2016-07-18 10:37:43.000000000 +0200
+++ dbusada-0.4.0/thin/stddef_h.ads	2017-07-17 09:07:25.000000000 +0200
@@ -1,15 +1,21 @@
+pragma Ada_2005;
 pragma Style_Checks (Off);
 
 with Interfaces.C; use Interfaces.C;
 
 package stddef_h is
 
-   --  unsupported macro: NULL ((void *)0)
-   --  unsupported macro: offsetof(TYPE,MEMBER) __builtin_offsetof (TYPE, MEMBER)
-   subtype ptrdiff_t is int;  -- /opt/gnat-gpl-2010/bin/../lib/gcc/i686-pc-linux-gnu/4.3.6/include/stddef.h:152:26
-
-   subtype size_t is unsigned;  -- /opt/gnat-gpl-2010/bin/../lib/gcc/i686-pc-linux-gnu/4.3.6/include/stddef.h:214:23
-
-   subtype wchar_t is long;  -- /opt/gnat-gpl-2010/bin/../lib/gcc/i686-pc-linux-gnu/4.3.6/include/stddef.h:326:24
+   --  unsupported macro: NULL __null
+   --  arg-macro: procedure offsetof (TYPE, MEMBER)
+   --    __builtin_offsetof (TYPE, MEMBER)
+   subtype ptrdiff_t is long;  -- /opt/gnat-gpl-2017-x86_64-linux-bin/lib/gcc/x86_64-pc-linux-gnu/6.3.1/include/stddef.h:149
+
+   subtype size_t is unsigned_long;  -- /opt/gnat-gpl-2017-x86_64-linux-bin/lib/gcc/x86_64-pc-linux-gnu/6.3.1/include/stddef.h:216
+
+   type max_align_t is record
+      uu_max_align_ll : aliased Long_Long_Integer;  -- /opt/gnat-gpl-2017-x86_64-linux-bin/lib/gcc/x86_64-pc-linux-gnu/6.3.1/include/stddef.h:427
+      uu_max_align_ld : aliased long_double;  -- /opt/gnat-gpl-2017-x86_64-linux-bin/lib/gcc/x86_64-pc-linux-gnu/6.3.1/include/stddef.h:428
+   end record;
+   pragma Convention (C_Pass_By_Copy, max_align_t);  -- /opt/gnat-gpl-2017-x86_64-linux-bin/lib/gcc/x86_64-pc-linux-gnu/6.3.1/include/stddef.h:429
 
 end stddef_h;
diff -Nru dbusada-0.3.3/debian/addon/dbus_ada.gpr dbusada-0.4.0/debian/addon/dbus_ada.gpr
--- dbusada-0.3.3/debian/addon/dbus_ada.gpr	2016-07-11 09:37:25.000000000 +0200
+++ dbusada-0.4.0/debian/addon/dbus_ada.gpr	1970-01-01 01:00:00.000000000 +0100
@@ -1,24 +0,0 @@
---  D_Bus/Ada project file
---  Copyright (C) 2012-2016 Reto Buerki <reet@codelabs.ch>
---
---  This program is free software; you can redistribute it and/or modify
---  it under the terms of the GNU General Public License as published by
---  the Free Software Foundation; either version 2 of the License, or
---  (at your option) any later version.
---
---  This program is distributed in the hope that it will be useful,
---  but WITHOUT ANY WARRANTY; without even the implied warranty of
---  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
---  GNU General Public License for more details.
-
-project DBus_Ada is
-   for Source_Dirs use ("/usr/share/ada/adainclude/dbus-ada");
-   for Library_Name use "dbusada";
-   for Library_Dir use "/usr/lib";
-   for Library_ALI_Dir use "/usr/lib/ada/adalib/dbus-ada";
-   for Library_Kind use "dynamic";
-   for Externally_Built use "true";
-   package Linker is
-      for Linker_Options use ("-ldbus-1");
-   end Linker;
-end DBus_Ada;
diff -Nru dbusada-0.3.3/debian/changelog dbusada-0.4.0/debian/changelog
--- dbusada-0.3.3/debian/changelog	2016-07-18 10:37:11.000000000 +0200
+++ dbusada-0.4.0/debian/changelog	2017-09-01 13:18:41.000000000 +0200
@@ -1,3 +1,30 @@
+dbusada (0.4.0-0.1) unstable; urgency=medium
+
+  [ Gianfranco Costamagna <locutusofborg@debian.org>
+  * Non-maintainer upload.
+
+  [ Nicolas Boulenguez <nicolas@debian.org> ]
+  * New upstream release (Closes: #872544).
+  * Update watch file.
+  * Test: remove unused variable, display executed commands.
+  * Debhelper 10. Replace deprecated --fail-missing dh_install option.
+  * Update std-version to 4.1.0.
+  * Update URLs in https mode.
+  * Handle nocheck or nodoc if in DEB_BUILD_OPTIONS is set.
+  * Avoid hardcoded versions whenever possible.
+  * Enable all hardening flags.
+  * d/rules: Declare phony targets.
+  * Make runtime package Multi-Arch: same. Install project into right path.
+  * debian/control: make short descriptions distinct.
+  * Register documentation in doc-base.
+  * Build with gnat-7 and libahven6-dev.
+  * Refresh the thin binding.
+
+  [ Steve Langasek <steve.langasek@ubuntu.com> ]
+  * Fix order of options passed when linking the test runner
+
+ -- Gianfranco Costamagna <locutusofborg@debian.org>  Fri, 01 Sep 2017 13:18:41 +0200
+
 dbusada (0.3.3-1) unstable; urgency=medium
 
   * Update to release 0.3.3 (Closes: #758741, #795983)
diff -Nru dbusada-0.3.3/debian/compat dbusada-0.4.0/debian/compat
--- dbusada-0.3.3/debian/compat	2016-07-11 09:37:25.000000000 +0200
+++ dbusada-0.4.0/debian/compat	2017-09-01 13:18:41.000000000 +0200
@@ -1 +1 @@
-9
+10
diff -Nru dbusada-0.3.3/debian/control dbusada-0.4.0/debian/control
--- dbusada-0.3.3/debian/control	2016-07-11 09:37:25.000000000 +0200
+++ dbusada-0.4.0/debian/control	2017-09-01 13:18:41.000000000 +0200
@@ -2,25 +2,33 @@
 Section: libs
 Priority: optional
 Maintainer: Reto Buerki <reet@codelabs.ch>
-Build-Depends: asciidoc, debhelper (>= 9), gnat, gnat-6, libahven5-dev,
+Build-Depends: asciidoc, debhelper (>= 10),
+ gnat, gnat-7,
+# This line is parsed by debian/rules.
+ libahven6-dev,
+ pkg-config,
+# To regenerate the thin binding.
  libdbus-1-dev, libdbus-glib-1-dev, source-highlight
-Standards-Version: 3.9.8
+Standards-Version: 4.1.0
 Homepage: https://www.codelabs.ch/dbus-ada/
 Vcs-Browser: https://git.codelabs.ch/?p=dbus-ada.git
 Vcs-Git: https://git.codelabs.ch/git/dbus-ada.git -b debian
 
-Package: libdbusada0.3.3
+Package: libdbusada0.4.0
+# This line is parsed by debian/rules.
 Architecture: any
+Multi-Arch: same
 Depends: ${shlibs:Depends}, ${misc:Depends}
-Description: Ada bindings to the D-Bus message bus system
+Description: Ada bindings to the D-Bus message bus system (runtime)
  The D_Bus/Ada library provides an Ada binding to the D-Bus message bus used for
  inter-process communication on Linux desktop systems.
 
-Package: libdbusada2-dev
+Package: libdbusada3-dev
+# This line is parsed by debian/rules.
 Section: libdevel
 Architecture: any
-Depends: ${misc:Depends}, libdbusada0.3.3 (= ${binary:Version}),
- libdbus-1-dev, libdbus-glib-1-dev, gnat, gnat-6
+Depends: ${misc:Depends}, libdbusada0.4.0 (= ${binary:Version}),
+ libdbus-1-dev, libdbus-glib-1-dev, gnat, gnat-7
 Description: Ada bindings to the D-Bus message bus system
  The D_Bus/Ada library provides an Ada binding to the D-Bus message bus used for
  inter-process communication on Linux desktop systems.
diff -Nru dbusada-0.3.3/debian/copyright dbusada-0.4.0/debian/copyright
--- dbusada-0.3.3/debian/copyright	2016-07-11 09:37:25.000000000 +0200
+++ dbusada-0.4.0/debian/copyright	2017-09-01 13:18:41.000000000 +0200
@@ -1,4 +1,4 @@
-Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
+Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
 Upstream-Name: D_Bus/Ada
 Upstream-Contact: Reto Buerki <reet@codelabs.ch>
 Source: http://www.codelabs.ch/download/
diff -Nru dbusada-0.3.3/debian/dbus_ada.gpr dbusada-0.4.0/debian/dbus_ada.gpr
--- dbusada-0.3.3/debian/dbus_ada.gpr	1970-01-01 01:00:00.000000000 +0100
+++ dbusada-0.4.0/debian/dbus_ada.gpr	2017-09-01 13:18:41.000000000 +0200
@@ -0,0 +1,6 @@
+--  This project is deprecated.
+--  Please use "dbusada.gpr" instead (without underscore).
+
+with "dbusada.gpr";
+abstract project DBus_Ada is
+end DBus_Ada;
diff -Nru dbusada-0.3.3/debian/libdbusada0.3.3.install dbusada-0.4.0/debian/libdbusada0.3.3.install
--- dbusada-0.3.3/debian/libdbusada0.3.3.install	2016-07-11 09:37:25.000000000 +0200
+++ dbusada-0.4.0/debian/libdbusada0.3.3.install	1970-01-01 01:00:00.000000000 +0100
@@ -1 +0,0 @@
-lib/*.so.* /usr/lib
diff -Nru dbusada-0.3.3/debian/libdbusada0.3.3.lintian-overrides dbusada-0.4.0/debian/libdbusada0.3.3.lintian-overrides
--- dbusada-0.3.3/debian/libdbusada0.3.3.lintian-overrides	2016-07-11 09:37:25.000000000 +0200
+++ dbusada-0.4.0/debian/libdbusada0.3.3.lintian-overrides	1970-01-01 01:00:00.000000000 +0100
@@ -1 +0,0 @@
-libdbusada0.3.3: shlib-with-executable-stack usr/lib/libdbusada.so.0.3.3
diff -Nru dbusada-0.3.3/debian/libdbusada0.4.0.lintian-overrides dbusada-0.4.0/debian/libdbusada0.4.0.lintian-overrides
--- dbusada-0.3.3/debian/libdbusada0.4.0.lintian-overrides	1970-01-01 01:00:00.000000000 +0100
+++ dbusada-0.4.0/debian/libdbusada0.4.0.lintian-overrides	2017-09-01 13:18:41.000000000 +0200
@@ -0,0 +1 @@
+shlib-with-executable-stack usr/lib/*/libdbusada.so.*
diff -Nru dbusada-0.3.3/debian/libdbusada2-dev.docs dbusada-0.4.0/debian/libdbusada2-dev.docs
--- dbusada-0.3.3/debian/libdbusada2-dev.docs	2016-07-11 09:37:25.000000000 +0200
+++ dbusada-0.4.0/debian/libdbusada2-dev.docs	1970-01-01 01:00:00.000000000 +0100
@@ -1 +0,0 @@
-doc/html/*
diff -Nru dbusada-0.3.3/debian/libdbusada2-dev.examples dbusada-0.4.0/debian/libdbusada2-dev.examples
--- dbusada-0.3.3/debian/libdbusada2-dev.examples	2016-07-11 09:37:25.000000000 +0200
+++ dbusada-0.4.0/debian/libdbusada2-dev.examples	1970-01-01 01:00:00.000000000 +0100
@@ -1 +0,0 @@
-examples/*
diff -Nru dbusada-0.3.3/debian/libdbusada2-dev.install dbusada-0.4.0/debian/libdbusada2-dev.install
--- dbusada-0.3.3/debian/libdbusada2-dev.install	2016-07-11 09:37:25.000000000 +0200
+++ dbusada-0.4.0/debian/libdbusada2-dev.install	1970-01-01 01:00:00.000000000 +0100
@@ -1,5 +0,0 @@
-lib/*.so /usr/lib/
-lib/*.a /usr/lib/
-lib/dbus-ada/*.ali usr/lib/ada/adalib/dbus-ada
-include/dbus-ada/*.ad* usr/share/ada/adainclude/dbus-ada
-debian/addon/dbus_ada.gpr usr/share/ada/adainclude
diff -Nru dbusada-0.3.3/debian/patches/fix-test-linker-order.patch dbusada-0.4.0/debian/patches/fix-test-linker-order.patch
--- dbusada-0.3.3/debian/patches/fix-test-linker-order.patch	1970-01-01 01:00:00.000000000 +0100
+++ dbusada-0.4.0/debian/patches/fix-test-linker-order.patch	2017-09-01 13:18:41.000000000 +0200
@@ -0,0 +1,19 @@
+Description: Fix order of options passed when linking the test runner
+ This reverts a change between 0.3.3 and 0.4.0 which changes the order in
+ which options are passed to the linker on the commandline.  That change
+ broke compatibility with Ubuntu's default linker options, which include
+ -Wl,--as-needed.
+Author: Steve Langasek <steve.langasek@ubuntu.com>
+Last-Update: 2017-09-01
+
+--- dbusada-0.4.0.orig/d_bus_ada_tests.gpr
++++ dbusada-0.4.0/d_bus_ada_tests.gpr
+@@ -44,7 +44,7 @@ project D_Bus_Ada_Tests is
+    end Compiler;
+ 
+    package Linker is
+-      for Default_Switches ("ada") use D_Bus_Ada_Common.Linker_Switches;
++      for Linker_Options use D_Bus_Ada_Common.Linker_Switches;
+    end Linker;
+ 
+    package Binder is
diff -Nru dbusada-0.3.3/debian/patches/refresh-thin.diff dbusada-0.4.0/debian/patches/refresh-thin.diff
--- dbusada-0.3.3/debian/patches/refresh-thin.diff	1970-01-01 01:00:00.000000000 +0100
+++ dbusada-0.4.0/debian/patches/refresh-thin.diff	2017-09-01 13:18:41.000000000 +0200
@@ -0,0 +1,63 @@
+Description: provide a target to regenerate the thin binding
+Author: Nicolas Boulenguez <nicolas@debian.org>
+
+--- a/Makefile
++++ b/Makefile
+@@ -34,14 +34,14 @@
+ 
+ all: build_lib
+ 
+-build_lib:
++build_lib: | $(THINDIR)
+ 	gnatmake $(GMAKE_OPTS) -p -Pd_bus_ada_lib -XVERSION="$(VERSION)" \
+ 		-XLIBRARY_KIND="$(LIBRARY_KIND)" -XLDFLAGS="$(LDFLAGS)"
+ 
+-build_tests:
++build_tests: | $(THINDIR)
+ 	gnatmake $(GMAKE_OPTS) -p -Pd_bus_ada_tests
+ 
+-build_examples:
++build_examples: | $(THINDIR)
+ 	gnatmake $(GMAKE_OPTS) -p -Pd_bus_ada_examples
+ 
+ install: install_lib install_$(LIBRARY_KIND)
+@@ -79,9 +79,37 @@
+ 	@rm -rf $(OBJDIR)
+ 	@rm -rf $(LIBDIR)
+ 	@rm -rf $(DOCDIR)
++	@rm -rf $(THINDIR)
+ 
+-dist:
++base_tarball := $(TARBALL:.bz2=)
++dist: | $(THINDIR)
+ 	@echo "Creating release tarball $(TARBALL) ... "
+-	@git archive --format=tar HEAD --prefix $(DBUSADA)/ | bzip2 > $(TARBALL)
++	@git archive --output=$(base_tarball) HEAD --prefix $(DBUSADA)/
++	tar -rf $(base_tarball) --transform='s~^~$(DBUSADA)/~' $(THINDIR)
++	bzip2 $(base_tarball)
+ 
+ .PHONY: doc tests
++
++# This part requires that CXX is the GCC C++ compiler.
++dbus_lib      = dbus-1
++dbus_includes = $(shell pkg-config --cflags-only-I $(dbus_lib) | sed 's/-I//g')
++dbus_h        = $(shell find $(dbus_includes) -name "dbus.h")
++$(THINDIR):
++	mkdir $@
++	cd $@ && \
++	$(CXX) --dump-ada-spec $(dbus_h) `pkg-config --cflags $(dbus_lib)`
++  # Remove unused file.
++	rm -f $@/*_dbus_syntax_h.ads
++  # Fix an error.
++	sed -i '/^   subtype nullptr_t is ;  --/d' $@/stddef_h.ads
++  # Remove arch, path or version dependent prefixes.
++	cd $@ && for i in *dbus_dbus_*; do \
++	  mv $$i `echo $$i | sed 's/.*dbus_dbus_/dbus_/'`; \
++	done
++	sed -i 's/[a-z0-9_]*dbus_dbus_/dbus_/g' $@/*
++  # Fix a warning about unused entities.
++	sed -i '/^with Interfaces\.C; use Interfaces\.C;$$/d' \
++	  $@/dbus_memory_h.ads \
++	  $@/dbus_pending_call_h.ads \
++	  $@/dbus_shared_h.ads \
++	  $@/stdarg_h.ads
diff -Nru dbusada-0.3.3/debian/patches/series dbusada-0.4.0/debian/patches/series
--- dbusada-0.3.3/debian/patches/series	1970-01-01 01:00:00.000000000 +0100
+++ dbusada-0.4.0/debian/patches/series	2017-09-01 13:18:41.000000000 +0200
@@ -0,0 +1,2 @@
+refresh-thin.diff
+fix-test-linker-order.patch
diff -Nru dbusada-0.3.3/debian/rules dbusada-0.4.0/debian/rules
--- dbusada-0.3.3/debian/rules	2016-07-11 09:37:25.000000000 +0200
+++ dbusada-0.4.0/debian/rules	2017-09-01 13:18:41.000000000 +0200
@@ -1,29 +1,87 @@
 #!/usr/bin/make -f
 
+$(foreach line,$(shell sed -n '\
+  s/^ gnat, gnat-\([0-9.]\+\),$$/ \
+    gnat_version:=\1 \
+  /p;\
+  s/^Package: \(libdbusada\([0-9.]\+\)\)$$/ \
+    lib_pkg:=\1 \
+    soversion:=\2 \
+  /p;\
+  s/^Package: \(libdbusada[0-9.]\+-dev\)$$/ \
+    dev_pkg:=\1 \
+  /p;\
+  ' debian/control),$(eval $(line)))
+
+DEB_BUILD_MAINT_OPTIONS := hardening=+all
 DPKG_EXPORT_BUILDFLAGS = 1
+include /usr/share/dpkg/architecture.mk
 include /usr/share/dpkg/buildflags.mk
-include /usr/share/ada/debian_packaging-6.mk
+include /usr/share/ada/debian_packaging-$(gnat_version).mk
 
 export GNAT_BUILDER_FLAGS = $(BUILDER_OPTIONS)
 
 %:
 	dh ${@}
 
+# Force regeneration of the thin binding included in the tarball.
+.PHONY: override_dh_auto_configure
+override_dh_auto_configure:
+	rm -fr thin
+	$(MAKE) thin CXX=g++-$(gnat_version)
+
+.PHONY: override_dh_auto_build
 override_dh_auto_build:
 	$(MAKE)
 	$(MAKE) LIBRARY_KIND=static
+ifeq (,$(filter nodoc,$(DEB_BUILD_OPTIONS)))
 	$(MAKE) doc
+endif
 
+.PHONY: override_dh_auto_install
 override_dh_auto_install:
 	$(MAKE) PREFIX=$(CURDIR)/debian/tmp install
 	$(MAKE) LIBRARY_KIND=static PREFIX=$(CURDIR)/debian/tmp install
 	rm -rf debian/tmp/lib/gnat
 
+.PHONY: override_dh_auto_test
 override_dh_auto_test:
+ifeq (,$(filter nocheck,$(DEB_BUILD_OPTIONS)))
 	$(MAKE) tests
+endif
 
-override_dh_install:
-	dh_install --fail-missing
+.PHONY: override_dh_install
+override_dh_install: debian/dbusada.gpr
+	dh_install -p$(lib_pkg) lib/libdbusada.so.$(soversion) usr/lib/$(DEB_HOST_MULTIARCH)
+	dh_install -p$(dev_pkg) lib/libdbusada.so usr/lib/$(DEB_HOST_MULTIARCH)
+	dh_install -p$(dev_pkg) lib/libdbusada.a usr/lib/$(DEB_HOST_MULTIARCH)
+	dh_install -p$(dev_pkg) lib/dbus-ada/*.ali usr/lib/$(DEB_HOST_MULTIARCH)/ada/adalib/dbus-ada
+	dh_install -p$(dev_pkg) include/dbus-ada/*.ad[bs] usr/share/ada/adainclude/dbus-ada
+	dh_install -p$(dev_pkg) debian/dbusada.gpr usr/share/gpr
+	dh_install -p$(dev_pkg) debian/dbus_ada.gpr usr/share/gpr
+	dh_missing --fail-missing
+
+debian/dbusada.gpr: debian/template_dbusada.gpr
+	sed s/@DEB_HOST_MULTIARCH@/$(DEB_HOST_MULTIARCH)/ $< > $@
+
+.PHONY: override_dh_clean
+override_dh_clean:
+	dh_clean debian/dbusada.gpr debian/$(dev_pkg).doc-base
+
+.PHONY: override_dh_installdocs
+override_dh_installdocs: debian/$(dev_pkg).doc-base
+	dh_installdocs -p$(dev_pkg) doc/html/*
+	dh_installdocs --remaining-packages
+
+debian/$(dev_pkg).doc-base: debian/template_libdbusada-dev.doc-base
+	sed s/@dev_pkg@/$(dev_pkg)/ $< > $@
+
+.PHONY: override_dh_installexamples
+override_dh_installexamples:
+	dh_installexamples -p$(dev_pkg) examples/*
+	dh_installexamples --remaining-packages
 
+.PHONY: override_dh_compress
 override_dh_compress:
-	dh_compress -X.ads -X.adb -XMakefile
+	dh_compress -p$(dev_pkg) -X.ads -X.adb -XMakefile
+	dh_compress --remaining-packages
diff -Nru dbusada-0.3.3/debian/template_dbusada.gpr dbusada-0.4.0/debian/template_dbusada.gpr
--- dbusada-0.3.3/debian/template_dbusada.gpr	1970-01-01 01:00:00.000000000 +0100
+++ dbusada-0.4.0/debian/template_dbusada.gpr	2017-09-01 13:18:41.000000000 +0200
@@ -0,0 +1,24 @@
+--  D_Bus/Ada project file
+--  Copyright (C) 2012-2016 Reto Buerki <reet@codelabs.ch>
+--
+--  This program is free software; you can redistribute it and/or modify
+--  it under the terms of the GNU General Public License as published by
+--  the Free Software Foundation; either version 2 of the License, or
+--  (at your option) any later version.
+--
+--  This program is distributed in the hope that it will be useful,
+--  but WITHOUT ANY WARRANTY; without even the implied warranty of
+--  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+--  GNU General Public License for more details.
+
+project DBusAda is
+   for Source_Dirs use ("/usr/share/ada/adainclude/dbus-ada");
+   for Library_Name use "dbusada";
+   for Library_Dir use "/usr/lib/@DEB_HOST_MULTIARCH@";
+   for Library_ALI_Dir use "/usr/lib/@DEB_HOST_MULTIARCH@/ada/adalib/dbus-ada";
+   for Library_Kind use "dynamic";
+   for Externally_Built use "true";
+   package Linker is
+      for Linker_Options use ("-ldbus-1");
+   end Linker;
+end DBusAda;
diff -Nru dbusada-0.3.3/debian/template_libdbusada-dev.doc-base dbusada-0.4.0/debian/template_libdbusada-dev.doc-base
--- dbusada-0.3.3/debian/template_libdbusada-dev.doc-base	1970-01-01 01:00:00.000000000 +0100
+++ dbusada-0.4.0/debian/template_libdbusada-dev.doc-base	2017-09-01 13:18:41.000000000 +0200
@@ -0,0 +1,11 @@
+Document: dbusada
+Title: D-Bus/Ada documentation
+Author: Reto Buerki <reet@codelabs.ch>
+Abstract: Ada bindings to the D-Bus message bus system
+ The D_Bus/Ada library provides an Ada binding to the D-Bus message bus
+ used for inter-process communication on most modern Linux desktop systems.
+Section: Programming
+
+Format: HTML
+Index: /usr/share/doc/@dev_pkg@/index.html
+Files: /usr/share/doc/@dev_pkg@/asciidoc.css
diff -Nru dbusada-0.3.3/debian/tests/link-with-shared dbusada-0.4.0/debian/tests/link-with-shared
--- dbusada-0.3.3/debian/tests/link-with-shared	2016-07-11 09:37:25.000000000 +0200
+++ dbusada-0.4.0/debian/tests/link-with-shared	2017-09-01 13:18:41.000000000 +0200
@@ -1,6 +1,5 @@
 #!/bin/sh
 set -C -e -f -u
-TOP_SOURCE_DIR="`pwd`"
 cd "$ADTTMP"
 
 cat > p.gpr <<EOF
@@ -17,5 +16,5 @@
    null;
 end P;
 EOF
-gprbuild p.gpr
+gprbuild -v p.gpr
 ./p
diff -Nru dbusada-0.3.3/debian/watch dbusada-0.4.0/debian/watch
--- dbusada-0.3.3/debian/watch	2016-07-11 09:37:25.000000000 +0200
+++ dbusada-0.4.0/debian/watch	2017-09-01 13:18:41.000000000 +0200
@@ -1,2 +1,2 @@
-version=3
-http://www.codelabs.ch/download/libdbusada-(.*)\.tar\.bz2
+version=4
+http://www.codelabs.ch/download/libdbusada@ANY_VERSION@@ARCHIVE_EXT@

Attachment: signature.asc
Description: OpenPGP digital signature


Reply to: