General Public License for more details.
*/
-#include "includes.h"
-#include <errno.h>
-#include <ctype.h>
-#include <stdlib.h>
-#include <string.h>
+#include <stdio.h>
#include "hash_table.h"
#include "pkg.h"
continue;
}
- if (!pkg->architecture) {
+ if (!pkg->architecture || !pkg->arch_priority) {
char *version_str = pkg_version_str_alloc(pkg);
- opkg_msg(ERROR, "Package %s version %s has no "
- "architecture specified, ignoring.\n",
+ opkg_msg(NOTICE, "Package %s version %s has no "
+ "valid architecture, ignoring.\n",
pkg->name, version_str);
free(version_str);
continue;
pkg->parent = ab_pkg;
}
+static const char *
+strip_offline_root(const char *file_name)
+{
+ unsigned int len;
+
+ if (conf->offline_root) {
+ len = strlen(conf->offline_root);
+ if (strncmp(file_name, conf->offline_root, len) == 0)
+ file_name += len;
+ }
+
+ return file_name;
+}
+
+void
+file_hash_remove(const char *file_name)
+{
+ file_name = strip_offline_root(file_name);
+ hash_table_remove(&conf->file_hash, file_name);
+}
pkg_t *
file_hash_get_file_owner(const char *file_name)
{
- return hash_table_get(&conf->file_hash, file_name);
+ file_name = strip_offline_root(file_name);
+ return hash_table_get(&conf->file_hash, file_name);
}
void
if (file_name[file_name_len -1] == '/')
return;
- if (conf->offline_root) {
- unsigned int len = strlen(conf->offline_root);
- if (strncmp(file_name, conf->offline_root, len) == 0) {
- file_name += len;
- }
- }
+ file_name = strip_offline_root(file_name);
hash_table_insert(&conf->file_hash, file_name, owning_pkg);