Fix: Check owner of dependent packages

This commit is contained in:
Eivind Fonn 2017-07-01 10:33:43 +02:00 committed by syl20bnr
parent 69b5f83d5a
commit db4adde089
2 changed files with 19 additions and 3 deletions

View File

@ -1706,9 +1706,10 @@ wether the declared layer is an used one or not."
"Returns true if PKG should be configured for LAYER.
LAYER must not be the owner of PKG."
(let* ((owner (configuration-layer/get-layer (car (oref pkg :owners))))
(disabled (oref owner :disabled-for))
(enabled (oref owner :enabled-for)))
(and (not (memq nil (mapcar
(disabled (when owner (oref owner :disabled-for)))
(enabled (when owner (oref owner :enabled-for))))
(and owner
(not (memq nil (mapcar
(lambda (dep-pkg)
(let ((pkg-obj (configuration-layer/get-package dep-pkg)))
(when pkg-obj

View File

@ -375,6 +375,21 @@
(configuration-layer//add-package pkg-b)
(should (null (configuration-layer//package-enabled-p pkg-a 'layer)))))
(ert-deftest test-package-enabled-p--depends-on-non-owned ()
(let ((layer (cfgl-layer "layer" :name 'layer))
(owner (cfgl-layer "owner" :name 'owner))
(pkg-a (cfgl-package "pkg-a"
:name 'pkg-a
:owners '(owner)
:depends '(pkg-b)
:post-layers '(layer)))
(pkg-b (cfgl-package "pkg-b" :name 'pkg-b))
(configuration-layer--indexed-packages (make-hash-table :size 2048))
(configuration-layer--indexed-layers (make-hash-table :size 1024)))
(configuration-layer//add-layer owner)
(configuration-layer//add-package pkg-b)
(should (null (configuration-layer//package-enabled-p pkg-a layer)))))
;; ---------------------------------------------------------------------------
;; configuration-layer//package-deps-used-p
;; ---------------------------------------------------------------------------