emacs/doc/lispref
Stefan Kangas bcde5f86c5 Support expiration of metadata by package archives
Expiring package metadata is done by checking the timestamp in package
archive file.  This is intended to limit the effectiveness of a replay
attack.  The onus is on the package archives to implement a secure and
reasonable policy.  (Debian uses 7 days before metadata expires.)

Together with package checksums, this adds sufficient protection
against metadata replay attacks.  (Bug#19479)

* lisp/emacs-lisp/package.el (package-check-timestamp): New defcustom.
(bad-timestamp): New error.
(package--parse-header-from-buffer)
(package--parse-valid-until-from-buffer)
(package--parse-last-updated-from-buffer)
(package--archive-verify-timestamp)
(package--archive-verify-not-expired)
(package--compare-archive-timestamps)
(package--check-archive-timestamp): New defuns.
(package--download-one-archive): Check timestamp of the
'archive-contents' file using above functions.  It is only checked if
it exists, which makes this change backwards compatible.

* lisp/calendar/iso8601.el (iso8601-parse): Add autoload cookie.

* test/lisp/emacs-lisp/package-tests.el
(package-test-parse-valid-until-from-buffer)
(package-test-parse-last-updated-from-buffer)
(package-test-archive-verify-timestamp)
(package-test-check-archive-timestamp)
(package-test-check-archive-timestamp/not-expired)
(package-test-check-archive-timestamp/expired): New tests.

* test/lisp/emacs-lisp/package-resources/archives/older/archive-contents:
* test/lisp/emacs-lisp/package-resources/archives/newer/archive-contents:
New files.

* doc/lispref/package.texi (Package Archives, Archive Web Server):
Document how to increase the security of a package archive using
checksums, signing and timestamps.
2020-11-22 00:38:35 +01:00
..
abbrevs.texi Remove #' and function quoting from lambda forms in manual 2020-04-19 13:19:37 +02:00
anti.texi ; * doc/lispref/anti.texi (Antinews): Fix typo. 2020-01-11 14:14:11 +01:00
back.texi Update copyright year to 2020 2020-01-01 00:59:52 +00:00
backups.texi ; * doc/lispref/backups.texi (Auto-Saving): Fix wording of last change. 2020-08-26 13:46:56 +03:00
book-spine.texi Fix single-quoting style in PDF manuals 2015-05-01 12:06:38 -07:00
buffers.texi Minor copyedits of doc of 'with-silent-modifications' 2020-09-19 11:30:57 +03:00
ChangeLog.1 Update copyright year to 2020 2020-01-01 00:59:52 +00:00
commands.texi * doc/lispref/commands.texi (Key Sequence Input): Fix indexing. 2020-10-31 10:03:27 +02:00
compile.texi byte-compile-file: Make optional LOAD argument obsolete 2020-10-20 18:48:27 +02:00
control.texi Don't use 'cl' functions in ELisp manual's examples 2020-06-20 10:29:37 +03:00
customize.texi Use a widget for the face link in Customize buffers 2020-09-18 13:28:12 +02:00
debugging.texi ; Fix typos; change "Emacs-Lisp" to "Emacs Lisp" 2020-09-02 00:01:37 +02:00
display.texi ; Prefer https to http in more URLs 2020-10-24 20:23:27 +02:00
doclicense.texi Merge from Gnulib 2017-10-01 18:31:10 -07:00
edebug.texi Minor Edebug manual keystroke clarifications 2020-11-17 00:18:11 +01:00
elisp.texi Don’t use “constant” for values you shouldn’t change 2020-05-16 18:24:07 -07:00
errors.texi Clean up D-Bus documentation (bug#41744) 2020-06-08 18:19:50 +01:00
eval.texi Don’t use “constant” for values you shouldn’t change 2020-05-16 18:24:07 -07:00
files.texi Fix some glitches in recent directory-files-* changes 2020-11-02 17:56:06 +01:00
frames.texi Make TTY menus work with xterm-mouse-mode 2020-10-24 13:14:27 +03:00
functions.texi Merge from origin/emacs-27 2020-11-02 09:27:40 -08:00
gpl.texi Merge from Gnulib 2017-10-01 18:31:10 -07:00
hash.texi Update copyright year to 2020 2020-01-01 00:59:52 +00:00
help.texi Handle help-form in y-or-n-p and use this in find-file-noselect (bug#5423) 2020-11-21 21:49:46 +02:00
hooks.texi Update copyright year to 2020 2020-01-01 00:59:52 +00:00
index.texi Fix minor whitespace issues after "." in manual. 2012-12-05 14:27:56 -08:00
internals.texi Allow creating unibyte strings from Emacs modules 2020-10-13 06:51:06 +02:00
intro.texi Merge from origin/emacs-27 2020-09-20 17:18:16 -07:00
keymaps.texi Merge from origin/emacs-27 2020-04-20 07:50:19 -07:00
lay-flat.texi Update copyright year to 2020 2020-01-01 00:59:52 +00:00
lists.texi Don’t use “constant” for values you shouldn’t change 2020-05-16 18:24:07 -07:00
loading.texi unload-feature: Correct doc string to match info manual and reality 2020-10-21 18:51:12 +02:00
macros.texi Update copyright year to 2020 2020-01-01 00:59:52 +00:00
Makefile.in Prefer saying "Info manual" to "info page" in docs 2020-01-23 14:44:27 +01:00
maps.texi Update copyright year to 2020 2020-01-01 00:59:52 +00:00
markers.texi Update copyright year to 2020 2020-01-01 00:59:52 +00:00
minibuf.texi Handle help-form in y-or-n-p and use this in find-file-noselect (bug#5423) 2020-11-21 21:49:46 +02:00
modes.texi Implement a :predicate parameter for globalized minor modes 2020-10-26 19:15:36 +01:00
nonascii.texi Explain difference between Unicode and Emacs scripts 2020-10-19 11:43:11 +02:00
numbers.texi eql doc improvements 2020-10-13 10:05:31 -07:00
objects.texi Merge from origin/emacs-27 2020-05-23 07:50:29 -07:00
os.texi Handle connection-local null-device and path-separator variables 2020-11-21 15:28:52 +01:00
package.texi Support expiration of metadata by package archives 2020-11-22 00:38:35 +01:00
positions.texi Clarify docs about line movement 2020-08-21 15:08:27 +02:00
processes.texi Use the full name of the null byte/character, not its abbreviation 2020-10-05 20:19:59 +02:00
README Update copyright year to 2020 2020-01-01 00:59:52 +00:00
records.texi Update copyright year to 2020 2020-01-01 00:59:52 +00:00
searching.texi ; * doc/lispref/searching.texi (Search and Replace): Rephrase 2020-09-28 12:04:10 +02:00
sequences.texi Clarify the seq-reduce documentation 2020-10-15 09:37:44 +02:00
spellfile Update lispref spellfile 2019-06-04 08:34:16 -07:00
streams.texi Reduce integer-output-format to print-integers-as-characters 2020-11-06 13:55:32 +01:00
strings.texi string-search robustness and documentation improvement (bug#43598) 2020-09-25 17:08:00 +02:00
symbols.texi * doc/lispref/symbols.texi (Definitions): Fix typo. 2020-07-29 12:35:19 +02:00
syntax.texi Fix a rare segfault in syntax.c 2020-09-19 19:54:01 +03:00
text.texi Document all parameters on `indent-relative' 2020-10-28 12:47:00 +01:00
threads.texi Update copyright year to 2020 2020-01-01 00:59:52 +00:00
tips.texi Mention non-ASCII C-c LETTER bindings in the lispref manual 2020-11-01 12:51:17 +01:00
two-volume-cross-refs.txt Update copyright year to 2020 2020-01-01 00:59:52 +00:00
two-volume.make Update copyright year to 2020 2020-01-01 00:59:52 +00:00
variables.texi Better file name in dynvars-check example 2020-10-25 16:41:31 +01:00
windows.texi In attempted recursive minibuffer use, display error message in correct frame 2020-11-19 10:31:50 +00:00

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

Copyright (C) 2001-2020 Free Software Foundation, Inc.  -*- outline -*-
See the end of the file for license conditions.


README for the Emacs Lisp Reference Manual.

* This directory contains the texinfo source files for the Emacs Lisp
Reference Manual.

* Report bugs in the Lisp Manual (or in Emacs) using M-x report-emacs-bug.
To ask questions, use the help-gnu-emacs mailing list.

* The Emacs Lisp Reference Manual is quite large.  It totals around
1100 pages in smallbook format; the info files total around 3.0 megabytes.

* You can format this manual for Info, for printing hardcopy using TeX,
or for HTML.

* You can buy nicely printed copies from the Free Software Foundation.
Buying a manual from the Free Software Foundation helps support our GNU
development work.  See <https://shop.fsf.org/>.
(At time of writing, this manual is out of print.)

* The master file for formatting this manual for Tex is called 'elisp.texi'.
It contains @include commands to include all the chapters that make up
the manual.

* This distribution contains a Makefile that you can use with GNU Make.

** To make an Info file, you need to install Texinfo, then run 'make info'.

** Use 'make elisp.pdf' or 'make elisp.html' to create PDF or HTML versions.


This file is part of GNU Emacs.

GNU Emacs is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

GNU Emacs is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with GNU Emacs.  If not, see <https://www.gnu.org/licenses/>.