GNU bug report logs - #5051
23.1.50; Issues with Cocoa port on OS X

Previous Next

Packages: emacs, ns;

Reported by: Ulrich Mueller <ulm <at> gentoo.org>

Date: Thu, 26 Nov 2009 19:35:04 UTC

Severity: normal

Tags: patch

Merged with 1335

Fixed in version 24.0.92

Done: Glenn Morris <rgm <at> gnu.org>

Bug is archived. No further changes may be made.

To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 5051 in the body.
You can then email your comments to 5051 AT debbugs.gnu.org in the normal way.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to bug-submit-list <at> lists.donarmstrong.com, Emacs Bugs <bug-gnu-emacs <at> gnu.org>:
bug#5051; Package emacs. (Thu, 26 Nov 2009 19:35:04 GMT) Full text and rfc822 format available.

Acknowledgement sent to Ulrich Mueller <ulm <at> gentoo.org>:
New bug report received and forwarded. Copy sent to Emacs Bugs <bug-gnu-emacs <at> gnu.org>. (Thu, 26 Nov 2009 19:35:04 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> emacsbugs.donarmstrong.com (full text, mbox):

From: Ulrich Mueller <ulm <at> gentoo.org>
To: emacs-pretest-bug <at> gnu.org
Subject: 23.1.50; Issues with Cocoa port on OS X
Date: Thu, 26 Nov 2009 20:28:44 +0100
This is a forward of Gentoo bug 268793,
<http://bugs.gentoo.org/268793>

While trying to package Emacs for Gentoo on OS X (i686-apple-darwin9)
with "configure --with-ns --disable-ns-self-contained", we observed
the following two issues:


1)
configure.in contains the following code:

   if test "${HAVE_NS}" = yes; then
     # [...]
     # set up packaging dirs
     exec_prefix=${ns_appbindir}
     libexecdir=${ns_appbindir}/libexec
     if test "${EN_NS_SELF_CONTAINED}" = yes; then
        prefix=${ns_appresdir}
     fi
   fi

Now on Gentoo / OS X _not_ everything should be put inside the .app,
but the installation should follow the lines of a traditional Unix
install. That means that exec_prefix and libexecdir should be set to
<some_prefix>/usr and <some_prefix>/usr/libexec, respectively.

Unfortunately, this is not possible because the above code
unconditionally overrides the two variables, ignoring any paths that
are explicitly set by the --exec-prefix and --libexecdir configure
options.

I suggest that the two assignments are moved into the block of the
following "if" statement, so that they are overridden only in the
"self-contained" case.


2)
The top-level Makefile.in contains the following "gem" in the
install-arch-dep target:

	if test "${ns_appdir}" != ""; then \
	  ( cd ${ns_appresdir} ; \
	    if test -d share/emacs ; then dir=share/emacs/*/*; $(MV_DIRS); fi;\
	    if test -d share/info ; then dir=share/info; $(MV_DIRS) ; fi ; \
	    rm -fr share ) ; \
	  ( cd ${ns_appbindir}/libexec ; dir=emacs/*/*/* ; $(MV_DIRS); \
	    rm -fr emacs ) ; \
	  ( cd ${ns_appbindir}/bin ; rm -f emacs emacs-23* ; \
	    ln -sf ../libexec/* .) ; \
	else true ; fi

where MV_DIRS is defined a few lines above as follows:

   MV_DIRS = for i in $$dir; do rm -fr `basename "$$i"` ; mv "$$i" . ; done

As can be seen from the build log at
<http://bugs.gentoo.org/attachment.cgi?id=211254&action=view>
this code fails in a horrible way, thereby removing the complete
contents of the build directory.

The relevant lines of the log are the following:
/Users/tetsushi/Gentoo26/bin/bash: line 5: cd: /Users/tetsushi/Gentoo26/var/tmp/portage/app-editors/emacs-23.1/work/emacs-23.1/nextstep/Emacs.app/Contents/MacOS/libexec: No such file or directory
mv: cannot stat `emacs/*/*/*': No such file or directory

What happens is that the "cd ${ns_appbindir}/libexec" command fails.
Note that there is no checking for errors; so make continues, staying
in the top-level directory. Of course it cannot find any subdirectory
named "emacs" there.

Hence, MV_DIRS will call basename on unexpanded "emacs/*/*/*", which
will return "*" as target for "rm -fr" (and remember, we are still in
the top-level dir). Ugh.

(Unfortunately, I don't have access to an OS X system, so for lack of
testing I can't prepare a patch myself.)


Configure options are as follows:

./configure \
  --prefix=/Users/tetsushi/Gentoo26/usr \
  --build=i686-apple-darwin9 \
  --host=i686-apple-darwin9 \
  --mandir=/Users/tetsushi/Gentoo26/usr/share/man \
  --infodir=/Users/tetsushi/Gentoo26/usr/share/info \
  --datadir=/Users/tetsushi/Gentoo26/usr/share \
  --sysconfdir=/Users/tetsushi/Gentoo26/etc \
  --localstatedir=/Users/tetsushi/Gentoo26/var/lib \
  --program-suffix=-emacs-23 \
  --infodir=/Users/tetsushi/Gentoo26/usr/share/info/emacs-23 \
  --without-sound \
  --without-x \
  --with-ns \
  --disable-ns-self-contained \
  --without-hesiod  \
  --without-kerberos \
  --without-kerberos5 \
  --without-gpm \
  --without-dbus


Configured for `i686-apple-darwin9'.

  Where should the build process find the source code?    /Users/tetsushi/Gentoo26/var/tmp/portage/app-editors/emacs-23.1/work/emacs-23.1
  What operating system and machine description files should Emacs use?
        `s/darwin.h' and `m/intel386.h'
  What compiler should emacs be built with?               i686-apple-darwin9-gcc -O2 -march=nocona -pipe
  Should Emacs use the GNU version of malloc?             no
    (The GNU allocators don't work with this system configuration.)
  Should Emacs use a relocating allocator for buffers?    no
  Should Emacs use mmap(2) for buffer allocation?         no
  What window system should Emacs use?                    nextstep
  What toolkit should Emacs use?                          none
  Where do we find X Windows header files?                NONE
  Where do we find X Windows libraries?                   NONE
  Does Emacs use -lXaw3d?                                 no
  Does Emacs use -lXpm?                                   no
  Does Emacs use -ljpeg?                                  no
  Does Emacs use -ltiff?                                  no
  Does Emacs use a gif library?                           no 
  Does Emacs use -lpng?                                   no
  Does Emacs use -lrsvg-2?                                no
  Does Emacs use -lgpm?                                   no
  Does Emacs use -ldbus?                                  no
  Does Emacs use -lfreetype?                              no
  Does Emacs use -lm17n-flt?                              no
  Does Emacs use -lotf?                                   no
  Does Emacs use -lxft?                                   no
  Does Emacs use toolkit scroll bars?                     yes



bug reassigned from package 'emacs' to 'emacs,ns'. Request was from Glenn Morris <rgm <at> gnu.org> to control <at> emacsbugs.donarmstrong.com. (Mon, 30 Nov 2009 07:05:10 GMT) Full text and rfc822 format available.

Merged 1335 5051. Request was from Glenn Morris <rgm <at> gnu.org> to control <at> debbugs.gnu.org. (Thu, 17 Nov 2011 19:39:02 GMT) Full text and rfc822 format available.

bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Tue, 20 Dec 2011 12:24:03 GMT) Full text and rfc822 format available.

This bug report was last modified 12 years and 101 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.