Blob Blame History Raw
%global debug_package   %{nil}
%global provider_tld    com
%global provider_sub    code
%global provider        google
%global project         p
%global repo            go.tools

%global import_path     code.google.com/p/go.tools
%global rev             a7e14835e46bb13da10fa8b9c9c5e7f2f378f568
%global shortrev        %(r=%{rev}; echo ${r:0:12})

%global x_provider      golang
%global x_provider_tld  org
%global x_repo          tools
%global x_import_path   %{x_provider}.%{x_provider_tld}/x/%{x_repo}
%global x_name          golang-%{x_provider}%{x_provider_tld}-tools

%global go_arch %(go env GOHOSTARCH)
%global go_root %(go env GOROOT)

Name:           golang-googlecode-tools
Version:        0
Release:        3.0.hg%{shortrev}%{?dist}
Summary:        Supplementary tools and packages for Go
License:        BSD
URL:            http://%{import_path}
Source0:        https://tools.go.googlecode.com/archive/%{rev}.tar.gz
BuildRequires:  golang >= 1.2.1-3

%description
%{summary}


%package -n golang-godoc
Summary:        Documentation tool for the Go programming language
ExclusiveArch:  %{ix86} x86_64 %{arm}
Provides:       golang(%{import_path}/cmd/godoc) = %{version}-%{release}
Epoch:          1
%description -n golang-godoc
Godoc extracts and generates documentation for Go programs.
Obsoletes:      golang-godoc = 1.1.2


%package -n golang-vet
Summary:        Go programming language code vetting tool
ExclusiveArch:  %{ix86} x86_64 %{arm}
Provides:       golang(%{import_path}/cmd/vet) = %{version}-%{release}
%description -n golang-vet
Vet examines Go source code and reports suspicious constructs, such as
Printf calls whose arguments do not align with the format string. Vet
uses heuristics that do not guarantee all reports are genuine problems,
but it can find errors not caught by the compilers.


%package -n golang-cover
Summary:        Code coverage tool for the Go programming language
ExclusiveArch:  %{ix86} x86_64 %{arm}
Provides:       golang(%{import_path}/cmd/cover) = %{version}-%{release}
%description -n golang-cover
Cover is a program for analyzing the coverage profiles generated by 'go
test -coverprofile=cover.out'.


%package -n golang-gotype
Summary:        Go programming language source code analysis tool
ExclusiveArch:  %{ix86} x86_64 %{arm}
Provides:       golang(%{import_path}/cmd/gotype) = %{version}-%{release}
%description -n golang-gotype
The gotype command does syntactic and semantic analysis of Go files and
packages like the front-end of a Go compiler. Errors are reported if the
analysis fails; otherwise gotype is quiet.


%package -n golang-html2article
Summary:        Tool for creating articles from HTML files
ExclusiveArch:  %{ix86} x86_64 %{arm}
Provides:       golang(%{import_path}/cmd/html2article) = %{version}-%{release}
BuildRequires:  golang(golang.org/x/net/html)
BuildRequires:  golang(golang.org/x/net/html/atom)
%description -n golang-html2article
This program takes an HTML file and outputs a corresponding article file
in present format. See: code.google.com/p/go.tools/present

%package        callgraph
Summary:        Tool for reporting the call graph of a Go program
ExclusiveArch:  %{ix86} x86_64 %{arm}
Provides:       golang(%{import_path}/cmd/callgraph) = %{version}-%{release}
%description    callgraph
Tool for reporting the call graph of a Go program.

%package        digraph
Summary:        Tool performs queries over unlabelled directed graphs represented in text form
ExclusiveArch:  %{ix86} x86_64 %{arm}
Provides:       golang(%{import_path}/cmd/digraph) = %{version}-%{release}
%description    digraph
The digraph command performs queries over unlabelled directed graphs represented in text form.

%package        gorename
Summary:        Tool for reporting the call graph of a Go program
ExclusiveArch:  %{ix86} x86_64 %{arm}
Provides:       golang(%{import_path}/cmd/gorename) = %{version}-%{release}
%description    gorename
Tool for reporting the call graph of a Go program.

%package        stringer
Summary:        Tool to automate the creation of methods that satisfy the fmt.Stringer interface
ExclusiveArch:  %{ix86} x86_64 %{arm}
Provides:       golang(%{import_path}/cmd/stringer) = %{version}-%{release}
%description    stringer
tool to automate the creation of methods that satisfy the fmt.Stringer interface.

%package        godex
Summary:        Dump exported information for Go programming language
ExclusiveArch:  %{ix86} x86_64 %{arm}
Provides:       golang(%{import_path}/cmd/godex) = %{version}-%{release}
%description    godex
%{summary}.

See http://godoc.org/code.google.com/p/go.tools/cmd/godex for more information.


%package        benchcmp
Summary:        Displays performance changes between benchmarks for the Go programming language
ExclusiveArch:  %{ix86} x86_64 %{arm}
Provides:       golang(%{import_path}/cmd/benchcmp) = %{version}-%{release}
%description    benchcmp
%{summary}.

See http://godoc.org/code.google.com/p/go.tools/cmd/benchcmp for more information.


%package        eg
Summary:        Example-based refactoring for the Go programming language
ExclusiveArch:  %{ix86} x86_64 %{arm}
Provides:       golang(%{import_path}/cmd/eg) = %{version}-%{release}
%description    eg
%{summary}.

See `eg -help` for more information.


%package        oracle
Summary:        Go programming language oracle
ExclusiveArch:  %{ix86} x86_64 %{arm}
Provides:       golang(%{import_path}/cmd/oracle) = %{version}-%{release}
%description    oracle
%{summary}.

See http://golang.org/s/oracle-user-manual for more information.


%package        goimports
Summary:        Go programming language import line formatter
ExclusiveArch:  %{ix86} x86_64 %{arm}
Provides:       golang(%{import_path}/cmd/goimports) = %{version}-%{release}
%description    goimports
%{summary}.

See http://godoc.org/code.google.com/p/go.tools/cmd/goimports for more information.


%package        present
Summary:        Slide and Article Presentation
ExclusiveArch:  %{ix86} x86_64 %{arm}
Provides:       golang(%{import_path}/cmd/present) = %{version}-%{release}
%description    present
%{summary}.

See http://godoc.org/code.google.com/p/go.tools/cmd/present for more information.


%package        ssadump
Summary:        Display and interpreting SSA form of Go programs
ExclusiveArch:  %{ix86} x86_64 %{arm}
Provides:       golang(%{import_path}/cmd/ssadump) = %{version}-%{release}
%description    ssadump
%{summary}.

%package devel
Requires:       golang >= 1.2.1-3
Summary:        Libraries of supplementary Go tools
%if 0%{?fedora} >= 19 || 0%{?rhel} >= 7
BuildArch:      noarch
%else
ExclusiveArch:  %{ix86} x86_64 %{arm}
%endif
Provides:       golang(%{import_path}/astutil) = %{version}-%{release}
Provides:       golang(%{import_path}/blog) = %{version}-%{release}
Provides:       golang(%{import_path}/blog/atom) = %{version}-%{release}
Provides:       golang(%{import_path}/cmd/vet/whitelist) = %{version}-%{release}
Provides:       golang(%{import_path}/container/intsets) = %{version}-%{release}
Provides:       golang(%{import_path}/cover) = %{version}-%{release}
Provides:       golang(%{import_path}/dashboard/app/build) = %{version}-%{release}
Provides:       golang(%{import_path}/dashboard/app/cache) = %{version}-%{release}
Provides:       golang(%{import_path}/dashboard/app/key) = %{version}-%{release}
Provides:       golang(%{import_path}/dashboard/builder) = %{version}-%{release}
Provides:       golang(%{import_path}/go/buildutil) = %{version}-%{release}
Provides:       golang(%{import_path}/go/callgraph) = %{version}-%{release}
Provides:       golang(%{import_path}/go/callgraph/cha) = %{version}-%{release}
Provides:       golang(%{import_path}/go/callgraph/rta) = %{version}-%{release}
Provides:       golang(%{import_path}/go/callgraph/static) = %{version}-%{release}
Provides:       golang(%{import_path}/go/exact) = %{version}-%{release}
Provides:       golang(%{import_path}/go/gccgoimporter) = %{version}-%{release}
Provides:       golang(%{import_path}/go/gcimporter) = %{version}-%{release}
Provides:       golang(%{import_path}/go/gcimporter/testdata) = %{version}-%{release}
Provides:       golang(%{import_path}/go/importer) = %{version}-%{release}
Provides:       golang(%{import_path}/go/loader) = %{version}-%{release}
Provides:       golang(%{import_path}/go/loader/testdata) = %{version}-%{release}
Provides:       golang(%{import_path}/go/pointer) = %{version}-%{release}
Provides:       golang(%{import_path}/go/ssa) = %{version}-%{release}
Provides:       golang(%{import_path}/go/ssa/interp) = %{version}-%{release}
Provides:       golang(%{import_path}/go/ssa/interp/testdata) = %{version}-%{release}
Provides:       golang(%{import_path}/go/ssa/ssautil) = %{version}-%{release}
Provides:       golang(%{import_path}/go/types) = %{version}-%{release}
Provides:       golang(%{import_path}/go/types/typeutil) = %{version}-%{release}
Provides:       golang(%{import_path}/godoc) = %{version}-%{release}
Provides:       golang(%{import_path}/godoc/analysis) = %{version}-%{release}
Provides:       golang(%{import_path}/godoc/redirect) = %{version}-%{release}
Provides:       golang(%{import_path}/godoc/static) = %{version}-%{release}
Provides:       golang(%{import_path}/godoc/util) = %{version}-%{release}
Provides:       golang(%{import_path}/godoc/vfs) = %{version}-%{release}
Provides:       golang(%{import_path}/godoc/vfs/gatefs) = %{version}-%{release}
Provides:       golang(%{import_path}/godoc/vfs/httpfs) = %{version}-%{release}
Provides:       golang(%{import_path}/godoc/vfs/mapfs) = %{version}-%{release}
Provides:       golang(%{import_path}/godoc/vfs/zipfs) = %{version}-%{release}
Provides:       golang(%{import_path}/imports) = %{version}-%{release}
Provides:       golang(%{import_path}/oracle) = %{version}-%{release}
Provides:       golang(%{import_path}/oracle/serial) = %{version}-%{release}
Provides:       golang(%{import_path}/playground) = %{version}-%{release}
Provides:       golang(%{import_path}/playground/socket) = %{version}-%{release}
Provides:       golang(%{import_path}/present) = %{version}-%{release}
Provides:       golang(%{import_path}/refactor/eg) = %{version}-%{release}
Provides:       golang(%{import_path}/refactor/importgraph) = %{version}-%{release}
Provides:       golang(%{import_path}/refactor/lexical) = %{version}-%{release}
Provides:       golang(%{import_path}/refactor/rename) = %{version}-%{release}
Provides:       golang(%{import_path}/refactor/satisfy) = %{version}-%{release}

%description devel
%{summary}

This package contains library source intended for building other packages
which use the supplementary Go tools libraries with code.google.com/p/ imports.

%package -n %{x_name}-devel
Requires:       golang >= 1.2.1-3
Summary:        Libraries of supplementary Go tools
%if 0%{?fedora} >= 19 || 0%{?rhel} >= 7
BuildArch:      noarch
%else
ExclusiveArch:  %{ix86} x86_64 %{arm}
%endif
Provides:       golang(%{x_import_path}/astutil) = %{version}-%{release}
Provides:       golang(%{x_import_path}/blog) = %{version}-%{release}
Provides:       golang(%{x_import_path}/blog/atom) = %{version}-%{release}
Provides:       golang(%{x_import_path}/cmd/vet/whitelist) = %{version}-%{release}
Provides:       golang(%{x_import_path}/container/intsets) = %{version}-%{release}
Provides:       golang(%{x_import_path}/cover) = %{version}-%{release}
Provides:       golang(%{x_import_path}/dashboard/app/build) = %{version}-%{release}
Provides:       golang(%{x_import_path}/dashboard/app/cache) = %{version}-%{release}
Provides:       golang(%{x_import_path}/dashboard/app/key) = %{version}-%{release}
Provides:       golang(%{x_import_path}/dashboard/builder) = %{version}-%{release}
Provides:       golang(%{x_import_path}/go/buildutil) = %{version}-%{release}
Provides:       golang(%{x_import_path}/go/callgraph) = %{version}-%{release}
Provides:       golang(%{x_import_path}/go/callgraph/cha) = %{version}-%{release}
Provides:       golang(%{x_import_path}/go/callgraph/rta) = %{version}-%{release}
Provides:       golang(%{x_import_path}/go/callgraph/static) = %{version}-%{release}
Provides:       golang(%{x_import_path}/go/exact) = %{version}-%{release}
Provides:       golang(%{x_import_path}/go/gccgoimporter) = %{version}-%{release}
Provides:       golang(%{x_import_path}/go/gcimporter) = %{version}-%{release}
Provides:       golang(%{x_import_path}/go/gcimporter/testdata) = %{version}-%{release}
Provides:       golang(%{x_import_path}/go/importer) = %{version}-%{release}
Provides:       golang(%{x_import_path}/go/loader) = %{version}-%{release}
Provides:       golang(%{x_import_path}/go/loader/testdata) = %{version}-%{release}
Provides:       golang(%{x_import_path}/go/pointer) = %{version}-%{release}
Provides:       golang(%{x_import_path}/go/ssa) = %{version}-%{release}
Provides:       golang(%{x_import_path}/go/ssa/interp) = %{version}-%{release}
Provides:       golang(%{x_import_path}/go/ssa/interp/testdata) = %{version}-%{release}
Provides:       golang(%{x_import_path}/go/ssa/ssautil) = %{version}-%{release}
Provides:       golang(%{x_import_path}/go/types) = %{version}-%{release}
Provides:       golang(%{x_import_path}/go/types/typeutil) = %{version}-%{release}
Provides:       golang(%{x_import_path}/godoc) = %{version}-%{release}
Provides:       golang(%{x_import_path}/godoc/analysis) = %{version}-%{release}
Provides:       golang(%{x_import_path}/godoc/redirect) = %{version}-%{release}
Provides:       golang(%{x_import_path}/godoc/static) = %{version}-%{release}
Provides:       golang(%{x_import_path}/godoc/util) = %{version}-%{release}
Provides:       golang(%{x_import_path}/godoc/vfs) = %{version}-%{release}
Provides:       golang(%{x_import_path}/godoc/vfs/gatefs) = %{version}-%{release}
Provides:       golang(%{x_import_path}/godoc/vfs/httpfs) = %{version}-%{release}
Provides:       golang(%{x_import_path}/godoc/vfs/mapfs) = %{version}-%{release}
Provides:       golang(%{x_import_path}/godoc/vfs/zipfs) = %{version}-%{release}
Provides:       golang(%{x_import_path}/imports) = %{version}-%{release}
Provides:       golang(%{x_import_path}/oracle) = %{version}-%{release}
Provides:       golang(%{x_import_path}/oracle/serial) = %{version}-%{release}
Provides:       golang(%{x_import_path}/playground) = %{version}-%{release}
Provides:       golang(%{x_import_path}/playground/socket) = %{version}-%{release}
Provides:       golang(%{x_import_path}/present) = %{version}-%{release}
Provides:       golang(%{x_import_path}/refactor/eg) = %{version}-%{release}
Provides:       golang(%{x_import_path}/refactor/importgraph) = %{version}-%{release}
Provides:       golang(%{x_import_path}/refactor/lexical) = %{version}-%{release}
Provides:       golang(%{x_import_path}/refactor/rename) = %{version}-%{release}
Provides:       golang(%{x_import_path}/refactor/satisfy) = %{version}-%{release}

%description -n %{x_name}-devel
%{summary}

This package contains library source intended for building other packages
which use the supplementary Go tools libraries with golang.org/x/ imports.

%prep
%setup -q -n tools.go-%{shortrev}

%build
# code.google.com/p/goauth2/oauth, oauth package has been moved to root directory
# but does not contain CacheFile symbol anymore
rm -rf dashboard/coordinator

mkdir _build
pushd _build

mkdir -p src/$(dirname %{x_import_path})
ln -s $(dirs +1 -l) src/%{x_import_path}
export GOPATH=$(pwd):%{gopath}
for cmd in \
  benchcmp \
  callgraph \
  cover \
  digraph \
  eg \
  godex \
  godoc \
  goimports \
  gorename \
  gotype \
  html2article \
  oracle \
  present \
  ssadump \
  stringer \
  vet
do
  go build -v -a %{x_import_path}/cmd/$cmd
done

popd

%install
install -d %{buildroot}%{_bindir}
install -p -m 755 _build/benchcmp %{buildroot}%{_bindir}
install -p -m 755 _build/callgraph %{buildroot}%{_bindir}
install -p -m 755 _build/cover %{buildroot}%{_bindir}
install -p -m 755 _build/digraph %{buildroot}%{_bindir}
install -p -m 755 _build/eg %{buildroot}%{_bindir}
install -p -m 755 _build/godex %{buildroot}%{_bindir}
install -p -m 755 _build/godoc %{buildroot}%{_bindir}
install -p -m 755 _build/goimports %{buildroot}%{_bindir}
install -p -m 755 _build/gorename %{buildroot}%{_bindir}
install -p -m 755 _build/gotype %{buildroot}%{_bindir}
install -p -m 755 _build/html2article %{buildroot}%{_bindir}
install -p -m 755 _build/oracle %{buildroot}%{_bindir}
install -p -m 755 _build/present %{buildroot}%{_bindir}
install -p -m 755 _build/ssadump %{buildroot}%{_bindir}
install -p -m 755 _build/stringer %{buildroot}%{_bindir}
install -p -m 755 _build/vet %{buildroot}%{_bindir}

# https://bugzilla.redhat.com/show_bug.cgi?id=1129281
install -d %{buildroot}%{go_root}/pkg/tool/linux_%{go_arch}
ln -s %{_bindir}/cover %{buildroot}%{go_root}/pkg/tool/linux_%{go_arch}/cover
ln -s %{_bindir}/vet %{buildroot}%{go_root}/pkg/tool/linux_%{go_arch}/vet

install -d %{buildroot}/%{gopath}/src/%{import_path}
install -d %{buildroot}/%{gopath}/src/%{x_import_path}

# directories defining more than one package name
rm -rf go/gccgoimporter/testdata \
	refactor/eg/testdata \
	cmd/vet/testdata \
	oracle/testdata/src/main

for d in \
  astutil \
  blog \
  cmd \
  container \
  cover \
  dashboard \
  go \
  godoc \
  imports \
  oracle \
  playground \
  present \
  refactor
do
   cp -av $d %{buildroot}/%{gopath}/src/%{import_path}/
   cp -av $d %{buildroot}/%{gopath}/src/%{x_import_path}/
done

cd %{buildroot}/%{gopath}/src/%{import_path}/
sed -i 's/"golang\.org\/x\//"code\.google\.com\/p\/go\./g' \
        $(find . -name '*.go')

%files -n golang-godoc
%defattr(-,root,root,-)
%{_bindir}/godoc

%files -n golang-vet
%defattr(-,root,root,-)
%{_bindir}/vet
%{go_root}/pkg/tool/linux_%{go_arch}/vet

%files -n golang-cover
%defattr(-,root,root,-)
%{_bindir}/cover
%{go_root}/pkg/tool/linux_%{go_arch}/cover

%files -n golang-gotype
%defattr(-,root,root,-)
%{_bindir}/gotype

%files -n golang-html2article
%defattr(-,root,root,-)
%{_bindir}/html2article

%files    godex
%defattr(-,root,root,-)
%{_bindir}/godex

%files    callgraph
%defattr(-,root,root,-)
%{_bindir}/callgraph

%files    digraph
%defattr(-,root,root,-)
%{_bindir}/digraph

%files    gorename
%defattr(-,root,root,-)
%{_bindir}/gorename

%files    stringer
%defattr(-,root,root,-)
%{_bindir}/stringer

%files    eg
%defattr(-,root,root,-)
%{_bindir}/eg

%files    benchcmp
%defattr(-,root,root,-)
%{_bindir}/benchcmp

%files    oracle
%defattr(-,root,root,-)
%{_bindir}/oracle

%files    goimports
%defattr(-,root,root,-)
%{_bindir}/goimports

%files    present
%defattr(-,root,root,-)
%{_bindir}/present

%files    ssadump
%defattr(-,root,root,-)
%{_bindir}/ssadump

%files devel
%doc AUTHORS CONTRIBUTORS LICENSE PATENTS README
%{gopath}/src/%{import_path}

%files -n %{x_name}-devel
%doc AUTHORS CONTRIBUTORS LICENSE PATENTS README
%{gopath}/src/%{x_import_path}

%changelog
* Wed Jun 17 2015 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0-3.0.hga7e14835e46b
- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild

* Fri Mar 06 2015 jchaloup <jchaloup@redhat.com> - 0-2.0.hga7e14835e46b
- Bump to a7e14835e46bb13da10fa8b9c9c5e7f2f378f568
- Add new tools presented in the commit
- Change import paths to new prefix schema golang.org/x/...
- Add new subpackage and keep the only one for back-compatibility
  resolves: #1199617

* Tue Aug 19 2014 Vincent Batts <vbatts@fedoraproject.org> - 0-1.0.hgd32b5854c941
- updating to the current latest go.tools

* Tue Aug 19 2014 Vincent Batts <vbatts@fedoraproject.org> - 0-0.9.hg17c8fe23290a
- setting an epoch for godoc to fix bz1099074

* Sat Aug 16 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0-0.8.hg17c8fe23290a
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild

* Tue Aug 12 2014 Vincent Batts <vbatts@redhat.com> 0-0.7.hg17c8fe23290a
- fix bz1129281 and cleanup file ownership

* Sat Jun 07 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0-0.6.hg17c8fe23290a
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild

* Thu Jan 16 2014 Vincent Batts <vbatts@redhat.com> 0-0.5.hg17c8fe23290a
- working on the arch dependencies
- clean up file ownership

* Thu Dec 05 2013 Vincent Batts <vbatts@redhat.com> 0-0.4.hg17c8fe23290a
- golang-godoc to obsolete the package from golang 1.1.2

* Tue Nov 12 2013 Vincent Batts <vbatts@redhat.com> 0-0.3.hg17c8fe23290a
- removing conflicting directory ownership

* Tue Nov 12 2013 Vincent Batts <vbatts@redhat.com> 0-0.2.hg17c8fe23290a
- adding subpackages for all available commands

* Sun Nov 10 2013 Vincent Batts <vbatts@redhat.com> 0-0.1.hg17c8fe23290a
- initial build