Message ID | 20241122-add-cryptopp-v2-1-19456062f791@bootlin.com |
---|---|
State | Under Review |
Headers | show |
Series | [meta-oe,v2] cryptopp: add a recipe for version 8.9.0 | expand |
On Fri, Nov 22, 2024 at 6:11 AM Antonin Godard via lists.openembedded.org <antonin.godard=bootlin.com@lists.openembedded.org> wrote: > > Cryptopp is a library of cryptographic schemes written in C++. > > Signed-off-by: Antonin Godard <antonin.godard@bootlin.com> > --- > I had issues compiling for qemuarm64, which are close to > https://github.com/weidai11/cryptopp/issues/565. One of the solution is > to disable ASM, so do that for aarch64. I don't observe the issue with > qemuarm. > --- > Changes in v2: > - WORKDIR -> UNPACKDIR in S > - remove bb.utils.contains in CXXFLAGS:append:aarch64 (forgot to remove > after adding aarch64 override) > - Link to v1: https://lore.kernel.org/r/20241121-add-cryptopp-v1-1-36382a60cecb@bootlin.com > --- > meta-oe/recipes-crypto/cryptopp/cryptopp_8.9.0.bb | 45 +++++++++++++++++++++++ > 1 file changed, 45 insertions(+) > > diff --git a/meta-oe/recipes-crypto/cryptopp/cryptopp_8.9.0.bb b/meta-oe/recipes-crypto/cryptopp/cryptopp_8.9.0.bb > new file mode 100644 > index 0000000000000000000000000000000000000000..a3d4fedb2f67c0111dcd262081b622cfbdd40b57 > --- /dev/null > +++ b/meta-oe/recipes-crypto/cryptopp/cryptopp_8.9.0.bb > @@ -0,0 +1,45 @@ > +SUMMARY = "A C++ class library of cryptographic schemes" > +DESCRIPTION = "Crypto++ Library is a C++ class library of cryptographic schemes" > +CVE_PRODUCT = "cryptopp" > +HOMEPAGE = "http://www.cryptopp.com/" > +SECTION = "libs" > +LICENSE = "BSL-1.0" > +LIC_FILES_CHKSUM = "file://License.txt;md5=ca6dacb7ef68b1ab5dfa3bed24c12003" > + > +SRC_URI = "git://github.com/weidai11/cryptopp.git;protocol=https;branch=master" > +SRCREV = "843d74c7c97f9e19a615b8ff3c0ca06599ca501b" > + > +S = "${UNPACKDIR}/git" This should be WORKDIR/git here. > + > +inherit pkgconfig > + > +CXXFLAGS:append = " -fPIC" maybe use += here. > +# Avoid target mismatch error > +CXXFLAGS:append:aarch64 = " -DCRYPTOPP_DISABLE_ASM=1" This will build suboptimally. It would be better to fix the issue in Makefile to use compatible options. > +EXTRA_OEMAKE += "HAS_SOLIB_VERSION=1" > + > +do_compile () { > + oe_runmake -f GNUmakefile-cross libcryptopp.a libcryptopp.so cryptest.exe > +} > + > +do_install () { > + DESTDIR="${D}" \ > + BINDIR="${bindir}" \ > + DATADIR="${datadir}" \ > + INCLUDEDIR="${includedir}" \ > + LIBDIR="${libdir}" \ > + oe_runmake install > + > + # Rename cryptest.exe to cryptest > + if [ -f "${D}${bindir}/cryptest.exe" ]; then > + mv "${D}${bindir}/cryptest.exe" "${D}${bindir}/cryptest" > + fi > +} > + > +PACKAGE_BEFORE_PN += "${PN}-cryptest ${PN}-testdata ${PN}-testvectors" > + > +FILES:${PN}-cryptest = "${bindir}/cryptest" > +FILES:${PN}-testdata = "${datadir}/cryptopp/TestData" > +FILES:${PN}-testvectors = "${datadir}/cryptopp/TestVectors" > + > +BBCLASSEXTEND = "native nativesdk" > > --- > base-commit: 71ffb63f60b233722ec9d8b50bfe0488997fbcfa > change-id: 20241121-add-cryptopp-f78794be963c > > Best regards, > -- > Antonin Godard <antonin.godard@bootlin.com> > > > -=-=-=-=-=-=-=-=-=-=-=- > Links: You receive all messages sent to this group. > View/Reply Online (#114001): https://lists.openembedded.org/g/openembedded-devel/message/114001 > Mute This Topic: https://lists.openembedded.org/mt/109722638/1997914 > Group Owner: openembedded-devel+owner@lists.openembedded.org > Unsubscribe: https://lists.openembedded.org/g/openembedded-devel/unsub [raj.khem@gmail.com] > -=-=-=-=-=-=-=-=-=-=-=- >
diff --git a/meta-oe/recipes-crypto/cryptopp/cryptopp_8.9.0.bb b/meta-oe/recipes-crypto/cryptopp/cryptopp_8.9.0.bb new file mode 100644 index 0000000000000000000000000000000000000000..a3d4fedb2f67c0111dcd262081b622cfbdd40b57 --- /dev/null +++ b/meta-oe/recipes-crypto/cryptopp/cryptopp_8.9.0.bb @@ -0,0 +1,45 @@ +SUMMARY = "A C++ class library of cryptographic schemes" +DESCRIPTION = "Crypto++ Library is a C++ class library of cryptographic schemes" +CVE_PRODUCT = "cryptopp" +HOMEPAGE = "http://www.cryptopp.com/" +SECTION = "libs" +LICENSE = "BSL-1.0" +LIC_FILES_CHKSUM = "file://License.txt;md5=ca6dacb7ef68b1ab5dfa3bed24c12003" + +SRC_URI = "git://github.com/weidai11/cryptopp.git;protocol=https;branch=master" +SRCREV = "843d74c7c97f9e19a615b8ff3c0ca06599ca501b" + +S = "${UNPACKDIR}/git" + +inherit pkgconfig + +CXXFLAGS:append = " -fPIC" +# Avoid target mismatch error +CXXFLAGS:append:aarch64 = " -DCRYPTOPP_DISABLE_ASM=1" +EXTRA_OEMAKE += "HAS_SOLIB_VERSION=1" + +do_compile () { + oe_runmake -f GNUmakefile-cross libcryptopp.a libcryptopp.so cryptest.exe +} + +do_install () { + DESTDIR="${D}" \ + BINDIR="${bindir}" \ + DATADIR="${datadir}" \ + INCLUDEDIR="${includedir}" \ + LIBDIR="${libdir}" \ + oe_runmake install + + # Rename cryptest.exe to cryptest + if [ -f "${D}${bindir}/cryptest.exe" ]; then + mv "${D}${bindir}/cryptest.exe" "${D}${bindir}/cryptest" + fi +} + +PACKAGE_BEFORE_PN += "${PN}-cryptest ${PN}-testdata ${PN}-testvectors" + +FILES:${PN}-cryptest = "${bindir}/cryptest" +FILES:${PN}-testdata = "${datadir}/cryptopp/TestData" +FILES:${PN}-testvectors = "${datadir}/cryptopp/TestVectors" + +BBCLASSEXTEND = "native nativesdk"
Cryptopp is a library of cryptographic schemes written in C++. Signed-off-by: Antonin Godard <antonin.godard@bootlin.com> --- I had issues compiling for qemuarm64, which are close to https://github.com/weidai11/cryptopp/issues/565. One of the solution is to disable ASM, so do that for aarch64. I don't observe the issue with qemuarm. --- Changes in v2: - WORKDIR -> UNPACKDIR in S - remove bb.utils.contains in CXXFLAGS:append:aarch64 (forgot to remove after adding aarch64 override) - Link to v1: https://lore.kernel.org/r/20241121-add-cryptopp-v1-1-36382a60cecb@bootlin.com --- meta-oe/recipes-crypto/cryptopp/cryptopp_8.9.0.bb | 45 +++++++++++++++++++++++ 1 file changed, 45 insertions(+) --- base-commit: 71ffb63f60b233722ec9d8b50bfe0488997fbcfa change-id: 20241121-add-cryptopp-f78794be963c Best regards,