~ruther/guix-local

2088513214cc6d03bcb303a951d2df14ec6b57b5 — Mathieu Othacehe 8 years ago 9bd42f1
gnu: reptry: Fix build.

* gnu/packages/patches/reptyr-fix-gcc-7.patch: New file.
* gnu/local.mk (dist_patch_DATA): Add new patch.
* gnu/packages/screen.scm (reptyr): Use patch.
3 files changed, 42 insertions(+), 0 deletions(-)

M gnu/local.mk
A gnu/packages/patches/reptyr-fix-gcc-7.patch
M gnu/packages/screen.scm
M gnu/local.mk => gnu/local.mk +1 -0
@@ 946,6 946,7 @@ dist_patch_DATA =						\
  %D%/packages/patches/readline-link-ncurses.patch		\
  %D%/packages/patches/readline-6.2-CVE-2014-2524.patch		\
  %D%/packages/patches/readline-7.0-mingw.patch			\
  %D%/packages/patches/reptyr-fix-gcc-7.patch			\
  %D%/packages/patches/ripperx-missing-file.patch		\
  %D%/packages/patches/rpcbind-CVE-2017-8779.patch		\
  %D%/packages/patches/rpm-CVE-2014-8118.patch			\

A gnu/packages/patches/reptyr-fix-gcc-7.patch => gnu/packages/patches/reptyr-fix-gcc-7.patch +38 -0
@@ 0,0 1,38 @@
This patch allows reptyr to build with gcc 7. It is taken from reptyr mainline patches
fa0d63f and b45fd92.

https://github.com/nelhage/reptyr/commit/fa0d63ff8c488be15976e5353580b565e85586a1
https://github.com/nelhage/reptyr/commit/b45fd9238958fcf2d8f3d6fc23e6d491febea2ac

Patch by Nelson Elhage <nelhage@nelhage.com>.

diff --git a/attach.c b/attach.c
index bd8ef8c..8d9cbf8 100644
--- a/attach.c
+++ b/attach.c
@@ -389,8 +389,11 @@ int setup_steal_socket(struct steal_pty_state *steal) {
         return errno;
 
     steal->addr_un.sun_family = AF_UNIX;
-    snprintf(steal->addr_un.sun_path, sizeof(steal->addr_un.sun_path),
-             "%s/reptyr.sock", steal->tmpdir);
+    if (snprintf(steal->addr_un.sun_path, sizeof(steal->addr_un.sun_path),
+                 "%s/reptyr.sock", steal->tmpdir) >= sizeof(steal->addr_un.sun_path)) {
+        error("tmpdir path too long!");
+        return ENAMETOOLONG;
+    }
 
     if ((steal->sockfd = socket(AF_UNIX, SOCK_DGRAM, 0)) < 0)
         return errno;
diff --git a/platform/linux/linux.h b/platform/linux/linux.h
index 9e6b78a..3ec5a99 100644
--- a/platform/linux/linux.h
+++ b/platform/linux/linux.h
@@ -40,6 +40,7 @@
 #include <sys/ptrace.h>
 #include <asm/ptrace.h>
 #include <sys/types.h>
+#include <sys/sysmacros.h>
 #include <sys/user.h>
 #include <unistd.h>
 #include <stdlib.h>

M gnu/packages/screen.scm => gnu/packages/screen.scm +3 -0
@@ 4,6 4,7 @@
;;; Copyright © 2015 Eric Bavier <bavier@member.fsf.org>
;;; Copyright © 2016, 2017 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016 Alex Griffin <a@ajgrf.com>
;;; Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;


@@ 155,6 156,8 @@ window manager as well as the Tmux terminal multiplexer.")
       (method url-fetch)
       (uri (string-append "https://github.com/nelhage/reptyr/archive"
                           "/reptyr-" version ".tar.gz"))
       ;; XXX: To be removed on next reptyr release.
       (patches (search-patches "reptyr-fix-gcc-7.patch"))
       (sha256
        (base32
         "07pfl0rkgm8m3f3jy8r9l2yvnhf8lgllpsk3mh57mhzdxq8fagf7"))))