unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
* ns build symlinks all libexec programs into bin directory
@ 2012-05-12 18:18 Glenn Morris
  2012-05-13  6:27 ` Jan Djärv
  0 siblings, 1 reply; 4+ messages in thread
From: Glenn Morris @ 2012-05-12 18:18 UTC (permalink / raw)
  To: emacs-devel


Why does a --with-ns build do this (in install-arch-dep):

cd nextstep/Emacs.app/bin
ls -l
    hexl -> ../libexec/hexl
    movemail -> ../libexec/movemail
    profile -> ../libexec/profile
    rcs2log -> ../libexec/rcs2log
    update-game-score -> ../libexec/update-game-score
    vcdiff -> ../libexec/vcdiff

Ie, create symlinks to the libexec programs in the bin directory?

These programs are supposed to be for internal Emacs use only, which is
why they get installed in libexec in the first place.



^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: ns build symlinks all libexec programs into bin directory
  2012-05-12 18:18 ns build symlinks all libexec programs into bin directory Glenn Morris
@ 2012-05-13  6:27 ` Jan Djärv
  2012-05-14 16:39   ` Glenn Morris
  0 siblings, 1 reply; 4+ messages in thread
From: Jan Djärv @ 2012-05-13  6:27 UTC (permalink / raw)
  To: Glenn Morris; +Cc: emacs-devel

Hello.

12 maj 2012 kl. 20:18 skrev Glenn Morris:

> 
> Why does a --with-ns build do this (in install-arch-dep):
> 
> cd nextstep/Emacs.app/bin
> ls -l
>    hexl -> ../libexec/hexl
>    movemail -> ../libexec/movemail
>    profile -> ../libexec/profile
>    rcs2log -> ../libexec/rcs2log
>    update-game-score -> ../libexec/update-game-score
>    vcdiff -> ../libexec/vcdiff
> 
> Ie, create symlinks to the libexec programs in the bin directory?
> 
> These programs are supposed to be for internal Emacs use only, which is
> why they get installed in libexec in the first place.

Short answer: So Emacs can find them :-)

Long answer:

The path to libexec is in PATH_EXEC epaths.h from epaths.in and then added to exec-path.
epaths.h is created at make time by the top level Makefile.
make install for --with-ns installs to nextstep/Emacs.app in the emacs tree.
Emacs.app can then be copied to its final place, which can be anywhere or another machine.
Thus, PATH_EXEC points to libexec in nextstep/Emacs.app, but when Emacs.app is installed (say on another machine), that values is not valid.  Hence the links into bin as  bin is in exec-path (derived from invocation directory and not by a compile time constant).

The idea is that Emacs.app is self contained and can be relocated anywhere as is how app-bundles are supposed to work.  A more intelligent search for libexec would also solve it.  For NS we know it is in the same place as bin, so we could just add libexec to exe-path the same way as bin.  But I guess nobody thought of this as a problem.

	Jan D.




^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: ns build symlinks all libexec programs into bin directory
  2012-05-13  6:27 ` Jan Djärv
@ 2012-05-14 16:39   ` Glenn Morris
  2012-05-15 16:26     ` Jan Djärv
  0 siblings, 1 reply; 4+ messages in thread
From: Glenn Morris @ 2012-05-14 16:39 UTC (permalink / raw)
  To: Jan Djärv; +Cc: emacs-devel

Jan Djärv wrote:

> Thus, PATH_EXEC points to libexec in nextstep/Emacs.app, but when
> Emacs.app is installed (say on another machine), that values is not
> valid. Hence the links into bin as bin is in exec-path (derived from
> invocation directory and not by a compile time constant).

Right, but if it can find its own bin/ directory, it can find ../libexec
just as easily (and if it can't, why not just install everything to bin).
I've just installed a simple ns_init_paths change that I think
removes the need for the symlinks (seems to work on GNUstep anyway).



^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: ns build symlinks all libexec programs into bin directory
  2012-05-14 16:39   ` Glenn Morris
@ 2012-05-15 16:26     ` Jan Djärv
  0 siblings, 0 replies; 4+ messages in thread
From: Jan Djärv @ 2012-05-15 16:26 UTC (permalink / raw)
  To: Glenn Morris; +Cc: emacs-devel


14 maj 2012 kl. 18:39 skrev Glenn Morris:

> Jan Djärv wrote:
> 
>> Thus, PATH_EXEC points to libexec in nextstep/Emacs.app, but when
>> Emacs.app is installed (say on another machine), that values is not
>> valid. Hence the links into bin as bin is in exec-path (derived from
>> invocation directory and not by a compile time constant).
> 
> Right, but if it can find its own bin/ directory, it can find ../libexec
> just as easily (and if it can't, why not just install everything to bin).

Right, I just wrote that.

> I've just installed a simple ns_init_paths change that I think
> removes the need for the symlinks (seems to work on GNUstep anyway).

The change works on OSX also.

	Jan D.





^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2012-05-15 16:26 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-05-12 18:18 ns build symlinks all libexec programs into bin directory Glenn Morris
2012-05-13  6:27 ` Jan Djärv
2012-05-14 16:39   ` Glenn Morris
2012-05-15 16:26     ` Jan Djärv

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).