Bug 1862861

Summary: Review Request: golang-github-shulhan-bindata - A small utility which generates Go code from any file
Product: [Fedora] Fedora Reporter: Brandon Perkins <bperkins>
Component: Package ReviewAssignee: Robert-André Mauchin 🐧 <eclipseo>
Status: CLOSED RAWHIDE QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: medium Docs Contact:
Priority: medium    
Version: rawhideCC: eclipseo, package-review
Target Milestone: ---Flags: eclipseo: 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: 2020-08-04 14:16:29 UTC 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:    
Bug Blocks: 1811183    

Description Brandon Perkins 2020-08-03 04:26:09 UTC
Spec URL: https://raw.githubusercontent.com/bdperkin/aliyun/master/SPECS/golang-github-shulhan-bindata.spec
SRPM URL: https://kojipkgs.fedoraproject.org//work/tasks/2482/48482482/golang-github-shulhan-bindata-3.6.0-1.fc33.src.rpm
Description: A small utility which generates Go code from any file. Useful for embedding
             binary data in a Go program.
Fedora Account System Username: bdperkin
Note 1: This package proposes to obsolete and provide "go-bindata".
Note 2: This package is required to build golang-github-aliyun-cli, which will have runtime errors without it.
Successful Koji build: https://koji.fedoraproject.org/koji/taskinfo?taskID=48482481

Comment 1 Brandon Perkins 2020-08-03 04:27:54 UTC
More context on why this package is needed can be found in a comment in the SPEC file:

# The upstream repository of the "go-bindata" package
# (github.com/jteeuwen/go-bindata) has been archived
# by the owner and is now read-only.  The upstream
# repository of this "golang-github-shulhan-bindata"
# package (github.com/shuLhan/go-bindata) has become
# the de-facto source for the "go-bindata" command.
Obsoletes:      go-bindata < 3.1.0
Provides:       go-bindata = %{version}

Comment 2 Robert-André Mauchin 🐧 2020-08-03 20:56:15 UTC
To document what I said by mail:

> You did take care of all seven packages that I had.  However, I found
> out yesterday in testing that even though the cli package built, it was
> not functional.  The go-bindata part of prep failed silently and didn't
> build the code needed for the cli to actually function properly.  After
> a bit of research I found out that the go-bindata that we ship in F33
> and earlier has a dead upstream and a fork of the last state became the
> new upstream.  Looking at the old package, it doesn't come close to how
> the other go packages are created, so I decided to create a new review
> request for the new upstream:
> 
> https://bugzilla.redhat.com/show_bug.cgi?id=1862861
> 
> I did add the obsoletes and provides as I *think* it should be.  If you
> do approve this approach and the package, I guess I'll need to reach out
> to the four maintainers of the package:
> 
> https://src.fedoraproject.org/rpms/go-bindata

I do not approve. The go-bindata repo is still maintained and active:
https://github.com/go-bindata/go-bindata/commits/master
Last release was in February, which very recent compared to most Go packages.
The Fedora package was not updated, its maintainers are not active anymore with Go stuff for Fedora as far as I know.

This other fork has the same basis, the Jim Teeuwen go-bindata repo. Jim Teeuwen has apparently disappeared and thus the project go-bindata/go-bindata was created. Now both forks have strongly diverged, so one is no more valid or the successor of the other, they are two projects sharing the same name from a common ancestor.

> 
> and ask them to retire it?
> 

No, and you shouldn't Provides/Obsoletes the current go-bindata. Instead I suggest that you prefix or postfix the conflicting binary (with shulhan or any suffix you find appropriate).

Comment 3 Robert-André Mauchin 🐧 2020-08-03 21:03:37 UTC
In practice, I would remove:

# The upstream repository of the "go-bindata" package
# (github.com/jteeuwen/go-bindata) has been archived
# by the owner and is now read-only.  The upstream
# repository of this "golang-github-shulhan-bindata"
# package (github.com/shuLhan/go-bindata) has become
# the de-facto source for the "go-bindata" command.
Obsoletes:      go-bindata < 3.1.0
Provides:       go-bindata = %{version}


and rename with a prefix or suffix the binary and the man page here:

%gobuild -o %{gobuilddir}/bin/go-bindata %{goipath}/cmd/go-bindata
mkdir -p %{gobuilddir}/share/man/man1
help2man --no-discard-stderr -n "%{summary}" -s 1 -o %{gobuilddir}/share/man/man1/go-bindata.1 -N --version-string="%{version}" %{gobuilddir}/bin/go-bindata

[…]

%files
%license LICENSE
%doc AUTHORS CHANGELOG CONTRIBUTING.md README.md
%{_mandir}/man1/go-bindata.1*
%{_bindir}/*

Comment 4 Brandon Perkins 2020-08-03 21:47:31 UTC
Spec URL: https://raw.githubusercontent.com/bdperkin/aliyun/master/SPECS/golang-github-shulhan-bindata.spec
SRPM URL: https://kojipkgs.fedoraproject.org//work/tasks/5513/48555513/golang-github-shulhan-bindata-3.6.0-2.fc33.src.rpm

Successful Koji build: https://koji.fedoraproject.org/koji/taskinfo?taskID=48555464

Requested changes made.  Renamed binary and man page to go-bindata.shulhan so it does not conflict with go-bindata.  I chose a suffix as I think it makes tab-completion easier :)

Comment 5 Robert-André Mauchin 🐧 2020-08-03 22:32:28 UTC
 - License ok
 - Latest version packaged
 - Builds in mock
 - No rpmlint errors
 - Conforms to Packaging Guidelines

Package approved.

Comment 6 Gwyn Ciesla 2020-08-04 13:14:17 UTC
(fedscm-admin):  The Pagure repository was created at https://src.fedoraproject.org/rpms/golang-github-shulhan-bindata

Comment 7 Brandon Perkins 2020-08-04 14:16:29 UTC
CLOSED. In Rawhide (f33).