X-Git-Url: http://git.ipfire.org/?p=ipfire-2.x.git;a=blobdiff_plain;f=lfs%2Fcore-updates;h=3cd8c0785340f224e85953c37a9164f2e99cb13f;hp=9d242eea398f549a8e9ac7cb59458b4442b46e49;hb=15b1a3e360a277dc7481103f8ddcbf189033e3a6;hpb=13704e5b1c27dee12c68daf48adb663f12b6f14d diff --git a/lfs/core-updates b/lfs/core-updates index 9d242eea39..3cd8c07853 100644 --- a/lfs/core-updates +++ b/lfs/core-updates @@ -1,7 +1,7 @@ ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2007 Michael Tremer & Christian Schmidt # +# Copyright (C) 2007-2018 IPFire Team # # # # 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 # @@ -26,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 @@ -49,18 +50,47 @@ CORE = $(patsubst $(DIR_SRC)/config/rootfiles/%,%,$(wildcard $(DIR_SRC)/config/r $(TARGET) : $(CORE) +.PHONY: core/%: rm -rf /install/packages/package mkdir -p /install/packages/package eval $$(cat /usr/src/config/rootfiles/$@/meta) - cp -f /usr/src/config/rootfiles/$@/update.sh /install/packages/package - cp -f /usr/src/config/rootfiles/$@/files /install/packages/package/ROOTFILES - sed -e 's/KVER/$(KVER)/g' -i /install/packages/package/ROOTFILES + + #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 - 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 + #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 ROOTFILES + update.sh files.tar.xz ROOTFILES rm -rf /install/packages/package sed -e "s/NAME/core-upgrade/g" \ -e "s/VER/$(VERSION)/g" \