all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
* bug#72526: 31.0.50; [PATCH] Fix url-basic-auth secret search when passing username and/or port
@ 2024-08-08 14:59 Björn Bidar via Bug reports for GNU Emacs, the Swiss army knife of text editors
  0 siblings, 0 replies; 16+ messages in thread
From: Björn Bidar via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2024-08-08 14:59 UTC (permalink / raw)
  To: 72526

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


While testing org-caldav I noticed that url-basic-auth doesn't handle
cases where either the port or user is supplied in the url when
searching for secrets.

It amends the port to the server when searching for :host in auth-source
and doesn't forward the user parameter that if it finds it.

E.g. in cases where the url is http://max@fsf.org:443 it
call auth-source-search with :host fsf.org:443 instead of :host fsf.org
and doesn't forward :user max to it even thou it was parsed from the
URL.

The last patch is included to set the max line length for git commit
summary when using Magit's git-commit-mode as mentioned in CONTRIBUTE.



[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: 0001-Fix-secret-search-with-basic-auth-with-a-port-in-url.patch --]
[-- Type: text/x-patch, Size: 1734 bytes --]

From cbf74f6cfac4df318885b15ad034dd761d33a0f8 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Bj=C3=B6rn=20Bidar?= <bjorn.bidar@thaodan.de>
Date: Thu, 8 Aug 2024 17:31:20 +0300
Subject: [PATCH 1/3] Fix secret search with basic auth with a port in url

* lisp/url/url-auth.el (url-basic-auth): Fix retrieving of secrets when
the url contains a port. Ammending the port to server breaks
auth-source-search matching for :host which is redundant
as it already specified in :port.
---
 lisp/url/url-auth.el | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/lisp/url/url-auth.el b/lisp/url/url-auth.el
index 8f4df780a54..c73047da6b3 100644
--- a/lisp/url/url-auth.el
+++ b/lisp/url/url-auth.el
@@ -72,8 +72,7 @@ url-basic-auth
 	 (pass (url-password href))
 	 (enable-recursive-minibuffers t) ; for url-handler-mode (bug#10298)
 	 byserv retval data)
-    (setq server (format "%s:%d" server port)
-	  file (cond
+    (setq file (cond
 		(realm realm)
 		((string= "" file) "/")
 		((string-match "/$" file) file)
@@ -94,6 +93,7 @@ url-basic-auth
 		  (url-do-auth-source-search server type :secret)
                   (and (url-interactive-p)
 		       (read-passwd "Password: " nil (or pass "")))))
+      (setq server (format "%s:%d" server port))
       (set url-basic-auth-storage
 	   (cons (list server
 		       (cons file
@@ -129,6 +129,7 @@ url-basic-auth
 			(url-do-auth-source-search server type :secret)
                         (and (url-interactive-p)
 			     (read-passwd "Password: ")))
+                  server (format "%s:%d" server port)
 		  retval (base64-encode-string (format "%s:%s" user pass) t)
 		  byserv (assoc server (symbol-value url-basic-auth-storage)))
 	    (setcdr byserv
-- 
2.45.2


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #3: 0002-Forward-user-to-auth-source-inside-url-basic-auth.patch --]
[-- Type: text/x-patch, Size: 2244 bytes --]

From c7b2321ab0f85c98cb88070b09abc04ee21af84e Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Bj=C3=B6rn=20Bidar?= <bjorn.bidar@thaodan.de>
Date: Thu, 8 Aug 2024 17:36:01 +0300
Subject: [PATCH 2/3] Forward user to auth-source inside url-basic-auth

* lisp/url/url-auth.el (url-basic-auth): Forward the user if provided by
the url or found by auth-source when searching for secrets. Supplying
auth-source with the user when matching secrets allows for more accurate
retrieval and fixes instances where the user enters an url that already
contains the user such as "user@host.de".
---
 lisp/url/url-auth.el | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/lisp/url/url-auth.el b/lisp/url/url-auth.el
index c73047da6b3..d7d7701b364 100644
--- a/lisp/url/url-auth.el
+++ b/lisp/url/url-auth.el
@@ -90,7 +90,7 @@ url-basic-auth
 		       (read-string (url-auth-user-prompt href realm)
 			            (or user (user-real-login-name)))))
 	    pass (or
-		  (url-do-auth-source-search server type :secret)
+		  (url-do-auth-source-search server type :secret user)
                   (and (url-interactive-p)
 		       (read-passwd "Password: " nil (or pass "")))))
       (setq server (format "%s:%d" server port))
@@ -126,7 +126,7 @@ url-basic-auth
 			     (read-string (url-auth-user-prompt href realm)
 				          (user-real-login-name))))
 		  pass (or
-			(url-do-auth-source-search server type :secret)
+			(url-do-auth-source-search server type :secret user)
                         (and (url-interactive-p)
 			     (read-passwd "Password: ")))
                   server (format "%s:%d" server port)
@@ -461,8 +461,8 @@ url-registered-auth-schemes
   "A list of the registered authorization schemes and various and sundry
 information associated with them.")
 
-(defun url-do-auth-source-search (server type parameter)
-  (let* ((auth-info (auth-source-search :max 1 :host server :port type))
+(defun url-do-auth-source-search (server type parameter &optional user)
+  (let* ((auth-info (auth-source-search :max 1 :host server :port type :user user))
          (auth-info (nth 0 auth-info))
          (token (plist-get auth-info parameter))
          (token (if (functionp token) (funcall token) token)))
-- 
2.45.2


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #4: 0003-Highlight-git-commit-summary-after-50-characters-in-.patch --]
[-- Type: text/x-patch, Size: 908 bytes --]

From 89a172b1de2e19753d58d23f5e3c763c14179d59 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Bj=C3=B6rn=20Bidar?= <bjorn.bidar@thaodan.de>
Date: Thu, 8 Aug 2024 17:40:27 +0300
Subject: [PATCH 3/3] ; Highlight git commit summary after 50 characters in
 Magit

Highlight summary line of git commit after 50 characters as mention in
CONTRIBUTE when commit with Magit's git-commit-mode.
---
 .dir-locals.el | 1 +
 1 file changed, 1 insertion(+)

diff --git a/.dir-locals.el b/.dir-locals.el
index c74da88a811..e483b04f0c8 100644
--- a/.dir-locals.el
+++ b/.dir-locals.el
@@ -43,6 +43,7 @@
 		     (fill-column . 74)
 		     (mode . bug-reference)))
  (diff-mode . ((mode . whitespace)))
+ (git-commit-major-mode . ((git-commit-summary-max-length . 50)))
  (emacs-lisp-mode . ((indent-tabs-mode . nil)
                      (electric-quote-comment . nil)
                      (electric-quote-string . nil)
-- 
2.45.2


[-- Attachment #5: Type: text/plain, Size: 40166 bytes --]




In GNU Emacs 31.0.50 (build 1, x86_64-suse-linux-gnu, GTK+ Version
3.24.43, cairo version 1.18.0)
Windowing system distributor 'The X.Org Foundation', version 11.0.12101012
System Description: openSUSE Tumbleweed

Configured using:
 'configure --disable-build-details --without-pop --with-mailutils
 --without-hesiod --with-gameuser=:games --with-kerberos
 --with-kerberos5 --with-file-notification=inotify --with-modules
 --enable-autodepend --enable-link-time-optimization --prefix=/usr
 --mandir=/usr/share/man --infodir=/usr/share/info --datadir=/usr/share
 --localstatedir=/var --sharedstatedir=/var/lib
 --libexecdir=/usr/libexec --with-file-notification=yes
 --libdir=/usr/lib64 --with-native-compilation=aot
 --enable-locallisppath=/usr/share/emacs/31.0.50/site-lisp:/usr/share/emacs/site-lisp
 --with-x --with-xim --with-sound --with-xpm --with-jpeg --with-tiff
 --with-gif --with-png --with-rsvg --with-dbus --with-xft --without-gpm
 --with-tree-sitter --with-x-toolkit=gtk --without-pgtk
 --with-toolkit-scroll-bars --x-includes=/usr/include
 --x-libraries=/usr/lib64 --with-libotf --with-m17n-flt --with-cairo
 --with-xwidgets --build=x86_64-suse-linux --with-dumping=pdumper
 build_alias=x86_64-suse-linux 'CC=sccache cc' 'CFLAGS=-O2 -Wall
 -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=3 -fstack-protector-strong
 -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection
 -Werror=return-type -flto=auto -march=znver3 -mmmx -mpopcnt -msse
 -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mavx2 -msse4a -mno-fma4
 -mno-xop -mfma -mno-avx512f -mbmi -mbmi2 -maes -mpclmul -mno-avx512vl
 -mno-avx512bw -mno-avx512dq -mno-avx512cd -mno-avx512er -mno-avx512pf
 -mno-avx512vbmi -mno-avx512ifma -mno-avx5124vnniw -mno-avx5124fmaps
 -mno-avx512vpopcntdq -mno-avx512vbmi2 -mno-gfni -mvpclmulqdq
 -mno-avx512vnni -mno-avx512bitalg -mno-avx512bf16
 -mno-avx512vp2intersect -mno-3dnow -madx -mabm -mno-cldemote
 -mclflushopt -mclwb -mclzero -mcx16 -mno-enqcmd -mf16c -mfsgsbase
 -mfxsr -mno-hle -msahf -mno-lwp -mlzcnt -mmovbe -mno-movdir64b
 -mno-movdiri -mmwaitx -mno-pconfig -mpku -mno-prefetchwt1 -mprfchw
 -mno-ptwrite -mrdpid -mrdrnd -mrdseed -mno-rtm -mno-serialize -mno-sgx
 -msha -mshstk -mno-tbm -mno-tsxldtrk -mvaes -mno-waitpkg -mwbnoinvd
 -mxsave -mxsavec -mxsaveopt -mxsaves -mno-amx-tile -mno-amx-int8
 -mno-amx-bf16 -mno-uintr -mno-hreset -mno-kl -mno-widekl -mno-avxvnni
 -mno-avx512fp16 -mno-avxifma -mno-avxvnniint8 -mno-avxneconvert
 -mno-cmpccxadd -mno-amx-fp16 -mno-prefetchi -mno-raoint
 -mno-amx-complex --param l1-cache-size=32 --param l1-cache-line-size=64
 --param l2-cache-size=512 -mtune=znver3 -fno-optimize-sibling-calls -g
 -D_GNU_SOURCE -DGDK_DISABLE_DEPRECATION_WARNINGS
 -DGLIB_DISABLE_DEPRECATION_WARNINGS -pipe -Wno-pointer-sign
 -Wno-unused-variable -Wno-unused-label -DPDMP_BASE='\''"emacs-gtk"'\'''
 LDFLAGS=-Wl,-O2 'CXX=sccache c++'
 PKG_CONFIG_PATH=:/usr/lib64/pkgconfig:/usr/share/pkgconfig'

Configured features:
ACL CAIRO DBUS FREETYPE GIF GLIB GMP GNUTLS GSETTINGS HARFBUZZ JPEG
LCMS2 LIBOTF LIBSELINUX LIBSYSTEMD LIBXML2 M17N_FLT MODULES NATIVE_COMP
NOTIFY INOTIFY PDUMPER PNG RSVG SECCOMP SOUND SQLITE3 THREADS TIFF
TOOLKIT_SCROLL_BARS TREE_SITTER WEBP X11 XDBE XIM XINPUT2 XPM XWIDGETS
GTK3 ZLIB

Important settings:
  value of $LC_MONETARY: fi_FI.UTF-8
  value of $LC_NUMERIC: POSIX
  value of $LANG: en_GB.UTF-8
  value of $XMODIFIERS: @im=local
  locale-coding-system: utf-8-unix

Major mode: Outline

Minor modes in effect:
  circe-lagmon-mode: t
  lsp-treemacs-sync-mode: t
  magit-wip-initial-backup-mode: t
  magit-wip-before-change-mode: t
  magit-wip-after-apply-mode: t
  magit-wip-after-save-mode: t
  magit-wip-after-save-local-mode: t
  magit-wip-mode: t
  magit-auto-revert-mode: t
  treemacs-filewatch-mode: t
  treemacs-git-mode: t
  treemacs-fringe-indicator-mode: t
  global-atomic-chrome-edit-mode: t
  minions-mode: t
  back-button-mode: t
  recentf-mode: t
  global-auto-revert-mode: t
  savehist-mode: t
  bug-reference-mode: t
  emms-playing-time-display-mode: t
  emms-playing-time-mode: t
  gnus-desktop-notify-mode: t
  tracking-mode: t
  org-super-agenda-mode: t
  ws-butler-mode: t
  selected-minor-mode: t
  jinx-mode: t
  global-git-commit-mode: t
  projectile-mode: t
  global-company-mode: t
  company-mode: t
  electric-pair-mode: t
  editorconfig-mode: t
  frames-only-mode: t
  windmove-mode: t
  marginalia-mode: t
  which-key-mode: t
  dirvish-override-dired-mode: t
  dired-async-mode: t
  helm-mode: t
  helm-minibuffer-history-mode: t
  global-so-long-mode: t
  global-emojify-mode: t
  emojify-mode: t
  change-cursor-mode: t
  doom-modeline-mode: t
  server-mode: t
  helm-autoresize-mode: t
  desktop-save-mode: t
  Info-persist-history-mode: t
  save-place-mode: t
  delete-selection-mode: t
  override-global-mode: t
  tooltip-mode: t
  global-eldoc-mode: t
  show-paren-mode: t
  electric-indent-mode: t
  mouse-wheel-mode: t
  menu-bar-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  blink-cursor-mode: t
  undelete-frame-mode: t
  minibuffer-regexp-mode: t
  line-number-mode: t
  transient-mark-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t

Load-path shadows:
/home/bidar/.local/etc/emacs/lib/org/lisp/ox-koma-letter hides /home/bidar/.local/etc/emacs/lib/lisp/ox-koma-letter
/home/bidar/.local/etc/emacs/lib/org-contrib/lisp/ox-groff hides /home/bidar/.local/etc/emacs/lib/lisp/ox-groff
/home/bidar/.local/etc/emacs/lib/vim-modeline/vim-modeline hides /home/bidar/.local/etc/emacs/lib/lisp/vim-modeline
/home/bidar/.local/etc/emacs/lib/lisp/htmlize hides /home/bidar/.local/etc/emacs/lib/htmlize/htmlize
/home/bidar/.local/etc/emacs/lib/lisp/cursor-chg hides /home/bidar/.local/etc/emacs/lib/cursor-chg/cursor-chg
/home/bidar/.local/etc/emacs/lib/async/dired-async hides /usr/share/emacs/site-lisp/dired-async
/home/bidar/.local/etc/emacs/lib/async/async-bytecomp hides /usr/share/emacs/site-lisp/async-bytecomp
/home/bidar/.local/etc/emacs/lib/async/async-autoloads hides /usr/share/emacs/site-lisp/async-autoloads
/home/bidar/.local/etc/emacs/lib/compat/compat hides /usr/share/emacs/site-lisp/compat
/home/bidar/.local/etc/emacs/lib/compat/compat-28 hides /usr/share/emacs/site-lisp/compat-28
/home/bidar/.local/etc/emacs/lib/compat/compat-25 hides /usr/share/emacs/site-lisp/compat-25
/home/bidar/.local/etc/emacs/lib/cmake-mode/cmake-mode hides /usr/share/emacs/site-lisp/cmake-mode
/home/bidar/.local/etc/emacs/lib/async/smtpmail-async hides /usr/share/emacs/site-lisp/smtpmail-async
/home/bidar/.local/etc/emacs/lib/async/async hides /usr/share/emacs/site-lisp/async
/home/bidar/.local/etc/emacs/lib/compat/compat-29 hides /usr/share/emacs/site-lisp/compat-29
/home/bidar/.local/etc/emacs/lib/compat/compat-27 hides /usr/share/emacs/site-lisp/compat-27
/home/bidar/.local/etc/emacs/lib/compat/compat-26 hides /usr/share/emacs/site-lisp/compat-26
/home/bidar/.local/etc/emacs/lib/which-key/which-key hides /usr/share/emacs/31.0.50/lisp/which-key
/home/bidar/.local/etc/emacs/lib/transient/lisp/transient hides /usr/share/emacs/31.0.50/lisp/transient
/home/bidar/.local/etc/emacs/lib/editorconfig/editorconfig-core-handle hides /usr/share/emacs/31.0.50/lisp/editorconfig-core-handle
/home/bidar/.local/etc/emacs/lib/editorconfig/editorconfig hides /usr/share/emacs/31.0.50/lisp/editorconfig
/home/bidar/.local/etc/emacs/lib/use-package/bind-key hides /usr/share/emacs/31.0.50/lisp/bind-key
/home/bidar/.local/etc/emacs/lib/editorconfig/editorconfig-tools hides /usr/share/emacs/31.0.50/lisp/editorconfig-tools
/home/bidar/.local/etc/emacs/lib/editorconfig/editorconfig-fnmatch hides /usr/share/emacs/31.0.50/lisp/editorconfig-fnmatch
/home/bidar/.local/etc/emacs/lib/editorconfig/editorconfig-core hides /usr/share/emacs/31.0.50/lisp/editorconfig-core
/home/bidar/.local/etc/emacs/lib/editorconfig/editorconfig-conf-mode hides /usr/share/emacs/31.0.50/lisp/editorconfig-conf-mode
/home/bidar/.local/etc/emacs/lib/modus-themes/theme-loaddefs hides /usr/share/emacs/31.0.50/lisp/theme-loaddefs
/home/bidar/.local/etc/emacs/lib/use-package/use-package-core hides /usr/share/emacs/31.0.50/lisp/use-package/use-package-core
/home/bidar/.local/etc/emacs/lib/use-package/use-package hides /usr/share/emacs/31.0.50/lisp/use-package/use-package
/home/bidar/.local/etc/emacs/lib/use-package/use-package-lint hides /usr/share/emacs/31.0.50/lisp/use-package/use-package-lint
/home/bidar/.local/etc/emacs/lib/use-package/use-package-jump hides /usr/share/emacs/31.0.50/lisp/use-package/use-package-jump
/home/bidar/.local/etc/emacs/lib/use-package/use-package-ensure hides /usr/share/emacs/31.0.50/lisp/use-package/use-package-ensure
/home/bidar/.local/etc/emacs/lib/use-package/use-package-ensure-system-package hides /usr/share/emacs/31.0.50/lisp/use-package/use-package-ensure-system-package
/home/bidar/.local/etc/emacs/lib/use-package/use-package-diminish hides /usr/share/emacs/31.0.50/lisp/use-package/use-package-diminish
/home/bidar/.local/etc/emacs/lib/use-package/use-package-delight hides /usr/share/emacs/31.0.50/lisp/use-package/use-package-delight
/home/bidar/.local/etc/emacs/lib/use-package/use-package-bind-key hides /usr/share/emacs/31.0.50/lisp/use-package/use-package-bind-key
/home/bidar/.local/etc/emacs/lib/org/lisp/ox hides /usr/share/emacs/31.0.50/lisp/org/ox
/home/bidar/.local/etc/emacs/lib/org/lisp/ox-publish hides /usr/share/emacs/31.0.50/lisp/org/ox-publish
/home/bidar/.local/etc/emacs/lib/org/lisp/ox-latex hides /usr/share/emacs/31.0.50/lisp/org/ox-latex
/home/bidar/.local/etc/emacs/lib/org/lisp/ox-icalendar hides /usr/share/emacs/31.0.50/lisp/org/ox-icalendar
/home/bidar/.local/etc/emacs/lib/org/lisp/org hides /usr/share/emacs/31.0.50/lisp/org/org
/home/bidar/.local/etc/emacs/lib/org/lisp/org-table hides /usr/share/emacs/31.0.50/lisp/org/org-table
/home/bidar/.local/etc/emacs/lib/org/lisp/org-src hides /usr/share/emacs/31.0.50/lisp/org/org-src
/home/bidar/.local/etc/emacs/lib/org/lisp/org-refile hides /usr/share/emacs/31.0.50/lisp/org/org-refile
/home/bidar/.local/etc/emacs/lib/org/lisp/org-persist hides /usr/share/emacs/31.0.50/lisp/org/org-persist
/home/bidar/.local/etc/emacs/lib/org/lisp/org-mouse hides /usr/share/emacs/31.0.50/lisp/org/org-mouse
/home/bidar/.local/etc/emacs/lib/org/lisp/org-mobile hides /usr/share/emacs/31.0.50/lisp/org/org-mobile
/home/bidar/.local/etc/emacs/lib/org/lisp/org-macs hides /usr/share/emacs/31.0.50/lisp/org/org-macs
/home/bidar/.local/etc/emacs/lib/org/lisp/org-loaddefs hides /usr/share/emacs/31.0.50/lisp/org/org-loaddefs
/home/bidar/.local/etc/emacs/lib/org/lisp/org-inlinetask hides /usr/share/emacs/31.0.50/lisp/org/org-inlinetask
/home/bidar/.local/etc/emacs/lib/org/lisp/org-habit hides /usr/share/emacs/31.0.50/lisp/org/org-habit
/home/bidar/.local/etc/emacs/lib/org/lisp/org-goto hides /usr/share/emacs/31.0.50/lisp/org/org-goto
/home/bidar/.local/etc/emacs/lib/org/lisp/org-fold hides /usr/share/emacs/31.0.50/lisp/org/org-fold
/home/bidar/.local/etc/emacs/lib/org/lisp/org-fold-core hides /usr/share/emacs/31.0.50/lisp/org/org-fold-core
/home/bidar/.local/etc/emacs/lib/org/lisp/org-feed hides /usr/share/emacs/31.0.50/lisp/org/org-feed
/home/bidar/.local/etc/emacs/lib/org/lisp/org-faces hides /usr/share/emacs/31.0.50/lisp/org/org-faces
/home/bidar/.local/etc/emacs/lib/org/lisp/org-element hides /usr/share/emacs/31.0.50/lisp/org/org-element
/home/bidar/.local/etc/emacs/lib/org/lisp/org-element-ast hides /usr/share/emacs/31.0.50/lisp/org/org-element-ast
/home/bidar/.local/etc/emacs/lib/org/lisp/org-clock hides /usr/share/emacs/31.0.50/lisp/org/org-clock
/home/bidar/.local/etc/emacs/lib/org/lisp/org-agenda hides /usr/share/emacs/31.0.50/lisp/org/org-agenda
/home/bidar/.local/etc/emacs/lib/org/lisp/ol hides /usr/share/emacs/31.0.50/lisp/org/ol
/home/bidar/.local/etc/emacs/lib/org/lisp/ob hides /usr/share/emacs/31.0.50/lisp/org/ob
/home/bidar/.local/etc/emacs/lib/org/lisp/ob-tangle hides /usr/share/emacs/31.0.50/lisp/org/ob-tangle
/home/bidar/.local/etc/emacs/lib/org/lisp/ob-sql hides /usr/share/emacs/31.0.50/lisp/org/ob-sql
/home/bidar/.local/etc/emacs/lib/org/lisp/ob-scheme hides /usr/share/emacs/31.0.50/lisp/org/ob-scheme
/home/bidar/.local/etc/emacs/lib/org/lisp/ob-python hides /usr/share/emacs/31.0.50/lisp/org/ob-python
/home/bidar/.local/etc/emacs/lib/org/lisp/ob-processing hides /usr/share/emacs/31.0.50/lisp/org/ob-processing
/home/bidar/.local/etc/emacs/lib/org/lisp/ob-plantuml hides /usr/share/emacs/31.0.50/lisp/org/ob-plantuml
/home/bidar/.local/etc/emacs/lib/org/lisp/ob-lob hides /usr/share/emacs/31.0.50/lisp/org/ob-lob
/home/bidar/.local/etc/emacs/lib/org/lisp/ob-exp hides /usr/share/emacs/31.0.50/lisp/org/ob-exp
/home/bidar/.local/etc/emacs/lib/org/lisp/ob-core hides /usr/share/emacs/31.0.50/lisp/org/ob-core
/home/bidar/.local/etc/emacs/lib/org/lisp/ox-beamer hides /usr/share/emacs/31.0.50/lisp/org/ox-beamer
/home/bidar/.local/etc/emacs/lib/org/lisp/org-version hides /usr/share/emacs/31.0.50/lisp/org/org-version
/home/bidar/.local/etc/emacs/lib/org/lisp/org-num hides /usr/share/emacs/31.0.50/lisp/org/org-num
/home/bidar/.local/etc/emacs/lib/org/lisp/org-list hides /usr/share/emacs/31.0.50/lisp/org/org-list
/home/bidar/.local/etc/emacs/lib/org/lisp/org-indent hides /usr/share/emacs/31.0.50/lisp/org/org-indent
/home/bidar/.local/etc/emacs/lib/org/lisp/org-colview hides /usr/share/emacs/31.0.50/lisp/org/org-colview
/home/bidar/.local/etc/emacs/lib/org/lisp/org-capture hides /usr/share/emacs/31.0.50/lisp/org/org-capture
/home/bidar/.local/etc/emacs/lib/org/lisp/ob-lilypond hides /usr/share/emacs/31.0.50/lisp/org/ob-lilypond
/home/bidar/.local/etc/emacs/lib/org/lisp/ob-shell hides /usr/share/emacs/31.0.50/lisp/org/ob-shell
/home/bidar/.local/etc/emacs/lib/org/lisp/ob-R hides /usr/share/emacs/31.0.50/lisp/org/ob-R
/home/bidar/.local/etc/emacs/lib/org/lisp/ox-texinfo hides /usr/share/emacs/31.0.50/lisp/org/ox-texinfo
/home/bidar/.local/etc/emacs/lib/org/lisp/ox-org hides /usr/share/emacs/31.0.50/lisp/org/ox-org
/home/bidar/.local/etc/emacs/lib/org/lisp/ox-odt hides /usr/share/emacs/31.0.50/lisp/org/ox-odt
/home/bidar/.local/etc/emacs/lib/org/lisp/ox-md hides /usr/share/emacs/31.0.50/lisp/org/ox-md
/home/bidar/.local/etc/emacs/lib/org/lisp/ox-man hides /usr/share/emacs/31.0.50/lisp/org/ox-man
/home/bidar/.local/etc/emacs/lib/org/lisp/ox-koma-letter hides /usr/share/emacs/31.0.50/lisp/org/ox-koma-letter
/home/bidar/.local/etc/emacs/lib/org/lisp/ox-html hides /usr/share/emacs/31.0.50/lisp/org/ox-html
/home/bidar/.local/etc/emacs/lib/org/lisp/ox-ascii hides /usr/share/emacs/31.0.50/lisp/org/ox-ascii
/home/bidar/.local/etc/emacs/lib/org/lisp/org-timer hides /usr/share/emacs/31.0.50/lisp/org/org-timer
/home/bidar/.local/etc/emacs/lib/org/lisp/org-tempo hides /usr/share/emacs/31.0.50/lisp/org/org-tempo
/home/bidar/.local/etc/emacs/lib/org/lisp/org-protocol hides /usr/share/emacs/31.0.50/lisp/org/org-protocol
/home/bidar/.local/etc/emacs/lib/org/lisp/org-plot hides /usr/share/emacs/31.0.50/lisp/org/org-plot
/home/bidar/.local/etc/emacs/lib/org/lisp/org-pcomplete hides /usr/share/emacs/31.0.50/lisp/org/org-pcomplete
/home/bidar/.local/etc/emacs/lib/org/lisp/org-macro hides /usr/share/emacs/31.0.50/lisp/org/org-macro
/home/bidar/.local/etc/emacs/lib/org/lisp/org-lint hides /usr/share/emacs/31.0.50/lisp/org/org-lint
/home/bidar/.local/etc/emacs/lib/org/lisp/org-keys hides /usr/share/emacs/31.0.50/lisp/org/org-keys
/home/bidar/.local/etc/emacs/lib/org/lisp/org-id hides /usr/share/emacs/31.0.50/lisp/org/org-id
/home/bidar/.local/etc/emacs/lib/org/lisp/org-footnote hides /usr/share/emacs/31.0.50/lisp/org/org-footnote
/home/bidar/.local/etc/emacs/lib/org/lisp/org-entities hides /usr/share/emacs/31.0.50/lisp/org/org-entities
/home/bidar/.local/etc/emacs/lib/org/lisp/org-duration hides /usr/share/emacs/31.0.50/lisp/org/org-duration
/home/bidar/.local/etc/emacs/lib/org/lisp/org-datetree hides /usr/share/emacs/31.0.50/lisp/org/org-datetree
/home/bidar/.local/etc/emacs/lib/org/lisp/org-cycle hides /usr/share/emacs/31.0.50/lisp/org/org-cycle
/home/bidar/.local/etc/emacs/lib/org/lisp/org-ctags hides /usr/share/emacs/31.0.50/lisp/org/org-ctags
/home/bidar/.local/etc/emacs/lib/org/lisp/org-crypt hides /usr/share/emacs/31.0.50/lisp/org/org-crypt
/home/bidar/.local/etc/emacs/lib/org/lisp/org-compat hides /usr/share/emacs/31.0.50/lisp/org/org-compat
/home/bidar/.local/etc/emacs/lib/org/lisp/org-attach hides /usr/share/emacs/31.0.50/lisp/org/org-attach
/home/bidar/.local/etc/emacs/lib/org/lisp/org-attach-git hides /usr/share/emacs/31.0.50/lisp/org/org-attach-git
/home/bidar/.local/etc/emacs/lib/org/lisp/org-archive hides /usr/share/emacs/31.0.50/lisp/org/org-archive
/home/bidar/.local/etc/emacs/lib/org/lisp/ol-w3m hides /usr/share/emacs/31.0.50/lisp/org/ol-w3m
/home/bidar/.local/etc/emacs/lib/org/lisp/ol-rmail hides /usr/share/emacs/31.0.50/lisp/org/ol-rmail
/home/bidar/.local/etc/emacs/lib/org/lisp/ol-mhe hides /usr/share/emacs/31.0.50/lisp/org/ol-mhe
/home/bidar/.local/etc/emacs/lib/org/lisp/ol-man hides /usr/share/emacs/31.0.50/lisp/org/ol-man
/home/bidar/.local/etc/emacs/lib/org/lisp/ol-irc hides /usr/share/emacs/31.0.50/lisp/org/ol-irc
/home/bidar/.local/etc/emacs/lib/org/lisp/ol-info hides /usr/share/emacs/31.0.50/lisp/org/ol-info
/home/bidar/.local/etc/emacs/lib/org/lisp/ol-gnus hides /usr/share/emacs/31.0.50/lisp/org/ol-gnus
/home/bidar/.local/etc/emacs/lib/org/lisp/ol-eww hides /usr/share/emacs/31.0.50/lisp/org/ol-eww
/home/bidar/.local/etc/emacs/lib/org/lisp/ol-eshell hides /usr/share/emacs/31.0.50/lisp/org/ol-eshell
/home/bidar/.local/etc/emacs/lib/org/lisp/ol-doi hides /usr/share/emacs/31.0.50/lisp/org/ol-doi
/home/bidar/.local/etc/emacs/lib/org/lisp/ol-docview hides /usr/share/emacs/31.0.50/lisp/org/ol-docview
/home/bidar/.local/etc/emacs/lib/org/lisp/ol-bibtex hides /usr/share/emacs/31.0.50/lisp/org/ol-bibtex
/home/bidar/.local/etc/emacs/lib/org/lisp/ol-bbdb hides /usr/share/emacs/31.0.50/lisp/org/ol-bbdb
/home/bidar/.local/etc/emacs/lib/org/lisp/oc hides /usr/share/emacs/31.0.50/lisp/org/oc
/home/bidar/.local/etc/emacs/lib/org/lisp/oc-natbib hides /usr/share/emacs/31.0.50/lisp/org/oc-natbib
/home/bidar/.local/etc/emacs/lib/org/lisp/oc-csl hides /usr/share/emacs/31.0.50/lisp/org/oc-csl
/home/bidar/.local/etc/emacs/lib/org/lisp/oc-bibtex hides /usr/share/emacs/31.0.50/lisp/org/oc-bibtex
/home/bidar/.local/etc/emacs/lib/org/lisp/oc-biblatex hides /usr/share/emacs/31.0.50/lisp/org/oc-biblatex
/home/bidar/.local/etc/emacs/lib/org/lisp/oc-basic hides /usr/share/emacs/31.0.50/lisp/org/oc-basic
/home/bidar/.local/etc/emacs/lib/org/lisp/ob-table hides /usr/share/emacs/31.0.50/lisp/org/ob-table
/home/bidar/.local/etc/emacs/lib/org/lisp/ob-sqlite hides /usr/share/emacs/31.0.50/lisp/org/ob-sqlite
/home/bidar/.local/etc/emacs/lib/org/lisp/ob-sed hides /usr/share/emacs/31.0.50/lisp/org/ob-sed
/home/bidar/.local/etc/emacs/lib/org/lisp/ob-screen hides /usr/share/emacs/31.0.50/lisp/org/ob-screen
/home/bidar/.local/etc/emacs/lib/org/lisp/ob-sass hides /usr/share/emacs/31.0.50/lisp/org/ob-sass
/home/bidar/.local/etc/emacs/lib/org/lisp/ob-ruby hides /usr/share/emacs/31.0.50/lisp/org/ob-ruby
/home/bidar/.local/etc/emacs/lib/org/lisp/ob-ref hides /usr/share/emacs/31.0.50/lisp/org/ob-ref
/home/bidar/.local/etc/emacs/lib/org/lisp/ob-perl hides /usr/share/emacs/31.0.50/lisp/org/ob-perl
/home/bidar/.local/etc/emacs/lib/org/lisp/ob-org hides /usr/share/emacs/31.0.50/lisp/org/ob-org
/home/bidar/.local/etc/emacs/lib/org/lisp/ob-octave hides /usr/share/emacs/31.0.50/lisp/org/ob-octave
/home/bidar/.local/etc/emacs/lib/org/lisp/ob-ocaml hides /usr/share/emacs/31.0.50/lisp/org/ob-ocaml
/home/bidar/.local/etc/emacs/lib/org/lisp/ob-maxima hides /usr/share/emacs/31.0.50/lisp/org/ob-maxima
/home/bidar/.local/etc/emacs/lib/org/lisp/ob-matlab hides /usr/share/emacs/31.0.50/lisp/org/ob-matlab
/home/bidar/.local/etc/emacs/lib/org/lisp/ob-makefile hides /usr/share/emacs/31.0.50/lisp/org/ob-makefile
/home/bidar/.local/etc/emacs/lib/org/lisp/ob-lua hides /usr/share/emacs/31.0.50/lisp/org/ob-lua
/home/bidar/.local/etc/emacs/lib/org/lisp/ob-lisp hides /usr/share/emacs/31.0.50/lisp/org/ob-lisp
/home/bidar/.local/etc/emacs/lib/org/lisp/ob-latex hides /usr/share/emacs/31.0.50/lisp/org/ob-latex
/home/bidar/.local/etc/emacs/lib/org/lisp/ob-julia hides /usr/share/emacs/31.0.50/lisp/org/ob-julia
/home/bidar/.local/etc/emacs/lib/org/lisp/ob-js hides /usr/share/emacs/31.0.50/lisp/org/ob-js
/home/bidar/.local/etc/emacs/lib/org/lisp/ob-java hides /usr/share/emacs/31.0.50/lisp/org/ob-java
/home/bidar/.local/etc/emacs/lib/org/lisp/ob-haskell hides /usr/share/emacs/31.0.50/lisp/org/ob-haskell
/home/bidar/.local/etc/emacs/lib/org/lisp/ob-groovy hides /usr/share/emacs/31.0.50/lisp/org/ob-groovy
/home/bidar/.local/etc/emacs/lib/org/lisp/ob-gnuplot hides /usr/share/emacs/31.0.50/lisp/org/ob-gnuplot
/home/bidar/.local/etc/emacs/lib/org/lisp/ob-fortran hides /usr/share/emacs/31.0.50/lisp/org/ob-fortran
/home/bidar/.local/etc/emacs/lib/org/lisp/ob-forth hides /usr/share/emacs/31.0.50/lisp/org/ob-forth
/home/bidar/.local/etc/emacs/lib/org/lisp/ob-eval hides /usr/share/emacs/31.0.50/lisp/org/ob-eval
/home/bidar/.local/etc/emacs/lib/org/lisp/ob-eshell hides /usr/share/emacs/31.0.50/lisp/org/ob-eshell
/home/bidar/.local/etc/emacs/lib/org/lisp/ob-emacs-lisp hides /usr/share/emacs/31.0.50/lisp/org/ob-emacs-lisp
/home/bidar/.local/etc/emacs/lib/org/lisp/ob-dot hides /usr/share/emacs/31.0.50/lisp/org/ob-dot
/home/bidar/.local/etc/emacs/lib/org/lisp/ob-ditaa hides /usr/share/emacs/31.0.50/lisp/org/ob-ditaa
/home/bidar/.local/etc/emacs/lib/org/lisp/ob-css hides /usr/share/emacs/31.0.50/lisp/org/ob-css
/home/bidar/.local/etc/emacs/lib/org/lisp/ob-comint hides /usr/share/emacs/31.0.50/lisp/org/ob-comint
/home/bidar/.local/etc/emacs/lib/org/lisp/ob-clojure hides /usr/share/emacs/31.0.50/lisp/org/ob-clojure
/home/bidar/.local/etc/emacs/lib/org/lisp/ob-calc hides /usr/share/emacs/31.0.50/lisp/org/ob-calc
/home/bidar/.local/etc/emacs/lib/org/lisp/ob-awk hides /usr/share/emacs/31.0.50/lisp/org/ob-awk
/home/bidar/.local/etc/emacs/lib/org/lisp/ob-C hides /usr/share/emacs/31.0.50/lisp/org/ob-C
/home/bidar/.local/etc/emacs/lib/compat/compat hides /usr/share/emacs/31.0.50/lisp/emacs-lisp/compat

Features:
(shadow emacsbug magit-patch descr-text helm-ring bbdb-message
gnus-alias autocrypt-message gnus-search eieio-opt speedbar ezimage
dframe smart-region multiple-cursors mc-separate-operations
rectangular-region-mode mc-mark-pop mc-edit-lines
mc-hide-unmatched-lines-mode mc-mark-more mc-cycle-cursors
multiple-cursors-core rect expand-region yaml-mode-expansions
subword-mode-expansions cperl-mode-expansions text-mode-expansions
cc-mode-expansions the-org-mode-expansions python-el-fgallina-expansions
nxml-mode-expansions html-mode-expansions er-basic-expansions
expand-region-core expand-region-custom whitespace helm-ls-git
magit-extras help-macro em-unix em-term em-script em-prompt em-pred
em-ls em-hist em-glob em-extpipe em-cmpl em-dirs em-basic em-banner
em-alias esh-mode esh-var eshell esh-cmd esh-ext esh-proc esh-opt esh-io
esh-arg esh-module esh-module-loaddefs esh-util circe-lagmon goto-chg
mastodon-media mastodon-profile mastodon-auth mastodon-client mastodon
mastodon-search mastodon-toot persist mastodon-http request shortdoc
cl-print tabify elfeed-link orgit-forge orgit w3m-form w3m-symbol w3m
w3m-hist bookmark-w3m w3m-ems w3m-favicon w3m-image w3m-fb tab-line
w3m-proc w3m-util ietf-drums-date gnus-gravatar gnus-cite
message-view-patch mm-archive mail-extr textsec uni-scripts idna-mapping
ucs-normalize uni-confusable textsec-check gnus-bcklg bbdb-gnus-aux qp
gnus-ml gnus-demon gnus-topic autocrypt-gnus nndraft nnmh utf-7 epa-file
nnfolder bbdb-gnus bbdb-mua nnnil dired-open helm-x-files helm-for-files
hydra two-column help-fns helm-descbinds helm-command dcl-mode tempo
char-fold misearch multi-isearch helm-external emacsql-sqlite-builtin
sqlite winner tramp-archive tramp-gvfs zeroconf vc-dir plstore
gitconfig-mode rng-xsd xsd-regexp rng-cmpct rng-nxml rng-valid nxml-mode
nxml-outln nxml-rap sgml-mode company-anaconda highlight-indent-guides
cap-words superword subword anaconda-mode pythonic rpm-spec-mode
company-lua lua-mode image-file image-converter cmake-font-lock
cmake-mode pdf-occur tablist tablist-filter semantic/wisent/comp
semantic/wisent semantic/wisent/wisent semantic/util-modes semantic/util
semantic semantic/tag semantic/lex semantic/fw mode-local cedet
pdf-isearch pdf-misc whole-line-or-region pdf-tools pdf-view pdf-cache
pdf-info pdf-util pdf-macs tramp-cache tramp-sh dired-collapse
time-stamp lsp-treemacs lsp-treemacs-generic lsp-treemacs-themes
treemacs-treelib treemacs-nerd-icons treemacs-magit forge-repos
forge-tablist forge-topics forge-commands forge-semi forge-bitbucket
buck forge-gogs gogs forge-gitea gtea forge-gitlab glab forge-github
ghub-graphql treepy gsexp ghub forge-notify forge-revnote forge-pullreq
forge-issue forge-topic yaml eieio-custom forge-post forge-repo forge
forge-core forge-db magit-popup magit-bookmark magit-submodule
magit-blame magit-stash magit-reflog magit-bisect magit-push magit-pull
magit-fetch magit-clone magit-remote magit-commit magit-sequence
magit-notes magit-worktree magit-tag magit-merge magit-branch
magit-reset magit-files magit-refs magit-status magit magit-repos
magit-apply magit-wip magit-log which-func magit-diff smerge-mode diff
magit-core magit-autorevert magit-margin magit-transient magit-process
magit-mode benchmark treemacs treemacs-header-line
treemacs-compatibility treemacs-mode treemacs-bookmarks treemacs-tags
treemacs-interface treemacs-persistence treemacs-filewatch-mode
treemacs-follow-mode treemacs-rendering treemacs-annotations
treemacs-async treemacs-workspaces treemacs-dom treemacs-visuals
treemacs-fringe-indicator pulse treemacs-macros yasnippet lsp-mode
lsp-protocol spinner network-stream markdown-mode lv imenu dirvish-yank
dirvish-subtree dirvish-collapse dirvish-icons dirvish-vc
dirvish-widgets company-shell generic-x skeleton generic atomic-chrome
websocket minions back-button smartrep helm-projectile recentf
tree-widget autorevert savehist org-edit-indirect edit-indirect
cus-start org-bug bug-search bug-comment-mode bug-backend-bz-rpc
bug-list-mode bug-mode bug-format bug-rpc bug-debug bug-search-common
bug-common-functions bug-persistent-data bug-custom yeetube yeetube-mpv
socks elfeed-autotag elfeed-score elfeed-score-maint
elfeed-score-scoring elfeed-score-serde elfeed-score-rule-stats
elfeed-score-rules elfeed-score-log elfeed-tube elfeed-tube-utils aio
elfeed-protocol-owncloud elfeed-protocol elfeed-protocol-common
elfeed-show elfeed-search rainbow-delimiters ligature symbol-overlay
hideshow vc-hg vc-bzr vc-src vc-sccs vc-svn vc-cvs vc-rcs log-view
bug-reference elfeed-csv elfeed elfeed-curl elfeed-log elfeed-db
elfeed-lib xml-query emms-i18n emms-history emms-score emms-stream-info
emms-metaplaylist-mode emms-bookmarks emms-cue emms-mode-line-icon
emms-browser sort emms-volume emms-volume-sndioctl emms-volume-mixerctl
emms-volume-pulse emms-volume-amixer emms-playlist-sort emms-last-played
emms-player-mpd emms-playing-time emms-lyrics emms-url
emms-player-simple emms-streams emms-show-all emms-tag-editor
emms-tag-tracktag emms-info-mp3info emms-mark emms-mode-line emms-cache
emms-playlist-mode emms-info-native emms-info-native-spc
emms-info-native-mp3 emms-info-native-ogg emms-info-native-opus
emms-info-native-flac emms-info-native-vorbis emms-info-libtag emms-info
emms-later-do emms-source-playlist emms-source-file locate emms
emms-compat khardel gravatar dns smiley autocrypt gnus-icalendar
org-capture gnus-async smtpmail-async smtpmail gnus-agent gnus-srvr
gnus-score score-mode nnvirtual gnus-msg nntp gnus-cache
gnus-desktop-notify bbdb-vcard bbdb-com bbdb-vcard-vcard21 bbdb
bbdb-site timezone mastodon-async mastodon-tl url-cache mpv tq
mastodon-iso lui-track company-emoji company-emoji-list helm-circe
circe-notifications circe-display-images circe-color-nicks circe
lui-irc-colors irc lcs lui-logging lui-format lui tracking shorten
flyspell circe-compat ical2org org-modern org-caldav icalendar url-dav
url-http url-auth url-gw nsm ox-koma-letter ox-extra org-pomodoro alert
notifications org-timer org-expiry ol-man org-clock org-protocol
ob-sqlite ob-sql ob-shell ob-python python ob-plantuml ob-org ob-octave
ob-lua ob-js ob-gnuplot ox-odt rng-loc rng-uri rng-parse rng-match
rng-dt rng-util rng-pttrn nxml-parse nxml-ns nxml-enc xmltok nxml-util
ox-latex ox-icalendar org-super-agenda ts org-habit org-duration cdlatex
reftex reftex-loaddefs reftex-vars texmathp org-appear ws-butler
selected jinx oc-basic ol-eww eww url-queue mm-url ol-rmail ol-mhe
ol-irc ol-info ol-gnus nnselect gnus-art mm-uu mml2015 mm-view mml-smime
smime gnutls dig gnus-sum shr pixel-fill kinsoku url-file svg dom
gnus-group gnus-undo gnus-start gnus-dbus dbus gnus-cloud nnimap nnmail
mail-source utf7 nnoo gnus-spec gnus-int gnus-range gnus-win gnus
nnheader range ol-docview doc-view ol-bibtex bibtex ol-bbdb ol-w3m
ol-doi org-link-doi goto-addr view mule-util cal-china cal-bahai
cal-islam cal-hebrew holidays holiday-loaddefs cal-iso cal-julian lunar
solar cal-dst vc-git vim-modeline company-yasnippet appt org-agenda
ox-html table ox-ascii ox-publish ox org-element org-persist org-id
org-refile org-element-ast avl-tree ob-dot ob-ditaa ob-clojure ob-C
outshine outshine-org-cmds outorg smartparens-org smartparens-text
smartparens loadhist org-archive-subtree-hierarchy org-archive org ob
ob-tangle ob-ref ob-lob ob-table ob-exp org-macro org-src ob-comint
org-pcomplete org-list org-footnote org-faces org-entities ob-emacs-lisp
ob-core ob-eval org-cycle org-table ol org-fold org-fold-core org-keys
oc org-loaddefs org-version org-compat org-macs noutline outline
salt-mode rst mmm-jinja2 yaml-mode perl-completion woman man ffap
dabbrev cperl-mode facemenu helm-elisp helm-eval edebug debug backtrace
cc-mode cc-fonts cc-guess cc-menus cc-cmds cc-styles cc-align cc-engine
cc-vars cc-defs ggtags ewoc flycheck-color-mode-line flycheck jka-compr
let-alist meson-mode bitbake-modes bitbake autoinsert conf-bitbake-mode
conf-mode bitbake-ff find-file bitbake-mmm sh-script smie treesit
executable mmm-mode mmm-univ mmm-class mmm-region mmm-auto mmm-vars
mmm-utils mmm-compat bitbake-functions bitbake-compat xterm-color vc-osc
diff-mode track-changes vc vc-dispatcher magit-libgit libgit libegit2
git-commit magit-git magit-base magit-section cursor-sensor crm log-edit
pcvs-util add-log git-email message sendmail yank-media puny rfc822 mml
mml-sec epa epg rfc6068 epg-config gnus-util mm-decode mm-bodies
mm-encode mail-parse rfc2231 rfc2047 rfc2045 mm-util ietf-drums
mail-prsvr mailabbrev mail-utils gmm-utils mailheader diary-lib
diary-loaddefs cal-menu calendar cal-loaddefs midnight vlf-setup
multi-vterm vterm face-remap color term disp-table ehelp vterm-module
term/xterm xterm projectile ibuf-ext ibuffer ibuffer-loaddefs
company-oddmuse company-keywords company-etags etags fileloop generator
xref project company-gtags company-dabbrev-code company-dabbrev
company-files company-clang company-capf company-cmake company-semantic
company-template company-bbdb company elec-pair editorconfig
editorconfig-core editorconfig-core-handle editorconfig-fnmatch wgrep-ag
frames-only-mode windmove i3-integration i3 bindat marginalia which-key
dirvish transient helm-dired-history dired-ranger dired-avfs
dired-rainbow dired-filter dired-hacks-utils dired-x dired-async
dired-du find-dired wdired dired-aux helm-icons treemacs-icons
treemacs-scope treemacs-themes treemacs-core-utils treemacs-logging
treemacs-customization pfuture inline hl-line treemacs-faces
helm-bookmark helm-net xml helm-adaptive helm-info bookmark helm-mode
helm-misc helm-files image-dired image-dired-tags image-dired-external
image-dired-util image-mode dired dired-loaddefs exif filenotify tramp
trampver tramp-integration files-x tramp-message tramp-compat xdg
parse-time iso8601 time-date tramp-loaddefs helm-buffers all-the-icons
all-the-icons-faces data-material data-weathericons data-octicons
data-fileicons data-faicons data-alltheicons helm-occur helm-tags
helm-locate helm-grep wgrep-helm wgrep grep compile text-property-search
helm-regexp format-spec helm-utils helm-help helm-types so-long emojify
apropos tar-mode arc-mode archive-mode ht cursor-chg doom-modeline
doom-modeline-segments doom-modeline-env doom-modeline-core shrink-path
f s dash nerd-icons nerd-icons-faces nerd-icons-data
nerd-icons-data-mdicon nerd-icons-data-flicon nerd-icons-data-codicon
nerd-icons-data-devicon nerd-icons-data-sucicon nerd-icons-data-wicon
nerd-icons-data-faicon nerd-icons-data-powerline nerd-icons-data-octicon
nerd-icons-data-pomicon nerd-icons-data-ipsicon modus-vivendi-theme
modus-themes helm-pass password-store with-editor shell pcomplete comint
ansi-osc ansi-color ring server helm helm-global-bindings helm-easymenu
edmacro kmacro helm-core async-bytecomp helm-source helm-multi-match
helm-lib async auth-source-pass printing ps-print ps-print-loaddefs lpr
desktop frameset derived info+ thingatpt cl saveplace advice delsel
no-littering epkg-elpa epkg-utils epkg-list epkg-desc find-func epkg
closql emacsql-sqlite-common emacsql emacsql-compiler eieio-base llama
comp-run compat use-package use-package-ensure use-package-delight
use-package-diminish use-package-bind-key bind-key easy-mmode
use-package-core zop-to-char-autoloads yeetube-autoloads
yasnippet-autoloads yaml-mode-autoloads yaml-autoloads
xterm-color-autoloads ws-butler-autoloads with-editor-autoloads
whole-line-or-region-autoloads which-key-autoloads wgrep-autoloads
websocket-autoloads web-mode-autoloads w3m-autoloads vlf-autoloads
visual-regexp-autoloads vim-modeline-autoloads vc-osc-autoloads
uuidgen-autoloads use-package-autoloads ts-autoloads treepy-autoloads
treemacs-nerd-icons-autoloads treemacs-autoloads transient-autoloads
toml-mode-autoloads systemd-autoloads symbol-overlay-autoloads
swiper-helm-autoloads ssh-config-mode-autoloads spinner-autoloads
sound-async-autoloads smartrep-autoloads smartparens-autoloads
smart-region-autoloads skewer-mode-autoloads simple-httpd-autoloads
shrink-path-autoloads selected-autoloads salt-mode-autoloads s-autoloads
rpm-spec-mode-autoloads rich-minority-autoloads request-autoloads
rainbow-delimiters-autoloads qt-pro-mode-autoloads qml-mode-autoloads
pythonic-autoloads projectile-autoloads posframe-autoloads
pos-tip-autoloads popup-autoloads plantuml-mode-autoloads
pkgbuild-mode-autoloads piper-autoloads pfuture-autoloads
perspective-autoloads persp-mode-autoloads persist-autoloads
password-store-autoloads pass-autoloads outshine-autoloads
outorg-autoloads orgit-forge-autoloads orgit-autoloads
org-vcard-autoloads org-tree-slide-autoloads org-super-agenda-autoloads
org-pomodoro-autoloads org-modern-autoloads org-edit-indirect-autoloads
org-contrib-autoloads org-contacts-autoloads org-clock-helpers-autoloads
org-caldav-autoloads org-appear-autoloads org-autoloads
no-littering-autoloads nginx-mode-autoloads nerd-icons-ibuffer-autoloads
nerd-icons-autoloads navi-mode-autoloads multiple-cursors-autoloads
multi-vterm-autoloads mpv-autoloads move-text-autoloads
modus-themes-autoloads mode-icons-autoloads mmm-mode-autoloads
mmm-jinja2-autoloads minions-autoloads message-x-autoloads
message-view-patch-autoloads message-attachment-reminder-autoloads
meson-mode-autoloads mastodon-autoloads markdown-mode-autoloads
marginalia-autoloads magit-popup-autoloads magit-autoloads
lua-mode-autoloads lsp-ui-autoloads lsp-treemacs-autoloads
lsp-mode-autoloads lsp-docker-autoloads logview-autoloads
llama-autoloads lisp-autoloads link-hint-autoloads ligature-autoloads
levenshtein-autoloads khardel-autoloads js2-mode-autoloads
journalctl-autoloads jira-markup-mode-autoloads ivy-autoloads
irony-autoloads ir-black-theme-autoloads info+-autoloads iedit-autoloads
ical2org-autoloads ibuffer-projectile-autoloads
i3wm-config-mode-autoloads i3-autoloads hydra-autoloads
htmlize-autoloads ht-autoloads highlight-indent-guides-autoloads
helm-projectile-autoloads helm-pass-autoloads helm-org-rifle-autoloads
helm-make-autoloads helm-ls-git-autoloads helm-icons-autoloads
helm-ext-autoloads helm-emms-autoloads helm-dired-history-autoloads
helm-descbinds-autoloads helm-circe-autoloads helm-autoloads
guess-language-autoloads grep-context-autoloads goto-chg-autoloads
gnus-recent-autoloads gnus-notes-autoloads gnus-desktop-notify-autoloads
gnus-alias-autoloads gitconfig-autoloads git-modes-autoloads
git-email-autoloads ghub-autoloads ggtags-autoloads
frames-only-mode-autoloads forge-autoloads
flycheck-color-mode-line-autoloads flycheck-autoloads fedi-autoloads
f-autoloads extmap-autoloads expand-region-autoloads
evil-multiedit-autoloads evil-autoloads emojify-autoloads
emacsql-autoloads elixir-mode-autoloads elfeed-tube-autoloads
elfeed-summary-autoloads elfeed-score-autoloads
elfeed-protocol-autoloads elfeed-autotag-autoloads elfeed-autoloads
el-mock-autoloads eimp-autoloads editorconfig-autoloads
edit-indirect-autoloads dumb-jump-autoloads doom-modeline-autoloads
docbook-autoloads dirvish-autoloads dired-rsync-autoloads
dired-hacks-autoloads dired-du-autoloads devhelp-autoloads
deferred-autoloads default-text-scale-autoloads debbugs-autoloads
datetime-autoloads dash-autoloads dap-mode-autoloads
cursor-chg-autoloads crux-autoloads copy-as-format-autoloads
compat-autoloads company-shell-autoloads company-quickhelp-autoloads
company-nginx-autoloads company-lua-autoloads company-irony-autoloads
company-emoji-autoloads company-anaconda-autoloads company-autoloads
code-review-autoloads cmake-mode-autoloads cmake-font-lock-autoloads
closql-autoloads circe-notifications-autoloads circe-autoloads
cdlatex-autoloads ccls-autoloads buttercup-autoloads bui-autoloads
bug-mode-autoloads bitbake-modes-autoloads bbdb-vcard-autoloads
bbdb-loaddefs back-button-autoloads avy-autoloads autocrypt-autoloads
auto-compile-autoloads atomic-chrome-autoloads async-autoloads
anaphora-autoloads anaconda-mode-autoloads all-the-icons-autoloads
alert-autoloads aio-autoloads ag-autoloads ace-window-autoloads
ace-link-autoloads a-autoloads 2048-game-autoloads borg loaddefs-gen
lisp-mnt radix-tree info comp comp-cstr cl-extra help-mode comp-common
warnings rx preview-latex auctex tex-site ispell package browse-url url
url-proxy url-privacy url-expand url-methods url-history url-cookie
generate-lisp-file url-domsuf url-util mailcap url-handlers url-parse
auth-source cl-seq eieio eieio-core cl-macs password-cache json subr-x
map byte-opt gv bytecomp byte-compile url-vars cus-edit pp pcase
cus-load icons wid-edit cl-loaddefs cl-lib rmc iso-transl tooltip cconv
eldoc paren electric uniquify ediff-hook vc-hooks lisp-float-type
elisp-mode mwheel term/x-win x-win term/common-win x-dnd touch-screen
tool-bar dnd fontset image regexp-opt fringe tabulated-list replace
newcomment text-mode lisp-mode prog-mode register page tab-bar menu-bar
rfn-eshadow isearch easymenu timer select scroll-bar mouse jit-lock
font-lock syntax font-core term/tty-colors frame minibuffer nadvice seq
simple cl-generic indonesian philippine 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 emoji-zwj charscript charprop case-table
epa-hook jka-cmpr-hook help abbrev obarray oclosure cl-preloaded button
loaddefs theme-loaddefs faces cus-face macroexp files window
text-properties overlay sha1 md5 base64 format env code-pages mule
custom widget keymap hashtable-print-readable backquote threads
xwidget-internal dbusbind inotify lcms2 dynamic-setting
system-font-setting font-render-setting cairo gtk x-toolkit xinput2 x
multi-tty move-toolbar make-network-process native-compile emacs)

Memory information:
((conses 16 5501062 1305343) (symbols 48 120655 0)
 (strings 32 2017340 88180) (string-bytes 1 114937713)
 (vectors 16 380950) (vector-slots 8 6889205 1943160)
 (floats 8 6624 20095) (intervals 56 144347 21135) (buffers 992 340))

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

* bug#72526: 31.0.50; [PATCH] Fix url-basic-auth secret search when passing username and/or port
       [not found] <87r0azawml.fsf@>
  2024-08-16 20:02 ` Björn Bidar via Bug reports for GNU Emacs, the Swiss army knife of text editors
@ 2024-08-16 20:02 ` Björn Bidar via Bug reports for GNU Emacs, the Swiss army knife of text editors
  1 sibling, 0 replies; 16+ messages in thread
From: Björn Bidar via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2024-08-16 20:02 UTC (permalink / raw)
  To: 72526



Could someone please review my patch?





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

* bug#72526: 31.0.50; [PATCH] Fix url-basic-auth secret search when passing username and/or port
       [not found] <87r0azawml.fsf@>
@ 2024-08-16 20:02 ` Björn Bidar via Bug reports for GNU Emacs, the Swiss army knife of text editors
  2024-08-16 20:02 ` Björn Bidar via Bug reports for GNU Emacs, the Swiss army knife of text editors
  1 sibling, 0 replies; 16+ messages in thread
From: Björn Bidar via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2024-08-16 20:02 UTC (permalink / raw)
  To: 72526



Could someone please review my patch?





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

* bug#72526: 31.0.50; [PATCH] Fix url-basic-auth secret search when passing username and/or port
       [not found] <87bk1stevo.fsf@>
@ 2024-08-17  6:02 ` Eli Zaretskii
  2024-08-17  8:41   ` Björn Bidar via Bug reports for GNU Emacs, the Swiss army knife of text editors
       [not found]   ` <877ccftubm.fsf@>
  0 siblings, 2 replies; 16+ messages in thread
From: Eli Zaretskii @ 2024-08-17  6:02 UTC (permalink / raw)
  To: Björn Bidar; +Cc: 72526

> Date: Fri, 16 Aug 2024 23:02:51 +0300
> From:  Björn Bidar via "Bug reports for GNU Emacs,
>  the Swiss army knife of text editors" <bug-gnu-emacs@gnu.org>
> 
> Could someone please review my patch?

Sorry, I don't see any experts around to ask to do that.

Maybe if you'd posted a more detailed description of the problem and
its context, someone could follow your arguments and do a meaningful
review.  E.g., it sounds from your description like the case of URLs
where it currently fails was not meant to be supported by this
library?  If so, perhaps an alternative is to submit to this library
only URLs that it supports, like after stripping the port part?

On another level: please make sure you leave 2 spaces between
sentences in comments, strings, and commit log messages.  And I don't
think the 3rd patch belongs to this issue, so let's not include it in
this discussion.

Thanks.





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

* bug#72526: 31.0.50; [PATCH] Fix url-basic-auth secret search when passing username and/or port
  2024-08-17  6:02 ` bug#72526: 31.0.50; [PATCH] Fix url-basic-auth secret search when passing username and/or port Eli Zaretskii
@ 2024-08-17  8:41   ` Björn Bidar via Bug reports for GNU Emacs, the Swiss army knife of text editors
       [not found]   ` <877ccftubm.fsf@>
  1 sibling, 0 replies; 16+ messages in thread
From: Björn Bidar via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2024-08-17  8:41 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: 72526

Eli Zaretskii <eliz@gnu.org> writes:

>> Date: Fri, 16 Aug 2024 23:02:51 +0300
>> From:  Björn Bidar via "Bug reports for GNU Emacs,
>>  the Swiss army knife of text editors" <bug-gnu-emacs@gnu.org>
>> 
>> Could someone please review my patch?
>
> Sorry, I don't see any experts around to ask to do that.

Maybe the maintainer of the url package?

> Maybe if you'd posted a more detailed description of the problem and
> its context, someone could follow your arguments and do a meaningful
> review.  E.g., it sounds from your description like the case of URLs
> where it currently fails was not meant to be supported by this
> library?  If so, perhaps an alternative is to submit to this library
> only URLs that it supports, like after stripping the port part?

The problem is that the user in url-basic-auth when handling urls like <uri-type>://<user>@<host> isn't
forwarded to auth-source. Further it also appends to port to the
hostname of host which means that the host is invalid since the hostname
includes the port number.

From what I read when looking at url-auth.el at line 84 it does support
this kind of case of url as it already handles the same type of url when
it deals with <uri-type>://<user>:<password>@<host>.

> On another level: please make sure you leave 2 spaces between
> sentences in comments, strings, and commit log messages.  And I don't
> think the 3rd patch belongs to this issue, so let's not include it in
> this discussion.

Sure.





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

* bug#72526: 31.0.50; [PATCH] Fix url-basic-auth secret search when passing username and/or port
       [not found]   ` <877ccftubm.fsf@>
@ 2024-08-17 10:49     ` Eli Zaretskii
  2024-08-17 20:50       ` Björn Bidar via Bug reports for GNU Emacs, the Swiss army knife of text editors
       [not found]       ` <87zfpaswk4.fsf@>
  0 siblings, 2 replies; 16+ messages in thread
From: Eli Zaretskii @ 2024-08-17 10:49 UTC (permalink / raw)
  To: Björn Bidar; +Cc: 72526

> From: Björn Bidar <bjorn.bidar@thaodan.de>
> Cc: 72526@debbugs.gnu.org
> Date: Sat, 17 Aug 2024 11:41:33 +0300
> 
> Eli Zaretskii <eliz@gnu.org> writes:
> 
> >> Date: Fri, 16 Aug 2024 23:02:51 +0300
> >> From:  Björn Bidar via "Bug reports for GNU Emacs,
> >>  the Swiss army knife of text editors" <bug-gnu-emacs@gnu.org>
> >> 
> >> Could someone please review my patch?
> >
> > Sorry, I don't see any experts around to ask to do that.
> 
> Maybe the maintainer of the url package?

Whom did you have in mind?  url.el says "emacs-devel", which is
basically no one and everyone.

> > Maybe if you'd posted a more detailed description of the problem and
> > its context, someone could follow your arguments and do a meaningful
> > review.  E.g., it sounds from your description like the case of URLs
> > where it currently fails was not meant to be supported by this
> > library?  If so, perhaps an alternative is to submit to this library
> > only URLs that it supports, like after stripping the port part?
> 
> The problem is that the user in url-basic-auth when handling urls like <uri-type>://<user>@<host> isn't
> forwarded to auth-source. Further it also appends to port to the
> hostname of host which means that the host is invalid since the hostname
> includes the port number.
> 
> >From what I read when looking at url-auth.el at line 84 it does support
> this kind of case of url as it already handles the same type of url when
> it deals with <uri-type>://<user>:<password>@<host>.

So how come this code was not fixed since the day it was added to
Emacs, so long ago?





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

* bug#72526: 31.0.50; [PATCH] Fix url-basic-auth secret search when passing username and/or port
  2024-08-17 10:49     ` Eli Zaretskii
@ 2024-08-17 20:50       ` Björn Bidar via Bug reports for GNU Emacs, the Swiss army knife of text editors
       [not found]       ` <87zfpaswk4.fsf@>
  1 sibling, 0 replies; 16+ messages in thread
From: Björn Bidar via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2024-08-17 20:50 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: 72526

Eli Zaretskii <eliz@gnu.org> writes:

>> From: Björn Bidar <bjorn.bidar@thaodan.de>
>> Cc: 72526@debbugs.gnu.org
>> Date: Sat, 17 Aug 2024 11:41:33 +0300
>> 
>> Eli Zaretskii <eliz@gnu.org> writes:
>> 
>> >> Date: Fri, 16 Aug 2024 23:02:51 +0300
>> >> From:  Björn Bidar via "Bug reports for GNU Emacs,
>> >>  the Swiss army knife of text editors" <bug-gnu-emacs@gnu.org>
>> >> 
>> >> Could someone please review my patch?
>> >
>> > Sorry, I don't see any experts around to ask to do that.
>> 
>> Maybe the maintainer of the url package?
>
> Whom did you have in mind?  url.el says "emacs-devel", which is
> basically no one and everyone.

I don't know, the person that usually deals with the package?

>> > Maybe if you'd posted a more detailed description of the problem and
>> > its context, someone could follow your arguments and do a meaningful
>> > review.  E.g., it sounds from your description like the case of URLs
>> > where it currently fails was not meant to be supported by this
>> > library?  If so, perhaps an alternative is to submit to this library
>> > only URLs that it supports, like after stripping the port part?
>> 
>> The problem is that the user in url-basic-auth when handling urls like <uri-type>://<user>@<host> isn't
>> forwarded to auth-source. Further it also appends to port to the
>> hostname of host which means that the host is invalid since the hostname
>> includes the port number.
>> 
>> >From what I read when looking at url-auth.el at line 84 it does support
>> this kind of case of url as it already handles the same type of url when
>> it deals with <uri-type>://<user>:<password>@<host>.
>
> So how come this code was not fixed since the day it was added to
> Emacs, so long ago?

I don't know I assume it was never an issue at that time?
In any case amending the port to the :host key seems like a bug to me.
Similarly when the user specifies the user in the url it should be
passed to auth-source so it can find the credentials.





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

* bug#72526: 31.0.50; [PATCH] Fix url-basic-auth secret search when passing username and/or port
       [not found]       ` <87zfpaswk4.fsf@>
@ 2024-08-18  5:15         ` Eli Zaretskii
  2024-08-18 12:30           ` Björn Bidar via Bug reports for GNU Emacs, the Swiss army knife of text editors
       [not found]           ` <87v7zyrp29.fsf@>
  0 siblings, 2 replies; 16+ messages in thread
From: Eli Zaretskii @ 2024-08-18  5:15 UTC (permalink / raw)
  To: Björn Bidar; +Cc: 72526

> From: Björn Bidar <bjorn.bidar@thaodan.de>
> Cc: 72526@debbugs.gnu.org
> Date: Sat, 17 Aug 2024 23:50:51 +0300
> 
> Eli Zaretskii <eliz@gnu.org> writes:
> 
> >> > Sorry, I don't see any experts around to ask to do that.
> >> 
> >> Maybe the maintainer of the url package?
> >
> > Whom did you have in mind?  url.el says "emacs-devel", which is
> > basically no one and everyone.
> 
> I don't know, the person that usually deals with the package?

I couldn't find him or her in the recent logs.  I concluded we didn't
have such a person/

> >> > Maybe if you'd posted a more detailed description of the problem and
> >> > its context, someone could follow your arguments and do a meaningful
> >> > review.  E.g., it sounds from your description like the case of URLs
> >> > where it currently fails was not meant to be supported by this
> >> > library?  If so, perhaps an alternative is to submit to this library
> >> > only URLs that it supports, like after stripping the port part?
> >> 
> >> The problem is that the user in url-basic-auth when handling urls like <uri-type>://<user>@<host> isn't
> >> forwarded to auth-source. Further it also appends to port to the
> >> hostname of host which means that the host is invalid since the hostname
> >> includes the port number.
> >> 
> >> >From what I read when looking at url-auth.el at line 84 it does support
> >> this kind of case of url as it already handles the same type of url when
> >> it deals with <uri-type>://<user>:<password>@<host>.
> >
> > So how come this code was not fixed since the day it was added to
> > Emacs, so long ago?
> 
> I don't know I assume it was never an issue at that time?
> In any case amending the port to the :host key seems like a bug to me.
> Similarly when the user specifies the user in the url it should be
> passed to auth-source so it can find the credentials.

So please take me through your changes with more detailed
explanations, without assuming I know my way around this code.  A few
things bother me just by looking at the diffs: (1) why do we need to
calculate 'server' more than once using the same code in the same
function, and (2) will auth-source-search as called in
url-do-auth-source-search DTRT when called with ':user nil', which
will happen if the last argument is omitted.  I also wonder what is
the semantics of the call to auth-source-search in the current code
where the user is omitted.  AFAIU, in that case Emacs will prompt the
user for username?  If so, why is it a good idea to pass to
auth-source-search USER derived by url-basic-auth, instead of
prompting?

IOW, I'd like to open what the current code and your changes do for a
more detailed discussion, so we could be sure the change is TRT before
we decide what changes to install.

Thanks.





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

* bug#72526: 31.0.50; [PATCH] Fix url-basic-auth secret search when passing username and/or port
  2024-08-18  5:15         ` Eli Zaretskii
@ 2024-08-18 12:30           ` Björn Bidar via Bug reports for GNU Emacs, the Swiss army knife of text editors
       [not found]           ` <87v7zyrp29.fsf@>
  1 sibling, 0 replies; 16+ messages in thread
From: Björn Bidar via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2024-08-18 12:30 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: 72526

Eli Zaretskii <eliz@gnu.org> writes:

>> From: Björn Bidar <bjorn.bidar@thaodan.de>
>> Cc: 72526@debbugs.gnu.org
>> Date: Sat, 17 Aug 2024 23:50:51 +0300
>> 
>> Eli Zaretskii <eliz@gnu.org> writes:
>> 
>> >> > Sorry, I don't see any experts around to ask to do that.
>> >> 
>> >> Maybe the maintainer of the url package?
>> >
>> > Whom did you have in mind?  url.el says "emacs-devel", which is
>> > basically no one and everyone.
>> 
>> I don't know, the person that usually deals with the package?
>
> I couldn't find him or her in the recent logs.  I concluded we didn't
> have such a person/
>
>> >> > Maybe if you'd posted a more detailed description of the problem and
>> >> > its context, someone could follow your arguments and do a meaningful
>> >> > review.  E.g., it sounds from your description like the case of URLs
>> >> > where it currently fails was not meant to be supported by this
>> >> > library?  If so, perhaps an alternative is to submit to this library
>> >> > only URLs that it supports, like after stripping the port part?
>> >> 
>> >> The problem is that the user in url-basic-auth when handling urls like <uri-type>://<user>@<host> isn't
>> >> forwarded to auth-source. Further it also appends to port to the
>> >> hostname of host which means that the host is invalid since the hostname
>> >> includes the port number.
>> >> 
>> >> >From what I read when looking at url-auth.el at line 84 it does support
>> >> this kind of case of url as it already handles the same type of url when
>> >> it deals with <uri-type>://<user>:<password>@<host>.
>> >
>> > So how come this code was not fixed since the day it was added to
>> > Emacs, so long ago?
>> 
>> I don't know I assume it was never an issue at that time?
>> In any case amending the port to the :host key seems like a bug to me.
>> Similarly when the user specifies the user in the url it should be
>> passed to auth-source so it can find the credentials.
>
> So please take me through your changes with more detailed
> explanations, without assuming I know my way around this code.  A few
> things bother me just by looking at the diffs: (1) why do we need to
> calculate 'server' more than once using the same code in the same
> function, and (2) will auth-source-search as called in
> url-do-auth-source-search DTRT when called with ':user nil', which
> will happen if the last argument is omitted.  I also wonder what is
> the semantics of the call to auth-source-search in the current code
> where the user is omitted.  AFAIU, in that case Emacs will prompt the
> user for username?  If so, why is it a good idea to pass to
> auth-source-search USER derived by url-basic-auth, instead of
> prompting?

1. url-basic-auth-store uses the 'server' as in the '<server>:<port>' in
   url-basic-auth-storage. I did not want to change the existing format
   as I don't know the implications.
2. I tested calling auth-source-search with :user nil and without :user
   in both cases the result was the same, from this I imply that calling
   auth-source-search with :user nil is ok.
   Yes if auth-source-search doesn't find a user for the url
   url-basic-auth will prompt the user for a user.
   Why is it a good idea to derive the user by url-basic-auth?
   Because HTTP basic authentication uses the as specific in RFC 3986
   section 3.2.1. Using it in this function to infer the user from the
   url just follows the standard as already in other programs/Emacs
   packages.
   If the user has specified the username they want to identify with
   at the server asking for it would be redundant and not confirming to
   the standard.

> IOW, I'd like to open what the current code and your changes do for a
> more detailed discussion, so we could be sure the change is TRT before
> we decide what changes to install.
>
> Thanks.

PS: Reading your message was quite hard as a non-native speaker of
English, had to search so many of the acronyms.





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

* bug#72526: 31.0.50; [PATCH] Fix url-basic-auth secret search when passing username and/or port
       [not found]           ` <87v7zyrp29.fsf@>
@ 2024-08-18 13:13             ` Eli Zaretskii
  2024-08-19  6:54               ` Björn Bidar via Bug reports for GNU Emacs, the Swiss army knife of text editors
       [not found]               ` <87zfp9q9ym.fsf@>
  0 siblings, 2 replies; 16+ messages in thread
From: Eli Zaretskii @ 2024-08-18 13:13 UTC (permalink / raw)
  To: Björn Bidar; +Cc: 72526

> From: Björn Bidar <bjorn.bidar@thaodan.de>
> Cc: 72526@debbugs.gnu.org
> Date: Sun, 18 Aug 2024 15:30:22 +0300
> 
> Eli Zaretskii <eliz@gnu.org> writes:
> 
> 1. url-basic-auth-store uses the 'server' as in the '<server>:<port>' in
>    url-basic-auth-storage. I did not want to change the existing format
>    as I don't know the implications.

Can you calculate a separate variable once, and then use 'server' and
that new variable, each one where appropriate?  It simply doesn't look
clean to recalculate the same value several times.

> 2. I tested calling auth-source-search with :user nil and without :user
>    in both cases the result was the same, from this I imply that calling
>    auth-source-search with :user nil is ok.

Wouldn't it be cleaner to omit :user if the value is nil?

>    Yes if auth-source-search doesn't find a user for the url
>    url-basic-auth will prompt the user for a user.
>    Why is it a good idea to derive the user by url-basic-auth?
>    Because HTTP basic authentication uses the as specific in RFC 3986
>    section 3.2.1. Using it in this function to infer the user from the
>    url just follows the standard as already in other programs/Emacs
>    packages.
>    If the user has specified the username they want to identify with
>    at the server asking for it would be redundant and not confirming to
>    the standard.

What does the current code do in that case?  Does it completely fail,
or does it prompt for the username?  If the latter, it would be a
change in behavior, won't it?

> PS: Reading your message was quite hard as a non-native speaker of
> English, had to search so many of the acronyms.

Sorry about that.  (I'm not a native English speaker, either.)





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

* bug#72526: 31.0.50; [PATCH] Fix url-basic-auth secret search when passing username and/or port
  2024-08-18 13:13             ` Eli Zaretskii
@ 2024-08-19  6:54               ` Björn Bidar via Bug reports for GNU Emacs, the Swiss army knife of text editors
       [not found]               ` <87zfp9q9ym.fsf@>
  1 sibling, 0 replies; 16+ messages in thread
From: Björn Bidar via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2024-08-19  6:54 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: 72526

Eli Zaretskii <eliz@gnu.org> writes:

>> From: Björn Bidar <bjorn.bidar@thaodan.de>
>> Cc: 72526@debbugs.gnu.org
>> Date: Sun, 18 Aug 2024 15:30:22 +0300
>> 
>> Eli Zaretskii <eliz@gnu.org> writes:
>> 
>> 1. url-basic-auth-store uses the 'server' as in the '<server>:<port>' in
>>    url-basic-auth-storage. I did not want to change the existing format
>>    as I don't know the implications.
>
> Can you calculate a separate variable once, and then use 'server' and
> that new variable, each one where appropriate?  It simply doesn't look
> clean to recalculate the same value several times.
>
>> 2. I tested calling auth-source-search with :user nil and without :user
>>    in both cases the result was the same, from this I imply that calling
>>    auth-source-search with :user nil is ok.
>
> Wouldn't it be cleaner to omit :user if the value is nil?

It would, how would one do such thing in lisp except of course
having two separate calls one with :user and one without :user.
For C it would be normal to just pass NULL if the argument is optional
(beginner in lisp).

>>    Yes if auth-source-search doesn't find a user for the url
>>    url-basic-auth will prompt the user for a user.
>>    Why is it a good idea to derive the user by url-basic-auth?
>>    Because HTTP basic authentication uses the as specific in RFC 3986
>>    section 3.2.1. Using it in this function to infer the user from the
>>    url just follows the standard as already in other programs/Emacs
>>    packages.
>>    If the user has specified the username they want to identify with
>>    at the server asking for it would be redundant and not confirming to
>>    the standard.
>
> What does the current code do in that case?  Does it completely fail,
> or does it prompt for the username?  If the latter, it would be a
> change in behavior, won't it?

Currently it does ask for the user even if the caller sends the user in the
url. It would be change of behavior, however it is expected that the user is
used in HTTP basic authentication if the the url is 'http://user@host'.
I don't think any caller would call the function in such a way without
expecting that user is the username used in the call.

>> PS: Reading your message was quite hard as a non-native speaker of
>> English, had to search so many of the acronyms.
>
> Sorry about that.  (I'm not a native English speaker, either.)

Np, I was wondering if you are (your last name did sound interesting).





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

* bug#72526: 31.0.50; [PATCH] Fix url-basic-auth secret search when passing username and/or port
       [not found]               ` <87zfp9q9ym.fsf@>
@ 2024-08-24  8:59                 ` Eli Zaretskii
  2024-08-24 11:59                   ` Björn Bidar via Bug reports for GNU Emacs, the Swiss army knife of text editors
       [not found]                   ` <87y14mb07y.fsf@>
  0 siblings, 2 replies; 16+ messages in thread
From: Eli Zaretskii @ 2024-08-24  8:59 UTC (permalink / raw)
  To: Björn Bidar; +Cc: 72526-done

> From: Björn Bidar <bjorn.bidar@thaodan.de>
> Cc: 72526@debbugs.gnu.org
> Date: Mon, 19 Aug 2024 09:54:09 +0300
> 
> Eli Zaretskii <eliz@gnu.org> writes:
> 
> >> From: Björn Bidar <bjorn.bidar@thaodan.de>
> >> Cc: 72526@debbugs.gnu.org
> >> Date: Sun, 18 Aug 2024 15:30:22 +0300
> >> 
> >> Eli Zaretskii <eliz@gnu.org> writes:
> >> 
> >> 1. url-basic-auth-store uses the 'server' as in the '<server>:<port>' in
> >>    url-basic-auth-storage. I did not want to change the existing format
> >>    as I don't know the implications.
> >
> > Can you calculate a separate variable once, and then use 'server' and
> > that new variable, each one where appropriate?  It simply doesn't look
> > clean to recalculate the same value several times.
> >
> >> 2. I tested calling auth-source-search with :user nil and without :user
> >>    in both cases the result was the same, from this I imply that calling
> >>    auth-source-search with :user nil is ok.
> >
> > Wouldn't it be cleaner to omit :user if the value is nil?
> 
> It would, how would one do such thing in lisp except of course
> having two separate calls one with :user and one without :user.
> For C it would be normal to just pass NULL if the argument is optional
> (beginner in lisp).
> 
> >>    Yes if auth-source-search doesn't find a user for the url
> >>    url-basic-auth will prompt the user for a user.
> >>    Why is it a good idea to derive the user by url-basic-auth?
> >>    Because HTTP basic authentication uses the as specific in RFC 3986
> >>    section 3.2.1. Using it in this function to infer the user from the
> >>    url just follows the standard as already in other programs/Emacs
> >>    packages.
> >>    If the user has specified the username they want to identify with
> >>    at the server asking for it would be redundant and not confirming to
> >>    the standard.
> >
> > What does the current code do in that case?  Does it completely fail,
> > or does it prompt for the username?  If the latter, it would be a
> > change in behavior, won't it?
> 
> Currently it does ask for the user even if the caller sends the user in the
> url. It would be change of behavior, however it is expected that the user is
> used in HTTP basic authentication if the the url is 'http://user@host'.
> I don't think any caller would call the function in such a way without
> expecting that user is the username used in the call.

Thanks, so I installed the patch on the master branch, and I'm now
closing this bug.





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

* bug#72526: 31.0.50; [PATCH] Fix url-basic-auth secret search when passing username and/or port
  2024-08-24  8:59                 ` Eli Zaretskii
@ 2024-08-24 11:59                   ` Björn Bidar via Bug reports for GNU Emacs, the Swiss army knife of text editors
       [not found]                   ` <87y14mb07y.fsf@>
  1 sibling, 0 replies; 16+ messages in thread
From: Björn Bidar via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2024-08-24 11:59 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: 72526-done

Eli Zaretskii <eliz@gnu.org> writes:

>> From: Björn Bidar <bjorn.bidar@thaodan.de>
>> Cc: 72526@debbugs.gnu.org
>> Date: Mon, 19 Aug 2024 09:54:09 +0300
>> 
>> Eli Zaretskii <eliz@gnu.org> writes:
>> 
>> >> From: Björn Bidar <bjorn.bidar@thaodan.de>
>> >> Cc: 72526@debbugs.gnu.org
>> >> Date: Sun, 18 Aug 2024 15:30:22 +0300
>> >> 
>> >> Eli Zaretskii <eliz@gnu.org> writes:
>> >> 
>> >> 1. url-basic-auth-store uses the 'server' as in the '<server>:<port>' in
>> >>    url-basic-auth-storage. I did not want to change the existing format
>> >>    as I don't know the implications.
>> >
>> > Can you calculate a separate variable once, and then use 'server' and
>> > that new variable, each one where appropriate?  It simply doesn't look
>> > clean to recalculate the same value several times.
>> >
>> >> 2. I tested calling auth-source-search with :user nil and without :user
>> >>    in both cases the result was the same, from this I imply that calling
>> >>    auth-source-search with :user nil is ok.
>> >
>> > Wouldn't it be cleaner to omit :user if the value is nil?
>> 
>> It would, how would one do such thing in lisp except of course
>> having two separate calls one with :user and one without :user.
>> For C it would be normal to just pass NULL if the argument is optional
>> (beginner in lisp).
>> 
>> >>    Yes if auth-source-search doesn't find a user for the url
>> >>    url-basic-auth will prompt the user for a user.
>> >>    Why is it a good idea to derive the user by url-basic-auth?
>> >>    Because HTTP basic authentication uses the as specific in RFC 3986
>> >>    section 3.2.1. Using it in this function to infer the user from the
>> >>    url just follows the standard as already in other programs/Emacs
>> >>    packages.
>> >>    If the user has specified the username they want to identify with
>> >>    at the server asking for it would be redundant and not confirming to
>> >>    the standard.
>> >
>> > What does the current code do in that case?  Does it completely fail,
>> > or does it prompt for the username?  If the latter, it would be a
>> > change in behavior, won't it?
>> 
>> Currently it does ask for the user even if the caller sends the user in the
>> url. It would be change of behavior, however it is expected that the user is
>> used in HTTP basic authentication if the the url is 'http://user@host'.
>> I don't think any caller would call the function in such a way without
>> expecting that user is the username used in the call.
>
> Thanks, so I installed the patch on the master branch, and I'm now
> closing this bug.

Would it make sense to apply it to Emacs 30.1 too?

What about the other patch? Should :user only be passed to
auth-source-search if there was a user in the url for the patch to be
ok?





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

* bug#72526: 31.0.50; [PATCH] Fix url-basic-auth secret search when passing username and/or port
       [not found]                   ` <87y14mb07y.fsf@>
@ 2024-08-24 12:51                     ` Eli Zaretskii
  2024-08-26  6:05                       ` Björn Bidar via Bug reports for GNU Emacs, the Swiss army knife of text editors
       [not found]                       ` <87h6b7byzb.fsf@>
  0 siblings, 2 replies; 16+ messages in thread
From: Eli Zaretskii @ 2024-08-24 12:51 UTC (permalink / raw)
  To: Björn Bidar; +Cc: 72526

> From: Björn Bidar <bjorn.bidar@thaodan.de>
> Cc: 72526-done@debbugs.gnu.org
> Date: Sat, 24 Aug 2024 14:59:29 +0300
> 
> Eli Zaretskii <eliz@gnu.org> writes:
> 
> >> From: Björn Bidar <bjorn.bidar@thaodan.de>
> >> Cc: 72526@debbugs.gnu.org
> >> Date: Mon, 19 Aug 2024 09:54:09 +0300
> >> 
> >> Eli Zaretskii <eliz@gnu.org> writes:
> >> 
> >> >> From: Björn Bidar <bjorn.bidar@thaodan.de>
> >> >> Cc: 72526@debbugs.gnu.org
> >> >> Date: Sun, 18 Aug 2024 15:30:22 +0300
> >> >> 
> >> >> Eli Zaretskii <eliz@gnu.org> writes:
> >> >> 
> >> >> 1. url-basic-auth-store uses the 'server' as in the '<server>:<port>' in
> >> >>    url-basic-auth-storage. I did not want to change the existing format
> >> >>    as I don't know the implications.
> >> >
> >> > Can you calculate a separate variable once, and then use 'server' and
> >> > that new variable, each one where appropriate?  It simply doesn't look
> >> > clean to recalculate the same value several times.
> >> >
> >> >> 2. I tested calling auth-source-search with :user nil and without :user
> >> >>    in both cases the result was the same, from this I imply that calling
> >> >>    auth-source-search with :user nil is ok.
> >> >
> >> > Wouldn't it be cleaner to omit :user if the value is nil?
> >> 
> >> It would, how would one do such thing in lisp except of course
> >> having two separate calls one with :user and one without :user.
> >> For C it would be normal to just pass NULL if the argument is optional
> >> (beginner in lisp).
> >> 
> >> >>    Yes if auth-source-search doesn't find a user for the url
> >> >>    url-basic-auth will prompt the user for a user.
> >> >>    Why is it a good idea to derive the user by url-basic-auth?
> >> >>    Because HTTP basic authentication uses the as specific in RFC 3986
> >> >>    section 3.2.1. Using it in this function to infer the user from the
> >> >>    url just follows the standard as already in other programs/Emacs
> >> >>    packages.
> >> >>    If the user has specified the username they want to identify with
> >> >>    at the server asking for it would be redundant and not confirming to
> >> >>    the standard.
> >> >
> >> > What does the current code do in that case?  Does it completely fail,
> >> > or does it prompt for the username?  If the latter, it would be a
> >> > change in behavior, won't it?
> >> 
> >> Currently it does ask for the user even if the caller sends the user in the
> >> url. It would be change of behavior, however it is expected that the user is
> >> used in HTTP basic authentication if the the url is 'http://user@host'.
> >> I don't think any caller would call the function in such a way without
> >> expecting that user is the username used in the call.
> >
> > Thanks, so I installed the patch on the master branch, and I'm now
> > closing this bug.
> 
> Would it make sense to apply it to Emacs 30.1 too?

It's too late for behavior changes on the release branch, sorry.

> What about the other patch? Should :user only be passed to
> auth-source-search if there was a user in the url for the patch to be
> ok?

Sorry, forgot to push that.  Done now.





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

* bug#72526: 31.0.50; [PATCH] Fix url-basic-auth secret search when passing username and/or port
  2024-08-24 12:51                     ` Eli Zaretskii
@ 2024-08-26  6:05                       ` Björn Bidar via Bug reports for GNU Emacs, the Swiss army knife of text editors
       [not found]                       ` <87h6b7byzb.fsf@>
  1 sibling, 0 replies; 16+ messages in thread
From: Björn Bidar via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2024-08-26  6:05 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: 72526

Eli Zaretskii <eliz@gnu.org> writes:

>> > Thanks, so I installed the patch on the master branch, and I'm now
>> > closing this bug.
>> 
>> Would it make sense to apply it to Emacs 30.1 too?
>
> It's too late for behavior changes on the release branch, sorry.
>
IMHO it's more a bugfix than a plain behavior change, but ok for me.

>> What about the other patch? Should :user only be passed to
>> auth-source-search if there was a user in the url for the patch to be
>> ok?
>
> Sorry, forgot to push that.  Done now.

Thanks





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

* bug#72526: 31.0.50; [PATCH] Fix url-basic-auth secret search when passing username and/or port
       [not found]                       ` <87h6b7byzb.fsf@>
@ 2024-08-26 11:14                         ` Eli Zaretskii
  0 siblings, 0 replies; 16+ messages in thread
From: Eli Zaretskii @ 2024-08-26 11:14 UTC (permalink / raw)
  To: Björn Bidar; +Cc: 72526

> From: Björn Bidar <bjorn.bidar@thaodan.de>
> Cc: 72526@debbugs.gnu.org
> Date: Mon, 26 Aug 2024 09:05:28 +0300
> 
> Eli Zaretskii <eliz@gnu.org> writes:
> 
> >> > Thanks, so I installed the patch on the master branch, and I'm now
> >> > closing this bug.
> >> 
> >> Would it make sense to apply it to Emacs 30.1 too?
> >
> > It's too late for behavior changes on the release branch, sorry.
> >
> IMHO it's more a bugfix than a plain behavior change, but ok for me.

It fixes a bug by changing behavior.





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

end of thread, other threads:[~2024-08-26 11:14 UTC | newest]

Thread overview: 16+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
     [not found] <87bk1stevo.fsf@>
2024-08-17  6:02 ` bug#72526: 31.0.50; [PATCH] Fix url-basic-auth secret search when passing username and/or port Eli Zaretskii
2024-08-17  8:41   ` Björn Bidar via Bug reports for GNU Emacs, the Swiss army knife of text editors
     [not found]   ` <877ccftubm.fsf@>
2024-08-17 10:49     ` Eli Zaretskii
2024-08-17 20:50       ` Björn Bidar via Bug reports for GNU Emacs, the Swiss army knife of text editors
     [not found]       ` <87zfpaswk4.fsf@>
2024-08-18  5:15         ` Eli Zaretskii
2024-08-18 12:30           ` Björn Bidar via Bug reports for GNU Emacs, the Swiss army knife of text editors
     [not found]           ` <87v7zyrp29.fsf@>
2024-08-18 13:13             ` Eli Zaretskii
2024-08-19  6:54               ` Björn Bidar via Bug reports for GNU Emacs, the Swiss army knife of text editors
     [not found]               ` <87zfp9q9ym.fsf@>
2024-08-24  8:59                 ` Eli Zaretskii
2024-08-24 11:59                   ` Björn Bidar via Bug reports for GNU Emacs, the Swiss army knife of text editors
     [not found]                   ` <87y14mb07y.fsf@>
2024-08-24 12:51                     ` Eli Zaretskii
2024-08-26  6:05                       ` Björn Bidar via Bug reports for GNU Emacs, the Swiss army knife of text editors
     [not found]                       ` <87h6b7byzb.fsf@>
2024-08-26 11:14                         ` Eli Zaretskii
     [not found] <87r0azawml.fsf@>
2024-08-16 20:02 ` Björn Bidar via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-08-16 20:02 ` Björn Bidar via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-08-08 14:59 Björn Bidar via Bug reports for GNU Emacs, the Swiss army knife of text editors

Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/emacs.git
	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.