XEmacs 21.4.7 "Economic Science".
[chise/xemacs-chise.git.1] / lisp / package-get.el
index eb395a9..833042c 100644 (file)
@@ -184,6 +184,7 @@ order until the package is found.  As a special case, `site-name' can be
 (defcustom package-get-download-sites
   '(
     ;; North America
+    ("Pre-Releases" "ftp.xemacs.org" "pub/xemacs/beta/experimental/packages")
     ("xemacs.org" "ftp.xemacs.org" "pub/xemacs/packages")
     ("crc.ca (Canada)" "ftp.crc.ca" "pub/packages/editors/xemacs/packages")
     ("ualberta.ca (Canada)" "sunsite.ualberta.ca" "pub/Mirror/xemacs/packages")
@@ -268,7 +269,7 @@ Otherwise respect the `force-current' argument of `package-get-require-base'."
   :type 'boolean
   :group 'package-get)
 
-(defcustom package-get-require-signed-base-updates t
+(defcustom package-get-require-signed-base-updates nil
   "*If set to a non-nil value, require explicit user confirmation for updates
 to the package-get database which cannot have their signature verified via PGP.
 When nil, updates which are not PGP signed are allowed without confirmation."
@@ -358,7 +359,9 @@ If NO-REMOTE is non-nil never search remote locations."
 is non-nil."
   (or (package-get-locate-file package-get-base-filename t no-remote)
       (if (file-exists-p package-get-user-index-filename)
-         package-get-user-index-filename)))
+         package-get-user-index-filename)
+      (locate-data-file package-get-base-filename)
+      (error "Can't locate a package index file.")))
 
 (defun package-get-maybe-save-index (filename)
   "Offer to save the current buffer as the local package index file,
@@ -373,7 +376,8 @@ if different."
        (unless (and location (file-writable-p location))
          (setq location package-get-user-index-filename))
        (when (y-or-n-p (concat "Update package index in " location "? "))
-         (write-file location))))))
+         (let ((coding-system-for-write 'binary))
+           (write-file location)))))))
 
 
 ;;;###autoload
@@ -399,7 +403,7 @@ Unless FORCE-CURRENT is non-nil never try to update the database."
         (save-excursion
           (set-buffer buf)
           (erase-buffer buf)
-          (insert-file-contents-internal db-file)
+          (insert-file-contents-literally db-file)
           (package-get-update-base-from-buffer buf)
          (if (file-remote-p db-file)
              (package-get-maybe-save-index db-file)))
@@ -456,11 +460,11 @@ used interactively, for example from a mail or news buffer."
       (package-get-update-base-entries content-beg content-end)
       (message "Updated package-get database"))))
 
-(defun package-get-update-base-entries (beg end)
+(defun package-get-update-base-entries (start end)
   "Update the package-get database with the entries found between
-BEG and END in the current buffer."
+START and END in the current buffer."
   (save-excursion
-    (goto-char beg)
+    (goto-char start)
     (if (not (re-search-forward "^(package-get-update-base-entry" nil t))
         (error "Buffer does not contain package-get database entries"))
     (beginning-of-line)
@@ -638,7 +642,6 @@ 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))
@@ -844,9 +847,7 @@ successfully installed but errors occurred during initialization, or
       ;; Doing it with XEmacs removes the need for an external md5 program
       (message "Validating checksum for `%s'..." package) (sit-for 0)
       (with-temp-buffer
-       ;; What ever happened to i-f-c-literally
-       (let (file-name-handler-alist)
-         (insert-file-contents-internal full-package-filename))
+       (insert-file-contents-literally full-package-filename)
        (if (not (string= (md5 (current-buffer))
                          (package-get-info-prop this-package
                                                 'md5sum)))
@@ -866,6 +867,7 @@ successfully installed but errors occurred during initialization, or
              (if (package-get-init-package (package-admin-get-lispdir
                                             install-dir package))
                  (progn
+                   (run-hook-with-args 'package-install-hook package install-dir)
                    (message "Added package `%s'" package)
                    (sit-for 0)
                    )
@@ -951,7 +953,7 @@ Returns the modified PACKAGE-LIST.  Any missing fields are created."
 (defun package-get-staging-dir (filename)
   "Return a good place to stash FILENAME when it is retrieved.
 Use `package-get-dir' for directory to store stuff.
-Creates `package-get-dir'  it it doesn't exist."
+Creates `package-get-dir'  if it doesn't exist."
   (interactive "FPackage filename: ")
   (if (not (file-exists-p package-get-dir))
       (make-directory package-get-dir))
@@ -1049,7 +1051,8 @@ lead to Emacs accessing remote sites."
            (if (eval (intern (concat (symbol-name (car pkg)) "-package")))
                (package-get (car pkg) nil))
            t)
-         package-get-base))
+         package-get-base)
+  (package-net-update-installed-db))
 
 (defun package-get-ever-installed-p (pkg &optional notused)
   (string-match "-package$" (symbol-name pkg))