#include "repo_susetags.h"
#include "repo_content.h"
#endif
+#ifdef SUSE
+#include "repo_autopattern.h"
+#endif
#include "solv_xfopen.h"
#ifdef FEDORA
#define TYPE_PLAINDIR 3
#define TYPE_DEBIAN 4
-#ifndef NOSYSTEM
static int
read_repoinfos_sort(const void *ap, const void *bp)
{
const struct repoinfo *b = bp;
return strcmp(a->alias, b->alias);
}
-#endif
#if defined(SUSE) || defined(FEDORA)
#endif
-#ifdef NOSYSTEM
-struct repoinfo *
-read_repoinfos(Pool *pool, int *nrepoinfosp)
-{
- *nrepoinfosp = 0;
- return 0;
-}
-#endif
-
void
free_repoinfos(struct repoinfo *repoinfos, int nrepoinfos)
{
char buf[1024];
const unsigned char *sum;
- void *h;
+ Chksum *h;
int l;
h = solv_chksum_create(chksumtype);
calc_checksum_fp(FILE *fp, Id chktype, unsigned char *out)
{
char buf[4096];
- void *h = solv_chksum_create(chktype);
+ Chksum *h = solv_chksum_create(chktype);
int l;
solv_chksum_add(h, CHKSUM_IDENT, strlen(CHKSUM_IDENT));
void
calc_checksum_stat(struct stat *stb, Id chktype, unsigned char *cookie, unsigned char *out)
{
- void *h = solv_chksum_create(chktype);
+ Chksum *h = solv_chksum_create(chktype);
solv_chksum_add(h, CHKSUM_IDENT, strlen(CHKSUM_IDENT));
if (cookie)
solv_chksum_add(h, cookie, 32);
#endif
repo = repo_create(pool, "@System");
+ memset(&stb, 0, sizeof(stb));
#if defined(ENABLE_RPMDB) && (defined(SUSE) || defined(FEDORA))
printf("rpm database:");
if (stat(pool_prepend_rootdir_tmp(pool, "/var/lib/rpm/Packages"), &stb))
if (stat(pool_prepend_rootdir_tmp(pool, "/var/lib/dpkg/status"), &stb))
memset(&stb, 0, sizeof(stb));
#endif
-#ifdef NOSYSTEM
- printf("no installed database:");
- memset(&stb, 0, sizeof(stb));
-#endif
calc_checksum_stat(&stb, REPOKEY_TYPE_SHA256, 0, installedcookie);
if (usecachedrepo(repo, 0, installedcookie, 0))
printf(" cached\n");
if (repo->nrepodata < 2)
continue;
cinfo = repo->appdata;
+ if (repo != pool->installed && !cinfo)
+ continue;
if (cinfo && cinfo->incomplete)
continue;
data = repo_id2repodata(repo, 1);
#endif
+#ifdef SUSE
+static void
+add_autopackages(Pool *pool)
+{
+ int i;
+ Repo *repo;
+ FOR_REPOS(i, repo)
+ repo_add_autopattern(repo, 0);
+}
+#endif
+
#if defined(SUSE) || defined(FEDORA)
static void
add_patchjobs(Pool *pool, Queue *job)
int i;
/* XXX: use mountpoints here */
+ memset(duc, 0, sizeof(duc));
duc[0].path = "/";
duc[1].path = "/usr/share/man";
duc[2].path = "/sbin";
if (pool->disttype == DISTTYPE_RPM)
addfileprovides(pool);
#endif
+#ifdef SUSE
+ add_autopackages(pool);
+#endif
pool_createwhatprovides(pool);
if (keyname)