/*
* Copyright (C) 2008 Kristian Høgsberg <krh@redhat.com>
* Copyright (C) 2008 Red Hat, Inc
- * Copyright (C) 2009, 2011 J. Ali Harlow <ali@juiblex.co.uk>
+ * Copyright (C) 2009, 2011, 2012 J. Ali Harlow <ali@juiblex.co.uk>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
#include <fcntl.h>
#include <errno.h>
#include <ctype.h>
-#include <fnmatch.h>
#include <assert.h>
#include "razor-internal.h"
pkgs = ts->set->packages.data;
i = package - pkgs;
- if (ts->packages[i] == TRANS_PACKAGE_PRESENT)
+ if (ts->packages[i] & TRANS_PACKAGE_PRESENT)
return;
- ts->packages[i] = TRANS_PACKAGE_PRESENT;
+ ts->packages[i] |= TRANS_PACKAGE_PRESENT;
prop = list_first(&package->properties, &ts->set->property_pool);
while (prop) {
pkgs = ts->set->packages.data;
i = package - pkgs;
- if (ts->packages[i] == 0)
+ if (!(ts->packages[i] & TRANS_PACKAGE_PRESENT))
return;
- ts->packages[i] = 0;
+ ts->packages[i] &= ~TRANS_PACKAGE_PRESENT;
prop = list_first(&package->properties, &ts->set->property_pool);
while (prop) {
while (razor_package_iterator_next(&pkg_iter, &pkg,
RAZOR_DETAIL_NAME, &name,
RAZOR_DETAIL_LAST)) {
+ if (!(trans->system.packages[pkg - spkgs] & TRANS_PACKAGE_PRESENT))
+ continue;
+
#if 0
fprintf(stderr, "updating %s because %s %s %s "
"isn't satisfied\n",
RAZOR_DETAIL_LAST)) {
if (!(trans->system.packages[p - spkgs] & TRANS_PACKAGE_UPDATE))
continue;
+ trans->system.packages[p - spkgs] &= ~TRANS_PACKAGE_UPDATE;
if (!prop_iter_seek_to(&ppi, RAZOR_PROPERTY_PROVIDES, name))
continue;
RAZOR_DETAIL_LAST)) {
if (!(trans->upstream.packages[p - upkgs] & TRANS_PACKAGE_UPDATE))
continue;
+ trans->upstream.packages[p - upkgs] &= ~TRANS_PACKAGE_UPDATE;
if (prop_iter_seek_to(&spi, RAZOR_PROPERTY_PROVIDES, name))
remove_matching_providers(trans,