]> git.ipfire.org Git - people/mfischer/ipfire-2.x.git/commitdiff
Config: Support rootfiles with spaces in filenames
authorMichael Tremer <michael.tremer@ipfire.org>
Wed, 18 Jan 2023 11:36:26 +0000 (11:36 +0000)
committerPeter Müller <peter.mueller@ipfire.org>
Wed, 18 Jan 2023 23:26:59 +0000 (23:26 +0000)
Our build scripts can't handle any spaces in filenames. This is being
fixed by this patch with only a slightly changed set of shell commands.

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Acked-by: Peter Müller <peter.mueller@ipfire.org>
lfs/Config

index 1d02e969ce4e4e9d774ed3692c683b6c56dd4e9d..2b2e9f56926b3e48bac8ca4f89be5c42da7c4d46 100644 (file)
@@ -294,9 +294,8 @@ define POSTBUILD
        @rm -rf $(GOPATH) /root/.cargo
        @$(FIND_FILES) > $(DIR_SRC)/lsalrnew
        @diff $(DIR_SRC)/lsalr $(DIR_SRC)/lsalrnew | grep '^> ' | sed 's/^> //' > $(TARGET)_diff
-       @cp -f $(DIR_SRC)/lsalrnew $(DIR_SRC)/lsalr
-       @rm -f $(DIR_SRC)/lsalrnew
-       sed -i -e 's+.\/++' $(TARGET)_diff
+       @mv -f $(DIR_SRC)/lsalrnew $(DIR_SRC)/lsalr
+       @sed -i -e 's+.\/++' $(TARGET)_diff
        # compare roofile ( same name as lfs script) with the list of installed files
        # special cases
        # - if the corresponding rootfile is not found, touch $(TARGET)_missing_rootfile
@@ -305,7 +304,7 @@ define POSTBUILD
        # ROOTFILE : reference of include/exclude files
        # $(TARGET)_rootfile : ROOTFILE with KVER replacement
        # $(TARGET) : log result with {commented|include|added} files
-       if [ -s "$(TARGET)_diff" ]; then \
+       @if [ -s "$(TARGET)_diff" ]; then \
                LFS_SCRIPT=$(firstword $(MAKEFILE_LIST))$(KCFG); \
                echo $(LFS_SCRIPT); \
                ROOTFILE=$$(find -L $(DIR_SRC)/config/rootfiles/{common,packages}/{$(BUILD_ARCH),} -maxdepth 1 -type f -name $$LFS_SCRIPT 2>/dev/null | head -1); \
@@ -315,13 +314,13 @@ define POSTBUILD
                        echo "error $$LFS_SCRIPT not found in config/rootfiles"; \
                fi; \
                sed -e "s/BUILDTARGET/$(BUILDTARGET)/g" -e "s/KVER/$(KVER)/g" -e "s/xxxMACHINExxx/$(BUILD_ARCH)/g" $$ROOTFILE > $(TARGET)_rootfile; \
-               for line in `cat $(TARGET)_diff`; do \
+               while read -r line; do \
                        if grep -qG "^#$$line$$" $(TARGET)_rootfile; then echo "#$$line" >> $(TARGET); \
                        elif grep -qG "^$$line$$" $(TARGET)_rootfile ; then echo "$$line" >> $(TARGET); \
                        else echo "+$$line" >> $(TARGET); \
                        fi; \
-               done; \
-               for line in `grep -v "^#" $(TARGET)_rootfile`; do \
+               done < $(TARGET)_diff; \
+               grep -v "^#" $(TARGET)_rootfile | while read -r line; do \
                        if ! grep -qG "^$$line$$" $(TARGET)_diff ; then echo "-$$line" >> $(TARGET); \
                        fi; \
                done; \