From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Stefan Monnier Newsgroups: gmane.emacs.devel Subject: Re: Documentation on elpa.gnu.org Date: Sat, 13 Aug 2022 10:58:29 -0400 Message-ID: References: <87fsi3s0gi.fsf@posteo.net> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="35175"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/29.0.50 (gnu/linux) Cc: emacs-devel@gnu.org To: Philip Kaludercic Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Sat Aug 13 16:59:44 2022 Return-path: Envelope-to: ged-emacs-devel@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1oMsc3-0008yY-AK for ged-emacs-devel@m.gmane-mx.org; Sat, 13 Aug 2022 16:59:43 +0200 Original-Received: from localhost ([::1]:41054 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1oMsc2-0004AC-4P for ged-emacs-devel@m.gmane-mx.org; Sat, 13 Aug 2022 10:59:42 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:47966) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oMsb5-0003PZ-54 for emacs-devel@gnu.org; Sat, 13 Aug 2022 10:58:43 -0400 Original-Received: from mailscanner.iro.umontreal.ca ([132.204.25.50]:42675) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oMsb0-0001dr-HU for emacs-devel@gnu.org; Sat, 13 Aug 2022 10:58:42 -0400 Original-Received: from pmg3.iro.umontreal.ca (localhost [127.0.0.1]) by pmg3.iro.umontreal.ca (Proxmox) with ESMTP id DF824440621; Sat, 13 Aug 2022 10:58:36 -0400 (EDT) Original-Received: from mail01.iro.umontreal.ca (unknown [172.31.2.1]) by pmg3.iro.umontreal.ca (Proxmox) with ESMTP id B3A37440663; Sat, 13 Aug 2022 10:58:30 -0400 (EDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=iro.umontreal.ca; s=mail; t=1660402710; bh=CarWY8ZF5pt9OJh869w6GH/9EJYl0rvZwp75Tlqqo4M=; h=From:To:Cc:Subject:In-Reply-To:References:Date:From; b=mTM/xRdvDCRVmTKOkn0xa0P+hyO2HJuzH43XAFL/tmcELxA6/wHXbBiD3c037imRo fLXKQXenjoa4iiw0zhhmJxIZscLJQTspmPlGyxI5xYC4ZbXJ/HAVZneBFYiGjhzIT0 MqTpY3OcGM83YU9WSg7W31ATbgcNlZ7JfJhiKvsjDcta15iKHkY+hstZOHXpK2DKOv oDvv+NTEJcE+hIZ6YvWQQ2HgOKil7vizx5SCXRLZawElsHFCMotIoYSE+JPEbjKbLB CIochAY6UurmONxGQorZnulDpNMzqvnO0LG7K39FntiyDAFFiUQRuVxOC0K3Vt+xT2 cUxQOxcU5MxNA== Original-Received: from pastel (unknown [45.72.195.111]) by mail01.iro.umontreal.ca (Postfix) with ESMTPSA id 389EF120192; Sat, 13 Aug 2022 10:58:30 -0400 (EDT) In-Reply-To: <87fsi3s0gi.fsf@posteo.net> (Philip Kaludercic's message of "Thu, 11 Aug 2022 07:28:45 +0000") Received-SPF: pass client-ip=132.204.25.50; envelope-from=monnier@iro.umontreal.ca; helo=mailscanner.iro.umontreal.ca X-Spam_score_int: -42 X-Spam_score: -4.3 X-Spam_bar: ---- X-Spam_report: (-4.3 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, RCVD_IN_DNSWL_MED=-2.3, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Original-Sender: "Emacs-devel" Xref: news.gmane.io gmane.emacs.devel:293419 Archived-At: Philip Kaludercic [2022-08-11 07:28:45] wrote: > I'd like to link to https://elpa.gnu.org/packages/doc/ and > https://elpa.gnu.org/devel/doc/ from my package README files, to have > some place where I can rely on up-to-date documentation being available. That's indeed part of the intention behind those doc pages. > For Compat, the .../packaged/doc/compat.html link is currently broken, > which is my fault, but I wonder why .../devel/doc/compat.html is out of > date, despite elpa.git being up-to-date > https://git.savannah.gnu.org/cgit/emacs/elpa.git/log/?h=3Dexternals/compa= t. `make build/compat` gives me the error below. > Also, I am not sure if this is a bug, but > https://elpa.gnu.org/packages/doc/README.html appears to (arbitrarily?) > render the documentation for plz. I guess this is not intentional. No, indeed it's not, tho I'm not completely surprised either since we share the single "doc" directory between all the packages: any doc file with a name that's not specific to the package is liable to conflict with that of another package. Stefan =3D=3D=3D=3D=3D=3D=3D=3D Building tarball archive-devel/compat-28.1.2.0.0.2= 0220810.191855.tar... Error: error ("Error-indicating exit code in elpaa--call-sandboxed: compat.texi:220: @menu pointe vers un n=C5=93ud =C2=AB=C2=A0Emacs 24.5=C2= =A0=C2=BB inexistant compat.texi:77: @detailmenu pointe vers un n=C5=93ud =C2=AB=C2=A0Emacs 24.5= =C2=A0=C2=BB inexistant ") debug(error (error "Error-indicating exit code in elpaa--call-sandboxed:\= ncompat.texi:220: @menu pointe vers un n=C5=93ud =C2=AB=C2=A0Emacs 24.5=C2= =A0=C2=BB inexistant\ncompat.texi:77: @detailmenu pointe vers un n=C5=93ud = =C2=AB=C2=A0Emacs 24.5=C2=A0=C2=BB inexistant\n")) signal(error ("Error-indicating exit code in elpaa--call-sandboxed:\ncomp= at.texi:220: @menu pointe vers un n=C5=93ud =C2=AB=C2=A0Emacs 24.5=C2=A0=C2= =BB inexistant\ncompat.texi:77: @detailmenu pointe vers un n=C5=93ud =C2=AB= =C2=A0Emacs 24.5=C2=A0=C2=BB inexistant\n")) error("Error-indicating exit code in elpaa--call-sandboxed:\n%s" "compat.= texi:220: @menu pointe vers un n=C5=93ud =C2=AB=C2=A0Emacs 24.5=C2=A0=C2=BB= inexistant\ncompat.texi:77: @detailmenu pointe vers un n=C5=93ud =C2=AB=C2= =A0Emacs 24.5=C2=A0=C2=BB inexistant\n") (if (eq destination t) (error "Error-indicating exit code in elpaa--call-= sandboxed:\n%s" (buffer-string)) (error "Error-indicating exit code in elpa= a--call-sandboxed")) (if (eq exitcode 0) nil (if (eq destination t) (error "Error-indicating e= xit code in elpaa--call-sandboxed:\n%s" (buffer-string)) (error "Error-indi= cating exit code in elpaa--call-sandboxed"))) (let ((exitcode (apply #'elpaa--call destination "bwrap" (append elpaa--b= wrap-args args)))) (if (eq exitcode 0) nil (if (eq destination t) (error "E= rror-indicating exit code in elpaa--call-sandboxed:\n%s" (buffer-string)) (= error "Error-indicating exit code in elpaa--call-sandboxed")))) (if (not elpaa--sandbox) (apply #'elpaa--call destination args) (elpaa--m= essage "call-sandboxed %S" args) (let ((dd (expand-file-name default-direct= ory))) (setq args (nconc (list "--bind" dd dd) args))) (let ((--dolist-tail= -- (append elpaa--sandbox-ro-binds elpaa--sandbox-extra-ro-dirs))) (while -= -dolist-tail-- (let ((b (car --dolist-tail--))) (if (file-exists-p b) (prog= n (setq b (expand-file-name b)) (setq args (nconc (list "--ro-bind" b b) ar= gs)))) (setq --dolist-tail-- (cdr --dolist-tail--))))) (let ((exitcode (app= ly #'elpaa--call destination "bwrap" (append elpaa--bwrap-args args)))) (if= (eq exitcode 0) nil (if (eq destination t) (error "Error-indicating exit c= ode in elpaa--call-sandboxed:\n%s" (buffer-string)) (error "Error-indicatin= g exit code in elpaa--call-sandboxed"))))) elpaa--call-sandboxed(t "makeinfo" "--no-split" "compat.texi" "-o" "compa= t.info") (progn (elpaa--call-sandboxed t "makeinfo" "--no-split" docfile "-o" info= -file) (message "%s" (buffer-string))) (unwind-protect (progn (elpaa--call-sandboxed t "makeinfo" "--no-split" d= ocfile "-o" info-file) (message "%s" (buffer-string))) (and (buffer-name te= mp-buffer) (kill-buffer temp-buffer))) (save-current-buffer (set-buffer temp-buffer) (unwind-protect (progn (elp= aa--call-sandboxed t "makeinfo" "--no-split" docfile "-o" info-file) (messa= ge "%s" (buffer-string))) (and (buffer-name temp-buffer) (kill-buffer temp-= buffer)))) (let ((temp-buffer (generate-new-buffer " *temp*" t))) (save-current-buff= er (set-buffer temp-buffer) (unwind-protect (progn (elpaa--call-sandboxed t= "makeinfo" "--no-split" docfile "-o" info-file) (message "%s" (buffer-stri= ng))) (and (buffer-name temp-buffer) (kill-buffer temp-buffer))))) (let ((info-file (concat (file-name-sans-extension (file-name-nondirector= y docfile)) ".info"))) (elpaa--temp-file info-file) (let ((temp-buffer (gen= erate-new-buffer " *temp*" t))) (save-current-buffer (set-buffer temp-buffe= r) (unwind-protect (progn (elpaa--call-sandboxed t "makeinfo" "--no-split" = docfile "-o" info-file) (message "%s" (buffer-string))) (and (buffer-name t= emp-buffer) (kill-buffer temp-buffer))))) (if html-dir (progn (elpaa--html-= build-doc pkg-spec docfile html-dir))) (setq docfile info-file)) (progn (let ((info-file (concat (file-name-sans-extension (file-name-nond= irectory docfile)) ".info"))) (elpaa--temp-file info-file) (let ((temp-buff= er (generate-new-buffer " *temp*" t))) (save-current-buffer (set-buffer tem= p-buffer) (unwind-protect (progn (elpaa--call-sandboxed t "makeinfo" "--no-= split" docfile "-o" info-file) (message "%s" (buffer-string))) (and (buffer= -name temp-buffer) (kill-buffer temp-buffer))))) (if html-dir (progn (elpaa= --html-build-doc pkg-spec docfile html-dir))) (setq docfile info-file))) (if (and docfile (string-match "\\.texi\\(nfo\\)?\\'" docfile)) (progn (l= et ((info-file (concat (file-name-sans-extension (file-name-nondirectory do= cfile)) ".info"))) (elpaa--temp-file info-file) (let ((temp-buffer (generat= e-new-buffer " *temp*" t))) (save-current-buffer (set-buffer temp-buffer) (= unwind-protect (progn (elpaa--call-sandboxed t "makeinfo" "--no-split" docf= ile "-o" info-file) (message "%s" (buffer-string))) (and (buffer-name temp-= buffer) (kill-buffer temp-buffer))))) (if html-dir (progn (elpaa--html-buil= d-doc pkg-spec docfile html-dir))) (setq docfile info-file)))) (let* ((elpaa--sandbox-ro-binds (cons default-directory elpaa--sandbox-ro= -binds)) (default-directory (elpaa--dirname dir)) (tmpfiles 'nil)) (if (and= docfile (file-readable-p docfile) (string-match "\\.org\\'" docfile)) (pro= gn (let ((temp-buffer (generate-new-buffer " *temp*" t))) (save-current-buf= fer (set-buffer temp-buffer) (unwind-protect (progn (elpaa--call-sandboxed = t "emacs" "--batch" "-l" "ox-texinfo" "--eval" "(setq vc-follow-symlinks ni= l)" docfile "--eval" "(setq org-babel-confirm-evaluate-answer-no t)" "--eva= l" "(message \"ELPATEXI=3D%s\" (org-texinfo-export-to-texinfo))") (message = "%s" (buffer-string)) (goto-char (point-max)) (if (re-search-backward "ELPA= TEXI=3D\\(.*\\)\n?" nil t) (progn (setq docfile (concat (file-name-director= y docfile) (match-string 1))) (setq tmpfiles (cons docfile tmpfiles)) (elpa= a--temp-file docfile)))) (and (buffer-name temp-buffer) (kill-buffer temp-b= uffer))))))) (if (and docfile (string-match "\\.texi\\(nfo\\)?\\'" docfile)= ) (progn (let ((info-file (concat (file-name-sans-extension (file-name-nond= irectory docfile)) ".info"))) (elpaa--temp-file info-file) (let ((temp-buff= er (generate-new-buffer " *temp*" t))) (save-current-buffer (set-buffer tem= p-buffer) (unwind-protect (progn (elpaa--call-sandboxed t "makeinfo" "--no-= split" docfile "-o" info-file) (message "%s" (buffer-string))) (and (buffer= -name temp-buffer) (kill-buffer temp-buffer))))) (if html-dir (progn (elpaa= --html-build-doc pkg-spec docfile html-dir))) (setq docfile info-file)))) (= if (and docfile (not (string-match "\\.info\\'" docfile))) (progn (error "N= ot a supported doc format: %s" docfile))) (if (and docfile (file-readable-p= docfile) (file-name-directory docfile)) (progn (let ((info-file (file-name= -nondirectory docfile))) (elpaa--temp-file info-file) (copy-file docfile in= fo-file) (setq docfile info-file)))) (mapc #'delete-file tmpfiles) (if (and= docfile (file-readable-p docfile)) (progn (let ((dir-file (expand-file-nam= e "dir"))) (elpaa--temp-file dir-file) (let ((temp-buffer (generate-new-buf= fer " *temp*" t))) (save-current-buffer (set-buffer temp-buffer) (unwind-pr= otect (progn (elpaa--call-sandboxed t "install-info" (concat "--dir=3D" dir= -file) docfile) (message "%s" (buffer-string))) (and (buffer-name temp-buff= er) (kill-buffer temp-buffer))))))))) elpaa--build-Info-1(("compat" :url "https://git.sr.ht/~pkal/compat" :doc = "compat.texi" :auto-sync t :internal--html-docs nil) "compat.texi" "/home/m= onnier/src/emacs/elpa/packages/compat" "/home/monnier/src/emacs/elpa/archiv= e-devel/doc/compat/") (let ((f (car --dolist-tail--))) (elpaa--build-Info-1 pkg-spec f dir html= -dir) (setq --dolist-tail-- (cdr --dolist-tail--))) (while --dolist-tail-- (let ((f (car --dolist-tail--))) (elpaa--build-Inf= o-1 pkg-spec f dir html-dir) (setq --dolist-tail-- (cdr --dolist-tail--)))) (let ((--dolist-tail-- docfiles)) (while --dolist-tail-- (let ((f (car --= dolist-tail--))) (elpaa--build-Info-1 pkg-spec f dir html-dir) (setq --doli= st-tail-- (cdr --dolist-tail--))))) (let ((docfiles (elpaa--get-docfiles pkg-spec)) (html-dir (if elpaa--doc-= subdirectory (progn (elpaa--dirname (car pkg-spec) (expand-file-name elpaa-= -doc-subdirectory tarball-dir)))))) (if html-dir (progn (if (not (file-read= able-p html-dir)) (progn (make-directory html-dir t))))) (plist-put (cdr pk= g-spec) :internal--html-docs nil) (let ((--dolist-tail-- docfiles)) (while = --dolist-tail-- (let ((f (car --dolist-tail--))) (elpaa--build-Info-1 pkg-s= pec f dir html-dir) (setq --dolist-tail-- (cdr --dolist-tail--)))))) elpaa--build-Info(("compat" :url "https://git.sr.ht/~pkal/compat" :doc "c= ompat.texi" :auto-sync t :internal--html-docs nil) "/home/monnier/src/emacs= /elpa/packages/compat" "archive-devel/") (let ((process-environment (elpaa--makeenv vers revision))) (elpaa--make = pkg-spec dir) (elpaa--build-Info pkg-spec dir destdir)) (let* ((destdir (file-name-directory tarball)) (pkgname (car pkg-spec)) (= _ (if (and destdir (not (file-directory-p destdir))) (progn (make-directory= destdir)))) (vers (nth 1 metadata)) (revision (elpaa--select-revision dir = pkg-spec revision-function)) (elpaignore (expand-file-name ".elpaignore" di= r)) (ignores (elpaa--spec-get pkg-spec :ignored-files)) (renames (elpaa--sp= ec-get pkg-spec :renames)) (ldir (elpaa--spec-get pkg-spec :lisp-dir)) (re = (concat "\\`" (regexp-quote pkgname) "-\\([0-9].*\\)\\.\\(tar\\|el\\)\\(\\.= [a-z]*z\\)?\\'")) (oldtarballs (if tarball-only nil (mapcar #'(lambda (file= ) (string-match re file) (cons (match-string 1 file) file)) (directory-file= s destdir nil re)))) rendered) (if ldir (progn (setq renames (let* ((va (li= st (file-name-as-directory ldir) ""))) (if (member va renames) renames (con= s va renames)))))) (elpaa--copyright-check pkg-spec) (let ((process-environ= ment (elpaa--makeenv vers revision))) (elpaa--make pkg-spec dir) (elpaa--bu= ild-Info pkg-spec dir destdir)) (elpaa--write-pkg-file dir pkgname metadata= revision) (setq rendered (elpaa--write-plain-readme dir pkg-spec)) (progn = (or (not (string-match "[][*\\|?]" pkgname)) (cl--assertion-failed '(not (s= tring-match "[][*\\|?]" pkgname)))) nil) (progn (or (not (string-match "[][= *\\|?]" vers)) (cl--assertion-failed '(not (string-match "[][*\\|?]" vers))= )) nil) (apply #'elpaa--call nil "tar" (cons "--exclude-vcs" (append (mapca= r #'(lambda (i) (format "--exclude=3Dpackages/%s/%s" pkgname i)) ignores) (= if (file-readable-p elpaignore) (progn (list "-X" elpaignore))) (mapcar #'(= lambda (r) (elpaa--make-tar-transform pkgname r)) renames) (list "--transfo= rm" (format "s|^packages/%s|%s-%s|" pkgname pkgname vers) "-chf" tarball (c= oncat "packages/" pkgname))))) (progn (or (file-readable-p tarball) (cl--as= sertion-failed '(file-readable-p tarball))) nil) (if tarball-only nil (let*= ((pkgdesc (elpaa--process-multi-file-package dir pkgname 'dont-rename))) (= elpaa--message "%s: %S" pkgname pkgdesc) (elpaa--update-archive-contents pk= gdesc destdir) (if (and nil revision-function) (progn (let ((default-direct= ory (elpaa--dirname dir))) (elpaa--call nil "git" "tag" "-f" (format "%s-re= lease/%s-%s" elpaa--name pkgname vers))))) (let ((link (expand-file-name (f= ormat "%s.tar" pkgname) destdir))) (if (file-symlink-p link) (progn (delete= -file link))) (condition-case nil (progn (make-symbolic-link (file-name-non= directory tarball) link)) (file-error nil))) (setq oldtarballs (let ((elpaa= --keep-max (if revision-function elpaa--keep-max (/ elpaa--keep-max 2)))) (= elpaa--prune-old-tarballs tarball oldtarballs destdir (if revision-function= (* 60 60 24 365 2))))) (let ((default-directory (expand-file-name destdir)= )) (elpaa--html-make-pkg pkgdesc pkg-spec (cons (cons vers (file-name-nondi= rectory tarball)) oldtarballs) dir rendered)))) 'new) (closure ((tarball-only) (revision-function) (metadata nil "28.1.2.0.0.20= 220810.191855" "Emacs Lisp Compatibility Library" ((emacs (24 3)) (nadvice = (0 3))) ((:authors ("Philip Kaludercic" . "philipk@posteo.net")) (:maintain= er "Compat Development" . "~pkal/compat-devel@lists.sr.ht") (:keywords "lis= p") (:url . "https://sr.ht/~pkal/compat"))) (pkg-spec "compat" :url "https:= //git.sr.ht/~pkal/compat" :doc "compat.texi" :auto-sync t :internal--html-d= ocs nil) (dir . "/home/monnier/src/emacs/elpa/packages/compat") (tarball . = "archive-devel/compat-28.1.2.0.0.20220810.191855.tar")) nil (let* ((destdir= (file-name-directory tarball)) (pkgname (car pkg-spec)) (_ (if (and destdi= r (not (file-directory-p destdir))) (progn (make-directory destdir)))) (ver= s (nth 1 metadata)) (revision (elpaa--select-revision dir pkg-spec revision= -function)) (elpaignore (expand-file-name ".elpaignore" dir)) (ignores (elp= aa--spec-get pkg-spec :ignored-files)) (renames (elpaa--spec-get pkg-spec := renames)) (ldir (elpaa--spec-get pkg-spec :lisp-dir)) (re (concat "\\`" (re= gexp-quote pkgname) "-\\([0-9].*\\)\\.\\(tar\\|el\\)\\(\\.[a-z]*z\\)?\\'"))= (oldtarballs (if tarball-only nil (mapcar #'(lambda (file) (string-match r= e file) (cons (match-string 1 file) file)) (directory-files destdir nil re)= ))) rendered) (if ldir (progn (setq renames (let* ((va (list (file-name-as-= directory ldir) ""))) (if (member va renames) renames (cons va renames)))))= ) (elpaa--copyright-check pkg-spec) (let ((process-environment (elpaa--make= env vers revision))) (elpaa--make pkg-spec dir) (elpaa--build-Info pkg-spec= dir destdir)) (elpaa--write-pkg-file dir pkgname metadata revision) (setq = rendered (elpaa--write-plain-readme dir pkg-spec)) (progn (or (not (string-= match "[][*\\|?]" pkgname)) (cl--assertion-failed '(not (string-match "[][*= \\|?]" pkgname)))) nil) (progn (or (not (string-match "[][*\\|?]" vers)) (c= l--assertion-failed '(not (string-match "[][*\\|?]" vers)))) nil) (apply #'= elpaa--call nil "tar" (cons "--exclude-vcs" (append (mapcar #'(lambda (i) (= format "--exclude=3Dpackages/%s/%s" pkgname i)) ignores) (if (file-readable= -p elpaignore) (progn (list "-X" elpaignore))) (mapcar #'(lambda (r) (elpaa= --make-tar-transform pkgname r)) renames) (list "--transform" (format "s|^p= ackages/%s|%s-%s|" pkgname pkgname vers) "-chf" tarball (concat "packages/"= pkgname))))) (progn (or (file-readable-p tarball) (cl--assertion-failed '(= file-readable-p tarball))) nil) (if tarball-only nil (let* ((pkgdesc (elpaa= --process-multi-file-package dir pkgname 'dont-rename))) (elpaa--message "%= s: %S" pkgname pkgdesc) (elpaa--update-archive-contents pkgdesc destdir) (i= f (and nil revision-function) (progn (let ((default-directory (elpaa--dirna= me dir))) (elpaa--call nil "git" "tag" "-f" (format "%s-release/%s-%s" elpa= a--name pkgname vers))))) (let ((link (expand-file-name (format "%s.tar" pk= gname) destdir))) (if (file-symlink-p link) (progn (delete-file link))) (co= ndition-case nil (progn (make-symbolic-link (file-name-nondirectory tarball= ) link)) (file-error nil))) (setq oldtarballs (let ((elpaa--keep-max (if re= vision-function elpaa--keep-max (/ elpaa--keep-max 2)))) (elpaa--prune-old-= tarballs tarball oldtarballs destdir (if revision-function (* 60 60 24 365 = 2))))) (let ((default-directory (expand-file-name destdir))) (elpaa--html-m= ake-pkg pkgdesc pkg-spec (cons (cons vers (file-name-nondirectory tarball))= oldtarballs) dir rendered)))) 'new))() funcall((closure ((tarball-only) (revision-function) (metadata nil "28.1.= 2.0.0.20220810.191855" "Emacs Lisp Compatibility Library" ((emacs (24 3)) (= nadvice (0 3))) ((:authors ("Philip Kaludercic" . "philipk@posteo.net")) (:= maintainer "Compat Development" . "~pkal/compat-devel@lists.sr.ht") (:keywo= rds "lisp") (:url . "https://sr.ht/~pkal/compat"))) (pkg-spec "compat" :url= "https://git.sr.ht/~pkal/compat" :doc "compat.texi" :auto-sync t :internal= --html-docs nil) (dir . "/home/monnier/src/emacs/elpa/packages/compat") (ta= rball . "archive-devel/compat-28.1.2.0.0.20220810.191855.tar")) nil (let* (= (destdir (file-name-directory tarball)) (pkgname (car pkg-spec)) (_ (if (an= d destdir (not (file-directory-p destdir))) (progn (make-directory destdir)= ))) (vers (nth 1 metadata)) (revision (elpaa--select-revision dir pkg-spec = revision-function)) (elpaignore (expand-file-name ".elpaignore" dir)) (igno= res (elpaa--spec-get pkg-spec :ignored-files)) (renames (elpaa--spec-get pk= g-spec :renames)) (ldir (elpaa--spec-get pkg-spec :lisp-dir)) (re (concat "= \\`" (regexp-quote pkgname) "-\\([0-9].*\\)\\.\\(tar\\|el\\)\\(\\.[a-z]*z\\= )?\\'")) (oldtarballs (if tarball-only nil (mapcar #'(lambda (file) (string= -match re file) (cons (match-string 1 file) file)) (directory-files destdir= nil re)))) rendered) (if ldir (progn (setq renames (let* ((va (list (file-= name-as-directory ldir) ""))) (if (member va renames) renames (cons va rena= mes)))))) (elpaa--copyright-check pkg-spec) (let ((process-environment (elp= aa--makeenv vers revision))) (elpaa--make pkg-spec dir) (elpaa--build-Info = pkg-spec dir destdir)) (elpaa--write-pkg-file dir pkgname metadata revision= ) (setq rendered (elpaa--write-plain-readme dir pkg-spec)) (progn (or (not = (string-match "[][*\\|?]" pkgname)) (cl--assertion-failed '(not (string-mat= ch "[][*\\|?]" pkgname)))) nil) (progn (or (not (string-match "[][*\\|?]" v= ers)) (cl--assertion-failed '(not (string-match "[][*\\|?]" vers)))) nil) (= apply #'elpaa--call nil "tar" (cons "--exclude-vcs" (append (mapcar #'(lamb= da (i) (format "--exclude=3Dpackages/%s/%s" pkgname i)) ignores) (if (file-= readable-p elpaignore) (progn (list "-X" elpaignore))) (mapcar #'(lambda (r= ) (elpaa--make-tar-transform pkgname r)) renames) (list "--transform" (form= at "s|^packages/%s|%s-%s|" pkgname pkgname vers) "-chf" tarball (concat "pa= ckages/" pkgname))))) (progn (or (file-readable-p tarball) (cl--assertion-f= ailed '(file-readable-p tarball))) nil) (if tarball-only nil (let* ((pkgdes= c (elpaa--process-multi-file-package dir pkgname 'dont-rename))) (elpaa--me= ssage "%s: %S" pkgname pkgdesc) (elpaa--update-archive-contents pkgdesc des= tdir) (if (and nil revision-function) (progn (let ((default-directory (elpa= a--dirname dir))) (elpaa--call nil "git" "tag" "-f" (format "%s-release/%s-= %s" elpaa--name pkgname vers))))) (let ((link (expand-file-name (format "%s= .tar" pkgname) destdir))) (if (file-symlink-p link) (progn (delete-file lin= k))) (condition-case nil (progn (make-symbolic-link (file-name-nondirectory= tarball) link)) (file-error nil))) (setq oldtarballs (let ((elpaa--keep-ma= x (if revision-function elpaa--keep-max (/ elpaa--keep-max 2)))) (elpaa--pr= une-old-tarballs tarball oldtarballs destdir (if revision-function (* 60 60= 24 365 2))))) (let ((default-directory (expand-file-name destdir))) (elpaa= --html-make-pkg pkgdesc pkg-spec (cons (cons vers (file-name-nondirectory t= arball)) oldtarballs) dir rendered)))) 'new))) (progn (elpaa--clean dir) (funcall f)) (unwind-protect (progn (elpaa--clean dir) (funcall f)) (elpaa--message "D= eleting temp files: %S" elpaa--temp-files) (let ((--dolist-tail-- elpaa--te= mp-files)) (while --dolist-tail-- (let ((f (car --dolist-tail--))) (if (str= ingp f) (delete-file f) (funcall f)) (setq --dolist-tail-- (cdr --dolist-ta= il--)))))) (let ((elpaa--temp-files nil)) (unwind-protect (progn (elpaa--clean dir) = (funcall f)) (elpaa--message "Deleting temp files: %S" elpaa--temp-files) (= let ((--dolist-tail-- elpaa--temp-files)) (while --dolist-tail-- (let ((f (= car --dolist-tail--))) (if (stringp f) (delete-file f) (funcall f)) (setq -= -dolist-tail-- (cdr --dolist-tail--))))))) elpaa--call-with-temp-files("/home/monnier/src/emacs/elpa/packages/compat= " (closure ((tarball-only) (revision-function) (metadata nil "28.1.2.0.0.20= 220810.191855" "Emacs Lisp Compatibility Library" ((emacs (24 3)) (nadvice = (0 3))) ((:authors ("Philip Kaludercic" . "philipk@posteo.net")) (:maintain= er "Compat Development" . "~pkal/compat-devel@lists.sr.ht") (:keywords "lis= p") (:url . "https://sr.ht/~pkal/compat"))) (pkg-spec "compat" :url "https:= //git.sr.ht/~pkal/compat" :doc "compat.texi" :auto-sync t :internal--html-d= ocs nil) (dir . "/home/monnier/src/emacs/elpa/packages/compat") (tarball . = "archive-devel/compat-28.1.2.0.0.20220810.191855.tar")) nil (let* ((destdir= (file-name-directory tarball)) (pkgname (car pkg-spec)) (_ (if (and destdi= r (not (file-directory-p destdir))) (progn (make-directory destdir)))) (ver= s (nth 1 metadata)) (revision (elpaa--select-revision dir pkg-spec revision= -function)) (elpaignore (expand-file-name ".elpaignore" dir)) (ignores (elp= aa--spec-get pkg-spec :ignored-files)) (renames (elpaa--spec-get pkg-spec := renames)) (ldir (elpaa--spec-get pkg-spec :lisp-dir)) (re (concat "\\`" (re= gexp-quote pkgname) "-\\([0-9].*\\)\\.\\(tar\\|el\\)\\(\\.[a-z]*z\\)?\\'"))= (oldtarballs (if tarball-only nil (mapcar #'(lambda (file) (string-match r= e file) (cons (match-string 1 file) file)) (directory-files destdir nil re)= ))) rendered) (if ldir (progn (setq renames (let* ((va (list (file-name-as-= directory ldir) ""))) (if (member va renames) renames (cons va renames)))))= ) (elpaa--copyright-check pkg-spec) (let ((process-environment (elpaa--make= env vers revision))) (elpaa--make pkg-spec dir) (elpaa--build-Info pkg-spec= dir destdir)) (elpaa--write-pkg-file dir pkgname metadata revision) (setq = rendered (elpaa--write-plain-readme dir pkg-spec)) (progn (or (not (string-= match "[][*\\|?]" pkgname)) (cl--assertion-failed '(not (string-match "[][*= \\|?]" pkgname)))) nil) (progn (or (not (string-match "[][*\\|?]" vers)) (c= l--assertion-failed '(not (string-match "[][*\\|?]" vers)))) nil) (apply #'= elpaa--call nil "tar" (cons "--exclude-vcs" (append (mapcar #'(lambda (i) (= format "--exclude=3Dpackages/%s/%s" pkgname i)) ignores) (if (file-readable= -p elpaignore) (progn (list "-X" elpaignore))) (mapcar #'(lambda (r) (elpaa= --make-tar-transform pkgname r)) renames) (list "--transform" (format "s|^p= ackages/%s|%s-%s|" pkgname pkgname vers) "-chf" tarball (concat "packages/"= pkgname))))) (progn (or (file-readable-p tarball) (cl--assertion-failed '(= file-readable-p tarball))) nil) (if tarball-only nil (let* ((pkgdesc (elpaa= --process-multi-file-package dir pkgname 'dont-rename))) (elpaa--message "%= s: %S" pkgname pkgdesc) (elpaa--update-archive-contents pkgdesc destdir) (i= f (and nil revision-function) (progn (let ((default-directory (elpaa--dirna= me dir))) (elpaa--call nil "git" "tag" "-f" (format "%s-release/%s-%s" elpa= a--name pkgname vers))))) (let ((link (expand-file-name (format "%s.tar" pk= gname) destdir))) (if (file-symlink-p link) (progn (delete-file link))) (co= ndition-case nil (progn (make-symbolic-link (file-name-nondirectory tarball= ) link)) (file-error nil))) (setq oldtarballs (let ((elpaa--keep-max (if re= vision-function elpaa--keep-max (/ elpaa--keep-max 2)))) (elpaa--prune-old-= tarballs tarball oldtarballs destdir (if revision-function (* 60 60 24 365 = 2))))) (let ((default-directory (expand-file-name destdir))) (elpaa--html-m= ake-pkg pkgdesc pkg-spec (cons (cons vers (file-name-nondirectory tarball))= oldtarballs) dir rendered)))) 'new))) elpaa--make-one-tarball-1("archive-devel/compat-28.1.2.0.0.20220810.19185= 5.tar" "/home/monnier/src/emacs/elpa/packages/compat" ("compat" :url "https= ://git.sr.ht/~pkal/compat" :doc "compat.texi" :auto-sync t :internal--html-= docs nil) (nil "28.1.2.0.0.20220810.191855" "Emacs Lisp Compatibility Libra= ry" ((emacs (24 3)) (nadvice (0 3))) ((:authors ("Philip Kaludercic" . "phi= lipk@posteo.net")) (:maintainer "Compat Development" . "~pkal/compat-devel@= lists.sr.ht") (:keywords "lisp") (:url . "https://sr.ht/~pkal/compat"))) ni= l nil) (setq res (elpaa--make-one-tarball-1 tarball dir pkg-spec metadata revisi= on-function tarball-only)) (condition-case err (setq res (elpaa--make-one-tarball-1 tarball dir pkg-= spec metadata revision-function tarball-only)) ((debug error) (message "Bui= ld error for %s: %S" tarball err) nil)) (unwind-protect (condition-case err (setq res (elpaa--make-one-tarball-1 = tarball dir pkg-spec metadata revision-function tarball-only)) ((debug erro= r) (message "Build error for %s: %S" tarball err) nil)) (message (if res "#= ####### Built new package %s!" "######## Build of package %s FAILED!!") tar= ball)) (let ((res nil)) (unwind-protect (condition-case err (setq res (elpaa--ma= ke-one-tarball-1 tarball dir pkg-spec metadata revision-function tarball-on= ly)) ((debug error) (message "Build error for %s: %S" tarball err) nil)) (m= essage (if res "######## Built new package %s!" "######## Build of package = %s FAILED!!") tarball))) (if (and (or (file-readable-p tarball) (file-readable-p (replace-regexp-i= n-string "\\.tar\\'" ".el" tarball))) (or tarball-only (let ((pkgname (car = pkg-spec)) (default-directory (expand-file-name (file-name-directory tarbal= l)))) (and (file-readable-p (concat pkgname "-readme.txt")) (file-readable-= p (concat pkgname ".html")) (file-readable-p (concat pkgname ".svg")))))) (= progn (elpaa--message "Tarball %s already built!" tarball) nil) (message "= =3D=3D=3D=3D=3D=3D=3D=3D Building tarball %s..." tarball) (let ((res nil)) = (unwind-protect (condition-case err (setq res (elpaa--make-one-tarball-1 ta= rball dir pkg-spec metadata revision-function tarball-only)) ((debug error)= (message "Build error for %s: %S" tarball err) nil)) (message (if res "###= ##### Built new package %s!" "######## Build of package %s FAILED!!") tarba= ll)))) elpaa--make-one-tarball("archive-devel/compat-28.1.2.0.0.20220810.191855.= tar" "/home/monnier/src/emacs/elpa/packages/compat" ("compat" :url "https:/= /git.sr.ht/~pkal/compat" :doc "compat.texi" :auto-sync t :internal--html-do= cs nil) (nil "28.1.2.0.0.20220810.191855" "Emacs Lisp Compatibility Library= " ((emacs (24 3)) (nadvice (0 3))) ((:authors ("Philip Kaludercic" . "phili= pk@posteo.net")) (:maintainer "Compat Development" . "~pkal/compat-devel@li= sts.sr.ht") (:keywords "lisp") (:url . "https://sr.ht/~pkal/compat"))) nil = nil) (let ((elpaa--name (concat elpaa--name "-devel"))) (elpaa--make-one-tarba= ll tarball dir pkg-spec (cons nil (cons devel-vers (nthcdr 2 metadata))) ni= l tarball-only)) (let* ((date-version (elpaa--get-devel-version dir pkg-spec)) (devel-vers= (concat vers (if (string-match "[0-9]\\'" vers) ".") "0." date-version)) (= tarball (or tarball-only (concat elpaa--devel-subdir (format "%s-%s.tar" pk= gname devel-vers)))) (new (let ((elpaa--name (concat elpaa--name "-devel"))= ) (elpaa--make-one-tarball tarball dir pkg-spec (cons nil (cons devel-vers = (nthcdr 2 metadata))) nil tarball-only)))) (cond (tarball-only nil) ((equal= vers "0") (elpaa--message "Package %s not released yet!" pkgname)) ((< (ap= ply #'min (version-to-list vers)) 0) (cond ((not new) (elpaa--message "Noth= ing new for package %s!" pkgname)) (t (let* ((last-rel (elpaa--get-last-rel= ease pkg-spec)) (tarball (concat elpaa--release-subdir (format "%s-%s.tar" = pkgname (car last-rel)))) (metadata (cons nil (cons (car last-rel) (nthcdr = 2 metadata))))) (if (not last-rel) (elpaa--message "Package %s not released= yet!" pkgname) (if (elpaa--make-one-tarball tarball dir pkg-spec metadata = #'(lambda nil (cdr last-rel))) (progn (elpaa--release-email pkg-spec metada= ta dir)))))))) (t (let ((tarball (concat elpaa--release-subdir (format "%s-= %s.tar" pkgname vers)))) (if (elpaa--make-one-tarball tarball dir pkg-spec = metadata #'(lambda nil (elpaa--get-release-revision dir pkg-spec vers (plis= t-get (cdr pkg-spec) :version-map)))) (progn (elpaa--release-email pkg-spec= metadata dir))))))) (if (null metadata) (error "No metadata found for package: %s" pkgname) (= let* ((v metadata)) (setcar v nil)) (let* ((date-version (elpaa--get-devel-= version dir pkg-spec)) (devel-vers (concat vers (if (string-match "[0-9]\\'= " vers) ".") "0." date-version)) (tarball (or tarball-only (concat elpaa--d= evel-subdir (format "%s-%s.tar" pkgname devel-vers)))) (new (let ((elpaa--n= ame (concat elpaa--name "-devel"))) (elpaa--make-one-tarball tarball dir pk= g-spec (cons nil (cons devel-vers (nthcdr 2 metadata))) nil tarball-only)))= ) (cond (tarball-only nil) ((equal vers "0") (elpaa--message "Package %s no= t released yet!" pkgname)) ((< (apply #'min (version-to-list vers)) 0) (con= d ((not new) (elpaa--message "Nothing new for package %s!" pkgname)) (t (le= t* ((last-rel (elpaa--get-last-release pkg-spec)) (tarball (concat elpaa--r= elease-subdir (format "%s-%s.tar" pkgname (car last-rel)))) (metadata (cons= nil (cons (car last-rel) (nthcdr 2 metadata))))) (if (not last-rel) (elpaa= --message "Package %s not released yet!" pkgname) (if (elpaa--make-one-tarb= all tarball dir pkg-spec metadata #'(lambda nil (cdr last-rel))) (progn (el= paa--release-email pkg-spec metadata dir)))))))) (t (let ((tarball (concat = elpaa--release-subdir (format "%s-%s.tar" pkgname vers)))) (if (elpaa--make= -one-tarball tarball dir pkg-spec metadata #'(lambda nil (elpaa--get-releas= e-revision dir pkg-spec vers (plist-get (cdr pkg-spec) :version-map)))) (pr= ogn (elpaa--release-email pkg-spec metadata dir)))))))) (let* ((pkgname (car pkg-spec)) (dir (expand-file-name pkgname "packages"= )) (_ (cond (tarball-only nil) ((eq (nth 1 pkg-spec) :core) (elpaa--core-pa= ckage-sync pkg-spec)) (t (elpaa--worktree-sync pkg-spec)))) (_ (elpaa--mess= age "pkg-spec for %s: %S" pkgname pkg-spec))=20 Build error for archive-devel/compat-28.1.2.0.0.20220810.191855.tar: (error= "Error-indicating exit code in elpaa--call-sandboxed: compat.texi:220: @menu pointe vers un n=C5=93ud =C2=AB=C2=A0Emacs 24.5=C2= =A0=C2=BB inexistant compat.texi:77: @detailmenu pointe vers un n=C5=93ud =C2=AB=C2=A0Emacs 24.5= =C2=A0=C2=BB inexistant ") ######## Build of package archive-devel/compat-28.1.2.0.0.20220810.191855.t= ar FAILED!!