Remove current directory manifest check and continue on failed includes in dmf-get #181
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Two behaviors in dmf-get's manifest handling caused issues: (1) automatically using
manifest.dmmfrom the current directory when no manifest was specified, and (2) stopping all parsing when an included manifest failed to download.Changes
Removed current directory fallback in
FindManifest(): Now only checks$DMOD_DMF_DIRand$DMOD_DMFC_DIRbefore falling back to default URL. The automatic check for./manifest.dmmwas removed.Continue on failed
$include: When a$includedirective fails to download, the parser now logs a warning and continues processing subsequent entries instead of aborting.Security fix: Error messages are copied to a local buffer before logging to prevent format string vulnerabilities.
Example
Before: If
manifest.dmmexisted in the current directory, it would be used implicitly:After: Current directory is ignored, uses configured or default manifest:
$ dmf-get mymodule # Uses $DMOD_MANIFEST or default URLManifest with failed include now continues:
Warning
Firewall rules blocked me from connecting to one or more addresses (expand for details)
I tried to connect to the following addresses, but was blocked by firewall rules:
esm.ubuntu.com/usr/lib/apt/methods/https /usr/lib/apt/methods/https(dns block)example.com/home/REDACTED/work/dmod/dmod/build/bin/tools/dmf-get /home/REDACTED/work/dmod/dmod/build/bin/tools/dmf-get -m test_manifest.dmm testmod2 k/dm�� rogress-dir=/hom-I dmatch.cpp.o on -verbose= est d_resource.c.o dencies k/dm�� /home/REDACTED/wor-I ts_dmod_ldr.cpp./home/REDACTED/work/dmod/dmod/build /usr/local/sbin/-I /dmod/dmod/build/bin/sh /home/REDACTED/wor-c mf-get/CMakeFilecd /home/REDACTED/work/dmod/dmod/build/_deps/googletest-build/googlemock && /usr/local/bin/cmake -E cmake_link_script CMakeFiles/gmock_main.dir/link.txt --verbose= .cpp.o"(dns block)../../build/bin/tools/dmf-get ../../build/bin/tools/dmf-get -m manifest.dmm -o output testmod /home/REDACTED/work/dmod/dmod/tools/lib/dmod_manifest -I /home/REDACTED/work/dmod/dmod/tools/lib/dmod_dependencies --64 -o CMakeFiles/tests_dmod_manifest.dir/lib/tests_dmod_manifest.cpp.o /hom�� sr/bin/c++ -DDMO-I src/system/CMake/home/REDACTED/work/dmod/dmod/tools/lib/dmod_manifest on get est p.o dencies(dns block)../../build/bin/tools/dmf-get ../../build/bin/tools/dmf-get -m manifest_vars.dmm -t arch/x86_64 -o output module1 /home/REDACTED/work/dmod/dmod/tools/lib/dmod_dependencies --64 -o CMakeFiles/tests_dmod_manifest.dir/lib/tests_dmod_manifest.cpp.o /hom�� ch=" --green --progress-dir=/homtests_dmod_file_readline src/system/CMakeFiles/dmod_syste../lib/libgtest.a on uild/CMakeFiles as est p.o dencies(dns block)this-will-definitely-fail.invalid/home/REDACTED/work/dmod/dmod/build/bin/tools/dmf-get /home/REDACTED/work/dmod/dmod/build/bin/tools/dmf-get -m test_manifest.dmm testmod2 k/dm�� rogress-dir=/hom-I dmatch.cpp.o on -verbose= est d_resource.c.o dencies k/dm�� /home/REDACTED/wor-I ts_dmod_ldr.cpp./home/REDACTED/work/dmod/dmod/build /usr/local/sbin/-I /dmod/dmod/build/bin/sh /home/REDACTED/wor-c mf-get/CMakeFilecd /home/REDACTED/work/dmod/dmod/build/_deps/googletest-build/googlemock && /usr/local/bin/cmake -E cmake_link_script CMakeFiles/gmock_main.dir/link.txt --verbose= .cpp.o"(dns block)/home/REDACTED/work/dmod/dmod/build/bin/tools/dmf-get /home/REDACTED/work/dmod/dmod/build/bin/tools/dmf-get -m test_manifest.dmm testmod2 ork/�� etest-build/googlemock && /usr/local/bin/cmake -P CMakeFiles/gmock_main.dir/cmake_clean_target.c/usr/bin/gmake od_cwd.cpp.o on ork/dmod/dmod/tonproc est k/dmod/dmod/build/_deps/googlete-f dencies k/dm�� system /tests_dmod_rawmem.dir/build.make s/lib/dmod_version --64 d CMakeFiles/todmd-f common(dns block)If you need me to access, download, or install something from one of these locations, you can either:
Original prompt
💬 We'd love your input! Share your thoughts on Copilot coding agent in our 2 minute survey.