unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
* bug#44481: 28.0.50; Byte compilation doesn't work with --no-build-details
@ 2020-11-06 13:23 Philipp Stephani
  2020-11-06 17:16 ` Glenn Morris
  0 siblings, 1 reply; 7+ messages in thread
From: Philipp Stephani @ 2020-11-06 13:23 UTC (permalink / raw)
  To: 44481


When byte-compiling the Emacs sources with --no-build-details, compiling
any file that loads TRAMP fails:

$ rm lisp/eshell/em-tramp.elc && make BYTE_COMPILE_EXTRA_FLAGS=--no-build-details
[…]
  ELC      eshell/em-tramp.elc

In toplevel form:
eshell/em-tramp.el:34:13: Error: Wrong type argument: stringp, nil
[…]

This is likely because TRAMP doesn't cope with a nil `system-name'.  I
haven't checked all the details, but there are a few occasions in
tramp.el where it assumes that `system-name' is a string.  That
assumption was once valid, but with --no-build-details, it's nil.

First, we should either document that `system-name' can be nil, or
instead of using nil, inject a dummy system name such as
"unknown.invalid" (".invalid" being a reserved TLD).

Depending on the outcome of that, TRAMP should be adapted to cope with
such an unknown system name.


In GNU Emacs 28.0.50 (build 116, x86_64-pc-linux-gnu, GTK+ Version 3.24.20, cairo version 1.16.0)
Repository revision: 527413fb2ff8c073d89ee2d22d38a67c74678b27
Repository branch: master
Windowing system distributor 'The X.Org Foundation', version 11.0.12008000
System Description: Debian GNU/Linux rodete

Configured using:
 'configure --disable-build-details --enable-gcc-warnings=warn-only
 --enable-gtk-deprecation-warnings --without-pop --with-mailutils
 --enable-checking=all --enable-check-lisp-object-type --with-modules
 'CFLAGS=-O0 -ggdb3''

Configured features:
XPM JPEG TIFF GIF PNG CAIRO SOUND DBUS GSETTINGS GLIB NOTIFY INOTIFY
LIBSELINUX GNUTLS FREETYPE HARFBUZZ ZLIB TOOLKIT_SCROLL_BARS GTK3 X11
XDBE XIM MODULES THREADS LIBSYSTEMD JSON PDUMPER

Important settings:
  value of $LANG: en_US.utf8
  value of $XMODIFIERS: @im=ibus
  locale-coding-system: utf-8-unix

Major mode: Lisp Interaction

Minor modes in effect:
  tooltip-mode: t
  global-eldoc-mode: t
  eldoc-mode: t
  electric-indent-mode: t
  mouse-wheel-mode: t
  tool-bar-mode: t
  menu-bar-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  blink-cursor-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  line-number-mode: t
  transient-mark-mode: t

Load-path shadows:
None found.

Features:
(shadow sort mail-extr emacsbug message rmc dired dired-loaddefs rfc822
mml easymenu mml-sec epa epg epg-config gnus-util rmail rmail-loaddefs
time-date mm-decode mm-bodies mm-encode mail-parse rfc2231 mailabbrev
gmm-utils mailheader sendmail rfc2047 rfc2045 ietf-drums mm-util
mail-prsvr mail-utils phst skeleton derived edmacro kmacro pcase ffap
thingatpt url url-proxy url-privacy url-expand url-methods url-history
url-cookie url-domsuf url-util url-parse auth-source cl-seq eieio
eieio-core cl-macs eieio-loaddefs password-cache json map url-vars
mailcap rx gnutls puny dbus xml subr-x seq byte-opt gv bytecomp
byte-compile cconv compile text-property-search comint ansi-color ring
cl-loaddefs cl-lib tooltip eldoc electric uniquify ediff-hook vc-hooks
lisp-float-type mwheel term/x-win x-win term/common-win x-dnd tool-bar
dnd fontset image regexp-opt fringe tabulated-list replace newcomment
text-mode elisp-mode lisp-mode prog-mode register page tab-bar menu-bar
rfn-eshadow isearch timer select scroll-bar mouse jit-lock font-lock
syntax facemenu font-core term/tty-colors frame minibuffer cl-generic
cham georgian utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao
korean japanese eucjp-ms cp51932 hebrew greek romanian slovak czech
european ethiopic indian cyrillic chinese composite charscript charprop
case-table epa-hook jka-cmpr-hook help simple abbrev obarray
cl-preloaded nadvice button loaddefs faces cus-face macroexp files
window text-properties overlay sha1 md5 base64 format env code-pages
mule custom widget hashtable-print-readable backquote threads dbusbind
inotify dynamic-setting system-font-setting font-render-setting cairo
move-toolbar gtk x-toolkit x multi-tty make-network-process emacs)

Memory information:
((conses 16 69348 6897)
 (symbols 48 8639 1)
 (strings 32 24444 1317)
 (string-bytes 1 791193)
 (vectors 16 13890)
 (vector-slots 8 188852 5440)
 (floats 8 26 30)
 (intervals 56 212 0)
 (buffers 992 11))

-- 
Google Germany GmbH
Erika-Mann-Straße 33
80636 München

Geschäftsführer: Paul Manicle, Halimah DeLaine Prado
Registergericht und -nummer: Hamburg, HRB 86891
Sitz der Gesellschaft: Hamburg

Diese E-Mail ist vertraulich.  Falls Sie diese fälschlicherweise erhalten haben
sollten, leiten Sie diese bitte nicht an jemand anderes weiter, löschen Sie
alle Kopien und Anhänge davon und lassen Sie mich bitte wissen, dass die E-Mail
an die falsche Person gesendet wurde.

This e-mail is confidential.  If you received this communication by mistake,
please don’t forward it to anyone else, please erase all copies and
attachments, and please let me know that it has gone to the wrong person.





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

* bug#44481: 28.0.50; Byte compilation doesn't work with --no-build-details
  2020-11-06 13:23 bug#44481: 28.0.50; Byte compilation doesn't work with --no-build-details Philipp Stephani
@ 2020-11-06 17:16 ` Glenn Morris
  2020-11-06 17:35   ` Michael Albinus
  0 siblings, 1 reply; 7+ messages in thread
From: Glenn Morris @ 2020-11-06 17:16 UTC (permalink / raw)
  To: Philipp Stephani; +Cc: 44481


See also https://debbugs.gnu.org/34448 .

I would guess Tramp isn't the only thing expecting system-name to be a string.





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

* bug#44481: 28.0.50; Byte compilation doesn't work with --no-build-details
  2020-11-06 17:16 ` Glenn Morris
@ 2020-11-06 17:35   ` Michael Albinus
  2020-11-07 16:30     ` Michael Albinus
  0 siblings, 1 reply; 7+ messages in thread
From: Michael Albinus @ 2020-11-06 17:35 UTC (permalink / raw)
  To: Glenn Morris; +Cc: Philipp Stephani, 44481

Glenn Morris <rgm@gnu.org> writes:

> See also https://debbugs.gnu.org/34448 .
>
> I would guess Tramp isn't the only thing expecting system-name to be a string.

Perhaps system-name returns better "localhost" but nil? Or at least the
empty string, at build time with --no-build-details?

Best regards, Michael.





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

* bug#44481: 28.0.50; Byte compilation doesn't work with --no-build-details
  2020-11-06 17:35   ` Michael Albinus
@ 2020-11-07 16:30     ` Michael Albinus
  2020-11-14  9:20       ` Michael Albinus
  0 siblings, 1 reply; 7+ messages in thread
From: Michael Albinus @ 2020-11-07 16:30 UTC (permalink / raw)
  To: Philipp Stephani; +Cc: Glenn Morris, 44481

[-- Attachment #1: Type: text/plain, Size: 504 bytes --]

Michael Albinus <michael.albinus@gmx.de> writes:

> Glenn Morris <rgm@gnu.org> writes:
>
>> See also https://debbugs.gnu.org/34448 .
>>
>> I would guess Tramp isn't the only thing expecting system-name to be a string.
>
> Perhaps system-name returns better "localhost" but nil? Or at least the
> empty string, at build time with --no-build-details?

Since Tramp must also work for older Emacs versions, it needs an own fix
anyway.

Philipp, does the appended patch work for you?

Best regards, Michael.


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: Type: text/x-patch, Size: 2595 bytes --]

diff --git a/lisp/net/tramp-sh.el b/lisp/net/tramp-sh.el
index 51e15af2ef..b79fb54573 100644
--- a/lisp/net/tramp-sh.el
+++ b/lisp/net/tramp-sh.el
@@ -4927,7 +4927,7 @@ tramp-maybe-open-connection
 	      (setenv "PS1" tramp-initial-end-of-output)
               (unless (stringp tramp-encoding-shell)
                 (tramp-error vec 'file-error "`tramp-encoding-shell' not set"))
-	      (let* ((current-host (system-name))
+	      (let* ((current-host tramp-system-name)
 		     (target-alist (tramp-compute-multi-hops vec))
 		     ;; We will apply `tramp-ssh-controlmaster-options'
 		     ;; only for the first hop.
diff --git a/lisp/net/tramp.el b/lisp/net/tramp.el
index 55f652fa9a..2e32481198 100644
--- a/lisp/net/tramp.el
+++ b/lisp/net/tramp.el
@@ -175,6 +175,12 @@ tramp-encoding-command-interactive
   :version "24.1"
   :type '(choice (const nil) string))

+;; Since Emacs 26.1, `system-name' can return `nil' at build time if
+;; Emacs is compiled with "--no-build-details".  We do expect it to be
+;; a string.  (Bug#44481)
+(defconst tramp-system-name (or (system-name) "")
+  "The system name Tramp is running locally.")
+
 (defvar tramp-methods nil
   "Alist of methods for remote files.
 This is a list of entries of the form (NAME PARAM1 PARAM2 ...).
@@ -416,7 +422,7 @@ tramp-default-user-alist
 		       (choice :tag "  Host regexp" regexp sexp)
 		       (choice :tag "    User name" string (const nil)))))

-(defcustom tramp-default-host (system-name)
+(defcustom tramp-default-host tramp-system-name
   "Default host to use for transferring files.
 Useful for su and sudo methods mostly."
   :type 'string)
@@ -471,8 +477,8 @@ tramp-save-ad-hoc-proxies
 (defcustom tramp-restricted-shell-hosts-alist
   (when (memq system-type '(windows-nt))
     (list (format "\\`\\(%s\\|%s\\)\\'"
-		  (regexp-quote (downcase (system-name)))
-		  (regexp-quote (upcase (system-name))))))
+		  (regexp-quote (downcase tramp-system-name))
+		  (regexp-quote (upcase tramp-system-name)))))
   "List of hosts, which run a restricted shell.
 This is a list of regular expressions, which denote hosts running
 a restricted shell like \"rbash\".  Those hosts can be used as
@@ -485,7 +491,7 @@ tramp-local-host-regexp
   (concat
    "\\`"
    (regexp-opt
-    (list "localhost" "localhost6" (system-name) "127.0.0.1" "::1") t)
+    (list "localhost" "localhost6" tramp-system-name "127.0.0.1" "::1") t)
    "\\'")
   "Host names which are regarded as local host.
 If the local host runs a chrooted environment, set this to nil."

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

* bug#44481: 28.0.50; Byte compilation doesn't work with --no-build-details
  2020-11-07 16:30     ` Michael Albinus
@ 2020-11-14  9:20       ` Michael Albinus
  2020-11-21 15:09         ` Michael Albinus
  0 siblings, 1 reply; 7+ messages in thread
From: Michael Albinus @ 2020-11-14  9:20 UTC (permalink / raw)
  To: Philipp Stephani; +Cc: Glenn Morris, 44481

Michael Albinus <michael.albinus@gmx.de> writes:

> Since Tramp must also work for older Emacs versions, it needs an own fix
> anyway.
>
> Philipp, does the appended patch work for you?

Ping.

Best regards, Michael.





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

* bug#44481: 28.0.50; Byte compilation doesn't work with --no-build-details
  2020-11-14  9:20       ` Michael Albinus
@ 2020-11-21 15:09         ` Michael Albinus
  2020-11-22 20:09           ` Philipp Stephani
  0 siblings, 1 reply; 7+ messages in thread
From: Michael Albinus @ 2020-11-21 15:09 UTC (permalink / raw)
  To: Philipp Stephani; +Cc: Glenn Morris, 44481-done

Michael Albinus <michael.albinus@gmx.de> writes:

>> Since Tramp must also work for older Emacs versions, it needs an own fix
>> anyway.
>>
>> Philipp, does the appended patch work for you?
>
> Ping.

It's a pity that you don't react. Closing the bug, it is fixed for Tramp.

Best regards, Michael.





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

* bug#44481: 28.0.50; Byte compilation doesn't work with --no-build-details
  2020-11-21 15:09         ` Michael Albinus
@ 2020-11-22 20:09           ` Philipp Stephani
  0 siblings, 0 replies; 7+ messages in thread
From: Philipp Stephani @ 2020-11-22 20:09 UTC (permalink / raw)
  To: Michael Albinus; +Cc: Glenn Morris, 44481-done

Am Sa., 21. Nov. 2020 um 16:09 Uhr schrieb Michael Albinus
<michael.albinus@gmx.de>:
>
> Michael Albinus <michael.albinus@gmx.de> writes:
>
> >> Since Tramp must also work for older Emacs versions, it needs an own fix
> >> anyway.
> >>
> >> Philipp, does the appended patch work for you?
> >
> > Ping.
>
> It's a pity that you don't react.

Sorry for the delay. In general, there's almost never a need to wait
for me to respond - the initial bug report is hopefully clear and
reproducible, so if your patch fixes the initial report, feel free to
immediately push it and close the report without waiting for me. If
something doesn't work, I'll reopen the bug.

> Closing the bug, it is fixed for Tramp.

Thanks.





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

end of thread, other threads:[~2020-11-22 20:09 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-11-06 13:23 bug#44481: 28.0.50; Byte compilation doesn't work with --no-build-details Philipp Stephani
2020-11-06 17:16 ` Glenn Morris
2020-11-06 17:35   ` Michael Albinus
2020-11-07 16:30     ` Michael Albinus
2020-11-14  9:20       ` Michael Albinus
2020-11-21 15:09         ` Michael Albinus
2020-11-22 20:09           ` Philipp Stephani

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