Hi,
> I'm not sure it's the ideal ordering, but that was my intention. I
> include perl only to pick up some packages not present in the main
> repos, and my local repo has packages that definitely wont be in any of
> the others, so I assume, gets used independent of priority.
ok that makes sense to me too
> The placement of kiwi is perhaps the one I'm least sure of.
The order of the repos in kiwi results in a flat list of
"add-repo" instructions to the desired package manager, zypper in this case.
For the zypper case it doesn't matter in which order the repos were
added. For the later resolver task in zypper other attributes, like
the priority are taken into account.
For the repo list you specified I agree with you, no prio setting
should be needed.
> The reason why zypper did not
> pull the updated libstdc++6, is most probably a package that has
> not build against this version of the lib.
>
> I'm skeptical of that being the cause. There were several indications
> that it was not.
> 1. Firstly, libstdc++6 looks to have been set up to be backward
> compatible for versions going a long way back.
correct
> If I look at its
> dependencies (under the heading of "Provides") then there's a long list
> of libstdc++.so.6(GLIBCXX_a.b.c)(64bit) for many different instances of
> a.b.c - about 40 of them. I'd imagine it has to be made backward
> compatible, otherwise all projects would have to update their gcc
> versions in lock step.
Yes true
> 2. If there were a conflict, shouldn't "zypper update" also refuse to
> install the new version?
In case of a real conflict which requires a decision making, the
process will fail. That's because kiwi calls zypper with the --non-interactive
flag and that causes zypper to fail in case of a required user interaction
> 3. It looked like it wasn't just the latest libstdc++6 package that I
> was failing to pick up: I seemed to be picking up nothing from the
> update repo, until I ran zypper update, whereupon many packages were
> updated. It was as one might imagine on first running update on a
> freshly installed system.
Hmm, that I don't see in any of my builds. When I add the update
repo this provides a number of package updates with higher version, release
or build number and zypper pulls them in on a normal "zypper install ..."
operation, if the overall dependency resolution allows it.
> I was seeing it as a kiwi question, just wondering if I was specifying
> the update repo wrongly... in a way that kiwi cannot make use of it.
kiwi is a dumb player in this game :) Kiwi constructs a request to the
package manager. You can give some parameters to this request, like prio,
fqdn, ignores, etc etc but in the end we just give the package manager
a request and it should not be any different as if a user would use
the package manager on his system, such that also the same issues
should appear no matter if kiwi sends the request or a user.
> kiwi doesn't seem to be picking up any packages from it in my case. I
> wondered if update repos might be entirely different from standard ones
> and only usable via "zypper update" and not as an initial source of
> packages.
I can assure in this regard that an update repo or a custom repo is
not handled differently. For rpm the repo metadata is stored under
repodata/ in the respective repo. If that is an update repo or some
other repo is immaterial for the package manager reading this metadata.
Also your custom repo should have this repodata/ (produced by createrepo).
zypper creates so called solvable files from all this repodata/ information
and that is the data it use for the satsolver based dependecy resolution.
We intentionally never added any special kiwi magic to the solver
process such that building an image with kiwi does the exact same
thing as if a user would install the number of packages from the
given repos.
Debugging your issue further seems not so easy unless you can
provide access to your custom repo.
Cheers,