cvs commit: ports UPDATING

Matthias Andree mandree at FreeBSD.org
Fri Jul 1 09:04:33 UTC 2011


Am 01.07.2011 05:22, schrieb Doug Barton:
> On 06/30/2011 14:03, Stephen Montgomery-Smith wrote:
>> stephen     2011-06-30 21:03:43 UTC
>>
>>    FreeBSD ports repository
>>
>>    Modified files:
>>      .                    UPDATING
>>    Log:
>>    - Tell octave-forge* users to completely remove old ports before
>> reinstalling.
> 
> This is not the first time this issue (ports doing the wrong thing if
> you try to build them while they are installed) has come up, and I've
> been thinking ... do we need something like a NO_REINSTALL flag that can
> be added to a port's Makefile to indicate the problem? I realize that in
> many cases the problem is better solved by fixing the real problem.
> However I think that there are likely situations like this where there
> is a legitimate problem that can only be overcome by removing the
> installed ports first.
> 
> Is this idea worth pursuing? I have some ideas about how it should be
> implemented but I'm curious what others think about the concept first.

I don't think it's useful.  IMO Ports failing to build if their ancestor
is installed are buggy (usually they set wrong CPPFLAGS and LDFLAGS and
pick up system-wide before local #includes) and should be fixed.  I am
concerned that such a flag would only be abused as a sort of "I don't
mean to fix the port" marker.

Stephen has (according to his replies here in this thread) done the
right thing and fixed them.

However, a simple NO_REINSTALL = yes with the meaning of "deinstall port
ancestor before attempting a build" doesn't help:

- if files have moved between ports.

The former could only be fixed with a REINSTALL_PORTS_GROUP=
origin1/port1 origin2/port2 ... or similar (not sure if pkgng would be a
good starting point for that)

- and/or if deinstall scripts break the system.

In contrast to RPM-based systems, this is hardly ever a problem in
FreeBSD, as the pkg* stuff doesn't install two versions in parallel if
you update with rpm -U.

And even if we had NO_REINSTALL, we'd at least need to be able to state
a version range, because ports like this can usually remain installed if
you just bump PORTREVISION to add a security patch or fix pkg-plist.

Or have I misunderstood your proposal now?


More information about the freebsd-ports mailing list