]> git.ipfire.org Git - ipfire-2.x.git/blobdiff - lfs/core-updates
slang: revert parallelized build
[ipfire-2.x.git] / lfs / core-updates
index f39a965f4788c8f49594dfaed84309c71dba6d43..3cd8c0785340f224e85953c37a9164f2e99cb13f 100644 (file)
@@ -1,22 +1,20 @@
 ###############################################################################
-# This file is part of the IPCop Firewall.                                    #
 #                                                                             #
-# IPCop is free software; you can redistribute it and/or modify               #
+# IPFire.org - A linux based firewall                                         #
+# Copyright (C) 2007-2018  IPFire Team  <info@ipfire.org>                     #
+#                                                                             #
+# This program 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           #
+# the Free Software Foundation, either version 3 of the License, or           #
 # (at your option) any later version.                                         #
 #                                                                             #
-# IPCop is distributed in the hope that it will be useful,                    #
+# This program 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 <rod@sunsetsystems.com>                        #
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.       #
 #                                                                             #
 ###############################################################################
 
@@ -28,8 +26,9 @@ include Config
 
 VER = ipfire
 
-THISAPP    = core-updates
-TARGET     = $(DIR_INFO)/$(THISAPP)
+THISAPP     = core-updates
+TARGET      = $(DIR_INFO)/$(THISAPP)
+TAR_OPTIONS = --xz
 
 ###############################################################################
 # Top-level Rules
@@ -47,27 +46,55 @@ md5 :
 # Installation Details
 ###############################################################################
 
-$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
-       for i in $$(ls -1 $(DIR_SRC)/config/rootfiles/core) ; do \
-               if [ "$$i" == "files" ]; then continue; fi; \
-               rm -rf /install/packages/package; \
-               mkdir -p /install/packages/package && \
-               eval $$(cat /usr/src/config/rootfiles/core/$$i/meta) \
-               && cp -f /usr/src/config/rootfiles/core/$$i/update.sh /install/packages/package \
-               && cp -f /usr/src/config/rootfiles/core/$$i/files /install/packages/package/ROOTFILES \
-               && chmod 755 /install/packages/package/update.sh \
-               &&  cd / \
-               && tar -cf /install/packages/package/files --files-from=/install/packages/package/ROOTFILES --exclude='#*' \
-               && cat /install/packages/package/ROOTFILES | grep -v "#" > /install/packages/package/ROOTFILES; \
-               cd /install/packages/package && tar cf ../core-update-$(VERSION)-$$i.ipfire \
-                       --files-from=/usr/src/config/rootfiles/core/files && \
-               rm -rf /install/packages/package; \
-               sed -e "s/NAME/core-update/g" \
+CORE = $(patsubst $(DIR_SRC)/config/rootfiles/%,%,$(wildcard $(DIR_SRC)/config/rootfiles/core/*))
+
+$(TARGET) : $(CORE)
+
+.PHONY:
+core/%:
+       rm -rf /install/packages/package
+       mkdir -p /install/packages/package
+       eval $$(cat /usr/src/config/rootfiles/$@/meta)
+
+       #Generate ROOTFILES from filelists
+       BUILD_ARCH=$(BUILD_ARCH) BUILDTARGET=$(BUILDTARGET) KVER=$(KVER) \
+               $(DIR_SRC)/src/scripts/archive.files \
+               $(DIR_SRC)/config/rootfiles/$@/filelists \
+               $(DIR_SRC)/config/rootfiles/$@/files \
+               $(DIR_SRC)/config/rootfiles/$@/files.$(BUILD_ARCH) \
+               > /tmp/ROOTFILES.tmp
+
+       #remove excluded files from ROOTFILES
+       grep -f $(DIR_SRC)/config/rootfiles/$@/exclude -v /tmp/ROOTFILES.tmp > /tmp/ROOTFILES
+       rm -rf /tmp/ROOTFILES.tmp
+       
+       #Change KVER to Kernelversion
+       sed -e "s/KVER/$(KVER)/g" -i /tmp/ROOTFILES
+
+       #Remove doubled files with tar/untar/tar to save space
+       tar -c --exclude='proc/*' --exclude='tmp/ROOTFILES' --exclude='#*' --exclude='dev/pts/*' \
+               --exclude-from=$(DIR_SRC)/config/rootfiles/$@/exclude \
+               -C / --files-from=/tmp/ROOTFILES -f /$(SNAME).tar
+       mv -f /tmp/ROOTFILES /install/packages/package/ROOTFILES
+       tar -p --numeric-owner -x  -C /tmp -f /$(SNAME).tar
+       rm -f /$(SNAME).tar
+       cd /tmp && XZ_OPT="$(XZ_OPT)" tar cJf /install/packages/package/files.tar.xz $(TAR_OPTIONS) * && rm -rf *
+       cat /install/packages/package/ROOTFILES | grep -v "#" > /install/packages/package/ROOTFILES.tmp
+       rm /install/packages/package/ROOTFILES
+       mv /install/packages/package/ROOTFILES.tmp /install/packages/package/ROOTFILES
+
+       #build package
+       cp -f $(DIR_SRC)/config/rootfiles/$@/update.sh /install/packages/package
+       chmod 755 /install/packages/package/update.sh
+       #Change xxxKVERxxx to Kernelversion
+       sed -e "s/xxxKVERxxx/$(KVER)/g" -i /install/packages/package/update.sh
+
+       cd /install/packages/package && tar cf ../core-upgrade-$(VERSION)-$$(basename $@).ipfire \
+               update.sh files.tar.xz ROOTFILES
+       rm -rf /install/packages/package
+       sed -e "s/NAME/core-upgrade/g" \
                -e "s/VER/$(VERSION)/g" \
-               -e "s/RELEASE/$$i/g" \
+               -e "s/RELEASE/$$(basename $@)/g" \
                -e "s/DEPS/$(DEPS)/g" \
-               -e "s/DESCDE/$(DESCDE)/g" \
-               -e "s/DESCEN/$(DESCEN)/g" \
-               -e "s/SIZE/`ls -l \/install\/packages\/core-update-$(VERSION)-$$i.ipfire | awk '{ print \$5 }'`/g" \
-               < /usr/src/src/pakfire/meta > /install/packages/meta-core-update-$$i; \
-       done
+               -e "s/SIZE/`ls -l \/install\/packages\/core-upgrade-$(VERSION)-$$(basename $@).ipfire | awk '{ print $$5 }'`/g" \
+               < /usr/src/src/pakfire/meta > /install/packages/meta-core-upgrade-$$(basename $@)