Tcl Source Code

View Ticket
Login
Ticket UUID: 31d4fa115b63f6935aa8fe774feb742b4f0dd005
Title: Tweak install permissions
Type: Patch Version: 9.0.1
Submitter: stu Created on: 2025-01-20 11:28:20
Subsystem: 53. Configuration and Build Tools Assigned To: jan.nijtmans
Priority: 5 Medium Severity: Minor
Status: Closed Last Modified: 2025-08-13 09:44:50
Resolution: Fixed Closed By: jan.nijtmans
    Closed on: 2025-08-13 09:44:50
Description:
Install tclsh with 755 perms.
Same with the .so but use 755 instead of the 555 in the removed "chmod" line.
755 is more consistent with the rest of the install, which is 644 for files and 755 for dirs.


Index: unix/Makefile.in
==================================================================
--- unix/Makefile.in
+++ unix/Makefile.in
@@ -152,12 +152,12 @@
 
 INSTALL_STRIP_PROGRAM  = strip
 INSTALL_STRIP_LIBRARY  = strip -x
 
 INSTALL                        = $(SHELL) $(UNIX_DIR)/install-sh -c
-INSTALL_PROGRAM                = ${INSTALL}
-INSTALL_LIBRARY                = ${INSTALL}
+INSTALL_PROGRAM                = ${INSTALL} -m 755
+INSTALL_LIBRARY                = ${INSTALL} -m 755
 INSTALL_DATA           = ${INSTALL} -m 644
 INSTALL_DATA_DIR       = ${INSTALL} -d -m 755
 
 # NATIVE_TCLSH is the name of a tclsh executable that is available *BEFORE*
 # running make for the first time. Certain build targets (make genstubs) need
@@ -1019,11 +1019,10 @@
                $(INSTALL_DATA_DIR) "$$i"; \
            fi; \
        done
        @echo "Installing $(LIB_FILE) to $(DLL_INSTALL_DIR)/"
        @@INSTALL_LIB@
-       @chmod 555 "$(DLL_INSTALL_DIR)/$(LIB_FILE)"
        @echo "Installing ${TCL_EXE} as $(BIN_INSTALL_DIR)/tclsh$(VERSION)${EXE_SUFFIX}"
        @$(INSTALL_PROGRAM) ${TCL_EXE} "$(BIN_INSTALL_DIR)/tclsh$(VERSION)${EXE_SUFFIX}"
        @echo "Installing tclConfig.sh to $(CONFIG_INSTALL_DIR)/"
        @$(INSTALL_DATA) tclConfig.sh "$(CONFIG_INSTALL_DIR)/tclConfig.sh"
        @echo "Installing tclooConfig.sh to $(CONFIG_INSTALL_DIR)/"
User Comments: jan.nijtmans added on 2025-08-13 09:44:50:

Fixed in [6cd38367d23d2018|9.0] and 9.1.

Closing.

If there is desire to backport this to 8.6 as well, please let it know in this ticket. Since 8.6.17 is near, I don't want to do the backport now.


jan.nijtmans added on 2025-08-12 10:30:15:

I agree that 755 is more logical, and prevents possible problems. I don't see any negative impact with this change.

[135761fd80f03fd1]


soshiny added on 2025-08-06 10:10:44:
I'd like to add that I ran into troubles with the Conan package of tcl (and tk) due to the missing write permissions on the .so files. I would be in favor of 755 permissions as well.

See: https://github.com/conan-io/conan-center-index/issues/28050.

stu added on 2025-01-20 12:54:35:
Also, is it necessary to install the .so with executable permissions?
Why not 644?