[RFC] incremental rebase
Corinna Vinschen
corinna-cygwin@cygwin.com
Fri Nov 21 20:37:00 GMT 2014
On Nov 20 19:57, Achim Gratz wrote:
> Yaakov Selkowitz writes:
> > As things stand now, EVERY package should requires: cygwin, all
> > packages with DLLs should requires: _autorebase, and all packages with
> > info files should requires: _update-info-dir. As you can see from
> > setup.ini, that's clearly not happening, nor have I managed to find
> > any rhyme or reason for those that do versus those that don't.
>
> The real question is why upset is supposed to handle that rather than
> setup.exe… I was under the impression that this had been the purpose of
> moving the regex library into setup.exe, but I may have misunderstood.
Good point, and that's where we're heading in the long run. We should
get rid of autodeps, they only work barely as required anyway.
> >> I'm opposed to a complete manual assignment of this order on principle.
> >> First, it isn't needed for the majority of things
> >
> > Exactly: a few known tasks -- most of which are already handled by
> > cygport -- will need to be planned out, and everything else can go in
> > a range where order doesn't really matter.
>
> Dependency order still matters, I suppose.
>
> >> and second, it has the very real potential of requiring huge package rebuild
> >
> > We need _one_ anyway, but how do you foresee this requiring more later?
>
> Even if we can't think of that need now, it will be present in the least
> convenient moment.
Here's an idea:
Assuming we only have a single rebaseall script along the lines of
autorebase.bat.
A simple mechanism which works with both of your proposals, without
much intelligence required, without clobbering, and with easy cygport
support, would be this:
autorebase.bat gets renamed to 2r-autorebase.bat (Achim) or
02-autorebase.bat (Yaakov),
To handle the dependency issue, every package coming with DLLs will not
create the same 01-rebaseall.{sh,bat} script as Yaakov proposed, but
rather a script called, for instance,
1r-needrebase-${packagename}.sh (Achim)
or 01-needrebase-${packagename}.sh (Yaakov)
These scripts run prior to the rebase script, and they do nothing but
if [ -e /etc/postinstall/{2r,02}-autorebase.bat.done ]
then
mv /etc/postinstall/{2r,02}-autorebase.bat.done \
/etc/postinstall/{2r,02}-autorebase.bat
All these scripts are on an earlier stratum, so they run earlier than
{2r,02}-autorebase.bat. After they ran, they get renamed to
1r-needrebase-${packagename}.sh.done, so they are run only when the
package gets installed or updated. {2r,02}-autorebase.bat gets run
every time any package got installed or updated.
Same thing for update-info-dir. Am I missing something?
Corinna
--
Corinna Vinschen Please, send mails regarding Cygwin to
Cygwin Maintainer cygwin AT cygwin DOT com
Red Hat
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 819 bytes
Desc: not available
URL: <http://cygwin.com/pipermail/cygwin-apps/attachments/20141121/08bad46b/attachment.sig>
More information about the Cygwin-apps
mailing list