Tk Source Code

View Ticket
Login
2021-05-21
15:04 Ticket [8b679f59] tk unix/Makefile.in : uses a library path rather than a directory location when building tk library status still Closed with 5 other changes artifact: df55b4dd user: fvogel
14:00 Ticket [8b679f59]: 4 changes artifact: 6dc17ef0 user: jan.nijtmans
13:56 Ticket [8b679f59]: 5 changes artifact: 92af99c8 user: jan.nijtmans
13:18 Ticket [8b679f59]: 5 changes artifact: 8b05e91c user: fvogel
10:42
Fix [8b679f597b]: tk unix/Makefile.in : uses a library path rather than a directory location when building tk library check-in: 8e758be5 user: jan.nijtmans tags: core-8-5-branch
2021-05-20
11:55 Closed ticket [8b679f59]: tk unix/Makefile.in : uses a library path rather than a directory location when building tk library plus 5 other changes artifact: 161f0416 user: jan.nijtmans
11:45
Fix [8b679f597b]: tk unix/Makefile.in : uses a library path rather than a directory location when building tk library check-in: 8ba87706 user: jan.nijtmans tags: core-8-6-branch
2021-05-19
15:19 Ticket [8b679f59] tk unix/Makefile.in : uses a library path rather than a directory location when building tk library status still Pending with 3 other changes artifact: 2b20185e user: bll
13:41 Pending ticket [8b679f59]. artifact: f0407299 user: jan.nijtmans
13:40
Proposed fix for [8b679f597b]: tk unix/Makefile.in : uses a library path rather than a directory location when building tk library Closed-Leaf check-in: 997b17c3 user: jan.nijtmans tags: bug-8b679f597b
2021-05-15
14:40 Ticket [8b679f59] tk unix/Makefile.in : uses a library path rather than a directory location when building tk library status still Open with 4 other changes artifact: 6c7d400c user: bll
14:39 New ticket [8b679f59]. artifact: 79fe29a2 user: bll

Ticket UUID: 8b679f597b1d17ade39c566bb65ce669955387ae
Title: tk unix/Makefile.in : uses a library path rather than a directory location when building tk library
Type: Bug Version: 8.7
Submitter: bll Created on: 2021-05-15 14:39:34
Subsystem: 83. Mac OS X Build Assigned To: jan.nijtmans
Priority: 5 Medium Severity: Minor
Status: Closed Last Modified: 2021-05-21 15:04:14
Resolution: Fixed Closed By: fvogel
    Closed on: 2021-05-21 15:04:14
Description:

I was demonstrating to François one method of building for X11 on Mac OS,
and the Makefile creates the Tk library using a library path rather than
a library directory.
startx &
xvfb :98 &
cd tcl/macosx
../unix/configure --prefix=$HOME/t/localD
make -f Makefile -j 12
make -f Makefile install
cd ../../tk/macosx
../unix/configure --prefix=$HOME/t/localD --with-tcl=$HOME/t/localD/lib --disable-aqua --disable-framework \
        --x-includes=/opt/X11/include --x-libraries=/opt/X11/lib --with-x
make -f Makefile -j 12
make -f Makefile install
# and these damned makefiles are so screwed up...the path to the tk library is incorrectly set.
$HOME/t/localD/bin/wish8.6
     dyld: Library not loaded: /Volumes/Users/bll/t/localD/lib:/opt/X11/lib/libtk8.6.dylib
# so we fix that...
DYLD_FALLBACK_LIBRARY_PATH=$HOME/t/localD/lib $HOME/t/localD/bin/wish8.6
% exit
# it works, there is an X11 display of the wish console.
# you can tell, there is an X logo in the title bar.
DISPLAY=:98 DYLD_FALLBACK_LIBRARY_PATH=$HOME/t/localD/lib $HOME/t/localD/bin/wish8.6
% exit
# and this works also.

User Comments: fvogel added on 2021-05-21 15:04:14:
Excellent, thanks!

jan.nijtmans added on 2021-05-21 14:00:02:

B.T.W. I tested the build with GNUMakefile too, as far as I can see everything works fine.


jan.nijtmans added on 2021-05-21 13:56:55:

Well, the configure script does this:

if test "x${x_libraries}" != "x"; then
  if test "x${x_libraries}" != "xNONE"; then
    LIB_RUNTIME_DIR="${LIB_RUNTIME_DIR}:${x_libraries}"
  fi
fi

The problem is the ':' in LIB_RUNTIME_DIR, which was not handled correctly in MacOS. This can only happen if x_libraries is set, so when building with XQuarz. The GNUMakefile always builds with -enable-aqua, so this problem cannot happen when using GNUmakefile.

So, nothing more to do :-)


fvogel added on 2021-05-21 13:18:42:
> I expect the GNUmakefile will get tested by other people.

What does this mean exactly? Is there something to do there as well (if so, we shouldn't close the present ticket yet)? How can I (for instance) test this GNUmakefile?

jan.nijtmans added on 2021-05-20 11:55:12:

Fixed merged now to 8.6 and 8.7 branch.

Thanks!


bll added on 2021-05-19 15:19:07:
Tcl: core-8-6-branch
Tk: 997b17c3

../unix/configure / x11 
   --disable-aqua --disable-framework \
   --x-includes=... --x-libraries=... --with-x : works
The issue addressed in this ticket is fixed.

../unix/configure / aqua 
   --enable-aqua : works
I seemed to have some caching issues, it kept starting an X11 version.
Some sort of non-issue that I eventually resolved.

I expect the GNUmakefile will get tested by other people.

jan.nijtmans added on 2021-05-19 13:41:44:

Proposed fix [997b17c343444e48|here]. @bll, can you check if this works for you?


bll added on 2021-05-15 14:40:01:
Assigning to Jan.