Bug 1400382

Summary: git-submodule is not available, render golang "go get" useless
Product: [Fedora] Fedora Reporter: Chen Chen <aflyhorse>
Component: gitAssignee: Petr Stodulka <pstodulk>
Status: CLOSED NOTABUG QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: low Docs Contact:
Priority: unspecified    
Version: 24CC: aflyhorse, amahdal, besser82, c.david86, chrisw, jbowes, pstodulk, tmz
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2016-12-01 04:03:35 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:

Description Chen Chen 2016-12-01 03:13:38 UTC
Description of problem:
git-submodule is not available, so golang's "go get" always fails.
the submodule command has been alive since 2011. Couldn't believe it is not included in Fedora.

Version-Release number of selected component (if applicable):

How reproducible:
Always

Steps to Reproduce:
1. install git and golang
2. mkdir project
3. GOPATH=~/project go get -u github.com/golang/protobuf/proto

Actual results:
# cd /home/lunarshaddow/project/src/github.com/golang/protobuf; git submodule update --init --recursive
git: 'submodule' is not a git command. See 'git --help'.
package github.com/golang/protobuf/proto: exit status 1

Expected results:
Can install go package correctly.

Additional info:
I was trying to follow the tutorial at https://github.com/golang/protobuf.
Used golang 1.6.3_4.fc24 and protobuf-devel 2.6.1_4.fc24 to meet its dependency.

Comment 1 Todd Zullinger 2016-12-01 03:23:11 UTC
Can you list what git packages you have installed (the output from: rpm -qa git\*) ?  Perhaps you only have git-core and not git.

$ cat /etc/fedora-release
Fedora release 24 (Twenty Four)

$ rpm -qf /usr/libexec/git-core/git-submodule
git-2.7.4-3.fc24.x86_64

$ rpm -qa git\*
git-core-2.7.4-3.fc24.x86_64
git-2.7.4-3.fc24.x86_64
git-core-doc-2.7.4-3.fc24.x86_64

$ git submodule -h
usage: git submodule [--quiet] add [-b <branch>] [-f|--force] [--name <name>] [--reference <repository>] [--] <repository> [<path>]
   or: git submodule [--quiet] status [--cached] [--recursive] [--] [<path>...]
   or: git submodule [--quiet] init [--] [<path>...]
   or: git submodule [--quiet] deinit [-f|--force] [--] <path>...
   or: git submodule [--quiet] update [--init] [--remote] [-N|--no-fetch] [-f|--force] [--checkout|--merge|--rebase] [--reference <repository>] [--recursive] [--] [<path>...]
   or: git submodule [--quiet] summary [--cached|--files] [--summary-limit <n>] [commit] [--] [<path>...]
   or: git submodule [--quiet] foreach [--recursive] <command>
   or: git submodule [--quiet] sync [--recursive] [--] [<path>...]

Comment 2 Chen Chen 2016-12-01 04:03:35 UTC
My fault. I only installed git-core.
Not sure why it didn't showed up in rpm provides.

[lunarshaddow@linode ~]$ dnf provides git-svn
Last metadata expiration check: 1:04:48 ago on Thu Dec  1 11:56:42 2016.
git-svn-2.7.4-1.fc24.x86_64 : Git tools for importing Subversion repositories
Repo        : fedora

git-svn-2.7.4-3.fc24.x86_64 : Git tools for importing Subversion repositories
Repo        : updates

[lunarshaddow@linode ~]$ dnf provides git-submodule
Last metadata expiration check: 1:05:06 ago on Thu Dec  1 11:56:42 2016.
Error: No Matches found

Closed as NOTABUG.

Comment 3 Todd Zullinger 2016-12-01 16:46:40 UTC
(In reply to Chen Chen from comment #2)
> My fault. I only installed git-core.

I'm glad it was easy to resolve. :)

> Not sure why it didn't showed up in rpm provides.
> 
> [lunarshaddow@linode ~]$ dnf provides git-svn
> Last metadata expiration check: 1:04:48 ago on Thu Dec  1 11:56:42 2016.
> git-svn-2.7.4-1.fc24.x86_64 : Git tools for importing Subversion repositories
> Repo        : fedora
> 
> git-svn-2.7.4-3.fc24.x86_64 : Git tools for importing Subversion repositories
> Repo        : updates
> 
> [lunarshaddow@linode ~]$ dnf provides git-submodule
> Last metadata expiration check: 1:05:06 ago on Thu Dec  1 11:56:42 2016.
> Error: No Matches found

Since git-svn is a subpackage, it has a provides for the package name. This is what 'dnf provides git-svn' is finding.  There is no similar git-submodules subpackage, so the only provides which matches git-submodule is a file provides.

$ dnf provides '*/git-submodule'
Last metadata expiration check: 0:00:24 ago on Thu Dec  1 11:37:25 2016.
git-2.7.4-3.fc24.x86_64 : Fast Version Control System
Repo        : @System

git-2.7.4-3.fc24.x86_64 : Fast Version Control System
Repo        : updates

yash-2.43-1.fc24.x86_64 : Yet Another SHell
Repo        : updates

git-2.7.4-1.fc24.x86_64 : Fast Version Control System
Repo        : fedora

yash-2.41-1.fc24.x86_64 : Yet Another SHell
Repo        : fedora

(yash matches that provides search because it includes a completion file named git-submodule.)