Fedora Account System
Red Hat Associate
Red Hat Customer
Description of problem: I am trying to apply spectool to a specfile generated successfully by go2rpm. Most of the time it works, when the forge to be used is GitHub. But, when using any other, it fails. Version-Release number of selected component (if applicable): $ rpm -q rpmdevtools rpmdevtools-9.6-7.fc40.noarch $ spectool --version spectool 1.1.0 How reproducible: cat << 'EOF' > golang-x-net.spec # Generated by go2rpm 1.14.0 %bcond check 1 %bcond bootstrap 0 %if %{with bootstrap} %global debug_package %{nil} %endif %if %{with bootstrap} %global __requires_exclude %{?__requires_exclude:%{__requires_exclude}|}^golang\\(.*\\)$ %endif # https://go.googlesource.com/net %global goipath golang.org/x/net %global forgeurl https://go.googlesource.com/net Version: v0.19.0 %global tag v0.19.0 # REMOVE BEFORE SUBMITTING THIS FOR REVIEW # --- # New Fedora packages should use %%gometa -f, which makes the package # ExclusiveArch to %%golang_arches_future and thus excludes the package from # %%ix86. If the new package is needed as a dependency for another package, # please consider removing that package from %%ix86 in the same way, instead of # building more go packages for i686. If your package is not a leaf package, # you'll need to coordinate the removal of the package's dependents first. # --- # REMOVE BEFORE SUBMITTING THIS FOR REVIEW %gometa -L -f %global common_description %{expand: # FIXME} %global golicenses LICENSE PATENTS %global godocs CONTRIBUTING.md README.md http2/h2i/README.md Name: golang-x-net Release: %autorelease Summary: None License: BSD-3-Clause URL: %{gourl} Source: %{gosource} %description %{common_description} %gopkg %prep %goprep -A %autopatch -p1 %if %{without bootstrap} %generate_buildrequires %go_generate_buildrequires %endif %if %{without bootstrap} %build for cmd in html/atom http2/h2i http2/hpack ipv4 ipv6 publicsuffix webdav; do %gobuild -o %{gobuilddir}/bin/$(basename $cmd) %{goipath}/$cmd done %endif %install %gopkginstall %if %{without bootstrap} install -m 0755 -vd %{buildroot}%{_bindir} install -m 0755 -vp %{gobuilddir}/bin/* %{buildroot}%{_bindir}/ %endif %if %{without bootstrap} %if %{with check} %check %gocheck %endif %endif %if %{without bootstrap} %files %license LICENSE PATENTS %doc CONTRIBUTING.md README.md http2/h2i/README.md # REMOVE BEFORE SUBMITTING THIS FOR REVIEW # --- # New Fedora packages should not use globs to avoid installing conflicting # binaries. # Write a _bindir line per each of the binaries the package will install. # --- # REMOVE BEFORE SUBMITTING THIS FOR REVIEW %{_bindir}/* %endif %gopkgfiles %changelog %autochangelog EOF spectool -Rag golang-x-net.spec Another way of generating the spec I generated would be: go2rpm -t v0.19.0 -f go.googlesource.com/net golang.org/x/net Steps to Reproduce: 1. Generate the SPEC file using go2rpm 2. Try spectool on it. Actual results: $ go2rpm -t v0.19.0 -f go.googlesource.com/net golang.org/x/net $ spectool -Rag golang-x-net.spec $ ll ~/rpmbuild/SOURCES/ total 0 $ head -n 17 golang-x-net.spec # Generated by go2rpm 1.14.0 %bcond check 1 %bcond bootstrap 0 %if %{with bootstrap} %global debug_package %{nil} %endif %if %{with bootstrap} %global __requires_exclude %{?__requires_exclude:%{__requires_exclude}|}^golang\\(.*\\)$ %endif # https://go.googlesource.com/net %global goipath golang.org/x/net %global forgeurl https://go.googlesource.com/net Version: v0.19.0 %global tag v0.19.0 Expected results: It should download the source code tarball.
This appears to be a problem in the Go macros. %gosource is expaned to this: > Source0: #/.%{archiveext} Looks like some internal macros are not getting initialized with the proper values. spectool heuristics determine that this is not a URL, so no download is attempted. Please report this issue against the go-rpm-macros.
Right on. Thank you for the assessment. :)