Blob Blame Raw
Name:    go-compilers
Version: 3
Release: 0.11%{?dist}
Summary: rpm automation to create Go language (golang) packages
License: GPLv3+

# This file contains Go architecture definitions which are also used here
# Therefore, changing those requires a double rebuild
Source0: macros.go-srpm
Source1: macros.go-rpm

# Autodeps
Source10: go.attr
Source11: go.prov
Source12: go.req

# Compiler definitions
Source20: macros.golang-compiler
Source21: macros.gcc-go-compiler

ExclusiveArch:  %{go_arches}

%description
This package provides rpm automation to simplify the creation of Go language
(golang) packages on various architectures:
 — SRPM-stage macros
 — Build-stage rpm macros
 — Go rpm autodeps (provides and requires)
 — correct Go compiler definitions for each supported architecture

%package -n go-srpm-macros
Summary:   SRPM-stage rpm automation for Go packages
BuildArch: noarch
Requires:  redhat-rpm-config >= 73

%description -n go-srpm-macros
This package provides SRPM-stage rpm automation to simplify the creation of Go
language (golang) packages on various architectures.

It limits itself to the automation subset required to create Go SRPM packages
and needs to be included in the default build root.

The rest of the automation is provided by the go-rpm-macros package, that
go-srpm-macros will pull in for Go packages only.

%package -n go-rpm-macros
Summary:   Build-stage rpm automation for Go packages
BuildArch: noarch
Requires:  lua-argparse
Requires:  compiler(go-compiler)
Requires:  go-srpm-macros = %{version}-%{release}

%description -n go-rpm-macros
This package provides build-stage rpm automation to simplify the creation of Go
language (golang) packages on various architectures.

It does not need to be included in the default build root: go-srpm-macros will
pull it in for Go packages only.

%ifarch %{golang_arches}
%package -n go-compiler-golang
Summary:   compiler for golang
Requires:  golang
Provides:  compiler(go-compiler) = 2
Provides:  compiler(golang)
Provides:  go-compilers-golang-compiler = %{version}-%{release}
Obsoletes: go-compilers-golang-compiler < %{version}-%{release}

%description -n go-compiler-golang
Compiler for golang.

%endif

%ifarch %{gccgo_arches}
%package -n go-compiler-gcc
Summary:   compiler for gcc-go
# GCC>=5 holds in Fedora now
Requires:  gcc-go
Provides:  compiler(go-compiler) = 1
Provides:  compiler(gcc-go)
Provides:  go-compilers-gcc-go-compiler = %{version}-%{release}
Obsoletes: go-compilers-gcc-go-compiler < %{version}-%{release}

%description -n go-compiler-gcc
Compiler for gcc-go.
%endif

%install
install -m 0755 -vd %{buildroot}%{_rpmconfigdir}/{macros.d,fileattrs}/

install -m 0644 -vp %{SOURCE0} %{SOURCE1} \
                    %{buildroot}%{_rpmconfigdir}/macros.d/

install -m 0644 -vp %{SOURCE10} \
                    %{buildroot}%{_rpmconfigdir}/fileattrs/
install -m 0755 -vp %{SOURCE11} %{SOURCE12} \
                    %{buildroot}%{_rpmconfigdir}/

%ifarch %{golang_arches}
install -m 0644 -vp %{SOURCE20} \
                    %{buildroot}%{_rpmconfigdir}/macros.d/
%endif

%ifarch %{gccgo_arches}
install -m 0644 -vp %{SOURCE21} \
                    %{buildroot}%{_rpmconfigdir}/macros.d/
%endif

%files -n go-srpm-macros
%{_rpmconfigdir}/macros.d/macros.go-srpm

%files -n go-rpm-macros
%{_rpmconfigdir}/macros.d/macros.go-rpm
%{_rpmconfigdir}/fileattrs/go.attr
%{_rpmconfigdir}/go.prov
%{_rpmconfigdir}/go.req

%ifarch %{golang_arches}
%files -n go-compiler-golang
%{_rpmconfigdir}/macros.d/macros.golang-compiler
%endif

%ifarch %{gccgo_arches}
%files -n go-compiler-gcc
%{_rpmconfigdir}/macros.d/macros.gcc-go-compiler
%endif

%changelog
* Wed Feb 14 2018 Nicolas Mailhot <nim@fedoraproject.org> - 3-0.11
- merge go-srpm-macros and go-compilers to reduce the number of Go rpm macro
  packages and make sure all the macros are kept in sync
- simplify subpackage naming
- add more Go packaging automation, including autodeps:
  https://fedoraproject.org/wiki/More_Go_packaging

* Wed Feb 07 2018 Fedora Release Engineering <releng@fedoraproject.org> - 1-17
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild

* Tue Jan 16 2018 Jakub Čajka <jcajka@redhat.com> - 1-16
- use build mode pie also for testing(we are getting pie ld flag from hardening), this resolves linker issues on ppc64le

* Thu Nov 30 2017 Jakub Čajka <jcajka@redhat.com> - 1-15
- allow to specify __golang_extldflags macro to specify extldflags with go* macros
- Resolves: rhbz#1502305

* Wed Aug 02 2017 Fedora Release Engineering <releng@fedoraproject.org> - 1-14
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild

* Wed Jul 26 2017 Fedora Release Engineering <releng@fedoraproject.org> - 1-13
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild

* Fri Jul 14 2017 Jakub Čajka <jcajka@redhat.com> - 1-12
- rebuild for ppc64 drop

* Wed Feb 15 2017 Jakub Čajka <jcajka@redhat.com> - 1-11
- pie is not supported on ppc64

* Fri Feb 10 2017 Fedora Release Engineering <releng@fedoraproject.org> - 1-10
- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild

* Fri Jan 27 2017 Jakub Čajka <jcajka@redhat.com> - 1-9
- Add crash traceback level to golang as default
- Switch to PIE and push distribution ld flags
- Resolves BZ#1413529
- Related BZ#1411242

* Wed Jul 20 2016 Jakub Čajka <jcajka@redhat.com> - 1-8
- Build for s390x switch to golang
- Related: bz1357394

* Wed Apr 13 2016 Dan Horák <dan[at]danny.cz> - 1-7
- fix bug in gcc-go version of gotest macro

* Wed Feb 03 2016 Fedora Release Engineering <releng@fedoraproject.org> - 1-6
- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild

* Thu Jan 28 2016 Jakub Čajka <jcajka@redhat.com> - 1-5
- Build for {power64} switch to golang

* Fri Jan 22 2016 Jakub Čajka <jcajka@redhat.com> - 1-4
- version provides to make seamless transition between compilers possible
- Resolves: bz#1300717

* Thu Nov 12 2015 Jakub Čajka <jcajka@redhat.com> - 1-3
- remove version requirement from gcc-go subpackage to avoid cyclic
  dependency due to macro declaration in subpackage

* Thu Sep 10 2015 jchaloup <jchaloup@redhat.com> - 1-2
- go_compiler macro must be in go-srpm-macros package as it is used
  to pick compiler(go-compiler) which would provide go_compiler

* Tue Jul 07 2015 Jan Chaloupka <jchaloup@redhat.com> - 1-1
- Initial commit
  resolves: #1258182