From mboxrd@z Thu Jan 1 00:00:00 1970 From: Federico Beffa Subject: Re: emacs packages Date: Tue, 23 Jun 2015 08:48:40 +0200 Message-ID: References: <878ubjskwj.fsf@gnu.org> <87twu3x5ds.fsf@gnu.org> <87381kojei.fsf@gnu.org> <87pp4n8r6e.fsf@gnu.org> Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:41702) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Z7I0g-0001X1-DU for guix-devel@gnu.org; Tue, 23 Jun 2015 02:48:43 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Z7I0f-0000i2-0M for guix-devel@gnu.org; Tue, 23 Jun 2015 02:48:42 -0400 In-Reply-To: <87pp4n8r6e.fsf@gnu.org> List-Id: "Development of GNU Guix and the GNU System distribution." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-devel-bounces+gcggd-guix-devel=m.gmane.org@gnu.org Sender: guix-devel-bounces+gcggd-guix-devel=m.gmane.org@gnu.org To: =?UTF-8?Q?Ludovic_Court=C3=A8s?= Cc: Guix-devel On Mon, Jun 22, 2015 at 9:43 PM, Ludovic Court=C3=A8s wrote: > Federico Beffa skribis: > >> On Sun, Jun 21, 2015 at 11:12 PM, Ludovic Court=C3=A8s wr= ote: >>> Federico Beffa skribis: > > [...] > >>>>>> Unfortunately this doesn't work without modification. The reason is >>>>>> that I follow the emacs package.el strategy to install each ELPA >>>>>> package in it's own sub-directory. Specifically, I'm installing each >>>>>> package into ".../site-lisp/guix.d/PACKAGE-NAME-VERSION/". The code >>>>>> in 'guix.el', however, doesn't look in sub-directories below the >>>>>> profile's '.../site-lisp'. > > [...] > >>>> the reason for using separate sub-directories is that many packages >>>> include files, such as README, ChangeLog, ..., that are likely to >>>> clash. Even if we would delete all non ".el" files (which probably is >>>> not safe), with more than 2500 packages on MELPA, it is possible that >>>> we would still experience some name clashes. I can imagine that >>>> someone preparing a package may be unaware of the existence of some >>>> other package, possibly not very popular in his circle. >>> >>> What about copying all the .el files to .../site-lisp, and copy the >>> other files elsewhere (for instance, =E2=80=98README=E2=80=99 and =E2= =80=98ChangeLog=E2=80=99 to >>> share/doc/$PACKAGE, and .info files to share/info)? >> >> I am copying .info files to share/info. > > Ah OK, perfect then! > >> I'm not copying README files to share/doc because these usually do not >> provide useful documentation for the user and ChangeLog are usually >> not up-to-date relict. But if somebody feels strongly about it, I can >> change that. > > No, that=E2=80=99s fine. > >>> Note that name clashes in profiles are annoying, but not fatal. >> >> For .el files they are. > > They are fatal but rare, no? My impression is that people prefix their > .el file names with the package name. In my profile I have emms, bbdb, > emacs-w3m, magit & deps, geiser, cflow, etc. and there are zero clashes. > I don=E2=80=99t see any clash in the dozen of packages I still have in > ~/.emacs.d/elpa/ either. > >> I also do not think that it is very sane ending up with a flat >> directory including hundreds of files. Some hierarchy makes the >> organization much more apparent and clean. > > The problem is that, unlike Guile modules, elisp module names are > inherently flat, hence the PACKAGE-foo.el convention that people seem to > follow. > > But perhaps that convention is not strictly followed, which would > explain why package.el took this route? > > I don=E2=80=99t feel strongly against what you suggest. My main concern = would > be the introduction of extra complexity that=E2=80=99s not strictly neede= d, but > you seem to be saying that it *is* needed. I'm just saying: If we use separate directories as package.el does, we avoid all name clashes with probability 1. If we use a flat structure such a claim can not be done. Even if the clash "only" happens with, say, a README file, the state of the system (user profile) would depend on the order of installation. To me that is very bad, especially if there is an easy solution to prevent that as in this case. > > Regardless, what matters most to me is that guix.el and > =E2=80=98emacs-build-system=E2=80=99 work consistently. I fully agree and Alex last Friday already posted a small patch to make guix.el look into sub-directories. https://lists.gnu.org/archive/html/guix-devel/2015-06/msg00382.html Regards, Fede