Debian multilib packaging fixes
cover Debian multilib packaging fixes
I ran into sevearl issues while trying to build an ARM multilib rootfs using Debian packaging. After several go-rounds, it looked like the cleanest solution was to tweak how DPKG_ARCH gets constructed and to have the DpkgPM class in oe/package_manager.py use that variable to locate multilib variants (similar to RpmPM). I also took the liberty of expanding the Debian architecture mappings so the names align better with what's documented on the Debian wiki, for those cases where a direct mapping is possible.
Matt Madison (2):
package_deb.bbclass, cross-canadian.bbclass: DPKG_ARCH mapping
function
package_manager.py: fixes for multilib deb packaging builds
meta/classes/cross-canadian.bbclass | 2 +- meta/classes/package_deb.bbclass | 35 +++++++++++++++++++++++++---------- meta/lib/oe/package_manager.py | 17 +++++++++++------ 3 files changed, 37 insertions(+), 17 deletions(-)
Signature · 1 line
2.5.0
PATCH 1/2 package_deb.bbclass, cross-canadian.bbclass: DPKG_ARCH mapping function
Have DPKG_ARCH set by directly invoking a mapping function, rather than using an anonymous Python function modify the variable under the hood, so we can have proper handling of overrides.
Also bring in some additional mappings to Debian architecture names that weren't being handled.
--- meta/classes/cross-canadian.bbclass | 2 +- meta/classes/package_deb.bbclass | 35 +++++++++++++++++++++++++---------- 2 files changed, 26 insertions(+), 11 deletions(-)
meta/classes/cross-canadian.bbclass +1 -1
@@ -103,7 +103,7 @@ HOST_LD_ARCH = "${SDK_LD_ARCH}" HOST_AS_ARCH = "${SDK_AS_ARCH}" #assign DPKG_ARCH -DPKG_ARCH = "${SDK_ARCH}" +DPKG_ARCH = "${@debian_arch_map(d.getVar('SDK_ARCH', True), '')}" CPPFLAGS = "${BUILDSDK_CPPFLAGS}" CFLAGS = "${BUILDSDK_CFLAGS}"
meta/classes/package_deb.bbclass +25 -10
@@ -6,7 +6,7 @@ inherit package IMAGE_PKGTYPE ?= "deb" -DPKG_ARCH ?= "${TARGET_ARCH}" +DPKG_ARCH ?= "${@debian_arch_map(d.getVar('TARGET_ARCH', True), d.getVar('TUNE_FEATURES', True))}" PKGWRITEDIRDEB = "${WORKDIR}/deploy-debs"
@@ -14,6 +14,28 @@ APTCONF_TARGET = "${WORKDIR}" APT_ARGS = "${@['', '--no-install-recommends'][d.getVar("NO_RECOMMENDATIONS", True) == "1"]}" +def debian_arch_map(arch, tune): + tune_features = tune.split() + if arch in ["i586", "i686"]: + return "i386" + if arch == "x86_64": + if "mx32" in tune_features: + return "x32" + return "amd64" + if arch.startswith("mips"): + endian = ["el", ""]["bigendian" in tune_features] + if "n64" in tune_features: + return "mips64" + endian + if "n32" in tune_features: + return "mipsn32" + endian + return "mips" + endian + if arch == "powerpc": + return arch + ["", "spe"]["spe" in tune_features] + if arch == "aarch64": + return "arm64" + if arch == "arm": + return arch + ["el", "hf"]["callconvention-hard" in tune_features] + return arch # # install a bunch of packages using apt # the following shell variables needs to be set before calling this func:
@@ -288,6 +310,8 @@ python do_package_deb () { cleanupcontrol(root) bb.utils.unlockfile(lf) } +# Indirect references to these vars +do_package_write_deb[vardeps] += "PKGV PKGR PKGV DESCRIPTION SECTION PRIORITY MAINTAINER DPKG_ARCH PN HOMEPAGE" # Otherwise allarch packages may change depending on override configuration do_package_deb[vardepsexclude] = "OVERRIDES"
@@ -311,15 +335,6 @@ python () { deps = ' dpkg-native:do_populate_sysroot virtual/fakeroot-native:do_populate_sysroot' d.appendVarFlag('do_package_write_deb', 'depends', deps) d.setVarFlag('do_package_write_deb', 'fakeroot', "1") - - # Map TARGET_ARCH to Debian's ideas about architectures - darch = d.getVar('DPKG_ARCH', True) - if darch in ["x86", "i486", "i586", "i686", "pentium"]: - d.setVar('DPKG_ARCH', 'i386') - elif darch == "x86_64": - d.setVar('DPKG_ARCH', 'amd64') - elif darch == "arm": - d.setVar('DPKG_ARCH', 'armel') } python do_package_write_deb () {
Signature · 1 line
2.5.0
PATCH 2/2 package_manager.py: fixes for multilib deb packaging builds
In reply to Matt Madison* tmp/deploy/deb subdirectories do not get hyphens replaced with underscores, so don't do that translation when building the sources list.
* Fix MULTILIB_VARIANTS handling to be more general and work for all architectures
* Also include a fix for a warning generated by apt due to missing apt/preferences.d directory.
--- meta/lib/oe/package_manager.py | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-)
meta/lib/oe/package_manager.py +11 -6
@@ -247,7 +247,7 @@ class DpkgIndexer(Indexer): if a not in pkg_archs: arch_list.append(a) - all_mlb_pkg_arch_list = (self.d.getVar('ALL_MULTILIB_PACKAGE_ARCHS', True) or "").replace('-', '_').split() + all_mlb_pkg_arch_list = (self.d.getVar('ALL_MULTILIB_PACKAGE_ARCHS', True) or "").split() arch_list.extend(arch for arch in all_mlb_pkg_arch_list if arch not in arch_list) apt_ftparchive = bb.utils.which(os.getenv('PATH'), "apt-ftparchive")
@@ -1712,7 +1712,7 @@ class DpkgPM(PackageManager): self.apt_args = d.getVar("APT_ARGS", True) self.all_arch_list = archs.split() - all_mlb_pkg_arch_list = (self.d.getVar('ALL_MULTILIB_PACKAGE_ARCHS', True) or "").replace('-', '_').split() + all_mlb_pkg_arch_list = (self.d.getVar('ALL_MULTILIB_PACKAGE_ARCHS', True) or "").split() self.all_arch_list.extend(arch for arch in all_mlb_pkg_arch_list if arch not in self.all_arch_list) self._create_configs(archs, base_archs)
@@ -1897,6 +1897,7 @@ class DpkgPM(PackageManager): bb.utils.mkdirhier(self.apt_conf_dir) bb.utils.mkdirhier(self.apt_conf_dir + "/lists/partial/") bb.utils.mkdirhier(self.apt_conf_dir + "/apt.conf.d/") + bb.utils.mkdirhier(self.apt_conf_dir + "/preferences.d/") arch_list = [] for arch in self.all_arch_list:
@@ -1931,10 +1932,14 @@ class DpkgPM(PackageManager): base_arch_list = base_archs.split() multilib_variants = self.d.getVar("MULTILIB_VARIANTS", True); for variant in multilib_variants.split(): - if variant == "lib32": - base_arch_list.append("i386") - elif variant == "lib64": - base_arch_list.append("amd64") + localdata = bb.data.createCopy(self.d) + variant_tune = localdata.getVar("DEFAULTTUNE_virtclass-multilib-" + variant, False) + orig_arch = localdata.getVar("DPKG_ARCH", True) + localdata.setVar("DEFAULTTUNE", variant_tune) + bb.data.update_data(localdata) + variant_arch = localdata.getVar("DPKG_ARCH", True) + if variant_arch not in base_arch_list: + base_arch_list.append(variant_arch) with open(self.apt_conf_file, "w+") as apt_conf: with open(self.d.expand("${STAGING_ETCDIR_NATIVE}/apt/apt.conf.sample")) as apt_conf_sample:
Signature · 1 line
2.5.0
Hi Matt,
I'm starting to look at your patches, in what arches/combinations you test the patches?
Kind regards,
alimon
Quoted 19 lines · Matt Madison
I ran into sevearl issues while trying to build an ARM multilib rootfs using Debian packaging. After several go-rounds, it looked like the cleanest solution was to tweak how
DPKG_ARCHgets constructed and to have the DpkgPM class inoe/package_manager.pyuse that variable to locate multilib variants (similar to RpmPM). I also took the liberty of expanding the Debian architecture mappings so the names align better with what's documented on the Debian wiki, for those cases where a direct mapping is possible.Matt Madison (2):
package_deb.bbclass, cross-canadian.bbclass:DPKG_ARCHmapping
function
package_manager.py: fixes for multilib deb packaging buildsmeta/classes/cross-canadian.bbclass | 2 +- meta/classes/package_deb.bbclass | 35 +++++++++++++++++++++++++---------- meta/lib/oe/package_manager.py | 17 +++++++++++------ 3 files changed, 37 insertions(+), 17 deletions(-)
[Resending as I forgot to cc the list]
Quoted 4 lines · Aníbal Limón
Hi Matt,
I'm starting to look at your patches, in what arches/combinations you test the patches?
I've been working on a BSP layer for the jetson-tx1, which is aarch64/armv7a-hf, so that's what I've been testing with. The BSP defs are in https://github.com/madisongh/meta-tegra.
Thanks,
-Matt
Quoted 25 lines
Kind regards,
alimonQuoted 19 lines · Matt Madison
I ran into sevearl issues while trying to build an ARM multilib rootfs using Debian packaging. After several go-rounds, it looked like the cleanest solution was to tweak how
DPKG_ARCHgets constructed and to have the DpkgPM class inoe/package_manager.pyuse that variable to locate multilib variants (similar to RpmPM). I also took the liberty of expanding the Debian architecture mappings so the names align better with what's documented on the Debian wiki, for those cases where a direct mapping is possible.Matt Madison (2):
package_deb.bbclass, cross-canadian.bbclass:DPKG_ARCHmapping
function
package_manager.py: fixes for multilib deb packaging buildsmeta/classes/cross-canadian.bbclass | 2 +- meta/classes/package_deb.bbclass | 35 +++++++++++++++++++++++++---------- meta/lib/oe/package_manager.py | 17 +++++++++++------ 3 files changed, 37 insertions(+), 17 deletions(-)
A message that is not in the archive (sent off-list or not yet received): CAGgRHJqibg_vCYzFp_nQktE4kEcMYe1SMWrz=UH0Up0Q2vuXmg@mail.gmail.com
Hi Matt,
Trying to build core-image-sato with qemux86-64 and multilib enabled an errors appear (see attached log), next the config.
MACHINE ??= "qemux86-64"
IMAGE_INSTALL_append = " lib32-connman"
require conf/multilib.conf
MULTILIBS = "multilib:lib32" DEFAULTTUNE_virtclass-multilib-lib32 = "x86" PACKAGE_CLASSES ?= "package_deb" EXTRA_IMAGE_FEATURES = "debug-tweaks package-management"
Kind regards,
alimon
Quoted 7 lines · Matt Madison
Quoted 4 lines · Aníbal Limón
Hi Matt,
I'm starting to look at your patches, in what arches/combinations you test the patches?
Quoted 33 lines
I've been working on a BSP layer for the jetson-tx1, which is aarch64/armv7a-hf, so that's what I've been testing with. The BSP defs are in https://github.com/madisongh/meta-tegra.
Thanks,
-MattQuoted 25 lines
Kind regards,
alimonQuoted 19 lines · Matt Madison
I ran into sevearl issues while trying to build an ARM multilib rootfs using Debian packaging. After several go-rounds, it looked like the cleanest solution was to tweak how
DPKG_ARCHgets constructed and to have the DpkgPM class inoe/package_manager.pyuse that variable to locate multilib variants (similar to RpmPM). I also took the liberty of expanding the Debian architecture mappings so the names align better with what's documented on the Debian wiki, for those cases where a direct mapping is possible.Matt Madison (2):
package_deb.bbclass, cross-canadian.bbclass:DPKG_ARCHmapping
function
package_manager.py: fixes for multilib deb packaging buildsmeta/classes/cross-canadian.bbclass | 2 +- meta/classes/package_deb.bbclass | 35 +++++++++++++++++++++++++---------- meta/lib/oe/package_manager.py | 17 +++++++++++------ 3 files changed, 37 insertions(+), 17 deletions(-)
DEBUG: Executing python function rootfs_deb_bad_recommendations
DEBUG: Python function rootfs_deb_bad_recommendations finished
DEBUG: Executing python function rootfs_process_ignore
DEBUG: Python function rootfs_process_ignore finished
DEBUG: Executing python function rootfs_runtime_mapping
DEBUG: Python function rootfs_runtime_mapping finished
DEBUG: Executing python function do_rootfs
NOTE: ###### Generate rootfs #######
NOTE: Executing 'cd /home/alimon/repos/poky/build-x86-64_multilib/tmp/deploy/deb/qemux86_64; PSEUDO_UNLOAD=1 /home/alimon/repos/poky/build-x86-64_multilib/tmp/sysroots/x86_64-linux/usr/bin/apt-ftparchive packages . > Packages;/home/alimon/repos/poky/build-x86-64_multilib/tmp/sysroots/x86_64-linux/usr/bin/pigz-native/gzip -fc Packages > Packages.gz;PSEUDO_UNLOAD=1 /home/alimon/repos/poky/build-x86-64_multilib/tmp/sysroots/x86_64-linux/usr/bin/apt-ftparchive release . >> Release' ...
NOTE: Executing 'cd /home/alimon/repos/poky/build-x86-64_multilib/tmp/deploy/deb/all; PSEUDO_UNLOAD=1 /home/alimon/repos/poky/build-x86-64_multilib/tmp/sysroots/x86_64-linux/usr/bin/apt-ftparchive packages . > Packages;/home/alimon/repos/poky/build-x86-64_multilib/tmp/sysroots/x86_64-linux/usr/bin/pigz-native/gzip -fc Packages > Packages.gz;PSEUDO_UNLOAD=1 /home/alimon/repos/poky/build-x86-64_multilib/tmp/sysroots/x86_64-linux/usr/bin/apt-ftparchive release . >> Release' ...
NOTE: Executing 'cd /home/alimon/repos/poky/build-x86-64_multilib/tmp/deploy/deb/core2-64; PSEUDO_UNLOAD=1 /home/alimon/repos/poky/build-x86-64_multilib/tmp/sysroots/x86_64-linux/usr/bin/apt-ftparchive packages . > Packages;/home/alimon/repos/poky/build-x86-64_multilib/tmp/sysroots/x86_64-linux/usr/bin/pigz-native/gzip -fc Packages > Packages.gz;PSEUDO_UNLOAD=1 /home/alimon/repos/poky/build-x86-64_multilib/tmp/sysroots/x86_64-linux/usr/bin/apt-ftparchive release . >> Release' ...
NOTE: Executing 'cd /home/alimon/repos/poky/build-x86-64_multilib/tmp/deploy/deb/x86; PSEUDO_UNLOAD=1 /home/alimon/repos/poky/build-x86-64_multilib/tmp/sysroots/x86_64-linux/usr/bin/apt-ftparchive packages . > Packages;/home/alimon/repos/poky/build-x86-64_multilib/tmp/sysroots/x86_64-linux/usr/bin/pigz-native/gzip -fc Packages > Packages.gz;PSEUDO_UNLOAD=1 /home/alimon/repos/poky/build-x86-64_multilib/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: packagegroup-core-ssh-dropbear packagegroup-core-x11-sato-games packagegroup-core-x11-base packagegroup-core-boot psplash apt lib32-connman packagegroup-base-extended packagegroup-core-x11-sato dpkg
NOTE: Installing complementary packages ...
NOTE: Running ['/home/alimon/repos/poky/scripts/oe-pkgdata-util', '-p', '/home/alimon/repos/poky/build-x86-64_multilib/tmp/sysroots/qemux86-64/pkgdata', 'glob', '/home/alimon/repos/poky/build-x86-64_multilib/tmp/work/qemux86_64-poky-linux/core-image-sato/1.0-r0/installed_pkgs.txt', ' *-locale-en *-locale-en-gb *-locale-en-us']
NOTE: Installing the following packages: gstreamer1.0-plugins-bad-locale-en-gb gconf-locale-en-gb avahi-locale-en-gb gstreamer1.0-plugins-base-locale-en-gb gstreamer1.0-locale-en-gb vte-locale-en-gb libfm-locale-en-gb xkeyboard-config-locale-en-gb pcmanfm-locale-en-gb libsoup-2.4-locale-en-gb gtk+-locale-en-gb libexif-locale-en-gb glibc-locale-en-gb gstreamer1.0-plugins-good-locale-en-gb glib-networking-locale-en-gb libgdk-pixbuf-2.0-locale-en-gb lib32-glibc-locale-en-gb libatk-1.0-locale-en-gb lib32-libglib-2.0-locale-en-gb libglib-2.0-locale-en-gb
NOTE: Unable to install packages. Command '/home/alimon/repos/poky/build-x86-64_multilib/tmp/sysroots/x86_64-linux/usr/bin/apt-get install --force-yes --allow-unauthenticated gstreamer1.0-plugins-bad-locale-en-gb gconf-locale-en-gb avahi-locale-en-gb gstreamer1.0-plugins-base-locale-en-gb gstreamer1.0-locale-en-gb vte-locale-en-gb libfm-locale-en-gb xkeyboard-config-locale-en-gb pcmanfm-locale-en-gb libsoup-2.4-locale-en-gb gtk+-locale-en-gb libexif-locale-en-gb glibc-locale-en-gb gstreamer1.0-plugins-good-locale-en-gb glib-networking-locale-en-gb libgdk-pixbuf-2.0-locale-en-gb lib32-glibc-locale-en-gb libatk-1.0-locale-en-gb lib32-libglib-2.0-locale-en-gb libglib-2.0-locale-en-gb' returned 100:
Reading package lists...
Building dependency tree...
Reading state information...
You might want to run 'apt-get -f install' to correct these:
The following packages have unmet dependencies:
alsa-state : Depends: initscripts-functions but it is not going to be installed
avahi-daemon : Depends: base-files but it is not going to be installed
Depends: shadow but it is not going to be installed
bash : Depends: update-alternatives-opkg but it is not going to be installed
Depends: base-files but it is not going to be installed
binutils : Depends: update-alternatives-opkg but it is not going to be installed
busybox : Depends: update-alternatives-opkg but it is not going to be installed
busybox-syslog : Depends: update-alternatives-opkg but it is not going to be installed
connman : Depends: ofono but it is not going to be installed
Depends: wpa-supplicant but it is not going to be installed
Recommends: connman-conf but it is not going to be installed
consolekit : Depends: base-files but it is not going to be installed
dbus-1 : Depends: base-files but it is not going to be installed
Depends: shadow but it is not going to be installed
Depends: initscripts-functions but it is not going to be installed
debianutils : Depends: update-alternatives-opkg but it is not going to be installed
debianutils-run-parts : Depends: update-alternatives-opkg but it is not going to be installed
distcc : Depends: base-files but it is not going to be installed
Depends: shadow but it is not going to be installed
Depends: initscripts-functions but it is not going to be installed
dpkg : Depends: update-alternatives-opkg but it is not going to be installed
dropbear : Depends: update-alternatives-opkg but it is not going to be installed
initscripts : Depends: initscripts-functions but it is not going to be installed
kmod : Depends: update-alternatives-opkg but it is not going to be installed
libgtk-2.0 : Depends: update-alternatives-opkg but it is not going to be installed
matchbox-session : Depends: update-alternatives-opkg but it is not going to be installed
mini-x-session : Depends: update-alternatives-opkg but it is not going to be installed
nfs-utils : Depends: initscripts-functions but it is not going to be installed
nfs-utils-client : Depends: base-files but it is not going to be installed
Depends: shadow but it is not going to be installed
Depends: initscripts-functions but it is not going to be installed
oprofileui-server : Depends: initscripts-functions but it is not going to be installed
packagegroup-core-boot : Depends: base-files but it is not going to be installed
Depends: update-alternatives-opkg but it is not going to be installed
psplash-default : Depends: update-alternatives-opkg but it is not going to be installed
pulseaudio-server : Depends: base-files but it is not going to be installed
Depends: shadow but it is not going to be installed
rpcbind : Depends: base-files but it is not going to be installed
Depends: shadow but it is not going to be installed
Depends: initscripts-functions but it is not going to be installed
sysvinit : Depends: update-alternatives-opkg but it is not going to be installed
Depends: initscripts-functions but it is not going to be installed
sysvinit-pidof : Depends: update-alternatives-opkg but it is not going to be installed
E: Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a solution).
NOTE: Executing postinstall for package: libxkbfile1 ...
NOTE: Executing postinstall for package: libxi6 ...
NOTE: Executing postinstall for package: lib32-libdbus-1-3 ...
NOTE: Executing postinstall for package: libncurses5 ...
NOTE: Executing postinstall for package: lib32-libnl-3-200 ...
NOTE: Executing postinstall for package: sysvinit-pidof ...
NOTE: Executing postinstall for package: lib32-iptables ...
NOTE: Executing postinstall for package: libgsturidownloader-1.0-0 ...
NOTE: Executing postinstall for package: libcairo2 ...
NOTE: Executing postinstall for package: libnss-mdns ...
NOTE: Executing postinstall for package: libtinfo5 ...
NOTE: Executing postinstall for package: libfontconfig1 ...
NOTE: Executing postinstall for package: libgdk-pixbuf-2.0-loader-gif ...
NOTE: Executing postinstall for package: libxinerama1 ...
NOTE: Executing postinstall for package: libxcb-dri2-0 ...
NOTE: Executing postinstall for package: libsm6 ...
NOTE: Executing postinstall for package: libpopt0 ...
NOTE: Executing preinstall for package: v86d ...
NOTE: Executing postinstall for package: v86d ...
NOTE: Executing postinstall for package: kmod ...
NOTE: Executing postinstall for package: libdaemon0 ...
NOTE: Executing postinstall for package: libgstaudio-1.0-0 ...
NOTE: Executing postinstall for package: libxcb-glx0 ...
NOTE: Executing preinstall for package: busybox-hwclock ...
NOTE: Executing postinstall for package: busybox-hwclock ...
NOTE: Executing postinstall for package: libexpat1 ...
NOTE: Executing preinstall for package: dropbear ...
NOTE: Executing postinstall for package: dropbear ...
NOTE: Executing postinstall for package: lib32-libxdmcp6 ...
NOTE: Executing postinstall for package: libgdk-pixbuf-2.0-loader-xpm ...
NOTE: Executing postinstall for package: libgstriff-1.0-0 ...
NOTE: Executing postinstall for package: liblzma5 ...
NOTE: Executing postinstall for package: libxcb-xfixes0 ...
NOTE: Executing postinstall for package: libgtk-2.0 ...
NOTE: Executing postinstall for package: libxcb-render0 ...
NOTE: Executing postinstall for package: liberation-fonts ...
NOTE: Executing postinstall for package: libxcalibrate0 ...
NOTE: Executing postinstall for package: libgstadaptivedemux-1.0-0 ...
NOTE: Executing preinstall for package: xserver-nodm-init ...
NOTE: Executing postinstall for package: xserver-nodm-init ...
NOTE: Executing postinstall for package: kernel-4.1.13-yocto-standard ...
NOTE: Executing postinstall for package: libxdamage1 ...
NOTE: Executing postinstall for package: kernel-module-nf-defrag-ipv4 ...
NOTE: Executing postinstall for package: libgstbasecamerabinsrc-1.0-0 ...
NOTE: Executing postinstall for package: libssl1.0.0 ...
NOTE: Executing postinstall for package: libnl-3-genl ...
NOTE: Executing preinstall for package: base-passwd ...
NOTE: Executing postinstall for package: gconf ...
NOTE: Executing postinstall for package: libgstbadvideo-1.0-0 ...
NOTE: Executing postinstall for package: libgstvideo-1.0-0 ...
NOTE: Executing postinstall for package: libxext6 ...
NOTE: Executing postinstall for package: libgsttag-1.0-0 ...
NOTE: Executing postinstall for package: debianutils ...
NOTE: Executing postinstall for package: libxfixes3 ...
NOTE: Executing preinstall for package: pulseaudio-server ...
NOTE: Executing postinstall for package: pulseaudio-server ...
NOTE: Executing postinstall for package: connman-gnome ...
NOTE: Executing postinstall for package: kernel-module-nls-utf8 ...
NOTE: Executing postinstall for package: libgstfft-1.0-0 ...
NOTE: Executing postinstall for package: mtdev ...
NOTE: Executing postinstall for package: libformw5 ...
NOTE: Executing postinstall for package: lib32-libgnutls28 ...
NOTE: Executing postinstall for package: lib32-libffi6 ...
NOTE: Executing postinstall for package: libpng16-16 ...
NOTE: Executing postinstall for package: libncursesw5 ...
NOTE: Executing postinstall for package: bash ...
NOTE: Executing postinstall for package: libmenu-cache3 ...
NOTE: Executing postinstall for package: pango ...
NOTE: Executing postinstall for package: libuuid1 ...
NOTE: Executing postinstall for package: busybox ...
NOTE: Executing postinstall for package: librsvg-2-2 ...
NOTE: Executing postinstall for package: kernel-module-nf-conntrack-ipv4 ...
NOTE: Executing postinstall for package: kernel-module-snd-rawmidi ...
NOTE: Executing postinstall for package: mini-x-session ...
NOTE: Executing postinstall for package: libcroco ...
NOTE: Executing preinstall for package: oprofileui-server ...
NOTE: Executing postinstall for package: oprofileui-server ...
NOTE: Executing postinstall for package: libxxf86misc1 ...
NOTE: Executing postinstall for package: libdbus-glib-1-2 ...
NOTE: Executing postinstall for package: libnl-nf-3-200 ...
NOTE: Executing postinstall for package: initscripts-functions ...
NOTE: Executing postinstall for package: libstartup-notification-1-0 ...
NOTE: Executing postinstall for package: libgstapp-1.0-0 ...
NOTE: Executing postinstall for package: libjpeg9 ...
NOTE: Executing postinstall for package: kernel-module-rfcomm ...
NOTE: Executing postinstall for package: libgstplayer-0.0-0 ...
NOTE: Executing postinstall for package: psplash-default ...
NOTE: Executing preinstall for package: udev-cache ...
NOTE: Executing postinstall for package: udev-cache ...
NOTE: Executing postinstall for package: libatk-1.0-0 ...
NOTE: Executing preinstall for package: psplash ...
NOTE: Executing postinstall for package: psplash ...
NOTE: Executing preinstall for package: lib32-base-passwd ...
NOTE: Executing postinstall for package: libcap2 ...
NOTE: Executing postinstall for package: matchbox-session-sato ...
NOTE: Executing postinstall for package: libcairo-gobject2 ...
NOTE: Executing postinstall for package: libcurl4 ...
NOTE: Executing postinstall for package: libgbm1 ...
NOTE: Executing preinstall for package: lib32-dbus-1 ...
NOTE: Executing postinstall for package: lib32-dbus-1 ...
NOTE: Executing postinstall for package: libgstinsertbin-1.0-0 ...
NOTE: Executing preinstall for package: dbus-1 ...
NOTE: Executing postinstall for package: dbus-1 ...
NOTE: Executing postinstall for package: libtag1 ...
NOTE: Executing postinstall for package: libx11-6 ...
NOTE: Executing postinstall for package: libflac8 ...
NOTE: Executing postinstall for package: libc6 ...
NOTE: Executing preinstall for package: run-postinsts ...
NOTE: Executing postinstall for package: run-postinsts ...
NOTE: Executing postinstall for package: lib32-libcap2 ...
NOTE: Executing postinstall for package: libnl-route-3-200 ...
NOTE: Executing postinstall for package: sato-icon-theme ...
NOTE: Executing postinstall for package: libnl-3-cli ...
NOTE: Executing postinstall for package: libsysfs2 ...
NOTE: Executing postinstall for package: shadow-base ...
NOTE: Executing postinstall for package: libxcb-util1 ...
NOTE: Executing postinstall for package: lib32-libudev0 ...
NOTE: Executing postinstall for package: lib32-libnl-3-cli ...
NOTE: Executing postinstall for package: libspeex1 ...
NOTE: Executing postinstall for package: libglib-2.0-0 ...
NOTE: Executing postinstall for package: libbz2-0 ...
NOTE: Executing postinstall for package: libgstcodecparsers-1.0-0 ...
NOTE: Executing postinstall for package: libegl-mesa ...
NOTE: Executing postinstall for package: lib32-libxau6 ...
NOTE: Executing postinstall for package: nettle ...
NOTE: Executing postinstall for package: lib32-libc6 ...
NOTE: Executing postinstall for package: libkmod2 ...
NOTE: Executing postinstall for package: libpulse0 ...
NOTE: Executing postinstall for package: libxmuu1 ...
NOTE: Executing postinstall for package: libxml2 ...
NOTE: Executing postinstall for package: libgstallocators-1.0-0 ...
NOTE: Executing postinstall for package: libblkid1 ...
NOTE: Executing postinstall for package: libxfont1 ...
NOTE: Executing preinstall for package: busybox-syslog ...
NOTE: Executing postinstall for package: busybox-syslog ...
NOTE: Executing postinstall for package: libfreetype6 ...
NOTE: Executing postinstall for package: libxtst6 ...
NOTE: Executing postinstall for package: libasound2 ...
NOTE: Executing postinstall for package: libdrm2 ...
NOTE: Executing postinstall for package: libfm ...
NOTE: Executing postinstall for package: libsoup-2.4 ...
NOTE: Executing postinstall for package: kernel-module-x-tables ...
NOTE: Executing postinstall for package: settings-daemon ...
NOTE: Executing postinstall for package: libgpg-error0 ...
NOTE: Executing preinstall for package: modutils-initscripts ...
NOTE: Executing postinstall for package: modutils-initscripts ...
NOTE: Executing preinstall for package: avahi-daemon ...
NOTE: Executing postinstall for package: avahi-daemon ...
NOTE: Executing postinstall for package: libogg0 ...
NOTE: Executing postinstall for package: libowl0 ...
NOTE: Executing postinstall for package: kernel-module-iptable-filter ...
NOTE: Executing postinstall for package: libevdev ...
NOTE: Executing postinstall for package: libfm-extra4 ...
NOTE: Executing postinstall for package: libsndfile1 ...
NOTE: Executing postinstall for package: kernel-module-nf-conntrack ...
NOTE: Executing postinstall for package: lib32-libtinfo5 ...
NOTE: Executing postinstall for package: lib32-libgpg-error0 ...
NOTE: Executing preinstall for package: base-files ...
NOTE: Executing postinstall for package: libdrm-intel1 ...
NOTE: Executing preinstall for package: distcc ...
NOTE: Executing postinstall for package: distcc ...
NOTE: Executing preinstall for package: ofono ...
NOTE: Executing postinstall for package: ofono ...
NOTE: Executing postinstall for package: libx11-xcb1 ...
NOTE: Executing postinstall for package: libgmp10 ...
NOTE: Executing postinstall for package: libpixman-1-0 ...
NOTE: Executing postinstall for package: libgstrtp-1.0-0 ...
NOTE: Executing postinstall for package: libvorbisidec1 ...
NOTE: Executing postinstall for package: libxcursor1 ...
NOTE: Executing postinstall for package: lib32-libxcb1 ...
NOTE: Executing postinstall for package: libgdk-pixbuf-2.0-0 ...
NOTE: Executing postinstall for package: libvorbis ...
NOTE: Executing postinstall for package: lib32-libgmp10 ...
NOTE: Executing postinstall for package: libusb-1.0-0 ...
NOTE: Executing postinstall for package: wpa-supplicant ...
NOTE: Executing postinstall for package: sysvinit-inittab ...
NOTE: Executing postinstall for package: libxxf86dga1 ...
NOTE: Executing postinstall for package: libgstsdp-1.0-0 ...
NOTE: Executing postinstall for package: libgstmpegts-1.0-0 ...
NOTE: Executing postinstall for package: wayland ...
NOTE: Executing postinstall for package: sysvinit ...
NOTE: Executing preinstall for package: udev ...
NOTE: Executing postinstall for package: udev ...
NOTE: Executing postinstall for package: iptables ...
NOTE: Executing postinstall for package: lib32-nettle ...
NOTE: Executing postinstall for package: libtirpc1 ...
NOTE: Executing postinstall for package: util-linux-sulogin ...
NOTE: Executing postinstall for package: libsdl-1.2-0 ...
NOTE: Executing postinstall for package: libgdk-pixbuf-2.0-loader-jpeg ...
NOTE: Executing postinstall for package: libevent ...
NOTE: Executing preinstall for package: bluez5 ...
NOTE: Executing postinstall for package: bluez5 ...
NOTE: Executing postinstall for package: debianutils-run-parts ...
NOTE: Executing postinstall for package: libltdl7 ...
NOTE: Executing postinstall for package: kernel-module-nfsd ...
NOTE: Executing postinstall for package: lib32-libnl-nf-3-200 ...
NOTE: Executing preinstall for package: lib32-connman ...
NOTE: Executing postinstall for package: lib32-connman ...
NOTE: Executing postinstall for package: libgnutls28 ...
NOTE: Executing postinstall for package: libgstbadbase-1.0-0 ...
NOTE: Executing postinstall for package: gstreamer1.0 ...
NOTE: Executing postinstall for package: shadow ...
NOTE: Executing postinstall for package: consolekit ...
NOTE: Executing postinstall for package: libsqlite3-0 ...
NOTE: Executing postinstall for package: lib32-libglib-2.0-0 ...
NOTE: Executing postinstall for package: libice6 ...
NOTE: Executing postinstall for package: libfontenc1 ...
NOTE: Executing postinstall for package: libnfsidmap0 ...
NOTE: Executing postinstall for package: libfakekey0 ...
NOTE: Executing postinstall for package: libxcomposite1 ...
NOTE: Executing postinstall for package: libudev0 ...
NOTE: Executing postinstall for package: libpulsecore ...
NOTE: Executing postinstall for package: apt ...
NOTE: Executing postinstall for package: libxcb-shm0 ...
NOTE: Executing preinstall for package: connman ...
NOTE: Executing postinstall for package: connman ...
NOTE: Executing postinstall for package: libpciaccess0 ...
NOTE: Executing postinstall for package: libxcb-shape0 ...
NOTE: Executing postinstall for package: libxrender1 ...
NOTE: Executing postinstall for package: libgstphotography-1.0-0 ...
NOTE: Executing postinstall for package: sbc ...
NOTE: Executing postinstall for package: libxv1 ...
NOTE: Executing postinstall for package: libmb1 ...
NOTE: Executing postinstall for package: libgudev-1.0-0 ...
NOTE: Executing postinstall for package: libavahi-client3 ...
NOTE: Executing postinstall for package: libpanelw5 ...
NOTE: Executing postinstall for package: libgstwayland-1.0-0 ...
NOTE: Executing postinstall for package: matchbox-session ...
NOTE: Executing postinstall for package: libstdc++6 ...
NOTE: Executing postinstall for package: binutils ...
NOTE: Executing postinstall for package: lib32-libreadline6 ...
NOTE: Executing postinstall for package: libffi6 ...
NOTE: Executing postinstall for package: lib32-libgcrypt ...
NOTE: Executing postinstall for package: libgstpbutils-1.0-0 ...
NOTE: Executing postinstall for package: libavahi-common3 ...
NOTE: Executing postinstall for package: libdrm-radeon1 ...
NOTE: Executing postinstall for package: libdmx1 ...
NOTE: Executing postinstall for package: liborc-0.4-0 ...
NOTE: Executing postinstall for package: libavahi-glib1 ...
NOTE: Executing postinstall for package: libmenuw5 ...
NOTE: Executing postinstall for package: kernel-module-uvesafb ...
NOTE: Executing postinstall for package: libxdmcp6 ...
NOTE: Executing postinstall for package: libmount1 ...
NOTE: Executing postinstall for package: libxxf86vm1 ...
NOTE: Executing postinstall for package: libneon27 ...
NOTE: Executing postinstall for package: libgdk-pixbuf-2.0-loader-png ...
NOTE: Executing postinstall for package: lib32-libnl-3-genl ...
NOTE: Executing postinstall for package: libdrm-nouveau2 ...
NOTE: Executing postinstall for package: libgcrypt ...
NOTE: Executing postinstall for package: libxft2 ...
NOTE: Executing postinstall for package: libxsettings-client0 ...
NOTE: Executing postinstall for package: libnl-3-200 ...
NOTE: Executing postinstall for package: kernel-module-snd-ens1370 ...
NOTE: Executing postinstall for package: matchbox-keyboard-im ...
NOTE: Executing postinstall for package: kernel-module-hidp ...
NOTE: Executing postinstall for package: initscripts ...
NOTE: Executing preinstall for package: lib32-bluez5 ...
NOTE: Executing postinstall for package: lib32-bluez5 ...
NOTE: Executing postinstall for package: libgl-mesa ...
NOTE: Executing preinstall for package: nfs-utils ...
NOTE: Executing postinstall for package: nfs-utils ...
NOTE: Executing postinstall for package: ca-certificates ...
NOTE: Executing postinstall for package: libvte9 ...
NOTE: Executing postinstall for package: lib32-libz1 ...
NOTE: Executing postinstall for package: libharfbuzz0 ...
NOTE: Executing postinstall for package: lib32-libexpat1 ...
NOTE: Executing preinstall for package: init-ifupdown ...
NOTE: Executing postinstall for package: init-ifupdown ...
NOTE: Executing postinstall for package: liborc-test-0.4-0 ...
NOTE: Executing postinstall for package: libgles2-mesa ...
NOTE: Executing postinstall for package: libexif12 ...
NOTE: Executing postinstall for package: lib32-libnl-route-3-200 ...
NOTE: Executing postinstall for package: libxcb1 ...
NOTE: Executing preinstall for package: alsa-state ...
NOTE: Executing postinstall for package: alsa-state ...
NOTE: Executing preinstall for package: nfs-utils-client ...
NOTE: Executing postinstall for package: nfs-utils-client ...
NOTE: Executing postinstall for package: libtheora ...
NOTE: Executing postinstall for package: kernel-module-bnep ...
NOTE: Executing postinstall for package: libwayland-egl1 ...
NOTE: Executing postinstall for package: libspeexdsp1 ...
NOTE: Executing postinstall for package: libxau6 ...
NOTE: Executing postinstall for package: libgstrtsp-1.0-0 ...
NOTE: Executing postinstall for package: libcrypto1.0.0 ...
NOTE: Executing postinstall for package: libxrandr2 ...
NOTE: Executing postinstall for package: libdbus-1-3 ...
NOTE: Executing postinstall for package: lib32-libx11-6 ...
NOTE: Executing postinstall for package: libgcc1 ...
NOTE: Executing postinstall for package: libreadline6 ...
NOTE: Executing postinstall for package: libgstgl-1.0-0 ...
NOTE: Executing postinstall for package: libperl5 ...
NOTE: Executing postinstall for package: libjson-c2 ...
NOTE: Executing postinstall for package: libwrap0 ...
NOTE: Executing postinstall for package: kernel-module-ip-tables ...
NOTE: Executing preinstall for package: rpcbind ...
NOTE: Executing postinstall for package: rpcbind ...
NOTE: Executing postinstall for package: kernel-module-nf-nat ...
NOTE: Executing postinstall for package: shutdown-desktop ...
NOTE: Executing postinstall for package: libproxy ...
NOTE: Executing postinstall for package: libz1 ...
NOTE: Executing postinstall for package: adwaita-icon-theme ...
NOTE: Executing postinstall for package: libglapi0 ...
NOTE: Executing postinstall for package: libavahi-core7 ...
NOTE: Running intercept scripts:
NOTE: > Executing update_pixbuf_cache intercept ...
NOTE: > Executing update_font_cache intercept ...
FC_DEBUG=1
[/home/alimon/repos/poky/build-x86-64_multilib/tmp/work/qemux86_64-poky-linux/core-image-sato/1.0-r0/rootfs]/usr/share/fonts: skipping, existing cache is valid: 0 fonts, 1 dirs [/home/alimon/repos/poky/build-x86-64_multilib/tmp/work/qemux86_64-poky-linux/core-image-sato/1.0-r0/rootfs]/usr/share/fonts/ttf: skipping, existing cache is valid: 12 fonts, 0 dirs [/home/alimon/repos/poky/build-x86-64_multilib/tmp/work/qemux86_64-poky-linux/core-image-sato/1.0-r0/rootfs]/home/alimon/.local/share/fonts: skipping, no such directory [/home/alimon/repos/poky/build-x86-64_multilib/tmp/work/qemux86_64-poky-linux/core-image-sato/1.0-r0/rootfs]/home/alimon/.fonts: skipping, no such directory Re-scanning [/home/alimon/repos/poky/build-x86-64_multilib/tmp/work/qemux86_64-poky-linux/core-image-sato/1.0-r0/rootfs]/usr/share/fonts: caching, new cache contents: 0 fonts, 1 dirs /home/alimon/repos/poky/build-x86-64_multilib/tmp/work/qemux86_64-poky-linux/core-image-sato/1.0-r0/rootfs//var/cache/fontconfig: cleaning cache directory /home/alimon/repos/poky/build-x86-64_multilib/tmp/work/qemux86_64-poky-linux/core-image-sato/1.0-r0/rootfs//home/alimon/.cache/fontconfig: not cleaning non-existent cache directory /home/alimon/repos/poky/build-x86-64_multilib/tmp/work/qemux86_64-poky-linux/core-image-sato/1.0-r0/rootfs//home/alimon/.fontconfig: not cleaning non-existent cache directory /home/alimon/repos/poky/build-x86-64_multilib/tmp/work/qemux86_64-poky-linux/core-image-sato/1.0-r0/rootfs/usr/bin/fc-cache: succeeded
NOTE: > Executing update_icon_cache intercept ...
NOTE: Executing write_package_manifest ...
DEBUG: Executing python function write_package_manifest
DEBUG: Python function write_package_manifest finished
NOTE: Executing write_deploy_manifest ...
DEBUG: Executing python function write_deploy_manifest
DEBUG: Python function write_deploy_manifest finished
NOTE: Executing license_create_manifest ...
DEBUG: Executing python function license_create_manifest
DEBUG: Python function license_create_manifest finished
NOTE: Executing ssh_allow_empty_password ...
DEBUG: Executing shell function ssh_allow_empty_password
DEBUG: Shell function ssh_allow_empty_password finished
NOTE: Executing postinst_enable_logging ...
DEBUG: Executing shell function postinst_enable_logging
DEBUG: Shell function postinst_enable_logging finished
NOTE: Executing rootfs_update_timestamp ...
DEBUG: Executing shell function rootfs_update_timestamp
DEBUG: Shell function rootfs_update_timestamp finished
NOTE: Executing empty_var_volatile ...
DEBUG: Executing shell function empty_var_volatile
DEBUG: Shell function empty_var_volatile finished
NOTE: Executing ssh_disable_dns_lookup ...
DEBUG: Executing shell function ssh_disable_dns_lookup
DEBUG: Shell function ssh_disable_dns_lookup finished
NOTE: Executing write_image_manifest ...
DEBUG: Executing python function write_image_manifest
DEBUG: Python function write_image_manifest finished
NOTE: Executing: ldconfig -r/home/alimon/repos/poky/build-x86-64_multilib/tmp/work/qemux86_64-poky-linux/core-image-sato/1.0-r0/rootfs-c new -v
WARNING: [log_check] In line: [E: Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a solution).
]
WARNING: [log_check] core-image-sato: found an error message in the logfile (keyword 'E:'):
[log_check] E: Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a solution).
ERROR:
E: Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a solution).
NOTE: Executing postinstall for package: libxkbfile1 ...
NOTE: Executing postinstall for package: libxi6 ...
NOTE: Executing postinstall for package: lib32-libdbus-1-3 ...
DEBUG: Python function do_rootfs finished
ERROR: Function failed: do_rootfs
Quoted 4 lines · Aníbal Limón
Hi Matt,
Trying to build core-image-sato with qemux86-64 and multilib enabled an errors appear (see attached log), next the config.
OK, yep, I can reproduce this. I'll investigate further.
Thanks,
-Matt
Quoted 55 lines
MACHINE ??= "qemux86-64"
IMAGE_INSTALL_append= " lib32-connman"
requireconf/multilib.conf
MULTILIBS = "multilib:lib32" DEFAULTTUNE_virtclass-multilib-lib32 = "x86"PACKAGE_CLASSES?= "package_deb"EXTRA_IMAGE_FEATURES= "debug-tweaks package-management"Kind regards,
alimonQuoted 40 lines · Matt Madison
Quoted 4 lines · Aníbal Limón
Hi Matt,
I'm starting to look at your patches, in what arches/combinations you test the patches?
I've been working on a BSP layer for the jetson-tx1, which is aarch64/armv7a-hf, so that's what I've been testing with. The BSP defs are in https://github.com/madisongh/meta-tegra.
Thanks,
-MattQuoted 25 lines
Kind regards,
alimonQuoted 19 lines · Matt Madison
I ran into sevearl issues while trying to build an ARM multilib rootfs using Debian packaging. After several go-rounds, it looked like the cleanest solution was to tweak how
DPKG_ARCHgets constructed and to have the DpkgPM class inoe/package_manager.pyuse that variable to locate multilib variants (similar to RpmPM). I also took the liberty of expanding the Debian architecture mappings so the names align better with what's documented on the Debian wiki, for those cases where a direct mapping is possible.Matt Madison (2):
package_deb.bbclass, cross-canadian.bbclass:DPKG_ARCHmapping
function
package_manager.py: fixes for multilib deb packaging buildsmeta/classes/cross-canadian.bbclass | 2 +- meta/classes/package_deb.bbclass | 35 +++++++++++++++++++++++++---------- meta/lib/oe/package_manager.py | 17 +++++++++++------ 3 files changed, 37 insertions(+), 17 deletions(-)
Hi Matt,
I tried to do again without your patches and the problem appears, seems to be an older problem.
Regards,
alimon
Quoted 68 lines · Matt Madison
Quoted 4 lines · Aníbal Limón
Hi Matt,
Trying to build core-image-sato with qemux86-64 and multilib enabled an errors appear (see attached log), next the config.
OK, yep, I can reproduce this. I'll investigate further.
Thanks,
-MattQuoted 55 lines
MACHINE ??= "qemux86-64"
IMAGE_INSTALL_append= " lib32-connman"
requireconf/multilib.conf
MULTILIBS = "multilib:lib32" DEFAULTTUNE_virtclass-multilib-lib32 = "x86"PACKAGE_CLASSES?= "package_deb"EXTRA_IMAGE_FEATURES= "debug-tweaks package-management"Kind regards,
alimonQuoted 40 lines · Matt Madison
Quoted 4 lines · Aníbal Limón
Hi Matt,
I'm starting to look at your patches, in what arches/combinations you test the patches?
I've been working on a BSP layer for the jetson-tx1, which is aarch64/armv7a-hf, so that's what I've been testing with. The BSP defs are in https://github.com/madisongh/meta-tegra.
Thanks,
-MattQuoted 25 lines
Kind regards,
alimonQuoted 19 lines · Matt Madison
I ran into sevearl issues while trying to build an ARM multilib rootfs using Debian packaging. After several go-rounds, it looked like the cleanest solution was to tweak how
DPKG_ARCHgets constructed and to have the DpkgPM class inoe/package_manager.pyuse that variable to locate multilib variants (similar to RpmPM). I also took the liberty of expanding the Debian architecture mappings so the names align better with what's documented on the Debian wiki, for those cases where a direct mapping is possible.Matt Madison (2):
package_deb.bbclass, cross-canadian.bbclass:DPKG_ARCHmapping
function
package_manager.py: fixes for multilib deb packaging buildsmeta/classes/cross-canadian.bbclass | 2 +- meta/classes/package_deb.bbclass | 35 +++++++++++++++++++++++++---------- meta/lib/oe/package_manager.py | 17 +++++++++++------ 3 files changed, 37 insertions(+), 17 deletions(-)
Quoted 4 lines · Aníbal Limón
Hi Matt,
I tried to do again without your patches and the problem appears, seems to be an older problem.
Thanks, I suspected as much and was going to try that myself. I was able to work around the issue manually in a devshell by using apt-get -f to have it "fix" the dependencies it thinks were broken, which from what I've seen so far, stems from trying to install 32-bit packages that would overwrite files installed by their 64-bit counterparts. I'm just not sure that's the right solution to the problem.
-Matt
Quoted 73 lines
Regards,
alimonQuoted 68 lines · Matt Madison
Quoted 4 lines · Aníbal Limón
Hi Matt,
Trying to build core-image-sato with qemux86-64 and multilib enabled an errors appear (see attached log), next the config.
OK, yep, I can reproduce this. I'll investigate further.
Thanks,
-MattQuoted 55 lines
MACHINE ??= "qemux86-64"
IMAGE_INSTALL_append= " lib32-connman"
requireconf/multilib.conf
MULTILIBS = "multilib:lib32" DEFAULTTUNE_virtclass-multilib-lib32 = "x86"PACKAGE_CLASSES?= "package_deb"EXTRA_IMAGE_FEATURES= "debug-tweaks package-management"Kind regards,
alimonQuoted 40 lines · Matt Madison
Quoted 4 lines · Aníbal Limón
Hi Matt,
I'm starting to look at your patches, in what arches/combinations you test the patches?
I've been working on a BSP layer for the jetson-tx1, which is aarch64/armv7a-hf, so that's what I've been testing with. The BSP defs are in https://github.com/madisongh/meta-tegra.
Thanks,
-MattQuoted 25 lines
Kind regards,
alimonQuoted 19 lines · Matt Madison
I ran into sevearl issues while trying to build an ARM multilib rootfs using Debian packaging. After several go-rounds, it looked like the cleanest solution was to tweak how
DPKG_ARCHgets constructed and to have the DpkgPM class inoe/package_manager.pyuse that variable to locate multilib variants (similar to RpmPM). I also took the liberty of expanding the Debian architecture mappings so the names align better with what's documented on the Debian wiki, for those cases where a direct mapping is possible.Matt Madison (2):
package_deb.bbclass, cross-canadian.bbclass:DPKG_ARCHmapping
function
package_manager.py: fixes for multilib deb packaging buildsmeta/classes/cross-canadian.bbclass | 2 +- meta/classes/package_deb.bbclass | 35 +++++++++++++++++++++++++---------- meta/lib/oe/package_manager.py | 17 +++++++++++------ 3 files changed, 37 insertions(+), 17 deletions(-)
Anibal,
After studying the Debian multi-arch wiki pages, I think I've figured out the right answer to this. Testing now, will send out a V2 patch series when done.
-Matt
Quoted 90 lines · Matt Madison
Quoted 4 lines · Aníbal Limón
Hi Matt,
I tried to do again without your patches and the problem appears, seems to be an older problem.
Thanks, I suspected as much and was going to try that myself. I was able to work around the issue manually in a devshell by using apt-get -f to have it "fix" the dependencies it thinks were broken, which from what I've seen so far, stems from trying to install 32-bit packages that would overwrite files installed by their 64-bit counterparts. I'm just not sure that's the right solution to the problem.
-Matt
Quoted 73 lines
Regards,
alimonQuoted 68 lines · Matt Madison
Quoted 4 lines · Aníbal Limón
Hi Matt,
Trying to build core-image-sato with qemux86-64 and multilib enabled an errors appear (see attached log), next the config.
OK, yep, I can reproduce this. I'll investigate further.
Thanks,
-MattQuoted 55 lines
MACHINE ??= "qemux86-64"
IMAGE_INSTALL_append= " lib32-connman"
requireconf/multilib.conf
MULTILIBS = "multilib:lib32" DEFAULTTUNE_virtclass-multilib-lib32 = "x86"PACKAGE_CLASSES?= "package_deb"EXTRA_IMAGE_FEATURES= "debug-tweaks package-management"Kind regards,
alimonQuoted 40 lines · Matt Madison
Quoted 4 lines · Aníbal Limón
Hi Matt,
I'm starting to look at your patches, in what arches/combinations you test the patches?
I've been working on a BSP layer for the jetson-tx1, which is aarch64/armv7a-hf, so that's what I've been testing with. The BSP defs are in https://github.com/madisongh/meta-tegra.
Thanks,
-MattQuoted 25 lines
Kind regards,
alimonQuoted 19 lines · Matt Madison
I ran into sevearl issues while trying to build an ARM multilib rootfs using Debian packaging. After several go-rounds, it looked like the cleanest solution was to tweak how
DPKG_ARCHgets constructed and to have the DpkgPM class inoe/package_manager.pyuse that variable to locate multilib variants (similar to RpmPM). I also took the liberty of expanding the Debian architecture mappings so the names align better with what's documented on the Debian wiki, for those cases where a direct mapping is possible.Matt Madison (2):
package_deb.bbclass, cross-canadian.bbclass:DPKG_ARCHmapping
function
package_manager.py: fixes for multilib deb packaging buildsmeta/classes/cross-canadian.bbclass | 2 +- meta/classes/package_deb.bbclass | 35 +++++++++++++++++++++++++---------- meta/lib/oe/package_manager.py | 17 +++++++++++------ 3 files changed, 37 insertions(+), 17 deletions(-)