From: Malcolm Matalka <mmatalka@gmail.com>
To: Chet Murthy <murthy.chet@gmail.com>
Cc: Francois Berenger <berenger@riken.jp>, caml-list <caml-list@inria.fr>
Subject: Re: Problems to get larger user base ... (Re: [Caml-list] OCaml's variables)
Date: Fri, 31 May 2013 05:27:29 +0000 [thread overview]
Message-ID: <87fvx3oh1a.fsf@gmail.com> (raw)
In-Reply-To: <1552892.QG2BAhEYXC@groupon> (Chet Murthy's message of "Thu, 30 May 2013 15:41:54 -0700")
I think you're missing the point I'm trying to make, or I'm failing to
make it:
I see no reason why RPM and deb support should be part of Opam.
Politically, it makes Opam opinionated about which package systems it
prefers, which will mean you can look forward to lots of discussions
about why it doesn't support X. The lifecycle arguments you stated are
what you find important, but there is no reason to think everyone will
find them to be a reasonable argument when all they want is a package
for their favorite system.
And on a technical level, it's more code to maintain. You say init
scripts and configs are not needed by you, but I need them for almost
everything I deploy, and that means other people will want support for
that as well. It gets complicated.
Ideally, when somebody says "Why can't Opam do X" you want to be able to
answer "finite amount of time, feel free to add the functionality
yourself". But who wants to maintain support in Opam for a bunch of
package formats? Removing functionality is hard once it's in there and
just because someone contributes code to Opam doesn't mean they will
maintain it in the future.
Instead, if you allow Opam to export the closure of a package to an
external directory structure + some metadata, you can build tools for
package the results of Opam builds by a completely orthogonal set of
tools. This is effectively what Opam would have to do anyways, so
exposing it at this layer makes it easy for me to add my Nix support,
you to add your RPM support, and Joe Ubuntu to get his deb support with
only one feature addition to Opam which would likely be fairly small and
static.
/M
Chet Murthy <murthy.chet@gmail.com> writes:
> I'll answer in-line.
>
> (1) why not Nix? easy. take a look at the Debian Packaging Manual.
> It describes a -detailed- set of requirements for Debian packages'
> pre/post scripts. There's a -lifecycle- there that is a big part of
> why you can run a Debian machine for 12 years across 3-4 releases, and
> never reinstall. That doesn't happen on RPM-based systems, because
> there's no such lifecycle.
>
> [It's similar to why Macs, even before OSX, were so much more reliable
> than Win32. Even though -Windows- had a primitive (and weak) sort of
> virtual memory and the Mac didn't even use the MMU. Software
> discipline was what made it better. And the same is true of Debian
> packages. There's no equivalent of "puiparts" in the RPM world. You
> should look at piuparts.]
>
> (2) [what about all the other stuff? init scripts, configs?
> dependencies?]
>
> Why, -precisely-. In most cases, there's no need to init/config. But
> dependencies are critical. Opam knows some of them already. Since
> opam does the build, it could discover a lot more, cheaply. The
> alternative is to make the programmer write it all up, and get it
> wrong.
>
> (3) [just export the files and let the user package it up]
>
> You mentioned "fpm". I use "checkinstall" in a similar way. Neither
> has any idea what the dependencies are, and no way of figuring it out.
> And yet, dependency-management is -why- you want a package-manager.
> So you don't get half-installed packages with missing prereqs.
>
> (4) [on a production machine, you'd never have libraries -- just
> executables, right?] Unless that production machine is used to build
> ocaml programs? Or run (say) hadoop-like jobs that need to compile
> (SQL-like) queries into binary code? Besides, even if you have only a
> few machines, it's still wiser to generate a binary package and then
> install that -- because then you can -reproduce- that configuration on
> another machine.
>
> I work with a (C++) product that has a pile of 20+ prereqs. Each is
> basically built and installed into a directory on NFS, and all the
> devs mount that NFS server. When a fix needs to be applied, it gets
> applied to that shared NFS. Heaven protect us against somebody making
> an error in applying a fix to a prereq. If this were done using
> binary packages, every dev would locally install the various prereqs
> as DEBs or RPMs. Fixes would be updates to those RPMs. It would be
> possible to update, rollback, to find out what exact versions of the
> prereqs were used in building some snapshot of the product, etc.
>
> In short, commercial software development is -also- a production
> environment.
>
> (5) [Am I asking for OPAM to know how to "deploy" to farms of servers?]
>
> Most assuredly not. I'm just asking for OPAM to know how to build
> DEBs and RPMs that can be installed to a later (suitably
> similar/identical) OPAM instance to reproduce the configuration of the
> instance where the packages were built. The transport and application
> of the packages MUST be someone else's responsibility.
>
> --chet--
next prev parent reply other threads:[~2013-05-31 5:27 UTC|newest]
Thread overview: 79+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-05-23 23:53 [Caml-list] OCaml's variables oliver
2013-05-24 9:01 ` Arnaud Spiwack
2013-05-24 23:30 ` oliver
2013-05-24 23:53 ` Siraaj Khandkar
2013-05-25 0:40 ` oliver
2013-05-25 5:14 ` Wojciech Meyer
2013-05-25 11:04 ` oliver
2013-05-25 11:49 ` Gabriel Scherer
2013-05-25 12:04 ` oliver
2013-05-25 12:30 ` David Allsopp
2013-05-25 22:42 ` oliver
2013-05-25 23:24 ` Lukasz Stafiniak
2013-05-25 22:57 ` oliver
2013-05-25 16:53 ` Kristopher Micinski
2013-05-25 22:44 ` oliver
2013-05-26 15:00 ` oliver
2013-05-26 18:38 ` Malcolm Matalka
2013-05-26 21:49 ` Problems to get larger user base ... (Re: [Caml-list] OCaml's variables) Oliver Bandel
2013-05-27 7:40 ` Mr. Herr
2013-05-27 8:37 ` Fabrice Le Fessant
2013-05-27 20:21 ` Mr. Herr
2013-05-27 20:36 ` Török Edwin
2013-05-27 21:10 ` Mr. Herr
2013-05-28 1:15 ` Francois Berenger
2013-05-28 18:32 ` Mr. Herr
2013-05-28 18:39 ` Malcolm Matalka
2013-05-28 18:50 ` Anil Madhavapeddy
2013-05-28 19:24 ` Mr. Herr
2013-05-28 22:00 ` Paolo Donadeo
2013-05-28 22:17 ` Mr. Herr
2013-05-28 22:43 ` Paolo Donadeo
2013-05-29 20:48 ` Mr. Herr
2013-05-29 21:11 ` Malcolm Matalka
2013-05-29 22:02 ` Mr. Herr
2013-05-29 22:10 ` Malcolm Matalka
2013-05-30 0:51 ` Francois Berenger
2013-05-30 0:45 ` Francois Berenger
2013-05-30 0:57 ` Chet Murthy
2013-05-30 1:09 ` Francois Berenger
2013-05-30 4:52 ` Malcolm Matalka
2013-05-30 5:04 ` Francois Berenger
2013-05-30 5:05 ` Chet Murthy
2013-05-30 5:11 ` Francois Berenger
2013-05-30 6:02 ` Malcolm Matalka
2013-05-30 6:36 ` Francois Berenger
2013-05-30 6:47 ` Malcolm Matalka
2013-05-30 22:41 ` Chet Murthy
2013-05-31 5:27 ` Malcolm Matalka [this message]
2013-05-31 13:32 ` Mike Lin
2013-06-03 1:15 ` Francois Berenger
2013-05-30 13:49 ` oliver
[not found] ` <20130530.091844.2217058886454447597.Christophe.Troestler@umons.ac.be>
2013-05-30 7:23 ` [Caml-list] Re: Problems to get larger user base Mihamina Rakotomandimby
2013-05-30 7:51 ` OPAM binary packages (was Re: Problems to get larger user base ... (Re: [Caml-list] OCaml's variables)) Thomas Gazagnaire
2013-05-27 8:53 ` Problems to get larger user base ... (Re: [Caml-list] OCaml's variables) Erik de Castro Lopo
2013-05-27 12:38 ` Mr. Herr
2013-05-27 12:56 ` Paolo Donadeo
2013-05-27 20:35 ` Mr. Herr
2013-05-27 20:57 ` Paolo Donadeo
2013-05-28 1:17 ` Francois Berenger
2013-05-28 2:44 ` oliver
2013-05-28 3:40 ` Francois Berenger
2013-05-28 4:05 ` Norman Hardy
2013-05-28 12:51 ` oliver
2013-05-28 4:08 ` Norman Hardy
2013-05-28 12:36 ` oliver
2013-05-29 6:12 ` Mihamina Rakotomandimby
2013-05-29 7:31 ` Fabrice Le Fessant
2013-05-29 2:39 ` Jeff Meister
2013-05-29 2:51 ` Francois Berenger
2013-05-29 2:57 ` Jeff Meister
2013-05-29 7:50 ` Török Edwin
2013-05-29 3:06 ` oliver
2013-05-28 18:51 ` Mr. Herr
2013-05-28 19:06 ` Anthony Tavener
2013-05-28 19:47 ` Mr. Herr
2013-05-29 2:25 ` Francois Berenger
2013-05-28 4:20 ` Erik de Castro Lopo
2013-05-28 18:59 ` Mr. Herr
2013-05-29 3:08 ` Erik de Castro Lopo
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87fvx3oh1a.fsf@gmail.com \
--to=mmatalka@gmail.com \
--cc=berenger@riken.jp \
--cc=caml-list@inria.fr \
--cc=murthy.chet@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox