public inbox for gentoo-dev@lists.gentoo.org
 help / color / mirror / Atom feed
From: Alec Warner <antarus@gentoo.org>
To: William Hubbs <williamh@gentoo.org>
Cc: Gentoo Dev <gentoo-dev@lists.gentoo.org>
Subject: Re: [gentoo-dev] [PATCH 1/3] go-module.eclass: introduce new eclass to handle go modules
Date: Wed, 11 Sep 2019 17:28:22 -0700	[thread overview]
Message-ID: <CAAr7Pr8c1ZZNASrAjnRcECNya_hmeTRKT98Xrn_cOhXSbOz2BA@mail.gmail.com> (raw)
In-Reply-To: <20190912000525.GB21591@whubbs1.dev.av1.gaikai.org>

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

On Wed, Sep 11, 2019 at 5:05 PM William Hubbs <williamh@gentoo.org> wrote:

> On Wed, Sep 11, 2019 at 04:31:00PM -0700, Alec Warner wrote:
> > On Wed, Sep 11, 2019 at 10:28 AM William Hubbs <williamh@gentoo.org>
> wrote:
> >
> > > Copyright: Sony Interactive Entertainment Inc.
> > > Signed-off-by: William Hubbs <williamh@gentoo.org>
> > > ---
> > >  eclass/go-module.eclass | 76 +++++++++++++++++++++++++++++++++++++++++
> > >  1 file changed, 76 insertions(+)
> > >  create mode 100644 eclass/go-module.eclass
> > >
> > > diff --git a/eclass/go-module.eclass b/eclass/go-module.eclass
> > > new file mode 100644
> > > index 00000000000..7009fcd3beb
> > > --- /dev/null
> > > +++ b/eclass/go-module.eclass
> > > @@ -0,0 +1,76 @@
> > > +# Copyright 1999-2015 Gentoo Foundation
> > > +# Distributed under the terms of the GNU General Public License v2
> > > +
> > > +# @ECLASS: go-module.eclass
> > > +# @MAINTAINER:
> > > +# William Hubbs <williamh@gentoo.org>
> > > +# @SUPPORTED_EAPIS: 7
> > > +# @BLURB: basic eclass for building software written in the go
> > > +# programming language that uses go modules.
> > > +# @DESCRIPTION:
> > > +# This eclass provides a convenience src_prepare() phase and some
> basic
> > > +# settings needed for all software written in the go programming
> > > +# language that uses go modules.
> > > +#
> > > +# You will know the software you are packaging uses modules because
> > > +# it will have files named go.sum and go.mod in its top-level source
> > > +# directory. If it does not have these files, use the golang-*
> eclasses.
> > > +#
> > > +# If the software you are packaging uses modules, the next question is
> > > +# whether it has a directory named "vendor" at the top-level of the
> > > source tree.
> > > +#
> > > +# If it doesn't, you need to create a tarball of what would be in the
> > > +# vendor directory and mirror it locally. This is done with the
> > > +# following commands if upstream is using a git repository:
> > > +#
> > > +# @CODE:
> > > +#
> > > +# $ cd /my/clone/of/upstream
> > > +# $ git checkout <release>
> > > +# $ go mod vendor
> > > +# $ tar cvf project-version-vendor.tar.gz vendor
> > > +#
> > > +# @CODE:
> > > +#
> > > +# Other than this, all you need to do is inherit this eclass then
> > > +# make sure  the exported src_prepare function is run.
> > > +
> > > +case ${EAPI:-0} in
> > > +       7) ;;
> > > +       *) die "${ECLASS} API in EAPI ${EAPI} not yet established."
> > > +esac
> > > +
> > > +if [[ -z ${_GO_MODULE} ]]; then
> > > +
> > > +_GO_MODULE=1
> > > +
> > > +BDEPEND=">=dev-lang/go-1.12"
> > > +
> > > +# Do not download dependencies from the internet
> > > +# make build output verbose by default
> > > +export GOFLAGS="-mod=vendor -v -x"
> > > +
> > > +# Do not complain about CFLAGS etc since go projects do not use them.
> > > +QA_FLAGS_IGNORED='.*'
> > > +
> > > +# Upstream does not support stripping go packages
> > > +RESTRICT="strip"
> > >
> >
> > https://golang.org/cmd/link/ implies you can pass -s -w to the compiler
> to
> > reduce binary size.
> >
> > Does that not work in portage by default, or does upstream just consider
> > that bad practice?
>
> I haven't tried it, but here are the definitions of -s and -w.
>
> -s      Omit the symbol table and debug information.
> -w      Omit the DWARF symbol table.
>
> These look like Go's equivalent of stripping the binaries, and I have my
> doubts as to whether we should force this.
>

I don't care if you strip or not (I'm not even sure portage knows how to do
it for go binaries) but I'm fairly sure the reason isn't because "upstream
does not support stripping go binaries" because they clearly do...unless
upstream is portage here...?


>
> William
>
>

[-- Attachment #2: Type: text/html, Size: 5313 bytes --]

  reply	other threads:[~2019-09-12  0:28 UTC|newest]

Thread overview: 63+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-09-11 17:21 [gentoo-dev] [PATCH 0/3] add eclass to handle go modules William Hubbs
2019-09-11 17:21 ` [gentoo-dev] [PATCH 1/3] go-module.eclass: introduce new " William Hubbs
2019-09-11 17:38   ` Michał Górny
2019-09-11 18:22     ` William Hubbs
2019-09-11 18:31       ` Michał Górny
2019-09-11 19:40         ` William Hubbs
2019-09-11 19:47           ` Michał Górny
2019-09-11 23:11             ` William Hubbs
2019-09-12  5:39               ` Michał Górny
2019-09-12 16:39                 ` William Hubbs
2019-09-12 17:03                   ` Michał Górny
2019-09-12 20:16                     ` Kent Fredric
2019-09-12 21:10                       ` Michał Górny
2019-09-11 23:31   ` Alec Warner
2019-09-12  0:05     ` William Hubbs
2019-09-12  0:28       ` Alec Warner [this message]
2019-09-12 15:36         ` William Hubbs
2019-09-12 20:20         ` Kent Fredric
2019-09-12 20:38           ` Alec Warner
2019-09-12 21:12             ` Michał Górny
2019-09-12 22:01               ` Alec Warner
2019-09-13  9:13               ` Kent Fredric
2019-09-11 17:21 ` [gentoo-dev] [PATCH 2/3] app-misc/spire: migrate to go-module.eclass William Hubbs
2019-09-11 17:21 ` [gentoo-dev] [PATCH 3/3] dev-vcs/hub: " William Hubbs
2019-09-11 17:39   ` Michael Orlitzky
2019-09-11 17:47     ` William Hubbs
2019-09-11 17:48       ` Michael Orlitzky
2019-09-11 19:15       ` Kent Fredric
2019-09-11 19:26         ` William Hubbs
2019-09-11 23:34     ` Alec Warner
2019-09-11 23:48       ` William Hubbs
2019-09-12  0:05         ` Alec Warner
2019-09-12 15:46           ` William Hubbs
2019-09-12 16:14             ` Michael Orlitzky
2019-09-12 16:42               ` Alec Warner
2019-09-12 16:52                 ` Michael Orlitzky
2019-09-12 16:55                   ` Mike Gilbert
2019-09-12 17:05                     ` Michael Orlitzky
2019-09-12 17:43                       ` Mike Gilbert
2019-09-12 21:11                         ` Michael Orlitzky
2019-09-12 21:23                           ` Mike Gilbert
2019-09-13  0:14                             ` Michael Orlitzky
2019-09-13  1:56                               ` Alec Warner
2019-09-13  2:16                                 ` Alec Warner
2019-09-13  3:13                               ` Mike Gilbert
2019-09-13 12:11                                 ` Michael Orlitzky
2019-09-12 17:45                   ` Alec Warner
2019-09-12 21:58                     ` Michael Orlitzky
2019-09-13  9:19                       ` Kent Fredric
2019-09-13 12:29                         ` Michael Orlitzky
2019-09-13 20:17                           ` Patrick McLean
2019-09-13 23:44                             ` Michael Orlitzky
2019-09-14  0:22                               ` Patrick McLean
2019-09-14 17:06                               ` Alec Warner
2019-09-14 22:37                                 ` Michael Orlitzky
2019-09-16  7:54                               ` Kent Fredric
2019-09-14  6:52                             ` Ulrich Mueller
2019-09-13 16:50                     ` Michael Orlitzky
2019-09-13 20:52                       ` Patrick McLean
2019-09-16  8:11                       ` Kent Fredric
2019-09-12 20:10                   ` Kent Fredric
2019-09-12 17:31                 ` Michał Górny
2019-09-12 16:46             ` Alec Warner

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=CAAr7Pr8c1ZZNASrAjnRcECNya_hmeTRKT98Xrn_cOhXSbOz2BA@mail.gmail.com \
    --to=antarus@gentoo.org \
    --cc=gentoo-dev@lists.gentoo.org \
    --cc=williamh@gentoo.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox