The bottom line of the following text is the question: Is it possible to combine 2 (or more) build systems for building a package? I've noticed that the latest 'emacs-pdf-tools' depends on 'let-alist' library (my bad that I didn't notice this during update to 0.70), so I added it to the propagated-inputs (as we do with emacs dependencies). However, adding a new input is not enough here, because a directory with "let-alist.el" is not seen during elisp compilation, so it should be added explicitly to 'emacs-byte-compile-directory' procedure. The root problem here is this: pdf-tools package consists of 2 parts: 1. Some C code (placed in "server" subdir) used to make an auxiliary binary for working with pdf. This server part provides a usual GNU build system, which is gladly used in our "emacs-pdf-tools" package. 2. Elisp code: to handle this part (to compile and install it) we use 'install-lisp' phase. For the elisp side, we actually duplicate (more or less) what is already done by emacs-build-system. So it would be a perfect solution for this package if there was a way to perform a build twice: at first using emacs-build-system to handle elisp part, and then using gnu-build-system for the C part. I did a little experiment: I thought maybe it could be possible just to pick some build phases from (guix build emacs-build-system), so I added this module to #:modules and #:imported-modules and added phases like this: (modify-phases %standard-phases ;; ... (add-after 'build 'emacs-build (@@ (guix build emacs-build-system) build)) (add-after 'install 'emacs-install (@@ (guix build emacs-build-system) install))) The package was built successfully, but the result was not good, because both gnu-build-system and emacs-build-system import %standard-phases :-)