Mailinglist Archive: opensuse-buildservice (153 mails)

< Previous Next >
Re: [opensuse-buildservice] build-compare forces republish for new commit and new rpm
On Sat, Nov 15, Stephan Kulow wrote:

Am 14.11.2014 19:05, schrieb Olaf Hering:

If the source changed there is some URL in some tag. The release itself
looks meaningless. But there are likely packages that rely on a certain
release number.
So your use case is a commit that didn't change the sources but just the
checkin counter?

I think the ultimate check if the sources change is DISTURL. How is the
release number handled anyway? I'm using cicount="copy" (for which docu
is hard to find via google). Last week I noticed imlib2 was republished
after a new rpm checkin in PMBS 11.4:

[ 154s] compare /.build.oldpackages/imlib2-1.4.5-49.1.src.rpm
[ 154s] release prefix mismatch

The source in OBS:graphics/imlib2 was unchanged. Why is it two releases
ahead now? Does the _link update trigger a source change? But OBS also
has rev 51 since the last checkin.

I'm worried about the kernels where kernel-syms requires that all
kernel flavors have the same checkin counter.

The current code is bogus and not documented at all. What is that check
supposed to catch?

94 # This might happen with a forced rebuild of factory
95 if [ "${release1%.*}" != "${release2%.*}" ] ; then
96 echo "release prefix mismatch"
97 if test -z "$check_all"; then
98 return 1
99 fi
100 fi

To make sure all kernel packages have the same RLEASE string they should
be handled here. Either with a wildcard "kernel-*" like this:

--- (revision cf456e3c2908ec9d5cc7332940bb1ae1)
+++ (working copy)
@@ -91,12 +91,19 @@
# Remember to quote the . which is in release
release1=$($RPM --qf "%{RELEASE}" "$oldrpm"|sed -e 's/\./\\./g')
release2=$($RPM --qf "%{RELEASE}" "$newrpm"|sed -e 's/\./\\./g')
- # This might happen with a forced rebuild of factory
+ # This might happen when?!
if [ "${release1%.*}" != "${release2%.*}" ] ; then
- echo "release prefix mismatch"
- if test -z "$check_all"; then
- return 1
- fi
+ case $($RPM --qf '%{NAME}' "$newrpm")
+ kernel-*)
+ # Make sure all kernel packages have the same %RELEASE
+ echo "release prefix mismatch"
+ if test -z "$check_all"; then
+ return 1
+ fi
+ ;;
+ # Everything other package is allowed to have a different RELEASE
+ *) ;;
+ esac

check_provides $oldrpm $release1 > $file1

Or each affected package ships a
/usr/lib/rpm/build-compare/release-mismatch.*.conf and the code does something
like "grep ^%{NAME}$ release-mismatch.*.conf" to decide if a given package
should be republished if the %RELEASE differes. That way only the kernel
packages would match, not every package that is named kernel-*.rpm.

What do you mean with "if the rpm is complete"? There is an existing
package, and its fine and usable. If the new rpm does something new to a
package, who cares? If its important a to-be-added check in
build-compare may catch it.
Well, me as factory manager cares that that Factory actually gets new
features of new rpm versions.
It might be an important improvement.

I will leave that alone for now because it happens rarely.

To unsubscribe, e-mail: opensuse-buildservice+unsubscribe@xxxxxxxxxxxx
To contact the owner, e-mail: opensuse-buildservice+owner@xxxxxxxxxxxx

< Previous Next >