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 <[email protected]>
#
-# #
-# Modifications by: #
-# ??-12-2003 Mark Wormgoor < [email protected]> #
-# - 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
[email protected]
https://lists.sourceforge.net/lists/listinfo/ipcop-svn