On Friday, 15 November 2019 5:58:02 AM AEDT Jamie Bliss wrote:
> 1. As I understand it, libexec is an acceptable place for binaries

Barely acceptable and non-compliant (but not in violation) with policy.
Note that ยง9.1.1 of the policy do not mention "libexec" at all:

  https://www.debian.org/doc/debian-policy/ch-opersys.html#file-system-hierarchy

I'd like to encourage you to inspect your own system to see
if you find anything in "/usr/libexec" other than packages that
should have similar bugs filed against them.

Certainly "/usr/libexec" is an unusual location for Debian.


> if they're not supposed to be called by the user.

Usually "/usr/lib/{PACKAGE}" is used in such cases.


> Conmon is not meant to be
> run by the user, but is somewhat internal to the container runtime.

That may be right yet unrelated to incorrect placement of the binary.

For instance I doubt it is necessary to emphasize relationships
with Podman by installing the binary into "podman" sub-folder:

    "/usr/libexec/podman/conmon"


> (I'll concede, this is debatable,

`/usr/libexec/podman/conmon -h` produces human-readable help.

Compare it to "nomad-driver-lxc" binary (intended for private
consumption by Nomad) that just responds with the following:

  "This binary is a plugin. These are not meant to be executed directly."

FYI I install "nomad-driver-lxc" binary to "/usr/lib/nomad"
because such binary is used exclusively by Nomad.

Conmon appears to have a UI which suggests that it could be used
directly by the user.


> and I'm not familiar with the intricacies if applying Debian policy.)

IMHO there is little intricacy in this case...


> 2. The conmon package exists in Debian because it is a dependency of podman
> (not yet packaged),

Already packaged by yours truly and waiting in NEW. :)


> and podman searches in specific places for conmon.

We can control the default list of locations in Podman package.


> Changing this list of places can be surprisingly difficult (as I
> discovered when I tried to add a /usr/local path upstream).

Not difficult at all: it is in the "/etc/containers/libpod.conf" (line 8),
where list of paths is defined as follows:

~~~~
conmon_path = [
    "/usr/bin/conmon",
    "/usr/sbin/conmon",
    "/usr/libexec/podman/conmon",
    "/usr/local/libexec/crio/conmon",
    "/usr/lib/podman/bin/conmon",
    "/usr/libexec/crio/conmon",
    "/usr/lib/crio/bin/conmon"
]
~~~~

I'm going to revise defaults and probably remove some paths from there.
We can easily harmonize location of "conmon" between our packages.

-- 
Best wishes,
 Dmitry Smirnov.

---

"We must respect the other fellow's religion, but only in the sense and
to the extent that we respect his theory that his wife is beautiful and
his children smart.
        -- H. L. Mencken

Attachment: signature.asc
Description: This is a digitally signed message part.

Reply via email to