git: 090e852bd7cb - main - www/gitlab-ce: fix a problem in the asset compile step

From: Matthias Fechner <mfechner_at_FreeBSD.org>
Date: Fri, 10 Mar 2023 10:20:29 UTC
The branch main has been updated by mfechner:

URL: https://cgit.FreeBSD.org/ports/commit/?id=090e852bd7cb604a4fdff274021c4b792cd5285a

commit 090e852bd7cb604a4fdff274021c4b792cd5285a
Author:     Matthias Fechner <mfechner@FreeBSD.org>
AuthorDate: 2023-03-10 10:16:06 +0000
Commit:     Matthias Fechner <mfechner@FreeBSD.org>
CommitDate: 2023-03-10 10:20:00 +0000

    www/gitlab-ce: fix a problem in the asset compile step
    
    Make sure that files having an executable bit keep this executable bit.
    This fixes a problem of the last step in the asset compile step fails
    due to missing executable permission on a script.
    It does not have any impact on the installation itself as the last step is just failing
    which is just a check which is done after all assets are compiled.
    
    Thanks a lot to @tz and @moin pointing to it and helping to understand the
    source for it.
---
 www/gitlab-ce/Makefile | 14 +++++++++++++-
 1 file changed, 13 insertions(+), 1 deletion(-)

diff --git a/www/gitlab-ce/Makefile b/www/gitlab-ce/Makefile
index 71e4726ee9f0..8282ee32f763 100644
--- a/www/gitlab-ce/Makefile
+++ b/www/gitlab-ce/Makefile
@@ -292,6 +292,15 @@ KERBEROS_BUILD_DEPENDS=		rubygem-timfel-krb5-auth>=0.8<1:security/rubygem-timfel
 KERBEROS_RUN_DEPENDS=		rubygem-timfel-krb5-auth>=0.8<1:security/rubygem-timfel-krb5
 KERBEROS_EXTRA_PATCHES_OFF=	${FILESDIR}/extra-patch-Gemfile-kerberos-off
 
+SHEBANG_FILES=	scripts/build_qa_image \
+		scripts/db_tasks \
+		scripts/rails-update-bisect \
+		scripts/generate-e2e-pipeline \
+		scripts/frontend/execute-on-staged-files.sh \
+		scripts/frontend/start_storybook.sh \
+		.lefthook/pre-push/merge_conflicts \
+		qa/bin/test
+
 post-patch:
 	${REINPLACE_CMD} -e "s|%%PREFIX%%|${PREFIX}|" ${WRKSRC}/config/gitlab.yml.example \
 		${WRKSRC}/config/puma.rb.example \
@@ -335,7 +344,10 @@ do-install:
 	${MKDIR} ${STAGEDIR}${PREFIX}/www/${PORTNAME}/shared/artifacts/tmp/work
 	${MKDIR} ${STAGEDIR}${PREFIX}/www/${PORTNAME}/vendor/assets/stylesheets
 	${MKDIR} ${STAGEDIR}${PREFIX}/www/${PORTNAME}/workhorse/changelogs/unreleased
-	(cd ${WRKSRC} && ${COPYTREE_SHARE} . ${STAGEDIR}${PREFIX}/www/${PORTNAME})
+	# Skip file having an executable bit
+	(cd ${WRKSRC} && ${COPYTREE_SHARE} . ${STAGEDIR}${PREFIX}/www/${PORTNAME} "-not ( -type f -perm -a=x )")
+	# now copy all files having an execution bit and preserve to x bit (this fixes some issues we saw)
+	(cd ${WRKSRC} && ${COPYTREE_BIN} . ${STAGEDIR}${PREFIX}/www/${PORTNAME} "-type f -perm -a=x")
 
 post-install:
 	${FIND} -s ${STAGEDIR}${WWWDIR} -not -type d | ${SORT} | \