From debbugs-submit-bounces@debbugs.gnu.org Mon Aug 01 16:15:49 2022 Received: (at submit) by debbugs.gnu.org; 1 Aug 2022 20:15:49 +0000 Received: from localhost ([127.0.0.1]:41703 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oIbpM-0002S3-Pf for submit@debbugs.gnu.org; Mon, 01 Aug 2022 16:15:49 -0400 Received: from lists.gnu.org ([209.51.188.17]:47182) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oIbpH-0002Rs-Vb for submit@debbugs.gnu.org; Mon, 01 Aug 2022 16:15:46 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:45980) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oIbpF-0004iV-Aw for bug-gnu-emacs@gnu.org; Mon, 01 Aug 2022 16:15:41 -0400 Received: from relay9-d.mail.gandi.net ([2001:4b98:dc4:8::229]:41753) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oIbpC-00007b-Cn for bug-gnu-emacs@gnu.org; Mon, 01 Aug 2022 16:15:41 -0400 Received: (Authenticated sender: matt@rfc20.org) by mail.gandi.net (Postfix) with ESMTPSA id 7C965FF802 for ; Mon, 1 Aug 2022 20:15:28 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=rfc20.org; s=gm1; t=1659384929; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type; bh=93C24KlGpYR0HndFRC1vfC3PTF7F4RmuTWblmv3Qiy0=; b=XT9wF7Yd+9RLpEQRYuRcU8al8Xo/N6i9acuw1NXLkMYNOsgTpiSkH+bbIE5fPNcOXlsXJN sNJwuXjxDXOzOd1MXYDAKquzQWna6HcKuf3Oc6dpqi4tgO9sr3vZhk9iuXdJj9hYHJNQ6j 6mR7tG08h9yRHfN8rbtVCgLjvDUvIC3p+As2hTMWCHUkzy/UbkG5/7PaaWAhK6dfMkHCGJ Tj8/SwPqew3bMeIbEPjCo5qurLPu6/fuTZQ36B82zRSrmHRYM79htkYsBaOqNn+4YQwvOl tOaGJehzIvfOMJ6d1bPjHunPT0NVAjvCepnkOUfyzV20FS00lx6tmGEGBJ9xPw== Received: from matt by naz with local (Exim 4.96) (envelope-from ) id 1oIboz-0016bd-2D for bug-gnu-emacs@gnu.org; Mon, 01 Aug 2022 13:15:25 -0700 From: Matt Armstrong To: bug-gnu-emacs@gnu.org Subject: 29.0.50; Built-in packages are not always package-installed-p Date: Mon, 01 Aug 2022 13:15:25 -0700 Message-ID: <87r11z4t5u.fsf@rfc20.org> MIME-Version: 1.0 Content-Type: text/plain Received-SPF: pass client-ip=2001:4b98:dc4:8::229; envelope-from=matt@rfc20.org; helo=relay9-d.mail.gandi.net X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-Spam-Score: -1.6 (-) X-Debbugs-Envelope-To: submit X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -2.6 (--) Before `package--initialized' is set non-nil a call to (package-installed-p PACKAGE) returns nil for symbols naming built-in packages. After `package--initialized' is non-nil the same call returns non-nil. I discovered this by accident when I figured out this use-package form caused Emacs to contact GNU ELPA during startup: (use-package project :ensure t ;; stuff) For the above use-package calls (package-installed-p 'project), which returns nil. Use-package then attempts to install it using package.el, which causes network activity, etc., and then package.el decides that it is already installed. This repeats each time I start Emacs. There is code in `package-installed-p' that consults `package-activated-list' when `package--initalized' is non-nil. This is the code path I am exercising. We also have this FIXME: (defvar package-activated-list nil ;; FIXME: This should implicitly include all builtin packages. "List of the names of currently activated packages.") I have a fix prepared, which I will send once i have a bug number. Configured using: 'configure --with-native-compilation --with-pgtk' Configured features: ACL CAIRO DBUS FREETYPE GIF GLIB GMP GNUTLS GPM GSETTINGS HARFBUZZ JPEG JSON LCMS2 LIBOTF LIBSELINUX LIBSYSTEMD LIBXML2 MODULES NATIVE_COMP NOTIFY INOTIFY PDUMPER PGTK PNG RSVG SECCOMP SOUND SQLITE3 THREADS TIFF TOOLKIT_SCROLL_BARS XIM GTK3 ZLIB Important settings: value of $LANG: en_US.UTF-8 value of $XMODIFIERS: @im=ibus locale-coding-system: utf-8-unix Major mode: ELisp/l Minor modes in effect: global-git-commit-mode: t magit-auto-revert-mode: t auto-revert-mode: t bug-reference-prog-mode: t msb-mode: t display-time-mode: t shell-dirtrack-mode: t auto-insert-mode: t keyfreq-autosave-mode: t keyfreq-mode: t savehist-mode: t icomplete-vertical-mode: t icomplete-mode: t editorconfig-mode: t which-key-mode: t electric-pair-mode: t override-global-mode: t tooltip-mode: t global-eldoc-mode: t 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 column-number-mode: t line-number-mode: t transient-mark-mode: t auto-composition-mode: t auto-encryption-mode: t auto-compression-mode: t temp-buffer-resize-mode: t auto-save-visited-mode: t Load-path shadows: ~/env/elisp/ol-notmuch hides /home/matt/.config/emacs/elpa/ol-notmuch-20220428.1337/ol-notmuch /home/matt/.config/emacs/elpa/transient-20220717.1713/transient hides /home/matt/git/emacs-build/lisp/transient Features: (ert ewoc debug backtrace shadow sort mail-extr magit-extras face-remap magit-submodule magit-obsolete 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 imenu magit-diff git-commit log-edit magit-core magit-autorevert magit-margin magit-transient magit-process with-editor magit-mode transient magit-git magit-base magit-section crm dash compat-27 compat-26 compat make-mode emacsbug smerge-mode diff add-log vc-annotate vc-hg vc-bzr vc-src vc-sccs vc-svn vc-cvs vc-rcs log-view pcvs-util whitespace vc sh-script smie executable autorevert cl-print package-x dabbrev misearch multi-isearch pulse color xref vc-git diff-mode vc-dispatcher bug-reference shortdoc benchmark help-fns radix-tree textsec uni-scripts idna-mapping ucs-normalize uni-confusable textsec-check protbuf msb time copyright editorconfig-core editorconfig-core-handle editorconfig-fnmatch cus-edit pp cus-start cus-load org-element avl-tree generator ol-w3m ol-rmail ol-mhe ol-irc ol-info org-habit org-agenda org-refile ol-gnus nnselect gnus-art mm-uu mml2015 mm-view mml-smime smime dig gnus-sum gnus-group gnus-undo gnus-start gnus-dbus dbus gnus-cloud nnimap nnmail mail-source utf7 netrc nnoo parse-time gnus-spec gnus-int gnus-range gnus-win ol-eww eww xdg url-queue thingatpt shr pixel-fill kinsoku url-file url-dired svg xml dom mm-url gnus nnheader range wid-edit ol-doi org-link-doi ol-docview doc-view filenotify jka-compr image-mode exif ol-bibtex ol-bbdb server dirtrack ob-shell shell ob-ruby ob-python python ob-dot org-protocol org ob ob-tangle ob-ref ob-lob ob-table ob-exp org-macro org-footnote org-src ob-comint org-pcomplete pcomplete comint ansi-color ring org-list org-faces org-entities noutline outline org-version ob-emacs-lisp ob-core ob-eval org-table oc-basic bibtex iso8601 org-keys oc org-loaddefs find-func cal-menu calendar cal-loaddefs ol-notmuch ol org-compat org-macs format-spec skeleton autoinsert advice keyfreq project finder-inf mm-archive message sendmail yank-media dired dired-loaddefs rfc822 mml mml-sec epa derived gnus-util text-property-search time-date mailabbrev gmm-utils mailheader mm-decode mm-bodies mm-encode mail-utils gnutls network-stream url-cache url-http url-auth mail-parse rfc2231 rfc2047 rfc2045 mm-util ietf-drums mail-prsvr url-gw nsm puny epg rfc6068 epg-config edmacro kmacro savehist icomplete comp comp-cstr warnings icons rx editorconfig modus-operandi-theme modus-themes which-key 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 eieio eieio-core password-cache json subr-x map byte-opt url-vars cl-macs gv cl-extra help-mode cl-seq elec-pair use-package use-package-ensure use-package-delight use-package-diminish use-package-bind-key bind-key easy-mmode use-package-core cl-loaddefs cl-lib bytecomp byte-compile cconv info bazel-autoloads clang-format+-autoloads clang-format-autoloads cmake-mode-autoloads d-mode-autoloads debbugs-autoloads editorconfig-autoloads eglot-autoloads elpy-autoloads company-autoloads exec-path-from-shell-autoloads flymake-ruby-autoloads flymake-easy-autoloads flymake-yamllint-autoloads go-mode-autoloads google-c-style-autoloads graphviz-dot-mode-autoloads highlight-indentation-autoloads magit-autoloads git-commit-autoloads magit-section-autoloads dash-autoloads markdown-mode-autoloads meson-mode-autoloads modus-themes-autoloads nixpkgs-fmt-autoloads ol-notmuch-autoloads notmuch-autoloads orderless-autoloads org-drill-autoloads persist-autoloads pylint-autoloads pyvenv-autoloads s-autoloads shfmt-autoloads reformatter-autoloads transient-autoloads use-package-autoloads bind-key-autoloads vertico-autoloads which-key-autoloads with-editor-autoloads compat-autoloads yaml-mode-autoloads yasnippet-autoloads rmc iso-transl tooltip eldoc paren electric uniquify ediff-hook vc-hooks lisp-float-type elisp-mode mwheel term/pgtk-win pgtk-win term/common-win pgtk-dnd 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 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 dbusbind inotify dynamic-setting system-font-setting font-render-setting cairo gtk pgtk lcms2 multi-tty make-network-process native-compile emacs) Memory information: ((conses 16 1041704 138279) (symbols 48 41342 108) (strings 32 237540 12847) (string-bytes 1 6538892) (vectors 16 112331) (vector-slots 8 2502178 111733) (floats 8 749 1306) (intervals 56 26923 3648) (buffers 992 42)) From debbugs-submit-bounces@debbugs.gnu.org Mon Aug 01 16:56:25 2022 Received: (at control) by debbugs.gnu.org; 1 Aug 2022 20:56:25 +0000 Received: from localhost ([127.0.0.1]:41724 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oIcSe-0003g9-QQ for submit@debbugs.gnu.org; Mon, 01 Aug 2022 16:56:25 -0400 Received: from relay11.mail.gandi.net ([217.70.178.231]:44187) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oIcSc-0003fv-RD for control@debbugs.gnu.org; Mon, 01 Aug 2022 16:56:23 -0400 Received: (Authenticated sender: matt@rfc20.org) by mail.gandi.net (Postfix) with ESMTPSA id 40366100003 for ; Mon, 1 Aug 2022 20:56:15 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=rfc20.org; s=gm1; t=1659387376; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc; bh=ZC8MtLHHcJ76RKPoibLTzgF0bLWOKeQ4LJLblUsuSYk=; b=c6ska6QP8TJ8bGOz4Mbx3TOw18lxnAGWAS/A64JnMhFE7/Y4H64j8eQmNkQ8pJmIYlvBIz 2q206j+r+hYrVA9OH2/wzxQaoT6ZuBdMcvjhCO8PTrcA8/c9gqEAcImkw4pd4VGtSkMPaQ L4ieAfBAJSJnEp9pvb09avCoCN28IeS28tQxDSR9PbBeg9gynvI738zMoSW/hKHfER9AP1 JV+61Pd6RPO2BPYhyBRgGbrznEPPOpa0jYwXMIvs2ZM4AnPzkexB40e46y+TBV/Huq2XVo wfbqRZto05yZYwsR48vo0TsVicgYnWFLWfhKmXMOsNF70+cBGWFc1aBCwOHNrg== Received: from matt by naz with local (Exim 4.96) (envelope-from ) id 1oIcST-0017Q5-0N for control@debbugs.gnu.org; Mon, 01 Aug 2022 13:56:13 -0700 To: control@debbugs.gnu.org From: Matt Armstrong Subject: control message for bug #56877 Message-Id: Date: Mon, 01 Aug 2022 13:56:13 -0700 X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: control X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.7 (-) tags 56877 + patch quit From debbugs-submit-bounces@debbugs.gnu.org Mon Aug 01 17:02:14 2022 Received: (at 56877) by debbugs.gnu.org; 1 Aug 2022 21:02:15 +0000 Received: from localhost ([127.0.0.1]:41730 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oIcYI-00061d-JK for submit@debbugs.gnu.org; Mon, 01 Aug 2022 17:02:14 -0400 Received: from relay6-d.mail.gandi.net ([217.70.183.198]:43025) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oIcYG-00061N-AY for 56877@debbugs.gnu.org; Mon, 01 Aug 2022 17:02:13 -0400 Received: (Authenticated sender: matt@rfc20.org) by mail.gandi.net (Postfix) with ESMTPSA id C5A6CC0002 for <56877@debbugs.gnu.org>; Mon, 1 Aug 2022 21:02:03 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=rfc20.org; s=gm1; t=1659387726; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=CwHrdIRzjTutiH5WLadP75QF4dD2qkT62il6CnW9RqE=; b=prXvRh6ukZ/6MmIctmQTha+fRT8z/aoKJPIDVC3uvHLnOA9L/gZpBk+56x+cT3Kd98Llv/ Nyefa1EFruSc3QDGZJ2xdQ9IiqMixR3Lo5u03u68i+Myl5XmvxeYhT+3F6xjuCg4OTDxuQ QnPylkzvLFNTRVgLw7TQMbzf7AIWFTE9yn7Kw6V1v3eyB2glQnoiBbsNFOpCGIe+8CYsCu d+9pKb7g5BUGDLKy854pXxDy4SgfV9yxWa/yxLdzz0728uefHEA1tJDV/Qw+PaMnfY2V3U /LrKgYG6KCi1CrrOoic6Ol3rjWOUGkqrKtcd6NJaDAOhUHTiX7cJi60ZbT7xKQ== Received: from matt by naz with local (Exim 4.96) (envelope-from ) id 1oIcY5-0017R5-01 for 56877@debbugs.gnu.org; Mon, 01 Aug 2022 14:02:01 -0700 From: Matt Armstrong To: 56877@debbugs.gnu.org Subject: Re: bug#56877: 29.0.50; Built-in packages are not always package-installed-p In-Reply-To: <87r11z4t5u.fsf@rfc20.org> (Matt Armstrong's message of "Mon, 01 Aug 2022 13:15:25 -0700") References: <87r11z4t5u.fsf@rfc20.org> Date: Mon, 01 Aug 2022 14:02:00 -0700 Message-ID: <87edxz4r07.fsf@rfc20.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/29.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 56877 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.7 (-) --=-=-= Content-Type: text/plain Matt Armstrong writes: > I have a fix prepared, which I will send once i have a bug number. Now attached: --=-=-= Content-Type: text/x-diff Content-Disposition: inline; filename=0001-Consider-built-in-packages-to-be-installed.patch >From b9431eee1bc141a036aa42541f68b0c07474bc40 Mon Sep 17 00:00:00 2001 From: Matt Armstrong Date: Mon, 1 Aug 2022 11:18:37 -0700 Subject: [PATCH] Consider built-in packages to be installed With this change (package-installed-p PACKAGE nil) evaluates to the same thing before and after package initialization. * lisp/emacs-lisp/package.el (package-installed-p): Check for built-in packages before initialization. (bug#56877) --- lisp/emacs-lisp/package.el | 5 ++++- test/lisp/emacs-lisp/package-tests.el | 15 +++++++++++++++ 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/lisp/emacs-lisp/package.el b/lisp/emacs-lisp/package.el index df70f908da..482de52f85 100644 --- a/lisp/emacs-lisp/package.el +++ b/lisp/emacs-lisp/package.el @@ -2085,7 +2085,10 @@ package-installed-p package-activated-list) ;; We used the quickstart: make it possible to use package-installed-p ;; even before package is fully initialized. - (memq package package-activated-list)) + (or + (memq package package-activated-list) + ;; Also check built-in packages. + (package-built-in-p package min-version))) (t (or (let ((pkg-descs (cdr (assq package (package--alist))))) diff --git a/test/lisp/emacs-lisp/package-tests.el b/test/lisp/emacs-lisp/package-tests.el index d7a55998c2..75c3f061ab 100644 --- a/test/lisp/emacs-lisp/package-tests.el +++ b/test/lisp/emacs-lisp/package-tests.el @@ -638,6 +638,21 @@ package-test-update-archives/ignore-nil-entry (package-refresh-contents) (should (equal (length package-archive-contents) 2))))) +(ert-deftest package-test-package-installed-p () + "Foo" + (with-package-test () + ;; Verify that `package-installed-p' evaluates true for a built-in + ;; package, in this case `project', before package initialization. + (should (not package--initialized)) + (should (package-installed-p 'project nil)) + (should (not (package-installed-p 'imaginary-package nil))) + + ;; The results don't change after package initialization. + (package-initialize) + (should package--initialized) + (should (package-installed-p 'project nil)) + (should (not (package-installed-p 'imaginary-package nil))))) + (ert-deftest package-test-describe-package () "Test displaying help for a package." -- 2.35.1 --=-=-=-- From debbugs-submit-bounces@debbugs.gnu.org Mon Aug 01 17:27:10 2022 Received: (at 56877) by debbugs.gnu.org; 1 Aug 2022 21:27:10 +0000 Received: from localhost ([127.0.0.1]:41739 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oIcwQ-0006kU-Bf for submit@debbugs.gnu.org; Mon, 01 Aug 2022 17:27:10 -0400 Received: from relay2-d.mail.gandi.net ([217.70.183.194]:35949) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oIcwO-0006kB-NW for 56877@debbugs.gnu.org; Mon, 01 Aug 2022 17:27:09 -0400 Received: (Authenticated sender: matt@rfc20.org) by mail.gandi.net (Postfix) with ESMTPSA id 50AE940005 for <56877@debbugs.gnu.org>; Mon, 1 Aug 2022 21:27:00 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=rfc20.org; s=gm1; t=1659389222; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=cWojR/4Pvoz9Be3Uz8VAYSeCyYnEXkHUpGfT1p4yQGM=; b=GM485SuXgIbkq9ErPmaVrd7xMFjCtkZJIr6j7wuyEhhxc/OZHnR2UuvqIWVdFK+O2O0brF 2oiIgZONrJlFdWhrh5S6hdmfvF6wKd9Pl2ZcB3wN879RA8ROvWQPpSFtMlmcPliVEn6cbo alcBkFy9DoY0j3bLqvUS6QQs8pmxuhl2ANSYqtLp6kCFzL1rH2455xzaRUYH7vOf3HMSTg m1NbC6NpjGkv9V4tdSJj4CSTxhsALFw1+35BifyK+p5+PY/E5LX3urFTNxcHwU1c02+m/a XNeOOsNlgcGn2QcuaXO5bt/q4a+aPoz264yN68UnQ5XIYv/3n8OpVEnrks7N1A== Received: from matt by naz with local (Exim 4.96) (envelope-from ) id 1oIcwD-0017rU-22 for 56877@debbugs.gnu.org; Mon, 01 Aug 2022 14:26:57 -0700 From: Matt Armstrong To: 56877@debbugs.gnu.org Subject: Re: bug#56877: 29.0.50; Built-in packages are not always package-installed-p In-Reply-To: <87edxz4r07.fsf@rfc20.org> (Matt Armstrong's message of "Mon, 01 Aug 2022 14:02:00 -0700") References: <87r11z4t5u.fsf@rfc20.org> <87edxz4r07.fsf@rfc20.org> Date: Mon, 01 Aug 2022 14:26:57 -0700 Message-ID: <8735ef4pum.fsf@rfc20.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/29.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 56877 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.7 (-) --=-=-= Content-Type: text/plain Matt Armstrong writes: > Matt Armstrong writes: > >> I have a fix prepared, which I will send once i have a bug number. > > Now attached: Second try. Replaced "Foo" with a real docstring! --=-=-= Content-Type: text/x-diff Content-Disposition: inline; filename=0001-Consider-built-in-packages-to-be-installed.patch >From f66a0e6bf84f10d2688b2892a08e2d090e5bd6c7 Mon Sep 17 00:00:00 2001 From: Matt Armstrong Date: Mon, 1 Aug 2022 11:18:37 -0700 Subject: [PATCH] Consider built-in packages to be installed With this change (package-installed-p PACKAGE nil) evaluates to the same thing before and after package initialization. * lisp/emacs-lisp/package.el (package-installed-p): Check for built-in packages before initialization. (bug#56877) --- lisp/emacs-lisp/package.el | 5 ++++- test/lisp/emacs-lisp/package-tests.el | 15 +++++++++++++++ 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/lisp/emacs-lisp/package.el b/lisp/emacs-lisp/package.el index df70f908da..482de52f85 100644 --- a/lisp/emacs-lisp/package.el +++ b/lisp/emacs-lisp/package.el @@ -2085,7 +2085,10 @@ package-installed-p package-activated-list) ;; We used the quickstart: make it possible to use package-installed-p ;; even before package is fully initialized. - (memq package package-activated-list)) + (or + (memq package package-activated-list) + ;; Also check built-in packages. + (package-built-in-p package min-version))) (t (or (let ((pkg-descs (cdr (assq package (package--alist))))) diff --git a/test/lisp/emacs-lisp/package-tests.el b/test/lisp/emacs-lisp/package-tests.el index d7a55998c2..b903cd781b 100644 --- a/test/lisp/emacs-lisp/package-tests.el +++ b/test/lisp/emacs-lisp/package-tests.el @@ -638,6 +638,21 @@ package-test-update-archives/ignore-nil-entry (package-refresh-contents) (should (equal (length package-archive-contents) 2))))) +(ert-deftest package-test-package-installed-p () + "Test package-installed-p before and after package initialization." + (with-package-test () + ;; Verify that `package-installed-p' evaluates true for a built-in + ;; package, in this case `project', before package initialization. + (should (not package--initialized)) + (should (package-installed-p 'project nil)) + (should (not (package-installed-p 'imaginary-package nil))) + + ;; The results don't change after package initialization. + (package-initialize) + (should package--initialized) + (should (package-installed-p 'project nil)) + (should (not (package-installed-p 'imaginary-package nil))))) + (ert-deftest package-test-describe-package () "Test displaying help for a package." -- 2.35.1 --=-=-=-- From debbugs-submit-bounces@debbugs.gnu.org Tue Aug 02 06:14:39 2022 Received: (at 56877) by debbugs.gnu.org; 2 Aug 2022 10:14:39 +0000 Received: from localhost ([127.0.0.1]:42394 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oIov9-0000AT-JL for submit@debbugs.gnu.org; Tue, 02 Aug 2022 06:14:39 -0400 Received: from quimby.gnus.org ([95.216.78.240]:55400) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oIov8-0000AB-8a for 56877@debbugs.gnu.org; Tue, 02 Aug 2022 06:14:38 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnus.org; s=20200322; h=Content-Type:MIME-Version:Message-ID:Date:References: In-Reply-To:Subject:Cc:To:From:Sender:Reply-To:Content-Transfer-Encoding: Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender: Resent-To:Resent-Cc:Resent-Message-ID:List-Id:List-Help:List-Unsubscribe: List-Subscribe:List-Post:List-Owner:List-Archive; bh=Mugew3yVlQa9+z1sVijx8KqFSvMaZN8TMzd/5XV6G8c=; b=ayVOa9Yl9RdO3uSRCnrGOqxNs6 MYPY209OPZJROJvIZqtltVXmufG5o413z6dRCM2Ps4tbivP1vK4qrdcQMAUM6AWEmJDF4E9t6sPPX PUG/mSHVcpnZoRZai/1qGgWWBl9vn4j6c5y3DsvYnDjhYL/itWPMOufLsLHXT9D93eTA=; Received: from [84.212.220.105] (helo=joga) by quimby.gnus.org with esmtpsa (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1oIouz-00073y-VF; Tue, 02 Aug 2022 12:14:32 +0200 From: Lars Ingebrigtsen To: Matt Armstrong Subject: Re: bug#56877: 29.0.50; Built-in packages are not always package-installed-p In-Reply-To: <8735ef4pum.fsf@rfc20.org> (Matt Armstrong's message of "Mon, 01 Aug 2022 14:26:57 -0700") References: <87r11z4t5u.fsf@rfc20.org> <87edxz4r07.fsf@rfc20.org> <8735ef4pum.fsf@rfc20.org> X-Now-Playing: Thick Pigeon's _Too Crazy Cowboys_: "Crime" Date: Tue, 02 Aug 2022 12:14:29 +0200 Message-ID: <87edxz0x6i.fsf@gnus.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/29.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Report: Spam detection software, running on the system "quimby.gnus.org", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see @@CONTACT_ADDRESS@@ for details. Content preview: Matt Armstrong writes: > Second try. Replaced "Foo" with a real docstring! Thanks; pushed to Emacs 29 now. Content analysis details: (-2.9 points, 5.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -1.0 ALL_TRUSTED Passed through trusted hosts only via SMTP -1.9 BAYES_00 BODY: Bayes spam probability is 0 to 1% [score: 0.0000] X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 56877 Cc: 56877@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) Matt Armstrong writes: > Second try. Replaced "Foo" with a real docstring! Thanks; pushed to Emacs 29 now. From debbugs-submit-bounces@debbugs.gnu.org Tue Aug 02 06:14:44 2022 Received: (at control) by debbugs.gnu.org; 2 Aug 2022 10:14:44 +0000 Received: from localhost ([127.0.0.1]:42397 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oIovD-0000Al-U4 for submit@debbugs.gnu.org; Tue, 02 Aug 2022 06:14:44 -0400 Received: from quimby.gnus.org ([95.216.78.240]:55414) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oIovC-0000AL-AM for control@debbugs.gnu.org; Tue, 02 Aug 2022 06:14:42 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnus.org; s=20200322; h=Subject:From:To:Message-Id:Date:Sender:Reply-To:Cc: MIME-Version:Content-Type:Content-Transfer-Encoding:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:In-Reply-To:References:List-Id:List-Help:List-Unsubscribe: List-Subscribe:List-Post:List-Owner:List-Archive; bh=U+KbYgZmp4CB+lJ3cxqupHU4b0WfAMW7539WRJR0i04=; b=FqylYKWlmuMkWcM1HSNqlaYleA G/mWE/B60VSrcgH73MKLcFFrmKGk1MeWSTSyW7wriJk7fUQtI3akx9SvEFylyetlXYhEFDDSm/gyl mW7ZCBUxj5oc4e1BJqAbppAtqkf/Bu68t2liecojlz+daUN27+ypKVUrDMEtFQitNo4U=; Received: from [84.212.220.105] (helo=joga) by quimby.gnus.org with esmtpsa (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1oIov4-000745-JF for control@debbugs.gnu.org; Tue, 02 Aug 2022 12:14:36 +0200 Date: Tue, 02 Aug 2022 12:14:34 +0200 Message-Id: <87czdj0x6d.fsf@gnus.org> To: control@debbugs.gnu.org From: Lars Ingebrigtsen Subject: control message for bug #56877 X-Spam-Report: Spam detection software, running on the system "quimby.gnus.org", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see @@CONTACT_ADDRESS@@ for details. Content preview: close 56877 29.1 quit Content analysis details: (-2.9 points, 5.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -1.0 ALL_TRUSTED Passed through trusted hosts only via SMTP -1.9 BAYES_00 BODY: Bayes spam probability is 0 to 1% [score: 0.0000] X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: control X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) close 56877 29.1 quit From unknown Mon Jun 23 18:31:40 2025 Received: (at fakecontrol) by fakecontrolmessage; To: internal_control@debbugs.gnu.org From: Debbugs Internal Request Subject: Internal Control Message-Id: bug archived. Date: Tue, 30 Aug 2022 11:24:10 +0000 User-Agent: Fakemail v42.6.9 # This is a fake control message. # # The action: # bug archived. thanks # This fakemail brought to you by your local debbugs # administrator