alexmurray / emacs-snap

GNU Emacs in a snap
https://snapcraft.io/emacs
72 stars 12 forks source link

gnus manual is missing - can't install #75

Closed PavoDive closed 10 months ago

PavoDive commented 10 months ago

This is my setup:

user@Machine:~$ lsb_release -a
    No LSB modules are available.
    Distributor ID: Ubuntu
    Description:    Ubuntu 20.04.6 LTS
    Release:    20.04
    Codename:   focal
user@Machine:~$ which emacs
    /snap/bin/emacs
user@Machine:~$ emacs --version
    GNU Emacs 29.1
    Development version 28fb02492c24 on master branch; build date 2023-09-23.
    Copyright (C) 2023 Free Software Foundation, Inc.
    GNU Emacs comes with ABSOLUTELY NO WARRANTY.
    You may redistribute copies of GNU Emacs
    under the terms of the GNU General Public License.
    For more information about these matters, see the file named COPYING.

I wanted to read the gnus manual inside emacs, but it's apparently missing. As per one of the answers to this post in emacs.stackexchange, this may be because of conflicts between the GNU documentation license and the Debian guidelines. The answer suggests installing the emacs24-common-non-dfsg (or corresponding version: 26 at the moment of writing) through apt, which isn't really viable in my case, as I installed emacs through snap.

This is the screenshot of my emacs info (C-h i):

This is the screenshot of my emacs info (`C-h i`)

In the "emacs" manual, I can find that gnus is one of the capters (chapeter 34, under "advanced features"), but the full manual is missing (the full manual can be found online at https://gnus.org/manual/gnus.html ).

I asked a related question in askubuntu.com and was directed to file an issue here.

What can be done to install the gnus manual into emacs' snap?

alexmurray commented 10 months ago

Thanks for filing this issue but I am unable to reproduce it on a fresh Ubuntu 20.04 VM:

sudo snap install --classic emacs
emacs

# then inside emacs
M-x info
# C-s to find Gnus on that page - then can hit enter on the result to open the gnus manual

image

image

alexmurray commented 10 months ago

More details from the test above:

amurray@sec-focal-amd64:~$ emacs --version
GNU Emacs 29.1
Development version 28fb02492c24 on master branch; build date 2023-09-23.
Copyright (C) 2023 Free Software Foundation, Inc.
GNU Emacs comes with ABSOLUTELY NO WARRANTY.
You may redistribute copies of GNU Emacs
under the terms of the GNU General Public License.
For more information about these matters, see the file named COPYING.
amurray@sec-focal-amd64:~$ snap info emacs
name:      emacs
summary:   GNU Emacs is the extensible self-documenting text editor
publisher: Alex Murray (alexmurray✪)
store-url: https://snapcraft.io/emacs
contact:   https://github.com/alexmurray/emacs-snap/issues
license:   GPL-3.0+
description: |
  Emacs is the extensible, customizable, self-documenting real-time
  display editor.

  Features include:
    * Content-aware editing modes, including syntax coloring, for many file types.
    * Complete built-in documentation, including a tutorial for new users.
    * Full Unicode support for nearly all human scripts.
    * Highly customizable, using Emacs Lisp code or a graphical interface.
    * An entire ecosystem of functionality beyond text editing, including a project
      planner, mail and news reader, debugger interface, calendar, and more.
    * A packaging system for downloading and installing extensions.

  This snap is built via the build.snapcraft.io service from the
  snapcraft.yaml definition at https://github.com/alexmurray/emacs-snap to
  ensure source and build transparency.
commands:
  - emacs.ctags
  - emacs.ebrowse
  - emacs
  - emacs.emacsclient
  - emacs.etags
snap-id:      4gE2S31SnK2LeqsZF8XTPuHOlqlzbqsW
tracking:     latest/stable
refresh-date: today at 12:40 ACDT
channels:
  latest/stable:    29.1                   2023-09-23 (2249) 345MB classic
  latest/candidate: 29.1                   2023-09-23 (2249) 345MB classic
  latest/beta:      29.1                   2023-09-23 (2249) 345MB classic
  latest/edge:      30.0.50-master-65600b9 2023-11-21 (2283) 347MB classic
  pgtk/stable:      –                                              
  pgtk/candidate:   –                                              
  pgtk/beta:        –                                              
  pgtk/edge:        30.0.50-master-65600b9 2023-11-21 (2284) 346MB classic
  28.x/stable:      28.2                   2023-09-23 (2192) 241MB classic
  28.x/candidate:   ↑                                              
  28.x/beta:        28.2                   2023-09-23 (2256) 241MB classic
  28.x/edge:        ↑                                              
installed:          29.1                              (2249) 345MB classic
amurray@sec-focal-amd64:~$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 20.04.6 LTS
Release:    20.04
Codename:   focal
alexmurray commented 10 months ago

It also works fine under a graphical emacs frame too:

image

PavoDive commented 10 months ago

Hi Alex, Thanks for taking the time to check this.

I uninstalled emacs completely, reinstalled it with the --classic flag, and still see the gnus manual is missing:

user@Machine:~$ sudo snap remove emacs
[sudo] password for user: 
emacs removed
user@Machine:~$ emacs --version
bash: emacs: command not found
user@Machine:~$ sudo snap install --classic emacs
emacs 29.1 from Alex Murray (alexmurray✪) installed
user@Machine:~$ emacs

This is what I get after C-h i in the emacs session:

image

As you can see, I still have the ESS, Magit, Company and emacs manuals (among others), but the gnus one is missing.

Am I missing any sort of package or library?

Alternatively, is there a way to download the tar.gz file of the manual and manually install it? and if so, where?

This is what I have in usr/share/info:

user@Machine:~/.emacs.d$ ls /usr/share/info/
automake-1.16.info-1.gz      gnupg-module-overview.png
automake-1.16.info-2.gz      gperf.info.gz
automake-1.16.info.gz        grep.info.gz
automake-history.info.gz     grub-dev.info.gz
autosprintf.info.gz          grub.info-1.gz
bc.info.gz                   grub.info-2.gz
bzip2.info.gz                grub.info.gz
coreutils.info.gz            gzip.info.gz
dc.info.gz                   info-stnd.info.gz
diffutils.info.gz            libffi.info.gz
dir                          lzip-compressor.info.gz
dir.old                      lzip-decompressor.info.gz
ed.info.gz                   lzip.info.gz
elisp.info.gz                lzip.lzip.info.gz
emacs.info.gz                m4.info-1.gz
ess.info.gz                  m4.info-2.gz
find.info-1.gz               m4.info.gz
find.info-2.gz               mtools.info.gz
find.info.gz                 nano.info.gz
find-maint.info.gz           rluserman.info.gz
flex.info-1.gz               sed.info.gz
flex.info-2.gz               spd-say.info.gz
flex.info.gz                 speech-dispatcher.info.gz
gettext.info.gz              ssip.info.gz
gnupg-card-architecture.png  time.info.gz
gnupg.info-1.gz              udunits2lib.info.gz
gnupg.info-2.gz              wget.info.gz
gnupg.info.gz

I checked Info-directory-list and noticed that there's no directory for gnus:

M-x describe-variable Info-directory-list RET

Info-directory-list is a variable defined in ‘info.el’.

Its value is
("/home/user/.emacs.d/elpa/company-20231119.52" "/home/user/.emacs.d/elpa/ess-20230807.1422" "/home/user/.emacs.d/elpa/magit-20231117.1800" "/home/user/.emacs.d/elpa/magit-section-20231014.1405" "/home/user/.emacs.d/elpa/dash-20230714.723" "/home/user/.emacs.d/elpa/transient-20231112.923" "/home/user/.emacs.d/elpa/with-editor-20230917.958" "/home/user/.emacs.d/elpa/compat-29.1.4.4" "" "/usr/local/texlive/2023/texmf-dist/doc/info")

when I ls .emacs.d/elpa/, there's nothing similar to gnus.

The variable Info-default-directory-list is set to nil.

PavoDive commented 10 months ago

After reading a lot, I found that there is a version-independent common-non-dfsg package, so I installed it with sudo apt-get install emacs-common-non-dfsg and a lot of manuals (not only gnus) were downloaded to /usr/share/info. I also realized that the environment variable INFOPATH dind't have /usr/share/info among the entries, so I did INFOPATH = /usr/share/info:$INFOPATH; export INFOPATH, and now I have the gnus manual (among many others).

Thanks Alex for a great snap and for your help!