Opened 3 years ago

Closed 3 years ago

#62972 closed defect (fixed)

cmake, clang-9.0: circular dependency

Reported by: ryandesign (Ryan Carsten Schmidt) Owned by: jmroot (Joshua Root)
Priority: Normal Milestone:
Component: ports Version: 2.7.1
Keywords: legacy-os Cc: jeremyhu (Jeremy Huddleston Sequoia), larryv (Lawrence Velázquez), kencu (Ken), michaelld (Michael Dickens)
Port: cmake, clang-9.0

Description

On Snow Leopard:

clang-9.0 depends on cmake:

Full Name: clang-9.0 @9.0.1_4+defaultlibcxx+emulated_tls+libstdcxx
Extract Dependencies: xz
Build Dependencies:   cmake, cctools, pkgconfig, cctools, clang-3.7
Library Dependencies: libxml2, libomp, llvm-9.0, python27, libcxx
Runtime Dependencies: clang_select, ld64, cctools

cmake eventually depends on clang-9.0:

The following ports are dependencies of cmake @3.19.8_0:
  clang-3.7
    xz
      clang-3.4
        cctools
          libunwind-headers
            xz-bootstrap
          llvm-3.4
            libffi
              expect
                automake
                  autoconf
                    gettext
                      libiconv
                        gperf
                          libcxx
                      ncurses
                    m4
                      clang-9.0
                        cmake
                          curl
                            pkgconfig
                            libidn2
                              libunistring
                                perl5
                                  perl5.28
                                    db48
                                    gdbm
                                      readline
                                texinfo
                                  help2man
                                    perl5.30
                                    p5.30-locale-gettext
                                libtool
                                  xattr
                                    unzip
                            libpsl
                              python39
                                bzip2
                                expat
                                  lzip
                                libedit
                                openssl
                                  zlib
                                sqlite3
                                python_select
                                python3_select
                              glib2
                                libxml2
                                  icu
                                    python27
                                      python2_select
                                pcre
                            zstd
                              lz4
                            curl-ca-bundle
                          libarchive
                            lzo2
                          libuv
                            legacy-support
                        libomp
                        llvm-9.0
                          xar
                          llvm_select
                        clang_select
                        ld64
                          ld64-127
                            libmacho-headers
                tcl
              dejagnu
            ncurses-bootstrap
        python27-bootstrap
          pkgconfig-bootstrap
            libiconv-bootstrap
              gperf-bootstrap
          gettext-bootstrap
    llvm-3.7

Change History (4)

comment:1 Changed 3 years ago by kencu (Ken)

thanks, I expected this to eventually happen but didn't see it had already happened.

I invented cmake-bootstrap for exactly this reason.

I'm cleaning up some llvm/clang weirdness, like the reliance on libxml2 which brings in ICU is going to be removed. I'll fix this at the same time.

comment:2 Changed 3 years ago by kencu (Ken)

If we removed xz and used xz-bootstrap instead, I wonder if that would eliminate this dep (or if it would just come up again another way).

xz has a very large amount of baggage for being a simple decompressor...

comment:3 Changed 3 years ago by jmroot (Joshua Root)

Note that the circular dependency illustrated here is via expect, which is only a test dependency of libffi. It's not possible to tell if there are other circular deps just from this rdeps output unfortunately.

comment:4 Changed 3 years ago by jmroot (Joshua Root)

Owner: set to jmroot
Resolution: fixed
Status: newclosed

In f480c3dc452b561e6cfd9f1acf49d331eae2f111/macports-ports (master):

m4: use clang_dependency portgroup

Fixes: #62972

Note: See TracTickets for help on using tickets.