diff options
-rw-r--r-- | app-text/discount/discount-2.2.7c-r1.ebuild | 71 | ||||
-rw-r--r-- | app-text/discount/files/discount-2.2.7c-C99-fix.patch | 38 |
2 files changed, 109 insertions, 0 deletions
diff --git a/app-text/discount/discount-2.2.7c-r1.ebuild b/app-text/discount/discount-2.2.7c-r1.ebuild new file mode 100644 index 000000000000..1ff52d6de8b1 --- /dev/null +++ b/app-text/discount/discount-2.2.7c-r1.ebuild @@ -0,0 +1,71 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit toolchain-funcs + +DESCRIPTION="A Markdown-to HTML translator written in C" +HOMEPAGE="http://www.pell.portland.or.us/~orc/Code/discount/" +SRC_URI="https://github.com/Orc/discount/archive/v${PV}.tar.gz -> ${P}.tar.gz" + +LICENSE="BSD" +SLOT="0/2.2.7" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~ia64 ~ppc ~ppc64 ~riscv ~sparc ~x86" +IUSE="minimal test" +RESTRICT="!test? ( test )" + +PATCHES=( + "${FILESDIR}"/${PN}-2.2.7c-C99-fix.patch +) + +src_prepare() { + default + + # for QA, we remove the Makefile’s usage of install -s. + # Drop ldconfig invocation. + # Force “librarian.sh” to respect LDFLAGS ($FLAGS should have CFLAGS + # at that point). + sed -i \ + -e '/INSTALL_PROGRAM/s,\$_strip ,,' \ + -e 's/\(LDCONFIG=\).*/\1:/' \ + -e 's/\(.\)\$FLAGS/& \1$LDFLAGS/' \ + configure.inc || die "sed configure.inc failed" +} + +src_configure() { + local configure_call=( + ./configure.sh + --libdir="${EPREFIX}/usr/$(get_libdir)" + --prefix="${EPREFIX}/usr" + --mandir="${EPREFIX}/usr/share/man" + --shared + --pkg-config + $(usex minimal '' --enable-all-features) + # Enable deterministic HTML generation behavior. Otherwise, will + # actually call rand() as part of its serialization code... + --debian-glitch + ) + einfo "Running ${configure_call[@]}" + CC="$(tc-getCC)" AR="$(tc-getAR)" \ + "${configure_call[@]}" || die +} + +src_compile() { + emake libmarkdown + emake +} + +src_install() { + emake \ + DESTDIR="${D}" \ + $(usex minimal install install.everything) \ + SAMPLE_PFX="${PN}-" +} + +pkg_postinst() { + if ! use minimal; then + elog 'Sample binaries with overly-generic names have been' + elog "prefixed with \"${PN}-\"." + fi +} diff --git a/app-text/discount/files/discount-2.2.7c-C99-fix.patch b/app-text/discount/files/discount-2.2.7c-C99-fix.patch new file mode 100644 index 000000000000..b08d3d41f844 --- /dev/null +++ b/app-text/discount/files/discount-2.2.7c-C99-fix.patch @@ -0,0 +1,38 @@ +FROM: https://github.com/Orc/discount/issues/283 +FROM: Atri Bhattacharya <badshah400@gmail.com> + +--- a/main.c ++++ b/main.c +@@ -100,14 +100,15 @@ free_it(char *object, void *ctx) + } + + char * +-external_codefmt(char *src, int len, char *lang) ++external_codefmt(const char *src, const int len, void *lang) + { + int extra = 0; + int i, x; + char *res; ++ char *ec_lang = (char *)lang; + +- if ( lang == 0 ) +- lang = "generic_code"; ++ if ( ec_lang == 0 ) ++ ec_lang = "generic_code"; + + for ( i=0; i < len; i++) { + if ( src[i] == '&' ) +@@ -117,11 +118,11 @@ external_codefmt(char *src, int len, cha + } + + /* 80 characters for the format wrappers */ +- if ( (res = malloc(len+extra+80+strlen(lang))) ==0 ) ++ if ( (res = malloc(len+extra+80+strlen(ec_lang))) ==0 ) + /* out of memory? drat! */ + return 0; + +- sprintf(res, "<pre><code class=\"%s\">\n", lang); ++ sprintf(res, "<pre><code class=\"%s\">\n", ec_lang); + x = strlen(res); + for ( i=0; i < len; i++ ) { + switch (src[i]) { |