diff options
Diffstat (limited to 'dev-lang/go')
-rw-r--r-- | dev-lang/go/Manifest | 21 | ||||
-rw-r--r-- | dev-lang/go/go-1.8.3.ebuild | 227 | ||||
-rw-r--r-- | dev-lang/go/go-1.9.1.ebuild | 227 | ||||
-rw-r--r-- | dev-lang/go/go-1.9.ebuild | 227 | ||||
-rw-r--r-- | dev-lang/go/go-9999.ebuild | 227 | ||||
-rw-r--r-- | dev-lang/go/metadata.xml | 16 |
6 files changed, 945 insertions, 0 deletions
diff --git a/dev-lang/go/Manifest b/dev-lang/go/Manifest new file mode 100644 index 000000000000..9f4ebd3716ce --- /dev/null +++ b/dev-lang/go/Manifest @@ -0,0 +1,21 @@ +DIST go-darwin-amd64-bootstrap-1.8.tbz 55053831 SHA256 1058dc305ad7b44b124d3d3eb2c579011b6c489a498e3313e4d0d089045ef3f7 SHA512 4cc24d44c84c94feafab021c0977fcea2aca8f191c6395e38fff68154b1e64efc3f94331c3e36c7b69901af58e9d53545c682f0a742d36b2d230508bd69777c4 WHIRLPOOL 52696cbe1129683e0cb0467b239723d29304d7f003317be6ce301118397166844489edaa7a15bf38e11dc205b50fafc326f4f35e2ed0d89e2fcb2701a6509838 +DIST go-freebsd-386-bootstrap-1.8.tbz 53739013 SHA256 1e4afbb11aaa32d3de70fe3e407e519f100f09de3ac4f881d8410fc1345e13f9 SHA512 c92f849b2d92401657412cccc589042b2747e55b2f4813d674c5bc91c3f535ee60f8ed7b8cbf1320e216d22a16dade8b78bb8071982895901f2b3c304e38f478 WHIRLPOOL 80d973b0c0b8c2eb363ef171ee6f51d17d82997f3f1d192a68d4a18eea2413876b453dc5f673a827e781d2f2cb009b6fd91796599217435e7f0969cdece71698 +DIST go-freebsd-amd64-bootstrap-1.8.tbz 55103927 SHA256 4a6291e9044bc3e284943873b4a4868ee94515e1fb00416cabb9b19d6e8a40e7 SHA512 c7d50731ff41147295ef5f3233aa1404081b47e786a300e1d0e4db8348e56bd73fe5f169fe8b807ffa37a53683e3aef16ebb6e877d802b86ff1a3d5d3a6f44cb WHIRLPOOL e2c02a9ffcd82125de64c48abe4158a3bf352a02dea4b5ce34b345cb078fa97cf5cc65f874f454b9fb7776faa499cc16d9c50d035206c3172251a3ab365c9384 +DIST go-linux-386-bootstrap-1.8.tbz 53843745 SHA256 da2172a6aa7593bbdae43d714989b5fd728e3a722cab9ccb599b5d159240152f SHA512 b456f7572d04c805a6fc756647c050460f76e5404dba41963c861c92f1600e9fedafe181a1f69132518065737a88edb4b183ec8c3ca24bc8df31279117e92606 WHIRLPOOL 8ae15f8963a842067f79a10741bed30e9b3b6d2bfeacb453dd4eae79ffdd86e214f361fba90b64013e0ce87238f151d985350ea2d7d1d82f7fc464a03ca25bb2 +DIST go-linux-amd64-bootstrap-1.8.tbz 55399105 SHA256 b21c5846d2837de48286c65026a2ce6bdd03fcc6bec5ba29861080a2d228999b SHA512 89d68cfe0e6ce4be690cf52a4a02b17ef2cae3538b057d4690bfd6e93727bcdc1cbc17cba3403e652bb95bffd25d44bdd4efd0014d1d2f019838bde925139f57 WHIRLPOOL 21f70e16e10c49f4b6462cc35329015588ae337045c9fc61a49fa985d03aa194f4be55cd146fd23060226162102789258e54ed3534726d470adf43cac84df586 +DIST go-linux-arm-bootstrap-1.8.tbz 53948103 SHA256 86593294a84d3085583cf3293df62ca82a119bfe560ff649e1af8b1b0e45ee79 SHA512 98ff0dbdb2aca9e54ea5327c9d31ce389e434a887015ef8555a8e85223a9998075c5013045275fb995a877a8d247704a21d726d46df7097adc0c4aa03af4cd68 WHIRLPOOL ba62849e86cf0f905f75affb4748d1c4cf9b0421bad5c726556d96a6e8f4bca0790b097b9b2a4145eb8e0a95458f589a6f14de586f22ca1969d279f8e7271959 +DIST go-linux-arm64-bootstrap-1.8.tbz 51947002 SHA256 773305a44482d4d4c5a9be5c5997b40772c6efe4a38bdd2750612463b7786a88 SHA512 adfbe62c5594c267707078bf8afb94a793dfba004c04a1a60f96d023d96c2fc4a6a422dee93a0f3487b1f2e1e117c7c6c607b62126dd5535686aaed88f6659d9 WHIRLPOOL b3af3c442d801b26b530a315d3aed17c2650064eb156c2fcb8da7f6597aa05eda5c425c6c14e881cce7b89ef83e9d6dc8480f789d2db2186a78ae95fbcb13520 +DIST go-linux-ppc64-bootstrap-1.8.tbz 52315782 SHA256 19eb3674c07a17dacec9620bc5ddcffa0264adf606e4c0d640c9f31644777ab3 SHA512 0aa32ac1514055ed9140b8c8330cbdbadfd9da6ad00b60d49b0685473be21e0b6510c31394678e32048f2f38d06a0d575f453c555614664eaef2bf5be6c91734 WHIRLPOOL 2363ce812af9c1dec331801477e979ef82a66d0ca92ac92f56fcb3bb264d96acdb6bfcd397d2c7b81cdc616a69571afa4343a0c64ebfc8ec7d6f8aab0ae4ece1 +DIST go-linux-ppc64le-bootstrap-1.8.tbz 52211575 SHA256 4e05b8830a473756cfee3fc27a17e09b38ccfca4e2335a485b41d3fb9c342066 SHA512 6931d999dd0ee1ff44c4cec48acb27af061f57f87aa74802dcebab78553b46bc8ac732f07fe91e5074dbdd32c55b707994875934bfb12bb4276d71eb1d06c4ba WHIRLPOOL cdc392fc51b7bfdd28e1c29bffce88139b9447261c9dbffefb3910b9c7406505bd250309618bd6a8430dcfcecc9155f8d5fe94f9e848cc2e721776ba34c22c3a +DIST go-linux-s390x-bootstrap-1.8.tbz 57124869 SHA256 70bb859e80268b3421587d85189a807b14449b8c5e7b23606b87dfab54189634 SHA512 d429cae870d66217ab2e07c74209d3031d97baa4f899b4d70ae6283a1a5b1434b037904c4cfca0b2bc798d5ba0b358c3739e000eccbc74809baf564c5686df5a WHIRLPOOL d0475efcbc2c1cbb3c6db452dbeb2a5fe709fa56b65eba2fbbcce2296b6a04ba89b9e33579d6eab192cd63b45ad78a0d7afd458229e4b252e80bd2db260abf11 +DIST go-solaris-amd64-bootstrap-1.8.tbz 54926326 SHA256 83053f333d56d72ddbe9a8f293f8afeff31739806d49ebaa144811a5438b17bc SHA512 52b849e5b9a940e10de7ba3df0ebdf6e1c5d631de9581d936c9edf8f38e6bb3314acbc2b2d5202b0528fde2a359d52bc0c6f39acf9b1b614725e4b4a947ed10d WHIRLPOOL 2d58085d88fa612a7dfb087df33d2c5ee6b6d4c0b0c0363d5dcef014a6e3e9703816e8a111d1348e1e1a4ebcdde58694a869a27ae42e0deec154529f1a794991 +DIST go1.8.3.src.tar.gz 15345996 SHA256 5f5dea2447e7dcfdc50fa6b94c512e58bfba5673c039259fd843f68829d99fa6 SHA512 c6e67dd9e3acdf2aa776d920f91f3fb1802d624ba5d51e06b2c7c6b71bcfaf91f4024f7a442cecde69175c589f7f1163f0ae86d887e15ddde710e53ce0961284 WHIRLPOOL 918a13b5323c77093428890ac4759daa3f40bd9379df0b862f9ba0fcf7f0f99eb83e37294dec25329a792573b97ddccb417a43dc8cccbd41bf17df6b01ea77f2 +DIST go1.9.1.src.tar.gz 16377700 SHA256 a84afc9dc7d64fe0fa84d4d735e2ece23831a22117b50dafc75c1484f1cb550e SHA512 3c5d11089a54c61acd1a4fad9618ddb2058cc783a54564407ee50e37c864deaadfd5effeab623080c136a599096f448aae091ef41d0afca1abfcdb98adf4a793 WHIRLPOOL 1cdfddfbe2b432a783d821bf6caf6615868de7eeb71667fd38d77a115b87c0d5321d6928f271bbe7edd6e05d56f5a0e05b6fceeec5dd025673c0a0ad9224ad3e +DIST go1.9.src.tar.gz 16377363 SHA256 a4ab229028ed167ba1986825751463605264e44868362ca8e7accc8be057e993 SHA512 70c4b892b6883fb21fc1a547a2b8d174df8c7aca282a3906e3816b4442b16c5da578b69c19443122a4a45e66fc95d170528d826b70932af09f4afd2a46615d74 WHIRLPOOL ffd7c37ac49ac55546f0712cdfae9eda83c6cbc10a6b495b021d7a5076bac1063f0a322622692f1b67142a995da2de7e297a43727502331788adac43163848a2 +EBUILD go-1.8.3.ebuild 5581 SHA256 0f93c5167e263e8029621377972b4be9f94187d325d459bda30268935bff3b8d SHA512 f45cfc64b0671b7089cf6e802b4963598e3c47b338ebf8ee6f741ddc4979ba1fe3306d7ef02e7625af2b4b8c4108e8b6ec8f820a2ba75560d04a4c37960d4997 WHIRLPOOL 086b7c4b0ac20a17822d704451f258966921103a297d8038a71183895c6fb645a18edaaaf0d90c34ed0c0b7fcc74d069cfdb62d5d530b71d5967a2b7ddc59ae8 +EBUILD go-1.9.1.ebuild 5582 SHA256 d7d2060ce3c8857867703011c39e7d2b2d8dc5de12fa0982479955ac8179ded8 SHA512 aa97dca1ecf9e7463dbe7b94f48ccd132a839f87997615d6a1f61ea1827cbb75e653a356b2a3ceab6901dc54cfd24b42c18dc2cd07c75df0254f012704b0ff59 WHIRLPOOL 84e1f30529e3d68ccc516198caca9096b96b148acc86b25e2fd10a0d2900cf84468f87c5dccb184a465a17c424a90b60a83c35ee160078bf4c15def846c63f43 +EBUILD go-1.9.ebuild 5583 SHA256 ed61ef48faff64b18806aa7a2e485f2b350dda25aa28d5c7c412f9e3aadb87c1 SHA512 635afcc0254342631b895b867785d390cad7a671e2dafb2e6a7d9e8c73cd1c951b6b5b1781f6e6b805f7ecba0784c66f574848823c24517a3c8aa1679867dbd8 WHIRLPOOL 9a57db77f411080d78763191fca1b3aec435127e5f752b47e596f3f2ac9e593070073aad9f620ad5395739bceebd3051de2024c543c9abf9390c8c834826c3c2 +EBUILD go-9999.ebuild 5584 SHA256 3854f126a7b2d76ed3dfde8cff697d6c033d6d60e063b07239485a5410666504 SHA512 9b009525bda054f8451d1a202a7dfd7087de6e9d57633f7a8c9c74bdae6407e420237a0c80c58e5650c5beb9c01cef29052ec8e182129f23d2cbcbbdf2efbed7 WHIRLPOOL dcb1f48b08de50e1ba456c81676bc0c8b2817d73faaa5ce188d9508bb1376833d754cd3391f254fd353ca6100f8fdee5e18d20e0d6b223a7b09790d1e50f9ab0 +MISC ChangeLog 15550 SHA256 1e804542720fb0000c4ae8ed1d840415527ec25a16f77aafd7eceeefbe446377 SHA512 3e8c4083b1a7ee877c55283f3463aaec0144d090b5ffc5be7258a29de69d88ae3ecd2fe69f4ff118667796d8a79235870d47855f033d7e67e1da78fc466df638 WHIRLPOOL 8d80ee3abbf55b198e82d911983ed5155da45e72d2b4d2aa39f71837857c61a02797e5a3b9b776f2f93af5ad81babc8e2d5fc7e9a7405d07b069755333479b9f +MISC ChangeLog-2015 9934 SHA256 5c5375109d9de6edbdf782c355e7f28a8ac4c97d84ca4257a65f12d112fd6a9b SHA512 879f50097cd760b2e96c8ad06ff092f51797181a241361c4897b48abffbad8224331a1bcc614d525e548f7001d3ad664a103ba557a819f0d1cb3c23d67b4019c WHIRLPOOL f11ad28c4f0e811ba70c3b6a8314622d7ab4b064151cb94e62f461fc24c9e62c821571ee771578a20da18ea143d06518a5835f9deedea2a3098a5e83bd6eb5be +MISC metadata.xml 538 SHA256 5afbcc62774498f7df0ca1428b7c8eb3ebfcd4942de653e6e1a4708d41c87fb5 SHA512 514a441a522218fdca543a22370e965a2bfc1f1f2c37e77431143329bb3d3f4f53e99ad5d7f7d7c61877f77387a777f7b4f339b9a3e45322d01d39d3d0ea1309 WHIRLPOOL 2263738f89d878ca10080ceed843b90ed35abdf86916e2f83f324150219064a42fa3bf3fe0c5a12e76d0ef403776f679b599775af74e8cda243d96f0f7793965 diff --git a/dev-lang/go/go-1.8.3.ebuild b/dev-lang/go/go-1.8.3.ebuild new file mode 100644 index 000000000000..6b538a0be4e7 --- /dev/null +++ b/dev-lang/go/go-1.8.3.ebuild @@ -0,0 +1,227 @@ +# Copyright 1999-2017 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI=6 + +export CBUILD=${CBUILD:-${CHOST}} +export CTARGET=${CTARGET:-${CHOST}} + +MY_PV=${PV/_/} + +inherit toolchain-funcs + +BOOTSTRAP_DIST="https://dev.gentoo.org/~williamh/dist" +BOOTSTRAP_VERSION="bootstrap-1.8" +BOOTSTRAP_URI=" +amd64? ( ${BOOTSTRAP_DIST}/go-linux-amd64-${BOOTSTRAP_VERSION}.tbz ) +arm? ( ${BOOTSTRAP_DIST}/go-linux-arm-${BOOTSTRAP_VERSION}.tbz ) +arm64? ( ${BOOTSTRAP_DIST}/go-linux-arm64-${BOOTSTRAP_VERSION}.tbz ) +ppc64? ( + ${BOOTSTRAP_DIST}/go-linux-ppc64-${BOOTSTRAP_VERSION}.tbz + ${BOOTSTRAP_DIST}/go-linux-ppc64le-${BOOTSTRAP_VERSION}.tbz +) +s390? ( ${BOOTSTRAP_DIST}/go-linux-s390x-${BOOTSTRAP_VERSION}.tbz ) +x86? ( ${BOOTSTRAP_DIST}/go-linux-386-${BOOTSTRAP_VERSION}.tbz ) +amd64-fbsd? ( ${BOOTSTRAP_DIST}/go-freebsd-amd64-${BOOTSTRAP_VERSION}.tbz ) +x86-fbsd? ( ${BOOTSTRAP_DIST}/go-freebsd-386-${BOOTSTRAP_VERSION}.tbz ) +x64-macos? ( ${BOOTSTRAP_DIST}/go-darwin-amd64-${BOOTSTRAP_VERSION}.tbz ) +x64-solaris? ( ${BOOTSTRAP_DIST}/go-solaris-amd64-${BOOTSTRAP_VERSION}.tbz ) +" + +case ${PV} in +*9999*) + EGIT_REPO_URI="https://github.com/golang/go.git" + inherit git-r3 + ;; +*) + SRC_URI="https://storage.googleapis.com/golang/go${MY_PV}.src.tar.gz " + S="${WORKDIR}"/go + case ${PV} in + *_beta*|*_rc*) ;; + *) + KEYWORDS="-* amd64 arm ~arm64 ~ppc64 x86 ~amd64-fbsd ~x86-fbsd ~x64-macos ~x64-solaris" + # The upstream tests fail under portage but pass if the build is + # run according to their documentation [1]. + # I am restricting the tests on released versions until this is + # solved. + # [1] https://golang.org/issues/18442 + RESTRICT="test" + ;; + esac +esac +SRC_URI+="!gccgo? ( ${BOOTSTRAP_URI} )" + +DESCRIPTION="A concurrent garbage collected and typesafe programming language" +HOMEPAGE="https://golang.org" + +LICENSE="BSD" +SLOT="0/${PV}" +IUSE="gccgo" + +DEPEND="gccgo? ( >=sys-devel/gcc-5[go] )" +RDEPEND="!<dev-go/go-tools-0_pre20150902" + +# These test data objects have writable/executable stacks. +QA_EXECSTACK=" + usr/lib/go/src/debug/elf/testdata/*.obj + usr/lib/go/src/go/internal/gccgoimporter/testdata/unicode.gox + usr/lib/go/src/go/internal/gccgoimporter/testdata/time.gox + " + +# Do not complain about CFLAGS, etc, since Go doesn't use them. +QA_FLAGS_IGNORED='.*' + +REQUIRES_EXCLUDE="/usr/lib/go/src/debug/elf/testdata/*" + +# The tools in /usr/lib/go should not cause the multilib-strict check to fail. +QA_MULTILIB_PATHS="usr/lib/go/pkg/tool/.*/.*" + +# Do not strip this package. Stripping is unsupported upstream and may +# fail. +RESTRICT+=" strip" + +DOCS=( +AUTHORS +CONTRIBUTING.md +CONTRIBUTORS +PATENTS +README.md +) + +go_arch() +{ + # By chance most portage arch names match Go + local portage_arch=$(tc-arch $@) + case "${portage_arch}" in + x86) echo 386;; + x64-*) echo amd64;; + ppc64) [[ $(tc-endian $@) = big ]] && echo ppc64 || echo ppc64le ;; + s390) echo s390x ;; + *) echo "${portage_arch}";; + esac +} + +go_arm() +{ + case "${1:-${CHOST}}" in + armv5*) echo 5;; + armv6*) echo 6;; + armv7*) echo 7;; + *) + die "unknown GOARM for ${1:-${CHOST}}" + ;; + esac +} + +go_os() +{ + case "${1:-${CHOST}}" in + *-linux*) echo linux;; + *-darwin*) echo darwin;; + *-freebsd*) echo freebsd;; + *-netbsd*) echo netbsd;; + *-openbsd*) echo openbsd;; + *-solaris*) echo solaris;; + *-cygwin*|*-interix*|*-winnt*) + echo windows + ;; + *) + die "unknown GOOS for ${1:-${CHOST}}" + ;; + esac +} + +go_tuple() +{ + echo "$(go_os $@)_$(go_arch $@)" +} + +go_cross_compile() +{ + [[ $(go_tuple ${CBUILD}) != $(go_tuple) ]] +} + +pkg_pretend() +{ + # make.bash does not understand cross-compiling a cross-compiler + if [[ $(go_tuple) != $(go_tuple ${CTARGET}) ]]; then + die "CHOST CTARGET pair unsupported: CHOST=${CHOST} CTARGET=${CTARGET}" + fi +} + +src_unpack() +{ + if [[ ${PV} = 9999 ]]; then + git-r3_src_unpack + fi + default +} + +src_compile() +{ + export GOROOT_BOOTSTRAP="${WORKDIR}"/go-$(go_os)-$(go_arch)-bootstrap + if use gccgo; then + mkdir -p "${GOROOT_BOOTSTRAP}/bin" || die + local go_binary=$(gcc-config --get-bin-path)/go-$(gcc-major-version) + [[ -x ${go_binary} ]] || go_binary=$( + find "${EPREFIX}"/usr/${CHOST}/gcc-bin/*/go-$(gcc-major-version) | + sort -V | tail -n1) + [[ -x ${go_binary} ]] || + die "go-$(gcc-major-version): command not found" + ln -s "${go_binary}" "${GOROOT_BOOTSTRAP}/bin/go" || die + fi + export GOROOT_FINAL="${EPREFIX}"/usr/lib/go + export GOROOT="$(pwd)" + export GOBIN="${GOROOT}/bin" + + # Go's build script does not use BUILD/HOST/TARGET consistently. :( + export GOHOSTARCH=$(go_arch ${CBUILD}) + export GOHOSTOS=$(go_os ${CBUILD}) + export CC=$(tc-getBUILD_CC) + + export GOARCH=$(go_arch) + export GOOS=$(go_os) + export CC_FOR_TARGET=$(tc-getCC) + export CXX_FOR_TARGET=$(tc-getCXX) + if [[ ${ARCH} == arm ]]; then + export GOARM=$(go_arm) + fi + einfo "GOROOT_BOOTSTRAP is ${GOROOT_BOOTSTRAP}" + + cd src + ./make.bash || die "build failed" +} + +src_test() +{ + go_cross_compile && return 0 + + cd src + PATH="${GOBIN}:${PATH}" \ + ./run.bash -no-rebuild || die "tests failed" +} + +src_install() +{ + local bin_path f x + + dodir /usr/lib/go + + # There is a known issue which requires the source tree to be installed [1]. + # Once this is fixed, we can consider using the doc use flag to control + # installing the doc and src directories. + # [1] https://golang.org/issue/2775 + # + # deliberately use cp to retain permissions + cp -R api bin doc lib pkg misc src test "${ED}"/usr/lib/go + if go_cross_compile; then + bin_path="bin/$(go_tuple)" + else + bin_path=bin + fi + for x in ${bin_path}/*; do + f=${x##*/} + dosym ../lib/go/${bin_path}/${f} /usr/bin/${f} + done + einstalldocs +} diff --git a/dev-lang/go/go-1.9.1.ebuild b/dev-lang/go/go-1.9.1.ebuild new file mode 100644 index 000000000000..ba6f541436c8 --- /dev/null +++ b/dev-lang/go/go-1.9.1.ebuild @@ -0,0 +1,227 @@ +# Copyright 1999-2017 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI=6 + +export CBUILD=${CBUILD:-${CHOST}} +export CTARGET=${CTARGET:-${CHOST}} + +MY_PV=${PV/_/} + +inherit toolchain-funcs + +BOOTSTRAP_DIST="https://dev.gentoo.org/~williamh/dist" +BOOTSTRAP_VERSION="bootstrap-1.8" +BOOTSTRAP_URI=" +amd64? ( ${BOOTSTRAP_DIST}/go-linux-amd64-${BOOTSTRAP_VERSION}.tbz ) +arm? ( ${BOOTSTRAP_DIST}/go-linux-arm-${BOOTSTRAP_VERSION}.tbz ) +arm64? ( ${BOOTSTRAP_DIST}/go-linux-arm64-${BOOTSTRAP_VERSION}.tbz ) +ppc64? ( + ${BOOTSTRAP_DIST}/go-linux-ppc64-${BOOTSTRAP_VERSION}.tbz + ${BOOTSTRAP_DIST}/go-linux-ppc64le-${BOOTSTRAP_VERSION}.tbz +) +s390? ( ${BOOTSTRAP_DIST}/go-linux-s390x-${BOOTSTRAP_VERSION}.tbz ) +x86? ( ${BOOTSTRAP_DIST}/go-linux-386-${BOOTSTRAP_VERSION}.tbz ) +amd64-fbsd? ( ${BOOTSTRAP_DIST}/go-freebsd-amd64-${BOOTSTRAP_VERSION}.tbz ) +x86-fbsd? ( ${BOOTSTRAP_DIST}/go-freebsd-386-${BOOTSTRAP_VERSION}.tbz ) +x64-macos? ( ${BOOTSTRAP_DIST}/go-darwin-amd64-${BOOTSTRAP_VERSION}.tbz ) +x64-solaris? ( ${BOOTSTRAP_DIST}/go-solaris-amd64-${BOOTSTRAP_VERSION}.tbz ) +" + +case ${PV} in +*9999*) + EGIT_REPO_URI="https://github.com/golang/go.git" + inherit git-r3 + ;; +*) + SRC_URI="https://storage.googleapis.com/golang/go${MY_PV}.src.tar.gz " + S="${WORKDIR}"/go + case ${PV} in + *_beta*|*_rc*) ;; + *) + KEYWORDS="-* amd64 ~arm ~arm64 ~ppc64 x86 ~amd64-fbsd ~x86-fbsd ~x64-macos ~x64-solaris" + # The upstream tests fail under portage but pass if the build is + # run according to their documentation [1]. + # I am restricting the tests on released versions until this is + # solved. + # [1] https://golang.org/issues/18442 + RESTRICT="test" + ;; + esac +esac +SRC_URI+="!gccgo? ( ${BOOTSTRAP_URI} )" + +DESCRIPTION="A concurrent garbage collected and typesafe programming language" +HOMEPAGE="https://golang.org" + +LICENSE="BSD" +SLOT="0/${PV}" +IUSE="gccgo" + +DEPEND="gccgo? ( >=sys-devel/gcc-5[go] )" +RDEPEND="!<dev-go/go-tools-0_pre20150902" + +# These test data objects have writable/executable stacks. +QA_EXECSTACK=" + usr/lib/go/src/debug/elf/testdata/*.obj + usr/lib/go/src/go/internal/gccgoimporter/testdata/unicode.gox + usr/lib/go/src/go/internal/gccgoimporter/testdata/time.gox + " + +# Do not complain about CFLAGS, etc, since Go doesn't use them. +QA_FLAGS_IGNORED='.*' + +REQUIRES_EXCLUDE="/usr/lib/go/src/debug/elf/testdata/*" + +# The tools in /usr/lib/go should not cause the multilib-strict check to fail. +QA_MULTILIB_PATHS="usr/lib/go/pkg/tool/.*/.*" + +# Do not strip this package. Stripping is unsupported upstream and may +# fail. +RESTRICT+=" strip" + +DOCS=( +AUTHORS +CONTRIBUTING.md +CONTRIBUTORS +PATENTS +README.md +) + +go_arch() +{ + # By chance most portage arch names match Go + local portage_arch=$(tc-arch $@) + case "${portage_arch}" in + x86) echo 386;; + x64-*) echo amd64;; + ppc64) [[ $(tc-endian $@) = big ]] && echo ppc64 || echo ppc64le ;; + s390) echo s390x ;; + *) echo "${portage_arch}";; + esac +} + +go_arm() +{ + case "${1:-${CHOST}}" in + armv5*) echo 5;; + armv6*) echo 6;; + armv7*) echo 7;; + *) + die "unknown GOARM for ${1:-${CHOST}}" + ;; + esac +} + +go_os() +{ + case "${1:-${CHOST}}" in + *-linux*) echo linux;; + *-darwin*) echo darwin;; + *-freebsd*) echo freebsd;; + *-netbsd*) echo netbsd;; + *-openbsd*) echo openbsd;; + *-solaris*) echo solaris;; + *-cygwin*|*-interix*|*-winnt*) + echo windows + ;; + *) + die "unknown GOOS for ${1:-${CHOST}}" + ;; + esac +} + +go_tuple() +{ + echo "$(go_os $@)_$(go_arch $@)" +} + +go_cross_compile() +{ + [[ $(go_tuple ${CBUILD}) != $(go_tuple) ]] +} + +pkg_pretend() +{ + # make.bash does not understand cross-compiling a cross-compiler + if [[ $(go_tuple) != $(go_tuple ${CTARGET}) ]]; then + die "CHOST CTARGET pair unsupported: CHOST=${CHOST} CTARGET=${CTARGET}" + fi +} + +src_unpack() +{ + if [[ ${PV} = 9999 ]]; then + git-r3_src_unpack + fi + default +} + +src_compile() +{ + export GOROOT_BOOTSTRAP="${WORKDIR}"/go-$(go_os)-$(go_arch)-bootstrap + if use gccgo; then + mkdir -p "${GOROOT_BOOTSTRAP}/bin" || die + local go_binary=$(gcc-config --get-bin-path)/go-$(gcc-major-version) + [[ -x ${go_binary} ]] || go_binary=$( + find "${EPREFIX}"/usr/${CHOST}/gcc-bin/*/go-$(gcc-major-version) | + sort -V | tail -n1) + [[ -x ${go_binary} ]] || + die "go-$(gcc-major-version): command not found" + ln -s "${go_binary}" "${GOROOT_BOOTSTRAP}/bin/go" || die + fi + export GOROOT_FINAL="${EPREFIX}"/usr/lib/go + export GOROOT="$(pwd)" + export GOBIN="${GOROOT}/bin" + + # Go's build script does not use BUILD/HOST/TARGET consistently. :( + export GOHOSTARCH=$(go_arch ${CBUILD}) + export GOHOSTOS=$(go_os ${CBUILD}) + export CC=$(tc-getBUILD_CC) + + export GOARCH=$(go_arch) + export GOOS=$(go_os) + export CC_FOR_TARGET=$(tc-getCC) + export CXX_FOR_TARGET=$(tc-getCXX) + if [[ ${ARCH} == arm ]]; then + export GOARM=$(go_arm) + fi + einfo "GOROOT_BOOTSTRAP is ${GOROOT_BOOTSTRAP}" + + cd src + ./make.bash || die "build failed" +} + +src_test() +{ + go_cross_compile && return 0 + + cd src + PATH="${GOBIN}:${PATH}" \ + ./run.bash -no-rebuild || die "tests failed" +} + +src_install() +{ + local bin_path f x + + dodir /usr/lib/go + + # There is a known issue which requires the source tree to be installed [1]. + # Once this is fixed, we can consider using the doc use flag to control + # installing the doc and src directories. + # [1] https://golang.org/issue/2775 + # + # deliberately use cp to retain permissions + cp -R api bin doc lib pkg misc src test "${ED}"/usr/lib/go + if go_cross_compile; then + bin_path="bin/$(go_tuple)" + else + bin_path=bin + fi + for x in ${bin_path}/*; do + f=${x##*/} + dosym ../lib/go/${bin_path}/${f} /usr/bin/${f} + done + einstalldocs +} diff --git a/dev-lang/go/go-1.9.ebuild b/dev-lang/go/go-1.9.ebuild new file mode 100644 index 000000000000..b22bdb390153 --- /dev/null +++ b/dev-lang/go/go-1.9.ebuild @@ -0,0 +1,227 @@ +# Copyright 1999-2017 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI=6 + +export CBUILD=${CBUILD:-${CHOST}} +export CTARGET=${CTARGET:-${CHOST}} + +MY_PV=${PV/_/} + +inherit toolchain-funcs + +BOOTSTRAP_DIST="https://dev.gentoo.org/~williamh/dist" +BOOTSTRAP_VERSION="bootstrap-1.8" +BOOTSTRAP_URI=" +amd64? ( ${BOOTSTRAP_DIST}/go-linux-amd64-${BOOTSTRAP_VERSION}.tbz ) +arm? ( ${BOOTSTRAP_DIST}/go-linux-arm-${BOOTSTRAP_VERSION}.tbz ) +arm64? ( ${BOOTSTRAP_DIST}/go-linux-arm64-${BOOTSTRAP_VERSION}.tbz ) +ppc64? ( + ${BOOTSTRAP_DIST}/go-linux-ppc64-${BOOTSTRAP_VERSION}.tbz + ${BOOTSTRAP_DIST}/go-linux-ppc64le-${BOOTSTRAP_VERSION}.tbz +) +s390? ( ${BOOTSTRAP_DIST}/go-linux-s390x-${BOOTSTRAP_VERSION}.tbz ) +x86? ( ${BOOTSTRAP_DIST}/go-linux-386-${BOOTSTRAP_VERSION}.tbz ) +amd64-fbsd? ( ${BOOTSTRAP_DIST}/go-freebsd-amd64-${BOOTSTRAP_VERSION}.tbz ) +x86-fbsd? ( ${BOOTSTRAP_DIST}/go-freebsd-386-${BOOTSTRAP_VERSION}.tbz ) +x64-macos? ( ${BOOTSTRAP_DIST}/go-darwin-amd64-${BOOTSTRAP_VERSION}.tbz ) +x64-solaris? ( ${BOOTSTRAP_DIST}/go-solaris-amd64-${BOOTSTRAP_VERSION}.tbz ) +" + +case ${PV} in +*9999*) + EGIT_REPO_URI="https://github.com/golang/go.git" + inherit git-r3 + ;; +*) + SRC_URI="https://storage.googleapis.com/golang/go${MY_PV}.src.tar.gz " + S="${WORKDIR}"/go + case ${PV} in + *_beta*|*_rc*) ;; + *) + KEYWORDS="-* amd64 ~arm ~arm64 ~ppc64 ~x86 ~amd64-fbsd ~x86-fbsd ~x64-macos ~x64-solaris" + # The upstream tests fail under portage but pass if the build is + # run according to their documentation [1]. + # I am restricting the tests on released versions until this is + # solved. + # [1] https://golang.org/issues/18442 + RESTRICT="test" + ;; + esac +esac +SRC_URI+="!gccgo? ( ${BOOTSTRAP_URI} )" + +DESCRIPTION="A concurrent garbage collected and typesafe programming language" +HOMEPAGE="https://golang.org" + +LICENSE="BSD" +SLOT="0/${PV}" +IUSE="gccgo" + +DEPEND="gccgo? ( >=sys-devel/gcc-5[go] )" +RDEPEND="!<dev-go/go-tools-0_pre20150902" + +# These test data objects have writable/executable stacks. +QA_EXECSTACK=" + usr/lib/go/src/debug/elf/testdata/*.obj + usr/lib/go/src/go/internal/gccgoimporter/testdata/unicode.gox + usr/lib/go/src/go/internal/gccgoimporter/testdata/time.gox + " + +# Do not complain about CFLAGS, etc, since Go doesn't use them. +QA_FLAGS_IGNORED='.*' + +REQUIRES_EXCLUDE="/usr/lib/go/src/debug/elf/testdata/*" + +# The tools in /usr/lib/go should not cause the multilib-strict check to fail. +QA_MULTILIB_PATHS="usr/lib/go/pkg/tool/.*/.*" + +# Do not strip this package. Stripping is unsupported upstream and may +# fail. +RESTRICT+=" strip" + +DOCS=( +AUTHORS +CONTRIBUTING.md +CONTRIBUTORS +PATENTS +README.md +) + +go_arch() +{ + # By chance most portage arch names match Go + local portage_arch=$(tc-arch $@) + case "${portage_arch}" in + x86) echo 386;; + x64-*) echo amd64;; + ppc64) [[ $(tc-endian $@) = big ]] && echo ppc64 || echo ppc64le ;; + s390) echo s390x ;; + *) echo "${portage_arch}";; + esac +} + +go_arm() +{ + case "${1:-${CHOST}}" in + armv5*) echo 5;; + armv6*) echo 6;; + armv7*) echo 7;; + *) + die "unknown GOARM for ${1:-${CHOST}}" + ;; + esac +} + +go_os() +{ + case "${1:-${CHOST}}" in + *-linux*) echo linux;; + *-darwin*) echo darwin;; + *-freebsd*) echo freebsd;; + *-netbsd*) echo netbsd;; + *-openbsd*) echo openbsd;; + *-solaris*) echo solaris;; + *-cygwin*|*-interix*|*-winnt*) + echo windows + ;; + *) + die "unknown GOOS for ${1:-${CHOST}}" + ;; + esac +} + +go_tuple() +{ + echo "$(go_os $@)_$(go_arch $@)" +} + +go_cross_compile() +{ + [[ $(go_tuple ${CBUILD}) != $(go_tuple) ]] +} + +pkg_pretend() +{ + # make.bash does not understand cross-compiling a cross-compiler + if [[ $(go_tuple) != $(go_tuple ${CTARGET}) ]]; then + die "CHOST CTARGET pair unsupported: CHOST=${CHOST} CTARGET=${CTARGET}" + fi +} + +src_unpack() +{ + if [[ ${PV} = 9999 ]]; then + git-r3_src_unpack + fi + default +} + +src_compile() +{ + export GOROOT_BOOTSTRAP="${WORKDIR}"/go-$(go_os)-$(go_arch)-bootstrap + if use gccgo; then + mkdir -p "${GOROOT_BOOTSTRAP}/bin" || die + local go_binary=$(gcc-config --get-bin-path)/go-$(gcc-major-version) + [[ -x ${go_binary} ]] || go_binary=$( + find "${EPREFIX}"/usr/${CHOST}/gcc-bin/*/go-$(gcc-major-version) | + sort -V | tail -n1) + [[ -x ${go_binary} ]] || + die "go-$(gcc-major-version): command not found" + ln -s "${go_binary}" "${GOROOT_BOOTSTRAP}/bin/go" || die + fi + export GOROOT_FINAL="${EPREFIX}"/usr/lib/go + export GOROOT="$(pwd)" + export GOBIN="${GOROOT}/bin" + + # Go's build script does not use BUILD/HOST/TARGET consistently. :( + export GOHOSTARCH=$(go_arch ${CBUILD}) + export GOHOSTOS=$(go_os ${CBUILD}) + export CC=$(tc-getBUILD_CC) + + export GOARCH=$(go_arch) + export GOOS=$(go_os) + export CC_FOR_TARGET=$(tc-getCC) + export CXX_FOR_TARGET=$(tc-getCXX) + if [[ ${ARCH} == arm ]]; then + export GOARM=$(go_arm) + fi + einfo "GOROOT_BOOTSTRAP is ${GOROOT_BOOTSTRAP}" + + cd src + ./make.bash || die "build failed" +} + +src_test() +{ + go_cross_compile && return 0 + + cd src + PATH="${GOBIN}:${PATH}" \ + ./run.bash -no-rebuild || die "tests failed" +} + +src_install() +{ + local bin_path f x + + dodir /usr/lib/go + + # There is a known issue which requires the source tree to be installed [1]. + # Once this is fixed, we can consider using the doc use flag to control + # installing the doc and src directories. + # [1] https://golang.org/issue/2775 + # + # deliberately use cp to retain permissions + cp -R api bin doc lib pkg misc src test "${ED}"/usr/lib/go + if go_cross_compile; then + bin_path="bin/$(go_tuple)" + else + bin_path=bin + fi + for x in ${bin_path}/*; do + f=${x##*/} + dosym ../lib/go/${bin_path}/${f} /usr/bin/${f} + done + einstalldocs +} diff --git a/dev-lang/go/go-9999.ebuild b/dev-lang/go/go-9999.ebuild new file mode 100644 index 000000000000..2ac936f0164a --- /dev/null +++ b/dev-lang/go/go-9999.ebuild @@ -0,0 +1,227 @@ +# Copyright 1999-2017 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI=6 + +export CBUILD=${CBUILD:-${CHOST}} +export CTARGET=${CTARGET:-${CHOST}} + +MY_PV=${PV/_/} + +inherit toolchain-funcs + +BOOTSTRAP_DIST="https://dev.gentoo.org/~williamh/dist" +BOOTSTRAP_VERSION="bootstrap-1.8" +BOOTSTRAP_URI=" +amd64? ( ${BOOTSTRAP_DIST}/go-linux-amd64-${BOOTSTRAP_VERSION}.tbz ) +arm? ( ${BOOTSTRAP_DIST}/go-linux-arm-${BOOTSTRAP_VERSION}.tbz ) +arm64? ( ${BOOTSTRAP_DIST}/go-linux-arm64-${BOOTSTRAP_VERSION}.tbz ) +ppc64? ( + ${BOOTSTRAP_DIST}/go-linux-ppc64-${BOOTSTRAP_VERSION}.tbz + ${BOOTSTRAP_DIST}/go-linux-ppc64le-${BOOTSTRAP_VERSION}.tbz +) +s390? ( ${BOOTSTRAP_DIST}/go-linux-s390x-${BOOTSTRAP_VERSION}.tbz ) +x86? ( ${BOOTSTRAP_DIST}/go-linux-386-${BOOTSTRAP_VERSION}.tbz ) +amd64-fbsd? ( ${BOOTSTRAP_DIST}/go-freebsd-amd64-${BOOTSTRAP_VERSION}.tbz ) +x86-fbsd? ( ${BOOTSTRAP_DIST}/go-freebsd-386-${BOOTSTRAP_VERSION}.tbz ) +x64-macos? ( ${BOOTSTRAP_DIST}/go-darwin-amd64-${BOOTSTRAP_VERSION}.tbz ) +x64-solaris? ( ${BOOTSTRAP_DIST}/go-solaris-amd64-${BOOTSTRAP_VERSION}.tbz ) +" + +case ${PV} in +*9999*) + EGIT_REPO_URI="https://github.com/golang/go.git" + inherit git-r3 + ;; +*) + SRC_URI="https://storage.googleapis.com/golang/go${MY_PV}.src.tar.gz " + S="${WORKDIR}"/go + case ${PV} in + *_beta*|*_rc*) ;; + *) + KEYWORDS="-* ~amd64 ~arm ~arm64 ~ppc64 ~x86 ~amd64-fbsd ~x86-fbsd ~x64-macos ~x64-solaris" + # The upstream tests fail under portage but pass if the build is + # run according to their documentation [1]. + # I am restricting the tests on released versions until this is + # solved. + # [1] https://golang.org/issues/18442 + RESTRICT="test" + ;; + esac +esac +SRC_URI+="!gccgo? ( ${BOOTSTRAP_URI} )" + +DESCRIPTION="A concurrent garbage collected and typesafe programming language" +HOMEPAGE="https://golang.org" + +LICENSE="BSD" +SLOT="0/${PV}" +IUSE="gccgo" + +DEPEND="gccgo? ( >=sys-devel/gcc-5[go] )" +RDEPEND="!<dev-go/go-tools-0_pre20150902" + +# These test data objects have writable/executable stacks. +QA_EXECSTACK=" + usr/lib/go/src/debug/elf/testdata/*.obj + usr/lib/go/src/go/internal/gccgoimporter/testdata/unicode.gox + usr/lib/go/src/go/internal/gccgoimporter/testdata/time.gox + " + +# Do not complain about CFLAGS, etc, since Go doesn't use them. +QA_FLAGS_IGNORED='.*' + +REQUIRES_EXCLUDE="/usr/lib/go/src/debug/elf/testdata/*" + +# The tools in /usr/lib/go should not cause the multilib-strict check to fail. +QA_MULTILIB_PATHS="usr/lib/go/pkg/tool/.*/.*" + +# Do not strip this package. Stripping is unsupported upstream and may +# fail. +RESTRICT+=" strip" + +DOCS=( +AUTHORS +CONTRIBUTING.md +CONTRIBUTORS +PATENTS +README.md +) + +go_arch() +{ + # By chance most portage arch names match Go + local portage_arch=$(tc-arch $@) + case "${portage_arch}" in + x86) echo 386;; + x64-*) echo amd64;; + ppc64) [[ $(tc-endian $@) = big ]] && echo ppc64 || echo ppc64le ;; + s390) echo s390x ;; + *) echo "${portage_arch}";; + esac +} + +go_arm() +{ + case "${1:-${CHOST}}" in + armv5*) echo 5;; + armv6*) echo 6;; + armv7*) echo 7;; + *) + die "unknown GOARM for ${1:-${CHOST}}" + ;; + esac +} + +go_os() +{ + case "${1:-${CHOST}}" in + *-linux*) echo linux;; + *-darwin*) echo darwin;; + *-freebsd*) echo freebsd;; + *-netbsd*) echo netbsd;; + *-openbsd*) echo openbsd;; + *-solaris*) echo solaris;; + *-cygwin*|*-interix*|*-winnt*) + echo windows + ;; + *) + die "unknown GOOS for ${1:-${CHOST}}" + ;; + esac +} + +go_tuple() +{ + echo "$(go_os $@)_$(go_arch $@)" +} + +go_cross_compile() +{ + [[ $(go_tuple ${CBUILD}) != $(go_tuple) ]] +} + +pkg_pretend() +{ + # make.bash does not understand cross-compiling a cross-compiler + if [[ $(go_tuple) != $(go_tuple ${CTARGET}) ]]; then + die "CHOST CTARGET pair unsupported: CHOST=${CHOST} CTARGET=${CTARGET}" + fi +} + +src_unpack() +{ + if [[ ${PV} = 9999 ]]; then + git-r3_src_unpack + fi + default +} + +src_compile() +{ + export GOROOT_BOOTSTRAP="${WORKDIR}"/go-$(go_os)-$(go_arch)-bootstrap + if use gccgo; then + mkdir -p "${GOROOT_BOOTSTRAP}/bin" || die + local go_binary=$(gcc-config --get-bin-path)/go-$(gcc-major-version) + [[ -x ${go_binary} ]] || go_binary=$( + find "${EPREFIX}"/usr/${CHOST}/gcc-bin/*/go-$(gcc-major-version) | + sort -V | tail -n1) + [[ -x ${go_binary} ]] || + die "go-$(gcc-major-version): command not found" + ln -s "${go_binary}" "${GOROOT_BOOTSTRAP}/bin/go" || die + fi + export GOROOT_FINAL="${EPREFIX}"/usr/lib/go + export GOROOT="$(pwd)" + export GOBIN="${GOROOT}/bin" + + # Go's build script does not use BUILD/HOST/TARGET consistently. :( + export GOHOSTARCH=$(go_arch ${CBUILD}) + export GOHOSTOS=$(go_os ${CBUILD}) + export CC=$(tc-getBUILD_CC) + + export GOARCH=$(go_arch) + export GOOS=$(go_os) + export CC_FOR_TARGET=$(tc-getCC) + export CXX_FOR_TARGET=$(tc-getCXX) + if [[ ${ARCH} == arm ]]; then + export GOARM=$(go_arm) + fi + einfo "GOROOT_BOOTSTRAP is ${GOROOT_BOOTSTRAP}" + + cd src + ./make.bash || die "build failed" +} + +src_test() +{ + go_cross_compile && return 0 + + cd src + PATH="${GOBIN}:${PATH}" \ + ./run.bash -no-rebuild || die "tests failed" +} + +src_install() +{ + local bin_path f x + + dodir /usr/lib/go + + # There is a known issue which requires the source tree to be installed [1]. + # Once this is fixed, we can consider using the doc use flag to control + # installing the doc and src directories. + # [1] https://golang.org/issue/2775 + # + # deliberately use cp to retain permissions + cp -R api bin doc lib pkg misc src test "${ED}"/usr/lib/go + if go_cross_compile; then + bin_path="bin/$(go_tuple)" + else + bin_path=bin + fi + for x in ${bin_path}/*; do + f=${x##*/} + dosym ../lib/go/${bin_path}/${f} /usr/bin/${f} + done + einstalldocs +} diff --git a/dev-lang/go/metadata.xml b/dev-lang/go/metadata.xml new file mode 100644 index 000000000000..f981de1f10bc --- /dev/null +++ b/dev-lang/go/metadata.xml @@ -0,0 +1,16 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="person"> + <email>williamh@gentoo.org</email> + <name>William Hubbs</name> + </maintainer> + <longdescription lang="en"> + Go is a new systems programming language developped at google by + Rob Pike. It has garbage collection, coroutines, communication + channels and a clean syntax. + </longdescription> + <use> + <flag name="gccgo">Enable bootstrapping using gccgo</flag> + </use> +</pkgmetadata> |