Control: severity -1 normal (Cc-ing libgccjit0 maintainers)
On Sat, 28 Jan 2023 07:44:45 -0400 David Bremner <brem...@debian.org> wrote: > > YOSHINO Yoshihito <yy.y.ja...@gmail.com> writes: > > > When I tried to install emacs-gtk or emacs-nox in bookworm, it pulls > > many development packages, especially binutils, libgcc-12-dev, > > libc6-dev and linux-libc-dev, which I would avoid to install if > > possible. They are pulled through libgccjit0, and probably used with > > the native compilation feature. It seems automatic native compilation > > can be inhibited run-time since 1:28.2+1-9. Is it possible to demote > > those dependencies to Recommends? (Probably I would also have to ask > > the libgccjit0 maintainer). > > I don't think this will be possible for bookworm. libgccjit0 is > dynamically linked to the emacs binaries, so a completely new flavour of > emacs (analogous to emacs-nox) would be needed. It is too late in the > development cycle to introduce such a thing, even if there was concensus > that doing so was worth the effort. Yes I know libgccjit0 is dynamically linked to it, so I don't intend to keep out libgccjit0. Instead I intend to keep out some of the dependencies of libgccjit0, specifically the following: - libgcc-12-dev - binutils - libc6-dev (>= 2.23-1~) I have just deliberately broken the dependencies and tested such an emacs-nox installation. It seems to work as I expected: $ LANG= sudo apt-get --no-install-recommends -V install emacs-bin-common emacs-common Reading package lists... 0% Reading package lists... 100% Reading package lists... Done Building dependency tree... 0% Building dependency tree... 0% Building dependency tree... 50% Building dependency tree... 50% Building dependency tree... Done Reading state information... 0% Reading state information... 0% Reading state information... Done The following additional packages will be installed: emacs-el (1:28.2+1-10) install-info (6.8-6+b1) Suggested packages: emacs-common-non-dfsg Recommended packages: mailutils (1:3.15-3+b2) The following NEW packages will be installed: emacs-bin-common (1:28.2+1-10) emacs-common (1:28.2+1-10) emacs-el (1:28.2+1-10) install-info (6.8-6+b1) 0 upgraded, 4 newly installed, 0 to remove and 58 not upgraded. Need to get 0 B/31.2 MB of archives. After this operation, 91.4 MB of additional disk space will be used. Do you want to continue? [Y/n] Selecting previously unselected package install-info. (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 ... 160589 files and directories currently installed.) Preparing to unpack .../install-info_6.8-6+b1_amd64.deb ... Unpacking install-info (6.8-6+b1) ... Setting up install-info (6.8-6+b1) ... Selecting previously unselected package emacs-el. (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 ... 160604 files and directories currently installed.) Preparing to unpack .../emacs-el_1%3a28.2+1-10_all.deb ... Unpacking emacs-el (1:28.2+1-10) ... Selecting previously unselected package emacs-common. Preparing to unpack .../emacs-common_1%3a28.2+1-10_all.deb ... Unpacking emacs-common (1:28.2+1-10) ... Selecting previously unselected package emacs-bin-common. Preparing to unpack .../emacs-bin-common_1%3a28.2+1-10_amd64.deb ... Unpacking emacs-bin-common (1:28.2+1-10) ... Setting up emacs-el (1:28.2+1-10) ... Setting up emacs-common (1:28.2+1-10) ... Setting up emacs-bin-common (1:28.2+1-10) ... update-alternatives: using /usr/bin/ctags.emacs to provide /usr/bin/ctags (ctags) in auto mode update-alternatives: using /usr/bin/ebrowse.emacs to provide /usr/bin/ebrowse (ebrowse) in auto mode update-alternatives: using /usr/bin/emacsclient.emacs to provide /usr/bin/emacsclient (emacsclient) in auto mode update-alternatives: using /usr/bin/etags.emacs to provide /usr/bin/etags (etags) in auto mode Processing triggers for install-info (6.8-6+b1) ... Processing triggers for mailcap (3.70+nmu1) ... Processing triggers for desktop-file-utils (0.26-1) ... Processing triggers for hicolor-icon-theme (0.17-2) ... Processing triggers for gnome-menus (3.36.0-1.1) ... Processing triggers for man-db (2.11.2-1) ... $ $ LANG= sudo dpkg --force-depends -i /var/cache/apt/archives/libgccjit0_12.2.0-14_amd64.deb Selecting previously unselected package libgccjit0:amd64. (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 ... 164696 files and directories currently installed.) Preparing to unpack .../libgccjit0_12.2.0-14_amd64.deb ... Unpacking libgccjit0:amd64 (12.2.0-14) ... dpkg: libgccjit0:amd64: dependency problems, but configuring anyway as you requested: libgccjit0:amd64 depends on libgcc-12-dev; however: Package libgcc-12-dev is not installed. libgccjit0:amd64 depends on binutils; however: Package binutils is not installed. libgccjit0:amd64 depends on libc6-dev (>= 2.23-1~); however: Package libc6-dev is not installed. Setting up libgccjit0:amd64 (12.2.0-14) ... Processing triggers for libc-bin (2.36-8) ... $ $ LANG= sudo dpkg --force-depends -i /var/cache/apt/archives/emacs-nox_1%3a28.2+1-10_amd64.deb Selecting previously unselected package emacs-nox. (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 ... 164699 files and directories currently installed.) Preparing to unpack .../emacs-nox_1%3a28.2+1-10_amd64.deb ... Unpacking emacs-nox (1:28.2+1-10) ... Setting up emacs-nox (1:28.2+1-10) ... update-alternatives: using /usr/bin/emacs-nox to provide /usr/bin/emacs (emacs) in auto mode Install emacsen-common for emacs emacsen-common: Handling install of emacsen flavor emacs Install dictionaries-common for emacs install/dictionaries-common: Byte-compiling for emacsen flavour emacs Processing triggers for man-db (2.11.2-1) ... $ $ LANG= sudo apt-get --no-install-recommends -V install emacs-nox Reading package lists... 0% Reading package lists... 100% Reading package lists... Done Building dependency tree... 0% Building dependency tree... 0% Building dependency tree... 50% Building dependency tree... 50% Building dependency tree... Done Reading state information... 0% Reading state information... 0% Reading state information... Done emacs-nox is already the newest version (1:28.2+1-10). You might want to run 'apt --fix-broken install' to correct these. The following packages have unmet dependencies: libgccjit0 : Depends: libgcc-12-dev but it is not going to be installed Depends: binutils but it is not going to be installed Depends: libc6-dev (>= 2.23-1~) but it is not going to be installed E: Unmet dependencies. Try 'apt --fix-broken install' with no packages (or specify a solution). $ (of course broken, without the dependencies) $ ldd /usr/bin/emacs linux-vdso.so.1 (0x00007ffcc99e2000) libasound.so.2 => /lib/x86_64-linux-gnu/libasound.so.2 (0x00007f50ddc64000) libacl.so.1 => /lib/x86_64-linux-gnu/libacl.so.1 (0x00007f50ddc59000) libdbus-1.so.3 => /lib/x86_64-linux-gnu/libdbus-1.so.3 (0x00007f50dd5aa000) libxml2.so.2 => /lib/x86_64-linux-gnu/libxml2.so.2 (0x00007f50dd3fe000) libgpm.so.2 => /lib/x86_64-linux-gnu/libgpm.so.2 (0x00007f50ddc51000) libtinfo.so.6 => /lib/x86_64-linux-gnu/libtinfo.so.6 (0x00007f50dd3cc000) libselinux.so.1 => /lib/x86_64-linux-gnu/libselinux.so.1 (0x00007f50dd39e000) libgnutls.so.30 => /lib/x86_64-linux-gnu/libgnutls.so.30 (0x00007f50dd000000) liblcms2.so.2 => /lib/x86_64-linux-gnu/liblcms2.so.2 (0x00007f50dd33b000) libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f50dd25c000) libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007f50ddc30000) libsystemd.so.0 => /lib/x86_64-linux-gnu/libsystemd.so.0 (0x00007f50dcf31000) libjansson.so.4 => /lib/x86_64-linux-gnu/libjansson.so.4 (0x00007f50dd24c000) libgmp.so.10 => /lib/x86_64-linux-gnu/libgmp.so.10 (0x00007f50dceb0000) libgccjit.so.0 => /lib/x86_64-linux-gnu/libgccjit.so.0 (0x00007f50dac00000) libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f50dcccf000) /lib64/ld-linux-x86-64.so.2 (0x00007f50ddd81000) libicuuc.so.72 => /lib/x86_64-linux-gnu/libicuuc.so.72 (0x00007f50daa02000) liblzma.so.5 => /lib/x86_64-linux-gnu/liblzma.so.5 (0x00007f50dd21d000) libpcre2-8.so.0 => /lib/x86_64-linux-gnu/libpcre2-8.so.0 (0x00007f50da968000) libp11-kit.so.0 => /lib/x86_64-linux-gnu/libp11-kit.so.0 (0x00007f50da834000) libidn2.so.0 => /lib/x86_64-linux-gnu/libidn2.so.0 (0x00007f50da803000) libunistring.so.2 => /lib/x86_64-linux-gnu/libunistring.so.2 (0x00007f50da64d000) libtasn1.so.6 => /lib/x86_64-linux-gnu/libtasn1.so.6 (0x00007f50dccba000) libnettle.so.8 => /lib/x86_64-linux-gnu/libnettle.so.8 (0x00007f50da5ff000) libhogweed.so.6 => /lib/x86_64-linux-gnu/libhogweed.so.6 (0x00007f50da5b6000) libcap.so.2 => /lib/x86_64-linux-gnu/libcap.so.2 (0x00007f50da5aa000) libgcrypt.so.20 => /lib/x86_64-linux-gnu/libgcrypt.so.20 (0x00007f50da463000) libzstd.so.1 => /lib/x86_64-linux-gnu/libzstd.so.1 (0x00007f50da3aa000) liblz4.so.1 => /lib/x86_64-linux-gnu/liblz4.so.1 (0x00007f50da384000) libisl.so.23 => /lib/x86_64-linux-gnu/libisl.so.23 (0x00007f50da000000) libmpc.so.3 => /lib/x86_64-linux-gnu/libmpc.so.3 (0x00007f50da362000) libmpfr.so.6 => /lib/x86_64-linux-gnu/libmpfr.so.6 (0x00007f50da2a8000) libicudata.so.72 => /lib/x86_64-linux-gnu/libicudata.so.72 (0x00007f50d8200000) libstdc++.so.6 => /lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007f50d7e00000) libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f50da288000) libffi.so.8 => /lib/x86_64-linux-gnu/libffi.so.8 (0x00007f50da27c000) libgpg-error.so.0 => /lib/x86_64-linux-gnu/libgpg-error.so.0 (0x00007f50da254000) $ $ ldd /usr/lib/x86_64-linux-gnu/libgccjit.so.0 linux-vdso.so.1 (0x00007ffffc9d5000) libisl.so.23 => /lib/x86_64-linux-gnu/libisl.so.23 (0x00007f9222600000) libmpc.so.3 => /lib/x86_64-linux-gnu/libmpc.so.3 (0x00007f9224b86000) libmpfr.so.6 => /lib/x86_64-linux-gnu/libmpfr.so.6 (0x00007f9224acc000) libgmp.so.10 => /lib/x86_64-linux-gnu/libgmp.so.10 (0x00007f922297f000) libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007f9222960000) libzstd.so.1 => /lib/x86_64-linux-gnu/libzstd.so.1 (0x00007f92228a7000) libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f9222521000) libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f9222340000) /lib64/ld-linux-x86-64.so.2 (0x00007f9224bbc000) $ (all dynamic linking looks good) $ EMACS_INHIBIT_AUTOMATIC_NATIVE_COMPILATION=t emacs -nw Loading /etc/emacs/site-start.d/00debian.el (source)...done 50dictionaries-common.el (source)... debian-ispell... /var/cache/dictionaries-common/emacsen-ispell-default.el (source)... done debian-ispell...done /var/cache/dictionaries-common/emacsen-ispell-dicts.el (source)... done etc/emacs/site-start.d/50dictionaries-common (looks fine) (typed C-x C-c) $ find .emacs.d/ .emacs.d/ $ (the native compilation is inhibited) $ LANG= emacs -nw Loading /etc/emacs/site-start.d/00debian.el (source)...done 50dictionaries-common.el (source)... debian-ispell... /var/cache/dictionaries-common/emacsen-ispell-default.el (source)... done debian-ispell...done /var/cache/dictionaries-common/emacsen-ispell-dicts.el (source)... done etc/emacs/site-start.d/50dictionaries-common Warning (comp): x86_64-linux-gnu-gcc-12: fatal error: cannot execute 'as': execvp: No such file or \ directory Disable showing Disable logging Warning (comp): x86_64-linux-gnu-gcc-12: fatal error: cannot execute 'as': execvp: No such file or \ directory Disable showing Disable logging Warning (comp): x86_64-linux-gnu-gcc-12: fatal error: cannot execute 'as': execvp: No such file or \ directory Disable showing Disable logging Warning (comp): x86_64-linux-gnu-gcc-12: fatal error: cannot execute 'as': execvp: No such file or \ directory Disable showing Disable logging Warning (comp): x86_64-linux-gnu-gcc-12: fatal error: cannot execute 'as': execvp: No such file or \ directory Disable showing Disable logging (of course, the native compilation fails) (typed C-x C-c) $ find .emacs.d/ .emacs.d/ .emacs.d/eln-cache .emacs.d/eln-cache/28.2-32ce8482 .emacs.d/eln-cache/28.2-32ce8482/debian-ispell-6348c193-269a3cf8neDIBP.eln.tmp .emacs.d/eln-cache/28.2-32ce8482/debian-startup-709b84bb-734d0b9fuGKogD.eln.tmp .emacs.d/eln-cache/28.2-32ce8482/cus-edit-3cd01345-f51dbe7aKbMyqp.eln.tmp .emacs.d/eln-cache/28.2-32ce8482/wid-edit-5b92861a-140a8fecS0s6P6.eln.tmp .emacs.d/eln-cache/28.2-32ce8482/t-mouse-b934bcc3-71477f26TRCVSv.eln.tmp .emacs.d/eln-cache/28.2-32ce8482/pp-5d47c1cc-de730a1a4ENBvO.eln.tmp $ $ LANG= ls -l .emacs.d/eln-cache/28.2-32ce8482/ total 0 -rw------- 1 user user 0 Jan 28 23:25 cus-edit-3cd01345-f51dbe7aKbMyqp.eln.tmp -rw------- 1 user user 0 Jan 28 23:24 debian-ispell-6348c193-269a3cf8neDIBP.eln.tmp -rw------- 1 user user 0 Jan 28 23:24 debian-startup-709b84bb-734d0b9fuGKogD.eln.tmp -rw------- 1 user user 0 Jan 28 23:25 pp-5d47c1cc-de730a1a4ENBvO.eln.tmp -rw------- 1 user user 0 Jan 28 23:25 t-mouse-b934bcc3-71477f26TRCVSv.eln.tmp -rw------- 1 user user 0 Jan 28 23:24 wid-edit-5b92861a-140a8fecS0s6P6.eln.tmp $ (of course, result of the native compilation is broken) So IMO in libgccjit0 demoting those Depends: to Recommends: should work. Thanks in advance, -- YOSHINO Yoshihito <yy.y.ja...@gmail.com>