[Fedora-packaging] FESCo notes on OCaml guidelines change

Hans de Goede j.w.r.degoede at hhs.nl
Fri Mar 14 07:50:48 UTC 2008


Tom "spot" Callaway wrote:
> On Thu, 2008-03-13 at 19:34 -0500, Jason L Tibbitts III wrote:
> 
>> Of course, we should still try to address the issue.  Is there
>> actually a demonstrable problem here?  What can go wrong without some
>> arch-specific dependencies on the main ocaml package?  Can you have
>> just the 32-bit ocaml installed on a 64-bit machine and install a
>> 64-bit module without rpm/yum complaining about dependency problems or
>> pulling in the 64-bit ocaml package?  (No 64-bit machine I can afford
>> to screw with at the moment.)
> 
> Yes, this is hypothetically possible, see:
> 
> [spot at localhost ~]$ rpm -q ocaml-findlib-1.2.1-2.fc9.x86_64 --requires
> rpmlib(PayloadFilesHavePrefix) <= 4.0-1
> rpmlib(CompressedFileNames) <= 3.0.4-1
> rpmlib(VersionedDependencies) <= 3.0.3-1
> /bin/sh  
> libc.so.6()(64bit)  
> libc.so.6(GLIBC_2.2.5)(64bit)  
> libc.so.6(GLIBC_2.3)(64bit)  
> libc.so.6(GLIBC_2.3.4)(64bit)  
> libc.so.6(GLIBC_2.4)(64bit)  
> libdl.so.2()(64bit)  
> libdl.so.2(GLIBC_2.2.5)(64bit)  
> libm.so.6()(64bit)  
> libm.so.6(GLIBC_2.2.5)(64bit)  
> ocaml(Array) = aa8e3cd5824f9bb40b93fcd38d0c95b5
> ocaml(Big_int) = 992d682669507b99e689b5a2188c0b9a
> ocaml(Buffer) = f6cef633ea14963b84b79c4095c63dc3
> ocaml(Char) = e98bc9c9e918a84b3c1a5a122d42fac1
> ocaml(Consistbl) = 47f9cdffda6ba2de99c8e9f0c0c1b34d
> ocaml(Digest) = a5dd2d89492338578de12105e88c803f
> ocaml(Env) = 6d0215253b3fde95601c34944cacb607
> ocaml(Filename) = 633a1e7f590ff5e95124293dbef3b476
> ocaml(Format) = 35fe566f7a37d8991a5c822bd1463949
> ocaml(Hashtbl) = 083f2c94b44ff4e0b3220aaea6a783b4
> ocaml(Ident) = ba1acc56fc179d27bd55278cbc2abf40
> ocaml(Lexing) = b1793496643444d3762dd42bebe2cfe3
> ocaml(List) = da1ce9168f0408ff26158af757456948
> ocaml(Location) = eed044ad1204a633caad97bdd9048f8c
> ocaml(Longident) = 46fb8aad4fb2c12a0f301b02d8139f07
> ocaml(Map) = dedde7683d54ae7db1eb97cc868dd047
> ocaml(Nat) = 0ea20dd1cc4533fd519b5542a89feb87
> ocaml(Num) = cfa2705c9c6d6f5a56b83f91fc630d2a
> ocaml(Obj) = 5cfae708052c692ea39d23ed930fd64d
> ocaml(Outcometree) = 6674fbd870cb2522aca4d851f3559202
> ocaml(Path) = d8bc8e7163bac3a9a0a93f1cb07092d1
> ocaml(Pervasives) = 8ba3d1faa24d659525c9025f41fd0c57
> ocaml(Primitive) = 43a2770aed8fbcc536ab39d717fe9a7b
> ocaml(Printf) = 5dbbf45a03b54e6dbfcf39178d0d6341
> ocaml(Ratio) = 7067125cce206dd2bbe93918ba7bdfe9
> ocaml(Set) = 7da14e671a035f12386ace3890018ef3
> ocaml(Sort) = 089a51dd8ddc078e57acf2f80b7c06f6
> ocaml(Stream) = 21a833e12efd34ea0c87d8d9da959809
> ocaml(String) = 2c162ab314b2f0a2cfd22d471b2e21ab
> ocaml(Sys) = 0da495f5a80f31899139359805318f28
> ocaml(Topdirs) = 2d07b01227af22b60aee18498198c35e
> ocaml(Toploop) = ead8879d71c4d5137fe5100fdd682a0b
> ocaml(Types) = df897aed3fc89c2129322c17067857b8
> ocaml(Warnings) = abcb1589615da86f20f475b0ed3bbabc
> ocaml(runtime) = 3.10.1
> 
> [spot at localhost ~]$ rpm -q ocaml.x86_64 --provides
> ocaml(compiler) = 3.10.1
> ocaml(Ocamlbuild) = df8d0c74d80342ca6057bad41bde8971
> ocaml(Ocamlbuild_executor) = 846552307267a7beccbeafa1f378a030
> ocaml(Ocamlbuild_pack) = 70dd242c6e6bb93e89d226308888f9ba
> ocaml(Ocamlbuild_plugin) = 14eaca3963ed1f73c1da0680370a802c
> ocaml(Ocamlbuild_unix_plugin) = 91f524a8cc2f4e0cd69f3ef83c774116
> ocaml = 3.10.1-2.fc9
> 
> So, ocaml.i386 would resolve this dependency just as well as
> ocaml.x86_64, but I doubt it would work. yum is going to try to resolve
> this dependency with the ocaml.x86_64 by default, but if you had somehow
> manually installed ocaml.i386 only, it would then install ocaml addons
> as x86_64 packages.
> 

Proposal for a simple fix: don't make ocaml multilib, so the x86_64 repo should 
only contsain x86_64 ocaml packages.

This can simply be fixed by blacklisting all ocaml-*-devel packages from having 
their i386 version dragged in in a multilib repo composition, AFAIK just 
blacklisting the ocaml-*-devel packages should be enough to get an x86_64 repo 
with only 64 bits ocamls stuff.

Regards,

Hans





More information about the Fedora-packaging mailing list