commit: eda4f089d9527fb83009c654808bfeb67397eb9e Author: Nicolas PARLANT <nicolas.parlant <AT> parhuet <DOT> fr> AuthorDate: Wed Aug 20 16:32:30 2025 +0000 Commit: Sam James <sam <AT> gentoo <DOT> org> CommitDate: Wed Aug 27 05:53:30 2025 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=eda4f089
x11-misc/sent: add 1_p20230110, fix gcc15 create a post_release to fix bugs and gcc15 building call pkg-config to define libs and include-dir remove debug compiler flag Closes: https://bugs.gentoo.org/732426 Closes: https://bugs.gentoo.org/874708 Closes: https://bugs.gentoo.org/919444 Signed-off-by: Nicolas PARLANT <nicolas.parlant <AT> parhuet.fr> Part-of: https://github.com/gentoo/gentoo/pull/43509 Closes: https://github.com/gentoo/gentoo/pull/43509 Signed-off-by: Sam James <sam <AT> gentoo.org> x11-misc/sent/files/sent-1-fix_mk.patch | 31 +++ x11-misc/sent/files/sent-1_p20230110.patch | 295 +++++++++++++++++++++++++++++ x11-misc/sent/sent-1_p20230110.ebuild | 47 +++++ 3 files changed, 373 insertions(+) diff --git a/x11-misc/sent/files/sent-1-fix_mk.patch b/x11-misc/sent/files/sent-1-fix_mk.patch new file mode 100644 index 000000000000..4551b3a7f203 --- /dev/null +++ b/x11-misc/sent/files/sent-1-fix_mk.patch @@ -0,0 +1,31 @@ +use pkg-config to define libs/includes instead of old paths +remove debug compiler flag +--- a/config.mk ++++ b/config.mk +@@ -7,12 +7,11 @@ VERSION = 1 + PREFIX = /usr/local + MANPREFIX = ${PREFIX}/share/man + +-X11INC = /usr/X11R6/include +-X11LIB = /usr/X11R6/lib ++PKG_CONFIG ?= pkg-config + + # includes and libs +-INCS = -I. -I/usr/include -I/usr/include/freetype2 -I${X11INC} +-LIBS = -L/usr/lib -lc -lm -L${X11LIB} -lXft -lfontconfig -lX11 ++INCS = $(shell ${PKG_CONFIG} --print-errors --exists fontconfig xft x11 --cflags) ++LIBS = -lc -lm $(shell ${PKG_CONFIG} --print-errors --exists fontconfig xft x11 --libs) + # OpenBSD (uncomment) + #INCS = -I. -I${X11INC} -I${X11INC}/freetype2 + # FreeBSD (uncomment) +@@ -21,8 +20,8 @@ LIBS = -L/usr/lib -lc -lm -L${X11LIB} -lXft -lfontconfig -lX11 + + # flags + CPPFLAGS = -DVERSION=\"${VERSION}\" -D_XOPEN_SOURCE=600 +-CFLAGS += -g -std=c99 -pedantic -Wall ${INCS} ${CPPFLAGS} +-LDFLAGS += -g ${LIBS} ++CFLAGS += -std=c99 -pedantic -Wall ${INCS} ${CPPFLAGS} ++LDFLAGS += ${LIBS} + #CFLAGS += -std=c99 -pedantic -Wall -Os ${INCS} ${CPPFLAGS} + #LDFLAGS += ${LIBS} + diff --git a/x11-misc/sent/files/sent-1_p20230110.patch b/x11-misc/sent/files/sent-1_p20230110.patch new file mode 100644 index 000000000000..ca0446d3c74b --- /dev/null +++ b/x11-misc/sent/files/sent-1_p20230110.patch @@ -0,0 +1,295 @@ +create a post release with this patch (no tarball from the git webui) +git diff 4736a61..882d54c +update license +Correctly handle files that contain no slides +Avoid out-of-bounds access when a slide input line begins with \0 +free XImage before creating a new one +Makefile: be verbose +sent.1: fix some mandoc warnings +remove unnecessary NULL checks and add `void` for an empty parameter list +--- a/LICENSE ++++ b/LICENSE +@@ -1,6 +1,6 @@ + ISC-License + +-(c) 2014-2016 Markus Teich <[email protected]> ++(c) 2014-2017 Markus Teich <[email protected]> + + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above +@@ -14,15 +14,16 @@ WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + +-(c) 2015 Jonas Jelten <[email protected]> +-(c) 2015 Szabolcs Nagy <[email protected]> +-(c) 2015 Tony Lainson <[email protected]> +-(c) 2015 Jan Christoph Ebersbach <[email protected]> +-(c) 2015 Ivan Tham <[email protected]> +-(c) 2015 Quentin Rameau <[email protected]> +-(c) 2015 Alexis <[email protected]> +-(c) 2015 Dimitris Papastamos <[email protected]> +-(c) 2015 Grant Mathews <[email protected]> +-(c) 2015 David Phillips <[email protected]> +-(c) 2016 Laslo Hunhold <[email protected]> ++(c) 2016,2017 Laslo Hunhold <[email protected]> ++(c) 2016 ssd <[email protected]> + (c) 2016 Hiltjo Posthuma <[email protected]> ++(c) 2015 David Phillips <[email protected]> ++(c) 2015 Grant Mathews <[email protected]> ++(c) 2015 Dimitris Papastamos <[email protected]> ++(c) 2015 Alexis <[email protected]> ++(c) 2015 Quentin Rameau <[email protected]> ++(c) 2015 Ivan Tham <[email protected]> ++(c) 2015 Jan Christoph Ebersbach <[email protected]> ++(c) 2015 Tony Lainson <[email protected]> ++(c) 2015 Szabolcs Nagy <[email protected]> ++(c) 2015 Jonas Jelten <[email protected]> +--- a/Makefile ++++ b/Makefile +@@ -18,43 +18,35 @@ config.h: + cp config.def.h config.h + + .c.o: +- @echo CC $< +- @${CC} -c ${CFLAGS} $< ++ ${CC} -c ${CFLAGS} $< + + ${OBJ}: config.h config.mk + + sent: ${OBJ} +- @echo CC -o $@ +- @${CC} -o $@ ${OBJ} ${LDFLAGS} ++ ${CC} -o $@ ${OBJ} ${LDFLAGS} + + cscope: ${SRC} config.h +- @echo cScope +- @cscope -R -b || echo cScope not installed ++ cscope -R -b || echo cScope not installed + + clean: +- @echo cleaning +- @rm -f sent ${OBJ} sent-${VERSION}.tar.gz ++ rm -f sent ${OBJ} sent-${VERSION}.tar.gz + + dist: clean +- @echo creating dist tarball +- @mkdir -p sent-${VERSION} +- @cp -R LICENSE Makefile config.mk config.def.h ${SRC} sent-${VERSION} +- @tar -cf sent-${VERSION}.tar sent-${VERSION} +- @gzip sent-${VERSION}.tar +- @rm -rf sent-${VERSION} ++ mkdir -p sent-${VERSION} ++ cp -R LICENSE Makefile config.mk config.def.h ${SRC} sent-${VERSION} ++ tar -cf sent-${VERSION}.tar sent-${VERSION} ++ gzip sent-${VERSION}.tar ++ rm -rf sent-${VERSION} + + install: all +- @echo installing executable file to ${DESTDIR}${PREFIX}/bin +- @mkdir -p ${DESTDIR}${PREFIX}/bin +- @cp -f sent ${DESTDIR}${PREFIX}/bin +- @chmod 755 ${DESTDIR}${PREFIX}/bin/sent +- @echo installing manual page to ${DESTDIR}${MANPREFIX}/man1 +- @mkdir -p ${DESTDIR}${MANPREFIX}/man1 +- @cp sent.1 ${DESTDIR}${MANPREFIX}/man1/sent.1 +- @chmod 644 ${DESTDIR}${MANPREFIX}/man1/sent.1 ++ mkdir -p ${DESTDIR}${PREFIX}/bin ++ cp -f sent ${DESTDIR}${PREFIX}/bin ++ chmod 755 ${DESTDIR}${PREFIX}/bin/sent ++ mkdir -p ${DESTDIR}${MANPREFIX}/man1 ++ cp sent.1 ${DESTDIR}${MANPREFIX}/man1/sent.1 ++ chmod 644 ${DESTDIR}${MANPREFIX}/man1/sent.1 + + uninstall: +- @echo removing executable file from ${DESTDIR}${PREFIX}/bin +- @rm -f ${DESTDIR}${PREFIX}/bin/sent ++ rm -f ${DESTDIR}${PREFIX}/bin/sent + + .PHONY: all options clean dist install uninstall cscope +--- a/sent.1 ++++ b/sent.1 +@@ -1,5 +1,6 @@ +-.Dd 2016-08-12 ++.Dd August 12, 2016 + .Dt SENT 1 ++.Os + .Sh NAME + .Nm sent + .Nd simple plaintext presentation tool +@@ -10,13 +11,14 @@ + .Sh DESCRIPTION + .Nm + is a simple plain text presentation tool for X. sent does not need LaTeX, +-LibreOffice or any other fancy file format. Instead, sent reads plain text +-describing the slides. sent can also draw images. ++LibreOffice or any other fancy file format. ++Instead, sent reads plain text describing the slides. sent can also draw ++images. + .Pp +-Every paragraph represents a slide in the presentation. Especially for +-presentations using the Takahashi method this is very nice and allows +-you to write the presentation for a quick lightning talk within a +-few minutes. ++Every paragraph represents a slide in the presentation. ++Especially for presentations using the Takahashi method this is very nice and ++allows you to write the presentation for a quick lightning talk within a few ++minutes. + .Sh OPTIONS + .Bl -tag -width Ds + .It Fl v +@@ -36,7 +38,8 @@ Go to previous slide, if existent. + .It Sy Escape | q + Quit. + .It Sy r +-Reload the slides. Only works on file input. ++Reload the slides. ++Only works on file input. + .It Sy Right | Return | Space | l | j | Down | Next | n + Go to next slide, if existent. + .It Sy Left | Backspace | h | k | Up | Prior | p +@@ -63,6 +66,7 @@ without interpreting them. + .Sh CUSTOMIZATION + .Nm + can be customized by creating a custom config.h and (re)compiling the +-source code. This keeps it fast, secure and simple. ++source code. ++This keeps it fast, secure and simple. + .Sh SEE ALSO + .Xr 2ff 1 +--- a/sent.c ++++ b/sent.c +@@ -99,12 +99,12 @@ static void load(FILE *fp); + static void advance(const Arg *arg); + static void quit(const Arg *arg); + static void resize(int width, int height); +-static void run(); +-static void usage(); +-static void xdraw(); +-static void xhints(); +-static void xinit(); +-static void xloadfonts(); ++static void run(void); ++static void usage(void); ++static void xdraw(void); ++static void xhints(void); ++static void xinit(void); ++static void xloadfonts(void); + + static void bpress(XEvent *); + static void cmessage(XEvent *); +@@ -216,8 +216,7 @@ ffload(Slide *s) + s->img->bufwidth = ntohl(*(uint32_t *)&hdr[8]); + s->img->bufheight = ntohl(*(uint32_t *)&hdr[12]); + +- if (s->img->buf) +- free(s->img->buf); ++ free(s->img->buf); + /* internally the image is stored in 888 format */ + s->img->buf = ecalloc(s->img->bufwidth * s->img->bufheight, strlen("888")); + +@@ -270,6 +269,9 @@ ffprepare(Image *img) + if (depth < 24) + die("sent: Display color depths < 24 not supported"); + ++ if (img->ximg) ++ XDestroyImage(img->ximg); ++ + if (!(img->ximg = XCreateImage(xw.dpy, CopyFromParent, depth, ZPixmap, 0, + NULL, width, height, 32, 0))) + die("sent: Unable to create XImage"); +@@ -428,6 +430,10 @@ load(FILE *fp) + maxlines = 0; + memset((s = &slides[slidecount]), 0, sizeof(Slide)); + do { ++ /* if there's a leading null, we can't do blen-1 */ ++ if (buf[0] == '\0') ++ continue; ++ + if (buf[0] == '#') + continue; + +@@ -457,6 +463,9 @@ load(FILE *fp) + if (!p) + break; + } ++ ++ if (!slidecount) ++ die("sent: No slides in file"); + } + + void +@@ -489,7 +498,7 @@ resize(int width, int height) + } + + void +-run() ++run(void) + { + XEvent ev; + +@@ -511,7 +520,7 @@ run() + } + + void +-xdraw() ++xdraw(void) + { + unsigned int height, width, i; + Image *im = slides[idx].img; +@@ -539,7 +548,7 @@ xdraw() + } + + void +-xhints() ++xhints(void) + { + XClassHint class = {.res_name = "sent", .res_class = "presenter"}; + XWMHints wm = {.flags = InputHint, .input = True}; +@@ -557,7 +566,7 @@ xhints() + } + + void +-xinit() ++xinit(void) + { + XTextProperty prop; + unsigned int i; +@@ -601,7 +610,7 @@ xinit() + } + + void +-xloadfonts() ++xloadfonts(void) + { + int i, j; + char *fstrs[LEN(fontfallbacks)]; +@@ -620,8 +629,7 @@ xloadfonts() + } + + for (j = 0; j < LEN(fontfallbacks); j++) +- if (fstrs[j]) +- free(fstrs[j]); ++ free(fstrs[j]); + } + + void +@@ -670,7 +678,7 @@ configure(XEvent *e) + } + + void +-usage() ++usage(void) + { + die("usage: %s [file]", argv0); + } +@@ -695,9 +703,6 @@ main(int argc, char *argv[]) + load(fp); + fclose(fp); + +- if (!slidecount) +- usage(); +- + xinit(); + run(); + diff --git a/x11-misc/sent/sent-1_p20230110.ebuild b/x11-misc/sent/sent-1_p20230110.ebuild new file mode 100644 index 000000000000..0f591beb8f13 --- /dev/null +++ b/x11-misc/sent/sent-1_p20230110.ebuild @@ -0,0 +1,47 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit savedconfig toolchain-funcs + +DESCRIPTION="Simple plaintext presentation tool" +HOMEPAGE="https://tools.suckless.org/sent/" +SRC_URI="https://dl.suckless.org/tools/${PN}-1.tar.gz" +S="${WORKDIR}" + +LICENSE="MIT" +SLOT="0" +KEYWORDS="~amd64 ~riscv" + +DEPEND=" + media-libs/fontconfig + x11-libs/libX11 + x11-libs/libXft +" +RDEPEND=" + ${DEPEND} + !savedconfig? ( media-gfx/farbfeld ) +" +BDEPEND="virtual/pkgconfig" + +PATCHES=( + "${FILESDIR}"/${PN}-1-fix_mk.patch + "${FILESDIR}"/${P}.patch +) + +src_prepare() { + default + + restore_config config.h +} + +src_compile() { + tc-export CC PKG_CONFIG + default +} + +src_install() { + emake DESTDIR="${D}" PREFIX="${EPREFIX}/usr" install + save_config config.h +}
