bogus entry in local/include/ecl directory when build ecl package (sage -f ecl)

25 views
Skip to first unread message

Jskud

unread,
Jan 7, 2014, 6:02:23 PM1/7/14
to sage-s...@googlegroups.com
==Description==

    When I (build and) install the ecl package, it creates a bogus entry
    in the local/include/ecl directory, namely there is this entry
    ($SAGE_ROOT/local/include/ecl/$SAGE_ROOT)

/scratch1/local/opt/sage-6.0/local/include/ecl//scratch1/local/opt/sage-6.0/local/var/tmp/sage/build/ecl-12.12.1.p4/src/build/ecl

    where my SAGE_ROOT is /scratch1/local/opt/sage-6.0.

    It may be related to the following snippet and complaint in the
    build output (note the explicit mkdir -p of the bogus entry)

    mkdir -p -- /scratch1/local/opt/sage-6.0/local/include//ecl//scratch1/local/opt/sage-6.0/local/var/tmp/sage/build/ecl-12.12.1.p4/src/build/ecl
    for i in `(cd ecl && find . -name '*.h')`; do echo $i; \
          /usr/bin/install -c -m 644 ecl/$i /scratch1/local/opt/sage-6.0/local/include//ecl/$i; \
        done
    /scratch1/local/opt/sage-6.0/local/var/tmp/sage/build/ecl-12.12.1.p4/src/build/ecl
    /usr/bin/install: cannot stat `ecl//scratch1/local/opt/sage-6.0/local/var/tmp/sage/build/ecl-12.12.1.p4/src/build/ecl': No such file or directory

    Note that the original location for $SAGE_ROOT was
    /scratch1/Jskud/__origin__/sage-6.0,
    but after I built it, I moved it to
    /scratch1/local/opt/sage-6.0.

    So I also have this entry

    /scratch1/local/opt/sage-6.0/local/include/ecl/scratch1/Jskud/__origin__/sage-6.0/local/var/tmp/sage/build/ecl-12.12.1.p4/src/build/ecl/

==Desired Result==

    no bogus entry in $SAGE_ROOT/local/include/ecl

==Context of the Problem==

    Happened on intial build of sage,
    and reproduced with sage -f ecl
    after moving the $SAGE_ROOT.

==Platform (CPU) and Operating System==

RedHat Enterprise Linux 5.7
x86_64

==Exact version of Sage (command: "version()")==

sage: version()
'Sage Version 6.0, Release Date: 2013-12-17'

==Reproduce==

sage -f ecl
sage -sh -c 'find $SAGE_ROOT/local/include/ecl/$SAGE_ROOT -print'

[]

Jskud

unread,
Jan 7, 2014, 8:24:48 PM1/7/14
to sage-s...@googlegroups.com
The ecl install problems (there are two) are both due to an embedded cd
command in these lines:

    for i in `(cd ecl && find . -type d)`; do \
    for i in `(cd ecl && find . -name '*.h')`; do echo $$i; \

I have CDPATH path set, with "." as the first entry (so that I'll go to
the local subdirectory first).  This causes bash to find the directory
using the CDPATH, and thereofre write out the working directory
(cf. /usr/share/info/bash.info.gz)

     If a non-empty directory name from `CDPATH' is used, or if `-' is
     the first argument, and the directory change is successful, the
     absolute pathname of the new working directory is written to the
     standard output.

Suggested fix: unset CDPATH, as in

    for i in `(unset CDPATH; cd ecl && find . -type d)`; do \
      k="$(DESTDIR)$(includedir)/ecl/$$i"; \
      test -d "$$k" || $(mkinstalldirs) $$k; \
    done
    for i in `(unset CDPATH; cd ecl && find . -name '*.h')`; do echo $$i; \
      $(INSTALL_DATA) ecl/$$i $(DESTDIR)$(includedir)/ecl/$$i; \
    done

[]

Jeroen Demeyer

unread,
Jan 8, 2014, 3:47:47 AM1/8/14
to sage-s...@googlegroups.com
This looks like a problem upstream with ECL, not the Sage interface with
ECL. I think it's best to report this problem with ECL:
http://sourceforge.net/p/ecls/bugs/?source=navbar

Jskud

unread,
Jan 8, 2014, 7:54:21 AM1/8/14
to sage-s...@googlegroups.com
Thanks for the clear guidance -- problem reported: #280 bogus entry in include/ecl directory after install
Reply all
Reply to author
Forward
0 new messages