sqlite-backend, distroquery: use relations to provided in requires and provides tables
This commit is contained in:
parent
e23954abf5
commit
e41fc038c7
@ -100,7 +100,7 @@ void SQLite_print_contents_subtree(sqlite3 *db,
|
|||||||
"name STRING, firstchild INTEGER, next INTEGER, parent INTEGER, numproviders INTEGER"
|
"name STRING, firstchild INTEGER, next INTEGER, parent INTEGER, numproviders INTEGER"
|
||||||
/* struct headerList **provider; */
|
/* struct headerList **provider; */
|
||||||
|
|
||||||
#define SQLITE_TABLE_packages_files_rel "id INTEGER PRIMARY KEY, id_package INTEGER, id_source INTEGER"
|
#define SQLITE_TABLE_packages_files_rel "id INTEGER PRIMARY KEY, id_package INTEGER, id_file INTEGER"
|
||||||
|
|
||||||
int generateSQLite_files(struct configTag* ct, sqlite3 *db, int arch) {
|
int generateSQLite_files(struct configTag* ct, sqlite3 *db, int arch) {
|
||||||
|
|
||||||
@ -251,10 +251,10 @@ long generateSQLite_add_changelog(sqlite3 *db, struct changeLog* firstchangelog,
|
|||||||
"id_package INTEGER, obsoletename STRING, obsoleteflags INTEGER, obsoleteversion STRING"
|
"id_package INTEGER, obsoletename STRING, obsoleteflags INTEGER, obsoleteversion STRING"
|
||||||
|
|
||||||
#define SQLITE_TABLE_provides "id INTEGER PRIMARY KEY, "\
|
#define SQLITE_TABLE_provides "id INTEGER PRIMARY KEY, "\
|
||||||
"id_package INTEGER, providename STRING, provideflags INTEGER, provideversion STRING"
|
"id_package INTEGER, id_provided INTEGER, provideflags INTEGER, provideversion STRING"
|
||||||
|
|
||||||
#define SQLITE_TABLE_requires "id INTEGER PRIMARY KEY, "\
|
#define SQLITE_TABLE_requires "id INTEGER PRIMARY KEY, "\
|
||||||
"id_package INTEGER, requirename STRING, requireflags INTEGER, requireversion STRING"
|
"id_package INTEGER, id_provided STRING, requireflags INTEGER, requireversion STRING"
|
||||||
|
|
||||||
int
|
int
|
||||||
generateSQLite_packages(struct configTag *ct, sqlite3 *db, int arch) {
|
generateSQLite_packages(struct configTag *ct, sqlite3 *db, int arch) {
|
||||||
@ -314,15 +314,15 @@ generateSQLite_packages(struct configTag *ct, sqlite3 *db, int arch) {
|
|||||||
|
|
||||||
/* provides */
|
/* provides */
|
||||||
for (i = 0; i < currpackage->providecount; i++) {
|
for (i = 0; i < currpackage->providecount; i++) {
|
||||||
snprintf(sqlite3_query, PATH_MAX, "INSERT INTO provides VALUES(NULL,%d,?,%d,?);",
|
snprintf(sqlite3_query, PATH_MAX, "INSERT INTO provides VALUES(NULL,%d,%d,%d,?);",
|
||||||
currpackage->id,
|
currpackage->id,
|
||||||
|
currpackage->provided[i]->id,
|
||||||
currpackage->provideflags[i]);
|
currpackage->provideflags[i]);
|
||||||
|
|
||||||
if (sqlite3_prepare_v2(db, sqlite3_query, -1, &stmt, NULL)) {
|
if (sqlite3_prepare_v2(db, sqlite3_query, -1, &stmt, NULL)) {
|
||||||
fprintf(stderr, "ERROR: SQLite: (%s) %s\n", sqlite3_query, sqlite3_errmsg(db));
|
fprintf(stderr, "ERROR: SQLite: (%s) %s\n", sqlite3_query, sqlite3_errmsg(db));
|
||||||
}
|
}
|
||||||
sqlite3_bind_text(stmt, 1, currpackage->providename[i], -1, SQLITE_STATIC);
|
sqlite3_bind_text(stmt, 1, currpackage->provideversion[i], -1, SQLITE_STATIC);
|
||||||
sqlite3_bind_text(stmt, 2, currpackage->provideversion[i], -1, SQLITE_STATIC);
|
|
||||||
if (sqlite3_step(stmt) != SQLITE_DONE) {
|
if (sqlite3_step(stmt) != SQLITE_DONE) {
|
||||||
fprintf(stderr, "ERROR: SQLite: (%s) %s\n", sqlite3_query, sqlite3_errmsg(db));
|
fprintf(stderr, "ERROR: SQLite: (%s) %s\n", sqlite3_query, sqlite3_errmsg(db));
|
||||||
return 3;
|
return 3;
|
||||||
@ -332,22 +332,25 @@ generateSQLite_packages(struct configTag *ct, sqlite3 *db, int arch) {
|
|||||||
|
|
||||||
/* requires */
|
/* requires */
|
||||||
for (i = 0; i < currpackage->requirecount; i++) {
|
for (i = 0; i < currpackage->requirecount; i++) {
|
||||||
snprintf(sqlite3_query, PATH_MAX, "INSERT INTO requires VALUES(NULL,%d,?,%d,?);",
|
if (currpackage->require[i]->resolved) {
|
||||||
currpackage->id,
|
snprintf(sqlite3_query, PATH_MAX, "INSERT INTO requires VALUES(NULL,%d,%d,%d,?);",
|
||||||
currpackage->require[i]->flags);
|
currpackage->id,
|
||||||
|
currpackage->require[i]->resolved->id,
|
||||||
|
currpackage->require[i]->flags);
|
||||||
|
|
||||||
if (sqlite3_prepare_v2(db, sqlite3_query, -1, &stmt, NULL)) {
|
if (sqlite3_prepare_v2(db, sqlite3_query, -1, &stmt, NULL)) {
|
||||||
fprintf(stderr, "ERROR: SQLite: (%s) %s\n", sqlite3_query, sqlite3_errmsg(db));
|
fprintf(stderr, "ERROR: SQLite: (%s) %s\n", sqlite3_query, sqlite3_errmsg(db));
|
||||||
}
|
}
|
||||||
sqlite3_bind_text(stmt, 1, currpackage->require[i]->name, -1, SQLITE_STATIC);
|
sqlite3_bind_text(stmt, 1, currpackage->require[i]->version, -1, SQLITE_STATIC);
|
||||||
sqlite3_bind_text(stmt, 2, currpackage->require[i]->version, -1, SQLITE_STATIC);
|
if (sqlite3_step(stmt) != SQLITE_DONE) {
|
||||||
if (sqlite3_step(stmt) != SQLITE_DONE) {
|
fprintf(stderr, "ERROR: SQLite: (%s) %s\n", sqlite3_query, sqlite3_errmsg(db));
|
||||||
fprintf(stderr, "ERROR: SQLite: (%s) %s\n", sqlite3_query, sqlite3_errmsg(db));
|
return 3;
|
||||||
return 3;
|
}
|
||||||
}
|
sqlite3_finalize(stmt);
|
||||||
sqlite3_finalize(stmt);
|
} else if (strstr(currpackage->require[i]->name,"rpmlib(") != currpackage->require[i]->name) {
|
||||||
|
fprintf(stderr, "WARNING: package %s require %s not in provided list\n", currpackage->name, currpackage->require[i]->name);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
currpackage = currpackage->next;
|
currpackage = currpackage->next;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -361,7 +361,7 @@ void printRPMFlags(int flags) {
|
|||||||
|
|
||||||
void printPackageData() {
|
void printPackageData() {
|
||||||
|
|
||||||
int a, i, j, k, numresults = 0;
|
int a, i, j, k;
|
||||||
char dbname[PATH_MAX];
|
char dbname[PATH_MAX];
|
||||||
sqlite3 *db, *dbs;
|
sqlite3 *db, *dbs;
|
||||||
sqlite3_stmt *statement, *stmt1;
|
sqlite3_stmt *statement, *stmt1;
|
||||||
@ -383,35 +383,41 @@ void printPackageData() {
|
|||||||
if (db &&
|
if (db &&
|
||||||
(sqlite3_prepare_v2(db, sql, strlen(sql), &statement, NULL) == SQLITE_OK)) {
|
(sqlite3_prepare_v2(db, sql, strlen(sql), &statement, NULL) == SQLITE_OK)) {
|
||||||
while (sqlite3_step(statement) == SQLITE_ROW) {
|
while (sqlite3_step(statement) == SQLITE_ROW) {
|
||||||
numresults++;
|
|
||||||
printf("<hr><br><div style='display:inline;color:white;background-color:green'> %s </div> "
|
|
||||||
"<div style='display:inline;color:black;background-color:yellow'> %s </div> "
|
|
||||||
"<div style='display:inline;color:black;background-color:lightblue'> %s </div><br>"
|
|
||||||
"<b>%s</b> %s-%s<br>%s<br>Size: %s",
|
|
||||||
query_arch,
|
|
||||||
ct->tag,
|
|
||||||
sqlite3_column_text(statement,sqlite3_find_column_id(statement, NULL, "groupdescr")),
|
|
||||||
sqlite3_column_text(statement,sqlite3_find_column_id(statement, NULL, "name")),
|
|
||||||
sqlite3_column_text(statement,sqlite3_find_column_id(statement, NULL, "version")),
|
|
||||||
sqlite3_column_text(statement,sqlite3_find_column_id(statement, NULL, "release")),
|
|
||||||
sqlite3_column_text(statement,sqlite3_find_column_id(statement, NULL, "summary")),
|
|
||||||
humanSize(sqlite3_column_int(statement,sqlite3_find_column_id(statement, NULL, "size")), &strsize));
|
|
||||||
|
|
||||||
printf("<br>Source package:");
|
|
||||||
snprintf(dbname, PATH_MAX, "%s%s-sources.db", ct->repository_dir, ct->tag);
|
snprintf(dbname, PATH_MAX, "%s%s-sources.db", ct->repository_dir, ct->tag);
|
||||||
if (!sqlite3_open_v2(dbname, &dbs, SQLITE_OPEN_READONLY, NULL)) {
|
if (!sqlite3_open_v2(dbname, &dbs, SQLITE_OPEN_READONLY, NULL)) {
|
||||||
snprintf(sql, PATH_MAX, "SELECT * FROM sources WHERE id=%d",
|
snprintf(sql, PATH_MAX, "SELECT * FROM sources WHERE id=%d",
|
||||||
sqlite3_column_int(statement,sqlite3_find_column_id(statement, NULL, "id_source")));
|
sqlite3_column_int(statement,sqlite3_find_column_id(statement, NULL, "id_source")));
|
||||||
if (sqlite3_prepare_v2(dbs, sql, strlen(sql), &stmt1, NULL) == SQLITE_OK)
|
if (sqlite3_prepare_v2(dbs, sql, strlen(sql), &stmt1, NULL) == SQLITE_OK) sqlite3_step(stmt1);
|
||||||
while (sqlite3_step(stmt1) == SQLITE_ROW)
|
|
||||||
printf(" <a href='javascript:distroquery_request(\"repository=%s&package=%s\")'>%s</a>",
|
|
||||||
ct->tag,
|
|
||||||
sqlite3_column_text(stmt1,sqlite3_find_column_id(stmt1, NULL, "name")),
|
|
||||||
sqlite3_column_text(stmt1,sqlite3_find_column_id(stmt1, NULL, "name")));
|
|
||||||
sqlite3_close(dbs);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
printf("<br>Obsoletes:");
|
printf("<hr><br><div style='display:inline;color:white;background-color:green'> %s </div> "
|
||||||
|
"<div style='display:inline;color:black;background-color:yellow'> %s </div> "
|
||||||
|
"<div style='display:inline;color:black;background-color:lightblue'> %s </div> "
|
||||||
|
"<div style='display:inline;color:black;background-color:orange'> %s </div><br><br>"
|
||||||
|
"<h1>%s - %s</h1>Version: %s-%s<br>Size: %s",
|
||||||
|
query_arch,
|
||||||
|
ct->tag,
|
||||||
|
sqlite3_column_text(statement,sqlite3_find_column_id(statement, NULL, "groupdescr")),
|
||||||
|
sqlite3_column_text(stmt1,sqlite3_find_column_id(stmt1, NULL, "license")),
|
||||||
|
sqlite3_column_text(statement,sqlite3_find_column_id(statement, NULL, "name")),
|
||||||
|
sqlite3_column_text(statement,sqlite3_find_column_id(statement, NULL, "summary")),
|
||||||
|
sqlite3_column_text(statement,sqlite3_find_column_id(statement, NULL, "version")),
|
||||||
|
sqlite3_column_text(statement,sqlite3_find_column_id(statement, NULL, "release")),
|
||||||
|
humanSize(sqlite3_column_int(statement,sqlite3_find_column_id(statement, NULL, "size")), &strsize));
|
||||||
|
|
||||||
|
printf("<br><br><div style='text-align:justify;text-justify:inter-word;font-style:italic'>%s</div><br>",
|
||||||
|
sqlite3_column_text(statement,sqlite3_find_column_id(statement, NULL, "description")));
|
||||||
|
|
||||||
|
printf("<hr><b>Developers details:</b>");
|
||||||
|
|
||||||
|
printf("<br>Source package:");
|
||||||
|
printf(" <a href='javascript:distroquery_request(\"repository=%s&package=%s\")'>%s</a>",
|
||||||
|
ct->tag,
|
||||||
|
sqlite3_column_text(stmt1,sqlite3_find_column_id(stmt1, NULL, "name")),
|
||||||
|
sqlite3_column_text(stmt1,sqlite3_find_column_id(stmt1, NULL, "name")));
|
||||||
|
|
||||||
|
printf("<br><br>Obsoletes:");
|
||||||
snprintf(sql, PATH_MAX, "SELECT * FROM obsoletes WHERE id_package=%d",
|
snprintf(sql, PATH_MAX, "SELECT * FROM obsoletes WHERE id_package=%d",
|
||||||
sqlite3_column_int(statement,sqlite3_find_column_id(statement, NULL, "id")));
|
sqlite3_column_int(statement,sqlite3_find_column_id(statement, NULL, "id")));
|
||||||
if (sqlite3_prepare_v2(db, sql, strlen(sql), &stmt1, NULL) == SQLITE_OK)
|
if (sqlite3_prepare_v2(db, sql, strlen(sql), &stmt1, NULL) == SQLITE_OK)
|
||||||
@ -423,33 +429,35 @@ void printPackageData() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
printf("<br>Provides:");
|
printf("<br><br>Provides:");
|
||||||
snprintf(sql, PATH_MAX, "SELECT * FROM provides WHERE id_package=%d",
|
snprintf(sql, PATH_MAX, "SELECT * FROM provides,provided "
|
||||||
|
"WHERE provides.id_package=%d AND provided.id=provides.id_provided "
|
||||||
|
"ORDER BY provided.name",
|
||||||
sqlite3_column_int(statement,sqlite3_find_column_id(statement, NULL, "id")));
|
sqlite3_column_int(statement,sqlite3_find_column_id(statement, NULL, "id")));
|
||||||
if (sqlite3_prepare_v2(db, sql, strlen(sql), &stmt1, NULL) == SQLITE_OK)
|
if (sqlite3_prepare_v2(db, sql, strlen(sql), &stmt1, NULL) == SQLITE_OK)
|
||||||
while (sqlite3_step(stmt1) == SQLITE_ROW) {
|
while (sqlite3_step(stmt1) == SQLITE_ROW) {
|
||||||
printf(" %s", sqlite3_column_text(stmt1,sqlite3_find_column_id(stmt1, NULL, "providename")));
|
printf(" %s", sqlite3_column_text(stmt1,sqlite3_find_column_id(stmt1, NULL, "name")));
|
||||||
if (sqlite3_column_int(stmt1,sqlite3_find_column_id(stmt1, NULL, "provideversion"))) {
|
if (sqlite3_column_int(stmt1,sqlite3_find_column_id(stmt1, NULL, "provideversion"))) {
|
||||||
printRPMFlags(sqlite3_column_int(stmt1,sqlite3_find_column_id(stmt1, NULL, "provideflags")));
|
printRPMFlags(sqlite3_column_int(stmt1,sqlite3_find_column_id(stmt1, NULL, "provideflags")));
|
||||||
printf("%s", sqlite3_column_text(stmt1,sqlite3_find_column_id(stmt1, NULL, "provideversion")));
|
printf("%s", sqlite3_column_text(stmt1,sqlite3_find_column_id(stmt1, NULL, "provideversion")));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
printf("<br>Requires:");
|
printf("<br><br>Requires:");
|
||||||
snprintf(sql, PATH_MAX, "SELECT * FROM requires WHERE id_package=%d",
|
snprintf(sql, PATH_MAX, "SELECT * FROM requires,provided "
|
||||||
|
"WHERE requires.id_package=%d AND provided.id=requires.id_provided "
|
||||||
|
"ORDER BY provided.name",
|
||||||
sqlite3_column_int(statement,sqlite3_find_column_id(statement, NULL, "id")));
|
sqlite3_column_int(statement,sqlite3_find_column_id(statement, NULL, "id")));
|
||||||
if (sqlite3_prepare_v2(db, sql, strlen(sql), &stmt1, NULL) == SQLITE_OK)
|
if (sqlite3_prepare_v2(db, sql, strlen(sql), &stmt1, NULL) == SQLITE_OK)
|
||||||
while (sqlite3_step(stmt1) == SQLITE_ROW) {
|
while (sqlite3_step(stmt1) == SQLITE_ROW) {
|
||||||
printf(" %s", sqlite3_column_text(stmt1,sqlite3_find_column_id(stmt1, NULL, "requirename")));
|
printf(" %s", sqlite3_column_text(stmt1,sqlite3_find_column_id(stmt1, NULL, "name")));
|
||||||
if (sqlite3_column_int(stmt1,sqlite3_find_column_id(stmt1, NULL, "requireversion"))) {
|
if (sqlite3_column_int(stmt1,sqlite3_find_column_id(stmt1, NULL, "requireversion"))) {
|
||||||
printRPMFlags(sqlite3_column_int(stmt1,sqlite3_find_column_id(stmt1, NULL, "requireflags")));
|
printRPMFlags(sqlite3_column_int(stmt1,sqlite3_find_column_id(stmt1, NULL, "requireflags")));
|
||||||
printf("%s", sqlite3_column_text(stmt1,sqlite3_find_column_id(stmt1, NULL, "requireversion")));
|
printf("%s", sqlite3_column_text(stmt1,sqlite3_find_column_id(stmt1, NULL, "requireversion")));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
printf("<br><br><div style='text-align:justify;text-justify:inter-word;font-style:italic'>%s</div><br>",
|
sqlite3_close(dbs);
|
||||||
sqlite3_column_text(statement,sqlite3_find_column_id(statement, NULL, "description")));
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
printf("]]></queryreply>");
|
printf("]]></queryreply>");
|
||||||
@ -487,42 +495,19 @@ void printSourcePackageData() {
|
|||||||
numresults++;
|
numresults++;
|
||||||
printf("<hr><br><div style='display:inline;color:white;background-color:red'> Source </div> "
|
printf("<hr><br><div style='display:inline;color:white;background-color:red'> Source </div> "
|
||||||
"<div style='display:inline;color:black;background-color:yellow'> %s </div> "
|
"<div style='display:inline;color:black;background-color:yellow'> %s </div> "
|
||||||
"<div style='display:inline;color:black;background-color:lightblue'> %s </div><br>"
|
"<div style='display:inline;color:black;background-color:lightblue'> %s </div> "
|
||||||
"<b>%s</b> %s-%s<br>%s<br>Maintainer: %s<br>License: %s<br>URL: <a href=\"%s\" target=_new>%s</a><br>Size: %s"
|
"<div style='display:inline;color:black;background-color:orange'> %s </div><br><br>"
|
||||||
"<br><br><div style='text-align:justify;text-justify:inter-word;font-style:italic'>%s</div><br>",
|
"<h1>%s - %s</h1>Version: %s-%s<br>URL: <a href=\"%s\" target=_new>%s</a><br>Size: %s",
|
||||||
ct->tag,
|
ct->tag,
|
||||||
sqlite3_column_text(statement,sqlite3_find_column_id(statement, NULL, "groupdescr")),
|
sqlite3_column_text(statement,sqlite3_find_column_id(statement, NULL, "groupdescr")),
|
||||||
|
sqlite3_column_text(statement,sqlite3_find_column_id(statement, NULL, "license")),
|
||||||
sqlite3_column_text(statement,sqlite3_find_column_id(statement, NULL, "name")),
|
sqlite3_column_text(statement,sqlite3_find_column_id(statement, NULL, "name")),
|
||||||
|
sqlite3_column_text(statement,sqlite3_find_column_id(statement, NULL, "summary")),
|
||||||
sqlite3_column_text(statement,sqlite3_find_column_id(statement, NULL, "version")),
|
sqlite3_column_text(statement,sqlite3_find_column_id(statement, NULL, "version")),
|
||||||
sqlite3_column_text(statement,sqlite3_find_column_id(statement, NULL, "release")),
|
sqlite3_column_text(statement,sqlite3_find_column_id(statement, NULL, "release")),
|
||||||
sqlite3_column_text(statement,sqlite3_find_column_id(statement, NULL, "summary")),
|
|
||||||
sqlite3_column_text(statement,sqlite3_find_column_id(statement, "packagers", "name")),
|
|
||||||
sqlite3_column_text(statement,sqlite3_find_column_id(statement, NULL, "license")),
|
|
||||||
sqlite3_column_text(statement,sqlite3_find_column_id(statement, NULL, "url")),
|
sqlite3_column_text(statement,sqlite3_find_column_id(statement, NULL, "url")),
|
||||||
sqlite3_column_text(statement,sqlite3_find_column_id(statement, NULL, "url")),
|
sqlite3_column_text(statement,sqlite3_find_column_id(statement, NULL, "url")),
|
||||||
humanSize(sqlite3_column_int(statement,sqlite3_find_column_id(statement, NULL, "size")), &strsize),
|
humanSize(sqlite3_column_int(statement,sqlite3_find_column_id(statement, NULL, "size")), &strsize));
|
||||||
sqlite3_column_text(statement,sqlite3_find_column_id(statement, NULL, "description")));
|
|
||||||
|
|
||||||
printf("<br>Sources:");
|
|
||||||
snprintf(sql, PATH_MAX,
|
|
||||||
"SELECT * FROM sources_source WHERE id_source=%d",
|
|
||||||
sqlite3_column_int(statement,sqlite3_find_column_id(statement, NULL, "id")));
|
|
||||||
if (sqlite3_prepare_v2(db, sql, strlen(sql), &stmt1, NULL) == SQLITE_OK)
|
|
||||||
while (sqlite3_step(stmt1) == SQLITE_ROW) {
|
|
||||||
printf(" %s", sqlite3_column_text(stmt1,sqlite3_find_column_id(stmt1, NULL, "source")));
|
|
||||||
}
|
|
||||||
|
|
||||||
printf("<br>Patches:");
|
|
||||||
snprintf(sql, PATH_MAX,
|
|
||||||
"SELECT * FROM sources_patch WHERE id_source=%d",
|
|
||||||
sqlite3_column_int(statement,sqlite3_find_column_id(statement, NULL, "id")));
|
|
||||||
if (sqlite3_prepare_v2(db, sql, strlen(sql), &stmt1, NULL) == SQLITE_OK)
|
|
||||||
while (sqlite3_step(stmt1) == SQLITE_ROW) {
|
|
||||||
printf(" %s", sqlite3_column_text(stmt1,sqlite3_find_column_id(stmt1, NULL, "patch")));
|
|
||||||
}
|
|
||||||
|
|
||||||
printf("<br>Build time: %s",
|
|
||||||
simpleTimeToHuman(sqlite3_column_int(statement,sqlite3_find_column_id(statement, NULL, "buildtime")), (humanDate *) & strdate));
|
|
||||||
|
|
||||||
printf("<br>Built packages:");
|
printf("<br>Built packages:");
|
||||||
for (a = 0; a < ARCHS_MAX && ct->arch[a]; a++) {
|
for (a = 0; a < ARCHS_MAX && ct->arch[a]; a++) {
|
||||||
@ -542,7 +527,34 @@ void printSourcePackageData() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
printf("<br>Build requirements:");
|
printf("<br><br><div style='text-align:justify;text-justify:inter-word;font-style:italic'>%s</div><br>",
|
||||||
|
sqlite3_column_text(statement,sqlite3_find_column_id(statement, NULL, "description")));
|
||||||
|
|
||||||
|
printf("<hr><b>Developers details:</b>");
|
||||||
|
printf("<br><br>Maintainer: %s", sqlite3_column_text(statement,sqlite3_find_column_id(statement, "packagers", "name")));
|
||||||
|
printf("<br>Build date: %s",
|
||||||
|
simpleTimeToHuman(sqlite3_column_int(statement,sqlite3_find_column_id(statement, NULL, "buildtime")), (humanDate *) & strdate));
|
||||||
|
|
||||||
|
printf("<br><br>Source files:");
|
||||||
|
snprintf(sql, PATH_MAX,
|
||||||
|
"SELECT * FROM sources_source WHERE id_source=%d",
|
||||||
|
sqlite3_column_int(statement,sqlite3_find_column_id(statement, NULL, "id")));
|
||||||
|
if (sqlite3_prepare_v2(db, sql, strlen(sql), &stmt1, NULL) == SQLITE_OK)
|
||||||
|
while (sqlite3_step(stmt1) == SQLITE_ROW) {
|
||||||
|
printf(" %s", sqlite3_column_text(stmt1,sqlite3_find_column_id(stmt1, NULL, "source")));
|
||||||
|
}
|
||||||
|
|
||||||
|
printf("<br><br>Patches:");
|
||||||
|
snprintf(sql, PATH_MAX,
|
||||||
|
"SELECT * FROM sources_patch WHERE id_source=%d",
|
||||||
|
sqlite3_column_int(statement,sqlite3_find_column_id(statement, NULL, "id")));
|
||||||
|
if (sqlite3_prepare_v2(db, sql, strlen(sql), &stmt1, NULL) == SQLITE_OK)
|
||||||
|
while (sqlite3_step(stmt1) == SQLITE_ROW) {
|
||||||
|
printf(" %s", sqlite3_column_text(stmt1,sqlite3_find_column_id(stmt1, NULL, "patch")));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
printf("<br><br>Build requirements:");
|
||||||
snprintf(sql, PATH_MAX, "SELECT * FROM buildrequires WHERE id_source=%d",
|
snprintf(sql, PATH_MAX, "SELECT * FROM buildrequires WHERE id_source=%d",
|
||||||
sqlite3_column_int(statement,sqlite3_find_column_id(statement, NULL, "id")));
|
sqlite3_column_int(statement,sqlite3_find_column_id(statement, NULL, "id")));
|
||||||
if (sqlite3_prepare_v2(db, sql, strlen(sql), &stmt1, NULL) == SQLITE_OK)
|
if (sqlite3_prepare_v2(db, sql, strlen(sql), &stmt1, NULL) == SQLITE_OK)
|
||||||
|
Loading…
Reference in New Issue
Block a user