mirror of
https://git.yoctoproject.org/poky
synced 2026-02-20 08:29:42 +01:00
opkg-utils: Fix silent empty/broken opkg package creation
opkg-build was failing on hosts where tar < 1.28 and reproducibile builds were enabled but it was doing this silently and generating corrupted (empty) ipk files. Add a fix for this (submitted upstream). The fix requires bash but if you're building ipk files this shoudn't be a problem. (From OE-Core rev: ff9ec19b02650a3ae230e4d1bdc99ec686cc4c81) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
31
meta/recipes-devtools/opkg-utils/opkg-utils/pipefail.patch
Normal file
31
meta/recipes-devtools/opkg-utils/opkg-utils/pipefail.patch
Normal file
@@ -0,0 +1,31 @@
|
||||
We need opkg-build to fail if for example the tar command is passed invalid
|
||||
options. Without this, we see silently created empty packaged where data.tar
|
||||
is zero bytes in size. This creates hard to debug problems.
|
||||
|
||||
An example is when reproducible builds are enabled and run on old hosts like
|
||||
centos7 which has tar < 1.28:
|
||||
|
||||
Subprocess output:tar: unrecognized option '--clamp-mtime'
|
||||
Try `tar --help' or `tar --usage' for more information.
|
||||
|
||||
Upstream-Status: Pending
|
||||
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
|
||||
|
||||
Index: opkg-utils-0.4.1/opkg-build
|
||||
===================================================================
|
||||
--- opkg-utils-0.4.1.orig/opkg-build
|
||||
+++ opkg-utils-0.4.1/opkg-build
|
||||
@@ -1,4 +1,4 @@
|
||||
-#!/bin/sh
|
||||
+#!/bin/bash
|
||||
|
||||
: <<=cut
|
||||
=head1 NAME
|
||||
@@ -12,6 +12,7 @@ opkg-build - construct an .opk from a di
|
||||
# Updated to work on Familiar Pre0.7rc1, with busybox tar.
|
||||
# Note it Requires: binutils-ar (since the busybox ar can't create)
|
||||
set -e
|
||||
+set -o pipefail
|
||||
|
||||
version=1.0
|
||||
|
||||
@@ -10,6 +10,7 @@ PROVIDES += "${@bb.utils.contains('PACKAGECONFIG', 'update-alternatives', 'virtu
|
||||
SRC_URI = "http://git.yoctoproject.org/cgit/cgit.cgi/${BPN}/snapshot/${BPN}-${PV}.tar.gz \
|
||||
file://0001-Switch-all-scripts-to-use-Python-3.x.patch \
|
||||
file://0001-opkg-build-clamp-mtimes-to-SOURCE_DATE_EPOCH.patch \
|
||||
file://pipefail.patch \
|
||||
"
|
||||
UPSTREAM_CHECK_URI = "http://git.yoctoproject.org/cgit/cgit.cgi/opkg-utils/refs/"
|
||||
|
||||
@@ -19,6 +20,8 @@ SRC_URI[sha256sum] = "9ea9efdd9fe13661ad251e3a2860c1c93045adcfaa6659c3e86d9748ec
|
||||
|
||||
TARGET_CC_ARCH += "${LDFLAGS}"
|
||||
|
||||
RDEPENDS_${PN} += "bash"
|
||||
|
||||
# For native builds we use the host Python
|
||||
PYTHONRDEPS = "python3 python3-shell python3-io python3-math python3-crypt python3-logging python3-fcntl python3-pickle python3-compression python3-stringold"
|
||||
PYTHONRDEPS_class-native = ""
|
||||
|
||||
Reference in New Issue
Block a user