From efef8fa696d9bcb43f8fcf6fff80c8ce4ad2eefc Mon Sep 17 00:00:00 2001 From: MSVSphere Packaging Team Date: Tue, 26 Nov 2024 16:10:55 +0300 Subject: [PATCH] import go-rpm-macros-3.6.0-1.el10 --- .gitignore | 3 + .go-rpm-macros.metadata | 3 + SPECS/go-rpm-macros.spec | 376 +++++++++++++++++++++++++++++++++++++++ 3 files changed, 382 insertions(+) create mode 100644 .gitignore create mode 100644 .go-rpm-macros.metadata create mode 100644 SPECS/go-rpm-macros.spec diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..2a1edc3 --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ +SOURCES/go-rpm-macros-3.6.0.tar.gz +SOURCES/golist-0.10.4-vendor.tar.xz +SOURCES/golist-0.10.4.tar.gz diff --git a/.go-rpm-macros.metadata b/.go-rpm-macros.metadata new file mode 100644 index 0000000..2712a12 --- /dev/null +++ b/.go-rpm-macros.metadata @@ -0,0 +1,3 @@ +9db262bd1b5acd1c3490d55b839819a878e6659c SOURCES/go-rpm-macros-3.6.0.tar.gz +d372835dbdb7c93e1c3ec0b7d1d4957dd860ac6c SOURCES/golist-0.10.4-vendor.tar.xz +4a105131658d029fe0b2d312b078a056748af2b4 SOURCES/golist-0.10.4.tar.gz diff --git a/SPECS/go-rpm-macros.spec b/SPECS/go-rpm-macros.spec new file mode 100644 index 0000000..91bf944 --- /dev/null +++ b/SPECS/go-rpm-macros.spec @@ -0,0 +1,376 @@ +## 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 + +%global forgeurl https://pagure.io/go-rpm-macros +Version: 3.6.0 +%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 +%global golang_arches %{ix86} %{golang_arches_future} +%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 + +# whether to bundle golist or require it as a dependency +%if 0%{?rhel} +%ifarch %{golang_arches} %{gccgo_arches} +%global bundle_golist 1 +%endif +%endif + +%global golist_version 0.10.4 +%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} +%global golist_goipath pagure.io/golist +# where to bundle the golist executable +%global golist_execdir %{_libexecdir}/go-rpm-macros +# 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} +%endif + +Name: go-rpm-macros +Release: %autorelease +Summary: Build-stage rpm automation for Go packages + +License: GPL-3.0-or-later +URL: %{forgeurl} +Source: %{forgesource} +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 + +Requires: go-srpm-macros = %{version}-%{release} +Requires: go-filesystem = %{version}-%{release} + +%if 0%{?bundle_golist} +BuildRequires: golang +Provides: bundled(golist) = %{golist_version} +%else +Requires: golist +%endif + +%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 + +%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 +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 +%writevars -f rpm/macros.d/macros.go-srpm golang_arches golang_arches_future gccgo_arches gopath +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 +%if 0%{?bundle_golist} +tar -C %{golist_builddir} -xf %{SOURCE2} +cp %{golist_builddir}/LICENSE LICENSE-golist +%endif + +%build +# build golist +%if 0%{?bundle_golist} +pushd %{golist_builddir} +for cmd in cmd/* ; do + %gobuild -o bin/$(basename $cmd) ./$cmd +done +popd +%endif + +%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} +# 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} + +install -m 0755 -vd %{buildroot}%{_bindir} +install -m 0755 bin/* %{buildroot}%{_bindir} + +install -m 0644 -vp rpm/macros.d/macros.go-*rpm* \ + %{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/ +install -m 0755 -vp rpm/*\.{prov,deps} \ + %{buildroot}%{_rpmconfigdir}/ +%else +install -m 0644 -vp rpm/macros.d/macros.go-srpm \ + %{buildroot}%{rpmmacrodir} +%endif + +%ifarch %{golang_arches} +install -m 0644 -vp rpm/macros.d/macros.go-compilers-golang{,-pie} \ + %{buildroot}%{_rpmconfigdir}/macros.d/ +%endif + +%ifarch %{gccgo_arches} +install -m 0644 -vp rpm/macros.d/macros.go-compilers-gcc \ + %{buildroot}%{_rpmconfigdir}/macros.d/ +%endif + +# 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 +%endif + +%ifarch %{golang_arches} %{gccgo_arches} +%files +%license LICENSE.txt +%if %{defined bundle_golist} +%license LICENSE-golist %{golist_builddir}/vendor/modules.txt +%endif +%doc README.md +%{_bindir}/* +%{_rpmconfigdir}/fileattrs/*.attr +%{_rpmconfigdir}/*.prov +%{_rpmconfigdir}/*.deps +%{_rpmmacrodir}/macros.go-rpm* +%{_rpmmacrodir}/macros.go-compiler* +%{_rpmluadir}/fedora/rpm/*.lua +# package golist +%if 0%{?bundle_golist} +%{golist_execdir}/golist +%endif + + +%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} +%{_spectemplatedir}/*.spec + +%files -n go-filesystem +%dir %{gopath} +%dir %{gopath}/src +%endif + +# 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 + +%changelog +## START: Generated by rpmautospec +* Wed Jul 24 2024 Alejandro Sáez - 3.6.0-1 +- Update to 3.6.0 + +* Wed Jun 26 2024 Edjunior Machado - 3.3.0-5 +- Add rpminspect.yaml + +* Mon Jun 24 2024 Troy Dawson - 3.3.0-4 +- Bump release for June 2024 mass rebuild + +* Thu May 23 2024 Alejandro Sáez - 3.3.0-3 +- Remove explicit dependency of forge-srpm-macros + +* Fri May 03 2024 Edjunior Machado - 3.3.0-2 +- gating.yaml: Add gating config for rhel-10 + +* Sun Oct 29 2023 Robert-André Mauchin - 3.3.0-1 +- Update to 3.3.0 + +* Sun Oct 29 2023 Yaakov Selkowitz - 3.2.0-9 +- Update golist to 0.10.4 + +* Thu Sep 07 2023 Maxwell G - 3.2.0-8 +- Add explicit dependency on forge-srpm-macros + +* Thu Jun 22 2023 Maxwell G - 3.2.0-7 +- Simplify golist tarball unpacking + +* Tue Jun 20 2023 Yaakov Selkowitz - 3.2.0-6 +- Bundle golist in RHEL builds + +* Mon Apr 24 2023 Edjunior Machado - 3.2.0-4 +- tests: Fix fmf plan deprecated attributes + +* Sun Apr 16 2023 Nianqing Yao - 3.2.0-3 +- Add riscv64 to %%golang_arches + +* Thu Jan 19 2023 Fedora Release Engineering - 3.2.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild + +* Fri Sep 02 2022 Maxwell G - 3.2.0-1 +- Update to 3.2.0. + +* Fri Sep 02 2022 Maxwell G - 3.1.0-5 +- Use %%{_rpmmacrodir} macro + +* Tue Aug 09 2022 Maxwell G - 3.1.0-4 +- Use correct SPDX identifier for Public Domain + +* Mon Aug 08 2022 Maxwell G - 3.1.0-3 +- Convert top level license to SPDX. + +* Mon Aug 08 2022 Maxwell G - 3.1.0-2 +- Stop installing duplicate go-compilers macros + +* Mon Aug 08 2022 Maxwell G - 3.1.0-1 +- Update to 3.1.0. + +* Fri Jul 29 2022 Maxwell G - 3.0.15-4 +- Add %%%%golang_arches_future macro + +* Thu Jul 21 2022 Fedora Release Engineering - 3.0.15-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild + +* Thu Jun 02 2022 Miro Hrončok - 3.0.15-2 +- Drop ExclusiveArch, always build go-srpm-macros and go-filesystem + +* Sun Jan 30 2022 Maxwell G - 3.0.15-1 +- Update to 3.0.15. + +* Sat Jan 29 2022 Maxwell G - 3.0.14-1 +- Update to 3.0.14. + +* Sat Jan 22 2022 Robert-André Mauchin - 3.0.13-4 +- Fix typo + +* Sat Jan 22 2022 Robert-André Mauchin - 3.0.13-3 +- Fix typo + +* Sat Jan 22 2022 Robert-André Mauchin - 3.0.13-2 +- Fix archive upload + +* Sat Jan 22 2022 Robert-André Mauchin - 3.0.13-1 +- Update to 3.0.13 + +* Sat Jan 22 2022 Robert-André Mauchin - 3.0.12-3 +- Update to 3.0.12 + +* Thu Jan 20 2022 Fedora Release Engineering - 3.0.11-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild + +* Thu Jul 22 2021 Fedora Release Engineering - 3.0.11-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild + +* Mon May 17 2021 Robert-André Mauchin - 3.0.11-1 +- Update to 3.0.11 + +* Mon Apr 26 2021 Alejandro Sáez - 3.0.10-1 +- Update to 3.0.10 + +* Thu Feb 11 2021 Jeff Law - 3.0.9-3 +- Drop 32 bit arches in EL 9 (originally from Petr Sabata) + +* Tue Jan 26 2021 Fedora Release Engineering - 3.0.9-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild + +* Thu Aug 13 2020 Neal Gompa - 3.0.9-1 +- Update to 3.0.9 + +* Mon Jul 27 2020 Fedora Release Engineering - 3.0.8-6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + +* Tue Jan 28 2020 Fedora Release Engineering - 3.0.8-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild + +* Thu Jul 25 2019 Fedora Release Engineering - 3.0.8-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild + +* Wed Jun 05 2019 Nicolas Mailhot +- 3.0.8-3 +- initial Fedora import, for golist 0.10.0 and redhat-rpm-config 130 + +## END: Generated by rpmautospec