# # 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. %ifarch %ix86 %define go_os_arch linux_386 %endif %ifarch x86_64 %define go_os_arch linux_amd64 %endif Name: go Version: 20110429 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 Patch1: godoc-path-locations.patch BuildRoot: %{_tmppath}/%{name}-%{version}-build BuildRequires: ed bison chrpath %if 0%{?suse_version} > 1020 Recommends: go-doc %endif ExclusiveArch: %ix86 x86_64 Provides: libcgo = %{version}-%{release} %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} %description devel Contains soruce 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} >= 1120 BuildRequires: kate Requires: kate %else %if 0%{?suse_version} && 0%{?suse_version} <= 1110 BuildRequires: kdelibs4 Requires: kdelibs4 %endif %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 DISABLE_NET_TESTS=1 STRIP=/bin/true CFLAGS=${RPM_OPT_FLAGS} LC_ALL=C PATH="$PATH:$GOBIN" ./all.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} chrpath -d %{buildroot}%{_bindir}/{cgo,gofmt,goyacc,godoc,ebnflint} chrpath -d %{buildroot}%{_sbindir}/goinstall 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 # rpath check on bin/govet somehow breaks the build export NO_BRP_CHECK_RPATH=true # issue #1242 # Go binaries are supposedly DWARF compliant but brp_strip_debug breaks them export NO_BRP_STRIP_DEBUG=true %clean rm -rf %{buildroot} %files %defattr(-,root,root,-) %doc AUTHORS CONTRIBUTORS LICENSE 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 %files devel %defattr(-,root,root,-) %{_sbindir}/go* %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