2 # - allow disabling tests (currently bcond exists just for showing which are test deps)
3 # - add verbose build output (currently dummy bcond)
4 # - setup GOMAXPROCS=2 from _smp_mflags
5 # - fix CC containing spaces (ccache)
6 # - check if hg use at build time can be dropped
9 %bcond_without tests # build without tests
10 %bcond_without verbose # verbose build (V=1)
12 Summary: Go compiler and tools
13 Summary(pl.UTF-8): Kompilator języka Go i narzędzia
18 Group: Development/Languages
19 #Source0Download: https://code.google.com/p/go/downloads/list
20 Source0: https://storage.googleapis.com/golang/go%{version}.src.tar.gz
21 # Source0-md5: 2cdbad6baefcf1007f3cf54a5bc878b7
22 Patch0: ca-certs.patch
23 URL: http://golang.org/
25 BuildRequires: rpm-pythonprov
27 BuildRequires: hostname
30 Requires: ca-certificates
31 ExclusiveArch: %{ix86} %{x8664} %{arm}
32 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
34 %define no_install_post_strip 1
35 %define no_install_post_chrpath 1
36 %define _enable_debug_packages 0
37 %define _noautoreqfiles %{_libdir}/%{name}/src
46 %define _vimdatadir %{_datadir}/vim
49 Go is an open source programming environment that makes it easy to
50 build simple, reliable, and efficient software.
52 %description -l pl.UTF-8
53 Go to mające otwarte źródła środowisko do programowania, pozwalające
54 na łatwe tworzenie prostych, pewnych i wydajnych programów.
57 Summary: Manual for go
58 Summary(fr.UTF-8): Documentation pour go
59 Summary(it.UTF-8): Documentazione di go
60 Summary(pl.UTF-8): Podręcznik dla go
62 %if "%{_rpmversion}" >= "5"
69 %description doc -l fr.UTF-8
70 Documentation pour go.
72 %description doc -l it.UTF-8
75 %description doc -l pl.UTF-8
78 %package -n vim-syntax-%{name}
79 Summary: Go syntax files for Vim
80 Summary(pl.UTF-8): Pliki składni Go dla Vima
81 Group: Applications/Editors
82 Requires: vim-rt >= 4:7.2.170
83 %if "%{_rpmversion}" >= "5"
87 %description -n vim-syntax-%{name}
88 Go syntax files for vim.
90 %description -n vim-syntax-%{name} -l pl.UTF-8
91 Pliki składni Go dla Vima.
93 %package -n emacs-%{name}
94 Summary: Go mode for Emacs
95 Summary(pl.UTF-8): Tryb Go dla Emacsa
96 Group: Applications/Editors
97 %if "%{_rpmversion}" >= "5"
101 %description -n emacs-%{name}
104 %description -n emacs-%{name} -l pl.UTF-8
113 %{__rm} src/pkg/net/multicast_test.go
117 export GOROOT_FINAL=%{_libdir}/%{name}
120 export GOBIN=$GOROOT/bin
121 export GOARCH=%{GOARCH}
123 export MAKE="%{__make}"
125 export CC="${CC#ccache }"
127 export PATH="$PATH:$GOBIN"
132 # optflags for go tools build
133 nflags="\"$(echo '%{rpmcflags}' | sed -e 's/^[ ]*//;s/[ ]*$//;s/[ ]\+/ /g' -e 's/ /\",\"/g')\""
134 %{__sed} -i -e "s/\"-O2\"/$nflags/" src/cmd/dist/build.c
135 # NOTE: optflags used in gcc calls from go compiler are in src/cmd/go/build.go
144 rm -rf $RPM_BUILD_ROOT
145 GOROOT=$RPM_BUILD_ROOT%{_libdir}/%{name}
147 install -d $GOROOT/{misc,lib,src}
148 install -d $RPM_BUILD_ROOT%{_bindir}
150 cp -a pkg include lib bin $GOROOT
151 cp -a src/pkg src/cmd $GOROOT/src
152 cp -a misc/cgo $GOROOT/misc
154 ln -sf %{_libdir}/%{name}/bin/go $RPM_BUILD_ROOT%{_bindir}/go
155 ln -sf %{_libdir}/%{name}/bin/godoc $RPM_BUILD_ROOT%{_bindir}/godoc
156 ln -sf %{_libdir}/%{name}/bin/gofmt $RPM_BUILD_ROOT%{_bindir}/gofmt
158 ln -sf %{_libdir}/%{name}/pkg/tool/linux_%{GOARCH}/cgo $RPM_BUILD_ROOT%{_bindir}/cgo
159 ln -sf %{_libdir}/%{name}/pkg/tool/linux_%{GOARCH}/ebnflint $RPM_BUILD_ROOT%{_bindir}/ebnflint
170 for tool in $tools; do
171 ln -sf %{_libdir}/%{name}/pkg/tool/linux_%{GOARCH}/$tool $RPM_BUILD_ROOT%{_bindir}/$tool
174 install -d $RPM_BUILD_ROOT%{_datadir}/emacs/site-lisp
175 cp -p misc/emacs/go*.el $RPM_BUILD_ROOT%{_datadir}/emacs/site-lisp/
177 VIMFILES="syntax/go.vim ftdetect/gofiletype.vim ftplugin/go/fmt.vim ftplugin/go/import.vim indent/go.vim"
178 for i in $VIMFILES; do
179 install -Dp misc/vim/$i $RPM_BUILD_ROOT%{_vimdatadir}/$i
183 rm -rf $RPM_BUILD_ROOT
186 %defattr(644,root,root,755)
187 %doc AUTHORS CONTRIBUTORS LICENSE README
189 %attr(755,root,root) %{_bindir}/5a
190 %attr(755,root,root) %{_bindir}/5c
191 %attr(755,root,root) %{_bindir}/5g
192 %attr(755,root,root) %{_bindir}/5l
195 %attr(755,root,root) %{_bindir}/6a
196 %attr(755,root,root) %{_bindir}/6c
197 %attr(755,root,root) %{_bindir}/6g
198 %attr(755,root,root) %{_bindir}/6l
201 %attr(755,root,root) %{_bindir}/8a
202 %attr(755,root,root) %{_bindir}/8c
203 %attr(755,root,root) %{_bindir}/8g
204 %attr(755,root,root) %{_bindir}/8l
206 %attr(755,root,root) %{_bindir}/cgo
207 %attr(755,root,root) %{_bindir}/ebnflint
208 %attr(755,root,root) %{_bindir}/go
209 %attr(755,root,root) %{_bindir}/godoc
210 %attr(755,root,root) %{_bindir}/gofmt
211 %dir %{_libdir}/%{name}
212 %dir %{_libdir}/%{name}/bin
213 %attr(755,root,root) %{_libdir}/%{name}/bin/*
215 %{_libdir}/%{name}/include
216 %{_libdir}/%{name}/lib
217 %{_libdir}/%{name}/misc
218 %{_libdir}/%{name}/src
219 %dir %{_libdir}/%{name}/pkg
220 %{_libdir}/%{name}/pkg/linux_%{GOARCH}
221 %{_libdir}/%{name}/pkg/obj
222 %dir %{_libdir}/%{name}/pkg/tool
223 %dir %{_libdir}/%{name}/pkg/tool/linux_%{GOARCH}
224 %attr(755,root,root) %{_libdir}/%{name}/pkg/tool/linux_%{GOARCH}/*
227 %dir %{_libdir}/%{name}/pkg/linux_%{GOARCH}_race
228 %{_libdir}/%{name}/pkg/linux_%{GOARCH}_race/*.a
229 %{_libdir}/%{name}/pkg/linux_%{GOARCH}_race/crypto
230 %{_libdir}/%{name}/pkg/linux_%{GOARCH}_race/debug
231 %{_libdir}/%{name}/pkg/linux_%{GOARCH}_race/encoding
232 %{_libdir}/%{name}/pkg/linux_%{GOARCH}_race/go
233 %{_libdir}/%{name}/pkg/linux_%{GOARCH}_race/io
234 %{_libdir}/%{name}/pkg/linux_%{GOARCH}_race/os
235 %{_libdir}/%{name}/pkg/linux_%{GOARCH}_race/path
236 %{_libdir}/%{name}/pkg/linux_%{GOARCH}_race/regexp
237 %{_libdir}/%{name}/pkg/linux_%{GOARCH}_race/runtime
238 %{_libdir}/%{name}/pkg/linux_%{GOARCH}_race/sync
239 %{_libdir}/%{name}/pkg/linux_%{GOARCH}_race/text
240 %{_libdir}/%{name}/pkg/linux_%{GOARCH}_race/unicode
244 %defattr(644,root,root,755)
247 %files -n vim-syntax-%{name}
248 %defattr(644,root,root,755)
249 %{_vimdatadir}/ftdetect/gofiletype.vim
250 %{_vimdatadir}/ftplugin/go
251 %{_vimdatadir}/indent/go.vim
252 %{_vimdatadir}/syntax/go.vim
254 %files -n emacs-%{name}
255 %defattr(644,root,root,755)
256 %{_datadir}/emacs/site-lisp/go-mode*.el