Hello community, here is the log from the commit of package libsolv for openSUSE:Factory checked in at 2019-07-29 17:24:12 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/libsolv (Old) and /work/SRC/openSUSE:Factory/.libsolv.new.4126 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "libsolv" Mon Jul 29 17:24:12 2019 rev:72 rq:714889 version:0.7.5 Changes: -------- --- /work/SRC/openSUSE:Factory/libsolv/libsolv.changes 2019-06-24 21:49:38.763932969 +0200 +++ /work/SRC/openSUSE:Factory/.libsolv.new.4126/libsolv.changes 2019-07-29 17:24:13.978350150 +0200 @@ -1,0 +2,8 @@ +Wed Jul 10 07:48:10 UTC 2019 - Martin Liška <[email protected]> + +- Add -ffat-lto-objects to $optflags as the package provides + static libraries +- Remove NO_BRP_STRIP_DEBUG=true as brp-15-strip-debug will + not strip debug info for archives + +------------------------------------------------------------------- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ libsolv.spec ++++++ --- /var/tmp/diff_new_pack.dXbj4z/_old 2019-07-29 17:24:14.506349955 +0200 +++ /var/tmp/diff_new_pack.dXbj4z/_new 2019-07-29 17:24:14.510349953 +0200 @@ -207,6 +207,7 @@ %setup -q %build +%global _lto_cflags %{_lto_cflags} -ffat-lto-objects export CFLAGS="%{optflags}" export CXXFLAGS="$CFLAGS" @@ -257,10 +258,6 @@ %py3_compile %{buildroot}/%{python3_sitearch} %endif %endif -%if %{with static} -# we want to leave the .a file untouched -export NO_BRP_STRIP_DEBUG=true -%endif %check make ARGS=--output-on-failure test ++++++ libsolv-0.7.5.tar.bz2 ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libsolv-0.7.5/CMakeLists.txt new/libsolv-0.7.5/CMakeLists.txt --- old/libsolv-0.7.5/CMakeLists.txt 2019-04-11 16:48:29.000000000 +0200 +++ new/libsolv-0.7.5/CMakeLists.txt 2019-07-01 11:34:26.000000000 +0200 @@ -126,6 +126,8 @@ SET (have_system ${have_system}x) ENDIF (HAIKU) +SET (CMAKE_MACOSX_RPATH ON) + IF (${have_system} STREQUAL x) MESSAGE (STATUS "Building for no system") ENDIF (${have_system} STREQUAL x) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libsolv-0.7.5/bindings/solv.i new/libsolv-0.7.5/bindings/solv.i --- old/libsolv-0.7.5/bindings/solv.i 2019-05-14 11:54:59.000000000 +0200 +++ new/libsolv-0.7.5/bindings/solv.i 2019-07-09 14:50:01.000000000 +0200 @@ -650,6 +650,33 @@ /** + ** return $self + **/ + +%define returnself(func) +#if defined(SWIGPYTHON) +%typemap(out) void func { + $result = obj0; + Py_INCREF($result); +} +#elif defined(SWIGPERL) +%typemap(out) void func { + $result = sv_2mortal(SvREFCNT_inc(ST(0)));argvi++; +} +#elif defined(SWIGRUBY) +%typemap(ret) void func { + return self; +} +#elif defined(SWIGTCL) +%typemap(out) void func { + Tcl_IncrRefCount(objv[1]); + Tcl_SetObjResult(interp, objv[1]); +} +#endif +%enddef + + +/** ** misc stuff **/ @@ -1362,12 +1389,14 @@ s->flags = $self->flags; return s; } +returnself(filter) void filter(Selection *lsel) { if ($self->pool != lsel->pool) queue_empty(&$self->q); else selection_filter($self->pool, &$self->q, &lsel->q); } +returnself(add) void add(Selection *lsel) { if ($self->pool == lsel->pool) { @@ -1375,29 +1404,35 @@ $self->flags |= lsel->flags; } } +returnself(add_raw) void add_raw(Id how, Id what) { queue_push2(&$self->q, how, what); } +returnself(subtract) void subtract(Selection *lsel) { if ($self->pool == lsel->pool) selection_subtract($self->pool, &$self->q, &lsel->q); } +returnself(select) void select(const char *name, int flags) { if ((flags & SELECTION_MODEBITS) == 0) flags |= SELECTION_FILTER | SELECTION_WITH_ALL; $self->flags = selection_make($self->pool, &$self->q, name, flags); } +returnself(matchdeps) void matchdeps(const char *name, int flags, Id keyname, Id marker = -1) { if ((flags & SELECTION_MODEBITS) == 0) flags |= SELECTION_FILTER | SELECTION_WITH_ALL; $self->flags = selection_make_matchdeps($self->pool, &$self->q, name, flags, keyname, marker); } +returnself(matchdepid) void matchdepid(DepId dep, int flags, Id keyname, Id marker = -1) { if ((flags & SELECTION_MODEBITS) == 0) flags |= SELECTION_FILTER | SELECTION_WITH_ALL; $self->flags = selection_make_matchdepid($self->pool, &$self->q, dep, flags, keyname, marker); } +returnself(matchsolvable) void matchsolvable(XSolvable *solvable, int flags, Id keyname, Id marker = -1) { if ((flags & SELECTION_MODEBITS) == 0) flags |= SELECTION_FILTER | SELECTION_WITH_ALL; @@ -2057,9 +2092,18 @@ queue_init(&q); int i; for (i = 2; i < $self->nsolvables; i++) { - if (!$self->solvables[i].repo) - continue; - if (!$self->considered || MAPTST($self->considered, i)) + if ($self->solvables[i].repo && (!$self->considered || MAPTST($self->considered, i))) + queue_push(&q, i); + } + return q; + } + + Queue get_disabled_list() { + Queue q; + queue_init(&q); + int i; + for (i = 2; i < $self->nsolvables; i++) { + if ($self->solvables[i].repo && ($self->considered && !MAPTST($self->considered, i))) queue_push(&q, i); } return q; @@ -2081,6 +2125,28 @@ } } + void set_disabled_list(Queue q) { + int i; + Id p; + if (!q.count) { + if ($self->considered) { + map_free($self->considered); + $self->considered = solv_free($self->considered); + } + return; + } + if (!$self->considered) { + $self->considered = solv_calloc(1, sizeof(Map)); + map_init($self->considered, $self->nsolvables); + } + map_setall($self->considered); + for (i = 0; i < q.count; i++) { + p = q.elements[i]; + if (p > 0 && p < $self->nsolvables) + MAPCLR($self->considered, p); + } + } + void setpooljobs(Queue solvejobs) { queue_free(&$self->pooljobs); queue_init_clone(&$self->pooljobs, &solvejobs); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libsolv-0.7.5/doc/gen/libsolv-bindings.3 new/libsolv-0.7.5/doc/gen/libsolv-bindings.3 --- old/libsolv-0.7.5/doc/gen/libsolv-bindings.3 2019-03-29 13:19:55.000000000 +0100 +++ new/libsolv-0.7.5/doc/gen/libsolv-bindings.3 2019-07-01 13:14:18.000000000 +0200 @@ -2,12 +2,12 @@ .\" Title: Libsolv-Bindings .\" Author: [see the "Author" section] .\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/> -.\" Date: 03/16/2019 +.\" Date: 07/01/2019 .\" Manual: LIBSOLV .\" Source: libsolv .\" Language: English .\" -.TH "LIBSOLV\-BINDINGS" "3" "03/16/2019" "libsolv" "LIBSOLV" +.TH "LIBSOLV\-BINDINGS" "3" "07/01/2019" "libsolv" "LIBSOLV" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- @@ -1129,6 +1129,62 @@ .\} .sp Decrement the reference count of the appdata object\&. This can be used to break circular references (e\&.g\&. if the pool\(cqs appdata value points to some meta data structure that contains a pool handle)\&. If used incorrectly, this method can lead to application crashes, so beware\&. (This method is a no\-op for ruby and tcl\&.) +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fBId *get_considered_list()\fR +my \fI@ids\fR \fB=\fR \fI$pool\fR\fB\->get_considered_list()\fR; +\fIids\fR \fB=\fR \fIpool\fR\fB\&.get_considered_list()\fR +\fIids\fR \fB=\fR \fIpool\fR\fB\&.get_considered_list()\fR +.fi +.if n \{\ +.RE +.\} +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fBvoid set_considered_list(Id *\fR\fIids\fR\fB)\fR +\fI$pool\fR\fB\->set_considered_list(\e\fR\fI@ids\fR\fB)\fR; +\fIpool\fR\fB\&.set_considered_list(\fR\fIids\fR\fB)\fR +\fIpool\fR\fB\&.set_considered_list(\fR\fIids\fR\fB)\fR +.fi +.if n \{\ +.RE +.\} +.sp +Get/set the list of solvables that are eligible for installation\&. Note that you need to recreate the whatprovides hash after changing the list\&. +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fBId *get_disabled_list()\fR +my \fI@ids\fR \fB=\fR \fI$pool\fR\fB\->get_disabled_list()\fR; +\fIids\fR \fB=\fR \fIpool\fR\fB\&.get_disabled_list()\fR +\fIids\fR \fB=\fR \fIpool\fR\fB\&.get_disabled_list()\fR +.fi +.if n \{\ +.RE +.\} +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fBvoid set_disabled_list(Id *\fR\fIids\fR\fB)\fR +\fI$pool\fR\fB\->set_disabled_list(\e\fR\fI@ids\fR\fB)\fR; +\fIpool\fR\fB\&.set_disabled_list(\fR\fIids\fR\fB)\fR +\fIpool\fR\fB\&.set_disabled_list(\fR\fIids\fR\fB)\fR +.fi +.if n \{\ +.RE +.\} +.sp +Get/set the list of solvables that are not eligible for installation\&. This is basically the inverse of the \(lqconsidered\(rq methods above, i\&.e\&. calling \(lqset_disabled_list()\(rq with an empty list will make all solvables eligible for installation\&. Note you need to recreate the whatprovides hash after changing the list\&. .SS "DATA RETRIEVAL METHODS" .sp In the following functions, the \fIkeyname\fR argument describes what to retrieve\&. For the standard cases you can use the available Id constants\&. For example, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libsolv-0.7.5/doc/libsolv-bindings.txt new/libsolv-0.7.5/doc/libsolv-bindings.txt --- old/libsolv-0.7.5/doc/libsolv-bindings.txt 2019-03-29 13:19:55.000000000 +0100 +++ new/libsolv-0.7.5/doc/libsolv-bindings.txt 2019-07-01 13:14:18.000000000 +0200 @@ -645,6 +645,35 @@ structure that contains a pool handle). If used incorrectly, this method can lead to application crashes, so beware. (This method is a no-op for ruby and tcl.) + Id *get_considered_list() + my @ids = $pool->get_considered_list(); + ids = pool.get_considered_list() + ids = pool.get_considered_list() + + void set_considered_list(Id *ids) + $pool->set_considered_list(\@ids); + pool.set_considered_list(ids) + pool.set_considered_list(ids) + +Get/set the list of solvables that are eligible for installation. Note that +you need to recreate the whatprovides hash after changing the list. + + Id *get_disabled_list() + my @ids = $pool->get_disabled_list(); + ids = pool.get_disabled_list() + ids = pool.get_disabled_list() + + void set_disabled_list(Id *ids) + $pool->set_disabled_list(\@ids); + pool.set_disabled_list(ids) + pool.set_disabled_list(ids) + +Get/set the list of solvables that are not eligible for installation. This is +basically the inverse of the ``considered'' methods above, i.e. calling +``set_disabled_list()'' with an empty list will make all solvables eligible for +installation. Note you need to recreate the whatprovides hash after changing the +list. + === DATA RETRIEVAL METHODS === In the following functions, the _keyname_ argument describes what to retrieve. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libsolv-0.7.5/ext/CMakeLists.txt new/libsolv-0.7.5/ext/CMakeLists.txt --- old/libsolv-0.7.5/ext/CMakeLists.txt 2019-04-11 16:48:29.000000000 +0200 +++ new/libsolv-0.7.5/ext/CMakeLists.txt 2019-07-01 11:34:26.000000000 +0200 @@ -163,7 +163,6 @@ SET_TARGET_PROPERTIES(libsolvext PROPERTIES OUTPUT_NAME "solvext") SET_TARGET_PROPERTIES(libsolvext PROPERTIES SOVERSION ${LIBSOLVEXT_SOVERSION}) -SET_TARGET_PROPERTIES(libsolvext PROPERTIES INSTALL_NAME_DIR ${CMAKE_INSTALL_LIBDIR}) INSTALL (FILES ${libsolvext_HEADERS} DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/solv") INSTALL (TARGETS libsolvext LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libsolv-0.7.5/package/libsolv.changes new/libsolv-0.7.5/package/libsolv.changes --- old/libsolv-0.7.5/package/libsolv.changes 2019-06-13 16:22:22.000000000 +0200 +++ new/libsolv-0.7.5/package/libsolv.changes 2019-07-12 14:14:36.000000000 +0200 @@ -1,4 +1,12 @@ ------------------------------------------------------------------- +Wed Jul 10 07:48:10 UTC 2019 - Martin Liška <[email protected]> + +- Add -ffat-lto-objects to $optflags as the package provides + static libraries +- Remove NO_BRP_STRIP_DEBUG=true as brp-15-strip-debug will + not strip debug info for archives + +------------------------------------------------------------------- Thu Jun 13 16:15:39 CEST 2019 - [email protected] - make cleandeps jobs on patterns work [bnc#1137977] diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libsolv-0.7.5/package/libsolv.spec.in new/libsolv-0.7.5/package/libsolv.spec.in --- old/libsolv-0.7.5/package/libsolv.spec.in 2019-01-30 15:47:03.000000000 +0100 +++ new/libsolv-0.7.5/package/libsolv.spec.in 2019-07-12 14:14:36.000000000 +0200 @@ -207,6 +207,7 @@ %setup -q %build +%global _lto_cflags %{_lto_cflags} -ffat-lto-objects export CFLAGS="%{optflags}" export CXXFLAGS="$CFLAGS" @@ -257,10 +258,6 @@ %py3_compile %{buildroot}/%{python3_sitearch} %endif %endif -%if %{with static} -# we want to leave the .a file untouched -export NO_BRP_STRIP_DEBUG=true -%endif %check make ARGS=--output-on-failure test diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libsolv-0.7.5/src/CMakeLists.txt new/libsolv-0.7.5/src/CMakeLists.txt --- old/libsolv-0.7.5/src/CMakeLists.txt 2019-04-17 11:59:22.000000000 +0200 +++ new/libsolv-0.7.5/src/CMakeLists.txt 2019-07-01 11:34:26.000000000 +0200 @@ -55,7 +55,6 @@ SET_TARGET_PROPERTIES(libsolv PROPERTIES OUTPUT_NAME "solv") SET_TARGET_PROPERTIES(libsolv PROPERTIES SOVERSION ${LIBSOLV_SOVERSION}) -SET_TARGET_PROPERTIES(libsolv PROPERTIES INSTALL_NAME_DIR ${CMAKE_INSTALL_LIBDIR}) INSTALL (FILES ${libsolv_HEADERS} DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/solv") INSTALL (TARGETS libsolv LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libsolv-0.7.5/src/pool.c new/libsolv-0.7.5/src/pool.c --- old/libsolv-0.7.5/src/pool.c 2019-04-09 11:39:15.000000000 +0200 +++ new/libsolv-0.7.5/src/pool.c 2019-07-01 14:55:30.000000000 +0200 @@ -1355,9 +1355,9 @@ continue; } } - if (!s->provides) + if (!s->provides || s->arch == ARCH_SRC || s->arch == ARCH_NOSRC) { - /* no provides - check nevr */ + /* no provides or src rpm - check nevr */ if (pool_match_nevr_rel(pool, s, MAKERELDEP(d))) queue_push(&plist, p); continue; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libsolv-0.7.5/tools/repo2solv.c new/libsolv-0.7.5/tools/repo2solv.c --- old/libsolv-0.7.5/tools/repo2solv.c 2019-01-22 09:59:48.000000000 +0100 +++ new/libsolv-0.7.5/tools/repo2solv.c 2019-06-17 13:59:37.000000000 +0200 @@ -504,13 +504,42 @@ #ifdef ENABLE_RPMMD +# ifdef ENABLE_ZCHUNK_COMPRESSION + +static int +repomd_exists(const char *dir, const char *filename) +{ + char *path; + struct stat stb; + int r; + + if (!filename) + return 0; + path = solv_dupjoin(dir, "/", filename); + r = stat(path, &stb) == 0; + solv_free(path); + return r; +} + +# endif + static const char * -repomd_find(Repo *repo, const char *what) +repomd_find(Repo *repo, const char *dir, const char *what, int findzchunk) { Pool *pool = repo->pool; Dataiterator di; const char *filename; +# ifdef ENABLE_ZCHUNK_COMPRESSION + if (findzchunk) + { + char *what_zck = solv_dupjoin(what, "_zck", 0); + filename = repomd_find(repo, dir, what_zck, 0); + solv_free(what_zck); + if (filename && repomd_exists(dir, filename)) + return filename; + } +# endif filename = 0; dataiterator_init(&di, pool, repo, SOLVID_META, REPOSITORY_REPOMD_TYPE, what, SEARCH_STRING); dataiterator_prepend_keyname(&di, REPOSITORY_REPOMD); @@ -555,7 +584,7 @@ FILE *fp; char *tmp; - filename = repomd_find(repo, what); + filename = repomd_find(repo, dir, what, 1); if (!filename) return; fp = repomd_open(dir, filename, &tmp, missingok); @@ -581,8 +610,20 @@ dataiterator_prepend_keyname(&di, REPOSITORY_REPOMD); while (dataiterator_step(&di)) { + char *str = solv_strdup(di.kv.str); + size_t l = strlen(str); + if (l > 4 && !strcmp(str + l - 4, "_zck")) + str[l - 4] = 0; + for (i = 0; i < nsusedatas; i++) + if (!strcmp(susedatas[i], str)) + break; + if (i < nsusedatas) + { + solv_free(str); + continue; /* already have that entry */ + } susedatas = solv_extend(susedatas, nsusedatas, 1, sizeof(char *), 15); - susedatas[nsusedatas++] = solv_strdup(di.kv.str); + susedatas[nsusedatas++] = str; } dataiterator_free(&di); for (i = 0; i < nsusedatas; i++) @@ -628,7 +669,7 @@ } fclose(fp); tmp = solv_free(tmp); - filename = repomd_find(repo, "suseinfo"); + filename = repomd_find(repo, dir, "suseinfo", 0); if (filename && (fp = repomd_open(dir, filename, &tmp, 0)) != 0) { if (repo_add_repomdxml(repo, fp, REPO_REUSE_REPODATA)) @@ -641,7 +682,7 @@ } /* first all primary packages */ - filename = repomd_find(repo, "primary"); + filename = repomd_find(repo, dir, "primary", 1); if (filename) { add_rpmmd_file(repo, dir, filename, 0); @@ -654,16 +695,16 @@ } /* some legacy stuff */ - filename = repomd_find(repo, "products"); + filename = repomd_find(repo, dir, "products", 0); if (!filename) - filename = repomd_find(repo, "product"); + filename = repomd_find(repo, dir, "product", 0); if (filename) add_rpmmd_file(repo, dir, filename, 1); - filename = repomd_find(repo, "patterns"); + filename = repomd_find(repo, dir, "patterns", 0); add_rpmmd_file(repo, dir, filename, 1); /* updateinfo */ - filename = repomd_find(repo, "updateinfo"); + filename = repomd_find(repo, dir, "updateinfo", 1); if (filename && (fp = repomd_open(dir, filename, &tmp, 0)) != 0) { if (repo_add_updateinfoxml(repo, fp, 0)) @@ -676,9 +717,9 @@ } /* deltainfo */ - filename = repomd_find(repo, "deltainfo"); + filename = repomd_find(repo, dir, "deltainfo", 1); if (!filename) - filename = repomd_find(repo, "prestodelta"); + filename = repomd_find(repo, dir, "prestodelta", 1); if (filename && (fp = repomd_open(dir, filename, &tmp, 1)) != 0) { if (repo_add_deltainfoxml(repo, fp, 0)) @@ -692,7 +733,7 @@ #ifdef ENABLE_APPDATA /* appdata */ - filename = add_appdata ? repomd_find(repo, "appdata") : 0; + filename = add_appdata ? repomd_find(repo, dir, "appdata", 1) : 0; if (filename && (fp = repomd_open(dir, filename, &tmp, 1)) != 0) { if (repo_add_appdata(repo, fp, 0))
