caml-list - the Caml user's mailing list
 help / color / mirror / Atom feed
From: David Allsopp <dra-news@metastack.com>
To: "Emilio Jesús Gallego Arias" <e@x80.org>,
	"Jacques Garrigue" <garrigue@math.nagoya-u.ac.jp>
Cc: Mailing List OCaml <caml-list@inria.fr>
Subject: RE: [Caml-list] LablGtk3 beta1
Date: Tue, 18 Dec 2018 14:33:51 +0000	[thread overview]
Message-ID: <E51C5B015DBD1348A1D85763337FB6D901AE522EE0@Remus.metastack.local> (raw)
In-Reply-To: <87o99kmjyo.fsf@x80.org>

Emilio Jesús Gallego Arias wrote:
> Jacques Garrigue <garrigue@math.nagoya-u.ac.jp> writes:
> 
> > Emilio, I do agree with you on that.
> 
> > I added a conf-gtk3 as was suggested to me, and since lablgtk3
> > requires gtk 3.18, if dependes on a versioned package conf-gtk3.18
> > (i.e. cong-gtk3 ">= 18”) However, if somebody else introduces a
> > conf-gtk3.22 version, that one will be installed by default (even for
> > lablgtk3), and fail if one gtk-3.18 is available, so this does not
> > seem to be the right solution for versioning, and I see no other way to
> do it with the current opam.
> 
> Indeed, IMVHO lablgtk should follow the packaging structure hinted at
> https://github.com/garrigue/lablgtk/pull/14 and don't depend on `conf-
> gtk`.
> 
> This would have the important additional benefit of allowing fully
> automatic OPAM releases, which are trickier to do when the conf-foo
> package is there.

If I may, there seems to be a little bit of "throwing the baby out with the bath water" where the conf- packages are concerned. It's also worth remembering that the layout of a package in opam-repository is the concern of opam-repository's maintainers (I'm not one, btw), not necessarily packagers.

At present, it is indeed not possible in opam to depend on the versions of system packages (with the exception of OCaml). The only way, without new support, is to mirror all the releases - as is done for the ocaml package - but that's likely to be a real PITA to maintain, and overkill.

However, the conf package remains the only place in which the depext information (i.e. OS-dependent packages) should be. Anything else involves duplication and so is fundamentally not a better solution.

I do have one question, as I know comparatively little about distributions of GTK itself - if on any system I request gtk3 and I get, say, gtk 3.17 then on most systems, what would I need to do to get gtk 3.18? Is it easy? For example, if I'm on Ubuntu 16.04 and I want gtk3 3.20, it looks quite tricky to achieve that, I think?

If it's the case that the user is most likely stuck with the version on their system and cannot easily change it, then it looks to me as though this should really have been conf-gtk3.0 which simply installs whatever is available (no minimum version check) and then the lablgtk packages should check the version and fail their *build* if the version isn't recent enough.

The other option is still to have conf-gtk3.0 do whatever is necessary to install gtk3 on the system and then have an entirely separate conf-gtk318 package which encodes the ">= 3.18" check - that has the benefit of centralising OS-specific version probing. You would then add an entirely separate conf-gtk322 package if someone else needed the ">= 3.22" check. That's not terribly elegant or scalable, but would be a reasonable workaround for the few specific packages where this matters, prior to opam being able to include dependency on available versions of system packages.


David

-- 
Caml-list mailing list.  Subscription management and archives:
https://sympa.inria.fr/sympa/arc/caml-list https://inbox.ocaml.org/caml-list
Forum: https://discuss.ocaml.org/
Bug reports: http://caml.inria.fr/bin/caml-bugs

  reply	other threads:[~2018-12-18 14:34 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-12-06  6:33 Jacques Garrigue
2018-12-06 10:05 ` Louis Gesbert
2018-12-06 10:35 ` Gabriel Scherer
2018-12-07 10:04 ` Emilio Jesús Gallego Arias
2018-12-07 10:25   ` Gabriel Scherer
2018-12-07 18:34     ` Emilio Jesús Gallego Arias
2018-12-11  3:09       ` Francois Berenger
2018-12-11 11:34         ` Louis Gesbert
2018-12-14 11:41           ` Emilio Jesús Gallego Arias
2018-12-14 11:38         ` Emilio Jesús Gallego Arias
2018-12-16  8:12           ` Jacques Garrigue
2018-12-17 12:11             ` Emilio Jesús Gallego Arias
2018-12-18 14:33               ` David Allsopp [this message]
2018-12-19  1:20                 ` Emilio Jesús Gallego Arias
2018-12-19 10:15                   ` David Allsopp
2018-12-19 11:13                     ` Emilio Jesús Gallego Arias
2018-12-19 11:50                       ` David Allsopp
2018-12-19 16:41                         ` Emilio Jesús Gallego Arias
2018-12-20 11:33                           ` David Allsopp

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=E51C5B015DBD1348A1D85763337FB6D901AE522EE0@Remus.metastack.local \
    --to=dra-news@metastack.com \
    --cc=caml-list@inria.fr \
    --cc=e@x80.org \
    --cc=garrigue@math.nagoya-u.ac.jp \
    /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;
as well as URLs for NNTP newsgroup(s).