John Plocher wrote:
> Didn't we have this very same coexistence conversation the first time
> 'round? :-)
> 
> The use case of the user installing gcc 4.3.2 "yesterday", installing
> gcc 4.3.3 "today", and then uninstalling gcc 4.3.2 "tomorrow" is going
> to be a reasonably common upgrade path; whatever causes the "havoc to
> both the files and IPS database" is a bug and must be fixed.   Are we
> sure this is only a GCC project bug, or is there a related IPS problem
> (user provided packages that cause havoc with the IPS system is a
> recipe for disaster)?

Potentially, the problem could occur any time packages with overlapping 
pathnames are installed and one is removed.  As I understand it, the 
pathnames will be removed without IPS realizing they are shared.

> 
> It sounds like there are two related, but independent "projects" here:
> 
>     1) Fix/update the already deployed gcc 4.3.2 packages in the IPS
> repo to allow the use
>        case above, and

Correct.

> 
>     2) Release a new set of gcc 4.3.3 packages.  Assuming, of course,
> that these
>        packages won't have the upgrade bug that slipped past in
> 4.3.2's original release.

Correct again.

> 
> Can you point out where the topic of version flexibility, both in the
> "co-installed" and "which is the default" areas, is addressed in the
> project's packaging design and/or packaging architecture specs?  In
> particular, I am looking for the architecture (or design pattern...)
> that you are following for choosing which compiler version is invoked
> via "/usr/bin/gcc" -  Is it "last package installed", "first...", some
> special per-version "make me the default" package, or something else?

In the previous case for 4.3.2, we had proposed adding "plain" links in 
/usr/bin to the default version of GCC, e.g. /usr/bin/gcc -> gcc-4.3.2. 
  According to the gcc man page, plain gcc should invoke the last 
version installed.

In SVR4 packages, this behavior could be implemented via postinstall and 
preremove scripts.  IPS doesn't support this functionality and the plain 
links were already taken by GCC 3.4.3.  For 2009.06, GCC 3.4.3 is the 
default and the user can access 4.3.2 by the -V option or the version 
suffixed commands.

verexec seems to be the preferred long term solution.  I guess we need 
to wait for that to do a good job controlling the defaults with multiple 
versions installed.

In my replay to Rainer this morning, I suggested we could use something 
like gcc4 or gcc43 in the short term for this next release.  We are also 
working with the opensolaris team to see if it makes sense to keep the 
plain links in /usr/bin at 3.4.3 or possibly move them up to 4.3.3.


Thanks,
George

> 
>    -John
> 
> 
> On Thu, Oct 22, 2009 at 4:36 PM, George Vasick <George.Vasick at sun.com> 
> wrote:
>> Alan Coopersmith wrote:
>>> George Vasick wrote:
>>>> We released 4.3.2 in OpenSolaris 2009.06.  We have to update 4.3.2 in
>>>> order to release 4.3.3 to avoid duplicate pathnames between the packages.
>>> The case specified 4.3.2 as a new delivery, not something already
>>> provided.
>> Sorry about that.  Here is a new section 4.10 clarifying the situation:
>>
>>    4.10. Packaging & Delivery:
>>        Package                 Status
>>        =======                 ======
>>        SUNWgcc432              Modified
>>        SUNWgcc433              New
>>        SUNWgccdoc              New
>>        SUNWgcclibgcc1          New
>>        SUNWgcclibgfortran3     New
>>        SUNWgcclibgomp1         New
>>        SUNWgcclibobjc2         New
>>        SUNWgcclibssp0          New
>>        SUNWgcclibstdc6         New
>>        SUNWgccruntime432       Deleted
>>
>>> Still, it seems wasteful to ship both, instead of replacing 4.3.2 with
>>> 4.3.3
>>> and telling developers who want to stay on 4.3.2 to not upgrade their
>>> packages,
>>> but that probably depends on IPS/OpenSolaris packaging changes to allow
>>> those
>>> to be upgraded separately from the WOS build.
>> According to my to my IPS contact, installing the new 433 packages over an
>> existing 432 install would go through just fine with no warnings or errors.
>>  Uninstall is another story with all kinds of havoc to both the files and
>> IPS database.  There were two choices.  We could update the 432 packages to
>> be empty or modify their contents to allow coexistence.  In either case, the
>> 432 packages require an update.

Reply via email to