Source: pacemaker
Version: 3.0.1-1.1+b1
Usertags: pidof-without-procps

Dear maintainer(s) of pacemaker,

it appears that pacemaker uses `pidof` in its testsuite, or that
at least one of its binary packages uses `pidof` at runtime.
Historically, `pidof` was provided by the Essential package
`sysvinit-tools`, making an explicit dependency unnecessary. However
`pidof` will soon be moved to `procps` and will no longer be part of
the Essential set.

Please add an explicit dependency on `procps`:

* via the `Depends:` field of all binary packages of pacemaker
  that use `pidof` at runtime;
* via the `Build-Depends:` field of pacemaker, if `pidof` is
  used in tests run at build-time;
* via the `Depends:` field of `debian/control/tests`, if `pidof` is
  used in autopkgtests.

To prevent any disruption for users of pacemaker, please add
this dependency now, before `pidof` is moved from `sysvinit-utils` to
`procps`. Alternatively, you could remove all uses of `pidof`.

It is believed that pacemaker uses `pidof` due to the following
code snippets:

```
path: pacemaker_3.0.1-1.1/etc/init.d/pacemaker.in
                if status $prog > /dev/null 2>&1; then
                        touch "$LOCK_FILE"
                        pidof $prog > "@localstatedir@/run/$prog.pid"
                        success
                else


path: pacemaker_3.0.1-1.1/etc/init.d/pacemaker.in
        if status $shutdown_prog > /dev/null 2>&1; then
            notify "Signaling $desc to terminate"
            kill -TERM $(pidof $prog) > /dev/null 2>&1
            checkrc
            echo


path: pacemaker_3.0.1-1.1/etc/init.d/pacemaker.in
status()
{
        pid=$(pidof $1 2>/dev/null)
        local rtrn=$?
        if [ $rtrn -ne 0 ]; then


path: pacemaker_3.0.1-1.1/tools/cluster-clean.in
    cluster-helper $target -- "killall -q -9 corosync pacemakerd 
pacemaker-attrd pacemaker-based pacemaker-controld pacemaker-execd 
pacemaker-fenced pacemaker-remoted pacemaker-schedulerd dlm_controld 
gfs_controld" &> /dev/null
    cluster-helper $target -- 'kill -9 `pidof valgrind`' &> /dev/null
    if [ $kill == 2 ]; then


path: pacemaker_3.0.1-1.1/daemons/execd/pacemaker_remote.in
        if status $prog > /dev/null 2>&1; then
            echo -n "Signaling $desc to terminate: "
            kill -TERM $(pidof $prog) > /dev/null 2>&1
            success
            echo


path: pacemaker_3.0.1-1.1/daemons/execd/pacemaker_remote.in
                if status $prog > /dev/null 2>&1; then
                        touch "$LOCK_FILE"
                        pidof $prog > "@localstatedir@/run/$prog.pid"
                        success
                else


path: pacemaker_3.0.1-1.1/daemons/execd/pacemaker_remote.in
status()
{
        pid=$(pidof $1 2>/dev/null)
        local rtrn=$?
        if [ $rtrn -ne 0 ]; then
```

Feel free to close this issue if this is a false positive (for example
if this code is in an unreachable code path).

Regards,

-- 
Gioele Barabucci

Reply via email to