Comments (6)
Hi, Anastasia.
Yes, it's a bit tricky heuristics :)
The reason is the following:
--greedy
option means thatcombirepo
marks the maximum set of packages, i.e. tries to get as many packages from marked ( = sanitized) repository as possible.--mirror
option means thatcombirepo
gets non-marked packages instead of marked ones, if some package doesn't present in the marked repository.- The error
Found 7 packages with different version numbers!
is generated by method check_rpm_versions, which checks only marked packages for equality of version numbers (see this line, where it's called). For each marked package this method checks its version number in marked and non-marked repository, and asks the developer to make them equal. If I recall correctly, at the stage ofcombirepo
design and development this feature was needed to prevent image creation with different versions. This is needed to make debugging of package correct: if versions of the package are different, we cannot provide the correctness of its testing in the combined image.
As I guess, libmm-sound-*
packages weren't marked when --mirror
option was specified, because ks
file didn't contain explicit mention of that packages. But with --greedy
option, libmm-sound-*
packages were marked, and repository combiner checked them for version correspondence.
So you have three options:
- Actually rebuild
libmm-sound-*
packages in marked ( = sanitized) repository, so that to make versions correspond to each other. - Temporarily disable check_rpm_versions and see to what consequences that will lead. I believe that either
mic
will fail during image creation phase, or there will be some run-time error. Moreover, as I remember,mic
error logs about non-equal versions are very strange and hard to debug, becausemic
reports not the root cause of the error. There is some tricky way to debug it, I can describe if needed. - Implement heuristic that will exclude package from marked set, if there is a version conflict. I.e. take non-marked package if marked one has a version conflict.
Hope this comment will help.
from combirepo.
@ilya-palachev,
Thank you for a such detailed response!
from combirepo.
@ilya-palachev , @rayslava ,
What if replace critical error of version mismatch with warning, unmark such packages and continue building an image?
from combirepo.
I don't think that implicitly changing user request is a good idea. At least by default, may be we can add flag to convert it into warning.
from combirepo.
Maybe, a trade-off would be, when both --mirror
and --greedy
options are specified, to take non-marked package when its version conflicts with marked one's.
from combirepo.
Added a new option to skip version mismatch
#9
from combirepo.
Related Issues (3)
- Skip rpmrebuild HOT 5
- Restricted count of parts HOT 5
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from combirepo.