parent
0ee409a98a
commit
c2e5d790bc
@ -1,7 +0,0 @@
|
||||
DIST freetype-2.3.12.tar.bz2 1453034 SHA256 3b96438f016a62b676c1d2089c00ca777f710d19f6aefa66ccf068d360db3e92 SHA512 becb0f138ee13181513d3f03b943f0a474e492cab151992fa78d0c84127819dc91ec6d2bd1528af7e111ab150b3a29104f2f7ab79650cebc35ce4d966b19f34b WHIRLPOOL 1a7363b8e1cc1b4597077e6cdf7e978b80cc76e1428124312d139ee81fe5247eed5ec0243352b721c28a25a179bceb901700d0766c1a5110b19f8fe53c303a89
|
||||
DIST jpegsrc.v8a.tar.gz 962018 SHA256 bf86a5eaafa79b5d60feb27bee08df2db4c9ca2fb40d453e7a2080f7663a713b SHA512 4020e82e16b99189b1a50bad18b09616775559740b94a988692aa33f9302d4b5abe3ccaa30895b49e6950fb3d9a830deeb7df750d128ec5c7e1844583db4524d WHIRLPOOL 46e0c98f30c8d975b85b8e86b69e9c5c64632f579502b1b3c54902706d7e08b86582a85b49a0d3bfffd03cd90946fbd20171324504a5ff521eb89e6ce11d568b
|
||||
DIST libpng-1.4.3.tar.bz2 658335 SHA256 2b022f39f4788505ad62a4b1f4a33286228d544719680da40f3626393ecde4a2 SHA512 aaa137ebc2312805d58caf19702d24a34ee81593d4250c4e807ce66ba7edb829926919cd0a2b0e5975421451c8eb6674798c06dbaf745175b16c9d3c92b63f61 WHIRLPOOL d383e01e6080166816991650183b47d15938aa269c0a85e234846b9c5a7ec04a1ba7620779b4ddae639ca64440772ce8dd1b3a596f6eb32124c4d6c55592fb0a
|
||||
DIST miscsplashutils-0.1.8.tar.bz2 91997 SHA256 38e8434c7266126477237c4d9e6cbeca152089ab33c14a7761089b7970f8d336 SHA512 fa017e264249feda45839030728e90c82f775354c3f2c29a88362938c4a31b19e6d61f967512305642f8b96575f4d756ba197e672a361760e40080c23ec0442a WHIRLPOOL c418ee425bf323fc0e00388be4547232207fd6cac10a2e8cafeef8c8aabcd014052307533bd015e61dc483ab45edd9fbd59a3005549b7bee4a4b90bf3297394a
|
||||
DIST splashutils-gentoo-1.0.17.tar.bz2 15814 SHA256 6877263d0b6f5a3532db0d6a531cd4d41fbc6c45a16c5d10050e9048ecc1af81 SHA512 75f1fbfdf165f571b0bf09235235827f370e1b940f1717c4faf5b223caba0b80f853a910ba492c776512aecfafa6e74fd964239bbc6cf412620143d5ffc74167 WHIRLPOOL de9e1ca86a87c169f0a2f7844ab9a68b29cc46c208daca4d13cf7d552b35c05b6e266d66724078cf1f6eea3d41496fdf4fd7b3219697b2032520ad2b9a5ec5c9
|
||||
DIST splashutils-lite-1.5.4.4.tar.bz2 441340 SHA256 bc0e22293d4550281d2289672da3acb42594c18a75b9d00ba75526e05162ec6b SHA512 1a78216a1de1fdccff514494d7301640e447c65466e1fe02428e5114485507f67fe4394094880d927d074a8ab2d9c786ba03f9fb0371eb7ab6ef4e3b01aa4613 WHIRLPOOL f861a1673fd9e1fe32e417da48be8c472c5c3cc06844eb0886a66b498ca38cb04a6e51708821eefe3e15f66004bb6a4ef76df7242643b34090035bffdf1f87d7
|
||||
DIST zlib-1.2.3.tar.bz2 425209 SHA256 e3b9950851a19904d642c4dec518623382cf4d2ac24f70a76510c944330d28ca SHA512 edae735960279d92acf58e1f4095c6392a7c2059b8f1d2c46648fc608a0fb06b392db2d073f4973f5762c034ea66596e769b95b3d26ad963a086b9b2d09825f2 WHIRLPOOL e874b123296f5d77daf60617501b30f4beebccb64b3910c2539f75f6c194a2cf4885dc7a3904bf790e1651120ec33b55c48e95970dd6bfd6c4d0a2ea48d7d0f4
|
@ -1,15 +0,0 @@
|
||||
=== 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)
|
||||
|
@ -1,42 +0,0 @@
|
||||
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
|
@ -1,19 +0,0 @@
|
||||
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
|
@ -1,381 +0,0 @@
|
||||
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);
|
@ -1,12 +0,0 @@
|
||||
--- 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)
|
||||
|
@ -1,8 +0,0 @@
|
||||
--- 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>
|
@ -1,11 +0,0 @@
|
||||
--- src/common.c.old 2018-02-25 22:23:32.382369471 +0800
|
||||
+++ src/common.c 2018-02-25 22:23:02.236854316 +0800
|
||||
@@ -19,6 +19,7 @@
|
||||
#include <termios.h>
|
||||
#include <sys/ioctl.h>
|
||||
#include <sys/types.h>
|
||||
+#include <sys/sysmacros.h>
|
||||
#include <sys/mman.h>
|
||||
#include <dirent.h>
|
||||
#include <errno.h>
|
||||
|
@ -1,22 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
|
||||
<pkgmetadata>
|
||||
<maintainer type="person">
|
||||
<email>asaf.gery@gmail.com</email>
|
||||
</maintainer>
|
||||
<maintainer type="project">
|
||||
<email>proxy-maint@gentoo.org</email>
|
||||
<name>Proxy Maintainers</name>
|
||||
</maintainer>
|
||||
<use>
|
||||
<flag name="fbcondecor">
|
||||
Support for the fbcondecor kernel patch.
|
||||
</flag>
|
||||
<flag name="klibc">
|
||||
Compile against <pkg>dev-libs/klibc</pkg>
|
||||
</flag>
|
||||
</use>
|
||||
<upstream>
|
||||
<remote-id type="sourceforge">freetype</remote-id>
|
||||
</upstream>
|
||||
</pkgmetadata>
|
@ -1,241 +0,0 @@
|
||||
# Copyright 1999-2016 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=5
|
||||
inherit autotools eutils multilib toolchain-funcs
|
||||
|
||||
MISCSPLASH="miscsplashutils-0.1.8"
|
||||
GENTOOSPLASH="splashutils-gentoo-1.0.17"
|
||||
V_JPEG="8a"
|
||||
V_PNG="1.4.3"
|
||||
V_ZLIB="1.2.3"
|
||||
V_FT="2.3.12"
|
||||
|
||||
ZLIBSRC="libs/zlib-${V_ZLIB}"
|
||||
LPNGSRC="libs/libpng-${V_PNG}"
|
||||
JPEGSRC="libs/jpeg-${V_JPEG}"
|
||||
FT2SRC="libs/freetype-${V_FT}"
|
||||
|
||||
RESTRICT="test"
|
||||
IUSE="hardened klibc +png +truetype gpm fbcondecor"
|
||||
|
||||
DESCRIPTION="Framebuffer splash utilities"
|
||||
HOMEPAGE="https://sourceforge.net/projects/fbsplash.berlios/"
|
||||
SRC_URI="
|
||||
mirror://sourceforge/fbsplash.berlios/${PN}-lite-${PV}.tar.bz2
|
||||
mirror://sourceforge/fbsplash.berlios/${GENTOOSPLASH}.tar.bz2
|
||||
mirror://gentoo/${MISCSPLASH}.tar.bz2
|
||||
mirror://sourceforge/libpng/libpng-${V_PNG}.tar.bz2
|
||||
ftp://ftp.uu.net/graphics/jpeg/jpegsrc.v${V_JPEG}.tar.gz
|
||||
mirror://sourceforge/freetype/freetype-${V_FT}.tar.bz2
|
||||
http://www.gzip.org/zlib/zlib-${V_ZLIB}.tar.bz2
|
||||
"
|
||||
|
||||
LICENSE="GPL-2"
|
||||
SLOT="0"
|
||||
KEYWORDS="~alpha amd64 ~arm ~ia64 ~ppc ~ppc64 ~sparc x86"
|
||||
|
||||
RDEPEND="
|
||||
gpm? ( sys-libs/gpm[static-libs(+)] )
|
||||
truetype? (
|
||||
>=media-libs/freetype-2[static-libs]
|
||||
app-arch/bzip2[static-libs(+)]
|
||||
sys-libs/zlib[static-libs(+)]
|
||||
)
|
||||
png? (
|
||||
>=media-libs/libpng-1.4.3[static-libs]
|
||||
sys-libs/zlib[static-libs(+)]
|
||||
)
|
||||
virtual/jpeg:0[static-libs]
|
||||
app-arch/cpio
|
||||
media-gfx/fbgrab
|
||||
!sys-apps/lcdsplash
|
||||
sys-apps/openrc"
|
||||
|
||||
DEPEND="${RDEPEND}
|
||||
klibc? ( >=dev-libs/klibc-1.5 )
|
||||
virtual/pkgconfig
|
||||
"
|
||||
|
||||
S="${WORKDIR}/${P/_/-}"
|
||||
SG="${WORKDIR}/${GENTOOSPLASH}"
|
||||
SM="${WORKDIR}/${MISCSPLASH}"
|
||||
|
||||
pkg_setup() {
|
||||
if use hardened; then
|
||||
ewarn "Due to problems with klibc, it is currently impossible to compile splashutils"
|
||||
ewarn "with 'hardened' GCC flags. As a workaround, the package will be compiled with"
|
||||
ewarn "-fno-stack-protector. Hardened GCC features will not be used while building"
|
||||
ewarn "the splash kernel helper."
|
||||
fi
|
||||
}
|
||||
|
||||
src_prepare() {
|
||||
mv "${WORKDIR}"/{libpng-${V_PNG},jpeg-${V_JPEG},zlib-${V_ZLIB},freetype-${V_FT}} "${S}/libs"
|
||||
|
||||
# We need to delete the Makefile and let it be rebuilt when splashutils
|
||||
# is being configured. Either that, or we end up with a segfaulting kernel
|
||||
# helper.
|
||||
rm "${S}/libs/zlib-${V_ZLIB}/Makefile"
|
||||
|
||||
cd "${SG}"
|
||||
epatch "${FILESDIR}/splashutils-1.5.4.4-gentoo-typo-fix.patch"
|
||||
epatch "${FILESDIR}/splashutils-1.5.4.4-sys-queue.patch"
|
||||
|
||||
if use truetype ; then
|
||||
cd "${SM}"
|
||||
epatch "${FILESDIR}/splashutils-1.5.4.4-freetype-bz2.patch"
|
||||
cd "${WORKDIR}"
|
||||
epatch "${FILESDIR}/splashutils-1.5.4.4-ft25.patch"
|
||||
fi
|
||||
|
||||
cd "${S}"
|
||||
ln -sf "${S}/src" "${WORKDIR}/core"
|
||||
|
||||
#epatch "${FILESDIR}/${P}-bzip2.patch"
|
||||
epatch "${FILESDIR}/${P}-multi-keyboard.patch"
|
||||
# Bug #557126
|
||||
epatch "${FILESDIR}/${P}-no-la.patch"
|
||||
|
||||
if ! tc-is-cross-compiler && \
|
||||
has_version "sys-devel/gcc:$(gcc-version)[vanilla]" ; then
|
||||
ewarn "Your GCC was built with the 'vanilla' flag set. If you can't compile"
|
||||
ewarn "splashutils, you're on your own, as this configuration is not supported."
|
||||
else
|
||||
# This should make splashutils compile on systems with hardened GCC.
|
||||
sed -e 's@K_CFLAGS =@K_CFLAGS = -fno-stack-protector@' -i "${S}/Makefile.in"
|
||||
fi
|
||||
|
||||
if ! use truetype ; then
|
||||
sed -i -e 's/fbtruetype kbd/kbd/' "${SM}/Makefile"
|
||||
fi
|
||||
|
||||
# Latest version of klibc defined its own version of ferror, so there is
|
||||
# not need for the hack in klibc_compat.h
|
||||
if has_version ">=dev-libs/klibc-1.5.20"; then
|
||||
echo > "libs/klibc_compat.h"
|
||||
fi
|
||||
|
||||
rm -f m4/*
|
||||
epatch_user
|
||||
export PKG_CONFIG="pkg-config --static"
|
||||
eautoreconf
|
||||
epatch "${FILESDIR}"/splashutils-1.5.4.4-sysmacros.patch
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
tc-export CC
|
||||
cd "${SM}"
|
||||
emake CC="${CC}" LIB=$(get_libdir) STRIP=true
|
||||
|
||||
cd "${S}"
|
||||
econf \
|
||||
$(use_with png) \
|
||||
--without-mng \
|
||||
$(use_with klibc) \
|
||||
$(use_with gpm) \
|
||||
$(use_with truetype ttf) \
|
||||
$(use_with truetype ttf-kernel) \
|
||||
$(use_enable fbcondecor) \
|
||||
--docdir=/usr/share/doc/${PF} \
|
||||
--with-freetype2-src=${FT2SRC} \
|
||||
--with-jpeg-src=${JPEGSRC} \
|
||||
--with-lpng-src=${LPNGSRC} \
|
||||
--with-zlib-src=${ZLIBSRC} \
|
||||
--with-essential-libdir=/$(get_libdir)
|
||||
}
|
||||
|
||||
src_compile() {
|
||||
emake CC="${CC}" STRIP="true"
|
||||
|
||||
cd "${SG}"
|
||||
emake LIB=$(get_libdir)
|
||||
}
|
||||
|
||||
src_install() {
|
||||
local LIB=$(get_libdir)
|
||||
|
||||
cd "${SM}"
|
||||
emake DESTDIR="${D}" LIB=${LIB} install
|
||||
|
||||
cd "${S}"
|
||||
emake DESTDIR="${D}" STRIP="true" install
|
||||
|
||||
mv "${D}"/usr/${LIB}/libfbsplash.so* "${D}"/${LIB}/
|
||||
gen_usr_ldscript libfbsplash.so
|
||||
|
||||
echo 'CONFIG_PROTECT_MASK="/etc/splash"' > 99splash
|
||||
doenvd 99splash
|
||||
|
||||
if use fbcondecor ; then
|
||||
newinitd "${SG}"/init-fbcondecor fbcondecor
|
||||
newconfd "${SG}"/fbcondecor.conf fbcondecor
|
||||
fi
|
||||
newconfd "${SG}"/splash.conf splash
|
||||
|
||||
insinto /usr/share/${PN}
|
||||
doins "${SG}"/initrd.splash
|
||||
|
||||
insinto /etc/splash
|
||||
doins "${SM}"/fbtruetype/luxisri.ttf
|
||||
|
||||
cd "${SG}"
|
||||
make DESTDIR="${D}" LIB=${LIB} install
|
||||
prune_libtool_files
|
||||
|
||||
sed -i -e "s#/lib/splash#/${LIB}/splash#" "${D}"/sbin/splash-functions.sh
|
||||
keepdir /${LIB}/splash/{tmp,cache,bin,sys}
|
||||
dosym /${LIB}/splash/bin/fbres /sbin/fbres
|
||||
}
|
||||
|
||||
pkg_preinst() {
|
||||
has_version "<${CATEGORY}/${PN}-1.0"
|
||||
previous_less_than_1_0=$?
|
||||
|
||||
has_version "<${CATEGORY}/${PN}-1.5.3"
|
||||
previous_less_than_1_5_3=$?
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
if has_version sys-fs/devfsd || ! has_version virtual/udev ; then
|
||||
elog "This package has been designed with udev in mind. Other solutions, such as"
|
||||
elog "devfs or a static /dev tree might work, but are generally discouraged and"
|
||||
elog "not supported. If you decide to switch to udev, you might want to have a"
|
||||
elog "look at 'The Gentoo udev Guide', which can be found at"
|
||||
elog " https://wiki.gentoo.org/wiki/Udev"
|
||||
elog ""
|
||||
fi
|
||||
|
||||
if [[ $previous_less_than_1_0 = 0 ]] ; then
|
||||
elog "Since you are upgrading from a pre-1.0 version, please make sure that you"
|
||||
elog "rebuild your initrds. You can use the splash_geninitramfs script to do that."
|
||||
elog ""
|
||||
fi
|
||||
|
||||
if [[ $previous_less_than_1_5_3 = 0 ]] && ! use fbcondecor ; then
|
||||
elog "Starting with splashutils-1.5.3, support for the fbcondecor kernel patch"
|
||||
elog "is optional and dependent on the the 'fbcondecor' USE flag. If you wish"
|
||||
elog "to use fbcondecor, run:"
|
||||
elog " echo \"media-gfx/splashutils fbcondecor\" >> /etc/portage/package.use"
|
||||
elog "and re-emerge splashutils."
|
||||
fi
|
||||
|
||||
if ! test -f /proc/cmdline ||
|
||||
! egrep -q '(console=tty1|CONSOLE=/dev/tty1)' /proc/cmdline ; then
|
||||
elog "It is required that you add 'console=tty1' to your kernel"
|
||||
elog "command line parameters."
|
||||
elog ""
|
||||
elog "After these modifications, the relevant part of the kernel command"
|
||||
elog "line might look like:"
|
||||
elog " splash=silent,fadein,theme:emergence console=tty1"
|
||||
elog ""
|
||||
fi
|
||||
|
||||
if ! has_version 'media-gfx/splash-themes-livecd' &&
|
||||
! has_version 'media-gfx/splash-themes-gentoo'; then
|
||||
elog "The sample Gentoo themes (emergence, gentoo) have been removed from the"
|
||||
elog "core splashutils package. To get some themes you might want to emerge:"
|
||||
elog " media-gfx/splash-themes-livecd"
|
||||
elog " media-gfx/splash-themes-gentoo"
|
||||
fi
|
||||
}
|
@ -1 +0,0 @@
|
||||
media-gfx/splashutils
|
Loading…
Reference in new issue