From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Julien Cubizolles Newsgroups: gmane.emacs.devel Subject: Re: Some environment variables disappeared for getenv Date: Thu, 15 Sep 2022 15:28:17 +0200 Message-ID: <87czbwhimm.fsf@free.fr> References: <87pmfwhoxp.fsf@free.fr> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="21220"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/29.0.50 (gnu/linux) To: emacs-devel@gnu.org Cancel-Lock: sha1:9lnG5UYg/XLbBToG+EdyO0G5IwE= Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Thu Sep 15 15:44:56 2022 Return-path: Envelope-to: ged-emacs-devel@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1oYpAm-0005EP-46 for ged-emacs-devel@m.gmane-mx.org; Thu, 15 Sep 2022 15:44:56 +0200 Original-Received: from localhost ([::1]:41300 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1oYpAl-0003Qh-0b for ged-emacs-devel@m.gmane-mx.org; Thu, 15 Sep 2022 09:44:55 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:57944) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oYov3-0005v6-4g for emacs-devel@gnu.org; Thu, 15 Sep 2022 09:28:41 -0400 Original-Received: from ciao.gmane.io ([116.202.254.214]:38378) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oYouz-0006Km-5I for emacs-devel@gnu.org; Thu, 15 Sep 2022 09:28:38 -0400 Original-Received: from list by ciao.gmane.io with local (Exim 4.92) (envelope-from ) id 1oYoux-0003ly-5C for emacs-devel@gnu.org; Thu, 15 Sep 2022 15:28:35 +0200 X-Injected-Via-Gmane: http://gmane.org/ Received-SPF: pass client-ip=116.202.254.214; envelope-from=ged-emacs-devel@m.gmane-mx.org; helo=ciao.gmane.io X-Spam_score_int: -13 X-Spam_score: -1.4 X-Spam_bar: - X-Spam_report: (-1.4 / 5.0 requ) BAYES_00=-1.9, FREEMAIL_FORGED_FROMDOMAIN=0.249, FREEMAIL_FROM=0.001, HEADER_FROM_DIFFERENT_DOMAINS=0.25, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-Mailman-Approved-At: Thu, 15 Sep 2022 09:40:32 -0400 X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Original-Sender: "Emacs-devel" Xref: news.gmane.io gmane.emacs.devel:295421 Archived-At: writes: > On Thu, Sep 15, 2022 at 01:12:02PM +0200, Julien Cubizolles wrote: >> I used to rely on getenv to get the value of $XDG_SESSION_TYPE. I >> noticed that recently: >> --8<---------------cut here---------------start------------->8--- >> (getenv "XDG_SESSION_TYPE") >> --8<---------------cut here---------------end--------------->8--- >> returns nil, because this variable isn't in process-environment >> >> What is the reason for dropping this particular variable ? How can I get >> the value of this variable from within Emacs ? > > The process that starts your Emacs has to pass it on (that's the idea > of environment variables). If things changed, this is where you have > to look. > > How is your Emacs started? It's started through a user systemd service that hasn't changed in years. --8<---------------cut here---------------start------------->8--- [Service] Type=forking Environment='XMODIFIERS=""' ExecStart=/usr/bin/emacs --daemon ExecStop=/usr/bin/emacsclient --eval "(progn (setq kill-emacs-hook daemon-kill-emacs-hook) (kill-emacs))" Restart=on-failure Environment="DISPLAY=:%i" TimeoutStartSec=0 --8<---------------cut here---------------end--------------->8--- In the getenv docstring, there is a mention of variable process-environment, containing a list of environment variables, not refered to in the systemd service file but nonetheless accessible to getenv (some are XDG variables like XDG_DATA_DIRS). Maybe XDG_SESSION_TYPE has been dropped from this list ? -- Julien Cubizolles