[Caml-list] macosx, ocaml, findlib and extlib

37 views
Skip to first unread message

Pietro Abate

unread,
Oct 18, 2006, 9:10:43 PM10/18/06
to ocaml ml
Hi all,
I'm trying to package my project and I've this small problem on
macosx. As far as know there are 3 ways of deploying ocaml
on mac, namely, via inria, fink, or godi.

My goal is to give a very straightforward way of installing the
compiler, findlib and extlib. My first attempt was via the fink
packages. The problem is that findlib is not available via fink and the
packages in fink/unstable do not provide meta files. In particular
extlib (ocaml-lib package) is installed in `ocamlc -where` instead of
the `ocamlc -where`\extlib directory messing things up.

Then I tried via godi, but as far as I understand, you need to download,
compile everything via godi, and there is no clear way (that I can see,
but I can be wrong) to have a system wide installation. Moreover I see
godi as too 'difficult' to use for my users.

As last attempt, I've installed the ocaml img from the inria website.
It's all nice and good, but this also mean that I've to manually install
both extlib and findlib. Moreover, the mac package from inria does not
install in /sw and therefore isn't easy to mix with fink packages.

Did I miss something ? My ideal solution would be to have fink packages
with meta files for everything ... Did anybody has already done
something similar ? How do people release software with multiple
dependencies on mac ?

How easy/difficult is to port debian packages to fink ?

thanks :)
p

--
++ Blog: http://blog.rsise.anu.edu.au/?q=pietro
++
++ "All great truths begin as blasphemies." -George Bernard Shaw
++ Please avoid sending me Word or PowerPoint attachments.
See http://www.fsf.org/philosophy/no-word-attachments.html

_______________________________________________
Caml-list mailing list. Subscription management:
http://yquem.inria.fr/cgi-bin/mailman/listinfo/caml-list
Archives: http://caml.inria.fr
Beginner's list: http://groups.yahoo.com/group/ocaml_beginners
Bug reports: http://caml.inria.fr/bin/caml-bugs

Bruno De Fraine

unread,
Oct 19, 2006, 4:00:03 AM10/19/06
to Pietro Abate
Hello,

On 19 Oct 2006, at 03:03, Pietro Abate wrote:
> Did I miss something ? My ideal solution would be to have fink
> packages
> with meta files for everything ... Did anybody has already done
> something similar ?

It is not difficult to create or modify fink packages. In fact, I
think it is easier than creating Debian packages. It involves writing
an .info file that describes where the source is available, how it
should be compiled, how the installation tree is constructed, etc. See:
http://fink.sourceforge.net/doc/quick-start-pkg/index.php?phpLang=en
http://fink.sourceforge.net/doc/packaging/index.php?phpLang=en
And:
find /sw/fink -name "*.info"

You could develop new/alternative packages and offer them through a
local web server for apt-get. Alternatively, you could consider
submitting your .info-files to fink. As you say, someone needs to
package findlib.

> How do people release software with multiple
> dependencies on mac ?

Have you considered static linking?

Best,
Bruno

--
Bruno De Fraine
Vrije Universiteit Brussel
Faculty of Applied Sciences, INFO - SSEL
Room 4K208, Pleinlaan 2, B-1050 Brussels
tel: +32 (0)2 629 29 75
fax: +32 (0)2 629 28 70
e-mail: Bruno.D...@vub.ac.be

Stefano Zacchiroli

unread,
Oct 19, 2006, 5:27:12 AM10/19/06
to ocaml ml
On Thu, Oct 19, 2006 at 09:56:51AM +0200, Bruno De Fraine wrote:
> >How do people release software with multiple
> >dependencies on mac ?
>
> Have you considered static linking?

Isn't it strongly recommended to *avoid* static linking for the
deployment of mac apps, by the mac guys?

Cheers.

--
Stefano Zacchiroli -*- Computer Science PhD student @ Uny Bologna, Italy
zack@{cs.unibo.it,debian.org,bononia.it} -%- http://www.bononia.it/zack/
If there's any real truth it's that the entire multidimensional infinity
of the Universe is almost certainly being run by a bunch of maniacs. -!-

Till Varoquaux

unread,
Oct 19, 2006, 5:43:21 AM10/19/06
to ocaml ml
On 10/19/06, Stefano Zacchiroli <za...@bononia.it> wrote:
> On Thu, Oct 19, 2006 at 09:56:51AM +0200, Bruno De Fraine wrote:
> > >How do people release software with multiple
> > >dependencies on mac ?
> >
> > Have you considered static linking?
>
> Isn't it strongly recommended to *avoid* static linking for the
> deployment of mac apps, by the mac guys?
>
Well macs are a little weird on this point:
The philosophy is to simplify everything, therefore dependencies are
bundled within the app directly (not static linking). For instance
AMSN comes with its own tcl/tk interpretor...
If you use a package manager (fink portage port etc..) they will
handle dependencies. And some of apple's applications come with an
installer handling some dependencies...

Regards,
Till

Gerd Stolpmann

unread,
Oct 19, 2006, 7:50:33 AM10/19/06
to Pietro Abate
Am Donnerstag, den 19.10.2006, 11:03 +1000 schrieb Pietro Abate:
> Then I tried via godi, but as far as I understand, you need to download,
> compile everything via godi,

This is only partly correct. It is absolutely no problem to install
additional libraries. Just do it, these are of course not managed by
godi, and you are on your own in questions of upgrades etc.

What is kind of problematic is to replace godi versions of packages by
your own ones (imagine you want to upgrade or patch a library that is
needed by other libraries). This is possible, though, but requires some
understanding of godi concepts. In particular, you can have local
sources for godi packages that replace or override the official ones.

It is even possible to provide an adapted version of godi to your users.

> and there is no clear way (that I can see,
> but I can be wrong) to have a system wide installation.

It is unclear what you want here. The recommended way for a system wide
installation is to have a special "godi" user as owner of the files. You
must see that godi is a management system that does not need superuser
privileges. Although you can install godi as superuser, this is not
recommended because you execute third-party programs even if you only
install packages, i.e. this is a security risk.

This is different from other package managers that depend on superuser
privileges, and maybe announce that as ability for system wide
installations.

> Moreover I see
> godi as too 'difficult' to use for my users.

Can you please elaborate on that? It is clear that godi isn't made for a
pure consumer of software, but aims at developers who usually also have
basic administration skills.

Gerd
--
------------------------------------------------------------
Gerd Stolpmann * Viktoriastr. 45 * 64293 Darmstadt * Germany
ge...@gerd-stolpmann.de http://www.gerd-stolpmann.de
Phone: +49-6151-153855 Fax: +49-6151-997714
------------------------------------------------------------

Pietro Abate

unread,
Oct 19, 2006, 10:05:19 PM10/19/06
to ocaml ml
On Thu, Oct 19, 2006 at 01:46:45PM +0200, Gerd Stolpmann wrote:
> > Moreover I see godi as too 'difficult' to use for my users.
> Can you please elaborate on that? It is clear that godi isn't made for
> a pure consumer of software, but aims at developers who usually also
> have basic administration skills.

Yes, this is the point. My users don't have big technical skills and
godi can be a bit too much for them. I'm looking at all in one solution
to install my software that targets non technical users.
Asking people to learn how to use godi in order to install my package
defeats my purpose... Nothing wrong with godi. It's a well engineered
system, but it just not the right tool my for goals :)

Reg the system wide installation: MacOsX users are locked in the file
system structure given by their vendor. Fink solution, it to use a
completely different name-space. Having an other user to handle ocaml
related software via godi, effectively means to use a third name-space.
This can be a bit annoying as it requests non-standard path settings
(that can be set system wide, but still... most mac users don't have a
sys admin to take care of their desktop computer). I totally understand
and subscribe to your security consideration. But while having two or
more name-spaces can be seen as acceptable for some users, it can be too
difficult to deal with for others.

I think, in the end, I'm going to integrate the findlib libraries in my
project and cook it up in a way to avoid any dependencies except for the
ocaml toolchain.

thanks :)
p

--
++ Blog: http://blog.rsise.anu.edu.au/?q=pietro
++
++ "All great truths begin as blasphemies." -George Bernard Shaw
++ Please avoid sending me Word or PowerPoint attachments.
See http://www.fsf.org/philosophy/no-word-attachments.html

_______________________________________________

Daniel Bünzli

unread,
Oct 20, 2006, 6:19:36 AM10/20/06
to Pietro Abate

Le 20 oct. 06 ą 04:02, Pietro Abate a écrit :

> Yes, this is the point. My users don't have big technical skills and
> godi can be a bit too much for them. I'm looking at all in one
> solution
> to install my software that targets non technical users.

Why don't you distribute a binary then ?

If I'm a user I don't want to install ocaml on my system just to
compile your project. Also, non technical users don't use the command
line.

If it is an application the best thing to do is to distribute it in
a .app bundle (in which you can include dynamic libraries, altough in
that case, given the dependencies I'd simply statically link against
extlib)

Best,

Daniel

Pietro Abate

unread,
Oct 20, 2006, 6:32:47 AM10/20/06
to ocaml ml
On Fri, Oct 20, 2006 at 12:14:54PM +0200, Daniel B?nzli wrote:
> Le 20 oct. 06 ? 04:02, Pietro Abate a ?crit :

> >Yes, this is the point. My users don't have big technical skills and
> >godi can be a bit too much for them. I'm looking at all in one
> >solution to install my software that targets non technical users.
> Why don't you distribute a binary then ?

My application is basically a front-end (written in camlp4) plus
libraries, to generate ocaml code that then is compiled to generate an
application... The compilation process is all well hidden from the user,
but I still need the ocaml tool-chain to do the job. So yes, I'm going
to distribute the compiled version of my library, but this also needs
ocamlfind and ocamlc to be of any use.

Something that I could do it to create a bundle with the ocaml
tool-chain, findlib and my application all together. Is that I've never
created .app on Mac and I still have to decide if this is the best way.
I've also to say that I don't particularly like to develop for Mac.

Is the xml file (or scripts) that generates the ocaml toolchain binary
(.app) from inria available somewhere ? It can be a good starting point
to learn... is it in the ocaml source tree ?

pietro

--
++ Blog: http://blog.rsise.anu.edu.au/?q=pietro
++
++ "All great truths begin as blasphemies." -George Bernard Shaw
++ Please avoid sending me Word or PowerPoint attachments.
See http://www.fsf.org/philosophy/no-word-attachments.html

_______________________________________________

Doug Kirk

unread,
Oct 23, 2006, 10:17:49 AM10/23/06
to Pietro Abate, ocaml ml
Install the files on your Mac. Then use
/Developer/Applications/Utilities/Package Maker (comes with Apple's
developer tools bundled with OS X) to make a "Single Package Project",
then click "Assist Me...". It'll prompt you for all of the files you
want to include in your package (you can drag&drop from Finder), and
allow you to specify target paths for each. Finally, it'll create a
Mac OS X GUI installer for you to distribute to your users.

You can also make packages for each component and bundle them in a
"Metapackage Project", which bundles several packages into a single
installer.

Pietro Abate

unread,
Oct 24, 2006, 10:20:18 PM10/24/06
to ocaml ml
Hi all,

I've created two Mac packages for extlib and findlib and I've submitted
patches respectively against extlib-1.5 and findlib-1.1.2pl1. As far as
I can see, these packages play well with the mac package of the ocaml
toolchain from inria.

For those who are interested, you can get patches and packages here.
http://users.rsise.anu.edu.au/~abate/macosx/

It would be great if these packages could be hosted somewhere more
official (hint hint :))

I haven't tested them very carefully ... so please let me know if I've
done something silly...

:)
p

Reply all
Reply to author
Forward
0 new messages