+#define SOLVER_FLAG_ALLOW_NAMECHANGE 10
+#define SOLVER_FLAG_KEEP_EXPLICIT_OBSOLETES 11
+#define SOLVER_FLAG_BEST_OBEY_POLICY 12
+#define SOLVER_FLAG_NO_AUTOTARGET 13
+#define SOLVER_FLAG_DUP_ALLOW_DOWNGRADE 14
+#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 SOLVER_FLAG_FOCUS_INSTALLED 20
+#define SOLVER_FLAG_YUM_OBSOLETES 21
+#define SOLVER_FLAG_NEED_UPDATEPROVIDE 22
+#define SOLVER_FLAG_URPM_REORDER 23
+#define SOLVER_FLAG_FOCUS_BEST 24
+#define SOLVER_FLAG_STRONG_RECOMMENDS 25
+#define SOLVER_FLAG_INSTALL_ALSO_UPDATES 26
+#define SOLVER_FLAG_ONLY_NAMESPACE_RECOMMENDED 27
+#define SOLVER_FLAG_STRICT_REPO_PRIORITY 28
+
+#define GET_USERINSTALLED_NAMES (1 << 0) /* package names instead of ids */
+#define GET_USERINSTALLED_INVERTED (1 << 1) /* autoinstalled */
+#define GET_USERINSTALLED_NAMEARCH (1 << 2) /* package/arch tuples instead of ids */
+
+#define SOLVER_ALTERNATIVE_TYPE_RULE 1
+#define SOLVER_ALTERNATIVE_TYPE_RECOMMENDS 2
+#define SOLVER_ALTERNATIVE_TYPE_SUGGESTS 3
+
+/* solver_get_decisionlist / solver_get_learnt flags */
+#define SOLVER_DECISIONLIST_SOLVABLE (1 << 1)
+#define SOLVER_DECISIONLIST_PROBLEM (1 << 2)
+#define SOLVER_DECISIONLIST_LEARNTRULE (1 << 3)
+#define SOLVER_DECISIONLIST_WITHINFO (1 << 8)
+#define SOLVER_DECISIONLIST_SORTED (1 << 9)
+#define SOLVER_DECISIONLIST_MERGEDINFO (1 << 10)
+
+#define SOLVER_DECISIONLIST_TYPEMASK (0xff)