[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[bug#29975] [core-updates] gnu: gpm: Fix building with glibc 2.26.
From: |
Marius Bakke |
Subject: |
[bug#29975] [core-updates] gnu: gpm: Fix building with glibc 2.26. |
Date: |
Sat, 06 Jan 2018 23:01:01 +0100 |
User-agent: |
Notmuch/0.25.3 (https://notmuchmail.org) Emacs/25.3.1 (x86_64-pc-linux-gnu) |
Leo Famulari <address@hidden> writes:
> * gnu/packages/patches/gpm-glibc-2.26.patch: New file.
> * gnu/local.mk (dist_patch_DATA): Add it.
> * gnu/packages/linux.scm (gpm)[source]: Use it.
[...]
> diff --git a/gnu/packages/patches/gpm-glibc-2.26.patch
> b/gnu/packages/patches/gpm-glibc-2.26.patch
> new file mode 100644
> index 000000000..cc2766ce8
> --- /dev/null
> +++ b/gnu/packages/patches/gpm-glibc-2.26.patch
> @@ -0,0 +1,79 @@
> +Fix building of GPM with glibc 2.26:
> +
> +------
> +daemon/open_console.o: In function `open_console':
> +/tmp/guix-build-gpm-1.20.7.drv-0/gpm-1.20.7/src/daemon/open_console.c:45:
> undefined reference to `major'
> +collect2: error: ld returned 1 exit status
> +------
> +
> +https://github.com/telmich/gpm/issues/21
> +
> +Patch copied from Linux From Scratch:
> +
> +http://www.linuxfromscratch.org/patches/blfs/svn/gpm-1.20.7-glibc_2.26-1.patch
No response from upstream in 6 months, yikes!
Gentoo only carries the sysmacros.h hunk, plus a one-liner:
https://gitweb.gentoo.org/repo/gentoo.git/tree/sys-libs/gpm/files
...which seems less "brutal" than the LFS patch. Can you try it?
I also noticed Arch does not have any patches on gpm, I wonder what they
do differently.
https://git.archlinux.org/svntogit/packages.git/tree/trunk?h=packages/gpm
> +
> +Submitted by: Pierre Labastie <pierre dot labastie at neuf dot fr>
> +Date: 2017-08-17
> +Initial Package Version: 1.20.7
> +Origin: Nutyx
> +Upstream Status: There are PRs, but nothing committed yet
> +Description: Fix build failures introduced by glibc-2.26
> +
> +diff -Naur 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
> 21:21:38.000000000 +0000
> ++++ gpm-1.20.7/src/daemon/open_console.c 2017-08-08 17:58:15.176232558
> +0000
> +@@ -23,6 +23,10 @@
> + #include <sys/stat.h> /* stat() */
> + #include <sys/ioctl.h> /* ioctl */
> +
> ++#ifdef HAVE_SYS_SYSMACROS_H
> ++#include <sys/sysmacros.h> /* major() w/newer glibc */
> ++#endif
> ++
> + /* Linux specific (to be outsourced in gpm2 */
> + #include <linux/serial.h> /* for serial console check */
> + #include <asm/ioctls.h> /* for serial console check */
> +diff -Naur 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 21:21:38.000000000
> +0000
> ++++ gpm-1.20.7/src/prog/gpm-root.y 2017-08-08 18:00:36.442898559 +0000
> +@@ -443,6 +443,7 @@
> + }
> +
> + /*---------------------------------------------------------------------*/
> ++#if 0
> + static int f_debug_one(FILE *f, Draw *draw)
> + {
> + DrawItem *ip;
> +@@ -465,6 +466,7 @@
> + #undef LINE
> + return 0;
> + }
> ++#endif
> +
> + int f_debug(int mode, DrawItem *self, int uid)
> + {
> +@@ -960,10 +962,8 @@
> + /*------------*/
> + 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,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);
> +
> --
> 2.15.1
signature.asc
Description: PGP signature