Solved About dependencies

Hi everybody,

I've remarked that some dependencies are only required at build-time.
Typically, lang/gcc9 is a build-dependency of astro/kstarts and lang/gcc10 is a build-dependency of graphics/inkscape.

The inconvenient is that when you type :

Code:
# pkg remove gcc10
Checking integrity... done (0 conflicting)
Deinstallation has been requested for the following 6 packages (of 0 packages in the universe):

Installed packages to be REMOVED:
GraphicsMagick: 1.3.36,1
gcc10: 10.2.0
inkscape: 1.0.2
openblas: 0.3.12,1
py37-numpy: 1.16.6,1
suitesparse: 5.8.1

Number of packages to be removed: 6

The operation will free 613 MiB.

Proceed with deinstalling packages? [y/N]:

Can't ports system distinguish between build and runtime dependencies ?

Thank you for your light.

Didier.
 
Something built against a particular version of gcc will require the low-level runtime components of that version of gcc to actually run. On FreeBSD, an installation of gcc includes both the build tools (compiler/linker/etc) and those low-level runtime parts. There is no separate port/package for just the gcc runtime components - it's all or nothing. And the package tool is doing what it's designed to do - if pkg A is deleted, everything that depends on A will also get deleted.
 
Something built against a particular version of gcc will require the low-level runtime components of that version of gcc to actually run. On FreeBSD, an installation of gcc includes both the build tools (compiler/linker/etc) and those low-level runtime parts. There is no separate port/package for just the gcc runtime components - it's all or nothing. And the package tool is doing what it's designed to do - if pkg A is deleted, everything that depends on A will also get deleted.
One thing I think OpenIndiana done more right than FreeBSD is they also provide a separate package for runtime:


As you can see, there is developer/gcc-10 and system/library/g++-10-runtime
 
lang/gcc10 is a run dependency of graphics/GraphicsMagick. Which in turn is a run dependency of graphics/inkskape.
Code:
root@molly:/usr/ports/graphics/GraphicsMagick # make run-depends-list
/usr/ports/print/freetype2
/usr/ports/graphics/jasper
/usr/ports/graphics/jbigkit
/usr/ports/graphics/lcms2
/usr/ports/graphics/png
/usr/ports/graphics/tiff
/usr/ports/graphics/webp
/usr/ports/graphics/libwmf
/usr/ports/graphics/jpeg-turbo
/usr/ports/textproc/libxml2
/usr/ports/lang/gcc10
/usr/ports/x11/libICE
/usr/ports/x11/libSM
/usr/ports/x11/libX11
/usr/ports/x11/libXext

Can't ports system distinguish between build and runtime dependencies ?
It can identify it just fine. You need to take dependencies of dependencies into account.
 
Thank you all, for your relevant answers.
You have covered all my question.
I can see clear, now.

Have a nice monday, all.
Cheers.
 
Back
Top