Philip Kaludercic writes: > Joseph Turner writes: > >>>> +(defun package-vc--make (pkg-spec dir) >>>> + "Process :make and :shell-command spec arguments." >>>> + (let ((target (plist-get pkg-spec :make)) >>>> + (cmd (plist-get pkg-spec :shell-command))) >>>> + (when (or cmd target) >>>> + (with-current-buffer (get-buffer-create " *package-vc make*") >>> ^ >>> should the package name >>> be mentioned here? >> >> I like this idea, but IIUC package-vc--make would then need to take an >> extra arg, since pkg-spec doesn't contain the :name of the package. We >> could also add :name to the pkg-spec plist? > > I wouldn't be in favour of that, I think that passing the name as a > separate argument would be a better solution. I agree. >> For comparison, package-vc--build-documentation creates a buffer called >> " *package-vc doc*" without the package name. > > The difference I see here is that documentation usually builds fine, > while :make or :shell-command have a higher chance of failing because > some software is missing, especially if people don't use :make the way > it is used on the ELPA server but to build external dependencies (I'm > thinking of mail clients like notmuch) That makes sense to me. In the attached patch, I pass pkg-desc to package-vc--make instead just name. Want me to submit a separate patch which adds the package name to the " *package-vc doc*" buffer name? >>>> + target (buffer-name))))))) >>>> + >>>> (declare-function org-export-to-file "ox" (backend file)) >>>> >>>> (defun package-vc--build-documentation (pkg-desc file) >>>> @@ -486,6 +515,9 @@ documentation and marking the package as installed." >>>> ;; Generate package file >>>> (package-vc--generate-description-file pkg-desc pkg-file) >>>> >>>> + ;; Process :make and :shell-command arguments before building documentation >>>> + (when package-vc-process-make (package-vc--make pkg-spec pkg-dir)) >>> >>> Wasn't the plan to allow `package-vc-process-make' to either be a >>> generic "build-anything" or a selective listing of packages where we >>> allow :make and :shell-command to be executed? >> >> Let me know if the attached commit accomplishes what you had in mind. > > Yes, that (or rather the newest version from a different message) looks good. > >>>> + >>>> ;; Detect a manual >>>> (when (executable-find "install-info") >>>> (dolist (doc-file (ensure-list (plist-get pkg-spec :doc))) >>> >>> Otherwise this looks good, but I haven't tried it out yet. >> >> I fixed up a couple other issues: >> >> - removed unnecessary dir arg to package-vc--make >> - added function arg to the docstring for package-vc--make >> >> I'm not sure if the customization type for package-vc-process-make is >> correct. Please double check that. >> >> Also, should users be able to run :make and :shell-command args defined >> in a spec passed into package-vc-install? > > Yes, is that currently not supported? Nevermind! It is supported. I didn't notice that package-vc--unpack adds the user-defined pkg-spec to package-vc-selected-packages just before calling package-vc--unpack-1. Best, Joseph