summary refs log tree commit diff
path: root/gnu
diff options
context:
space:
mode:
authorJan Nieuwenhuizen <janneke@gnu.org>2019-12-06 14:44:39 +0100
committerJan Nieuwenhuizen <janneke@gnu.org>2019-12-07 19:30:04 +0100
commit8c0dcf3e89e0eb2a6094263efdbc5eaec0e8e9e8 (patch)
treee3dca006592066e7250a5b30779bebc4963e1fd2 /gnu
parentf410e72db90aad668b26cf9117da10aa4b75e507 (diff)
downloadguix-8c0dcf3e89e0eb2a6094263efdbc5eaec0e8e9e8.tar.gz
gnu: mes: Add patch to remove store name from binary.
* gnu/packages/patches/mes-remove-store-name.patch: New file, from upstream.
* gnu/packages/mes.scm (mes): Use it.  Add `www.' to homepage.
* gnu/local.mk (dist_patch_DATA): Add it.
Diffstat (limited to 'gnu')
-rw-r--r--gnu/local.mk1
-rw-r--r--gnu/packages/mes.scm3
-rw-r--r--gnu/packages/patches/mes-remove-store-name.patch121
3 files changed, 124 insertions, 1 deletions
diff --git a/gnu/local.mk b/gnu/local.mk
index d12b6b1878..fbea6dc78b 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1133,6 +1133,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/mcrypt-CVE-2012-4409.patch			\
   %D%/packages/patches/mcrypt-CVE-2012-4426.patch			\
   %D%/packages/patches/mcrypt-CVE-2012-4527.patch			\
+  %D%/packages/patches/mes-remove-store-name.patch		\
   %D%/packages/patches/mesa-skip-disk-cache-test.patch		\
   %D%/packages/patches/mesa-timespec-test-32bit.patch		\
   %D%/packages/patches/mescc-tools-boot.patch			\
diff --git a/gnu/packages/mes.scm b/gnu/packages/mes.scm
index 59710c45ae..0a5863582a 100644
--- a/gnu/packages/mes.scm
+++ b/gnu/packages/mes.scm
@@ -134,7 +134,7 @@ bootstrap to Guix and aims to help create full source bootstrapping for
 GNU/Linux distributions.  It consists of a mutual self-hosting Scheme
 interpreter in C and a Nyacc-based C compiler in Scheme and is compatible with
 Guile.")
-    (home-page "https://gnu.org/software/mes")
+    (home-page "https://www.gnu.org/software/mes/")
     (license gpl3+)))
 
 (define-public mes
@@ -145,6 +145,7 @@ Guile.")
               (method url-fetch)
               (uri (string-append "mirror://gnu/mes/"
                                   "mes-" version ".tar.gz"))
+              (patches (search-patches "mes-remove-store-name.patch"))
               (sha256
                (base32
                 "104qxngxyl7pql8vqrnli3wfyx0ayfaqg8gjfhmk4qzrafs46slm"))))
diff --git a/gnu/packages/patches/mes-remove-store-name.patch b/gnu/packages/patches/mes-remove-store-name.patch
new file mode 100644
index 0000000000..ad055c51f2
--- /dev/null
+++ b/gnu/packages/patches/mes-remove-store-name.patch
@@ -0,0 +1,121 @@
+From d8f361705325cf91fc6c2ec84f281cdcd6bfa8b1 Mon Sep 17 00:00:00 2001
+From: Jan Nieuwenhuizen <janneke@gnu.org>
+Date: Tue, 3 Dec 2019 21:23:24 +0100
+Subject: [PATCH] core: Remove MES_PKGDATADIR.
+
+* configure: Do not add MES_PKGDATADIR to config.h.
+* configure.sh: Likewise.
+* simple.sh: Likewise.
+* src/mes.c (open_boot): Do not use MES_PKGDATADIR; rely on
+MES_PREFIX or cwd.
+---
+ configure    |  1 -
+ configure.sh |  1 -
+ simple.sh    |  2 --
+ src/mes.c    | 13 -------------
+ 4 files changed, 17 deletions(-)
+
+diff --git a/configure b/configure
+index 8edb2ce7b..12d8323f2 100755
+--- a/configure
++++ b/configure
+@@ -666,7 +666,6 @@ See \"Porting GNU Mes\" in the manual, or try --with-courage\n" mes-system)
+ "))
+               (display (string-append "
+ #define MES_VERSION \"" VERSION "\"
+-#define MES_PKGDATADIR \"" pkgdatadir "\"
+ ")))))
+         (substitute (string-append srcdest "build-aux/config.make.in") pairs #:target ".config.make"))
+ 
+diff --git a/configure.sh b/configure.sh
+index 947ddd851..0139cbc36 100755
+--- a/configure.sh
++++ b/configure.sh
+@@ -244,7 +244,6 @@ EOF
+ fi
+ cat >> include/mes/config.h <<EOF
+ #define MES_VERSION "$VERSION"
+-#define MES_PKGDATADIR "$pkgdatadir"
+ EOF
+ 
+ cat <<EOF
+diff --git a/simple.sh b/simple.sh
+index db6950354..b54398a59 100755
+--- a/simple.sh
++++ b/simple.sh
+@@ -33,7 +33,6 @@ mes_bits=64
+ cat > include/mes/config.h <<EOF
+ #define SYSTEM_LIBC 1
+ #define MES_VERSION "git"
+-#define MES_PKGDATADIR "/usr/local/share/mes"
+ EOF
+ 
+ ## Build ##
+@@ -126,7 +125,6 @@ mes_cpu=x86_64
+ cat > include/mes/config.h <<EOF
+ // #define SYSTEM_LIBC 0
+ #define MES_VERSION "git"
+-#define MES_PKGDATADIR "/usr/local/share/mes"
+ EOF
+ 
+ ## Build ##
+diff --git a/src/mes.c b/src/mes.c
+index d9760fad6..a5e7f2b69 100644
+--- a/src/mes.c
++++ b/src/mes.c
+@@ -1775,12 +1775,6 @@ open_boot ()
+   char boot[1024];
+   char file_name[1024];
+   strcpy (g_datadir, ".");
+-  if (g_debug > 1)
+-    {
+-      eputs (";;; pkgdatadir=");
+-      eputs (MES_PKGDATADIR);
+-      eputs ("\n");
+-    }
+   if (getenv ("MES_BOOT"))
+     strcpy (boot, getenv ("MES_BOOT"));
+   else
+@@ -1801,13 +1795,6 @@ open_boot ()
+           __stdin = try_open_boot (file_name, boot, "MES_PREFIX/share/mes");
+         }
+     }
+-  if (__stdin < 0)
+-    {
+-      strcpy (g_datadir, MES_PKGDATADIR);
+-      strcpy (file_name, g_datadir);
+-      strcpy (file_name + strlen (file_name), "/module/mes/");
+-      __stdin = try_open_boot (file_name, boot, "pkgdatadir");
+-    }
+   if (__stdin < 0)
+     {
+       g_datadir[0] = 0;
+-- 
+2.24.0
+
+commit 2f6fab05b3f09df02aba70c3e21d5fedb45dc567
+Author: Jan Nieuwenhuizen <janneke@gnu.org>
+Date:   Sun Nov 24 23:12:29 2019 +0100
+
+    core: Throw instead of segfault on non-existing input file.  WIP.
+    
+    Reported by theruran.
+    
+    * src/posix.c (open_input_file): Call error instead of failing silently.
+
+diff --git a/src/posix.c b/src/posix.c
+index 7ba2e9915..fd753232d 100644
+--- a/src/posix.c
++++ b/src/posix.c
+@@ -188,7 +188,10 @@ current_input_port ()
+ SCM
+ open_input_file (SCM file_name)
+ {
+-  return MAKE_NUMBER (mes_open (CSTRING (file_name), O_RDONLY, 0));
++  int filedes = mes_open (CSTRING (file_name), O_RDONLY, 0);
++  if (filedes == -1)
++    error (cell_symbol_system_error, cons (MAKE_STRING0 ("No such file or directory"), file_name));
++  return MAKE_NUMBER (filedes);
+ }
+ 
+ SCM