tech-pkg archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Un-breaking lang/tcl? (Re: 2022Q2 freeze has started)

Am Sun, 19 Jun 2022 20:03:55 -0400
schrieb Greg Troxel <>: 

>   - No new packages
>   - Build fixes are welcome

What about the failure to build R-tcltk2, which comes up as a depenceny
for others?

I diagnosed it down (during lots of wasted hours … why, I ask myself)
to this patching we do to unix/

@@ -947,23 +963,32 @@ install-libraries: libraries
 	    $(INSTALL_DATA) $$i "$(SCRIPT_INSTALL_DIR)/http1.0"; \
 	@echo "Installing package http 2.9.5 as a Tcl Module";
-	@$(INSTALL_DATA) $(TOP_DIR)/library/http/http.tcl "$(MODULE_INSTALL_DIR)/8.6/"
+	@$(INSTALL_DATA) $(TOP_DIR)/library/http/http.tcl "$(SCRIPT_INSTALL_DIR)/http/http.tcl"
+	@$(INSTALL_DATA) $(TOP_DIR)/library/http/pkgIndex.tcl "$(SCRIPT_INSTALL_DIR)/http/pkgIndex.tcl";
 	@echo "Installing package opt0.4 files to $(SCRIPT_INSTALL_DIR)/opt0.4/";
 	@for i in $(TOP_DIR)/library/opt/*.tcl; do \
 	    $(INSTALL_DATA) $$i "$(SCRIPT_INSTALL_DIR)/opt0.4"; \
 	@echo "Installing package msgcat 1.6.1 as a Tcl Module"
 	@$(INSTALL_DATA) $(TOP_DIR)/library/msgcat/msgcat.tcl \
+		"$(SCRIPT_INSTALL_DIR)/msgcat1.6/msgcat.tcl"
+	@$(INSTALL_DATA) $(TOP_DIR)/library/msgcat/pkgIndex.tcl \
+		"$(SCRIPT_INSTALL_DIR)/msgcat1.6/pkgIndex.tcl";
 	@echo "Installing package tcltest 2.5.3 as a Tcl Module"
 	@$(INSTALL_DATA) $(TOP_DIR)/library/tcltest/tcltest.tcl \
+		"$(SCRIPT_INSTALL_DIR)/tcltest2.5/tcltest.tcl"
+	@$(INSTALL_DATA) $(TOP_DIR)/library/tcltest/pkgIndex.tcl \
+		"$(SCRIPT_INSTALL_DIR)/tcltest2.5/pkgIndex.tcl";
 	@echo "Installing package platform 1.0.18 as a Tcl Module"
 	@$(INSTALL_DATA) $(TOP_DIR)/library/platform/platform.tcl \
+		"$(SCRIPT_INSTALL_DIR)/platform1.0/platform.tcl"
+	@$(INSTALL_DATA) $(TOP_DIR)/library/platform/pkgIndex.tcl \
+		"$(SCRIPT_INSTALL_DIR)/platform1.0/pkgIndex.tcl";
 	@echo "Installing package platform::shell 1.1.4 as a Tcl Module"
 	@$(INSTALL_DATA) $(TOP_DIR)/library/platform/shell.tcl \
-		"$(MODULE_INSTALL_DIR)/8.4/platform/"
+		"$(SCRIPT_INSTALL_DIR)/shell1.1/platform/shell.tcl"
+	@$(INSTALL_DATA) $(TOP_DIR)/library/platform/pkgIndex.tcl \
+		"$(SCRIPT_INSTALL_DIR)/shell1.1/pkgIndex.tcl";
 	@echo "Installing encoding files to $(SCRIPT_INSTALL_DIR)/encoding/"
 	@for i in $(TOP_DIR)/library/encoding/*.enc; do \
 		$(INSTALL_DATA) $$i "$(SCRIPT_INSTALL_DIR)/encoding"; \

The missing lib/tcl8/8.5/ file causes this test case to
enter an endless loop (of searching for said file, guess):

rm -rf /dev/shm/R; mkdir -p /dev/shm/R; LD_PRELOAD=/dev/shm/tcl8.6.12-inst.patched/lib/ DISPLAY= LANG=C R --no-save --no-restore <<< 'install.packages("tcltk2", repos="";, dependencies=TRUE, lib="/dev/shm/R")'

(Of course, for the install from pkgsrc, you don't need the LD_PRELOAD.)

Now you could say that libtcl should be smarter about handling
non-existence of that module file, and you could be right, but in the
end, pkgsrc is breaking the install. Is there a good reason to messing
with that?

I'd like to have that fixed asap. I do not see the purpose in the
change, so what is it?

Alrighty then,


Dr. Thomas Orgis
HPC @ Universität Hamburg

Home | Main Index | Thread Index | Old Index