Open zyppe opened 3 years ago
PS: Could you tell me how to generate lib with -32bit suffix?
Usually the 32bit packages are de-preferred in the project config, so this may be called a bug.
For now you should be able to tell the build program which package to use by calling it with -X libudev-devel -X libbz2-devel
.
The -32bit packages are created by adding the --baselibs
option and doing a build for the i586 arch, i.e. by prepending a linux32
call to the command line:
sudo linux32 build --baselibs...
I found this bug in openSUSE 15.3, in openSUSE 15.2, it doesn't have this bug. You can just ust --dist sle15.3 and this will trigger this fault. Could you leave me a command example for generate 32bit package such as zlib?
[ 4s] expansion error [ 4s] have choice for pkgconfig(libudev) needed by device-mapper-devel: libudev-devel libudev-devel-32bit [ 4s] have choice for pkgconfig(bzip2) needed by freetype2-devel: libbz2-devel libbz2-devel-32bit [ 4s] have choice for libffi.so.7()(64bit) needed by python3-base: ghc-bootstrap libffi7 [ 4s] have choice for libffi.so.7(LIBFFI_BASE_7.0)(64bit) needed by python3-base: ghc-bootstrap libffi7 [ 4s] have choice for libffi.so.7(LIBFFI_CLOSURE_7.0)(64bit) needed by python3-base: ghc-bootstrap libffi7 This bug still has not been fixed
It seems that this bug is not from obs-build, because I used Leap 15.2 version of build, but is there anyone could tell me what cause it, is there any method to fix it?
This is in my opinion a baselibs issue. Having developers manually specify a preference order for pkgconfig deps in every project is asking too much.
A workaround, at the package level is to manually drop the pkgconfig file from the baselibs generated packages as done here: https://build.opensuse.org/request/show/1172098 but that is also very unwieldy.
I suggest that baselibs should not automatically package anything except the libs. That is, please drop the .pc
from
https://github.com/openSUSE/obs-build/blob/1bc1805b0b46e2f082357b893c4c075219e15bfd/baselibs_configs/baselibs_global.conf#L27
Of course if a developer specifically want, say their -32bit-devel package to carry the pkgconf file, they can add it manually to their baselibs.conf, but I doubt this is needed in most cases.
When I build rpm with build script, if my spec has pkgconfig something, build will say have choice for pkgconfig (): ... ...-32bit An example is: When I build grub2 My command is sudo build --debug --repo https://mirror.sjtu.edu.cn/opensuse/update/leap/15.3/sle/ --repo https://mirror.sjtu.edu.cn/opensuse/update/leap/15.3/backports/ --repo https://mirror.sjtu.edu.cn/opensuse/update/leap/15.3/leap/ --repo https://mirror.sjtu.edu.cn/opensuse/update/leap/15.3/oss/ --repo https://mirrors.huaweicloud.com/opensuse/distribution/leap/15.3/repo/oss/ --dist sle15.3 grub2-2.04-20.4.src.rpm It will tell me expansion error have choice for pkgconfig (libudev) needed by device-mapper-devel: libudev-devel libudev-devel-32bit have choice for pkgconfig (bzip2) needed by freetype2-devel: libbz2-devel libbz2-devel-32bit I know maybe it is not a bug, but could you tell my how to resolve it?