() "Issac Trotts" <[EMAIL PROTECTED]>
() Sun, 8 Apr 2007 22:48:41 -0700
Here's what it does on my installation of guile 1.9.0:
[...]
checking if (guile-user) exports `close-all-fdes-except'... no
configure: error: module (guile-user) does not export close-all-fdes-except;
required
Do you know how to fix this?
one way is to try Guile 1.4.x, but i suspect that is not what you would
prefer.
another way is to avoid using module (ttn call-process) and its
downstreams. here is a pruned list of dependencies:
x (ttn call-process)
autoload (ttn-do run-signed-batch-job)
i (ttn call-process)
regular (ttn call-process-to-buffers)
i (ttn call-process-to-buffers)
regular (ttn make-buffered-caller)
i (ttn make-buffered-caller)
autoload (ttn gpgutils)
x (ttn make-buffered-caller)
regular (ttn-do htmlize-scheme)
regular (ttn-do publish)
autoload (ttn-do run-signed-batch-job)
regular (ttn-do snap-iso)
it might be incomplete. here is the emacs-lisp expression evaluated to
get all the deps (tweak to suit your site):
(shell-command "
cd ~/build/ttn-pers-scheme && \
( cat ~/build/gnuvola/software/*/frisk.out ;
echo ;
echo '(internal downstream)' ;
guile-tools frisk -id ttn/*.scm ) \\
| uniq | tee `date +.ttn.usage.%Y-%m-%d`")
full list can be found (temporarily, for a couple days) at:
<http://www.gnuvola.org/.ttn.usage.2007-04-09>
once you've decided you can live w/o these things, you can hack the
configure script to not fail due to that missing function.
thirdly, another way is to add the function to your guile then restart
the installation to ttn-pers-scheme. attached (to avoid mail system
mangling) is the function extracted from libguile/ioext.c. some minor
porting probably required.
lastly, another way is to change (ttn call-process) so that it doesn't
need the function at all. perhaps that is easy, i don't know.
thi
SCM_DEFINE (scm_close_all_fdes_except, "close-all-fdes-except", 0, 0, 1,
(SCM fdes_list),
"Close all file descriptors for ports used by the interpreter\n"
"except for those supplied as arguments. This procedure\n"
"is intended to be used before an exec(2) call. The related\n"
"procedure @code{close-all-ports-except} is unsuitable for that\n"
"because it flushes port buffers.")
#define FUNC_NAME s_scm_close_all_fdes_except
{
int i, sysrv;
SCM_VALIDATE_REST_ARGUMENT (fdes_list);
for (i = 0; i < scm_port_table_size; i++)
{
SCM thisport = scm_port_table[i]->port;
SCM ls = fdes_list; int matchp = 0;
SCM fd;
if (! SCM_OPFPORTP (thisport))
continue;
fd = scm_fileno (thisport);
while (SCM_NNULLP (ls) && !matchp)
{
if (SCM_EQ_P (SCM_CAR (ls), fd))
{
/* This used to simply goto next_port, but gcc 3.3.2 warns
"deprecated use of label at end of compound statement".
The march of progress and all that. */
matchp = 1;
break;
}
ls = SCM_CDR (ls);
}
if (!matchp)
{
SCM_SYSCALL (sysrv = close (SCM_INUM (fd)));
if (sysrv < 0)
SCM_SYSERROR;
}
/* next_port: */
}
return SCM_UNSPECIFIED;
}
#undef FUNC_NAME
_______________________________________________
Guile-user mailing list
[email protected]
http://lists.gnu.org/mailman/listinfo/guile-user