 (defun quelpa-interactive-candidate ()
   "Query the user for a recipe and return the name."
   (when (quelpa-setup-p)
-    (let  ((recipes (directory-files
-                     (expand-file-name "recipes" quelpa-melpa-dir)
+    (let  ((recipes (cl-loop
+                     for store in quelpa-melpa-recipe-stores
+                     if (stringp store)
                      ;; this regexp matches all files except dotfiles
-                     nil "^[^.].+$")))
+                     append (directory-files store nil "^[^.].+$")
+                     else if (listp store)
+                     append store)))
       (intern (completing-read "Choose MELPA recipe: "
                                recipes nil t)))))
 

  (interactive)
  (when (quelpa-setup-p)
    (let ((quelpa-upgrade-p t))
      (quelpa-self-upgrade)
      (setq quelpa-cache
            (cl-remove-if-not #'package-installed-p quelpa-cache :key #'car))
      (mapc (lambda (item)

    (unless (or (and (assq name package-alist) (not quelpa-upgrade-p))
                (and (not config)
                     (quelpa-message t "no recipe found for package `%s'" name)))
      (if (member (plist-get config :fetcher) '(wiki bzr cvs darcs fossil svn))
          (user-error
           "The `%s' fetcher is not supported anymore.
It has been removed from the `package-build' library: cannot install `%s'"
           (plist-get config :fetcher)
           name)
        (let ((version (condition-case err
                           (package-build-checkout name config dir)
                         (error "failed to checkout `%s': `%s'"
                                name (error-message-string err)))))
          (when (quelpa-version>-p name version)
            version))))))

(defun quelpa-build-package (rcp)
  "Build a package from the given recipe RCP.
