comp.lang.ada
 help / color / mirror / Atom feed
From: Ludovic Brenta <ludovic@ludovic-brenta.org>
Subject: Re: How to nicely distribute a simple Ada library?
Date: Thu, 8 Dec 2011 03:28:15 -0800 (PST)
Date: 2011-12-08T03:28:15-08:00	[thread overview]
Message-ID: <e50f5e59-eeb3-438a-9563-8910b40273b1@l24g2000yqm.googlegroups.com> (raw)
In-Reply-To: slrnje13m8.1lme.lithiumcat@sigil.instinctive.eu

Natasha Kerensikova wrote on comp.lang.ada:
> On 2011-12-04, Georg Bauhaus wrote:
>> I'd start from guiding questions:
>
>> (0) Is this a source distribution?
>
> I have no plan of ever answering "no" to (0). And I think if I ever do,
> it will be for a company or a distribution, which will provide me with
> their "right" way of doing it anyway, so I don't need to care about it
> now.

I think the question really was: Is this a source-*only* distribution?
A source-only distribution (e.g. FreeBSD ports, Gentoo emerge)
consists of the sources and Makefiles (or other files) that build the
library automatically at installation time. In contrast, a binary
distribution (e.g. Debian, FreeBSD packages) provides precompiled
binaries and the option to get the sources separately and recompile
them if you need to.

The simplest form of source-only distribution is just a tarball with
the sources in it; it leaves installation, compilation, configuration
and dependency management to the user.  This is probably what you
should do as an upstream developer; packagers for various target
platforms will then create the packages using the best practices and
standards applicable for their target platform.

If you are also the packager (e.g. for FreeBSD as you mentioned) then
you will need to consider issues and make decisions such as:

- do you want to provide binaries (a "package" as opposed to a
  "port")?  In which case you must provide .ali files and care
  about their compatibility; you must also consider package
  dependencies, in particular what happens in the presence of
  multiple versions of GNAT, as this has an impact on the .ali
  files.
- do you want to support multiple version of GNAT?
- do you want to support Ada compilers other than GNAT?
- do you want to provide a shared library?

Note that these decisions are the responsibility of the packager, not
the upstream author.  One packager might decide to provide only the
sources and require users to recompile the library statically into
their executables; another might decide to provide a precompiled
static library along with the source and .ali files; another (e.g. on
Debian) might decide to provide the full shebang: .ali files, .gpr
file, shared library, static library and detached debugging symbols.

--
Ludovic Brenta.



  reply	other threads:[~2011-12-08 11:53 UTC|newest]

Thread overview: 31+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-12-04 11:19 How to nicely distribute a simple Ada library? Natasha Kerensikova
2011-12-04 12:06 ` Dmitry A. Kazakov
2011-12-05 11:55   ` Yannick Duchêne (Hibou57)
2011-12-05 11:58   ` Yannick Duchêne (Hibou57)
2011-12-05 13:31     ` Dmitry A. Kazakov
2011-12-05 14:11       ` Yannick Duchêne (Hibou57)
2011-12-05 15:22         ` Georg Bauhaus
2011-12-05 15:51           ` Yannick Duchêne (Hibou57)
2011-12-05 17:50             ` Dmitry A. Kazakov
2011-12-05 15:24         ` Dmitry A. Kazakov
2011-12-06  0:22   ` Randy Brukardt
2011-12-06  6:27     ` J-P. Rosen
2011-12-08  7:47       ` Randy Brukardt
2011-12-08 10:17         ` Ludovic Brenta
2011-12-09  0:00           ` Randy Brukardt
2011-12-09  8:42             ` Ludovic Brenta
2011-12-06  8:57   ` Ludovic Brenta
2011-12-06  9:47     ` Dmitry A. Kazakov
2011-12-06 10:13       ` Ludovic Brenta
2011-12-08 15:53   ` Yannick Duchêne (Hibou57)
2011-12-08 18:34     ` Dmitry A. Kazakov
2011-12-04 12:28 ` Ludovic Brenta
2011-12-04 14:39 ` Georg Bauhaus
2011-12-08 10:18   ` Natasha Kerensikova
2011-12-08 11:28     ` Ludovic Brenta [this message]
2011-12-08 14:00     ` Robert A Duff
2011-12-08 15:37       ` Georg Bauhaus
2011-12-04 17:42 ` Jeffrey Carter
2011-12-04 20:25 ` Tero Koskinen
2011-12-04 22:04 ` Simon Wright
2011-12-05 11:53 ` Yannick Duchêne (Hibou57)
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox