From unknown Fri Jun 20 19:45:33 2025 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-Mailer: MIME-tools 5.509 (Entity 5.509) Content-Type: text/plain; charset=utf-8 From: bug#1862 <1862@debbugs.gnu.org> To: bug#1862 <1862@debbugs.gnu.org> Subject: Status: 23.0.60; tar-mode on posix ustar Reply-To: bug#1862 <1862@debbugs.gnu.org> Date: Sat, 21 Jun 2025 02:45:33 +0000 retitle 1862 23.0.60; tar-mode on posix ustar reassign 1862 emacs submitter 1862 Kevin Ryde severity 1862 normal thanks From gg@zip.com.au Sun Jan 11 16:37:41 2009 Received: (at submit) by emacsbugs.donarmstrong.com; 12 Jan 2009 00:37:42 +0000 X-Spam-Checker-Version: SpamAssassin 3.2.5-bugs.debian.org_2005_01_02 (2008-06-10) on rzlab.ucr.edu X-Spam-Level: * X-Spam-Bayes: score:0.5 Bayes not run. spammytokens:Tokens not available. hammytokens:Tokens not available. X-Spam-Status: No, score=1.4 required=4.0 tests=FOURLA,IMPRONONCABLE_1, MURPHY_WRONG_WORD1,MURPHY_WRONG_WORD2 autolearn=no version=3.2.5-bugs.debian.org_2005_01_02 Received: from fencepost.gnu.org (fencepost.gnu.org [140.186.70.10]) by rzlab.ucr.edu (8.13.8/8.13.8/Debian-3) with ESMTP id n0C0bbc6022012 for ; Sun, 11 Jan 2009 16:37:39 -0800 Received: from mail.gnu.org ([199.232.76.166]:54593 helo=mx10.gnu.org) by fencepost.gnu.org with esmtp (Exim 4.67) (envelope-from ) id 1LMAmx-0002E9-2t for emacs-pretest-bug@gnu.org; Sun, 11 Jan 2009 19:36:19 -0500 Received: from Debian-exim by monty-python.gnu.org with spam-scanned (Exim 4.60) (envelope-from ) id 1LMAo7-0007wx-Hc for emacs-pretest-bug@gnu.org; Sun, 11 Jan 2009 19:37:34 -0500 Received: from mailout2-5.pacific.net.au ([61.8.2.228]:58090 helo=mailout2.pacific.net.au) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1LMAo6-0007wL-Lq for emacs-pretest-bug@gnu.org; Sun, 11 Jan 2009 19:37:31 -0500 Received: from mailproxy1.pacific.net.au (mailproxy1.pacific.net.au [61.8.2.162]) by mailout2.pacific.net.au (Postfix) with ESMTP id 3C16011D3BA for ; Mon, 12 Jan 2009 11:37:25 +1100 (EST) Received: from blah.blah (ppp2990.dyn.pacific.net.au [61.8.41.144]) by mailproxy1.pacific.net.au (Postfix) with ESMTP id 488728C26 for ; Mon, 12 Jan 2009 11:37:24 +1100 (EST) Received: from gg by blah.blah with local (Exim 4.69) (envelope-from ) id 1LMAnn-0002FF-T2 for emacs-pretest-bug@gnu.org; Mon, 12 Jan 2009 11:37:11 +1100 From: Kevin Ryde To: emacs-pretest-bug@gnu.org Subject: 23.0.60; tar-mode on posix ustar Date: Mon, 12 Jan 2009 11:37:11 +1100 Message-ID: <87vdsltl54.fsf@blah.blah> User-Agent: Gnus/5.110011 (No Gnus v0.11) Emacs/22.2 (gnu/linux) MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" X-detected-operating-system: by monty-python.gnu.org: GNU/Linux 2.6, seldom 2.4 (older, 4) --=-=-= Running emacs -Q File-Corresponding-0.003.tar.gz on that file from http://search.cpan.org/CPAN/authors/id/J/JO/JOHANL/File-Corresponding-0.003.tar.gz (about 14 kbytes) produces a buffer like drwxrwxrwx 0/0 0 File-Corresponding-0.003 -r--r--r-- 0/0 1274 Build.PL -r--r--r-- 0/0 382 Changes -r--r--r-- 0/0 1272 Makefile.PL ... where I hoped it would show the directory part of each name, the same as shown by "tar tvf" (GNU tar 1.20), File-Corresponding-0.003 File-Corresponding-0.003/Build.PL File-Corresponding-0.003/Changes File-Corresponding-0.003/Makefile.PL ... Such a file is generated by the perl Archive::Tar module. It uses the posix style magic "ustar\0", with digits "00" in the `version' field. But I think tar-header-block-tokenize only recognises a nul "\000" in that version field (in addition to ``OLDGNU'' style which is a space). I get some joy from the change below. Are those two places the only ones wanting to match the extra form? 2009-01-10 Kevin Ryde * tar-mode.el (tar-header-block-tokenize): Recognise posix "ustar\0\060" magic for long filenames. In GNU Emacs 23.0.60.12 (i586-pc-linux-gnu, GTK+ Version 2.12.11) of 2009-01-07 on blah.blah configured using `configure 'CFLAGS=-O -g' '--prefix=/down/emacs/b/inst' '--with-x-toolkit=gtk'' Important settings: value of $LC_ALL: nil value of $LC_COLLATE: nil value of $LC_CTYPE: nil value of $LC_MESSAGES: nil value of $LC_MONETARY: nil value of $LC_NUMERIC: nil value of $LC_TIME: nil value of $LANG: en_AU value of $XMODIFIERS: nil locale-coding-system: iso-latin-1-unix default-enable-multibyte-characters: t --=-=-= Content-Type: text/x-diff Content-Disposition: attachment; filename=tar-mode.el.posix-ustar.diff *** tar-mode.el 12 Jan 2009 11:33:35 +1100 1.135 --- tar-mode.el 12 Jan 2009 11:33:59 +1100 *************** *** 240,246 **** (link-p (aref string tar-linkp-offset)) (magic-str (substring string tar-magic-offset (1- tar-uname-offset))) ! (uname-valid-p (car (member magic-str '("ustar " "ustar\0\0")))) name linkname (nulsexp "[^\000]*\000")) (when (string-match nulsexp string tar-name-offset) --- 240,249 ---- (link-p (aref string tar-linkp-offset)) (magic-str (substring string tar-magic-offset (1- tar-uname-offset))) ! (uname-valid-p (car (member magic-str ! '("ustar " ;; "OLDGNU" ! "ustar\0\0" ;; per tar-rename-entry ! "ustar\0\060")))) ;; POSIX name linkname (nulsexp "[^\000]*\000")) (when (string-match nulsexp string tar-name-offset) *************** *** 256,262 **** nil (- link-p ?0))) (setq linkname (substring string tar-link-offset link-end)) ! (when (and (equal uname-valid-p "ustar\0\0") (string-match nulsexp string tar-prefix-offset) (> (match-end 0) (1+ tar-prefix-offset))) (setq name (concat (substring string tar-prefix-offset --- 259,266 ---- nil (- link-p ?0))) (setq linkname (substring string tar-link-offset link-end)) ! (when (and (member uname-valid-p '("ustar\0\0" ;; tar-rename-entry ! "ustar\0\060")) ;; POSIX (string-match nulsexp string tar-prefix-offset) (> (match-end 0) (1+ tar-prefix-offset))) (setq name (concat (substring string tar-prefix-offset --=-=-=-- From monnier@iro.umontreal.ca Sun Jan 11 19:38:46 2009 Received: (at 1862-done) by emacsbugs.donarmstrong.com; 12 Jan 2009 03:38:46 +0000 X-Spam-Checker-Version: SpamAssassin 3.2.5-bugs.debian.org_2005_01_02 (2008-06-10) on rzlab.ucr.edu X-Spam-Level: X-Spam-Bayes: score:0.5 Bayes not run. spammytokens:Tokens not available. hammytokens:Tokens not available. X-Spam-Status: No, score=-0.5 required=4.0 tests=HAS_BUG_NUMBER,XIRONPORT autolearn=ham version=3.2.5-bugs.debian.org_2005_01_02 Received: from ironport2-out.teksavvy.com (ironport2-out.teksavvy.com [206.248.154.182]) by rzlab.ucr.edu (8.13.8/8.13.8/Debian-3) with ESMTP id n0C3cgcA002964 for <1862-done@emacsbugs.donarmstrong.com>; Sun, 11 Jan 2009 19:38:44 -0800 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: ApAFAJtKaklMCpxj/2dsb2JhbACBbNAohW+BbA X-IronPort-AV: E=Sophos;i="4.37,250,1231131600"; d="scan'208";a="32158982" Received: from 76-10-156-99.dsl.teksavvy.com (HELO ceviche.home) ([76.10.156.99]) by ironport2-out.teksavvy.com with ESMTP; 11 Jan 2009 22:38:25 -0500 Received: by ceviche.home (Postfix, from userid 20848) id E1581B4031; Sun, 11 Jan 2009 22:38:24 -0500 (EST) From: Stefan Monnier To: 1862-done@debbugs.gnu.org Subject: Re: bug#1862: 23.0.60; tar-mode on posix ustar Message-ID: References: <87vdsltl54.fsf@blah.blah> Date: Sun, 11 Jan 2009 22:38:24 -0500 In-Reply-To: <87vdsltl54.fsf@blah.blah> (Kevin Ryde's message of "Mon, 12 Jan 2009 11:37:11 +1100") User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/23.0.60 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii > Such a file is generated by the perl Archive::Tar module. It uses the > posix style magic "ustar\0", with digits "00" in the `version' field. > But I think tar-header-block-tokenize only recognises a nul "\000" in > that version field (in addition to ``OLDGNU'' style which is a space). Indeed, the code didn't pay attention to the version field, but incorrectly clipped it out. I've installed a similar fix to yours, just a bit simpler. Stefan From gg@zip.com.au Thu Jan 15 16:19:16 2009 Received: (at 1862) by emacsbugs.donarmstrong.com; 16 Jan 2009 00:19:16 +0000 X-Spam-Checker-Version: SpamAssassin 3.2.5-bugs.debian.org_2005_01_02 (2008-06-10) on rzlab.ucr.edu X-Spam-Level: X-Spam-Bayes: score:0.5 Bayes not run. spammytokens:Tokens not available. hammytokens:Tokens not available. X-Spam-Status: No, score=-3.0 required=4.0 tests=HAS_BUG_NUMBER autolearn=ham version=3.2.5-bugs.debian.org_2005_01_02 Received: from mailout2.pacific.net.au (mailout2-5.pacific.net.au [61.8.2.228]) by rzlab.ucr.edu (8.13.8/8.13.8/Debian-3) with ESMTP id n0G0JCZA010895 for <1862@emacsbugs.donarmstrong.com>; Thu, 15 Jan 2009 16:19:14 -0800 Received: from mailproxy2.pacific.net.au (mailproxy2.pacific.net.au [61.8.2.163]) by mailout2.pacific.net.au (Postfix) with ESMTP id 717E31240A1; Fri, 16 Jan 2009 11:19:11 +1100 (EST) Received: from blah.blah (ppp235E.dyn.pacific.net.au [61.8.35.94]) by mailproxy2.pacific.net.au (Postfix) with ESMTP id C111B2740B; Fri, 16 Jan 2009 11:19:10 +1100 (EST) Received: from gg by blah.blah with local (Exim 4.69) (envelope-from ) id 1LNcQA-0002FJ-8V; Fri, 16 Jan 2009 11:18:46 +1100 From: Kevin Ryde To: Stefan Monnier Cc: 1862@debbugs.gnu.org Subject: Re: bug#1862: 23.0.60; tar-mode on posix ustar References: <87vdsltl54.fsf@blah.blah> Date: Fri, 16 Jan 2009 11:18:45 +1100 In-Reply-To: (Emacs bug Tracking System's message of "Mon, 12 Jan 2009 03:45:03 +0000") Message-ID: <87bpu814t6.fsf_-_@blah.blah> User-Agent: Gnus/5.110011 (No Gnus v0.11) Emacs/22.2 (gnu/linux) MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" --=-=-= Stefan Monnier writes: > > Indeed, the code didn't pay attention to the version field, but > incorrectly clipped it out. I've installed a similar fix to yours, just > a bit simpler. Does tar-rename-entry have to notice the shorter magic-str now too? Maybe something like the following, with the happy side effect of no longer writing a \0 in the version field, rather digits 00 per posix. Note totally untested!, as my build is in a rather broken state at the moment ... :-) --=-=-= Content-Type: text/x-diff Content-Disposition: inline; filename=tar-mode.el.rename-ustar.diff *** tar-mode.el 14 Jan 2009 07:53:50 +1100 1.136 --- tar-mode.el 16 Jan 2009 11:10:21 +1100 *************** *** 1053,1060 **** (string-match "/" encoded-new-name (- (length encoded-new-name) 99)) (< (match-beginning 0) 155)) ! (unless (equal (tar-header-magic descriptor) "ustar\0\0") ! (tar-alter-one-field tar-magic-offset "ustar\0\0")) (setq prefix (substring encoded-new-name 0 (match-beginning 0))) (setq encoded-new-name (substring encoded-new-name (match-end 0)))) --- 1053,1060 ---- (string-match "/" encoded-new-name (- (length encoded-new-name) 99)) (< (match-beginning 0) 155)) ! (unless (equal (tar-header-magic descriptor) "ustar\0") ! (tar-alter-one-field tar-magic-offset "ustar\0\060\060")) (setq prefix (substring encoded-new-name 0 (match-beginning 0))) (setq encoded-new-name (substring encoded-new-name (match-end 0)))) --=-=-=-- From monnier@iro.umontreal.ca Thu Jan 15 18:39:27 2009 Received: (at 1862) by emacsbugs.donarmstrong.com; 16 Jan 2009 02:39:27 +0000 X-Spam-Checker-Version: SpamAssassin 3.2.5-bugs.debian.org_2005_01_02 (2008-06-10) on rzlab.ucr.edu X-Spam-Level: X-Spam-Bayes: score:0.5 Bayes not run. spammytokens:Tokens not available. hammytokens:Tokens not available. X-Spam-Status: No, score=-0.5 required=4.0 tests=HAS_BUG_NUMBER,XIRONPORT autolearn=ham version=3.2.5-bugs.debian.org_2005_01_02 Received: from ironport2-out.teksavvy.com (ironport2-out.pppoe.ca [206.248.154.182]) by rzlab.ucr.edu (8.13.8/8.13.8/Debian-3) with ESMTP id n0G2dOjk019079 for <1862@emacsbugs.donarmstrong.com>; Thu, 15 Jan 2009 18:39:25 -0800 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: ApwEAIuCb0lMCpxj/2dsb2JhbACBbMwFhXGBdQ X-IronPort-AV: E=Sophos;i="4.37,274,1231131600"; d="scan'208";a="32383535" Received: from 76-10-156-99.dsl.teksavvy.com (HELO pastel.home) ([76.10.156.99]) by ironport2-out.teksavvy.com with ESMTP; 15 Jan 2009 21:39:18 -0500 Received: by pastel.home (Postfix, from userid 20848) id A9C4D7F41; Thu, 15 Jan 2009 21:39:18 -0500 (EST) From: Stefan Monnier To: Kevin Ryde Cc: 1862@debbugs.gnu.org Subject: Re: bug#1862: 23.0.60; tar-mode on posix ustar Message-ID: References: <87vdsltl54.fsf@blah.blah> <87bpu814t6.fsf_-_@blah.blah> Date: Thu, 15 Jan 2009 21:39:18 -0500 In-Reply-To: <87bpu814t6.fsf_-_@blah.blah> (Kevin Ryde's message of "Fri, 16 Jan 2009 11:18:45 +1100") User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/23.0.60 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii >> Indeed, the code didn't pay attention to the version field, but >> incorrectly clipped it out. I've installed a similar fix to yours, just >> a bit simpler. > Does tar-rename-entry have to notice the shorter magic-str now too? > Maybe something like the following, with the happy side effect of no > longer writing a \0 in the version field, rather digits 00 per posix. Thanks, installed, Stefan From unknown Fri Jun 20 19:45:33 2025 Received: (at fakecontrol) by fakecontrolmessage; To: internal_control@debbugs.gnu.org From: $requester Subject: Internal Control Message-Id: bug archived. Date: Fri, 13 Feb 2009 15:24:11 +0000 User-Agent: Fakemail v42.6.9 # A New Hope # A log time ago, in a galaxy far, far away # something happened. # # Magically this resulted in the following # action being taken, but this fake control # message doesn't tell you why it happened # # The action: # bug archived. thanks # This fakemail brought to you by your local debbugs # administrator