* bug#14513: 24.3.50; Site load-path pieces differ in MSYS build @ 2013-05-30 13:46 Richard Copley 2013-05-30 16:40 ` Eli Zaretskii 0 siblings, 1 reply; 39+ messages in thread From: Richard Copley @ 2013-05-30 13:46 UTC (permalink / raw) To: 14513 [-- Attachment #1: Type: text/plain, Size: 2818 bytes --] The site-specific pieces of the initial load-path are different in the nt/msysconfig.sh build from how they used to be with nt/configure.bat. In src/epaths.h (when built), PATH_SITELOADSEARCH is defined as: with nt/configure.bat: "%emacs_dir%/site-lisp;%emacs_dir%/../site-lisp" with nt/msysconfig.sh: "%emacs_dir%/share/emacs/24.3.50/site-lisp;%emacs_dir%/share/emacs/site-lisp" The former version was much more useful on Windows, allowing one to keep a bunch of Emacs installs in a single parent directory that also contains the site-lisp directory. As a workaround I tried configuring with "--enable-locallisppath=c:/emacs/site-lisp" but it didn't seem to have any effect. In GNU Emacs 24.3.50.1 (i686-pc-mingw32) of 2013-05-30 on 57172UHB Bzr revision: 112785 xfq.free@gmail.com-20130530092755-xhnwfx1wk3ueebnk Windowing system distributor `Microsoft Corp.', version 6.1.7601 Configured using: `configure --prefix c:/emacs/emacs-112785 --enable-locallisppath=c:/emacs/site-lisp CPPFLAGS='-I G:/usr/include' LDFLAGS='-L G:/usr/lib'' Important settings: value of $LANG: ENG locale-coding-system: cp1252 default enable-multibyte-characters: t Major mode: Lisp Interaction Minor modes in effect: tooltip-mode: t mouse-wheel-mode: t tool-bar-mode: t menu-bar-mode: t file-name-shadow-mode: t global-font-lock-mode: t font-lock-mode: t blink-cursor-mode: t auto-composition-mode: t auto-encryption-mode: t auto-compression-mode: t line-number-mode: t transient-mark-mode: t Recent input: M-x f i n d - l i b <return> s i t e - s t a r t <return> M-x r - e - b <return> Recent messages: For information about GNU Emacs and the GNU system, type C-h C-a. find-library-name: Can't find library site-start Load-path shadows: None found. Features: (shadow sort nadvice gnus-util mail-extr emacsbug message format-spec rfc822 mml easymenu mml-sec mm-decode mm-bodies mm-encode mail-parse rfc2231 mailabbrev gmm-utils mailheader sendmail rfc2047 rfc2045 ietf-drums mm-util mail-prsvr mail-utils thingatpt find-func time-date tooltip ediff-hook vc-hooks lisp-float-type mwheel dos-w32 ls-lisp w32-common-fns disp-table w32-win w32-vars tool-bar dnd fontset image regexp-opt fringe tabulated-list newcomment lisp-mode register page menu-bar rfn-eshadow timer select scroll-bar mouse jit-lock font-lock syntax facemenu font-core frame cham georgian utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao korean japanese hebrew greek romanian slovak czech european ethiopic indian cyrillic chinese case-table epa-hook jka-cmpr-hook help simple abbrev minibuffer loaddefs button faces cus-face macroexp files text-properties overlay sha1 md5 base64 format env code-pages mule custom widget hashtable-print-readable backquote make-network-process w32notify w32 multi-tty emacs) [-- Attachment #2: Type: text/html, Size: 3175 bytes --] ^ permalink raw reply [flat|nested] 39+ messages in thread
* bug#14513: 24.3.50; Site load-path pieces differ in MSYS build 2013-05-30 13:46 bug#14513: 24.3.50; Site load-path pieces differ in MSYS build Richard Copley @ 2013-05-30 16:40 ` Eli Zaretskii 2013-05-30 17:56 ` Richard Copley 0 siblings, 1 reply; 39+ messages in thread From: Eli Zaretskii @ 2013-05-30 16:40 UTC (permalink / raw) To: Richard Copley; +Cc: 14513 > Date: Thu, 30 May 2013 14:46:13 +0100 > From: Richard Copley <rcopley@gmail.com> > > The site-specific pieces of the initial load-path are different in the > nt/msysconfig.sh build from how they used to be with nt/configure.bat. Indeed, and that is on purpose. I explained the rationale here: http://lists.gnu.org/archive/html/emacs-devel/2013-04/msg00146.html > In src/epaths.h (when built), PATH_SITELOADSEARCH is defined as: > > with nt/configure.bat: "%emacs_dir%/site-lisp;%emacs_dir%/../site-lisp" > > with nt/msysconfig.sh: > "%emacs_dir%/share/emacs/24.3.50/site-lisp;%emacs_dir%/share/emacs/site-lisp" > > The former version was much more useful on Windows, allowing > one to keep a bunch of Emacs installs in a single parent directory > that also contains the site-lisp directory. Sorry, I don't follow. Please describe what structure was possible beforehand that you think is impossible now. ^ permalink raw reply [flat|nested] 39+ messages in thread
* bug#14513: 24.3.50; Site load-path pieces differ in MSYS build 2013-05-30 16:40 ` Eli Zaretskii @ 2013-05-30 17:56 ` Richard Copley 2013-05-30 18:20 ` Eli Zaretskii 0 siblings, 1 reply; 39+ messages in thread From: Richard Copley @ 2013-05-30 17:56 UTC (permalink / raw) To: Eli Zaretskii; +Cc: 14513 [-- Attachment #1: Type: text/plain, Size: 2447 bytes --] On 30 May 2013 17:40, Eli Zaretskii <eliz@gnu.org> wrote: > > Date: Thu, 30 May 2013 14:46:13 +0100 > > From: Richard Copley <rcopley@gmail.com> > > > > The site-specific pieces of the initial load-path are different in the > > nt/msysconfig.sh build from how they used to be with nt/configure.bat. > > Indeed, and that is on purpose. I explained the rationale here: > > http://lists.gnu.org/archive/html/emacs-devel/2013-04/msg00146.html > > > In src/epaths.h (when built), PATH_SITELOADSEARCH is defined as: > > > > with nt/configure.bat: "%emacs_dir%/site-lisp;%emacs_dir%/../site-lisp" > > > > with nt/msysconfig.sh: > > > "%emacs_dir%/share/emacs/24.3.50/site-lisp;%emacs_dir%/share/emacs/site-lisp" > > > > The former version was much more useful on Windows, allowing > > one to keep a bunch of Emacs installs in a single parent directory > > that also contains the site-lisp directory. > > Sorry, I don't follow. Please describe what structure was possible > beforehand that you think is impossible now. > I'm not sure which part you're having trouble with, so I'll be quite expansive and hopefully you'll see what I mean. Perhaps this should be a reply to the emacs-devel message, but I didn't see that at the time and it's a bit late now. What used sometimes to be called NT Emacs is (or was) a portable app. When you've unpacked (or built) it, everything is inside "bin/..". Call that the "application directory". You install by moving and renaming the application directory, and uninstall by deleting. Ideally, you never modify any file inside the application directory. Putting an Emacs bin directory on the system-wide path is optional. The user can be trusted to work out how to invoke the right executable. Emacs finds the right auxiliary executables and DOC file just fine, even with the "-Q" command-line argument. I had a bunch of these application directories, my own builds of the trunk, at different revisions. Like this (but with more Emacs): c:\>dir /B c:\emacs emacs-111818 emacs-112125 emacs-112416 site-lisp This particular arrangement was suggested, to my mind anyway, by the existence of the "%emacs_dir%/../site-lisp" entry in load-path. I don't say it's impossible to do the same thing any more, just that it no longer works out of the box as it used to (unless of course I've made some other mistake). If, as you say, it's a design decision, then that's fine. I disagree but I don't object. [-- Attachment #2: Type: text/html, Size: 3287 bytes --] ^ permalink raw reply [flat|nested] 39+ messages in thread
* bug#14513: 24.3.50; Site load-path pieces differ in MSYS build 2013-05-30 17:56 ` Richard Copley @ 2013-05-30 18:20 ` Eli Zaretskii 2013-05-30 19:02 ` Achim Gratz ` (3 more replies) 0 siblings, 4 replies; 39+ messages in thread From: Eli Zaretskii @ 2013-05-30 18:20 UTC (permalink / raw) To: Richard Copley; +Cc: 14513 > Date: Thu, 30 May 2013 18:56:10 +0100 > From: Richard Copley <rcopley@gmail.com> > Cc: 14513@debbugs.gnu.org > > What used sometimes to be called NT Emacs is (or was) a portable app. > When you've unpacked (or built) it, everything is inside "bin/..". > Call that the "application directory". You install by moving and > renaming the application directory, and uninstall by deleting. > Ideally, you never modify any file inside the application directory. > Putting an Emacs bin directory on the system-wide path is optional. > The user can be trusted to work out how to invoke the right executable. > Emacs finds the right auxiliary executables and DOC file just fine, > even with the "-Q" command-line argument. This is all still true, except that some of the directories are not immediately below the root of the installation tree, but somewhat deeper. E.g., what was previously in ROOT/lisp is now in ROOT/share/emacs/VERSION/lisp. Why is that difference important? > I had a bunch of these application directories, my own builds of the > trunk, at different revisions. Like this (but with more Emacs): > > c:\>dir /B c:\emacs > emacs-111818 > emacs-112125 > emacs-112416 > site-lisp You can still have separate directories like that, unless I'm missing something. The directory structure below emacs-NNNNNN directories will be different, but that's all. > This particular arrangement was suggested, to my mind anyway, by > the existence of the "%emacs_dir%/../site-lisp" entry in load-path. Did you really have files in "%emacs_dir%/../site-lisp"? If you did, you'd probably be the first one I know about who did. Most people don't even know that directory is looked in. If you do have files in this directory, you'll have to copy them into each new tree, if you really want the threes to be separate, not under a single root. But you'll probably need that anyway, because Lisp files had better be compiled by the Emacs version that runs them. > I don't say it's impossible to do the same thing any more, just that > it no longer works out of the box as it used to What exactly doesn't work? Uninstalling by removing a single tree? Or something else? If that's uninstalling, and you don't want or cannot "make uninstall", it should be easy to create a simple script that, given a root directory and a version, will delete the subdirectories that belong to that version only. There aren't too many directories to delete, basically libexec/emacs/VERSION and share/emacs/VERSION. That, and the emacs-VERSION*.exe executables in bin/. Did I miss something? > If, as you say, it's a design decision, then that's fine. I disagree > but I don't object. The new structure has advantages which I described in that mail in March. ^ permalink raw reply [flat|nested] 39+ messages in thread
* bug#14513: 24.3.50; Site load-path pieces differ in MSYS build 2013-05-30 18:20 ` Eli Zaretskii @ 2013-05-30 19:02 ` Achim Gratz 2013-05-30 19:16 ` Eli Zaretskii 2013-05-30 19:06 ` Stefan Monnier ` (2 subsequent siblings) 3 siblings, 1 reply; 39+ messages in thread From: Achim Gratz @ 2013-05-30 19:02 UTC (permalink / raw) To: 14513 Eli Zaretskii writes: > This is all still true, except that some of the directories are not > immediately below the root of the installation tree, but somewhat > deeper. E.g., what was previously in ROOT/lisp is now in > ROOT/share/emacs/VERSION/lisp. Why is that difference important? It is not, the OP's talking about the missing "../site-lisp" part. > Did you really have files in "%emacs_dir%/../site-lisp"? If you did, > you'd probably be the first one I know about who did. Most people > don't even know that directory is looked in. FWIW, I use a directory structure which relies on a ../site-lisp to be accessible by multiple Emacs versions installed in parallel, just like on UN*Xy boxes. > If you do have files in this directory, you'll have to copy them into > each new tree, if you really want the threes to be separate, not under > a single root. But you'll probably need that anyway, because Lisp > files had better be compiled by the Emacs version that runs them. When was that change announced? It used to be sufficient to compile them with the oldest Emacs version (or not at all). Regards, Achim. -- +<[Q+ Matrix-12 WAVE#46+305 Neuron microQkb Andromeda XTk Blofeld]>+ SD adaptation for Waldorf Blofeld V1.15B11: http://Synth.Stromeko.net/Downloads.html#WaldorfSDada ^ permalink raw reply [flat|nested] 39+ messages in thread
* bug#14513: 24.3.50; Site load-path pieces differ in MSYS build 2013-05-30 19:02 ` Achim Gratz @ 2013-05-30 19:16 ` Eli Zaretskii 2013-05-30 19:57 ` Achim Gratz 0 siblings, 1 reply; 39+ messages in thread From: Eli Zaretskii @ 2013-05-30 19:16 UTC (permalink / raw) To: Achim Gratz; +Cc: 14513 > From: Achim Gratz <Stromeko@nexgo.de> > Date: Thu, 30 May 2013 21:02:54 +0200 > > Eli Zaretskii writes: > > This is all still true, except that some of the directories are not > > immediately below the root of the installation tree, but somewhat > > deeper. E.g., what was previously in ROOT/lisp is now in > > ROOT/share/emacs/VERSION/lisp. Why is that difference important? > > It is not, the OP's talking about the missing "../site-lisp" part. It's not missing, it's in ROOT/share/emacs/site-lisp now. > > Did you really have files in "%emacs_dir%/../site-lisp"? If you did, > > you'd probably be the first one I know about who did. Most people > > don't even know that directory is looked in. > > FWIW, I use a directory structure which relies on a ../site-lisp to be > accessible by multiple Emacs versions installed in parallel, just like > on UN*Xy boxes. Unix boxes use exactly the directory structure that is now encoded in epaths.h. So we got closer to Unix, not farther. > > If you do have files in this directory, you'll have to copy them into > > each new tree, if you really want the threes to be separate, not under > > a single root. But you'll probably need that anyway, because Lisp > > files had better be compiled by the Emacs version that runs them. > > When was that change announced? It used to be sufficient to compile > them with the oldest Emacs version (or not at all). I said "probably" and "had better". My gray hair taught me not to trust old *.elc files, especially since site-lisp is home to all kind of 3rd party packages that aren't as disciplined as the bundled ones. YMMV. ^ permalink raw reply [flat|nested] 39+ messages in thread
* bug#14513: 24.3.50; Site load-path pieces differ in MSYS build 2013-05-30 19:16 ` Eli Zaretskii @ 2013-05-30 19:57 ` Achim Gratz 2013-05-30 20:39 ` Eli Zaretskii 0 siblings, 1 reply; 39+ messages in thread From: Achim Gratz @ 2013-05-30 19:57 UTC (permalink / raw) To: 14513 Eli Zaretskii writes: >> FWIW, I use a directory structure which relies on a ../site-lisp to be >> accessible by multiple Emacs versions installed in parallel, just like >> on UN*Xy boxes. > > Unix boxes use exactly the directory structure that is now encoded in > epaths.h. So we got closer to Unix, not farther. On UN*X the installation of several versions is usually done into the same $prefix, but you don't normally do that on Windows where each install is usually unpacked into its own tree. This means that when it's time to remove an old version tree you'd need to remember that site-lisp must be rescued or you need to start installing your Windows Emacsen into the same $prefix just like on UN*X. Which is a bit annoying when you want to keep some versions around from before that change or your system administrator can't be convinced to change how the installation is done. Regards, Achim. -- +<[Q+ Matrix-12 WAVE#46+305 Neuron microQkb Andromeda XTk Blofeld]>+ SD adaptations for Waldorf Q V3.00R3 and Q+ V3.54R2: http://Synth.Stromeko.net/Downloads.html#WaldorfSDada ^ permalink raw reply [flat|nested] 39+ messages in thread
* bug#14513: 24.3.50; Site load-path pieces differ in MSYS build 2013-05-30 19:57 ` Achim Gratz @ 2013-05-30 20:39 ` Eli Zaretskii 2013-05-30 21:21 ` Stefan Monnier 2013-05-31 19:01 ` Achim Gratz 0 siblings, 2 replies; 39+ messages in thread From: Eli Zaretskii @ 2013-05-30 20:39 UTC (permalink / raw) To: Achim Gratz; +Cc: 14513 > From: Achim Gratz <Stromeko@nexgo.de> > Date: Thu, 30 May 2013 21:57:02 +0200 > > Eli Zaretskii writes: > >> FWIW, I use a directory structure which relies on a ../site-lisp to be > >> accessible by multiple Emacs versions installed in parallel, just like > >> on UN*Xy boxes. > > > > Unix boxes use exactly the directory structure that is now encoded in > > epaths.h. So we got closer to Unix, not farther. > > On UN*X the installation of several versions is usually done into the > same $prefix, but you don't normally do that on Windows where each > install is usually unpacked into its own tree. It was, until now. From now on, they will all easily unpack into the same tree, because the top-level directory in the zip file won't be emacs-XX.YY anymore. > This means that when it's time to remove an old version tree you'd > need to remember that site-lisp must be rescued or you need to start > installing your Windows Emacsen into the same $prefix just like on > UN*X. Which is a bit annoying when you want to keep some versions > around from before that change or your system administrator can't be > convinced to change how the installation is done. Well, then just don't do that. Don't unpack each version into a separate directory. That's what this change was all about. ^ permalink raw reply [flat|nested] 39+ messages in thread
* bug#14513: 24.3.50; Site load-path pieces differ in MSYS build 2013-05-30 20:39 ` Eli Zaretskii @ 2013-05-30 21:21 ` Stefan Monnier 2013-05-31 19:01 ` Achim Gratz 1 sibling, 0 replies; 39+ messages in thread From: Stefan Monnier @ 2013-05-30 21:21 UTC (permalink / raw) To: Eli Zaretskii; +Cc: Achim Gratz, 14513 > Well, then just don't do that. Don't unpack each version into a > separate directory. That's what this change was all about. There are good reasons to use a different root for each version. Mostly, that lets you uninstall a given version with a simple "delete directory". On Unix systems, this is usually solved with some kind of package manager, but if/when I install packages by hand, I usually install them into a separate directory (via "--prefix=/foo/bar/<package>-<version>"), and then add a few symlinks from a central location as needed. Stefan ^ permalink raw reply [flat|nested] 39+ messages in thread
* bug#14513: 24.3.50; Site load-path pieces differ in MSYS build 2013-05-30 20:39 ` Eli Zaretskii 2013-05-30 21:21 ` Stefan Monnier @ 2013-05-31 19:01 ` Achim Gratz 2013-05-31 19:24 ` Eli Zaretskii 1 sibling, 1 reply; 39+ messages in thread From: Achim Gratz @ 2013-05-31 19:01 UTC (permalink / raw) To: 14513 Eli Zaretskii writes: > Well, then just don't do that. Don't unpack each version into a > separate directory. That's what this change was all about. I have no dogs in this race. On the two Windows systems that I care about I have full administrative priviledges and can install (and re-install) things exactly the way I want them. I'll reiterate that (just as on UN*X) many users are at the mercy of whoever administrates their system and such changes often take a long time to trickle through to these people (they may not understand what Emacs is, much less care about site-lisp). If this is at least documented clearly (not just that this change is made, but _how_ to install things differently now) then some churn can perhaps be avoided by having something to point to. Regards, Achim. -- +<[Q+ Matrix-12 WAVE#46+305 Neuron microQkb Andromeda XTk Blofeld]>+ SD adaptation for Waldorf rackAttack V1.04R1: http://Synth.Stromeko.net/Downloads.html#WaldorfSDada ^ permalink raw reply [flat|nested] 39+ messages in thread
* bug#14513: 24.3.50; Site load-path pieces differ in MSYS build 2013-05-31 19:01 ` Achim Gratz @ 2013-05-31 19:24 ` Eli Zaretskii 0 siblings, 0 replies; 39+ messages in thread From: Eli Zaretskii @ 2013-05-31 19:24 UTC (permalink / raw) To: Achim Gratz; +Cc: 14513 > From: Achim Gratz <Stromeko@nexgo.de> > Date: Fri, 31 May 2013 21:01:32 +0200 > > If this is at least documented clearly I added a description of the new tree to etc/NEWS. > (not just that this change is made, but _how_ to install things > differently now) Not sure what this means. Please take a look at the text I wrote, and if you have further suggestions, please speak up. ^ permalink raw reply [flat|nested] 39+ messages in thread
* bug#14513: 24.3.50; Site load-path pieces differ in MSYS build 2013-05-30 18:20 ` Eli Zaretskii 2013-05-30 19:02 ` Achim Gratz @ 2013-05-30 19:06 ` Stefan Monnier 2013-05-30 19:18 ` Eli Zaretskii 2013-05-30 19:20 ` Richard Copley [not found] ` <CAPM58ojwzkw8kxKc8P4G0mdsJgmYmo-ZxSbcN1F2J+QVyFaHMw@mail.gmail.com> 3 siblings, 1 reply; 39+ messages in thread From: Stefan Monnier @ 2013-05-30 19:06 UTC (permalink / raw) To: Eli Zaretskii; +Cc: Richard Copley, 14513 > This is all still true, except that some of the directories are not > immediately below the root of the installation tree, but somewhat > deeper. E.g., what was previously in ROOT/lisp is now in > ROOT/share/emacs/VERSION/lisp. Why is that difference important? He's not complaining about that. He's annoyed about having removed %emacs_dir%/../site-lisp from the load-path. >> c:\>dir /B c:\emacs >> emacs-111818 >> emacs-112125 >> emacs-112416 >> site-lisp > You can still have separate directories like that, unless I'm missing > something. Except that the site-lisp file now won't be used any more unless you ask for it manually in your .emacs. > Did you really have files in "%emacs_dir%/../site-lisp"? Apparently he did, yes. > If you do have files in this directory, you'll have to copy them into > each new tree, if you really want the threes to be separate, not under > a single root. No: he specifically wants to share all the external packages under a single site-lisp. > But you'll probably need that anyway, because Lisp > files had better be compiled by the Emacs version that runs them. No, they work just fine as long as the compiler was older than the runner. Stefan ^ permalink raw reply [flat|nested] 39+ messages in thread
* bug#14513: 24.3.50; Site load-path pieces differ in MSYS build 2013-05-30 19:06 ` Stefan Monnier @ 2013-05-30 19:18 ` Eli Zaretskii 0 siblings, 0 replies; 39+ messages in thread From: Eli Zaretskii @ 2013-05-30 19:18 UTC (permalink / raw) To: Stefan Monnier; +Cc: rcopley, 14513 > From: Stefan Monnier <monnier@iro.umontreal.ca> > Cc: Richard Copley <rcopley@gmail.com>, 14513@debbugs.gnu.org > Date: Thu, 30 May 2013 15:06:26 -0400 > > He's not complaining about that. He's annoyed about having removed > %emacs_dir%/../site-lisp from the load-path. > > >> c:\>dir /B c:\emacs > >> emacs-111818 > >> emacs-112125 > >> emacs-112416 > >> site-lisp > > > You can still have separate directories like that, unless I'm missing > > something. > > Except that the site-lisp file now won't be used any more unless you ask > for it manually in your .emacs. No, he should just move the contents into ROOT/share/emacs/site-lisp. > > But you'll probably need that anyway, because Lisp > > files had better be compiled by the Emacs version that runs them. > > No, they work just fine as long as the compiler was older than the runner. In theory, yes. ^ permalink raw reply [flat|nested] 39+ messages in thread
* bug#14513: 24.3.50; Site load-path pieces differ in MSYS build 2013-05-30 18:20 ` Eli Zaretskii 2013-05-30 19:02 ` Achim Gratz 2013-05-30 19:06 ` Stefan Monnier @ 2013-05-30 19:20 ` Richard Copley [not found] ` <CAPM58ojwzkw8kxKc8P4G0mdsJgmYmo-ZxSbcN1F2J+QVyFaHMw@mail.gmail.com> 3 siblings, 0 replies; 39+ messages in thread From: Richard Copley @ 2013-05-30 19:20 UTC (permalink / raw) To: Eli Zaretskii; +Cc: 14513 [-- Attachment #1: Type: text/plain, Size: 3769 bytes --] On 30 May 2013 19:20, Eli Zaretskii <eliz@gnu.org> wrote: > > Date: Thu, 30 May 2013 18:56:10 +0100 > > From: Richard Copley <rcopley@gmail.com> > > Cc: 14513@debbugs.gnu.org > > > > What used sometimes to be called NT Emacs is (or was) a portable app. > > When you've unpacked (or built) it, everything is inside "bin/..". > > Call that the "application directory". You install by moving and > > renaming the application directory, and uninstall by deleting. > > Ideally, you never modify any file inside the application directory. > > Putting an Emacs bin directory on the system-wide path is optional. > > The user can be trusted to work out how to invoke the right executable. > > Emacs finds the right auxiliary executables and DOC file just fine, > > even with the "-Q" command-line argument. > > This is all still true, Oh no it isn't. except that some of the directories are not > immediately below the root of the installation tree, but somewhat > deeper. E.g., what was previously in ROOT/lisp is now in > ROOT/share/emacs/VERSION/lisp. Why is that difference important? > That difference is not important. > I had a bunch of these application directories, my own builds of the > > trunk, at different revisions. Like this (but with more Emacs): > > > > c:\>dir /B c:\emacs > > emacs-111818 > > emacs-112125 > > emacs-112416 > > site-lisp > > You can still have separate directories like that, unless I'm missing > something. The directory structure below emacs-NNNNNN directories > will be different, but that's all. > Also the site-lisp directory will not be on the load-path. > > This particular arrangement was suggested, to my mind anyway, by > > the existence of the "%emacs_dir%/../site-lisp" entry in load-path. > > Did you really have files in "%emacs_dir%/../site-lisp"? Yes, that site-lisp directory up there is where my site lisp files are, really. > If you did, > you'd probably be the first one I know about who did. Most people > don't even know that directory is looked in. > If you say so. I'm the freak who looked at load-path. :P If you do have files in this directory, you'll have to copy them into > each new tree, if you really want the threes to be separate, not under > a single root. That seems like a disadvantage. > But you'll probably need that anyway, because Lisp > files had better be compiled by the Emacs version that runs them. > That's a fair point. I've never had a problem but it would be easy enough to recompile as necessary. I'm not actively using more than one build. > I don't say it's impossible to do the same thing any more, just that > > it no longer works out of the box as it used to > > What exactly doesn't work? Uninstalling by removing a single tree? > Or something else? > The site-lisp directory is not searched. > If that's uninstalling, and you don't want or cannot "make uninstall". It's funny how differently we work! I can't make uninstall because I kept the installation directory and discarded the build directory. > it should be easy to create a simple script that, given a root > directory and a version, will delete the subdirectories that belong to > that version only. There aren't too many directories to delete, > basically libexec/emacs/VERSION and share/emacs/VERSION. That, and > the emacs-VERSION*.exe executables in bin/. > > Did I miss something? > With the uninstallation? No idea. It's ok, there's no way I'll be doing that. > > If, as you say, it's a design decision, then that's fine. I disagree > > but I don't object. > > The new structure has advantages which I described in that mail in > March. > (1) You're the first one I know about who thinks that's important. (2) is wrong. (3) I don't follow. Other platforms, really? [-- Attachment #2: Type: text/html, Size: 6631 bytes --] ^ permalink raw reply [flat|nested] 39+ messages in thread
[parent not found: <CAPM58ojwzkw8kxKc8P4G0mdsJgmYmo-ZxSbcN1F2J+QVyFaHMw@mail.gmail.com>]
* bug#14513: 24.3.50; Site load-path pieces differ in MSYS build [not found] ` <CAPM58ojwzkw8kxKc8P4G0mdsJgmYmo-ZxSbcN1F2J+QVyFaHMw@mail.gmail.com> @ 2013-05-30 19:29 ` Eli Zaretskii 2013-05-30 20:00 ` Stefan Monnier [not found] ` <83ip20469l.fsf@gnu.org> 1 sibling, 1 reply; 39+ messages in thread From: Eli Zaretskii @ 2013-05-30 19:29 UTC (permalink / raw) To: Richard Copley; +Cc: 14513 > Date: Thu, 30 May 2013 20:14:35 +0100 > From: Richard Copley <rcopley@gmail.com> > > > > c:\>dir /B c:\emacs > > > emacs-111818 > > > emacs-112125 > > > emacs-112416 > > > site-lisp > > > > You can still have separate directories like that, unless I'm missing > > something. The directory structure below emacs-NNNNNN directories > > will be different, but that's all. > > > > Also the site-lisp directory will not be on the load-path. Your site-lisp won't, but the one in ROOT/share/emacs will. > I'm not actively using more than one build. Then why do you need separate trees? That's the only reason why you need the site-lisp outside of the Emacs tree. Use the Posix-standard structure and one root for all the Emacs installations, and the problem is gone, because you have the common site-lisp directory in ROOT/share/emacs. > > it should be easy to create a simple script that, given a root > > directory and a version, will delete the subdirectories that belong to > > that version only. There aren't too many directories to delete, > > basically libexec/emacs/VERSION and share/emacs/VERSION. That, and > > the emacs-VERSION*.exe executables in bin/. > > > > Did I miss something? > > > > With the uninstallation? No idea. It's ok, there's no way I'll be doing > that. You mean, you will never uninstall? Then why do you keep the versions separate? > > The new structure has advantages which I described in that mail in > > March. > > (1) You're the first one I know about who thinks that's important. Well, maybe I'm the only one who works on so many platforms. > (2) is wrong. It's not wrong as long as you keep all the installations under the same root, like /usr/local on Unix. > (3) I don't follow. Other platforms, really? Yes. Imagine that your --prefix is on a networked volume that can be accessed from Windows and Unix systems alike. Then only the architecture-dependent files (binaries) need to be separate; everything under %emacs_dir%/share/emacs/ can be installed only once and used by Emacs from any OS. ^ permalink raw reply [flat|nested] 39+ messages in thread
* bug#14513: 24.3.50; Site load-path pieces differ in MSYS build 2013-05-30 19:29 ` Eli Zaretskii @ 2013-05-30 20:00 ` Stefan Monnier 2013-05-30 20:42 ` Eli Zaretskii 0 siblings, 1 reply; 39+ messages in thread From: Stefan Monnier @ 2013-05-30 20:00 UTC (permalink / raw) To: Eli Zaretskii; +Cc: Richard Copley, 14513 Regardless of the details, I think for simple reasons of backward compatibility, I think Richard's request to re-add %emacs_dir%/../site-lisp makes sense (and such a site-lisp external to the ROOT probably also makes sense for the NS build). How hard would it be to add it? Stefan ^ permalink raw reply [flat|nested] 39+ messages in thread
* bug#14513: 24.3.50; Site load-path pieces differ in MSYS build 2013-05-30 20:00 ` Stefan Monnier @ 2013-05-30 20:42 ` Eli Zaretskii 2013-05-30 21:43 ` Stefan Monnier 0 siblings, 1 reply; 39+ messages in thread From: Eli Zaretskii @ 2013-05-30 20:42 UTC (permalink / raw) To: Stefan Monnier; +Cc: rcopley, 14513 > From: Stefan Monnier <monnier@iro.umontreal.ca> > Cc: Richard Copley <rcopley@gmail.com>, 14513@debbugs.gnu.org > Date: Thu, 30 May 2013 16:00:07 -0400 > > Regardless of the details, I think for simple reasons of backward > compatibility, I think Richard's request to re-add > %emacs_dir%/../site-lisp makes sense (and such a site-lisp external to > the ROOT probably also makes sense for the NS build). > > How hard would it be to add it? Hard has nothing to do with this. It will be against the principle of having the tree structures on Unix and Windows the same. Adapting to this change is very simple. So I see no reason to make such a change. ^ permalink raw reply [flat|nested] 39+ messages in thread
* bug#14513: 24.3.50; Site load-path pieces differ in MSYS build 2013-05-30 20:42 ` Eli Zaretskii @ 2013-05-30 21:43 ` Stefan Monnier 2013-05-31 6:20 ` Eli Zaretskii 0 siblings, 1 reply; 39+ messages in thread From: Stefan Monnier @ 2013-05-30 21:43 UTC (permalink / raw) To: Eli Zaretskii; +Cc: rcopley, 14513 > Hard has nothing to do with this. It will be against the principle of > having the tree structures on Unix and Windows the same. I wouldn't be opposed to making such a change on the Unix side as well, although admittedly $prefix/../site-list doesn't sound like a good idea when $prefix is /usr/local or /usr. > Adapting to this change is very simple. We should advertise it (I presume you mean the use of --enable-locallisppath=PATH) at least as loudly as the "default $prefix is probably not good for you". Stefan ^ permalink raw reply [flat|nested] 39+ messages in thread
* bug#14513: 24.3.50; Site load-path pieces differ in MSYS build 2013-05-30 21:43 ` Stefan Monnier @ 2013-05-31 6:20 ` Eli Zaretskii 2013-05-31 9:52 ` Richard Copley 2013-06-04 23:55 ` Juanma Barranquero 0 siblings, 2 replies; 39+ messages in thread From: Eli Zaretskii @ 2013-05-31 6:20 UTC (permalink / raw) To: Stefan Monnier; +Cc: rcopley, 14513 > From: Stefan Monnier <monnier@iro.umontreal.ca> > Cc: rcopley@gmail.com, 14513@debbugs.gnu.org > Date: Thu, 30 May 2013 17:43:02 -0400 > > > Hard has nothing to do with this. It will be against the principle of > > having the tree structures on Unix and Windows the same. > > I wouldn't be opposed to making such a change on the Unix side as well, Then I will have no objections. > although admittedly $prefix/../site-list doesn't sound like a good idea > when $prefix is /usr/local or /usr. Indeed. > > Adapting to this change is very simple. > > We should advertise it (I presume you mean the use > of --enable-locallisppath=PATH) at least as loudly as the "default > $prefix is probably not good for you". I'd prefer to poll users whether they use that ../site-lisp directory, before adding this to the instructions. I suspect very few do, which would mean we make the instructions more complex than they already are. ^ permalink raw reply [flat|nested] 39+ messages in thread
* bug#14513: 24.3.50; Site load-path pieces differ in MSYS build 2013-05-31 6:20 ` Eli Zaretskii @ 2013-05-31 9:52 ` Richard Copley 2013-05-31 11:35 ` Eli Zaretskii 2013-06-04 23:55 ` Juanma Barranquero 1 sibling, 1 reply; 39+ messages in thread From: Richard Copley @ 2013-05-31 9:52 UTC (permalink / raw) To: Eli Zaretskii; +Cc: 14513 [-- Attachment #1: Type: text/plain, Size: 961 bytes --] On 31 May 2013 07:20, Eli Zaretskii <eliz@gnu.org> wrote: > > From: Stefan Monnier <monnier@iro.umontreal.ca> > > Adapting to this change is very simple. > > > > We should advertise it (I presume you mean the use > > of --enable-locallisppath=PATH) at least as loudly as the "default > > $prefix is probably not good for you". > > Just a reminder that --enable-locallisppath=PATH seems not to work (I mentioned that in my original post). Also I'm not sure how you would use it to add "ROOT/../site-lisp", which is what you would need for backward compatibility. > > I'd prefer to poll users whether they use that ../site-lisp directory, > before adding this to the instructions. I suspect very few do, which > would mean we make the instructions more complex than they already > are. > > FWIW I asked my two Emacs-using co-workers. One uses ROOT\..\site-lisp (but doesn't have strong feelings either way), the other has no user- or site- lisp files at all. [-- Attachment #2: Type: text/html, Size: 1776 bytes --] ^ permalink raw reply [flat|nested] 39+ messages in thread
* bug#14513: 24.3.50; Site load-path pieces differ in MSYS build 2013-05-31 9:52 ` Richard Copley @ 2013-05-31 11:35 ` Eli Zaretskii 2013-05-31 12:55 ` Richard Copley 0 siblings, 1 reply; 39+ messages in thread From: Eli Zaretskii @ 2013-05-31 11:35 UTC (permalink / raw) To: Richard Copley; +Cc: 14513 > Date: Fri, 31 May 2013 10:52:11 +0100 > From: Richard Copley <rcopley@gmail.com> > Cc: Stefan Monnier <monnier@iro.umontreal.ca>, 14513@debbugs.gnu.org > > > > We should advertise it (I presume you mean the use > > > of --enable-locallisppath=PATH) at least as loudly as the "default > > > $prefix is probably not good for you". > > > > > Just a reminder that --enable-locallisppath=PATH seems not to work > (I mentioned that in my original post). Patches are welcome to support it. You need to add something to editing of epaths.nt in the epaths-force-w32 rule. > Also I'm not sure how you would use it to add "ROOT/../site-lisp", > which is what you would need for backward compatibility. ROOT is %emacs_dir%, or maybe I don't understand what you are saying. ^ permalink raw reply [flat|nested] 39+ messages in thread
* bug#14513: 24.3.50; Site load-path pieces differ in MSYS build 2013-05-31 11:35 ` Eli Zaretskii @ 2013-05-31 12:55 ` Richard Copley 2013-06-01 16:04 ` Richard Copley 0 siblings, 1 reply; 39+ messages in thread From: Richard Copley @ 2013-05-31 12:55 UTC (permalink / raw) To: Eli Zaretskii; +Cc: 14513 [-- Attachment #1: Type: text/plain, Size: 1001 bytes --] On 31 May 2013 12:35, Eli Zaretskii <eliz@gnu.org> wrote: > > Date: Fri, 31 May 2013 10:52:11 +0100 > > From: Richard Copley <rcopley@gmail.com> > > Cc: Stefan Monnier <monnier@iro.umontreal.ca>, 14513@debbugs.gnu.org > > > > > > We should advertise it (I presume you mean the use > > > > of --enable-locallisppath=PATH) at least as loudly as the "default > > > > $prefix is probably not good for you". > > > > > > > > Just a reminder that --enable-locallisppath=PATH seems not to work > > (I mentioned that in my original post). > > Patches are welcome to support it. You need to add something to > editing of epaths.nt in the epaths-force-w32 rule. > I will have a go. > > Also I'm not sure how you would use it to add "ROOT/../site-lisp", > > which is what you would need for backward compatibility. > > ROOT is %emacs_dir%, or maybe I don't understand what you are saying. > So you would use "--enable-locallisppath=%emacs_dir%/../site-lisp". Okay, I suppose that is fairly obvious. Thanks. [-- Attachment #2: Type: text/html, Size: 1888 bytes --] ^ permalink raw reply [flat|nested] 39+ messages in thread
* bug#14513: 24.3.50; Site load-path pieces differ in MSYS build 2013-05-31 12:55 ` Richard Copley @ 2013-06-01 16:04 ` Richard Copley 2013-06-01 16:38 ` Eli Zaretskii 0 siblings, 1 reply; 39+ messages in thread From: Richard Copley @ 2013-06-01 16:04 UTC (permalink / raw) To: Eli Zaretskii; +Cc: 14513 [-- Attachment #1.1: Type: text/plain, Size: 1653 bytes --] On 31 May 2013 13:55, Richard Copley <rcopley@gmail.com> wrote: > On 31 May 2013 12:35, Eli Zaretskii <eliz@gnu.org> wrote: > > > Date: Fri, 31 May 2013 10:52:11 +0100 > > > From: Richard Copley <rcopley@gmail.com> > > > Cc: Stefan Monnier <monnier@iro.umontreal.ca>, 14513@debbugs.gnu.org > > > > > > > > We should advertise it (I presume you mean the use > > > > > of --enable-locallisppath=PATH) at least as loudly as the "default > > > > > $prefix is probably not good for you". > > > > > > > > > > > Just a reminder that --enable-locallisppath=PATH seems not to work > > > (I mentioned that in my original post). > > Patches are welcome to support it. You need to add something to > > editing of epaths.nt in the epaths-force-w32 rule. > I will have a go. See attached. Here is a brief description: Support the --enable-locallisppath argument on Windows, by making use of the value of ${locallisppath} supplied by `configure'. Also correct the description of ${locallisppath} in epaths.in and epaths.nt. I don't know about Changelogs and stuff. Is there any chance I can leave all that up to the real developers please? Tested with kit as in INSTALL.MSYS, including Make 3.82.90, and gives the expected results in epaths.h: msysconfig.sh => #define PATH_SITELOADSEARCH "%emacs_dir%/share/emacs/24.3.50/site-lisp;%emacs_dir%/share/emacs/site-lisp" msysconfig.sh "--prefix=/c/Program Files (x86)/GNU Emacs/emacs-112416" => #define PATH_SITELOADSEARCH "%emacs_dir%/share/emacs/24.3.50/site-lisp;%emacs_dir%/share/emacs/site-lisp" msysconfig.sh --locallisppath=%emacs_dir%/../site-lisp => #define PATH_SITELOADSEARCH "%emacs_dir%/../site-lisp" [-- Attachment #1.2: Type: text/html, Size: 2360 bytes --] [-- Attachment #2: msys-locallisppath.patch --] [-- Type: application/octet-stream, Size: 3116 bytes --] === modified file 'Makefile.in' --- Makefile.in 2013-05-16 09:58:56 +0000 +++ Makefile.in 2013-06-01 15:33:44 +0000 @@ -321,11 +321,25 @@ # Convert MSYS-style /x/foo file name into x:/foo that Windows can grok. msys_to_w32=sed -e 's,^/\([A-Za-z]\)/,\1:/,' +# Fix up MSYS directory search path for Windows. Remove empty components, +# convert each component as by msys_to_w32 above, and change the separator. +# Replace ${prefix} with %emacs_dir% (env var expanded by Emacs at init time). +# This is so we can make use of the value of ${locallisppath} supplied by +# configure, to support the --enable-locallisppath argument. +msys_sed_sh_escape=sed -e 's/[]\;$$*.^[]/\\\\&/g' +msys_lisppath_to_w32=sed -e 's/:\+/:/g' -e 's/^://g' -e 's/:$$//g' \ + -e 's;\(^\|:\)'"$${prefixpattern}"'\([:/]\|$$\);\1%emacs_dir%\2;g' \ + -e 's/:/\\\\;/g' \ + -e 's,\(^\|;\)/\([A-Za-z]\)/,\1\2:/,g' + # The w32 build needs a slightly different editing, and it uses # nt/epaths.nt as the template. epaths-force-w32: FRC @(w32srcdir=`echo "${srcdir}" | ${msys_to_w32}` ; \ + prefixpattern=`echo '${prefix}' | ${msys_sed_sh_escape}` ; \ + locallisppath=`echo '${locallisppath}' | ${msys_lisppath_to_w32}` ; \ sed < ${srcdir}/nt/epaths.nt > epaths.h.$$$$ \ + -e 's;\(#.*PATH_SITELOADSEARCH\).*$$;\1 "'"$${locallisppath}"'";' \ -e '/^.*#/s/@VER@/${version}/g' \ -e '/^.*#/s/@CFG@/${configuration}/g' \ -e "/^.*#/s|@SRC@|$${w32srcdir}|g") && \ === modified file 'nt/epaths.nt' --- nt/epaths.nt 2013-04-06 13:25:17 +0000 +++ nt/epaths.nt 2013-06-01 15:27:46 +0000 @@ -41,10 +41,10 @@ #define PATH_LOADSEARCH "%emacs_dir%/share/emacs/@VER@/lisp;%emacs_dir%/share/emacs/@VER@/leim" /* Like PATH_LOADSEARCH, but contains the non-standard pieces. - These are the site-lisp directories, typically something like + These are the site-lisp directories. Configure sets this to + ${locallisppath}, which typically defaults to something like: <datadir>/emacs/VERSION/site-lisp:<datadir>/emacs/site-lisp - Configure prepends any $locallisppath, as set by the - --enable-locallisppath argument. + but can be overridden by the --enable-locallisppath argument. This is combined with PATH_LOADSEARCH to make the default load-path. If the --no-site-lisp option is used, this piece is excluded. */ === modified file 'src/epaths.in' --- src/epaths.in 2013-01-01 09:11:05 +0000 +++ src/epaths.in 2013-05-31 22:11:31 +0000 @@ -30,10 +30,10 @@ /* Like PATH_LOADSEARCH, but contains the non-standard pieces. - These are the site-lisp directories, typically something like + These are the site-lisp directories. Configure sets this to + ${locallisppath}, which typically defaults to something like: <datadir>/emacs/VERSION/site-lisp:<datadir>/emacs/site-lisp - Configure prepends any $locallisppath, as set by the - --enable-locallisppath argument. + but can be overridden by the --enable-locallisppath argument. This is combined with PATH_LOADSEARCH to make the default load-path. If the --no-site-lisp option is used, this piece is excluded. */ ^ permalink raw reply [flat|nested] 39+ messages in thread
* bug#14513: 24.3.50; Site load-path pieces differ in MSYS build 2013-06-01 16:04 ` Richard Copley @ 2013-06-01 16:38 ` Eli Zaretskii 2013-06-01 17:06 ` Richard Copley 0 siblings, 1 reply; 39+ messages in thread From: Eli Zaretskii @ 2013-06-01 16:38 UTC (permalink / raw) To: Richard Copley; +Cc: 14513 > Date: Sat, 1 Jun 2013 17:04:11 +0100 > From: Richard Copley <rcopley@gmail.com> > Cc: Stefan Monnier <monnier@iro.umontreal.ca>, 14513@debbugs.gnu.org > > See attached. Thanks. > I don't know about Changelogs and stuff. Is there any chance > I can leave all that up to the real developers please? That's OK. > Tested with kit as in INSTALL.MSYS, including Make 3.82.90, > and gives the expected results in epaths.h: > > msysconfig.sh > => #define PATH_SITELOADSEARCH > "%emacs_dir%/share/emacs/24.3.50/site-lisp;%emacs_dir%/share/emacs/site-lisp" > > msysconfig.sh "--prefix=/c/Program Files (x86)/GNU Emacs/emacs-112416" > => #define PATH_SITELOADSEARCH > "%emacs_dir%/share/emacs/24.3.50/site-lisp;%emacs_dir%/share/emacs/site-lisp" > > msysconfig.sh --locallisppath=%emacs_dir%/../site-lisp > => #define PATH_SITELOADSEARCH "%emacs_dir%/../site-lisp" Does it support Windows style paths and the ';' separator, as in --locallisppath='%emacs_dir%/../site-lisp;d:/wherever/site-lisp' ? MSYS supports both Windows style file names and Windows style in --prefix, so I'd like to support both styles in --locallisppath. ^ permalink raw reply [flat|nested] 39+ messages in thread
* bug#14513: 24.3.50; Site load-path pieces differ in MSYS build 2013-06-01 16:38 ` Eli Zaretskii @ 2013-06-01 17:06 ` Richard Copley [not found] ` <CAPM58og6ySbmR28vQH+m7dp-zYgVwrrYqthO6_ZfGodV9Si23w@mail.gmail.com> 0 siblings, 1 reply; 39+ messages in thread From: Richard Copley @ 2013-06-01 17:06 UTC (permalink / raw) To: Eli Zaretskii; +Cc: 14513 [-- Attachment #1: Type: text/plain, Size: 417 bytes --] On 1 June 2013 17:38, Eli Zaretskii <eliz@gnu.org> wrote: > Does it support Windows style paths and the ';' separator, as in > > --locallisppath='%emacs_dir%/../site-lisp;d:/wherever/site-lisp' > > ? MSYS supports both Windows style file names and Windows style in > --prefix, so I'd like to support both styles in --locallisppath. > It does not, I'm afraid. I'll try and fix that, and send a replacement patch. [-- Attachment #2: Type: text/html, Size: 779 bytes --] ^ permalink raw reply [flat|nested] 39+ messages in thread
[parent not found: <CAPM58og6ySbmR28vQH+m7dp-zYgVwrrYqthO6_ZfGodV9Si23w@mail.gmail.com>]
[parent not found: <8361xx20lb.fsf@gnu.org>]
* bug#14513: 24.3.50; Site load-path pieces differ in MSYS build [not found] ` <8361xx20lb.fsf@gnu.org> @ 2013-06-01 18:00 ` Richard Copley 2013-06-02 11:33 ` Richard Copley 0 siblings, 1 reply; 39+ messages in thread From: Richard Copley @ 2013-06-01 18:00 UTC (permalink / raw) To: Eli Zaretskii, Stefan Monnier, 14513 [-- Attachment #1: Type: text/plain, Size: 2103 bytes --] [Sorry, I dropped the list from the CC again.] On 1 June 2013 18:29, Eli Zaretskii <eliz@gnu.org> wrote: > > Date: Sat, 1 Jun 2013 18:25:14 +0100 > > From: Richard Copley <rcopley@gmail.com> > > > > No I won't, sorry. I'd forgotten: that's not possible without resorting > to > > heuristics, because ${locallisppath} is potentially a ":"-separated path. > > Is it possible to support only the Windows style? That's the least we > can do, because the result _must_ be a Windows-style path, or else it > won't work, since Emacs is a native Windows executable. > That might be more logical than supporting only MSYS style. But note the result is a Windows-style path with the above patch, e.g. "--enable-locallisppath=/c/emacs/site-lisp" gives #define PATH_SITELOADSEARCH "c:/emacs/site-lisp" On 1 June 2013 18:38, Eli Zaretskii <eliz@gnu.org> wrote: > > Date: Sat, 1 Jun 2013 18:25:14 +0100 > > From: Richard Copley <rcopley@gmail.com> > > > > > It does not, I'm afraid. I'll try and fix that, and send a replacement > > > patch. > > > > > > > No I won't, sorry. I'd forgotten: that's not possible without resorting > to > > heuristics, because ${locallisppath} is potentially a ":"-separated path. > > Btw, you need not resort to heuristics even if you don't know whether > ${locallisppath} is MSYS style or Windows style. You can rely on the > fact that MSYS transforms the path when it calls a native Windows > application. Here's an example, using cpp.exe, which is an > application you can rely on being available and on being a MinGW > executable: > > $ cpp -dM -Dfoo=/d/usr/bin:/c/windows < /dev/null | fgrep foo > #define foo d:\usr\bin;c:\windows > $ cpp -dM -Dfoo='d:/usr/bin;c:/windows' < /dev/null | fgrep foo > #define foo d:/usr/bin;c:/windows > > (You'd need to convert backslashes to forward slashes in the first > example, but that's easy, right?) > > The only requirement is that the argument to --locallisppath uses one > of the two styles consistently. But that is a reasonable requirement, > I think. > Interesting, thanks. I might have another patch later. [-- Attachment #2: Type: text/html, Size: 3311 bytes --] ^ permalink raw reply [flat|nested] 39+ messages in thread
* bug#14513: 24.3.50; Site load-path pieces differ in MSYS build 2013-06-01 18:00 ` Richard Copley @ 2013-06-02 11:33 ` Richard Copley 2013-06-04 18:27 ` Richard Copley 2013-06-07 8:14 ` Eli Zaretskii 0 siblings, 2 replies; 39+ messages in thread From: Richard Copley @ 2013-06-02 11:33 UTC (permalink / raw) To: Eli Zaretskii, Stefan Monnier, 14513 [-- Attachment #1.1: Type: text/plain, Size: 1685 bytes --] On 1 June 2013 17:38, Eli Zaretskii <eliz@gnu.org> wrote: > Does it support Windows style paths and the ';' separator, as in > > --locallisppath='%emacs_dir%/../site-lisp;d:/wherever/site-lisp' > > ? MSYS supports both Windows style file names and Windows style in > --prefix, so I'd like to support both styles in --locallisppath. > > Date: Sat, 1 Jun 2013 18:25:14 +0100 > From: Richard Copley <rcopley@gmail.com> > [...] that's not possible without resorting to > heuristics, because ${locallisppath} is potentially a ":"-separated path. The attached patch supports both styles. The heuristics didn't turn out to be as hairy as I imagined. A few test cases: nt/msysconfig.sh #define PATH_SITELOADSEARCH "%emacs_dir%/share/emacs/24.3.50/site-lisp;%emacs_dir%/share/emacs/site-lisp" nt/msysconfig.sh --prefix c:/emacs/emacs-112809 #define PATH_SITELOADSEARCH "%emacs_dir%/share/emacs/24.3.50/site-lisp;%emacs_dir%/share/emacs/site-lisp" nt/msysconfig.sh --prefix="c:\\Program Files (x86)\\Emacs" #define PATH_SITELOADSEARCH "%emacs_dir%/share/emacs/24.3.50/site-lisp;%emacs_dir%/share/emacs/site-lisp" nt/msysconfig.sh --prefix="c:/Program Files (x86)/Emacs" --enable-locallisppath="%emacs_dir%/../site-lisp;d:/wherever/site-lisp" #define PATH_SITELOADSEARCH "%emacs_dir%/../site-lisp/;d:/wherever/site-lisp" nt/msysconfig.sh --prefix="c:/Program Files (x86)/Emacs" --enable-locallisppath="%emacs_dir%/../site-lisp;/d/wherever/site-lisp" #define PATH_SITELOADSEARCH "%emacs_dir%/../site-lisp/;d:/wherever/site-lisp" nt/msysconfig.sh --prefix="/usr/local" --enable-locallisppath="/usr/local/share/my-site-lisp" #define PATH_SITELOADSEARCH "%emacs_dir%/share/my-site-lisp" [-- Attachment #1.2: Type: text/html, Size: 2368 bytes --] [-- Attachment #2: msys-locallisppath-revised.patch --] [-- Type: application/octet-stream, Size: 3666 bytes --] === modified file 'Makefile.in' --- Makefile.in 2013-05-16 09:58:56 +0000 +++ Makefile.in 2013-06-02 10:31:58 +0000 @@ -318,14 +318,33 @@ -e 's;\(#.*PATH_DOC\).*$$;\1 "${docdir}";') && \ ${srcdir}/build-aux/move-if-change epaths.h.$$$$ src/epaths.h -# Convert MSYS-style /x/foo file name into x:/foo that Windows can grok. -msys_to_w32=sed -e 's,^/\([A-Za-z]\)/,\1:/,' +# Convert MSYS-style /x/foo or x:\foo file name into x:/foo that Windows can grok. +msys_to_w32=sed -e 's,\\\\,/,g' -e 's,^/\([A-Za-z]\)/,\1:/,' + +# Transform directory search path and its components. Original can +# be MSYS or Windows style. Set path separator to ";", directory +# separator to "/" and transform MSYS-style "/c/" to "c:/". +# Remove empty path components and escape semicolons. +msys_lisppath_to_w32=sed -e 's,\\\\,/,g' -e 's,\(^\|[:;]\)\([A-Za-z]\):/,\1/\2/,g' \ + -e 's/:/;/g' -e 's,\(^\|;\)/\([A-Za-z]\)/,\1\2:/,g' \ + -e 's/;\+/;/g' -e 's/^;//' -e 's/;$$//' -e 's/;/\\\\;/g' + +# Replace "${prefix}" with '%emacs_dir%' (expands to install directory at runtime). +msys_prefix_subst=sed -e 's!\(^\|;\)'"$${prefixpattern}"'\([;/]\|$$\)!\1%emacs_dir%\2!g' + +# Quote sed special characters (except backslash and newline) with double backslash. +msys_sed_sh_escape=sed -e 's/[];$$*.^[]/\\\\&/g' # The w32 build needs a slightly different editing, and it uses # nt/epaths.nt as the template. +# Use the value of ${locallisppath} supplied by `configure', +# to support the --enable-locallisppath argument. epaths-force-w32: FRC @(w32srcdir=`echo "${srcdir}" | ${msys_to_w32}` ; \ + prefixpattern=`echo '${prefix}' | ${msys_to_w32} | ${msys_sed_sh_escape}` ; \ + locallisppath=`echo '${locallisppath}' | ${msys_lisppath_to_w32} | ${msys_prefix_subst}` ; \ sed < ${srcdir}/nt/epaths.nt > epaths.h.$$$$ \ + -e 's;\(#.*PATH_SITELOADSEARCH\).*$$;\1 "'"$${locallisppath}"'";' \ -e '/^.*#/s/@VER@/${version}/g' \ -e '/^.*#/s/@CFG@/${configuration}/g' \ -e "/^.*#/s|@SRC@|$${w32srcdir}|g") && \ === modified file 'nt/epaths.nt' --- nt/epaths.nt 2013-04-06 13:25:17 +0000 +++ nt/epaths.nt 2013-06-02 10:31:58 +0000 @@ -41,10 +41,10 @@ #define PATH_LOADSEARCH "%emacs_dir%/share/emacs/@VER@/lisp;%emacs_dir%/share/emacs/@VER@/leim" /* Like PATH_LOADSEARCH, but contains the non-standard pieces. - These are the site-lisp directories, typically something like + These are the site-lisp directories. Configure sets this to + ${locallisppath}, which typically defaults to something like: <datadir>/emacs/VERSION/site-lisp:<datadir>/emacs/site-lisp - Configure prepends any $locallisppath, as set by the - --enable-locallisppath argument. + but can be overridden by the --enable-locallisppath argument. This is combined with PATH_LOADSEARCH to make the default load-path. If the --no-site-lisp option is used, this piece is excluded. */ === modified file 'src/epaths.in' --- src/epaths.in 2013-01-01 09:11:05 +0000 +++ src/epaths.in 2013-06-02 10:31:58 +0000 @@ -30,10 +30,10 @@ /* Like PATH_LOADSEARCH, but contains the non-standard pieces. - These are the site-lisp directories, typically something like + These are the site-lisp directories. Configure sets this to + ${locallisppath}, which typically defaults to something like: <datadir>/emacs/VERSION/site-lisp:<datadir>/emacs/site-lisp - Configure prepends any $locallisppath, as set by the - --enable-locallisppath argument. + but can be overridden by the --enable-locallisppath argument. This is combined with PATH_LOADSEARCH to make the default load-path. If the --no-site-lisp option is used, this piece is excluded. */ ^ permalink raw reply [flat|nested] 39+ messages in thread
* bug#14513: 24.3.50; Site load-path pieces differ in MSYS build 2013-06-02 11:33 ` Richard Copley @ 2013-06-04 18:27 ` Richard Copley 2013-06-04 19:37 ` Eli Zaretskii 2013-06-07 8:14 ` Eli Zaretskii 1 sibling, 1 reply; 39+ messages in thread From: Richard Copley @ 2013-06-04 18:27 UTC (permalink / raw) To: Eli Zaretskii, Stefan Monnier, 14513 [-- Attachment #1.1: Type: text/plain, Size: 651 bytes --] On 2 June 2013 12:33, Richard Copley <rcopley@gmail.com> wrote: > The attached patch supports both styles. The heuristics didn't turn > out to be as hairy as I imagined. > But my patch is not pretty. I'd be glad to attempt to improve it if there are any suggestions. One last time I'll advocate the change I was thinking of initially: re-add the "ROOT/../site-lisp" entry to PATH_SITELOADSEARCH in epaths.nt, as in the attached patch. It would be possible to add a similar entry for Unix-like systems (by modifying locallisppath in configure.ac), but to me that seems a weird thing to do. I have not considered the NS build that Stefan mentioned. [-- Attachment #1.2: Type: text/html, Size: 1082 bytes --] [-- Attachment #2: epaths-nt.patch --] [-- Type: application/octet-stream, Size: 654 bytes --] === modified file 'nt/epaths.nt' --- nt/epaths.nt 2013-04-06 13:25:17 +0000 +++ nt/epaths.nt 2013-06-04 18:19:19 +0000 @@ -48,7 +48,7 @@ This is combined with PATH_LOADSEARCH to make the default load-path. If the --no-site-lisp option is used, this piece is excluded. */ -#define PATH_SITELOADSEARCH "%emacs_dir%/share/emacs/@VER@/site-lisp;%emacs_dir%/share/emacs/site-lisp" +#define PATH_SITELOADSEARCH "%emacs_dir%/share/emacs/@VER@/site-lisp;%emacs_dir%/share/emacs/site-lisp;%emacs_dir%/../site-lisp" /* Like PATH_LOADSEARCH, but used only during the build process when Emacs is dumping. Configure (using "make epaths-force") sets ^ permalink raw reply [flat|nested] 39+ messages in thread
* bug#14513: 24.3.50; Site load-path pieces differ in MSYS build 2013-06-04 18:27 ` Richard Copley @ 2013-06-04 19:37 ` Eli Zaretskii 2013-06-04 20:14 ` Richard Copley 0 siblings, 1 reply; 39+ messages in thread From: Eli Zaretskii @ 2013-06-04 19:37 UTC (permalink / raw) To: Richard Copley; +Cc: 14513 > Date: Tue, 4 Jun 2013 19:27:50 +0100 > From: Richard Copley <rcopley@gmail.com> > > One last time I'll advocate the change I was thinking of initially: re-add > the "ROOT/../site-lisp" entry to PATH_SITELOADSEARCH in epaths.nt, as in > the attached patch. I hear you, but please understand: it's not just addition of a directory to the variable. These directories are tested for existence at startup, and Emacs displays a warning of any of them doesn't exist. So, if the Windows build had a directory that other builds don't, we would need Windows-specific code to ignore this specific directory if it doesn't exist, or make sure it is created -- only on Windows -- at "make install" time. And since this list of directories is constructed in a very convoluted way, paying attention to EMACSLOADPATH in the environment and to whether Emacs is run uninstalled, it is not easy to identify that single directory and ignore it. All this flies in the face of the main reason why I made the MSYS build happen: remove as much Windows specific issues, code, and configury, so that other developers and maintainers could understand how the Windows port is built, and could make changes without fear they break the Windows port too easily. If we don't stick to this attitude, the Windows port is in real danger of falling by the wayside at the slightest change of fortunes. ^ permalink raw reply [flat|nested] 39+ messages in thread
* bug#14513: 24.3.50; Site load-path pieces differ in MSYS build 2013-06-04 19:37 ` Eli Zaretskii @ 2013-06-04 20:14 ` Richard Copley 2013-06-04 20:21 ` Glenn Morris 0 siblings, 1 reply; 39+ messages in thread From: Richard Copley @ 2013-06-04 20:14 UTC (permalink / raw) To: Eli Zaretskii; +Cc: 14513 [-- Attachment #1: Type: text/plain, Size: 1660 bytes --] On 4 June 2013 20:37, Eli Zaretskii <eliz@gnu.org> wrote: > > Date: Tue, 4 Jun 2013 19:27:50 +0100 > > From: Richard Copley <rcopley@gmail.com> > > > > One last time I'll advocate the change I was thinking of initially: > re-add > > the "ROOT/../site-lisp" entry to PATH_SITELOADSEARCH in epaths.nt, as in > > the attached patch. > > I hear you, but please understand: it's not just addition of a > directory to the variable. These directories are tested for existence > at startup, and Emacs displays a warning of any of them doesn't exist. > So, if the Windows build had a directory that other builds don't, we > would need Windows-specific code to ignore this specific directory if > it doesn't exist, or make sure it is created -- only on Windows -- at > "make install" time. And since this list of directories is > constructed in a very convoluted way, paying attention to > EMACSLOADPATH in the environment and to whether Emacs is run > uninstalled, it is not easy to identify that single directory and > ignore it. > > All this flies in the face of the main reason why I made the MSYS > build happen: remove as much Windows specific issues, code, and > configury, so that other developers and maintainers could understand > how the Windows port is built, and could make changes without fear > they break the Windows port too easily. If we don't stick to this > attitude, the Windows port is in real danger of falling by the wayside > at the slightest change of fortunes. > Okay, I can swallow that, thanks for the explanation. Would it be doable and generally useful to take account of an EMACSSITELOADPATH environment variable, on all platforms? [-- Attachment #2: Type: text/html, Size: 2200 bytes --] ^ permalink raw reply [flat|nested] 39+ messages in thread
* bug#14513: 24.3.50; Site load-path pieces differ in MSYS build 2013-06-04 20:14 ` Richard Copley @ 2013-06-04 20:21 ` Glenn Morris 0 siblings, 0 replies; 39+ messages in thread From: Glenn Morris @ 2013-06-04 20:21 UTC (permalink / raw) To: Richard Copley; +Cc: 14513 Richard Copley wrote: > Would it be doable and generally useful to take account of an > EMACSSITELOADPATH environment variable, on all platforms? That is basically (IMO a less good version of) http://debbugs.gnu.org/cgi/bugreport.cgi?bug=12100 which I think is a reasonable request, but not straightforward to implement, owing to the messy way this stuff works; and not a high priority since -L works. ^ permalink raw reply [flat|nested] 39+ messages in thread
* bug#14513: 24.3.50; Site load-path pieces differ in MSYS build 2013-06-02 11:33 ` Richard Copley 2013-06-04 18:27 ` Richard Copley @ 2013-06-07 8:14 ` Eli Zaretskii 2013-06-07 17:48 ` Richard Copley 1 sibling, 1 reply; 39+ messages in thread From: Eli Zaretskii @ 2013-06-07 8:14 UTC (permalink / raw) To: Richard Copley; +Cc: 14513-done > Date: Sun, 2 Jun 2013 12:33:08 +0100 > From: Richard Copley <rcopley@gmail.com> > > > Date: Sat, 1 Jun 2013 18:25:14 +0100 > > From: Richard Copley <rcopley@gmail.com> > > [...] that's not possible without resorting to > > heuristics, because ${locallisppath} is potentially a ":"-separated path. > > The attached patch supports both styles. The heuristics didn't turn > out to be as hairy as I imagined. > > A few test cases: > > nt/msysconfig.sh > #define PATH_SITELOADSEARCH > "%emacs_dir%/share/emacs/24.3.50/site-lisp;%emacs_dir%/share/emacs/site-lisp" > > nt/msysconfig.sh --prefix c:/emacs/emacs-112809 > #define PATH_SITELOADSEARCH > "%emacs_dir%/share/emacs/24.3.50/site-lisp;%emacs_dir%/share/emacs/site-lisp" > > nt/msysconfig.sh --prefix="c:\\Program Files (x86)\\Emacs" > #define PATH_SITELOADSEARCH > "%emacs_dir%/share/emacs/24.3.50/site-lisp;%emacs_dir%/share/emacs/site-lisp" > > nt/msysconfig.sh --prefix="c:/Program Files (x86)/Emacs" > --enable-locallisppath="%emacs_dir%/../site-lisp;d:/wherever/site-lisp" > #define PATH_SITELOADSEARCH > "%emacs_dir%/../site-lisp/;d:/wherever/site-lisp" > > nt/msysconfig.sh --prefix="c:/Program Files (x86)/Emacs" > --enable-locallisppath="%emacs_dir%/../site-lisp;/d/wherever/site-lisp" > #define PATH_SITELOADSEARCH > "%emacs_dir%/../site-lisp/;d:/wherever/site-lisp" > > nt/msysconfig.sh --prefix="/usr/local" > --enable-locallisppath="/usr/local/share/my-site-lisp" > #define PATH_SITELOADSEARCH "%emacs_dir%/share/my-site-lisp" Thanks, I committed this (with ChangeLog entries) in your name. Please note that these patches all but exhausted the limit on the patches we can accept without your signing of legal papers. So additional contributions (which will be most welcome) will need paperwork to be sent to the FSF copyright clerk. Thanks again for working on this. ^ permalink raw reply [flat|nested] 39+ messages in thread
* bug#14513: 24.3.50; Site load-path pieces differ in MSYS build 2013-06-07 8:14 ` Eli Zaretskii @ 2013-06-07 17:48 ` Richard Copley 0 siblings, 0 replies; 39+ messages in thread From: Richard Copley @ 2013-06-07 17:48 UTC (permalink / raw) To: Eli Zaretskii; +Cc: 14513-done [-- Attachment #1: Type: text/plain, Size: 179 bytes --] On 7 June 2013 09:14, Eli Zaretskii <eliz@gnu.org> wrote: > Thanks, I committed this (with ChangeLog entries) in your name. > Cool. I'm disproportionately proud of that. Thanks. [-- Attachment #2: Type: text/html, Size: 483 bytes --] ^ permalink raw reply [flat|nested] 39+ messages in thread
* bug#14513: 24.3.50; Site load-path pieces differ in MSYS build 2013-05-31 6:20 ` Eli Zaretskii 2013-05-31 9:52 ` Richard Copley @ 2013-06-04 23:55 ` Juanma Barranquero 2013-06-06 15:37 ` Eli Zaretskii 1 sibling, 1 reply; 39+ messages in thread From: Juanma Barranquero @ 2013-06-04 23:55 UTC (permalink / raw) To: Eli Zaretskii; +Cc: rcopley, 14513 On Fri, May 31, 2013 at 8:20 AM, Eli Zaretskii <eliz@gnu.org> wrote: > I'd prefer to poll users whether they use that ../site-lisp directory, > before adding this to the instructions. I suspect very few do, which > would mean we make the instructions more complex than they already > are. I use ../site-lisp all the time. In /Devel/emacs/repo (which is the shared bzr repo) I have site-lisp, and the checkouts for emacs-24, an optimized build of trunk, a debug one, etc. (all built in-place). I also have older releases, but they don't cause me trouble with .elc because when I run an older Emacs is usually to check something and I run them under -Q (or -q --no-site-file). With the MSYS build, I don't really want to do "make install" (too slow), and if I do, it's in-place, so the ability to share installation dirs between releases does not really do anything for me (not that is not a great feature, just that it doesn't match my use). I hadn't noticed yet that ../site-lisp wasn't now on the load path. I could work around it by deleting share/emacs/site-lisp and symlinking it to ../site-lisp, but then I risk deleting my ../site-lisp when removing an old working copy. Not a good idea. So count this as a belated vote for, at least, documenting --enable-locallisppath J ^ permalink raw reply [flat|nested] 39+ messages in thread
* bug#14513: 24.3.50; Site load-path pieces differ in MSYS build 2013-06-04 23:55 ` Juanma Barranquero @ 2013-06-06 15:37 ` Eli Zaretskii 2013-06-07 1:49 ` Juanma Barranquero 0 siblings, 1 reply; 39+ messages in thread From: Eli Zaretskii @ 2013-06-06 15:37 UTC (permalink / raw) To: Juanma Barranquero; +Cc: rcopley, 14513 > From: Juanma Barranquero <lekktu@gmail.com> > Date: Wed, 5 Jun 2013 01:55:32 +0200 > Cc: Stefan Monnier <monnier@iro.umontreal.ca>, rcopley@gmail.com, 14513@debbugs.gnu.org > > I use ../site-lisp all the time. In /Devel/emacs/repo (which is the > shared bzr repo) I have site-lisp, and the checkouts for emacs-24, an > optimized build of trunk, a debug one, etc. (all built in-place). I > also have older releases, but they don't cause me trouble with .elc > because when I run an older Emacs is usually to check something and I > run them under -Q (or -q --no-site-file). > > With the MSYS build, I don't really want to do "make install" (too > slow) If "make install" is too slow, perhaps try disabling compression of Lisp and Info files. > and if I do, it's in-place, so the ability to share installation > dirs between releases does not really do anything for me (not that > is not a great feature, just that it doesn't match my use). Anyway, I see nothing specific to Windows in this usage pattern. ^ permalink raw reply [flat|nested] 39+ messages in thread
* bug#14513: 24.3.50; Site load-path pieces differ in MSYS build 2013-06-06 15:37 ` Eli Zaretskii @ 2013-06-07 1:49 ` Juanma Barranquero 2013-06-07 6:51 ` Eli Zaretskii 0 siblings, 1 reply; 39+ messages in thread From: Juanma Barranquero @ 2013-06-07 1:49 UTC (permalink / raw) To: Eli Zaretskii; +Cc: rcopley, 14513 On Thu, Jun 6, 2013 at 5:37 PM, Eli Zaretskii <eliz@gnu.org> wrote: > If "make install" is too slow, perhaps try disabling compression of > Lisp and Info files. Already do. It still seems much slower than the old nt/makefile.w32-in "make install". > Anyway, I see nothing specific to Windows in this usage pattern. Well, Windows-specific or not, it was a useful usage pattern, and I would really like to continue using it. My preference would be that it worked as before, but as a last resort I don't object to having to pass --enable-locallisppath, but it does not work right now (amussingly, if you pass --enable-locallisppath=%emacs_dir%/../site-lisp, after "make install" you get a directory called "%emacs_dir%"). ^ permalink raw reply [flat|nested] 39+ messages in thread
* bug#14513: 24.3.50; Site load-path pieces differ in MSYS build 2013-06-07 1:49 ` Juanma Barranquero @ 2013-06-07 6:51 ` Eli Zaretskii 0 siblings, 0 replies; 39+ messages in thread From: Eli Zaretskii @ 2013-06-07 6:51 UTC (permalink / raw) To: Juanma Barranquero; +Cc: rcopley, 14513 > From: Juanma Barranquero <lekktu@gmail.com> > Date: Fri, 7 Jun 2013 03:49:10 +0200 > Cc: rcopley@gmail.com, 14513@debbugs.gnu.org > > as a last resort I don't object to having to pass > --enable-locallisppath, but it does not work right now I will commit Richard's changes soon, and then it will. > (amussingly, if you pass > --enable-locallisppath=%emacs_dir%/../site-lisp, after "make > install" you get a directory called "%emacs_dir%"). "make install" doesn't accept the --enable-locallisppath option. Perhaps you mean something like this: make install locallisppath=%emacs_dir%/../site-lisp In that case, what you get is exactly what the current Makefile is expected to do: it creates literally each directory in the value of that variable. The %..% part can only be interpreted correctly by Emacs itself, as it needs special code to expand emacs_dir. ^ permalink raw reply [flat|nested] 39+ messages in thread
[parent not found: <83ip20469l.fsf@gnu.org>]
* bug#14514: Fwd: bug#14513: 24.3.50; Site load-path pieces differ in MSYS build [not found] ` <83ip20469l.fsf@gnu.org> @ 2013-05-30 19:29 ` Richard Copley 2013-05-30 19:49 ` bug#14513: " Richard Copley 0 siblings, 1 reply; 39+ messages in thread From: Richard Copley @ 2013-05-30 19:29 UTC (permalink / raw) To: 14514 [-- Attachment #1: Type: text/plain, Size: 2359 bytes --] On 30 May 2013 20:28, Eli Zaretskii <eliz@gnu.org> wrote: > [Why private email?] > No reason at all, that was a mistake, I apologise. I hope you don't mind me forwarding this to the list. > > Date: Thu, 30 May 2013 20:14:35 +0100 > > From: Richard Copley <rcopley@gmail.com> > > > > > > c:\>dir /B c:\emacs > > > > emacs-111818 > > > > emacs-112125 > > > > emacs-112416 > > > > site-lisp > > > > > > You can still have separate directories like that, unless I'm missing > > > something. The directory structure below emacs-NNNNNN directories > > > will be different, but that's all. > > > > > > > Also the site-lisp directory will not be on the load-path. > > Your site-lisp won't, but the one in ROOT/share/emacs will. > > > I'm not actively using more than one build. > > Then why do you need separate trees? That's the only reason why you > need the site-lisp outside of the Emacs tree. Use the Posix-standard > structure and one root for all the Emacs installations, and the > problem is gone, because you have the common site-lisp directory in > ROOT/share/emacs. > > > > it should be easy to create a simple script that, given a root > > > directory and a version, will delete the subdirectories that belong to > > > that version only. There aren't too many directories to delete, > > > basically libexec/emacs/VERSION and share/emacs/VERSION. That, and > > > the emacs-VERSION*.exe executables in bin/. > > > > > > Did I miss something? > > > > > > > With the uninstallation? No idea. It's ok, there's no way I'll be doing > > that. > > You mean, you will never uninstall? Then why do you keep the versions > separate? > > > > The new structure has advantages which I described in that mail in > > > March. > > > > (1) You're the first one I know about who thinks that's important. > > Well, maybe I'm the only one who works on so many platforms. > > > (2) is wrong. > > It's not wrong as long as you keep all the installations under the > same root, like /usr/local on Unix. > > > (3) I don't follow. Other platforms, really? > > Yes. Imagine that your --prefix is on a networked volume that can be > accessed from Windows and Unix systems alike. Then only the > architecture-dependent files (binaries) need to be separate; > everything under %emacs_dir%/share/emacs/ can be installed only once > and used by Emacs from any OS. > [-- Attachment #2: Type: text/html, Size: 3369 bytes --] ^ permalink raw reply [flat|nested] 39+ messages in thread
* bug#14513: Fwd: bug#14513: 24.3.50; Site load-path pieces differ in MSYS build 2013-05-30 19:29 ` bug#14514: Fwd: " Richard Copley @ 2013-05-30 19:49 ` Richard Copley 0 siblings, 0 replies; 39+ messages in thread From: Richard Copley @ 2013-05-30 19:49 UTC (permalink / raw) To: 14513 [-- Attachment #1: Type: text/plain, Size: 3285 bytes --] Damn damn damn. I meant to forward this message to this bug, but instead I sent it to bug-gnu-emacs@gnu.org. Sorry. Eli, I didn't mean to reply by private email, and I re-sent my reply to the list shortly afterwards, as you will have seen by now. I hope you don't mind me forwarding your reply, which is below, with my comments inline. Sorry again for causing extra confusion. I've done similar things on this list several times before. It's entirely unintentional. The Google mail interface makes it very easy to hit reply and slightly annoying to hit reply-all. ---------- Forwarded message ---------- From: Richard Copley <rcopley@gmail.com> Date: 30 May 2013 20:29 Subject: Fwd: bug#14513: 24.3.50; Site load-path pieces differ in MSYS build To: "bug-gnu-emacs@gnu.org" <bug-gnu-emacs@gnu.org> On 30 May 2013 20:28, Eli Zaretskii <eliz@gnu.org> wrote: > [Why private email?] > > Date: Thu, 30 May 2013 20:14:35 +0100 > > From: Richard Copley <rcopley@gmail.com> > > > > > > c:\>dir /B c:\emacs > > > > emacs-111818 > > > > emacs-112125 > > > > emacs-112416 > > > > site-lisp > > > > > > You can still have separate directories like that, unless I'm missing > > > something. The directory structure below emacs-NNNNNN directories > > > will be different, but that's all. > > > > > > > Also the site-lisp directory will not be on the load-path. > > Your site-lisp won't, but the one in ROOT/share/emacs will. > Yes. > > > I'm not actively using more than one build. > > Then why do you need separate trees? That's the only reason why you > need the site-lisp outside of the Emacs tree. I don't need separate trees. I find separate trees convenient. > Use the Posix-standard > structure and one root for all the Emacs installations, and the > problem is gone, because you have the common site-lisp directory in > ROOT/share/emacs. > That has its own disadvantages. Are we going round in circles? > > it should be easy to create a simple script that, given a root > > directory and a version, will delete the subdirectories that belong to > > that version only. There aren't too many directories to delete, > > basically libexec/emacs/VERSION and share/emacs/VERSION. That, and > > the emacs-VERSION*.exe executables in bin/. > > > > Did I miss something? > > > > With the uninstallation? No idea. It's ok, there's no way I'll be doing > that. You mean, you will never uninstall? Then why do you keep the versions > separate? > No that's not what I mean. > > The new structure has advantages which I described in that mail in > > > March. > > > > (1) You're the first one I know about who thinks that's important. > > Well, maybe I'm the only one who works on so many platforms. > > (2) is wrong. > > It's not wrong as long as you keep all the installations under the > same root, like /usr/local on Unix. > That's true. > (3) I don't follow. Other platforms, really? > > Yes. Imagine that your --prefix is on a networked volume that can be > accessed from Windows and Unix systems alike. Then only the > architecture-dependent files (binaries) need to be separate; > everything under %emacs_dir%/share/emacs/ can be installed only once > and used by Emacs from any OS. > No, you've lost me ... Do you actually do that? Where do the binaries go? [-- Attachment #2: Type: text/html, Size: 5758 bytes --] ^ permalink raw reply [flat|nested] 39+ messages in thread
end of thread, other threads:[~2013-06-07 17:48 UTC | newest] Thread overview: 39+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2013-05-30 13:46 bug#14513: 24.3.50; Site load-path pieces differ in MSYS build Richard Copley 2013-05-30 16:40 ` Eli Zaretskii 2013-05-30 17:56 ` Richard Copley 2013-05-30 18:20 ` Eli Zaretskii 2013-05-30 19:02 ` Achim Gratz 2013-05-30 19:16 ` Eli Zaretskii 2013-05-30 19:57 ` Achim Gratz 2013-05-30 20:39 ` Eli Zaretskii 2013-05-30 21:21 ` Stefan Monnier 2013-05-31 19:01 ` Achim Gratz 2013-05-31 19:24 ` Eli Zaretskii 2013-05-30 19:06 ` Stefan Monnier 2013-05-30 19:18 ` Eli Zaretskii 2013-05-30 19:20 ` Richard Copley [not found] ` <CAPM58ojwzkw8kxKc8P4G0mdsJgmYmo-ZxSbcN1F2J+QVyFaHMw@mail.gmail.com> 2013-05-30 19:29 ` Eli Zaretskii 2013-05-30 20:00 ` Stefan Monnier 2013-05-30 20:42 ` Eli Zaretskii 2013-05-30 21:43 ` Stefan Monnier 2013-05-31 6:20 ` Eli Zaretskii 2013-05-31 9:52 ` Richard Copley 2013-05-31 11:35 ` Eli Zaretskii 2013-05-31 12:55 ` Richard Copley 2013-06-01 16:04 ` Richard Copley 2013-06-01 16:38 ` Eli Zaretskii 2013-06-01 17:06 ` Richard Copley [not found] ` <CAPM58og6ySbmR28vQH+m7dp-zYgVwrrYqthO6_ZfGodV9Si23w@mail.gmail.com> [not found] ` <8361xx20lb.fsf@gnu.org> 2013-06-01 18:00 ` Richard Copley 2013-06-02 11:33 ` Richard Copley 2013-06-04 18:27 ` Richard Copley 2013-06-04 19:37 ` Eli Zaretskii 2013-06-04 20:14 ` Richard Copley 2013-06-04 20:21 ` Glenn Morris 2013-06-07 8:14 ` Eli Zaretskii 2013-06-07 17:48 ` Richard Copley 2013-06-04 23:55 ` Juanma Barranquero 2013-06-06 15:37 ` Eli Zaretskii 2013-06-07 1:49 ` Juanma Barranquero 2013-06-07 6:51 ` Eli Zaretskii [not found] ` <83ip20469l.fsf@gnu.org> 2013-05-30 19:29 ` bug#14514: Fwd: " Richard Copley 2013-05-30 19:49 ` bug#14513: " Richard Copley
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).