[RFC] incremental rebase
Ken Brown
kbrown@cornell.edu
Tue Dec 9 13:08:00 GMT 2014
On 12/9/2014 5:43 AM, Corinna Vinschen wrote:
> On Dec 8 15:52, Ken Brown wrote:
>> On 12/8/2014 11:48 AM, Achim Gratz wrote:
>>> Ken Brown writes:
>>>> I'm not convinced that we need to worry so much about all these
>>>> details. What if we just check (based on timestamps of files in
>>>> /etc/setup/*.lst.gz) whether anything has been installed into
>>>> /usr/info or /usr/share/info since we last did this check. If so,
>>>> then just do exactly what the current update-info-dir.sh does.
>>>
>>> We also need to track if something was deinstalled. Unless we want to
>>> force all packages to do the appropriate install-info calls themselves
>>> in preremove and postinstall, of course.
>>>
>>>> autorebase can't get away with anything so simple, but it seems to me
>>>> that this is good enough for update_info_dir.
>>>
>>> We can always fall back to what we are doing now, yes. But I'd like to
>>> see if it can be improved.
>>
>> The attached script is what I had in mind. It's better than what we have
>> now and could be a starting point.
>>
>> Ken
>>
>
>> #!/bin/bash
>>
>> update () {
>> rm -f /usr/share/info/dir.info /usr/share/info/dir
>> for f in /usr/share/info/*
>> do
>> case "$f" in
>> *\**)
>> ;;
>> */dir|*/dir.info*)
>> ;;
>> *-[0123456789]*)
>> ;;
>> *)
>> install-info --quiet $f /usr/share/info/dir
>> ;;
>> esac
>> done
>> }
>>
>> update_needed=no
>> marker_file=/usr/share/info/.updated
>> if [ ! -f ${marker_file} ]
>> then
>> update_needed=yes
>> else
>> for f in $(find /etc/setup -type f -name '*.lst.gz' -newer ${marker_file})
>> do
>> if gzip -d -c ${f} | grep -q usr/share/info -
>> then
>> update_needed=yes
>> break
>> fi
>> done
>> fi
>> if [ ${update_needed} = "yes" ]
>> then
>> update
>> fi
>> touch ${marker_file}
>
> Neat.
Achim, I'd be willing to ITA _update-info-dir and provide this script, but I'm
also happy to defer to you if you want to improve it.
Ken
More information about the Cygwin-apps
mailing list