From 821a32c3b814c233cfe8b315430fae0781d09a95 Mon Sep 17 00:00:00 2001
From: Rob Browning <rlb@defaultvalue.org>
Date: Mon, 4 Apr 2011 22:46:24 -0500
Subject: Remove files that appear to be incompatible with the DFSG

Files that appear to be incompatible with the DFSG have been removed.

A number of files have been removed from this package because their
licenses are not compatible with the Debian Free Software Guidelines
(DFSG), or because it wasn't completely clear that their licenses are
compatible.

In particular, all of the files which are covered under the GFDL and
have invariant sections have been removed in accordance with this
General Resolution: http://www.debian.org/vote/2006/vote_001.

The files that have been removed, but still appear to be
distributable, have been moved to packages in Debian's non-free
section.

Author: Rob Browning <rlb@defaultvalue.org>
Added-by: Rob Browning <rlb@defaultvalue.org>
Status: new
---
 Makefile.in          | 44 +++++++++++++++++---------------------------
 admin/update_autogen |  3 +--
 configure.ac         | 19 ++++++++-----------
 doc/misc/Makefile.in | 44 +++++---------------------------------------
 lisp/help.el         |  8 ++++++++
 5 files changed, 39 insertions(+), 79 deletions(-)

diff --git a/Makefile.in b/Makefile.in
index b212c914e56..89584ed6166 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -161,7 +161,9 @@ man1dir=$(mandir)/man1
 # Where to install and expect the info files describing Emacs.
 infodir=@infodir@
 # Info files not in the doc/misc directory (we get those via make echo-info).
-INFO_NONMISC=emacs.info eintr.info elisp.info
+# Debian: moved DFSG incompatible files to emacs*-common-non-dfsg
+# package (see /usr/share/doc/emacs*-common/copyright).
+INFO_NONMISC=
 
 # If no makeinfo was found and configured --without-makeinfo, "no"; else "yes".
 HAVE_MAKEINFO=@HAVE_MAKEINFO@
@@ -808,8 +810,7 @@ endef
 ###      normally don't want to recompile.  For example, the 'mostlyclean'
 ###      target for GCC does not delete 'libgcc.a', because recompiling it
 ###      is rarely necessary and takes a lot of time.
-mostlyclean_dirs = src oldXMenu lwlib lib lib-src nt doc/emacs doc/misc \
-  doc/lispref doc/lispintro
+mostlyclean_dirs = src oldXMenu lwlib lib lib-src nt doc/misc
 
 $(foreach dir,$(mostlyclean_dirs),$(eval $(call submake_template,$(dir),mostlyclean)))
 
@@ -936,11 +937,11 @@ check check-expensive: all
 dist:
 	cd ${srcdir}; ./make-dist
 
-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   misc-ps
+DVIS  = misc-dvi
+HTMLS = misc-html
+INFOS = misc-info
+PDFS  = misc-pdf
+PSS   = misc-ps
 
 DOCS = $(DVIS) $(HTMLS) $(INFOS) $(PDFS) $(PSS)
 $(DOCS):
@@ -961,9 +962,6 @@ info-dir: ${srcdir}/info/dir
 
 ## Hopefully doc/misc/*.texi is not too long for some systems?
 srcdir_doc_info_dir_inputs = \
-  ${srcdir}/doc/emacs/emacs.texi \
-  ${srcdir}/doc/lispintro/emacs-lisp-intro.texi \
-  ${srcdir}/doc/lispref/elisp.texi \
   $(sort $(wildcard ${srcdir}/doc/misc/*.texi))
 info_dir_inputs = \
   ../build-aux/dir_top \
@@ -988,14 +986,10 @@ ${srcdir}/info/dir: ${info_dir_deps}
 	) >$$tempfile && \
 	${srcdir}/build-aux/move-if-change $${tempfile} ${srcdir}/info/dir
 
-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_DVI = install-misc-dvi
+INSTALL_HTML = install-misc-html
+INSTALL_PDF = install-misc-pdf
+INSTALL_PS = install-misc-ps
 INSTALL_DOC = $(INSTALL_DVI) $(INSTALL_HTML) $(INSTALL_PDF) $(INSTALL_PS)
 
 ## Install non .info forms of the documentation.
@@ -1013,14 +1007,10 @@ 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
+UNINSTALL_DVI = uninstall-misc-dvi
+UNINSTALL_HTML = uninstall-misc-html
+UNINSTALL_PDF = uninstall-misc-pdf
+UNINSTALL_PS = uninstall-misc-ps
 UNINSTALL_DOC = $(UNINSTALL_DVI) $(UNINSTALL_HTML) $(UNINSTALL_PDF) $(UNINSTALL_PS)
 
 $(UNINSTALL_DOC):
diff --git a/admin/update_autogen b/admin/update_autogen
index 82ad622c64e..7bca0d67e0d 100755
--- a/admin/update_autogen
+++ b/admin/update_autogen
@@ -269,8 +269,7 @@ info_dir ()
 $topic
 EOF
         ## Bit faster than doc/*/*.texi.
-        for file in doc/emacs/emacs.texi doc/lispintro/*.texi \
-            doc/lispref/elisp.texi doc/misc/*.texi; do
+        for file in doc/misc/*.texi; do
 
             ## FIXME do not ignore w32 if OS is w32.
             case $file in
diff --git a/configure.ac b/configure.ac
index cd4d1c0f8e0..eeaa79d1788 100644
--- a/configure.ac
+++ b/configure.ac
@@ -5389,11 +5389,11 @@ dnl This will work, but you get a config.status that is not quite right
 dnl (see http://lists.gnu.org/archive/html/bug-autoconf/2008-08/msg00028.html).
 dnl That doesn't have any obvious consequences for Emacs, but on the whole
 dnl it seems better to just live with the duplication.
-SUBDIR_MAKEFILES="lib/Makefile lib-src/Makefile oldXMenu/Makefile doc/emacs/Makefile doc/misc/Makefile doc/lispintro/Makefile doc/lispref/Makefile src/Makefile lwlib/Makefile lisp/Makefile leim/Makefile nextstep/Makefile nt/Makefile"
+SUBDIR_MAKEFILES="lib/Makefile lib-src/Makefile oldXMenu/Makefile doc/misc/Makefile src/Makefile lwlib/Makefile lisp/Makefile leim/Makefile nextstep/Makefile nt/Makefile"
 
 AC_CONFIG_FILES([Makefile lib/Makefile lib-src/Makefile oldXMenu/Makefile \
-       doc/emacs/Makefile doc/misc/Makefile doc/lispintro/Makefile \
-       doc/lispref/Makefile src/Makefile lwlib/Makefile lisp/Makefile \
+       doc/misc/Makefile \
+       src/Makefile lwlib/Makefile lisp/Makefile \
        leim/Makefile nextstep/Makefile nt/Makefile])
 
 dnl test/ is not present in release tarfiles.
@@ -5445,14 +5445,11 @@ if test ! -f src/.gdbinit && test -f "$srcdir/src/.gdbinit"; then
 fi
 ])
 
-dnl Perhaps this would be better named doc-emacs-emacsver.texi?
-dnl See comments for etc-refcards-emacsver.tex.
-dnl Since we get a doc/emacs directory generated anyway, for the Makefile,
-dnl it is not quite the same.  But we are generating in $srcdir.
-AC_CONFIG_COMMANDS([doc/emacs/emacsver.texi], [
-${MAKE-make} -s --no-print-directory -C doc/emacs doc-emacsver || \
-AC_MSG_ERROR(['doc/emacs/emacsver.texi' could not be made.])
-])
+# This file is normally generated indirectly via
+# doc/emacs/Makefile.in, but since we've removed the other doc/emacs
+# files for the DFSG split, and we don't have any prebuilt info files,
+# generate it directly here.
+AC_CONFIG_FILES([doc/emacs/emacsver.texi])
 
 dnl If we give this the more natural name, etc/refcards/emacsver.texi,
 dnl then a directory etc/refcards is created in the build directory,
diff --git a/doc/misc/Makefile.in b/doc/misc/Makefile.in
index 4dffeafb1d2..9d144cc4528 100644
--- a/doc/misc/Makefile.in
+++ b/doc/misc/Makefile.in
@@ -61,18 +61,14 @@ INSTALL_DATA = @INSTALL_DATA@
 MAKEINFO = @MAKEINFO@
 MAKEINFO_OPTS = --force -I$(emacsdir)
 
+# Debian: moved DFSG incompatible files to emacs*-common-non-dfsg
+# package (see /usr/share/doc/emacs*-common/copyright).
+
 ## On MS Windows, efaq-w32; otherwise blank.
 DOCMISC_W32 = @DOCMISC_W32@
 
 ## Info files to build and install on all platforms.
-INFO_COMMON = ada-mode auth autotype bovine calc ccmode cl \
-	dbus dired-x ebrowse ede ediff edt eieio \
-	emacs-mime epa erc ert eshell eudc efaq eww \
-	flymake forms gnus emacs-gnutls htmlfontify idlwave ido info.info \
-	mairix-el message mh-e newsticker nxml-mode octave-mode \
-	org pcl-cvs pgg rcirc remember reftex sasl \
-	sc semantic ses sieve smtpmail speedbar srecode todo-mode tramp \
-	url vhdl-mode vip viper widget wisent woman
+INFO_COMMON = efaq
 
 ## Info files to install on current platform.
 INFO_INSTALL = $(INFO_COMMON) $(DOCMISC_W32)
@@ -150,9 +146,6 @@ define info_template
  $(1): $$(buildinfodir)/$(1).info
 endef
 
-## "info" is already taken.
-info.info: $(buildinfodir)/info.info
-
 $(foreach ifile,$(filter-out info.info,$(INFO_TARGETS)),$(eval $(call info_template,$(ifile))))
 
 
@@ -174,20 +167,11 @@ $(foreach ifile,$(filter-out info.info,$(INFO_TARGETS)),$(eval $(call info_templ
 
 ## Extra dependencies.
 
-need_emacsver = calc cl dired-x efaq efaq-w32 erc ido reftex woman
+need_emacsver = efaq efaq-w32
 need_emacsver_prefix = $(addprefix ${buildinfodir}/,${need_emacsver})
 
 $(need_emacsver_prefix:=.info) $(need_emacsver:=.dvi) $(need_emacsver:=.pdf) $(need_emacsver:=.html) : ${emacsdir}/emacsver.texi
 
-$(buildinfodir)/gnus.info gnus.html: ${srcdir}/gnus-faq.texi
-
-$(buildinfodir)/semantic.info semantic.dvi semantic.pdf semantic.html: ${srcdir}/sem-user.texi
-
-
-## Please can we just rename cc-mode.texi to ccmode.texi...
-${buildinfodir}/ccmode.info: \
-  ${srcdir}/cc-mode.texi ${gfdl} ${style} | ${buildinfodir}
-	$(AM_V_GEN)$(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ $<
 
 ## efaq, efaq_w32 do not depend on gfdl.
 ## Maybe we can use .SECONDEXPANSION for this.
@@ -203,24 +187,6 @@ efaq%.pdf: ${srcdir}/efaq%.texi
 efaq%.html: ${srcdir}/efaq%.texi
 	$(AM_V_GEN)$(MAKEINFO) $(MAKEINFO_OPTS) $(HTML_OPTS) -o $@ $<
 
-${buildinfodir}/emacs-mime.info emacs-mime.html: EXTRA_OPTS = --enable-encoding
-
-gnus_deps = ${srcdir}/gnus.texi ${srcdir}/gnus-faq.texi ${gfdl} ${style}
-gnus.dvi: $(gnus_deps)
-	sed -e '/@iflatex/,/@end iflatex/d' $< > gnustmpdvi.texi
-	$(ENVADD) $(TEXI2DVI) gnustmpdvi.texi
-	cp gnustmpdvi.dvi $@
-	rm gnustmpdvi.*
-
-gnus.pdf: $(gnus_deps)
-	sed -e '/@iflatex/,/@end iflatex/d' $< > gnustmppdf.texi
-	$(ENVADD) $(TEXI2PDF) gnustmppdf.texi
-	cp gnustmppdf.pdf $@
-	rm gnustmppdf.*
-
-${buildinfodir}/tramp.info tramp.html: EXTRA_OPTS = -D emacs
-${buildinfodir}/tramp.info tramp.html: ${srcdir}/trampver.texi
-
 
 .PHONY: mostlyclean clean distclean bootstrap-clean maintainer-clean
 
diff --git a/lisp/help.el b/lisp/help.el
index 57f358b9a72..69a45effab5 100644
--- a/lisp/help.el
+++ b/lisp/help.el
@@ -292,6 +292,14 @@ view-help-file
   (goto-address-mode 1)
   (goto-char (point-min)))
 
+(defun debian-expand-file-name-dfsg (filename)
+  "Apply expand-file-name to FILENAME.
+If expand-file-name does not find a file, append `.dfsg' and try again."
+  (let ((file (expand-file-name filename data-directory)))
+    (if (file-exists-p file)
+        file
+      (expand-file-name (concat file ".dfsg") data-directory))))
+
 (defun describe-distribution ()
   "Display info on how to obtain the latest version of GNU Emacs."
   (interactive)
