diff options
author | V3n3RiX <venerix@redcorelinux.org> | 2017-08-06 02:39:58 +0100 |
---|---|---|
committer | V3n3RiX <venerix@redcorelinux.org> | 2017-08-06 02:39:58 +0100 |
commit | a485d72cc6d5f0c97dc9572a4900181d22891bb8 (patch) | |
tree | b5578c183624983311bd752aea33dc5cf63c7d6b /media-gfx/splashutils/files | |
parent | d0890f8e94a3770632fa931be19c12c9cffc6be9 (diff) |
media-gfx/splashutils : import from gentoo tree, adjust it to modern openrc
Diffstat (limited to 'media-gfx/splashutils/files')
7 files changed, 486 insertions, 0 deletions
diff --git a/media-gfx/splashutils/files/splashutils-1.5.4.4-freetype-bz2.patch b/media-gfx/splashutils/files/splashutils-1.5.4.4-freetype-bz2.patch new file mode 100644 index 00000000..3438fd52 --- /dev/null +++ b/media-gfx/splashutils/files/splashutils-1.5.4.4-freetype-bz2.patch @@ -0,0 +1,15 @@ +=== modified file 'fbtruetype/Makefile' +--- fbtruetype/Makefile 2011-10-01 14:10:17 +0000 ++++ fbtruetype/Makefile 2011-10-01 14:15:02 +0000 +@@ -23,8 +23,8 @@ + OBJECTS = fbtruetype.o messages.o console.o ttf.o luxisri.o + + LDFLAGS += -L$(LIBDIR) +-LIBSS = $(LIBDIR)/libfreetype.a $(LIBDIR)/libz.a -lm +-LIBSD = -lfreetype -lm ++LIBSS = $(shell pkg-config freetype2 --libs --static) -lm ++LIBSD = $(shell pkg-config freetype2 --libs) -lm + + CFLAGS += -I/usr/include/freetype2 + COMPILE = $(CC) $(CFLAGS) + diff --git a/media-gfx/splashutils/files/splashutils-1.5.4.4-ft25.patch b/media-gfx/splashutils/files/splashutils-1.5.4.4-ft25.patch new file mode 100644 index 00000000..b5194d54 --- /dev/null +++ b/media-gfx/splashutils/files/splashutils-1.5.4.4-ft25.patch @@ -0,0 +1,42 @@ +Gentoo-bug: https://bugs.gentoo.org/506124 +Signed-off-by: Lars Wendler (Polynomial-C) +Modified-by: Sergey Popov (Pinkbyte) +--- miscsplashutils-0.1.8/fbtruetype/ttf.c ++++ miscsplashutils-0.1.8/fbtruetype/ttf.c +@@ -13,8 +13,8 @@ + #include <ft2build.h> + #include FT_FREETYPE_H + /* #include <freetype/freetype.h> */ +-#include <freetype/ftoutln.h> +-#include <freetype/ttnameid.h> ++#include FT_OUTLINE_H ++#include FT_TRUETYPE_IDS_H + + #include "ttf.h" + +--- splashutils-1.5.4.4/src/ttf.c 2015-02-01 11:35:04.330595381 +0300 ++++ splashutils-1.5.4.4/src/ttf.c 2015-02-01 11:35:24.287596342 +0300 +@@ -25,8 +25,8 @@ + #include <assert.h> + + #include <ft2build.h> +-#include <freetype/ftoutln.h> +-#include <freetype/ttnameid.h> ++#include FT_OUTLINE_H ++#include FT_TRUETYPE_IDS_H + + #include "common.h" + #include "render.h" +--- splashutils-1.5.4.4/src/ttf.h 2015-02-01 11:38:33.852605470 +0300 ++++ splashutils-1.5.4.4/src/ttf.h 2015-02-01 11:38:52.504606368 +0300 +@@ -1,8 +1,8 @@ + #ifndef _TTF_H + #define _TTF_H + #include <ft2build.h> +-#include <freetype/ftoutln.h> +-#include <freetype/ttnameid.h> ++#include FT_OUTLINE_H ++#include FT_TRUETYPE_IDS_H + + #define CACHED_METRICS 0x10 + #define CACHED_BITMAP 0x01 diff --git a/media-gfx/splashutils/files/splashutils-1.5.4.4-gentoo-typo-fix.patch b/media-gfx/splashutils/files/splashutils-1.5.4.4-gentoo-typo-fix.patch new file mode 100644 index 00000000..4b8d5137 --- /dev/null +++ b/media-gfx/splashutils/files/splashutils-1.5.4.4-gentoo-typo-fix.patch @@ -0,0 +1,19 @@ +commit 74dda8291efae78f00bb781148c8fd4fccaeb764 +Author: MichaĆ Januszewski <spock@gentoo.org> +Date: Tue Jun 14 23:23:33 2011 +0200 + + Fix typo in the Gentoo initscript. + +diff --git a/gentoo/init-fbcondecor b/gentoo/init-fbcondecor +index b66f40a..ce921b6 100755 +--- a/gentoo/init-fbcondecor ++++ b/gentoo/init-fbcondecor +@@ -12,7 +12,7 @@ start() { + splash_setup + + if [ -z "${FBCONDECOR_TTYS}" ]; then +- FBCONDECOR_TTYS=$(seq 1 "${rc_tty_number:-${RC_TTY_NUMBER}:-12}") ++ FBCONDECOR_TTYS=$(seq 1 "${rc_tty_number:-${RC_TTY_NUMBER:-12}}") + fi + + local err=0 diff --git a/media-gfx/splashutils/files/splashutils-1.5.4.4-multi-keyboard.patch b/media-gfx/splashutils/files/splashutils-1.5.4.4-multi-keyboard.patch new file mode 100644 index 00000000..23f15fd8 --- /dev/null +++ b/media-gfx/splashutils/files/splashutils-1.5.4.4-multi-keyboard.patch @@ -0,0 +1,381 @@ +diff -ru a/core/src/common.h b/core/src/common.h +--- a/core/src/common.h 2013-01-11 06:35:35.000000000 +0200 ++++ b/core/src/common.h 2013-01-11 06:34:08.000000000 +0200 +@@ -34,6 +34,10 @@ + #define PATH_PROC FBSPLASH_DIR"/proc" + #endif + ++/* Maximum number of keyboard connected to a machine. ++ * The number is big (8) to be on the safe side */ ++#define MAX_KBDS 8 ++ + /* Useful short-named types */ + typedef u_int8_t u8; + typedef u_int16_t u16; +diff -ru a/core/src/daemon.c b/core/src/daemon.c +--- a/core/src/daemon.c 2013-01-11 06:35:35.000000000 +0200 ++++ b/core/src/daemon.c 2013-01-11 06:34:08.000000000 +0200 +@@ -20,6 +20,7 @@ + #include <sys/ioctl.h> + #include <sys/wait.h> + #include <sys/mman.h> ++#include <sys/select.h> + #include <pthread.h> + #include <errno.h> + #include <dirent.h> +@@ -29,6 +30,8 @@ + #include "common.h" + #include "daemon.h" + ++#define EV_BUF_SIZE 8 ++ + /* Threading structures */ + pthread_mutex_t mtx_tty = PTHREAD_MUTEX_INITIALIZER; + pthread_mutex_t mtx_paint = PTHREAD_MUTEX_INITIALIZER; +@@ -41,7 +44,8 @@ + int ctty = CTTY_VERBOSE; + + /* File descriptors */ +-int fd_evdev = -1; ++int fd_evdevs[MAX_KBDS]; ++int evdev_count = 0; + #ifdef CONFIG_GPM + int fd_gpm = -1; + #endif +@@ -51,7 +55,6 @@ + + /* Misc settings */ + char *notify[2]; +-char *evdev = NULL; + + /* Service list */ + list svcs = { NULL, NULL }; +@@ -400,56 +403,83 @@ + } + } + ++__u16 get_ev_key_pressed(int fd_evdev, int ev_buf_size, ++ struct input_event *ev_buf) { ++ size_t rb; ++ int i; ++ rb = read(fd_evdev, ev_buf, sizeof(struct input_event) * ev_buf_size); ++ if (rb < (int) sizeof(struct input_event)) ++ return 0; ++ ++ for (i = 0; i < (int) (rb / sizeof(struct input_event)); i++) { ++ if (ev_buf[i].type != EV_KEY || ev_buf[i].value != 0) ++ continue; ++ return ev_buf[i].code; ++ } ++} ++ + /* + * Event device monitor thread. + */ + void* thf_switch_evdev(void *unused) + { +- int i, h, oldstate; +- size_t rb; +- struct input_event ev[8]; ++ int i, h, oldstate, nfds, retval, fd_evdev; ++ fd_set rfds; ++ struct input_event ev_buf[EV_BUF_SIZE]; ++ __u16 key_pressed = 0; + + while (1) { +- rb = read(fd_evdev, ev, sizeof(struct input_event)*8); +- if (rb < (int) sizeof(struct input_event)) +- continue; ++ nfds = 0, fd_evdev = -1; ++ FD_ZERO(&rfds); ++ for (i = 0;i < evdev_count;i++) { ++ FD_SET(fd_evdevs[i], &rfds); ++ nfds = max(nfds, fd_evdevs[i]); ++ } + +- for (i = 0; i < (int) (rb / sizeof(struct input_event)); i++) { +- if (ev[i].type != EV_KEY || ev[i].value != 0) +- continue; ++ nfds++; + +- switch (ev[i].code) { +- case KEY_F2: +- pthread_setcancelstate(PTHREAD_CANCEL_DISABLE, &oldstate); +- pthread_mutex_lock(&mtx_paint); +- if (ctty == CTTY_SILENT) { +- h = config.tty_v; +- } else { +- h = config.tty_s; ++ retval = select(nfds, &rfds, NULL, NULL, NULL); ++ if (retval == -1) ++ perror("select()"); ++ else if (retval) { ++ for (i = 0;i < evdev_count;i++) { ++ if (FD_ISSET(fd_evdevs[i], &rfds)) { ++ fd_evdev = fd_evdevs[i]; ++ break; + } +- pthread_mutex_unlock(&mtx_paint); +- pthread_setcancelstate(oldstate, NULL); ++ } ++ key_pressed = get_ev_key_pressed(fd_evdev, EV_BUF_SIZE, ev_buf); ++ if (key_pressed == -1) ++ continue; ++ switch (key_pressed) { ++ case KEY_F2: ++ pthread_setcancelstate(PTHREAD_CANCEL_DISABLE, &oldstate); ++ pthread_mutex_lock(&mtx_paint); ++ h = (ctty == CTTY_SILENT) ? config.tty_v : config.tty_s; ++ pthread_mutex_unlock(&mtx_paint); ++ pthread_setcancelstate(oldstate, NULL); ++ ++ /* Switch to the new tty. This ioctl has to be done on ++ * the silent tty. Sometimes init will mess with the ++ * settings of the verbose console which will prevent ++ * console switching from working properly. ++ * ++ * Don't worry about fd_tty[config.tty_s] ++ * not being protected by a mutex -- ++ * this thread is always killed before any changes ++ * are made to fd_tty[config.tty_s]. ++ */ ++ ioctl(fd_tty[config.tty_s], VT_ACTIVATE, h); ++ break; + +- /* Switch to the new tty. This ioctl has to be done on +- * the silent tty. Sometimes init will mess with the +- * settings of the verbose console which will prevent +- * console switching from working properly. +- * +- * Don't worry about fd_tty[config.tty_s] not being protected by a +- * mutex -- this thread is always killed before any changes +- * are made to fd_tty[config.tty_s]. +- */ +- ioctl(fd_tty[config.tty_s], VT_ACTIVATE, h); +- break; +- +- case KEY_F3: +- config.textbox_visible = !config.textbox_visible; +- invalidate_textbox(theme, config.textbox_visible); +- cmd_paint(NULL); +- break; ++ case KEY_F3: ++ config.textbox_visible = !config.textbox_visible; ++ invalidate_textbox(theme, config.textbox_visible); ++ cmd_paint(NULL); ++ break; + } +- } +- } ++ } /* end of else if (retval) */ ++ } /* end of while(1) */ + + pthread_exit(NULL); + } +@@ -519,7 +549,7 @@ + + /* Do we have to start a monitor thread? */ + if (update & UPD_MON) { +- if (fd_evdev != -1) { ++ if (evdev_count >= 0) { + if (pthread_create(&th_switchmon, NULL, &thf_switch_evdev, NULL)) { + iprint(MSG_ERROR, "Evdev monitor thread creation failed.\n"); + exit(3); +diff -ru a/core/src/daemon.h b/core/src/daemon.h +--- a/core/src/daemon.h 2013-01-11 06:35:35.000000000 +0200 ++++ b/core/src/daemon.h 2013-01-11 06:34:08.000000000 +0200 +@@ -40,13 +40,13 @@ + extern int fd_tty_s, fd_tty1, fd_tty0; + + /* +- * Event device on which the daemon listens for F2 keypresses. +- * The proper device has to be detected by an external program and ++ * Event devices on which the daemon listens for F2 keypresses. ++ * The proper devices have to be detected by an external program and + * then enabled by sending an appropriate command to the splash + * daemon. + */ +-extern int fd_evdev; +-extern char *evdev; ++extern int fd_evdevs[]; ++extern int evdev_count; + + #ifdef CONFIG_GPM + #include <gpm.h> +diff -ru a/core/src/daemon_cmd.c b/core/src/daemon_cmd.c +--- a/core/src/daemon_cmd.c 2013-01-11 06:35:35.000000000 +0200 ++++ b/core/src/daemon_cmd.c 2013-01-11 06:34:08.000000000 +0200 +@@ -239,18 +239,35 @@ + */ + int cmd_set_event_dev(void **args) + { +- if (evdev) +- free(evdev); +- +- evdev = strdup(args[0]); ++ char *evdevs; ++ char *evdev; ++ int i, j, fd_evdev = -1; + + pthread_cancel(th_switchmon); ++ for (i = 0;i < evdev_count;i++) { ++ close(fd_evdevs[i]); ++ } ++ evdevs = strdup(args[1]); ++ evdev_count = *(int*)args[0]; ++ j = 0; ++ for (i = 0;i < evdev_count;i++, evdevs = NULL) { ++ evdev = strtok(evdevs, ","); ++ fd_evdev = open(evdev, O_RDONLY); ++ if (fd_evdev != -1) { ++ fd_evdevs[j] = fd_evdev; ++ j++; ++ } else { ++ perror("failed to open event device"); ++ } ++ } ++ if (j == 0) { /* all input devices failed to open */ ++ evdev_count = -1; ++ free(evdevs); ++ return -1; ++ } + +- if (fd_evdev != -1) +- close(fd_evdev); +- +- fd_evdev = open(evdev, O_RDONLY); +- ++ evdev_count = j; ++ free(evdevs); + switchmon_start(UPD_MON, config.tty_s); + + return 0; +@@ -524,8 +541,8 @@ + + { .cmd = "set event dev", + .handler = cmd_set_event_dev, +- .args = 1, +- .specs = "s" ++ .args = 2, ++ .specs = "ds" + }, + + { .cmd = "set message", +@@ -628,7 +645,7 @@ + continue; + + for (j = 0; j < known_cmds[i].args; j++) { +- for (; buf[k] == ' '; buf[k] = 0, k++); ++ for (; buf[k] == ' '; buf[k] = '\0', k++); + if (!buf[k]) { + args[j] = NULL; + continue; +diff -ru a/core/src/libfbsplash.c b/core/src/libfbsplash.c +--- a/core/src/libfbsplash.c 2013-01-11 06:35:35.000000000 +0200 ++++ b/core/src/libfbsplash.c 2013-01-11 06:34:08.000000000 +0200 +@@ -588,6 +588,8 @@ + return -1; + } + ++#define EVDV_BUF_LEN 128 ++ + /** + * Try to set the event device for the splash daemon. + * +@@ -595,10 +597,14 @@ + */ + int fbsplash_set_evdev(void) + { +- char buf[128]; ++ char buf[EVDV_BUF_LEN]; ++ char evdev_devs[EVDV_BUF_LEN * MAX_KBDS]; + FILE *fp; + int i, j; +- ++ int kbd_count; ++ int max_chars, chars_left, dev_path_len; ++ char dev_path[] = PATH_DEV "/input/"; ++ dev_path_len = strlen(dev_path); + char *evdev_cmds[] = { + "/bin/grep -Hsi keyboard " PATH_SYS "/class/input/input*/name | /bin/sed -e 's#.*input\\([0-9]*\\)/name.*#event\\1#'", + "/bin/grep -Hsi keyboard " PATH_SYS "/class/input/event*/device/driver/description | /bin/grep -o 'event[0-9]\\+'", +@@ -608,22 +614,43 @@ + + /* Try to activate the event device interface so that F2 can + * be used to switch from verbose to silent. */ +- buf[0] = 0; +- for (i = 0; i < sizeof(evdev_cmds)/sizeof(char*); i++) { ++ buf[0] = '\0'; ++ kbd_count = 0; ++ max_chars = sizeof(evdev_devs) / sizeof(char*); ++ chars_left = max_chars - 1; ++ evdev_devs[0] = '\0'; ++ for (i = 0; i < sizeof(evdev_cmds) / sizeof(char*); i++) { + fp = popen(evdev_cmds[i], "r"); + if (fp) { +- fgets(buf, 128, fp); +- if ((j = strlen(buf)) > 0) { +- if (buf[j-1] == '\n') +- buf[j-1] = 0; +- break; ++ while (fgets(buf, 128, fp) && kbd_count < MAX_KBDS) { ++ if ((j = strlen(buf)) > 0) { ++ if (buf[j-1] == '\n') ++ buf[j-1] = ','; ++ if (chars_left < (j + dev_path_len)) { ++ break; ++ } ++ kbd_count++; ++ strncat(evdev_devs, dev_path, chars_left); ++ chars_left -= dev_path_len; ++ strncat(evdev_devs, buf, chars_left); ++ chars_left -= j; ++ } ++ } ++ /* replace the last ',' with '\n' */ ++ if (chars_left > 0 && evdev_devs[0] != '\0') { ++ j = strlen(evdev_devs); ++ if (j > 2) { ++ evdev_devs[j - 1] = '\n'; ++ } + } + pclose(fp); + } ++ if (kbd_count > 0) ++ break; + } + +- if (buf[0] != 0) { +- fbsplash_send("set event dev " PATH_DEV "/input/%s\n", buf); ++ if (evdev_devs[0] != '\0') { ++ fbsplash_send("set event dev %d %s", kbd_count, evdev_devs); + return 0; + } else { + return -1; +@@ -661,6 +688,8 @@ + return 0; + } + ++#define MAX_CMD 2048 ++ + /** + * Send stuff to the splash daemon using the splash FIFO. + * +@@ -668,7 +697,7 @@ + */ + int fbsplash_send(const char *fmt, ...) + { +- char cmd[256]; ++ char cmd[MAX_CMD]; + va_list ap; + + if (!fp_fifo) { +@@ -690,7 +719,7 @@ + } + + va_start(ap, fmt); +- vsnprintf(cmd, 256, fmt, ap); ++ vsnprintf(cmd, MAX_CMD, fmt, ap); + va_end(ap); + + fprintf(fp_fifo, cmd); diff --git a/media-gfx/splashutils/files/splashutils-1.5.4.4-no-la.patch b/media-gfx/splashutils/files/splashutils-1.5.4.4-no-la.patch new file mode 100644 index 00000000..0dae2589 --- /dev/null +++ b/media-gfx/splashutils/files/splashutils-1.5.4.4-no-la.patch @@ -0,0 +1,12 @@ +--- splashutils-1.5.4.4/src/Makefile.am.orig 2011-06-13 01:43:39.000000000 +0400 ++++ splashutils-1.5.4.4/src/Makefile.am 2015-08-09 23:37:23.191078543 +0300 +@@ -119,7 +119,7 @@ + fbsplash.h + libfbsplashrender_la_CFLAGS = $(AM_CFLAGS) + libfbsplashrender_la_LDFLAGS = $(AM_LDFLAGS) -version-info $(libfbsplashrender_version) +-libfbsplashrender_la_LIBADD = libfbsplash.la ++libfbsplashrender_la_LIBADD = + + libfbsplashrender_la_CFLAGS += $(JPEG_CFLAGS) + libfbsplashrender_la_LIBADD += $(JPEG_LIBS) + diff --git a/media-gfx/splashutils/files/splashutils-1.5.4.4-openrc-run.patch b/media-gfx/splashutils/files/splashutils-1.5.4.4-openrc-run.patch new file mode 100644 index 00000000..7300936b --- /dev/null +++ b/media-gfx/splashutils/files/splashutils-1.5.4.4-openrc-run.patch @@ -0,0 +1,9 @@ +diff -Nur a/init-fbcondecor b/init-fbcondecor +--- a/init-fbcondecor 2011-06-12 22:45:59.000000000 +0100 ++++ b/init-fbcondecor 2017-08-06 02:31:27.989502111 +0100 +@@ -1,4 +1,4 @@ +-#!/sbin/runscript ++#!/sbin/openrc-run + # Copyright 1999-2007 Gentoo Foundation + # Distributed under the terms of the GNU General Public License v2 + diff --git a/media-gfx/splashutils/files/splashutils-1.5.4.4-sys-queue.patch b/media-gfx/splashutils/files/splashutils-1.5.4.4-sys-queue.patch new file mode 100644 index 00000000..8ede7322 --- /dev/null +++ b/media-gfx/splashutils/files/splashutils-1.5.4.4-sys-queue.patch @@ -0,0 +1,8 @@ +--- splash.c 2011-06-13 04:45:59.000000000 +0700 ++++ splash.c 2014-11-14 20:04:43.000000000 +0700 +@@ -21,4 +21,5 @@ + #include <sys/wait.h> + #include <sys/ioctl.h> ++#include <sys/queue.h> + #include <linux/kd.h> + #include <linux/fb.h> |