On Thu, Sep 19, 2013 at 1:28 PM, Langdon White <langdon@fedoraproject.org> wrote:
On 09/19/2013 03:18 PM, Dave Johansen wrote:
On Thu, Sep 19, 2013 at 10:47 AM, Ralf Corsepius <rc040203@freenet.de
<mailto:rc040203@freenet.de>> wrote:

    On 09/18/2013 09:33 PM, Dave Johansen wrote:

        For example, I am working on packaging odb (

        <https://bugzilla.redhat.com/show_bug.cgi?id=975310> ), but it
        gcc 4.5 or greater for plugin support and that is only available
        on EL
        5/6 through the devtoolset.

    What are the causes? To me, this sounds like a non-portable package.

There are two parts of ODB: 1) the compiler and 2) the runtime. The
compiler takes an input and generates C++ code that can be built against
and used with the runtime. The generated code and the runtime can be
used with gcc 4.2 or greater.

The issue is that ODB requires gcc's plugin support (
http://gcc.gnu.org/wiki/plugins ) to parse the input (which was
introduced in gcc 4.5). Only gcc 4.4 is available on RHEL 5/6, but the
devtoolset makes a newer version available, which enables the use of the
compiler and not just the runtime.

        So if it was possible to build on Koji using
        the devtoolset, then it would enable odb to be packaged for EL
        5/6 and
        then those with access to the devtoolset could make use of it.

    To me this boils down to the question: "Are people allowed to use
    RH's devtoolset in EPEL?".

    Correct me if I am wrong, but to my knowledge, RH's devtoolset is
    only available to RH customers, which would mean EPEL can not use it.

Yes, the devtoolset requires the appropriate subscription from RH, but
that is the point of my request. I would like to request that devtoolset
be made available on Koji so it can be used to build certain packages.
The idea is that then it will build the rpm on the server and it will be
available in the EPEL (but not the devtoolset itself). This means that
anyone who would want to use this package would need to have the
devtoolset installed, so it doesn't violate any of the RH/EPEL policies,
but would enable the use of the devtoolset with the EPEL.

I am not an expert, but I believe the point of the devtoolset is that you do *not* need the devtoolset upon deployment. As a result, you would not be required to have the devtoolset to use the rpm (unless you were rebuilding it or something).

In general that is true, because the devtoolset generates binaries that can run on a vanilla RHEL system (i.e. without the devtoolset installed), but the issue is that the ODB compiler is a gcc plugin that uses gcc itself to parse C++ code (its input). So it's actually making use of the gcc compiler itself when it runs and isn't just code that is built into a stand alone executable like is the normal case for most projects. Since plugin support only exists in gcc 4.5 or greater, that's the reason for needing the devtoolset.

Also worth noting is that this is only true for the ODB compiler because the ODB runtime works with gcc 4.2 or greater and doesn't require the devtoolset or anything special.