unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
* BBDB v3 approaching release
@ 2013-05-27  8:18 Roland Winkler
  2013-05-27  8:49 ` Leo Liu
       [not found] ` <87obbvwgw6.fsf@sbs.ch>
  0 siblings, 2 replies; 38+ messages in thread
From: Roland Winkler @ 2013-05-27  8:18 UTC (permalink / raw)
  To: emacs-devel

BBDB v3 has matured on Savannah for quite some time and I want to
get it ready for a proper release.  Yet there are two things where
I'd appreciate some help:

- The current configure scripts and makefiles pretty much follow the
  old lines of BBDB v2.  I'd be glad if someone familiar with the GNU
  conventions for such files could look over these files so that
  they work reliably / as expected on different platforms.

- What needs to be done to actually release BBDB so that users can
  download the tar ball from some server?  How to arrange for
  something like a checksum so that users can trust the tar ball?

Any other comments are welcome, too.

Roland


BBDB is available at
http://savannah.nongnu.org/projects/bbdb/
To check it out, use
git clone git://git.savannah.nongnu.org/bbdb.git



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

* Re: BBDB v3 approaching release
  2013-05-27  8:18 BBDB v3 approaching release Roland Winkler
@ 2013-05-27  8:49 ` Leo Liu
  2013-05-27 15:13   ` Stefan Monnier
       [not found] ` <87obbvwgw6.fsf@sbs.ch>
  1 sibling, 1 reply; 38+ messages in thread
From: Leo Liu @ 2013-05-27  8:49 UTC (permalink / raw)
  To: emacs-devel

On 2013-05-27 16:18 +0800, Roland Winkler wrote:
> - What needs to be done to actually release BBDB so that users can
>   download the tar ball from some server?  How to arrange for
>   something like a checksum so that users can trust the tar ball?

GNU ELPA is good for distribution.

Leo




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

* Re: BBDB v3 approaching release
  2013-05-27  8:49 ` Leo Liu
@ 2013-05-27 15:13   ` Stefan Monnier
  2013-05-27 16:13     ` Roland Winkler
  0 siblings, 1 reply; 38+ messages in thread
From: Stefan Monnier @ 2013-05-27 15:13 UTC (permalink / raw)
  To: Leo Liu; +Cc: emacs-devel

>> - What needs to be done to actually release BBDB so that users can
>> download the tar ball from some server?  How to arrange for
>> something like a checksum so that users can trust the tar ball?
> GNU ELPA is good for distribution.

But it's only for code whose copyright was assigned to the FSF.
While BBDBv3 has a lot of new code by Roland, AFAICT it still shares
a non-trivial amount of code with the old codebase for which we don't
have copyright assignments.


        Stefan



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

* Re: BBDB v3 approaching release
  2013-05-27 15:13   ` Stefan Monnier
@ 2013-05-27 16:13     ` Roland Winkler
  2013-05-27 16:57       ` Stefan Monnier
  0 siblings, 1 reply; 38+ messages in thread
From: Roland Winkler @ 2013-05-27 16:13 UTC (permalink / raw)
  To: emacs-devel

On Mon, May 27 2013, Stefan Monnier wrote:
>> GNU ELPA is good for distribution.
>
> But it's only for code whose copyright was assigned to the FSF.
> While BBDBv3 has a lot of new code by Roland, AFAICT it still shares
> a non-trivial amount of code with the old codebase for which we don't
> have copyright assignments.

Identifying the old pieces of code in BBDB v3, which do require
copyright assignments, is also on my to-do list. Maybe the amount of old
code is really not significant anymore. I cannot tell myself and it is a
somewhat tedious excercise to check this properly. (Help welcome!)
Yet I think that in the meanwhile, it would be nice to have a proper
release of BBDB v3.

Roland



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

* Re: BBDB v3 approaching release
  2013-05-27 16:13     ` Roland Winkler
@ 2013-05-27 16:57       ` Stefan Monnier
  2013-05-27 19:28         ` Roland Winkler
  0 siblings, 1 reply; 38+ messages in thread
From: Stefan Monnier @ 2013-05-27 16:57 UTC (permalink / raw)
  To: Roland Winkler; +Cc: emacs-devel

> Yet I think that in the meanwhile, it would be nice to have a proper
> release of BBDB v3.

Definitely.
You can package it in the format used for ELPA packages (you don't even
need a Makefile for that).


        Stefan



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

* Re: BBDB v3 approaching release
  2013-05-27 16:57       ` Stefan Monnier
@ 2013-05-27 19:28         ` Roland Winkler
  2013-05-27 19:35           ` Dmitry Gutov
  2013-05-27 20:59           ` Stefan Monnier
  0 siblings, 2 replies; 38+ messages in thread
From: Roland Winkler @ 2013-05-27 19:28 UTC (permalink / raw)
  To: Stefan Monnier; +Cc: emacs-devel

On Mon May 27 2013 Stefan Monnier wrote:
> You can package it in the format used for ELPA packages (you don't even
> need a Makefile for that).

From a more practical perspective, what would be suitbable routes
to distribute "it", if ELPA is currently not available for BBDB? 
("it" = a tar ball?)



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

* Re: BBDB v3 approaching release
  2013-05-27 19:28         ` Roland Winkler
@ 2013-05-27 19:35           ` Dmitry Gutov
  2013-05-27 20:18             ` Roland Winkler
  2013-05-27 20:59           ` Stefan Monnier
  1 sibling, 1 reply; 38+ messages in thread
From: Dmitry Gutov @ 2013-05-27 19:35 UTC (permalink / raw)
  To: Roland Winkler; +Cc: Stefan Monnier, emacs-devel

"Roland Winkler" <winkler@gnu.org> writes:

> On Mon May 27 2013 Stefan Monnier wrote:
>> You can package it in the format used for ELPA packages (you don't even
>> need a Makefile for that).
>
> From a more practical perspective, what would be suitbable routes
> to distribute "it", if ELPA is currently not available for BBDB? 
> ("it" = a tar ball?)

http://marmalade-repo.org/ and/or http://melpa.milkbox.net/.

The latter doesn't use tarballs, you just create a recipe and point it
to your repository.



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

* Re: BBDB v3 approaching release
  2013-05-27 19:35           ` Dmitry Gutov
@ 2013-05-27 20:18             ` Roland Winkler
  2013-05-28  5:32               ` Ulrich Mueller
  0 siblings, 1 reply; 38+ messages in thread
From: Roland Winkler @ 2013-05-27 20:18 UTC (permalink / raw)
  To: Dmitry Gutov; +Cc: emacs-devel

On Mon May 27 2013 Dmitry Gutov wrote:
> http://marmalade-repo.org/ and/or http://melpa.milkbox.net/.
> 
> The latter doesn't use tarballs, you just create a recipe and
> point it to your repository.

Maybe I am old-fashioned here: I had been thinking about releasing a
tar ball that comes with a configure script and makefiles to compile
and install BBDB. One reason for this is that BBDB includes tex
files required for printing BBDB. These files usually reside in some
tex directory outside the usual emacs tree.

(What happens to other packages hosted on savannah? How are they
released? Maybe this is also something I should look for on the
savannah mailing list.)

Or is all this really outdated??

Roland



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

* Re: BBDB v3 approaching release
  2013-05-27 19:28         ` Roland Winkler
  2013-05-27 19:35           ` Dmitry Gutov
@ 2013-05-27 20:59           ` Stefan Monnier
  1 sibling, 0 replies; 38+ messages in thread
From: Stefan Monnier @ 2013-05-27 20:59 UTC (permalink / raw)
  To: Roland Winkler; +Cc: emacs-devel

>> You can package it in the format used for ELPA packages (you don't even
>> need a Makefile for that).
> From a more practical perspective, what would be suitbable routes
> to distribute "it", if ELPA is currently not available for BBDB? 
> ("it" = a tar ball?)

You can put the tarball anywhere you like.  People can then install it
via M-x package-install-file, which will byte-compile it, setup
autoloads, and put it under ~/.emacs.d/elpa along with any accompanying
files, so you should be able to find those .tex auxiliary files at
run-time without any difficulty.


        Stefan



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

* Re: BBDB v3 approaching release
  2013-05-27 20:18             ` Roland Winkler
@ 2013-05-28  5:32               ` Ulrich Mueller
  2013-05-28  7:49                 ` Roland Winkler
  2013-05-28 12:34                 ` Stefan Monnier
  0 siblings, 2 replies; 38+ messages in thread
From: Ulrich Mueller @ 2013-05-28  5:32 UTC (permalink / raw)
  To: Roland Winkler; +Cc: emacs-devel, Dmitry Gutov

>>>>> On Mon, 27 May 2013, Roland Winkler wrote:

> Maybe I am old-fashioned here: I had been thinking about releasing a
> tar ball that comes with a configure script and makefiles to compile
> and install BBDB.

Please do. Packages without a build system impose additional work upon
all distros.

> One reason for this is that BBDB includes tex files required for
> printing BBDB. These files usually reside in some tex directory
> outside the usual emacs tree.

Ulrich



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

* Re: BBDB v3 approaching release
  2013-05-28  5:32               ` Ulrich Mueller
@ 2013-05-28  7:49                 ` Roland Winkler
  2013-05-28 12:34                 ` Stefan Monnier
  1 sibling, 0 replies; 38+ messages in thread
From: Roland Winkler @ 2013-05-28  7:49 UTC (permalink / raw)
  To: Ulrich Mueller; +Cc: emacs-devel

On Tue May 28 2013 Ulrich Mueller wrote:
> Please do. Packages without a build system impose additional work
> upon all distros.

...which brings me back to part one of my original post:

  The current configure scripts and makefiles pretty much follow the
  old lines of BBDB v2.  I'd be glad if someone familiar with the GNU
  conventions for such files could look over these files so that
  they work reliably / as expected on different platforms.

Roland



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

* Re: BBDB v3 approaching release
  2013-05-28  5:32               ` Ulrich Mueller
  2013-05-28  7:49                 ` Roland Winkler
@ 2013-05-28 12:34                 ` Stefan Monnier
  1 sibling, 0 replies; 38+ messages in thread
From: Stefan Monnier @ 2013-05-28 12:34 UTC (permalink / raw)
  To: Ulrich Mueller; +Cc: Dmitry Gutov, Roland Winkler, emacs-devel

>> Maybe I am old-fashioned here: I had been thinking about releasing a
>> tar ball that comes with a configure script and makefiles to compile
>> and install BBDB.
> Please do. Packages without a build system impose additional work upon
> all distros.

If the package follows the ELPA conventions, then it comes with a build
system.


        Stefan



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

* Re: BBDB v3 approaching release
       [not found] ` <87obbvwgw6.fsf@sbs.ch>
@ 2013-05-28 21:23   ` Roland Winkler
  2013-05-28 22:29     ` Stefan Monnier
  0 siblings, 1 reply; 38+ messages in thread
From: Roland Winkler @ 2013-05-28 21:23 UTC (permalink / raw)
  To: Christian Egli; +Cc: emacs-devel

On Tue May 28 2013 Christian Egli wrote:
> > - The current configure scripts and makefiles pretty much follow the
> >   old lines of BBDB v2.  I'd be glad if someone familiar with the GNU
> >   conventions for such files could look over these files so that
> >   they work reliably / as expected on different platforms.
> 
> I know my way around autotools and have some understanding of the GNU
> conventions. I looked at configure.ac and Makefile.in. I could help.
> What exactly is it that you want to do? Just port the build system to
> more modern and standard autotools usage?

Hi Christian

Thanks! - One concern is about the options of the ./configure script
related to the installation of BBDB.  Say, currently the options
--prefix  and --datadir don't do anything meaningful.  But I don't
know what would be meaningful here.

I am really a novice with that stuff. So possibly there are more
problems hidden that I have not yet realized.

Roland



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

* Re: BBDB v3 approaching release
  2013-05-28 21:23   ` Roland Winkler
@ 2013-05-28 22:29     ` Stefan Monnier
  2013-05-29 13:27       ` Roland Winkler
  2013-05-29 16:45       ` Ulrich Mueller
  0 siblings, 2 replies; 38+ messages in thread
From: Stefan Monnier @ 2013-05-28 22:29 UTC (permalink / raw)
  To: Roland Winkler; +Cc: Christian Egli, emacs-devel

> I am really a novice with that stuff. So possibly there are more
> problems hidden that I have not yet realized.

You *really* want to stick to the ELPA format.
It's simple and straightforward for you, and for the end-users.


        Stefan



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

* Re: BBDB v3 approaching release
  2013-05-28 22:29     ` Stefan Monnier
@ 2013-05-29 13:27       ` Roland Winkler
  2013-05-29 16:45       ` Ulrich Mueller
  1 sibling, 0 replies; 38+ messages in thread
From: Roland Winkler @ 2013-05-29 13:27 UTC (permalink / raw)
  To: Stefan Monnier; +Cc: Christian Egli, emacs-devel

On Tue May 28 2013 Stefan Monnier wrote:
> > I am really a novice with that stuff. So possibly there are more
> > problems hidden that I have not yet realized.
> 
> You *really* want to stick to the ELPA format.
> It's simple and straightforward for you, and for the end-users.

Thanks, I'll look into this.

Roland



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

* Re: BBDB v3 approaching release
  2013-05-28 22:29     ` Stefan Monnier
  2013-05-29 13:27       ` Roland Winkler
@ 2013-05-29 16:45       ` Ulrich Mueller
  2013-05-29 22:29         ` Stefan Monnier
  2013-06-01 14:34         ` Steinar Bang
  1 sibling, 2 replies; 38+ messages in thread
From: Ulrich Mueller @ 2013-05-29 16:45 UTC (permalink / raw)
  To: Stefan Monnier; +Cc: Christian Egli, Roland Winkler, emacs-devel

>>>>> On Tue, 28 May 2013, Stefan Monnier wrote:

> You *really* want to stick to the ELPA format. It's simple and
> straightforward for you, and for the end-users.

How do I configure install locations of a package if it's in ELPA
format? Especially, if the package has non-lisp components?

Ulrich



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

* Re: BBDB v3 approaching release
  2013-05-29 16:45       ` Ulrich Mueller
@ 2013-05-29 22:29         ` Stefan Monnier
  2013-05-30  7:14           ` Roland Winkler
  2013-05-30  9:37           ` Ulrich Mueller
  2013-06-01 14:34         ` Steinar Bang
  1 sibling, 2 replies; 38+ messages in thread
From: Stefan Monnier @ 2013-05-29 22:29 UTC (permalink / raw)
  To: Ulrich Mueller; +Cc: Christian Egli, Roland Winkler, emacs-devel

>> You *really* want to stick to the ELPA format. It's simple and
>> straightforward for you, and for the end-users.
> How do I configure install locations of a package if it's in ELPA
> format?

You don't.

> Especially, if the package has non-lisp components?

You leave them alongside the Elisp files.  And when you need them, your
Elisp package will find them by looking around itself (it can get
access to its own location via `load-file-name').


        Stefan



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

* Re: BBDB v3 approaching release
  2013-05-29 22:29         ` Stefan Monnier
@ 2013-05-30  7:14           ` Roland Winkler
  2013-05-30  7:57             ` Jambunathan K
  2013-05-30  8:04             ` Stephen J. Turnbull
  2013-05-30  9:37           ` Ulrich Mueller
  1 sibling, 2 replies; 38+ messages in thread
From: Roland Winkler @ 2013-05-30  7:14 UTC (permalink / raw)
  To: Stefan Monnier; +Cc: Ulrich Mueller, Christian Egli, emacs-devel

On Wed May 29 2013 Stefan Monnier wrote:
> > How do I configure install locations of a package if it's in ELPA
> > format?
> 
> You don't.
> 
> > Especially, if the package has non-lisp components?
> 
> You leave them alongside the Elisp files.  And when you need them, your
> Elisp package will find them by looking around itself (it can get
> access to its own location via `load-file-name').

BBDB contains three TeX files that are required by plain TeX when
you want to print the database.  Here BBDB creates a TeX file that
contains for example

  \input bbdb-print
  \input bbdb-cols

In a texmf installation, these files would go into a directory like
/usr/local/share/texmf/bbdb 
I do not know where other TeX installations expect to find such files.

Can the ELPA format handle such files, too?  How?

In a way, I am surprised that I do not know about other elisp
packages having similar needs. Whenever you want to print something
with (La)TeX, you normally need some kind of style file that (La)TeX
needs to find.

Of course, one work around would be that emacs includes the style
file into the TeX files it generates. One advantage of such an
approach would be that the resulting TeX files become self-contained
for any "standard" TeX installation so that one can forward the TeX
files to someone who does not have the BBDB tex files installed.
But I consider the forwarding of such files a more rare scenario.

Roland



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

* Re: BBDB v3 approaching release
  2013-05-30  7:14           ` Roland Winkler
@ 2013-05-30  7:57             ` Jambunathan K
  2013-05-30  8:04             ` Stephen J. Turnbull
  1 sibling, 0 replies; 38+ messages in thread
From: Jambunathan K @ 2013-05-30  7:57 UTC (permalink / raw)
  To: Roland Winkler
  Cc: Ulrich Mueller, Christian Egli, Stefan Monnier, emacs-devel


> Can the ELPA format handle such files, too?  How?

ELPA is just a tar bundle.  You can include whatever you want as part of
the bundle. 




> In a way, I am surprised that I do not know about other elisp
> packages having similar needs. Whenever you want to print something
> with (La)TeX, you normally need some kind of style file that (La)TeX
> needs to find.

Org's ODT exporter depends on XML style files for it's export.  The
style files are included right within the tar ball as part of ./etc/
directory.

        See http://elpa.gnu.org/packages/org.html.

(I think using "./etc" for bundling "data files" is a good precedent.)

`load-file-name' is your friend.

    (defconst org-odt-lib-dir
      (file-name-directory load-file-name)
      "Location of ODT exporter.
    Use this to infer values of `org-odt-styles-dir' and
    `org-odt-schema-dir'.")

    (defvar org-odt-data-dir
      (expand-file-name "./etc/" org-odt-lib-dir)
      "Data directory for ODT exporter.
    Use this to infer values of `org-odt-styles-dir' and
    `org-odt-schema-dir'.")

> Of course, one work around would be that emacs includes the style
> file into the TeX files it generates. One advantage of such an
> approach would be that the resulting TeX files become self-contained
> for any "standard" TeX installation so that one can forward the TeX
> files to someone who does not have the BBDB tex files installed.
> But I consider the forwarding of such files a more rare scenario.

Bundle things in a way that minimizes headaches for you and others.

In the long run, you can do away with BDBD specific style files and use
some packages that (already) come with Tex.  Or move the BDBB style
files to Tex distribution.

2 cents.

> Roland



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

* Re: BBDB v3 approaching release
  2013-05-30  7:14           ` Roland Winkler
  2013-05-30  7:57             ` Jambunathan K
@ 2013-05-30  8:04             ` Stephen J. Turnbull
  2013-05-30 11:16               ` Roland Winkler
  1 sibling, 1 reply; 38+ messages in thread
From: Stephen J. Turnbull @ 2013-05-30  8:04 UTC (permalink / raw)
  To: Roland Winkler
  Cc: Ulrich Mueller, Christian Egli, Stefan Monnier, emacs-devel

Roland Winkler writes:

 > In a texmf installation, these files would go into a directory like
 > /usr/local/share/texmf/bbdb 
 > I do not know where other TeX installations expect to find such files.
 > 
 > Can the ELPA format handle such files, too?  How?

TeX is happy to pick up such files from the current directory.  Why
would it be a problem?  If that doesn't work or the BBDB includes are
shadowed, TEXINPUTS=.:$TEXINPUTS should do the trick.  man kpathsea
for more information about telling TeX where to find stuff.

But mostly people are going to do such formatting in a proper source
tree.  Not your problem.  The GPL (maybe, but certainly FLOSS
courtesy) requires that you provide a "script" (ie, Makefile) to
rebuild if people want to modify in-place, but for the info files that
can be as simple as

bbdb.info: bbdb.texi
	makeinfo bbdb.texi

bbdb.html: bbdb.texi
	makeinfo --html bbdb.texi

bbdb.pdf: bbdb.texi <style files ...>
	makeinfo --pdf bbdb.texi

At least, I should think so.  If you normally use @setfilename to put
the info etc someplace other than the current directory, use the -o
option to put it in the current directory.







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

* Re: BBDB v3 approaching release
  2013-05-29 22:29         ` Stefan Monnier
  2013-05-30  7:14           ` Roland Winkler
@ 2013-05-30  9:37           ` Ulrich Mueller
  2013-05-30 11:24             ` Roland Winkler
                               ` (2 more replies)
  1 sibling, 3 replies; 38+ messages in thread
From: Ulrich Mueller @ 2013-05-30  9:37 UTC (permalink / raw)
  To: Stefan Monnier; +Cc: Christian Egli, Roland Winkler, emacs-devel

>>>>> On Wed, 29 May 2013, Stefan Monnier wrote:

>> How do I configure install locations of a package if it's in ELPA
>> format?

> You don't.

Why is this better than having them configurable? Especially, why are
you asking that a package like BBDB that has a perfectly working
autoconf build system should _remove_ it?

>> Especially, if the package has non-lisp components?

> You leave them alongside the Elisp files.

Emacs itself uses a different layout and keeps non-lisp files in
different directories like etc or info. (Hopefully there are no plans
to change that?)

For example, for Info files it's really a PITA if they're not
collected in one (or at least, few) central locations.

> And when you need them, your Elisp package will find them by looking
> around itself (it can get access to its own location via
> `load-file-name').

This means that anyone who wants to adhere to some standard like FHS
must move files around manually. I had to do this way too often when
packaging things for Gentoo.

Most packages are at least friendly enough and spend a defvar or
defcustom that allows to configure these directories (often with a
fallback to the above-mentioned load-file-name location).

Ulrich



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

* Re: BBDB v3 approaching release
  2013-05-30  8:04             ` Stephen J. Turnbull
@ 2013-05-30 11:16               ` Roland Winkler
  2013-05-30 17:25                 ` Stephen J. Turnbull
  0 siblings, 1 reply; 38+ messages in thread
From: Roland Winkler @ 2013-05-30 11:16 UTC (permalink / raw)
  To: Stephen J. Turnbull; +Cc: emacs-devel

On Thu May 30 2013 Stephen J. Turnbull wrote:
> TeX is happy to pick up such files from the current directory.  Why
> would it be a problem?  If that doesn't work or the BBDB includes are
> shadowed, TEXINPUTS=.:$TEXINPUTS should do the trick.  man kpathsea
> for more information about telling TeX where to find stuff.

Normally the user directory where bbdb-print creates its TeX file is
not (should not be!) the directory where BBDB keeps its TeX include
files.



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

* Re: BBDB v3 approaching release
  2013-05-30  9:37           ` Ulrich Mueller
@ 2013-05-30 11:24             ` Roland Winkler
  2013-05-30 12:48               ` Ulrich Mueller
  2013-05-30 14:57               ` Ted Zlatanov
  2013-05-30 14:37             ` Stefan Monnier
  2013-05-30 15:03             ` Ted Zlatanov
  2 siblings, 2 replies; 38+ messages in thread
From: Roland Winkler @ 2013-05-30 11:24 UTC (permalink / raw)
  To: Ulrich Mueller; +Cc: Stefan Monnier, emacs-devel

On Thu May 30 2013 Ulrich Mueller wrote:
> Emacs itself uses a different layout and keeps non-lisp files in
> different directories like etc or info. (Hopefully there are no plans
> to change that?)

The problem is really that the TeX files generated by bbdb-print
connect two different worlds:

The TeX file is generated by emacs that comes with its search path
and installation tree. But then this TeX file gets compiled by the
TeX command that only knows its own search paths.

And all this happens in a user directory so that everything should
not depend on the absolute directories used by the particular
installations of emacs and TeX.



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

* Re: BBDB v3 approaching release
  2013-05-30 11:24             ` Roland Winkler
@ 2013-05-30 12:48               ` Ulrich Mueller
  2013-05-30 14:57               ` Ted Zlatanov
  1 sibling, 0 replies; 38+ messages in thread
From: Ulrich Mueller @ 2013-05-30 12:48 UTC (permalink / raw)
  To: Roland Winkler; +Cc: Stefan Monnier, emacs-devel

>>>>> On Thu, 30 May 2013, Roland Winkler wrote:

> The problem is really that the TeX files generated by bbdb-print
> connect two different worlds:

Sure, these are the more interesting cases. Other such examples
include AUCTeX, SLIME, and Pymacs. Installation is trivial if a
package consists of elisp files only.

> The TeX file is generated by emacs that comes with its search path
> and installation tree. But then this TeX file gets compiled by the
> TeX command that only knows its own search paths.

> And all this happens in a user directory so that everything should
> not depend on the absolute directories used by the particular
> installations of emacs and TeX.

That's why there are distros that set up things such that different
pieces of software fit together, and work for the user out of the box.
Of course, it will help if the package is configurable and can adapt
to different environments.

Ulrich



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

* Re: BBDB v3 approaching release
  2013-05-30  9:37           ` Ulrich Mueller
  2013-05-30 11:24             ` Roland Winkler
@ 2013-05-30 14:37             ` Stefan Monnier
  2013-05-30 15:03             ` Ted Zlatanov
  2 siblings, 0 replies; 38+ messages in thread
From: Stefan Monnier @ 2013-05-30 14:37 UTC (permalink / raw)
  To: Ulrich Mueller; +Cc: Christian Egli, Roland Winkler, emacs-devel

>>> How do I configure install locations of a package if it's in ELPA
>>> format?
>> You don't.
> Why is this better than having them configurable?

Because that saves you from having to configure it.

> Especially, why are you asking that a package like BBDB that has
> a perfectly working autoconf build system should _remove_ it?

I didn't ask to remove it: it can be kept in the ELPA package.
It's just not useful/needed for the usual ELPA style of
distribution/installation.

>>> Especially, if the package has non-lisp components?
>> You leave them alongside the Elisp files.
> Emacs itself uses a different layout and keeps non-lisp files in
> different directories like etc or info.

Indeed.  In some cases it was a good choice, in others I'm not so sure.

> (Hopefully there are no plans to change that?)

It's definitely not important enough to waste time changing it unless
there's a good reason for it.

> For example, for Info files it's really a PITA if they're not
> collected in one (or at least, few) central locations.

Why?

>> And when you need them, your Elisp package will find them by looking
>> around itself (it can get access to its own location via
>> `load-file-name').
> This means that anyone who wants to adhere to some standard like FHS
> must move files around manually. I had to do this way too often when
> packaging things for Gentoo.

I don't see any particular reason why you'd feel compelled to break an
ELPA package into its constituents and spread them around in different
directories, just for the sake of following some standard.

If there's a real benefit to it and it's higher than the cost of moving
things around, then by all means go for it.  But "the ELPA way" is
pretty damn convenient and I personally can't think of any benefit you'd
get from applying the FHS to it.

> Most packages are at least friendly enough and spend a defvar or
> defcustom that allows to configure these directories (often with a
> fallback to the above-mentioned load-file-name location).

In order to be able to use load-file-name, you need to evaluate it
during load and save it in some global variable.  So, yes, a natural way
to do it ends up introducing defvar/defcustoms for that anyway.


        Stefan



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

* Re: BBDB v3 approaching release
  2013-05-30 11:24             ` Roland Winkler
  2013-05-30 12:48               ` Ulrich Mueller
@ 2013-05-30 14:57               ` Ted Zlatanov
  2013-05-30 17:11                 ` Stefan Monnier
  1 sibling, 1 reply; 38+ messages in thread
From: Ted Zlatanov @ 2013-05-30 14:57 UTC (permalink / raw)
  To: emacs-devel

On Thu, 30 May 2013 13:24:48 +0200 "Roland Winkler" <winkler@gnu.org> wrote: 

RW> On Thu May 30 2013 Ulrich Mueller wrote:
>> Emacs itself uses a different layout and keeps non-lisp files in
>> different directories like etc or info. (Hopefully there are no plans
>> to change that?)

RW> The problem is really that the TeX files generated by bbdb-print
RW> connect two different worlds:

RW> The TeX file is generated by emacs that comes with its search path
RW> and installation tree. But then this TeX file gets compiled by the
RW> TeX command that only knows its own search paths.

RW> And all this happens in a user directory so that everything should
RW> not depend on the absolute directories used by the particular
RW> installations of emacs and TeX.

This may be quite heretical, but have you considered Markdown for the
BBDB docs?  No build systems needed; readable as plain text; convertible
to many other formats with little work; really easy to learn and use.
Emacs can view it.  I've been happy with Markdown for personal and work
use.

The lack of a build system is especially appealing, from experience with
installing hundreds of megabytes for the documentation support toolchain
for Gnus and BBDB.

Ted




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

* Re: BBDB v3 approaching release
  2013-05-30  9:37           ` Ulrich Mueller
  2013-05-30 11:24             ` Roland Winkler
  2013-05-30 14:37             ` Stefan Monnier
@ 2013-05-30 15:03             ` Ted Zlatanov
  2 siblings, 0 replies; 38+ messages in thread
From: Ted Zlatanov @ 2013-05-30 15:03 UTC (permalink / raw)
  To: emacs-devel

On Thu, 30 May 2013 11:37:13 +0200 Ulrich Mueller <ulm@gentoo.org> wrote: 

>>>>>> On Wed, 29 May 2013, Stefan Monnier wrote:
>>> How do I configure install locations of a package if it's in ELPA
>>> format?

>> You don't.

UM> Why is this better than having them configurable? Especially, why are
UM> you asking that a package like BBDB that has a perfectly working
UM> autoconf build system should _remove_ it?

I don't think Stefan asked for that.  Simply, when something is
installed as an ELPA package, it doesn't have control over its install
location.

UM> This means that anyone who wants to adhere to some standard like FHS
UM> must move files around manually. I had to do this way too often when
UM> packaging things for Gentoo.

UM> Most packages are at least friendly enough and spend a defvar or
UM> defcustom that allows to configure these directories (often with a
UM> fallback to the above-mentioned load-file-name location).

Installing system packages and installing user packages are completely
different things.  The ELPA is intended as a user-accessible format,
where "user" could be "root".  But it doesn't have deep integration with
any of the Emacs platforms, nor was that part of its design.  I think
that's worth discussing further and improving.

Ted




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

* Re: BBDB v3 approaching release
  2013-05-30 14:57               ` Ted Zlatanov
@ 2013-05-30 17:11                 ` Stefan Monnier
  2013-05-30 20:31                   ` Ted Zlatanov
  0 siblings, 1 reply; 38+ messages in thread
From: Stefan Monnier @ 2013-05-30 17:11 UTC (permalink / raw)
  To: emacs-devel

> This may be quite heretical, but have you considered Markdown for the
> BBDB docs?

bbdb-print doesn't have anything to do with documentation.
It's a function that lets you print your bbdb addressbook via LaTeX.


        Stefan



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

* Re: BBDB v3 approaching release
  2013-05-30 11:16               ` Roland Winkler
@ 2013-05-30 17:25                 ` Stephen J. Turnbull
  2013-05-30 17:55                   ` Stephen J. Turnbull
  0 siblings, 1 reply; 38+ messages in thread
From: Stephen J. Turnbull @ 2013-05-30 17:25 UTC (permalink / raw)
  To: Roland Winkler; +Cc: emacs-devel

Roland Winkler writes:
 > On Thu May 30 2013 Stephen J. Turnbull wrote:
 > > TeX is happy to pick up such files from the current directory.  Why
 > > would it be a problem?  If that doesn't work or the BBDB includes are
 > > shadowed, TEXINPUTS=.:$TEXINPUTS should do the trick.  man kpathsea
 > > for more information about telling TeX where to find stuff.
 > 
 > Normally the user directory where bbdb-print creates its TeX file is
 > not (should not be!) the directory where BBDB keeps its TeX include
 > files.

That's one good way to do it, but not necessarily normal.  An
installed ELPA package can (and IMO should) be thought of as a binary
whose internal structure happens to take advantage of the file system
to organize its parts rather than ELF sections or zipfile members.  In
this it's similar to a Python package or a Mac OS X .app.

People who want to fiddle with the internals of a package really
should do so in the *source* tree, not in the installed tree.  The
installed tree will have a more convenient layout for source browsing.

I'll grant that the info files are a special case and a PITA because
they really do like to live in one directory.  Nevertheless that can
be dealt with in a number of ways (I think XEmacs implements three,
none of them particularly attractive).

Ulrich mentioned FHS.  Well, I haven't read the FHS carefully in a
decade, but IIRC from back then, the FHS does not in any way rule out
such "opaque packages".  If you want your package resources to be
available via system facilities (and for man pages and info files you
certainly do, thus the exception just mentioned), then indeed you want
to follow FHS.  But internal resources (including build-time-only
resources) can go anywhere you want.

There are disadvantages to "opaque packages".  It can take a lot more
stats to find stuff if you have a very flexible path search algorithm
such as kpathsea, which slows things quite a bit.  On those occasions
you do want to break the veil, what you see inside the package may be
neither pretty nor convenient.  But by the same token they tend to
increase cohesion and decrease coupling, which are usually considered
design goals.

You don't have to like this approach; I'm just saying it's one way to
look at ELPA packages that helps to rationalize them and emphasize
their benefits.



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

* Re: BBDB v3 approaching release
  2013-05-30 17:25                 ` Stephen J. Turnbull
@ 2013-05-30 17:55                   ` Stephen J. Turnbull
  2013-05-30 18:22                     ` Eli Zaretskii
  0 siblings, 1 reply; 38+ messages in thread
From: Stephen J. Turnbull @ 2013-05-30 17:55 UTC (permalink / raw)
  To: Roland Winkler, emacs-devel

Stephen J. Turnbull writes:
 > Roland Winkler writes:

 >  > Normally the user directory where bbdb-print creates its TeX file is
 >  > not (should not be!) the directory where BBDB keeps its TeX include
 >  > files.
 > 
 > That's one good way to do it, but not necessarily normal.

Ah, I didn't know what bbdb-print does.

Now that I do, I don't see what's so hard about

(shell-command (format "TEXINPUTS=%s%s tex %s"
                       (bbdb-style-file-directory)
                       (getenv "TEXINPUTS")
                       file-to-tex))

where 

(defcustom bbdb-style-file-directory nil)

(defun bbdb-style-file-directory ()
  (or bbdb-style-file-directory
      (setq bbdb-style-file-directory
            (file-name-directory (locate-library "bbdb")))))




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

* Re: BBDB v3 approaching release
  2013-05-30 17:55                   ` Stephen J. Turnbull
@ 2013-05-30 18:22                     ` Eli Zaretskii
  2013-05-30 20:47                       ` Andreas Schwab
  2013-05-31  3:50                       ` Stephen J. Turnbull
  0 siblings, 2 replies; 38+ messages in thread
From: Eli Zaretskii @ 2013-05-30 18:22 UTC (permalink / raw)
  To: Stephen J. Turnbull; +Cc: winkler, emacs-devel

> From: "Stephen J. Turnbull" <stephen@xemacs.org>
> Date: Fri, 31 May 2013 02:55:49 +0900
> 
> Ah, I didn't know what bbdb-print does.
> 
> Now that I do, I don't see what's so hard about
> 
> (shell-command (format "TEXINPUTS=%s%s tex %s"
>                        (bbdb-style-file-directory)
>                        (getenv "TEXINPUTS")
>                        file-to-tex))

That it only works with a Posixy shell?



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

* Re: BBDB v3 approaching release
  2013-05-30 17:11                 ` Stefan Monnier
@ 2013-05-30 20:31                   ` Ted Zlatanov
  0 siblings, 0 replies; 38+ messages in thread
From: Ted Zlatanov @ 2013-05-30 20:31 UTC (permalink / raw)
  To: emacs-devel

On Thu, 30 May 2013 13:11:56 -0400 Stefan Monnier <monnier@iro.umontreal.ca> wrote: 

>> This may be quite heretical, but have you considered Markdown for the
>> BBDB docs?

SM> bbdb-print doesn't have anything to do with documentation.
SM> It's a function that lets you print your bbdb addressbook via LaTeX.

D'oh, sorry.

Ted




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

* Re: BBDB v3 approaching release
  2013-05-30 18:22                     ` Eli Zaretskii
@ 2013-05-30 20:47                       ` Andreas Schwab
  2013-05-31  3:50                       ` Stephen J. Turnbull
  1 sibling, 0 replies; 38+ messages in thread
From: Andreas Schwab @ 2013-05-30 20:47 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: Stephen J. Turnbull, winkler, emacs-devel

Eli Zaretskii <eliz@gnu.org> writes:

>> From: "Stephen J. Turnbull" <stephen@xemacs.org>
>> Date: Fri, 31 May 2013 02:55:49 +0900
>> 
>> Ah, I didn't know what bbdb-print does.
>> 
>> Now that I do, I don't see what's so hard about
>> 
>> (shell-command (format "TEXINPUTS=%s%s tex %s"
>>                        (bbdb-style-file-directory)
>>                        (getenv "TEXINPUTS")
>>                        file-to-tex))
>
> That it only works with a Posixy shell?

So modify process-environment.

Andreas.

-- 
Andreas Schwab, schwab@linux-m68k.org
GPG Key fingerprint = 58CA 54C7 6D53 942B 1756  01D3 44D5 214B 8276 4ED5
"And now for something completely different."



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

* Re: BBDB v3 approaching release
  2013-05-30 18:22                     ` Eli Zaretskii
  2013-05-30 20:47                       ` Andreas Schwab
@ 2013-05-31  3:50                       ` Stephen J. Turnbull
  2013-05-31 14:14                         ` Tom Tromey
  2013-05-31 14:42                         ` Ted Zlatanov
  1 sibling, 2 replies; 38+ messages in thread
From: Stephen J. Turnbull @ 2013-05-31  3:50 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: winkler, emacs-devel

Eli Zaretskii writes:
 > > From: "Stephen J. Turnbull" <stephen@xemacs.org>
 > > Date: Fri, 31 May 2013 02:55:49 +0900
 > > 
 > > Ah, I didn't know what bbdb-print does.
 > > 
 > > Now that I do, I don't see what's so hard about
 > > 
 > > (shell-command (format "TEXINPUTS=%s%s tex %s"
 > >                        (bbdb-style-file-directory)
 > >                        (getenv "TEXINPUTS")
 > >                        file-to-tex))
 > 
 > That it only works with a Posixy shell?

Last I heard Emacs doesn't have a policy that says that's a
showstopper, although it won't stop you from fixing it if you like.
Anyway, I'm sure there's a way to work around it with enough effort.
I'm just not going to make it.  The code above is proof of concept,
not a patch submission to Emacs (or BBDB for that matter).

The practical deal-breaker for "install in the right place" is that
Emacs doesn't "own" the texmf hierarchies, so you can't guarantee that
ELPA can install those sources "where they belong" according to
tradition or FHS.  Given that, I don't see why anybody should care
where they are installed, as long as BBDB can find them.

Ted Z's proposal for enhancing ELPA packages' ability to find their
stuff is a first step in the right direction, I think.  But AFAIK
there is no spec for *user* FHS.  Python has been playing around with
~/.local among others (I think that may be an fd.o draft standard or
something?)  If that were to become widespread, you could add ~/.local
to your kpathsea path, and that would be a big win.  Failing that (ie,
for the foreseeable future), I think what ELPA should do is provide a
suite of functions for finding package resources such as elisp
(installed), the source tree, graphics and other multimedia, helper
files for external apps (eg, the bbdb-print TeX style files), helper
executables, and so on.



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

* Re: BBDB v3 approaching release
  2013-05-31  3:50                       ` Stephen J. Turnbull
@ 2013-05-31 14:14                         ` Tom Tromey
  2013-05-31 18:30                           ` Stephen J. Turnbull
  2013-05-31 14:42                         ` Ted Zlatanov
  1 sibling, 1 reply; 38+ messages in thread
From: Tom Tromey @ 2013-05-31 14:14 UTC (permalink / raw)
  To: Stephen J. Turnbull; +Cc: Eli Zaretskii, winkler, emacs-devel

>>>>> "Stephen" == Stephen J Turnbull <stephen@xemacs.org> writes:

Stephen> Failing that (ie, for the foreseeable future), I think what
Stephen> ELPA should do is provide a suite of functions for finding
Stephen> package resources such as elisp (installed), the source tree,
Stephen> graphics and other multimedia, helper files for external apps
Stephen> (eg, the bbdb-print TeX style files), helper executables, and
Stephen> so on.

It does already.  See (info "(elisp) Multi-file Packages"):

       If the multi-file package contains auxiliary data files (such as
    images), the package's Lisp code can refer to these files via the
    variable `load-file-name' (*note Loading::).  Here is an example:

         (defconst superfrobnicator-base (file-name-directory load-file-name))

         (defun superfrobnicator-fetch-image (file)
           (expand-file-name file superfrobnicator-base))

Tom



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

* Re: BBDB v3 approaching release
  2013-05-31  3:50                       ` Stephen J. Turnbull
  2013-05-31 14:14                         ` Tom Tromey
@ 2013-05-31 14:42                         ` Ted Zlatanov
  1 sibling, 0 replies; 38+ messages in thread
From: Ted Zlatanov @ 2013-05-31 14:42 UTC (permalink / raw)
  To: emacs-devel

On Fri, 31 May 2013 12:50:51 +0900 "Stephen J. Turnbull" <stephen@xemacs.org> wrote: 

SJT> Ted Z's proposal for enhancing ELPA packages' ability to find their
SJT> stuff is a first step in the right direction, I think.

Sorry, I don't know what I proposed :)

SJT> But AFAIK there is no spec for *user* FHS.

Besides ELPA, don't forget el-get.  It has its own directory structure
by necessity.  I don't see a problem with innovation at the user
directory level, as long as it doesn't leak into the system software.

SJT> I think what ELPA should do is provide a suite of functions for
SJT> finding package resources such as elisp (installed), the source
SJT> tree, graphics and other multimedia, helper files for external apps
SJT> (eg, the bbdb-print TeX style files), helper executables, and so
SJT> on.

The data link between Emacs and the OS and other software installed
within is pretty fragile so I don't think this is an easy integration
task.  Internally to Emacs it's no problem of course.  I think the
answer is to reduce dependency on external tools.  Emacs can do most
things on its own; `bbdb-print' is a very unusual case.

Ted




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

* Re: BBDB v3 approaching release
  2013-05-31 14:14                         ` Tom Tromey
@ 2013-05-31 18:30                           ` Stephen J. Turnbull
  0 siblings, 0 replies; 38+ messages in thread
From: Stephen J. Turnbull @ 2013-05-31 18:30 UTC (permalink / raw)
  To: Tom Tromey; +Cc: Eli Zaretskii, winkler, emacs-devel

Tom Tromey writes:
 > >>>>> "Stephen" == Stephen J Turnbull <stephen@xemacs.org> writes:

 > Stephen> Failing that (ie, for the foreseeable future), I think what
 > Stephen> ELPA should do is provide a suite of functions for finding
 > Stephen> package resources[...].
 > 
 > It does already.  See [load-file-name].

That assumes that everything is placed in a particular directory, or
perhaps in a fixed relative location to that directory.  What I have
in mind is something that supports more complex (and presumably
prettier) package organizations, so that you can do

    (locate-data-file 'my-package "sjt-face.png")

and things like that without assuming that images live in the same
directory as the Lisp code.



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

* Re: BBDB v3 approaching release
  2013-05-29 16:45       ` Ulrich Mueller
  2013-05-29 22:29         ` Stefan Monnier
@ 2013-06-01 14:34         ` Steinar Bang
  1 sibling, 0 replies; 38+ messages in thread
From: Steinar Bang @ 2013-06-01 14:34 UTC (permalink / raw)
  To: emacs-devel

>>>>> Ulrich Mueller <ulm@gentoo.org>:
>>>>> On Tue, 28 May 2013, Stefan Monnier wrote:

>> You *really* want to stick to the ELPA format. It's simple and
>> straightforward for you, and for the end-users.

> How do I configure install locations of a package if it's in ELPA
> format? Especially, if the package has non-lisp components?

Just FYI: someone already seems to have done the ELPA bit, because
snapshots of the new BBDB is available in MELPA:
 http://www.emacswiki.org/emacs/ELPA
 http://www.emacswiki.org/emacs/MELPA
 http://melpa.milkbox.net/

The BBDB snapshot I installed from MELPA yesterday, has the version
number 20130526.1945.




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

end of thread, other threads:[~2013-06-01 14:34 UTC | newest]

Thread overview: 38+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-05-27  8:18 BBDB v3 approaching release Roland Winkler
2013-05-27  8:49 ` Leo Liu
2013-05-27 15:13   ` Stefan Monnier
2013-05-27 16:13     ` Roland Winkler
2013-05-27 16:57       ` Stefan Monnier
2013-05-27 19:28         ` Roland Winkler
2013-05-27 19:35           ` Dmitry Gutov
2013-05-27 20:18             ` Roland Winkler
2013-05-28  5:32               ` Ulrich Mueller
2013-05-28  7:49                 ` Roland Winkler
2013-05-28 12:34                 ` Stefan Monnier
2013-05-27 20:59           ` Stefan Monnier
     [not found] ` <87obbvwgw6.fsf@sbs.ch>
2013-05-28 21:23   ` Roland Winkler
2013-05-28 22:29     ` Stefan Monnier
2013-05-29 13:27       ` Roland Winkler
2013-05-29 16:45       ` Ulrich Mueller
2013-05-29 22:29         ` Stefan Monnier
2013-05-30  7:14           ` Roland Winkler
2013-05-30  7:57             ` Jambunathan K
2013-05-30  8:04             ` Stephen J. Turnbull
2013-05-30 11:16               ` Roland Winkler
2013-05-30 17:25                 ` Stephen J. Turnbull
2013-05-30 17:55                   ` Stephen J. Turnbull
2013-05-30 18:22                     ` Eli Zaretskii
2013-05-30 20:47                       ` Andreas Schwab
2013-05-31  3:50                       ` Stephen J. Turnbull
2013-05-31 14:14                         ` Tom Tromey
2013-05-31 18:30                           ` Stephen J. Turnbull
2013-05-31 14:42                         ` Ted Zlatanov
2013-05-30  9:37           ` Ulrich Mueller
2013-05-30 11:24             ` Roland Winkler
2013-05-30 12:48               ` Ulrich Mueller
2013-05-30 14:57               ` Ted Zlatanov
2013-05-30 17:11                 ` Stefan Monnier
2013-05-30 20:31                   ` Ted Zlatanov
2013-05-30 14:37             ` Stefan Monnier
2013-05-30 15:03             ` Ted Zlatanov
2013-06-01 14:34         ` Steinar Bang

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