Commit adf2fc4a authored by Xue Fuqiao's avatar Xue Fuqiao
Browse files

Merge from mainline.

parents 63191d9f 38726039
2013-09-02 Jan Djärv <>
* Add ns_check_file.
2013-08-31 Glenn Morris <>
* (--with-sound): Rename ossaudio to bsd-ossaudio,
and voxware to oss.
2013-08-31 Ulrich Müller <>
* Allow for --with-sound=voxware that will enable
sound but otherwise disable ALSA. This will use the OSS device,
typically /dev/dsp, for sound output. (Bug#15067)
2013-08-31 Glenn Morris <>
* make-dist: Update for nt/INSTALL* changes.
2013-08-28 Paul Eggert <>
* (SHELL): Now @SHELL@, not /bin/sh,
for portability to hosts where /bin/sh has problems.
2013-08-28 Stefan Monnier <>
* (DOCMISC_W32): New var to replace DOCMISC_*_W32.
2013-08-27 Paul Eggert <>
Simplify EMACS_TIME-related code.
Merge from gnulib, incorporating:
2013-08-27 timespec: new convenience constants and function
2013-08-27 Dmitry Antipov <>
(DOCMISC_PDF_W32, DOCMISC_PS_W32): No spaces!
2013-08-27 Glenn Morris <>
* (emacs_broken_SIGIO): No longer set on gnu-kfreebsd.
(DOCMISC_PDF_W32, DOCMISC_PS_W32): New output variables.
* (check-info-dir): Ignore efaq-w32.
* (mostlyclean, clean, distclean, bootstrap-clean)
(maintainer-clean, check-declare): Remove pointless subshells.
Check cd return value.
2013-08-26 Paul Eggert <>
Minor merge from gnulib (mostly just for texinfo.tex).
2013-08-22 Paul Eggert <>
* (EMACS_CONFIG_OPTIONS): Quote systematically (Bug#13274).
This improves on the patch already installed, by quoting options
that contain spaces and suchlike systematically, so that
EMACS_CONFIG_OPTIONS is no longer ambiguous when options contain
these characters.
2013-08-21 Paul Eggert <>
Port close-on-exec pty creation to FreeBSD 9.1-RELEASE (Bug#15129).
* (PTY_OPEN): If posix_openpt with O_CLOEXEC fails
and reports EINVAL, try it again without O_CLOEXEC. This should
port PTY_OPEN to FreeBSD 9, which stupidly rejects O_CLOEXEC.
What were they thinking?
2013-08-20 Paul Eggert <>
* (distclean, bootstrap-clean, maintainer-clean):
Fix shell-operator precedence problem in previous change.
2013-08-20 Glenn Morris <>
* (distclean, bootstrap-clean, maintainer-clean):
Clean test/automated if present.
2013-08-19 Paul Eggert <>
Merge from gnulib, incorporating:
2013-08-15 warnings: minor optimization
2013-08-15 warnings: check -Wfoo rather than -Wno-foo
2013-08-15 Ken Brown <>
* (G_SLICE_ALWAYS_MALLOC): Update comment.
2013-08-15 Glenn Morris <>
* make-dist: Do not distribute etc/refcards TeX intermediate files.
* (install-arch-indep):
Do not install etc/refcards TeX intermediate files.
2013-08-14 Ulrich Müller <>
* (EMACS_CONFIGURATION): Escape backslashes. (Bug#15091)
2013-08-12 Eli Zaretskii <>
* (HAVE_ZLIB): Don't use -lz on MinGW.
2013-08-12 Paul Eggert <>
Minor zlib configuration tweaks.
* (HAVE_ZLIB): Don't assume zlib is linked if PNG is.
2013-08-12 Eli Zaretskii <>
* (LIBZ): Comment on w32 peculiarities regarding LIBZ.
2013-08-12 Paul Eggert <>
Merge from gnulib, incorporating:
2013-08-11 fpending: port to recent Cygwin change to stdio_ext.h
2013-08-10 sys_time: port to OpenBSD
2013-08-12 Glenn Morris <>
* (etcdocdir): Rename from docdir, to avoid confusion
with configure's standard --docdir argument. All uses updated.
* (etcdocdir): Rename from docdir. All uses updated.
(install-etcdoc): Rename from install-doc. All uses updated.
(uninstall): Run uninstall-doc.
(PSS): Add misc-ps.
($(INSTALL_DOC), install-doc, install-dvi, install-html, install-pdf)
(install-ps, $(UNINSTALL_DOC), uninstall-doc, uninstall-dvi)
(uninstall-html, uninstall-pdf, uninstall-ps): New .PHONY rules.
2013-08-11 Paul Eggert <>
Add --with-zlib to 'configure'.
* Add --with-zlib option to 'configure', so that Emacs
can be built without zlib. Don't assume that -lz is needed on
non-PNG hosts. Mention zlib configuration status in 'configure' output.
2013-08-11 Lars Magne Ingebrigtsen <>
* Test for zlib.
2013-08-10 Eli Zaretskii <>
* Define and substitute UPDATE_MANIFEST.
2013-08-04 Stephen Berman <>
* info/dir: Add todo-mode.
2013-08-04 Paul Eggert <>
Fix some minor races in hosts lacking mkostemp (Bug#15015).
Gnulib's emulation of mkostemp doesn't have races that Emacs's does.
* (mkostemp): Remove check for this function;
gnulib does the check now.
(mkstemp): Remove check for this no-longer-used function.
* lib/mkostemp.c, lib/secure_getenv.c, lib/tempname.c, lib/tempname.h:
* m4/mkostemp.m4, m4/secure_getenv.m4, m4/tempname.m4:
New files, copied from Gnulib.
* lib/, m4/gnulib-comp.m4: Regenerate.
2013-07-29 Michael Albinus <>
......@@ -56,7 +56,7 @@
# make docs
# Make Emacs documentation files from their sources; requires makeinfo.
SHELL = /bin/sh
# This may not work with certain non-GNU make's. It only matters when
# inheriting a CDPATH not starting with the current directory.
......@@ -233,8 +233,8 @@ etcdir=@etcdir@
# once.
# Where to put the docstring file.
# Where to put the etc/DOC file.
# Where to install Emacs game score files.
......@@ -313,7 +313,7 @@ epaths-force: FRC
-e 's;\(#.*PATH_BITMAPS\).*$$;\1 "${bitmapdir}";' \
-e 's;\(#.*PATH_X_DEFAULTS\).*$$;\1 "${x_default_search_path}";' \
-e 's;\(#.*PATH_GAME\).*$$;\1 "${gamedir}";' \
-e 's;\(#.*PATH_DOC\).*$$;\1 "${docdir}";') && \
-e 's;\(#.*PATH_DOC\).*$$;\1 "${etcdocdir}";') && \
${srcdir}/build-aux/move-if-change epaths.h.$$$$ src/epaths.h
# Convert MSYS-style /x/foo or Windows-style x:\foo file names
......@@ -453,7 +453,7 @@ $(srcdir)/src/ $(AUTOCONF_INPUTS)
# ==================== Installation ====================
.PHONY: install install-arch-dep install-arch-indep install-doc install-info
.PHONY: install install-arch-dep install-arch-indep install-etcdoc install-info
.PHONY: install-man install-etc install-strip install-$(NTDIR)
.PHONY: uninstall uninstall-$(NTDIR)
......@@ -461,7 +461,7 @@ $(srcdir)/src/ $(AUTOCONF_INPUTS)
## don't have to duplicate the list of utilities to install in
## this Makefile as well.
install: all install-arch-indep install-doc install-arch-dep install-$(NTDIR) blessmail
install: all install-arch-indep install-etcdoc install-arch-dep install-$(NTDIR) blessmail
## Ensure that $subdir contains a subdirs.el file.
......@@ -482,7 +482,7 @@ write_subdir=if [ -f $${subdir}/subdirs.el ]; \
### Install the executables that were compiled specifically for this machine.
### We do install-arch-indep first because the executable needs the
### Lisp files and DOC file to work properly.
install-arch-dep: src install-arch-indep install-doc install-$(NTDIR)
install-arch-dep: src install-arch-indep install-etcdoc install-$(NTDIR)
umask 022; ${MKDIR_P} $(DESTDIR)${bindir}
cd lib-src && \
$(MAKE) install $(MFLAGS) prefix=${prefix} \
......@@ -541,7 +541,12 @@ set_installuser=for installuser in $${LOGNAME} $${USERNAME} $${USER} \
## We delete etc/DOC* because there may be irrelevant DOC files from
## other builds in the source directory. This is ok because we just
## deleted the entire installed etc/ directory and recreated it.
## install-doc installs the relevant DOC.
## install-etcdoc installs the relevant DOC.
## Note that we install etc/refcards/*.ps if present.
## TODO we should compress these if GZIP_PROG is set.
## It would be simpler to have a separate install rule for etc/refcards
## (maybe move it to doc/refcards?).
## Note that the Makefiles in the etc directory are potentially useful
## in an installed Emacs, so should not be excluded.
......@@ -578,7 +583,12 @@ install-arch-indep: lisp leim install-info install-man ${INSTALL_ARCH_INDEP_EXTR
(cd $${dir}; tar -chf - . ) \
| (cd $${dest}; umask 022; \
tar -xvf - && cat > /dev/null) || exit 1; \
[ "$${dir}" != "${srcdir}/etc" ] || rm -f $${dest}/DOC* ; \
if [ "$${dir}" = "${srcdir}/etc" ]; then \
rm -f $${dest}/DOC* ; \
rm -f $${dest}/refcards/*.aux $${dest}/refcards/*.dvi; \
rm -f $${dest}/refcards/*.log; \
else true; \
fi; \
for subdir in `find $${dest} -type d -print` ; do \
chmod a+rx $${subdir} ; \
rm -f $${subdir}/.gitignore ; \
......@@ -621,16 +631,16 @@ install-arch-indep: lisp leim install-info install-man ${INSTALL_ARCH_INDEP_EXTR
## Note that install-arch-indep deletes and recreates the entire
## installed etc/ directory, so we need it to run before this does.
install-doc: src install-arch-indep
install-etcdoc: src install-arch-indep
-unset CDPATH; \
umask 022; ${MKDIR_P} $(DESTDIR)${docdir} ; \
if [ `cd ./etc; /bin/pwd` != `cd $(DESTDIR)${docdir}; /bin/pwd` ]; \
umask 022; ${MKDIR_P} $(DESTDIR)${etcdocdir} ; \
if [ `cd ./etc; /bin/pwd` != `cd $(DESTDIR)${etcdocdir}; /bin/pwd` ]; \
then \
docfile="DOC"; \
echo "Copying etc/$${docfile} to $(DESTDIR)${docdir} ..." ; \
${INSTALL_DATA} etc/$${docfile} $(DESTDIR)${docdir}/$${docfile}; \
echo "Copying etc/$${docfile} to $(DESTDIR)${etcdocdir} ..." ; \
${INSTALL_DATA} etc/$${docfile} $(DESTDIR)${etcdocdir}/$${docfile}; \
$(set_installuser); \
chown $${installuser} $(DESTDIR)${docdir}/$${docfile} || true ; \
chown $${installuser} $(DESTDIR)${etcdocdir}/$${docfile} || true ; \
else true; fi
install-info: info
......@@ -716,7 +726,7 @@ install-strip:
### create (but not the noninstalled files such as `make all' would create).
### Don't delete the lisp and etc directories if they're in the source tree.
uninstall: uninstall-$(NTDIR)
uninstall: uninstall-$(NTDIR) uninstall-doc
cd lib-src && \
$(MAKE) $(MFLAGS) uninstall \
prefix=${prefix} exec_prefix=${exec_prefix} \
......@@ -787,17 +797,17 @@ FRC:
### target for GCC does not delete `libgcc.a', because recompiling it
### is rarely necessary and takes a lot of time.
mostlyclean: FRC
(cd src; $(MAKE) $(MFLAGS) mostlyclean)
(cd oldXMenu; $(MAKE) $(MFLAGS) mostlyclean)
(cd lwlib; $(MAKE) $(MFLAGS) mostlyclean)
(cd lib; $(MAKE) $(MFLAGS) mostlyclean)
(cd lib-src; $(MAKE) $(MFLAGS) mostlyclean)
(cd nt; $(MAKE) $(MFLAGS) mostlyclean)
-(cd doc/emacs && $(MAKE) $(MFLAGS) mostlyclean)
-(cd doc/misc && $(MAKE) $(MFLAGS) mostlyclean)
-(cd doc/lispref && $(MAKE) $(MFLAGS) mostlyclean)
-(cd doc/lispintro && $(MAKE) $(MFLAGS) mostlyclean)
(cd leim; $(MAKE) $(MFLAGS) mostlyclean)
cd src && $(MAKE) $(MFLAGS) mostlyclean
cd oldXMenu && $(MAKE) $(MFLAGS) mostlyclean
cd lwlib && $(MAKE) $(MFLAGS) mostlyclean
cd lib && $(MAKE) $(MFLAGS) mostlyclean
cd lib-src && $(MAKE) $(MFLAGS) mostlyclean
cd nt && $(MAKE) $(MFLAGS) mostlyclean
-cd doc/emacs && $(MAKE) $(MFLAGS) mostlyclean
-cd doc/misc && $(MAKE) $(MFLAGS) mostlyclean
-cd doc/lispref && $(MAKE) $(MFLAGS) mostlyclean
-cd doc/lispintro && $(MAKE) $(MFLAGS) mostlyclean
cd leim && $(MAKE) $(MFLAGS) mostlyclean
### `clean'
### Delete all files from the current directory that are normally
......@@ -809,18 +819,18 @@ mostlyclean: FRC
### Delete `.dvi' files here if they are not part of the distribution.
clean: FRC
-rm -f etc/emacs.tmpdesktop
(cd src; $(MAKE) $(MFLAGS) clean)
(cd oldXMenu; $(MAKE) $(MFLAGS) clean)
(cd lwlib; $(MAKE) $(MFLAGS) clean)
(cd lib; $(MAKE) $(MFLAGS) clean)
(cd lib-src; $(MAKE) $(MFLAGS) clean)
(cd nt; $(MAKE) $(MFLAGS) clean)
-(cd doc/emacs && $(MAKE) $(MFLAGS) clean)
-(cd doc/misc && $(MAKE) $(MFLAGS) clean)
-(cd doc/lispref && $(MAKE) $(MFLAGS) clean)
-(cd doc/lispintro && $(MAKE) $(MFLAGS) clean)
(cd leim; $(MAKE) $(MFLAGS) clean)
(cd nextstep && $(MAKE) $(MFLAGS) clean)
cd src && $(MAKE) $(MFLAGS) clean
cd oldXMenu && $(MAKE) $(MFLAGS) clean
cd lwlib && $(MAKE) $(MFLAGS) clean
cd lib && $(MAKE) $(MFLAGS) clean
cd lib-src && $(MAKE) $(MFLAGS) clean
cd nt && $(MAKE) $(MFLAGS) clean
-cd doc/emacs && $(MAKE) $(MFLAGS) clean
-cd doc/misc && $(MAKE) $(MFLAGS) clean
-cd doc/lispref && $(MAKE) $(MFLAGS) clean
-cd doc/lispintro && $(MAKE) $(MFLAGS) clean
cd leim && $(MAKE) $(MFLAGS) clean
cd nextstep && $(MAKE) $(MFLAGS) clean
### `bootclean'
### Delete all files that need to be remade for a clean bootstrap.
......@@ -836,38 +846,44 @@ top_distclean=\
${top_bootclean}; \
rm -f config.status config.log~ Makefile stamp-h1 ${SUBDIR_MAKEFILES}
distclean: FRC
(cd src; $(MAKE) $(MFLAGS) distclean)
(cd oldXMenu; $(MAKE) $(MFLAGS) distclean)
(cd lwlib; $(MAKE) $(MFLAGS) distclean)
(cd lib; $(MAKE) $(MFLAGS) distclean)
(cd lib-src; $(MAKE) $(MFLAGS) distclean)
(cd nt; $(MAKE) $(MFLAGS) distclean)
(cd doc/emacs && $(MAKE) $(MFLAGS) distclean)
(cd doc/misc && $(MAKE) $(MFLAGS) distclean)
(cd doc/lispref && $(MAKE) $(MFLAGS) distclean)
(cd doc/lispintro && $(MAKE) $(MFLAGS) distclean)
(cd leim; $(MAKE) $(MFLAGS) distclean)
(cd lisp; $(MAKE) $(MFLAGS) distclean)
(cd nextstep && $(MAKE) $(MFLAGS) distclean)
cd src && $(MAKE) $(MFLAGS) distclean
cd oldXMenu && $(MAKE) $(MFLAGS) distclean
cd lwlib && $(MAKE) $(MFLAGS) distclean
cd lib && $(MAKE) $(MFLAGS) distclean
cd lib-src && $(MAKE) $(MFLAGS) distclean
cd nt && $(MAKE) $(MFLAGS) distclean
cd doc/emacs && $(MAKE) $(MFLAGS) distclean
cd doc/misc && $(MAKE) $(MFLAGS) distclean
cd doc/lispref && $(MAKE) $(MFLAGS) distclean
cd doc/lispintro && $(MAKE) $(MFLAGS) distclean
cd leim && $(MAKE) $(MFLAGS) distclean
cd lisp && $(MAKE) $(MFLAGS) distclean
cd nextstep && $(MAKE) $(MFLAGS) distclean
[ ! -d test/automated ] || { \
cd test/automated && $(MAKE) $(MFLAGS) distclean; \
### `bootstrap-clean'
### Delete everything that can be reconstructed by `make' and that
### needs to be deleted in order to force a bootstrap from a clean state.
bootstrap-clean: FRC
(cd src; $(MAKE) $(MFLAGS) bootstrap-clean)
(cd oldXMenu; $(MAKE) $(MFLAGS) maintainer-clean)
(cd lwlib; $(MAKE) $(MFLAGS) maintainer-clean)
(cd lib; $(MAKE) $(MFLAGS) maintainer-clean)
(cd lib-src; $(MAKE) $(MFLAGS) maintainer-clean)
(cd nt; $(MAKE) $(MFLAGS) maintainer-clean)
-(cd doc/emacs && $(MAKE) $(MFLAGS) maintainer-clean)
-(cd doc/misc && $(MAKE) $(MFLAGS) maintainer-clean)
-(cd doc/lispref && $(MAKE) $(MFLAGS) maintainer-clean)
-(cd doc/lispintro && $(MAKE) $(MFLAGS) maintainer-clean)
(cd leim; $(MAKE) $(MFLAGS) maintainer-clean)
(cd lisp; $(MAKE) $(MFLAGS) bootstrap-clean)
(cd nextstep && $(MAKE) $(MFLAGS) maintainer-clean)
cd src && $(MAKE) $(MFLAGS) bootstrap-clean
cd oldXMenu && $(MAKE) $(MFLAGS) maintainer-clean
cd lwlib && $(MAKE) $(MFLAGS) maintainer-clean
cd lib && $(MAKE) $(MFLAGS) maintainer-clean
cd lib-src && $(MAKE) $(MFLAGS) maintainer-clean
cd nt && $(MAKE) $(MFLAGS) maintainer-clean
-cd doc/emacs && $(MAKE) $(MFLAGS) maintainer-clean
-cd doc/misc && $(MAKE) $(MFLAGS) maintainer-clean
-cd doc/lispref && $(MAKE) $(MFLAGS) maintainer-clean
-cd doc/lispintro && $(MAKE) $(MFLAGS) maintainer-clean
cd leim && $(MAKE) $(MFLAGS) maintainer-clean
cd lisp && $(MAKE) $(MFLAGS) bootstrap-clean
cd nextstep && $(MAKE) $(MFLAGS) maintainer-clean
[ ! -d test/automated ] || { \
cd test/automated && $(MAKE) $(MFLAGS) bootstrap-clean; \
[ ! -f config.log ] || mv -f config.log config.log~
......@@ -886,8 +902,11 @@ top_maintainer_clean=\
${top_distclean}; \
rm -fr autom4te.cache
maintainer-clean: bootstrap-clean FRC
(cd src; $(MAKE) $(MFLAGS) maintainer-clean)
(cd lisp; $(MAKE) $(MFLAGS) maintainer-clean)
cd src && $(MAKE) $(MFLAGS) maintainer-clean
cd lisp && $(MAKE) $(MFLAGS) maintainer-clean
[ ! -d test/automated ] || { \
cd test/automated && $(MAKE) $(MFLAGS) maintainer-clean; \
### This doesn't actually appear in the coding standards, but Karl
......@@ -921,7 +940,7 @@ DVIS = lispref-dvi lispintro-dvi emacs-dvi misc-dvi
HTMLS = lispref-html lispintro-html emacs-html misc-html
INFOS = lispref-info lispintro-info emacs-info misc-info
PDFS = lispref-pdf lispintro-pdf emacs-pdf misc-pdf
PSS = lispref-ps lispintro-ps emacs-ps # no misc-ps
PSS = lispref-ps lispintro-ps emacs-ps misc-ps
......@@ -930,6 +949,7 @@ $(DOCS):
.PHONY: $(DOCS) docs pdf ps
.PHONY: info dvi dist check html info-real force-info check-info-dir
## TODO add etc/refcards.
docs: $(DOCS)
dvi: $(DVIS)
html: $(HTMLS)
......@@ -937,6 +957,55 @@ info-real: $(INFOS)
pdf: $(PDFS)
ps: $(PSS)
INSTALL_DVI = install-emacs-dvi install-lispref-dvi \
install-lispintro-dvi install-misc-dvi
INSTALL_HTML = install-emacs-html install-lispref-html \
install-lispintro-html install-misc-html
INSTALL_PDF = install-emacs-pdf install-lispref-pdf \
install-lispintro-pdf install-misc-pdf
INSTALL_PS = install-emacs-ps install-lispref-ps \
install-lispintro-ps install-misc-ps
## Install non .info forms of the documentation.
## TODO add etc/refcards.
t=$@; IFS=-; set $$t; IFS=; cd doc/$$2 && $(MAKE) $(MFLAGS) $$1-$$3
.PHONY: $(INSTALL_DOC) install-doc
.PHONY: install-dvi install-html install-pdf install-ps
install-doc: $(INSTALL_DOC)
install-dvi: $(INSTALL_DVI)
install-html: $(INSTALL_HTML)
install-pdf: $(INSTALL_PDF)
install-ps: $(INSTALL_PS)
UNINSTALL_DVI = uninstall-emacs-dvi uninstall-lispref-dvi \
uninstall-lispintro-dvi uninstall-misc-dvi
UNINSTALL_HTML = uninstall-emacs-html uninstall-lispref-html \
uninstall-lispintro-html uninstall-misc-html
UNINSTALL_PDF = uninstall-emacs-pdf uninstall-lispref-pdf \
uninstall-lispintro-pdf uninstall-misc-pdf
UNINSTALL_PS = uninstall-emacs-ps uninstall-lispref-ps \
uninstall-lispintro-ps uninstall-misc-ps
t=$@; IFS=-; set $$t; IFS=; cd doc/$$2 && $(MAKE) $(MFLAGS) $$1-$$3
.PHONY: $(UNINSTALL_DOC) uninstall-doc
.PHONY: uninstall-dvi uninstall-html uninstall-pdf uninstall-ps
uninstall-doc: $(UNINSTALL_DOC)
uninstall-dvi: $(UNINSTALL_DVI)
uninstall-html: $(UNINSTALL_HTML)
uninstall-pdf: $(UNINSTALL_PDF)
uninstall-ps: $(UNINSTALL_PS)
# Note that man/Makefile knows how to put the info files in $(srcdir),
# so we can do ok running make in the build dir.
......@@ -957,13 +1026,15 @@ info: force-info
# The info/dir file must be updated by hand when new manuals are added.
# Cannot add an info/dir entry for efaq-w32 since it is not installed
# on all platforms.
check-info-dir: info
cd info ; \
missing= ; \
for file in *; do \
test -f "$${file}" || continue ; \
case $${file} in \
*-[0-9]*|COPYING|dir) continue ;; \
*-[0-9]*|COPYING|dir|efaq-w32*) continue ;; \
esac ; \
file=`echo $${file} | sed 's/\.info//'` ; \
grep -q -F ": ($${file})." dir || missing="$${missing} $${file}" ; \
......@@ -998,5 +1069,5 @@ check-declare:
echo "You must build Emacs to use this command"; \
exit 1; \
(cd leim; $(MAKE) $(MFLAGS) $@)
(cd lisp; $(MAKE) $(MFLAGS) $@)
cd leim && $(MAKE) $(MFLAGS) $@
cd lisp && $(MAKE) $(MFLAGS) $@
2013-08-28 Paul Eggert <>
* unidata/ (SHELL): Now @SHELL@, not /bin/sh,
for portability to hosts where /bin/sh has problems.
2013-08-27 Glenn Morris <>
* admin.el (manual-misc-manuals): Use INFO_COMMON rather than
INFO_TARGETS. "faq" does not need special treatment any more.
2013-08-15 Glenn Morris <>
* make-tarball.txt: Mention generating pdfs in etc/refcards.
2013-08-15 Xue Fuqiao <>
* notes/hydra: More information about Hydra.
2013-08-10 Xue Fuqiao <>
* notes/hydra: New file.
2013-08-04 Paul Eggert <>
Fix some minor races in hosts lacking mkostemp (Bug#15015).
* merge-gnulib (GNULIB_MODULES): Add mkostemp.
2013-07-12 Glenn Morris <>
* admin.el (manual-style-string): Use non-abbreviated url.
......@@ -3,6 +3,10 @@ Tasks needed before the next release.
** Manuals
Check for node names using problematic characters:
find doc -name '*.texi' -exec grep '^@node[^,]*[:.()]' {} +
Sadly makeinfo does not warn about such characters.
Check cross-references between the manuals (eg from emacs to elisp)
are correct. You can use something like the following in the info
directory in the Emacs build tree:
......@@ -195,19 +195,21 @@ Root must be the root of an Emacs source tree."
(defun manual-misc-manuals (root)
"Return doc/misc manuals as list of strings."
;; Like `make -C doc/misc echo-info', but works if unconfigured.
;; Similar to `make -C doc/misc echo-info', but works if unconfigured,
;; and for INFO_TARGETS rather than INFO_INSTALL.
(insert-file-contents (expand-file-name "doc/misc/" root))
(search-forward "INFO_TARGETS = ")
(let ((start (point))
;; Should really use expanded value of INFO_TARGETS.
(search-forward "INFO_COMMON = ")
(let ((start (point)))
(while (and (looking-back "\\\\")
(zerop (forward-line 1)))
(split-string (replace-regexp-in-string
"\\(\\\\\\|\\.info\\)" ""
(buffer-substring start (point)))))))
(append (split-string (replace-regexp-in-string
"\\(\\\\\\|\\.info\\)" ""
(buffer-substring start (point))))
(defun make-manuals (root &optional type)
"Generate the web manuals for the Emacs webpage.
......@@ -287,9 +289,8 @@ Optional argument TYPE is type of output (nil means all)."
(defun manual-misc-html (name root html-node-dir html-mono-dir)
;; Hack to deal with the cases where .texi creates a different .info.
;; Blech. TODO Why not just rename the .texi files?
;; Blech. TODO Why not just rename the .texi (or .info) files?
(let* ((texiname (cond ((equal name "ccmode") "cc-mode")
((equal name "efaq") "faq")
(t name)))
(texi (expand-file-name (format "doc/misc/%s.texi" texiname) root)))
(manual-html-node texi (expand-file-name name html-node-dir))
......@@ -202,6 +202,8 @@ The detected problematic options are stored in `cus-test-errors'."
;; Check the values
(mapc (lambda (value)
;; TODO for booleans, check for values that can be
;; evaluated and are not t or nil. Usually a bug.
(unless (widget-apply conv :match value)
(setq mismatch 'mismatch)))
......@@ -61,6 +61,9 @@ General steps (for each step, check for possible errors):
5. autoreconf -i -I m4 --force
make bootstrap
make -C etc/refcards
make -C etc/refcards clean
6. Copy lisp/loaddefs.el to lisp/ldefs-boot.el.
Commit etc/AUTHORS, lisp/ldefs-boot.el, and the files changed
......@@ -144,6 +147,8 @@ General steps (for each step, check for possible errors):
Download them and check the signatures. Check they build.
12. For a pretest, announce it on emacs-devel and
Probably should also include the platform-testers list:
For a release, also announce it on (Probably
bcc the info- addresses to make it less likely that people will
followup on those lists.)
......@@ -32,7 +32,7 @@ GNULIB_MODULES='
fcntl fcntl-h fdatasync fdopendir filemode fstatat fsync
getloadavg getopt-gnu gettime gettimeofday
intprops largefile lstat
manywarnings memrchr mktime
manywarnings memrchr mkostemp mktime
pipe2 pselect pthread_sigmask putenv qacl readlink readlinkat