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: C-o c : / m s / 0 0 1 0 R m C-a C-c C-a C-c C-o e d C-a C-c M-3 C-w C-w 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 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)