diff --git a/CHANGELOG.md b/CHANGELOG.md
index 941ca982f84ed84f81067a12f61eb3cb0311a6c6..c5f134900048553d6767f04fabb207a9fb787681 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -27,6 +27,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
 * Remove Win32 and CYGWIN32 support
 * Remove `/tools` directory, including `test_installed_modules.sh` utility
 * Remove `runScript`
+* Drop file extension from `build_number.sh`
 
 ## [4.0.0]
 
diff --git a/configure/module/RULES_REQUIRE b/configure/module/RULES_REQUIRE
index f8579c9d538db3bbe208de4c1efaaeb8d795a3ca..f5c33b927fc1aabf3abda9b30a5092d8f86f2456 100644
--- a/configure/module/RULES_REQUIRE
+++ b/configure/module/RULES_REQUIRE
@@ -24,7 +24,7 @@ install: requireconf
 requireconf: e3-site-path e3-require-path
 	$(QUIET) install    -m 755 $(wildcard $(E3_MODULE_SRC_PATH)/tools/*.tcl)  $(E3_REQUIRE_TOOLS)/
 	$(QUIET) install    -m 644 $(E3_MODULE_SRC_PATH)/tools/driver.makefile    $(E3_REQUIRE_TOOLS)/
-	$(QUIET) install    -m 755 $(E3_MODULE_SRC_PATH)/tools/*.sh    $(E3_REQUIRE_TOOLS)/
+	$(QUIET) install    -m 755 $(E3_MODULE_SRC_PATH)/tools/build_number       $(E3_REQUIRE_TOOLS)/
 	$(QUIET) install    -m 755 $(E3_SHELL_FILES)             $(E3_REQUIRE_BIN)/
 	$(QUIET) install    -m 644 $(E3_IOC_CFG_FILES)           $(E3_REQUIRE_BIN)/
 	$(QUIET) install    -m 644 $(E3_REQUIRE_CONF_FILES)      $(E3_REQUIRE_CONFIG)/
diff --git a/require-ess/tools/build_number.sh b/require-ess/tools/build_number
old mode 100755
new mode 100644
similarity index 100%
rename from require-ess/tools/build_number.sh
rename to require-ess/tools/build_number
diff --git a/require-ess/tools/driver.makefile b/require-ess/tools/driver.makefile
index c4ddc74ccbeb78e1d49ffb4358a3da3a0d5d2e84..e77379a9de459580f5ef126338ab1739f7826067 100644
--- a/require-ess/tools/driver.makefile
+++ b/require-ess/tools/driver.makefile
@@ -141,7 +141,7 @@ endef
 #   $(call FETCH_BUILD_NUMBER,$(E3_SITEMODS_PATH),module)
 #
 define FETCH_BUILD_NUMBER
-$(shell $(MAKEHOME)/build_number.sh $(1) $(2) $($(2)_VERSION))
+$(shell $(MAKEHOME)/build_number $(1) $(2) $($(2)_VERSION))
 endef
 
 # Functions used for recursive dependency fetching. These are modified from https://github.com/markpiffer/gmtt.git
@@ -446,7 +446,7 @@ INSTALL_INCLUDES =
 #
 # The default behaviour is to start with <module>_VERSION and to select the highest
 # available build number, unless a build no. is specified. This is determined with the
-# shell script build_number.sh included with require.
+# shell script `build_number` included with require.
 
 define ADD_INCLUDES_TEMPLATE
 INSTALL_INCLUDES += $$(patsubst %,-I${2}/${1}/%/include,$${${1}_VERSION})