Opened 2 years ago

Last modified 9 months ago

#64017 new enhancement

add a way to get rdeps of an installed version of a port

Reported by: ballapete (Peter "Pete" Dyballa) Owned by:
Priority: Normal Milestone:
Component: base Version: 2.7.1
Keywords: Cc: mascguy (Christopher Nielsen), ernstki (Kevin Ernst)
Port:

Description

The command port rdeps gtk-doc reports here:

The following ports are dependencies of gtk-doc @1.32_1+python39:
  xz
    libiconv
      gperf
    gettext
      ncurses
  pkgconfig
  glib2
    libxml2
      icu
      zlib
    meson
      py38-setuptools
        py-bootstrap-modules
        python38
          bzip2
          expat
          libedit
          libffi
            expect
              automake
                autoconf
                  m4
              tcl
            dejagnu
          openssl
            openssl3
          sqlite3
          python_select
          python3_select
      ninja
        re2c
          bison
            bison-runtime
    pcre
  libxslt
  docbook-xml
    xmlcatmgr
    docbook-xml-4.1.2
      unzip
      docbook-xml-4.2
    docbook-xml-4.3
    docbook-xml-4.4
    docbook-xml-4.5
    docbook-xml-5.0
  docbook-xsl-nons
  itstool
    gawk
    py38-libxml2
  python39
  py39-anytree
    py39-setuptools
    py39-six
      py39-pytest
        py39-setuptools_scm
          py39-packaging
            py39-parsing
            py39-pretend
          py39-tomli
        py39-attrs
          py39-hypothesis
            py39-sortedcontainers
          py39-zopeinterface
            py39-zope-event
              py39-nose
                nosetests_select
            py39-pip
              pip_select
        py39-iniconfig
        py39-pluggy
          py39-py
        py39-toml
        pytest_select
  py39-lxml
  py39-pygments
    pygments_select
  py39-mock

refers to some illusory port named "gtk-doc @1.32₁+python39". I have installed gtk-doc @1.32_1+pdf+python38 – why is port not using the actually installed port for reference? This behaviour would make more sense for me, when I try to find out why python39 gets installed when I am upgrading a port, emacs-app-devel for example. A help would be to use for example -i or -d to direct port rdeps into the proper direction – either information about the -installed or the -default version.

Change History (9)

comment:1 Changed 2 years ago by ballapete (Peter "Pete" Dyballa)

And it would make only sense, when port rdeps would use the whole dependency line down either this or that version. See for example this nonsense where not a single port is installed the uses python39:

pete 394 /\ port rdeps gtk-doc @1.32_1+pdf+python38
The following ports are dependencies of gtk-doc @1.32_1+pdf+python38:
  xz
    libiconv
      gperf
    gettext
      ncurses
  pkgconfig
  glib2
    libxml2
      icu
      zlib
    meson
      py38-setuptools
        py-bootstrap-modules
        python38
          bzip2
          expat
          libedit
          libffi
            expect
              automake
                autoconf
                  m4
              tcl
            dejagnu
          openssl
            openssl3
          sqlite3
          python_select
          python3_select
      ninja
        re2c
          bison
            bison-runtime
    pcre
  libxslt
  docbook-xml
    xmlcatmgr
    docbook-xml-4.1.2
      unzip
      docbook-xml-4.2
    docbook-xml-4.3
    docbook-xml-4.4
    docbook-xml-4.5
    docbook-xml-5.0
  docbook-xsl-nons
  itstool
    gawk
    py38-libxml2
  dblatex
    texlive-latex-extra
      texlive-latex-recommended
        texlive-latex
          texlive-basic
            texlive-common
            texlive-bin
              perl5
                perl5.28
                  db48
                  gdbm
                    readline
              fontconfig
                freetype
                  brotli
                    cmake
                      py39-sphinx
                        py39-docutils
                          py39-setuptools
                            python39
                          docutils_select
                          py39-roman
                        py39-alabaster
                        py39-babel
                          py39-tz
                          py39-pytest
                            py39-setuptools_scm
                              py39-packaging
                                py39-parsing
                                py39-pretend
                              py39-tomli
                            py39-attrs
                              py39-hypothesis
                                py39-sortedcontainers
                              py39-six
                              py39-zopeinterface
                                py39-zope-event
                                  py39-nose
                                    nosetests_select
                                py39-pip
                                  pip_select
                            py39-iniconfig
                            py39-pluggy
                              py39-py
                            py39-toml
                            pytest_select
                          py39-freezegun
                            py39-dateutil
                              py39-pytest-cov
                                py39-coverage
                            py39-mock
                        py39-imagesize
                        py39-jinja2
                          py39-wheel
                            py39-python-install
                          py39-build
                            py39-pep517
                          py39-markupsafe
                        py39-pygments
                          pygments_select
                        py39-requests
                          py39-charset-normalizer
                          py39-idna
                          py39-urllib3
                            py39-certifi
                        py39-snowballstemmer
                        sphinx_select
                        py39-sphinxcontrib-applehelp
                        py39-sphinxcontrib-devhelp
                        py39-sphinxcontrib-htmlhelp
                        py39-sphinxcontrib-jsmath
                        py39-sphinxcontrib-serializinghtml
                        py39-sphinxcontrib-qthelp
                      py39-sphinxcontrib-websupport
                      libcxx
                      curl
                        libidn2
                          libunistring
                            texinfo
                              help2man
                                perl5.30
                                p5.30-locale-gettext
                            libtool
                              xattr
                        libpsl
                        zstd
                          lz4
                        curl-ca-bundle
                      libarchive
                        lzo2
                      libuv
                  libpng
                ossp-uuid
              libzzip
                zip
              cairo
                libpixman
                xrender
                  xorg-libX11
                    xorg-xtrans
                    xorg-xorgproto
                    xorg-util-macros
                    xorg-libXdmcp
                    xorg-libXau
                    xorg-libxcb
                      xorg-xcb-proto
                      xorg-libpthread-stubs
                xorg-libXext
                xorg-xcb-util
              graphite2
                py38-fonttools
                  fonttools_select
                  py38-lxml
                  py38-brotli
                  py38-zopfli
                  py38-unicodedata2
              harfbuzz
                gobject-introspection
                  autoconf-archive
                  gtk-doc
                    py38-anytree
                      py38-six
                        py38-pytest
                          py38-setuptools_scm
                            py38-packaging
                              py38-parsing
                              py38-pretend
                            py38-tomli
                          py38-attrs
                            py38-hypothesis
                              py38-sortedcontainers
                            py38-zopeinterface
                              py38-zope-event
                                py38-nose
                              py38-pip
                          py38-iniconfig
                          py38-pluggy
                            py38-py
                          py38-toml
                    py38-pygments
                    py38-mock
                  py38-mako
                    py38-beaker
                    py38-markupsafe
                  py38-markdown
              harfbuzz-icu
              libpaper
              gmp
              mpfr
              potrace
              xorg-libXp
              xpm
                xorg-libXt
                  xorg-libsm
                    xorg-libice
              xorg-libXaw
                groff
                  ghostscript
                    jbig2dec
                    libjpeg-turbo
                      nasm
                    libidn
                    openjpeg
                      tiff
                      lcms2
                      jbigkit
                  psutils
                  netpbm
                    jasper
                    libnetpbm
                  uchardet
                  urw-fonts
                xorg-libXmu
              xorg-libXi
                xorg-libXfixes
        texlive-pictures
    texlive-math-science
      texlive-fonts-recommended
    dejavu-fonts
    ImageMagick
      djvulibre
      libraw
      webp
        giflib
      fftw-3
        gcc11
          cctools
          isl
          ld64
            ld64-xcode
          libmpc
          gcc_select
          libgcc
            libgcc11
      openexr
        ilmbase
      libheif
        dav1d
        gdk-pixbuf2
          shared-mime-info
            xmlto
              getopt
              coreutils
              findutils
              fop
              grep
              gsed
              links
                libevent
        aom
          git
            pcre2
            rsync
              popt
              xxhashlib
            p5.28-authen-sasl
              p5.28-digest-hmac
                p5.28-digest-sha1
              p5.28-gssapi
                kerberos5
                  libcomerr
                  lmdb
            p5.28-error
            p5.28-net-smtp-ssl
              p5.28-io-socket-ssl
                p5.28-io-socket-inet6
                  p5.28-socket6
                  p5.28-io
                p5.28-io-socket-ip
                  p5.28-socket
                  p5.28-module-build
                    p5.28-cpan-meta-yaml
                    p5.28-cpan-meta
                      p5.28-cpan-meta-requirements
                      p5.28-encode
                      p5.28-scalar-list-utils
                      p5.28-version
                    p5.28-inc-latest
                    p5.28-module-metadata
                    p5.28-perl-ostype
                    p5.28-podlators
                      p5.28-pod-simple
                        p5.28-pod-escapes
                p5.28-mozilla-ca
                p5.28-net-libidn
                p5.28-net-ssleay
                  p5.28-test-exception
                    p5.28-sub-uplevel
                  p5.28-test-nowarnings
                  p5.28-test-warn
            p5.28-term-readkey
            p5.28-cgi
              p5.28-test-deep
              p5.28-html-parser
                p5.28-html-tagset
                p5.28-http-message
                  p5.28-try-tiny
                    p5.28-capture-tiny
                    p5.28-sub-name
                      p5.28-devel-checkbin
                        p5.28-extutils-makemaker
                          p5.28-extutils-manifest
                  p5.28-clone
                    p5.28-b-cow
                  p5.28-encode-locale
                  p5.28-http-date
                    p5.28-time-local
                    p5.28-timedate
                  p5.28-io-html
                  p5.28-lwp-mediatypes
                    p5.28-test-fatal
                  p5.28-uri
                    p5.28-test-needs
          yasm
        libde265
        rav1e
          cargo-c
            cargo
              cargo-bootstrap
                rust
                  gmake
                    lzip
                  libgit2
                    libssh2
        x265

Is port really able to install the proper port or upgrade properly the given port?

comment:2 Changed 2 years ago by mascguy (Christopher Nielsen)

Cc: mascguy added

comment:3 Changed 2 years ago by mascguy (Christopher Nielsen)

Bear in mind that any deps based on path: or bin: may cause the results to not completely reflect reality, in terms of what is ultimately installed. That doesn't mean the list is incorrect, but rather, it's based on the default given by such deps.

So my guess is that such deps may be coming into play here.

comment:4 Changed 2 years ago by ballapete (Peter "Pete" Dyballa)

Therefore my wish to make it differentiate between ideal defaults and dirty reality.

comment:5 in reply to:  4 Changed 2 years ago by mascguy (Christopher Nielsen)

Cc: jmroot ryandesign added

Replying to ballapete:

Therefore my wish to make it differentiate between ideal defaults and dirty reality.

I like the idea, at least in principle. But I'm not sure how feasible/realistic that is, given the dynamic nature of everything.

But I'll let @jmroot and @ryandesign speak to it.

comment:6 Changed 2 years ago by jmroot (Joshua Root)

Cc: jmroot removed
Keywords: Monterey removed
Summary: `port rdeps <whatever>` reports faulty dependenciesadd a way to get rdeps of an installed version of a port
Type: requestenhancement

Let's be honest in the summary; the reported deps are not inaccurate, they're just not for the version of the port that you happen to want at this moment.

comment:7 Changed 2 years ago by jmroot (Joshua Root)

Component: portsbase
Port: port removed

comment:8 Changed 2 years ago by ryandesign (Ryan Carsten Schmidt)

Cc: ryandesign removed

comment:9 Changed 9 months ago by ernstki (Kevin Ernst)

Cc: ernstki added
Note: See TracTickets for help on using tickets.