Bug 9349

Summary: Jethro build fails for core-image-x11 with package_deb
Product: [Build System, Metadata & Runtime] OE-Core Reporter: Dimitrij Gester <gesterdj>
Component: coreAssignee: Aníbal Limón <anibal.limon>
Status: RESOLVED OBSOLETE QA Contact:
Severity: normal    
Priority: Medium CC: anibal.limon, meta.mr.watcher, meta.watcher
Version: 2.0.1   
Target Milestone: 2.3 M4   
Hardware: All   
OS: Multiple   
Whiteboard:
OS type for building Yocto: --- Type of Regression: ---
Verified: Documentation change: No (bug/feature does not impact docs)
Attachments:
Description Flags
Config files and full log file of failing build none

Description Dimitrij Gester 2016-03-25 22:55:56 UTC
Description: 
Preparing the final image (do_rootfs) fails due to unresolved dependencies for x11 with 'apt' as the package manager. 


Offending Packages: 
'packagegroup-core-x11-base' and 'packagegroup-core-x11-utils' are not being installed at the same time, resulting in an unresolved dependencies error. With 'package_rpm' the build completes successfully. The same error also is seen with a vanilla build for 'imx6dlsabresd'.


Log excerpt:
NOTE: Installing the following packages: psplash packagegroup-core-x11-base apt dpkg packagegroup-base-extended packagegroup-core-boot
ERROR: Unable to install packages. Command '/ARM/MarS/jethro/build/tmp/sysroots/x86_64-linux/usr/bin/apt-get  install --force-yes --allow-unauthenticated psplash packagegroup-core-x11-base apt dpkg packagegroup-base-extended packagegroup-core-boot' returned 100:

[...]

The following packages have unmet dependencies:
 packagegroup-core-x11-base : Depends: packagegroup-core-x11-utils but it is not going to be installed


Log:

Build Configuration:
BB_VERSION        = "1.28.0"
BUILD_SYS         = "x86_64-linux"
NATIVELSBSTRING   = "Ubuntu-14.04"
TARGET_SYS        = "arm-poky-linux-gnueabi"
MACHINE           = "marsboard"
DISTRO            = "poky"
DISTRO_VERSION    = "2.0.1"
TUNE_FEATURES     = "arm armv7a vfp thumb neon callconvention-hard cortexa9"
TARGET_FPU        = "vfp-neon"
meta              
meta-yocto        = "HEAD:3b223f75eec1738fbc913858e8e11c8305e3edcb"
meta-oe           
meta-multimedia   = "HEAD:dc5634968b270dde250690609f0015f881db81f2"
meta-fsl-arm      = "HEAD:aa2a6cee58743ca9f437ce3d552504d32519c8f1"
meta-fsl-arm-extra = "HEAD:7b1b30a2c8159b56103660903cd513bc1009cc21"
meta-fsl-demos    = "HEAD:8bffde8d803dd2362fbded79781ce084d723b048"
meta-marsboard-bsp = "jethro:3410d8996012a6a301ccac43aa1bfeec0cfbba57"

NOTE: Preparing RunQueue
NOTE: Marking Active Tasks
NOTE: Pruned 9519 inactive tasks, 4349 left
NOTE: Assign Weightings
NOTE: Compute totals (have 1 endpoint(s))
NOTE: Executing SetScene Tasks
NOTE: Executing RunQueue Tasks
NOTE: ###### Generate rootfs #######
NOTE: Executing 'cd /ARM/MarS/jethro/build/tmp/deploy/deb/all; PSEUDO_UNLOAD=1 /ARM/MarS/jethro/build/tmp/sysroots/x86_64-linux/usr/bin/apt-ftparchive packages . > Packages;/ARM/MarS/jethro/build/tmp/sysroots/x86_64-linux/usr/bin/pigz-native/gzip -fc Packages > Packages.gz;PSEUDO_UNLOAD=1 /ARM/MarS/jethro/build/tmp/sysroots/x86_64-linux/usr/bin/apt-ftparchive release . >> Release' ...
NOTE: Executing 'cd /ARM/MarS/jethro/build/tmp/deploy/deb/cortexa9hf-vfp-neon; PSEUDO_UNLOAD=1 /ARM/MarS/jethro/build/tmp/sysroots/x86_64-linux/usr/bin/apt-ftparchive packages . > Packages;/ARM/MarS/jethro/build/tmp/sysroots/x86_64-linux/usr/bin/pigz-native/gzip -fc Packages > Packages.gz;PSEUDO_UNLOAD=1 /ARM/MarS/jethro/build/tmp/sysroots/x86_64-linux/usr/bin/apt-ftparchive release . >> Release' ...
NOTE: Executing 'cd /ARM/MarS/jethro/build/tmp/deploy/deb/cortexa9hf-vfp-neon-mx6qdl; PSEUDO_UNLOAD=1 /ARM/MarS/jethro/build/tmp/sysroots/x86_64-linux/usr/bin/apt-ftparchive packages . > Packages;/ARM/MarS/jethro/build/tmp/sysroots/x86_64-linux/usr/bin/pigz-native/gzip -fc Packages > Packages.gz;PSEUDO_UNLOAD=1 /ARM/MarS/jethro/build/tmp/sysroots/x86_64-linux/usr/bin/apt-ftparchive release . >> Release' ...
NOTE: Executing 'cd /ARM/MarS/jethro/build/tmp/deploy/deb/marsboard; PSEUDO_UNLOAD=1 /ARM/MarS/jethro/build/tmp/sysroots/x86_64-linux/usr/bin/apt-ftparchive packages . > Packages;/ARM/MarS/jethro/build/tmp/sysroots/x86_64-linux/usr/bin/pigz-native/gzip -fc Packages > Packages.gz;PSEUDO_UNLOAD=1 /ARM/MarS/jethro/build/tmp/sysroots/x86_64-linux/usr/bin/apt-ftparchive release . >> Release' ...
NOTE: Installing the following packages: locale-base-en-us locale-base-en-gb
NOTE: Installing the following packages: psplash packagegroup-core-x11-base apt dpkg packagegroup-base-extended packagegroup-core-boot
ERROR: Unable to install packages. Command '/ARM/MarS/jethro/build/tmp/sysroots/x86_64-linux/usr/bin/apt-get  install --force-yes --allow-unauthenticated psplash packagegroup-core-x11-base apt dpkg packagegroup-base-extended packagegroup-core-boot' returned 100:
Reading package lists...
Building dependency tree...
Reading state information...
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
 packagegroup-core-x11-base : Depends: packagegroup-core-x11-utils but it is not going to be installed
W: Unable to read /ARM/MarS/jethro/build/tmp/work/marsboard-poky-linux-gnueabi/core-image-x11/1.0-r0/apt/preferences.d/ - DirectoryExists (2: No such file or directory)
E: Unable to correct problems, you have held broken packages.

ERROR: Function failed: do_rootfs
ERROR: Logfile of failure stored in: /ARM/MarS/jethro/build/tmp/work/marsboard-poky-linux-gnueabi/core-image-x11/1.0-r0/temp/log.do_rootfs.3248
ERROR: Task 7 (/ARM/MarS/jethro/sources/poky/meta/recipes-graphics/images/core-image-x11.bb, do_rootfs) failed with exit code '1'
Comment 1 Aníbal Limón 2016-04-04 19:04:24 UTC
Hi,

I tested with poky on jethro (3b223f75eec1738fbc913858e8e11c8305e3edcb) and it works correctly.

This issue seems to be about some problem with dependencies in the layers that you add.

Could you share with me your local.conf and bblayers.conf?

Regards,
alimon
Comment 2 Dimitrij Gester 2016-04-05 15:58:42 UTC
Created attachment 3095 [details]
Config files and full log file of failing build
Comment 3 Aníbal Limón 2016-04-05 16:10:18 UTC
(In reply to comment #2)
> Created attachment 3095 [details]
> Config files and full log file of failing build

Thanks for the files.

I'll review the issue this week.
Comment 4 Aníbal Limón 2017-01-12 16:27:24 UTC
This problem seems to be caused by adding some layers meta-oe and meta-multimedia , in conjuction with fsl.

The deb package manager code needs to be extended to provide better explanation about what is failing not only unmeet dependencies.
Comment 5 Aníbal Limón 2017-04-17 20:05:01 UTC
The problem is that packagegroup-core-x11-utils depends on xserver-nodm-init and x11-common, that are mutually exclusive.

Using a devshell and installing manually the x11-common removes xserver-nodm-init creating a unmet dependency chain for packagegroup-core-x11-utils.

The recipe meta-data needs to be fixed but we need a proper error message on the package manager may be a generic implementation in rpm, dpkg, ipk.
Comment 6 Aníbal Limón 2017-04-17 20:07:34 UTC
(In reply to comment #5)
> The problem is that packagegroup-core-x11-utils depends on xserver-nodm-init
> and x11-common, that are mutually exclusive.

To be more precise the xserver-nodm-init package depends on xserver-common that's conflicts with x11-common.

> 
> Using a devshell and installing manually the x11-common removes
> xserver-nodm-init creating a unmet dependency chain for
> packagegroup-core-x11-utils.
> 
> The recipe meta-data needs to be fixed but we need a proper error message on
> the package manager may be a generic implementation in rpm, dpkg, ipk.
Comment 7 Aníbal Limón 2017-04-17 20:48:50 UTC
The problem is about meta-oe providing it's own version of xserver-nodm-init [1],
this recipe was removed for use the oe-core one.

The case is that meta-oe xserver-nodm-init set an explicit dependency on xserver-common istead of a usage of VIRTUAL-xserver_common that resolves to x11-common or xserver-common depends on configuration.

I'm researching why it fails on deb and works on rpm, seems to be how the package manager dpkg and rpm handles conflicts.

[1] http://cgit.openembedded.org/meta-openembedded/commit/meta-oe/recipes-graphics?id=877e52fd75c7d3b88add94691df3beb5e0c54529
Comment 8 Aníbal Limón 2017-04-17 21:21:00 UTC
(In reply to comment #7)
> The problem is about meta-oe providing it's own version of xserver-nodm-init
> [1],
> this recipe was removed for use the oe-core one.
> 
> The case is that meta-oe xserver-nodm-init set an explicit dependency on
> xserver-common istead of a usage of VIRTUAL-xserver_common that resolves to
> x11-common or xserver-common depends on configuration.
> 
> I'm researching why it fails on deb and works on rpm, seems to be how the
> package manager dpkg and rpm handles conflicts.
> 
> [1]
> http://cgit.openembedded.org/meta-openembedded/commit/meta-oe/recipes-
> graphics?id=877e52fd75c7d3b88add94691df3beb5e0c54529

The package_rpm class isn't generating rpm's with conflicts information, that's the reason to only fails in deb packages.

$ rpm -qp build-jethro-deb/tmp/deploy/rpm/cortexa9hf_vfp_neon/xserver-nodm-init-2.0-r22.cortexa9hf_vfp_neon.rpm --conflicts
warning: build-jethro-deb/tmp/deploy/rpm/cortexa9hf_vfp_neon/xserver-nodm-init-2.0-r22.cortexa9hf_vfp_neon.rpm: Header V4 DSA/SHA1 Signature, key ID 8c7109fe: NOKEY
Comment 9 Aníbal Limón 2017-04-17 21:29:35 UTC
(In reply to comment #8)
> (In reply to comment #7)
> > The problem is about meta-oe providing it's own version of xserver-nodm-init
> > [1],
> > this recipe was removed for use the oe-core one.
> > 
> > The case is that meta-oe xserver-nodm-init set an explicit dependency on
> > xserver-common istead of a usage of VIRTUAL-xserver_common that resolves to
> > x11-common or xserver-common depends on configuration.
> > 
> > I'm researching why it fails on deb and works on rpm, seems to be how the
> > package manager dpkg and rpm handles conflicts.
> > 
> > [1]
> > http://cgit.openembedded.org/meta-openembedded/commit/meta-oe/recipes-
> > graphics?id=877e52fd75c7d3b88add94691df3beb5e0c54529
> 
> The package_rpm class isn't generating rpm's with conflicts information,
> that's the reason to only fails in deb packages.
> 
> $ rpm -qp
> build-jethro-deb/tmp/deploy/rpm/cortexa9hf_vfp_neon/xserver-nodm-init-2.0-
> r22.cortexa9hf_vfp_neon.rpm --conflicts
> warning:
> build-jethro-deb/tmp/deploy/rpm/cortexa9hf_vfp_neon/xserver-nodm-init-2.0-
> r22.cortexa9hf_vfp_neon.rpm: Header V4 DSA/SHA1 Signature, key ID 8c7109fe:
> NOKEY

RPM information:

alimon@alimonb-mobl1:~/repos/poky$ rpm -qp build-jethro-deb/tmp/deploy/rpm/cortexa9hf_vfp_neon/xserver-common-1.34-r8.cortexa9hf_vfp_neon.rpm --conflicts
warning: build-jethro-deb/tmp/deploy/rpm/cortexa9hf_vfp_neon/xserver-common-1.34-r8.cortexa9hf_vfp_neon.rpm: Header V4 DSA/SHA1 Signature, key ID 0b445786: NOKEY

DEB information:

alimon@alimonb-mobl1:~/repos/poky$ dpkg-deb -I build-jethro-deb/tmp/deploy/deb/cortexa9hf-vfp-neon/xserver-common_1.34-r8_armel.deb 
 new debian package, version 2.0.
 size 7426 bytes: control archive=381 bytes.
     426 bytes,    13 lines      control              
 Package: xserver-common
 Version: 1.34-r8
 Description: Common X11 scripts and support files
  Common X11 scripts and support files.
 Section: base
 Priority: optional
 Maintainer: Poky <poky@yoctoproject.org>
 Architecture: armel
 OE: xserver-common
 PackageArch: cortexa9hf-vfp-neon
 Depends: xmodmap, xrandr, xdpyinfo, fbset, xinput-calibrator
 Replaces: xserver-kdrive-common, x11-common
 Conflicts: xserver-kdrive-common, x11-common
Comment 10 Aníbal Limón 2017-04-18 21:06:28 UTC
(In reply to comment #9)
> (In reply to comment #8)
> > (In reply to comment #7)
> > > The problem is about meta-oe providing it's own version of xserver-nodm-init
> > > [1],
> > > this recipe was removed for use the oe-core one.
> > > 
> > > The case is that meta-oe xserver-nodm-init set an explicit dependency on
> > > xserver-common istead of a usage of VIRTUAL-xserver_common that resolves to
> > > x11-common or xserver-common depends on configuration.
> > > 
> > > I'm researching why it fails on deb and works on rpm, seems to be how the
> > > package manager dpkg and rpm handles conflicts.
> > > 
> > > [1]
> > > http://cgit.openembedded.org/meta-openembedded/commit/meta-oe/recipes-
> > > graphics?id=877e52fd75c7d3b88add94691df3beb5e0c54529
> > 
> > The package_rpm class isn't generating rpm's with conflicts information,
> > that's the reason to only fails in deb packages.
> > 
> > $ rpm -qp
> > build-jethro-deb/tmp/deploy/rpm/cortexa9hf_vfp_neon/xserver-nodm-init-2.0-
> > r22.cortexa9hf_vfp_neon.rpm --conflicts
> > warning:
> > build-jethro-deb/tmp/deploy/rpm/cortexa9hf_vfp_neon/xserver-nodm-init-2.0-
> > r22.cortexa9hf_vfp_neon.rpm: Header V4 DSA/SHA1 Signature, key ID 8c7109fe:
> > NOKEY
> 
> RPM information:
> 
> alimon@alimonb-mobl1:~/repos/poky$ rpm -qp
> build-jethro-deb/tmp/deploy/rpm/cortexa9hf_vfp_neon/xserver-common-1.34-r8.
> cortexa9hf_vfp_neon.rpm --conflicts
> warning:
> build-jethro-deb/tmp/deploy/rpm/cortexa9hf_vfp_neon/xserver-common-1.34-r8.
> cortexa9hf_vfp_neon.rpm: Header V4 DSA/SHA1 Signature, key ID 0b445786: NOKEY
> 
> DEB information:
> 
> alimon@alimonb-mobl1:~/repos/poky$ dpkg-deb -I
> build-jethro-deb/tmp/deploy/deb/cortexa9hf-vfp-neon/xserver-common_1.34-
> r8_armel.deb 
>  new debian package, version 2.0.
>  size 7426 bytes: control archive=381 bytes.
>      426 bytes,    13 lines      control              
>  Package: xserver-common
>  Version: 1.34-r8
>  Description: Common X11 scripts and support files
>   Common X11 scripts and support files.
>  Section: base
>  Priority: optional
>  Maintainer: Poky <poky@yoctoproject.org>
>  Architecture: armel
>  OE: xserver-common
>  PackageArch: cortexa9hf-vfp-neon
>  Depends: xmodmap, xrandr, xdpyinfo, fbset, xinput-calibrator
>  Replaces: xserver-kdrive-common, x11-common
>  Conflicts: xserver-kdrive-common, x11-common

In package_rpm.bbclass if a RCONFLICTS is found in RPROVIDES isn't added to the rpm spec file also RREPLACES fills RPROVIDES and ROBSOLETES, that's the reason to donesn't fail using rpm backend [1].

[1] http://cgit.openembedded.org/meta-openembedded/tree/meta-oe/recipes-graphics/xserver-common/xserver-common_1.34.bb?h=jethro#n43
Comment 11 Aníbal Limón 2017-04-18 21:09:17 UTC
Summary,

The bug doesn't exist in master now because xserver-common and xserver-nodm-init was remove from meta-oe and the recipe meta-data fixed.

There are further work to add insane test to ensure that RREPLACES and RCONFLICTS doesn't have the same value in the RPM backend at least or change the behaviour in the RPM backend?.
Comment 12 Aníbal Limón 2017-04-18 22:09:10 UTC
(In reply to comment #10)
> (In reply to comment #9)
> > (In reply to comment #8)
> > > (In reply to comment #7)
> > > > The problem is about meta-oe providing it's own version of xserver-nodm-init
> > > > [1],
> > > > this recipe was removed for use the oe-core one.
> > > > 
> > > > The case is that meta-oe xserver-nodm-init set an explicit dependency on
> > > > xserver-common istead of a usage of VIRTUAL-xserver_common that resolves to
> > > > x11-common or xserver-common depends on configuration.
> > > > 
> > > > I'm researching why it fails on deb and works on rpm, seems to be how the
> > > > package manager dpkg and rpm handles conflicts.
> > > > 
> > > > [1]
> > > > http://cgit.openembedded.org/meta-openembedded/commit/meta-oe/recipes-
> > > > graphics?id=877e52fd75c7d3b88add94691df3beb5e0c54529
> > > 
> > > The package_rpm class isn't generating rpm's with conflicts information,
> > > that's the reason to only fails in deb packages.
> > > 
> > > $ rpm -qp
> > > build-jethro-deb/tmp/deploy/rpm/cortexa9hf_vfp_neon/xserver-nodm-init-2.0-
> > > r22.cortexa9hf_vfp_neon.rpm --conflicts
> > > warning:
> > > build-jethro-deb/tmp/deploy/rpm/cortexa9hf_vfp_neon/xserver-nodm-init-2.0-
> > > r22.cortexa9hf_vfp_neon.rpm: Header V4 DSA/SHA1 Signature, key ID 8c7109fe:
> > > NOKEY
> > 
> > RPM information:
> > 
> > alimon@alimonb-mobl1:~/repos/poky$ rpm -qp
> > build-jethro-deb/tmp/deploy/rpm/cortexa9hf_vfp_neon/xserver-common-1.34-r8.
> > cortexa9hf_vfp_neon.rpm --conflicts
> > warning:
> > build-jethro-deb/tmp/deploy/rpm/cortexa9hf_vfp_neon/xserver-common-1.34-r8.
> > cortexa9hf_vfp_neon.rpm: Header V4 DSA/SHA1 Signature, key ID 0b445786: NOKEY
> > 
> > DEB information:
> > 
> > alimon@alimonb-mobl1:~/repos/poky$ dpkg-deb -I
> > build-jethro-deb/tmp/deploy/deb/cortexa9hf-vfp-neon/xserver-common_1.34-
> > r8_armel.deb 
> >  new debian package, version 2.0.
> >  size 7426 bytes: control archive=381 bytes.
> >      426 bytes,    13 lines      control              
> >  Package: xserver-common
> >  Version: 1.34-r8
> >  Description: Common X11 scripts and support files
> >   Common X11 scripts and support files.
> >  Section: base
> >  Priority: optional
> >  Maintainer: Poky <poky@yoctoproject.org>
> >  Architecture: armel
> >  OE: xserver-common
> >  PackageArch: cortexa9hf-vfp-neon
> >  Depends: xmodmap, xrandr, xdpyinfo, fbset, xinput-calibrator
> >  Replaces: xserver-kdrive-common, x11-common
> >  Conflicts: xserver-kdrive-common, x11-common
> 
> In package_rpm.bbclass if a RCONFLICTS is found in RPROVIDES isn't added to
> the rpm spec file also RREPLACES fills RPROVIDES and ROBSOLETES, that's the
> reason to donesn't fail using rpm backend [1].
> 
> [1]
> http://cgit.openembedded.org/meta-openembedded/tree/meta-oe/recipes-graphics/
> xserver-common/xserver-common_1.34.bb?h=jethro#n43

Removing the filtered code the error appears and the displays is related to recipe meta-data:

ERROR: Unable to install packages. Command '/home/alimon/repos/poky/build-jethro-deb/tmp/sysroots/x86_64-linux/usr/bin/smart --log-level=warning --data-dir=/home/alimon/repos/poky/build-jethro-deb/tmp/work/imx6dlsabresd-poky-linux-gnueabi/core-image-x11/1.0-r0/rootfs/var/lib/smart install -y psplash@cortexa9hf_vfp_neon packagegroup-core-x11-base@all smartpm@cortexa9hf_vfp_neon packagegroup-base-extended@imx6dlsabresd rpm@cortexa9hf_vfp_neon packagegroup-core-boot@imx6dlsabresd locale-base-en-us@cortexa9hf_vfp_neon locale-base-en-gb@cortexa9hf_vfp_neon' returned 1:
Loading cache...
Updating cache...               ######################################## [100%]

Computing transaction...error: Can't install packagegroup-core-x11-utils-1.0-r40@all: unable to install provider for x11-common:
error:     x11-common-0.1-r47@cortexa9hf_vfp_neon is conflicted by xserver-common-1.34-r8@cortexa9hf_vfp_neon
Comment 13 Aníbal Limón 2017-04-18 22:23:04 UTC
(In reply to comment #11)
> Summary,
> 
> The bug doesn't exist in master now because xserver-common and
> xserver-nodm-init was remove from meta-oe and the recipe meta-data fixed.
> 
> There are further work to add insane test to ensure that RREPLACES and
> RCONFLICTS doesn't have the same value in the RPM backend at least or change
> the behaviour in the RPM backend?.

I sent a patch to remove the filtering if Conflicts are in Provides:

http://lists.openembedded.org/pipermail/openembedded-core/2017-April/135797.html
Comment 14 Aníbal Limón 2017-04-20 15:49:05 UTC
The RPM behavior was fix to comply with the deb failure,

http://git.yoctoproject.org/cgit/cgit.cgi/poky/commit/?id=9cb58a7f2b1329d60e8e7c9af2291f548cb651e0

The failure is due to a problem in meta-oe recipe that is already fix into master,

http://cgit.openembedded.org/meta-openembedded/commit/meta-oe/recipes-graphics?id=877e52fd75c7d3b88add94691df3beb5e0c54529