X-Git-Url: https://code.delx.au/gnu-emacs/blobdiff_plain/74499542df64eb8041b4de71eb091230e52c0414..c721aa42234fb4d4f74842f602ca3ee94f1f708d:/admin/admin.el diff --git a/admin/admin.el b/admin/admin.el index a31d8bcc85..342b40f9bd 100644 --- a/admin/admin.el +++ b/admin/admin.el @@ -1,6 +1,7 @@ ;;; admin.el --- utilities for Emacs administration -;; Copyright (C) 2001 Free Software Foundation, Inc. +;; Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007 +;; Free Software Foundation, Inc. ;; This file is part of GNU Emacs. @@ -16,13 +17,13 @@ ;; You should have received a copy of the GNU General Public License ;; along with GNU Emacs; see the file COPYING. If not, write to the -;; Free Software Foundation, Inc., 59 Temple Place - Suite 330, -;; Boston, MA 02111-1307, USA. +;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, +;; Boston, MA 02110-1301, USA. ;;; Commentary: -;; add-release-log add ``Version X released'' change log entries -;; set-version change Emacs version number in source tree. +;; add-release-logs Add ``Version X released'' change log entries. +;; set-version Change Emacs version number in source tree. ;;; Code: @@ -43,25 +44,26 @@ Signal an error if the program returns with a non-zero exit status." (forward-line 1)) (nreverse lines))))) - (defun add-release-logs (root version) "Add \"Version VERSION released.\" change log entries in ROOT. Root must be the root of an Emacs source tree." (interactive "DEmacs root directory: \nNVersion number: ") + (setq root (expand-file-name root)) (unless (file-exists-p (expand-file-name "src/emacs.c" root)) (error "%s doesn't seem to be the root of an Emacs source tree" root)) + (require 'add-log) (let* ((logs (process-lines "find" root "-name" "ChangeLog")) (entry (format "%s %s <%s>\n\n\t* Version %s released.\n\n" - (format-time-string "%Y-%m-%d") - (user-full-name) user-mail-address version))) + (funcall add-log-time-format) + (or add-log-full-name (user-full-name)) + (or add-log-mailing-address user-mail-address) + version))) (dolist (log logs) - (unless (or (string-match "/gnus/" log) - (string-match "/lispref/" log)) + (unless (string-match "/gnus/" log) (find-file log) (goto-char (point-min)) (insert entry))))) - (defun set-version-in-file (root file version rx) (find-file (expand-file-name file root)) (goto-char (point-min)) @@ -69,11 +71,10 @@ Root must be the root of an Emacs source tree." (error "Version not found in %s" file)) (replace-match (format "%s" version) nil nil nil 1)) - (defun set-version (root version) "Set Emacs version to VERSION in relevant files under ROOT. Root must be the root of an Emacs source tree." - (interactive "DEmacs root directory: \nNVersion number: ") + (interactive "DEmacs root directory: \nsVersion number: ") (unless (file-exists-p (expand-file-name "src/emacs.c" root)) (error "%s doesn't seem to be the root of an Emacs source tree" root)) (set-version-in-file root "lisp/version.el" version @@ -84,6 +85,78 @@ Root must be the root of an Emacs source tree." (submatch (1+ (in "0-9.")))))) (set-version-in-file root "man/emacs.texi" version (rx (and "EMACSVER" (1+ space) - (submatch (1+ (in "0-9."))))))) - + (submatch (1+ (in "0-9.")))))) + (set-version-in-file root "lispref/elisp.texi" version + (rx (and "EMACSVER" (1+ space) + (submatch (1+ (in "0-9.")))))) + (set-version-in-file root "lib-src/makefile.w32-in" version + (rx (and "VERSION" (0+ space) "=" (0+ space) + (submatch (1+ (in "0-9.")))))) + ;; nt/emacs.rc also contains the version number, but in an awkward + ;; format. It must contain four components, separated by commas, and + ;; in two places those commas are followed by space, in two other + ;; places they are not. + (let* ((version-components (append (split-string version "\\.") + '("0" "0"))) + (comma-version + (concat (car version-components) "," + (cadr version-components) "," + (cadr (cdr version-components)) "," + (cadr (cdr (cdr version-components))))) + (comma-space-version + (concat (car version-components) ", " + (cadr version-components) ", " + (cadr (cdr version-components)) ", " + (cadr (cdr (cdr version-components)))))) + (set-version-in-file root "nt/emacs.rc" comma-version + (rx (and "FILEVERSION" (1+ space) + (submatch (1+ (in "0-9,")))))) + (set-version-in-file root "nt/emacs.rc" comma-version + (rx (and "PRODUCTVERSION" (1+ space) + (submatch (1+ (in "0-9,")))))) + (set-version-in-file root "nt/emacs.rc" comma-space-version + (rx (and "\"FileVersion\"" (0+ space) ?, (0+ space) + ?\" (submatch (1+ (in "0-9, "))) "\\0\""))) + (set-version-in-file root "nt/emacs.rc" comma-space-version + (rx (and "\"ProductVersion\"" (0+ space) ?, + (0+ space) ?\" (submatch (1+ (in "0-9, "))) + "\\0\""))) + ;; Some files in the "mac" subdirectory also contain the version + ;; number. + (set-version-in-file + root "mac/Emacs.app/Contents/Resources/English.lproj/InfoPlist.strings" + version (rx (and "CFBundleShortVersionString" (0+ space) ?= (0+ space) ?\" + (submatch (1+ (in "0-9.")))))) + (set-version-in-file + root "mac/Emacs.app/Contents/Resources/English.lproj/InfoPlist.strings" + version (rx (and "CFBundleGetInfoString" (0+ space) ?= (0+ space) ?\" + (submatch (1+ (in "0-9.")))))) + (set-version-in-file root "mac/src/Emacs.r" (car version-components) + (rx (and "GNU Emacs " (submatch (1+ (in "0-9"))) + " for Mac OS"))) + (set-version-in-file root "mac/src/Emacs.r" (car version-components) + (rx (and (submatch (1+ (in "0-9"))) (0+ space) ?\, + (0+ space) "/* Major revision in BCD */"))) + (set-version-in-file root "mac/src/Emacs.r" (cadr version-components) + (rx (and (submatch (1+ (in "0-9"))) (0+ space) ?\, + (0+ space) "/* Minor revision in BCD */"))) + (set-version-in-file root "mac/src/Emacs.r" (cadr (cdr version-components)) + (rx (and (submatch (1+ (in "0-9"))) (0+ space) ?\, + (0+ space) "/* Non-final release # */"))) + (set-version-in-file root "mac/src/Emacs.r" version + (rx (and (submatch (1+ (in "0-9."))) (0+ space) ?\" ?\, + (0+ space) "/* Short version number */"))) + (set-version-in-file root "mac/src/Emacs.r" version + (rx (and "/* Short version number */" (0+ space) ?\" + (submatch (1+ (in "0-9.")))))) + (let* ((third-component (string-to-number (cadr (cdr version-components)))) + (release (cond ((>= third-component 90) "alpha") + ((>= third-component 50) "development") + (t "final")))) + (set-version-in-file + root "mac/src/Emacs.r" release + (rx (and (submatch (1+ (in "a-z"))) (0+ space) ?\, (0+ space) + "/* development, alpha, beta, or final (release) */")))))) + +;;; arch-tag: 4ea83636-2293-408b-884e-ad64f22a3bf5 ;; admin.el ends here.