Bug#397939: clean rule behavior underspecified and inconsistent with common practice
* Jonathan Nieder <jrnieder@gmail.com> [120911 05:45]:
> > during the last months i had to review several packages. Quite a number
> > of packages were not buildable two times (eg. "unrepresentable changes
> > to source"). Most of these packages used svn-buildpackage or
> > cvs-buildpackage. This bug is quite annoying as one needs to either
> > manual interact or run dpkg-source -x again.
>
> Of course policy forbids that. The requirements in policy for
> "debian/rules clean" are very stringent --- to avoid the
> "unrepresentable changes" it would be enough to _remove_ the modified
> (regenerated) files, but policy requires undoing everything the build
> target did, or in other words restoring the original files.
I disagree.
Policy says:
| This must undo any effects that the build and binary targets may have
| had, except that it should leave alone any output files created in the
| parent directory by a run of a binary target.
It does not do it must undo "everything". Undoing everything would be
impossible (like, how do you revert the timestamps of directories that
got a newer timestamp because there was a file created and then removed
in there?).
Policy only speaks about the "effects" those targets had.
And I think common understanding of this was (at least was in the past)
that removing files not needed for the build is a simple and effective
way to undo those effects, as it results in a working dir aquivalent
for all practical purposes to one where build and binary never ran.
Bernhard R. Link
Reply to: