[debhelper-devel] Bug#894549: debhelper: dh_usrlocal may remove a direct subdirectory of /usr/local
Nicolas Boulenguez
nicolas.boulenguez at free.fr
Fri Apr 6 19:37:39 UTC 2018
> use the "hashref" based autoscript?
The attached updated diff switches
from strings and sed expressions
back to arrays (again) and hashrefs (new).
> The "justdirs" is supposed to be in "opposite" order of "dirs"
> ("justdirs" are in "removal order" while "dirs" are in "creation order")
> but as far as I can see that ordering is not preserved in the patch.
They are not supposed to be in opposite order.
Actually, @justdirs contains strictly less elements than @dirs.
During the same recursive traversal,
* @dirs is appended each parent before its childs. This is the order
in which subdirectories are discovered in $tmpdir/usr/local/ during
the traversal, so it is by construction compatible with later
re-creation during install.
* @justdirs is appended all childs before their parent. The list is
constructed in the same code part actually removing the directory
from $tmpdir/usr/local/, so this order is compatible with
uninstallation
* In both lists, the childs are traversed in alphabetical order to
ensure reproducible scripts. This is unrelated with the two previous
constraints.
If this explanation seems convincing, please paste it inside comments
before the File::Find::file recursion.
> I think dh_usrlocal might be ready for some test cases to avoid future
> breakage.
The attached test.sh implements some suggested tests.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: dh_usrlocal-topdirs.diff
Type: text/x-diff
Size: 2797 bytes
Desc: not available
URL: <http://lists.alioth.debian.org/pipermail/debhelper-devel/attachments/20180406/ab2971ca/attachment-0002.diff>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: test.sh
Type: application/x-sh
Size: 4239 bytes
Desc: not available
URL: <http://lists.alioth.debian.org/pipermail/debhelper-devel/attachments/20180406/ab2971ca/attachment-0002.sh>
More information about the debhelper-devel
mailing list