Date: Sat, 2 Oct 2021 23:15:21 GMT From: Daniel Engberg <diizzy@FreeBSD.org> To: ports-committers@FreeBSD.org, dev-commits-ports-all@FreeBSD.org, dev-commits-ports-main@FreeBSD.org Subject: git: b86a22f00dd1 - main - sysutils/root-tail: Resurrect port, Print text directly to X11 root window Message-ID: <202110022315.192NFL0B027790@gitrepo.freebsd.org>
next in thread | raw e-mail | index | archive | help
The branch main has been updated by diizzy: URL: https://cgit.FreeBSD.org/ports/commit/?id=b86a22f00dd1e0c507b160e91feb78d06c58f4d8 commit b86a22f00dd1e0c507b160e91feb78d06c58f4d8 Author: Boris Korzun <drtr0jan@yandex.ru> AuthorDate: 2021-10-02 23:11:11 +0000 Commit: Daniel Engberg <diizzy@FreeBSD.org> CommitDate: 2021-10-02 23:14:43 +0000 sysutils/root-tail: Resurrect port, Print text directly to X11 root window Simple utility to tail files/logs to a root X window. Useful for keeping tabs on log files in X without having an additional terminal window open. Removed in commit 0786acb3155523a38d1442f3c16ca56750f1db04 due to being expired. It previously used roottail but is now using root-tail to follow upstream naming. Additional patches obtained from Debian and Fedora repositories Sources: https://salsa.debian.org/debian/root-tail/-/blob/master/debian/patches/do-not-chown-manually.patch https://salsa.debian.org/debian/root-tail/-/blob/master/debian/patches/fix-linker-and-compiler-options.patch https://src.fedoraproject.org/rpms/root-tail/blob/rawhide/f/root-tail-1.3-Generate-Expose-events-when-clearing-a-window.patch https://src.fedoraproject.org/rpms/root-tail/blob/rawhide/f/root-tail-1.3-Respect-width-and-height-unsigness-in-arithmetics.patch PR: 258498 Approved by: arrowd (mentor) Differential Revision: https://reviews.freebsd.org/D32032 --- MOVED | 2 +- sysutils/Makefile | 1 + sysutils/root-tail/Makefile | 19 +++++ sysutils/root-tail/distinfo | 3 + sysutils/root-tail/files/patch-Makefile | 41 ++++++++++ sysutils/root-tail/files/patch-root-tail.c | 126 +++++++++++++++++++++++++++++ sysutils/root-tail/pkg-descr | 5 ++ 7 files changed, 196 insertions(+), 1 deletion(-) diff --git a/MOVED b/MOVED index 9857f582200a..d3df73c3787e 100644 --- a/MOVED +++ b/MOVED @@ -14791,7 +14791,6 @@ sysutils/phantom||2020-05-05|Has expired: Broken for more than 6 months sysutils/ptools||2020-05-05|Has expired: Broken for more than 6 months sysutils/realsync||2020-05-05|Has expired: Broken for more than 6 months sysutils/rmonitor||2020-05-05|Has expired: Broken for more than 6 months -sysutils/roottail||2020-05-05|Has expired: Broken for more than 6 months sysutils/sb16config||2020-05-05|Has expired: Broken for more than 6 months sysutils/sbase||2020-05-05|Has expired: Broken for more than 6 months sysutils/setquota||2020-05-05|Has expired: Broken for more than 6 months @@ -16484,6 +16483,7 @@ net-mgmt/zabbix52-frontend||2021-09-19|Has expired: Unsupported by upstream net-mgmt/zabbix52-java||2021-09-19|Has expired: Unsupported by upstream net-mgmt/zabbix52-proxy||2021-09-19|Has expired: Unsupported by upstream net-mgmt/zabbix52-server||2021-09-19|Has expired: Unsupported by upstream +sysutils/roottail|sysutils/root-tail|2021-09-26|Renamed to match upstream devel/py-pyyaml-env-tag|devel/py-pyyaml_env_tag|2021-09-28|Renamed to match upstream naming mail/opensmtpd-devel|mail/opensmtpd|2021-09-28|Has expired: move to offical releases devel/erlang-exmpp||2021-09-30|Removed, last upstream patches over 10 years ago diff --git a/sysutils/Makefile b/sysutils/Makefile index 273617dd5143..910f92f3630e 100644 --- a/sysutils/Makefile +++ b/sysutils/Makefile @@ -1127,6 +1127,7 @@ SUBDIR += rmlint SUBDIR += rocr SUBDIR += roct + SUBDIR += root-tail SUBDIR += rovclock SUBDIR += rpi-firmware SUBDIR += rset diff --git a/sysutils/root-tail/Makefile b/sysutils/root-tail/Makefile new file mode 100644 index 000000000000..d501f55a7533 --- /dev/null +++ b/sysutils/root-tail/Makefile @@ -0,0 +1,19 @@ +PORTNAME= root-tail +DISTVERSION= 1.3 +CATEGORIES= sysutils +MASTER_SITES= http://dist.schmorp.de/${PORTNAME}/ + +MAINTAINER= drtr0jan@yandex.ru +COMMENT= Print text directly to X11 root window + +LICENSE= GPLv2+ + +LIB_DEPENDS= libXfixes.so:x11/libXfixes + +USES= imake xorg +USE_XORG= x11 xext + +PLIST_FILES= bin/root-tail \ + man/man1/root-tail.1.gz + +.include <bsd.port.mk> diff --git a/sysutils/root-tail/distinfo b/sysutils/root-tail/distinfo new file mode 100644 index 000000000000..8b49cd96fa4e --- /dev/null +++ b/sysutils/root-tail/distinfo @@ -0,0 +1,3 @@ +TIMESTAMP = 1633216089 +SHA256 (root-tail-1.3.tar.gz) = 460475323404460919ff48c90f7b3ebfdb66f3b9961f54dd73dd172178c07712 +SIZE (root-tail-1.3.tar.gz) = 19068 diff --git a/sysutils/root-tail/files/patch-Makefile b/sysutils/root-tail/files/patch-Makefile new file mode 100644 index 000000000000..5fddee879635 --- /dev/null +++ b/sysutils/root-tail/files/patch-Makefile @@ -0,0 +1,41 @@ +Sources: +https://salsa.debian.org/debian/root-tail/-/blob/master/debian/patches/do-not-chown-manually.patch +https://salsa.debian.org/debian/root-tail/-/blob/master/debian/patches/fix-linker-and-compiler-options.patch + +--- Makefile.orig 2019-06-16 00:57:40 UTC ++++ Makefile +@@ -1,9 +1,5 @@ +-COPTS = -g ++LDFLAGS += -lX11 -lXfixes + +-CFLAGS = -Wall $(COPTS) +- +-LDFLAGS = -L/usr/X11R6/lib -lX11 -lXfixes +- + PREFIX = $(DESTDIR)/usr + BINDIR = $(PREFIX)/bin + MANDIR = $(PREFIX)/share/man/man1 +@@ -14,7 +10,7 @@ SOURCES = root-tail.c + all: root-tail man + + root-tail: $(SOURCES) config.h +- $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $(SOURCES) ++ $(CC) $(CFLAGS) $(CPPFLAGS) -o $@ $(SOURCES) $(LDFLAGS) + + man: root-tail.1.gz + +@@ -26,10 +22,10 @@ clean: + rm -f root-tail root-tail.o root-tail.1.gz + + install: all +- install -D -o root -g root root-tail $(BINDIR) +- install -D -m 0644 -o root -g root root-tail.1.gz $(MANDIR) +- install -D -m 0644 -o root -g root README $(DOCDIR) +- install -m 0644 -o root -g root Changes $(DOCDIR) ++ install -D root-tail $(BINDIR) ++ install -D -m 0644 root-tail.1.gz $(MANDIR) ++ install -D -m 0644 README $(DOCDIR) ++ install -m 0644 Changes $(DOCDIR) + + uninstall: + rm -f $(BINDIR)/root-tail $(MANDIR)/root-tail.1.gz diff --git a/sysutils/root-tail/files/patch-root-tail.c b/sysutils/root-tail/files/patch-root-tail.c new file mode 100644 index 000000000000..8f4fe0f4a82c --- /dev/null +++ b/sysutils/root-tail/files/patch-root-tail.c @@ -0,0 +1,126 @@ +Sources: +https://src.fedoraproject.org/rpms/root-tail/blob/rawhide/f/root-tail-1.3-Generate-Expose-events-when-clearing-a-window.patch +https://src.fedoraproject.org/rpms/root-tail/blob/rawhide/f/root-tail-1.3-Respect-width-and-height-unsigness-in-arithmetics.patch + +--- root-tail.c.orig 2019-06-16 00:46:04 UTC ++++ root-tail.c +@@ -38,6 +38,7 @@ + #include <locale.h> + #include <ctype.h> + #include <stdarg.h> ++#include <limits.h> + #include <X11/Xlib.h> + #include <X11/Xatom.h> + #include <X11/Xutil.h> +@@ -118,7 +119,7 @@ static int continuation_length; + /* HACK - ideally listlen will start at however many '~'s will fit on + * the screen */ + static unsigned int width = STD_WIDTH, height = STD_HEIGHT; +-static int listlen = 50; ++static unsigned int listlen = 50; + static int win_x = LOC_X, win_y = LOC_Y; + static int effect_x_space, effect_y_space; /* how much space does shading / outlining take up */ + static int effect_x_offset, effect_y_offset; /* and how does it offset the usable space */ +@@ -206,7 +207,7 @@ force_refresh (int dummy) + static void + blank_window (int dummy) + { +- XClearArea (disp, root, win_x, win_y, width + MARGIN_OF_ERROR, height, False); ++ XClearArea (disp, root, win_x, win_y, width + MARGIN_OF_ERROR, height, True); + XFlush (disp); + exit (0); + } +@@ -369,7 +370,7 @@ InitWindow (void) + { + fprintf(stderr, "\n the display isn't tall enough to display a single line in font '%s'\n", + e->fontname); +- fprintf(stderr, "\n the geometry in use is %d pixels tall\n", height); ++ fprintf(stderr, "\n the geometry in use is %u pixels tall\n", height); + fprintf(stderr, "\n font '%s' is %d pixels tall\n", e->fontname, e->font_height); + if (effect_y_space) + fprintf(stderr, "\n the shade or outline options need an extra %d pixel%s of vertical space\n", +@@ -445,8 +446,8 @@ draw_text (Display *disp, Window root, GC WinGC, int x + static void + refresh (int miny, int maxy, int clear, int refresh_all) + { +- int lin = 0; +- int space = height; ++ unsigned int lin = 0; ++ int space = (int)height; + int offset; + unsigned long black_color = GetColor ("black"); + struct line_node *line; +@@ -462,7 +463,7 @@ refresh (int miny, int maxy, int clear, int refresh_al + maxy -= win_y; + + if (clear && !opt_noflicker) +- XClearArea (disp, root, win_x, win_y, width + MARGIN_OF_ERROR, height, False); ++ XClearArea (disp, root, win_x, win_y, width + MARGIN_OF_ERROR, height, True); + + for (line = linelist; line; line = line->next, lin++) + { +@@ -470,7 +471,7 @@ refresh (int miny, int maxy, int clear, int refresh_al + + if (opt_noflicker && lin >= listlen) + { +- int i = listlen; ++ unsigned int i = listlen; + listlen *= 1.5; + display = xrealloc(display, listlen * sizeof(struct displaymatrix)); + for (; i < listlen; i++) +@@ -535,7 +536,7 @@ refresh (int miny, int maxy, int clear, int refresh_al + width, step_per_line); + #else /* DEBUG */ + XClearArea (disp, root, win_x, win_y + offset - line->logfile->font_ascent, +- width + MARGIN_OF_ERROR, step_per_line, False); ++ width + MARGIN_OF_ERROR, step_per_line, True); + #endif /* DEBUG */ + } + } +@@ -584,7 +585,7 @@ refresh (int miny, int maxy, int clear, int refresh_al + width, space); + #else /* DEBUG */ + XClearArea (disp, root, win_x, win_y + offset - (opt_reverse ? 0 : space), +- width + MARGIN_OF_ERROR, space, False); ++ width + MARGIN_OF_ERROR, space, True); + #endif + } + +@@ -1112,7 +1113,7 @@ append_to_existing_line (char *str, struct logfile_ent + static void + main_loop (void) + { +- int lin; ++ unsigned int lin; + time_t lastreload; + Region region = XCreateRegion (); + XEvent xev; +@@ -1325,8 +1326,26 @@ main (int argc, char *argv[]) + else if (!strcmp (arg, "-V")) + display_version (); + else if (!strcmp (arg, "-g") || !strcmp (arg, "-geometry")) +- geom_mask = +- XParseGeometry (argv[++i], &win_x, &win_y, &width, &height); ++ { ++ geom_mask = ++ XParseGeometry (argv[++i], &win_x, &win_y, &width, &height); ++ /* Width and height are used in various expressions assigned to ++ * signed or unsigned integers. The assignments could overflow. */ ++ if (width < 1 || width > INT_MAX - MARGIN_OF_ERROR || width > UINT_MAX) ++ { ++ fprintf (stderr, ++ "The geometry width is too small or too large: '%u'.\n", ++ width); ++ exit (1); ++ } ++ if (height < 1 || height > UINT_MAX) ++ { ++ fprintf (stderr, ++ "The geometry height is too small or too large: '%u'.\n", ++ height); ++ exit (1); ++ } ++ } + else if (!strcmp (arg, "-display")) + dispname = argv[++i]; + else if (!strcmp (arg, "-cont")) diff --git a/sysutils/root-tail/pkg-descr b/sysutils/root-tail/pkg-descr new file mode 100644 index 000000000000..39d31b664d2d --- /dev/null +++ b/sysutils/root-tail/pkg-descr @@ -0,0 +1,5 @@ +Simple utility to tail files/logs to a root X window. +Useful for keeping tabs on log files in X without having +an additional terminal window open. + +WWW: http://software.schmorp.de/pkg/root-tail.html
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202110022315.192NFL0B027790>