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
+}

Reply via email to