diff -pruN 1~bzr20150122-3/dbus.go 1~bzr20150203-0ubuntu3/dbus.go
--- 1~bzr20150122-3/dbus.go	2015-01-22 23:31:57.000000000 +0000
+++ 1~bzr20150203-0ubuntu3/dbus.go	2015-04-22 00:33:47.000000000 +0000
@@ -35,11 +35,13 @@ type MessageFilter struct {
 // Connection represents a connection to a message bus.
 type Connection struct {
 	// The unique name of this connection on the message bus.
-	UniqueName string
-	conn       net.Conn
-	writeLock  sync.Mutex
-	busProxy   BusDaemon
-	lastSerial uint32
+	UniqueName   string
+	conn         net.Conn
+	writeLock    sync.Mutex
+	busProxy     BusDaemon
+	lastSerial   uint32
+	connOpen     bool
+	connOpenLock sync.Mutex
 
 	handlerMutex       sync.Mutex // covers the next three
 	messageFilters     []*MessageFilter
@@ -120,9 +122,10 @@ func Connect(busType StandardBus) (*Conn
 	if bus.conn, err = trans.Dial(); err != nil {
 		return nil, err
 	}
+	bus.setConnOpen(true)
 
 	if err = authenticate(bus.conn, nil); err != nil {
-		bus.conn.Close()
+		bus.Close()
 		return nil, err
 	}
 
@@ -142,6 +145,18 @@ func Connect(busType StandardBus) (*Conn
 	return bus, nil
 }
 
+func (p *Connection) setConnOpen(o bool) {
+	p.connOpenLock.Lock()
+	defer p.connOpenLock.Unlock()
+	p.connOpen = o
+}
+
+func (p *Connection) isConnOpen() bool {
+	p.connOpenLock.Lock()
+	defer p.connOpenLock.Unlock()
+	return p.connOpen
+}
+
 func (p *Connection) Authenticate() error {
 	log.Println("dbus.Connection.Authenticate() is deprecated.  This call can be removed")
 	return nil
@@ -151,7 +166,7 @@ func (p *Connection) receiveLoop() {
 	for {
 		msg, err := readMessage(p.conn)
 		if err != nil {
-			if err != io.EOF {
+			if err != io.EOF && p.isConnOpen() {
 				log.Println("Failed to read message:", err)
 			}
 			break
@@ -245,6 +260,7 @@ func (p *Connection) dispatchMessage(msg
 }
 
 func (p *Connection) Close() error {
+	p.setConnOpen(false)
 	return p.conn.Close()
 }
 
diff -pruN 1~bzr20150122-3/debian/changelog 1~bzr20150203-0ubuntu3/debian/changelog
--- 1~bzr20150122-3/debian/changelog	2018-02-09 08:54:10.000000000 +0000
+++ 1~bzr20150203-0ubuntu3/debian/changelog	2020-03-07 05:21:41.000000000 +0000
@@ -1,26 +1,28 @@
-golang-go-dbus (1~bzr20150122-3) unstable; urgency=medium
+golang-go-dbus (1~bzr20150203-0ubuntu3) focal; urgency=medium
 
-  * Team upload.
-  * Set XS-Go-Import-Path
+  * debian/rules: Export home directory to fix FTBFS initializing build cache.
 
- -- Michael Stapelberg <stapelberg@debian.org>  Fri, 09 Feb 2018 09:54:10 +0100
+ -- Logan Rosen <logan@ubuntu.com>  Sat, 07 Mar 2020 00:21:41 -0500
 
-golang-go-dbus (1~bzr20150122-2) unstable; urgency=medium
+golang-go-dbus (1~bzr20150203-0ubuntu2) bionic; urgency=medium
 
-  * Team upload.
+  * Merge packaging changes from Debian:
+    - Set XS-Go-Import-Path
+    - Use a secure transport for the Vcs-Git and Vcs-Browser URL
+    - debian/control:
+      - Update Build-Depends on golang-check.v1-dev, instead of
+        golang-gocheck-dev which is already non-active upstream.
+      - Use cgit URL for Vcs-Browser.
+    - debian/patches:
+      - Add a patch to use golang-check.v1-dev (Closes: #857923).
 
-  [ Paul Tagliamonte ]
-  * Use a secure transport for the Vcs-Git and Vcs-Browser URL
+ -- Steve Langasek <steve.langasek@ubuntu.com>  Mon, 09 Apr 2018 01:21:31 -0700
 
-  [ Roger Shimizu ]
-  * debian/control:
-    - Update Build-Depends on golang-check.v1-dev, instead of
-      golang-gocheck-dev which is already non-active upstream.
-    - Use cgit URL for Vcs-Browser.
-  * debian/patches:
-    - Add a patch to use golang-check.v1-dev (Closes: #857923).
+golang-go-dbus (1~bzr20150203-0ubuntu1) vivid; urgency=medium
 
- -- Roger Shimizu <rogershimizu@gmail.com>  Sat, 01 Apr 2017 19:45:08 +0900
+  * New upstream snapshot.
+
+ -- Ricardo Salveti de Araujo <ricardo.salveti@canonical.com>  Tue, 21 Apr 2015 21:31:27 -0300
 
 golang-go-dbus (1~bzr20150122-1) unstable; urgency=medium
 
diff -pruN 1~bzr20150122-3/debian/control 1~bzr20150203-0ubuntu3/debian/control
--- 1~bzr20150122-3/debian/control	2018-02-09 08:54:10.000000000 +0000
+++ 1~bzr20150203-0ubuntu3/debian/control	2020-03-07 05:21:41.000000000 +0000
@@ -1,7 +1,8 @@
 Source: golang-go-dbus
 Section: devel
 Priority: extra
-Maintainer: Sergio Schvezov <sergio.schvezov@canonical.com>
+Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
+XSBC-Original-Maintainer: Sergio Schvezov <sergio.schvezov@canonical.com>
 Build-Depends:
  debhelper (>= 9),
  dh-golang,
diff -pruN 1~bzr20150122-3/debian/rules 1~bzr20150203-0ubuntu3/debian/rules
--- 1~bzr20150122-3/debian/rules	2018-02-09 08:54:10.000000000 +0000
+++ 1~bzr20150203-0ubuntu3/debian/rules	2020-03-07 05:21:40.000000000 +0000
@@ -6,6 +6,7 @@ export DH_OPTIONS
 
 export DH_GOPKG := launchpad.net/go-dbus/v1
 export BUILDDIR := build
+export HOME = $(CURDIR)
 
 %:
 	dh $@ --buildsystem=golang --with=golang --builddirectory=$(BUILDDIR)
diff -pruN 1~bzr20150122-3/signal.go 1~bzr20150203-0ubuntu3/signal.go
--- 1~bzr20150122-3/signal.go	2015-01-22 23:31:57.000000000 +0000
+++ 1~bzr20150203-0ubuntu3/signal.go	2015-04-22 00:33:47.000000000 +0000
@@ -94,7 +94,7 @@ func (self signalWatchSet) FindMatches(m
 // handle receiving signals with callback
 type signalWatch struct {
 	bus  *Connection
-	rule MatchRule
+	rule *MatchRule
 	cb   func(*Message)
 
 	cancelLock sync.Mutex
@@ -107,7 +107,7 @@ func (p *Connection) watchSignal(rule *M
 	}
 	watch := &signalWatch{
 		bus:  p,
-		rule: *rule,
+		rule: rule,
 		cb:   cb}
 
 	p.handlerMutex.Lock()
diff -pruN 1~bzr20150122-3/signal_test.go 1~bzr20150203-0ubuntu3/signal_test.go
--- 1~bzr20150122-3/signal_test.go	2015-01-22 23:31:57.000000000 +0000
+++ 1~bzr20150203-0ubuntu3/signal_test.go	2015-04-22 00:33:47.000000000 +0000
@@ -91,7 +91,7 @@ func (s *S) TestConnectionWatchSignalWit
 
 func (s *S) TestSignalWatchSetAdd(c *C) {
 	set := make(signalWatchSet)
-	watch := signalWatch{rule: MatchRule{
+	watch := signalWatch{rule: &MatchRule{
 		Type:      TypeSignal,
 		Sender:    ":1.42",
 		Path:      "/foo",
@@ -110,14 +110,14 @@ func (s *S) TestSignalWatchSetAdd(c *C)
 
 func (s *S) TestSignalWatchSetRemove(c *C) {
 	set := make(signalWatchSet)
-	watch1 := signalWatch{rule: MatchRule{
+	watch1 := signalWatch{rule: &MatchRule{
 		Type:      TypeSignal,
 		Sender:    ":1.42",
 		Path:      "/foo",
 		Interface: "com.example.Foo",
 		Member:    "Bar"}}
 	set.Add(&watch1)
-	watch2 := signalWatch{rule: MatchRule{
+	watch2 := signalWatch{rule: &MatchRule{
 		Type:      TypeSignal,
 		Sender:    ":1.43",
 		Path:      "/foo",
@@ -137,7 +137,7 @@ func (s *S) TestSignalWatchSetFindMatche
 	msg.Sender = ":1.42"
 
 	set := make(signalWatchSet)
-	watch := signalWatch{rule: MatchRule{
+	watch := signalWatch{rule: &MatchRule{
 		Type:      TypeSignal,
 		Sender:    ":1.42",
 		Path:      "/foo",
