[arch-commits] Commit in deepin-go-lib/repos/community-any (4 files)
Felix Yan
felixonmars at archlinux.org
Sat Dec 29 17:11:52 UTC 2018
Date: Saturday, December 29, 2018 @ 17:11:52
Author: felixonmars
Revision: 418871
archrelease: copy trunk to community-any
Added:
deepin-go-lib/repos/community-any/PKGBUILD
(from rev 418870, deepin-go-lib/trunk/PKGBUILD)
deepin-go-lib/repos/community-any/dbus-fix.patch
(from rev 418870, deepin-go-lib/trunk/dbus-fix.patch)
Deleted:
deepin-go-lib/repos/community-any/PKGBUILD
deepin-go-lib/repos/community-any/dbus-fix.patch
----------------+
PKGBUILD | 52 +++++++--------
dbus-fix.patch | 183 +++++++++++++++++++++++++++++++++++++++++--------------
2 files changed, 165 insertions(+), 70 deletions(-)
Deleted: PKGBUILD
===================================================================
--- PKGBUILD 2018-12-29 17:11:09 UTC (rev 418870)
+++ PKGBUILD 2018-12-29 17:11:52 UTC (rev 418871)
@@ -1,26 +0,0 @@
-# Maintainer: Felix Yan <felixonmars at archlinux.org>
-
-pkgname=deepin-go-lib
-pkgver=1.6.0
-pkgrel=2
-pkgdesc='A library containing many useful go routines for things such as glib, gettext, archive, graphic,etc.'
-arch=('any')
-url="https://github.com/linuxdeepin/go-lib"
-license=('GPL3')
-depends=('libpulse' 'gdk-pixbuf2' 'mobile-broadband-provider-info' 'libx11')
-source=("$pkgname-$pkgver.tar.gz::https://github.com/linuxdeepin/go-lib/archive/$pkgver.tar.gz"
- dbus-fix.patch)
-sha512sums=('c350792d5a445d0f235f0402e36952c7ff9e5a88bf39b41fa2ae6a31f9cbd67e73c6426f4bc76bc14d465fc84750ee2f65f4450ecbe725a0d5ce7169a7c2182c'
- '80a540358c2d9c51b647d7afa1b9c2a075677b596861fdb894f97298ba580b242f8cfcaa3d0ac7b8a4fdd18d39fb9eee8c62ef20d0efb5f928a88117b6fa8a9c')
-
-prepare() {
- cd go-lib-$pkgver
- patch -p1 -i ../dbus-fix.patch
-}
-
-package() {
- mkdir -p "$pkgdir"/usr/share/gocode/src/pkg.deepin.io
- cp -a go-lib-$pkgver "$pkgdir"/usr/share/gocode/src/pkg.deepin.io/lib
-
- rm -r "$pkgdir"/usr/share/gocode/src/pkg.deepin.io/lib/debian
-}
Copied: deepin-go-lib/repos/community-any/PKGBUILD (from rev 418870, deepin-go-lib/trunk/PKGBUILD)
===================================================================
--- PKGBUILD (rev 0)
+++ PKGBUILD 2018-12-29 17:11:52 UTC (rev 418871)
@@ -0,0 +1,26 @@
+# Maintainer: Felix Yan <felixonmars at archlinux.org>
+
+pkgname=deepin-go-lib
+pkgver=1.7.0
+pkgrel=1
+pkgdesc='A library containing many useful go routines for things such as glib, gettext, archive, graphic,etc.'
+arch=('any')
+url="https://github.com/linuxdeepin/go-lib"
+license=('GPL3')
+depends=('libpulse' 'gdk-pixbuf2' 'mobile-broadband-provider-info' 'libx11')
+source=("$pkgname-$pkgver.tar.gz::https://github.com/linuxdeepin/go-lib/archive/$pkgver.tar.gz"
+ dbus-fix.patch)
+sha512sums=('edfc5f50e3126a2ef563027c2b000d60c25f5eee540fa49fb69c36a100bbc4bb3b46e1aa2b161fa93e8fee5223c95d4a7e241697cbb43044c61a60b3ce7ab1a7'
+ '7cd2f41d0b26fce32a775043c4da2328e899f6bb8f34557e3c6f8f1d9a14ef9a218def555dabadb3e57ae501795c84c86e19172c39053b704c281277507bf181')
+
+prepare() {
+ cd go-lib-$pkgver
+ patch -p1 -i ../dbus-fix.patch
+}
+
+package() {
+ mkdir -p "$pkgdir"/usr/share/gocode/src/pkg.deepin.io
+ cp -a go-lib-$pkgver "$pkgdir"/usr/share/gocode/src/pkg.deepin.io/lib
+
+ rm -r "$pkgdir"/usr/share/gocode/src/pkg.deepin.io/lib/debian
+}
Deleted: dbus-fix.patch
===================================================================
--- dbus-fix.patch 2018-12-29 17:11:09 UTC (rev 418870)
+++ dbus-fix.patch 2018-12-29 17:11:52 UTC (rev 418871)
@@ -1,44 +0,0 @@
-diff --git a/dbus/conn.go b/dbus/conn.go
-index 20f65b1..01da4e3 100644
---- a/dbus/conn.go
-+++ b/dbus/conn.go
-@@ -26,6 +26,7 @@ import (
- "reflect"
- "strings"
- "sync"
-+ dbus1 "pkg.deepin.io/lib/dbus1"
- )
-
- const defaultSystemBusAddress = "unix:path=/var/run/dbus/system_bus_socket"
-@@ -112,12 +113,12 @@ func SessionBus() (conn *Conn, err error) {
-
- // SessionBusPrivate returns a new private connection to the session bus.
- func SessionBusPrivate() (*Conn, error) {
-- address := os.Getenv("DBUS_SESSION_BUS_ADDRESS")
-- if address != "" && address != "autolaunch:" {
-- return Dial(address)
-+ address, err := dbus1.GetSessionBusAddress()
-+ if err != nil {
-+ return nil, err
- }
-
-- return sessionBusPlatform()
-+ return Dial(address)
- }
-
- // SystemBus returns a shared connection to the system bus, connecting to it if
-diff --git a/dbus1/conn.go b/dbus1/conn.go
-index 2737621..ac89088 100644
---- a/dbus1/conn.go
-+++ b/dbus1/conn.go
-@@ -77,6 +77,10 @@ func SessionBus() (conn *Conn, err error) {
- return
- }
-
-+func GetSessionBusAddress() (string, error) {
-+ return getSessionBusAddress()
-+}
-+
- func getSessionBusAddress() (string, error) {
- if address := os.Getenv("DBUS_SESSION_BUS_ADDRESS"); address != "" && address != "autolaunch:" {
- return address, nil
Copied: deepin-go-lib/repos/community-any/dbus-fix.patch (from rev 418870, deepin-go-lib/trunk/dbus-fix.patch)
===================================================================
--- dbus-fix.patch (rev 0)
+++ dbus-fix.patch 2018-12-29 17:11:52 UTC (rev 418871)
@@ -0,0 +1,139 @@
+From e9e0a68a7eb72da7dfa181375e6ec891be89d662 Mon Sep 17 00:00:00 2001
+From: electricface <songwentai at deepin.com>
+Date: Sat, 29 Dec 2018 09:42:54 +0800
+Subject: [PATCH] fix(dbus): failed to find session bus address in systemd 240+
+
+Change-Id: I401cf471ad396003b950fc9fc038bbee0b60bc6c
+---
+
+diff --git a/dbus/conn.go b/dbus/conn.go
+index 20f65b1..41bb6e5 100644
+--- a/dbus/conn.go
++++ b/dbus/conn.go
+@@ -110,14 +110,25 @@
+ return
+ }
+
++func getSessionBusAddress() (string, error) {
++ if address := os.Getenv("DBUS_SESSION_BUS_ADDRESS"); address != "" && address != "autolaunch:" {
++ return address, nil
++
++ } else if address := tryDiscoverDbusSessionBusAddress(); address != "" {
++ os.Setenv("DBUS_SESSION_BUS_ADDRESS", address)
++ return address, nil
++ }
++ return getSessionBusPlatformAddress()
++}
++
+ // SessionBusPrivate returns a new private connection to the session bus.
+ func SessionBusPrivate() (*Conn, error) {
+- address := os.Getenv("DBUS_SESSION_BUS_ADDRESS")
+- if address != "" && address != "autolaunch:" {
+- return Dial(address)
++ address, err := getSessionBusAddress()
++ if err != nil {
++ return nil, err
+ }
+
+- return sessionBusPlatform()
++ return Dial(address)
+ }
+
+ // SystemBus returns a shared connection to the system bus, connecting to it if
+diff --git a/dbus/conn_other.go b/dbus/conn_other.go
+index 293d8cb..d8d1adf 100644
+--- a/dbus/conn_other.go
++++ b/dbus/conn_other.go
+@@ -24,23 +24,87 @@
+ import (
+ "bytes"
+ "errors"
++ "fmt"
++ "io/ioutil"
++ "os"
+ "os/exec"
++ "os/user"
++ "path"
++ "strings"
+ )
+
+-func sessionBusPlatform() (*Conn, error) {
+- cmd := exec.Command("/usr/bin/dbus-launch")
++func getSessionBusPlatformAddress() (string, error) {
++ cmd := exec.Command("dbus-launch")
+ b, err := cmd.CombinedOutput()
+
+ if err != nil {
+- return nil, err
++ return "", err
+ }
+
+ i := bytes.IndexByte(b, '=')
+ j := bytes.IndexByte(b, '\n')
+
+ if i == -1 || j == -1 {
+- return nil, errors.New("dbus: couldn't determine address of session bus")
++ return "", errors.New("dbus: couldn't determine address of session bus")
+ }
+
+- return Dial(string(b[i+1 : j]))
++ env, addr := string(b[0:i]), string(b[i+1:j])
++ os.Setenv(env, addr)
++
++ return addr, nil
++}
++
++// tryDiscoverDbusSessionBusAddress tries to discover an existing dbus session
++// and return the value of its DBUS_SESSION_BUS_ADDRESS.
++// It tries different techniques employed by different operating systems,
++// returning the first valid address it finds, or an empty string.
++//
++// * /run/user/<uid>/bus if this exists, it *is* the bus socket. present on
++// Ubuntu 18.04
++// * /run/user/<uid>/dbus-session: if this exists, it can be parsed for the bus
++// address. present on Ubuntu 16.04
++//
++// See https://dbus.freedesktop.org/doc/dbus-launch.1.html
++func tryDiscoverDbusSessionBusAddress() string {
++ if runtimeDirectory, err := getRuntimeDirectory(); err == nil {
++
++ if runUserBusFile := path.Join(runtimeDirectory, "bus"); fileExists(runUserBusFile) {
++ // if /run/user/<uid>/bus exists, that file itself
++ // *is* the unix socket, so return its path
++ return fmt.Sprintf("unix:path=%s", runUserBusFile)
++ }
++ if runUserSessionDbusFile := path.Join(runtimeDirectory, "dbus-session"); fileExists(runUserSessionDbusFile) {
++ // if /run/user/<uid>/dbus-session exists, it's a
++ // text file // containing the address of the socket, e.g.:
++ // DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-E1c73yNqrG
++
++ if f, err := ioutil.ReadFile(runUserSessionDbusFile); err == nil {
++ fileContent := string(f)
++
++ prefix := "DBUS_SESSION_BUS_ADDRESS="
++
++ if strings.HasPrefix(fileContent, prefix) {
++ address := strings.TrimRight(strings.TrimPrefix(fileContent, prefix), "\n\r")
++ return address
++ }
++ }
++ }
++ }
++ return ""
++}
++
++func getRuntimeDirectory() (string, error) {
++ if currentUser, err := user.Current(); err != nil {
++ return "", err
++ } else {
++ return fmt.Sprintf("/run/user/%s", currentUser.Uid), nil
++ }
++}
++
++func fileExists(filename string) bool {
++ if _, err := os.Stat(filename); !os.IsNotExist(err) {
++ return true
++ } else {
++ return false
++ }
+ }
More information about the arch-commits
mailing list