returns true if data_src needs to be rebuilt, given that data_sink
            has had a rebuild requested.

def is_build_needed(self, data_sink, data_src):
        """ returns true if data_src needs to be rebuilt, given that data_sink
            has had a rebuild requested.
        """
        return (self._gettask(data_src).last_build_time == 0 or
                self._gettask(data_src).last_build_time <
                self._gettask(data_sink).last_build_time)