commit:     d7d89ad147edc8b7b348777dc5c00c58abd59a37
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Thu Aug  9 17:56:14 2018 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Thu Aug  9 18:19:49 2018 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=d7d89ad1

app-emacs/gnuserv: Fix runtime failure with Emacs 27.

Package-Manager: Portage-2.3.44, Repoman-2.3.10

 .../gnuserv/files/gnuserv-3.12.8-backquotes.patch  | 16 +++++
 .../files/gnuserv-3.12.8-process-query.patch       | 14 +++++
 app-emacs/gnuserv/gnuserv-3.12.8-r4.ebuild         | 71 ++++++++++++++++++++++
 3 files changed, 101 insertions(+)

diff --git a/app-emacs/gnuserv/files/gnuserv-3.12.8-backquotes.patch 
b/app-emacs/gnuserv/files/gnuserv-3.12.8-backquotes.patch
new file mode 100644
index 00000000000..a16124821dd
--- /dev/null
+++ b/app-emacs/gnuserv/files/gnuserv-3.12.8-backquotes.patch
@@ -0,0 +1,16 @@
+Use new-style backquotes, to make it compile with Emacs 27.
+
+--- gnuserv-3.12.8-orig/gnuserv-compat.el
++++ gnuserv-3.12.8/gnuserv-compat.el
+@@ -193,9 +193,9 @@
+     (defmacro defgroup (&rest args)
+       nil)
+     (defmacro defcustom (var value doc &rest args)
+-      (` (defvar (, var) (, value) (, doc))))
++      `(defvar (, var) (, value) (, doc)))
+     (defmacro defface (var value doc &rest args)
+-      (` (make-face (, var))))
++      `(make-face (, var)))
+     (defmacro define-widget (&rest args)
+       nil)))
+ 

diff --git a/app-emacs/gnuserv/files/gnuserv-3.12.8-process-query.patch 
b/app-emacs/gnuserv/files/gnuserv-3.12.8-process-query.patch
new file mode 100644
index 00000000000..4fcbccc2b59
--- /dev/null
+++ b/app-emacs/gnuserv/files/gnuserv-3.12.8-process-query.patch
@@ -0,0 +1,14 @@
+Function process-kill-without-query is obsolete since 22.1 and no
+longer exists in 27.
+
+--- gnuserv-3.12.8-orig/gnuserv.el
++++ gnuserv-3.12.8/gnuserv.el
+@@ -738,7 +738,7 @@
+           (start-process "gnuserv" nil gnuserv-program)))
+     (set-process-sentinel gnuserv-process 'gnuserv-sentinel)
+     (set-process-filter gnuserv-process 'gnuserv-process-filter)
+-    (process-kill-without-query gnuserv-process)
++    (set-process-query-on-exit-flag gnuserv-process nil)
+     (setq allow-deletion-of-last-visible-frame t)
+     (run-hooks 'gnuserv-init-hook)))
+ 

diff --git a/app-emacs/gnuserv/gnuserv-3.12.8-r4.ebuild 
b/app-emacs/gnuserv/gnuserv-3.12.8-r4.ebuild
new file mode 100644
index 00000000000..935e23bd8c8
--- /dev/null
+++ b/app-emacs/gnuserv/gnuserv-3.12.8-r4.ebuild
@@ -0,0 +1,71 @@
+# Copyright 1999-2018 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+inherit elisp multilib desktop xdg-utils
+
+DESCRIPTION="Attach to an already running Emacs"
+HOMEPAGE="http://meltin.net/hacks/emacs/";
+SRC_URI="http://meltin.net/hacks/emacs/src/${P}.tar.gz";
+
+LICENSE="GPL-2+"
+SLOT="0"
+KEYWORDS="~amd64 ~ppc ~x86 ~x86-linux ~ppc-macos"
+IUSE="X"
+
+RDEPEND=">=app-eselect/eselect-emacs-1.15
+       X? ( x11-libs/libXau )"
+DEPEND="${RDEPEND}
+       X? ( x11-base/xorg-proto )"
+
+SITEFILE="50${PN}-gentoo.el"
+
+src_prepare() {
+       eapply "${FILESDIR}"/${P}-backquotes.patch
+       eapply "${FILESDIR}"/${P}-process-query.patch
+       sed -i -e 's/exec gnuclient/&-emacs/' gnudoit || die
+       eapply_user
+}
+
+src_configure() {
+       econf $(use_enable X xauth) \
+               --x-includes="${EPREFIX}"/usr/include \
+               --x-libraries="${EPREFIX}"/usr/$(get_libdir)
+}
+
+src_compile() {
+       default
+}
+
+src_install() {
+       exeinto /usr/libexec/emacs
+       doexe gnuserv
+       newbin gnuclient gnuclient-emacs
+       newbin gnudoit gnudoit-emacs
+       # Don't install gnuattach, it is not functional with FSF GNU Emacs
+
+       newman gnuserv.1 gnuserv-emacs.1
+       echo ".so man1/gnuserv-emacs.1" | newman - gnuclient-emacs.1
+       echo ".so man1/gnuserv-emacs.1" | newman - gnudoit-emacs.1
+
+       elisp-install ${PN} *.el *.elc
+       elisp-site-file-install "${FILESDIR}/${SITEFILE}"
+       dodoc ChangeLog README README.orig
+
+       if use X; then
+               domenu "${FILESDIR}"/gnuclient.desktop || die
+       fi
+}
+
+pkg_postinst() {
+       elisp-site-regen
+       use X && xdg_desktop_database_update
+       eselect gnuclient update ifunset
+}
+
+pkg_postrm() {
+       elisp-site-regen
+       use X && xdg_desktop_database_update
+       eselect gnuclient update ifunset
+}

Reply via email to