implement SOLVER_FLAG_BREAK_ORPHANS
[platform/upstream/libsolv.git] / src / solver.h
index daa0e08..c8f51fc 100644 (file)
@@ -185,6 +185,9 @@ struct _Solver {
 
   Queue addedmap_deduceq;              /* deduce addedmap from rpm rules */
   Id *instbuddy;                       /* buddies of installed packages */
+  int keep_orphans;                    /* how to treat orphans */
+  int break_orphans;                   /* how to treat orphans */
+  Queue *brokenorphanrules;            /* broken rules of orphaned packages */
 #endif /* LIBSOLV_INTERNAL */
 };
 
@@ -234,6 +237,9 @@ typedef struct _Solver Solver;
  * contain an "installed" package unless the
  * NO_AUTOTARGET solver flag is set */
 #define SOLVER_TARGETED                        0x200000
+/* This (SOLVER_INSTALL) job was automatically added
+ * and thus does not the add to the userinstalled packages */
+#define SOLVER_NOTBYUSER               0x400000
 
 #define SOLVER_SETEV                   0x01000000
 #define SOLVER_SETEVR                  0x02000000
@@ -279,6 +285,8 @@ typedef struct _Solver Solver;
 #define SOLVER_FLAG_DUP_ALLOW_ARCHCHANGE       15
 #define SOLVER_FLAG_DUP_ALLOW_VENDORCHANGE     16
 #define SOLVER_FLAG_DUP_ALLOW_NAMECHANGE       17
+#define SOLVER_FLAG_KEEP_ORPHANS               18
+#define SOLVER_FLAG_BREAK_ORPHANS              19
 
 #define GET_USERINSTALLED_NAMES                        (1 << 0)        /* package names instead if ids */
 #define GET_USERINSTALLED_INVERTED             (1 << 1)        /* autoinstalled */