Add source code and additional files to releases.

This commit is contained in:
Jonas 'Sortie' Termansen 2024-07-16 00:00:34 +02:00
parent cb67d87b9f
commit 5b586bb65f
2 changed files with 52 additions and 4 deletions

View file

@ -57,6 +57,12 @@ SORTIX_ISO_COMPRESSION?=xz
SORTIX_PORTS_MIRROR?=https://pub.sortix.org/mirror
# TODO: Update development(7).
SORTIX_RELEASE_ADDITIONAL?=
SORTIX_RELEASE_MANHTML?=yes
SORTIX_RELEASE_SOURCE?=yes
SORTIX_INCLUDE_SOURCE_GIT_REPO?=$(shell test -d .git && echo "file://`pwd`")
SORTIX_INCLUDE_SOURCE_GIT_REPO:=$(SORTIX_INCLUDE_SOURCE_GIT_REPO)
SORTIX_INCLUDE_SOURCE_GIT_ORIGIN?=https://sortix.org/sortix.git
@ -270,7 +276,9 @@ else ifneq ($(SORTIX_INCLUDE_SOURCE),no)
cp README -t "$(SYSROOT)/src"
cp -RT build-aux "$(SYSROOT)/src/build-aux"
cp -RT share "$(SYSROOT)/src/share"
(for D in $(MODULES); do (cp -R $$D -t "$(SYSROOT)/src" && $(MAKE) -C "$(SYSROOT)/src/$$D" clean) || exit $$?; done)
cp -RT ports "$(SYSROOT)/src/ports"
(for D in $(MODULES); do cp -R $$D -t "$(SYSROOT)/src" || exit $$?; done)
$(MAKE) -C "$(SYSROOT)/src" distclean
endif
(cd "$(SYSROOT)" && find .) | sed 's/\.//' | \
grep -E '^/src(/.*)?$$' | \
@ -435,7 +443,7 @@ everything-all-archs:
.PHONY: release-all-archs
release-all-archs:
$(MAKE) clean clean-sysroot
$(MAKE) release HOST=i686-sortix
$(MAKE) release-arch HOST=i686-sortix
$(MAKE) clean clean-sysroot
$(MAKE) release HOST=x86_64-sortix
@ -633,16 +641,42 @@ release-man: $(SORTIX_RELEASE_DIR)/$(RELEASE)/man/ports.list
.PHONY: release-man-html
release-man-html: release-man
ifeq ($(SORTIX_RELEASE_MANHTML),yes)
RELEASE="$(RELEASE)" build-aux/manhtml.sh $(SORTIX_RELEASE_DIR)/$(RELEASE)/man
endif
.PHONY: release-readme
release-readme: $(SORTIX_RELEASE_DIR)/$(RELEASE)/README
.PHONY: release-additional
release-additional:
ifneq ($(SORTIX_RELEASE_ADDITIONAL),)
cp -RT $(SORTIX_RELEASE_ADDITIONAL) $(SORTIX_RELEASE_DIR)/$(RELEASE)
endif
.PHONY: release-arch
release-arch: release-builds release-readme release-repository
release-arch: release-builds release-repository
# Depend on sysroot-ports because sysroot-ports would race with mirror and the
# build must be offline if the local mirror is already populated.
.PHONY: release-source
ifeq ($(SORTIX_RELEASE_SOURCE),yes)
release-source: sysroot-source sysroot-ports
rm -rf $(SORTIX_RELEASE_DIR)/$(RELEASE)/source
mkdir -p $(SORTIX_RELEASE_DIR)/$(RELEASE)/source
cp -RT "$(SYSROOT)/src" $(SORTIX_RELEASE_DIR)/$(RELEASE)/source/sortix-$(RELEASE)
rm -rf $(SORTIX_RELEASE_DIR)/$(RELEASE)/source/sortix-$(RELEASE)/.git
cd $(SORTIX_RELEASE_DIR)/$(RELEASE)/source && tar -f sortix-$(RELEASE).tar.xz -cJ sortix-$(RELEASE)
mv $(SORTIX_RELEASE_DIR)/$(RELEASE)/source/sortix-$(RELEASE) $(SORTIX_RELEASE_DIR)/$(RELEASE)/source/sortix-$(RELEASE)-full
SORTIX_PORTS_MIRROR=`realpath $(SORTIX_MIRROR_DIR)` $(MAKE) -C $(SORTIX_RELEASE_DIR)/$(RELEASE)/source/sortix-$(RELEASE)-full mirror
cd $(SORTIX_RELEASE_DIR)/$(RELEASE)/source && tar -f sortix-$(RELEASE)-full.tar.xz -cJ sortix-$(RELEASE)-full
rm -rf $(SORTIX_RELEASE_DIR)/$(RELEASE)/source/sortix-$(RELEASE)-full
else
release-source:
endif
.PHONY: release-shared
release-shared: release-man release-man-html release-readme release-scripts
release-shared: release-man release-man-html release-readme release-scripts release-additional release-source
.PHONY: release
release: release-arch release-shared
@ -665,6 +699,7 @@ else
$(MAKE) verify-build HOST=i686-sortix
$(MAKE) verify-build HOST=x86_64-sortix
endif
$(MAKE) verify-sysroot-source
$(MAKE) verify-headers
@echo ok
@ -681,6 +716,14 @@ verify-build-tools:
$(MAKE) clean-build-tools
$(MAKE) OPTLEVEL='-O2 -g -Werror -Werror=strict-prototypes' build-tools
verify-sysroot-source:
$(MAKE) clean-sysroot
$(MAKE) sysroot-source SORTIX_INCLUDE_SOURCE=yes
git ls-files | sort > "$(SYSROOT)/src.want"
(cd "$(SYSROOT)/src" && find '!' -type d | sort | sed -E 's,^\./,,') > "$(SYSROOT)/src.got"
diff -u "$(SYSROOT)/src.want" "$(SYSROOT)/src.got"
rm -f "$(SYSROOT)/src.want" "$(SYSROOT)/src.got"
verify-build:
$(MAKE) mostlyclean
$(MAKE) OPTLEVEL='-O2 -g -Werror -Werror=strict-prototypes' PACKAGES=''

View file

@ -152,6 +152,8 @@ the build tools compile
.Sy ( verify-build-tools ) ,
that everything compiles without warnings on all architectures
.Sy ( verify-build ) ,
the sysroot-source target includes all the sources
.Sy ( verify-sysroot-source ) ,
and the system headers works in all supported configurations
.Sy ( verify-headers ) .
.It Sy release
@ -258,6 +260,9 @@ and defaults to
Upstream releases of ports are downloaded from this mirror, defaulting to the
official mirror, and falling back to the upstream release site if the mirror
failed.
.It Ev SORTIX_RELEASE_ADDITIONAL
Optionally can be set to a directory that contains addition files that are
copied into the release directory.
.El
.Ss Components
The operating systems components, such as libc and the kernel, each have their