Package: tt-rss
Version: 15.7+git20151123+dfsg-3
Severity: wishlist

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

Dear maintainer,

According to codesearch¹ you are using the following construction in one or
more of your maintainer scripts:
if ! dbc_go <package_name> $@ ; then
    echo 'Automatic configuration using dbconfig-common failed!'
fi

I feel that I must explain to you why this is most likely not working as you
intended and additionally caused me quite some debugging time a while ago.

The main point is that maintainer scripts are strongly recommended to "set -e"
at the beginning of the scripts by the Debian Policy². However, if you use
constructions like "if" or "||" than the "set -e" don't propagate to the called
scripts or functions, errors in the scripts or functions are ignored and the
script continues. In the past (before version 2.0.0) dbconfig-common error
handling used to rely on the behavior of "set -e" (which of course can be
questioned, because it may not be set). Ironically that means that before
version 2.0.0 you never observed the text that you included in the echo
statement in your script.

Now, in case of errors, the error handling of dbconfig-common asks the
administrator how to proceed after the error with the
installation/configuration/removal/purging of the package. One of the options
is to abort, which is described as follows:

  * abort - Causes the operation to fail; you will need to downgrade,
    reinstall, reconfigure this package, or otherwise manually intervene
    to continue using it. This will usually also impact your ability to
    install other packages until the installation failure is resolved.

By using the "if !dbc_go" statement you are ignoring the wish of the
administrator, albeit it being the default answer. I kindly request to not use
the construction anymore. If you must, I suggest you change the answer to the
error questions to "ignore" (but please don't set the question as "seen").

Because the dbconfig-common files are sourced, I currently believe it is
incorrect to "set -e" in the dbconfig-common files.

Paul
Current maintainer of dbconfig-common

¹ https://codesearch.debian.net/perpackage-results/!%20dbc_go/2/page_0
² https://www.debian.org/doc/debian-policy/ch-maintainerscripts.html#s6.1

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1

iQEcBAEBCAAGBQJW6GnoAAoJEJxcmesFvXUKmUUIAIm6zZDXXXCi6a/KvSqGYDPq
GB4j0Eb2R2/1vyf/R84t/ZpcfDPQUDR3dHf2Ml5V1yjOwbQFb0z08dgsrNkpa33X
wWojYF+MrRJGayN4UmTEfY6BcHFsaM8L1Krp9YsOY3MfoviblZdF73CaDvmqm5NW
+LtJ+0vDhF2lCt5VX2LG6pdWTpcXfOoFXk3P/0ZYmfVmZmIuaWnW2sS2hT+/hwWP
Za2BzNHq40UPy3xmEoP2CI6Nobw0cjSZg8II6548B2+U1U5XsGTIQ46mJz0febf/
MrNLjq6PYpjdmrWRTSG3SW9iQHy7sIxdxAjjMISZeOh7uNpKdkMVrsowv3qzmoQ=
=a5k2
-----END PGP SIGNATURE-----

Reply via email to