Skip to content

Conversation

Copy link
Contributor

Copilot AI commented Dec 19, 2025

Two behaviors in dmf-get's manifest handling caused issues: (1) automatically using manifest.dmm from 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_DIR and $DMOD_DMFC_DIR before falling back to default URL. The automatic check for ./manifest.dmm was removed.

  • Continue on failed $include: When a $include directive 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.dmm existed in the current directory, it would be used implicitly:

$ cd /tmp/some-project
$ ls manifest.dmm  # exists
$ dmf-get mymodule  # Would use ./manifest.dmm (unexpected)

After: Current directory is ignored, uses configured or default manifest:

$ dmf-get mymodule  # Uses $DMOD_MANIFEST or default URL

Manifest with failed include now continues:

module1@1.0 https://example.com/m1.dmf
$include https://unavailable.example.com/manifest.dmm  # fails but continues
module2@1.0 https://example.com/m2.dmf  # still processed

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
    • Triggering command: /usr/lib/apt/methods/https /usr/lib/apt/methods/https (dns block)
  • example.com
    • Triggering command: /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)
    • Triggering command: ../../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)
    • Triggering command: ../../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
    • Triggering command: /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)
    • Triggering command: /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

This section details on the original issue you should resolve

<issue_title>Usunąć czytanie manifestu z aktualnego folderu w dmf-get</issue_title>
<issue_description>Jak dmf-get znajdzie manifest w aktualnym folderze to go używa, co jest strasznie wkurzające. Ponadto jak nie uda mu się ściągnąć jakiegoś manifestu include'owanego to chyba przerywa parsowanie co również nie powinno mieć miejsca</issue_description>

Comments on the Issue (you are @copilot in this section)


💬 We'd love your input! Share your thoughts on Copilot coding agent in our 2 minute survey.

Copilot AI and others added 4 commits December 19, 2025 18:55
Co-authored-by: JohnAmadis <17320783+JohnAmadis@users.noreply.github.com>
Co-authored-by: JohnAmadis <17320783+JohnAmadis@users.noreply.github.com>
Co-authored-by: JohnAmadis <17320783+JohnAmadis@users.noreply.github.com>
Co-authored-by: JohnAmadis <17320783+JohnAmadis@users.noreply.github.com>
Copilot AI changed the title [WIP] Remove reading manifest from current folder in dmf-get Remove current directory manifest check and continue on failed includes in dmf-get Dec 19, 2025
Copilot AI requested a review from JohnAmadis December 19, 2025 19:08
@JohnAmadis JohnAmadis marked this pull request as ready for review December 26, 2025 20:21
@JohnAmadis JohnAmadis merged commit 4597b43 into develop Dec 26, 2025
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Usunąć czytanie manifestu z aktualnego folderu w dmf-get

2 participants