diff --git a/Makefile b/Makefile index e40230ba..3ea2055a 100644 --- a/Makefile +++ b/Makefile @@ -75,7 +75,7 @@ BUILD_NAME:=sortix-$(RELEASE)-$(MACHINE) LIVE_INITRD:=$(SORTIX_BUILDS_DIR)/$(BUILD_NAME).live.tar OVERLAY_INITRD:=$(SORTIX_BUILDS_DIR)/$(BUILD_NAME).overlay.tar SRC_INITRD:=$(SORTIX_BUILDS_DIR)/$(BUILD_NAME).src.tar -SYSTEM_INITRD:=$(SORTIX_BUILDS_DIR)/$(BUILD_NAME).system.tar +SYSTEM_INITRD:=$(SORTIX_BUILDS_DIR)/$(BUILD_NAME).system.tix.tar .PHONY: all all: sysroot @@ -246,6 +246,7 @@ sysroot-system: sysroot-fsh sysroot-base-headers || exit $$?; done) LC_ALL=C sort -u "$(SYSROOT)/tix/manifest/system" > "$(SYSROOT)/tix/manifest/system.new" mv "$(SYSROOT)/tix/manifest/system.new" "$(SYSROOT)/tix/manifest/system" + printf 'TIX_VERSION=3\nNAME=system\nPLATFORM=$(HOST)\nPREFIX=\nSYSTEM=true\n' > "$(SYSROOT)/tix/tixinfo/system" .PHONY: sysroot-source sysroot-source: sysroot-fsh @@ -477,7 +478,7 @@ $(SRC_INITRD): sysroot $(SYSTEM_INITRD): sysroot sed -E 's,^/,,' "$(SYSROOT)/tix/manifest/system" | \ - tar -cf $(SYSTEM_INITRD) -C "$(SYSROOT)" --numeric-owner --owner=0 --group=0 --no-recursion -T - tix/manifest/system + tar -cf $(SYSTEM_INITRD) -C "$(SYSROOT)" --numeric-owner --owner=0 --group=0 --no-recursion -T - tix/manifest/system tix/tixinfo/system # Packaging @@ -502,7 +503,7 @@ ifeq ($(SORTIX_ISO_COMPRESSION),xz) test ! -e "$(OVERLAY_INITRD)" || \ xz -c $(OVERLAY_INITRD) > $(SORTIX_BUILDS_DIR)/$(BUILD_NAME)-iso/boot/overlay.tar.xz xz -c $(SRC_INITRD) > $(SORTIX_BUILDS_DIR)/$(BUILD_NAME)-iso/boot/src.tar.xz - xz -c $(SYSTEM_INITRD) > $(SORTIX_BUILDS_DIR)/$(BUILD_NAME)-iso/boot/system.tar.xz + xz -c $(SYSTEM_INITRD) > $(SORTIX_BUILDS_DIR)/$(BUILD_NAME)-iso/repository/system.tix.tar.xz build-aux/iso-grub-cfg.sh --platform $(HOST) --version $(VERSION) $(SORTIX_BUILDS_DIR)/$(BUILD_NAME)-iso grub-mkrescue --compress=xz -o $(SORTIX_BUILDS_DIR)/$(BUILD_NAME).iso $(SORTIX_BUILDS_DIR)/$(BUILD_NAME)-iso else ifeq ($(SORTIX_ISO_COMPRESSION),gzip) @@ -511,7 +512,7 @@ else ifeq ($(SORTIX_ISO_COMPRESSION),gzip) test ! -e "$(OVERLAY_INITRD)" || \ gzip -c $(OVERLAY_INITRD) > $(SORTIX_BUILDS_DIR)/$(BUILD_NAME)-iso/boot/overlay.tar.gz gzip -c $(SRC_INITRD) > $(SORTIX_BUILDS_DIR)/$(BUILD_NAME)-iso/boot/src.tar.gz - gzip -c $(SYSTEM_INITRD) > $(SORTIX_BUILDS_DIR)/$(BUILD_NAME)-iso/boot/system.tar.gz + gzip -c $(SYSTEM_INITRD) > $(SORTIX_BUILDS_DIR)/$(BUILD_NAME)-iso/repository/system.tix.tar.gz build-aux/iso-grub-cfg.sh --platform $(HOST) --version $(VERSION) $(SORTIX_BUILDS_DIR)/$(BUILD_NAME)-iso grub-mkrescue --compress=gz -o $(SORTIX_BUILDS_DIR)/$(BUILD_NAME).iso $(SORTIX_BUILDS_DIR)/$(BUILD_NAME)-iso else # none @@ -520,7 +521,7 @@ else # none test ! -e "$(OVERLAY_INITRD)" || \ cp $(OVERLAY_INITRD) $(SORTIX_BUILDS_DIR)/$(BUILD_NAME)-iso/boot/overlay.tar cp $(SRC_INITRD) $(SORTIX_BUILDS_DIR)/$(BUILD_NAME)-iso/boot/src.tar - cp $(SYSTEM_INITRD) $(SORTIX_BUILDS_DIR)/$(BUILD_NAME)-iso/boot/system.tar + cp $(SYSTEM_INITRD) $(SORTIX_BUILDS_DIR)/$(BUILD_NAME)-iso/repository/system.tix.tar build-aux/iso-grub-cfg.sh --platform $(HOST) --version $(VERSION) $(SORTIX_BUILDS_DIR)/$(BUILD_NAME)-iso grub-mkrescue -o $(SORTIX_BUILDS_DIR)/$(BUILD_NAME).iso $(SORTIX_BUILDS_DIR)/$(BUILD_NAME)-iso endif @@ -563,16 +564,12 @@ $(SORTIX_RELEASE_DIR)/$(RELEASE)/$(MACHINE)/boot/overlay.tar.xz: $(OVERLAY_INITR $(SORTIX_RELEASE_DIR)/$(RELEASE)/$(MACHINE)/boot/src.tar.xz: $(SRC_INITRD) $(SORTIX_RELEASE_DIR)/$(RELEASE)/$(MACHINE)/boot xz -c $< > $@ -$(SORTIX_RELEASE_DIR)/$(RELEASE)/$(MACHINE)/boot/system.tar.xz: $(SYSTEM_INITRD) $(SORTIX_RELEASE_DIR)/$(RELEASE)/$(MACHINE)/boot - xz -c $< > $@ - .PHONY: release-boot release-boot: \ $(SORTIX_RELEASE_DIR)/$(RELEASE)/$(MACHINE)/boot/sortix.bin.xz \ $(SORTIX_RELEASE_DIR)/$(RELEASE)/$(MACHINE)/boot/live.tar.xz \ $(SORTIX_RELEASE_DIR)/$(RELEASE)/$(MACHINE)/boot/overlay.tar.xz \ $(SORTIX_RELEASE_DIR)/$(RELEASE)/$(MACHINE)/boot/src.tar.xz \ - $(SORTIX_RELEASE_DIR)/$(RELEASE)/$(MACHINE)/boot/system.tar.xz \ .PHONY: release-iso release-iso: $(SORTIX_RELEASE_DIR)/$(RELEASE)/builds/$(BUILD_NAME).iso @@ -597,7 +594,7 @@ $(SORTIX_RELEASE_DIR)/$(RELEASE)/man: $(SORTIX_RELEASE_DIR)/$(RELEASE)/man/ports.list: sysroot $(SORTIX_RELEASE_DIR)/$(RELEASE)/man for section in 1 2 3 4 5 6 7 8 9; do mkdir -p $(SORTIX_RELEASE_DIR)/$(RELEASE)/man/man$$section; done - for port in system `LC_ALL=C ls "$(SYSROOT)/tix/tixinfo"`; do \ + for port in `LC_ALL=C ls "$(SYSROOT)/tix/tixinfo"`; do \ for manpage in `grep -E "^/share/man/man[1-9]/.*\.[1-9]$$" "$(SYSROOT)/tix/manifest/$$port" | \ LC_ALL=C sort | \ tee $(SORTIX_RELEASE_DIR)/$(RELEASE)/man/$$port.list | \ @@ -612,8 +609,9 @@ $(SORTIX_RELEASE_DIR)/$(RELEASE)/repository/$(HOST): mkdir -p $@ .PHONY: release-repository -release-repository: sysroot $(SORTIX_RELEASE_DIR)/$(RELEASE)/repository/$(HOST) - for port in `LC_ALL=C ls "$(SYSROOT)/tix/tixinfo"`; do \ +release-repository: sysroot $(SYSTEM_INITRD) $(SORTIX_RELEASE_DIR)/$(RELEASE)/repository/$(HOST) + xz -c $(SYSTEM_INITRD) > $(SORTIX_RELEASE_DIR)/$(RELEASE)/repository/$(HOST)/system.tix.tar.xz + for port in `LC_ALL=C ls "$(SYSROOT)/tix/tixinfo" | (grep -Ev '^system$$' || true)`; do \ cp $(SORTIX_REPOSITORY_DIR)/$(HOST)/$$port.tix.tar.xz $(SORTIX_RELEASE_DIR)/$(RELEASE)/repository/$(HOST) && \ cp $(SORTIX_REPOSITORY_DIR)/$(HOST)/$$port.version $(SORTIX_RELEASE_DIR)/$(RELEASE)/repository/$(HOST); \ done diff --git a/build-aux/iso-grub-cfg.sh b/build-aux/iso-grub-cfg.sh index 420c6ed3..190031d6 100755 --- a/build-aux/iso-grub-cfg.sh +++ b/build-aux/iso-grub-cfg.sh @@ -114,10 +114,11 @@ kernel=$(maybe_compressed boot/sortix.bin) live_initrd=$(maybe_compressed boot/live.tar) overlay_initrd=$(maybe_compressed boot/overlay.tar) src_initrd=$(maybe_compressed boot/src.tar) -system_initrd=$(maybe_compressed boot/system.tar) +system_initrd=$(maybe_compressed repository/system.tix.tar) ports=$(ls repository | - grep -E '\.tix\.tar\.xz$' | - sed -E 's/\.tix\.tar\.xz$//') + grep -E '\.tix\.tar\.xz$' | + sed -E 's/\.tix\.tar\.xz$//' | + (grep -Ev '^system$' || true)) mkdir -p boot/grub mkdir -p boot/grub/init diff --git a/build-aux/manhtml.sh b/build-aux/manhtml.sh index 407e3d8f..03cce9bd 100755 --- a/build-aux/manhtml.sh +++ b/build-aux/manhtml.sh @@ -281,7 +281,7 @@ echo "Generating manhtml index" ep section "Ports manual pages" "ports" bp - cat ports.list | sort | + grep -Ev '^system$' ports.list | sort | while read port; do if [ -s "$port.list" ]; then link "$port.html" "$port" @@ -292,7 +292,7 @@ echo "Generating manhtml index" ep end_html) | finalize_html index.html -(echo system && cat ports.list) | +(echo system && grep -Ev '^system$' ports.list) | while read port; do echo "Generating manhtml index for $port" (if [ "$port" = system ]; then prettyport="System"; else prettyport=$port; fi diff --git a/share/man/man7/kernel.7 b/share/man/man7/kernel.7 index 3db231fb..29a4385d 100644 --- a/share/man/man7/kernel.7 +++ b/share/man/man7/kernel.7 @@ -83,11 +83,6 @@ The format of each multiboot module is automatically detected by default: .Xr tar 7 archives in the ustar format are extracted into the root directory. The bootloader must already have decompressed the archive. -If the archive contains the -.Pa tix/tixinfo -file, it is instead installed into the root directory as a -.Xr tix 7 -binary package. .El .Pp Each multiboot module has its own command line where the options are as follows: diff --git a/sysinstall/manifest.c b/sysinstall/manifest.c index 8da171b8..20155f2e 100644 --- a/sysinstall/manifest.c +++ b/sysinstall/manifest.c @@ -654,6 +654,8 @@ char** read_installed_list(const char* prefix, size_t* out_count) { if ( entry->d_name[0] == '.' ) continue; + if ( !strcmp(entry->d_name, "system") ) + continue; if ( !string_array_append(&installed, &count, &length, entry->d_name) ) { warn("malloc");