sclorg / rpm-list-builder

RPM List Builder helps you to build a list of defined RPM packages including Software Collection from the recipe file
GNU General Public License v2.0
4 stars 8 forks source link

Support `fedpkg` in addition to `rhpkg` #66

Closed ncoghlan closed 7 years ago

ncoghlan commented 7 years ago

Fedora's dist-git client is called fedpkg rather than rhpkg, which means some default rpm-list-builder features like the mock backend don't work as expected (it currently calls "rhpkg srpm" directly).

While it's easy enough to use a custom build to handle that case (which is what I'm currently doing), it probably makes more sense to make this configurable and/or based on automatic client detection somehow.

ncoghlan commented 7 years ago

Note that the tests have example build configs for working with COPR and koji from a Fedora system: https://github.com/sclorg/rpm-list-builder/blob/master/tests/fixtures/custom/

So it may be possible to use a solution similar to the way mock handle buildroot configs, which is to have omitting the file extension indicate that the config should be looked up in a predefined configuration directory.

junaruga commented 7 years ago

@ncoghlan Currently available download type is none, local, rhpkg and custom (default is none). The dist-git command rhpkg is used in Red Hat. But as you said, fedpkg for Fedora should be supported as well.

Right now, the way to use both fedpkg and mock is

$ rpmlb -d custom -b mock ...

Your pull-request for the download type fedpkg option is welcome :)

So it may be possible to use a solution similar to the way mock handle buildroot configs, which is to have omitting the file extension indicate that the config should be looked up in a predefined configuration directory.

I may not understand what you said. There is a build type mock. You can use it with --mock-config (-M) option.

See https://github.com/sclorg/rpm-list-builder/blob/master/docs/users_guide.md

ncoghlan commented 7 years ago

The specific problem is that -b mock calls rhpkg srpm to create the SRPM. As a result, it doesn't work on Fedora, which only has fedpkg.

However, it also turns out that there's a separate problem with combining a fedpkg srpm call with custom downloads, which is that you also need to pass --release el7 to ensure that fedpkg knows what release tag to use when it can't derive it from the git branch name.

Currently I have that hardcoded in a custom build definition: https://github.com/ncoghlan/pyscl-devel/blob/master/rpmlb/sclorg-distgit-download.yml#L47

junaruga commented 7 years ago

@ncoghlan I understood your situation. Sorry for that. Right now the custom build looks the only way to build your packages.