]> git.ipfire.org Git - thirdparty/freeradius-server.git/commitdiff
build: Use --add-file not --add-virtual-file
authorArran Cudbard-Bell <a.cudbardb@freeradius.org>
Mon, 10 Apr 2023 17:08:00 +0000 (10:08 -0700)
committerArran Cudbard-Bell <a.cudbardb@freeradius.org>
Mon, 10 Apr 2023 17:08:00 +0000 (10:08 -0700)
Makefile
version.sh

index 69241946ac43747120e1f2fa0454097583236536..7afc6c9786c68b1e2e37905f62500dc56ecb9c62 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -401,25 +401,36 @@ certs:
 # Do NOT move calculation of BRANCH outside of the recipe.  Every shell expansion
 # carries with it a performance penalty, that is felt every time make is executed.
 #
+# Original recipe used --add-virtual-file which was added in 237a1d1, on May 30th
+# 2022, which was too late for current versions of our target distros.
+# Code should be revisited in a few years to switch --add-file to -add-virtual-file.
+#
 BRANCH_CMD := git rev-parse --abbrev-ref HEAD
 freeradius-server-$(PKG_VERSION).tar:
        rm -rf $(top_srcdir)/$(BUILD_DIR)/freeradius-server-$(PKG_VERSION)
        mkdir -p $(top_srcdir)/$(BUILD_DIR)
        BRANCH=$$(${BRANCH_CMD}); \
-       [ $$(./version.sh is_release) -eq 1 ] && release_arg="--add-virtual-file=freeradius-server-$(PKG_VERSION)/RELEASE:"; \
+       tmp=$$(mktemp -d); \
+       if [ $$(./version.sh is_release) -eq 1 ]; then\
+               touch "$${tmp}/RELEASE"; \
+               release_arg="--add-file=$${tmp}/RELEASE"; \
+       fi; \
+       echo "$$(./version.sh commit)" > "$${tmp}/VERSION_COMMIT"; \
+       echo "$$(./version.sh commit_depth)" > "$${tmp}/VERSION_COMMIT_DEPTH"; \
        git archive \
                --format=tar \
-               --prefix=freeradius-server-$(PKG_VERSION)/ \
-               --add-virtual-file=freeradius-server-$(PKG_VERSION)/VERSION_COMMIT:$$(./version.sh commit) \
-               --add-virtual-file=freeradius-server-$(PKG_VERSION)/VERSION_COMMIT_DEPTH:$$(./version.sh commit_depth) \
+               --prefix="freeradius-server-$(PKG_VERSION)/" \
+               --add-file="$${tmp}/VERSION_COMMIT" \
+               --add-file="$${tmp}/VERSION_COMMIT_DEPTH" \
                $${release_arg} \
-               $${BRANCH} | tar -C $(top_srcdir)/$(BUILD_DIR) -xf -; \
-       git submodule foreach --recursive 'git archive --format=tar --prefix=freeradius-server-$(PKG_VERSION)/$$sm_path/ $$sha1 | tar -C $(top_srcdir)/$(BUILD_DIR) -xf -'
+               $${BRANCH} | tar -C "${top_srcdir}/${BUILD_DIR}" -xf -; \
+       rm -rf "$${tmp}"; \
+       git submodule foreach --recursive 'git archive --format=tar --prefix=freeradius-server-$(PKG_VERSION)/$$sm_path/ $$sha1 | tar -C "${top_srcdir}/${BUILD_DIR}" -xf -'
 ifneq "$(EXT_MODULES)" ""
        BRANCH=$$(${BRANCH_CMD}); \
        for x in $(subst _ext,,$(EXT_MODULES)); do \
                cd $(top_srcdir)/$${x}_ext && \
-               git archive --format=tar --prefix=freeradius-server-$(PKG_VERSION)/$$x/ $${BRANCH} | tar -C $(top_srcdir)/$(BUILD_DIR) -xf -; \
+               git archive --format=tar --prefix=freeradius-server-$(PKG_VERSION)/$$x/ $${BRANCH} | tar -C "${top_srcdir}/${BUILD_DIR}" -xf -; \
        done
 endif
        tar -cf $@ -C $(top_srcdir)/$(BUILD_DIR) freeradius-server-$(PKG_VERSION)
index e35ba1acd296537464cf1cdea976160f6b48061f..403b85db4968d3738aa9260dccea637e4c031bb4 100755 (executable)
@@ -132,7 +132,7 @@ while getopts "hcd" arg; do
        c)
                [ ! -e "${commit_file}" ] || rm "${commit_file}"
                [ ! -e "${commit_depth_file}" ] || rm "${commit_depth_file}"
-               [ ! -e "${release_file}" ] || rm "${release_file}"
+               [ "$(version_component is_release)" -eq 0 ] && rm "${release_file}"
                exit 0
        ;;
 
@@ -144,7 +144,7 @@ while getopts "hcd" arg; do
                echo "$commit" > "${commit_file}"
                commit_depth="$(version_component commit_depth)"
                echo "$commit_depth" > "${commit_depth_file}"
-               if [ "$(version_component is_release)" = 'true' ]; then touch "${release_file}"; fi
+               [ "$(version_component is_release)" -eq 1 ] && touch "${release_file}"
                exit 0
        ;;