Opened 16 years ago

Closed 16 years ago

Last modified 16 years ago

#1774 closed defect (worksforme)

tcl private headers should not be removed

Reported by: cmaier@… Owned by: blfs-book@…
Priority: high Milestone: 6.2.0
Component: BOOK Version: SVN
Severity: normal Keywords:
Cc:

Description

Following 'make install' the book recommends a series of additional steps so that the Tcl build directory can be removed after installation. Specifically it recommends 'rm -v -f /usr/include/tcl${V}/generic/ {tcl,tclDecls,tclPlatDecls}.h' but these files should remain because Expect needs them during configuration if '--with-tclinclude=/usr/include/tcl8.4' is specified as the book recommends in that chapter.

To see the bug, delete directory /usr/include/tcl8.4 then build Tcl as instructed then build Expect as instructed. Expect will complain during configuration because the headers are missing.

To correct, delete /usr/include/tcl8.4 then build Tcl without removing the files then build Expect as instructed. No complaint because the headers are present.

This may affect other packages, besides Expect, as well. I may file a similar report against package Tk because it also recommends removing similar headers.

Change History (5)

comment:1 by Randy McMurchy, 16 years ago

Milestone: future6.2
rep_platform: PCAll
Resolution: worksforme
Status: newclosed
Version: d-6.1a-SVN

Checked and found that if you follow the book's instructions, everything works properly. Marking the bug as WORKSFORME. If the OP continues to have issues, please bring it up on the BLFS-Support list. If it somehow is determined that we need to do more, we can re-open this bug.

comment:2 by cmaier@…, 16 years ago

Resolution: worksforme
Status: closedreopened

The problem I refer to does not occur until Expect (http://www.linuxfromscratch.org/blfs/view/stable/general/expect.html) is configured and is caused during Tcl and Tk installation. I build Tcl then Tk then Expect in succession.

I have confirmed that if Expect is configured with '--with- tclinclude=/usr/include/tcl8.4' and headers tcl.h, tclDecls.h and tclPlatDecls.h are not present in /usr/include/tcl8.4/generic then the Expect configure script fails with 'directory /usr/local/include/tcl8.4 doesn't contain private headers'.

Likewise, if Expect is configured with '--with-tkinclude=/usr/include/tk8.4' and headers tk.h, tkDecls.h and tkPlatDecls.h are not present in subdirectory /usr/include/tcl8.4/generic then it fails with 'directory /usr/local/include/tk8.4 doesn't contain private headers'.

These header files are explicitly removed during the installation of tcl8.4.11 and tk8.4.11 respectively. Tcl and Tk make does install them in /usr/include but Expect does not them there. If the missing files are subsequently moved from /usr/include to their respective /usr/include/{tk,tcl}8.4/generic subdirectories then Expect configures without error.

The specific configure options I am using to configure Expect are -- prefix=/usr --enable-static --enable-shared --enable-threads --enable-gcc -- with-tcl=/usr/lib --with-tk=/usr/lib --with-tclinclude=/usr/include/tcl8.4 -- with-tkinclude=/usr/include/tk8.4 --with-gnu-ld --with-x.

One solution is to remove the headers in /user/include instead of those in the generic subdirectories. This approach works for me and keeps all corresponding headers together.

Telling Expect to look in /usr/include does not work for me.

In short, changing the Expect configuration arguments does not seem to solve the problem. Changing the Tcl/Tk arguments does.

comment:3 by Randy McMurchy, 16 years ago

Resolution: worksforme
Status: reopenedclosed

Closing this bug again.

Please, take your issue to the blfs-support mailing list. I have confirmed twice today, and many, many times in the past that the current instructions work as they are written.

comment:4 by archaic@…, 16 years ago

(In reply to comment #2)

I have confirmed that if Expect is configured with '--with- tclinclude=/usr/include/tcl8.4' and headers tcl.h, tclDecls.h and

tclPlatDecls.h are not present in /usr/include/tcl8.4/generic then the Expect configure script fails with 'directory /usr/local/include/tcl8.4 doesn't contain private headers'.

Notice the problem here?

comment:5 by cmaier@…, 16 years ago

The reference to local is a typo in my explanation not my build stream.

I must, at this point, let things go because I do not know what is on your system. I studied this problem for two days and have proven to myself (after two dozen variations) that I delete files and then tell the next application to use them. I was merely trying to save someone else some time.

My build works now without error and I no longer have to keep the tck and tk files around until expect is built. You guys gave me the start on that and I appreciate it.

If it works for you then lets close this out now.

Note: See TracTickets for help on using tickets.