unofficial mirror of guix-patches@gnu.org 
 help / color / mirror / code / Atom feed
* [bug#29975] [core-updates] gnu: gpm: Fix building with glibc 2.26.
@ 2018-01-04  4:38 Leo Famulari
  2018-01-06 22:01 ` Marius Bakke
  0 siblings, 1 reply; 3+ messages in thread
From: Leo Famulari @ 2018-01-04  4:38 UTC (permalink / raw)
  To: 29975

* 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.
---
 gnu/local.mk                              |  1 +
 gnu/packages/linux.scm                    |  1 +
 gnu/packages/patches/gpm-glibc-2.26.patch | 79 +++++++++++++++++++++++++++++++
 3 files changed, 81 insertions(+)
 create mode 100644 gnu/packages/patches/gpm-glibc-2.26.patch

diff --git a/gnu/local.mk b/gnu/local.mk
index 963c24d21..a10fa044f 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -707,6 +707,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/gobject-introspection-absolute-shlib-path.patch \
   %D%/packages/patches/gobject-introspection-cc.patch		\
   %D%/packages/patches/gobject-introspection-girepository.patch	\
+  %D%/packages/patches/gpm-glibc-2.26.patch			\
   %D%/packages/patches/graphite2-ffloat-store.patch		\
   %D%/packages/patches/grep-timing-sensitive-test.patch		\
   %D%/packages/patches/groff-source-date-epoch.patch		\
diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm
index a268d951e..2eb5e1815 100644
--- a/gnu/packages/linux.scm
+++ b/gnu/packages/linux.scm
@@ -3045,6 +3045,7 @@ write access to exFAT devices.")
               (uri (string-append
                     "http://www.nico.schottelius.org/software/gpm/archives/gpm-"
                     version ".tar.bz2"))
+              (patches (search-patches "gpm-glibc-2.26.patch"))
               (sha256
                (base32
                 "13d426a8h403ckpc8zyf7s2p5rql0lqbg2bv0454x0pvgbfbf4gh"))))
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
+
+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

^ permalink raw reply related	[flat|nested] 3+ messages in thread

* [bug#29975] [core-updates] gnu: gpm: Fix building with glibc 2.26.
  2018-01-04  4:38 [bug#29975] [core-updates] gnu: gpm: Fix building with glibc 2.26 Leo Famulari
@ 2018-01-06 22:01 ` Marius Bakke
  2018-01-10  8:21   ` bug#29975: " Leo Famulari
  0 siblings, 1 reply; 3+ messages in thread
From: Marius Bakke @ 2018-01-06 22:01 UTC (permalink / raw)
  To: Leo Famulari, 29975

[-- Attachment #1: Type: text/plain, Size: 3830 bytes --]

Leo Famulari <leo@famulari.name> 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

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 487 bytes --]

^ permalink raw reply	[flat|nested] 3+ messages in thread

* bug#29975: [core-updates] gnu: gpm: Fix building with glibc 2.26.
  2018-01-06 22:01 ` Marius Bakke
@ 2018-01-10  8:21   ` Leo Famulari
  0 siblings, 0 replies; 3+ messages in thread
From: Leo Famulari @ 2018-01-10  8:21 UTC (permalink / raw)
  To: Marius Bakke; +Cc: 29975-done

[-- Attachment #1: Type: text/plain, Size: 565 bytes --]

On Sat, Jan 06, 2018 at 11:01:01PM +0100, Marius Bakke wrote:
> 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?

Thanks, I pushed as fddb22ac1954a49985b3c0dd5ef253b2c0d35b7c with these
patches instead.

> 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

Hm, good question!

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2018-01-10  8:23 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-01-04  4:38 [bug#29975] [core-updates] gnu: gpm: Fix building with glibc 2.26 Leo Famulari
2018-01-06 22:01 ` Marius Bakke
2018-01-10  8:21   ` bug#29975: " Leo Famulari

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/guix.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).