[aur-requests] [PRQ#10670] Deletion Request for dune

Archange archange at archlinux.org
Mon Feb 19 17:44:12 UTC 2018


Thanks for your email and sorry about this… This is quite a long story,
but those deletion notifications (as a matter of fact, 5 packages from
the `(ocaml-)merlin` dependency tree are “affected”) now remind me I was
only half-way through before I had to go…

First thing is that I did not use AUR PKGUILDs for any of those packages
for two reasons:

1. I missed them in the first place, because I did look for
`ocaml-merlin` only /sigh/ —especially to end up with the name `merlin`
for the package after more carefully looking at OCaml packaging
guidelines— and then was clearly tired (did that between 10 p.m. and 2
a.m., on and before a day I had other things to do) and just started to
recursively package anything needed I could not find in our repos,
without checking at AUR once again… This has actual consequences that I
need to address btw (regarding version numbers).

2. I mostly never use AUR PKGBUILDs anyway when pushing to [community],
unless they are things that are hard to figure when trying to build,
because their quality is generally poor.

Now, I actually spent almost 4 hours for writing those PKGBUILDs
“correctly” (in the sense of having them build in a [community]-suitable
way), so I can definitively agree that it is not just a `./configure;
make; make install` thing (and even worse than that, there is actually a
`./configure` in `merlin`, but it is not `autotools` one… And most
mjambon’s libs had strange `make` targets and no install ones… since his
switch to `dune/jbuilder` for his projects. Reminded me of that FOSDEM
talk on “How to make package managers cry”…).

So actually finding the AUR package (well finding them earlier, because
I did find `dune` afterwards and wrote somewhere I should look at that)
would have helped me a lot, because that was quite painful indeed
(especially finding how to pass flags during `make` and which ones where
supported). That being said, I’m perfectly fine in adding you to the
“credits”, and by the way don’t really care about that tag (I only care
about the `Maintainer` tag being accurate, because it is useful for some
tools like repology).

On the technical side of things, you’ve raised some concerns:

1. Why is there no dependency on `ocaml`?
2. Why is there no dependency on `opam`?
3. Why is there no optional runtime dependency on `ocaml-find`?
4. What is going on with the versioning scheme?

And here are some answers:

1. That’s a perfectly valid concern. I admit having not given many
thought about it and mostly went with what `namcap` returned. I cannot
find a case where it would be useful without it, so I’m adding it to
dependencies, thanks.

2. While I was working on the packaging of `dune`, I did not noticed it
needed `opam` for some actions. I did when trying to build mjambon’s
libs, and he kindly sent me toward
https://github.com/ocaml/dune/issues/372 (from
https://github.com/mjambon/easy-format/pull/20, which is something I’ve
also forgotten to do for the other ones). So I hope for `opam` to not be
required anymore in the future, at least for my use of `dune`, but in
the meantime I will add it to the dependencies.

3. Well I did not thought about putting it there since it was already in
my `makedepends` array for my mjambon’s libs PKGBUILDs (as per OCaml
packaging guidelines). But now that I look at it again, those
`makedepends` arrays are basically `(ocaml-findlib dune opam)`, so
moving this as well as `opam` to `dune` dependencies totally makes
sense. Hard dependency, that is.

4. That’s a more though point. Your (well actually upstream’s)
versioning scheme is actually not valid for a PKGBUILD, because
`1.0+beta17` is in fact an higher version number than `1.0`, and thus
would have required an epoch when updating to the final release. That
being said, since your package does exist, this also means my version
number is not higher than AUR’s one, which is not necessarily a good
practice (and actually they are similar issues because of pkgrel for the
other ones). They are two solution, with one minor variation: either we
tell people to manually install the [community] one over the AUR one, or
we add an `epoch`, which can be then done either now (and then keeping
“my” —as a matter of fact the standard for this kind of things—
versioning scheme) or when 1.0 final is released by moving to your
versioning scheme. Any opinion on this?

BTW, you have also made me notice I forgot to enable tests in `dune` and
`cppo` (but I did latter in `merlin` and `ocaml-*`). So at this point
you have definitively earned your `Contributor` tag if you care about
it. ;) (And please read below if you even want the `Maintainer` one,
that’s possible)

And thanks for mentioning `ocp-build`, because as a matter of fact in my
attempt to package `merlin`, I was also after `ocp-indent` and thus
`ocp-build`, already added them in my staging directory and thus missed
to check AUR again, but stopped there because of time. Seems like
`ocp-indent` is not there, but I’m already interested by your
`ocp-build` would it be just because it carry a patch with it,
containing something I would probably not have thought about, or its
clear indication that I will have to look carefully at that
`./configure`… ;)

And for what is worth, I’m actually not doing any development in OCaml,
but we have very recently switched to it for some algorithm teaching in
France (from caml-light, for which we have been the only users I believe
for the past 20 years…), and for some reasons not relevant for this
discussion I needed proper support for OCaml in my editor (and the
student’s ones). So that’s why I’m packaging all this, but otherwise
don’t care at all about OPAM and such because we are not going to use
anything outside of the standard. But if you are interested in packaging
them and maybe other things for ArchLinux, you might consider applying
for TU in which case I’d be OK to be your sponsor, since you will likely
do a better maintainer than I do for those OCaml packages, at least on
the ocaml building side. :)


P.S.: I have exactly the same issue as you when it comes to people
interpreting my mood by reading my writing, so I totally understand
that. Hint: I’ve learned that adding smileys, even if it might not look
very “professional“, helps a lot. ;)

Le 19/02/2018 à 17:03, Jakob Gahde a écrit :
> FWIW, great to have this in community. Not so great that a deletion request is the first thing that informs me about this and even less so to have somebody else run off with the work that I put into figuring out how to make this piece of software install correctly and only add a few mostly cosmetic changes for good measure, without even a mention. The process isn’t just './configure; make; make install'; at least for me it took a while to figure everything out, and I’m not exactly a newbie to all the crazy stuff that OCaml people tend to use in their build infrastructure.
> While I’m at it, I wonder what the purpose is behind not depending on OCaml for a tool aimed at building OCaml software. Secondly, OPAM is run automatically on most invocations of dune to my knowledge, so I believe depending on it is somewhat reasonable. And lastly, the sources of dune happen to mention in plain English that dune can make use of ocamlfind as an optional runtime dependency[1]. So much for my reasoning on the dependencies, I would have been happy to explain this earlier if someone had let me.
> Forgive me if I’m a little upset, but when the new community package even goes out of it’s way to provide compatibility with the versioning scheme I used on the jbuilder package before it was renamed to dune, I just don’t understand why not even a little heads-up à la “BTW this package is now in community” was possible. Personally, I even left a contributor line saying “Your Name <youremail at domain.com>” untouched in one of the packages I adopted, just to let people know that I’m not the only person who ever invested time in that package (namely ocp-build).
> tl;dr I know that in written form my thoughts tend to come off as being more furious than I actually am, and while I do in fact not like what I believe went on, what I really want you, Bruno, to take away from this is just „Please be a little more communicative in the future” :)
> Have a nice day
> Jakob Gahde aka J5lx
> [1] https://github.com/ocaml/dune/blob/1.0%2Bbeta17/jbuilder.opam#L17-L22
> On Mon, 19 Feb 2018, at 15:34, notify at aur.archlinux.org wrote:
>> mis [1] filed a deletion request for dune [2]:
>> in [community]
>> https://www.archlinux.org/packages/community/x86_64/dune/
>> [1] https://aur.archlinux.org/account/mis/
>> [2] https://aur.archlinux.org/pkgbase/dune/

More information about the aur-requests mailing list