From debbugs-submit-bounces@debbugs.gnu.org Fri Oct 07 17:16:19 2022 Received: (at submit) by debbugs.gnu.org; 7 Oct 2022 21:16:19 +0000 Received: from localhost ([127.0.0.1]:37583 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oguhe-0006iH-Ne for submit@debbugs.gnu.org; Fri, 07 Oct 2022 17:16:19 -0400 Received: from lists.gnu.org ([209.51.188.17]:37836) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oguhc-0006i9-DU for submit@debbugs.gnu.org; Fri, 07 Oct 2022 17:16:16 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:47992) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oguhY-0003ON-L0 for bug-gnu-emacs@gnu.org; Fri, 07 Oct 2022 17:16:15 -0400 Received: from cockroach.oak.relay.mailchannels.net ([23.83.215.37]:3195) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oguhV-0006A4-8h for bug-gnu-emacs@gnu.org; Fri, 07 Oct 2022 17:16:12 -0400 X-Sender-Id: 9wt3zsp42r|x-authuser|emacs@unbit.co.uk Received: from relay.mailchannels.net (localhost [127.0.0.1]) by relay.mailchannels.net (Postfix) with ESMTP id 1E9DB540250 for ; Fri, 7 Oct 2022 21:16:00 +0000 (UTC) Received: from apollo.krystal.co.uk (unknown [127.0.0.6]) (Authenticated sender: 9wt3zsp42r) by relay.mailchannels.net (Postfix) with ESMTPA id 2334A540E4E for ; Fri, 7 Oct 2022 21:15:58 +0000 (UTC) ARC-Seal: i=1; s=arc-2022; d=mailchannels.net; t=1665177359; a=rsa-sha256; cv=none; b=cg6Ret8UWDd8BtAESaD79ZDLVhy0UFdh63icOuc4e449nrFssuhagNdRgAS8tcsTu/nlhg 0ymt+QnjFB+ejUtpc+7JBmagI/By+1/wvJwEW7sYDCXLjULQv8wSmrhb+r5mu4+HJXhN+8 a6WsevqE2KmqekZSYwbJrd7C392U9Gks5RXt2ANwoIwePmXQy73v/LyBlHTz95cA6zhFGp mZDhRRPhQaKS61ja/yinv+KQ41ljGNgkOhFWJJw1i0ixHVHwE8VJ78vcVn12BV++wMCfCL A5HrtLEu5IZ+e1g02p/rb+k7KF/B/0hvu0+5ew2HSuhRooEIsijSBUhCCIo/9A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=mailchannels.net; s=arc-2022; t=1665177359; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: dkim-signature; bh=9t+g8Npq8QPLHxK16jI13sG8nVIOgdSNUTusRFEOmaU=; b=63GG1sGOOU6CympbmFqcn4+zfNc10Zf3mvZi1aVnns5Ynj8omPzp246yNzWGwsGcDjnsYg ftxtHfOfcgQfqubs32t+VqY+vfj5z8Jm2yzIlaQt5c9XdVr4jK0Cw4ruvU8aMzLBGCdvsu 21Ozd3NdjYBZvBW6+lQ/8H5g+EMqpCHVMCBw0Y2j8vndGyzZOeSffH+14hrhlSUe6e/xea duR2PYS3nWV6ujS8pbzOVAlISDNt91jzWeZXJv2OPVcLVJQ7SAKsm4VV6CCR9qFcNnVDOM cHIMi1egRKwVlcg2Oe5FiIWLLz2pJTQHC/QcHhN8DBccRP/57/aOzqzqSNKY2w== ARC-Authentication-Results: i=1; rspamd-755f899884-pnx8m; auth=pass smtp.auth=9wt3zsp42r smtp.mailfrom=emacs@unbit.co.uk X-Sender-Id: 9wt3zsp42r|x-authuser|emacs@unbit.co.uk X-MC-Relay: Bad X-MailChannels-SenderId: 9wt3zsp42r|x-authuser|emacs@unbit.co.uk X-MailChannels-Auth-Id: 9wt3zsp42r X-Belong-Left: 6b42274941be064e_1665177359693_4147672947 X-MC-Loop-Signature: 1665177359693:2870491509 X-MC-Ingress-Time: 1665177359693 Received: from apollo.krystal.co.uk (apollo.krystal.co.uk [77.72.0.98]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384) by 100.97.34.80 (trex/6.7.1); Fri, 07 Oct 2022 21:15:59 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=unbit.co.uk ; s=default; h=Content-Type:Message-ID:Subject:To:From:Date:MIME-Version: Content-Transfer-Encoding:Sender:Reply-To:Cc:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: In-Reply-To:References:List-Id:List-Help:List-Unsubscribe:List-Subscribe: List-Post:List-Owner:List-Archive; bh=D/iJ94HXh0YyVEL/JJmmRqSEpoB50dQuCjXd8KCyCqI=; b=q/X9Rfirg8SiTxF+Q7UKA9zfTb te3Z5Xry9BWCA2akhDHesQ7288eQcepIy+2KHYiYbH6WDkrGrzsoRVR1cpXzqcm7uY7zQUmtc6vTS U1DVr5jOyZLZYlSpYemmiDTBNorjKdcf6VFQCV4AE3M9DGa0WKVlRgW+uLD5nmHGqHGwSnVUuOt1Q CdLkmHA+4GDw4qpVHgw6JNM4Penx+iFyatIwtbnavHNbbvvpjscjDBUdNaqCqOie7UGSMbL36v89m zH0a/cW7x73AmSA+e9Z4XAc+hHJaO4ild+xMvr6tug81CI+4pJEKA6Sd5fJ5sSmyJooQYHITXNVJt uPQqMrFw==; Received: from [::1] (port=45714 helo=apollo.krystal.co.uk) by apollo.krystal.co.uk with esmtpa (Exim 4.95) (envelope-from ) id 1oguhK-003Qqe-Id for bug-gnu-emacs@gnu.org; Fri, 07 Oct 2022 22:15:56 +0100 MIME-Version: 1.0 Date: Fri, 07 Oct 2022 22:15:56 +0100 From: Richard Hopkins To: bug-gnu-emacs@gnu.org Subject: `package-install-file' rejects some .tar files (tentative patch) User-Agent: Roundcube Webmail/1.5.2 Message-ID: <263dae3ce307236c2694a2bc0baa3f63@unbit.co.uk> X-Sender: emacs@unbit.co.uk Content-Type: multipart/mixed; boundary="=_f90569960d4e6187016a8cd0be90d3a8" X-AuthUser: emacs@unbit.co.uk Received-SPF: pass client-ip=23.83.215.37; envelope-from=emacs@unbit.co.uk; helo=cockroach.oak.relay.mailchannels.net X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=-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.3 (-) X-Debbugs-Envelope-To: submit 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: -2.3 (--) --=_f90569960d4e6187016a8cd0be90d3a8 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII; format=flowed `package-install-file' signals an error for some .tar packages based on their structure - both file layout and tar format. This is specific to the package routines for .tar files as Emacs can understand them fine, and can also install the packages if they have already been extracted. There's 2 different issues that cause this: 1) An old style .tar file (autoconf tar-v7, `tar cof ...`) vs a new style file (autoconf tar-ustar, `tar cf ...`) 2) A package where all files are in a single directory vs having child directories. A package with child directories currently only installs successfully if it's already extracted; the manual also says they are allowed. Combining these issues the current state of package installation using .tar files is: * ustar-nosub - error * ustar-withsub - error * v7-nosub - success * v7-withsub - error The main issue is how the package functions try to calculate the root of the package directory and from there it can locate the "-pkg.el" file etc. From this we get two different errors: 1) Cannot handle a plain directory being first and missing a path separator. e.g. This happens for ustar files with or without a sub directory. $ tar tf ustar-nosub-0.1.tar ustar-nosub-0.1 ustar-nosub-0.1/ustar-nosub.el ustar-nosub-0.1/ustar-nosub-pkg.el M-: (package-install-file "ustar-nosub-0.1.tar") Debugger entered--Lisp error: (wrong-type-argument stringp nil) directory-file-name(nil) package--description-file(nil) package-tar-file-info() package-install-from-buffer() package-install-file("~/tmp/pkgtest/tars/ustar-nosub-0.1.tar") funcall-interactively(package-install-file "~/tmp/pkgtest/tars/ustar-nosub-0.1.tar") call-interactively(package-install-file record nil) command-execute(package-install-file record) execute-extended-command(nil "package-install-file" "package-install-file") funcall-interactively(execute-extended-command nil "package-install-file" "package-install-file") call-interactively(execute-extended-command nil nil) command-execute(execute-extended-command) 2) Looks for "-pkg.el" in a sub directory when it won't be there. This happens for a v7 file but may also happen for a ustar if it wasn't for error (1). $ tar tf v7-withsub-0.1.tar v7-withsub-0.1/v7-sub/foo.txt v7-withsub-0.1/v7-withsub.el v7-withsub-0.1/v7-withsub-pkg.el M-: (package-install-file "tar tf v7-withsub-0.1.tar") Debugger entered--Lisp error: (wrong-type-argument arrayp nil) tar--describe-as-link(nil) tar--check-descriptor(nil) tar-get-file-descriptor("v7-withsub-0.1/v7-sub/v7-sub-pkg.el") package-tar-file-info() package-install-from-buffer() package-install-file("~/tmp/pkgtest/tars/v7-withsub-0.1.tar") funcall-interactively(package-install-file "~/tmp/pkgtest/tars/v7-withsub-0.1.tar") call-interactively(package-install-file record nil) command-execute(package-install-file record) execute-extended-command(nil "package-install-file" "package-install-file") funcall-interactively(execute-extended-command nil "package-install-file" "package-install-file") call-interactively(execute-extended-command nil nil) command-execute(execute-extended-command) For comparison the only .tar file that works is an old style v7 file with all files in a single directory $ tar tf v7-nosub-0.1.tar v7-nosub-0.1/v7-nosub.el v7-nosub-0.1/v7-nosub-pkg.el M-: (package-install-file "v7-nosub-0.1.tar") success I've attached the example files to help you investigate. There is also a proof of concept patch as it fixes ustar files with or without sub directories, but it still fails on v7-withsub making the new summary: * ustar-nosub - success * ustar-withsub - success * v7-nosub - success * v7-withsub - error The modified functions were `package-untar-buffer' and `package-tar-file-info'. p.s. These results are from OpenBSD 7.1 with their `tar` and Emacs 28.2 and master. A related issue #13136 - https://debbugs.gnu.org/cgi/bugreport.cgi?bug=13136 --=_f90569960d4e6187016a8cd0be90d3a8 Content-Transfer-Encoding: base64 Content-Type: text/x-diff; name=0001-tar-package-install-file.patch Content-Disposition: attachment; filename=0001-tar-package-install-file.patch; size=2436 VGVhY2ggYHBhY2thZ2UtaW5zdGFsbC1maWxlJyB0byBpbnN0YWxsIHByZXZpb3VzbHkgcmVqZWN0 ZWQgdGFyYmFsbHMKCldoaWxzdCBFbWFjcyBjYW4gb3BlbiB0aGUgdmFyaWV0aWVzIG9mIHRhcmJh bGxzIHdpdGggbm8gcHJvYmxlbSwgdGhlCnBhY2thZ2UgbWFuYWdlbWVudCBmdW5jdGlvbnMgZGVw ZW5kZWQgb24gYSBwYXJ0aWN1bGFyIHRhYmxlIGxheW91dCBpbgp0aGUgdGFyYmFsbCB0byBjYWxj dWxhdGUgdGhlIGRpcmVjdG9yeSBmb3IgdGhlIHBhY2thZ2UuCgpGb3IgZXhhbXBsZSwgd2l0aCBC U0QgdGFyOiBgdGFyIGNmIC4uLmAgd291bGQgZ2VuZXJhdGUgYSByZWplY3RlZAp0YXJiYWxsLCBh bmQgYHRhciBjb2YgLi4uYCB3b3VsZCBnZW5lcmF0ZSBhbiBhY2NlcHRlZCBvbmUuCgoqIGxpc3Av ZW1hY3MtbGlzcC9wYWNrYWdlLmVsIChwYWNrYWdlLXVudGFyLWJ1ZmZlcik6IENvbXBhcmUgYWdh aW5zdAp0aGUgaGVhZGVyIG5hbWUgZnJvbSB0aGUgdGFyYmFsbCByYXRoZXIgdGhhbiB0aGUgZmls ZXN5c3RlbQpleHBhbmRlZCBmb3JtLgoocGFja2FnZS10YXItZmlsZS1pbmZvKTogQWxzbyBhbGxv dyB0aGUgZmlyc3QgZW50cnkgdG8gYmUgYSBwbGFpbgpkaXJlY3RvcnkgbmFtZSB3aXRob3V0IHRy YWlsaW5nIHBhdGggc2VwYXJhdG9yLgotLS0KIGxpc3AvZW1hY3MtbGlzcC9wYWNrYWdlLmVsIHwg MTEgKysrKysrKy0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA3IGluc2VydGlvbnMoKyksIDQgZGVsZXRp b25zKC0pCgpkaWZmIC0tZ2l0IGEvbGlzcC9lbWFjcy1saXNwL3BhY2thZ2UuZWwgYi9saXNwL2Vt YWNzLWxpc3AvcGFja2FnZS5lbAppbmRleCA0MjY4ZjdkMjdhLi5jYzM3MWZiYzUwIDEwMDY0NAot LS0gYS9saXNwL2VtYWNzLWxpc3AvcGFja2FnZS5lbAorKysgYi9saXNwL2VtYWNzLWxpc3AvcGFj a2FnZS5lbApAQCAtOTI2LDExICs5MjYsMTIgQEAgcGFja2FnZS11bnRhci1idWZmZXIKICAgKGxl dCAoKHJlZ2V4cCAoY29uY2F0ICJcXGAiIChyZWdleHAtcXVvdGUgKGV4cGFuZC1maWxlLW5hbWUg ZGlyKSkgIi8iKSkKICAgICAgICAgKGNhc2UtZm9sZC1zZWFyY2ggKGZpbGUtbmFtZS1jYXNlLWlu c2Vuc2l0aXZlLXAgZGlyKSkpCiAgICAgKGRvbGlzdCAodGFyLWRhdGEgdGFyLXBhcnNlLWluZm8p Ci0gICAgICAobGV0ICgobmFtZSAoZXhwYW5kLWZpbGUtbmFtZSAodGFyLWhlYWRlci1uYW1lIHRh ci1kYXRhKSkpKQorICAgICAgKGxldCogKChoZWFkZXItbmFtZSAodGFyLWhlYWRlci1uYW1lIHRh ci1kYXRhKSkKKyAgICAgICAgICAgICAobmFtZSAoZXhwYW5kLWZpbGUtbmFtZSBoZWFkZXItbmFt ZSkpKQogICAgICAgICAob3IgKHN0cmluZy1tYXRjaCByZWdleHAgbmFtZSkKICAgICAgICAgICAg IDs7IFRhcmJhbGxzIGNyZWF0ZWQgYnkgc29tZSB1dGlsaXRpZXMgZG9uJ3QgbGlzdAogICAgICAg ICAgICAgOzsgZGlyZWN0b3JpZXMgd2l0aCBhIHRyYWlsaW5nIHNsYXNoIChCdWcjMTMxMzYpLgot ICAgICAgICAgICAgKGFuZCAoc3RyaW5nLWVxdWFsIGRpciBuYW1lKQorICAgICAgICAgICAgKGFu ZCAoc3RyaW5nLWVxdWFsIGRpciBoZWFkZXItbmFtZSkKICAgICAgICAgICAgICAgICAgKGVxICh0 YXItaGVhZGVyLWxpbmstdHlwZSB0YXItZGF0YSkgNSkpCiAgICAgICAgICAgICAoZXJyb3IgIlBh Y2thZ2UgZG9lcyBub3QgdW50YXIgY2xlYW5seSBpbnRvIGRpcmVjdG9yeSAlcy8iIGRpcikpKSkp CiAgICh0YXItdW50YXItYnVmZmVyKSkKQEAgLTExOTIsOCArMTE5MywxMCBAQCBwYWNrYWdlLXRh ci1maWxlLWluZm8KICAgIkZpbmQgcGFja2FnZSBpbmZvcm1hdGlvbiBmb3IgYSB0YXIgZmlsZS4K IFRoZSByZXR1cm4gcmVzdWx0IGlzIGEgYHBhY2thZ2UtZGVzYycuIgogICAoY2wtYXNzZXJ0IChk ZXJpdmVkLW1vZGUtcCAndGFyLW1vZGUpKQotICAobGV0KiAoKGRpci1uYW1lIChmaWxlLW5hbWUt ZGlyZWN0b3J5Ci0gICAgICAgICAgICAgICAgICAgICh0YXItaGVhZGVyLW5hbWUgKGNhciB0YXIt cGFyc2UtaW5mbykpKSkKKyAgKGxldCogKChoZWFkZXItbmFtZSAodGFyLWhlYWRlci1uYW1lIChj YXIgdGFyLXBhcnNlLWluZm8pKSkKKwkgKGRpci1uYW1lIChvciAoZmlsZS1uYW1lLWRpcmVjdG9y eSBoZWFkZXItbmFtZSkKKyAgICAgICAgICAgICAgICAgICAgICAgOzsgU29tZSB0YXIgdXRpbGl0 aWVzIGdlbmVyYXRlIGEgcGxhaW4gZGlyZWN0b3J5IG5hbWUgZmlyc3QKKyAgICAgICAgICAgICAg ICAgICAgICAgKGZpbGUtbmFtZS1hcy1kaXJlY3RvcnkgaGVhZGVyLW5hbWUpKSkKICAgICAgICAg IChkZXNjLWZpbGUgKHBhY2thZ2UtLWRlc2NyaXB0aW9uLWZpbGUgZGlyLW5hbWUpKQogICAgICAg ICAgKHRhci1kZXNjICh0YXItZ2V0LWZpbGUtZGVzY3JpcHRvciAoY29uY2F0IGRpci1uYW1lIGRl c2MtZmlsZSkpKSkKICAgICAodW5sZXNzIHRhci1kZXNjCjIuMzguMAoK --=_f90569960d4e6187016a8cd0be90d3a8 Content-Transfer-Encoding: base64 Content-Type: application/gzip; name=tar-package-install-file.tar.gz Content-Disposition: attachment; filename=tar-package-install-file.tar.gz; size=2342 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 /QAYAQA= --=_f90569960d4e6187016a8cd0be90d3a8-- From debbugs-submit-bounces@debbugs.gnu.org Fri Oct 07 17:55:30 2022 Received: (at control) by debbugs.gnu.org; 7 Oct 2022 21:55:30 +0000 Received: from localhost ([127.0.0.1]:37604 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ogvJa-0007hN-2l for submit@debbugs.gnu.org; Fri, 07 Oct 2022 17:55:30 -0400 Received: from mail-oa1-f42.google.com ([209.85.160.42]:43684) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ogvJY-0007hA-Aj for control@debbugs.gnu.org; Fri, 07 Oct 2022 17:55:28 -0400 Received: by mail-oa1-f42.google.com with SMTP id 586e51a60fabf-1324e7a1284so6964434fac.10 for ; Fri, 07 Oct 2022 14:55:28 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=to:subject:message-id:date:mime-version:from:from:to:cc:subject :date:message-id:reply-to; bh=b+G6IWyO8bQhUR6wD/FXoaQr9Nd1XOZxSaErfdq+oRw=; b=BnCZhqUpwGYrBGzfv6K3mxzJlMVenYTRRuer6AMeJKDKZjSo+sYJiX+HBI7AB3rggV GQ8Lw7NZXJtHT653EQ+qwF/E9wWvKLudw73P+SQFshnNMHNVY0XM0mD6kjqt8Liwfeny mppCKu11SKOm1KX4kiDqQeCGXeoKqDwaLTnMcMtWo6hcnt7ZxpkHiYa9Ghx6Vs6CYbC9 /zt4rTn4kk40yDs9jxPYoC3CATnEwSVfaX3I4UeHZzxGVlpc5oOcMA53eYkpO/SqKfJj 7wcXEJg4xD7P6efm8+FfUqAHYKFqHW54ZLzvRSqZcw9Cr8oYKMJCTt13qZvZ8O+j2izq 6GvQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=to:subject:message-id:date:mime-version:from:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=b+G6IWyO8bQhUR6wD/FXoaQr9Nd1XOZxSaErfdq+oRw=; b=abdRRKdYR5rJs3DCl8FbkikrQp4f2BlKJJ1v8SukJmiNRUAeDSsAXCRCG0nbGbpDGi tMvsexjAtUbjRyMgnISl1j9x9DeX5/Ta6hWBIm5Ct32WTmZLnO46XfaY9Wc9YalSX7BI CedDPlOXf2rPGYT8l7i34b8ZQupdvzosf+b0FOSb7CJCGPxsaHGqoaGricU/n6BR8gV1 kAetxn+treFeERsGjstH9aG25DxeHkES7OE6x/xB1UTWDn1lYj7V84KLxa2uZ+t4oNku 0j+UQdQyX5JeXSvKecKRAmfnszB9+S4XFiA4aax6juUVvMG9Ihpkwz6u76L6GlWExFdv BdSQ== X-Gm-Message-State: ACrzQf2UhP36D/o5mtNb4lIKsKE6c8JqysD3SECjcurgBTDoIXTU7Urp PI5HBXMxtYOFIrBmoYeDA+8W8aFyTzwoWHx7qNtDcf9U X-Google-Smtp-Source: AMsMyM4WwsNv3RDrqztGBeyScQOuPG2VHtlelEwhspBLlrUkb7aZB9e3uoESfiBV4VWTsTnHul98A7VY2NtOT+D8zaU= X-Received: by 2002:a05:6870:46a6:b0:12d:130c:2fd5 with SMTP id a38-20020a05687046a600b0012d130c2fd5mr9076160oap.92.1665179722668; Fri, 07 Oct 2022 14:55:22 -0700 (PDT) Received: from 753933720722 named unknown by gmailapi.google.com with HTTPREST; Fri, 7 Oct 2022 23:55:22 +0200 From: Stefan Kangas X-Hashcash: 1:20:221007:control@debbugs.gnu.org::ad2scepWrRtU+6sG:0l4s MIME-Version: 1.0 Date: Fri, 7 Oct 2022 23:55:22 +0200 Message-ID: Subject: To: control@debbugs.gnu.org Content-Type: text/plain; charset="UTF-8" X-Spam-Score: 2.0 (++) X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.org", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see the administrator of that system for details. Content preview: tags 58367 + patch thanks Content analysis details: (2.0 points, 10.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -0.0 SPF_PASS SPF: sender matches SPF record -0.0 RCVD_IN_DNSWL_NONE RBL: Sender listed at https://www.dnswl.org/, no trust [209.85.160.42 listed in list.dnswl.org] 0.0 FREEMAIL_FROM Sender email is commonly abused enduser mail provider (stefankangas[at]gmail.com) 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record 0.0 RCVD_IN_MSPIKE_H3 RBL: Good reputation (+3) [209.85.160.42 listed in wl.mailspike.net] 0.0 UNPARSEABLE_RELAY Informational: message has unparseable relay lines 2.0 BLANK_SUBJECT Subject is present but empty 0.0 RCVD_IN_MSPIKE_WL Mailspike good senders X-Debbugs-Envelope-To: control 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 (+) tags 58367 + patch thanks From debbugs-submit-bounces@debbugs.gnu.org Sat Oct 08 09:28:59 2022 Received: (at 58367) by debbugs.gnu.org; 8 Oct 2022 13:28:59 +0000 Received: from localhost ([127.0.0.1]:38640 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oh9sw-0002Tn-OE for submit@debbugs.gnu.org; Sat, 08 Oct 2022 09:28:58 -0400 Received: from quimby.gnus.org ([95.216.78.240]:34354) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oh9su-0002TX-Gk for 58367@debbugs.gnu.org; Sat, 08 Oct 2022 09:28:57 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnus.org; s=20200322; h=Content-Type:MIME-Version:Message-ID:Date:References: In-Reply-To:Subject:Cc:To:From:Sender:Reply-To:Content-Transfer-Encoding: Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender: Resent-To:Resent-Cc:Resent-Message-ID:List-Id:List-Help:List-Unsubscribe: List-Subscribe:List-Post:List-Owner:List-Archive; bh=/o5XrmaQK4EYLxqkfU/nBiEfcayVY1UA9+kcEo2MHdM=; b=GfYFXa8PRGYg8u4JPmSfPlv0SW NMEXi9EuDA+yQC/s3V9ouDCotAxXVhKlMCcHQfBNMvqGWeAn1vSzP3FuNconLdXvGX4RYIqH700zO S0K7TFnXCpKLoN2SFkbNZoPDeZdM2rpOtiQhLb1Wx1E6Mpx8Dt1EiWvZILG5FDZxgwoc=; Received: from [84.212.220.105] (helo=downe) by quimby.gnus.org with esmtpsa (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1oh9sk-0000D8-6K; Sat, 08 Oct 2022 15:28:48 +0200 From: Lars Ingebrigtsen To: Richard Hopkins Subject: Re: bug#58367: `package-install-file' rejects some .tar files (tentative patch) In-Reply-To: <263dae3ce307236c2694a2bc0baa3f63@unbit.co.uk> (Richard Hopkins's message of "Fri, 07 Oct 2022 22:15:56 +0100") References: <263dae3ce307236c2694a2bc0baa3f63@unbit.co.uk> X-Now-Playing: Joni Mitchell's _Blue_: "My Old Man" Date: Sat, 08 Oct 2022 15:28:44 +0200 Message-ID: <87pmf2saur.fsf@gnus.org> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Report: Spam detection software, running on the system "quimby.gnus.org", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see @@CONTACT_ADDRESS@@ for details. Content preview: Richard Hopkins writes: > `package-install-file' signals an error for some .tar packages based > on their structure - both file layout and tar format. > > This is specific to the package routines for .tar files as Emacs can [...] Content analysis details: (-2.9 points, 5.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -1.0 ALL_TRUSTED Passed through trusted hosts only via SMTP -1.9 BAYES_00 BODY: Bayes spam probability is 0 to 1% [score: 0.0000] X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 58367 Cc: 58367@debbugs.gnu.org, Stefan Monnier 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 (---) Richard Hopkins writes: > `package-install-file' signals an error for some .tar packages based > on their structure - both file layout and tar format. > > This is specific to the package routines for .tar files as Emacs can > understand them fine, and can also install the packages if they have > already been extracted. Perhaps Stefan has some comments here; added to the CCs. From debbugs-submit-bounces@debbugs.gnu.org Sat Oct 08 09:55:43 2022 Received: (at 58367) by debbugs.gnu.org; 8 Oct 2022 13:55:43 +0000 Received: from localhost ([127.0.0.1]:40189 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ohAIp-0005kz-FM for submit@debbugs.gnu.org; Sat, 08 Oct 2022 09:55:43 -0400 Received: from antelope.elm.relay.mailchannels.net ([23.83.212.4]:48942) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ohAIm-0005hM-3d for 58367@debbugs.gnu.org; Sat, 08 Oct 2022 09:55:41 -0400 X-Sender-Id: 9wt3zsp42r|x-authuser|emacs@unbit.co.uk Received: from relay.mailchannels.net (localhost [127.0.0.1]) by relay.mailchannels.net (Postfix) with ESMTP id 4A32B9216BB; Sat, 8 Oct 2022 13:55:38 +0000 (UTC) Received: from apollo.krystal.co.uk (unknown [127.0.0.6]) (Authenticated sender: 9wt3zsp42r) by relay.mailchannels.net (Postfix) with ESMTPA id 0B8479216E5; Sat, 8 Oct 2022 13:55:36 +0000 (UTC) ARC-Seal: i=1; s=arc-2022; d=mailchannels.net; t=1665237337; a=rsa-sha256; cv=none; b=cjTj9+zPB8/V0W5fq/aYIO3/RXu094Ww9d3Zy5/6zsgy6Kue+xlOhsULvGOJAR6flazllq o6HBouQU0N/1XmB5FjZyCCLTpC74rsedxqF88Pao3uiZDm4hPf172G2Gj0wy1ZaMMRTfQS MleTUWfz8u1ZdszVSnF+n99Sg5IdL/eCVyImJaTevcssBqeg0YD6OPTZX9/Hd+FRZUQ+b1 gmqCkw+uz5EqqFcsdfkoswhQD/jzuLUm2TEbBfo4szGvCaVIiao+p1qI6XC9hDE7dF6KOe NbL4SmQohOD3nXHMWZMFoPjtG+aVZZwtNPo7WQL/B+neWUtSUpsLgetepVmGGw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=mailchannels.net; s=arc-2022; t=1665237337; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=dvK3Esxwobi8BM7AgXLkUkUwPvEHBn/tucMFwmG6CU0=; b=ikTiI1Ez8taU0fn4a9RTTMR3sTGanzMrpRRiXW+gBsflFlG/PMAxEywkB7FF52KzvrKUnq 2waP1Bg+EbqedXrIb2Trcgk49VAzKMiSRiXY/y1PXTOyLR/1vc3kicXHPT8yZj+yLXqJgw 1CLaitjEcDjZcuQIRXD12/GDij0QHldaXrF0NAcq3l/nu7EL9XcikftTM7c2Mui5afGWN4 QIrWTTewh3h1HMmQHpCwQcfJSQeBqoco/v+1Yls54WpoO8w1tsQ+S+bg4Qkl7P3dV/SsLn wkfdfXSyHVUTOt7Z409RReztyDiOZW7NpxbwuFDJykh3pLfzKoAUqRGnvaLzeQ== ARC-Authentication-Results: i=1; rspamd-7c485dd8cf-gdcxr; auth=pass smtp.auth=9wt3zsp42r smtp.mailfrom=emacs@unbit.co.uk X-Sender-Id: 9wt3zsp42r|x-authuser|emacs@unbit.co.uk X-MC-Relay: Neutral X-MailChannels-SenderId: 9wt3zsp42r|x-authuser|emacs@unbit.co.uk X-MailChannels-Auth-Id: 9wt3zsp42r X-Print-Celery: 0758db3d464c2a9d_1665237337852_513959468 X-MC-Loop-Signature: 1665237337852:3420567738 X-MC-Ingress-Time: 1665237337851 Received: from apollo.krystal.co.uk (apollo.krystal.co.uk [77.72.0.98]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384) by 100.126.129.213 (trex/6.7.1); Sat, 08 Oct 2022 13:55:37 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=unbit.co.uk ; s=default; h=Content-Transfer-Encoding:Content-Type:Message-ID:References: In-Reply-To:Subject:Cc:To:From:Date:MIME-Version:Sender:Reply-To:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:List-Id:List-Help:List-Unsubscribe:List-Subscribe: List-Post:List-Owner:List-Archive; bh=dvK3Esxwobi8BM7AgXLkUkUwPvEHBn/tucMFwmG6CU0=; b=ZzXKBg96n4YV6dhueoZzNFXPpL FBCHtkz9mwdK382PJ4gBEAMlsULDXcAjeM56hbbdqBYrU/7vlT3tqQANE3u6+LPmYcL0KkZr2gW0w AeFhbUGqpKOuANs6HEuRNLoYn0dOTYd6jWJP+yYziQbrhet0TDwgvWIP6Ic4tAbd6zRbp2EIPsi53 64F9BS64f+uATw4QRCSWCIGgsvw/s1jyNrE6FIY2DJdWnYdrgypBQv2tfiwutM4Lio9hEhXGDgLdR IRhPz/r2+CgucRK+L09fJHXUY/KTICvKPLqDyxCCx9Z0ShkqXzYIY7eybB2SXAZodWwxy/IY/LDZU fnqTe5FQ==; Received: from [::1] (port=39990 helo=apollo.krystal.co.uk) by apollo.krystal.co.uk with esmtpa (Exim 4.95) (envelope-from ) id 1ohAIj-00Ec32-IO; Sat, 08 Oct 2022 14:55:35 +0100 MIME-Version: 1.0 Date: Sat, 08 Oct 2022 14:55:35 +0100 From: Richard Hopkins To: Lars Ingebrigtsen Subject: Re: bug#58367: `package-install-file' rejects some .tar files (tentative patch) In-Reply-To: <87pmf2saur.fsf@gnus.org> References: <263dae3ce307236c2694a2bc0baa3f63@unbit.co.uk> <87pmf2saur.fsf@gnus.org> User-Agent: Roundcube Webmail/1.5.2 Message-ID: <7e77f24cf4fb9ea9b12c4bab2c11cbcd@unbit.co.uk> X-Sender: emacs@unbit.co.uk Content-Type: text/plain; charset=US-ASCII; format=flowed Content-Transfer-Encoding: 7bit X-AuthUser: emacs@unbit.co.uk X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 58367 Cc: 58367@debbugs.gnu.org, Stefan Monnier 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 (-) I've found another difference regarding `package-install-file' and a package with subdirectories that I can reproduce with the previously attached files. This is the difference between installing a directory or installing a .tar file. For example M-: (package-install-file "ustar-withsub-0.1") ;; * installs but ignores subdirectory M-: (package-install-file "ustar-withsub-0.1.tar") ;; * 28.2 - error ;; * with patch - installs and includes subdirectory I believe sub directories should be allowed from this part of the docs and the patch now allows for it as well as fixing the error. "...Files may also extract into subdirectories of the content directory. ..." https://www.gnu.org/software/emacs/manual/html_node/elisp/Multi_002dfile-Packages.html It would be to good to see if anyone can reproduce these as it looks like more patches are needed to support sub directories? 1) for v7-withsub-0.1.tar so it looks at the top level for "-pkg.el" 2) include subdirectories when installing from a directory to match functionality of installing from .tar. From debbugs-submit-bounces@debbugs.gnu.org Sat Oct 08 12:25:46 2022 Received: (at 58367) by debbugs.gnu.org; 8 Oct 2022 16:25:46 +0000 Received: from localhost ([127.0.0.1]:41309 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ohCe1-00081B-Jj for submit@debbugs.gnu.org; Sat, 08 Oct 2022 12:25:45 -0400 Received: from mailscanner.iro.umontreal.ca ([132.204.25.50]:45506) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ohCdz-00080y-ID for 58367@debbugs.gnu.org; Sat, 08 Oct 2022 12:25:44 -0400 Received: from pmg2.iro.umontreal.ca (localhost.localdomain [127.0.0.1]) by pmg2.iro.umontreal.ca (Proxmox) with ESMTP id BEFB680758; Sat, 8 Oct 2022 12:25:37 -0400 (EDT) Received: from mail01.iro.umontreal.ca (unknown [172.31.2.1]) by pmg2.iro.umontreal.ca (Proxmox) with ESMTP id 8680B80470; Sat, 8 Oct 2022 12:25:35 -0400 (EDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=iro.umontreal.ca; s=mail; t=1665246335; bh=KPMR3kbxVP/8SZza1oyjuLjzPCkzPP0RAeEZoidDww8=; h=From:To:Cc:Subject:In-Reply-To:References:Date:From; b=IqugfZnUQGHcAlr+YT9Fe4BwNVOobfNUJXeuEb9AZYXtr62IQSmYHSRDzeteLpAkh YTi6IiixmjD0Na+83glGNqLy4XUwQbSuQqv+5iR3ymaDEuUpDn8i8+lu1wGUa+Zn0f KRIFkT3Fs8e1uwJovPwS7YUXYrbouB3bqJdYG6dmakEYro7QEUwMbILwbFF+YhMs1Q IHerB0GqoSieAHGmXl2L2xTaOt5mCuEY0xVBz/5/6X2wEinozl+Ps06k2ld6rTqgDQ r2kpmTYc7tQOuDO8kEG77DPX14p7Vb6OvGybJ1DG7E3aEgvk+FPSaQJB7IJ75k09YO ZZd+q6KuadOTA== Received: from pastel (65-110-220-202.cpe.pppoe.ca [65.110.220.202]) by mail01.iro.umontreal.ca (Postfix) with ESMTPSA id 52D211207BF; Sat, 8 Oct 2022 12:25:35 -0400 (EDT) From: Stefan Monnier To: Richard Hopkins Subject: Re: bug#58367: `package-install-file' rejects some .tar files (tentative patch) In-Reply-To: <263dae3ce307236c2694a2bc0baa3f63@unbit.co.uk> (Richard Hopkins's message of "Fri, 07 Oct 2022 22:15:56 +0100") Message-ID: References: <263dae3ce307236c2694a2bc0baa3f63@unbit.co.uk> Date: Sat, 08 Oct 2022 12:25:33 -0400 User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/29.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-SPAM-INFO: Spam detection results: 0 ALL_TRUSTED -1 Passed through trusted hosts only via SMTP AWL -0.134 Adjusted score from AWL reputation of From: address BAYES_00 -1.9 Bayes spam probability is 0 to 1% DKIM_SIGNED 0.1 Message has a DKIM or DK signature, not necessarily valid DKIM_VALID -0.1 Message has at least one valid DKIM or DK signature DKIM_VALID_AU -0.1 Message has a valid DKIM or DK signature from author's domain X-SPAM-LEVEL: X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 58367 Cc: 58367@debbugs.gnu.org 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 (---) > 2) A package where all files are in a single directory vs having > child directories. A package with child directories currently only > installs successfully if it's already extracted; the manual also says > they are allowed. I'm pretty sure I've successfully installed the Hyperbole package (which includes subdirectories) directly from GNU ELPA and I haven't heard complaints about the Proof-General (M|NonGNU)ELPA package (which relies even more heavily on subdirectories) either, so the problem is likely linked to some other "detail". [..time passes..] Thanks for the tarballs for the tests, they were very helpful. The patch also pointed in the right direction. I installed the patch below (plus regression tests) into `master`. [ Whether the name comparisons should be done on names that have gone through `expand-file-name` or not is a good question. Efficiency/simplicity suggests not to do that, and the code's history doesn't explain why it's done, but I have the vague recollection that it tries to handle some cases of funny file names, e.g. with .. in them. In the end I kept the `expand-file-name` version mostly so as to reduce the size of the change (and associated risk of regression). ] Stefan diff --git a/lisp/emacs-lisp/package.el b/lisp/emacs-lisp/package.el index 4268f7d27a7..d619142d64c 100644 --- a/lisp/emacs-lisp/package.el +++ b/lisp/emacs-lisp/package.el @@ -930,7 +930,7 @@ package-untar-buffer (or (string-match regexp name) ;; Tarballs created by some utilities don't list ;; directories with a trailing slash (Bug#13136). - (and (string-equal dir name) + (and (string-equal (expand-file-name dir) name) (eq (tar-header-link-type tar-data) 5)) (error "Package does not untar cleanly into directory %s/" dir))))) (tar-untar-buffer)) @@ -1192,8 +1192,12 @@ package-tar-file-info "Find package information for a tar file. The return result is a `package-desc'." (cl-assert (derived-mode-p 'tar-mode)) - (let* ((dir-name (file-name-directory - (tar-header-name (car tar-parse-info)))) + (let* ((dir-name (named-let loop + ((filename (tar-header-name (car tar-parse-info)))) + (let ((dirname (file-name-directory filename))) + ;; The first file can be in a subdir: look for the top. + (if dirname (loop (directory-file-name dirname)) + (file-name-as-directory filename))))) (desc-file (package--description-file dir-name)) (tar-desc (tar-get-file-descriptor (concat dir-name desc-file)))) (unless tar-desc From debbugs-submit-bounces@debbugs.gnu.org Sat Oct 08 18:45:19 2022 Received: (at 58367) by debbugs.gnu.org; 8 Oct 2022 22:45:19 +0000 Received: from localhost ([127.0.0.1]:41597 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ohIZL-00053O-75 for submit@debbugs.gnu.org; Sat, 08 Oct 2022 18:45:19 -0400 Received: from hamster.birch.relay.mailchannels.net ([23.83.209.80]:30457) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ohIZI-00053G-9Q for 58367@debbugs.gnu.org; Sat, 08 Oct 2022 18:45:17 -0400 X-Sender-Id: 9wt3zsp42r|x-authuser|emacs@unbit.co.uk Received: from relay.mailchannels.net (localhost [127.0.0.1]) by relay.mailchannels.net (Postfix) with ESMTP id E44AD201486; Sat, 8 Oct 2022 22:45:14 +0000 (UTC) Received: from apollo.krystal.co.uk (unknown [127.0.0.6]) (Authenticated sender: 9wt3zsp42r) by relay.mailchannels.net (Postfix) with ESMTPA id CACBD201244; Sat, 8 Oct 2022 22:45:13 +0000 (UTC) ARC-Seal: i=1; s=arc-2022; d=mailchannels.net; t=1665269114; a=rsa-sha256; cv=none; b=VkQJtUCwCscp5uaAMoyX+4Og3J9URfKPRt3JZPcd5AdEjA5fVrEVjvq/yvLO6ery8hhtGx fxPjnJY6YhhNIT3MQSVPKzefPprVBS96ZLCilhL8F8vRGTMKPaEh5ajJYN4puZ4ShC7aIx X/2wHT+KYQBaW10vt0skrFBc/9MMt90cX6hh0eH4aIYlzYQDCSLUdYAq2qiNRfnAcaixrk /Z5AbI+N754vguq2wVf4A4FwIRZeyLZ6wGnUsYIeZYOjClLg+W2AHeX9ckKkF9Aa7WEHn9 fLU48RE8joscWniZT29PGUOvvQEzvjdbWiMBWOl8CDoB96NXwEp7sP5iBcAIFg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=mailchannels.net; s=arc-2022; t=1665269114; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=SbspGENm+oQubGHaWoDWLwU+dm3dzFDaZkmKvBhDkpg=; b=LKP/Q0ZIUlku7ZCNIy5zpt9Ck1vVa8M0OzaQp2j4llWZi2xNdrAuQdSmT77ZBQqZnxMpXK 6uya2+irK5eB96hzLusc6bVPtfbgxH/YGNswDc6qgZKd5sWqsbDCTq1T/fYoQBx2E2Ijw3 09lJ+MNpJDdFTqe055bfWOwlpnPriUrd/NjHZ0CJ9zS27/tyc91TpsYb0ZeoVJLN+6fhuD RuwMwOZddwGsicJnyHt/KDMkPP4hdT4wXGKeeCzG++ZKEAYc7yJkADjTMT1TkPadQDsNiY MUkKMG80o6mYm9SthZw4SvKyF9z3mBM1HumC9mTFrz5XgGcgvaiElBwm7m/O7A== ARC-Authentication-Results: i=1; rspamd-7c485dd8cf-k9ns7; auth=pass smtp.auth=9wt3zsp42r smtp.mailfrom=emacs@unbit.co.uk X-Sender-Id: 9wt3zsp42r|x-authuser|emacs@unbit.co.uk X-MC-Relay: Neutral X-MailChannels-SenderId: 9wt3zsp42r|x-authuser|emacs@unbit.co.uk X-MailChannels-Auth-Id: 9wt3zsp42r X-Little-Left: 576dd876780e9e09_1665269114479_4132623288 X-MC-Loop-Signature: 1665269114479:2981749027 X-MC-Ingress-Time: 1665269114478 Received: from apollo.krystal.co.uk (apollo.krystal.co.uk [77.72.0.98]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384) by 100.119.144.148 (trex/6.7.1); Sat, 08 Oct 2022 22:45:14 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=unbit.co.uk ; s=default; h=Content-Transfer-Encoding:Content-Type:Message-ID:References: In-Reply-To:Subject:Cc:To:From:Date:MIME-Version:Sender:Reply-To:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:List-Id:List-Help:List-Unsubscribe:List-Subscribe: List-Post:List-Owner:List-Archive; bh=SbspGENm+oQubGHaWoDWLwU+dm3dzFDaZkmKvBhDkpg=; b=qmfh/9VeA9hHb+772zv0DYJ+LT HZzcvbxLusVIoyt+5JFTGhWxUb/Bo2Lq6rpOtQH/71E3IUGSnTfXfwKNt+22mW5asiWTLbq4sSY93 hRIBiI9GlZLKi+2swnGcRqUP8SSJKYy6F2P3SREbs/bqTM9OUeXNgQBTpoWuahGtvNxzU2d0K1lSf OdGxeOCiZDJlp19gbqGAzQP0WQyHDOMsImat8WuipqjDuXmRs7NvLWLdkLTRob/C4uKL/LMGrpODF /7jFq0FLrBm4s9Cm0WK8sceANKLWmhEAQtaUgFucYOD/JsaTrcTYIcJXYNdeoK9vIloi2P+HzVlFq eOdSubeg==; Received: from [::1] (port=52642 helo=apollo.krystal.co.uk) by apollo.krystal.co.uk with esmtpa (Exim 4.95) (envelope-from ) id 1ohIZG-002Qbj-5p; Sat, 08 Oct 2022 23:45:11 +0100 MIME-Version: 1.0 Date: Sat, 08 Oct 2022 23:45:11 +0100 From: Richard Hopkins To: Stefan Monnier Subject: Re: bug#58367: `package-install-file' rejects some .tar files (tentative patch) In-Reply-To: References: <263dae3ce307236c2694a2bc0baa3f63@unbit.co.uk> User-Agent: Roundcube Webmail/1.5.2 Message-ID: <4315b955f7be21612324290ea97dcdc0@unbit.co.uk> X-Sender: emacs@unbit.co.uk Content-Type: text/plain; charset=US-ASCII; format=flowed Content-Transfer-Encoding: 7bit X-AuthUser: emacs@unbit.co.uk X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 58367 Cc: 58367@debbugs.gnu.org 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 2022-10-08 17:25, Stefan Monnier wrote: > Thanks for the tarballs for the tests, they were very helpful. > The patch also pointed in the right direction. > > I installed the patch below (plus regression tests) into `master`. Great, thanks for taking a look at this and also fixing the top level lookup for v7-withsub-0.1.tar. I've pulled the latest changes and all the original tar files now install. I've managed to get the ustar-withsub-0.1 to install from a directory and include the sub directories by using `copy-directory' instead of only copying the .el files in the top level. As more inspiration... diff --git a/lisp/emacs-lisp/package.el b/lisp/emacs-lisp/package.el index d619142d64..4144a12718 100644 --- a/lisp/emacs-lisp/package.el +++ b/lisp/emacs-lisp/package.el @@ -947,14 +947,10 @@ package-unpack (pkg-dir (expand-file-name dirname package-user-dir))) (pcase (package-desc-kind pkg-desc) ('dir - (make-directory pkg-dir t) (let ((file-list - (directory-files - default-directory 'full "\\`[^.].*\\.el\\'" 'nosort))) - (dolist (source-file file-list) - (let ((target-el-file - (expand-file-name (file-name-nondirectory source-file) pkg-dir))) - (copy-file source-file target-el-file t))) + (directory-files-recursively + default-directory "." t))) + (copy-directory default-directory pkg-dir nil t 'copy-contents) ;; Now that the files have been installed, this package is ;; indistinguishable from a `tar' or a `single'. Let's make ;; things simple by ensuring we're one of them.