I am not sure I understand you so I am trying to understand from your above statement thatjcb__ wrote:I would like to know the best way to find dependencies or the portage tree so i know what is going to be emerged as far as packages.
Code: Select all
emerge -pvt <the intended package name>
Ionen wrote:As a packager I just don't want things to get messier with weird build systems and multiple toolchains requirements though
Thanks for the replypingtoo wrote:I am not sure I understand you so I am trying to understand from your above statement thatjcb__ wrote:I would like to know the best way to find dependencies or the portage tree so i know what is going to be emerged as far as packages.is not what you want? why?Code: Select all
emerge -pvt <the intended package name>
Got itjcb__ wrote:Thanks for the replypingtoo wrote:I am not sure I understand you so I am trying to understand from your above statement thatjcb__ wrote:I would like to know the best way to find dependencies or the portage tree so i know what is going to be emerged as far as packages.is not what you want? why?Code: Select all
emerge -pvt <the intended package name>
Is there a tool that can show me what will be installed besides emerge? Like something i can see online from a gentoo website or is emerge the only way ?
An online tool is not practical here, because that tool cannot know what you have already installed, so it would always show you every dependency, recursively, of the package you are contemplating.jcb__ wrote:Is there a tool that can show me what will be installed besides emerge? Like something i can see online from a gentoo website or is emerge the only way ?
Thanks,Hu wrote:An online tool is not practical here, because that tool cannot know what you have already installed, so it would always show you every dependency, recursively, of the package you are contemplating.jcb__ wrote:Is there a tool that can show me what will be installed besides emerge? Like something i can see online from a gentoo website or is emerge the only way ?
What are you trying to do here? Why are you trying so hard to avoid using emerge?
I will use a sample out to illustrate the idea. Notice I also include -k option to get binary packages.jcb__ wrote:The -t for tree that shows all packages that will be installed or dependencies ? qdepends or equery dosen't show me anything like that
Code: Select all
rpi5 ~ # emerge -pvtk qtwebengine
These are the packages that would be merged, in reverse order:
Calculating dependencies... done!
Dependency resolution took 10.77 s (backtrack: 0/20).
[ebuild N ] dev-qt/qtwebengine-6.7.2:6/6.7.2::gentoo USE="alsa jumbo-build opengl pulseaudio system-icu vulkan widgets -accessibility -bindist -custom-cflags -designer -geolocation -kerberos -pdfium -qml -screencast -test -vaapi -webdriver" 537985 KiB
[ebuild N ] dev-qt/qtdeclarative-6.7.2:6/6.7.2::gentoo USE="jit network opengl sql ssl svg vulkan widgets -accessibility (-qmlls)" 34795 KiB
[ebuild N ] dev-qt/qtshadertools-6.7.2:6/6.7.2::gentoo USE="-test" 1086 KiB
[ebuild NS ] dev-qt/qtsvg-6.7.2:6/6.7.2::gentoo [5.15.14:5/5.15::gentoo] USE="-test (-debug%)" 1750 KiB
[ebuild N ] dev-qt/qtwebchannel-6.7.2:6/6.7.2::gentoo USE="-qml -test" 202 KiB
[nomerge ] dev-qt/qtwebengine-6.7.2:6/6.7.2::gentoo USE="alsa jumbo-build opengl pulseaudio system-icu vulkan widgets -accessibility -bindist -custom-cflags -designer -geolocation -kerberos -pdfium -qml -screencast -test -vaapi -webdriver"
[nomerge ] dev-qt/qtbase-6.7.2:6/6.7.2::gentoo USE="X concurrent cups dbus gtk gui icu libinput libproxy network nls opengl sql sqlite ssl udev vulkan wayland widgets xml (zstd) -accessibility -brotli -eglfs -evdev -gles2-only -gssapi -mysql (-oci8) -odbc -postgres (-renderdoc) -sctp -test -tslib"
[ebuild N ] dev-qt/qttranslations-6.7.2:6/6.7.2::gentoo 1512 KiB
[ebuild N ] dev-qt/qttools-6.7.2:6/6.7.2::gentoo USE="assistant linguist opengl qdbus vulkan widgets (zstd) -clang -designer -distancefieldgenerator -gles2-only -pixeltool -qdoc -qml -qtattributionsscanner -qtdiag -qtplugininfo" LLVM_SLOT="17 -15 -16 (-18)" 8809 KiB
[ebuild NS ] dev-qt/qtwayland-6.7.2-r1:6/6.7.2::gentoo [5.15.14:5/5.15.14::gentoo] USE="vulkan -accessibility% -compositor -qml% -test (-debug%)" 1097 KiB
[ebuild N ] dev-qt/qtbase-6.7.2:6/6.7.2::gentoo USE="X concurrent cups dbus gtk gui icu libinput libproxy network nls opengl sql sqlite ssl udev vulkan wayland widgets xml (zstd) -accessibility -brotli -eglfs -evdev -gles2-only -gssapi -mysql (-oci8) -odbc -postgres (-renderdoc) -sctp -test -tslib" 48208 KiB
[ebuild N ] dev-python/html5lib-1.1-r2::gentoo USE="-test" PYTHON_TARGETS="python3_12 (-pypy3) -python3_10 -python3_11 (-python3_13)" 266 KiB
[ebuild N ] dev-python/webencodings-0.5.1-r2::gentoo USE="-test" PYTHON_TARGETS="python3_12 (-pypy3) -python3_10 -python3_11 (-python3_13)" 10 KiB
[nomerge ] dev-qt/qtwebchannel-6.7.2:6/6.7.2::gentoo USE="-qml -test"
[nomerge ] dev-qt/qtbase-6.7.2:6/6.7.2::gentoo USE="X concurrent cups dbus gtk gui icu libinput libproxy network nls opengl sql sqlite ssl udev vulkan wayland widgets xml (zstd) -accessibility -brotli -eglfs -evdev -gles2-only -gssapi -mysql (-oci8) -odbc -postgres (-renderdoc) -sctp -test -tslib"
[ebuild N ] x11-libs/xcb-util-cursor-0.1.5::gentoo 261 KiB
[nomerge ] dev-qt/qtwebengine-6.7.2:6/6.7.2::gentoo USE="alsa jumbo-build opengl pulseaudio system-icu vulkan widgets -accessibility -bindist -custom-cflags -designer -geolocation -kerberos -pdfium -qml -screencast -test -vaapi -webdriver"
[ebuild N ] net-libs/nodejs-22.3.0:0/22::gentoo USE="icu inspector lto npm snapshot ssl system-icu system-ssl -corepack -debug -doc -pax-kernel -test" 0 KiB
[ebuild N ] app-arch/snappy-1.1.10-r1:0/1.1::gentoo USE="-test" 1080 KiB
[nomerge ] net-libs/nodejs-22.3.0:0/22::gentoo USE="icu inspector lto npm snapshot ssl system-icu system-ssl -corepack -debug -doc -pax-kernel -test"
[binary N ] dev-libs/simdjson-3.9.1-1:0/22::gentoo USE="all-impls -test -tools" 0 KiB
[binary N ] net-libs/ngtcp2-1.5.0-1::gentoo USE="gnutls (-openssl) (-ssl) -static-libs -test" 0 KiB
Total: 16 packages (14 new, 2 in new slots, 2 binaries), Size of downloads: 637055 KiB
!!! The following binary packages have been ignored due to non matching USE:
=net-libs/nodejs-22.3.0 -lto
NOTE: The --binpkg-respect-use=n option will prevent emerge
from ignoring these binary packages if possible.
Using --binpkg-respect-use=y will silence this warning.
rpi5 ~ # Thankspingtoo wrote:I will use a sample out to illustrate the idea. Notice I also include -k option to get binary packages.jcb__ wrote:The -t for tree that shows all packages that will be installed or dependencies ? qdepends or equery dosen't show me anything like thatThose with word "nomerge" are information-only. it try to help you understand how others got pull in.Code: Select all
rpi5 ~ # emerge -pvtk qtwebengine These are the packages that would be merged, in reverse order: Calculating dependencies... done! Dependency resolution took 10.77 s (backtrack: 0/20). [ebuild N ] dev-qt/qtwebengine-6.7.2:6/6.7.2::gentoo USE="alsa jumbo-build opengl pulseaudio system-icu vulkan widgets -accessibility -bindist -custom-cflags -designer -geolocation -kerberos -pdfium -qml -screencast -test -vaapi -webdriver" 537985 KiB [ebuild N ] dev-qt/qtdeclarative-6.7.2:6/6.7.2::gentoo USE="jit network opengl sql ssl svg vulkan widgets -accessibility (-qmlls)" 34795 KiB [ebuild N ] dev-qt/qtshadertools-6.7.2:6/6.7.2::gentoo USE="-test" 1086 KiB [ebuild NS ] dev-qt/qtsvg-6.7.2:6/6.7.2::gentoo [5.15.14:5/5.15::gentoo] USE="-test (-debug%)" 1750 KiB [ebuild N ] dev-qt/qtwebchannel-6.7.2:6/6.7.2::gentoo USE="-qml -test" 202 KiB [nomerge ] dev-qt/qtwebengine-6.7.2:6/6.7.2::gentoo USE="alsa jumbo-build opengl pulseaudio system-icu vulkan widgets -accessibility -bindist -custom-cflags -designer -geolocation -kerberos -pdfium -qml -screencast -test -vaapi -webdriver" [nomerge ] dev-qt/qtbase-6.7.2:6/6.7.2::gentoo USE="X concurrent cups dbus gtk gui icu libinput libproxy network nls opengl sql sqlite ssl udev vulkan wayland widgets xml (zstd) -accessibility -brotli -eglfs -evdev -gles2-only -gssapi -mysql (-oci8) -odbc -postgres (-renderdoc) -sctp -test -tslib" [ebuild N ] dev-qt/qttranslations-6.7.2:6/6.7.2::gentoo 1512 KiB [ebuild N ] dev-qt/qttools-6.7.2:6/6.7.2::gentoo USE="assistant linguist opengl qdbus vulkan widgets (zstd) -clang -designer -distancefieldgenerator -gles2-only -pixeltool -qdoc -qml -qtattributionsscanner -qtdiag -qtplugininfo" LLVM_SLOT="17 -15 -16 (-18)" 8809 KiB [ebuild NS ] dev-qt/qtwayland-6.7.2-r1:6/6.7.2::gentoo [5.15.14:5/5.15.14::gentoo] USE="vulkan -accessibility% -compositor -qml% -test (-debug%)" 1097 KiB [ebuild N ] dev-qt/qtbase-6.7.2:6/6.7.2::gentoo USE="X concurrent cups dbus gtk gui icu libinput libproxy network nls opengl sql sqlite ssl udev vulkan wayland widgets xml (zstd) -accessibility -brotli -eglfs -evdev -gles2-only -gssapi -mysql (-oci8) -odbc -postgres (-renderdoc) -sctp -test -tslib" 48208 KiB [ebuild N ] dev-python/html5lib-1.1-r2::gentoo USE="-test" PYTHON_TARGETS="python3_12 (-pypy3) -python3_10 -python3_11 (-python3_13)" 266 KiB [ebuild N ] dev-python/webencodings-0.5.1-r2::gentoo USE="-test" PYTHON_TARGETS="python3_12 (-pypy3) -python3_10 -python3_11 (-python3_13)" 10 KiB [nomerge ] dev-qt/qtwebchannel-6.7.2:6/6.7.2::gentoo USE="-qml -test" [nomerge ] dev-qt/qtbase-6.7.2:6/6.7.2::gentoo USE="X concurrent cups dbus gtk gui icu libinput libproxy network nls opengl sql sqlite ssl udev vulkan wayland widgets xml (zstd) -accessibility -brotli -eglfs -evdev -gles2-only -gssapi -mysql (-oci8) -odbc -postgres (-renderdoc) -sctp -test -tslib" [ebuild N ] x11-libs/xcb-util-cursor-0.1.5::gentoo 261 KiB [nomerge ] dev-qt/qtwebengine-6.7.2:6/6.7.2::gentoo USE="alsa jumbo-build opengl pulseaudio system-icu vulkan widgets -accessibility -bindist -custom-cflags -designer -geolocation -kerberos -pdfium -qml -screencast -test -vaapi -webdriver" [ebuild N ] net-libs/nodejs-22.3.0:0/22::gentoo USE="icu inspector lto npm snapshot ssl system-icu system-ssl -corepack -debug -doc -pax-kernel -test" 0 KiB [ebuild N ] app-arch/snappy-1.1.10-r1:0/1.1::gentoo USE="-test" 1080 KiB [nomerge ] net-libs/nodejs-22.3.0:0/22::gentoo USE="icu inspector lto npm snapshot ssl system-icu system-ssl -corepack -debug -doc -pax-kernel -test" [binary N ] dev-libs/simdjson-3.9.1-1:0/22::gentoo USE="all-impls -test -tools" 0 KiB [binary N ] net-libs/ngtcp2-1.5.0-1::gentoo USE="gnutls (-openssl) (-ssl) -static-libs -test" 0 KiB Total: 16 packages (14 new, 2 in new slots, 2 binaries), Size of downloads: 637055 KiB !!! The following binary packages have been ignored due to non matching USE: =net-libs/nodejs-22.3.0 -lto NOTE: The --binpkg-respect-use=n option will prevent emerge from ignoring these binary packages if possible. Using --binpkg-respect-use=y will silence this warning. rpi5 ~ #
Those with word "ebuild" mean emerge will build them (comple/install) on your local machine.
Those with workd "binary" mean emerge will retrire the binary version of the package from your local binary cache or (binhost if you configured one) and perform binary install.
Code: Select all
rpi5 ~ # emerge -pvk qtwebengine
These are the packages that would be merged, in order:
Calculating dependencies... done!
Dependency resolution took 13.62 s (backtrack: 0/20).
[binary N ] net-libs/ngtcp2-1.5.0-1::gentoo USE="gnutls (-openssl) (-ssl) -static-libs -test" 0 KiB
[binary N ] dev-libs/simdjson-3.9.1-1:0/22::gentoo USE="all-impls -test -tools" 0 KiB
[ebuild N ] x11-libs/xcb-util-cursor-0.1.5::gentoo 261 KiB
[ebuild N ] net-libs/nodejs-22.3.0:0/22::gentoo USE="icu inspector lto npm snapshot ssl system-icu system-ssl -corepack -debug -doc -pax-kernel -test" 0 KiB
[ebuild N ] app-arch/snappy-1.1.10-r1:0/1.1::gentoo USE="-test" 1080 KiB
[ebuild N ] dev-python/webencodings-0.5.1-r2::gentoo USE="-test" PYTHON_TARGETS="python3_12 (-pypy3) -python3_10 -python3_11 (-python3_13)" 10 KiB
[ebuild N ] dev-python/html5lib-1.1-r2::gentoo USE="-test" PYTHON_TARGETS="python3_12 (-pypy3) -python3_10 -python3_11 (-python3_13)" 266 KiB
[ebuild N ] dev-qt/qtbase-6.7.2:6/6.7.2::gentoo USE="X concurrent cups dbus gtk gui icu libinput libproxy network nls opengl sql sqlite ssl udev vulkan wayland widgets xml (zstd) -accessibility -brotli -eglfs -evdev -gles2-only -gssapi -mysql (-oci8) -odbc -postgres (-renderdoc) -sctp -test -tslib" 48208 KiB
[ebuild NS ] dev-qt/qtwayland-6.7.2-r1:6/6.7.2::gentoo [5.15.14:5/5.15.14::gentoo] USE="vulkan -accessibility% -compositor -qml% -test (-debug%)" 1097 KiB
[ebuild N ] dev-qt/qttools-6.7.2:6/6.7.2::gentoo USE="assistant linguist opengl qdbus vulkan widgets (zstd) -clang -designer -distancefieldgenerator -gles2-only -pixeltool -qdoc -qml -qtattributionsscanner -qtdiag -qtplugininfo" LLVM_SLOT="17 -15 -16 (-18)" 8809 KiB
[ebuild N ] dev-qt/qttranslations-6.7.2:6/6.7.2::gentoo 1512 KiB
[ebuild N ] dev-qt/qtwebchannel-6.7.2:6/6.7.2::gentoo USE="-qml -test" 202 KiB
[ebuild NS ] dev-qt/qtsvg-6.7.2:6/6.7.2::gentoo [5.15.14:5/5.15::gentoo] USE="-test (-debug%)" 1750 KiB
[ebuild N ] dev-qt/qtshadertools-6.7.2:6/6.7.2::gentoo USE="-test" 1086 KiB
[ebuild N ] dev-qt/qtdeclarative-6.7.2:6/6.7.2::gentoo USE="jit network opengl sql ssl svg vulkan widgets -accessibility (-qmlls)" 34795 KiB
[ebuild N ] dev-qt/qtwebengine-6.7.2:6/6.7.2::gentoo USE="alsa jumbo-build opengl pulseaudio system-icu vulkan widgets -accessibility -bindist -custom-cflags -designer -geolocation -kerberos -pdfium -qml -screencast -test -vaapi -webdriver" 537985 KiB
Total: 16 packages (14 new, 2 in new slots, 2 binaries), Size of downloads: 637055 KiB
!!! The following binary packages have been ignored due to non matching USE:
=net-libs/nodejs-22.3.0 -lto
NOTE: The --binpkg-respect-use=n option will prevent emerge
from ignoring these binary packages if possible.
Using --binpkg-respect-use=y will silence this warning.
rpi5 ~ #
Thanks for the replypingtoo wrote:Another output for same emerge command, please review and see if you can spot the different.Code: Select all
rpi5 ~ # emerge -pvk qtwebengine These are the packages that would be merged, in order: Calculating dependencies... done! Dependency resolution took 13.62 s (backtrack: 0/20). [binary N ] net-libs/ngtcp2-1.5.0-1::gentoo USE="gnutls (-openssl) (-ssl) -static-libs -test" 0 KiB [binary N ] dev-libs/simdjson-3.9.1-1:0/22::gentoo USE="all-impls -test -tools" 0 KiB [ebuild N ] x11-libs/xcb-util-cursor-0.1.5::gentoo 261 KiB [ebuild N ] net-libs/nodejs-22.3.0:0/22::gentoo USE="icu inspector lto npm snapshot ssl system-icu system-ssl -corepack -debug -doc -pax-kernel -test" 0 KiB [ebuild N ] app-arch/snappy-1.1.10-r1:0/1.1::gentoo USE="-test" 1080 KiB [ebuild N ] dev-python/webencodings-0.5.1-r2::gentoo USE="-test" PYTHON_TARGETS="python3_12 (-pypy3) -python3_10 -python3_11 (-python3_13)" 10 KiB [ebuild N ] dev-python/html5lib-1.1-r2::gentoo USE="-test" PYTHON_TARGETS="python3_12 (-pypy3) -python3_10 -python3_11 (-python3_13)" 266 KiB [ebuild N ] dev-qt/qtbase-6.7.2:6/6.7.2::gentoo USE="X concurrent cups dbus gtk gui icu libinput libproxy network nls opengl sql sqlite ssl udev vulkan wayland widgets xml (zstd) -accessibility -brotli -eglfs -evdev -gles2-only -gssapi -mysql (-oci8) -odbc -postgres (-renderdoc) -sctp -test -tslib" 48208 KiB [ebuild NS ] dev-qt/qtwayland-6.7.2-r1:6/6.7.2::gentoo [5.15.14:5/5.15.14::gentoo] USE="vulkan -accessibility% -compositor -qml% -test (-debug%)" 1097 KiB [ebuild N ] dev-qt/qttools-6.7.2:6/6.7.2::gentoo USE="assistant linguist opengl qdbus vulkan widgets (zstd) -clang -designer -distancefieldgenerator -gles2-only -pixeltool -qdoc -qml -qtattributionsscanner -qtdiag -qtplugininfo" LLVM_SLOT="17 -15 -16 (-18)" 8809 KiB [ebuild N ] dev-qt/qttranslations-6.7.2:6/6.7.2::gentoo 1512 KiB [ebuild N ] dev-qt/qtwebchannel-6.7.2:6/6.7.2::gentoo USE="-qml -test" 202 KiB [ebuild NS ] dev-qt/qtsvg-6.7.2:6/6.7.2::gentoo [5.15.14:5/5.15::gentoo] USE="-test (-debug%)" 1750 KiB [ebuild N ] dev-qt/qtshadertools-6.7.2:6/6.7.2::gentoo USE="-test" 1086 KiB [ebuild N ] dev-qt/qtdeclarative-6.7.2:6/6.7.2::gentoo USE="jit network opengl sql ssl svg vulkan widgets -accessibility (-qmlls)" 34795 KiB [ebuild N ] dev-qt/qtwebengine-6.7.2:6/6.7.2::gentoo USE="alsa jumbo-build opengl pulseaudio system-icu vulkan widgets -accessibility -bindist -custom-cflags -designer -geolocation -kerberos -pdfium -qml -screencast -test -vaapi -webdriver" 537985 KiB Total: 16 packages (14 new, 2 in new slots, 2 binaries), Size of downloads: 637055 KiB !!! The following binary packages have been ignored due to non matching USE: =net-libs/nodejs-22.3.0 -lto NOTE: The --binpkg-respect-use=n option will prevent emerge from ignoring these binary packages if possible. Using --binpkg-respect-use=y will silence this warning. rpi5 ~ #
I am not able to understand this question. I got a feeling you moved away from your original question. I am under impression you want to know emerge show you how/what it will do to arrive your goal (build the argument=package).all the ebuilds (packages) are just regular no indents nothing. meaning they aren't deps probably ?
Hello,I am under impression you want to know emerge show you how/what it will do to arrive your goal (build the argument=package).
emerge vs ebuild.jcb__ wrote:Hello,I am under impression you want to know emerge show you how/what it will do to arrive your goal (build the argument=package).
Sorry if i'm not articulating this the way it should be coming out..
I want to know how emerge picks what the depenancies are and what packages to use.. when i use tools like qdepends and equery none of them show me the packages that emerge uses. I Just want to know the mechanics
Thanks
Joe
Thanks for that explinationemerge vs ebuild.
Emerge use a configuration file that describe what need to be done in order to fulfill the command line argument. The configuration file known as "ebuild".
Ebuild are provided by Gentoo developer/maintainer that base on the upstream program/application developer defined requirement and Gentoo's Portage guidance choose use "USE" flags to control optional components for the given program/application use during build/run time.
Sometime packages show in emerge output are build time requirement. So qdepends and equery may not show them because it is not necessary required for using the package.
A simple build time requirement would be language compiler. it is required for building the package, however it is not required for running the package.
It creates a graph based on dependencies which reflects what is already installed and what the desired package also depends on which is not yet installed. It is a DAG (directed acyclic graph) meaning it has a topological order. Topological order is an order of vertices such that if an edge u -> v exists, v never comes before u in the sequence. Here v and u are packages and an edge v -> u is a dependency, meaning u depends on v. I might be wrong about the order as I'm not familiar with the particular implementation, the idea is the same.jcb__ wrote: Thanks
I'm really trying to understand emerge and how it works.