id = 2209 title = "no 'system' llibfdt (or too old), subprojects/dtc/ populated, ./configure --disable-download fails" state = "closed" created_at = "2024-03-05T18:21:51.436Z" closed_at = "2024-03-08T09:15:08.175Z" labels = [] url = "https://gitlab.com/qemu-project/qemu/-/issues/2209" host-os = "Linux -- CentOS7 w/ old dtc, Ubuntu w/o dtc, Fedora w/o dtc" host-arch = "x86_64" qemu-version = "commit db596ae19040574e41d086e78469014191d7d7fc (HEAD -> master, origin/staging, origin/master, origin/HEAD)" guest-os = "n/a" guest-arch = "n/a" description = """./configure ... --disable-download, with subprojects/ pre-populated, fails.""" reproduce = """1. ensure libfdt/dtc files/libs/binaries are *not* found in system 2. have subprojects/dtc pre-populated 3. ./configure --target-list=riscv32-softmmu --prefix=/opt/riscv --enable-debug --without-default-features --without-default-devices --disable-download configure fails with: ``` ../meson.build:3171:13: ERROR: C shared or static library 'fdt' not found A full log can be found at /home/too/vc/ext/qemu/build/meson-logs/meson-log.txt ERROR: meson setup failed ``` If I outcomment the following lines in meson.build: ``` #if get_option('wrap_mode') == 'nodownload' # fdt_opt = 'system' #endif ``` Then the above command line works (with --disable-download)""" additional = """The case is where one wants to ensure that configure does not try to access network while doing its job. And in a system where dtc/libfdt is not available, (or is too old, line in Centos/RHEL 7) one has dowloaded the files already in subprojects/dtc/. The meson.build clearly sets (as of 2024-03-05) expectation that dtc/libfdt/ has to come from 'system' if 'wrap_mode' is set to 'nodownload'. Without this check it it works nicely -- and if subprojects/dtc/ was not populated, the error message is ``` Library fdt found: NO ../meson.build:3187:18: ERROR: Automatic wrap-based subproject downloading is disabled A full log can be found at /home/too/vc/ext/qemu/build/meson-logs/meson-log.txt ERROR: meson setup failed ``` So -- to me -- that looks like it could be a suitable solution to this problem."""