Hello, Edouard Klein <[email protected]> writes:
> Now run guix time-machine --channels=/tmp/first-bad.scm -- system image -t > qcow2 -e '(use-modules (beaver system)) (minimal-ovh)' > > and you'll get "In procedure struct-vtable: Wrong type argument in > position 1 (expecting struct): #<syntax-transformer > dhcp-client-service-type>" The ‘define-deprecated’ macro turns the given symbol into a macro; that macro raises a warning a compile time (in a way, this is similar to the ‘deprecated’ attribute in GCC). Since this is a macro, it must be in scope for any user that references it. Likewise, any file built against the previous definition (where ‘dhcp-client-service-type’ was *not* a macro) must be rebuilt against the new one; otherwise, you get the error above where the user expected ‘dhcp-client-service-type’ to resolve to a struct and now it resolves to a macro (aka. “syntax transformer”). HTH! Ludo’.
