[oe] [meta-oe][PATCH] Update ipmitool to use new active source
Khem Raj
raj.khem at gmail.com
Fri Jun 14 18:26:47 UTC 2019
https://errors.yoctoproject.org/Errors/Details/248468/
On Fri, Jun 14, 2019 at 11:20 AM Khem Raj <raj.khem at gmail.com> wrote:
>
> fails to build on qemux86-64/musl
>
> https://errors.yoctoproject.org/Errors/Details/248477/
>
> On Wed, Jun 5, 2019 at 11:43 AM Vernon Mauery
> <vernon.mauery at linux.intel.com> wrote:
> >
> > The ipmitool project has moved from sourceforge to github and is under
> > new management. This updates the source so that it pulls directly from
> > git rather than a tarball. Eventually, once the next release is tagged,
> > the new SRCREV can be updated to that. But for now, the project is under
> > active development and could probably benefit from periodic updates
> > anyway.
> >
> > The SRCREV and SRC_URI links point to code that already has been patched
> > to work with the new openssl 1.1 APIs, so the patch is no longer needed.
> >
> > Signed-off-by: Vernon Mauery <vernon.mauery at linux.intel.com>
> > ---
> > .../0001-Migrate-to-openssl-1.1.patch | 152 ------------------
> > .../{ipmitool_1.8.18.bb => ipmitool_git.bb} | 12 +-
> > 2 files changed, 6 insertions(+), 158 deletions(-)
> > delete mode 100644 meta-oe/recipes-kernel/ipmitool/ipmitool/0001-Migrate-to-openssl-1.1.patch
> > rename meta-oe/recipes-kernel/ipmitool/{ipmitool_1.8.18.bb => ipmitool_git.bb} (80%)
> >
> > diff --git a/meta-oe/recipes-kernel/ipmitool/ipmitool/0001-Migrate-to-openssl-1.1.patch b/meta-oe/recipes-kernel/ipmitool/ipmitool/0001-Migrate-to-openssl-1.1.patch
> > deleted file mode 100644
> > index 394aa16ad..000000000
> > --- a/meta-oe/recipes-kernel/ipmitool/ipmitool/0001-Migrate-to-openssl-1.1.patch
> > +++ /dev/null
> > @@ -1,152 +0,0 @@
> > -From c9dcb6afef9c343d070aaff208d11a997a45a105 Mon Sep 17 00:00:00 2001
> > -From: Khem Raj <raj.khem at gmail.com>
> > -Date: Wed, 5 Sep 2018 22:19:38 -0700
> > -Subject: [PATCH] Migrate to openssl 1.1
> > -
> > -Upstream-Status: Backport [https://sourceforge.net/p/ipmitool/source/ci/1664902525a1c3771b4d8b3ccab7ea1ba6b2bdd1/]
> > -
> > -Signed-off-by: Khem Raj <raj.khem at gmail.com>
> > ----
> > - src/plugins/lanplus/lanplus_crypt_impl.c | 50 ++++++++++++++----------
> > - 1 file changed, 29 insertions(+), 21 deletions(-)
> > -
> > -diff --git a/src/plugins/lanplus/lanplus_crypt_impl.c b/src/plugins/lanplus/lanplus_crypt_impl.c
> > -index d5fac37..9652a5e 100644
> > ---- a/src/plugins/lanplus/lanplus_crypt_impl.c
> > -+++ b/src/plugins/lanplus/lanplus_crypt_impl.c
> > -@@ -164,11 +164,7 @@ lanplus_encrypt_aes_cbc_128(const uint8_t * iv,
> > - uint8_t * output,
> > - uint32_t * bytes_written)
> > - {
> > -- EVP_CIPHER_CTX ctx;
> > -- EVP_CIPHER_CTX_init(&ctx);
> > -- EVP_EncryptInit_ex(&ctx, EVP_aes_128_cbc(), NULL, key, iv);
> > -- EVP_CIPHER_CTX_set_padding(&ctx, 0);
> > --
> > -+ EVP_CIPHER_CTX *ctx = NULL;
> > -
> > - *bytes_written = 0;
> > -
> > -@@ -182,6 +178,14 @@ lanplus_encrypt_aes_cbc_128(const uint8_t * iv,
> > - printbuf(input, input_length, "encrypting this data");
> > - }
> > -
> > -+ ctx = EVP_CIPHER_CTX_new();
> > -+ if (ctx == NULL) {
> > -+ lprintf(LOG_DEBUG, "ERROR: EVP_CIPHER_CTX_new() failed");
> > -+ return;
> > -+ }
> > -+ EVP_CIPHER_CTX_init(ctx);
> > -+ EVP_EncryptInit_ex(ctx, EVP_aes_128_cbc(), NULL, key, iv);
> > -+ EVP_CIPHER_CTX_set_padding(ctx, 0);
> > -
> > - /*
> > - * The default implementation adds a whole block of padding if the input
> > -@@ -191,28 +195,28 @@ lanplus_encrypt_aes_cbc_128(const uint8_t * iv,
> > - assert((input_length % IPMI_CRYPT_AES_CBC_128_BLOCK_SIZE) == 0);
> > -
> > -
> > -- if(!EVP_EncryptUpdate(&ctx, output, (int *)bytes_written, input, input_length))
> > -+ if(!EVP_EncryptUpdate(ctx, output, (int *)bytes_written, input, input_length))
> > - {
> > - /* Error */
> > - *bytes_written = 0;
> > -- return;
> > - }
> > - else
> > - {
> > - uint32_t tmplen;
> > -
> > -- if(!EVP_EncryptFinal_ex(&ctx, output + *bytes_written, (int *)&tmplen))
> > -+ if(!EVP_EncryptFinal_ex(ctx, output + *bytes_written, (int *)&tmplen))
> > - {
> > -+ /* Error */
> > - *bytes_written = 0;
> > -- return; /* Error */
> > - }
> > - else
> > - {
> > - /* Success */
> > - *bytes_written += tmplen;
> > -- EVP_CIPHER_CTX_cleanup(&ctx);
> > - }
> > - }
> > -+ /* performs cleanup and free */
> > -+ EVP_CIPHER_CTX_free(ctx);
> > - }
> > -
> > -
> > -@@ -239,11 +243,7 @@ lanplus_decrypt_aes_cbc_128(const uint8_t * iv,
> > - uint8_t * output,
> > - uint32_t * bytes_written)
> > - {
> > -- EVP_CIPHER_CTX ctx;
> > -- EVP_CIPHER_CTX_init(&ctx);
> > -- EVP_DecryptInit_ex(&ctx, EVP_aes_128_cbc(), NULL, key, iv);
> > -- EVP_CIPHER_CTX_set_padding(&ctx, 0);
> > --
> > -+ EVP_CIPHER_CTX *ctx = NULL;
> > -
> > - if (verbose >= 5)
> > - {
> > -@@ -252,12 +252,20 @@ lanplus_decrypt_aes_cbc_128(const uint8_t * iv,
> > - printbuf(input, input_length, "decrypting this data");
> > - }
> > -
> > --
> > - *bytes_written = 0;
> > -
> > - if (input_length == 0)
> > - return;
> > -
> > -+ ctx = EVP_CIPHER_CTX_new();
> > -+ if (ctx == NULL) {
> > -+ lprintf(LOG_DEBUG, "ERROR: EVP_CIPHER_CTX_new() failed");
> > -+ return;
> > -+ }
> > -+ EVP_CIPHER_CTX_init(ctx);
> > -+ EVP_DecryptInit_ex(ctx, EVP_aes_128_cbc(), NULL, key, iv);
> > -+ EVP_CIPHER_CTX_set_padding(ctx, 0);
> > -+
> > - /*
> > - * The default implementation adds a whole block of padding if the input
> > - * data is perfectly aligned. We would like to keep that from happening.
> > -@@ -266,33 +274,33 @@ lanplus_decrypt_aes_cbc_128(const uint8_t * iv,
> > - assert((input_length % IPMI_CRYPT_AES_CBC_128_BLOCK_SIZE) == 0);
> > -
> > -
> > -- if (!EVP_DecryptUpdate(&ctx, output, (int *)bytes_written, input, input_length))
> > -+ if (!EVP_DecryptUpdate(ctx, output, (int *)bytes_written, input, input_length))
> > - {
> > - /* Error */
> > - lprintf(LOG_DEBUG, "ERROR: decrypt update failed");
> > - *bytes_written = 0;
> > -- return;
> > - }
> > - else
> > - {
> > - uint32_t tmplen;
> > -
> > -- if (!EVP_DecryptFinal_ex(&ctx, output + *bytes_written, (int *)&tmplen))
> > -+ if (!EVP_DecryptFinal_ex(ctx, output + *bytes_written, (int *)&tmplen))
> > - {
> > -+ /* Error */
> > - char buffer[1000];
> > - ERR_error_string(ERR_get_error(), buffer);
> > - lprintf(LOG_DEBUG, "the ERR error %s", buffer);
> > - lprintf(LOG_DEBUG, "ERROR: decrypt final failed");
> > - *bytes_written = 0;
> > -- return; /* Error */
> > - }
> > - else
> > - {
> > - /* Success */
> > - *bytes_written += tmplen;
> > -- EVP_CIPHER_CTX_cleanup(&ctx);
> > - }
> > - }
> > -+ /* performs cleanup and free */
> > -+ EVP_CIPHER_CTX_free(ctx);
> > -
> > - if (verbose >= 5)
> > - {
> > diff --git a/meta-oe/recipes-kernel/ipmitool/ipmitool_1.8.18.bb b/meta-oe/recipes-kernel/ipmitool/ipmitool_git.bb
> > similarity index 80%
> > rename from meta-oe/recipes-kernel/ipmitool/ipmitool_1.8.18.bb
> > rename to meta-oe/recipes-kernel/ipmitool/ipmitool_git.bb
> > index b7f1aa914..6d3ead14f 100644
> > --- a/meta-oe/recipes-kernel/ipmitool/ipmitool_1.8.18.bb
> > +++ b/meta-oe/recipes-kernel/ipmitool/ipmitool_git.bb
> > @@ -14,7 +14,7 @@ Log (SEL), printing Field Replaceable Unit (FRU) information, reading and \
> > setting LAN configuration, and chassis power control. \
> > "
> >
> > -HOMEPAGE = "http://ipmitool.sourceforge.net/"
> > +HOMEPAGE = "https://github.com/ipmitool/ipmitool"
> > SECTION = "kernel/userland"
> >
> > LICENSE = "BSD-3-Clause"
> > @@ -22,11 +22,11 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=9aa91e13d644326bf281924212862184"
> >
> > DEPENDS = "openssl readline ncurses"
> >
> > -SRC_URI = "${SOURCEFORGE_MIRROR}/ipmitool/ipmitool-${PV}.tar.bz2 \
> > - file://0001-Migrate-to-openssl-1.1.patch \
> > - "
> > -SRC_URI[md5sum] = "bab7ea104c7b85529c3ef65c54427aa3"
> > -SRC_URI[sha256sum] = "0c1ba3b1555edefb7c32ae8cd6a3e04322056bc087918f07189eeedfc8b81e01"
> > +SRC_URI = "git://github.com/ipmitool/ipmitool.git;protocol=https"
> > +SRCREV = "619a02cf5dc5b85a62730d82277fa8e78be396f5"
> > +
> > +# latest current tag from the project
> > +PV = "1.8.18+git${SRCPV}"
> >
> > inherit autotools
> >
> > --
> > 2.17.1
> >
> > --
> > _______________________________________________
> > Openembedded-devel mailing list
> > Openembedded-devel at lists.openembedded.org
> > http://lists.openembedded.org/mailman/listinfo/openembedded-devel
More information about the Openembedded-devel
mailing list