From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.ciao.gmane.io!not-for-mail From: Stefan Monnier Newsgroups: gmane.emacs.devel Subject: Re: Install bnf-mode from the tar archive Date: Sun, 19 Jan 2020 08:18:13 -0500 Message-ID: References: <377dd7bd-a3ef-83f7-89fa-7d2a5f29d9be@protonmail.ch> <669fe055-f5b4-4423-4eba-b8b9508982dd@protonmail.ch> Mime-Version: 1.0 Content-Type: text/plain Injection-Info: ciao.gmane.io; posting-host="ciao.gmane.io:159.69.161.202"; logging-data="100789"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux) Cc: GNU Emacs Developers To: Serghei Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Sun Jan 19 14:19:16 2020 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 1itATz-000QB4-De for ged-emacs-devel@m.gmane-mx.org; Sun, 19 Jan 2020 14:19:15 +0100 Original-Received: from localhost ([::1]:50200 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1itATy-0000xq-Es for ged-emacs-devel@m.gmane-mx.org; Sun, 19 Jan 2020 08:19:14 -0500 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:60847) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1itATI-0000Xk-Mq for emacs-devel@gnu.org; Sun, 19 Jan 2020 08:18:34 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1itATG-0004iH-NB for emacs-devel@gnu.org; Sun, 19 Jan 2020 08:18:32 -0500 Original-Received: from mailscanner.iro.umontreal.ca ([132.204.25.50]:37464) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1itATG-0004hA-9f for emacs-devel@gnu.org; Sun, 19 Jan 2020 08:18:30 -0500 Original-Received: from pmg1.iro.umontreal.ca (localhost.localdomain [127.0.0.1]) by pmg1.iro.umontreal.ca (Proxmox) with ESMTP id B44D3100865; Sun, 19 Jan 2020 08:18:27 -0500 (EST) Original-Received: from mail01.iro.umontreal.ca (unknown [172.31.2.1]) by pmg1.iro.umontreal.ca (Proxmox) with ESMTP id DB7D610035B; Sun, 19 Jan 2020 08:18:25 -0500 (EST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=iro.umontreal.ca; s=mail; t=1579439905; bh=wOimzg+YlkZcCRhNEuQm00SglGGjw+DbWFd7AU+yVNI=; h=From:To:Cc:Subject:References:Date:In-Reply-To:From; b=IPDSD4FEMzxR4bQDFTD8i0bqbK9n+iN8/k8kx63Uc4+svXRcT3RjfLd7MULECA+Ha CyIG0EhxVtODfkNbxi6fQNbwWMuhTlP1UIHwVHiw7Qu2cd6Yybr/r8L6sGkrPsmFDf yo6b9tT12XOlBoPXg7T46nYLMHYgzxkvuiIJ/5uaWNEcrbOayiTITvJ0w74RuGr35F 8YGq1MNf2G8/wo2o5Q20yjSNavEgqyIQD4TqyZsNh/tYODTVWn0yDMrTRtdakc7Nrw 21uGl1c3uE5ALDofAIl8I/6p0n37jfjGeqKpm8xXUXBrqWP729fIZ6o92xlTG4DVEf mHxIOnU2iUI5A== Original-Received: from pastel (unknown [45.72.156.100]) by mail01.iro.umontreal.ca (Postfix) with ESMTPSA id EDCDF1202A3; Sun, 19 Jan 2020 08:18:24 -0500 (EST) In-Reply-To: <669fe055-f5b4-4423-4eba-b8b9508982dd@protonmail.ch> (Serghei's message of "Sat, 18 Jan 2020 23:47:11 +0000") X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 132.204.25.50 X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.23 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:244368 Archived-At: > I have managed to fix the issue just by replacing bsdtar by GNU tar. I guess that deserves a bug report (the bug is not in the package manager but in tar-mode.el which seems not to support some of the formats used by bsdtar). Stefan > For the full list of changes refer to: > https://github.com/sergeyklay/bnf-mode/commit/309f05a781dc05999e8f0530f23089f38dd0fde6 > > On 1/18/20 5:08 PM, Serghei wrote: >> Hello, >> >> I am the bnf-mode[1] creator. I am trying to figure out what >> happens when I install the mode from the tar archive. Frankly >> speaking, I get a strange error message. >> >> You can see the fresh Makefile I use to create tar archive at GitHub >> repo[2]. All I need to create a tar archive is a command >> `make package'. And it seems it works as expected. However, after >> creating the archive, I was failed to install it. After changing >> this line[3] as follows: >> >> diff --git a/Makefile b/Makefile >> index c04c01c..d11ac3d 100644 >> --- a/Makefile >> +++ b/Makefile >> @@ -122,7 +122,8 @@ package: $(PACKAGE_NAME).tar >> >> .PHONY: install >> install: $(PACKAGE_NAME).tar >> - $(EMACS) --batch -l package -f package-initialize --eval >> "(package-install-file \"$(PWD)/$(PACKAGE_NAME).tar\")" >> + $(EMACS) --batch -l package -f package-initialize --eval \ >> + "(let ((debug-on-error t))(package-install-file >> \"$(PWD)/$(PACKAGE_NAME).tar\"))" >> >> .PHONY: help >> help: .title >> >> I got the following debug trace: >> >> $ make install >> Parsing tar file... >> Parsing tar file...done >> Debugger entered--Lisp error: (wrong-type-argument arrayp nil) >> tar--describe-as-link(nil) >> tar--check-descriptor(nil) >> tar-get-file-descriptor("bnf-mode-0.4.3/PaxHeader/PaxHeader-pkg.el") >> package-tar-file-info() >> package-install-from-buffer() >> package-install-file("/home/klay/work/bnf-mode/bnf-mode-0.4.3.tar") >> (let ((debug-on-error t)) (package-install-file >> "/home/klay/work/bnf-mode/bnf-mode-0.4.3.tar")) >> eval((let ((debug-on-error t)) (package-install-file >> "/home/klay/work/bnf-mode/bnf-mode-0.4.3.tar"))) >> command-line-1(("-l" "package" "-f" "package-initialize" "--eval" >> "(let ((debug-on-error t))(package-install-file >> \"/home/klay/work/bnf-mode/bnf-mode-0.4.3.tar\"))")) >> command-line() >> normal-top-level() >> >> make: *** [Makefile:125: install] Error 255 >> >> I have no idea what is PaxHeader/PaxHeader-pkg.el and even stranger >> that after inspecting `tar-mode' I found this: >> >> (defun tar-get-file-descriptor (file) >> ;; Used by package.el. >> (let ((desc ())) >> (dolist (hdr tar-parse-info) >> (when (equal file (tar-header-name hdr)) >> (setq desc hdr))) >> (tar--check-descriptor desc) >> desc)) >> >> As you can see without any validation `desc' was passed to >> `tar--check-descriptor` defun. The `tar--check-descriptor` is just >> calls `tar--describe-as-link`: >> >> (defun tar--check-descriptor (descriptor) >> (let ((link-desc (tar--describe-as-link descriptor))) >> (when link-desc >> (error "This is %s, not a real file" link-desc)))) >> >> And finally it calls `tar-header-link-type': >> >> (defun tar--describe-as-link (descriptor) >> (let ((link-p (tar-header-link-type descriptor))) >> (if link-p >> (cond ((eq link-p 5) "a directory") >> ((eq link-p 20) "a tar directory header") >> ((eq link-p 28) "a next has longname") >> ((eq link-p 29) "a multivolume-continuation") >> ((eq link-p 35) "a sparse entry") >> ((eq link-p 38) "a volume header") >> ((eq link-p 55) "a pax global extended header") >> ((eq link-p 72) "a pax extended header") >> (t "a link"))))) >> >> I will be happy for any help and tips in the right direction. >> >> N.B. My GNU Emacs version is 26.3 on Debian/GNU Linux 10. >> >> >> [1]: https://elpa.gnu.org/packages/bnf-mode.html >> [2]: >> https://github.com/sergeyklay/bnf-mode/blob/87c779851e44aab6639cdf2ab699aa9cd41f97c7/Makefile >> [3]: >> https://github.com/sergeyklay/bnf-mode/blob/87c779851e44aab6639cdf2ab699aa9cd41f97c7/Makefile#L125 >> >> -- >> Serghei >> >>