diff options
Diffstat (limited to 'dev-libs/bglibs')
-rw-r--r-- | dev-libs/bglibs/Manifest | 2 | ||||
-rw-r--r-- | dev-libs/bglibs/bglibs-2.04-r2.ebuild | 75 | ||||
-rw-r--r-- | dev-libs/bglibs/files/bglibs-2.04-stack-buffers.patch | 47 |
3 files changed, 124 insertions, 0 deletions
diff --git a/dev-libs/bglibs/Manifest b/dev-libs/bglibs/Manifest index 2ecdef668ab5..f2912055bbcd 100644 --- a/dev-libs/bglibs/Manifest +++ b/dev-libs/bglibs/Manifest @@ -1,3 +1,5 @@ +AUX bglibs-2.04-stack-buffers.patch 1676 BLAKE2B 356ef239c23178b5f07d80776279c0e91a35af07623c977d051217317496e796a337dd81df5bffa828296e78a007bdb043d73d195a3bfb74116b7751b1c2f42d SHA512 0000b26a5c781b3e68253b6aa8642f1b8d0fe99d4c6cef4a776a33b83272c1ea218ae91845ccd7ba291be6a17b719513317dba32fbeedcba42f469ea65b85b85 DIST bglibs-2.04.tar.gz 713673 BLAKE2B 9e1353b3221ef6a8cfb256ec8616d1e208777b20ecade3e6ae17faca6b42222e18aa601a948e6201139378bf6f8131a2b7a053d77b198176776d42a1af611186 SHA512 094268cad7d4bacf65c0dd3d42fde2e6bac34da0fd6193b1c8202c018e752b3ef80a86c38e687467fb3a4e97130126fe74ee4a86063e4b25ee291de573984a6f EBUILD bglibs-2.04-r1.ebuild 1686 BLAKE2B e54a329c71f42760d20e7b1b0327b99030ef144472eeca6a167154bf8e9ac1e53f5601ef1499b5a91d85ecf68265a6462202ad1b5aae7ff6e28672caac0387e1 SHA512 466298718dfff3cb09a1bd18100ebe97eb4db210988e798c126dac0c2f3107fcdc8ba1c47c80957bd2f4d3dbdcb35f124a371d43e1385d457bd8785200162916 +EBUILD bglibs-2.04-r2.ebuild 1747 BLAKE2B 15669efef55687f638022fc9dbaf1b1939644a5870e2215c3b93e8ff25a596b9b0f257db0d41c4894575dd353c3ca04271f89a402ca1865b608180882333a98e SHA512 bc9f3fd975e25031ed01e7a9185f952c7ba9329740dda40485ed330c1023e6e2f349ee4d2cdf9220d9164cef32bb5d8a1ca08f9894063930922781204f3d5413 MISC metadata.xml 167 BLAKE2B e4dadf27fd344484f2bccb5b904909c89aac568c32e5b3c44bdf139eacefd4b4fae74419f503d2b7da0dccc1b68ba05d777d11292c0f89270d1ac5c9c703e8ca SHA512 7c8decb24ee3a850e38186cf3c7f8933a28017426806870ad6ef9ceb2533be147a2681fc789b535a81cb528af8c29d90d3006e4f250aee23bd7dea4561294e33 diff --git a/dev-libs/bglibs/bglibs-2.04-r2.ebuild b/dev-libs/bglibs/bglibs-2.04-r2.ebuild new file mode 100644 index 000000000000..9a31a9e7b6e5 --- /dev/null +++ b/dev-libs/bglibs/bglibs-2.04-r2.ebuild @@ -0,0 +1,75 @@ +# Copyright 1999-2020 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +inherit toolchain-funcs + +DESCRIPTION="Bruce Guenter's Libraries Collection" +HOMEPAGE="https://untroubled.org/bglibs/" +SRC_URI="https://untroubled.org/bglibs/archive/${P}.tar.gz" + +LICENSE="LGPL-2.1+" +SLOT="0/2" +KEYWORDS="~alpha ~amd64 ~arm ~hppa ~mips ~ppc ~ppc64 sparc ~x86" +IUSE="doc" + +RDEPEND="" +DEPEND="" +BDEPEND="sys-devel/libtool + doc? ( + app-doc/doxygen + dev-texlive/texlive-latexrecommended + dev-texlive/texlive-latex + dev-texlive/texlive-latexextra + virtual/latex-base + ) +" + +PATCHES=( "${FILESDIR}"/bglibs-2.04-stack-buffers.patch ) + +src_prepare() { + default + # disable tests as we want them manually + sed -i '/^all:/s|selftests||' Makefile || die + sed -i '/selftests/d' TARGETS || die +} + +src_configure() { + echo "${ED}/usr/bin" > conf-bin || die + echo "${ED}/usr/$(get_libdir)/bglibs" > conf-lib || die + echo "${ED}/usr/include" > conf-include || die + echo "${ED}/usr/share/man" > conf-man || die + echo "$(tc-getCC) ${CFLAGS}" > conf-cc || die + echo "$(tc-getCC) ${LDFLAGS}" > conf-ld || die +} + +src_compile() { + default + if use doc; then + emake -C doc/latex pdf + fi +} + +src_test() { + einfo "Running selftests" + emake selftests +} + +src_install() { + default + + # Install .so into LDPATH + mv "${ED}"/usr/$(get_libdir)/bglibs/libbg.so.2.0.0 "${ED}"/usr/$(get_libdir)/ || die + dosym libbg.so.2.0.0 /usr/$(get_libdir)/libbg.so.2 + dosym libbg.so.2.0.0 /usr/$(get_libdir)/libbg.so + dosym ../libbg.so.2.0.0 /usr/$(get_libdir)/bglibs/libbg.so.2.0.0 + + rm "${ED}"/usr/$(get_libdir)/bglibs/libbg.la || die + + dodoc ANNOUNCEMENT NEWS README ChangeLog TODO VERSION + dodoc -r doc/html/ + if use doc; then + dodoc doc/latex/refman.pdf + fi +} diff --git a/dev-libs/bglibs/files/bglibs-2.04-stack-buffers.patch b/dev-libs/bglibs/files/bglibs-2.04-stack-buffers.patch new file mode 100644 index 000000000000..6c6fb1133d4a --- /dev/null +++ b/dev-libs/bglibs/files/bglibs-2.04-stack-buffers.patch @@ -0,0 +1,47 @@ +From 25252211283e05c692c8baf3e8a7c70224821762 Mon Sep 17 00:00:00 2001 +From: Rolf Eike Beer <eike@sf-mail.de> +Date: Fri, 15 Nov 2019 19:40:22 +0100 +Subject: [PATCH] properly align the HMAC state buffers on the stack + +They need to have the same alignment as the contained data type, i.e. up to +uint64. Otherwise usage of SHA HMACs causes bus errors on sparc. +--- + crypto/hmac.c | 11 +++++++---- + 1 file changed, 7 insertions(+), 4 deletions(-) + +diff --git a/crypto/hmac.c b/crypto/hmac.c +index abff0df..f4e48c0 100644 +--- a/crypto/hmac.c ++++ b/crypto/hmac.c +@@ -34,7 +34,8 @@ void hmac_prepare(const struct hmac_control_block* hcb, + void* midstate, + const str* secret) + { +- unsigned char state[hcb->state_size]; ++ uint64 statebuf[(hcb->state_size + 7) / sizeof(uint64)]; ++ unsigned char *state = (unsigned char *)statebuf; + unsigned char block[hcb->block_size]; + unsigned i; + +@@ -80,8 +81,9 @@ void hmac_finish(const struct hmac_control_block* hcb, + const str* nonce, + void* output) + { +- unsigned char state[hcb->state_size]; +- ++ uint64 statebuf[(hcb->state_size + 7) / sizeof(uint64)]; ++ unsigned char *state = (unsigned char *)statebuf; ++ + /* Generate H1 = H(K XOR ipad, nonce) */ + hcb->inject(state, midstate); + hcb->update(state, (const unsigned char*)nonce->s, nonce->len); +@@ -106,7 +108,8 @@ void hmac(const struct hmac_control_block* hcb, + const str* nonce, + void* output) + { +- unsigned char midstate[hcb->state_size*2]; ++ uint64 statebuf[(hcb->state_size * 2 + 7) / sizeof(uint64)]; ++ unsigned char *midstate = (unsigned char *)statebuf; + + hmac_prepare(hcb, midstate, secret); + hmac_finish(hcb, midstate, nonce, output); |