unofficial mirror of guix-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: Andy Patterson <ajpatter@uwaterloo.ca>
To: 宋文武 <iyzsong@member.fsf.org>
Cc: guix-devel@gnu.org
Subject: Re: [PATCH v2 01/13] build-system: Add asdf-build-system.
Date: Fri, 7 Oct 2016 04:07:24 -0400	[thread overview]
Message-ID: <20161007040724.6b28b18d@uwaterloo.ca> (raw)
In-Reply-To: <20161005165907.3e5ed2c2@uwaterloo.ca>

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

Hi again,

Things took a little longer than expected as I ran into a bug with ECL
(fix attached). I'll try to upstream it later. It can be re-ordered
somewhere nearer the beginning of the series.

On Wed, 5 Oct 2016 16:59:07 -0400
Andy Patterson <ajpatter@uwaterloo.ca> wrote:

> > What’s the ‘compile-dependencies’ used for?  I think when compile a
> > system, ASDF will load all its depends (from the :depends-on) first.
> > Sometimes we need load extra systems manually?
> >   
> 
> It's for packages like slynk, where many systems are defined within
> the same file. When telling asdf to find a system, it will only
> search for a file with the same name unless it already knows about
> that system. Therefore, in these cases the system which contains the
> definitions is loaded first. This mechanism is a bit clunky so
> suggestions are welcome. For now I'll document the reason it's done
> that way.
> 

I found a better way to solve this.

I hope I've managed to cover everything you've suggested. The slynk
packages look quite a bit nicer now. I'll attach the updates as replies
to the corresponding v2 patches. Let me know what you think.

--
Andy

[-- Attachment #2: v3-0012-gnu-ecl-Fix-truename-on-long-target-files.patch --]
[-- Type: text/x-patch, Size: 3152 bytes --]

From 7646691c77c9a01e620e5f0c4695db8abb276863 Mon Sep 17 00:00:00 2001
From: Andy Patterson <ajpatter@uwaterloo.ca>
Date: Fri, 7 Oct 2016 03:19:26 -0400
Subject: [PATCH v3 12/12] gnu: ecl: Fix `truename' on long target files.

When the target of a symbolic link exceeded 128 characters, `truename'
would unexpectedly fail.

* gnu/packages/patches/ecl-fix-si-readlink.patch: New file.
* gnu/local.mk (dist_patch_DATA): Add it.
---
 gnu/local.mk                                   |  1 +
 gnu/packages/lisp.scm                          |  4 +++-
 gnu/packages/patches/ecl-fix-si-readlink.patch | 20 ++++++++++++++++++++
 3 files changed, 24 insertions(+), 1 deletion(-)
 create mode 100644 gnu/packages/patches/ecl-fix-si-readlink.patch

diff --git a/gnu/local.mk b/gnu/local.mk
index 206b794..d057d20 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -497,6 +497,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/doxygen-test.patch			\
   %D%/packages/patches/duplicity-piped-password.patch		\
   %D%/packages/patches/duplicity-test_selection-tmp.patch	\
+  %D%/packages/patches/ecl-fix-si-readlink.patch		\
   %D%/packages/patches/elfutils-tests-ptrace.patch		\
   %D%/packages/patches/elixir-disable-failing-tests.patch	\
   %D%/packages/patches/einstein-build.patch			\
diff --git a/gnu/packages/lisp.scm b/gnu/packages/lisp.scm
index 458862c..7068800 100644
--- a/gnu/packages/lisp.scm
+++ b/gnu/packages/lisp.scm
@@ -130,7 +130,9 @@ interface to the Tk widget system.")
        (snippet
         ;; Add ecl-bundle-systems to 'default-system-source-registry'.
         `(substitute* "contrib/asdf/asdf.lisp"
-           ,@(asdf-substitutions name)))))
+           ,@(asdf-substitutions name)))
+       (patches
+        (search-patches "ecl-fix-si-readlink.patch"))))
     (build-system gnu-build-system)
     ;; src/configure uses 'which' to confirm the existence of 'gzip'.
     (native-inputs `(("which" ,which)))
diff --git a/gnu/packages/patches/ecl-fix-si-readlink.patch b/gnu/packages/patches/ecl-fix-si-readlink.patch
new file mode 100644
index 0000000..5cd0efc
--- /dev/null
+++ b/gnu/packages/patches/ecl-fix-si-readlink.patch
@@ -0,0 +1,20 @@
+--- a/src/c/unixfsys.d	2016-02-25 02:06:19.000000000 -0500
++++ b/src/c/unixfsys.d	2016-10-07 00:50:20.172282246 -0400
+@@ -236,15 +236,15 @@ static cl_object
+ si_readlink(cl_object filename) {
+         /* Given a filename which is a symlink, this routine returns
+          * the value of this link in the form of a pathname. */
+-        cl_index size = 128, written;
++        cl_index size = 0, written;
+         cl_object output, kind;
+         do {
++                size += 128;
+                 output = ecl_alloc_adjustable_base_string(size);
+                 ecl_disable_interrupts();
+                 written = readlink((char*)filename->base_string.self,
+                                    (char*)output->base_string.self, size);
+                 ecl_enable_interrupts();
+-                size += 256;
+         } while (written == size);
+         output->base_string.self[written] = '\0';
+         kind = file_kind((char*)output->base_string.self, FALSE);
-- 
2.10.0


  reply	other threads:[~2016-10-07  8:07 UTC|newest]

Thread overview: 51+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-09-27  4:15 [PATCH 0/12]: Add asdf-build-system Andy Patterson
2016-09-27  4:15 ` [PATCH 01/12] build-system: " Andy Patterson
2016-09-27  4:15 ` [PATCH 02/12] gnu: Add alexandria Andy Patterson
2016-10-08 12:43   ` Ludovic Courtès
2016-09-27  4:15 ` [PATCH 03/12] gnu: Add fiveam Andy Patterson
2016-10-08 12:48   ` Ludovic Courtès
2016-09-27  4:15 ` [PATCH 04/12] gnu: Add bordeaux-threads Andy Patterson
2016-09-27  4:15 ` [PATCH 05/12] gnu: Add trivial-gray-streams Andy Patterson
2016-09-27  4:15 ` [PATCH 06/12] gnu: Add flexi-streams Andy Patterson
2016-09-27  4:15 ` [PATCH 07/12] gnu: Add cl-ppcre Andy Patterson
2016-09-27  4:15 ` [PATCH 08/12] gnu: Add clx Andy Patterson
2016-09-27  4:15 ` [PATCH 09/12] gnu: Add stumpwm Andy Patterson
2016-09-27  4:15 ` [PATCH 10/12] gnu: Add slynk Andy Patterson
2016-10-08 12:59   ` Ludovic Courtès
2016-09-27  4:15 ` [PATCH 11/12] gnu: Add stumpwm-with-slynk-sbcl Andy Patterson
2016-09-27  4:15 ` [PATCH 12/12] gnu: Add stumpwm-with-slynk-image-sbcl Andy Patterson
2016-09-27 12:51 ` [PATCH 0/12]: Add asdf-build-system James Richardson
2016-09-29  2:30 ` Andy Patterson
2016-09-30 11:45   ` 宋文武
2016-10-03  2:41     ` Andy Patterson
2016-10-03  2:41 ` [PATCH v2 00/13]: " Andy Patterson
2016-10-03  2:41   ` [PATCH v2 01/13] build-system: " Andy Patterson
2016-10-05  4:55     ` 宋文武
2016-10-05 20:59       ` Andy Patterson
2016-10-07  8:07         ` Andy Patterson [this message]
2016-10-07  8:07     ` Andy Patterson
2016-10-07 12:44       ` Ludovic Courtès
2016-10-07 21:57         ` Andy Patterson
2016-10-08 12:39           ` Ludovic Courtès
2016-10-03  2:41   ` [PATCH v2 02/13] gnu: sbcl: Honour XDG_DATA_DIRS Andy Patterson
2016-10-03  2:41   ` [PATCH v2 03/13] gnu: ecl: " Andy Patterson
2016-10-03  2:41   ` [PATCH v2 04/13] gnu: Add cl-alexandria Andy Patterson
2016-10-03  2:41   ` [PATCH v2 05/13] gnu: Add cl-fiveam Andy Patterson
2016-10-03  2:41   ` [PATCH v2 06/13] gnu: Add cl-bordeaux-threads Andy Patterson
2016-10-03  2:41   ` [PATCH v2 07/13] gnu: Add cl-trivial-gray-streams Andy Patterson
2016-10-03  2:41   ` [PATCH v2 08/13] gnu: Add cl-flexi-streams Andy Patterson
2016-10-03  2:41   ` [PATCH v2 09/13] gnu: Add cl-ppcre Andy Patterson
2016-10-03  2:41   ` [PATCH v2 10/13] gnu: Add cl-clx Andy Patterson
2016-10-03  2:41   ` [PATCH v2 11/13] gnu: Add cl-stumpwm Andy Patterson
2016-10-07  8:07     ` Andy Patterson
2016-10-03  2:41   ` [PATCH v2 12/13] gnu: Add cl-slynk Andy Patterson
2016-10-07  8:07     ` Andy Patterson
2016-10-03  2:41   ` [PATCH v2 13/13] gnu: Add sbcl-stumpwm-with-slynk Andy Patterson
2016-10-07  8:07     ` Andy Patterson
2016-10-06 21:04   ` [PATCH v2 00/13]: Add asdf-build-system Ludovic Courtès
2016-10-07  0:59     ` 宋文武
2016-10-08 13:30   ` 宋文武
2016-10-08 13:00 ` [PATCH 0/12]: " Ludovic Courtès
2016-10-08 13:28   ` 宋文武
2016-10-10 17:54     ` Andy Patterson
2016-10-10 17:47   ` Andy Patterson

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://guix.gnu.org/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20161007040724.6b28b18d@uwaterloo.ca \
    --to=ajpatter@uwaterloo.ca \
    --cc=guix-devel@gnu.org \
    --cc=iyzsong@member.fsf.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).