Bug ID | 1020046 |
---|---|
Summary | xsp build should fail but not |
Classification | openSUSE |
Product | openSUSE Tumbleweed |
Version | Current |
Hardware | Other |
OS | Other |
Status | NEW |
Severity | Normal |
Priority | P5 - None |
Component | Mono |
Assignee | bnc-team-mono@forge.provo.novell.com |
Reporter | i@marguerite.su |
QA Contact | qa-bugs@suse.de |
Found By | --- |
Blocker | --- |
Hi, Recently I fixed build for xsp in Leap 42.3 by backporting a patch from Tumbleweed.[1] The error message was: configure: error: missing required Mono 2.0 assembly: System.Core.dll I sent a maintenance request[2] because the mono-core's versions are all 4.x and the xsp's versions are all the same. and Andreas Stieger rejected it because he thought why we should fix build problems for successful builds. So I invested further: In the configure.ac of xsp there is a check: <pre> SHAMROCK_CHECK_MONO_2_0_GAC_ASSEMBLIES([ System.Core System.Configuration System.Data System.Web Mono.Posix Mono.Security ]) </pre> SHAMROCK_CHECK_MONO_2_0_GAC_ASSEMBLIES refers to this: <pre> AC_DEFUN([_SHAMROCK_CHECK_MONO_GAC_ASSEMBLIES], [ for asm in $(echo "$*" | cut -d, -f3- | sed 's/\,/ /g') do AC_MSG_CHECKING([for Mono $2 GAC for $asm.dll]) echo "$($PKG_CONFIG --variable=libdir $1)/mono/$2/$asm.dll" echo "$($PKG_CONFIG --variable=prefix $1)/lib/mono/$2/$asm.dll" if test \ -e "$($PKG_CONFIG --variable=libdir $1)/mono/$2/$asm.dll" -o \ -e "$($PKG_CONFIG --variable=prefix $1)/lib/mono/$2/$asm.dll"; \ then \ AC_MSG_RESULT([found]) else AC_MSG_RESULT([not found]) AC_MSG_ERROR([missing required Mono $2 assembly: $asm.dll]) fi done ]) </pre> in build/m4/shamrock/mono.m4, basically it will check the existence of these two files: /usr/lib64/mono/2.0/System.Core.dll /usr/lib/mono/2.0/System.Core.dll There are certainly no such files because there's no longer /usr/lib/mono/2.0/System.Core.dll in mono-core 4.x. So, theoretically xsp build should fail on every openSUSE release and Tumbleweed. But, the only failure I saw was on Leap 42.3. After applying two patches that certainly will not fix this, it build successfully again. In Leap 42.1/42.2 released repository without those two patches, I saw: [ 46s] checking for Mono 2.0 GAC for System.Core.dll... found [ 46s] checking for Mono 2.0 GAC for System.Configuration.dll... found [ 46s] checking for Mono 2.0 GAC for System.Data.dll... found [ 46s] checking for Mono 2.0 GAC for System.Web.dll... found [ 46s] checking for Mono 2.0 GAC for Mono.Posix.dll... found [ 46s] checking for Mono 2.0 GAC for Mono.Security.dll... found But actually they should fail, see my test: https://build.opensuse.org/package/show/home:MargueriteSu:branches:OBS_Maintained:xsp/xsp.openSUSE_Leap_42.2_Update I didn't change anything actually. I didn't apply any patch, just defined some inner variables in the specfile. Theoretically it should build successfully just as it was in Leap 42.1/42.2, but it didn't. So there're two directions now: 1. Why our Build Service didn't trigger a failure when it should and it can. 2. Why xsp/mono continued the build when a must-have library was missing? Did it fallback to /usr/lib/mono/4.5/System.Core.dll? or it just bundled/rebuilt a System.Core.dll 2.0? References: 1. https://build.opensuse.org/request/show/448139 2. https://build.opensuse.org/request/show/448186