From 62ec21100af0c3a5af156b972df58c52d17c6421 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9rgio=20M=2E=20Basto?= Date: Thu, 30 Jan 2020 00:00:05 +0000 Subject: [PATCH] Add upstream commits for git master which contains patches 9, 10 and 11 Add GCC10 fix Cleanups --- ...38233fbe6de7af05aabc74891b68d4bae40f8.diff | 533 ++++++++++++++++++ ...24dd5ca5c1c13608b144ab66e2ccd47f106a.patch | 39 ++ gpm-1.20.1-lib-silent.patch | 4 +- gpm-1.20.1-weak-wgetch.patch | 2 +- gpm-1.20.7-sigemptyset.patch | 16 - gpm-1.20.7-sysmacros.patch | 14 - gpm-format-security.patch | 12 - gpm.spec | 29 +- 8 files changed, 589 insertions(+), 60 deletions(-) create mode 100644 1.20.7...4a938233fbe6de7af05aabc74891b68d4bae40f8.diff create mode 100644 f04f24dd5ca5c1c13608b144ab66e2ccd47f106a.patch delete mode 100644 gpm-1.20.7-sigemptyset.patch delete mode 100644 gpm-1.20.7-sysmacros.patch delete mode 100644 gpm-format-security.patch diff --git a/1.20.7...4a938233fbe6de7af05aabc74891b68d4bae40f8.diff b/1.20.7...4a938233fbe6de7af05aabc74891b68d4bae40f8.diff new file mode 100644 index 0000000..e1eee41 --- /dev/null +++ b/1.20.7...4a938233fbe6de7af05aabc74891b68d4bae40f8.diff @@ -0,0 +1,533 @@ +diff --git a/.gitignore b/.gitignore +index 87df93b..5f79b9d 100644 +--- a/.gitignore ++++ b/.gitignore +@@ -11,6 +11,7 @@ Makefile + Makefile.include + /aclocal.m4 + /autom4te.cache ++/config.cache + /config.log + /config.status + /configure +@@ -29,7 +30,7 @@ Makefile.include + /src/gpm + /src/gpm2/tmp + /src/gpm2/out +-/src/lib/libgpm.so.* ++/src/lib/libgpm.so* + /src/prog/disable-paste + /src/prog/display-buttons + /src/prog/display-coords +diff --git a/Makefile.in b/Makefile.in +index 5412334..0aa6a78 100644 +--- a/Makefile.in ++++ b/Makefile.in +@@ -102,19 +102,24 @@ TAGS: $(SRCS) $(HDRS) src/prog/gpm-root.y do-TAGS + + ### RELEASE STUFF + TARS =../gpm-$(release).tar.gz +-TARS +=../gpm-$(release).tar.bz2 ../gpm-$(release).tar.lzma ++TARS +=../gpm-$(release).tar.bz2 ../gpm-$(release).tar.xz + + M_HOST=arcana.linux.it + M_DIR=gpm/ + + tars: $(TARS) ++ chmod a+r $< + + # configure headers, produce new configure script + distconf: Makefile.in Makefile.include.in configure acinclude.m4 $(versionfiles) + + ../gpm-$(release).tar: $(srcdir) distclean distconf + # no exclude possible of .git with pax it seems, so the following is not possible: +- git archive --prefix "gpm-$(release)/" -o $@ HEAD ++ rm -rf "gpm-$(release)/" ++ git archive --prefix "gpm-$(release)/" HEAD | tar xf - ++ cd "gpm-$(release)/" && ./autogen.sh && rm -rf autom4te.cache ++ tar cf $@ "gpm-$(release)/" ++ rm -rf "gpm-$(release)/" + + ../gpm-$(release).tar.gz: ../gpm-$(release).tar + gzip -9 -c $< > $@ +@@ -122,11 +127,11 @@ distconf: Makefile.in Makefile.include.in configure acinclude.m4 $(versionfiles) + ../gpm-$(release).tar.bz2: ../gpm-$(release).tar + bzip2 -9 -c $< > $@ + +-../gpm-$(release).tar.lzma: ../gpm-$(release).tar +- lzma -9 -c $< > $@ ++../gpm-$(release).tar.xz: ../gpm-$(release).tar ++ xz -9 -c $< > $@ + + # 3. Put package together into .tar.gz and .tar.bz2 +-dist: disttest distclean distconf $(TARS) ++dist: disttest distclean distconf $(TARS) tars + scp $(TARS) $(M_HOST):$(M_DIR) + mv $(TARS) ~/niconetz/software/gpm/archives + +diff --git a/configure.ac.footer b/configure.ac.footer +index 89a4cd9..1e5e4da 100644 +--- a/configure.ac.footer ++++ b/configure.ac.footer +@@ -124,7 +124,7 @@ No|no|N|n) SHARED_LIBS=-lc ;; + done + TERMLIBS=$LIBS + LIBS= +- for i in ncurses curses; do ++ for i in ncurses curses ncursesw; do + if test x$LIBS = x; then + AC_CHECK_LIB($i, wgetch,,,$TERMLIBS) + else :; fi +diff --git a/doc/changelog b/doc/changelog +index de64bcf..1581fd1 100644 +--- a/doc/changelog ++++ b/doc/changelog +@@ -1,3 +1,7 @@ ++1.20.8: ++ * Remove lzma, use xz (Mike Frysinger) ++ * Install shared lib with +x perms (Mike Frysinger) ++ + 1.20.7: 2012-10-26 + * Fix inclusion of unwanted binary data + * Even more cleanups (Mike Frysinger) +@@ -5,7 +9,7 @@ + * Don't build static libgpm by default (Sean McGovern) + * autogen.sh is now required to create setup version in autoconf (Nico Schottelius) + +-1.20.5: 9th of February 2009 ++1.20.6: 9th of February 2009 + * Some cleanups (Mike Frysinger/Nico Schottelius) + * Pull in fcntl.h rather than unistd.h for open() (Mike Frysinger) + * Fix gcc warning "control reaches end of non-void function" (Mike Frysinger) +diff --git a/doc/doc.gpm.in b/doc/doc.gpm.in +index afd5a29..795b958 100644 +--- a/doc/doc.gpm.in ++++ b/doc/doc.gpm.in +@@ -88,7 +88,7 @@ by the Free Software Foundation. + @subtitle A general purpose mouse server for the Linux console + @subtitle @value{update-month} + +-@author by Nico Schottelius ++@author by Nico Schottelius + + @end titlepage + @setchapternewpage off +@@ -525,7 +525,7 @@ security risks when using them. + Andrew Haylett (the original selection code) + Ian Zimmerman (old maintainer) + Alessandro Rubini (old maintainer (still helps a lot)) +-Nico Schottelius (maintainer) ++Nico Schottelius (maintainer) + + Many many contributors, to both selection and gpm. + .fi +diff --git a/src/Makefile.in b/src/Makefile.in +index d3b1dcd..7e9e2ef 100644 +--- a/src/Makefile.in ++++ b/src/Makefile.in +@@ -79,7 +79,7 @@ prog/%: prog/%.o + # | $(SED) '\''s/\($*\)\.o\([ :]*\)/\1.o \1.lo\2/g'\'' > $(DEPDIR)/$@' + + # Do it all! +-all: gpm lib/libgpm.so.@abi_lev@ @LIBGPM_A@ $(PROG) ++all: gpm lib/libgpm.so.@abi_lev@ lib/libgpm.so @LIBGPM_A@ $(PROG) + + gpm: $(GOBJ) + $(CC) @LDFLAGS@ $(LDFLAGS) -o $@ $(GOBJ) @LIBS@ $(LIBS) -lm +@@ -113,7 +113,7 @@ install: check + # 2.x goes along; unfortunately that means an additional + # headache in cases like this + if test "x@SHLIB@" != "x" ; then \ +- $(INSTALL_DATA) -m 644 lib/libgpm.so.@abi_full@ $(libdir)/libgpm.so.@abi_full@ ; \ ++ $(INSTALL_DATA) -m 755 lib/libgpm.so.@abi_full@ $(libdir)/libgpm.so.@abi_full@ ; \ + cd $(libdir) && $(LN_S) -f libgpm.so.@abi_full@ libgpm.so.@abi_lev@ ; \ + echo "WARNING: We installed a lib, you should now call ldconfig" ; \ + echo "f.i.: ldconfig -n -l $(libdir)/libgpm.so.@abi_full@" ; \ +@@ -168,9 +168,8 @@ lib/libgpm.so.@abi_full@: $(PICS) + @LDFLAGS@ $(LDFLAGS) -o lib/libgpm.so.@abi_full@ $^ @LIBS@ @SHARED_LIBS@ $(LIBS) + lib/libgpm.so.@abi_lev@: lib/libgpm.so.@abi_full@ + $(LN_S) -f libgpm.so.@abi_full@ lib/libgpm.so.@abi_lev@ +-# unneeded, isn't it? +-#lib/libgpm.so: lib/libgpm.so.@abi_full@ +-# $(LN_S) -f libgpm.so.@abi_full@ lib/libgpm.so ++lib/libgpm.so: lib/libgpm.so.@abi_full@ ++ $(LN_S) -f libgpm.so.@abi_full@ lib/libgpm.so + + include $(DEPFILE) + +diff --git a/src/daemon/gpm.c b/src/daemon/gpm.c +index 771da5c..6806dce 100644 +--- a/src/daemon/gpm.c ++++ b/src/daemon/gpm.c +@@ -29,7 +29,7 @@ + #include /* SIGPIPE */ + #include /* time() */ + #include +-#include /* O_RDONLY */ ++#include /* O_RDONLY */ + #include /* wait() */ + #include /* mkdir() */ + #include /* timeval */ +diff --git a/src/daemon/old_main.c b/src/daemon/old_main.c +index 9cd4e56..ab7a87f 100644 +--- a/src/daemon/old_main.c ++++ b/src/daemon/old_main.c +@@ -25,6 +25,7 @@ + #include /* guess again */ + #include /* guess again */ + #include /* unlink */ ++#include /* strcpy, bzero */ + #include /* chmod */ + + #include /* linux hd* */ +@@ -192,10 +193,11 @@ int old_main() + * or to the default handler, if any + * or to the selection handler + */ /* FIXME -- check event.vc */ +- /* can't we please rewrite the following a bit nicer?*/ +- (cinfo[event.vc] && do_client(cinfo[event.vc], &event)) +- || (cinfo[0] && do_client(cinfo[0], &event)) +- || do_selection(&event); ++ if(!cinfo[event.vc] || !do_client(cinfo[event.vc], &event)) { ++ if(!cinfo[0] || !do_client(cinfo[0],&event)) { ++ do_selection(&event); ++ } ++ } + } + } + +diff --git a/src/daemon/open_console.c b/src/daemon/open_console.c +index 98297c9..6dd43e6 100644 +--- a/src/daemon/open_console.c ++++ b/src/daemon/open_console.c +@@ -21,8 +21,13 @@ + + #include /* open and co. */ + #include /* stat() */ ++#include /* major() */ + #include /* ioctl */ + ++#ifdef HAVE_SYS_SYSMACROS_H ++#include /* major() w/newer glibc */ ++#endif ++ + /* Linux specific (to be outsourced in gpm2 */ + #include /* for serial console check */ + #include /* for serial console check */ +diff --git a/src/daemon/processconn.c b/src/daemon/processconn.c +index a5839a3..e92fa63 100644 +--- a/src/daemon/processconn.c ++++ b/src/daemon/processconn.c +@@ -67,7 +67,8 @@ int processConn(int fd) + return -1; + } + +- if((vc = request->vc) > MAX_VC) { ++ vc = request->vc; ++ if(vc > MAX_VC || vc < 0) { + gpm_report(GPM_PR_DEBUG, GPM_MESS_REQUEST_ON, vc, MAX_VC); + free(info); + close(newfd); +diff --git a/src/headers/gpm.h b/src/headers/gpm.h +index 57dc618..fe52e53 100644 +--- a/src/headers/gpm.h ++++ b/src/headers/gpm.h +@@ -280,10 +280,16 @@ int Gpm_GetSnapshot(Gpm_Event *ePtr); + char *Gpm_get_console( void ); + int Gpm_x_high_y(int base, int pot_y); + int Gpm_cnt_digits(int number); +-void gpm_oops(int line, char *file, char *text, ... ); ++#ifdef __GNUC__ ++__attribute__((__format__(printf, 3, 4))) ++#endif ++void gpm_oops(int line, const char *file, const char *text, ... ); + + /* report.c / report-lib.c */ +-void gpm_report(int line, char *file, int stat, char *text, ... ); ++#ifdef __GNUC__ ++__attribute__((__format__(printf, 4, 5))) ++#endif ++void gpm_report(int line, const char *file, int stat, const char *text, ... ); + + #ifdef __cplusplus + }; +diff --git a/src/headers/message.h b/src/headers/message.h +index a0fed0e..4b60291 100644 +--- a/src/headers/message.h ++++ b/src/headers/message.h +@@ -226,7 +226,10 @@ + /* #define GPM_MESS_ "" */ + + /* functions */ +-void gpm_report(int line, char *file, int stat, char *text, ... ); ++#ifdef __GNUC__ ++__attribute__((__format__(printf, 4, 5))) ++#endif ++void gpm_report(int line, const char *file, int stat, const char *text, ... ); + + /* rest of wd.h */ + #ifdef HAVE_SYSLOG_H +diff --git a/src/lib/liblow.c b/src/lib/liblow.c +index e789d09..8b40b71 100644 +--- a/src/lib/liblow.c ++++ b/src/lib/liblow.c +@@ -29,11 +29,12 @@ + #include /* strncmp */ + #include /* select(); */ + #include ++#include /* O_RDONLY */ ++ + #include /* timeval */ + #include /* socket() */ + #include /* socket() */ + #include /* struct sockaddr_un */ +-#include /* O_RDONLY */ + #include /* stat() */ + + #ifdef SIGTSTP /* true if BSD system */ +@@ -173,7 +174,7 @@ static void gpm_suspend_hook (int signum) + /* Reincarnation. Prepare for another death early. */ + sigemptyset(&sa.sa_mask); + sa.sa_handler = gpm_suspend_hook; +- sa.sa_flags = SA_NOMASK; ++ sa.sa_flags = SA_NODEFER; + sigaction (SIGTSTP, &sa, 0); + + /* Pop the gpm stack by closing the useless connection */ +@@ -364,7 +365,7 @@ int Gpm_Open(Gpm_Connect *conn, int flag) + + /* if signal was originally ignored, job control is not supported */ + if (gpm_saved_suspend_hook.sa_handler != SIG_IGN) { +- sa.sa_flags = SA_NOMASK; ++ sa.sa_flags = SA_NODEFER; + sa.sa_handler = gpm_suspend_hook; + sigaction(SIGTSTP, &sa, 0); + } +diff --git a/src/lib/report-lib.c b/src/lib/report-lib.c +index c0ae086..03230b4 100644 +--- a/src/lib/report-lib.c ++++ b/src/lib/report-lib.c +@@ -24,9 +24,9 @@ + + #include "headers/message.h" + +-void gpm_report(int line, char *file, int stat, char *text, ... ) ++void gpm_report(int line, const char *file, int stat, const char *text, ... ) + { +- char *string = NULL; ++ const char *string = NULL; + int log_level; + va_list ap; + +@@ -47,7 +47,7 @@ void gpm_report(int line, char *file, int stat, char *text, ... ) + log_level = LOG_CRIT; break; + } + #ifdef HAVE_VSYSLOG +- syslog(log_level, string); ++ syslog(log_level, "%s", string); + vsyslog(log_level, text, ap); + #else + fprintf(stderr,"%s[%s(%d)]:\n",string,file,line); +diff --git a/src/prog/display-buttons.c b/src/prog/display-buttons.c +index de8e5b2..38d2f11 100644 +--- a/src/prog/display-buttons.c ++++ b/src/prog/display-buttons.c +@@ -36,6 +36,7 @@ + #include /* printf() */ + #include /* time() */ + #include /* errno */ ++#include /* fd_set and FD_* */ + #include /* gpm information */ + + /* display resulting data */ +diff --git a/src/prog/display-coords.c b/src/prog/display-coords.c +index ed15c8a..82afd12 100644 +--- a/src/prog/display-coords.c ++++ b/src/prog/display-coords.c +@@ -33,10 +33,12 @@ + */ + + #include /* write, read, open */ ++#include + #include /* strtol() */ + #include /* printf() */ + #include /* time() */ + #include /* errno */ ++#include /* fd_set and FD_* */ + #include /* gpm information */ + + /* display resulting data */ +@@ -50,7 +52,7 @@ int display_data(Gpm_Event *event, void *data) + last = now; + + /* display time, delta time */ +- printf("[%d] delta: %ds",now,delta); ++ printf("[%jd] delta: %ds",(intmax_t)now,delta); + + /* display mouse information */ + printf(": x=%2i, y=%2i, dx=%2i, dy=%2i\n", event->x, event->y, event->dx, event->dy); +diff --git a/src/prog/gpm-root.y b/src/prog/gpm-root.y +index 069d801..76c896c 100644 +--- a/src/prog/gpm-root.y ++++ b/src/prog/gpm-root.y +@@ -443,6 +443,7 @@ void f__fix(struct passwd *pass) + } + + /*---------------------------------------------------------------------*/ ++#if 0 + static int f_debug_one(FILE *f, Draw *draw) + { + DrawItem *ip; +@@ -465,6 +466,7 @@ static int f_debug_one(FILE *f, Draw *draw) + #undef LINE + return 0; + } ++#endif + + int f_debug(int mode, DrawItem *self, int uid) + { +@@ -960,10 +962,8 @@ static inline void scr_dump(int fd, FILE *f, unsigned char *buffer, int vc) + /*------------*/ + static inline void scr_restore(int fd, FILE *f, unsigned char *buffer, int vc) + { +- int x,y, dumpfd; ++ int dumpfd; + char dumpname[20]; +- +- x=buffer[2]; y=buffer[3]; + + /* WILL NOT WORK WITH DEVFS! FIXME! */ + sprintf(dumpname,"/dev/vcsa%i",vc); +@@ -1196,12 +1196,8 @@ int main(int argc, char **argv) + LOG_DAEMON : LOG_USER); + /* reap your zombies */ + childaction.sa_handler=reap_children; +-#if defined(__GLIBC__) +- __sigemptyset(&childaction.sa_mask); +-#else /* __GLIBC__ */ +- childaction.sa_mask=0; +-#endif /* __GLIBC__ */ +- childaction.sa_flags=SA_INTERRUPT; /* need to break the select() call */ ++ sigemptyset(&childaction.sa_mask); ++ childaction.sa_flags=0; + sigaction(SIGCHLD,&childaction,NULL); + + /*....................................... Connect and get your buffer */ +diff --git a/src/prog/mouse-test.c b/src/prog/mouse-test.c +index 0bb1982..d7d1027 100644 +--- a/src/prog/mouse-test.c ++++ b/src/prog/mouse-test.c +@@ -182,14 +182,14 @@ Gpm_Type *(*I_serial)(int fd, unsigned short flags, struct Gpm_Type *type, + /*----------------------------------------------------------------------------- + Place the description here. + -----------------------------------------------------------------------------*/ +-int mousereopen(int oldfd, char *name, Gpm_Type *type) ++int mousereopen(int oldfd, const char *name, Gpm_Type *type) + { + int fd; + if (!type) type=mice+1; /* ms */ + close(oldfd); + usleep(100000); + fd=open(name,O_RDWR); +- if (fd < 0) gpm_report(GPM_PR_OOPS,name); ++ if (fd < 0) gpm_report(GPM_PR_OOPS, "%s", name); + (*I_serial)(fd,type->flags,type,1,&type->name); /* ms initialization */ + return fd; + } +diff --git a/src/report.c b/src/report.c +index 6c7c2ee..286c1b7 100644 +--- a/src/report.c ++++ b/src/report.c +@@ -69,7 +69,7 @@ + * + */ + +-void gpm_report(int line, char *file, int stat, char *text, ... ) ++void gpm_report(int line, const char *file, int stat, const char *text, ...) + { + FILE *console = NULL; + va_list ap, ap3; +diff --git a/src/synaptics.c b/src/synaptics.c +index 2418c75..a978ef0 100644 +--- a/src/synaptics.c ++++ b/src/synaptics.c +@@ -214,6 +214,7 @@ + #include + #include + #include ++#include + #include + #include + +@@ -2241,8 +2242,7 @@ static void syn_process_config (info_type ident, + + + +-static unsigned char tp_hextoint (unsigned char byte1, +- unsigned char byte2) ++static unsigned char tp_hextoint (unsigned byte1,unsigned byte2) + { + unsigned char bytes [3]; + int result; +@@ -2250,7 +2250,7 @@ static unsigned char tp_hextoint (unsigned char byte1, + bytes [0] = byte1; + bytes [1] = byte2; + bytes [2] = '\0'; +- sscanf (bytes, "%x", &result); ++ sscanf ((char *)bytes, "%x", &result); + return result; + } + +@@ -2311,8 +2311,7 @@ static void tp_serial_read (int fd, + } + + /* Write a string of commands */ +-static void tp_serial_send_cmd(int fd, +- unsigned char *cmd) ++static void tp_serial_send_cmd(int fd, const char *cmd) + { + unsigned char junk [15]; + +@@ -2329,7 +2328,7 @@ static void tp_serial_send_cmd(int fd, + static void syn_serial_set_mode (int fd, + unsigned char mode) + { +- unsigned char bytes [15]; ++ char bytes [15]; + + sprintf (bytes, "%%C3B%02X5555", mode); + #if DEBUG_SENT_DATA +diff --git a/src/twiddler.c b/src/twiddler.c +index 1d2bd50..972a616 100644 +--- a/src/twiddler.c ++++ b/src/twiddler.c +@@ -250,7 +250,6 @@ static inline int twiddler_use_item(char *item) + int twiddler_key(unsigned long message) + { + char **table = twiddler_get_table(message); +- char *val; + /* + * These two are needed to avoid transmitting single keys when typing + * chords. When the number of keys being held down decreases, data +@@ -269,7 +268,6 @@ int twiddler_key(unsigned long message) + + if (!table) return 0; + message &= 0xff; +- val = table[message]; + + if ((message < last_message) && !marked) { /* ok, do it */ + marked++; /* don't retransmit on release */ +@@ -428,8 +426,11 @@ char *twiddler_rest_to_value(char *s) + buf[ibuf]='\0'; + return strdup(buf); + } +- if (*ptr == '\\') +- return (char *)twiddler_escape_sequence(ptr+1, &len /* unused */); ++ if (*ptr == '\\') { ++ buf[ibuf++] = twiddler_escape_sequence(ptr+1, &len /* unused */); ++ buf[ibuf] = '\0'; ++ return strdup(buf); ++ } + + if (strlen(ptr)==1) return ((char *)((unsigned long)*ptr & 0xFF)); + diff --git a/f04f24dd5ca5c1c13608b144ab66e2ccd47f106a.patch b/f04f24dd5ca5c1c13608b144ab66e2ccd47f106a.patch new file mode 100644 index 0000000..3db4b98 --- /dev/null +++ b/f04f24dd5ca5c1c13608b144ab66e2ccd47f106a.patch @@ -0,0 +1,39 @@ +From f04f24dd5ca5c1c13608b144ab66e2ccd47f106a Mon Sep 17 00:00:00 2001 +From: Sergei Trofimovich +Date: Sun, 19 Jan 2020 19:53:41 +0000 +Subject: [PATCH] src/headers/daemon.h: avoid redefinition of + 'last_selection_time' + +Noticed build failure on gcc-10 as: + +``` +gcc -L/home/slyfox/dev/git/gpm/src -o gpm mice.o ... report.o tools.o -lm +ld: twiddler.o:gpm/src/headers/daemon.h:183: + multiple definition of `last_selection_time'; mice.o:gpm/src/headers/daemon.h:183: first defined here +ld: synaptics.o:git/gpm/src/headers/daemon.h:183: + multiple definition of `last_selection_time'; mice.o:git/gpm/src/headers/daemon.h:183: first defined here +``` + +gcc-10 will change the default from -fcommon to fno-common: +https://gcc.gnu.org/PR85678. + +The error also happens if CFLAGS=-fno-common passed explicitly. + +Signed-off-by: Sergei Trofimovich +--- + src/headers/daemon.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/headers/daemon.h b/src/headers/daemon.h +index a8936ad..24a1a97 100644 +--- a/src/headers/daemon.h ++++ b/src/headers/daemon.h +@@ -180,7 +180,7 @@ extern struct mouse_features mouse_table[3], + extern Gpm_Type mice[]; + extern Gpm_Type *repeated_type; + +-time_t last_selection_time; ++extern time_t last_selection_time; + + + diff --git a/gpm-1.20.1-lib-silent.patch b/gpm-1.20.1-lib-silent.patch index e770741..c12da41 100644 --- a/gpm-1.20.1-lib-silent.patch +++ b/gpm-1.20.1-lib-silent.patch @@ -9,11 +9,11 @@ + return 0; +} + - void gpm_report(int line, char *file, int stat, char *text, ... ) + void gpm_report(int line, const char *file, int stat, const char *text, ... ) { + if ( gpm_silent() && stat != GPM_STAT_OOPS ) + return; + - char *string = NULL; + const char *string = NULL; int log_level; va_list ap; diff --git a/gpm-1.20.1-weak-wgetch.patch b/gpm-1.20.1-weak-wgetch.patch index 2546e17..e1901a6 100644 --- a/gpm-1.20.1-weak-wgetch.patch +++ b/gpm-1.20.1-weak-wgetch.patch @@ -15,7 +15,7 @@ int Gpm_Wgetch(WINDOW *win) { --- gpm-1.20.1/configure.ac.weak-wgetch 2004-03-22 15:49:51.000000000 -0500 -+++ gpm-1.20.1/configure.ac 2004-03-22 15:51:24.000000000 -0500 ++++ gpm-1.20.1/configure.ac.footer 2004-03-22 15:51:24.000000000 -0500 @@ -115,7 +115,7 @@ AC_CHECK_LIB($i, wgetch,,,$TERMLIBS) else :; fi diff --git a/gpm-1.20.7-sigemptyset.patch b/gpm-1.20.7-sigemptyset.patch deleted file mode 100644 index a789037..0000000 --- a/gpm-1.20.7-sigemptyset.patch +++ /dev/null @@ -1,16 +0,0 @@ -diff -r -u gpm-1.20.7-orig/src/prog/gpm-root.y gpm-1.20.7/src/prog/gpm-root.y ---- gpm-1.20.7-orig/src/prog/gpm-root.y 2012-10-26 16:21:38.000000000 -0500 -+++ gpm-1.20.7/src/prog/gpm-root.y 2017-10-10 13:50:02.115721252 -0500 -@@ -1196,11 +1196,7 @@ - LOG_DAEMON : LOG_USER); - /* reap your zombies */ - childaction.sa_handler=reap_children; --#if defined(__GLIBC__) -- __sigemptyset(&childaction.sa_mask); --#else /* __GLIBC__ */ -- childaction.sa_mask=0; --#endif /* __GLIBC__ */ -+ sigemptyset(&childaction.sa_mask); - childaction.sa_flags=SA_INTERRUPT; /* need to break the select() call */ - sigaction(SIGCHLD,&childaction,NULL); - diff --git a/gpm-1.20.7-sysmacros.patch b/gpm-1.20.7-sysmacros.patch deleted file mode 100644 index 630f971..0000000 --- a/gpm-1.20.7-sysmacros.patch +++ /dev/null @@ -1,14 +0,0 @@ -diff -r -u gpm-1.20.7-orig/src/daemon/open_console.c gpm-1.20.7/src/daemon/open_console.c ---- gpm-1.20.7-orig/src/daemon/open_console.c 2012-10-26 16:21:38.000000000 -0500 -+++ gpm-1.20.7/src/daemon/open_console.c 2017-10-10 13:40:39.896316258 -0500 -@@ -23,6 +23,10 @@ - #include /* stat() */ - #include /* ioctl */ - -+#ifdef HAVE_SYS_SYSMACROS_H -+#include /* major() w/newer glibc */ -+#endif -+ - /* Linux specific (to be outsourced in gpm2 */ - #include /* for serial console check */ - #include /* for serial console check */ diff --git a/gpm-format-security.patch b/gpm-format-security.patch deleted file mode 100644 index 3705206..0000000 --- a/gpm-format-security.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff -Naur gpm-1.20.6.orig/src/lib/report-lib.c gpm-1.20.6/src/lib/report-lib.c ---- gpm-1.20.6.orig/src/lib/report-lib.c 2014-02-05 19:11:58.688000000 +0100 -+++ gpm-1.20.6/src/lib/report-lib.c 2014-02-05 19:11:23.968000000 +0100 -@@ -55,7 +55,7 @@ - log_level = LOG_CRIT; break; - } - #ifdef HAVE_VSYSLOG -- syslog(log_level, string); -+ syslog(log_level, "%s", string); - vsyslog(log_level, text, ap); - #else - fprintf(stderr,"%s[%s(%d)]:\n",string,file,line); diff --git a/gpm.spec b/gpm.spec index 1b2ac78..ea95ba5 100644 --- a/gpm.spec +++ b/gpm.spec @@ -17,19 +17,17 @@ URL: http://www.nico.schottelius.org/software/gpm/ Source: %{name}-%{version}.tar.xz Source1: gpm.service +Patch0: 1.20.7...4a938233fbe6de7af05aabc74891b68d4bae40f8.diff +# https://github.com/telmich/gpm/pull/37/ +Patch3: f04f24dd5ca5c1c13608b144ab66e2ccd47f106a.patch Patch1: gpm-1.20.6-multilib.patch Patch2: gpm-1.20.1-lib-silent.patch Patch4: gpm-1.20.5-close-fds.patch Patch5: gpm-1.20.1-weak-wgetch.patch Patch7: gpm-1.20.7-rhbz-668480-gpm-types-7-manpage-fixes.patch Patch8: gpm-1.20.6-missing-header-dir-in-make-depend.patch -Patch9: gpm-format-security.patch -# Include patch from upstream pull request: https://github.com/telmich/gpm/pull/12 -Patch10: gpm-1.20.7-sysmacros.patch -# Include patch from upstream pull request: https://github.com/telmich/gpm/pull/20 -Patch11: gpm-1.20.7-sigemptyset.patch #Patch7: gpm-1.20.6-capability.patch -Requires(post): systemd systemd-sysv info +Requires(post): systemd info Requires(preun): systemd info Requires(postun): systemd # this defines the library version that this package builds. @@ -75,27 +73,25 @@ mouse support to text-based Linux applications. %prep %setup -q -./autogen.sh - +%patch0 -p1 -b .master +%patch3 -p1 -b .gcc10 %patch1 -p1 -b .multilib %patch2 -p1 -b .lib-silent %patch4 -p1 -b .close-fds %patch5 -p1 -b .weak-wgetch %patch7 -p1 # not sure if this is really needed -%patch8 -p1 -%patch9 -p1 -%patch10 -p1 -%patch11 -p1 +#patch8 -p1 -#%patch7 -p1 -b .capability +#patch7 -p1 -b .capability %build +./autogen.sh %configure -make %{?_smp_mflags} +%make_build %install -%makeinstall +%make_install chmod 0755 %{buildroot}/%{_libdir}/libgpm.so.%{LIBVER} ln -sf libgpm.so.%{LIBVER} %{buildroot}/%{_libdir}/libgpm.so @@ -160,6 +156,9 @@ rm -rf %{buildroot}%{_mandir} %changelog * Wed Jan 29 2020 Fedora Release Engineering - 1.20.7-20 - Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild +- Add upstream commits for git master which contains patches 9, 10 and 11 +- Add GCC10 fix +- Cleanups * Thu Jul 25 2019 Fedora Release Engineering - 1.20.7-19 - Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild