diff --git a/ci-scripts/checkCodingFormattingRules.sh b/ci-scripts/checkCodingFormattingRules.sh
index 6ac43ca19f..fb159d4da0 100755
--- a/ci-scripts/checkCodingFormattingRules.sh
+++ b/ci-scripts/checkCodingFormattingRules.sh
@@ -62,6 +62,30 @@ then
NB_FILES_TO_FORMAT=`astyle --dry-run --options=ci-scripts/astyle-options.txt --recursive *.c *.h | grep -c Formatted `
echo "Nb Files that do NOT follow OAI rules: $NB_FILES_TO_FORMAT"
echo $NB_FILES_TO_FORMAT > ./oai_rules_result.txt
+
+ # Testing Circular Dependencies protection
+ awk '/#[ \t]*ifndef/ { gsub("^.*ifndef *",""); if (names[$1]!="") print "files with same {define ", FILENAME, names[$1]; names[$1]=FILENAME } /#[ \t]*define/ { gsub("^.*define *",""); if(names[$1]!=FILENAME) print "error in declaration", FILENAME, $1, names[$1]; nextfile }' `find openair* common targets executables -name *.h |grep -v LFDS` > header-files-w-incorrect-define.txt
+
+ # Testing if explicit GNU GPL license banner
+ egrep -irl --exclude-dir=.git --include=*.cpp --include=*.c --include=*.h "General Public License" . > files-w-gnu-gpl-license-banner.txt
+
+ # Looking at exotic/suspect banner
+ LIST_OF_FILES_W_BANNER=`egrep -irl --exclude-dir=.git --include=*.cpp --include=*.c --include=*.h "Copyright|copyleft" .`
+ if [ -f ./files-w-suspect-banner.txt ]; then rm -f ./files-w-suspect-banner.txt; fi
+ for FILE in $LIST_OF_FILES_W_BANNER
+ do
+ IS_NFAPI=`echo $FILE | egrep -c "nfapi/open-nFAPI|nfapi/oai_integration/vendor_ext"`
+ IS_OAI_LICENCE_PRESENT=`egrep -c "OAI Public License" $FILE`
+ IS_BSD_LICENCE_PRESENT=`egrep -c "the terms of the BSD Licence" $FILE`
+ IS_EXCEPTION=`echo $FILE | egrep -c "common/utils/collection/tree.h|common/utils/collection/queue.h|common/utils/itti_analyzer/common/queue.h|openair3/UTILS/tree.h|openair3/UTILS/queue.h"`
+ if [ $IS_OAI_LICENCE_PRESENT -eq 0 ] && [ $IS_BSD_LICENCE_PRESENT -eq 0 ]
+ then
+ if [ $IS_NFAPI -eq 0 ] && [ $IS_EXCEPTION -eq 0 ]
+ then
+ echo $FILE >> ./files-w-suspect-banner.txt
+ fi
+ fi
+ done
exit 0
fi
@@ -131,8 +155,25 @@ if [ -f oai_rules_result_list.txt ]
then
rm -f oai_rules_result_list.txt
fi
+if [ -f header-files-w-incorrect-define.txt ]
+then
+ rm -f header-files-w-incorrect-define.txt
+fi
+if [ -f files-w-gnu-gpl-license-banner.txt ]
+then
+ rm -f files-w-gnu-gpl-license-banner.txt
+fi
+if [ -f files-w-suspect-banner.txt ]
+then
+ rm -f files-w-suspect-banner.txt
+fi
+awk '/#[ \t]*ifndef/ { gsub("^.*ifndef *",""); if (names[$1]!="") print "files with same {define ", FILENAME, names[$1]; names[$1]=FILENAME } /#[ \t]*define/ { gsub("^.*define *",""); if(names[$1]!=FILENAME) print "error in declaration", FILENAME, $1, names[$1]; nextfile }' `find openair* common targets executables -name *.h |grep -v LFDS` > header-files-w-incorrect-define-tmp.txt
+
for FULLFILE in $MODIFIED_FILES
do
+ # sometimes, we remove files
+ if [ ! -f $FULLFILE ]; then continue; fi
+
filename=$(basename -- "$FULLFILE")
EXT="${filename##*.}"
if [ $EXT = "c" ] || [ $EXT = "h" ] || [ $EXT = "cpp" ] || [ $EXT = "hpp" ]
@@ -144,8 +185,32 @@ do
echo $FULLFILE
echo $FULLFILE >> ./oai_rules_result_list.txt
fi
+ # Testing if explicit GNU GPL license banner
+ egrep -i "General Public License" $FULLFILE >> files-w-gnu-gpl-license-banner.txt
+ # Looking at exotic/suspect banner
+ IS_BANNER=`egrep -i -c "Copyright|copyleft" $FULLFILE`
+ if [ $IS_BANNER -ne 0 ]
+ then
+ IS_NFAPI=`echo $FULLFILE | egrep -c "nfapi/open-nFAPI|nfapi/oai_integration/vendor_ext"`
+ IS_OAI_LICENCE_PRESENT=`egrep -c "OAI Public License" $FULLFILE`
+ IS_BSD_LICENCE_PRESENT=`egrep -c "the terms of the BSD Licence" $FULLFILE`
+ IS_EXCEPTION=`echo $FILE | egrep -c "common/utils/collection/tree.h|common/utils/collection/queue.h|common/utils/itti_analyzer/common/queue.h|openair3/UTILS/tree.h|openair3/UTILS/queue.h"`
+ if [ $IS_OAI_LICENCE_PRESENT -eq 0 ] && [ $IS_BSD_LICENCE_PRESENT -eq 0 ]
+ then
+ if [ $IS_NFAPI -eq 0 ] && [ $IS_EXCEPTION -eq 0 ]
+ then
+ echo $FILE >> ./files-w-suspect-banner.txt
+ fi
+ fi
+ fi
+ fi
+ # Testing Circular Dependencies protection
+ if [ $EXT = "h" ] || [ $EXT = "hpp" ]
+ then
+ grep $FULLFILE header-files-w-incorrect-define-tmp.txt >> header-files-w-incorrect-define.txt
fi
done
+rm -f header-files-w-incorrect-define-tmp.txt
echo ""
echo " ----------------------------------------------------------"
echo "Nb Files that do NOT follow OAI rules: $NB_TO_FORMAT"
diff --git a/ci-scripts/reportBuildLocally.sh b/ci-scripts/reportBuildLocally.sh
index 54372ac6ba..0a75ff25b7 100755
--- a/ci-scripts/reportBuildLocally.sh
+++ b/ci-scripts/reportBuildLocally.sh
@@ -492,6 +492,77 @@ function report_build {
awk '{print "
"$1"
"}' ./oai_rules_result_list.txt >> ./build_results.html
echo " " >> ./build_results.html
echo " " >> ./build_results.html
+ echo " " >> ./build_results.html
+ fi
+ if [ -f ./header-files-w-incorrect-define.txt ]
+ then
+ NB_FILES_IN_ERROR=`wc -l ./header-files-w-incorrect-define.txt | sed -e "s@ .*@@"`
+ if [ $NB_FILES_IN_ERROR -eq 0 ]
+ then
+ echo "
" >> ./build_results.html
+ if [ $MR_TRIG -eq 1 ]; then echo " No Issue for CIRCULAR DEPENDENCY PROTECTION in modified files" >> ./build_results.html; fi
+ if [ $PU_TRIG -eq 1 ]; then echo " No Issue for CIRCULAR DEPENDENCY PROTECTION in the whole repository" >> ./build_results.html; fi
+ echo "
" >> ./build_results.html
+ else
+ echo "
" >> ./build_results.html
+ if [ $MR_TRIG -eq 1 ]; then echo " ${NB_FILES_IN_ERROR} modified files MAY NOT HAVE CIRCULAR DEPENDENCY PROTECTION" >> ./build_results.html; fi
+ if [ $PU_TRIG -eq 1 ]; then echo " ${NB_FILES_IN_ERROR} files in repository MAY NOT HAVE CIRCULAR DEPENDENCY PROTECTION in the whole repository" >> ./build_results.html; fi
+ echo "
" >> ./build_results.html
+ echo " " >> ./build_results.html
+ fi
+ fi
+ if [ -f ./files-w-gnu-gpl-license-banner.txt ]
+ then
+ NB_FILES_IN_ERROR=`wc -l ./files-w-gnu-gpl-license-banner.txt | sed -e "s@ .*@@"`
+ if [ $NB_FILES_IN_ERROR -ne 0 ]
+ then
+ echo "
" >> ./build_results.html
+ if [ $MR_TRIG -eq 1 ]; then echo " ${NB_FILES_IN_ERROR} modified files HAVE a GNU GPL license banner" >> ./build_results.html; fi
+ if [ $PU_TRIG -eq 1 ]; then echo " ${NB_FILES_IN_ERROR} files in repository HAVE a GNU GPL license banner" >> ./build_results.html; fi
+ echo "
" >> ./build_results.html
+ echo " " >> ./build_results.html
+ fi
+ fi
+ if [ -f ./files-w-suspect-banner.txt ]
+ then
+ NB_FILES_IN_ERROR=`wc -l ./files-w-suspect-banner.txt | sed -e "s@ .*@@"`
+ if [ $NB_FILES_IN_ERROR -ne 0 ]
+ then
+ echo "
" >> ./build_results.html
+ if [ $MR_TRIG -eq 1 ]; then echo " ${NB_FILES_IN_ERROR} modified files HAVE a suspect license banner" >> ./build_results.html; fi
+ if [ $PU_TRIG -eq 1 ]; then echo " ${NB_FILES_IN_ERROR} files in repository HAVE a suspect license banner" >> ./build_results.html; fi
+ echo "