Bug 213890 - Mk/bsd.port.mk: CONFLICTS_INSTALL also blocks targets other than "install"
Summary: Mk/bsd.port.mk: CONFLICTS_INSTALL also blocks targets other than "install"
Status: New
Alias: None
Product: Ports & Packages
Classification: Unclassified
Component: Ports Framework (show other bugs)
Version: Latest
Hardware: Any Any
: --- Affects Only Me
Assignee: Port Management Team
URL:
Keywords: needs-patch
Depends on:
Blocks: 213889
  Show dependency treegraph
 
Reported: 2016-10-29 16:43 UTC by Jan Beich
Modified: 2017-03-25 19:49 UTC (History)
2 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Jan Beich freebsd_committer 2016-10-29 16:43:43 UTC
For DEPENDS_TARGET != install to work CONFLICTS_INSTALL should only block ports that call "install". Currently, it behaves the same as CONFLICTS:

  $ pkg install -qy libressl

  $ make build -C security/openssl
  ===>  openssl-1.0.2j_1,1 conflicts with installed package(s):
	libressl-2.4.3

	They install files into the same place.
	You may want to stop build with Ctrl + C.
  ^C

  $ fgrep CONFLICTS security/openssl/Makefile
  CONFLICTS_INSTALL=      libressl-[0-9]* \
Comment 1 Mathieu Arnold freebsd_committer 2016-10-29 20:04:22 UTC
Don't hit control-C, it should build just fine.
Comment 2 Jan Beich freebsd_committer 2016-10-29 20:21:09 UTC
Indeed but confusing. So, bug 213889 doesn't *require* (but would still benefit from) the fix here.
Comment 3 Mathieu Arnold freebsd_committer 2016-10-29 23:26:59 UTC
CONFLICTS_INSTALL is informing the user, it says:

Hi, you are building foo, but you already have bar which it conflicts with, so you won't be able to install foo, if you don't want it, you may stop it now.

It is different from CONFLICTS which will stop the build just there.

The problem in the bug you are referencing looks like a bug in the port the user is trying to install, it should set IGNORE if !${SSL_DEFAULT:Mlibressl*} or something similar.
Comment 4 Jan Beich freebsd_committer 2016-10-30 16:19:01 UTC
Is it possible to hide conflicts' banner to avoid confusing users of BUILD_DEPENDS=path:dir:target consumers where target != install ?
Comment 5 Baptiste Daroussin freebsd_committer 2016-10-30 17:41:55 UTC
I agree with Jan, the CONFLICT_INSTALL should only appear imho if one is trying to install, not otherwise, there are plenty of valid thing one can do without installing. It adds a painful sleep 10 for those operations.