[meta-oe,dunfell] p7zip: build and package lib7z.so needed for fastboot

Message ID 1646210995-8717-1-git-send-email-akash.hadke@kpit.com
State Under Review
Delegated to: Armin Kuster
Headers show
Series [meta-oe,dunfell] p7zip: build and package lib7z.so needed for fastboot | expand

Commit Message

Akash Hadke March 2, 2022, 8:49 a.m. UTC
From: Nisha Parrakat <nishaparrakat@gmail.com>

a) use option 7z to build the lib7z.so library
This is needed for android-tools for building fastboot
from android-tools

b) Packaged the lib7z.so and codec libraries as a part of this recipe
Fastboot RDepends on it lib7z.so

c) Fixed a C++17 forbidden error when lib7z.so is built

fixes the below error

| ../../../../CPP/7zip/Archive/Wim/WimHandler.cpp: In member function 'virtual LONG NArchive::NWim::CHandler::GetArchiveProperty(PROPID, PROPVARIANT*)':
| ../../../../CPP/7zip/Archive/Wim/WimHandler.cpp:308:11: error: use of an operand of type 'bool' in 'operator++' is forbidden in C++17
|   308 |           numMethods++;
|       |           ^~~~~~~~~~
| ../../../../CPP/7zip/Archive/Wim/WimHandler.cpp:318:9: error: use of an operand of type 'bool' in 'operator++' is forbidden in C++17
|   318 |         numMethods++;

Signed-off-by: Nisha Parrakat <Nisha.Parrakat@kpit.com>
Signed-off-by: Nisha Parrakat <nishaparrakat@gmail.com>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Akash Hadke <Akash.Hadke@kpit.com>
Signed-off-by: Akash Hadke <hadkeakash4@gmail.com>
(cherry picked from commit 3c36a8efe2a964c3aa9bfcd836cee3f80a837fcd)
---
 .../change_numMethods_from_bool_to_unsigned.patch  | 25 ++++++++++++++++++++++
 meta-oe/recipes-extended/p7zip/p7zip_16.02.bb      | 21 ++++++++++++++++--
 2 files changed, 44 insertions(+), 2 deletions(-)
 create mode 100644 meta-oe/recipes-extended/p7zip/files/change_numMethods_from_bool_to_unsigned.patch

Comments

akuster808 March 5, 2022, 6:53 p.m. UTC | #1
On 3/2/22 00:49, akash hadke via lists.openembedded.org wrote:
> From: Nisha Parrakat <nishaparrakat@gmail.com>
>
> a) use option 7z to build the lib7z.so library
> This is needed for android-tools for building fastboot
> from android-tools
>
> b) Packaged the lib7z.so and codec libraries as a part of this recipe
> Fastboot RDepends on it lib7z.so
>
> c) Fixed a C++17 forbidden error when lib7z.so is built
>
> fixes the below error
>
> | ../../../../CPP/7zip/Archive/Wim/WimHandler.cpp: In member function 'virtual LONG NArchive::NWim::CHandler::GetArchiveProperty(PROPID, PROPVARIANT*)':
> | ../../../../CPP/7zip/Archive/Wim/WimHandler.cpp:308:11: error: use of an operand of type 'bool' in 'operator++' is forbidden in C++17
> |   308 |           numMethods++;
> |       |           ^~~~~~~~~~
> | ../../../../CPP/7zip/Archive/Wim/WimHandler.cpp:318:9: error: use of an operand of type 'bool' in 'operator++' is forbidden in C++17
> |   318 |         numMethods++;
>
> Signed-off-by: Nisha Parrakat <Nisha.Parrakat@kpit.com>
> Signed-off-by: Nisha Parrakat <nishaparrakat@gmail.com>
> Signed-off-by: Khem Raj <raj.khem@gmail.com>
> Signed-off-by: Akash Hadke <Akash.Hadke@kpit.com>
> Signed-off-by: Akash Hadke <hadkeakash4@gmail.com>
> (cherry picked from commit 3c36a8efe2a964c3aa9bfcd836cee3f80a837fcd)
> ---
>   .../change_numMethods_from_bool_to_unsigned.patch  | 25 ++++++++++++++++++++++
>   meta-oe/recipes-extended/p7zip/p7zip_16.02.bb      | 21 ++++++++++++++++--
>   2 files changed, 44 insertions(+), 2 deletions(-)
>   create mode 100644 meta-oe/recipes-extended/p7zip/files/change_numMethods_from_bool_to_unsigned.patch
>
> diff --git a/meta-oe/recipes-extended/p7zip/files/change_numMethods_from_bool_to_unsigned.patch b/meta-oe/recipes-extended/p7zip/files/change_numMethods_from_bool_to_unsigned.patch
> new file mode 100644
> index 0000000..edde525
> --- /dev/null
> +++ b/meta-oe/recipes-extended/p7zip/files/change_numMethods_from_bool_to_unsigned.patch
> @@ -0,0 +1,25 @@
> +fixes the below error
> +
> +| ../../../../CPP/7zip/Archive/Wim/WimHandler.cpp: In member function 'virtual LONG NArchive::NWim::CHandler::GetArchiveProperty(PROPID, PROPVARIANT*)':
> +| ../../../../CPP/7zip/Archive/Wim/WimHandler.cpp:308:11: error: use of an operand of type 'bool' in 'operator++' is forbidden in C++17
> +|   308 |           numMethods++;
> +|       |           ^~~~~~~~~~
> +| ../../../../CPP/7zip/Archive/Wim/WimHandler.cpp:318:9: error: use of an operand of type 'bool' in 'operator++' is forbidden in C++17
> +|   318 |         numMethods++;
> +
> +
> +use unsigned instead of bool

Missing "Upstream-Status":

-armin
> +Signed-off-by: Nisha Parrakat <Nisha.Parrakat@kpit.com>
> +
> +Upstream-Status: Pending
> +--- ./CPP/7zip/Archive/Wim/WimHandler.cpp       2021-05-20 10:51:56.997402701 +0000
> ++++ ./CPP/7zip/Archive/Wim/WimHandler.cpp       2021-05-20 10:52:16.665604125 +0000
> +@@ -298,7 +298,7 @@
> +
> +       AString res;
> +
> +-      bool numMethods = 0;
> ++      unsigned numMethods = 0;
> +       for (unsigned i = 0; i < ARRAY_SIZE(k_Methods); i++)
> +       {
> +         if (methodMask & ((UInt32)1 << i
> diff --git a/meta-oe/recipes-extended/p7zip/p7zip_16.02.bb b/meta-oe/recipes-extended/p7zip/p7zip_16.02.bb
> index ebe32f1..8984f96 100644
> --- a/meta-oe/recipes-extended/p7zip/p7zip_16.02.bb
> +++ b/meta-oe/recipes-extended/p7zip/p7zip_16.02.bb
> @@ -9,6 +9,7 @@ SRC_URI = "http://downloads.sourceforge.net/p7zip/p7zip/${PV}/p7zip_${PV}_src_al
>              file://do_not_override_compiler_and_do_not_strip.patch \
>              file://CVE-2017-17969.patch \
>              file://0001-Fix-narrowing-errors-Wc-11-narrowing.patch \
> +           file://change_numMethods_from_bool_to_unsigned.patch \
>              file://CVE-2018-5996.patch \
>              "
>   
> @@ -17,10 +18,26 @@ SRC_URI[sha256sum] = "5eb20ac0e2944f6cb9c2d51dd6c4518941c185347d4089ea89087ffdd6
>   
>   S = "${WORKDIR}/${BPN}_${PV}"
>   
> +do_compile_append() {
> +    oe_runmake 7z
> +}
> +FILES_${PN} += "${libdir}/* ${bindir}/7z"
> +
> +FILES_SOLIBSDEV = ""
> +INSANE_SKIP_${PN} += "dev-so"
> +
>   do_install() {
>   	install -d ${D}${bindir}
> -	install -m 0755 ${S}/bin/* ${D}${bindir}
> +	install -d ${D}${bindir}/Codecs
> +	install -d ${D}${libdir}
> +	install -d ${D}${libdir}/Codecs
> +	install -m 0755 ${S}/bin/7za ${D}${bindir}
>   	ln -s 7za ${D}${bindir}/7z
> +	install -m 0755 ${S}/bin/Codecs/* ${D}${libdir}/Codecs/
> +	install -m 0755 ${S}/bin/7z.so ${D}${libdir}/lib7z.so
>   }
>   
> -BBCLASSEXTEND = "native"
> +RPROVIDES_${PN} += "lib7z.so()(64bit) 7z lib7z.so"
> +RPROVIDES_${PN}-dev += "lib7z.so()(64bit) 7z lib7z.so"
> +
> +BBCLASSEXTEND = "native nativesdk"
>
> -=-=-=-=-=-=-=-=-=-=-=-
> Links: You receive all messages sent to this group.
> View/Reply Online (#95681): https://lists.openembedded.org/g/openembedded-devel/message/95681
> Mute This Topic: https://lists.openembedded.org/mt/89497302/3616698
> Group Owner: openembedded-devel+owner@lists.openembedded.org
> Unsubscribe: https://lists.openembedded.org/g/openembedded-devel/unsub [akuster808@gmail.com]
> -=-=-=-=-=-=-=-=-=-=-=-
>
Akash Hadke March 7, 2022, 6:03 a.m. UTC | #2
Hi Armin,

Do you want me to add 'Upstream-Status:' in ' change_numMethods_from_bool_to_unsigned.patch '? Its already present as 'Pending'.
akuster808 March 10, 2022, 5:02 a.m. UTC | #3
On 3/6/22 22:03, akash hadke via lists.openembedded.org wrote:
> Hi Armin,
>
> Do you want me to add 'Upstream-Status:' in 
> 'change_numMethods_from_bool_to_unsigned.patch'? Its already present 
> as 'Pending'.

If only I could read. I just saw it

- armin.
>
> -=-=-=-=-=-=-=-=-=-=-=-
> Links: You receive all messages sent to this group.
> View/Reply Online (#95832): https://lists.openembedded.org/g/openembedded-devel/message/95832
> Mute This Topic: https://lists.openembedded.org/mt/89497302/3616698
> Group Owner: openembedded-devel+owner@lists.openembedded.org
> Unsubscribe: https://lists.openembedded.org/g/openembedded-devel/unsub [akuster808@gmail.com]
> -=-=-=-=-=-=-=-=-=-=-=-
>

Patch

diff --git a/meta-oe/recipes-extended/p7zip/files/change_numMethods_from_bool_to_unsigned.patch b/meta-oe/recipes-extended/p7zip/files/change_numMethods_from_bool_to_unsigned.patch
new file mode 100644
index 0000000..edde525
--- /dev/null
+++ b/meta-oe/recipes-extended/p7zip/files/change_numMethods_from_bool_to_unsigned.patch
@@ -0,0 +1,25 @@ 
+fixes the below error
+
+| ../../../../CPP/7zip/Archive/Wim/WimHandler.cpp: In member function 'virtual LONG NArchive::NWim::CHandler::GetArchiveProperty(PROPID, PROPVARIANT*)':
+| ../../../../CPP/7zip/Archive/Wim/WimHandler.cpp:308:11: error: use of an operand of type 'bool' in 'operator++' is forbidden in C++17
+|   308 |           numMethods++;
+|       |           ^~~~~~~~~~
+| ../../../../CPP/7zip/Archive/Wim/WimHandler.cpp:318:9: error: use of an operand of type 'bool' in 'operator++' is forbidden in C++17
+|   318 |         numMethods++;
+
+
+use unsigned instead of bool
+Signed-off-by: Nisha Parrakat <Nisha.Parrakat@kpit.com>
+
+Upstream-Status: Pending
+--- ./CPP/7zip/Archive/Wim/WimHandler.cpp       2021-05-20 10:51:56.997402701 +0000
++++ ./CPP/7zip/Archive/Wim/WimHandler.cpp       2021-05-20 10:52:16.665604125 +0000
+@@ -298,7 +298,7 @@
+
+       AString res;
+
+-      bool numMethods = 0;
++      unsigned numMethods = 0;
+       for (unsigned i = 0; i < ARRAY_SIZE(k_Methods); i++)
+       {
+         if (methodMask & ((UInt32)1 << i
diff --git a/meta-oe/recipes-extended/p7zip/p7zip_16.02.bb b/meta-oe/recipes-extended/p7zip/p7zip_16.02.bb
index ebe32f1..8984f96 100644
--- a/meta-oe/recipes-extended/p7zip/p7zip_16.02.bb
+++ b/meta-oe/recipes-extended/p7zip/p7zip_16.02.bb
@@ -9,6 +9,7 @@  SRC_URI = "http://downloads.sourceforge.net/p7zip/p7zip/${PV}/p7zip_${PV}_src_al
            file://do_not_override_compiler_and_do_not_strip.patch \
            file://CVE-2017-17969.patch \
            file://0001-Fix-narrowing-errors-Wc-11-narrowing.patch \
+           file://change_numMethods_from_bool_to_unsigned.patch \
            file://CVE-2018-5996.patch \
            "
 
@@ -17,10 +18,26 @@  SRC_URI[sha256sum] = "5eb20ac0e2944f6cb9c2d51dd6c4518941c185347d4089ea89087ffdd6
 
 S = "${WORKDIR}/${BPN}_${PV}"
 
+do_compile_append() {
+    oe_runmake 7z
+}
+FILES_${PN} += "${libdir}/* ${bindir}/7z"
+
+FILES_SOLIBSDEV = ""
+INSANE_SKIP_${PN} += "dev-so"
+
 do_install() {
 	install -d ${D}${bindir}
-	install -m 0755 ${S}/bin/* ${D}${bindir}
+	install -d ${D}${bindir}/Codecs
+	install -d ${D}${libdir}
+	install -d ${D}${libdir}/Codecs
+	install -m 0755 ${S}/bin/7za ${D}${bindir}
 	ln -s 7za ${D}${bindir}/7z
+	install -m 0755 ${S}/bin/Codecs/* ${D}${libdir}/Codecs/
+	install -m 0755 ${S}/bin/7z.so ${D}${libdir}/lib7z.so
 }
 
-BBCLASSEXTEND = "native"
+RPROVIDES_${PN} += "lib7z.so()(64bit) 7z lib7z.so"
+RPROVIDES_${PN}-dev += "lib7z.so()(64bit) 7z lib7z.so"
+
+BBCLASSEXTEND = "native nativesdk"