How does setup.exe cope with upgrading of already installed packages if there exist modification in installed files?

Oleksandr Gavenko gavenko@bifit.com.ua
Wed Oct 19 14:02:00 GMT 2011


19.10.2011 16:27, Andrew Schulman пишет:
>> Also I worry about modification in other config files in /etc
>> (like /etc/apache2/httpd.conf). Are they overwritten on package update?
>
> This is up to each package maintainer.  Current best practice - at least,
> as of a year or two ago when I asked about it on cygwin-apps I think - is
> to include:
>
> (1) a default config file in /etc/defaults/etc;
> (2) a preremove script that removes the existing config file iff it hasn't
> change from the default; and
> (3) a postinstall script that installs the default config into /etc if no
> other config file is already there.
>
> If all three of those are present, then a package upgrade will replace the
> existing config files if and only if they haven't changed since they were
> installed.  If they have changed, then it's up to the user to merge the old
> and new configs.
>
> cygport provides automatic support for (1) and (3) above if you call e.g.
>
>    make_etc_defaults /etc/lftp.conf
>
> To complete the set, package maintainers have to separately include a
> simple preremove script, e.g.
>
>    if cmp -s /etc/defaults/etc/lftp.conf /etc/lftp.conf
>    then
>      /bin/rm /etc/lftp.conf
>    fi
>
> The lftp package, for example, includes all three of the above pieces.  For
> other packages, you'll just have to check each one.  If a piece seems to be
> missing, you can ask the maintainer if they're willing to add it.
>
>> How can I be notified about upgrade conflicts?
>
> Unfortunately, setup doesn't include any way of prompting the user for
> action due to conflicts.  The postinstall script will either overwrite the
> existing config, or it won't.  I think it's considered bad practice to
> overwrite a config without checking first whether it's been modified; if
> you find that a package does that, you should ask the maintainer to fix it.
>
> Your safest bet is probably to back up all of the configuration before you
> upgrade.
>
>> What for '/etc/defaults' hierarchy was used?
>
> See above.
>
Thanks for replay!

Seems that /etc/default practice is good.

How about templates?

For example if package like Mercurial provide
WEB templates which I like to customize (fix time format to ISO-8601).
Templates lies in /lib/python2.6/site-packages/mercurial/templates/*.

If I prepare some fixes to package which list appropriate to write 
report to?

Contact to mail from

   /usr/share/doc/Cygwin/*.README

or separate list used for this purpose?


--
Problem reports:       http://cygwin.com/problems.html
FAQ:                   http://cygwin.com/faq/
Documentation:         http://cygwin.com/docs.html
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple



More information about the Cygwin mailing list