[asdf-install-devel] Dealing with tar on Windows.

Dan Muller pikdj2002 at sneakemail.com
Mon Nov 12 04:27:08 UTC 2007


I work mainly on Windows these days, and I made several unsuccessful
attempts at using asdf-install over the years. Works OK with Cygwin's
CLISP, but I work with several different Lisps. So today I finally got
around to hacking ASDF-INSTALL to simplify setup on Windows a bit.

I think I've got some changes that make dealing with tar a lot
easier. Basically, here's what I did:

- Removed *CYGWIN-BASH-PROGRAM* and *CYGWIN-BIN-DIRECTORY*
- Init *SHELL-SEARCH-PATHS* from PATH on Windows.
- Fixed a bug in DIRECTORIFY.
- Made *SHELL-SEARCH-PATHS* into a list of pathnames.
- Adjusted FIND-SHELL-COMMAND accordingly.
- Made *GNU-TAR-PROGRAM* be "tar.exe" on Windows.
- Made TAR-ARGUMENTS stop treating Windows special.
- Added "--force-local" to the tar arguments.

My thinking is that just about anyone using Cygwin will have the
Cygwin binary directories in PATH. Initializing *SHELL-SEARCH-PATHS*
from PATH seems legitimate on Windows, where there's no useful notion
of default paths for anything but OS components.

The invocation of cygpath is not necessary if one adds --force-local
to tar's options, because as a Cygwin program, it understands native
paths fine. It was just misfiring on the drive prefix, thinking that
you're trying to specify a remote host. Since this seems unlikely even
on UNIX systems when ASDF-INSTALL invokes it, I didn't conditionalize
the addition of this option.

With this setup, it ought to work out of the box a lot easier for
people on Windows. I am still testing. It seems to work with both
LispWorks 5.0.1. Personal and Cygwin's CLISP.

This change is not backwards-compatible if people were customizing
with the *CYGWIN- variables.

Is there any interest in such an intrusive set of changes? If so, what
patch format is preferred?

-- 
Dan Muller



More information about the asdf-install-devel mailing list