Page Menu
Home
FreeBSD
Search
Configure Global Search
Log In
Files
F143849383
D11865.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Flag For Later
Award Token
Size
2 KB
Referenced Files
None
Subscribers
None
D11865.diff
View Options
Index: head/Mk/Scripts/qa.sh
===================================================================
--- head/Mk/Scripts/qa.sh
+++ head/Mk/Scripts/qa.sh
@@ -841,6 +841,51 @@
return $rc
}
+# If an non rubygem-port has a 'Gemfile' file
+# it is checked with bundle to be sure
+# all dependencies are satisfied.
+# Without the check missing/wrong dependencies
+# are just found when executing the application
+gemfiledeps()
+{
+ # skip check if port does not use ruby at all
+ if [ -z "$USE_RUBY" ]; then
+ return 0
+ fi
+
+ # skip check if port is a rubygem-* one; they have no Gemfiles
+ if [ "${PKGBASE%%-*}" = "rubygem" ]; then
+ return 0
+ fi
+
+ # advise install of bundler if its not present for check
+ if ! type bundle > /dev/null 2>&1; then
+ notice "Please install sysutils/rubygem-bundler for additional Gemfile-checks"
+ return 0
+ fi
+
+ # locate the Gemfile(s)
+ while read -r f; do
+
+ # no results presents a blank line from heredoc
+ [ -z "$f" ] && continue
+
+ # if there is no Gemfile everything is fine - stop here
+ [ ! -f "$f" ] && return 0;
+
+ # use bundle to check if Gemfile is satisfied
+ # if bundle returns 1 the Gemfile is not satisfied
+ # and so stage-qa isn't also
+ if ! bundle check --dry-run --gemfile $f > /dev/null 2>&1; then
+ warn "Dependencies defined in ${f} are not satisfied"
+ fi
+
+ done <<-EOF
+ $(find ${STAGEDIR} -name Gemfile)
+ EOF
+ return 0
+}
+
flavors()
{
local rc pkgnames uniques
@@ -860,7 +905,7 @@
checks="shebang symlinks paths stripped desktopfileutils sharedmimeinfo"
checks="$checks suidfiles libtool libperl prefixvar baselibs terminfo"
-checks="$checks proxydeps sonames perlcore no_arch gemdeps flavors"
+checks="$checks proxydeps sonames perlcore no_arch gemdeps gemfiledeps flavors"
ret=0
cd ${STAGEDIR}
Index: head/Mk/bsd.port.mk
===================================================================
--- head/Mk/bsd.port.mk
+++ head/Mk/bsd.port.mk
@@ -1616,7 +1616,8 @@
PKGBASE=${PKGBASE} \
PORTNAME=${PORTNAME} \
NO_ARCH=${NO_ARCH} \
- "NO_ARCH_IGNORE=${NO_ARCH_IGNORE}"
+ "NO_ARCH_IGNORE=${NO_ARCH_IGNORE}" \
+ USE_RUBY=${USE_RUBY}
.if !empty(USES:Mssl)
QA_ENV+= USESSSL=yes
.endif
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Sun, Feb 1, 11:55 PM (15 h, 19 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
28408154
Default Alt Text
D11865.diff (2 KB)
Attached To
Mode
D11865: Add Gemfile-check to stage-qa
Attached
Detach File
Event Timeline
Log In to Comment