[Fedora-packaging] FESCo notes on OCaml guidelines change

Panu Matilainen pmatilai at laiskiainen.org
Sat Mar 15 15:46:12 UTC 2008

On Thu, 13 Mar 2008, Tom \spot\ Callaway wrote:

> On Thu, 2008-03-13 at 13:19 -0500, Jason L Tibbitts III wrote:
>> I will admit to not fully understanding
>> what's up here, but can we address this and either fix it or provide
>> some response to fesco to assuage their concerns?
> Grumble, grumble. I really hate it when dwmw2 uses mostly unrelated
> issues as a soapbox.
> The simple fact is that we cannot do arch-specific requires without file
> dependencies, and since ocaml doesn't "link" to any shared libraries,

Ooh, my favorite subject... (in general, not just ocaml)

> we'd be really fudging it here. We could solve the problem by adding a
> Requires: %{_libdir}/ocaml on arch-specific ocaml packages, but it will
> mean that every ocaml program installs slowly. Or, we could hack around
> this with %{_bitsize} macro defines and provides (believe it or not, I'd
> actually prefer this).

I think the size of a bit (bitsize) is always one, no? :)

This is precisely my hangup (as silly as it is) with adding 
"bitness-specific" requires to rpm - nobody has come up with a *good* name 
for it. Good as in "Oh yes, that's it! How come I didn't think of that!" 
We'll be stuck with the thing forever once introduced, so I'd prefer 
something I like over something I can kinda live with.

%{_bits}, %{_bitness}, %{_bitsize}, %{_wordsize} and similar have been 
suggested before. While any of them would work for this purpose, they're 
awfully limited in terms of what they express, and make noarch an odd 
special case: noarch is not really "zero bits".

Linux kernel uses the term "personality" for this purpose, and *that* is
the type of abstraction I'm after here. It covers a far broader question 
than just "how many bits":
- noarch is not a weird special case, it's simply "any personality"
- "How many bits" becomes "matching personality"
- What if next year somebody comes up with a machine that supports x86_64,
   x86 and say, ppc32 natively? With just number of bits, you'd be out of
   luck trying to express "I want the 32bit ppc package."

Taken a bit further: rpm could add system provides (similar to rpmlib 
provides) of the personalities that the hardware natively supports. 
Packages build for x86 would depend on the personality they where build 
for added automatically. Think of emulators providing the personalities 
they support, eg qemu on PPC providing personality(x86).

Or use "abi" instead of "personality", if nothing else it's shorter to 
type and covers the same idea.

What the spec etc syntax for that would be I dunno, maybe just
"Requires: foo%{_abi}" which would expand to foo(<abi name>), eg 
foo(ppc32). Or something like that.

Does that make sense to others, or am I just out to luch as usual? ;)

 	- Panu -

More information about the Fedora-packaging mailing list