unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
* bug#14576: "make install" has trouble with non-standard locallisppath directories
@ 2013-06-08 14:15 Juanma Barranquero
  2013-06-08 15:05 ` Eli Zaretskii
  0 siblings, 1 reply; 6+ messages in thread
From: Juanma Barranquero @ 2013-06-08 14:15 UTC (permalink / raw)
  To: 14576

Package: emacs
Version: 24.3.50

On Windows, using the MSYS build machinery.

If you need to add a non-default lisp directory to the path, by
following nt/INSTALL.MSYS recommendation of doing, for example

  ./nt/msysconfig.sh
--enable-locallisppath='%emacs_dir%/../site-lisp;%emacs_dir%/share/emacs/24.3.50/site-lisp;%emacs_dir%/share/emacs/site-lisp'

then "make install" will try to create these directories *in the build
tree* (not the installation dir), and do a poor job at it. In the
above case, after make install the build tree will contain these
directories:

 %emacs_dir%
 site-lisp;%emacs_dir%/share/emacs/24.3.50/site-lisp;%emacs_dir%/share/emacs/site-lisp

"%emacs_dir%" is literal, an unexpanded environment variable.

Makefile.in contains this old note:

  ## I'm not sure creating locallisppath here serves any useful purpose.
  ## If it has the default value, then the later write_subdir commands
  ## will ensure all these components exist.
  ## This will only do something if locallisppath has a non-standard value.
  ## Is it really Emacs's job to create those directories?
  ## Should we also be ensuring they contain subdirs.el files?
  ## It would be easy to do, just use write_subdir.

and indeed, I would argue that is not Emacs' job to create them. If
the user is knowledgeable enough to have to use
--enable-locallisppath, s/he'll also know enough to make sure the
directories exist and contain subdirs.el as required.





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

* bug#14576: "make install" has trouble with non-standard locallisppath directories
  2013-06-08 14:15 bug#14576: "make install" has trouble with non-standard locallisppath directories Juanma Barranquero
@ 2013-06-08 15:05 ` Eli Zaretskii
  2013-06-08 15:18   ` Juanma Barranquero
  2013-06-27  2:02   ` Juanma Barranquero
  0 siblings, 2 replies; 6+ messages in thread
From: Eli Zaretskii @ 2013-06-08 15:05 UTC (permalink / raw)
  To: Juanma Barranquero; +Cc: 14576

> From: Juanma Barranquero <lekktu@gmail.com>
> Date: Sat, 8 Jun 2013 16:15:33 +0200
> 
> On Windows, using the MSYS build machinery.
> 
> If you need to add a non-default lisp directory to the path, by
> following nt/INSTALL.MSYS recommendation of doing, for example
> 
>   ./nt/msysconfig.sh
> --enable-locallisppath='%emacs_dir%/../site-lisp;%emacs_dir%/share/emacs/24.3.50/site-lisp;%emacs_dir%/share/emacs/site-lisp'
> 
> then "make install" will try to create these directories *in the build
> tree* (not the installation dir), and do a poor job at it. In the
> above case, after make install the build tree will contain these
> directories:
> 
>  %emacs_dir%
>  site-lisp;%emacs_dir%/share/emacs/24.3.50/site-lisp;%emacs_dir%/share/emacs/site-lisp
> 
> "%emacs_dir%" is literal, an unexpanded environment variable.

I removed from nt/INSTALL.MSYS the example that made it sound as if
%emacs_dir% is supported.  The other part of the reason that this
didn't work is that you need to separate the directories with a colon
':', not a semi-colon (another mistake in INSTALL.MSYS that I fixed).

Committed as trunk revision 112894.

Supporting these features will require changes in the top-level
Makefile.in; patches welcome.  IOW, the rest of this report is a
feature request.

> Makefile.in contains this old note:
> 
>   ## I'm not sure creating locallisppath here serves any useful purpose.
>   ## If it has the default value, then the later write_subdir commands
>   ## will ensure all these components exist.
>   ## This will only do something if locallisppath has a non-standard value.
>   ## Is it really Emacs's job to create those directories?
>   ## Should we also be ensuring they contain subdirs.el files?
>   ## It would be easy to do, just use write_subdir.
> 
> and indeed, I would argue that is not Emacs' job to create them. If
> the user is knowledgeable enough to have to use
> --enable-locallisppath, s/he'll also know enough to make sure the
> directories exist and contain subdirs.el as required.

This is IMO unrelated.





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

* bug#14576: "make install" has trouble with non-standard locallisppath directories
  2013-06-08 15:05 ` Eli Zaretskii
@ 2013-06-08 15:18   ` Juanma Barranquero
  2013-06-08 16:44     ` Eli Zaretskii
  2013-06-27  2:02   ` Juanma Barranquero
  1 sibling, 1 reply; 6+ messages in thread
From: Juanma Barranquero @ 2013-06-08 15:18 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: 14576

On Sat, Jun 8, 2013 at 5:05 PM, Eli Zaretskii <eliz@gnu.org> wrote:

> I removed from nt/INSTALL.MSYS the example that made it sound as if
> %emacs_dir% is supported.
[...]
> This is IMO unrelated.

Obviously our definitions of "supported" and "unrelated" do not agree.

When a user passes --enable-locallisppath, he does it according to its
description

  --enable-locallisppath=PATH
                          directories Emacs should search for lisp files
                          specific to this site

which talks about directories to search, *not* how/when/by-who are
they created. And passing a local lisp path containing %emacs_dir% is
indeed "supported" in the sense that it works for its stated use (to
search lisp files in the load path).

What does *not* work is make install's poor attempt at creating these
directories, so I really fail to see how can you say that these issues
are unrelated. It's make install's fail the real trouble, not passing
%emacs_dir% to --enable-locallisppath.

> The other part of the reason that this
> didn't work is that you need to separate the directories with a colon
> ':', not a semi-colon (another mistake in INSTALL.MSYS that I fixed).
>
> Committed as trunk revision 112894.

Thanks.

> Supporting these features will require changes in the top-level
> Makefile.in; patches welcome.  IOW, the rest of this report is a
> feature request.

You mean "the feature that local lisp paths containing %emacs_dir% are
correctly created"; that's indeed a feature request, just not one I'm
asking for. I'm asking to remove a misfeature.





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

* bug#14576: "make install" has trouble with non-standard locallisppath directories
  2013-06-08 15:18   ` Juanma Barranquero
@ 2013-06-08 16:44     ` Eli Zaretskii
  2013-06-08 16:49       ` Juanma Barranquero
  0 siblings, 1 reply; 6+ messages in thread
From: Eli Zaretskii @ 2013-06-08 16:44 UTC (permalink / raw)
  To: Juanma Barranquero; +Cc: 14576

> From: Juanma Barranquero <lekktu@gmail.com>
> Date: Sat, 8 Jun 2013 17:18:50 +0200
> Cc: 14576@debbugs.gnu.org
> 
> Obviously our definitions of "supported" and "unrelated" do not agree.

"Supported" means supported by the code that was originally there for
Posix platforms and by the changes I made for using that on Windows.
Obviously, %emacs_dir% was not supported by the former; the changes I
committed support that only in src/epaths.h.

> What does *not* work is make install's poor attempt at creating these
> directories, so I really fail to see how can you say that these issues
> are unrelated. It's make install's fail the real trouble, not passing
> %emacs_dir% to --enable-locallisppath.

If you prefer "partially supported", I agree with that.  But partial
support helps only those users who know to look under the hood and do
all kinds of special tricks.  For the rest of the users, this partial
support is the same as non-support.

> > Supporting these features will require changes in the top-level
> > Makefile.in; patches welcome.  IOW, the rest of this report is a
> > feature request.
> 
> You mean "the feature that local lisp paths containing %emacs_dir% are
> correctly created"

Yes, and also the semi-colon usage (if that is what you want to be
supported).

> I'm asking to remove a misfeature.

If by misfeature you mean the part that creates the directories in
locallisppath, then I don't object to that removal.  But if it is
removed, it must be removed on all systems, not just on Windows, IMO.





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

* bug#14576: "make install" has trouble with non-standard locallisppath directories
  2013-06-08 16:44     ` Eli Zaretskii
@ 2013-06-08 16:49       ` Juanma Barranquero
  0 siblings, 0 replies; 6+ messages in thread
From: Juanma Barranquero @ 2013-06-08 16:49 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: 14576

On Sat, Jun 8, 2013 at 6:44 PM, Eli Zaretskii <eliz@gnu.org> wrote:

> "Supported" means supported by the code that was originally there for
> Posix platforms and by the changes I made for using that on Windows.
> Obviously, %emacs_dir% was not supported by the former; the changes I
> committed support that only in src/epaths.h.

OK.

> If you prefer "partially supported", I agree with that.  But partial
> support helps only those users who know to look under the hood and do
> all kinds of special tricks.  For the rest of the users, this partial
> support is the same as non-support.

That partial support would be full support (at least on Windows) if
make install didn't try to create the dirs. That's the only
unsupported aspect, AFAICS.

> Yes, and also the semi-colon usage (if that is what you want to be
> supported).

No, I don't mind that. Using /x/ instead of X: and : instead of ; in
args to the MSYS machinery seems par for the course.

> If by misfeature you mean the part that creates the directories in
> locallisppath, then I don't object to that removal.  But if it is
> removed, it must be removed on all systems, not just on Windows, IMO.

Agreed. Now, if the maintainers agree, we could go forward on that...





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

* bug#14576: "make install" has trouble with non-standard locallisppath directories
  2013-06-08 15:05 ` Eli Zaretskii
  2013-06-08 15:18   ` Juanma Barranquero
@ 2013-06-27  2:02   ` Juanma Barranquero
  1 sibling, 0 replies; 6+ messages in thread
From: Juanma Barranquero @ 2013-06-27  2:02 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: 14576-done

On Sat, Jun 8, 2013 at 5:05 PM, Eli Zaretskii <eliz@gnu.org> wrote:

> I removed from nt/INSTALL.MSYS the example that made it sound as if
> %emacs_dir% is supported.

Now that locallisppath does not create directories, I'd suggest
reverting revno:112894 and re-adding the comment about using
%emacs_dir%. It is useful advice.

In fact, I'd go so far as to suggest adding a note about @VER@ (yes,
full of caveats and warnings and whatnot about it being unsupported
and an implementation detail, but still...)

   J





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

end of thread, other threads:[~2013-06-27  2:02 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-06-08 14:15 bug#14576: "make install" has trouble with non-standard locallisppath directories Juanma Barranquero
2013-06-08 15:05 ` Eli Zaretskii
2013-06-08 15:18   ` Juanma Barranquero
2013-06-08 16:44     ` Eli Zaretskii
2013-06-08 16:49       ` Juanma Barranquero
2013-06-27  2:02   ` Juanma Barranquero

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).