Re: Providing ABI/API assurances for the base runtime in Fedora.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 09/04/2017 07:31 AM, Petr Pisar wrote:
> On 2017-09-01, Carlos O'Donell <carlos@xxxxxxxxxx> wrote:
>> I've written up some of the key ideas here:
>> https://fedoraproject.org/wiki/BaseRuntimeInterface
>>
>> Any feedback would be appreciated, including bikeshed on component
>> name prefix for frozen interface pakcages e.g. base-*.

Thank you for your feedback!

> What if there is a bug in the behavior of the frozen base-* packages? Do
> we have to live with the bug for the rest of the life time of the base
> (=platform)? Or do we break this rule and replace the broken package
> with a patched one?

We get this question a lot in glibc.

There is a natural tension to want to break the API/ABI in a stable release
to fix a bug that is known.

In general we live by an "exceptions based policy" which is to say that we
follow the stable API/ABI rules very strictly, but the community can be
convinced to grant an exception.

I think if the platform module releases with a base-glibc package (defines
the interface to build against) that has a bug, say it has the wrong ABI
for a given function, then you need to look at the specifics of the failure
to decide if base-glibc should be fixed and rebuilt.

I added a Q&A question about this. Please tell me if that answers your
question.

> If the second one is the answer, do we know how it will affect packages
> whose build script does run-time checks (i.e. every ./configure script)
> to tune compile-time options?

It depends on how each package implements the split of interface/implementation.

> More strictly speaking, will we be adding new features into the same stream of
> the base module? I guess we won't. Otherwise we have to update the
> frozen base-* packages accordingly to make the new features available at
> build-time of packages that want to use the new features.

The interface base-* or platform-* (whatever we call them) packages would remain
frozen for the lifetime of say the platform modules specific major version.
However, we could rebase the implementation package without specifically impacting
the existing components.

In the case of glibc, because we alter the linker path, package configure checks
will only ever see the interface glibc provided by the platform-glibc package.
At present the platform-glibc is a full glibc which can run in the system.

If we were to trim platform-glibc into just some stripped DSOs then we might run
into configure check problems. We would have to make all such configure checks
be cross-compile safe, which is not something I'm going to target at this stage,
but it would be an interesting project to consider.

Does that answer your question?

I added another Q&A item for this.

-- 
Cheers,
Carlos.
_______________________________________________
devel mailing list -- devel@xxxxxxxxxxxxxxxxxxxxxxx
To unsubscribe send an email to devel-leave@xxxxxxxxxxxxxxxxxxxxxxx




[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Fedora Announce]     [Fedora Kernel]     [Fedora Testing]     [Fedora Formulas]     [Fedora PHP Devel]     [Kernel Development]     [Fedora Legacy]     [Fedora Maintainers]     [Fedora Desktop]     [PAM]     [Red Hat Development]     [Gimp]     [Yosemite News]
  Powered by Linux