From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham autolearn_force=no version=3.4.4 X-Google-Thread: 103376,39bde956b245c191 X-Google-NewGroupId: yes X-Google-Attributes: gida07f3367d7,domainid0,public,usenet X-Google-Language: ENGLISH,ASCII-7-bit Received: by 10.68.190.2 with SMTP id gm2mr297107pbc.4.1323388860189; Thu, 08 Dec 2011 16:01:00 -0800 (PST) MIME-Version: 1.0 Path: lh20ni149pbb.0!nntp.google.com!news1.google.com!goblin3!goblin1!goblin.stu.neva.ru!news.tornevall.net!news.jacob-sparre.dk!pnx.dk!jacob-sparre.dk!ada-dk.org!.POSTED!not-for-mail From: "Randy Brukardt" Newsgroups: comp.lang.ada Subject: Re: How to nicely distribute a simple Ada library? Date: Thu, 8 Dec 2011 18:00:55 -0600 Organization: Jacob Sparre Andersen Research & Innovation Message-ID: References: <361x89sndsg9$.16ruxrwxud090$.dlg@40tude.net> NNTP-Posting-Host: static-69-95-181-76.mad.choiceone.net X-Trace: munin.nbi.dk 1323388858 23533 69.95.181.76 (9 Dec 2011 00:00:58 GMT) X-Complaints-To: news@jacob-sparre.dk NNTP-Posting-Date: Fri, 9 Dec 2011 00:00:58 +0000 (UTC) X-Priority: 3 X-MSMail-Priority: Normal X-Newsreader: Microsoft Outlook Express 6.00.2900.5931 X-RFC2646: Format=Flowed; Original X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.6157 Date: 2011-12-08T18:00:55-06:00 List-Id: "Ludovic Brenta" wrote in message news:b1d86c67-0f3b-49ae-998c-2e7f904d6bfc@n10g2000vbg.googlegroups.com... > Randy Brukardt wrote on comp.lang.ada: >> And most libraries are better distributed in a plain old ZIP file >> anyway -- > > I think this is too simplistic. > Zip files cannot manage dependencies between libraries... True enough, but I already said that dependencies between libraries is bad. Most libraries shouldn't depend on anything other than what Ada gives you out of the box. (Claw, for instance, is designed to be completely self-contained.) The only exceptions that I can think of is for GUI and database interfaces, which gives you a maximum of two dependencies -- which you shouldn't need fancy tools to manage. >... and force the user to recompile everything. Any decent Ada compiler (which includes all Ada compilers I'm aware of) has a simple mechanism to compile everything needed for your application. Nothing more is needed for the vast majority of libraries. > This may be fine for a single computer, a small number > of libraries, and small libraries, but does not scale to tens of computers > that need the same development environment, or to dozens of libraries, > or to very large tools and libraries. I had prefaced my original remarks by saying that you should forget installers unless you are intended to distribute to large numbers of people. My follow-on message surely included that proviso, even if it was not explicit. Most of the readers here are not creating something like Claw or GtkAda and do not need the complexity of fancy installers. And you seem to agree in another message, where you suggest making a tarball and letting the "upstream packager" (whatever the heck that is) worry about packaging. That's precisely what I'm suggesting to the library author -- don't worry about "packaging", because it's really only useful in the context of widely-used packages. It's better to just make a source-only distribution and give some hints on compiling for you favorite compiler. (That's certainly true if you want me to be able to use your work, because my favorite compiler is nothing like yours.) >> anyone who can't figure out how to unzip that and use their compiler's >> make >> facility shouldn't be programming (in anything!!) anyway. The fancy >> installer is just a time sink. > > Sure, professional programmers should know how to unzip and compile from > sources. But you cannot become one until you've learned how to do that. > By definition, novices don't know how to unzip and compile, and they don't > know how to read a README file either :/ They need hand holding and a > "standard" (whatever that means for their platform) installer. Sure, they need that for their compiler and possibly a handful of "big" libraries (like Claw). There is a reason that I spend a lot of my Janus/Ada time working on our installer (and documentation and ease-of-use and everything but actual functionality). And it surely applies to the good work that you do, as well. (Please don't think that I am saying that you or anyone else shouldn't package GNAT or GtkAda or other things like that!) But that does not apply to the sorts of small hobbyest projects that are mostly discussed here -- including the OP of this thread. Randy.