[pkg-go] Sponsor needed for NEW package pt-websocket

Ximin Luo infinity0 at pwned.gg
Wed May 28 14:51:30 UTC 2014


I've made the changes described below and uploaded it to mentors. I've also pushed it to alioth. Let me know if this is OK!

X

http://mentors.debian.net/debian/pool/main/p/pt-websocket/pt-websocket_0.2-1.dsc

On 24/05/14 16:54, Ximin Luo wrote:
> Hey, thanks for the review. I did already try dh_golang, but it requires further changes on top of the ones you mention below:
> 
> - override dh_auto_install to remove the installed source code
> - override dh_auto_build and dh_auto_test to exclude pt-websocket-client. This is because it depends on code not yet in Debian (go.net/websocket). I agree it's nice to build it, but I don't think we should block the release of this package to do so.
> 
> If you prefer this approach (sample below) I can do it though; otherwise I can stick with the current Makefile approach.
> 
> ~~~~
> export DH_GOPKG := git.torproject.org/pluggable-transports/websocket
> export DH_GOPKG_SUBDIRS := websocket pt-websocket-server
> DH_BUILDDIR = obj-$(shell dpkg-architecture -qDEB_HOST_GNU_TYPE)
> 
> override_dh_auto_build:
> 	cd $(DH_BUILDDIR) && GOPATH=$$PWD go install -v $(DH_GOPKG_SUBDIRS:%=$(DH_GOPKG)/%)
> 	make doc/pt-websocket-server.1
> 
> override_dh_auto_test:
> 	cd $(DH_BUILDDIR) && GOPATH=$$PWD go test -v $(DH_GOPKG_SUBDIRS:%=$(DH_GOPKG)/%)
> 
> override_dh_auto_install:
> 	dh_auto_install
> 	rm -rf debian/pt-websocket/usr/share/gocode
> ~~~~
> 
> This also suggests some extensions to dh_golang:
> 
> - an option to not install the source code (DH_GOLANG_INSTALL_EXCLUDE_SOURCE?), instead of me having to override dh_auto_install with a rm. I imagine this would be a fairly common use-case for binaries that don't need to distribute a -dev package.
> - use a separate DH_GOPKG_CHILDREN to explicitly list child modules you want to act on, used separately from DH_GOPKG, similar to my use above.
> 
> X
> 
> On 23/05/14 10:48, Michael Stapelberg wrote:
>> Hi Ximin,
>>
>> Ximin Luo <infinity0 at pwned.gg> writes:
>>> git: https://anonscm.debian.org/gitweb/?p=pkg-go/packages/pt-websocket.git;a=summary
>> Thanks for your mail.
>>
>> The Makefile in pt-websocket is calling “go build” directly and you’re
>> setting GOPATH in debian/rules. While it works by chance in this case,
>> it’s not robust. See this comment:
>>
>> http://anonscm.debian.org/gitweb/?p=collab-maint/dh-golang.git;a=blob;f=lib/Debian/Debhelper/Buildsystem/golang.pm;h=b34a5f2f14256de84d6477080667d2d98c75f6e5;hb=HEAD#l91
>>
>> Therefore, I think it’d be better if you could use dh-golang for
>> building the package. The following three changes need to be done for
>> that:
>>
>> --- i/debian/rules
>> +++ w/debian/rules
>> @@ -4,17 +4,14 @@
>>  # Uncomment this to turn on verbose mode.
>>  #export DH_VERBOSE=1
>>  
>> -export GOPATH=/usr/share/gocode
>> +export DH_GOPKG := git.torproject.org/pluggable-transports/websocket
>>  
>>  %:
>> -       dh $@
>> +       dh $@ --buildsystem=golang --with=golang
>>  
>>  override_dh_auto_build:
>>         dh_auto_build
>>         make doc/pt-websocket-server.1
>>  
>> -override_dh_auto_install:
>> -       dh_auto_install -S makefile -- PREFIX=/usr
>> -
>>  override_dh_compress:
>>         dh_compress -X /examples/
>>
>>
>> The following hunk strucks me as odd. Why was that a local import
>> before, if the line below imports goptlib “properly”? Also, why are
>> those imports separate from the import block just above?
>>
>>
>> --- i/pt-websocket-server/pt-websocket-server.go
>> +++ w/pt-websocket-server/pt-websocket-server.go
>> @@ -20,7 +20,7 @@ import (
>>         "time"
>>  )
>>
>> -import "../websocket"
>> +import "git.torproject.org/pluggable-transports/websocket/websocket"
>>  
>>  import "git.torproject.org/pluggable-transports/goptlib.git"
>>
>>
>>
>>
>>
>> --- i/Makefile
>> +++ w/Makefile
>> @@ -17,8 +17,8 @@ pt-websocket-server/pt-websocket-server:
>> pt-websocket-server/*.go websocket/*.go
>>  pt-websocket-client/pt-websocket-client: pt-websocket-client/*.go
>>         cd pt-websocket-client && go build $(GOBUILDFLAGS)
>>  
>> -doc/pt-websocket-server.1: pt-websocket-server/pt-websocket-server
>> -       help2man --no-info --name "WebSocket server pluggable transport"
>> -       --version-string "$(VERSION)" -o "$@" "$<"
>> +doc/pt-websocket-server.1:
>> +       help2man --no-info --name "WebSocket server pluggable transport"
>> -       --version-string "$(VERSION)" -o "$@"
>> -       obj-*/bin/pt-websocket-server
>>  
>>  install: pt-websocket-server/pt-websocket-server
>>         mkdir -p "$(DESTDIR)$(BINDIR)"
>>
>>
>> Note that in the resulting package, the source code will be installed by
>> default. You should probably remove that, or split it into a separate
>> package if the source code could be used as a library by other packages
>> (from a quick glance, I don’t think it could).
>>
>> Also, the websocket-client is compiled and installed by default. The
>> same applies here, if you don’t want it, remove it before the package is
>> generated. Compiling it seems useful though, just to ensure that the
>> shipped example actually works :).
>>
>> HTH.
>>
> 
> 
> 
> 
> _______________________________________________
> Pkg-go-maintainers mailing list
> Pkg-go-maintainers at lists.alioth.debian.org
> http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/pkg-go-maintainers
> 


-- 
GPG: 4096R/1318EFAC5FBBDBCE
git://github.com/infinity0/pubkeys.git

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 880 bytes
Desc: OpenPGP digital signature
URL: <http://lists.alioth.debian.org/pipermail/pkg-go-maintainers/attachments/20140528/394b3920/attachment.sig>


More information about the Pkg-go-maintainers mailing list