X-Git-Url: https://pd.if.org/git/?a=blobdiff_plain;f=lib%2Finteg.c;h=13a2505bf53b7bf5b1454392c0885a8c279777d7;hb=be765ec4d3dc14dd27826326e29da8a62d5603f7;hp=57e7d87936bfd29417587248c9acb01f674ef352;hpb=339988d64465820bfce614d4939cdf6a03cd3c51;p=zpackage diff --git a/lib/integ.c b/lib/integ.c index 57e7d87..13a2505 100644 --- a/lib/integ.c +++ b/lib/integ.c @@ -148,9 +148,10 @@ int zpm_package_hash(struct zpm *zpm, char *pkgid, char *hash) { return 0; } - sha256_init(&d); /* find package */ + sha256_init(&d); + sql = sqlite3_mprintf("select package,version,release,description,architecture,url,licenses,packager,build_time from packages_pkgid where pkgid = %Q", pkgid); hash_query(zpm, sql, &d); @@ -165,6 +166,14 @@ int zpm_package_hash(struct zpm *zpm, char *pkgid, char *hash) { hash_query(zpm, sql, &d); sqlite3_free(sql); + /* package dependencies */ + sql = sqlite3_mprintf("dselect requires from packagedeps" + " where printf('%%q-%%q-%%d',package,version,release) = %Q" + "order by requires", + pkgid); + hash_query(zpm, sql, &d); + sqlite3_free(sql); + sha256_done(&d, tmp); for (i=0; i<32; i++) { sprintf(hash+i*2, "%02x", (unsigned)tmp[i]); @@ -172,7 +181,6 @@ int zpm_package_hash(struct zpm *zpm, char *pkgid, char *hash) { hash[64] = 0; return 1; - } int zpm_package_sethash(struct zpm *zpm, char *pkgid, char *hash) {