# If any of the following macros should be set otherwise, # you can wrap any of them with the following conditions: # - %%if 0%%{centos} == 7 # - %%if 0%%{?rhel} == 7 # - %%if 0%%{?fedora} == 23 # Or just test for particular distribution: # - %%if 0%%{centos} # - %%if 0%%{?rhel} # - %%if 0%%{?fedora} # # Be aware, on centos, both %%rhel and %%centos are set. If you want to test # rhel specific macros, you can use %%if 0%%{?rhel} && 0%%{?centos} == 0 condition. # (Don't forget to replace double percentage symbol with single one in order to apply a condition) # Generate devel rpm %global with_devel 1 # Build project from bundled dependencies %global with_bundled 0 # Build with debug info rpm %global with_debug 0 # Run tests in check section %global with_check 1 # Generate unit-test rpm %global with_unit_test 1 %if 0%{?with_debug} %global _dwz_low_mem_die_limit 0 %else %global debug_package %{nil} %endif %global provider github %global provider_tld com %global project mitchellh %global repo mapstructure # https://github.com/mitchellh/mapstructure %global provider_prefix %{provider}.%{provider_tld}/%{project}/%{repo} %global import_path %{provider_prefix} %global commit ca63d7c062ee3c9f34db231e352b60012b4fd0c1 %global shortcommit %(c=%{commit}; echo ${c:0:7}) # temporary mitchellh-cli %global t_repo cli %global t_import_path %{provider}.%{provider_tld}/%{project}/%{t_repo} %global t_commit 8102d0ed5ea2709ade1243798785888175f6e415 %global t_shortcommit %(c=%{t_commit}; echo ${c:0:7}) Name: golang-%{provider}-%{project}-%{repo} Version: 0 Release: 0.13.git%{shortcommit}%{?dist} Summary: Go library for decoding generic map values into native Go structures License: MIT URL: https://%{provider_prefix} Source0: https://%{t_import_path}/archive/%{commit}/%{t_repo}-%{t_shortcommit}.tar.gz Source1: https://%{provider_prefix}/archive/%{commit}/%{repo}-%{shortcommit}.tar.gz # e.g. el6 has ppc64 arch without gcc-go, so EA tag is required ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}} # If go_compiler is not set to 1, there is no virtual provide. Use golang instead. BuildRequires: %{?go_compiler:compiler(go-compiler)}%{!?go_compiler:golang} %description mapstructure is a Go library for decoding generic map values to structures and vice versa, while providing helpful error handling. This library is most useful when decoding values from some data stream (JSON, Gob, etc.) where you don't quite know the structure of the underlying data until you read a part of it. You can therefore read a map[string]interface{} and use this library to decode it into the proper underlying native Go structure. %if 0%{?with_devel} %package devel Summary: %{summary} BuildArch: noarch %if 0%{?with_check} %endif Provides: golang(%{import_path}) = %{version}-%{release} %description devel mapstructure is a Go library for decoding generic map values to structures and vice versa, while providing helpful error handling. This library is most useful when decoding values from some data stream (JSON, Gob, etc.) where you don't quite know the structure of the underlying data until you read a part of it. You can therefore read a map[string]interface{} and use this library to decode it into the proper underlying native Go structure. This package contains library source intended for building other packages which use import path with %{import_path} prefix. # remove this package once golang-github-mitchellh-cli is built %package -n golang-github-mitchellh-cli-devel-temporary Summary: golang-github-mitchellh-cli source codes temporary BuildArch: noarch BuildRequires: golang(golang.org/x/crypto/ssh/terminal) Requires: golang(golang.org/x/crypto/ssh/terminal) %description -n golang-github-mitchellh-cli-devel-temporary Temporary devel subpackage for golang-github-mitchellh-cli source codes %endif %if 0%{?with_unit_test} && 0%{?with_devel} %package unit-test Summary: Unit tests for %{name} package # If go_compiler is not set to 1, there is no virtual provide. Use golang instead. BuildRequires: %{?go_compiler:compiler(go-compiler)}%{!?go_compiler:golang} %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 %{t_repo}-%{t_commit} %setup -q -n %{repo}-%{commit} -T -b 1 %build %install # source codes for building projects %if 0%{?with_devel} install -d -p %{buildroot}/%{gopath}/src/%{import_path}/ echo "%%dir %%{gopath}/src/%%{import_path}/." >> devel.file-list # find all *.go but no *_test.go files and generate devel.file-list for file in $(find . -iname "*.go" \! -iname "*_test.go") ; do echo "%%dir %%{gopath}/src/%%{import_path}/$(dirname $file)" >> devel.file-list 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 pushd ../%{t_repo}-%{t_commit} install -d -p %{buildroot}/%{gopath}/src/%{t_import_path}/ echo "%%dir %%{gopath}/src/%%{t_import_path}/." >> ../%{repo}-%{commit}/temp_devel.file-list # find all *.go but no *_test.go files and generate devel.file-list for file in $(find . -iname "*.go" \! -iname "*_test.go") ; do echo "%%dir %%{gopath}/src/%%{t_import_path}/$(dirname $file)" >> ../%{repo}-%{commit}/temp_devel.file-list install -d -p %{buildroot}/%{gopath}/src/%{t_import_path}/$(dirname $file) cp -pav $file %{buildroot}/%{gopath}/src/%{t_import_path}/$file echo "%%{gopath}/src/%%{t_import_path}/$file" >> ../%{repo}-%{commit}/temp_devel.file-list done popd %endif # testing files for this project %if 0%{?with_unit_test} && 0%{?with_devel} 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 echo "%%dir %%{gopath}/src/%%{import_path}/$(dirname $file)" >> devel.file-list 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 %if 0%{?with_devel} sort -u -o devel.file-list devel.file-list %endif %check %if 0%{?with_check} && 0%{?with_unit_test} && 0%{?with_devel} %if ! 0%{?with_bundled} export GOPATH=%{buildroot}/%{gopath}:%{gopath} %else export GOPATH=%{buildroot}/%{gopath}:$(pwd)/Godeps/_workspace:%{gopath} %endif %if ! 0%{?gotest:1} %global gotest go test %endif %gotest %{import_path} %endif #define license tag if not already defined %{!?_licensedir:%global license %doc} %if 0%{?with_devel} %files devel -f devel.file-list %license LICENSE %doc README.md %dir %{gopath}/src/%{provider}.%{provider_tld}/%{project} %files -n golang-github-mitchellh-cli-devel-temporary -f temp_devel.file-list %license LICENSE %doc README.md %dir %{gopath}/src/%{provider}.%{provider_tld}/%{project} %endif %if 0%{?with_unit_test} && 0%{?with_devel} %files unit-test -f unit-test.file-list %license LICENSE %doc README.md %endif %changelog * Fri Jan 13 2017 Jan Chaloupka - 0-0.13.gitca63d7c - Bump to upstream ca63d7c062ee3c9f34db231e352b60012b4fd0c1 related: #1243892 * Fri Jan 13 2017 Jan Chaloupka - 0-0.12.git281073e - Polish the spec file related: #1243892 * Thu Jul 21 2016 Fedora Release Engineering - 0-0.11.git281073e - https://fedoraproject.org/wiki/Changes/golang1.7 * Mon Feb 22 2016 Fedora Release Engineering - 0-0.10.git281073e - https://fedoraproject.org/wiki/Changes/golang1.6 * Wed Feb 03 2016 Fedora Release Engineering - 0-0.9.git281073e - Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild * Wed Jan 13 2016 jchaloup - 0-0.8.git281073e - Update github.com/mitchellh/cli to 8102d0ed5ea2709ade1243798785888175f6e415 related: #1243892 * Wed Jan 06 2016 Fridolin Pokorny - 0-0.7.git281073e - Bump to upstream 281073eb9eb092240d33ef253c404f1cca550309 related: #1243892 * Sat Sep 12 2015 jchaloup - 0-0.6.git740c764 - Update to spec-2.1 related: #1243892 * Mon Aug 24 2015 jchaloup - 0-0.5.git740c764 - Update spec file to spec-2.0 related: #1243892 * Thu Jul 16 2015 jchaloup - 0-0.4.git740c764 - Choose the correct architecture - Update license - Remove runtime-dep on golang - Add temporary devel subpackage of mitchellh-cli resolves: #1243892 * Wed Jun 17 2015 Fedora Release Engineering - 0-0.2.git740c764 - Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild * Thu Oct 16 2014 jchaloup - 0-0.1.git740c764 - First package for Fedora resolves: #1153724