[OE-core] [morty] [PATCH] rpm: Fix the Bug of SRPM String error
akuster808
akuster808 at gmail.com
Mon Jun 19 19:20:36 UTC 2017
On 05/16/2017 10:18 PM, Zheng, Ruoqin wrote:
> Ping
Apologies for the delay. It appears this change has introduced new
warnings so at this time I will not be taking this patch.
NOTE: core-image-sato-sdk-1.0-r0 do_testimage: Previous repo file
missing:
/home/pokybuild/yocto-autobuilder/yocto-worker/nightly-arm64/build/build/tmp/work/qemuarm64-poky-linux/core-image-sato-sdk/1.0-r0/rpm/all/repodata/primary.xml.gz
warning: tag Name(1000) type(0x4) != expected type(0x10006) warning: tag
Name(1000) type(0x4) != expected type(0x10006) warning: tag Name(1000)
type(0x4) != expected type(0x10006) warning: tag Name(1000) type(0x4) !=
expected type(0x10006) warning: tag Name(1000) type(0x4) != expected
type(0x10006) warning: tag Name(1000) type(0x4) != expected
type(0x10006) warning: tag Name(1000) type(0x4) != expected
type(0x10006) please investigate. - armin
>
> Zheng Ruoqin
> Nanjing Fujitsu Nanda Software Tech. Co., Ltd.(FNST)
> ADDR.: No.6 Wenzhu Road, Software Avenue,
> Nanjing, 210012, China
> MAIL : zhengrq.fnst at cn.fujistu.com
>
> -----Original Message-----
> From: Zheng, Ruoqin/郑 若钦
> Sent: Monday, May 08, 2017 6:17 PM
> To: openembedded-core at lists.openembedded.org
> Cc: Zheng, Ruoqin/郑 若钦 <zhengrq.fnst at cn.fujitsu.com>
> Subject: [OE-core] [morty] [PATCH] rpm: Fix the Bug of SRPM String error
>
> Add a patch 0001-Fix-the-Bug-of-SRPM-String-error.patch to fix SRPM bug
>
> When use bitbake to build a SRPM package, some sections of SRPM can't be displayed normally.
> For example:
> $ rpm -qpi zlib-1.2.8-r0.src.rpm
> warning: zlib-1.2.8-r0.src.rpm: Header V4 DSA/SHA1 Signature, key ID e64962a6: NOKEY
> Name : zlib
> Version : 1.2.8
> Release : r0
> Architecture: i586
> Install Date: (not installed)
> Group : ﺩ
> Size : 633007
> License : Zlib
> Signature : DSA/SHA1, 2017年04月22日 00時38分03秒, Key ID bc5e0520e64962a6
> Source RPM : (none)
> Build Date : 2017年04月22日 00時38分03秒
> Build Host : force
> Relocations : (not relocatable)
> Packager : Poky <poky at yoctoproject.org>
> URL : http://zlib.net/
> Summary : ¨¯
> Description :
> ﺩ
>
> Signed-off-by: Zheng Ruoqin <zhengrq.fnst at cn.fujitsu.com>
> ---
> .../0001-Fix-the-Bug-of-SRPM-String-error.patch | 162 +++++++++++++++++++++
> meta/recipes-devtools/rpm/rpm_5.4.16.bb | 1 +
> 2 files changed, 163 insertions(+)
> create mode 100644 meta/recipes-devtools/rpm/rpm/0001-Fix-the-Bug-of-SRPM-String-error.patch
>
> diff --git a/meta/recipes-devtools/rpm/rpm/0001-Fix-the-Bug-of-SRPM-String-error.patch b/meta/recipes-devtools/rpm/rpm/0001-Fix-the-Bug-of-SRPM-String-error.patch
> new file mode 100644
> index 0000000..85c48ac
> --- /dev/null
> +++ b/meta/recipes-devtools/rpm/rpm/0001-Fix-the-Bug-of-SRPM-String-erro
> +++ r.patch
> @@ -0,0 +1,162 @@
> +Subject: [PATCH] Fix the Bug of SRPM String error
> +
> +Upstream-Status: Backport from rpm 5.4.16 $ rpm -qpi
> +zlib-1.2.8-r0.src.rpm
> +warning: zlib-1.2.8-r0.src.rpm: Header V4 DSA/SHA1 Signature, key ID e64962a6: NOKEY
> +Name : zlib
> +Version : 1.2.8
> +Release : r0
> +Architecture: i586
> +Install Date: (not installed)
> +Group : ﺩ
> +Size : 633007
> +License : Zlib
> +Signature : DSA/SHA1, 2017年04月22日 00時38分03秒, Key ID bc5e0520e64962a6
> +Source RPM : (none)
> +Build Date : 2017年04月22日 00時38分03秒
> +Build Host : force
> +Relocations : (not relocatable)
> +Packager : Poky <poky at yoctoproject.org>
> +URL : http://zlib.net/
> +Summary : ¨¯
> +Description :
> +ﺩ
> +
> +Signed-off-by: Zheng Ruoqin <zhengrq.fnst at cn.fujitsu.com>
> +---
> + rpmdb/header.c | 8 ++++----
> + rpmdb/rpmtag.h | 1 +
> + rpmdb/tagname.c | 61
> +++++++++++++++++++++++++++++++++++++++++-----------------
> + 3 files changed, 48 insertions(+), 22 deletions(-)
> +
> +diff --git a/rpmdb/header.c b/rpmdb/header.c index 5d6c6cf..5a80df0
> +100644
> +--- a/rpmdb/header.c
> ++++ b/rpmdb/header.c
> +@@ -32,7 +32,7 @@ GENfree(HeaderIterator)
> + #endif /* __cplusplus */
> +
> + #if defined(SUPPORT_IMPLICIT_TAG_DATA_TYPES)
> +-extern void tagTypeValidate(HE_t he)
> ++extern void tagTypeValidate(HE_t he, unsigned int flags)
> + /*@*/;
> + #endif
> +
> +@@ -2281,7 +2281,7 @@ int headerGet(Header h, HE_t he, unsigned int
> +flags) /*@-modfilesys@*/
> + /* XXX verify that explicit and implicit types are identical. */
> + if (rc)
> +- tagTypeValidate(he);
> ++ tagTypeValidate(he, flags);
> + /*@=modfilesys@*/
> + #endif
> +
> +@@ -2304,7 +2304,7 @@ int headerPut(Header h, HE_t he, /*@unused@*/
> +unsigned int flags) #if defined(SUPPORT_IMPLICIT_TAG_DATA_TYPES)
> + /*@-modfilesys@*/
> + /* XXX verify that explicit and implicit types are identical. */
> +- tagTypeValidate(he);
> ++ tagTypeValidate(he, flags);
> + /*@=modfilesys@*/
> + #endif
> +
> +@@ -2329,7 +2329,7 @@ int headerMod(Header h, HE_t he, /*@unused@*/
> +unsigned int flags) #if defined(SUPPORT_IMPLICIT_TAG_DATA_TYPES)
> + /*@-modfilesys@*/
> + /* XXX verify that explicit and implicit types are identical. */
> +- tagTypeValidate(he);
> ++ tagTypeValidate(he, flags);
> + /*@=modfilesys@*/
> + #endif
> +
> +diff --git a/rpmdb/rpmtag.h b/rpmdb/rpmtag.h index ffce678..8f6a2bf
> +100644
> +--- a/rpmdb/rpmtag.h
> ++++ b/rpmdb/rpmtag.h
> +@@ -868,6 +868,7 @@ int headerGet(Header h, HE_t he, unsigned int flags)
> + /*@modifies he, internalState @*/;
> + #define HEADERGET_NOEXTENSION (1 << 0) /*!< Extension search disabler. */
> + #define HEADERGET_NOI18NSTRING (1 << 1) /*!< Return i18n strings as argv. */
> ++#define HEADERGET_SIGHEADER (1 << 2) /*!< Override signature tag data. */
> +
> + /** \ingroup header
> + * Add or append tag container to header.
> +diff --git a/rpmdb/tagname.c b/rpmdb/tagname.c index cfd1459..374ad77
> +100644
> +--- a/rpmdb/tagname.c
> ++++ b/rpmdb/tagname.c
> +@@ -515,28 +515,53 @@ tagStore_t tagStoreFree(tagStore_t dbiTags,
> +size_t dbiNTags)
> + * Validate that implicit and explicit types are identical.
> + * @param he tag container
> + */
> +-void tagTypeValidate(HE_t he);
> +-void tagTypeValidate(HE_t he)
> ++void tagTypeValidate(HE_t he, unsigned int flags); void
> ++tagTypeValidate(HE_t he, unsigned int flags)
> + {
> +- /* XXX Re-map RPM_I18NSTRING_TYPE -> RPM_STRING_TYPE */
> +- if (he->t == RPM_I18NSTRING_TYPE)
> +- he->t = RPM_STRING_TYPE;
> +-
> +- /* XXX Arbitrary tags are always strings. */
> +- if ((he->tag & 0x40000000)
> +- && (he->t == RPM_STRING_TYPE || he->t == RPM_STRING_ARRAY_TYPE))
> ++ /* XXX Skip RPMSIGTAG_* validation. */
> ++ if (flags & HEADERGET_SIGHEADER)
> + return;
> +
> +- /* XXX Make 0x3fffffff disappear for now. Signature? */
> +- if (he->tag == 0x3fffffff && he->t == RPM_BIN_TYPE)
> ++ /* XXX Arbitrary tags are always STRING or STRING_ARRAY. */
> ++ if (he->tag & 0x40000000) {
> ++ if (!(he->t == RPM_STRING_TYPE || he->t == RPM_STRING_ARRAY_TYPE)) {
> ++ rpmTagType tagtype = RPM_STRING_TYPE;
> ++ rpmlog(RPMLOG_WARNING,
> ++ _("tag %s(%u) type(0x%x) != expected type(0x%x)\n"),
> ++ tagName(he->tag), (unsigned) he->tag, he->t, tagtype);
> ++ }
> + return;
> ++ }
> +
> +-/* XXX hack around known borkage for now. */ -if (!(he->tag == 62))
> +-if (!(he->tag == 261 || he->tag == 269)) -if (!(he->tag == 1000 ||
> +he->tag == 1004 || he->tag == 1007)) -if (!(he->tag == 1029 || he->tag
> +== 1086 || he->tag == 1087)) -if (he->t != (tagType(he->tag) & 0xffff))
> +-fprintf(stderr, "==> warning: tag %u type(0x%x) != implicit
> +type(0x%x)\n", (unsigned) he->tag, he->t, tagType(he->tag));
> ++ switch (he->tag) {
> ++#if defined(SUPPORT_I18NSTRING_TYPE)
> ++ case RPMTAG_SUMMARY:
> ++ case RPMTAG_DESCRIPTION:
> ++ case RPMTAG_GROUP:
> ++#endif
> ++ case RPMTAG_FILESTATES: /* XXX either CHAR or UINT8 */
> ++ break;
> ++ case RPMTAG_PREINPROG: /* XXX either STRING or STRING_ARRAY */
> ++ case RPMTAG_POSTINPROG: /* XXX either STRING or STRING_ARRAY */
> ++ case RPMTAG_PREUNPROG: /* XXX either STRING or STRING_ARRAY */
> ++ case RPMTAG_POSTUNPROG: /* XXX either STRING or STRING_ARRAY */
> ++ case RPMTAG_VERIFYSCRIPTPROG:/* XXX either STRING or STRING_ARRAY */
> ++ if (!(he->t == RPM_STRING_TYPE || he->t == RPM_STRING_ARRAY_TYPE)) {
> ++ rpmTagType tagtype = RPM_STRING_TYPE;
> ++ rpmlog(RPMLOG_WARNING,
> ++ _("tag %s(%u) type(0x%x) != expected type(0x%x)\n"),
> ++ tagName(he->tag), (unsigned) he->tag, he->t, tagtype);
> ++ }
> ++ break;
> ++ default:
> ++ { rpmTagType tagtype = tagType(he->tag);
> ++ rpmTagType type = (tagtype & 0xffff);
> ++ if (type && he->t != type) {
> ++ rpmlog(RPMLOG_WARNING,
> ++ _("tag %s(%u) type(0x%x) != expected type(0x%x)\n"),
> ++ tagName(he->tag), (unsigned) he->tag, he->t, tagtype);
> ++ }
> ++ } break;
> ++ }
> + }
> + #endif
> +--
> +2.7.4
> +
> diff --git a/meta/recipes-devtools/rpm/rpm_5.4.16.bb b/meta/recipes-devtools/rpm/rpm_5.4.16.bb
> index 497af8e..2bfe455 100644
> --- a/meta/recipes-devtools/rpm/rpm_5.4.16.bb
> +++ b/meta/recipes-devtools/rpm/rpm_5.4.16.bb
> @@ -120,6 +120,7 @@ SRC_URI += " \
> file://0001-system.h-query.c-support-nosignature.patch \
> file://rpm-ensure-rpm2cpio-call-rpm-relocation-code.patch \
> file://0001-macros-add-_gpg_sign_cmd_extra_args.patch \
> + file://0001-Fix-the-Bug-of-SRPM-String-error.patch \
> "
>
> # OE specific changes
> --
> 2.7.4
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openembedded.org/pipermail/openembedded-core/attachments/20170619/8ce67010/attachment-0002.html>
More information about the Openembedded-core
mailing list