# # Copyright (c) 2011, Sascha Peilicke # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed # upon. The license for this file, and modifications and additions to the # file, is the same license as for the pristine package itself (unless the # license for the pristine package is not an Open Source License, in which # case the license is the MIT License). An "Open Source License" is a # license that conforms to the Open Source Definition (Version 1.9) # published by the Open Source Initiative. Name: go Version: 0.0.r57.1+hg20110519 Release: 0 Summary: A compiled, garbage-collected, concurrent programming language Group: Development/Languages/Other License: BSD3c URL: http://golang.org/ Source0: go-%{version}.tar.bz2 Source1: go-rpmlintrc Source2: go.sh Source3: macros.go Patch1: godoc-path-locations.patch BuildRoot: %{_tmppath}/%{name}-%{version}-build BuildRequires: ed BuildRequires: bison %if 0%{?suse_version} > 1020 BuildRequires: fdupes Recommends: go-doc %endif Provides: libcgo = %{version}-%{release} Provides: %{name}-devel-static ExclusiveArch: %ix86 x86_64 arm %description Go is an expressive, concurrent, garbage collected systems programming language that is type safe and memory safe. It has pointers but no pointer arithmetic. Go has fast builds, clean syntax, garbage collection, methods for any type, and run-time reflection. It feels like a dynamic language but has the speed and safety of a static language. %package doc Summary: Go documentation Group: Documentation/Other Requires: %{name} = %{version} Requires: go-devel %description doc Go examples and documentation. %package devel Summary: Toolchain and standard library sources, goinstall utility Group: Development/Languages/Other Requires: %{name} = %{version} Provides: %{name}-devel-static %description devel Contains source code files for the Go toolchain compilers, linkers and command utilities. Contains the "goinstall" utility for installing third party packages which requires the go standard library source to be installed. %package vim Summary: Go syntax files for Vim Group: Productivity/Text/Editors %if 0%{?suse_version} BuildRequires: vim-base Requires: vim-base %else BuildRequires: vim Requires: vim %endif Requires: %{name} = %{version} %description vim Vim syntax highlighting scheme for the Go programming language. %package emacs Summary: Go language syntax files for Emacs Group: Productivity/Text/Editors Requires: emacs Requires: %{name} = %{version} %description emacs Emacs syntax highlighting scheme for the Go programming language. %package kate Summary: Go syntax files for Kate and KWrite editors Group: Productivity/Text/Editors %if 0%{?suse_version} && 0%{?suse_version} >= 1120 BuildRequires: kate Requires: kate %else BuildRequires: kdelibs4 Requires: kdelibs4 %endif Requires: %{name} = %{version} %description kate Kate syntax highlighting scheme for the Go programming language. %prep %setup -q -n %{name} %patch1 -p1 %build export GOROOT="`pwd`" export GOBIN="$GOROOT/bin" mkdir -p "$GOBIN" cd src # remove computer lang benchmark tests, coelab wiki, dashboard... from run.bash sed '94,113d' $GOROOT/src/run.bash > $GOROOT/src/run.tmp mv $GOROOT/src/run.tmp $GOROOT/src/run.bash # disable net tests and run full test suite # TODO: testing is broken currently, re-enable with new upstream version #DISABLE_NET_TESTS=1 CFLAGS=${RPM_OPT_FLAGS} LC_ALL=C PATH="$PATH:$GOBIN" ./all.bash CFLAGS=${RPM_OPT_FLAGS} STRIP=/bin/true LC_ALL=C PATH="$PATH:$GOBIN" ./make.bash %install export GOROOT="%{buildroot}%{_libdir}/%{name}" install -Dm644 misc/bash/go %{buildroot}%{_sysconfdir}/bash_completion.d/go install -Dm644 %{SOURCE2} %{buildroot}%{_sysconfdir}/profile.d/go.sh install -Dm644 misc/emacs/go-mode-load.el %{buildroot}%{_datadir}/emacs/site-lisp/go-mode-load.el install -Dm644 misc/emacs/go-mode.el %{buildroot}%{_datadir}/emacs/site-lisp/go-mode.el install -Dm644 misc/vim/syntax/go.vim %{buildroot}%{_datadir}/vim/site/syntax/go.vim install -Dm644 misc/vim/ftdetect/gofiletype.vim %{buildroot}%{_datadir}/vim/site/ftdetect/gofiletype.vim install -Dm644 misc/kate/go.xml %{buildroot}%{_datadir}/kde4/apps/katepart/syntax/go.xml mkdir -p %{buildroot}%{_bindir} mkdir -p %{buildroot}%{_sbindir} cp -r bin/* %{buildroot}%{_bindir} mv %{buildroot}%{_bindir}/goinstall %{buildroot}%{_sbindir}/goinstall rm -f %{buildroot}%{_bindir}/{hgpatch,quietgcc} mkdir -p $GOROOT/src install -m644 src/Make.{ccmd,clib,cmd,common,inc,pkg} $GOROOT/src # source files for goinstall, godoc etc mkdir %{buildroot}%{_datadir}/go for ext in *.{go,c,h}; do find src -name ${ext} -exec install -Dm644 \{\} %{buildroot}%{_datadir}/go/\{\} \; done install -Dm644 lib/{lib9.a,libbio.a,libmach.a} %{buildroot}%{_libdir} cp -r lib/godoc $GOROOT/lib cp -r pkg $GOROOT # documentation mkdir -p doc/examples mv doc/{prog.sh,makehtml,progs} doc/examples mv misc/cgo doc/examples chmod 644 doc/codelab/wiki/test.sh # fix bnc#686557, contains image licensed under non-commercial license rm doc/talks/go_talk-20091030.pdf # RPM macros install -Dm644 %{SOURCE3} %{buildroot}%{_sysconfdir}/rpm/macros.go # issue #1242 # Go binaries are supposedly DWARF compliant but brp_strip_debug breaks them export NO_BRP_STRIP_DEBUG=true # Disable brp-strip-static-archive on Fedora, breaks build %if 0%{?fedora_version} %define __os_install_post %(echo '%{__os_install_post}' | sed -e 's!/usr/lib/rpm/[^/]*/?brp-strip-static-archive %{__strip}!!g') %endif %if 0%{?suse_version} > 1020 %fdupes %{buildroot} %endif %clean rm -rf %{buildroot} %files %defattr(-,root,root,-) %doc AUTHORS CONTRIBUTORS LICENSE PATENTS README %{_libdir}/go %{_libdir}/lib9.a %{_libdir}/libbio.a %{_libdir}/libmach.a %ifarch %ix86 %{_bindir}/8* %endif %{_bindir}/6* %{_bindir}/cgo %{_bindir}/ebnflint %{_bindir}/go* %config %{_sysconfdir}/bash_completion.d/go %config %{_sysconfdir}/profile.d/go.sh %{_sysconfdir}/rpm/macros.go %files devel %defattr(-,root,root,-) %{_sbindir}/goinstall %dir %{_datadir}/go %{_datadir}/go/* %files doc %defattr(-,root,root,-) %doc doc/* %files vim %defattr(-,root,root,-) %{_datadir}/vim/site/syntax/go.vim %{_datadir}/vim/site/ftdetect/gofiletype.vim %files emacs %defattr(-,root,root,-) %{_datadir}/emacs/site-lisp/go-mode*.el %files kate %defattr(-,root,root,-) %{_datadir}/kde4/apps/katepart/syntax/go.xml %changelog