go-rpm-macros/go-rpm-macros.spec

377 lines
12 KiB
RPMSpec
Raw Permalink Normal View History

## START: Set by rpmautospec
## (rpmautospec version 0.6.5)
## RPMAUTOSPEC: autorelease, autochangelog
%define autorelease(e:s:pb:n) %{?-p:0.}%{lua:
release_number = 1;
base_release_number = tonumber(rpm.expand("%{?-b*}%{!?-b:1}"));
print(release_number + base_release_number - 1);
}%{?-e:.%{-e*}}%{?-s:.%{-s*}}%{!?-n:%{?dist}}
## END: Set by rpmautospec
2021-11-03 17:00:17 +00:00
%global forgeurl https://pagure.io/go-rpm-macros
2024-09-30 15:35:40 +00:00
Version: 3.6.0
2021-11-03 17:00:17 +00:00
%forgemeta
#https://src.fedoraproject.org/rpms/redhat-rpm-config/pull-request/51
%global _spectemplatedir %{_datadir}/rpmdevtools/fedora
%global _docdir_fmt %{name}
# Master definition that will be written to macro files
%global golang_arches_future x86_64 %{arm} aarch64 ppc64le s390x riscv64
2023-09-21 18:42:00 +00:00
%global golang_arches %{ix86} %{golang_arches_future}
2021-11-03 17:00:17 +00:00
%global gccgo_arches %{mips}
%if 0%{?rhel} >= 9
%global golang_arches x86_64 aarch64 ppc64le s390x
%endif
# Go sources can contain arch-specific files and our macros will package the
# correct files for each architecture. Therefore, move gopath to _libdir and
# make Go devel packages archful
%global gopath %{_datadir}/gocode
2022-03-01 12:02:05 +00:00
# whether to bundle golist or require it as a dependency
%if 0%{?rhel}
%ifarch %{golang_arches} %{gccgo_arches}
2022-03-01 12:02:05 +00:00
%global bundle_golist 1
%endif
%endif
2022-03-01 12:02:05 +00:00
%global golist_version 0.10.4
2022-03-01 12:02:05 +00:00
%if 0%{?bundle_golist}
# do not create debuginfo packages when we add a build section
%global debug_package %{nil}
%global golist_builddir golist-%{golist_version}
2022-03-01 12:02:05 +00:00
%global golist_goipath pagure.io/golist
# where to bundle the golist executable
%global golist_execdir %{_libexecdir}/go-rpm-macros
2022-03-01 12:02:05 +00:00
# define gobuild to avoid this package requiring itself to build
%define gobuild(o:) GO111MODULE=on go build -buildmode pie -compiler gc -tags="rpm_crashtraceback ${BUILDTAGS:-}" -ldflags "-B 0x$(head -c20 /dev/urandom|od -An -tx1|tr -d ' \\n') -extldflags '${LDFLAGS:-} '" -a -v %{?**};
%else
%global debug_package %{nil}
2022-03-01 12:02:05 +00:00
%endif
2021-11-03 17:00:17 +00:00
Name: go-rpm-macros
Release: %autorelease
2021-11-03 17:00:17 +00:00
Summary: Build-stage rpm automation for Go packages
License: GPL-3.0-or-later
2021-11-03 17:00:17 +00:00
URL: %{forgeurl}
Source: %{forgesource}
2022-03-01 12:02:05 +00:00
Source1: https://pagure.io/golist/archive/v%{golist_version}/golist-%{golist_version}.tar.gz
# vendored dependency tarball, to create:
# tar xf golist-%%{golist_version}.tar.gz ; pushd golist-%%{golist_version} ; \
# go mod init %%{golist_goipath} && go mod tidy && go mod vendor && \
# tar Jcf ../golist-%%{golist_version}-vendor.tar.xz go.mod go.sum vendor/ ; popd
Source2: golist-%{golist_version}-vendor.tar.xz
2021-11-03 17:00:17 +00:00
Requires: go-srpm-macros = %{version}-%{release}
Requires: go-filesystem = %{version}-%{release}
2022-03-01 12:02:05 +00:00
%if 0%{?bundle_golist}
BuildRequires: golang
Provides: bundled(golist) = %{golist_version}
2022-03-01 12:02:05 +00:00
%else
Requires: golist
%endif
2021-11-03 17:00:17 +00:00
%ifarch %{golang_arches}
Requires: golang
Provides: compiler(golang)
Provides: compiler(go-compiler) = 2
Obsoletes: go-compilers-golang-compiler < %{version}-%{release}
%endif
%ifarch %{gccgo_arches}
Requires: gcc-go
Provides: compiler(gcc-go)
Provides: compiler(go-compiler) = 1
Obsoletes: go-compilers-gcc-go-compiler < %{version}-%{release}
%endif
%description
This package provides build-stage rpm automation to simplify the creation of Go
language (golang) packages.
It does not need to be included in the default build root: go-srpm-macros will
pull it in for Go packages only.
%package -n go-srpm-macros
Summary: Source-stage rpm automation for Go packages
BuildArch: noarch
Requires: redhat-rpm-config
%description -n go-srpm-macros
This package provides SRPM-stage rpm automation to simplify the creation of Go
language (golang) packages.
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-filesystem
Summary: Directories used by Go packages
License: LicenseRef-Fedora-Public-Domain
2021-11-03 17:00:17 +00:00
%description -n go-filesystem
This package contains the basic directory layout used by Go packages.
%package -n go-rpm-templates
Summary: RPM spec templates for Go packages
License: MIT
# go-rpm-macros only exists on some architectures, so this package cannot be noarch
2021-11-03 17:00:17 +00:00
Requires: go-rpm-macros = %{version}-%{release}
#https://src.fedoraproject.org/rpms/redhat-rpm-config/pull-request/51
#Requires: redhat-rpm-templates
%description -n go-rpm-templates
This package contains documented rpm spec templates showcasing how to use the
macros provided by go-rpm-macros to create Go packages.
%prep
%autosetup -p1 %{forgesetupargs} -a1
2023-09-21 18:42:00 +00:00
%writevars -f rpm/macros.d/macros.go-srpm golang_arches golang_arches_future gccgo_arches gopath
2022-03-01 12:02:05 +00:00
for template in templates/rpm/*\.spec ; do
target=$(echo "${template}" | sed "s|^\(.*\)\.spec$|\1-bare.spec|g")
grep -v '^#' "${template}" > "${target}"
touch -r "${template}" "${target}"
done
# unpack golist and vendor deps
2022-03-01 12:02:05 +00:00
%if 0%{?bundle_golist}
tar -C %{golist_builddir} -xf %{SOURCE2}
cp %{golist_builddir}/LICENSE LICENSE-golist
2022-03-01 12:02:05 +00:00
%endif
%build
# build golist
%if 0%{?bundle_golist}
pushd %{golist_builddir}
2022-03-01 12:02:05 +00:00
for cmd in cmd/* ; do
%gobuild -o bin/$(basename $cmd) ./$cmd
2022-03-01 12:02:05 +00:00
done
popd
%endif
2021-11-03 17:00:17 +00:00
%install
install -m 0755 -vd %{buildroot}%{rpmmacrodir}
install -m 0755 -vd %{buildroot}%{_rpmluadir}/fedora/srpm
install -m 0644 -vp rpm/lua/srpm/*lua \
%{buildroot}%{_rpmluadir}/fedora/srpm
%ifarch %{golang_arches} %{gccgo_arches}
2021-11-03 17:00:17 +00:00
# Some of those probably do not work with gcc-go right now
# This is not intentional, but mips is not a primary Fedora architecture
# Patches and PRs are welcome
install -m 0755 -vd %{buildroot}%{gopath}/src
install -m 0755 -vd %{buildroot}%{_spectemplatedir}
install -m 0644 -vp templates/rpm/*spec \
%{buildroot}%{_spectemplatedir}
2021-11-03 17:00:17 +00:00
2022-03-01 12:02:05 +00:00
install -m 0755 -vd %{buildroot}%{_bindir}
install -m 0755 bin/* %{buildroot}%{_bindir}
install -m 0644 -vp rpm/macros.d/macros.go-*rpm* \
2021-11-03 17:00:17 +00:00
%{buildroot}%{rpmmacrodir}
install -m 0755 -vd %{buildroot}%{_rpmluadir}/fedora/rpm
install -m 0644 -vp rpm/lua/rpm/*lua \
%{buildroot}%{_rpmluadir}/fedora/rpm
install -m 0755 -vd %{buildroot}%{_rpmconfigdir}/fileattrs
install -m 0644 -vp rpm/fileattrs/*.attr \
%{buildroot}%{_rpmconfigdir}/fileattrs/
2022-03-01 12:02:05 +00:00
install -m 0755 -vp rpm/*\.{prov,deps} \
%{buildroot}%{_rpmconfigdir}/
%else
install -m 0644 -vp rpm/macros.d/macros.go-srpm \
%{buildroot}%{rpmmacrodir}
%endif
2021-11-03 17:00:17 +00:00
%ifarch %{golang_arches}
install -m 0644 -vp rpm/macros.d/macros.go-compilers-golang{,-pie} \
%{buildroot}%{_rpmconfigdir}/macros.d/
2021-11-03 17:00:17 +00:00
%endif
%ifarch %{gccgo_arches}
install -m 0644 -vp rpm/macros.d/macros.go-compilers-gcc \
%{buildroot}%{_rpmconfigdir}/macros.d/
2021-11-03 17:00:17 +00:00
%endif
2022-03-01 12:02:05 +00:00
# install golist
%if 0%{?bundle_golist}
install -m 0755 -vd %{buildroot}%{golist_execdir}
install -m 0755 -vp %{golist_builddir}/bin/* %{buildroot}%{golist_execdir}/
sed -i "s,golist ,%{golist_execdir}/golist ,g" \
%{buildroot}%{_bindir}/go-rpm-integration \
%{buildroot}%{_rpmconfigdir}/gosymlink.deps \
%{buildroot}%{_rpmmacrodir}/macros.go-rpm
2022-03-01 12:02:05 +00:00
%endif
%ifarch %{golang_arches} %{gccgo_arches}
2021-11-03 17:00:17 +00:00
%files
%license LICENSE.txt
%if %{defined bundle_golist}
%license LICENSE-golist %{golist_builddir}/vendor/modules.txt
%endif
2021-11-03 17:00:17 +00:00
%doc README.md
2022-03-01 12:02:05 +00:00
%{_bindir}/*
2021-11-03 17:00:17 +00:00
%{_rpmconfigdir}/fileattrs/*.attr
2022-03-01 12:02:05 +00:00
%{_rpmconfigdir}/*.prov
%{_rpmconfigdir}/*.deps
%{_rpmmacrodir}/macros.go-rpm*
%{_rpmmacrodir}/macros.go-compiler*
2021-11-03 17:00:17 +00:00
%{_rpmluadir}/fedora/rpm/*.lua
2022-03-01 12:02:05 +00:00
# package golist
%if 0%{?bundle_golist}
%{golist_execdir}/golist
%endif
2021-11-03 17:00:17 +00:00
%files -n go-rpm-templates
%license LICENSE-templates.txt
%doc README.md
# https://src.fedoraproject.org/rpms/redhat-rpm-config/pull-request/51
%dir %{dirname:%{_spectemplatedir}}
%dir %{_spectemplatedir}
2022-03-01 12:02:05 +00:00
%{_spectemplatedir}/*.spec
2021-11-03 17:00:17 +00:00
%files -n go-filesystem
%dir %{gopath}
%dir %{gopath}/src
%endif
2024-09-30 15:35:40 +00:00
# we only build go-srpm-macros on all architectures
%files -n go-srpm-macros
%license LICENSE.txt
%doc README.md
%{_rpmmacrodir}/macros.go-srpm
%{_rpmluadir}/fedora/srpm/*.lua
2024-09-30 15:35:40 +00:00
%changelog
## START: Generated by rpmautospec
* Wed Jul 24 2024 Alejandro Sáez <asm@redhat.com> - 3.6.0-1
2024-09-30 15:35:40 +00:00
- Update to 3.6.0
* Wed Jun 26 2024 Edjunior Machado <emachado@redhat.com> - 3.3.0-5
- Add rpminspect.yaml
* Mon Jun 24 2024 Troy Dawson <tdawson@redhat.com> - 3.3.0-4
- Bump release for June 2024 mass rebuild
* Thu May 23 2024 Alejandro Sáez <asm@redhat.com> - 3.3.0-3
- Remove explicit dependency of forge-srpm-macros
* Fri May 03 2024 Edjunior Machado <emachado@redhat.com> - 3.3.0-2
- gating.yaml: Add gating config for rhel-10
* Sun Oct 29 2023 Robert-André Mauchin <zebob.m@gmail.com> - 3.3.0-1
- Update to 3.3.0
* Sun Oct 29 2023 Yaakov Selkowitz <yselkowi@redhat.com> - 3.2.0-9
- Update golist to 0.10.4
2024-03-28 10:18:19 +00:00
* Thu Sep 07 2023 Maxwell G <maxwell@gtmx.me> - 3.2.0-8
- Add explicit dependency on forge-srpm-macros
2023-09-21 18:42:00 +00:00
* Thu Jun 22 2023 Maxwell G <maxwell@gtmx.me> - 3.2.0-7
- Simplify golist tarball unpacking
2023-03-28 10:10:34 +00:00
* Tue Jun 20 2023 Yaakov Selkowitz <yselkowi@redhat.com> - 3.2.0-6
- Bundle golist in RHEL builds
2023-03-28 10:10:34 +00:00
* Mon Apr 24 2023 Edjunior Machado <emachado@redhat.com> - 3.2.0-4
- tests: Fix fmf plan deprecated attributes
2022-03-01 12:02:05 +00:00
* Sun Apr 16 2023 Nianqing Yao <imbearchild@outlook.com> - 3.2.0-3
- Add riscv64 to %%golang_arches
2021-11-03 17:00:17 +00:00
* Thu Jan 19 2023 Fedora Release Engineering <releng@fedoraproject.org> - 3.2.0-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
2021-11-03 17:00:17 +00:00
* Fri Sep 02 2022 Maxwell G <gotmax@e.email> - 3.2.0-1
- Update to 3.2.0.
2021-11-03 17:00:17 +00:00
* Fri Sep 02 2022 Maxwell G <gotmax@e.email> - 3.1.0-5
- Use %%{_rpmmacrodir} macro
2021-11-03 17:00:17 +00:00
* Tue Aug 09 2022 Maxwell G <gotmax@e.email> - 3.1.0-4
- Use correct SPDX identifier for Public Domain
* Mon Aug 08 2022 Maxwell G <gotmax@e.email> - 3.1.0-3
- Convert top level license to SPDX.
* Mon Aug 08 2022 Maxwell G <gotmax@e.email> - 3.1.0-2
- Stop installing duplicate go-compilers macros
* Mon Aug 08 2022 Maxwell G <gotmax@e.email> - 3.1.0-1
- Update to 3.1.0.
* Fri Jul 29 2022 Maxwell G <gotmax@e.email> - 3.0.15-4
- Add %%%%golang_arches_future macro
* Thu Jul 21 2022 Fedora Release Engineering <releng@fedoraproject.org> - 3.0.15-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
* Thu Jun 02 2022 Miro Hrončok <miro@hroncok.cz> - 3.0.15-2
- Drop ExclusiveArch, always build go-srpm-macros and go-filesystem
* Sun Jan 30 2022 Maxwell G <gotmax@e.email> - 3.0.15-1
- Update to 3.0.15.
* Sat Jan 29 2022 Maxwell G <gotmax@e.email> - 3.0.14-1
- Update to 3.0.14.
* Sat Jan 22 2022 Robert-André Mauchin <zebob.m@gmail.com> - 3.0.13-4
- Fix typo
* Sat Jan 22 2022 Robert-André Mauchin <zebob.m@gmail.com> - 3.0.13-3
- Fix typo
* Sat Jan 22 2022 Robert-André Mauchin <zebob.m@gmail.com> - 3.0.13-2
- Fix archive upload
* Sat Jan 22 2022 Robert-André Mauchin <zebob.m@gmail.com> - 3.0.13-1
- Update to 3.0.13
* Sat Jan 22 2022 Robert-André Mauchin <zebob.m@gmail.com> - 3.0.12-3
- Update to 3.0.12
* Thu Jan 20 2022 Fedora Release Engineering <releng@fedoraproject.org> - 3.0.11-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
* Thu Jul 22 2021 Fedora Release Engineering <releng@fedoraproject.org> - 3.0.11-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
* Mon May 17 2021 Robert-André Mauchin <zebob.m@gmail.com> - 3.0.11-1
- Update to 3.0.11
* Mon Apr 26 2021 Alejandro Sáez <asm@redhat.com> - 3.0.10-1
- Update to 3.0.10
2021-11-03 17:00:17 +00:00
* Thu Feb 11 2021 Jeff Law <law@redhat.com> - 3.0.9-3
- Drop 32 bit arches in EL 9 (originally from Petr Sabata)
* Tue Jan 26 2021 Fedora Release Engineering <releng@fedoraproject.org> - 3.0.9-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
* Thu Aug 13 2020 Neal Gompa <ngompa13@gmail.com> - 3.0.9-1
- Update to 3.0.9
* Mon Jul 27 2020 Fedora Release Engineering <releng@fedoraproject.org> - 3.0.8-6
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
* Tue Jan 28 2020 Fedora Release Engineering <releng@fedoraproject.org> - 3.0.8-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
* Thu Jul 25 2019 Fedora Release Engineering <releng@fedoraproject.org> - 3.0.8-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
* Wed Jun 05 2019 Nicolas Mailhot <nim@fedoraproject.org>
- 3.0.8-3
- initial Fedora import, for golist 0.10.0 and redhat-rpm-config 130
## END: Generated by rpmautospec