Bug 1005990

Summary: RFE: Add option to allow creation of a temporary repository to satisfy build dependencies
Product: [Fedora] Fedora Reporter: Richard Shaw <hobbes1069>
Component: mockAssignee: Miroslav Suchý <msuchy>
Status: CLOSED NOTABUG QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: rawhideCC: mebrown, msuchy, williams
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2014-05-16 10:01:57 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:
Embargoed:

Description Richard Shaw 2013-09-09 19:00:35 UTC
Description of problem:
In order to chain build packages you currently need to do something like:
mock --init
mock --install <dependencies>
mock --noclean <SRPM>


Expected results:
An option such as "--temprepo  Creates a temporary repository for build dependencies."
which would run createrepo in the specified directory and add it as a repository used to satisfy build dependencies would make this much easier and allow building packages more or less one step instead of the 3 above.

Not to mention if you forget to add --no-clean you have to start all over.

Comment 1 Richard Shaw 2013-09-09 19:49:39 UTC
It looks like mockchain *ALMOST* fills this need but I'm guessing the -a option want's a true url, not a path:

  File "/bin/mockchain", line 352, in <module>
    main(sys.argv)
  File "/bin/mockchain", line 251, in main
    res, msg =  add_local_repo(my_mock_config, my_mock_config, baseurl)
  File "/bin/mockchain", line 105, in add_local_repo
    repoid=baseurl.split('//')[1].replace('/','_')
IndexError: list index out of range

I tried turning it into a url "file://..." and although mockchain didn't complain, it didn't pull in the newer packages and instead used the regular repo packages.

Also, mockchain seems to lack a --resultdir option...

Comment 2 Miroslav Suchý 2014-05-16 10:01:57 UTC
If you pass several src.rpm to mockchain then mockchain automaticaly create local repo with those packages which were already built. No need to specify -a.

Also if you are not sure in which order it should be build, you can use 'mockchain --recurse' which will try to build failed packages again, if some other packages will succeed.