Contents in 1999-06-04-13 of release-21-2.
[chise/xemacs-chise.git.1] / lisp / package-get.el
index 383e0ff..64bdc3e 100644 (file)
   "Automatic Package Fetcher and Installer."
   :prefix "package-get"
   :group 'package-tools)
-  
+
+;;;###autoload  
 (defvar package-get-base nil
   "List of packages that are installed at this site.
 For each element in the alist,  car is the package name and the cdr is
@@ -198,7 +199,7 @@ order until the package is found.  As a special case, `site-name' can be
     ("uniroma2.it" "ftp.uniroma2.it" "unix/misc/dist/XEMACS/packages")
     ("icm.edu.pl" "ftp.icm.edu.pl" "pub/unix/editors/xemacs/packages")
     ("sunet.se" "ftp.sunet.se" "pub/gnu/xemacs/packages")
-    ("doc.ic.ac.uk" "ftp.doc.ic.ac.uk" "packages/xemacs/packages")
+    ("doc.ic.ac.uk" "sunsite.doc.ic.ac.uk" "packages/xemacs/packages")
     ("srcc.msu.su" "ftp1.srcc.msu.su" "mirror/ftp.xemacs.org/packages")
 
     ;; Asia
@@ -254,13 +255,16 @@ When nil, updates which are not PGP signed are allowed without confirmation."
 (defvar package-get-was-current nil
   "Non-nil we did our best to fetch a current database.")
 
+
+;Shouldn't this be in package-ui?
 ;;;###autoload
 (defun package-get-download-menu ()
   "Build the `Add Download Site' menu."
   (mapcar (lambda (site)
             (vector (car site)
-                    `(push (quote ,(cdr site))
-                           package-get-remote)))
+               `(package-ui-add-site (quote ,(cdr site)))
+                   :style 'toggle :selected
+                   `(member (quote ,(cdr site)) package-get-remote)))
           package-get-download-sites))
 
 ;;;###autoload
@@ -703,8 +707,10 @@ successfully installed but errors occurred during initialization, or
         (package-status t)
         filenames full-package-filename)
     (if (null this-package)
-       (error "Couldn't find package %s with version %s"
-              package version))
+       (if package-get-remote
+           (error "Couldn't find package %s with version %s"
+                  package version)
+         (error "No download sites or local package locations specified.")))
     (if (null base-filename)
        (error "No filename associated with package %s, version %s"
               package version))
@@ -805,7 +811,10 @@ successfully installed but errors occurred during initialization, or
 
       (if (or (not full-package-filename)
              (not (file-exists-p full-package-filename)))
-         (error "Unable to find file %s" base-filename))
+         (if package-get-remote
+             (error "Unable to find file %s" base-filename)
+           (error
+            "No download sites or local package locations specified.")))
       ;; Validate the md5 checksum
       ;; Doing it with XEmacs removes the need for an external md5 program
       (message "Validating checksum for `%s'..." package) (sit-for 0)
@@ -933,13 +942,19 @@ It first checks if FILENAME already is a remote filename.  If it is
 not, then it uses the (car search) as the remote site-name and the (cadr
 search) as the remote-directory and concatenates filename.  In other
 words
-       site-name:remote-directory/filename
+       site-name:remote-directory/filename.
+
+If (car search) is nil, (cadr search is interpreted as  a local directory).
 "
-  (if (efs-ftp-path filename)
+  (if (file-remote-p filename)
       filename
     (let ((dir (cadr search)))
-      (concat "/"
-             (car search) ":"
+      (concat (when (car search)
+               (concat
+                (if (string-match "@" (car search))
+                    "/"
+                  "/anonymous@")
+                (car search) ":"))
              (if (string-match "/$" dir)
                  dir
                (concat dir "/"))
@@ -1001,8 +1016,6 @@ lead to Emacs accessing remote sites."
   "Fetch and install the latest versions of all customized packages."
   (interactive)
   (package-get-require-base t)
-  ;; Load a fresh copy
-  (load "package-get-custom.el")
   (mapcar (lambda (pkg)
            (if (eval (intern (concat (symbol-name (car pkg)) "-package")))
                (package-get (car pkg) nil))
@@ -1027,7 +1040,7 @@ lead to Emacs accessing remote sites."
          (custom-var (intern (concat (symbol-name package) "-package")))
          (description (plist-get props 'description)))
     (when (not (memq group package-get-custom-groups))
-      (setq package-get-custom-groups (cons package
+      (setq package-get-custom-groups (cons group
                                             package-get-custom-groups))
       (eval `(defgroup ,group nil
                ,(concat category " package group")