Skip to contentSkip to conversation

Fix multilib install conflicts

PATCH Superseded [email protected] 2 participants 12 messages Sep 29, 2018

v1 of 3 Superseded Latest is v3 →

lore
Share & tools
lore
#0 lore raw

cover Fix multilib install conflicts

From: Kai Kang <[email protected]>

The following changes since commit 3bbbe25ae74e120f7d3452685f0cae2245d7b14d:

glibc-package.inc: correct intention for deleting /usr/lib as needed (2018-09-27 23:41:41 +0100)

are available in the Git repository at:

git://git.pokylinux.org/poky-contrib kangkai/ML-sep29
http://git.pokylinux.org/cgit.cgi/poky-contrib/log/?h=kangkai/ML-sep29

Kai Kang (10):
cups: fix multilib install file conflicts
bind: fix multilib install file conflicts
man-db: fix multilib install file conflict
groff: fix multilib install file conflicts
nss: move create blank certificates to pkg_postinst
libcheck: avoid multilib install file conflict opkg-utils/update-alternatives: not warn same priorities for multilib
os-release: fix install file conflict for multilib
gobject-introspection: fix multilib install file conflicts
vala: update vapigen-wrapper

 meta/recipes-connectivity/bind/bind_9.11.4.bb |  4 +-
 meta/recipes-core/os-release/os-release.bb    |  6 +-
 ...ot-warn-same-priorities-for-multilib.patch | 30 +++++++++
 .../opkg-utils/opkg-utils_0.3.6.bb            |  1 +
 meta/recipes-devtools/vala/vala.inc           |  4 +-
 meta/recipes-extended/cups/cups.inc           |  3 +
 meta/recipes-extended/groff/groff_1.22.3.bb   |  4 +-
 meta/recipes-extended/man-db/man-db_2.8.3.bb  |  3 +
 ...nfigure.ac-make-GIR_DIR-configurable.patch | 65 +++++++++++++++++++
 .../gobject-introspection_1.58.0.bb           | 10 ++-
 .../libcheck/libcheck_0.12.0.bb               |  5 ++
 meta/recipes-support/nss/nss_3.38.bb          | 32 +++++----
 12 files changed, 147 insertions(+), 20 deletions(-)
 create mode 100644 meta/recipes-devtools/opkg-utils/opkg-utils/update-alternatives-not-warn-same-priorities-for-multilib.patch
 create mode 100644 meta/recipes-gnome/gobject-introspection/gobject-introspection/0001-configure.ac-make-GIR_DIR-configurable.patch
Signature · 1 line
2.18.0
#1 lore raw

PATCH 1/10 cups: fix multilib install file conflicts

From: Kai Kang <[email protected]>

There are comments which contains path of ${libdir} in configure files. It causes install file conflicts when intall cups and lib32-cups at same time.

Replace ${libdir} with {nonarch_libdir} of the comment lines in config files to fix the issue.

---
 meta/recipes-extended/cups/cups.inc | 3 +++
 1 file changed, 3 insertions(+)
meta/recipes-extended/cups/cups.inc +3 -0
index 717eef03a7..b8ad1e09e5 100644
@@ -78,6 +78,9 @@ do_install () {
 	    rm -rf ${D}${sysconfdir}/init.d/
 	    rm -rf ${D}${sysconfdir}/rc*
 	fi
+
+	# workaround for multilib install file conflicts
+	sed -i "s:\(^#.*\)${libdir}:\1${nonarch_libdir}:" ${D}${sysconfdir}/cups/cups-files.conf*
 }
 
 PACKAGES =+ "${PN}-lib ${PN}-libimage"
Signature · 1 line
2.18.0
#3 lore raw

PATCH 3/10 man-db: fix multilib install file conflict

In reply to [email protected]

From: Kai Kang <[email protected]>

The first line of config file man_db.conf is the package name. It causes multilib install file conflict. So remove the first line.

---
 meta/recipes-extended/man-db/man-db_2.8.3.bb | 3 +++
 1 file changed, 3 insertions(+)
meta/recipes-extended/man-db/man-db_2.8.3.bb +3 -0
index 97e5a3d6fb..da6d291011 100644
@@ -26,6 +26,9 @@ do_install() {
 	        install -d ${D}/etc/default/volatiles
 		install -m 0644 ${WORKDIR}/99_mandb ${D}/etc/default/volatiles
 	fi
+
+    # the 1st line of man_db.conf is package name which causes multilib install file conflict
+    sed -i '1d' ${D}${sysconfdir}/man_db.conf
 }
 
 do_install_append_libc-musl() {
Signature · 1 line
2.18.0
#4 lore raw

PATCH 4/10 groff: fix multilib install file conflicts

In reply to [email protected]

From: Kai Kang <[email protected]>

Perl scripts ${bindir}/{gpinyin, groffer, grog} are ${libdir} related and cause multilib install file conflicts:

| Error: Transaction check error:
|  file /usr/bin/gpinyin conflicts between attempted installs of groff-1.22.3-r0.core2_64 and lib32-groff-1.22.3-r0.x86
|  file /usr/bin/groffer conflicts between attempted installs of groff-1.22.3-r0.core2_64 and lib32-groff-1.22.3-r0.x86
|  file /usr/bin/grog conflicts between attempted installs of groff-1.22.3-r0.core2_64 and lib32-groff-1.22.3-r0.x86

Inherit multilib_script.bbclass to fix the errors.

---
 meta/recipes-extended/groff/groff_1.22.3.bb | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)
meta/recipes-extended/groff/groff_1.22.3.bb +3 -1
index 7472f59825..ce7ce3e791 100644
@@ -20,7 +20,9 @@ DEPENDS = "groff-native"
 DEPENDS_class-native = ""
 RDEPENDS_${PN} += "perl sed"
 
-inherit autotools texinfo
+inherit autotools texinfo multilib_script
+
+MULTILIB_SCRIPTS = "${PN}:${bindir}/gpinyin ${PN}:${bindir}/groffer ${PN}:${bindir}/grog"
 
 EXTRA_OECONF = "--without-x"
 PARALLEL_MAKE = ""
Signature · 1 line
2.18.0
#2 lore raw

PATCH 2/10 bind: fix multilib install file conflicts

In reply to [email protected]

From: Kai Kang <[email protected]>

It adds ${libdir} to linker options in scripts bind9-config and isc-config.sh. And then causes install file conflicts when install bind andl ib32-bind both.

Inherit multilib_script.bbclass to fix this issue.

---
 meta/recipes-connectivity/bind/bind_9.11.4.bb | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)
meta/recipes-connectivity/bind/bind_9.11.4.bb +3 -1
index 23c3aadf9c..63d8b0baa8 100644
@@ -28,7 +28,9 @@ SRC_URI[sha256sum] = "595070b031f869f8939656b5a5d11b121211967f15f6afeafa895df745
 UPSTREAM_CHECK_URI = "https://ftp.isc.org/isc/bind9/"
 UPSTREAM_CHECK_REGEX = "(?P<pver>9(\.\d+)+(-P\d+)*)/"
 
-inherit autotools update-rc.d systemd useradd pkgconfig
+inherit autotools update-rc.d systemd useradd pkgconfig multilib_script
+
+MULTILIB_SCRIPTS = "${PN}:${bindir}/bind9-config ${PN}:${bindir}/isc-config.sh"
 
 # PACKAGECONFIGs readline and libedit should NOT be set at same time
 PACKAGECONFIG ?= "readline"
Signature · 1 line
2.18.0
#6 lore raw

PATCH 6/10 libcheck: avoid multilib install file conflict

In reply to [email protected]

From: Kai Kang <[email protected]>

It has one line different which is a comment in check_stdint.h between libcheck multilib packages. And then causes install file conflict when install libcheck and lib32-libcheck at same time.

Remove the comment line from check_stdint.h to fix the issue.

---
 meta/recipes-support/libcheck/libcheck_0.12.0.bb | 5 +++++
 1 file changed, 5 insertions(+)
meta/recipes-support/libcheck/libcheck_0.12.0.bb +5 -0
index e646d43968..9969e27054 100644
@@ -16,6 +16,11 @@ inherit autotools pkgconfig texinfo
 
 CACHED_CONFIGUREVARS += "ac_cv_path_AWK_PATH=${bindir}/gawk"
 
+do_install_append_class-target () {
+    # remove the only one line comment which causes multilib install file conflict
+    sed -i '/^\/\*/ d' ${D}${includedir}/check_stdint.h
+}
+
 RREPLACES_${PN} = "check (<= 0.9.5)"
 RDEPENDS_${PN} += "gawk"
 RDEPENDS_${PN}_class-native = ""
Signature · 1 line
2.18.0
#7 lore raw

PATCH 7/10 opkg-utils/update-alternatives: not warn same priorities for multilib

In reply to [email protected]

From: Kai Kang <[email protected]>

update-alternatives is used to handle install file conflicts of multilib packages in multilib_script.bbclass. And the default priority is used for the alternatives which causes QA warning:

| WARNING: core-image-minimal-1.0-r0 do_rootfs: [log_check] core-image-minimal: found 1 warning message in the logfile
| [log_check] Warn: update-alternatives: libtool has multiple providers with the same priority, please check
| .../core-image-minimal/1.0-r0/rootfs/usr/lib/opkg/alternatives/libtool for details

The same priorities of alternatives are by design, so eliminate the warning for alternatives from multilib packages.

---
 ...ot-warn-same-priorities-for-multilib.patch | 30 +++++++++++++++++++
 .../opkg-utils/opkg-utils_0.3.6.bb            |  1 +
 2 files changed, 31 insertions(+)
 create mode 100644 meta/recipes-devtools/opkg-utils/opkg-utils/update-alternatives-not-warn-same-priorities-for-multilib.patch
meta/recipes-devtools/opkg-utils/opkg-utils/update-alternatives-not-warn-same-priorities-for-multilib.patch new file +30 -0
new file mode 100644
index 0000000000..19eb89259d
@@ -0,0 +1,30 @@
+From 5d9ab3a3575267517c3c8fd9847b68f5987a4820 Mon Sep 17 00:00:00 2001
+From: Kai Kang <[email protected]>
+Date: Tue, 18 Sep 2018 04:35:54 -0400
+Subject: [PATCH] update-alternatives: not warn same priorities for multilib
+
+Signed-off-by: Kai Kang <[email protected]>
+---
+ update-alternatives | 6 +++++-
+ 1 file changed, 5 insertions(+), 1 deletion(-)
+
+diff --git a/update-alternatives b/update-alternatives
+index 89a440b..61b7ef5 100644
+--- a/update-alternatives
++++ b/update-alternatives
+@@ -94,7 +94,11 @@ add_alt() {
+ 	local priority="$3"
+ 	remove_alt $name $path
+ 	if grep -qw "$priority" $ad/$name; then
+-		echo "Warn: update-alternatives: $name has multiple providers with the same priority, please check $ad/$name for details"
++		target=`head -1 $ad/$name`
++		# not warn same priorities from multilib packages
++		if grep -w "$priority" $ad/$name | grep -qv "^$target"; then
++			echo "Warn: update-alternatives: $name has multiple providers with the same priority, please check $ad/$name for details"
++		fi
+ 	fi
+ 	echo "$path $priority" >> $ad/$name
+ }
+-- 
+2.19.0.rc2
+
meta/recipes-devtools/opkg-utils/opkg-utils_0.3.6.bb +1 -0
index 0487c5f305..ee002845a5 100644
@@ -12,6 +12,7 @@ SRC_URI = "http://git.yoctoproject.org/cgit/cgit.cgi/${BPN}/snapshot/${BPN}-${PV
            file://0001-Only-use-sort-name-on-versions-of-tar-which-support-.patch \
            file://0002-opkg-build-Use-local-time-for-build_date-since-opkg-.patch \
            file://threaded-xz.patch \
+           file://update-alternatives-not-warn-same-priorities-for-multilib.patch \
 "
 SRC_URI_append_class-native = " file://tar_ignore_error.patch"
 UPSTREAM_CHECK_URI = "http://git.yoctoproject.org/cgit/cgit.cgi/opkg-utils/refs/"
Signature · 1 line
2.18.0
#5 lore raw

PATCH 5/10 nss: move create blank certificates to pkg_postinst

In reply to [email protected]

From: Kai Kang <[email protected]>

There is a multilib install file conflict of nss:
| file /etc/pki/nssdb/key4.db conflicts between attempted installs of | lib32-nss-3.38-r0.corei7_32 and nss-3.38-r0.corei7_64

Move the creation of blank certificates to pkg_postinst. And check if certificates exist already, don't re-create them.

---
 meta/recipes-support/nss/nss_3.38.bb | 32 +++++++++++++++++-----------
 1 file changed, 20 insertions(+), 12 deletions(-)
meta/recipes-support/nss/nss_3.38.bb +20 -12
index 904b621a07..74145360b5 100644
@@ -211,20 +211,20 @@ do_install_append() {
     sed -i s:OEINCDIR:${includedir}/nss3:g ${D}${libdir}/pkgconfig/nss.pc
 }
 
-do_install_append_class-target() {
-    # Create a blank certificate
-    mkdir -p ${D}${sysconfdir}/pki/nssdb/
-    touch ./empty_password
-    certutil -N -d sql:${D}${sysconfdir}/pki/nssdb/ -f ./empty_password
-    chmod 644 ${D}${sysconfdir}/pki/nssdb/*.db
-    rm ./empty_password
-    # Remove build path prefix
-    sed -i "s:${D}::g"  ${D}${sysconfdir}/pki/nssdb/pkcs11.txt
-}
-
 PACKAGE_WRITE_DEPS += "nss-native"
 pkg_postinst_${PN} () {
     if [ -n "$D" ]; then
+        if [ ! -d $D${sysconfdir}/pki/nssdb/ ]; then
+            # Create a blank certificate
+            mkdir -p $D${sysconfdir}/pki/nssdb/
+            touch $D/empty_password
+            certutil -N -d sql:$D${sysconfdir}/pki/nssdb/ -f $D/empty_password
+            chmod 644 $D${sysconfdir}/pki/nssdb/*.db
+            rm $D/empty_password
+            # Remove build path prefix
+            sed -i "s:$D::g"  $D${sysconfdir}/pki/nssdb/pkcs11.txt
+        fi
+
         for I in $D${libdir}/lib*.chk; do
             DN=`dirname $I`
             BN=`basename $I .chk`
@@ -235,6 +235,15 @@ pkg_postinst_${PN} () {
             fi
         done
     else
+        if [ ! -d ${sysconfdir}/pki/nssdb ]; then
+            # Create a blank certificate
+            mkdir -p ${sysconfdir}/pki/nssdb
+            empty_password=`mktemp`
+            certutil -N -d sql:$D${sysconfdir}/pki/nssdb/ -f $empty_password
+            chmod 644 $D${sysconfdir}/pki/nssdb/*.db
+            rm $empty_password
+        fi
+
         signlibs.sh
     fi
 }
@@ -244,7 +253,6 @@ FILES_${PN}-smime = "\
     ${bindir}/smime \
 "
 FILES_${PN} = "\
-    ${sysconfdir} \
     ${bindir} \
     ${libdir}/lib*.chk \
     ${libdir}/lib*.so \
Signature · 1 line
2.18.0
#9 lore raw

PATCH 9/10 gobject-introspection: fix multilib install file conflicts

In reply to [email protected]

From: Kai Kang <[email protected]>

Fix multilib isntall file conflicts for gobject-introspection.
* use multilib_script.bbclass to handle ${bindir}/g-ir-annotation-tool and ${bindir}/g-ir-scanner
* add configure option to install .gir files to an alternative path

---
 ...nfigure.ac-make-GIR_DIR-configurable.patch | 65 +++++++++++++++++++
 .../gobject-introspection_1.58.0.bb           | 10 ++-
 2 files changed, 72 insertions(+), 3 deletions(-)
 create mode 100644 meta/recipes-gnome/gobject-introspection/gobject-introspection/0001-configure.ac-make-GIR_DIR-configurable.patch
meta/recipes-gnome/gobject-introspection/gobject-introspection/0001-configure.ac-make-GIR_DIR-configurable.patch new file +65 -0
new file mode 100644
index 0000000000..07fb20ed29
@@ -0,0 +1,65 @@
+configure.ac: make GIR_DIR configurable
+
+.gir files are arch related which contain such as lengths of pointers
+that they are different for 64 and 32 bits target. It causes install
+file conflicts for multilib when intall gobject-introspection and
+lib32-gobject-introspection both.
+
+Add configure option 'with-gir-dir-prefix' to make .gir could be
+installed to a configured path such as ${libdir}. And update girdir in
+.pc files as well.
+
+Upstream-Status: Submitted [https://github.com/GNOME/gobject-introspection/pull/17]
+
+Signed-off-by: Kai Kang <[email protected]>
+---
+ configure.ac                              | 5 ++++-
+ gobject-introspection-1.0.pc.in           | 2 +-
+ gobject-introspection-no-export-1.0.pc.in | 2 +-
+ 3 files changed, 6 insertions(+), 3 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index b4294c57..dc78b832 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -114,7 +114,10 @@ GIR_SUFFIX="gir-1.0"
+ AC_SUBST(GIR_SUFFIX)
+ AC_DEFINE_UNQUOTED(GIR_SUFFIX, "$GIR_SUFFIX", [Name of the gir directory])
+ 
+-GIR_DIR="$EXPANDED_DATADIR/$GIR_SUFFIX"
++AC_ARG_WITH(gir-dir-prefix,
++		AS_HELP_STRING([--with-gir-dir-prefix], [Director prefix for gir installation]),
++		[GIR_DIR_PREFIX="$withval"], [GIR_DIR_PREFIX="$EXPANDED_DATADIR"])
++GIR_DIR="$GIR_DIR_PREFIX/$GIR_SUFFIX"
+ AC_SUBST(GIR_DIR)
+ AC_DEFINE_UNQUOTED(GIR_DIR, "$GIR_DIR", [Director prefix for gir installation])
+ 
+diff --git a/gobject-introspection-1.0.pc.in b/gobject-introspection-1.0.pc.in
+index a08b5d27..3409856c 100644
+--- a/gobject-introspection-1.0.pc.in
++++ b/gobject-introspection-1.0.pc.in
+@@ -10,7 +10,7 @@ g_ir_scanner=${bindir}/g-ir-scanner
+ g_ir_compiler=${bindir}/g-ir-compiler@EXEEXT@
+ g_ir_generate=${bindir}/g-ir-generate@EXEEXT@
+ gidatadir=${datadir}/gobject-introspection-1.0
+-girdir=${datadir}/gir-1.0
++girdir=@GIR_DIR@
+ typelibdir=${libdir}/girepository-1.0
+ 
+ Cflags: -I${includedir}/gobject-introspection-1.0 @FFI_PC_CFLAGS@
+diff --git a/gobject-introspection-no-export-1.0.pc.in b/gobject-introspection-no-export-1.0.pc.in
+index d214d22d..745aaade 100644
+--- a/gobject-introspection-no-export-1.0.pc.in
++++ b/gobject-introspection-no-export-1.0.pc.in
+@@ -9,7 +9,7 @@ includedir=@includedir@
+ g_ir_scanner=${bindir}/g-ir-scanner
+ g_ir_compiler=${bindir}/g-ir-compiler@EXEEXT@
+ g_ir_generate=${bindir}/g-ir-generate@EXEEXT@
+-girdir=${datadir}/gir-1.0
++girdir=@GIR_DIR@
+ typelibdir=${libdir}/girepository-1.0
+ 
+ Cflags: -I${includedir}/gobject-introspection-1.0 @FFI_PC_CFLAGS@
+-- 
+2.19.0.rc2
+
meta/recipes-gnome/gobject-introspection/gobject-introspection_1.58.0.bb +7 -3
index de898a788b..67817049a5 100644
@@ -17,6 +17,7 @@ SRC_URI = "${GNOME_MIRROR}/${BPN}/${@oe.utils.trim_version("${PV}", 2)}/${BPN}-$
            file://0005-Prefix-pkg-config-paths-with-PKG_CONFIG_SYSROOT_DIR-.patch \
            file://0001-giscanner-add-a-lib-dirs-envvar-option.patch \
            file://0001-giscanner-ignore-error-return-codes-from-ldd-wrapper.patch \
+           file://0001-configure.ac-make-GIR_DIR-configurable.patch \
            "
 
 SRC_URI[md5sum] = "94fec875276262037bfcd51226db12fe"
@@ -24,7 +25,9 @@ SRC_URI[sha256sum] = "27c1590a32749de0a5481ce897772547043e94bccba4bc0a7edb3d8513
 
 SRC_URI_append_class-native = " file://0001-Relocate-the-repository-directory-for-native-builds.patch"
 
-inherit autotools pkgconfig gtk-doc python3native qemu gobject-introspection-data upstream-version-is-even
+inherit autotools pkgconfig gtk-doc python3native qemu gobject-introspection-data upstream-version-is-even multilib_script
+
+MULTILIB_SCRIPTS = "${PN}:${bindir}/g-ir-annotation-tool ${PN}:${bindir}/g-ir-scanner"
 
 DEPENDS_append = " libffi zlib glib-2.0 python3 flex-native bison-native autoconf-archive"
 
@@ -51,6 +54,7 @@ EXTRA_OECONF_class-target = " \
     --enable-gi-ldd-wrapper=${B}/g-ir-scanner-lddwrapper \
     ${@bb.utils.contains('GI_DATA_ENABLED', 'True', '--enable-introspection-data', '--disable-introspection-data', d)} \
 "
+EXTRA_OECONF_append = " --with-gir-dir-prefix=${libdir}"
 
 # Need to ensure ld.so.conf exists so prelink-native works
 # both before we build and if we install from sstate
@@ -94,7 +98,7 @@ EOF
 # This prevents g-ir-scanner from writing cache data to $HOME
 export GI_SCANNER_DISABLE_CACHE=1
 
-g-ir-scanner --lib-dirs-envvar=GIR_EXTRA_LIBS_PATH --use-binary-wrapper=${STAGING_BINDIR}/g-ir-scanner-qemuwrapper --use-ldd-wrapper=${STAGING_BINDIR}/g-ir-scanner-lddwrapper --add-include-path=${STAGING_DATADIR}/gir-1.0 "\$@"
+g-ir-scanner --lib-dirs-envvar=GIR_EXTRA_LIBS_PATH --use-binary-wrapper=${STAGING_BINDIR}/g-ir-scanner-qemuwrapper --use-ldd-wrapper=${STAGING_BINDIR}/g-ir-scanner-lddwrapper --add-include-path=${STAGING_LIBDIR}/gir-1.0 "\$@"
 EOF
         chmod +x ${B}/g-ir-scanner-wrapper
 
@@ -178,7 +182,7 @@ FILES_${PN}_append = " ${libdir}/girepository-*/*.typelib"
 
 # .gir files go to dev package, as they're needed for developing (but not for running)
 # things that depends on introspection.
-FILES_${PN}-dev_append = " ${datadir}/gir-*/*.gir"
+FILES_${PN}-dev_append = " ${libdir}/gir-*/*.gir"
 FILES_${PN}-dev_append = " ${datadir}/gir-*/*.rnc"
 
 # These are used by gobject-based packages
Signature · 1 line
2.18.0
#10 lore raw

PATCH 10/10 vala: update vapigen-wrapper

In reply to [email protected]

From: Kai Kang <[email protected]>

gobject-introspection has changed installation paths of .gir files. Update vapigen-wrapper accordingly.

---
 meta/recipes-devtools/vala/vala.inc | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)
meta/recipes-devtools/vala/vala.inc +3 -1
index b22faad780..9f2f9bb996 100644
@@ -29,7 +29,7 @@ do_configure_prepend_class-target() {
         # The wrapper will call a native vapigen
         cat > ${B}/vapigen-wrapper << EOF
 #!/bin/sh
-vapigen-${SHRT_VER} "\$@"
+vapigen-${SHRT_VER} --girdir=${STAGING_LIBDIR}/gir-1.0 "\$@"
 EOF
         chmod +x ${B}/vapigen-wrapper
 }
@@ -55,3 +55,5 @@ vapigen_sysroot_preprocess() {
            -e "s|vapigen=.*|vapigen=${bindir}/vapigen-wrapper|" \
            ${SYSROOT_DESTDIR}${libdir}/pkgconfig/vapigen-${SHRT_VER}.pc
 }
+
+SSTATE_SCAN_FILES += "vapigen-wrapper"
Signature · 1 line
2.18.0
#8 lore raw

PATCH 8/10 os-release: fix install file conflict for multilib

In reply to [email protected]

From: Kai Kang <[email protected]>

It fails to create image when install os-release and lib32-os-release both:

| file /etc/os-release conflicts between attempted installs of | os-release-1.0-r0.core2_64 and lib32-os-release-1.0-r0.x86

The /etc/os-release is a symlink link to ${libdir}/os-release. Actually the content of files are identical and make /etc/os-release to be hard link could fix the issue. But according to os-release (5), symlink link is necessary for initrd environment such as dracut.

---
 meta/recipes-core/os-release/os-release.bb | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)
meta/recipes-core/os-release/os-release.bb +4 -2
index bf4f815a10..4d5487c06d 100644
@@ -1,10 +1,12 @@
-inherit allarch
-
 SUMMARY = "Operating system identification"
 DESCRIPTION = "The /usr/lib/os-release file contains operating system identification data."
 LICENSE = "MIT"
 INHIBIT_DEFAULT_DEPS = "1"
 
+inherit allarch multilib_script
+
+MULTILIB_SCRIPTS = "${PN}:${sysconfdir}/os-release"
+
 do_fetch[noexec] = "1"
 do_unpack[noexec] = "1"
 do_patch[noexec] = "1"
Signature · 1 line
2.18.0
#11 lore raw

✗ patchtest: failure for Fix multilib install conflicts

In reply to [email protected]

== Series Details ==

Series: Fix multilib install conflicts
Revision: 1
URL : https://patchwork.openembedded.org/series/14285/
State : failure

== Summary ==

Thank you for submitting this patch series to OpenEmbedded Core. This is an automated response. Several tests have been executed on the proposed series by patchtest resulting in the following failures:

* Issue Added patch file is missing Upstream-Status in the header [test_upstream_status_presence_format]

  Suggested fix    Add Upstream-Status: <Valid status> to the header of meta/recipes-devtools/opkg-utils/opkg-utils/update-alternatives-not-warn-same-priorities-for-multilib.patch
  Standard format  Upstream-Status: <Valid status>
  Valid status     Pending, Accepted, Backport, Denied, Inappropriate [reason], Submitted [where]

If you believe any of these test results are incorrect, please reply to the mailing list ([email protected]) raising your concerns. Otherwise we would appreciate you correcting the issues and submitting a new version of the patchset if applicable. Please ensure you add/increment the version number when sending the new version (i.e. [PATCH] -> [PATCH v2] -> [PATCH v3] -> ...).

---

Guidelines:     https://www.openembedded.org/wiki/Commit_Patch_Message_Guidelines
Test framework: http://git.yoctoproject.org/cgit/cgit.cgi/patchtest
Test suite:     http://git.yoctoproject.org/cgit/cgit.cgi/patchtest-oe