I agree with Gerhard, the decoders dir is the place most likely changed by
users and wiping it may have unwanted consequences. Maybe a user simply
wanted to install a different version of libsrd to test a PD against, not
expecting the decoders dir to be wiped in the process.

Personally, my prefered solution would be to ask the user when uninstalling
as he/she is the only one who can make the desired choice when using
makefiles. Is there a way to add a yes/no confirmation? If so, this is the
route I'd go.

Gerhard will probably rightfully point out that this may be interfering
with calling "make uninstall" from a script. I have no solution to this,
but I'd hope whatever mechanism used for asking the user would allow a
default choice - in which case, I would choose to have the default be to
delete the decoders dir to allow automated install and uninstall.

Regards
 -Soeren


On Sun, 2020-08-30 at 08:59 +0200, Gerhard Sittig wrote:
> On Sat, 2020-08-29 at 22:14 +0200, Wolfram Sang wrote:
> > From: Wolfram Sang <w...@kernel.org>
> > 
> > Decoders were left when using 'uninstall' target.
> > 
> > Signed-off-by: Wolfram Sang <w...@kernel.org>
> > ---
> > 
> > Found this while trying to remove outdated (because renamed) decoders
> > which triggered warnings. I hope this is proper automake.
> > 
> >  Makefile.am | 2 ++
> >  1 file changed, 2 insertions(+)
> > 
> > diff --git a/Makefile.am b/Makefile.am
> > index 9e15c30..0cab4e3 100644
> > --- a/Makefile.am
> > +++ b/Makefile.am
> > @@ -110,3 +110,5 @@ install-decoders:
> > 
> >  install-data-hook: install-decoders
> > 
> > +uninstall-hook:
> > +   -rm -rf $(DESTDIR)$(DECODERS_DIR)
> > --
> > 2.20.1
> 
> Minor make nit: Was to understand that $(RM) is more portable,
> and might be preferred. But could not find examples in existing
> rules within the minute that I spent searching. It's pre-set in
> GNU make, can't speak with certainty for automake on other
> platforms that don't use GNU make.
> 
> 
> This subject might be a sensitive one. Will users get angry when
> *all* directory content gets removed, including the files that
> were added by other means than libsigrokdecode installation?
> 
> When the install script gets extended to optionally remove
> decoders: Will users be surprised if _some_ of the content
> remains, when the source has changed between installation and
> uninstallation and thus won't remove what got installed before?
> (This may be the situation that you faced.)
> 
> Either choice of broad or fine selection what to remove could be
> as wrong as any other one might come up with. The most reliable
> option is to "somehow install" the files _and_ track what got
> installed, to remove that very installed content (and maybe only
> if it wasn't modified after installation -- the change may have
> been expensive and worth keeping). This is probably beyond a mere
> make rule. Touches policy, and is what package managers do and
> are good at.
> 
> 
> If you ask me, I'd add another "data uninstall" target for
> symmetry, and add a -u option to the Python install helper script
> to uninstall those files which ship with the sources. This would
> work for packagers, and developers when sticking with one version
> or similar content across versions. Doesn't cover your specific
> use case, and neither prevents the loss of local manipulation
> after installation. So it combines all disadvantages of either
> approach. Must be acceptable as everyone gets just a little
> unhappy. :-P
> 
> As long as automatic support for most appropriate removal is
> missing, it's probably most robust (and needed rarely enough)
> when those who install from source just go to the directory they
> install to (it's likely to be something isolated and local
> specific), and decide when to remove and what to remove. Lets
> them keep what's important to them, and can be as simple as just
> removing the single directory, or can selectively remove a few
> decoders which became obsolete.
> 
> 
> virtually yours
> Gerhard Sittig
> --
>      If you don't understand or are scared by any of the above
>              ask your parents or an adult to help you.
> 
> 
> _______________________________________________
> sigrok-devel mailing list
> sigrok-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/sigrok-devel



_______________________________________________
sigrok-devel mailing list
sigrok-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/sigrok-devel

Reply via email to