Subject: pkg/37237: Emacs version preference detection wrong
To: None <pkg-manager@netbsd.org, gnats-admin@netbsd.org,>
From: None <Peter.Bex@xs4all.nl>
List: pkgsrc-bugs
Date: 10/27/2007 20:55:01
>Number:         37237
>Category:       pkg
>Synopsis:       Even if a specific emacs version is requested, the default is still used
>Confidential:   no
>Severity:       non-critical
>Priority:       medium
>Responsible:    pkg-manager
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Sat Oct 27 20:55:00 +0000 2007
>Originator:     Peter Bex
>Release:        NetBSD 3.0.0_STABLE
>Organization:
	
>Environment:
	
	
System: NetBSD frohike.homeunix.org 3.0.0_STABLE NetBSD 3.0.0_STABLE (FROHIKE) #0: Thu May 25 14:15:21 CEST 2006 sjamaan@frohike.homeunix.org:/usr/src/sys/arch/amd64/compile/FROHIKE amd64
Architecture: x86_64
Machine: amd64
>Description:
	When you install an emacs and set the EMACS_TYPE to a specific type
	and version in mk.conf, it is not honored.

	See below:
>How-To-Repeat:
	$ echo "EMACS_TYPE=emacs22" >> /etc/mk.conf
	$ cd /usr/pkgsrc/editors/emacs
	$ make install
	<installing emacs 22>
	$ cd /usr/pkgsrc/print/auctex # or any other pkg depending on emacs
	$ make install
	<snip>
	=> Full dependency emacs>=21.2<22: NOT found
	=> Verifying update for ../../editors/emacs21
>Fix:

In the patch below, the logic changes from saying "if an emacs type is
provided, use the default version for that emacs type" (emacs22 will turn
into _EMACS_VERSION_DEFAULT.emacs22 which is nonsense) to saying
"if a type, but no specific version has been provided, use that type's
default version", which is of course exactly the desired behaviour.

As an aside, why is the default emacs installed by editors/emacs emacs22
and the default version used by packages depending on emacs emacs21?

--- mk/emacs.mk.orig	2007-08-15 21:34:59.000000000 +0200
+++ mk/emacs.mk	2007-10-27 22:41:14.000000000 +0200
@@ -235,7 +235,7 @@
 #		abort;
 #
 
-.if !empty(EMACS_TYPE:Memacs) || !empty(EMACS_TYPE:Mxemacs)
+.if empty(EMACS_TYPE:Nemacs) && empty(EMACS_TYPE:Nxemacs)
 _EMACS_TYPE=	${_EMACS_VERSION_DEFAULT.${EMACS_TYPE}}
 .endif
 _EMACS_TYPE?=	${EMACS_TYPE}

>Unformatted: