From mboxrd@z Thu Jan 1 00:00:00 1970 From: Peter Mikkelsen Subject: Developing golang programs on guix Date: Mon, 29 Jan 2018 10:50:10 +0100 Message-ID: Mime-Version: 1.0 Content-Type: text/plain; charset="UTF-8" Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:38683) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eg65G-0001JO-K1 for help-guix@gnu.org; Mon, 29 Jan 2018 04:50:39 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1eg656-0005Vr-Rh for help-guix@gnu.org; Mon, 29 Jan 2018 04:50:38 -0500 Received: from mail-io0-x231.google.com ([2607:f8b0:4001:c06::231]:36692) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1eg64q-0005HX-AT for help-guix@gnu.org; Mon, 29 Jan 2018 04:50:28 -0500 Received: by mail-io0-x231.google.com with SMTP id l17so6977890ioc.3 for ; Mon, 29 Jan 2018 01:50:11 -0800 (PST) List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: help-guix-bounces+gcggh-help-guix=m.gmane.org@gnu.org Sender: "Help-Guix" To: help-guix Hi guix, Lately I have been playing around with go after a long time with no use, but last time I was on fedora I think. Now that I am on guixSD, I have found that the standard go way of doing things is not working as expected. For example, after setting the environment variable GOPATH to /home/peter/go, and creating a small hello world program in there, I would normally be able to run 'go install' in that folder, and the hello world binary would end up in my gopath. But on guixSD this is not the case, since it seems like 'go install' is trying to compile every single library provided by to go package itself, and that means writing to the store, which is not possible. For example, the output of 'go install -x' in my hello world project gives me this output: WORK=/tmp/go-build858282353 mkdir -p $WORK/runtime/internal/sys/_obj/ mkdir -p $WORK/runtime/internal/ cd /gnu/store/fgwh2q36s5rqyxdbs2sl6ybpyxbv5y14-go-1.9.3/src/runtime/internal/sys /gnu/store/fgwh2q36s5rqyxdbs2sl6ybpyxbv5y14-go-1.9.3/pkg/tool/linux_amd64/compile -o $WORK/runtime/internal/sys.a -trimpath $WORK -goversion go1.9.3 -p runtime/internal/sys -std -+ -complete -buildid 817fb51b0d31bc187077c53e22d9b0fe9df62e9d -D _/gnu/store/fgwh2q36s5rqyxdbs2sl6ybpyxbv5y14-go-1.9.3/src/runtime/internal/sys -I $WORK -pack ./arch.go ./arch_amd64.go ./intrinsics.go ./stubs.go ./sys.go ./zgoarch_amd64.go ./zgoos_linux.go ./zversion.go mkdir -p /gnu/store/fgwh2q36s5rqyxdbs2sl6ybpyxbv5y14-go-1.9.3/pkg/linux_amd64/runtime/internal/ cp $WORK/runtime/internal/sys.a /gnu/store/fgwh2q36s5rqyxdbs2sl6ybpyxbv5y14-go-1.9.3/pkg/linux_amd64/runtime/internal/sys.a go install runtime/internal/sys: open /gnu/store/fgwh2q36s5rqyxdbs2sl6ybpyxbv5y14-go-1.9.3/pkg/linux_amd64/runtime/internal/sys.a: read-only file system so to me it looks like it wants to compile stuff in the store, but why is that? shouldn't it be compiled by default? So my question is: Is there a way to prevent 'go install' compiling things in the store, maybe by pre-compiling during installation of the go package? Or is there another preferred way to develop go applications on guix, since what i do now is 'go build', but that gets really slow with larger projects, at it recompiles everything everytime if i understand it right. Cheers, Peter Mikkelsen