Subject: Re: Emacs 21.2 pkgsrc ready for testing
To: Michal Pasternak <michal@pasternak.w.lub.pl>
From: Greg A. Woods <woods@weird.com>
List: netbsd-users
Date: 04/20/2002 14:14:30
[ On Sunday, April 14, 2002 at 20:31:46 (+0000), Micha³ Pasternak wrote: ]
> Subject: Emacs 21.2 pkgsrc ready for testing
>
> I managed to put up pkgsrc with Emacs 21.2 inside. It is an improved version
> of Emacs 20. It has a rewritten GUI, capabilities to display images and
> multimedia, and much more.

It's faster, is far more stable (at least for my somewhat extensive
uses) than any emacs-20.x release ever was, includes many new and
updated add-on packages (eg. pcl-cvs, new GNUS, etc., etc., etc.,), and
has far more advanced internationalisation features too!  :-)

With the basic fonts I have installed (x11r6.3 + intlfonts-1.2 -
unicode-encoded-fonts), as displayed on my monochrome screen:

	http://www.weird.com/~woods/emacs-21-HELLO.png

Most importantly 21.2 contains this incredibly long-awaited change:

	** On terminals whose erase-char is ^H (Backspace), Emacs
	now uses normal-erase-is-backspace-mode.

> If anybody would like to test it, it is at 
> http://netbsd.w.lub.pl/emacs-21.tgz. 

There is no PLIST file in your emacs-21 module, though there is one in
the emacs-leim-21 module.  Personally I'd just forget about emacs
without leim, but perhaps not everyone feels quite the same....  :-)

Of course if they are kept separate then ideally there should be an
emacs-21/Makefile.common that includes all the sharable stuff and
probably a shared PLIST too. Also the DESCR files are identical between
emacs-21 and emacs-liem-21, as are the COMMENT fields in each:

13:26 [24] $ diff ../emacs*-21/DESCR     
13:26 [25] $ diff ../emacs*-21/Makefile
3c3
< PKGNAME=      emacs-${VERSION}
---
> PKGNAME=      emacs-leim-${VERSION}
8c8
< DISTFILES=    ${DISTNAME}${EXTRACT_SUFX}
---
> DISTFILES=    ${DISTNAME}${EXTRACT_SUFX} leim-${VERSION}${EXTRACT_SUFX}
14c14
< CONFLICTS=    mule-[0-9]*
---
> CONFLICTS=    mule-[0-9]* emacs-21*


That last CONFLICTS line isn't right either, presuming these packages
are properly renamed to just "emacs" (and "emacs-leim").

It needs to be updated to use buildlink.mk too, which will fix the fact
it doesn't currently have any of the correct DEPENDS settings:

	$ ldd /usr/pkg/bin/emacs | fgrep pkg
	/usr/pkg/bin/emacs:
	         -ljpeg.62 => /usr/pkg/lib/libjpeg.so.62
	         -ltiff.3 => /usr/pkg/lib/libtiff.so.3
	         -lpng.3 => /usr/pkg/lib/libpng.so.3
	         -lungif.5 => /usr/pkg/lib/libungif.so.5
	         -lXpm.4 => /usr/pkg/lib/libXpm.so.4

It should be explicitly given these configure options too in order to
explicitly enable the add-on dependencies:

	--with-xpm --with-jpeg --with-tiff --with-gif --with-png

There may be others I've missed (eg Xaw3d) because I don't have them
installed at the moment, but the above are also the options I used
through the alpha-test releases too....

You probably explicitly want this option too:

	--with-pop

this is desirable on those systems where it could be supported:

	--with-ipv6

and I like this one too:

	--with-x-toolkit=athena

I don't think any of the above options will change the PLIST, but I'm
not 100% sure about that.....


In any case it does build, install, and work just fine on 1.5W, sparc
and i386....  Thanks very much for your work on this package!


> If noone will find errors in this package, I'm sending a PR on friday.

I don't know if I saw your submission go through GNATS yet, but in any
case I'll also suggest the following patches here.

I had submitted the next two patches several times throughout the alpha-
test release phases, but which somehow seemed to fall through the cracks
(though all the other patches I submitted were accepted).

Index: src/s/netbsd.h
===================================================================
RCS file: /cvs/gnu/emacs-21/src/s/netbsd.h,v
retrieving revision 1.1.1.4
diff -c -r1.1.1.4 netbsd.h
*** src/s/netbsd.h	19 Oct 2001 21:02:17 -0000	1.1.1.4
--- src/s/netbsd.h	19 Oct 2001 21:11:03 -0000
***************
*** 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__)
***************
*** 106,111 ****
--- 107,117 ----
  #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


This patch may be necessary on older versions of NetBSD (eg. 1.3.x, on
which emacs-21 seems to still work OK).  It certianly won't hurt, and
I'd also submitted it several times during alpha-test but it was
ignored:

Index: src/fileio.c
===================================================================
RCS file: /cvs/gnu/emacs-21/src/fileio.c,v
retrieving revision 1.1.1.8
diff -c -r1.1.1.8 fileio.c
*** src/fileio.c	13 Nov 2001 16:48:38 -0000	1.1.1.8
--- src/fileio.c	17 Mar 2002 21:07:04 -0000
***************
*** 3318,3325 ****
  }
  
  
! #ifdef __NetBSD__
! #define unix 42
  #endif
  
  #ifdef unix
--- 3318,3325 ----
  }
  
  
! #if defined(__NetBSD__) && !defined(unix)
! # define unix	42
  #endif
  
  #ifdef unix



This patch was suggested by another NetBSD user, but I don't know if it
is (still?) necessary and I have no arm machines to test it on:

Index: configure.in
===================================================================
RCS file: /cvs/gnu/emacs-21/configure.in,v
retrieving revision 1.1.1.8
diff -c -r1.1.1.8 configure.in
*** configure.in	13 Nov 2001 16:42:27 -0000	1.1.1.8
--- configure.in	13 Nov 2001 17:02:26 -0000
***************
*** 195,201 ****
        powerpc-*-netbsd*) machine=macppc ;;
        sparc*-*-netbsd*)	machine=sparc ;;
        vax-*-netbsd*)	machine=vax ;;
!       arm-*-netbsd*)	machine=arm ;;
      esac
    ;;
  
--- 195,201 ----
        powerpc-*-netbsd*) machine=macppc ;;
        sparc*-*-netbsd*)	machine=sparc ;;
        vax-*-netbsd*)	machine=vax ;;
!       arm*-*-netbsd*)	machine=arm ;;
      esac
    ;;
  

-- 
								Greg A. Woods

+1 416 218-0098;  <gwoods@acm.org>;  <g.a.woods@ieee.org>;  <woods@robohack.ca>
Planix, Inc. <woods@planix.com>; VE3TCP; Secrets of the Weird <woods@weird.com>