summaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/libalpm/add.c6
-rw-r--r--lib/libalpm/alpm.h1
-rw-r--r--lib/libalpm/package.c2
-rw-r--r--lib/libalpm/sync.c4
4 files changed, 5 insertions, 8 deletions
diff --git a/lib/libalpm/add.c b/lib/libalpm/add.c
index e2276695..65dfbeef 100644
--- a/lib/libalpm/add.c
+++ b/lib/libalpm/add.c
@@ -176,9 +176,9 @@ int add_loadtarget(pmtrans_t *trans, pmdb_t *db, char *name)
goto error;
}
- /* set the reason to EXPLICIT by default
- * it will be overwritten in the case of an upgrade or a sync operation */
- info->reason = PM_PKG_REASON_EXPLICIT;
+ if(trans->flags & PM_TRANS_FLAG_ALLDEPS) {
+ info->reason = PM_PKG_REASON_EXPLICIT;
+ }
/* add the package to the transaction */
trans->packages = pm_list_add(trans->packages, info);
diff --git a/lib/libalpm/alpm.h b/lib/libalpm/alpm.h
index 9ec571b0..f0b92996 100644
--- a/lib/libalpm/alpm.h
+++ b/lib/libalpm/alpm.h
@@ -214,6 +214,7 @@ enum {
#define PM_TRANS_FLAG_CASCADE 0x10
#define PM_TRANS_FLAG_RECURSE 0x20
#define PM_TRANS_FLAG_DBONLY 0x40
+#define PM_TRANS_FLAG_ALLDEPS 0x80
/* Transaction Events */
enum {
diff --git a/lib/libalpm/package.c b/lib/libalpm/package.c
index 784b9b07..eda87f18 100644
--- a/lib/libalpm/package.c
+++ b/lib/libalpm/package.c
@@ -62,7 +62,7 @@ pmpkg_t *pkg_new(const char *name, const char *version)
pkg->size = 0;
pkg->scriptlet = 0;
pkg->force = 0;
- pkg->reason = 0;
+ pkg->reason = PM_PKG_REASON_EXPLICIT;
pkg->requiredby = NULL;
pkg->conflicts = NULL;
pkg->files = NULL;
diff --git a/lib/libalpm/sync.c b/lib/libalpm/sync.c
index 7908a484..f508b47b 100644
--- a/lib/libalpm/sync.c
+++ b/lib/libalpm/sync.c
@@ -690,11 +690,7 @@ int sync_commit(pmtrans_t *trans, pmdb_t *db_local, PMList **data)
* end of the tr->packages list */
spkg = _alpm_list_last(tr->packages)->data;
if(sync->type == PM_SYNC_TYPE_DEPEND) {
- /* ORE
- * if called from makepkg, reason should be set to PM_PKG_REASON_DEPEND */
spkg->reason = PM_PKG_REASON_DEPEND;
- } else {
- spkg->reason = PM_PKG_REASON_EXPLICIT;
}
}
if(trans_prepare(tr, data) == -1) {