Subject: pkg/28977: a couple of problems with editors/emacs
To: None <pkg-manager@netbsd.org, gnats-admin@netbsd.org,>
From: Greg A. Woods <woods@weird.com>
List: pkgsrc-bugs
Date: 01/15/2005 23:24:00
>Number: 28977
>Category: pkg
>Synopsis: a couple of problems with editors/emacs
>Confidential: no
>Severity: serious
>Priority: medium
>Responsible: pkg-manager
>State: open
>Class: sw-bug
>Submitter-Id: net
>Arrival-Date: Sat Jan 15 23:24:00 +0000 2005
>Originator: Greg A. Woods
>Release: pkgsrc-2004Q4
>Organization:
Planix, Inc.; Toronto, Ontario; Canada
>Environment:
System: NetBSD
>Description:
There are several long-standing problems with the editors/emacs
package.
The first is that emacs DOES NOT use libtool and the pkgsrc
module really must not set USE_LIBTOOL either.
The second is specific to NetBSD -- POSIX_SIGNALS is not used
but really it should be for correct operation. As an emacs
contributor with a copyright declaration on file at the FSF I've
forwarded this suggestion to the maintainers several times, but
it still hasn't made it into the main tree so it still must be
done by pkgsrc.
The third is that there's no proper support for non-pkgsrc emacs
add-on packages, e.g. which would be installed in /usr/local.
This patch adds a new "configuration" file that allows for
proper handling of /usr/local/share/emacs/site-lisp in an
extensible way that should not conflict with installation of
multiple different emacs versions.
>How-To-Repeat:
>Fix:
cvs diff: Diffing editors/emacs
Index: editors/emacs/Makefile
===================================================================
RCS file: /cvs/master/m-NetBSD/main/pkgsrc/editors/emacs/Makefile,v
retrieving revision 1.74
diff -u -r1.74 Makefile
--- editors/emacs/Makefile 3 Oct 2004 00:14:38 -0000 1.74
+++ editors/emacs/Makefile 15 Jan 2005 23:10:19 -0000
@@ -15,7 +15,7 @@
USE_BUILDLINK3= yes
USE_X11= yes
USE_GNU_TOOLS+= make
-USE_LIBTOOL= yes
+#USE_LIBTOOL= yes # NO!!! it does _not_
GNU_CONFIGURE= yes
CONFIGURE_ARGS+= --with-x
@@ -67,6 +67,15 @@
REPLACE_PERL= lib-src/grep-changelog
+BUILD_TARGET= all info
+
+# Note: ${PKGVERSION} here is not the same as ${PKGVERSION} in the PLIST!
+# The expression below is the one used in PLIST_SUBST.
+#
+EGDIR = ${PREFIX}/share/examples/emacs-${PKGVERSION:C/nb[0-9]*$//}
+
+CONF_FILES= ${EGDIR}/default.el ${PREFIX}/share/emacs/site-lisp/default.el
+
post-extract:
${CP} ${FILESDIR}/site-init.el ${WRKSRC}/lisp
${CP} ${FILESDIR}/amd64.h ${WRKSRC}/src/m
@@ -78,6 +87,9 @@
@${FIND} ${WRKSRC} -type f -name "*.orig" -print | ${XARGS} ${RM} -f
post-install:
+ ${INSTALL_DATA_DIR} ${EGDIR}
+ ${INSTALL_DATA} ${FILESDIR}/default.el ${EGDIR}
${CHOWN} -R ${SHAREOWN}:${SHAREGRP} ${PREFIX}/share/emacs
+.include "../../mk/bsd.pkg.install.mk"
.include "../../mk/bsd.pkg.mk"
Index: editors/emacs/PLIST
===================================================================
RCS file: /cvs/master/m-NetBSD/main/pkgsrc/editors/emacs/PLIST,v
retrieving revision 1.9
diff -u -r1.9 PLIST
--- editors/emacs/PLIST 16 Feb 2004 20:59:26 -0000 1.9
+++ editors/emacs/PLIST 15 Jan 2005 22:46:40 -0000
@@ -1743,6 +1743,7 @@
share/emacs/${PKGVERSION}/lisp/xt-mouse.elc
share/emacs/${PKGVERSION}/site-lisp/subdirs.el
share/emacs/site-lisp/subdirs.el
+share/examples/emacs-${PKGVERSION}/default.el
@unexec ${RMDIR} %D/share/emacs/site-lisp 2>/dev/null || ${TRUE}
@dirrm share/emacs/${PKGVERSION}/site-lisp
@dirrm share/emacs/${PKGVERSION}/lisp/toolbar
Index: editors/emacs/distinfo
===================================================================
RCS file: /cvs/master/m-NetBSD/main/pkgsrc/editors/emacs/distinfo,v
retrieving revision 1.16
diff -u -r1.16 distinfo
--- editors/emacs/distinfo 31 Jul 2004 21:01:54 -0000 1.16
+++ editors/emacs/distinfo 9 Sep 2004 20:54:07 -0000
@@ -9,4 +9,4 @@
SHA1 (patch-ag) = 3d64c0d53e3a8a737eeb04a6080a92a826b73620
SHA1 (patch-ak) = c37ecdcb1e0b0211b15baa7100dd43eab3f0830b
SHA1 (patch-bg) = 567ccce83e2b6d898a87f20763d5ff4b19c30deb
-SHA1 (patch-xx) = a818041b6c851f8a675b17d4c7372ddb5f468c53
+SHA1 (patch-xx) = a959dd74a444392eee1e1872a44efd31dc34db3d
cvs diff: Diffing editors/emacs/files
Index: editors/emacs/files/default.el
===================================================================
RCS file: editors/emacs/files/default.el
diff -N editors/emacs/files/default.el
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ editors/emacs/files/default.el 15 Jan 2005 23:09:04 -0000
@@ -0,0 +1,13 @@
+;;;
+;;; default.el - localized system wide default initialization
+;;;
+;;; This file is loaded by default. Users can prevent loading of this file
+;;; with the `-q' command-line option, or by setting `inhibit-default-init' in
+;;; their own init files.
+
+;; Additional elisp stuff may be installed in /usr/local...
+(setq local-site-lisp-dir "/usr/local/share/emacs/site-lisp")
+(setq load-path (cons local-site-lisp-dir load-path))
+
+;; load that file whenever this one is loaded
+(load-file (concat local-site-lisp-dir "/default.el"))
cvs diff: Diffing editors/emacs/patches
Index: editors/emacs/patches/patch-xx
===================================================================
RCS file: /cvs/master/m-NetBSD/main/pkgsrc/editors/emacs/patches/patch-xx,v
retrieving revision 1.5
diff -u -r1.5 patch-xx
--- editors/emacs/patches/patch-xx 6 Jul 2003 16:10:19 -0000 1.5
+++ editors/emacs/patches/patch-xx 27 Aug 2003 01:57:32 -0000
@@ -2,6 +2,14 @@
--- src/s/netbsd.h.orig Fri Apr 18 19:04:10 2003
+++ src/s/netbsd.h
+@@ -1,6 +1,7 @@
+ /* s/ file for netbsd system. */
+
+ /* Get most of the stuff from bsd4.3 */
++/* XXX There should be a "bsd4-4.h" because so many things are different! */
+ #include "bsd4-3.h"
+
+ #if defined (__alpha__) && !defined (__ELF__)
@@ -60,9 +60,17 @@
#endif /* not NO_SHARED_LIBS and not ELF */
@@ -20,3 +28,15 @@
#undef LIB_GCC
#define LIB_GCC
#endif
+@@ -106,6 +107,11 @@
+ #ifndef NOT_C_CODE
+ #include <signal.h>
+ #endif
++
++/* Use POSIX Signals [sigaction(), sigprocmask(), sigsuspend(), etc.]
++ Gerd says this works OK in FreeBSD -- should be fine on any 4.4BSD */
++
++#define POSIX_SIGNALS 1
+
+ /* Don't close pty in process.c to make it as controlling terminal.
+ It is already a controlling terminal of subprocess, because we did