[prev in list] [next in list] [prev in thread] [next in thread]
List: ipcop-svn
Subject: [Ipcop-svn] SF.net SVN: ipcop:[6200] ipcop/trunk
From: gespinasse () users ! sourceforge ! net
Date: 2011-12-27 22:34:24
Message-ID: E1RffbE-0003wX-CG () sfp-svn-6 ! v30 ! ch3 ! sourceforge ! com
[Download RAW message or body]
Revision: 6200
http://ipcop.svn.sourceforge.net/ipcop/?rev=6200&view=rev
Author: gespinasse
Date: 2011-12-27 22:34:24 +0000 (Tue, 27 Dec 2011)
Log Message:
-----------
As a now faster check_files is run on each build, remove ./make.sh check_files option
Use ALL_NODIR as the start list to run check all files md5
Use xargs md5sum as much faster than starting md5sum for each file
Run scanelf only once with all features check, we will split interesting informations \
later with awk Produce with awk and grep -v a log for
-not-PIE files
-not-NOW files
files with RPATH
files with executable-stack
files installed already stripped
Add a check for 'No such file or directory' on configure.log
Sort warnings count per package on decreasing order
Modified Paths:
--------------
ipcop/trunk/doc/make.sh-usage
ipcop/trunk/lfs/check_files
ipcop/trunk/make.sh
Modified: ipcop/trunk/doc/make.sh-usage
===================================================================
--- ipcop/trunk/doc/make.sh-usage 2011-12-27 22:13:18 UTC (rev 6199)
+++ ipcop/trunk/doc/make.sh-usage 2011-12-27 22:34:24 UTC (rev 6200)
@@ -21,7 +21,6 @@
check_versions: Compare the versions of packages used in LFS and IPCop
dist : Mainly produce a diff from previous version to track wich
files have been updated. Export IPCop sources in a .tgz
- check_files : Calculate md5 of include files, check various ELF properties
othersrc : Build a .tgz with all source packages necessary to compile
toolchain : Create our own toolchain package to speed next rebuild
language : Search for all lang entries in source, get translations from
Modified: ipcop/trunk/lfs/check_files
===================================================================
--- ipcop/trunk/lfs/check_files 2011-12-27 22:13:18 UTC (rev 6199)
+++ ipcop/trunk/lfs/check_files 2011-12-27 22:34:24 UTC (rev 6200)
@@ -30,16 +30,16 @@
# Definitions
###############################################################################
+include Config
+
PKG_NAME = check_files
HOST_ARCH = all
THISAPP = $(PKG_NAME)
-ALLFILES := ${NAME}-${VERSION}-all-files-list.${MACHINE}.txt
+TMPFILE := $(shell mktemp)
+LOG_PREFIX:= /usr/src/log_${MACHINE}/$(PKG_NAME)
-# where we find ELF exec code to check
-EXEC_PATH := /{bin,sbin} /lib/{,iptables,udev} /usr/{bin,lib,libexec,local,sbin} \
/etc/Conexant
-
###############################################################################
# Top-level Rules
###############################################################################
@@ -58,37 +58,45 @@
# Produce the md5 of installed files
install :
- echo "Generating md5 for each file include in $(NAME)" >> $(LOGFILE)
- -mv -f /usr/src/doc/${ALLFILES}.md5 /usr/src/doc/${ALLFILES}.md5.bak
- # remove dev/console (and dev/null) from the list or md5sum hang
- # skip directories to avoid error message and don't care of symlink
- for myfile in `cat /usr/src/doc/${ALLFILES} | sed 's|^dev.*||'`; do \
- if [ -f /$${myfile} ]; then \
- md5sum /$$myfile >> /usr/src/doc/${ALLFILES}.md5; \
- fi; \
- done
+ # Adjust the list of files we care
+ # Remove dev/{,console,null} from the list or md5sum hang
+ # Use the list with directories removed to avoid md5sum and scanelf related error \
messages + sed -e '/^dev.*/d' ${ALL_NODIR} >${TMPFILE}
- # TEXTEREL
- cd / && find ${EXEC_PATH} -type f -exec scanelf -qt {} \; > \
/usr/src/log_${MACHINE}/$(PKG_NAME)-textrel.log + # Generating md5 for each file \
include + # Result is not in _NODIR.md5 as tools/comp_md5.pl look in ALLFILES
+ xargs md5sum < ${TMPFILE} > ${ALLFILES}.md5
+ # Checking everything with scanelf only once is faster, but result is not that easy \
to read + # A bit better with those changes : remove trailing space, split \
STK/REL/PTL title in 3 columns, replace one or more spaces with 1 tab + scanelf -f \
${TMPFILE} -a | sed -e 's| *$$||' -e 's|STK/REL/PTL|STK REL PTL|' -e 's| TYPE|TYPE|' \
-e 's| \{1,\}|\t|g' > $(LOG_PREFIX)-scanelf.log +
+ cat $(LOG_PREFIX)-scanelf.log | awk '{ printf "%s\t%s\n", $$1, $$11 }' | grep -v \
ET_DYN > $(LOG_PREFIX)-not-PIE.log + cat $(LOG_PREFIX)-scanelf.log | awk '{ printf \
"%s\t%s\n", $$10, $$11 }' | grep -v NOW > $(LOG_PREFIX)-not-NOW.log # RPATH (I \
consider log good enought to my understanding)
- cd / && find ${EXEC_PATH} -type f -exec scanelf -qr {} \; > \
/usr/src/log_${MACHINE}/$(PKG_NAME)-rpath.log + cat $(LOG_PREFIX)-scanelf.log | awk \
'{ printf "%s\t%s\n", $$9, $$11 }' | grep -v "\-\t" > $(LOG_PREFIX)-RPATH.log
# executable stack http://www.gentoo.org/proj/en/hardened/gnu-stack.xml
- cd / && find ${EXEC_PATH} -type f -exec scanelf -qe {} \; > \
/usr/src/log_${MACHINE}/$(PKG_NAME)-executable-stack.log + # klibc related code is \
compiled without hardening (to save space) and allow execstack, but that code is not \
installed, so not checked on ALL_NODIR + cat $(LOG_PREFIX)-scanelf.log | awk '{ \
printf "%s\t%s\n", $$5, $$11 }' | grep -v 'RW-' > $(LOG_PREFIX)-execstack.log
+ # check already stripped code (that may drive to lib reduction failure for \
initramfs with mklibs) + scanelf -k '!.symtab' -f ${TMPFILE} -q -F%F#k > \
$(LOG_PREFIX)-stripped.log +
+ # Our modified gcc is made to stop on TEXTEREL, so no need to check that
+
# TODO
- # check not-pie code
- # check already stripped code (that drive to lib reduction failure for initramfs \
with mklibs) # check for old hash (not using our LDFLAG), probably just matter for \
size if we have both
+ rm ${TMPFILE} ${ALL_NODIR}
+
# find warnings and count them, configure emit WARNING, perl Makefile.PL emit \
Warning
- -cd /usr/src/log_${MACHINE} && egrep ': WARNING:|Warning:' 0[1-4]*/* \
>/usr/src/log_${MACHINE}/$(PKG_NAME)-configure_warnings.log + -cd \
> /usr/src/log_${MACHINE} && egrep ' error:|No such file or|: WARNING:|Warning:' \
> 0[1-4]*/* >/usr/src/log_${MACHINE}/$(PKG_NAME)-configure_warnings.log
-cd /usr/src/log_${MACHINE} && grep ': warning:' 0[1-4]*/* \
>/usr/src/log_${MACHINE}/$(PKG_NAME)-compilation_warnings_all.log
-cd /usr/src/log_${MACHINE} && \
for f in $$(ls 0[1-4]*/*); do \
[ -f $$f ] && echo -ne "$$f :\t";grep ': warning:' $$f | wc -l; \
- done >/usr/src/log_${MACHINE}/$(PKG_NAME)-compilation-warnings_per_package_count.log
+ done | sort -k 3,3nr \
>/usr/src/log_${MACHINE}/$(PKG_NAME)-compilation-warnings_per_package_count.log # \
> remove lucky 0 warnings from the list
-sed -i '/\t0$$/d' \
/usr/src/log_${MACHINE}/$(PKG_NAME)-compilation-warnings_per_package_count.log
Modified: ipcop/trunk/make.sh
===================================================================
--- ipcop/trunk/make.sh 2011-12-27 22:13:18 UTC (rev 6199)
+++ ipcop/trunk/make.sh 2011-12-27 22:34:24 UTC (rev 6200)
@@ -2290,30 +2290,6 @@
echo
echo "Verify the release 'marker' in doc/ChangeLog and commit doc/ChangeLog to \
update SVN" ;;
-check_files)
- # Check if we have yet build
- if [ ! -f ${BASEDIR}/doc/${NAME}-${VERSION}-all-files-list.${MACHINE}.txt ]; then
- beautify message FAIL "${NAME}-${VERSION}-all-files-list.${MACHINE}.txt not found, \
you need to build first"
- exit 1
- fi
- if [ ! -d ${BASEDIR}/log_${MACHINE}/05_packages ]; then
- beautify message FAIL "log_${MACHINE}/05_packages not found, you need to build \
first"
- exit 1
- fi
- prepareenv
- export PATH=${PATH_CH6}
- STAGE_ORDER=05; STAGE=packages # needed for logfile name
- chroot_make check_files
- if [ -f ${BASEDIR}/doc/${NAME}-${PREVIOUSVERSION}-all-files-list.${MACHINE}.txt.md5 \
]; then
- echo -ne "Running MD5 compare"
- ${BASEDIR}/tools/comp_md5.pl ${BASEDIR} ${VERSION} ${PREVIOUSVERSION} ${MACHINE} \
${KVER} ${PERLVER} ${VERSIONSTEP}
- beautify message DONE
- echo "See ${BASEDIR}/doc/${NAME}-${VERSION}-diff-list.${MACHINE}.txt for result"
- else
- beautify message INFO "No MD5 all-files-list for ${PREVIOUSVERSION} found, no \
comparison."
- fi
- stdumount
- ;;
check_url)
echo "Checking sources files availability on the web"
if [ ! -d ${DIR_CHK} ]; then
This was sent by the SourceForge.net collaborative development platform, the world's \
largest Open Source development site.
------------------------------------------------------------------------------
Write once. Port to many.
Get the SDK and tools to simplify cross-platform app development. Create
new or port existing apps to sell to consumers worldwide. Explore the
Intel AppUpSM program developer opportunity. appdeveloper.intel.com/join
http://p.sf.net/sfu/intel-appdev
_______________________________________________
Ipcop-svn mailing list
Ipcop-svn@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ipcop-svn
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic