# Do 'Go' "libraries" belong in ports?



## dsagra (Sep 5, 2019)

Hi all,
I was thinking to create new ports for go SDK's to interact with major cloud providers like AWS or GCP and I was wondering if creating new ports is a good thing. I found this thread were we're talking about applications: does the same applies to those SDK's?

This is what is currently there in the ports tree:

```
[username@host ~]$ find /usr/ports/ -type d -name "go-*" | sort -nr
/usr/ports/www/go-www
/usr/ports/www/go-fasthttp
/usr/ports/www/go-appengine-sdk
/usr/ports/sysutils/go-wtf
/usr/ports/security/go-cve-dictionary
/usr/ports/net/go-nats
/usr/ports/net/go-httptreemux
/usr/ports/net/go-httppath
/usr/ports/net/go-geoip
/usr/ports/net/go-cs
/usr/ports/net/go-bapu
/usr/ports/net/go-amqp
/usr/ports/net-p2p/go-ethereum
/usr/ports/lang/go-devel
/usr/ports/dns/go-geodns
/usr/ports/devel/go-yaml
/usr/ports/devel/go-uuid
/usr/ports/devel/go-tools
/usr/ports/devel/go-sql-driver
/usr/ports/devel/go-slices
/usr/ports/devel/go-runewidth
/usr/ports/devel/go-raw
/usr/ports/devel/go-protobuf
/usr/ports/devel/go-pflag
/usr/ports/devel/go-nuid
/usr/ports/devel/go-metrics
/usr/ports/devel/go-logrus
/usr/ports/devel/go-hashicorp-logutils
/usr/ports/devel/go-goregen
/usr/ports/devel/go-godef
/usr/ports/devel/go-gocode
/usr/ports/devel/go-go.uuid
/usr/ports/devel/go-glide
/usr/ports/devel/go-git
/usr/ports/devel/go-form
/usr/ports/devel/go-faker
/usr/ports/devel/go-crc32
/usr/ports/devel/go-cpuid
/usr/ports/devel/go-codec
/usr/ports/devel/go-cobra
/usr/ports/devel/go-bindata-assetfs
/usr/ports/devel/go-bindata
/usr/ports/devel/go-bayesian
/usr/ports/deskutils/go-for-it
/usr/ports/databases/go-carbon
/usr/ports/archivers/go-compress
```

Let me know if you have any questions and if you find it something people would like to see in ports/packages.
Thank you


----------



## SirDice (Sep 5, 2019)

Porter's handbook: 6.2. Bundled Libraries
Porter's handbook: 6.3. Shared Libraries


----------



## dsagra (Sep 5, 2019)

never mind, I guess those SDK's would fall in this category, though, that should not be packaged/ported? 








						Chapter 6. Special Considerations
					

Special considerations when creating a new FreeBSD Port




					www.freebsd.org
				




Thank you!


----------



## SirDice (Sep 5, 2019)

If I understood things correctly, it's not allowed for a port to fetch its own code (or whatever). Everything has to be fetched at the normal stage within the port. Once that stage is done a port can't start its own downloader (during the build stage for example) to fetch additional code, libraries or whatever.

I think Ruby gems are a good example of this. You can't create a port that simply runs `gem install whatever` during the build stage. You would need to create a port rubygem-whatever that fetches and builds that gem.


----------



## dsagra (Sep 6, 2019)

ok, so, that does not appear to be the case for Go libraries, though, I tried to submit such port, but was not accepted, I guess that depends on how Go applications are developed and redistributed 
Thanks for your help!


----------

