From Fedora Project Wiki
(added a warning and revised gramar)
Line 13: Line 13:
=== Building ===
=== Building ===


Go doesn't support stripping yet; stripping actually breaks the build. This issue is [[http://code.google.com/p/go/issues/detail?id=1242 | known]]. It must be avoided for the time being.
{{admon/warning|Go doesn't support stripping yet; stripping actually breaks the build. This issue is [[http://code.google.com/p/go/issues/detail?id=1242 | known]]. It must be avoided for the time being.}}


The tags, according to [[How_to_create_an_RPM_package#Miscellaneous_hints | The Packaging Howto]], should be declaring these three globals:
The tags, according to [[How_to_create_an_RPM_package#Miscellaneous_hints | The Packaging Howto]], should be declaring these three globals on your spec file:


  %global _enable_debug_package 0
  %global _enable_debug_package 0

Revision as of 06:41, 4 February 2011

Description

The Go programming language is an open source project to make programmers more productive. Go is expressive, concise, clean, and efficient. Its concurrency mechanisms make it easy to write programs that get the most out of multicore and networked machines, while its novel type system enables flexible and modular program construction. Go compiles quickly to machine code yet has the convenience of garbage collection and the power of run-time reflection. It's a fast, statically typed, compiled language that feels like a dynamically typed, interpreted language.

It, also, includes a plethora of packages and related projects.

Go Packaging

Naming

Since go is a compiler and comes with many packages (libraries); distributed independently. Packaging guidelines should be applied only to those projects that expand go's functionality. Independent standalone packages should be named applying the NamingGuidelines.

Building

Go doesn't support stripping yet; stripping actually breaks the build. This issue is [| known]. It must be avoided for the time being.

The tags, according to The Packaging Howto, should be declaring these three globals on your spec file:

%global _enable_debug_package 0
%global debug_package %{nil}
%global __os_install_post /usr/lib/rpm/brp-compress %{nil}

File Placement

For now and as noted here, go has no intention to satisfy the FHS or POSIX standards.

This said, it is not impossible to put the binaries and libraries where they should be: /usr/bin/ and /usr/lib64/go accordingly.

Besides this, go needs a src directory inside the libraries dir; this is: /usr/lib64/go/src

Documentation

Go Packages and Projects

Naming

Building

File Placement

Documentation

Tips for Packagers

Reference

Websites

Oficial website: http://golang.org/

Projects: http://godashboard.appspot.com/project

Packages: http://godashboard.appspot.com/package

Communication

Mailing list: http://groups.google.com/group/golang-nuts

IRC: irc://irc.freenode.net/go-nuts

Twitter: http://twitter.com/go_nuts

Blog: http://blog.golang.org/