X-Git-Url: http://git.chise.org/gitweb/?a=blobdiff_plain;f=lisp%2Fpackage-get.el;h=64bdc3ebddc9fdf2a2c042465995be250ba5cdcf;hb=e899a8eb731451c717d11a9f4b0d799e978714b3;hp=539c6be5f83ed54588a37341e09693733f8645ad;hpb=77dcef404dc78635f6ffa8f71a803d2bc7cc8921;p=chise%2Fxemacs-chise.git diff --git a/lisp/package-get.el b/lisp/package-get.el index 539c6be..64bdc3e 100644 --- a/lisp/package-get.el +++ b/lisp/package-get.el @@ -112,7 +112,8 @@ "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 @@ -609,6 +613,7 @@ required by PACKAGES." (mapcar #'(lambda (reqd) (let* ((reqd-package (package-get-package-provider reqd)) + (reqd-version (cadr reqd-package)) (reqd-name (car reqd-package))) (if (null reqd-name) (error "Unable to find a provider for %s" reqd)) @@ -702,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)) @@ -804,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) @@ -932,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 "/")) @@ -1000,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)) @@ -1026,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")