diff --git a/Makefile b/Makefile index fb387c5b0..342905844 100644 --- a/Makefile +++ b/Makefile @@ -273,6 +273,16 @@ efi64: FIRMWARE=EFI64 \ $(MAKECMDGOALS) +install-all: + +install: + +netinstall: + +clean: + +all: + else # ifeq($(HAVE_FIRMWARE),) all: all-local subdirs diff --git a/codepage/Makefile b/codepage/Makefile index 18a590f3c..af5258aa5 100644 --- a/codepage/Makefile +++ b/codepage/Makefile @@ -1,6 +1,6 @@ VPATH = $(SRC) PERL = perl -CPSRC = $(wildcard $(SRC)/*.txt) +CPSRC = $(sort $(wildcard $(SRC)/*.txt)) CPOBJ = $(notdir $(CPSRC)) GENFILES = $(patsubst %.txt,%.cp,$(CPOBJ)) diff --git a/com32/cmenu/Makefile b/com32/cmenu/Makefile index 6bb523161..b81b68ed5 100644 --- a/com32/cmenu/Makefile +++ b/com32/cmenu/Makefile @@ -32,8 +32,8 @@ LIBMENU = libmenu/syslnx.o libmenu/com32io.o libmenu/tui.o \ libmenu/menu.o libmenu/passwords.o libmenu/des.o libmenu/help.o \ $(objdir)/com32/libutil/libutil.c32 $(objdir)/com32/lib/libcom32.c32 -CMENUS = $(patsubst %.c,%.c32,$(wildcard $(SRC)/*.c)) -IMENUS = $(patsubst %.menu,%.c32,$(wildcard $(SRC)/*.menu)) +CMENUS = $(patsubst %.c,%.c32,$(sort $(wildcard $(SRC)/*.c))) +IMENUS = $(patsubst %.menu,%.c32,$(sort $(wildcard $(SRC)/*.menu))) MENUS = $(LIBS) $(subst $(SRC)/,,$(CMENUS) $(IMENUS)) @@ -62,7 +62,7 @@ clean: tidy menuclean rm -f *.lss *.com menuclean: - rm -f $(patsubst %.menu,%.c,$(wildcard *.menu)) + rm -f $(patsubst %.menu,%.c,$(sort $(wildcard *.menu))) spotless: clean libclean menuclean rm -f *~ \#* *.c32 diff --git a/com32/elflink/ldlinux/readconfig.c b/com32/elflink/ldlinux/readconfig.c index 347f8264c..24f1cc94b 100644 --- a/com32/elflink/ldlinux/readconfig.c +++ b/com32/elflink/ldlinux/readconfig.c @@ -330,7 +330,7 @@ static char *copy_sysappend_string(char *dst, const char *src) char c; while ((c = *src++)) { - if (c <= ' ' && c == '\x7f') { + if (c <= ' ' || c == '\x7f') { if (!was_space) *dst++ = '_'; was_space = true; diff --git a/com32/gpllib/Makefile b/com32/gpllib/Makefile index e3e30d76f..1fec91452 100644 --- a/com32/gpllib/Makefile +++ b/com32/gpllib/Makefile @@ -8,7 +8,7 @@ include $(MAKEDIR)/lib.mk REQFLAGS += -I$(SRC)/../gplinclude -I$(SRC)/../gplinclude/zzjson GPLDIRS := $(SRC) $(addprefix $(SRC)/,disk dmi vpd acpi zzjson) -LIBOBJS := $(subst $(SRC)/,,$(foreach dir,$(GPLDIRS),$(patsubst %.c,%.o,$(wildcard $(dir)/*.c)))) +LIBOBJS := $(subst $(SRC)/,,$(foreach dir,$(GPLDIRS),$(patsubst %.c,%.o,$(sort $(wildcard $(dir)/*.c))))) BINDIR = /usr/bin LIBDIR = /usr/lib diff --git a/com32/hdt/Makefile b/com32/hdt/Makefile index 80f2d0a04..61736d05a 100644 --- a/com32/hdt/Makefile +++ b/com32/hdt/Makefile @@ -25,7 +25,7 @@ CFLAGS += -I$(com32)/cmenu/libmenu -I$(com32) MODULES = hdt.c32 TESTFILES = -OBJS = $(subst $(SRC)/,,$(patsubst %.c,%.o,$(wildcard $(SRC)/*.c))) +OBJS = $(subst $(SRC)/,,$(patsubst %.c,%.o,$(sort $(wildcard $(SRC)/*.c)))) VERSION = $(shell $(SED) -n 's/\#define VERSION \"\(.*\)\"/\1/p' hdt.h) CODENAME = $(shell $(SED) -n 's/\#define CODENAME \"\(.*\)\"/\1/p' hdt.h) NODASH_VERSION = $(shell echo $(VERSION) | $(SED) -e 's/-/_/g' | $(SED) -e 's/\./_/g') diff --git a/com32/libupload/Makefile b/com32/libupload/Makefile index f9440c57e..a7799136a 100644 --- a/com32/libupload/Makefile +++ b/com32/libupload/Makefile @@ -4,7 +4,7 @@ include $(MAKEDIR)/com32.mk REQFLAGS += -I$(SRC) -LIBOBJS := $(notdir $(patsubst %.c,%.o,$(wildcard $(SRC)/*.c))) +LIBOBJS := $(notdir $(patsubst %.c,%.o,$(sort $(wildcard $(SRC)/*.c)))) BINDIR = /usr/bin LIBDIR = /usr/lib diff --git a/com32/menu/readconfig.c b/com32/menu/readconfig.c index b7814be28..257b04252 100644 --- a/com32/menu/readconfig.c +++ b/com32/menu/readconfig.c @@ -299,7 +299,7 @@ static char *copy_sysappend_string(char *dst, const char *src) char c; while ((c = *src++)) { - if (c <= ' ' && c == '\x7f') { + if (c <= ' ' || c == '\x7f') { if (!was_space) *dst++ = '_'; was_space = true; diff --git a/com32/rosh/Makefile b/com32/rosh/Makefile index 4d900f4f3..0d49eece0 100644 --- a/com32/rosh/Makefile +++ b/com32/rosh/Makefile @@ -27,7 +27,7 @@ include $(MAKEDIR)/rosh.mk # official release. Otherwise, substitute a hex string that is pretty much # guaranteed to be unique to be unique from build to build. ifndef HEXDATE -HEXDATE := $(shell $(PERL) $(topdir)/now.pl $(SRCS) $(wildcard *.h)) +HEXDATE := $(shell $(PERL) $(topdir)/now.pl $(SRCS) $(sort $(wildcard *.h))) endif ifndef DATE DATE := $(shell sh $(topdir)/gen-id.sh $(VERSION) $(HEXDATE)) diff --git a/com32/sysdump/Makefile b/com32/sysdump/Makefile index 240edaaa7..ba9bcaed9 100644 --- a/com32/sysdump/Makefile +++ b/com32/sysdump/Makefile @@ -27,14 +27,14 @@ CFLAGS += -I$(com32) -I$(topdir) MODULES = sysdump.c32 TESTFILES = -SRCS = $(wildcard $(SRC)/*.c) +SRCS = $(sort $(wildcard $(SRC)/*.c)) OBJS = $(subst $(SRC)/,,$(patsubst %.c,%.o,$(SRCS))) # The DATE is set on the make command line when building binaries for # official release. Otherwise, substitute a hex string that is pretty much # guaranteed to be unique to be unique from build to build. ifndef HEXDATE -HEXDATE := $(shell $(PERL) $(topdir)/now.pl $(SRCS) $(wildcard *.h)) +HEXDATE := $(shell $(PERL) $(topdir)/now.pl $(SRCS) $(sort $(wildcard *.h))) endif ifndef DATE DATE := $(shell sh $(topdir)/gen-id.sh $(VERSION) $(HEXDATE)) diff --git a/core/Makefile b/core/Makefile index ad0acb5a9..26302fd6d 100644 --- a/core/Makefile +++ b/core/Makefile @@ -39,8 +39,8 @@ BTARGET = kwdhash.gen \ isolinux.bin isolinux-debug.bin pxelinux.0 lpxelinux.0 # All primary source files for the main syslinux files -NASMSRC := $(wildcard $(SRC)/*.asm) -NASMHDR := $(wildcard $(SRC)/*.inc) +NASMSRC := $(sort $(wildcard $(SRC)/*.asm)) +NASMHDR := $(sort $(wildcard $(SRC)/*.inc)) CSRC := $(shell find $(SRC) -name '*.c' -print) SSRC := $(shell find $(SRC) -name '*.S' -print) CHDR := $(shell find $(SRC) -name '*.h' -print) @@ -80,9 +80,9 @@ FILTER_OBJS = %rawcon.o %plaincon.o %pxelinux-c.o %ldlinux-c.o \ ifdef EFI_BUILD # EFI is single-threaded, and doesn't use the LZO assembly decoder FILTER_OBJS += $(subst $(SRC)/,, \ - $(patsubst %.S,%.o, $(wildcard $(SRC)/lzo/*.S)) \ - $(patsubst %.c,%.o, $(wildcard $(SRC)/thread/*.c)) \ - $(patsubst %.S,%.o, $(wildcard $(SRC)/thread/*.S))) + $(patsubst %.S,%.o, $(sort $(wildcard $(SRC)/lzo/*.S))) \ + $(patsubst %.c,%.o, $(sort $(wildcard $(SRC)/thread/*.c))) \ + $(patsubst %.S,%.o, $(sort $(wildcard $(SRC)/thread/*.S)))) endif COBJS = $(filter-out $(FILTER_OBJS),$(COBJ)) diff --git a/core/fs/btrfs/btrfs.h b/core/fs/btrfs/btrfs.h index 1568e4de7..8f519a9ca 100644 --- a/core/fs/btrfs/btrfs.h +++ b/core/fs/btrfs/btrfs.h @@ -32,7 +32,7 @@ typedef u64 __le64; #define BTRFS_MAGIC "_BHRfS_M" #define BTRFS_MAGIC_L 8 -#define BTRFS_MAGIC_N 0x4d5f53665248425f +#define BTRFS_MAGIC_N 0x4d5f53665248425fULL #define BTRFS_SUPER_FLAG_METADUMP (1ULL << 33) diff --git a/core/sysappend.c b/core/sysappend.c index 5c3f650de..758703eaa 100644 --- a/core/sysappend.c +++ b/core/sysappend.c @@ -35,7 +35,7 @@ static char *copy_and_mangle(char *dst, const char *src) char c; while ((c = *src++)) { - if (c <= ' ' && c == '\x7f') { + if (c <= ' ' || c == '\x7f') { if (!was_space) *dst++ = '_'; was_space = true; diff --git a/doc/syslinux.txt b/doc/syslinux.txt index fd7396e3e..263b060f9 100644 --- a/doc/syslinux.txt +++ b/doc/syslinux.txt @@ -229,12 +229,13 @@ IPAPPEND bitmask 0x00100 SYSSKU= System SKU 0x00200 SYSFAMILY= System family 0x00400 MBVENDOR= Motherboard vendor name - 0x00800 MBVERSION= Motherboard version - 0x01000 MBSERIAL= Motherboard serial number - 0x02000 MBASSET= Motherboard asset tag - 0x04000 BIOSVENDOR= BIOS vendor name - 0x08000 BIOSVERSION= BIOS version - 0x10000 SYSFF= System form factor + 0x00800 MBPRODUCT= Motherboard product name + 0x01000 MBVERSION= Motherboard version + 0x02000 MBSERIAL= Motherboard serial number + 0x04000 MBASSET= Motherboard asset tag + 0x08000 BIOSVENDOR= BIOS vendor name + 0x10000 BIOSVERSION= BIOS version + 0x20000 SYSFF= System form factor If these strings contain whitespace they are replaced with underscores (_). @@ -274,6 +275,11 @@ IPAPPEND bitmask 28 Blade 29 Blade enclosure + 0x40000: Append a file system UUID string. For EXT2/3/4, this is the typical file system UUID. For FAT12/16/32, this is the 32-bit file system serial number (ie DA1A-0B2E). + + FSUUID= + + SENDCOOKIES bitmask [PXELINUX only] When downloading files over http, the SYSAPPEND strings are diff --git a/dos/Makefile b/dos/Makefile index b9c337d5e..4c930d195 100644 --- a/dos/Makefile +++ b/dos/Makefile @@ -34,7 +34,7 @@ SRCS = syslinux.c \ ../libinstaller/getopt/getopt_long.c \ ../libinstaller/bootsect_bin.c \ ../libinstaller/mbr_bin.c \ - $(wildcard $(SRC)/../libfat/*.c) + $(sort $(wildcard $(SRC)/../libfat/*.c)) OBJS = header.o crt0.o ldlinux.o \ $(patsubst %.c,%.o,$(notdir $(SRCS))) LIBOBJS = int2526.o conio.o memcpy.o memset.o memmove.o skipatou.o atou.o \ diff --git a/gpxe/src/Makefile.housekeeping b/gpxe/src/Makefile.housekeeping index 1f5e115f2..903ac53f6 100644 --- a/gpxe/src/Makefile.housekeeping +++ b/gpxe/src/Makefile.housekeeping @@ -246,9 +246,9 @@ endif # # BIN has the form bin[-[arch-]platform] -ARCHS := $(patsubst arch/%,%,$(wildcard arch/*)) +ARCHS := $(patsubst arch/%,%,$(sort $(wildcard arch/*))) PLATFORMS := $(patsubst config/defaults/%.h,%,\ - $(wildcard config/defaults/*.h)) + $(sort $(wildcard config/defaults/*.h))) archs : @$(ECHO) $(ARCHS) @@ -307,8 +307,8 @@ srcdirs : # SRCS lists all .c or .S files found in any SRCDIR # -SRCS += $(wildcard $(patsubst %,%/*.c,$(SRCDIRS))) -SRCS += $(wildcard $(patsubst %,%/*.S,$(SRCDIRS))) +SRCS += $(sort $(wildcard $(patsubst %,%/*.c,$(SRCDIRS)))) +SRCS += $(sort $(wildcard $(patsubst %,%/*.S,$(SRCDIRS)))) srcs : @$(ECHO) $(SRCS) @@ -677,7 +677,7 @@ endef $(BIN)/%.objs : $(BIN)/%.tmp $(Q)$(ECHO) $(call objs_list,$<) $(BIN)/%.sizes : $(BIN)/%.tmp - $(Q)$(SIZE) -t $(foreach OBJ,$(call objs_list,$<),$(wildcard $(BIN)/$(subst _,?,$(OBJ)).o)) | \ + $(Q)$(SIZE) -t $(foreach OBJ,$(call objs_list,$<),$(sort $(wildcard $(BIN)/$(subst _,?,$(OBJ)).o))) | \ sort -g # Get dependency list for the specified target @@ -807,7 +807,7 @@ $(BIN)/%.o : payload/%.img $(Q)$(LD) -b binary -r -o $@ $< --undefined obj_payload \ --defsym obj_$*=0 -BOBJS += $(patsubst payload/%.img,$(BIN)/%.o,$(wildcard payload/*.img)) +BOBJS += $(patsubst payload/%.img,$(BIN)/%.o,$(sort $(wildcard payload/*.img))) # The "allXXXs" targets for each suffix # diff --git a/lzo/Makefile b/lzo/Makefile index 0c5d2965f..29f1fa622 100644 --- a/lzo/Makefile +++ b/lzo/Makefile @@ -15,7 +15,7 @@ include $(MAKEDIR)/build.mk INCLUDES += -I$(SRC)/include -LIBOBJS = $(patsubst %.c,%.o,$(subst $(SRC)/,,$(wildcard $(SRC)/src/*.c))) +LIBOBJS = $(patsubst %.c,%.o,$(subst $(SRC)/,,$(sort $(wildcard $(SRC)/src/*.c)))) LIB = lzo.a BINS = prepcore diff --git a/memdisk/Makefile b/memdisk/Makefile index e6557d87a..42e56e00c 100644 --- a/memdisk/Makefile +++ b/memdisk/Makefile @@ -23,7 +23,7 @@ NFLAGS = -dDATE='"$(DATE)"' NINCLUDE = -I$(SRC)/ VPATH = $(SRC) -SRCS = $(wildcard *.asm *.c *.h) +SRCS = $(sort $(wildcard *.asm *.c *.h)) # The DATE is set on the make command line when building binaries for # official release. Otherwise, substitute a hex string that is pretty much diff --git a/mtools/Makefile b/mtools/Makefile index 70269efd0..0d0b1b27b 100755 --- a/mtools/Makefile +++ b/mtools/Makefile @@ -13,7 +13,7 @@ SRCS = syslinux.c \ ../libinstaller/bootsect_bin.c \ ../libinstaller/ldlinux_bin.c \ ../libinstaller/ldlinuxc32_bin.c \ - $(wildcard $(SRC)/../libfat/*.c) + $(sort $(wildcard $(SRC)/../libfat/*.c)) OBJS = $(patsubst %.c,%.o,$(notdir $(SRCS))) .SUFFIXES: .c .o .i .s .S diff --git a/tests/Makefile b/tests/Makefile index 99b1618f9..b2ccff43e 100644 --- a/tests/Makefile +++ b/tests/Makefile @@ -16,6 +16,8 @@ # full. # +sudo?= + ifeq ($(INITIAL),) INITIAL := 1 @@ -24,7 +26,7 @@ HDD = $(OBJ)/hdd.img export QEMU QEMU_FLAGS INITIAL HDD -SYSLINUX_output-str := $(shell sudo $(SRC)/build-syslinux start \ +SYSLINUX_output-str := $(shell ${sudo} $(SRC)/build-syslinux start \ $(objdir)/bios $(HDD) test.cfg) SYSLINUX_MOUNT_DIR = $(firstword $(SYSLINUX_output-str)) SYSLINUX_INSTALL_DIR = $(SYSLINUX_MOUNT_DIR)/boot/syslinux @@ -43,7 +45,7 @@ syslinux-tests: INITIAL="$(INITIAL)" INSTALL_DIR="$(SYSLINUX_INSTALL_DIR)" \ CONFIG_FILE="$(SYSLINUX_CONFIG_FILE)" \ DERIVATIVE=SYSLINUX - @sudo $(SRC)/build-syslinux stop $(SYSLINUX_MOUNT_DIR) \ + @${sudo} $(SRC)/build-syslinux stop $(SYSLINUX_MOUNT_DIR) \ $(SYSLINUX_LOOPDEV) test.cfg pxelinux-tests: diff --git a/tests/recipes.mk b/tests/recipes.mk index f01c1add3..f598fd99e 100644 --- a/tests/recipes.mk +++ b/tests/recipes.mk @@ -9,6 +9,8 @@ # # Canned recipes +sudo?=sudo + # # copy-files - copy a config to the mounted filesystem # @@ -19,7 +21,7 @@ # define copy-files = for f in $($@_files); do \ - sudo cp $$f $(INSTALL_DIR) ;\ + ${sudo} cp $$f $(INSTALL_DIR) ;\ done sync endef @@ -28,7 +30,7 @@ endef # install-config # define install-config = - sudo sh -c 'echo INCLUDE $($@_cfg) >> $(CONFIG_FILE)' + ${sudo} sh -c 'echo INCLUDE $($@_cfg) >> $(CONFIG_FILE)' sync endef @@ -39,7 +41,7 @@ endef # define remove-files = for f in $($@_files); do \ - sudo rm $(INSTALL_DIR)/$$f ;\ + ${sudo} rm $(INSTALL_DIR)/$$f ;\ done endef @@ -47,7 +49,7 @@ endef # delete-config - remove a test's config file from the master config # define delete-config = - sudo sed -i -e '/INCLUDE $($@_cfg)/d' $(CONFIG_FILE) + ${sudo} sed -i -e '/INCLUDE $($@_cfg)/d' $(CONFIG_FILE) endef # @@ -57,12 +59,12 @@ define run-test = $(copy-files) $(install-config) - sudo $(QEMU) $(QEMU_FLAGS) -serial file:$@.log + ${sudo} $(QEMU) $(QEMU_FLAGS) -serial file:$@.log $(delete-config) $(remove-files) - sudo sort $@.log -o $@.log + ${sudo} sort $@.log -o $@.log if [ `comm -1 -3 $@.log $($@_results) | wc -l` -ne 0 ]; then \ printf " [!] $@ failed\n" ;\ else \ diff --git a/txt/syslinux.cfg.txt b/txt/syslinux.cfg.txt index a06fe0503..63906c29c 100644 --- a/txt/syslinux.cfg.txt +++ b/txt/syslinux.cfg.txt @@ -198,12 +198,13 @@ information if available: 0x00100 SYSSKU= System SKU 0x00200 SYSFAMILY= System family 0x00400 MBVENDOR= Motherboard vendor name - 0x00800 MBVERSION= Motherboard version - 0x01000 MBSERIAL= Motherboard serial number - 0x02000 MBASSET= Motherboard asset tag - 0x04000 BIOSVENDOR= BIOS vendor name - 0x08000 BIOSVERSION= BIOS version - 0x10000 SYSFF= System form factor + 0x00800 MBPRODUCT= Motherboard product name + 0x01000 MBVERSION= Motherboard version + 0x02000 MBSERIAL= Motherboard serial number + 0x04000 MBASSET= Motherboard asset tag + 0x08000 BIOSVENDOR= BIOS vendor name + 0x10000 BIOSVERSION= BIOS version + 0x20000 SYSFF= System form factor + If these strings contain white-space characters, they are replaced with underscores (_). @@ -242,6 +243,9 @@ of the specification, the following values are defined: 28 Blade 29 Blade enclosure + 0x40000: Append a file system UUID string. For EXT2/3/4, this is the typical file system UUID. For FAT12/16/32, this is the 32-bit file system serial number (ie DA1A-0B2E). + + FSUUID= == KERNEL-LIKE DIRECTIVES == diff --git a/win32/Makefile b/win32/Makefile index 437f954e0..c6485300a 100644 --- a/win32/Makefile +++ b/win32/Makefile @@ -59,7 +59,7 @@ LIBSRC = ../libinstaller/fs.c \ ../libinstaller/ldlinux_bin.c \ ../libinstaller/ldlinuxc32_bin.c \ ../libinstaller/mbr_bin.c \ - $(wildcard $(SRC)/../libfat/*.c) + $(sort $(wildcard $(SRC)/../libfat/*.c)) LIBOBJS = $(patsubst %.c,%.obj,$(notdir $(LIBSRC))) LIB = syslinux.lib diff --git a/win64/Makefile b/win64/Makefile index ae47e2e57..359d270d0 100644 --- a/win64/Makefile +++ b/win64/Makefile @@ -49,7 +49,7 @@ LIBSRC = ../libinstaller/fs.c \ ../libinstaller/ldlinux_bin.c \ ../libinstaller/ldlinuxc32_bin.c \ ../libinstaller/mbr_bin.c \ - $(wildcard $(SRC)/../libfat/*.c) + $(sort $(wildcard $(SRC)/../libfat/*.c)) LIBOBJS = $(patsubst %.c,%.obj,$(notdir $(LIBSRC))) LIB = syslinux.lib