unofficial mirror of guix-devel@gnu.org 
 help / color / mirror / code / Atom feed
* [PATCHES] Add docker-compose and missing prerequisites.
@ 2016-01-11 18:44 Thompson, David
  2016-01-14 13:59 ` Ludovic Courtès
  2016-01-14 19:09 ` go package (was docker compose) Jeff Mickey
  0 siblings, 2 replies; 4+ messages in thread
From: Thompson, David @ 2016-01-11 18:44 UTC (permalink / raw)
  To: guix-devel

[-- Attachment #1: Type: text/plain, Size: 578 bytes --]

Hello Guix hackers,

As much as I dislike it, the company I work for has started to use
Docker.  Docker Compose is a special Python program that talks to the
Docker daemon to run many containers at once using configuration from
a "declarative" YAML file (my kingdom for an sexp), and I didn't want
to use pip to install it.  So, here's 8 patches that add it and the
stuff that was missing for it.

I hear someone has a working Go package that hasn't been submitted
yet, so maybe we'll have Docker itself available someday.  That will
be interesting. :)

TIA for review.

- Dave

[-- Attachment #2: 0001-gnu-Add-version-2.7-variant-of-python-requests.patch --]
[-- Type: text/x-patch, Size: 1191 bytes --]

From 29aa112adc961c806a56e03c9031c1385ad29f37 Mon Sep 17 00:00:00 2001
From: David Thompson <dthompson@vistahigherlearning.com>
Date: Mon, 11 Jan 2016 13:24:30 -0500
Subject: [PATCH 1/8] gnu: Add version 2.7 variant of python-requests.

* gnu/packages/python.scm (python-requests-2.7): New variable.
---
 gnu/packages/python.scm | 12 ++++++++++++
 1 file changed, 12 insertions(+)

diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm
index 4ab1eed..5f6ac79 100644
--- a/gnu/packages/python.scm
+++ b/gnu/packages/python.scm
@@ -2182,6 +2182,18 @@ compatible install in a way that is very close to the on-disk format.")
 than Python’s urllib2 library.")
     (license asl2.0)))
 
+;; Some software requires an older version of Requests, notably Docker
+;; Compose.
+(define-public python-requests-2.7
+  (package (inherit python-requests)
+    (version "2.7.0")
+    (source (origin
+             (method url-fetch)
+             (uri (pypi-uri "requests" version))
+             (sha256
+              (base32
+               "0gdr9dxm24amxpbyqpbh3lbwxc2i42hnqv50sigx568qssv3v2ir"))))))
+
 (define-public python2-requests
   (package-with-python2 python-requests))
 
-- 
2.6.3


[-- Attachment #3: 0002-gnu-Add-python-vcversioner.patch --]
[-- Type: text/x-patch, Size: 1581 bytes --]

From 41af50a9a40a7668e1069cf3a94c58c73dc50452 Mon Sep 17 00:00:00 2001
From: David Thompson <dthompson@vistahigherlearning.com>
Date: Mon, 11 Jan 2016 13:26:07 -0500
Subject: [PATCH 2/8] gnu: Add python-vcversioner.

* gnu/packages/python.scm (python-vcversioner, python2-vcversioner): New
variables.
---
 gnu/packages/python.scm | 24 ++++++++++++++++++++++++
 1 file changed, 24 insertions(+)

diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm
index 5f6ac79..91629e8 100644
--- a/gnu/packages/python.scm
+++ b/gnu/packages/python.scm
@@ -2197,6 +2197,30 @@ than Python’s urllib2 library.")
 (define-public python2-requests
   (package-with-python2 python-requests))
 
+(define-public python-vcversioner
+  (package
+    (name "python-vcversioner")
+    (version "2.14.0.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "vcversioner" version))
+       (sha256
+        (base32
+         "11ivq1bm7v0yb4nsfbv9m7g7lyjn112gbvpjnjz8nv1fx633dm5c"))))
+    (build-system python-build-system)
+    (inputs
+     `(("python-setuptools" ,python-setuptools)))
+    (synopsis "Python library for version number discovery")
+    (description "Vcversioner is a Python library that inspects tagging
+information in a variety of version control systems in order to discover
+version numbers.")
+    (home-page "https://github.com/habnabit/vcversioner")
+    (license isc)))
+
+(define-public python2-vcversioner
+  (package-with-python2 python-vcversioner))
+
 (define-public python-jsonschema
   (package
     (name "python-jsonschema")
-- 
2.6.3


[-- Attachment #4: 0003-gnu-Update-python-jsonschema-to-2.5.1.patch --]
[-- Type: text/x-patch, Size: 1397 bytes --]

From 4609db7c4569b047f8357133dafacf3a3a418032 Mon Sep 17 00:00:00 2001
From: David Thompson <dthompson@vistahigherlearning.com>
Date: Mon, 11 Jan 2016 13:26:47 -0500
Subject: [PATCH 3/8] gnu: Update python-jsonschema to 2.5.1.

* gnu/packages/python.scm (python-jsonschema): Update to 2.5.1.
---
 gnu/packages/python.scm | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm
index 91629e8..e1009cc 100644
--- a/gnu/packages/python.scm
+++ b/gnu/packages/python.scm
@@ -2224,7 +2224,7 @@ version numbers.")
 (define-public python-jsonschema
   (package
     (name "python-jsonschema")
-    (version "2.4.0")
+    (version "2.5.1")
     (source (origin
              (method url-fetch)
              (uri
@@ -2233,10 +2233,11 @@ version numbers.")
                version ".tar.gz"))
              (sha256
               (base32
-               "1yik3031ziygvq66rj3mzfqdgxj29sg1bkfc46wsgi7lnbqs560j"))))
+               "0hddbqjm4jq63y8jf44nswina1crjs16l9snb6m3vvgyg31klrrn"))))
     (build-system python-build-system)
     (inputs
-     `(("python-setuptools" ,python-setuptools)))
+     `(("python-setuptools" ,python-setuptools)
+       ("python-vcversioner" ,python-vcversioner)))
     (home-page "http://github.com/Julian/jsonschema")
     (synopsis "Implementation of JSON Schema for Python")
     (description
-- 
2.6.3


[-- Attachment #5: 0004-gnu-Add-python-texttable.patch --]
[-- Type: text/x-patch, Size: 1381 bytes --]

From 43b8e05406a62d0b201df9aac7c6bcc9ea74a92f Mon Sep 17 00:00:00 2001
From: David Thompson <dthompson@vistahigherlearning.com>
Date: Mon, 11 Jan 2016 13:27:31 -0500
Subject: [PATCH 4/8] gnu: Add python-texttable.

* gnu/packages/python.scm (python-texttable, python2-texttable): New
variables.
---
 gnu/packages/python.scm | 22 ++++++++++++++++++++++
 1 file changed, 22 insertions(+)

diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm
index e1009cc..4081362 100644
--- a/gnu/packages/python.scm
+++ b/gnu/packages/python.scm
@@ -6657,3 +6657,25 @@ the standard library.")
 
 (define-public python2-contextlib2
   (package-with-python2 python-contextlib2))
+
+(define-public python-texttable
+  (package
+    (name "python-texttable")
+    (version "0.8.4")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "texttable" version))
+       (sha256
+        (base32
+         "0bkhs4dx9s6g7fpb969hygq56hyz4ncfamlynw72s0n6nqfbd1w5"))))
+    (build-system python-build-system)
+    (arguments '(#:tests? #f)) ; no tests
+    (home-page "https://github.com/foutaise/texttable/")
+    (synopsis "Python module for creating simple ASCII tables")
+    (description "Texttable is a Python module for creating simple ASCII
+tables.")
+    (license lgpl2.1+)))
+
+(define-public python2-texttable
+  (package-with-python2 python-texttable))
-- 
2.6.3


[-- Attachment #6: 0005-gnu-Add-python-websocket-client.patch --]
[-- Type: text/x-patch, Size: 1639 bytes --]

From 067d7792cc2acffac1531f71f53c5b4b5f2f7c68 Mon Sep 17 00:00:00 2001
From: David Thompson <dthompson@vistahigherlearning.com>
Date: Mon, 11 Jan 2016 13:28:05 -0500
Subject: [PATCH 5/8] gnu: Add python-websocket-client.

* gnu/packages/python.scm (python-websocket-client): New variable.
---
 gnu/packages/python.scm | 27 +++++++++++++++++++++++++++
 1 file changed, 27 insertions(+)

diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm
index 4081362..6b0721b 100644
--- a/gnu/packages/python.scm
+++ b/gnu/packages/python.scm
@@ -6679,3 +6679,30 @@ tables.")
 
 (define-public python2-texttable
   (package-with-python2 python-texttable))
+
+(define-public python-websocket-client
+  (package
+    (name "python-websocket-client")
+    (version "0.34.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://pypi.python.org/packages/source/w"
+                           "/websocket-client/websocket_client-"
+                           version ".tar.gz"))
+       (sha256
+        (base32
+         "1prdx6d49f1cff17kzj15bnz09palfdgc1m5dkq9jd4mr90n4ak8"))))
+    (build-system python-build-system)
+    (native-inputs
+     `(("python-six" ,python-six))) ; for tests
+    (inputs
+     `(("python-setuptools" ,python-setuptools)))
+    (home-page "https://github.com/liris/websocket-client")
+    (synopsis "WebSocket client for Python")
+    (description "The Websocket-client module provides the low level APIs for
+WebSocket usage in Python programs.")
+    (license lgpl2.1+)))
+
+(define-public python2-websocket-client
+  (package-with-python2 python-websocket-client))
-- 
2.6.3


[-- Attachment #7: 0006-gnu-Add-python-docker-py.patch --]
[-- Type: text/x-patch, Size: 3015 bytes --]

From 2e7b4c0a0d05330a3aefe33b9e90ef8e424bde0b Mon Sep 17 00:00:00 2001
From: David Thompson <dthompson@vistahigherlearning.com>
Date: Mon, 11 Jan 2016 13:30:10 -0500
Subject: [PATCH 6/8] gnu: Add python-docker-py.

* gnu/packages/docker.scm: New file.
* Makefile.am (GNU_SYSTEM_MODULES): Add it.
---
 gnu-system.am           |  1 +
 gnu/packages/docker.scm | 51 +++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 52 insertions(+)
 create mode 100644 gnu/packages/docker.scm

diff --git a/gnu-system.am b/gnu-system.am
index 7105e13..6711641 100644
--- a/gnu-system.am
+++ b/gnu-system.am
@@ -89,6 +89,7 @@ GNU_SYSTEM_MODULES =				\
   gnu/packages/djvu.scm				\
   gnu/packages/dns.scm				\
   gnu/packages/docbook.scm			\
+  gnu/packages/docker.scm			\
   gnu/packages/doxygen.scm			\
   gnu/packages/dunst.scm			\
   gnu/packages/dvtm.scm				\
diff --git a/gnu/packages/docker.scm b/gnu/packages/docker.scm
new file mode 100644
index 0000000..2d1eecc
--- /dev/null
+++ b/gnu/packages/docker.scm
@@ -0,0 +1,51 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2016 David Thompson <davet@gnu.org>
+;;;
+;;; This file is part of GNU Guix.
+;;;
+;;; GNU Guix 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 3 of the License, or (at
+;;; your option) any later version.
+;;;
+;;; GNU Guix 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.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
+
+(define-module (gnu packages docker)
+  #:use-module ((guix licenses) #:prefix license:)
+  #:use-module (gnu packages)
+  #:use-module (guix packages)
+  #:use-module (guix download)
+  #:use-module (guix git-download)
+  #:use-module (guix build-system python)
+  #:use-module (guix utils)
+  #:use-module (gnu packages python))
+
+(define-public python-docker-py
+  (package
+    (name "python-docker-py")
+    (version "1.6.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "docker-py" version))
+       (sha256
+        (base32
+         "16ba4xyd46hkj9nkfpz15r8kskl7ljx1afjzchyrhdsrklvzgzim"))))
+    (build-system python-build-system)
+    ;; TODO: Tests require a running Docker daemon.
+    (arguments '(#:tests? #f))
+    (inputs
+     `(("python-requests" ,python-requests)
+       ("python-setuptools" ,python-setuptools)
+       ("python-six" ,python-six)
+       ("python-websocket-client" ,python-websocket-client)))
+    (home-page "https://github.com/docker/docker-py/")
+    (synopsis "Python client for Docker")
+    (description "Docker-Py is a Python client for Docker.")
+    (license license:asl2.0)))
-- 
2.6.3


[-- Attachment #8: 0007-gnu-Add-python-dockerpty.patch --]
[-- Type: text/x-patch, Size: 1411 bytes --]

From 5f60f1d7668f585129d0e17d36d83b8f8623d680 Mon Sep 17 00:00:00 2001
From: David Thompson <dthompson@vistahigherlearning.com>
Date: Mon, 11 Jan 2016 13:35:51 -0500
Subject: [PATCH 7/8] gnu: Add python-dockerpty.

* gnu/packages/docker.scm (python-dockerpty): New variable.
---
 gnu/packages/docker.scm | 21 +++++++++++++++++++++
 1 file changed, 21 insertions(+)

diff --git a/gnu/packages/docker.scm b/gnu/packages/docker.scm
index 2d1eecc..8f2311b 100644
--- a/gnu/packages/docker.scm
+++ b/gnu/packages/docker.scm
@@ -49,3 +49,24 @@
     (synopsis "Python client for Docker")
     (description "Docker-Py is a Python client for Docker.")
     (license license:asl2.0)))
+
+(define-public python-dockerpty
+  (package
+    (name "python-dockerpty")
+    (version "0.3.4")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "dockerpty" version))
+       (sha256
+        (base32
+         "0za6rr349641wv76ww9l3zcic2xyxrirlxpnzl4296h897648455"))))
+    (build-system python-build-system)
+    (native-inputs
+     `(("python-six" ,python-six)))
+    (home-page "https://github.com/d11wtq/dockerpty")
+    (synopsis "Python library to use the pseudo-TTY of a Docker container")
+    (description "Docker PTY provides the functionality needed to operate the
+pseudo-terminal (PTY) allocated to a Docker container using the Python
+client.")
+    (license license:asl2.0)))
-- 
2.6.3


[-- Attachment #9: 0008-gnu-Add-docker-compose.patch --]
[-- Type: text/x-patch, Size: 1814 bytes --]

From 694a2a3791f873b454f4ed8b8c4e4a4e674a9d0b Mon Sep 17 00:00:00 2001
From: David Thompson <dthompson@vistahigherlearning.com>
Date: Mon, 11 Jan 2016 13:36:26 -0500
Subject: [PATCH 8/8] gnu: Add docker-compose.

* gnu/packages/docker.scm (docker-compose): New variable.
---
 gnu/packages/docker.scm | 31 +++++++++++++++++++++++++++++++
 1 file changed, 31 insertions(+)

diff --git a/gnu/packages/docker.scm b/gnu/packages/docker.scm
index 8f2311b..e16fc59 100644
--- a/gnu/packages/docker.scm
+++ b/gnu/packages/docker.scm
@@ -70,3 +70,34 @@
 pseudo-terminal (PTY) allocated to a Docker container using the Python
 client.")
     (license license:asl2.0)))
+
+(define-public docker-compose
+  (package
+    (name "docker-compose")
+    (version "1.5.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "docker-compose" version))
+       (sha256
+        (base32
+         "0ksg7hm2yvc977968dixxisrhcmvskzpcx3pz0v1kazrdqp7xakr"))))
+    (build-system python-build-system)
+    ;; TODO: Tests require running Docker daemon.
+    (arguments '(#:tests? #f))
+    (inputs
+     `(("python-docker-py" ,python-docker-py)
+       ("python-dockerpty" ,python-dockerpty)
+       ("python-docopt" ,python-docopt)
+       ("python-enum34" ,python-enum34)
+       ("python-jsonschema" ,python-jsonschema)
+       ("python-pyyaml" ,python-pyyaml)
+       ("python-requests" ,python-requests-2.7)
+       ("python-setuptools" ,python-setuptools)
+       ("python-six" ,python-six)
+       ("python-texttable" ,python-texttable)
+       ("python-websocket-client" ,python-websocket-client)))
+    (home-page "https://www.docker.com/")
+    (synopsis "Multi-container orchestration for Docker")
+    (description "Multi-container orchestration for Docker")
+    (license license:asl2.0)))
-- 
2.6.3


^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: [PATCHES] Add docker-compose and missing prerequisites.
  2016-01-11 18:44 [PATCHES] Add docker-compose and missing prerequisites Thompson, David
@ 2016-01-14 13:59 ` Ludovic Courtès
  2016-01-14 19:09 ` go package (was docker compose) Jeff Mickey
  1 sibling, 0 replies; 4+ messages in thread
From: Ludovic Courtès @ 2016-01-14 13:59 UTC (permalink / raw)
  To: Thompson, David; +Cc: guix-devel

"Thompson, David" <dthompson2@worcester.edu> skribis:

> As much as I dislike it, the company I work for has started to use
> Docker.  Docker Compose is a special Python program that talks to the
> Docker daemon to run many containers at once using configuration from
> a "declarative" YAML file (my kingdom for an sexp), and I didn't want
> to use pip to install it.  So, here's 8 patches that add it and the
> stuff that was missing for it.

Cool, I’m glad you’re bringing Docker to Guix!  ;-)

> From 29aa112adc961c806a56e03c9031c1385ad29f37 Mon Sep 17 00:00:00 2001
> From: David Thompson <dthompson@vistahigherlearning.com>
> Date: Mon, 11 Jan 2016 13:24:30 -0500
> Subject: [PATCH 1/8] gnu: Add version 2.7 variant of python-requests.
>
> * gnu/packages/python.scm (python-requests-2.7): New variable.

OK.

> From 41af50a9a40a7668e1069cf3a94c58c73dc50452 Mon Sep 17 00:00:00 2001
> From: David Thompson <dthompson@vistahigherlearning.com>
> Date: Mon, 11 Jan 2016 13:26:07 -0500
> Subject: [PATCH 2/8] gnu: Add python-vcversioner.
>
> * gnu/packages/python.scm (python-vcversioner, python2-vcversioner): New
> variables.

OK.

> From 4609db7c4569b047f8357133dafacf3a3a418032 Mon Sep 17 00:00:00 2001
> From: David Thompson <dthompson@vistahigherlearning.com>
> Date: Mon, 11 Jan 2016 13:26:47 -0500
> Subject: [PATCH 3/8] gnu: Update python-jsonschema to 2.5.1.
>
> * gnu/packages/python.scm (python-jsonschema): Update to 2.5.1.

Please mention the new input.  Otherwise LGTM.

> From 43b8e05406a62d0b201df9aac7c6bcc9ea74a92f Mon Sep 17 00:00:00 2001
> From: David Thompson <dthompson@vistahigherlearning.com>
> Date: Mon, 11 Jan 2016 13:27:31 -0500
> Subject: [PATCH 4/8] gnu: Add python-texttable.
>
> * gnu/packages/python.scm (python-texttable, python2-texttable): New
> variables.

OK.

> From 067d7792cc2acffac1531f71f53c5b4b5f2f7c68 Mon Sep 17 00:00:00 2001
> From: David Thompson <dthompson@vistahigherlearning.com>
> Date: Mon, 11 Jan 2016 13:28:05 -0500
> Subject: [PATCH 5/8] gnu: Add python-websocket-client.
>
> * gnu/packages/python.scm (python-websocket-client): New variable.

OK.

> From 2e7b4c0a0d05330a3aefe33b9e90ef8e424bde0b Mon Sep 17 00:00:00 2001
> From: David Thompson <dthompson@vistahigherlearning.com>
> Date: Mon, 11 Jan 2016 13:30:10 -0500
> Subject: [PATCH 6/8] gnu: Add python-docker-py.
>
> * gnu/packages/docker.scm: New file.
> * Makefile.am (GNU_SYSTEM_MODULES): Add it.

[...]

> +    (home-page "https://github.com/docker/docker-py/")
> +    (synopsis "Python client for Docker")
> +    (description "Docker-Py is a Python client for Docker.")

s/for Docker/for the Docker container management tool/ maybe?

Otherwise LGTM.

> From 5f60f1d7668f585129d0e17d36d83b8f8623d680 Mon Sep 17 00:00:00 2001
> From: David Thompson <dthompson@vistahigherlearning.com>
> Date: Mon, 11 Jan 2016 13:35:51 -0500
> Subject: [PATCH 7/8] gnu: Add python-dockerpty.
>
> * gnu/packages/docker.scm (python-dockerpty): New variable.

OK.

> From 694a2a3791f873b454f4ed8b8c4e4a4e674a9d0b Mon Sep 17 00:00:00 2001
> From: David Thompson <dthompson@vistahigherlearning.com>
> Date: Mon, 11 Jan 2016 13:36:26 -0500
> Subject: [PATCH 8/8] gnu: Add docker-compose.
>
> * gnu/packages/docker.scm (docker-compose): New variable.

[...]

> +    (home-page "https://www.docker.com/")
> +    (synopsis "Multi-container orchestration for Docker")
> +    (description "Multi-container orchestration for Docker")

Could you improve the description?

Otherwise LGTM.

Thank you!

Ludo’.

^ permalink raw reply	[flat|nested] 4+ messages in thread

* go package (was docker compose)
  2016-01-11 18:44 [PATCHES] Add docker-compose and missing prerequisites Thompson, David
  2016-01-14 13:59 ` Ludovic Courtès
@ 2016-01-14 19:09 ` Jeff Mickey
  2016-01-15 20:38   ` Ludovic Courtès
  1 sibling, 1 reply; 4+ messages in thread
From: Jeff Mickey @ 2016-01-14 19:09 UTC (permalink / raw)
  To: Thompson, David, guix-devel

* "Thompson, David" <dthompson2@worcester.edu> [2016-01-11 10:44]:
> I hear someone has a working Go package that hasn't been submitted
> yet, so maybe we'll have Docker itself available someday.  That will
> be interesting. :)

I've gotten excited a few times on IRC, but unfortunately every time I
run into weird libgcc_s issues with how go does it's linking (which is
really assembling post link).

Here are my current go-1.4.3 and go-1.5.3 packages:

https://github.com/codemac/guix-pkgs/blob/master/tmp/codemac/packages/go.scm

They still fail if you ever link against anything that dynamically links
against glibc. This means any go program that uses the net, os/user,
runtime or cgo packages fail to execute complaining they can't find
libgcc_s. I've tried just about everything imagineable, and it's unclear
to me how the nix gcc + glibc packages differ from the guix ones.

I'd love help / suggestions, I use golang at my day job so I'm motivated
to get this fixed. I have a pretty good idea of what the go package
system could look like for guix without us distributing PILES of
statically linked go poop as well, but that's a separate discussion.

  //  mickey

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: go package (was docker compose)
  2016-01-14 19:09 ` go package (was docker compose) Jeff Mickey
@ 2016-01-15 20:38   ` Ludovic Courtès
  0 siblings, 0 replies; 4+ messages in thread
From: Ludovic Courtès @ 2016-01-15 20:38 UTC (permalink / raw)
  To: Jeff Mickey; +Cc: guix-devel

Jeff Mickey <j@codemac.net> skribis:

> * "Thompson, David" <dthompson2@worcester.edu> [2016-01-11 10:44]:
>> I hear someone has a working Go package that hasn't been submitted
>> yet, so maybe we'll have Docker itself available someday.  That will
>> be interesting. :)
>
> I've gotten excited a few times on IRC, but unfortunately every time I
> run into weird libgcc_s issues with how go does it's linking (which is
> really assembling post link).
>
> Here are my current go-1.4.3 and go-1.5.3 packages:
>
> https://github.com/codemac/guix-pkgs/blob/master/tmp/codemac/packages/go.scm
>
> They still fail if you ever link against anything that dynamically links
> against glibc. This means any go program that uses the net, os/user,
> runtime or cgo packages fail to execute complaining they can't find
> libgcc_s. I've tried just about everything imagineable, and it's unclear
> to me how the nix gcc + glibc packages differ from the guix ones.

Not sure if that helps, but one of the differences is that Guix uses GCC
directly, albeit with a few modifications to its default “spec file”
such that libgcc_s and libc are automatically found (search for
GNU_USER_TARGET_LIB_SPEC in (gnu packages gcc).)

Conversely, Nixpkgs uses a wrapper around the real compiler; the wrapper
is a shell script that adds flags a bunch of flags such as
‘-dynamic-linker’:

  https://github.com/NixOS/nixpkgs/blob/master/pkgs/build-support/cc-wrapper/cc-wrapper.sh

> I'd love help / suggestions, I use golang at my day job so I'm motivated
> to get this fixed. I have a pretty good idea of what the go package
> system could look like for guix without us distributing PILES of
> statically linked go poop as well, but that's a separate discussion.

:-)

Sounds like with what you and Efraim have been doing we’ll hopefully get
there soon!

Ludo’.

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2016-01-15 20:38 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-01-11 18:44 [PATCHES] Add docker-compose and missing prerequisites Thompson, David
2016-01-14 13:59 ` Ludovic Courtès
2016-01-14 19:09 ` go package (was docker compose) Jeff Mickey
2016-01-15 20:38   ` Ludovic Courtès

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/guix.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).