Files
bpfire/lfs/core-updates
Michael Tremer b37678e922 Package extended attributes in distro.img and Core Updates
System capabilities are stored in extended file system attributes
which are by default not stored in tar balls.

This patch ensures that they are packaged and extracted.

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2021-01-06 14:45:02 +00:00

100 lines
4.4 KiB
Plaintext

###############################################################################
# #
# 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 3 of the License, or #
# (at your option) any later version. #
# #
# 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 this program. If not, see <http://www.gnu.org/licenses/>. #
# #
###############################################################################
###############################################################################
# Definitions
###############################################################################
include Config
VER = ipfire
THISAPP = core-updates
TARGET = $(DIR_INFO)/$(THISAPP)
###############################################################################
# Top-level Rules
###############################################################################
install : $(TARGET)
check :
download :
md5 :
###############################################################################
# Installation Details
###############################################################################
CORE = $(patsubst $(DIR_SRC)/config/rootfiles/%,%,$(wildcard $(DIR_SRC)/config/rootfiles/core/*))
$(TARGET) : $(CORE)
.PHONY:
core/%:
rm -rf /install/packages/package /tmp/*
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 $(TAR_OPTIONS) -c --exclude='proc/*' --exclude='tmp/ROOTFILES' --exclude='__pycache__' --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 $(TAR_OPTIONS) -p --numeric-owner -x -C /tmp -f /$(SNAME).tar
rm -f /$(SNAME).tar
cd /tmp && XZ_OPT="$(XZ_OPT)" tar $(TAR_OPTIONS) -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/$$(basename $@)/g" \
-e "s/DEPS/$(DEPS)/g" \
-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 $@)