Paul Johnson wrote:
First, the (now open) code for OpenBugs is written in Object Pascal
and it requires a compiler framework called "Black Box" which is, as
far as I can understand, available only for MS Windows. The OpenBUGS
team compiles that library, and then for linux we use some accessor
scripts to send jobs to it.
This, of course, goes against the packaging policy that pre-compiled
libraries are prohibited.
I was wondering if there could be an exception here, since the code is
actually available and open. This is more reasonable than
re-packaging the closed Nvidia drivers, for example.
The code must be compilable with a Free compiler. If it is not (which seems
to be the case here, unfortunately), it must be fixed (ported) to be.
In this case, the most obvious candidates would probably be
FreePascal/Lazarus and GPC, but porting to a completely different, more
commonly used language (I'd suggest C++) might also be worth considering for
upstream (depending on how hard it is to port to a Free Pascal compiler).
Second, there is a little packaging problem for 64 bit systems. The
library that is provided is only 32 bit, and to build it for a 64 bit
system, there is a somewhat confusing situation. The library itself
gets put into /usr/lib, which is supposed to be for 64 bit libraries.
And to make the whole thing package up in a workable way, the arch
ends up saying the packge is x86_64, even though it is only 32 bit.
This is entirely unacceptable (and yet another reason why prebuilt binaries
If a package cannot be built as 64-bit, it must be ExcludeArch: x86_64 and
then it can be put on the multilib whitelist. But really, it needs to be
fixed to be buildable natively instead! That mostly means getting it to
compile with a Free compiler, then fixing 64-bit issues, if any, becomes
rather easy in my experience.
To run OpenBUGS on a 64 bit system, one h as to install the 32bit
That's exactly why such 32-bit stuff doesn't belong into an x86_64 package.
In fact, Koji will not let you build 32-bit binaries in an x86_64 package,
almost all 32-bit multilibs are explicitly blacklisted in the x86_64
repository configuration to prevent you from doing exactly that.
In the current Fedora framework, I can't understand if that is
supposed to happen.
No. 32-bit binaries are not allowed in x86_64 packages.