Bug#905235: emacs-goodies-el failed to install due to old broken symlinks

2018-08-05 Thread Nicholas D Steeves
Control: tag -1 + pending

Hi Jörg and Göran,

In the absence of feedback I plan to upload a new revision of
emacs-goodies-el with a hard dependency on emacsen-common >= 3.0.2
sometime in the next 24h.

Cheers,
Nicholas


signature.asc
Description: PGP signature


Bug#905235: emacs-goodies-el failed to install due to old broken symlinks

2018-08-04 Thread Nicholas D Steeves
Hi Göran,

On Fri, Aug 03, 2018 at 10:31:08AM +0200, Göran Weinholt wrote:
> Package: emacs-goodies-el
> Version: 40.0
> Followup-For: Bug #905235
> 
> Hi,
> 
> I ran into this myself today and had a stab at reproducing it. In case
> it doesn't work on your machine, you can try it with Docker:
> 
> $ docker run -it debian:buster-20180716
> 
> # echo deb http://snapshot.debian.org/archive/debian/20180802T205558Z buster 
> main > /etc/apt/sources.list
> # apt update
> # apt -y --no-install-recommends install emacs25-nox=25.2+1-6+b3 
> emacs-goodies-el=39.0
> # echo deb http://snapshot.debian.org/archive/debian/20180802T205558Z sid 
> main > /etc/apt/sources.list
> # apt update
> # apt -y --no-install-recommends upgrade

Ah, that's what's happening!  Bugs are popping up in various emacs
packages that don't use dh-elpa because users are doing partial
upgrades to sid without installing the new emacsen-common.  It's a bit
heavy-handed, but having packages such as emacs-goodies-el (or w3m-el,
see #903200) declare a hard dependency on emacsen-common >= 3.0.2 will
prevent this issue from triggering.  I confirmed this 3 Aug with
clean chroot upgrades of buster from @/20180802T205558Z to sid.

Russ,

On Sat, 04 Aug 2018 09:41:17 -0700, Russ Allbery wrote:

> Filed as important rather than higher since I think this may be some
> edge case that happened on my system rather than a universal problem,
> since I haven't let the emacs25 -> emacs upgrade happen yet (waiting
> for auctex).

Yes, to my eye that is what's causing this.

On a related issue, it seems a number of users are upgrading
emacs-goodies-el without installing recommends.  At some point
Emacs-goodies-el will become a dummy transitional package that only
contains documentation.  If these dependencies remain as recommends
and users --no-install-recommends then they will lose functionality
that was previously part of goodies—gives users maximum freedom to do
so.

Alternatively, we can make emacs-goodies-el hard depend on this
packages.  This is what a dummy transitional package usually does.  A
side effect of this is that some of the modes have heavier depends
than in the past.  Eg: eproject now depends on helm.

Cheers,
Nicholas



Bug#905235: emacs-goodies-el failed to install due to old broken symlinks

2018-08-03 Thread Göran Weinholt
Package: emacs-goodies-el
Version: 40.0
Followup-For: Bug #905235

Hi,

I ran into this myself today and had a stab at reproducing it. In case
it doesn't work on your machine, you can try it with Docker:

$ docker run -it debian:buster-20180716

# echo deb http://snapshot.debian.org/archive/debian/20180802T205558Z buster 
main > /etc/apt/sources.list
# apt update
# apt -y --no-install-recommends install emacs25-nox=25.2+1-6+b3 
emacs-goodies-el=39.0
# echo deb http://snapshot.debian.org/archive/debian/20180802T205558Z sid main 
> /etc/apt/sources.list
# apt update
# apt -y --no-install-recommends upgrade

It fails in this manner:

Preparing to unpack .../6-emacs-goodies-el_40.0_all.deb ...
Remove emacs-goodies-el for emacs25
remove/emacs-goodies-el: purging byte-compiled files for emacs25
Unpacking emacs-goodies-el (40.0) over (39.0) ...

Install emacs-goodies-el for emacs25
install/emacs-goodies-el: Handling emacs25, logged in /tmp/elc_D2D0Aw.log
Building autoloads for emacs25 in /usr/share/emacs25/site-lisp/emacs-goodies-el
ERROR: install script from emacs-goodies-el package failed
dpkg: error processing package emacs-goodies-el (--configure):
 installed emacs-goodies-el package post-installation script subprocess 
returned error exit status 1

emacs25 -batch --no-site-file --multibyte --eval (setq load-path (cons "." 
load-path)) -l autoload --eval (setq generated-autoload-file (expand-file-name 
"emacs-goodies-loaddefs.el")) --eval (setq make-backup-files nil) -f 
batch-update-autoloads .
Warning (initialization): Ignoring obsolete arg --multibyte
align-string.el:0:0: error: file-error: (Opening input file No such file or 
directory /usr/share/emacs25/site-lisp/emacs-goodies-el/align-string.el)

Most of the symlinks are broken, not only align-string.el:

# ls -lL /usr/share/emacs25/site-lisp/emacs-goodies-el/ 2>/dev/null
total 188
l? ? ???? align-string.el
-rw-r--r-- 1 root root  7045 Aug  1 01:58 all.el
l? ? ???? apache-mode.el
l? ? ???? ascii.el
l? ? ???? bar-cursor.el
l? ? ???? boxquote.el
l? ? ???? browse-huge-tar.el
l? ? ???? button-lock.el
l? ? ???? clipper.el
l? ? ???? coffee.el
l? ? ???? color-theme-library.el
l? ? ???? color-theme.el
l? ? ???? color-theme_seldefcustom.el
l? ? ???? ctypes.el
l? ? ???? dedicated.el
l? ? ???? df.el
-rw-r--r-- 1 root root  7428 Aug  1 01:58 dir-locals.el
l? ? ???? edit-env.el
l? ? ???? egocentric.el
-rw-r--r-- 1 root root  1631 Aug  1 01:58 emacs-goodies-custom.el
-rw-r--r-- 1 root root  3720 Aug  1 01:58 emacs-goodies-el.el
-rw-r--r-- 1 root root   104 Aug  3 07:57 emacs-goodies-loaddefs.el
-rw-r--r-- 1 root root 45619 Aug  1 01:58 ff-paths.el
l? ? ???? floatbg.el
l? ? ???? initsplit.el
l? ? ???? joc-toggle-buffer.el
l? ? ???? joc-toggle-case.el
l? ? ???? keydef.el
l? ? ???? keywiz.el
l? ? ???? lcomp.el
l? ? ???? map-lines.el
l? ? ???? maplev.el
l? ? ???? marker-visit.el
l? ? ???? miniedit.el
l? ? ???? mutt-alias.el
-rw-r--r-- 1 root root 54765 Aug  1 01:58 muttrc-mode.el
l? ? ???? pack-windows.el
l? ? ???? perldoc.el
l? ? ???? pp-c-l.el
-rw-r--r-- 1 root root  9819 Aug  1 01:58 projects.el
l? ? ???? protbuf.el
l? ? ???? setnu.el
l? ? ???? shell-command.el
l? ? ???? silly-mail.el
l? ? ???? slang-mode.el
l? ? ???? tc.el
l? ? ???? tlc.el
-rw-r--r-- 1 root root 11446 Aug  1 01:58 tld.el
l? ? ???? todoo.el
l? ? ???? toggle-option.el
-rw-r--r-- 1 root root 10745 Aug  1 01:58 twiddle.el
l? ? ???? under.el
-rw-r--r-- 1 root root 19643 Aug  1 01:58 xrdb-mode.el

-- System Information:
Debian Release: buster/sid
  APT prefers unstable
  APT policy: (800, 'unstable'), (1, 'experimental')
Architecture: amd64 (x86_64)
Foreign Architectures: i386, armhf, 

Bug#905235: emacs-goodies-el failed to install due to old broken symlinks

2018-08-02 Thread Nicholas D Steeves
stretch2buster: installed emacs-nox (uses emacs24-nox)
installed emacs-goodies-el
modified /etc/apt/sources.list and ran dist-upgrade
  - to buster
dist-upgrade succeeded
emacs-goodies-el 36.3+nmu1 to 40.0 succeeded
  - installed 40.0 with dpkg on top of buster's 39.9

Automated piuparts are also good:
  https://piuparts.debian.org/sid/source/e/emacs-goodies-el.html

I'll keep an eye on the piuparts page.

Were you using aptitude when this bug was triggered?

Cheers,
Nicholas


signature.asc
Description: PGP signature


Bug#905235: emacs-goodies-el failed to install due to old broken symlinks

2018-08-01 Thread Nicholas D Steeves
Control: tag -1 + moreinfo

Hi Jörg,

Thank you very much for your bug report, reply follows inline.

On Wed, Aug 01, 2018 at 08:30:19PM +0200, Jörg Sommer wrote:
> Package: emacs-goodies-el
> Version: 40.0
> Severity: normal
> 
> Hi,
> 
> today, I've upgraded to 40.0, but it failed:
...
> Remove emacs-goodies-el for emacs25
...
> Install emacsen-common for emacs25
> emacsen-common: Handling install of emacsen flavor emacs25
> Install emacs-goodies-el for emacs25
> install/emacs-goodies-el: Handling emacs25, logged in /tmp/elc_wIafhR.log
> Building autoloads for emacs25 in 
> /usr/share/emacs25/site-lisp/emacs-goodies-el
> ERROR: install script from emacs-goodies-el package failed

Just to confirm, is your emacs25 a transitional package to
emacs (unversioned)?

> remove/emacs-goodies-el: purging byte-compiled files for emacs25
> Unpacking emacs-goodies-el (40.0) over (39.0) ...
> dpkg: error processing package emacs-goodies-el (--configure):
>  installed emacs-goodies-el package post-installation script subprocess 
> returned error exit status 1
> Setting up libthai0:amd64 (0.1.28-1) ...
> Setting up libthai0:i386 (0.1.28-1) ...
> Processing triggers for libc-bin (2.27-5) ...
> Errors were encountered while processing:
>  emacs-goodies-el
> Log ended: 2018-08-01  20:12:00
> ```
> 
> /var/log/apt/term.log
> ```
> emacs25 -batch --no-site-file --multibyte --eval (setq load-path (cons "." 
> load-path)) -l autoload --eval (setq generated-autoload-file 
> (expand-file-name "emacs-goodies-loaddefs.el")) --eval (setq 
> make-backup-files nil) -f batch-update-autoloads .
> Warning (initialization): Ignoring obsolete arg --multibyte
> align-string.el:0:0: error: file-error: (Opening input file No such file or 
> directory /usr/share/emacs25/site-lisp/emacs-goodies-el/align-string.el)
> ```
> 
> ```shell
> % print -l /usr/share/emacs25/site-lisp/emacs-goodies-el/*(-@)
> /usr/share/emacs25/site-lisp/emacs-goodies-el/apache-mode.el
> /usr/share/emacs25/site-lisp/emacs-goodies-el/ascii.el
> /usr/share/emacs25/site-lisp/emacs-goodies-el/bar-cursor.el
> /usr/share/emacs25/site-lisp/emacs-goodies-el/boxquote.el
> /usr/share/emacs25/site-lisp/emacs-goodies-el/browse-huge-tar.el
> /usr/share/emacs25/site-lisp/emacs-goodies-el/button-lock.el
> /usr/share/emacs25/site-lisp/emacs-goodies-el/clipper.el
> /usr/share/emacs25/site-lisp/emacs-goodies-el/coffee.el
> /usr/share/emacs25/site-lisp/emacs-goodies-el/color-theme.el
> /usr/share/emacs25/site-lisp/emacs-goodies-el/color-theme-library.el
> /usr/share/emacs25/site-lisp/emacs-goodies-el/color-theme_seldefcustom.el
> /usr/share/emacs25/site-lisp/emacs-goodies-el/ctypes.el
> /usr/share/emacs25/site-lisp/emacs-goodies-el/dedicated.el
> /usr/share/emacs25/site-lisp/emacs-goodies-el/df.el
> /usr/share/emacs25/site-lisp/emacs-goodies-el/edit-env.el
> /usr/share/emacs25/site-lisp/emacs-goodies-el/egocentric.el
> /usr/share/emacs25/site-lisp/emacs-goodies-el/floatbg.el
> /usr/share/emacs25/site-lisp/emacs-goodies-el/initsplit.el
> /usr/share/emacs25/site-lisp/emacs-goodies-el/joc-toggle-buffer.el
> /usr/share/emacs25/site-lisp/emacs-goodies-el/joc-toggle-case.el
> /usr/share/emacs25/site-lisp/emacs-goodies-el/keydef.el
> /usr/share/emacs25/site-lisp/emacs-goodies-el/keywiz.el
> /usr/share/emacs25/site-lisp/emacs-goodies-el/lcomp.el
> /usr/share/emacs25/site-lisp/emacs-goodies-el/maplev.el
> /usr/share/emacs25/site-lisp/emacs-goodies-el/map-lines.el
> /usr/share/emacs25/site-lisp/emacs-goodies-el/marker-visit.el
> /usr/share/emacs25/site-lisp/emacs-goodies-el/miniedit.el
> /usr/share/emacs25/site-lisp/emacs-goodies-el/mutt-alias.el
> /usr/share/emacs25/site-lisp/emacs-goodies-el/pack-windows.el
> /usr/share/emacs25/site-lisp/emacs-goodies-el/perldoc.el
> /usr/share/emacs25/site-lisp/emacs-goodies-el/pp-c-l.el
> /usr/share/emacs25/site-lisp/emacs-goodies-el/protbuf.el
> /usr/share/emacs25/site-lisp/emacs-goodies-el/setnu.el
> /usr/share/emacs25/site-lisp/emacs-goodies-el/shell-command.el
> /usr/share/emacs25/site-lisp/emacs-goodies-el/silly-mail.el
> /usr/share/emacs25/site-lisp/emacs-goodies-el/slang-mode.el
> /usr/share/emacs25/site-lisp/emacs-goodies-el/tc.el
> /usr/share/emacs25/site-lisp/emacs-goodies-el/tlc.el
> /usr/share/emacs25/site-lisp/emacs-goodies-el/todoo.el
> /usr/share/emacs25/site-lisp/emacs-goodies-el/toggle-option.el
> /usr/share/emacs25/site-lisp/emacs-goodies-el/under.el
> ```
> 
> I've removed these files and the package install (`apt install -f`) went
> fine.

I wonder why only
/usr/share/emacs25/site-lisp/emacs-goodies-el/align-string.el was
missing?  Kudos for the proactive workaround :-)  In response to this
bug I'm trying to determine if a maintscript is necessary to prevent
others from encountering this issue.  P.S, a Debian Emacsen team
goal for buster is for emacs-goodies-el to become a documentation-only
transitional package.

> -- System Information:
> Debian Release: buster/sid
>   APT prefers unstable-debug
>   APT policy: (500, 

Bug#905235: emacs-goodies-el failed to install due to old broken symlinks

2018-08-01 Thread Jörg Sommer
Package: emacs-goodies-el
Version: 40.0
Severity: normal

Hi,

today, I've upgraded to 40.0, but it failed:

/var/log/apt/term.log
```
Log started: 2018-08-01  20:11:49
(Reading database ... 
(Reading database ... 5%
(Reading database ... 10%
(Reading database ... 15%
(Reading database ... 20%
(Reading database ... 25%
(Reading database ... 30%
(Reading database ... 35%
(Reading database ... 40%
(Reading database ... 45%
(Reading database ... 50%
(Reading database ... 55%
(Reading database ... 60%
(Reading database ... 65%
(Reading database ... 70%
(Reading database ... 75%
(Reading database ... 80%
(Reading database ... 85%
(Reading database ... 90%
(Reading database ... 95%
(Reading database ... 100%
(Reading database ... 422169 files and directories currently installed.)
Preparing to unpack .../emacs-goodies-el_40.0_all.deb ...
Remove emacs-goodies-el for emacs25
remove/emacs-goodies-el: purging byte-compiled files for emacs25
Unpacking emacs-goodies-el (40.0) over (39.0) ...
Preparing to unpack .../libthai-data_0.1.28-1_all.deb ...
Unpacking libthai-data (0.1.28-1) over (0.1.27-2) ...
Preparing to unpack .../libthai0_0.1.28-1_i386.deb ...
De-configuring libthai0:amd64 (0.1.27-2) ...
Unpacking libthai0:i386 (0.1.28-1) over (0.1.27-2) ...
Preparing to unpack .../libthai0_0.1.28-1_amd64.deb ...
Unpacking libthai0:amd64 (0.1.28-1) over (0.1.27-2) ...
Processing triggers for install-info (6.5.0.dfsg.1-4) ...
Processing triggers for libc-bin (2.27-5) ...
Setting up libthai-data (0.1.28-1) ...
Setting up emacs-goodies-el (40.0) ...
Install emacsen-common for emacs25
emacsen-common: Handling install of emacsen flavor emacs25
Install emacs-goodies-el for emacs25
install/emacs-goodies-el: Handling emacs25, logged in /tmp/elc_wIafhR.log
Building autoloads for emacs25 in /usr/share/emacs25/site-lisp/emacs-goodies-el
ERROR: install script from emacs-goodies-el package failed
dpkg: error processing package emacs-goodies-el (--configure):
 installed emacs-goodies-el package post-installation script subprocess 
returned error exit status 1
Setting up libthai0:amd64 (0.1.28-1) ...
Setting up libthai0:i386 (0.1.28-1) ...
Processing triggers for libc-bin (2.27-5) ...
Errors were encountered while processing:
 emacs-goodies-el
Log ended: 2018-08-01  20:12:00
```

/var/log/apt/term.log
```
emacs25 -batch --no-site-file --multibyte --eval (setq load-path (cons "." 
load-path)) -l autoload --eval (setq generated-autoload-file (expand-file-name 
"emacs-goodies-loaddefs.el")) --eval (setq make-backup-files nil) -f 
batch-update-autoloads .
Warning (initialization): Ignoring obsolete arg --multibyte
align-string.el:0:0: error: file-error: (Opening input file No such file or 
directory /usr/share/emacs25/site-lisp/emacs-goodies-el/align-string.el)
```

```shell
% print -l /usr/share/emacs25/site-lisp/emacs-goodies-el/*(-@)
/usr/share/emacs25/site-lisp/emacs-goodies-el/apache-mode.el
/usr/share/emacs25/site-lisp/emacs-goodies-el/ascii.el
/usr/share/emacs25/site-lisp/emacs-goodies-el/bar-cursor.el
/usr/share/emacs25/site-lisp/emacs-goodies-el/boxquote.el
/usr/share/emacs25/site-lisp/emacs-goodies-el/browse-huge-tar.el
/usr/share/emacs25/site-lisp/emacs-goodies-el/button-lock.el
/usr/share/emacs25/site-lisp/emacs-goodies-el/clipper.el
/usr/share/emacs25/site-lisp/emacs-goodies-el/coffee.el
/usr/share/emacs25/site-lisp/emacs-goodies-el/color-theme.el
/usr/share/emacs25/site-lisp/emacs-goodies-el/color-theme-library.el
/usr/share/emacs25/site-lisp/emacs-goodies-el/color-theme_seldefcustom.el
/usr/share/emacs25/site-lisp/emacs-goodies-el/ctypes.el
/usr/share/emacs25/site-lisp/emacs-goodies-el/dedicated.el
/usr/share/emacs25/site-lisp/emacs-goodies-el/df.el
/usr/share/emacs25/site-lisp/emacs-goodies-el/edit-env.el
/usr/share/emacs25/site-lisp/emacs-goodies-el/egocentric.el
/usr/share/emacs25/site-lisp/emacs-goodies-el/floatbg.el
/usr/share/emacs25/site-lisp/emacs-goodies-el/initsplit.el
/usr/share/emacs25/site-lisp/emacs-goodies-el/joc-toggle-buffer.el
/usr/share/emacs25/site-lisp/emacs-goodies-el/joc-toggle-case.el
/usr/share/emacs25/site-lisp/emacs-goodies-el/keydef.el
/usr/share/emacs25/site-lisp/emacs-goodies-el/keywiz.el
/usr/share/emacs25/site-lisp/emacs-goodies-el/lcomp.el
/usr/share/emacs25/site-lisp/emacs-goodies-el/maplev.el
/usr/share/emacs25/site-lisp/emacs-goodies-el/map-lines.el
/usr/share/emacs25/site-lisp/emacs-goodies-el/marker-visit.el
/usr/share/emacs25/site-lisp/emacs-goodies-el/miniedit.el
/usr/share/emacs25/site-lisp/emacs-goodies-el/mutt-alias.el
/usr/share/emacs25/site-lisp/emacs-goodies-el/pack-windows.el
/usr/share/emacs25/site-lisp/emacs-goodies-el/perldoc.el
/usr/share/emacs25/site-lisp/emacs-goodies-el/pp-c-l.el
/usr/share/emacs25/site-lisp/emacs-goodies-el/protbuf.el
/usr/share/emacs25/site-lisp/emacs-goodies-el/setnu.el
/usr/share/emacs25/site-lisp/emacs-goodies-el/shell-command.el
/usr/share/emacs25/site-lisp/emacs-goodies-el/silly-mail.el