Package: emacs;
Reported by: "Fidler, Matt" <matt.fidler <at> alcon.com>
Date: Mon, 10 Dec 2012 17:19:01 UTC
Severity: normal
Found in version 24.2
Done: Chong Yidong <cyd <at> gnu.org>
Bug is archived. No further changes may be made.
View this message in rfc822 format
From: help-debbugs <at> gnu.org (GNU bug Tracking System) To: Chong Yidong <cyd <at> gnu.org> Cc: tracker <at> debbugs.gnu.org Subject: bug#13136: closed (24.2; tar-ball packages created on windows do not work) Date: Sat, 29 Dec 2012 10:31:02 +0000
[Message part 1 (text/plain, inline)]
Your message dated Sat, 29 Dec 2012 18:29:15 +0800 with message-id <877go1f8xw.fsf <at> gnu.org> and subject line Re: bug#13136: 24.2; tar-ball packages created on windows do not work has caused the debbugs.gnu.org bug report #13136, regarding 24.2; tar-ball packages created on windows do not work to be marked as done. (If you believe you have received this mail in error, please contact help-debbugs <at> gnu.org.) -- 13136: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=13136 GNU Bug Tracking System Contact help-debbugs <at> gnu.org with problems
[Message part 2 (message/rfc822, inline)]
From: "Fidler, Matt" <matt.fidler <at> alcon.com> To: "bug-gnu-emacs <at> gnu.org" <bug-gnu-emacs <at> gnu.org> Subject: 24.2; tar-ball packages created on windows do not work Date: Mon, 10 Dec 2012 16:27:56 +0000[Message part 3 (text/plain, inline)]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)[Message part 4 (text/html, inline)]
[Message part 5 (message/rfc822, inline)]
From: Chong Yidong <cyd <at> gnu.org> To: "Fidler\, Matt" <matt.fidler <at> alcon.com> Cc: Glenn Morris <rgm <at> gnu.org>, 13136-done <at> debbugs.gnu.org Subject: Re: bug#13136: 24.2; tar-ball packages created on windows do not work Date: Sat, 29 Dec 2012 18:29:15 +0800"Fidler, Matt" <matt.fidler <at> 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.
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.