Radish alpha
H
rad:z3QDZAW2FAfuLvihrhiyDC9fAD8G9
HardenedBSD Package Manager
Radicle
Git
Always create 'arch' compat on package loading from db or file
Baptiste Daroussin committed 11 years ago
commit 818dd24f88bfd5db564cbe45b7209c762958fd78
parent bfd6e08
2 files changed +13 -0
modified libpkg/pkg.c
@@ -1479,6 +1479,8 @@ pkg_open2(struct pkg **pkg_p, struct archive **a, struct archive_entry **ae,
		if (!manifest && strcmp(fpath, "+MANIFEST") == 0) {
			manifest = true;
			char *buffer;
+
			char legacyarch[BUFSIZ];
+
			const char *abi;

			size_t len = archive_entry_size(*ae);
			buffer = malloc(len);
@@ -1493,6 +1495,11 @@ pkg_open2(struct pkg **pkg_p, struct archive **a, struct archive_entry **ae,
				retcode = EPKG_FATAL;
				goto cleanup;
			}
+

+
			pkg_get(pkg, PKG_ABI, &abi);
+
			pkg_arch_to_legacy(abi, legacyarch, BUFSIZ);
+
			pkg_set(pkg, PKG_ARCH, legacyarch);
+

			if (flags & PKG_OPEN_MANIFEST_ONLY)
				break;
		}
modified libpkg/pkgdb_iterator.c
@@ -688,6 +688,8 @@ static void
populate_pkg(sqlite3_stmt *stmt, struct pkg *pkg) {
	int		 icol = 0;
	const char	*colname;
+
	char legacyarch[BUFSIZ];
+
	const char *abi;

	assert(stmt != NULL);

@@ -738,6 +740,10 @@ populate_pkg(sqlite3_stmt *stmt, struct pkg *pkg) {
			break;
		}
	}
+

+
	pkg_get(pkg, PKG_ABI, &abi);
+
	pkg_arch_to_legacy(abi, legacyarch, BUFSIZ);
+
	pkg_set(pkg, PKG_ARCH, legacyarch);
}

static struct load_on_flag {