diff options
author | Sam James <sam@gentoo.org> | 2023-06-24 04:34:49 +0100 |
---|---|---|
committer | Sam James <sam@gentoo.org> | 2023-06-24 04:34:49 +0100 |
commit | f45e8d10b4724c111fdb61446be1b4595dff99ab (patch) | |
tree | 29518ae8d1d34f947f703baa128d4b1737a48b30 /app-text | |
parent | net-im/gajim: Stabilize 1.7.3-r1 amd64, #909050 (diff) | |
download | gentoo-f45e8d10b4724c111fdb61446be1b4595dff99ab.tar.gz gentoo-f45e8d10b4724c111fdb61446be1b4595dff99ab.tar.bz2 gentoo-f45e8d10b4724c111fdb61446be1b4595dff99ab.zip |
app-text/dictd: fix stack smashing from silly typedef
Closes: https://bugs.gentoo.org/908998
Signed-off-by: Sam James <sam@gentoo.org>
Diffstat (limited to 'app-text')
-rw-r--r-- | app-text/dictd/dictd-1.13.0-r6.ebuild | 130 | ||||
-rw-r--r-- | app-text/dictd/files/dictd-1.13.0-stack-smashing.patch | 18 |
2 files changed, 148 insertions, 0 deletions
diff --git a/app-text/dictd/dictd-1.13.0-r6.ebuild b/app-text/dictd/dictd-1.13.0-r6.ebuild new file mode 100644 index 000000000000..b6118af1bde0 --- /dev/null +++ b/app-text/dictd/dictd-1.13.0-r6.ebuild @@ -0,0 +1,130 @@ +# Copyright 1999-2023 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit autotools readme.gentoo-r1 systemd + +DESCRIPTION="Dictionary Client/Server for the DICT protocol" +HOMEPAGE="http://www.dict.org/ https://sourceforge.net/projects/dict/" +SRC_URI="mirror://sourceforge/dict/${P}.tar.gz" + +LICENSE="GPL-1+ GPL-2+" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos" +IUSE="dbi judy minimal test" +RESTRICT="!test? ( test )" + +# <gawk-3.1.6 makes tests fail. +RDEPEND=" + acct-group/dictd + acct-user/dictd + >=sys-apps/coreutils-6.10 + dev-libs/libmaa + sys-libs/zlib + dbi? ( dev-db/libdbi ) + judy? ( dev-libs/judy ) +" +DEPEND="${RDEPEND}" +BDEPEND=" + >=sys-apps/gawk-3.1.6 + sys-devel/flex + app-alternatives/yacc + test? ( !~sys-apps/gawk-4.2.1 ) +" + +DOC_CONTENTS=" + To start and use ${PN} you need to emerge at least one dictionary from + the app-dicts category with the package name starting with 'dictd-'. + To install all available dictionaries, emerge app-dicts/dictd-dicts. + ${PN} will NOT start without at least one dictionary.\n + \nIf you are running systemd, you will need to review the instructions + explained in /etc/dict/dictd.conf comments. +" + +PATCHES=( + "${FILESDIR}"/dictd-1.10.11-colorit-nopp-fix.patch + "${FILESDIR}"/dictd-1.12.0-build.patch + "${FILESDIR}"/dictd-1.13.0-lex.patch + "${FILESDIR}"/dictd-1.13.0-libtool.patch # 818535 + "${FILESDIR}"/dictd-1.13.0-version.patch # 852884 + "${FILESDIR}"/dictd-1.13.0-stack-smashing.patch # 908998 +) + +src_prepare() { + default + + eautoreconf +} + +src_configure() { + econf \ + $(use_with dbi plugin-dbi) \ + $(use_with judy plugin-judy) \ + --libexecdir="${EPREFIX}"/usr/$(get_libdir)/${PN} \ + --sysconfdir="${EPREFIX}"/etc/dict +} + +src_compile() { + # -j1 for bug #743292 + + if use minimal; then + emake -j1 dictfmt dictzip dictzip + else + emake -j1 + fi +} + +src_test() { + use minimal && return 0 # All tests are for dictd which we don't build... + + if [[ ${EUID} -eq 0 ]]; then + # If dictd is run as root user (-userpriv) it drops its privileges to + # dictd user and group. Give dictd group write access to test directory. + chown :dictd "${WORKDIR}" "${S}/test" || die + chmod 770 "${WORKDIR}" "${S}/test" || die + fi + + emake -j1 test +} + +src_install() { + if use minimal; then + emake -j1 DESTDIR="${ED}" install.dictzip install.dict install.dictfmt + else + default + + # Don't install rfc2229.txt because it is non-free + dodoc doc/{dicf.ms,rfc.ms,rfc.sh} + dodoc doc/{security.doc,toc.ms} + dodoc -r examples + + # conf files. For dict.conf see below. + insinto /etc/dict + for f in dictd.conf site.info colorit.conf; do + doins "${FILESDIR}/1.10.11/${f}" + done + + # startups for dictd + newinitd "${FILESDIR}/1.10.11/dictd.initd" dictd + newconfd "${FILESDIR}/1.10.11/dictd.confd" dictd + systemd_dounit "${FILESDIR}"/${PN}.service + fi + + find "${ED}" -name '*.la' -o -name '*.a' -delete || die + + insinto /etc/dict + doins "${FILESDIR}"/1.10.11/dict.conf + + dodoc ANNOUNCE NEWS README TODO + + readme.gentoo_create_doc +} + +pkg_postinst() { + if has_version sys-apps/systemd; then + ewarn "The default location for dicts has changed! If you've modified your" + ewarn "systemd units locally to point into /usr/lib/dict, please update it" + ewarn "to point at /usr/share/dict now." + fi +} diff --git a/app-text/dictd/files/dictd-1.13.0-stack-smashing.patch b/app-text/dictd/files/dictd-1.13.0-stack-smashing.patch new file mode 100644 index 000000000000..e5747a6680af --- /dev/null +++ b/app-text/dictd/files/dictd-1.13.0-stack-smashing.patch @@ -0,0 +1,18 @@ +https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=611203 +https://bugs.gentoo.org/908998 +--- a/md5.h ++++ b/md5.h +@@ -1,11 +1,8 @@ + #ifndef MD5_H + #define MD5_H + +-#ifdef __alpha +-typedef unsigned int uint32; +-#else +-typedef unsigned long uint32; +-#endif ++#include <stdint.h> ++typedef uint32_t uint32; + + struct MD5Context { + uint32 buf[4]; |