diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm
index 819cc6229e..86ee362b70 100644
--- a/gnu/packages/golang.scm
+++ b/gnu/packages/golang.scm
@@ -16,6 +16,7 @@
 ;;; Copyright @ 2019 Giovanni Biscuolo <g@xelera.eu>
 ;;; Copyright @ 2019 Alex Griffin <a@ajgrf.com>
 ;;; Copyright © 2019 Arun Isaac <arunisaac@systemreboot.net>
+;;; Copyright © 2019 Martin Becze <mjbecze@gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -802,6 +803,34 @@ Go programming language.")
       (home-page "https://go.googlesource.com/tools/")
       (license license:bsd-3))))
 
+(define-public go-golang-org-x-oauth2
+  (let ((commit "0f29369cfe4552d0e4bcddc57cc75f4d7e672a33")
+        (url "https://go.googlesource.com/oauth2"))
+    (package
+      (name "go-golang-org-x-oauth2")
+      (version (git-version "0.0.0" "0" commit))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url url)
+                      (commit commit)))
+                (file-name (string-append "go.googlesource.com-oauth2-"
+                                          version "-checkout"))
+                (sha256
+                 (base32
+                  "06jwpvx0x2gjn2y959drbcir5kd7vg87k0r1216abk6rrdzzrzi2"))))
+      (build-system go-build-system)
+      (arguments
+       `(#:import-path "golang.org/x/oauth2"))
+      (propagated-inputs
+       `(("go-golang-org-x-net-context" ,go-golang-org-x-net-context)))
+      (synopsis "This package contains a client implementation for OAuth 2.0
+ spec.")
+      (description "This package contains a client implementation for OAuth 2.0
+ spec.")
+      (home-page url)
+      (license license:bsd-3))))
+
 (define-public go-golang-org-x-crypto
   (let ((commit "b7391e95e576cacdcdd422573063bc057239113d")
         (revision "3"))
@@ -2045,6 +2074,30 @@ terminal.")
 makes it possible to handle ANSI color escapes on Windows.")
       (license license:expat))))
 
+(define-public go-github-com-mattn-go-pointer
+  (let ((commit "a0a44394634f41e4992b173b24f14fecd3318a67")
+        (url "https://github.com/mattn/go-pointer"))
+    (package
+      (name "go-github-com-mattn-go-pointer")
+      (version (git-version "0.0.0" "0" commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url url)
+               (commit commit)))
+         (sha256
+          (base32
+           "09w7hcyc0zz2g23vld6jbcmq4ar27xakp1ldjvh549i5izf2anhz"))
+         (file-name (git-file-name name version))))
+      (build-system go-build-system)
+      (arguments
+       '(#:import-path "github.com/mattn/go-pointer"))
+      (home-page url)
+      (synopsis "Utility for cgo")
+      (description "Utility for cgo")
+      (license license:expat))))
+
 (define-public go-github-com-mgutz-ansi
   (let ((commit "9520e82c474b0a04dd04f8a40959027271bab992")
         (revision "0"))
@@ -3686,3 +3739,520 @@ on running processes and system utilization (CPU, memory, disks, network,
 sensors).")
       (home-page "https://github.com/shirou/gopsutil")
       (license license:bsd-3))))
+
+(define-public go-github-com-danwakefield-fnmatch
+  (let ((commit "cbb64ac3d964b81592e64f957ad53df015803288")
+        (url "https://github.com/danwakefield/fnmatch"))
+    (package
+     (name "go-github-com-danwakefield-fnmatch")
+     (version (git-version "0.0.0" "0" commit))
+     (source
+      (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url url)
+             (commit commit)))
+       (sha256
+        (base32
+         "0cbf511ppsa6hf59mdl7nbyn2b2n71y0bpkzbmfkdqjhanqh1lqz"))
+       (file-name (git-file-name name version))))
+     (build-system go-build-system)
+     (arguments
+      '(#:import-path "github.com/danwakefield/fnmatch"))
+     (home-page url)
+     (synopsis "Updated clone of kballards golang fnmatch
+ gist (https://gist.github.com/kballard/272720)")
+     (description "Updated clone of kballards golang fnmatch
+gist (https://gist.github.com/kballard/272720)")
+     (license license:bsd-2))))
+
+(define-public go-github-com-ddevault-go-libvterm
+  (let ((commit "b7d861da381071e5d3701e428528d1bfe276e78f")
+        (url "https://github.com/ddevault/go-libvterm"))
+    (package
+     (name "go-github-com-ddevault-go-libvterm")
+     (version (git-version "0.0.0" "0" commit))
+     (source
+      (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url url)
+             (commit commit)))
+       (sha256
+        (base32
+         "06vv4pgx0i6hjdjcar4ch18hp9g6q6687mbgkvs8ymmbacyhp7s6"))
+       (file-name (git-file-name name version))))
+     (build-system go-build-system)
+     (arguments
+      '(#:import-path "github.com/ddevault/go-libvterm"))
+     (propagated-inputs
+      `(("go-github-com-mattn-go-pointer" ,go-github-com-mattn-go-pointer)))
+     (home-page url)
+     (synopsis "Go binding to libvterm")
+     (description "This is a personal fork for use with aerc. Breaking changes
+ will come unannounced.")
+     (license license:expat))))
+
+(define-public go-github-com-emersion-go-imap
+  (let ((url "https://github.com/emersion/go-imap"))
+    (package
+     (name "go-github-com-emersion-go-imap")
+     (version "1.0.0")
+     (source
+      (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url url)
+             (commit (string-append "v" version))))
+       (sha256
+        (base32
+         "1id8j2d0rn9sj8y62xhyygqpk5ygrcl9jlfx92sm1jsvxsm3kywq"))
+       (file-name (git-file-name name version))))
+     (build-system go-build-system)
+     (arguments
+      '(#:import-path "github.com/emersion/go-imap"))
+     (native-inputs
+      `(("go-golang-org-x-text-encoding" ,go-golang-org-x-text-encoding)
+        ("go-golang-org-x-text-transform" ,go-golang-org-x-text-transform)))
+     (home-page url)
+     (synopsis "An IMAP4rev1 library written in Go")
+     (description "An IMAP4rev1 library written in Go. It can be used to build
+ a client and/or a server.")
+     (license license:expat))))
+
+(define-public go-github-com-emersion-go-sasl
+  (let ((commit "240c8404624e076f633766c16adbe96c7ac516b7")
+        (url "https://github.com/emersion/go-sasl"))
+    (package
+     (name "go-github-com-emersion-go-sasl")
+     (version (git-version "0.0.0" "0" commit))
+     (source
+      (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url url)
+             (commit commit)))
+       (sha256
+        (base32
+         "1py18p3clp474xhx6ypyp0bgv6n1dfm24m95cyyqb0k3vibar6ih"))
+       (file-name (git-file-name name version))))
+     (build-system go-build-system)
+     (arguments
+      '(#:import-path "github.com/emersion/go-sasl"))
+     (home-page url)
+     (synopsis "A SASL library written in Go")
+     (description "A SASL library written in Go.")
+     (license license:expat))))
+
+(define-public go-github-com-emersion-go-imap-idle
+  (let ((commit "2704abd7050ed7f2143753554ee23affdf847bd9")
+        (url "https://github.com/emersion/go-imap-idle"))
+    (package
+     (name "go-github-com-emersion-go-imap-idle")
+     (version (git-version "0.0.0" "0" commit))
+     (source
+      (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url url)
+             (commit commit)))
+       (sha256
+        (base32
+         "0blwcadmxgqsdwgr9m4jqfbpfa2viw5ah19xbybpa1z1z4aj5cbc"))
+       (file-name (git-file-name name version))))
+     (build-system go-build-system)
+     (arguments
+      '(#:import-path "github.com/emersion/go-imap-idle"))
+     (native-inputs
+      `(("go-github-com-emersion-go-imap" ,go-github-com-emersion-go-imap)
+        ("go-github-com-emersion-go-sasl" ,go-github-com-emersion-go-sasl)
+        ("go-golang-org-x-text-encoding" ,go-golang-org-x-text-encoding)
+        ("go-golang-org-x-text-transform" ,go-golang-org-x-text-transform)))
+     (home-page url)
+     (synopsis "IDLE extension for go-imap")
+     (description "IDLE extension for go-imap.")
+     (license license:expat))))
+
+(define-public go-github-com-emersion-go-maildir
+  (let ((url "https://github.com/emersion/go-maildir")
+        (commit "941194b0ac705efac39bd89c5eae6cce84b26202"))
+    (package
+     (name "go-github-com-emersion-go-maildir")
+     (version (git-version "0.0.0" "0" commit))
+     (source
+      (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/emersion/go-maildir")
+             (commit commit)))
+       (sha256
+        (base32
+         "10dm0qvjm4payh2hfifwfpz9511fngp2vaf2yrg111di67x1148m"))
+       (file-name (git-file-name name version))))
+     (build-system go-build-system)
+     (arguments
+      '(#:import-path "github.com/emersion/go-maildir"))
+     (home-page url)
+     (synopsis "A Go library for maildir")
+     (description "A Go library for maildir.")
+     (license license:expat))))
+
+(define-public go-github-com-emersion-go-message
+  (let ((url "https://github.com/emersion/go-message"))
+    (package
+     (name "go-github-com-emersion-go-message")
+     (version "0.10.7")
+     (source
+      (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url url)
+             (commit (string-append "v" version))))
+       (sha256
+        (base32
+         "05s6x6x5k5b4qmfam716b5wi47rrvj702lfkc6gr681z64g2hirb"))
+       (file-name (git-file-name name version))))
+     (build-system go-build-system)
+     (arguments
+      '(#:import-path "github.com/emersion/go-message"))
+     (propagated-inputs
+      `(("go-github-com-emersion-go-textwrapper"
+         ,go-github-com-emersion-go-textwrapper)
+        ("go-github-com-martinlindhe-base36"
+	 ,go-github-com-martinlindhe-base36)))
+     (home-page url)
+     (synopsis "A Go library for the Internet Message Format")
+     (description "A Go library for the Internet Message Format. It implements:
+@itemize
+@item RFC 5322: Internet Message Format
+@item RFC 2045, RFC 2046 and RFC 2047: Multipurpose Internet Mail Extensions
+@item RFC 2183: Content-Disposition Header Field
+@end itemize")
+     (license license:expat))))
+
+(define-public go-github-com-emersion-go-textwrapper
+  (let ((url "https://github.com/emersion/go-textwrapper")
+        (commit "d0e65e56babe3f687ff94c1d764ca0e6aa7723ee"))
+    (package
+     (name "go-github-com-emersion-go-textwrapper")
+     (version (git-version "0.0.0" "0" commit))
+     (source
+      (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url url)
+             (commit commit)))
+       (sha256
+        (base32
+         "1nw8qpjjbpkz49wd19yg2qsln1dmdfxi83wp2aa819cv6xxf2y7l"))
+       (file-name (git-file-name name version))))
+     (build-system go-build-system)
+     (arguments
+      '(#:import-path "github.com/emersion/go-textwrapper"))
+     (home-page url)
+     (synopsis "A writer that wraps long text lines to a specified length")
+     (description "A writer that wraps long text lines to a specified length")
+     (license license:expat))))
+
+(define-public go-github-com-emersion-go-smtp
+  (let ((url "https://github.com/emersion/go-smtp"))
+    (package
+     (name "go-github-com-emersion-go-smtp")
+     (version "0.11.2")
+     (source
+      (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url url)
+             (commit (string-append "v" version))))
+       (sha256
+        (base32
+         "08v7x513hxkfyihixp0cdy4cmf2j9hw1yzm7bzy5g95fai71azm0"))
+       (file-name (git-file-name name version))))
+     (build-system go-build-system)
+     (arguments
+      '(#:import-path "github.com/emersion/go-smtp"))
+     (native-inputs
+      `(("go-github-com-emersion-go-sasl" ,go-github-com-emersion-go-sasl)))
+     (home-page url)
+     (synopsis "An ESMTP client and server library written in Go")
+     (description "An ESMTP client and server library written in Go. It features:
+@itemize
+@item ESMTP client & server implementing RFC 532
+@item Support for SMTP AUTH and PIPELINING
+@item UTF-8 support for subject and message
+@item LMTP support
+@end itemize ")
+     (license license:expat))))
+
+(define-public go-github-com-fsnotify-fsnotify
+  (let ((url "https://github.com/fsnotify/fsnotify"))
+    (package
+     (name "go-github-com-fsnotify-fsnotify")
+     (version "1.4.7")
+     (source
+      (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url url)
+             (commit (string-append "v" version))))
+       (sha256
+        (base32
+         "07va9crci0ijlivbb7q57d2rz9h27zgn2fsm60spjsqpdbvyrx4g"))
+       (file-name (git-file-name name version))))
+     (build-system go-build-system)
+     (arguments
+      '(#:import-path "github.com/fsnotify/fsnotify"))
+     (native-inputs
+      `(("go-github-com-emersion-go-sasl" ,go-github-com-emersion-go-sasl)
+        ("go-golang-org-x-sys-unix",go-golang-org-x-sys-unix)))
+     (home-page url)
+     (synopsis "File system notifications for Go")
+     (description "File system notifications for Go")
+     (license license:bsd-3))))
+
+(define-public go-github-com-go-ini-ini
+  (let ((url "https://github.com/go-ini/ini"))
+    (package
+     (name "go-github-com-go-ini-ini")
+     (version "1.44.0")
+     (source
+      (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url url)
+             (commit (string-append "v" version))))
+       (sha256
+        (base32
+         "072fhg4i5k26pxq3kg5y5h9lb9w5ka75jl000q5bjcdv2yf8qhcv"))
+       (file-name (git-file-name name version))))
+     (build-system go-build-system)
+     (arguments
+      '(#:import-path "github.com/go-ini/ini"
+		      #:tests? #f))
+     (home-page url)
+     (synopsis "Package ini provides INI file read and write functionality in Go")
+     (description "Package ini provides INI file read and write functionality in Go.")
+     (license license:asl2.0))))
+
+(define-public go-github-com-google-shlex
+  (let ((commit "c34317bd91bf98fab745d77b03933cf8769299fe")
+        (url "https://github.com/google/shlex"))
+    (package
+     (name "go-github-com-google-shlex")
+     (version (git-version "0.0.0" "0" commit))
+     (source
+      (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url url)
+             (commit commit)))
+       (sha256
+        (base32
+         "00qivza4hkllfkar2vpqmyxybi0fwqipgijv61dgapq4xddxdq0r"))
+       (file-name (git-file-name name version))))
+     (build-system go-build-system)
+     (arguments
+      '(#:import-path "github.com/google/shlex"))
+     (home-page url)
+     (synopsis "A simple lexer")
+     (description "go-shlex is a simple lexer for go that supports shell-style 
+quoting, commenting, and escaping.")
+     (license license:asl2.0))))
+
+(define-public go-github-com-kyoh86-xdg
+  (let ((url "https://github.com/kyoh86/xdg"))
+    (package
+     (name "go-github-com-kyoh86-xdg")
+     (version "1.0.0")
+     (source
+      (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url url)
+             (commit (string-append "v" version))))
+       (sha256
+        (base32
+         "02wrm9rl6qqv3nr2n5yariwg1rgr7w76l1sp0ak1kxin1y184ivf"))
+       (file-name (git-file-name name version))))
+     (build-system go-build-system)
+     (arguments
+      '(#:import-path "github.com/kyoh86/xdg"))
+     (home-page url)
+     (synopsis "Light weight helper functions in golang to get config, data and
+ cache files according to the XDG Base Directory Specification")
+     (description "Light weight helper functions in golang to get config, data
+ and cache files according to the XDG Base Directory Specification.")
+     (license license:expat))))
+
+(define-public go-github-com-martinlindhe-base36
+  (let ((url "https://github.com/martinlindhe/base36"))
+    (package
+     (name "go-github-com-martinlindhe-base36")
+     (version "1.0.0")
+     (source
+      (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url url)
+             (commit (string-append "v" version))))
+       (sha256
+        (base32
+         "0hib6cnx543fxbcy7fm3kcfz8ajhd90kxzbld49qi7w930pcz26c"))
+       (file-name (git-file-name name version))))
+     (build-system go-build-system)
+     (arguments
+      '(#:import-path "github.com/martinlindhe/base36"))
+     (native-inputs
+      `(("go-github-com-stretchr-testify" ,go-github-com-stretchr-testify)))
+     (home-page url)
+     (synopsis "Implements Base36 encoding and decoding")
+     (description "Implements Base36 encoding and decoding, which is useful to
+ represent large integers in a case-insensitive alphanumeric way.")
+     (license license:expat))))
+
+(define-public go-github-com-miolini-datacounter
+  (let ((url "https://github.com/miolini/datacounter")
+        (commit "aa48df3a02c1fbcd3040271f631887991c3071fb"))
+    (package
+     (name "go-github-com-miolini-datacounter")
+     (version (git-version "0.0.0" "0" commit))
+     (source
+      (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url url)
+             (commit commit)))
+       (sha256
+        (base32
+         "12ldh5jhafjhh3jvh979mldwygkkcnm97axs7dhlai6gqwlhls87"))
+       (file-name (git-file-name name version))))
+     (build-system go-build-system)
+     (arguments
+      '(#:import-path "github.com/miolini/datacounter"))
+     (home-page url)
+     (synopsis "Golang counters for readers/writers")
+     (description "Golang counters for readers/writers")
+     (license license:expat))))
+
+(define-public go-github-com-riywo-loginshell
+  (let ((url "https://github.com/riywo/loginshell")
+        (commit "2ed199a032f65b5e6a0a1294abc96b7d3efade86"))
+    (package
+     (name "go-github-com-riywo-loginshell")
+     (version (git-version "0.0.0" "0" commit))
+     (source
+      (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url url)
+             (commit commit)))
+       (sha256
+        (base32
+         "1chhpp22kd3r2h84206bvdjj6815n4r6pjq8n9jhav9mfal4qvzj"))
+       (file-name (git-file-name name version))))
+     (build-system go-build-system)
+     (arguments
+      '(#:import-path "github.com/riywo/loginshell"
+		      #:tests? #f))
+     (home-page url)
+     (synopsis "A golang library to get the login shell of the current user")
+     (description "A golang library to get the login shell of the current user.")
+     (license license:expat))))
+
+(define-public go-git-sr-ht-sircmpwn-getopt
+  (let ((commit "daaf1274538b02b41238d1e6c219186c76af3b8c")
+        (url "https://git.sr.ht/~sircmpwn/getopt"))
+    (package
+     (name "go-git-sr-ht-sircmpwn-getopt")
+     (version (git-version "0.0.0" "0" commit))
+     (source
+      (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url url)
+             (commit commit)))
+       (sha256
+        (base32
+         "0qf9kmzs3h4vzcbc1ha0z68ivckzvl7jq9jwb8rbbaq0d1a6baq7"))
+       (file-name (git-file-name name version))))
+     (build-system go-build-system)
+     (arguments
+      '(#:import-path "git.sr.ht/~sircmpwn/getopt"))
+     (native-inputs
+      `(("go-github-com-stretchr-testify" ,go-github-com-stretchr-testify)))
+     (home-page url)
+     (synopsis "A POSIX-compatible getopt implementation for Go")
+     (description "A POSIX-compatible getopt implementation for Go, because
+ POSIX getopt is The Correct Way to interpret arguments to command line utilities.")
+     (license license:expat))))
+
+(define-public go-git-sr-ht-sircmpwn-pty
+  (let ((commit "3a43678975a9cb13dbcf05ea7a1611ebce3eadb2")
+        (url "https://git.sr.ht/~sircmpwn/pty"))
+    (package
+     (name "go-git-sr-ht-sircmpwn-pty")
+     (version (git-version "0.0.0" "0" commit))
+     (source
+      (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url url)
+             (commit commit)))
+       (sha256
+        (base32
+         "1spa779vb2j1vgwm1cpbmf7f8wj6zwyyy49ihz134izvah7vncsw"))
+       (file-name (git-file-name name version))))
+     (build-system go-build-system)
+     (arguments
+      '(#:import-path "git.sr.ht/~sircmpwn/pty"))
+     (home-page url)
+     (synopsis "A Go package for using unix pseudo-terminals")
+     (description "Pty is a Go package for using unix pseudo-terminals.")
+     (license license:expat))))
+
+(define-public go-git-sr-ht-sircmpwn-tcell
+  (let ((commit "3fdb6bc01a5035fe7cd57b9b0b56166a44db8620")
+        (version "0.0.0"))
+    (package
+      (name "go-git-sr-ht-sircmpwn-tcell")
+      (version (git-version version "0" commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://git.sr.ht/~sircmpwn/tcell")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32
+           "1g7vx0qzwp6wsp47l2rabmkrxp7x3z8s94gjf6722z7sfb8xybas"))))
+      (build-system go-build-system)
+      (arguments
+       `(#:import-path "github.com/gdamore/tcell"
+         #:unpack-path "github.com/gdamore/tcell"
+         #:phases
+         (modify-phases %standard-phases
+           (add-before 'reset-gzip-timestamps 'make-files-writable
+             (lambda* (#:key outputs #:allow-other-keys)
+               ;; Make sure .gz files are writable so that the
+               ;; 'reset-gzip-timestamps' phase can do its work.
+               (let ((out (assoc-ref outputs "out")))
+                 (for-each make-file-writable
+                           (find-files out "\\.gz$"))
+                 #t))))))
+      (propagated-inputs
+       `(("go-golang-org-colorful" ,go-golang-org-colorful)
+         ("go-github-com-gdamore-encoding" ,go-github-com-gdamore-encoding)))
+      (inputs
+       `(("go-github.com-mattn-go-runewidth" ,go-github.com-mattn-go-runewidth)
+         ("go-golang-org-x-text-encoding" ,go-golang-org-x-text-encoding)
+         ("go-golang-org-x-text-transform" ,go-golang-org-x-text-transform)
+         ("go-golang-org-x-sys-unix" ,go-golang-org-x-sys-unix)))
+      (home-page "https://github.com/gdamore/tcell")
+      (synopsis "Provide a cell-based view for text terminals")
+      (description "This package includes a full parser and expander for
+terminfo capability strings to avoid hard-coding escape strings for
+formatting.  It also favors portability, and includes support for all POSIX
+systems.")
+      (license license:expat))))
