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
next prev parent 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).