%if 0%{?fedora} || 0%{?rhel} == 6 %global with_devel 1 %global with_bundled 0 %global with_debug 0 %global with_check 1 %global with_unit_test 1 %else %global with_devel 0 %global with_bundled 0 %global with_debug 0 %global with_check 0 %global with_unit_test 0 %endif %if 0%{?with_debug} %global _dwz_low_mem_die_limit 0 %else %global debug_package %{nil} %endif %define copying() \ %if 0%{?fedora} >= 21 || 0%{?rhel} >= 7 \ %license %{*} \ %else \ %doc %{*} \ %endif %global provider github %global provider_tld com %global project racker %global repo perigee # https://github.com/racker/perigee %global provider_prefix %{provider}.%{provider_tld}/%{project}/%{repo} %global import_path %{provider_prefix} %global commit 0c00cb0a026b71034ebc8205263c77dad3577db5 %global shortcommit %(c=%{commit}; echo ${c:0:7}) Name: golang-%{provider}-%{project}-%{repo} Version: 0 Release: 0.3.git%{shortcommit}%{?dist} Summary: REST client optimized for use with APIs for request and response bodies License: ASL 2.0 URL: https://%{provider_prefix} Source0: https://%{provider_prefix}/archive/%{commit}/%{repo}-%{shortcommit}.tar.gz # If go_arches not defined fall through to implicit golang archs %if 0%{?go_arches:1} ExclusiveArch: %{go_arches} %else ExclusiveArch: %{ix86} x86_64 %{arm} %endif # If gccgo_arches does not fit or is not defined fall through to golang %ifarch 0%{?gccgo_arches} BuildRequires: gcc-go >= %{gccgo_min_vers} %else BuildRequires: golang %endif %description Perigee provides a REST client that, while it should be generic enough to use with most any RESTful API, is nonetheless optimized to the needs of the OpenStack APIs. Perigee grew out of the need to refactor out common API access code from the gorax project. Several things influenced the name of the project. Numerous elements of the OpenStack ecosystem are named after astronomical artifacts. Additionally, perigee occurs when two orbiting bodies are closest to each other. Perigee seemed appropriate for something aiming to bring OpenStack and other RESTful services closer to the end-user. This library is still in the very early stages of development. %if 0%{?with_devel} %package devel Summary: %{summary} BuildArch: noarch %if 0%{?with_check} %endif Provides: golang(%{import_path}) = %{version}-%{release} %description devel Perigee provides a REST client that, while it should be generic enough to use with most any RESTful API, is nonetheless optimized to the needs of the OpenStack APIs. Perigee grew out of the need to refactor out common API access code from the gorax project. Several things influenced the name of the project. Numerous elements of the OpenStack ecosystem are named after astronomical artifacts. Additionally, perigee occurs when two orbiting bodies are closest to each other. Perigee seemed appropriate for something aiming to bring OpenStack and other RESTful services closer to the end-user. This library is still in the very early stages of development. This package contains library source intended for building other packages which use import path with %{import_path} prefix. %endif %if 0%{?with_unit_test} %package unit-test Summary: Unit tests for %{name} package # If go_arches not defined fall through to implicit golang archs %if 0%{?go_arches:1} ExclusiveArch: %{go_arches} %else ExclusiveArch: %{ix86} x86_64 %{arm} %endif # If gccgo_arches does not fit or is not defined fall through to golang %ifarch 0%{?gccgo_arches} BuildRequires: gcc-go >= %{gccgo_min_vers} %else BuildRequires: golang %endif %if 0%{?with_check} #Here comes all BuildRequires: PACKAGE the unit tests #in %%check section need for running %endif # test subpackage tests code from devel subpackage Requires: %{name}-devel = %{version}-%{release} %description unit-test %{summary} This package contains unit tests for project providing packages with %{import_path} prefix. %endif %prep %setup -q -n %{repo}-%{commit} %build %install # source codes for building projects %if 0%{?with_devel} install -d -p %{buildroot}/%{gopath}/src/%{import_path}/ # find all *.go but no *_test.go files and generate devel.file-list for file in $(find . -iname "*.go" \! -iname "*_test.go") ; do install -d -p %{buildroot}/%{gopath}/src/%{import_path}/$(dirname $file) cp -pav $file %{buildroot}/%{gopath}/src/%{import_path}/$file echo "%%{gopath}/src/%%{import_path}/$file" >> devel.file-list done %endif # testing files for this project %if 0%{?with_unit_test} install -d -p %{buildroot}/%{gopath}/src/%{import_path}/ # find all *_test.go files and generate unit-test.file-list for file in $(find . -iname "*_test.go"); do install -d -p %{buildroot}/%{gopath}/src/%{import_path}/$(dirname $file) cp -pav $file %{buildroot}/%{gopath}/src/%{import_path}/$file echo "%%{gopath}/src/%%{import_path}/$file" >> unit-test.file-list done %endif %check %if 0%{?with_check} && 0%{?with_unit_test} && 0%{?with_devel} %ifarch 0%{?gccgo_arches} function gotest { %{gcc_go_test} "$@"; } %else %if 0%{?golang_test:1} function gotest { %{golang_test} "$@"; } %else function gotest { go test "$@"; } %endif %endif export GOPATH=%{buildroot}/%{gopath}:%{gopath} gotest %{import_path} %endif %if 0%{?with_devel} %files devel -f devel.file-list %copying LICENSE %doc README.md %dir %{gopath}/src/%{provider}.%{provider_tld}/%{project} %dir %{gopath}/src/%{import_path} %endif %if 0%{?with_unit_test} %files unit-test -f unit-test.file-list %copying LICENSE %doc README.md %endif %changelog * Fri Aug 07 2015 Fridolin Pokorny - 0-0.3.git0c00cb0 - Update spec file to spec-2.0 resolves: #1250497 * Wed Jun 17 2015 Fedora Release Engineering - 0-0.2.git0c00cb0 - Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild * Thu Oct 16 2014 jchaloup - 0-0.1.git0c00cb0 - First package for Fedora resolves: #1153726