all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
* bug#13136: 24.2; tar-ball packages created on windows do not work
@ 2012-12-10 16:27 Fidler, Matt
  2012-12-11  4:52 ` Glenn Morris
  0 siblings, 1 reply; 4+ messages in thread
From: Fidler, Matt @ 2012-12-10 16:27 UTC (permalink / raw)
  To: 13136

[-- Attachment #1: Type: text/plain, Size: 11844 bytes --]

Any tar-ball package created with 7zip or with bsdtar includes the

directory structure of a package as follows:



org-readme-0.11

org-readme-0.11\org-readme-pkg.el

org-readme-0.11\dir

org-readme-0.11\org-readme.info

org-readme-0.11\org-readme.el



However when created on Linux (and possibly OSX) the directory structure

in the tar package follows the following convention





org-readme-0.11\

org-readme-0.11\org-readme-pkg.el

org-readme-0.11\dir

org-readme-0.11\org-readme.info

org-readme-0.11\org-readme.el



Packages created on windows in this fashion will not install properly

for emacs at all.  This is because of the function package-untar-buffer



(defun package-untar-buffer (dir)

  "Untar the current buffer.

This uses `tar-untar-buffer' from Tar mode.  All files should

untar into a directory named DIR; otherwise, signal an error."

  (require 'tar-mode)

  (tar-mode)

  ;; Make sure everything extracts into DIR.

  (let ((regexp (concat "\\`" (regexp-quote dir) "/")))

    (dolist (tar-data tar-parse-info)

      (unless (string-match regexp (aref tar-data 2))

            (error "Package does not untar cleanly into directory %s/" dir))))

  (tar-untar-buffer))





It assumes even the directory has a trailing backslash.  This can easily

be fixed by adjusting the regular expression as follows:





(defun package-untar-buffer (dir)

  "Untar the current buffer.

This uses `tar-untar-buffer' from Tar mode.  All files should

untar into a directory named DIR; otherwise, signal an error."

  (require 'tar-mode)

  (tar-mode)

  ;; Make sure everything extracts into DIR.

  (let ((regexp (concat "\\`" (regexp-quote dir) "\\(/\\|\\'\\)")))

    (dolist (tar-data tar-parse-info)

      (unless (string-match regexp (aref tar-data 2))

            (error "Package does not untar cleanly into directory %s/" dir))))

  (tar-untar-buffer))





or something similar.  Can this be applied to the emacs lisp tree?



Matt.









In GNU Emacs 24.2.1 (i386-mingw-nt5.1.2600)

of 2012-08-28 on MARVIN

Windowing system distributor `Microsoft Corp.', version 5.1.2600

Configured using:

`configure --with-gcc (4.6) --cflags

-ID:/devel/emacs/libs/libXpm-3.5.8/include

-ID:/devel/emacs/libs/libXpm-3.5.8/src

-ID:/devel/emacs/libs/libpng-dev_1.4.3-1/include

-ID:/devel/emacs/libs/zlib-dev_1.2.5-2/include

-ID:/devel/emacs/libs/giflib-4.1.4-1/include

-ID:/devel/emacs/libs/jpeg-6b-4/include

-ID:/devel/emacs/libs/tiff-3.8.2-1/include

-ID:/devel/emacs/libs/gnutls-3.0.9/include'



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

  value of $XMODIFIERS: nil

  locale-coding-system: cp1252

  default enable-multibyte-characters: t



Major mode: Lisp Interaction



Minor modes in effect:

  helm-match-plugin-mode: t

  projectile-mode: t

  projectile-global-mode: t

  tabbar-mwheel-mode: t

  tabbar-mode: t

  savehist-mode: t

  show-paren-mode: t

  global-linum-mode: t

  global-subword-mode: t

  subword-mode: t

  eldoc-mode: t

  yas-global-mode: t

  yas-minor-mode: t

  ido-ubiquitous-mode: t

  global-auto-complete-mode: t

  auto-complete-mode: t

  auto-indent-global-mode: t

  auto-indent-minor-mode: t

  autopair-mode: t

  autopair-global-mode: t

  ergoemacs-mode: t

  cua-mode: t

  ido-everywhere: t

  flyspell-mode: t

  shell-dirtrack-mode: t

  recentf-mode: t

  tooltip-mode: t

  mouse-wheel-mode: t

  file-name-shadow-mode: t

  global-font-lock-mode: t

  font-lock-mode: t

  blink-cursor-mode: t

  auto-composition-mode: t

  auto-encryption-mode: t

  auto-compression-mode: t

  column-number-mode: t

  line-number-mode: t

  transient-mark-mode: t



Recent input:

<switch-frame> <switch-frame> <help-echo> <help-echo>

<help-echo> <lwindow> <help-echo> <help-echo> <help-echo>

<help-echo> <help-echo> <help-echo> <help-echo> <down-mouse-1>

<mouse-1> <help-echo> C-o <help-echo> <help-echo> <help-echo>

<help-echo> <help-echo> <help-echo> <down-mouse-1>

<drag-mouse-1> c : / m s / 0 0 1 0 <return> <help-echo>

<help-echo> <down-mouse-1> <mouse-1> <double-down-mouse-1>

<double-mouse-1> R <return> m <return> <down-mouse-1>

<mouse-1> <down-mouse-1> <mouse-1> C-a C-c <timeout>

<down-mouse-1> <mouse-1> C-a C-c <timeout> <down-mouse-1>

<mouse-1> C-o e d <return> C-a C-c <timeout> <down-mouse-3>

<drag-mouse-3> <down-mouse-1> <mouse-1> <help-echo>

<down-mouse-1> <mouse-1> M-3 C-w C-w <down-mouse-1>

<mouse-1> M-o C-g C-w C-w C-w C-w C-w C-w C-w C-w C-w

C-w C-w <down-mouse-1> <mouse-1> <help-echo> <help-echo>

<down-mouse-1> <mouse-1> <help-echo> <down-mouse-1>

<mouse-1> <help-echo> <help-echo> <help-echo> <help-echo>

<help-echo> <help-echo> <help-echo> <help-echo> <help-echo>

<help-echo> <help-echo> <help-echo> <help-echo> <help-echo>

<help-echo> <help-echo> <help-echo> <help-echo> <help-echo>

<help-echo> <help-echo> <help-echo> <menu-bar> <help-menu>

<send-emacs-bug-report>



Recent messages:

Saving file u:/EmacsPortable.App/Data/saves/ido-last-USFTW00PBEV464...

Loading vc-git...done

Wrote u:/EmacsPortable.App/Data/saves/ido-last-USFTW00PBEV464

Saving file U:/EmacsPortable.App/Data/start/EmacsMate/custom.el...

Wrote U:/EmacsPortable.App/Data/start/EmacsMate/custom.el [2 times]

Wrote u:/EMACSP~1.APP/Data/saves/places-USFTW00PBEV464

Saving file u:/EmacsPortable.App/Data/saves/recent-files-USFTW00PBEV464...

Wrote u:/EmacsPortable.App/Data/saves/recent-files-USFTW00PBEV464

Back to top level.

When done with this frame, type M-x delete-frame



Load-path shadows:

u:/EMACSP~1.APP/Data/start/EmacsMate/elpa/ess-20121104.2332/.dir-locals hides u:/EMACSP~1.APP/Data/start/EmacsMate/elpa/magit-20121030.2025/.dir-locals

u:/EMACSP~1.APP/Data/start/EmacsMate/elpa/solarized-theme-20121201.14/solarized-light-theme hides u:/EMACSP~1.APP/Data/src/emacs-color-theme-solarized/solarized-light-theme

u:/EMACSP~1.APP/Data/start/EmacsMate/elpa/solarized-theme-20121201.14/solarized-dark-theme hides u:/EMACSP~1.APP/Data/src/emacs-color-theme-solarized/solarized-dark-theme

u:/EMACSP~1.APP/Data/start/EmacsMate/elpa/org-readme-20120918.847/org-readme hides u:/EMACSP~1.APP/Data/src/org-readme/org-readme

u:/EMACSP~1.APP/Data/start/EmacsMate/elpa/org-readme-20120918.847/org-readme-pkg hides u:/EMACSP~1.APP/Data/src/org-readme/org-readme-20121207.1715/org-readme-pkg

u:/EMACSP~1.APP/Data/start/EmacsMate/elpa/org-readme-20120918.847/org-readme hides u:/EMACSP~1.APP/Data/src/org-readme/org-readme-20121207.1715/org-readme

u:/EMACSP~1.APP/Data/src/Emacs-Speaks-NONMEM/etc/build/esn-nm-vars-7 hides u:/EMACSP~1.APP/Data/src/Emacs-Speaks-NONMEM/etc/cookies/esn-nm-vars-7

u:/EMACSP~1.APP/Data/start/EmacsMate/custom hides u:/EMACSP~1.APP/App/eps/../emacs-24.2/lisp/custom

u:/EMACSP~1.APP/Data/start/EmacsMate/elpa/ess-20121104.2332/.dir-locals hides u:/EMACSP~1.APP/App/emacs-24.2/lisp/gnus/.dir-locals



Features:

(shadow sort mail-extr emacsbug message rfc822 mml mml-sec mm-decode

mm-bodies mm-encode mail-parse rfc2231 mailabbrev gmm-utils mailheader

sendmail rfc2047 rfc2045 ietf-drums mail-utils cus-edit vc-git pp

helm-misc helm-files image-dired helm-tags helm-bookmark helm-adaptative

helm-info helm-net xml helm-plugin helm-locate helm-help

helm-match-plugin helm-external helm-buffers helm-grep helm-regexp grep

helm-elscreen helm-utils helm imenu ess-eldoc ess-toolbar ess-mouse

mouseme browse-url ess-menu ess-swv ess-noweb ess-noweb-font-lock-mode

ess-bugs-l essd-els ess-sas-d ess-sas-l ess-sas-a ess-arc-d ess-vst-d

ess-xls-d ess-lsp-l ess-sta-d ess-sta-l cc-vars cc-defs make-regexp

ess-sp6w-d ess-sp4-d ess-sp3-d ess-julia ess-r-d compile ess-tracebug

ess-roxy hideshow ess-help ess-developer ess-r-args ess-s-l ess ess-inf

newcomment ess-mode ess-noweb-mode ess-utils ess-custom executable

ess-compat ess-site debug melpa projectile s tabbar-ruler ruler-mode

mule-util tabbar savehist paren linum-off linum subword dired+ dired-x

dired-aux dired em-unix em-term term ehelp electric em-script em-prompt

em-ls em-hist em-pred em-glob em-dirs em-cmpl em-basic esh-opt em-banner

em-alias esh-var esh-io esh-cmd esh-ext esh-proc esh-arg eldoc

esh-groups eshell esh-module esh-mode esh-util iimage ob-ditaa

ob-clojure ob-haskell ob-js ob-python ob-ruby ob-perl ob-plantuml ob-R

ob-sh org-id org-clock org-exp ob-exp org-exp-blocks find-func

org-outlook org-protocol org-habit org-agenda textmate-to-yas

texmate-to-yas textmate-import texmate-import url url-proxy url-privacy

url-expand url-methods url-history url-cookie url-util url-parse

url-vars mailcap yasnippet help-mode view ido-ubiquitous pos-tip

auto-complete-config auto-complete popup auto-indent-mode autopair

org-cua-dwim multiple-cursors rectangular-region-mode mc-mark-more

thingatpt mc-cycle-cursors mc-edit-lines multiple-cursors-core rect

expand-region text-mode-expansions org-mode-expansions

expand-region-custom expand-region-core zenburn-theme ergoemacs-mode

edmacro kmacro delsel cua-base cus-start cus-load ess-R-object-tooltip

auto-complete-autoloads auto-indent-mode-autoloads autopair-autoloads

bm-autoloads dired+-autoloads ergoemacs-mode-autoloads

expand-region-autoloads helm-autoloads htmlize-autoloads

ido-ubiquitous-autoloads info+-autoloads linum-off-autoloads

magit-autoloads melpa-autoloads multiple-cursors-autoloads

muse-autoloads info nsis-mode-autoloads ntcmd-autoloads

org-cua-dwim-autoloads org-outlook-autoloads org-readme-autoloads

lib-requires-autoloads header2-autoloads http-post-simple-autoloads

org-table-comment-autoloads plantuml-mode-autoloads popup-autoloads

pos-tip-autoloads projectile-autoloads s-autoloads smex-autoloads

solarized-theme-autoloads ssh-autoloads tabbar-ruler-autoloads

tabbar-autoloads textmate-to-yas-autoloads yaoddmuse-autoloads

yasnippet-autoloads zenburn-theme-autoloads uniquify ffap saveplace

package derived tabulated-list ido flyspell rw-hunspell rw-ispell ispell

rw-language-and-country-codes server tramp-cache tramp-sh tramp

tramp-compat auth-source eieio assoc gnus-util mm-util mail-prsvr

password-cache shell tramp-loaddefs recentf tree-widget wid-edit org

byte-opt warnings bytecomp byte-compile cconv macroexp advice help-fns

advice-preload ob-emacs-lisp ob-tangle ob-ref ob-lob ob-table

org-footnote org-src ob-comint ob-keys ob ob-eval org-pcomplete

pcomplete comint ansi-color ring org-list org-faces org-compat

org-entities org-macs noutline outline easy-mmode format-spec regexp-opt

cal-menu easymenu calendar cal-loaddefs org-install cl time-date tooltip

ediff-hook vc-hooks lisp-float-type mwheel dos-w32 disp-table ls-lisp

w32-win w32-vars tool-bar dnd fontset image fringe lisp-mode register

page menu-bar rfn-eshadow timer select scroll-bar mouse jit-lock

font-lock syntax facemenu font-core frame cham georgian utf-8-lang

misc-lang vietnamese tibetan thai tai-viet lao korean japanese hebrew

greek romanian slovak czech european ethiopic indian cyrillic chinese

case-table epa-hook jka-cmpr-hook help simple abbrev minibuffer loaddefs

button faces cus-face files text-properties overlay sha1 md5 base64

format env code-pages mule custom widget hashtable-print-readable

backquote make-network-process multi-tty emacs)

[-- Attachment #2: Type: text/html, Size: 39758 bytes --]

^ permalink raw reply	[flat|nested] 4+ messages in thread

* bug#13136: 24.2; tar-ball packages created on windows do not work
  2012-12-10 16:27 bug#13136: 24.2; tar-ball packages created on windows do not work Fidler, Matt
@ 2012-12-11  4:52 ` Glenn Morris
  2012-12-11 14:18   ` Fidler, Matt
  0 siblings, 1 reply; 4+ messages in thread
From: Glenn Morris @ 2012-12-11  4:52 UTC (permalink / raw)
  To: Fidler, Matt; +Cc: 13136

"Fidler, Matt" wrote:

> Any tar-ball package created with 7zip or with bsdtar includes the
>
> directory structure of a package as follows:
>
>
>
> org-readme-0.11
>
> org-readme-0.11\org-readme-pkg.el

Thanks for the report. Is this a valid tar file?
The zip format explicitly requires forward slashes [1], but I could not
find a clear answer one way or the other for tar.

http://www.gnu.org/software/tar/manual/html_node/Portable-Names.html#SEC137

says:

   Use portable file and member names. A name is portable if it contains
   only ASCII letters and digits, `/', `.', '_', and '-' [...]

http://www.gnu.org/software/tar/manual/html_node/Standard.html#SEC182

just says

   The name field is the file name of the file, with directory names (if
   any) preceding the file name, separated by slashes.

which is annoyingly vague.

Anyway, none of that really helps you...


[1] http://www.pkware.com/documents/casestudies/APPNOTE.TXT
  
  4.4.17.1 The name of the file, with optional relative path.
  
    The path stored MUST not contain a drive or device letter, or a
    leading slash. All slashes MUST be forward slashes '/' as opposed
    to backwards slashes '\' for compatibility with Amiga and UNIX
    file systems etc.





^ permalink raw reply	[flat|nested] 4+ messages in thread

* bug#13136: 24.2; tar-ball packages created on windows do not work
  2012-12-11  4:52 ` Glenn Morris
@ 2012-12-11 14:18   ` Fidler, Matt
  2012-12-29 10:29     ` Chong Yidong
  0 siblings, 1 reply; 4+ messages in thread
From: Fidler, Matt @ 2012-12-11 14:18 UTC (permalink / raw)
  To: Glenn Morris; +Cc: 13136@debbugs.gnu.org

Glenn,

I'm sorry, I wasn't as clear as I could have been.  

The directory structure is actually

Org-readme-0.11
Org-readme-0.11/org-readme.pkg.el

The issue is that the directory entry does not include this forward slash when using bsdtar or 7zip under windows.  It doesn't matter if you include the forward slash in the tar command or 7zip command.

Matt.

-----Original Message-----
From: Glenn Morris [mailto:rgm@gnu.org] 
Sent: Monday, December 10, 2012 10:53 PM
To: Fidler, Matt
Cc: 13136@debbugs.gnu.org
Subject: Re: bug#13136: 24.2; tar-ball packages created on windows do not work

"Fidler, Matt" wrote:

> Any tar-ball package created with 7zip or with bsdtar includes the
>
> directory structure of a package as follows:
>
>
>
> org-readme-0.11
>
> org-readme-0.11\org-readme-pkg.el

Thanks for the report. Is this a valid tar file?
The zip format explicitly requires forward slashes [1], but I could not
find a clear answer one way or the other for tar.

http://www.gnu.org/software/tar/manual/html_node/Portable-Names.html#SEC137

says:

   Use portable file and member names. A name is portable if it contains
   only ASCII letters and digits, `/', `.', '_', and '-' [...]

http://www.gnu.org/software/tar/manual/html_node/Standard.html#SEC182

just says

   The name field is the file name of the file, with directory names (if
   any) preceding the file name, separated by slashes.

which is annoyingly vague.

Anyway, none of that really helps you...


[1] http://www.pkware.com/documents/casestudies/APPNOTE.TXT
  
  4.4.17.1 The name of the file, with optional relative path.
  
    The path stored MUST not contain a drive or device letter, or a
    leading slash. All slashes MUST be forward slashes '/' as opposed
    to backwards slashes '\' for compatibility with Amiga and UNIX
    file systems etc.





^ permalink raw reply	[flat|nested] 4+ messages in thread

* bug#13136: 24.2; tar-ball packages created on windows do not work
  2012-12-11 14:18   ` Fidler, Matt
@ 2012-12-29 10:29     ` Chong Yidong
  0 siblings, 0 replies; 4+ messages in thread
From: Chong Yidong @ 2012-12-29 10:29 UTC (permalink / raw)
  To: Fidler, Matt; +Cc: 13136-done

"Fidler, Matt" <matt.fidler@alcon.com> writes:

> The directory structure is actually
>
> Org-readme-0.11
> Org-readme-0.11/org-readme.pkg.el
>
> The issue is that the directory entry does not include this forward
> slash when using bsdtar or 7zip under windows.  It doesn't matter if
> you include the forward slash in the tar command or 7zip command.

Since the fix appears to be quite safe, and the problem is new to Emacs
24 (package.el being introduced in 24.1), and no one else has chimed in,
I went ahead and committed it to the emacs-24 branch.  Thanks.





^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2012-12-29 10:29 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-12-10 16:27 bug#13136: 24.2; tar-ball packages created on windows do not work Fidler, Matt
2012-12-11  4:52 ` Glenn Morris
2012-12-11 14:18   ` Fidler, Matt
2012-12-29 10:29     ` Chong Yidong

Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/emacs.git
	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.