#48461 closed defect (invalid)
Installing caffe installs libgcc-devel despite not depending on it.
Reported by: | jrd-freak@… | Owned by: | humem (humem) |
---|---|---|---|
Priority: | Normal | Milestone: | |
Component: | ports | Version: | 2.3.3 |
Keywords: | Cc: | Ionic (Mihai Moldovan) | |
Port: | caffe |
Description
When runnign sudo port install caffe
, I spent hours building libgcc-devel
for some reason. I could not believe it really depends on it, so I ran port rdeps --full caffe | grep libgcc-devel
. There is no libgcc-devel
in the output.
See my question on apple.SE: http://apple.stackexchange.com/q/197287/96765.
Attached the full rdeps of caffe
Attachments (1)
Change History (8)
Changed 9 years ago by jrd-freak@…
Attachment: | rdeps_caffe.txt added |
---|
comment:1 Changed 9 years ago by mf2k (Frank Schima)
Cc: | hum@… removed |
---|---|
Keywords: | dependencies removed |
Owner: | changed from macports-tickets@… to hum@… |
comment:2 follow-up: 3 Changed 9 years ago by Ionic (Mihai Moldovan)
comment:3 Changed 9 years ago by jrd-freak@…
Replying to ionic@…:
There's some stuff depending on
libcgcc
. Note thatlibgcc
andlibgcc-devel
are mutually exclusive and you probably have gcc6 installed, which depends onlibgcc-devel
.
Indeed I have. So this means I cannot install libgcc
and libgcc-devel
is used in place of libgcc
wherever something depends on it?
comment:4 Changed 9 years ago by Ionic (Mihai Moldovan)
Yes, exactly. That is, If the dependencies are set up correctly. But if a port tries to install libgcc
directly and is not also satisfied by libgcc-devel
, it's most likely a bug.
Can I close this as invalid?
comment:5 Changed 9 years ago by jrd-freak@…
I suppose so, as this is ultimately user error. I wonder though how exactly I could have found out about it. Does installing libgcc-devel
inform me at some point that it will deactivate libgcc
? I do not remember, but I did not have to do anything to resolve the conflict, as far as I remember. Also, is it generally the case that such beta-ports are used as drop-in replacements in conflict situations or is it just libgcc
? Where can I find documentation on the topic?
comment:6 Changed 9 years ago by Ionic (Mihai Moldovan)
Resolution: | → invalid |
---|---|
Status: | new → closed |
Maybe you never had libgcc
installed? What does port installed libgcc
say?
I'm not sure whether conflicting ports get automatically deactivated, AFAIK that's only true for replaced
ports.
GCC is a bit special, in that the libraries are split off into libgcc*
ports. We currently have libgcc
(which is the libraries taken off the current stable version - 5.2), libgcc45
(from GCC 4.5, legacy) and libgcc-devel
(from GCC 6 - currently unreleased.)
Naturally, all GCC ports depend upon some libgcc
port, but most are satisfied by both libgcc
and libgcc-devel
. libgcc45
is special in the sense that it is co-installable with the other two and does not conflict with them, but it's also only needed for gcc45
(and maybe other non-GCC ports, but I haven't checked.)
gcc6
currently (hard) depends on libgcc-devel
. This will change once a stable version of gcc6
is released. Once that's true, libgcc
will be updated to provide the libraries of GCC 6, while libgcc-devel
will be providing libraries of GCC 7. gcc6
will depend on either libgcc
or libgcc-devel
and gcc7
will depend on libgcc-devel
only.
comment:7 Changed 9 years ago by Ionic (Mihai Moldovan)
Cc: | ionic@… added |
---|
More specifically, take gcc5
for instance. It has this depends line: path:lib/libgcc/libgcc_s.1.dylib:libgcc
.
This means that, as long as the file ${prefix}/lib/libgcc/libgcc_s.1.dylib
exists (which both libgcc
and libgcc-devel
provide - hence the conflict), the dependency is satisfied. Otherwise, libgcc will be installed automatically.
(CC'ing myself, because I closed the ticket.)
There's some stuff depending on
libcgcc
. Note thatlibgcc
andlibgcc-devel
are mutually exclusive and you probably have gcc6 installed, which depends onlibgcc-devel
.