From unknown Sun Jun 15 01:08:49 2025 X-Loop: help-debbugs@gnu.org Subject: bug#78636: 30.1; package-install-file errors with some tar files Resent-From: Andy Rosen Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Thu, 29 May 2025 20:02:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 78636 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: 78636@debbugs.gnu.org X-Debbugs-Original-To: bug-gnu-emacs@gnu.org Received: via spool by submit@debbugs.gnu.org id=B.17485488926366 (code B ref -1); Thu, 29 May 2025 20:02:02 +0000 Received: (at submit) by debbugs.gnu.org; 29 May 2025 20:01:32 +0000 Received: from localhost ([127.0.0.1]:39419 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1uKjRT-0001eZ-0p for submit@debbugs.gnu.org; Thu, 29 May 2025 16:01:32 -0400 Received: from lists.gnu.org ([2001:470:142::17]:48522) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from <010001971cc2668d-0b41bbfd-dac4-42ff-bd39-aa75cb5200ab-000000@mail.corp.mlfs.org>) id 1uKfch-0002tk-Kb for submit@debbugs.gnu.org; Thu, 29 May 2025 11:56:52 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from <010001971cc2668d-0b41bbfd-dac4-42ff-bd39-aa75cb5200ab-000000@mail.corp.mlfs.org>) id 1uKfcb-0007ex-BU for bug-gnu-emacs@gnu.org; Thu, 29 May 2025 11:56:45 -0400 Received: from a48-181.smtp-out.amazonses.com ([54.240.48.181]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_CBC_SHA1:128) (Exim 4.90_1) (envelope-from <010001971cc2668d-0b41bbfd-dac4-42ff-bd39-aa75cb5200ab-000000@mail.corp.mlfs.org>) id 1uKfcZ-0000n9-2Q for bug-gnu-emacs@gnu.org; Thu, 29 May 2025 11:56:45 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/simple; s=gyvnu7qtvdgiyrsmcz23vnbilqvwfpd4; d=corp.mlfs.org; t=1748534192; h=Subject:From:To:Date:Mime-Version:Content-Type:References:Message-Id; bh=kFBLNcGYhVrVhRU3bBDJQgdqAWlvi5UOU0GznGR7Kug=; b=Ouvp4Ry0vcLv+micZAGPV3xwgkvZur19ECDgJG/T+/mt3VE0bJjTCwouW2r057Je VRvN1Rar2IaBfuf+MZGvI5YL05bGUoqzr+I2G7asO3ItwBRkxFd8dFjZgoTiZj4e9eZ R3g7qGctiZ19xLoOHFSeR6ziLJA5iGAf+5a/iT0E= DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/simple; s=6gbrjpgwjskckoa6a5zn6fwqkn67xbtw; d=amazonses.com; t=1748534192; h=Subject:From:To:Date:Mime-Version:Content-Type:References:Message-Id:Feedback-ID; bh=kFBLNcGYhVrVhRU3bBDJQgdqAWlvi5UOU0GznGR7Kug=; b=FSAx9ad6VqBTSnz651pB6A1kvXe3lSaq7p/MlaJXj5+2nDNPzpi+NqQeIsKwfDjs FqVZMKh4eRDiX7IBjXeMui1vH3QlqbFuECLxMozNUB5VJoEuJFSR9ulkZN7VTScm8GS 0Y7O+XtjW4GJNsAncmV8g5h1guwZC68dzWgnHQ8Y= From: Andy Rosen Date: Thu, 29 May 2025 15:56:31 +0000 Mime-Version: 1.0 Content-Type: multipart/alternative; boundary="=_Le8e2ihjfbmv9gwUwHKtwwxdxPtq7v39iDuO-Dt5OaHCvgsi" References: <5F11F8C9-F708-40DF-915F-91B6992802C8@corp.mlfs.org> X-Priority: 3 (Normal) X-Mailer: Amazon WorkMail Thread-Index: AQHb0LI+w+Pax68sR1+ldcHuULn+Hw== Thread-Topic: 30.1; package-install-file errors with some tar files X-Original-Mailer: Apple Mail (2.3826.600.51.1.1) X-Wm-Sent-Timestamp: 1748534190 Message-ID: <010001971cc2668d-0b41bbfd-dac4-42ff-bd39-aa75cb5200ab-000000@email.amazonses.com> Feedback-ID: ::1.us-east-1.LF00NED762KFuBsfzrtoqw+Brn/qlF9OYdxWukAhsl8=:AmazonSES X-SES-Outgoing: 2025.05.29-54.240.48.181 Received-SPF: pass client-ip=54.240.48.181; envelope-from=010001971cc2668d-0b41bbfd-dac4-42ff-bd39-aa75cb5200ab-000000@mail.corp.mlfs.org; helo=a48-181.smtp-out.amazonses.com X-Spam_score_int: -19 X-Spam_score: -2.0 X-Spam_bar: -- X-Spam_report: (-2.0 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-Spam-Score: 1.0 (+) X-Mailman-Approved-At: Thu, 29 May 2025 16:01:29 -0400 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.0 (/) This is a multi-part message in MIME format. Your mail reader does not understand MIME message format. --=_Le8e2ihjfbmv9gwUwHKtwwxdxPtq7v39iDuO-Dt5OaHCvgsi Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Running 'package-install-file' on a tar file might throw a 'Wrong type ar= gument: arrayp, nil' error from 'tar--check-descriptor=E2=80=99. =C2=A0Th= e problem comes from assumptions made by 'package--description-file' and = tar-mode about the filenames contained in the tar file. =C2=A0I=E2=80=99v= e written a detailed description of the error and root cause=C2=A0here . I propose adding a 'condition-case' to 'package-install-file' to return a= friendly message. diff --git a/lisp/emacs-lisp/package.el b/lisp/emacs-lisp/package.el index 82fcf439a11..01f659e6982 100644 --- a/lisp/emacs-lisp/package.el +++ b/lisp/emacs-lisp/package.el @@ -2439,8 +2439,10 @@ directory." =C2=A0 =C2=A0 =C2=A0 =C2=A0(insert-file-contents-literally file) =C2=A0 =C2=A0 =C2=A0 =C2=A0(set-visited-file-name file) =C2=A0 =C2=A0 =C2=A0 =C2=A0(set-buffer-modified-p nil) - =C2=A0 =C2=A0 =C2=A0(when (string-match "\\.tar\\'" file) (tar-mode))) = - =C2=A0 =C2=A0(package-install-from-buffer))) + =C2=A0 =C2=A0 =C2=A0(when (string-match "\\.tar\\'" file) (tar-mode) + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0(condition-case nil + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0(package-install= -from-buffer) +=C2=A0=C2=A0 =C2=A0 =C2=A0(error (message "%s is not a valid package fil= e" (file-name-nondirectory file)))))))) =C2=A0=C2=A0;;;###autoload =C2=A0(defun package-install-selected-packages (&optional noconfirm) In GNU Emacs 30.1 (build 1, aarch64-apple-darwin21.6.0, NS =C2=A0appkit-2113.65 Version 12.7.6 (Build 21H1320)) of 2025-02-24 built = on =C2=A0armbob.lan Windowing system distributor 'Apple', version 10.3.2575 System Description: =C2=A0macOS 15.5 Configured using: =C2=A0'configure --with-ns '--enable-locallisppath=3D/Library/Application= =C2=A0Support/Emacs/${version}/site-lisp:/Library/Application =C2=A0Support/Emacs/site-lisp' --with-modules 'CFLAGS=3D-DFD_SETSIZE=3D10= 000 =C2=A0-DDARWIN_UNLIMITED_SELECT' --with-x-toolkit=3Dno' Configured features: ACL GLIB GMP GNUTLS JPEG LIBXML2 MODULES NOTIFY KQUEUE NS PDUMPER PNG RSVG SQLITE3 THREADS TIFF TOOLKIT_SCROLL_BARS TREE_SITTER WEBP XIM ZLIB Important settings: =C2=A0 value of $LANG: en_US.UTF-8 =C2=A0 locale-coding-system: utf-8-unix Major mode: Lisp Interaction Minor modes in effect: =C2=A0 tooltip-mode: t =C2=A0 global-eldoc-mode: t =C2=A0 eldoc-mode: t =C2=A0 show-paren-mode: t =C2=A0 electric-indent-mode: t =C2=A0 mouse-wheel-mode: t =C2=A0 tool-bar-mode: t =C2=A0 menu-bar-mode: t =C2=A0 file-name-shadow-mode: t =C2=A0 global-font-lock-mode: t =C2=A0 font-lock-mode: t =C2=A0 blink-cursor-mode: t =C2=A0 minibuffer-regexp-mode: t =C2=A0 line-number-mode: t =C2=A0 indent-tabs-mode: t =C2=A0 transient-mark-mode: t =C2=A0 auto-composition-mode: t =C2=A0 auto-encryption-mode: t =C2=A0 auto-compression-mode: t Load-path shadows: None found. Features: (shadow sort mail-extr emacsbug message mailcap yank-media puny dired dired-loaddefs rfc822 mml mml-sec password-cache epa derived epg rfc6068 = epg-config gnus-util text-property-search time-date subr-x mm-decode mm-bodies mm-encode mail-parse rfc2231 mailabbrev gmm-utils mailheader cl-loaddefs cl-lib sendmail rfc2047 rfc2045 ietf-drums mm-util mail-prsvr mail-utils rmc iso-transl tooltip cconv eldoc paren electric uniquify ediff-hook vc-hooks lisp-float-type elisp-mode mwheel term/ns-win ns-win ucs-normalize mule-util term/common-win tool-bar dnd fontset image regexp-opt fringe tabulated-list replace newcomment text-mode lisp-mode prog-mode register page tab-bar menu-bar rfn-eshadow = isearch easymenu timer select scroll-bar mouse jit-lock font-lock syntax = font-core term/tty-colors frame minibuffer nadvice seq simple cl-generic = indonesian philippine cham georgian utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao korean japanese eucjp-ms cp51932 hebrew greek romanian slovak czech european ethiopic indian cyrillic chinese composite emoji-zwj charscript charprop case-table epa-hook jka-cmpr-hook help abbrev obarray oclosure cl-preloaded button loaddefs theme-loaddefs faces cus-face macroexp files window text-properties overlay sha1 md5 base64 format env code-pages mule custom widget keymap hashtable-print-readable backquote threads kqueue cocoa ns multi-tty make-network-process emacs) Memory information: ((conses 16 39125 8959) (symbols 48 5269 0) (strings 32 12063 2290) =C2=A0(string-bytes 1 290705) (vectors 16 9393) =C2=A0(vector-slots 8 106790 6658) (floats 8 21 8) (intervals 56 253 5) =C2=A0(buffers 992 11)) --=_Le8e2ihjfbmv9gwUwHKtwwxdxPtq7v39iDuO-Dt5OaHCvgsi Content-Type: text/html; charset=utf-8 Content-Transfer-Encoding: quoted-printable Running 'package-install-file' on a tar file m= ight throw a 'Wrong type argument: arrayp, nil' error from 'tar--check-de= scriptor=E2=80=99.  The problem comes from assumptions made by 'pack= age--description-file' and tar-mode about the filenames contained in the = tar file.  I=E2=80=99ve written a detailed description of the error = and root cause here= =2E

I propose adding a 'condition-case' to 'package-install-file'= to return a friendly message.


diff --git a/lisp/emacs-lisp/package.el b/lisp= /emacs-lisp/package.el
index 82fcf439a11..01f659e6982 100644
--- a/lisp/emacs-lisp/packag= e.el
+++= b/lisp/emacs-lisp/package.el
@@ -2439,8 +2439,10 @@ directory."
      &nb= sp;(insert-file-contents-literally file)
       (set-visited-= file-name file)
       (set-buffer-modified-p nil)
-     &n= bsp;(when (string-match "\\.tar\\'" file) (tar-mode)))
<= font face=3D"Menlo" style=3D"font-size: 14px;">-    (package-in= stall-from-buffer)))
+      (when (string-match "\\.tar\\'" file) = (tar-mode)
+            (condition-case nil<= /div>
+    =            (package-install-from-buffer)
+=09  =    (error (message "%s is not a valid package file" (file-name= -nondirectory file))))))))
 
 ;;;###autoload
 (defun package-install-selected-pack= ages (&optional noconfirm)


In GNU Emacs 30.1 (build 1,= aarch64-apple-darwin21.6.0, NS
 appkit-2113.65 Version 12.7.6 (Build 21H132= 0)) of 2025-02-24 built on
 armbob.lan
Windowing system distributor 'Apple', version= 10.3.2575
System Description:  macOS 15.5

Configured using:
 'configure --with-ns '--enab= le-locallisppath=3D/Library/Application
 Support/Emacs/${version}/site-lisp:= /Library/Application
 Support/Emacs/site-lisp' --with-modules 'CFLAGS=3D-DFD= _SETSIZE=3D10000
 -DDARWIN_UNLIMITED_SELECT' --with-x-toolkit=3Dno'

Configured features= :
ACL GL= IB GMP GNUTLS JPEG LIBXML2 MODULES NOTIFY KQUEUE NS PDUMPER PNG
RSVG SQLITE3 THRE= ADS TIFF TOOLKIT_SCROLL_BARS TREE_SITTER WEBP XIM ZLIB
<= font face=3D"Menlo" style=3D"font-size: 14px;">
Important settings:
  value of $= LANG: en_US.UTF-8
  locale-coding-system: utf-8-unix

Major mode: Lisp Interaction

Minor modes in e= ffect:
&= nbsp; tooltip-mode: t
  global-eldoc-mode: t
  eldoc-mode: t
<= font face=3D"Menlo" style=3D"font-size: 14px;">  show-paren-mode: t<= /font>
  e= lectric-indent-mode: t
  mouse-wheel-mode: t
  tool-bar-mode: t
  menu-bar-mode: t=
  = file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t<= /div>
  blink-cu= rsor-mode: t
  minibuffer-regexp-mode: t
  line-number-mode: t
  indent-tabs-mode:= t
 = ; transient-mark-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  au= to-compression-mode: t

Load-path shadows:
None found.

Features:
(shadow sort mail-extr emacsbug message mailcap= yank-media puny dired
dired-loaddefs rfc822 mml mml-sec password-cache epa deriv= ed epg rfc6068
epg-config gnus-util text-property-search time-date subr-x mm-deco= de
mm-bo= dies mm-encode mail-parse rfc2231 mailabbrev gmm-utils mailheader<= /div>
cl-loaddefs cl-= lib sendmail rfc2047 rfc2045 ietf-drums mm-util
mail-prsvr mail-utils rmc iso-tra= nsl tooltip cconv eldoc paren electric
uniquify ediff-hook vc-hooks lisp-float-ty= pe elisp-mode mwheel
term/ns-win ns-win ucs-normalize mule-util term/common-win t= ool-bar dnd
fontset image regexp-opt fringe tabulated-list replace newcomment
text-mode l= isp-mode prog-mode register page tab-bar menu-bar rfn-eshadow
isearch easymenu ti= mer select scroll-bar mouse jit-lock font-lock syntax
font-core term/tty-colors f= rame minibuffer nadvice seq simple cl-generic
indonesian philippine cham georgian= utf-8-lang misc-lang vietnamese
tibetan thai tai-viet lao korean japanese eucjp-= ms cp51932 hebrew greek
romanian slovak czech european ethiopic indian cyrillic c= hinese
c= omposite emoji-zwj charscript charprop case-table epa-hook
jka-cmpr-hook help abb= rev obarray oclosure cl-preloaded button loaddefs
theme-loaddefs faces cus-face m= acroexp files window text-properties
overlay sha1 md5 base64 format env code-page= s mule custom widget keymap
hashtable-print-readable backquote threads kqueue coco= a ns multi-tty
make-network-process emacs)

Memory information:
((conses 16 39125 8959) (symbols 48 52= 69 0) (strings 32 12063 2290)
 (string-bytes 1 290705) (vectors 16 9393)
 (vect= or-slots 8 106790 6658) (floats 8 21 8) (intervals 56 253 5)
=
 (buffers 992 1= 1))

--=_Le8e2ihjfbmv9gwUwHKtwwxdxPtq7v39iDuO-Dt5OaHCvgsi-- From unknown Sun Jun 15 01:08:49 2025 X-Loop: help-debbugs@gnu.org Subject: bug#78636: 30.1; package-install-file errors with some tar files Resent-From: Eli Zaretskii Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sat, 07 Jun 2025 08:53:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 78636 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Andy Rosen , Philip Kaludercic Cc: 78636@debbugs.gnu.org Received: via spool by 78636-submit@debbugs.gnu.org id=B78636.17492863442847 (code B ref 78636); Sat, 07 Jun 2025 08:53:02 +0000 Received: (at 78636) by debbugs.gnu.org; 7 Jun 2025 08:52:24 +0000 Received: from localhost ([127.0.0.1]:46857 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1uNpHr-0000jq-RD for submit@debbugs.gnu.org; Sat, 07 Jun 2025 04:52:24 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:46880) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1uNpHq-0000ja-LI for 78636@debbugs.gnu.org; Sat, 07 Jun 2025 04:52:23 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1uNpHk-0006Ls-SU; Sat, 07 Jun 2025 04:52:16 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=MIME-version:References:Subject:In-Reply-To:To:From: Date; bh=htZJhXimXAvofKrVQUfGSlakLWuR14KHXG4UCf1jQ+Q=; b=lTf4ztvzlJlRYjqWpBLb J7dy02YrSvpLR6UtyB8bL/ZJHykerXGEqjh/HLKhSrPaHJ0Op94bushFqKKtb5X4n0PgsxTU9qqmY vk+cwGgjmnCNCdpGONYykW3FAOt2LApPuVRFRxdhvzvkfvVjI1NAGt0sOxvxDKld0Sohl8UJZ2arB Mqp/Iza/WhM3UajI71DJDZDd70851ItfrpRQ0ALpIyY/+tfablF8Nl3vXmYFwePDnAVl4H2fctBAT 7ulOB4cmp08AJjszTkNwfLSTsA3yGePv6VO2odJKTEBVQVFSQKBJVSfihgtj63M9e1z/0KZ/iMeVw /7rx/OmDUSiZPA==; Date: Sat, 07 Jun 2025 11:52:15 +0300 Message-Id: <86msakhr28.fsf@gnu.org> From: Eli Zaretskii In-Reply-To: <010001971cc2668d-0b41bbfd-dac4-42ff-bd39-aa75cb5200ab-000000@email.amazonses.com> (bug-gnu-emacs@gnu.org) References: <5F11F8C9-F708-40DF-915F-91B6992802C8@corp.mlfs.org> <010001971cc2668d-0b41bbfd-dac4-42ff-bd39-aa75cb5200ab-000000@email.amazonses.com> MIME-version: 1.0 Content-type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Spam-Score: -2.3 (--) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > Date: Thu, 29 May 2025 15:56:31 +0000 > From: Andy Rosen via "Bug reports for GNU Emacs, > the Swiss army knife of text editors" > > Running 'package-install-file' on a tar file might throw a 'Wrong type argument: arrayp, nil' error from > 'tar--check-descriptor’. The problem comes from assumptions made by 'package--description-file' and > tar-mode about the filenames contained in the tar file. I’ve written a detailed description of the error and > root cause here. > > I propose adding a 'condition-case' to 'package-install-file' to return a friendly message. > > diff --git a/lisp/emacs-lisp/package.el b/lisp/emacs-lisp/package.el > index 82fcf439a11..01f659e6982 100644 > --- a/lisp/emacs-lisp/package.el > +++ b/lisp/emacs-lisp/package.el > @@ -2439,8 +2439,10 @@ directory." > (insert-file-contents-literally file) > (set-visited-file-name file) > (set-buffer-modified-p nil) > - (when (string-match "\\.tar\\'" file) (tar-mode))) > - (package-install-from-buffer))) > + (when (string-match "\\.tar\\'" file) (tar-mode) > + (condition-case nil > + (package-install-from-buffer) > + (error (message "%s is not a valid package file" (file-name-nondirectory file)))))))) > > ;;;###autoload > (defun package-install-selected-packages (&optional noconfirm) > > In GNU Emacs 30.1 (build 1, aarch64-apple-darwin21.6.0, NS > appkit-2113.65 Version 12.7.6 (Build 21H1320)) of 2025-02-24 built on > armbob.lan > Windowing system distributor 'Apple', version 10.3.2575 > System Description: macOS 15.5 Philip, any comments? From unknown Sun Jun 15 01:08:49 2025 X-Loop: help-debbugs@gnu.org Subject: bug#78636: 30.1; package-install-file errors with some tar files Resent-From: Philip Kaludercic Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Mon, 09 Jun 2025 11:47:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 78636 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Eli Zaretskii Cc: 78636@debbugs.gnu.org, Andy Rosen Received: via spool by 78636-submit@debbugs.gnu.org id=B78636.174946961124704 (code B ref 78636); Mon, 09 Jun 2025 11:47:02 +0000 Received: (at 78636) by debbugs.gnu.org; 9 Jun 2025 11:46:51 +0000 Received: from localhost ([127.0.0.1]:54126 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1uOaxm-0006QO-Ii for submit@debbugs.gnu.org; Mon, 09 Jun 2025 07:46:50 -0400 Received: from mout02.posteo.de ([185.67.36.66]:32905) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1uOaxj-0006Q2-05 for 78636@debbugs.gnu.org; Mon, 09 Jun 2025 07:46:47 -0400 Received: from submission (posteo.de [185.67.36.169]) by mout02.posteo.de (Postfix) with ESMTPS id 96D17240101 for <78636@debbugs.gnu.org>; Mon, 9 Jun 2025 13:46:40 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=posteo.net; s=1984.ea087b; t=1749469600; bh=dr4mY5YYKXC5ZI8wfnDcNxTiUJkdXBuAuoYfopS+pfU=; h=From:To:Cc:Subject:Autocrypt:OpenPGP:Date:Message-ID:MIME-Version: Content-Type:Content-Transfer-Encoding:From; b=D9qE1CLJLoVFZtn+1K8WcMshWbN+rgOmgGzU0GEJ4ZqqCCVDq0EJhf5B+46qZb0Rf zf4bkLwSiBR5RXsqxPfi2Dq5z9ObElIbasMcyOLYiKP4CgyLl/SaLC79zInZsN2ZS8 eCbyJbHdfGzlCP/fNUwTeTT7ytup9DRQTi61F+KDvYfJ/0P+IsRoyb7P4ki0ycsZiz bq8qY5+Z5zBgG/WymKWbvVgDHbycQb3e9417QGobKyUd3D8XqlxSsd+2Ce0vhaVcOr 8wck23P2UnMM5FhnVIqKU4UkR/a6sohmEY06wij5ZAtMDj/urfgyFwlvBMXFZnhwrW d+E8M8Hwc/opWz8h7PGQBm7yDW1QnXRPGD1chS9yIUujV7i4YuyZI7JqMtzo8Vnmj9 KLHDVFnPKl2XU64UDK+Bl5QzZeG3Tm54mRD15Xw94APkLg8XFERPNxCpZN8JU3fniI r4sDfDtQ5B8/9Z5m6VcKWU0vkhqLiY6ZD14K2jS/ZonQsg4UsCa Received: from customer (localhost [127.0.0.1]) by submission (posteo.de) with ESMTPSA id 4bG9B73D3Lz9rxF; Mon, 9 Jun 2025 13:46:39 +0200 (CEST) From: Philip Kaludercic In-Reply-To: <86msakhr28.fsf@gnu.org> References: <5F11F8C9-F708-40DF-915F-91B6992802C8@corp.mlfs.org> <010001971cc2668d-0b41bbfd-dac4-42ff-bd39-aa75cb5200ab-000000@email.amazonses.com> <86msakhr28.fsf@gnu.org> Autocrypt: addr=philipk@posteo.net; keydata= mDMEZBBQQhYJKwYBBAHaRw8BAQdAHJuofBrfqFh12uQu0Yi7mrl525F28eTmwUDflFNmdui0QlBo aWxpcCBLYWx1ZGVyY2ljIChnZW5lcmF0ZWQgYnkgYXV0b2NyeXB0LmVsKSA8cGhpbGlwa0Bwb3N0 ZW8ubmV0PoiWBBMWCAA+FiEEDg7HY17ghYlni8XN8xYDWXahwukFAmQQUEICGwMFCQHhM4AFCwkI BwIGFQoJCAsCBBYCAwECHgECF4AACgkQ8xYDWXahwulikAEA77hloUiSrXgFkUVJhlKBpLCHUjA0 mWZ9j9w5d08+jVwBAK6c4iGP7j+/PhbkxaEKa4V3MzIl7zJkcNNjHCXmvFcEuDgEZBBQQhIKKwYB BAGXVQEFAQEHQI5NLiLRjZy3OfSt1dhCmFyn+fN/QKELUYQetiaoe+MMAwEIB4h+BBgWCAAmFiEE Dg7HY17ghYlni8XN8xYDWXahwukFAmQQUEICGwwFCQHhM4AACgkQ8xYDWXahwukm+wEA8cml4JpK NeAu65rg+auKrPOP6TP/4YWRCTIvuYDm0joBALw98AMz7/qMHvSCeU/hw9PL6u6R2EScxtpKnWof z4oM OpenPGP: id=7126E1DE2F0CE35C770BED01F2C3CC513DB89F66; url="https://keys.openpgp.org/vks/v1/by-fingerprint/7126E1DE2F0CE35C770BED01F2C3CC513DB89F66"; preference=signencrypt Date: Mon, 09 Jun 2025 11:46:39 +0000 Message-ID: <87jz5lp274.fsf@posteo.net> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: -3.3 (---) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -4.3 (----) Eli Zaretskii writes: >> Date: Thu, 29 May 2025 15:56:31 +0000 >> From: Andy Rosen via "Bug reports for GNU Emacs, >> the Swiss army knife of text editors" >>=20 >> Running 'package-install-file' on a tar file might throw a 'Wrong type a= rgument: arrayp, nil' error from >> 'tar--check-descriptor=E2=80=99. The problem comes from assumptions mad= e by 'package--description-file' and >> tar-mode about the filenames contained in the tar file. I=E2=80=99ve wr= itten a detailed description of the error and >> root cause here. The issue make sense to me and we should fix it. >> I propose adding a 'condition-case' to 'package-install-file' to return = a friendly message. >>=20 >> diff --git a/lisp/emacs-lisp/package.el b/lisp/emacs-lisp/package.el >> index 82fcf439a11..01f659e6982 100644 >> --- a/lisp/emacs-lisp/package.el >> +++ b/lisp/emacs-lisp/package.el >> @@ -2439,8 +2439,10 @@ directory." >> (insert-file-contents-literally file) >> (set-visited-file-name file) >> (set-buffer-modified-p nil) >> - (when (string-match "\\.tar\\'" file) (tar-mode))) >> - (package-install-from-buffer))) >> + (when (string-match "\\.tar\\'" file) (tar-mode) ^ Please break the line here. I initially missed the major-mode switch, which confused me. >> + (condition-case nil >> + (package-install-from-buffer) >> + (error (message "%s is not a valid package file" (file-name-nond= irectory file)))))))) I am not sure if this is just the formatting of the patch while responding, but the indentation here is also misleading. Also, can't we use `tar-header-block-tokenize' or some other function to directly check if the file is a valid archive, instead of relying on downstream signals being raised? >>=20=20 >> ;;;###autoload >> (defun package-install-selected-packages (&optional noconfirm) >>=20 >> In GNU Emacs 30.1 (build 1, aarch64-apple-darwin21.6.0, NS >> appkit-2113.65 Version 12.7.6 (Build 21H1320)) of 2025-02-24 built on >> armbob.lan >> Windowing system distributor 'Apple', version 10.3.2575 >> System Description: macOS 15.5 > > Philip, any comments? From unknown Sun Jun 15 01:08:49 2025 X-Loop: help-debbugs@gnu.org Subject: bug#78636: 30.1; package-install-file errors with some tar files Resent-From: Andy Rosen Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Tue, 10 Jun 2025 19:34:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 78636 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Philip Kaludercic Cc: 78636@debbugs.gnu.org <78636@debbugs.gnu.org>, Eli Zaretskii Received: via spool by 78636-submit@debbugs.gnu.org id=B78636.174958399122671 (code B ref 78636); Tue, 10 Jun 2025 19:34:01 +0000 Received: (at 78636) by debbugs.gnu.org; 10 Jun 2025 19:33:11 +0000 Received: from localhost ([127.0.0.1]:39953 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1uP4ia-0005tQ-Ov for submit@debbugs.gnu.org; Tue, 10 Jun 2025 15:33:11 -0400 Received: from a11-121.smtp-out.amazonses.com ([54.240.11.121]:55215) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_CBC_SHA1:128) (Exim 4.84_2) (envelope-from <010001975b54cf4c-ffc1b013-a00d-435c-9b52-88cf4f801282-000000@mail.corp.mlfs.org>) id 1uP4iS-0005rq-41 for 78636@debbugs.gnu.org; Tue, 10 Jun 2025 15:33:05 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/simple; s=gyvnu7qtvdgiyrsmcz23vnbilqvwfpd4; d=corp.mlfs.org; t=1749583974; h=Subject:From:To:Cc:Date:Mime-Version:Content-Type:Content-Transfer-Encoding:In-Reply-To:References:Message-Id; bh=ejrkZe8ctDncuql57Nrr80I7bCc8UI3fWAPwF9xyhBw=; b=Zla7FrErfAMDZzvDnry1cT7D8mlGJBPosDX9L7s6GgCwv0iCwKy4E6+LkcRkIEE6 IL4gsJrqkuqkXpo658fUj53ZOMEI+4dLA3V7vn2IAuBvWIkDl0tXbWsVTRRDp2YCDd8 RMC0YusBQdKgTTyGDf3elp3lGSnU6dBpHsUPV4SY= DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/simple; s=6gbrjpgwjskckoa6a5zn6fwqkn67xbtw; d=amazonses.com; t=1749583974; h=Subject:From:To:Cc:Date:Mime-Version:Content-Type:Content-Transfer-Encoding:In-Reply-To:References:Message-Id:Feedback-ID; bh=ejrkZe8ctDncuql57Nrr80I7bCc8UI3fWAPwF9xyhBw=; b=mV2HnkAdZq7Ir2Yf0hDgbxCzKiMfzyX9spJ19OHnk60cMtT2jb8f6I9A0GE4Yuge hli61F55EictlPfwFS2hGwJBcQfyM5UoJXe3wn54wexIZmpLYfjk3TGlXzkmPX53qHN WeZvW1+EUn4dpREGOTkv6fiBfWwJcpG8sy1ILFDY= From: Andy Rosen Date: Tue, 10 Jun 2025 19:32:54 +0000 Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable In-Reply-To: <87jz5lp274.fsf@posteo.net> References: <5F11F8C9-F708-40DF-915F-91B6992802C8@corp.mlfs.org> <010001971cc2668d-0b41bbfd-dac4-42ff-bd39-aa75cb5200ab-000000@email.amazonses.com> <86msakhr28.fsf@gnu.org> <87jz5lp274.fsf@posteo.net> <86E62E23-1AAA-4F78-B9F2-F618C06F825F@corp.mlfs.org> X-Priority: 3 (Normal) X-Mailer: Amazon WorkMail Thread-Index: AQHb0LI+CIyyj6AHQbevGoZ5NPAimwG1zwr5AiB7nVgCYw3Vlw== Thread-Topic: bug#78636: 30.1; package-install-file errors with some tar files X-Original-Mailer: Apple Mail (2.3826.600.51.1.1) X-Wm-Sent-Timestamp: 1749583973 Message-ID: <010001975b54cf4c-ffc1b013-a00d-435c-9b52-88cf4f801282-000000@email.amazonses.com> Feedback-ID: ::1.us-east-1.LF00NED762KFuBsfzrtoqw+Brn/qlF9OYdxWukAhsl8=:AmazonSES X-SES-Outgoing: 2025.06.10-54.240.11.121 X-Spam-Score: 0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) On Jun 9, 2025, at 7:46=E2=80=AFAM, Philip Kaludercic wrote:=0D=0A>=20=0D=0A> Eli Zaretskii writes:=0D=0A>=20=0D= =0A>>> Date: Thu, 29 May 2025 15:56:31 +0000=0D=0A>>> From: Andy Rosen v= ia "Bug reports for GNU Emacs,=0D=0A>>> the Swiss army knife of text edit= ors" =0D=0A>>>=20=0D=0A>>> I propose adding a 'con= dition-case' to 'package-install-file' to return a friendly message.=0D=0A= >>>=20=0D=0A>>> diff --git a/lisp/emacs-lisp/package.el b/lisp/emacs-lisp= /package.el=0D=0A>>> index 82fcf439a11..01f659e6982 100644=0D=0A>>> --- a= /lisp/emacs-lisp/package.el=0D=0A>>> +++ b/lisp/emacs-lisp/package.el=0D=0A= >>> @@ -2439,8 +2439,10 @@ directory."=0D=0A>>> (insert-file-conten= ts-literally file)=0D=0A>>> (set-visited-file-name file)=0D=0A>>> = (set-buffer-modified-p nil)=0D=0A>>> - (when (string-match "\\.= tar\\'" file) (tar-mode)))=0D=0A>>> - (package-install-from-buffer)))=0D= =0A>>> + (when (string-match "\\.tar\\'" file) (tar-mode)=0D=0A> = ^=0D=0A> Please break the lin= e here. I initially missed the major-mode switch,=0D=0A> which confused = me.=0D=0A=0D=0ALike this=3F=0D=0A=0D=0A (when (string-match "\\.tar\= \'" file)=0D=0A (tar-mode)=0D=0A=0D=0AIt=E2=80=99s a single line i= n the current source. Yes, it makes more sense to split it.=0D=0A=0D=0A>= Also, can't we use `tar-header-block-tokenize' or some other function to= =0D=0A> directly check if the file is a valid archive, instead of relying= on=0D=0A> downstream signals being raised=3F=0D=0A=0D=0AI don=E2=80=99t = think we can use `tar-header-block-tokenize'. The file is a valid tar ar= chive, it=E2=80=99s just not a valid package file. From tar-mode=E2=80=99= s point of view everything is correct.=0D=0A=0D=0A`tar-get-file-descripto= r=E2=80=99 is a possibility. Part of this bug is `tar-get-file-descripto= r=E2=80=99 does not check if `tar-header-name=E2=80=99 matched with anyth= ing in `tar-parse-info'. In this case it does not, so `tar-get-file-desc= riptor=E2=80=99 passes nil to `tar--check-descriptor=E2=80=99, then to `t= ar--describe-as-link=E2=80=99, then to `tar-header-link-type=E2=80=99. `= tar-header-link-type=E2=80=99 throws "wrong-type-argument=E2=80=9D.=0D=0A= =0D=0AChecking for (and returning) nil in `tar-get-file-descriptor=E2=80=99= prevents the error, and ends up with "No package descriptor file found=E2= =80=9D in the echo area.=0D=0A=0D=0A-Andy=0D=0A=0D=0A