Bug 2213321

Summary: Review Request: hebcal - CLI perpetual Jewish Calendar
Product: [Fedora] Fedora Reporter: Mark E. Fuller <mark.e.fuller>
Component: Package ReviewAssignee: Link Dupont <link>
Status: ASSIGNED --- QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: medium Docs Contact:
Priority: medium    
Version: rawhideCC: link, package-review
Target Milestone: ---Flags: link: fedora-review?
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On: 2213307, 2213308, 2213309, 2213310, 2213311    
Bug Blocks:    

Comment 1 Link Dupont 2023-07-14 15:57:34 UTC
> BuildRequires: golang-github-hebcal-devel

Does this not get included automatically when using the %go_generate_buildrequires macro?

Comment 2 Link Dupont 2023-07-14 16:13:13 UTC
Since this is a binary-only package, you should probably remove the %gopkgfiles line. That line creates an additional golang-github-hebcal-devel package that will overwrite the other golang-github-hebcal-devel package. There is no point to shipping the source code to hebcal (the binary) in a Fedora-style gocode package. The SRPM covers the requirement to ship source code.

Comment 3 Mark E. Fuller 2023-07-14 16:23:47 UTC
(In reply to Link Dupont from comment #1)
> > BuildRequires: golang-github-hebcal-devel
> 
> Does this not get included automatically when using the
> %go_generate_buildrequires macro?

It is not automatically included - see https://download.copr.fedorainfracloud.org/results/fuller/hebcal/fedora-rawhide-x86_64/06172977-hebcal/builder-live.log.gz where the "BuildRequires" is commented out

Comment 4 Link Dupont 2023-07-14 16:49:57 UTC
It looks like the fact that github.com/hebcal/hebcal-go and github.com/hebcal/hebcal are separate Go packages is confusing golist. When I run golist without --skip-self, it includes the github.com/hebcal/hebcal-go package requirements:

link@thelio:~/.../hebcal/hebcal$ golist --imported --package-path $goipath
github.com/hebcal/greg
github.com/hebcal/hdate
github.com/hebcal/hebcal-go/event
github.com/hebcal/hebcal-go/hebcal
github.com/hebcal/hebcal-go/locales
github.com/hebcal/hebcal-go/yerushalmi
github.com/hebcal/hebcal-go/zmanim
github.com/pborman/getopt/v2

However, when run with --skip-self (as golist is run by the %go_generate_buildrequires macro), it incorrectly assumes those packages are local:

link@thelio:~/.../hebcal/hebcal$ golist --imported --package-path $goipath --skip-self
github.com/hebcal/greg
github.com/hebcal/hdate
github.com/pborman/getopt/v2

Ideally, the right solution here is for upstream to move github.com/hebcal/hebcal into a package within github.com/hebcal/hebcal-go (using the cmd/hebcal convention). Then one RPM would provide both the github.com/hebcal/hebcal-go source files, and then resulting github.com/hebcal/hebcal-go/cmd/hebcal binary.

Maybe make a note by the manual BuildRequires: line that notes why that requirement is present. Alternatively, you could forgo using %go_generate_buildrequires and use a manual list. See https://docs.fedoraproject.org/en-US/packaging-guidelines/Golang/#_automatic_dependency_generation for an example of using golist manually.