summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--bindings/solv.i3
-rw-r--r--ext/repo_arch.c8
-rw-r--r--ext/repo_deb.c3
-rw-r--r--ext/repo_rpmdb.c3
-rw-r--r--src/libsolv.ver8
-rw-r--r--src/repo.c4
-rw-r--r--src/repo.h3
-rw-r--r--src/repodata.c4
-rw-r--r--src/repodata.h4
-rw-r--r--src/solvable.c4
-rw-r--r--src/solvable.h2
11 files changed, 26 insertions, 20 deletions
diff --git a/bindings/solv.i b/bindings/solv.i
index 54013d7..3fdd4a8 100644
--- a/bindings/solv.i
+++ b/bindings/solv.i
@@ -1319,7 +1319,8 @@ typedef struct {
static const int REPO_LOCALPOOL = REPO_LOCALPOOL;
static const int REPO_USE_LOADING = REPO_USE_LOADING;
static const int REPO_EXTEND_SOLVABLES = REPO_EXTEND_SOLVABLES;
- static const int REPO_USE_ROOTDIR = REPO_USE_ROOTDIR;
+ static const int REPO_USE_ROOTDIR = REPO_USE_ROOTDIR;
+ static const int REPO_NO_LOCATION = REPO_NO_LOCATION;
static const int SOLV_ADD_NO_STUBS = SOLV_ADD_NO_STUBS; /* repo_solv */
#ifdef ENABLE_SUSEREPO
static const int SUSETAGS_RECORD_SHARES = SUSETAGS_RECORD_SHARES; /* repo_susetags */
diff --git a/ext/repo_arch.c b/ext/repo_arch.c
index 6caa487..ebf42d3 100644
--- a/ext/repo_arch.c
+++ b/ext/repo_arch.c
@@ -455,8 +455,10 @@ repo_add_arch_pkg(Repo *repo, const char *fn, int flags)
if (!s->evr)
s->evr = ID_EMPTY;
s->provides = repo_addid_dep(repo, s->provides, pool_rel2id(pool, s->name, s->evr, REL_EQ, 1), 0);
- repodata_set_location(data, s - pool->solvables, 0, 0, fn);
- repodata_set_num(data, s - pool->solvables, SOLVABLE_DOWNLOADSIZE, (unsigned long long)stb.st_size);
+ if (!(flags & REPO_NO_LOCATION))
+ repodata_set_location(data, s - pool->solvables, 0, 0, fn);
+ if (S_ISREG(stb.st_mode))
+ repodata_set_num(data, s - pool->solvables, SOLVABLE_DOWNLOADSIZE, (unsigned long long)stb.st_size);
if (pkgidhandle)
{
unsigned char pkgid[16];
@@ -852,7 +854,7 @@ repo_add_arch_local(Repo *repo, const char *dir, int flags)
if (!(flags & REPO_NO_INTERNALIZE))
repodata_internalize(data);
if (flags & REPO_USE_ROOTDIR)
- solv_free(dir);
+ solv_free((char *)dir);
return 0;
}
diff --git a/ext/repo_deb.c b/ext/repo_deb.c
index aec35e3..e9e4e39 100644
--- a/ext/repo_deb.c
+++ b/ext/repo_deb.c
@@ -595,7 +595,8 @@ repo_add_deb(Repo *repo, const char *deb, int flags)
ctar[l2] = 0;
s = pool_id2solvable(pool, repo_add_solvable(repo));
control2solvable(s, data, (char *)ctar);
- repodata_set_location(data, s - pool->solvables, 0, 0, deb);
+ if (!(flags & REPO_NO_LOCATION))
+ repodata_set_location(data, s - pool->solvables, 0, 0, deb);
if (S_ISREG(stb.st_mode))
repodata_set_num(data, s - pool->solvables, SOLVABLE_DOWNLOADSIZE, (unsigned long long)stb.st_size);
if (gotpkgid)
diff --git a/ext/repo_rpmdb.c b/ext/repo_rpmdb.c
index e0765a6..4889ded 100644
--- a/ext/repo_rpmdb.c
+++ b/ext/repo_rpmdb.c
@@ -2012,7 +2012,8 @@ repo_add_rpm(Repo *repo, const char *rpm, int flags)
solv_free(rpmhead);
return 0;
}
- repodata_set_location(data, s - pool->solvables, 0, 0, rpm);
+ if (!(flags & REPO_NO_LOCATION))
+ repodata_set_location(data, s - pool->solvables, 0, 0, rpm);
if (S_ISREG(stb.st_mode))
repodata_set_num(data, s - pool->solvables, SOLVABLE_DOWNLOADSIZE, (unsigned long long)stb.st_size);
repodata_set_num(data, s - pool->solvables, SOLVABLE_HEADEREND, headerend);
diff --git a/src/libsolv.ver b/src/libsolv.ver
index f8d8b01..1745473 100644
--- a/src/libsolv.ver
+++ b/src/libsolv.ver
@@ -155,7 +155,6 @@ SOLV_1.0 {
repo_matchvalue;
repo_reserve_ids;
repo_search;
- repo_set_deleted;
repo_set_deparray;
repo_set_id;
repo_set_idarray;
@@ -163,6 +162,7 @@ SOLV_1.0 {
repo_set_poolstr;
repo_set_str;
repo_sidedata_create;
+ repo_unset;
repo_write;
repo_write_filtered;
repo_write_stdkeyfilter;
@@ -207,8 +207,6 @@ SOLV_1.0 {
repodata_set_checksum;
repodata_set_constant;
repodata_set_constantid;
- repodata_set_deleted;
- repodata_set_deleted_uninternalized;
repodata_set_deltalocation;
repodata_set_id;
repodata_set_idarray;
@@ -223,6 +221,8 @@ SOLV_1.0 {
repodata_str2dir;
repodata_stringify;
repodata_swap_attrs;
+ repodata_unset;
+ repodata_unset_uninternalized;
repodata_write;
repodata_write_filtered;
repopagestore_compress_page;
@@ -283,7 +283,6 @@ SOLV_1.0 {
solvable_lookup_type;
solvable_lookup_void;
solvable_selfprovidedep;
- solvable_set_deleted;
solvable_set_deparray;
solvable_set_id;
solvable_set_idarray;
@@ -293,6 +292,7 @@ SOLV_1.0 {
solvable_trivial_installable_map;
solvable_trivial_installable_queue;
solvable_trivial_installable_repo;
+ solvable_unset;
solver_allruleinfos;
solver_calc_duchanges;
solver_calc_installsizechange;
diff --git a/src/repo.c b/src/repo.c
index ed845ef..39e6ab8 100644
--- a/src/repo.c
+++ b/src/repo.c
@@ -1613,7 +1613,7 @@ repo_set_idarray(Repo *repo, Id p, Id keyname, Queue *q)
}
void
-repo_set_deleted(Repo *repo, Id p, Id keyname)
+repo_unset(Repo *repo, Id p, Id keyname)
{
Repodata *data;
if (p >= 0)
@@ -1665,7 +1665,7 @@ repo_set_deleted(Repo *repo, Id p, Id keyname)
}
}
data = repo_last_repodata(repo);
- repodata_set_deleted(data, p, keyname);
+ repodata_unset(data, p, keyname);
}
void
diff --git a/src/repo.h b/src/repo.h
index 90ad055..4f93d1e 100644
--- a/src/repo.h
+++ b/src/repo.h
@@ -114,6 +114,7 @@ static inline int pool_installable(const Pool *pool, Solvable *s)
#define REPO_USE_LOADING (1 << 3)
#define REPO_EXTEND_SOLVABLES (1 << 4)
#define REPO_USE_ROOTDIR (1 << 5)
+#define REPO_NO_LOCATION (1 << 6)
Repodata *repo_add_repodata(Repo *repo, int flags);
Repodata *repo_id2repodata(Repo *repo, Id id);
@@ -142,7 +143,7 @@ void repo_add_idarray(Repo *repo, Id p, Id keyname, Id id);
void repo_add_deparray(Repo *repo, Id p, Id keyname, Id dep, Id marker);
void repo_set_idarray(Repo *repo, Id p, Id keyname, Queue *q);
void repo_set_deparray(Repo *repo, Id p, Id keyname, Queue *q, Id marker);
-void repo_set_deleted(Repo *repo, Id p, Id keyname);
+void repo_unset(Repo *repo, Id p, Id keyname);
void repo_internalize(Repo *repo);
void repo_disable_paging(Repo *repo);
diff --git a/src/repodata.c b/src/repodata.c
index a812ba8..af8a27c 100644
--- a/src/repodata.c
+++ b/src/repodata.c
@@ -2529,7 +2529,7 @@ repodata_add_flexarray(Repodata *data, Id solvid, Id keyname, Id ghandle)
}
void
-repodata_set_deleted_uninternalized(Repodata *data, Id solvid, Id keyname)
+repodata_unset_uninternalized(Repodata *data, Id solvid, Id keyname)
{
Id *pp, *ap, **app;
app = repodata_get_attrp(data, solvid);
@@ -2555,7 +2555,7 @@ repodata_set_deleted_uninternalized(Repodata *data, Id solvid, Id keyname)
/* XXX: does not work correctly, needs fix in iterators! */
void
-repodata_set_deleted(Repodata *data, Id solvid, Id keyname)
+repodata_unset(Repodata *data, Id solvid, Id keyname)
{
Repokey key;
key.name = keyname;
diff --git a/src/repodata.h b/src/repodata.h
index 3951ddd..7ce415b 100644
--- a/src/repodata.h
+++ b/src/repodata.h
@@ -262,8 +262,8 @@ void repodata_add_poolstr_array(Repodata *data, Id solvid, Id keyname, const cha
void repodata_add_fixarray(Repodata *data, Id solvid, Id keyname, Id ghandle);
void repodata_add_flexarray(Repodata *data, Id solvid, Id keyname, Id ghandle);
-void repodata_set_deleted(Repodata *data, Id solvid, Id keyname);
-void repodata_set_deleted_uninternalized(Repodata *data, Id solvid, Id keyname);
+void repodata_unset(Repodata *data, Id solvid, Id keyname);
+void repodata_unset_uninternalized(Repodata *data, Id solvid, Id keyname);
/*
merge/swap attributes from one solvable to another
diff --git a/src/solvable.c b/src/solvable.c
index 2a73e0a..d0b4a2b 100644
--- a/src/solvable.c
+++ b/src/solvable.c
@@ -734,7 +734,7 @@ solvable_set_deparray(Solvable *s, Id keyname, Queue *q, Id marker)
}
void
-solvable_set_deleted(Solvable *s, Id keyname)
+solvable_unset(Solvable *s, Id keyname)
{
- repo_set_deleted(s->repo, s - s->repo->pool->solvables, keyname);
+ repo_unset(s->repo, s - s->repo->pool->solvables, keyname);
}
diff --git a/src/solvable.h b/src/solvable.h
index 3ef9fe5..a6490b8 100644
--- a/src/solvable.h
+++ b/src/solvable.h
@@ -70,7 +70,7 @@ void solvable_add_idarray(Solvable *s, Id keyname, Id id);
void solvable_add_deparray(Solvable *s, Id keyname, Id dep, Id marker);
void solvable_set_idarray(Solvable *s, Id keyname, Queue *q);
void solvable_set_deparray(Solvable *s, Id keyname, Queue *q, Id marker);
-void solvable_set_deleted(Solvable *s, Id keyname);
+void solvable_unset(Solvable *s, Id keyname);
int solvable_identical(Solvable *s1, Solvable *s2);
Id solvable_selfprovidedep(Solvable *s);