commit:     25f6d2967ec621ecdcd65d2beab405a357e870e4
Author:     André Erdmann <dywi <AT> mailerd <DOT> de>
AuthorDate: Thu Feb 18 16:18:51 2016 +0000
Commit:     André Erdmann <dywi <AT> mailerd <DOT> de>
CommitDate: Thu Feb 18 16:18:51 2016 +0000
URL:        https://gitweb.gentoo.org/proj/R_overlay.git/commit/?id=25f6d296

pkgdir: set default add-policy (bug 574782)

In roverlay/overlay/pkgdir/packagedir_base.py,
PackageDirBase.add_package().package_try_replace():

package_info.overlay_addition_override needs to be set
to an integer value before calling package_try_replace(),
because it is used in a bitwise operation:

   package_info.overlay_addition_override &= ~_PKG_REPLACE_ONLY

which raises a TypeError if overlay_addition_override is None.

When running roverlay without bytecode optimizations ("python -O"),
the bug gets catched a bit earlier due to a failing assertion,
as shown in #574782.

X-Gentoo-Bug: 574782
X-Gentoo-Bug-url: https://bugs.gentoo.org/show_bug.cgi?id=574782

 roverlay/overlay/pkgdir/packagedir_base.py | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

diff --git a/roverlay/overlay/pkgdir/packagedir_base.py 
b/roverlay/overlay/pkgdir/packagedir_base.py
index d398914..344173e 100644
--- a/roverlay/overlay/pkgdir/packagedir_base.py
+++ b/roverlay/overlay/pkgdir/packagedir_base.py
@@ -435,9 +435,12 @@ class PackageDirBase ( roverlay.overlay.base.OverlayObject 
):
             )
          # -- end if
 
-         addition_override = (
-            package_info.overlay_addition_override or _PKG_DEFAULT_BEHAVIOR
-         )
+         # in absence of dynamic addition control,
+         # set the default mode flags if addition_override is not configured
+         if package_info.overlay_addition_override is None:
+            package_info.overlay_addition_override = _PKG_DEFAULT_BEHAVIOR
+
+         addition_override = package_info.overlay_addition_override
 
          if addition_override & _PKG_FORCE_DENY:
             log_addition_control_action ( _PKG_FORCE_DENY, shortver )

Reply via email to