deliver-asd-op: missing dependencies in generated asd file
When using 'deliver-asd-op', the generated asd file doesn't contain the dependencies that were declared in the original asd file. Because of this, trying to load the bundle fails.
Here's an example with a dummy system (with ASDF 3.3.3, SBCL 2.0.0, GNU/Linux x86-64).
hello.asd:
(defsystem "hello"
:name "hello"
:version "1"
:license "GPL-3"
:author "glv"
:defsystem-depends-on ("alexandria")
:depends-on ("bst")
:components ((:file "hello")))
hello.lisp:
(defpackage :hello
(:use :cl)
(:export #:f
#:g
#:hello-world))
(in-package :hello)
(defun f (x)
(bst:bst-balance x))
(defun g (x)
(alexandria:iota x))
(defun hello-world ()
(write-line "Hello, World!"))
The bundle is compiled with:
sbcl --non-interactive --eval '(asdf:load-asd (truename "hello.asd"))' --eval '(asdf:operate (quote asdf:deliver-asd-op) "hello")'
And the generated asd file is:
;;; Prebuilt ASDF definition for system hello
;;; Built for SBCL 2.0.0 on a Linux/X86-64 5.4.14
(DEFSYSTEM "hello"
:CLASS
ASDF/BUNDLE:PREBUILT-SYSTEM
:VERSION
"1"
:DEPENDS-ON
NIL
:COMPONENTS
((:COMPILED-FILE "hello--system")))
Here I would expect to see ("bst")
or ("alexandria" "bst")
instead of NIL
as dependency.
Side question: If a system having both defsystem-depends-on ("a" "b")
and depends-on ("c" "d")
declarations is compiled as a bundle, when loading this bundle, are all the dependencies (a, b, c, d) expected to be loaded and usable in the library, or only the ones in 'depends-on' (c, d)?