Don't try to use our custom packages unless pinned

They do not have src set, so if we pull them in without having a pin
they fail to build.

Noticed with org, so add a test for that. Probably not the only one
affected, though.

Fixes #4
This commit is contained in:
Marien Zwart 2024-05-26 12:35:09 +10:00
parent 6d2d203ece
commit dbd9b1e998
No known key found for this signature in database
3 changed files with 15 additions and 5 deletions

View file

@ -75,4 +75,7 @@ in {
};
interactive = doomTest "minimal" { config = [ "default" ]; } { };
interactive-without-loader = doomTest "minimal" { config = [ "default" ]; } { profileName = ""; };
# Various tests of module combinations.
unpinned-org = doomTest "external-org" { app = [ [ "rss" "+org" ] ]; } { };
}

View file

@ -176,9 +176,10 @@ let
origEPkg == esuper.elpaPackages.${name} or null
|| origEPkg == esuper.nongnuPackages.${name} or null);
epkg =
customPackages.${name}
or (if !hasOrigEPkg || (p ? pin && isElpa)
then
if hasOrigEPkg && (pin != null -> !(isElpa || customPackages ? ${name}))
then origEPkg
else customPackages.${name}
or (
assert lib.assertMsg
(isElpa || (p ? recipe && pin != null) || extraUrls ? ${name})
"${name}: not in epkgs, not elpa, no recipe or not pinned";
@ -224,8 +225,7 @@ let
# TODO: refactor out the recursive call to makePackage.
# (Currently needed for dependencies on packages not in epkgs or doom.)
packageRequires = map (name: eself.${name} or (makePackage name {})) reqlist;
}
else origEPkg);
});
url =
if (p.recipe.host or "") == "github" && p ? recipe.repo
then "https://github.com/${p.recipe.repo}"

View file

@ -23,6 +23,13 @@
;; The minimal test is a noop.
)
(defun test-external-org ()
"Test org can be loaded and it's not built-in."
(require 'org)
(let ((path (find-library-name "org")))
(unless (string-search "/site-lisp/" path)
(error "org-mode probably built-in: %s" path))))
(defun test-doom ()
(let* ((out (getenv "out"))
(test (intern-soft (format "test-%s" (getenv "testName"))))