The main point I want to get is to set a proper python(abi) requirement at buildtime without using hard version number at all.
%{?!py3_ver: %global py3_ver 3.2}
Doing so of course will make the package built. But that uses a hard version number.

I now suggest the requester to make a phantom file to get what we want.
See this patch: https://bugzilla.redhat.com/attachment.cgi?id=447458&action=diff

Robin

On Thu, Sep 16, 2010 at 12:17 AM, Toshio Kuratomi <a.badger@gmail.com> wrote:
On Wed, Sep 15, 2010 at 07:25:49PM +0800, Robin Lee wrote:
> For a more concrete example: https://bugzilla.redhat.com/show_bug.cgi?id=567348
> I want to set the python(abi) requirement of the subpackage at buildtime. So, I
> want to set it like this:
> Requires: python(abi) = %{py3_ver}
>
> But when build it, it will fail with the following output:
> $ rpmbuild -bp dreampie.spec
> Building target platforms: i686
> Building for target i686
> sh: python3: command not found
> sh: python3: command not found
> sh: python3: command not found
> error: line 46: Version required: Requires:   python(abi) =
>
> Even though python3-devel has been added as BR.
>
I think that where you're running into this problem is important.  It's when
koji is constructing the srpm, isn't it?  at that stage, koji needs to
parse the spec file and it's running into the "Requires foo =\n" and
throwing that error.

I think that conditionally defining a py3_ver macro in the spec file will do
what you wnat.  That way, when the package is actually built, the
python3-devel pakage will be present and your conditional will not set the
macro.  but when building the srpm and python3-devel is missing, it will.

Something like this:
%{?!py3_ver: %global py3_ver 3.2}

would work.  I'm not sure of the safest thing that we can use there and
still not run into problems when building the srpm.

-Toshio

> On Wed, Sep 15, 2010 at 7:06 PM, Ignacio Vazquez-Abrams <ivazqueznet@gmail.com>
> wrote:
>
>     On Wed, 2010-09-15 at 18:22 +0800, Robin Lee wrote:
>     > python3 rpm macros not available without python3-devel installed.
>     > 'rpmbuild --viewrc' will show you.
>     >
>     > So if you use the python3 macros to define another macro and you have
>     > no python3-devel installed, you must fail.
>     >
>     > So, how to define, for example, a %py3_ver macro for the major version
>     > of Python3? Must yum be used?
>     >
>     > Robin
>
>     Adding a "BuildRequires: python3-devel" should be enough to pull them
>     in.
>
>     --
>     Ignacio Vazquez-Abrams <ivazqueznet@gmail.com>
>
>     _______________________________________________
>     python-devel mailing list
>     python-devel@lists.fedoraproject.org
>     https://admin.fedoraproject.org/mailman/listinfo/python-devel
>
>

> _______________________________________________
> python-devel mailing list
> python-devel@lists.fedoraproject.org
> https://admin.fedoraproject.org/mailman/listinfo/python-devel


_______________________________________________
python-devel mailing list
python-devel@lists.fedoraproject.org
https://admin.fedoraproject.org/mailman/listinfo/python-devel