Dislike the way port conflicts are handled now

Manolis Kiagias sonicy at otenet.gr
Sat Jan 16 08:22:04 UTC 2010


On 16/01/2010 6:57 π.μ., Greg Larkin wrote:
> Craig Whipp wrote:
>
> > On Jan 15, 2010, at 9:44 AM, Kirk Strauser wrote:
>
> >> Until recently, it seems like port dependencies were handled at
> >> installation time. Lately, they're handled any time I try to do
> >> anything with a port. I absolutely detest the new behavior. Example
> >> cases:
> >>
> >> OLD WAY:
> >>
> >> $ cd /usr/ports/something/foo22
> >> $ make
> >> $ pkg_delete foo21-2.1
> >> $ make install
> >>
> >> NEW WAY
> >>
> >> $ cd /usr/ports/something/foo22
> >> $ make
> >> ===> foo22 conflicts with installed package(s): foo21-2.1
> >> $ make fetch
> >> ===> foo22 conflicts with installed package(s): foo21-2.1
> >> $ curse --type=copious
> >> $ pkg_delete foo21-2.1
> >> $ make install
> >>
> >> This isn't just a hypothetical pain in the butt. An example was being
> >> unable to build databases/mysql51-client because
> >> mysql-client-5.0.something was installed. I understand not being able
> >> to *install* it, but to be prevented from *building* it? In most
> >> circumstances, I want to be able to delete the old package and install
> >> the new one with minimal downtime. As another example, can you imagine
> >> not being able to even run "make fetch" on something huge like
> >> OpenOffice until you uninstalled the old version?
> >>
> >> In the mean time, I've been editing the port's Makefile to remove the
> >> CONFLICTS line long enough to finish building. That's not very helpful
> >> for those ports that don't actually build until you run "make
> >> install", but at least I can get the distfile download out of the way.
> >> --
> >>
> >> Kirk Strauser
> >>
>
> > I agree. I've found that this can interfere with portmaster's "-o"
> > option, used to replace an installed port with one of a different
> > origin. In my case, databases/mysql41-server with
> > databases/mysql55-server.
>
> > - Craig
>
> This change was based on a recent PR
> (http://www.freebsd.org/cgi/query-pr.cgi?pr=137855) and made it into the
> tree a couple of weeks ago:
> http://www.freebsd.org/cgi/cvsweb.cgi/ports/Mk/bsd.port.mk.diff?r1=1.631;r2=1.632
>
> Since some folks like the old behavior and some folks like the new
> behavior, what do you all think of a user-selectable make.conf option to
> choose where the check-conflicts target appears in the port build
> sequence?
>
> Regards,
> Greg

While I build most of my personal packages using ports-mgmt/tinderbox,
this option would be very useful. I routinely run make fetch on remote
machines to retrieve large distfiles, and wouldn't want the installed
dependencies to interfere with that.


More information about the freebsd-questions mailing list