Forum OpenACS Q&A: error installing Search-OpenFTS following doc - PLS HLP

Following doc in https://openacs.org/doc/openacs-4-6-3/aolserver.html

I'm trying to install openFTS at point 2.b

After typing:
./configure --with-aolserver-src=/usr/local/src/aolserver/aolserver --with-tcl=/usr/lib/tcl8.3 (it was not working with /usr/lib)

everything seems ok but then after launching "make"; I get an error:

====================================================
yasha:/usr/local/src/Search-OpenFTS-tcl-0.3.2# make
(cd parser; make all)
make[1]: Entering directory `/usr/local/src/Search-OpenFTS-tcl-0.3.2/parser'
gcc -c -I. -fPIC -I../include -DPACKAGE=\"OPENFTS\" -DVERSION=\"0.3.2\" -DHAVE_UNISTD_H=1 -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DSTDC_HEADERS=1 -DHAVE_STRERROR=1 -DHAVE_STRSTR=1 -DHAVE_STRLEN=1 -DHAVE_POLL=1  Parser.c -o Parser.o
In file included from Parser.c:28:
../include/fts.h:16: tcl.h: No such file or directory
make[1]: *** [Parser.o] Error 1
make[1]: Leaving directory `/usr/local/src/Search-OpenFTS-tcl-0.3.2/parser'
make: *** [parser] Error 2
yasha:/usr/local/src/Search-OpenFTS-tcl-0.3.2#
========================================================

Thanks in advance for your help!!

Yves, after executing ''configure'', what does it says at the line "checking for Tcl configuration..."? Also, in which directory, does your tclConfig.sh file exists?
Thank you for your answer Demetriou. Here's what I got:

========================================================
yasha:/usr/local/src/Search-OpenFTS-tcl-0.3.2# ./configure --with-aolserver-src=/usr/local/src/aolserver/aolserver --with-tcl-includes=/usr/include/tcl8.3/ --with-tcl-libraries=/usr/lib/tcl8.3/ --with-tcl=/usr/lib/tcl8.3/

checking prefix... /usr/local
checking for gcc... gcc

(many lines omitted)

checking for Tcl configuration... found /usr/lib/tcl8.3/tclConfig.sh
checking for existence of /usr/lib/tcl8.3/tclConfig.sh... loading
checking for tclsh... /usr/bin/tclsh8.3

        OPENFTS version 0.3.2 configured successfully.

Using c-compiler:      gcc
Tcl Version:            8.3
Tcl package directory:  /usr/lib/tcl8.3
Tcl Shell:              /usr/bin/tclsh8.3
Aolserver include:    /usr/local/src/aolserver/aolserver/include
Aolserver nsd include: /usr/local/src/aolserver/aolserver/nsd

configure: creating ./config.status
config.status: creating Makefile.global

yasha:/usr/local/src/Search-OpenFTS-tcl-0.3.2# make

(cd parser; make all)
make[1]: Entering directory `/usr/local/src/Search-OpenFTS-tcl-0.3.2/parser'
gcc -c -I. -fPIC -I../include -DPACKAGE=\"OPENFTS\" -DVERSION=\"0.3.2\" -DHAVE_UNISTD_H=1 -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DSTDC_HEADERS=1 -DHAVE_STRERROR=1 -DHAVE_STRSTR=1 -DHAVE_STRLEN=1 -DHAVE_POLL=1  Parser.c -o Parser.o
In file included from Parser.c:28:
../include/fts.h:16: tcl.h: No such file or directory
make[1]: *** [Parser.o] Error 1
make[1]: Leaving directory `/usr/local/src/Search-OpenFTS-tcl-0.3.2/parser'
make: *** [parser] Error 2
yasha:/usr/local/src/Search-OpenFTS-tcl-0.3.2#
=========================================================

I forgot: my tclConfig.sh is in /usr/lib/tcl8.3/
You might need to make some soft links to the correct directories. Do you know how to use ln -s ?

no I don't Jade. Can you help me with that?

Here's what I got in the directories. It seems there's already a ln... in /usr/bin

yasha:/usr/bin# ls -l tc*
lrwxrwxrwx 1 root root 23 Jun 5 00:18 tclsh -> /etc/alternatives/tclsh
-rwxr-xr-x 1 root root 3508 Mar 17 2002 tclsh8.3
lrwxrwxrwx 1 root root 9 Jun 4 15:28 tcsh -> /bin/tcsh

yasha:/usr/include# ls -l tc*
total 208
drwxr-xr-x 4 root root 4096 Jun 5 00:16 tcl-private
-rw-r--r-- 1 root root 57868 Mar 17 2002 tcl.h
-rw-r--r-- 1 root root 129738 Mar 17 2002 tclDecls.h
-rw-r--r-- 1 root root 4806 Mar 17 2002 tclPlatDecls.h


yasha:/usr/lib# ls tcl*
tcl8.3:
auto.tcl http2.3 msgcat1.1 safe.tcl tclIndex
encoding init.tcl opt0.4 tcl.m4 tcltest1.0
history.tcl ldAix package.tcl tclAppInit.c word.tcl
http1.0 ldAout.tcl parray.tcl tclConfig.sh

tclreadline1.2:
libtclreadline1.2.so.1 tclreadlineCompleter.tcl tclreadlineInit.tcl
pkgIndex.tcl tclreadlineConfig.sh tclreadlineSetup.tcl
 

I don't know the ins and outs of installing OpenFTS, or where things need to go, but the basic idea is that if you have something installed in a location that is different than where the installer is expecting, you can create a soft link (ln -s) to the expected location, and often get your install to work in this way. You have to look in your error log to find out what was expected.

Try man ln

I had a similar problem as described above using Debian linux. I tried a ton of hacks but here's how I ultimately fixed the error:

  1. Upgraded flex to version 2.5.4 (using apt-get)
  2. ln -s /usr/include/tcl8.4/*.h /usr/local/include/
  3. cd /usr/local/src/Search-OpenFTS-tcl-0.3.2
  4. ./configure --with-aolserver-src=/usr/local/src/aolserver40r8/aolserver --with-tcl=/usr/lib/tcl8.4
  5. cd aolserver/
  6. make
  7. Hope that's helpful for someone.