Bug#909453: site of discussion for Debian digressions from ELPA spec

2018-09-24 Thread David Bremner
Nicholas D Steeves  writes:

> Package: dh-elpa
> Version: 1.14
> Severity: normal
>
> Hi David,
>
> As discussed on IRC, filing this bug.  You had also mentioned how this
> discussion might lead to an update of Policy and a wishlist bug
> against the info package.  The resolution of this issue will affect
> all elpa-packages that install things outside of their
> elpa-src/package-version dir.
>
> tldr ELPA spec: must directive to install everything to
> elpa-src/package-version.

I'm not sure I agree with your fundamental assumptions/definitions
here. We're making Debian packages that happen to include some files
under /usr/share/emacs/site-lisp. Note that for starters `elpa-src` is a
Debian invention.  In my view the upstream spec is only applicable to
those files that end up in a subdirectory of some element
package-directory-list, typically /usr/share/emacs/site-lisp/elpa. And
ommitting files from there is fine, as long as it doesn't break the
package.

>
> Obviously we want to do what's best for Debian users, #1, this means
> that /usr/share/doc/package should contain the expected documentation.
>

You'll need to be more precise. Section 12 of Debian policy specifies
where various documentation should be installed.

>   b) It's possible that there exist Emacs packages that will not run
>  if their bits are installed outside of their elpa-src dir.  We
>  should have a policy on if they should be patched and/or if
>  symlinks should be provided.  Of course this is just part of the
>  work on packaging software...

I think it's a mistake to try and make policy without concrete
examples. I'd prefer to avoid non-upstreamable patches, but e.g. it
might make sense to patch upstream to look at multiple locations for
files, and upstream that.

>
> #2 I think in most cases it would be better to digress from the
> upstream spec and install things using dh_language (the packages I'm
> aware of are irony-mode and elpy, but I'm sure there are others).

Sure, as I said above, I think your putting too much weight on the idea
of an "upstream spec". If you have a concrete problem (like the info
thing), we can discuss that.

> #3 Info pages.  Related to #1 with one caveat: Debian's standalone
> info program only support info pages outside of /usr/share/info by
> using the INFOPATH variable.  If we follow a strict definition of [a]
> then symlink /u/s/info/package.info -> elpa-src/package-version/package.info

That's not strictly correct. /usr/bin/info also understands directory
entries (/usr/bin/info/dir) that point to other places. So perhaps the
right invokation of install-info can solve the technical
problem. Unfortunately that's hidden away inside a dpkg-trigger.
A further complication is that

> However, this doesn't handle the case where GNU Emacs provides an info
> page for a mode that exists as an elpa-package (eg: org-mode).

To be precise, I think your symlink idea will lead to file conflicts for
such packages.

>   Workarounds:
>   i) make Rob's life difficult by complicating how src:emacs handles Debian
>  alternatives.

I don't think we want to do that. Things are already pretty complicated,
and essentially only Rob understands them.

>  ii) file a bug against src:info and hope that it gets fixed, and that info
>  gains the ability to read info files outside of the system
>  default INFOPATH.

One option would be to wrap /usr/bin/info in a script that reads
/etc/info.d (or wherever) and sets INFOPATH before execing
/usr/bin/info.real.  In some sense this re-invents /usr/share/info/dir
in a potentially less fragile but definitely more debian-specific
way. One advantage would be the ability to prioritize packages. It isn't
clear to me how to do that with install-info.

> iii) add support to dh-elpa for setting INFOPATH using a similar method to
>  /etc/bash_completion.d (eg: drops a file in /etc/info.d)...I guess this
>  could be useful to non-dh-elpa-using packages, but I'm not aware of any.

I think it'd kindof hopeless to try to ensure correct behaviour of
binaries in /usr/bin/ by setting the user environment. There are already
a multiplicity of user shells, each with their own startup files and
rules, and nothing prevents people from adding new shells.

>
> Meanwhile, the info issue does not exist for users who use Emacs'
> info-mode to view info files...
>

Indeed, I'm wary of creating a lot of machinery to serve a tiny or
non-existent group of users.



Bug#909453: site of discussion for Debian digressions from ELPA spec

2018-09-23 Thread Nicholas D Steeves
Package: dh-elpa
Version: 1.14
Severity: normal

Hi David,

As discussed on IRC, filing this bug.  You had also mentioned how this
discussion might lead to an update of Policy and a wishlist bug
against the info package.  The resolution of this issue will affect
all elpa-packages that install things outside of their
elpa-src/package-version dir.

tldr ELPA spec: must directive to install everything to
elpa-src/package-version.

a) Information about the ELPA spec is found in "Multi-file Packages"
   in the GNU Emacs Lisp Reference Manual, available online or from
   the non-free package emacs-common-non-dfsg info "(elisp) Multi-file
   Packages".

Obviously we want to do what's best for Debian users, #1, this means
that /usr/share/doc/package should contain the expected documentation.

  b) It's possible that there exist Emacs packages that will not run
 if their bits are installed outside of their elpa-src dir.  We
 should have a policy on if they should be patched and/or if
 symlinks should be provided.  Of course this is just part of the
 work on packaging software...

#2 I think in most cases it would be better to digress from the
upstream spec and install things using dh_language (the packages I'm
aware of are irony-mode and elpy, but I'm sure there are others).  eg:
dh_elpa handles *.el and files from other languages should be handled
using other dh_helpers (eg: dh-python in the case of elpy).  See note
at [b] as it also applies here.  I anticipate that will emerge as more
of an issue in the next 5-to-10 years with the proliferation of
interpreted languages, deeper integration between Emacs and these
languages, along with a second class of potential issues when using a
dh_language.

#3 Info pages.  Related to #1 with one caveat: Debian's standalone
info program only support info pages outside of /usr/share/info by
using the INFOPATH variable.  If we follow a strict definition of [a]
then symlink /u/s/info/package.info -> elpa-src/package-version/package.info

However, this doesn't handle the case where GNU Emacs provides an info
page for a mode that exists as an elpa-package (eg: org-mode).  Workarounds:
  i) make Rob's life difficult by complicating how src:emacs handles Debian
 alternatives.
 ii) file a bug against src:info and hope that it gets fixed, and that info
 gains the ability to read info files outside of the system default 
INFOPATH.
iii) add support to dh-elpa for setting INFOPATH using a similar method to
 /etc/bash_completion.d (eg: drops a file in /etc/info.d)...I guess this
 could be useful to non-dh-elpa-using packages, but I'm not aware of any.

Meanwhile, the info issue does not exist for users who use Emacs'
info-mode to view info files...

I hope this bug entry is reasonably complete and not too long.

Sincerely,
Nicholas