Revision: 6199
          http://ipcop.svn.sourceforge.net/ipcop/?rev=6199&view=rev
Author:   gespinasse
Date:     2011-12-27 22:13:18 +0000 (Tue, 27 Dec 2011)
Log Message:
-----------
Remove packages_list cruft and do better stripping and checking files

Strip ELF code using xargs strip as this faster than running strip for each 
file 

Integrate package_list (pass 1 and 2) on lf/cdrom
For pass-1 packages-list file creation :
- hide -pass and 'stage|adjust-toolchain|strip' words that mean nothing outside 
of our build
- sort packages for the file include in cdrom and sort -u to remove duplicate.

For pass-2, list of all files creation :
- it is faster to create the list from the fs with find, than to tar tzf the 
final package
  there is one difference with no consequence on the produced all-files.txt
  tar tzf extract non empty directories names with a final /, find never have a 
final /

Add a comment why we create a tar, that we expand and suppress

Stop keeping ROOTFILES.txt in doc, we already have all-files.txt
I created an all-no-dir.txt, variant from all-files (without directories this 
time) for md5sum and scanelf usage.
I don't feel we need both, so all-no-dir.txt is deleted after usage.

Modified Paths:
--------------
    ipcop/trunk/lfs/cdrom
    ipcop/trunk/make.sh

Removed Paths:
-------------
    ipcop/trunk/lfs/packages_list

Modified: ipcop/trunk/lfs/cdrom
===================================================================
--- ipcop/trunk/lfs/cdrom       2011-12-27 13:28:12 UTC (rev 6198)
+++ ipcop/trunk/lfs/cdrom       2011-12-27 22:13:18 UTC (rev 6199)
@@ -44,6 +44,8 @@
 # A common name for the ISO on all architectures
 IPCOP_ISO = $(SNAME)-$(VERSION)-install-cd.$(MACHINE).iso
 
+PACKAGE_LIST := 
$(LFS_BASEDIR)/doc/$(NAME)-$(VERSION)-packages-list.$(MACHINE).txt
+
 ###############################################################################
 # Top-level Rules
 ###############################################################################
@@ -108,6 +110,13 @@
        rm -rf /$(INSTALLER_DIR)/cdrom /tmp/*
        mkdir -p /$(INSTALLER_DIR)/cdrom/{doc,dosutils,images}
 
+       # Create list of packages include in cdrom doc
+       # Add title on top
+       echo "List of software packages used to build $(NAME) Version: 
$(VERSION) for $(MACHINE)" > $(PACKAGE_LIST)
+       # Then add content with filter for strings without mean outside of our 
build system
+       for i in `ls -1tr $(DIR_INFO)/0{1,2,3,4}*/* | sed 's/-pass.*$$//' | 
egrep -v 'stage|adjust-toolchain|strip'`; do \
+               echo " * `basename $$i`"; done | sort -u >> $(PACKAGE_LIST)
+
        # Create the global include list from each package rootfile
        find $(DIR_SRC)/config/rootfiles/common -maxdepth 1 -type f | grep -v 
SKIP | xargs cat >> /tmp/ROOTFILES
        find $(DIR_SRC)/config/rootfiles/arch_$(MACHINE) -maxdepth 1 -type f | 
grep -v SKIP | xargs cat >>/tmp/ROOTFILES
@@ -122,23 +131,29 @@
                        --exclude=tmp/$(SNAME).tar \
                        -f /tmp/$(SNAME).tar
 
-       mv /tmp/ROOTFILES /usr/src/doc/ROOTFILES.txt
+       # A file may be include more than once in tar (directly by file name 
and by directory inclusion)
+       # Avoid that, creating again tar from fs
        tar -x -C /tmp -f /tmp/$(SNAME).tar
-       rm -f /tmp/$(SNAME).tar
+       rm -f /tmp/$(SNAME).tar /tmp/ROOTFILES
 
+       # Build list of everything include, removing '.' line, './' prefix for 
all-files to stay the same
+       cd /tmp && find . | sed -e '/^\.$$/d' -e 's|^\./||' | sort > ${ALLFILES}
+       # Create a list of files only (no directories) for md5sum and scanelf 
usage later
+       # Keep '/' prefix as that's what we need for md5sum and scanelf
+       cd /tmp && find . -type f | sed -e '/^\.$$/d' -e 's|^\.||' | sort 
>${ALL_NODIR}
+
        # These used to be done in the installer - no more....
        cd /tmp/lib/modules/$(KVER) && touch modules.dep
 
        # We do the stripping here because we don't want to destroy our 
development tree by stripping all symbols
-       # Instead we strip all binaries and libraries as we create the ISO.  
It's quite safe to do strip --strip-all
-       # on libraries if they will not be used for development.
-       # kernel modules are compressed, so no risk actually to strip them
-       cd /tmp && find ./{bin,sbin}                            -type f -exec 
/$(TOOLS_DIR)/bin/strip --strip-all {} \;
-       cd /tmp && find ./lib/{.,iptables,udev} -maxdepth 1     -type f -exec 
/$(TOOLS_DIR)/bin/strip --strip-all {} \;
-       cd /tmp && find ./usr/{bin,lib,libexec,local,sbin}      -type f -exec 
/$(TOOLS_DIR)/bin/strip --strip-all {} \;
-ifeq "$(MACHINE)" "i486"
-       cd /tmp && find ./etc/Conexant                          -type f -exec 
/$(TOOLS_DIR)/bin/strip --strip-all {} \;
-endif
+       # Instead we strip all binaries and libraries as we create the ISO.
+       # It's safe to do strip --strip-all even on libraries as those files 
will not be used for compilation.
+       # kernel modules are compressed, strip does not yet no to handle that
+       # Using xargs strip, we need to allow failure that happen with non elf 
files
+       # Filter non elf files error
+       # Similar code is in lfs/update
+       cd /tmp && find ${EXEC_PATH} -type f | xargs /$(TOOLS_DIR)/bin/strip 
--strip-all 2>&1 | \
+               grep -v 'File format not recognized' || true
 
        # Create a tmp directory
        cd /tmp && mkdir -p tmp

Deleted: ipcop/trunk/lfs/packages_list
===================================================================
--- ipcop/trunk/lfs/packages_list       2011-12-27 13:28:12 UTC (rev 6198)
+++ ipcop/trunk/lfs/packages_list       2011-12-27 22:13:18 UTC (rev 6199)
@@ -1,80 +0,0 @@
-###############################################################################
-# This file is part of the IPCop Firewall.                                    #
-#                                                                             #
-# IPCop is free software; you can redistribute it and/or modify               #
-# it under the terms of the GNU General Public License as published by        #
-# the Free Software Foundation; either version 2 of the License, or           #
-# (at your option) any later version.                                         #
-#                                                                             #
-# IPCop is distributed in the hope that it will be useful,                    #
-# but WITHOUT ANY WARRANTY; without even the implied warranty of              #
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the               #
-# GNU General Public License for more details.                                #
-#                                                                             #
-# You should have received a copy of the GNU General Public License           #
-# along with IPCop; if not, write to the Free Software                        #
-# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA    #
-#                                                                             #
-# Makefiles are based on LFSMake, which is                                    #
-# Copyright (C) 2002 Rod Roard <r...@sunsetsystems.com>                        
#
-#                                                                             #
-# Modifications by:                                                           #
-# ??-12-2003 Mark Wormgoor < m...@wormgoor.com>                               #
-#          - Modified Makefile for IPCop build                                #
-#                                                                             #
-# $Id$
-#                                                                             #
-###############################################################################
-
-###############################################################################
-# Definitions
-###############################################################################
-
-include Config
-
-PKG_NAME   = packages_list
-HOST_ARCH  = all
-
-THISAPP    = packages_list
-
-###############################################################################
-# Top-level Rules
-###############################################################################
-
-check :
-
-download :
-
-md5 :
-
-###############################################################################
-# Installation Details
-###############################################################################
-
-install :
-
-ifeq "$(PASS)" "1"
-       # this is include in cdrom doc
-       echo "Generating list of packages needed to compile ipcop." >> 
$(LOGFILE)
-       -rm -f 
$(LFS_BASEDIR)/doc/$(NAME)-$(VERSION)-packages-list.$(MACHINE).txt
-       for i in `ls -1tr $(DIR_INFO)/0{2,3,4}*/*`; do \
-               if [ -n $$i ]; then \
-                       echo " * `basename $$i`" >> 
$(LFS_BASEDIR)/doc/$(NAME)-$(VERSION)-packages-list.$(MACHINE).txt; \
-               fi \
-       done
-endif
-
-ifeq "$(PASS)" "2"
-       echo "List of software packages used to build $(NAME) Version: 
$(VERSION) for $(MACHINE)" \
-               > 
$(LFS_BASEDIR)/doc/$(NAME)-$(VERSION)-packages-list.$(MACHINE).tmp
-       cat $(LFS_BASEDIR)/doc/$(NAME)-$(VERSION)-packages-list.$(MACHINE).txt  
| sort \
-               >> 
$(LFS_BASEDIR)/doc/$(NAME)-$(VERSION)-packages-list.$(MACHINE).tmp
-       mv $(LFS_BASEDIR)/doc/$(NAME)-$(VERSION)-packages-list.$(MACHINE).tmp \
-               
$(LFS_BASEDIR)/doc/$(NAME)-$(VERSION)-packages-list.$(MACHINE).txt
-       # packages-list is ready to be displayed for Trac wiki page
-
-       # ROOTFILES.txt does not allow to refer to files include by directory
-       echo "Generating files list from logs" >> $(LOGFILE)
-       tar tzf /installer/cdrom/ipcop-$(VERSION).tar.gz | \
-               sed -e 's|^\.\/||' -e '/^$$/d' | sort > 
$(LFS_BASEDIR)/doc/${NAME}-${VERSION}-all-files-list.${MACHINE}.txt
-endif

Modified: ipcop/trunk/make.sh
===================================================================
--- ipcop/trunk/make.sh 2011-12-27 13:28:12 UTC (rev 6198)
+++ ipcop/trunk/make.sh 2011-12-27 22:13:18 UTC (rev 6199)
@@ -1953,8 +1953,6 @@
                echo "Skip avm drivers"
        fi
 
-       PASS=1
-       chroot_make packages_list
        if [ "${VERSIONSTEP}" ]; then
                PASS="${VERSIONSTEP}"
                chroot_make update
@@ -1964,15 +1962,28 @@
        PASS=""
        chroot_make cdrom
        chroot_make netboot
-       PASS=2
-       chroot_make packages_list
-       PASS=""
+       chroot_make check_files
 
        if [ x"${SKIP_USB_IMAGES}" != x"yes" ]; then
                chroot_make usb-key
        else
                echo "Skip usb images to save time"
        fi
+
+       # Our tools directory is not mounted inside chroot, so done outside
+       if [ ! -f 
${BASEDIR}/doc/${NAME}-${PREVIOUSVERSION}-all-files-list.${MACHINE}.txt.md5 ]; 
then
+               beautify message INFO "No MD5 all-files-list for 
${PREVIOUSVERSION} found, no comparison."
+       else
+               echo -ne "Running MD5 compare"
+               ${BASEDIR}/tools/comp_md5.pl ${BASEDIR} ${VERSION} 
${PREVIOUSVERSION} ${MACHINE} ${KVER} ${PERLVER} ${VERSIONSTEP}
+               if [ $? -ne 0 ]; then
+                       beautify message FAIL
+               else
+                       beautify message DONE
+                       echo "See 
${BASEDIR}/doc/${NAME}-${VERSION}-diff-list.${MACHINE}.txt for result"
+               fi
+       fi
+
 } # End of packages_build()
 
 

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

Reply via email to