-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
Hi everyone,
While putting in a couple of packages for Extras Review I've stumbled into a couple of issues regarding how Ocaml links libraries and how the Fedora Packaging Guidelines are set.
My packages in question are: ocamlSDL (https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=235804) camlimages (https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=235805) freetennis (https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=235815)
Basically, ocamlSDL and camlimages produce two sets of libraries (a set of dynamic libraries, and another set for development etc), sadly when other packages like freetennis build, they staticly link to libraries such as camlimages/ocamlSDL.
I found it semi-suspect when I built freetennis, and hence why I asked on bugzilla when I posted the three packages for review, however I did some more questioning today and after a quick IRC discussion in #ocaml was told:
12/04 13:39 < G> hmmm, .a .cma and .cmxa are all static ocaml libraries right? 12/04 13:44 < Smerdyakov> Those are the two library extensions, yes. 12/04 13:44 < Smerdyakov> Native code OCaml doesn't support dynamic loading. 12/04 13:44 < Smerdyakov> I expect that bytecode uses the same files for dynamic loading as static loading.
Looking at my installed files on my laptop, lablgl, lablgtk and labltk (as well as the main ocaml package) store .a, .cma and .cmxa files in /usr/lib/ocaml (and subfolders).
As I'm only new to Fedora packaging, could someone please advise on where I should from here on the matter and what the position of FESCO is on Ocaml static libraries, and where I should go from here.
Thanks,
Nigel Jones
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
Nigel Jones wrote:
Hi everyone,
While putting in a couple of packages for Extras Review I've stumbled into a couple of issues regarding how Ocaml links libraries and how the Fedora Packaging Guidelines are set.
My packages in question are: ocamlSDL (https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=235804) camlimages (https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=235805) freetennis (https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=235815)
Basically, ocamlSDL and camlimages produce two sets of libraries (a set of dynamic libraries, and another set for development etc), sadly when other packages like freetennis build, they staticly link to libraries such as camlimages/ocamlSDL.
I found it semi-suspect when I built freetennis, and hence why I asked on bugzilla when I posted the three packages for review, however I did some more questioning today and after a quick IRC discussion in #ocaml was told:
12/04 13:39 < G> hmmm, .a .cma and .cmxa are all static ocaml libraries right? 12/04 13:44 < Smerdyakov> Those are the two library extensions, yes. 12/04 13:44 < Smerdyakov> Native code OCaml doesn't support dynamic loading. 12/04 13:44 < Smerdyakov> I expect that bytecode uses the same files for dynamic loading as static loading.
Looking at my installed files on my laptop, lablgl, lablgtk and labltk (as well as the main ocaml package) store .a, .cma and .cmxa files in /usr/lib/ocaml (and subfolders).
As I'm only new to Fedora packaging, could someone please advise on where I should from here on the matter and what the position of FESCO is on Ocaml static libraries, and where I should go from here.
Thanks,
Nigel Jones
I'm just wondering if anyone has any thoughts on this issue.
I've talked to some more people in #ocaml (Freenode), who suggested that I try a patch by the name of 'scaml' which is a year or two old (and although can be manually applied to the ocaml source, it does not work (problems with assembly which I've not comfortable meddling with).
We'd actually need to downgrade to 3.07 which was removed from Fedora in Feb 05 to get the patch working to satisfy the need for dynamic loading which I'm sure would upset a few people.
Upstream already have a bug opened stating that they need to fix the issue but they have never updated it, or assigned it to anyone.
So my main question is "where to from here?"
Thanks,
Nigel Jones
- -- Fedora-packaging mailing list Fedora-packaging@redhat.com https://www.redhat.com/mailman/listinfo/fedora-packaging
On Sun, 2007-04-15 at 23:53 +1200, Nigel Jones wrote:
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
Nigel Jones wrote:
Hi everyone,
While putting in a couple of packages for Extras Review I've stumbled into a couple of issues regarding how Ocaml links libraries and how the Fedora Packaging Guidelines are set.
My packages in question are: ocamlSDL (https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=235804) camlimages (https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=235805) freetennis (https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=235815)
Basically, ocamlSDL and camlimages produce two sets of libraries (a set of dynamic libraries, and another set for development etc), sadly when other packages like freetennis build, they staticly link to libraries such as camlimages/ocamlSDL.
I found it semi-suspect when I built freetennis, and hence why I asked on bugzilla when I posted the three packages for review, however I did some more questioning today and after a quick IRC discussion in #ocaml was told:
12/04 13:39 < G> hmmm, .a .cma and .cmxa are all static ocaml libraries right? 12/04 13:44 < Smerdyakov> Those are the two library extensions, yes. 12/04 13:44 < Smerdyakov> Native code OCaml doesn't support dynamic loading. 12/04 13:44 < Smerdyakov> I expect that bytecode uses the same files for dynamic loading as static loading.
Looking at my installed files on my laptop, lablgl, lablgtk and labltk (as well as the main ocaml package) store .a, .cma and .cmxa files in /usr/lib/ocaml (and subfolders).
As I'm only new to Fedora packaging, could someone please advise on where I should from here on the matter and what the position of FESCO is on Ocaml static libraries, and where I should go from here.
Thanks,
Nigel Jones
I'm just wondering if anyone has any thoughts on this issue.
I've talked to some more people in #ocaml (Freenode), who suggested that I try a patch by the name of 'scaml' which is a year or two old (and although can be manually applied to the ocaml source, it does not work (problems with assembly which I've not comfortable meddling with).
We'd actually need to downgrade to 3.07 which was removed from Fedora in Feb 05 to get the patch working to satisfy the need for dynamic loading which I'm sure would upset a few people.
Upstream already have a bug opened stating that they need to fix the issue but they have never updated it, or assigned it to anyone.
So my main question is "where to from here?"
I think, if the ocaml compiler doesn't support dynamic libraries, static linking would be acceptable. This doesn't mean that we shouldn't press upstream to add dynamic linking (and convert all our packages when that becomes available) just an acknowledgment that fixing the limitation has to be done upstream (it could be done by someone within Fedora but the fix needs to go upstream).
This is similar to allowing C libraries in even if they only build statically.
If I'm not understanding precisely what the limitation is, feel free to clarify.
-Toshio
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
Toshio Kuratomi wrote:
On Sun, 2007-04-15 at 23:53 +1200, Nigel Jones wrote:
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
Nigel Jones wrote:
Hi everyone,
While putting in a couple of packages for Extras Review I've stumbled into a couple of issues regarding how Ocaml links libraries and how the Fedora Packaging Guidelines are set.
My packages in question are: ocamlSDL (https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=235804) camlimages (https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=235805) freetennis (https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=235815)
Basically, ocamlSDL and camlimages produce two sets of libraries (a set of dynamic libraries, and another set for development etc), sadly when other packages like freetennis build, they staticly link to libraries such as camlimages/ocamlSDL.
I found it semi-suspect when I built freetennis, and hence why I asked on bugzilla when I posted the three packages for review, however I did some more questioning today and after a quick IRC discussion in #ocaml was told:
12/04 13:39 < G> hmmm, .a .cma and .cmxa are all static ocaml libraries right? 12/04 13:44 < Smerdyakov> Those are the two library extensions, yes. 12/04 13:44 < Smerdyakov> Native code OCaml doesn't support dynamic loading. 12/04 13:44 < Smerdyakov> I expect that bytecode uses the same files for dynamic loading as static loading.
Looking at my installed files on my laptop, lablgl, lablgtk and labltk (as well as the main ocaml package) store .a, .cma and .cmxa files in /usr/lib/ocaml (and subfolders).
As I'm only new to Fedora packaging, could someone please advise on where I should from here on the matter and what the position of FESCO is on Ocaml static libraries, and where I should go from here.
Thanks,
Nigel Jones
I'm just wondering if anyone has any thoughts on this issue.
I've talked to some more people in #ocaml (Freenode), who suggested that I try a patch by the name of 'scaml' which is a year or two old (and although can be manually applied to the ocaml source, it does not work (problems with assembly which I've not comfortable meddling with).
We'd actually need to downgrade to 3.07 which was removed from Fedora in Feb 05 to get the patch working to satisfy the need for dynamic loading which I'm sure would upset a few people.
Upstream already have a bug opened stating that they need to fix the issue but they have never updated it, or assigned it to anyone.
So my main question is "where to from here?"
I think, if the ocaml compiler doesn't support dynamic libraries, static linking would be acceptable. This doesn't mean that we shouldn't press
Okay, so my packages which sadly use static linking (because of the design problem in ocaml) should be okay for now, and I can resume trying to find sponsorship so I can include them?
upstream to add dynamic linking (and convert all our packages when that becomes available) just an acknowledgment that fixing the limitation has to be done upstream (it could be done by someone within Fedora but the fix needs to go upstream).
I totally agree, I added a bug to Ocaml (https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=236497) about the problem, but my impression so far from the maintainer is "it's their problem not ours".
This is similar to allowing C libraries in even if they only build statically.
I've never known this to be the case, but I'll take your word on it ;)
If I'm not understanding precisely what the limitation is, feel free to clarify.
It seems that in some 'special' cases dynamic linking is possible, but it generally isn't, instead during build, it will staticly link cmxa files into the output.
I'm still not 100% certain myself to be honest, but I've been told, it's a LOT of legwork (and pain) to dynamically include libraries.
-Toshio
-- Fedora-packaging mailing list Fedora-packaging@redhat.com https://www.redhat.com/mailman/listinfo/fedora-packaging
Thanks,
Nigel
packaging@lists.fedoraproject.org