On Wed, Mar 25, 2015, at 08:32 PM, Adam Wolk wrote:
> On Sat, Mar 21, 2015, at 05:34 PM, Adam Wolk wrote:
> > Hi ports@,
> > 
> > $ cat gocover/pkg/DESCR                                                  
> > Cover is a program for analyzing the coverage profiles
> > generated by 'go test -coverprofile=cover.out'.
> > 
> > Cover is also used by 'go test -cover' to rewrite
> > the source code with annotations to track which parts
> > of each function are executed.
> > $ 
> > 
> > Most notably the tool is also required by goconvey
> > (http://goconvey.co/).
> > 
> > The reason for providing a port is the way the go tools are
> > packaged by upstream which assumes that they will land
> > in the $GOTOOLDIR which is outside the users folder (on my box
> > it defaults to: /usr/local/go/pkg/tool/openbsd_386/).
> > 
> > for details please see a previous thread:
> > http://marc.info/?t=142686792400002&r=1&w=2
> > 
> > Testing:
> > 
> > This port has been tested on a i386 snapshot of (Mar 19) OpenBSD 5.7
> > using go 1.4.1.
> > 
> > $ go version
> > go version go1.4.1 openbsd/386
> > 
> > Note that working with go requires raised limits or an altered
> > login.conf.
> > If your account is in staff you can change a terminal temporarily with:
> > 
> > ulimit -n 512
> > ulimit -p 512
> > ulimit -d 2036792
> > 
> > if 'go version' results in:
> > $ go version
> > runtime: panic before malloc heap initialized
> > fatal error: runtime: cannot reserve arena virtual address space
> > 
> > runtime stack:
> > runtime.throw(0x854ce92)
> >         /usr/local/go/src/runtime/panic.go:491 +0x83 fp=0xcfbc508c
> >         sp=0xcfbc5074
> > runtime.mallocinit()
> >         /usr/local/go/src/runtime/malloc.c:223 +0xe9 fp=0xcfbc50c8
> >         sp=0xcfbc508c
> > runtime.schedinit()
> >         /usr/local/go/src/runtime/proc.c:137 +0x34 fp=0xcfbc50e0
> >         sp=0xcfbc50c8
> > runtime.rt0_go(0xcfbc5174, 0xfff, 0x85470a0, 0x0, 0x0, 0x0, 0x4c9d5d2b,
> > 0xcfbc512c, 0xcfbc5170, 0xcfbc512c, ...)
> >         /usr/local/go/src/runtime/asm_386.s:100 +0xed fp=0xcfbc50e4
> >         sp=0xcfbc50e0
> > $ 
> > 
> > Then you're limits are too low.
> > 
> > 
> > Most desired tests are:
> >  - different architectures (not i386)
> >  - checking if I didn't miss anything
> >  - testing on a fresh system by installing go convey and running it with
> >  -cover=true
> > 
> > What I am not sure about:
> >  - Duplicated code from lang/go (do-configure ; see below)
> >  - Correctness of do-install step
> >  - Port category (though I saw a lot of code coverage tools in devel
> >  group)
> >  - The way I fetch the common gotools distfile
> >  - The last point in the 'desired tests'. I had a global 'root' install
> >  of the cover tool
> >    without a port so I don't know if it installed anything else except
> >    the cover binary
> >    installing goconvey and running it with -cover=true on a fresh system
> >    would quickly
> >    reveal any stuff that I might have missed
> > 
> > The biggest part to take away from this port is how the go upstream
> > packages 'tools'.
> > They want  to install them in GOTOOLDIR where most users don't have
> > permission for
> > writing (/usr/local/go/pkg/openbsd_$arch) they are also packaged in the
> > same repository
> > with a single common download.
> > 
> > Most notable of those tools might be:
> >  - cover for code coverage (this port)
> >  - godoc for documentation (textproc/godoc in ports@ mailing list)
> >  - oracle for code analysis (no port)
> > possibly more interesting ones now & in the future.
> > 
> > I already asked Stuart for a common download mirror with godoc (Thanks!)
> > but I had to copy
> > parts of lang/go to get the proper target directory for the go tools. My
> > question to more experienced
> > port maintainers is: 'Does the OpenBSD ports tree have a mechanism for
> > common port components
> > so other ports for go tools won't have to copy this again?'
> > 
> > Additionally should it be treated differently? A single meta-port with
> > flavours? Common namespace
> > for all future tools?
> > 
> > Regards,
> > -- 
> >   Adam Wolk
> >   adam.w...@koparo.com
> > Email had 1 attachment:
> > + gocover.tar.gz
> >   2k (application/gzip)
> 
> 
> Hi ports@,
> 
> Attaching an updated port for devel/gocover based on initial feedback
> and on
> observations from similar ports (www/go-websocket / www/websocketd).
> 
> Changes:
>  - SUBST_VARS & GO_PKG introduced to fix packaging for other platforms
>  (Thanks to Kent R. Spillner)
>  - Dropped GOOS, GOARCH, GOROOT
>  - Dropped arch detecting and unused variables copied from lang/go
>  - Dropped 'do-configure' step
> 
> Additional tests performed with the port:
>  - I removed my lang/go and all data to confirm that the binary is the
>  only required artifact
>  - Tested with goconvey (confirm properly detected cover tool when the
>  port is installed) 
> 
> Regards,
> Adam Wolk
> Email had 1 attachment:
> + gocover.tar.gz
>   1k (application/x-tar-gz)

Ping.

Regards,
Adam

Reply via email to