.gitignore include_rules ifndef SCULPT_VERSION error CONFIG_SCULPT_VERSION is undefined endif ifndef PUBLIC_USER error CONFIG_PUBLIC_USER is undefined endif SHORT_SUM = b2sum -l24 : $(DEPOT_DIR)/ $(DEPOT_DIR)/ |> \ for f in % %; do \ awk -F '/' '{print "s|local/"$2"/"$3"/current|@(PUBLIC_USER)/"$2"/"$3"/"$4"|"}' $f >> %o; done; \ |> $(VERSIONS_SED_FILE) # Generate a listing of all raw archives : $(DEPOT_DIR)/ |> \ touch %o; \ for f in %; do cat $f >> %o; done; \ |> $(RAW_LISTING) # Generate a listing of all raw archives : $(DEPOT_DIR)/ |> \ for f in %; do tail -n1 $f >> %o; done; \ |> $(BIN_LISTING) # Generate a listing of all binary archives : $(DEPOT_DIR)/ |> ^ generate package version sed script^ \ for d in `dirname % | tr ' ' '\n' | sort -u`; do \ echo $d/`cat $d/.ARCHIVES $d/runtime | $(SHORT_SUM)` | awk -F '/' \ '{print "s|local/pkg/"$3"/current|@(PUBLIC_USER)/pkg/"$3"/"substr($5,0,6)"|"}' >> %o; \ done \ |> $(PKG_SED_FILE) # Generate sed commands for replacing package versions : $(DEPOT_DIR)/ $(DEPOT_DIR)/ $(PKG_SED_FILE) |> \ ^ generate public makefile^ \ echo PUBLIC_USER=@(PUBLIC_USER) >> %o; \ echo PUBLIC_ARCH=@(TUP_ARCH) >> %o; \ echo "all: public/@(PUBLIC_USER)/index/@(SCULPT_VERSION).xz.sig" >> %o; \ echo %%.xz.sig: %%.xz >> %o; \ echo " @echo sign \$<" >> %o; \ echo " @gpg --detach-sign --digest-algo SHA256 --no-tty --local-user @(PUBLIC_KEY) < \$< > tmp" >> %o; \ echo " @mv tmp \$@" >> %o; \ for f in %; do \ awk -F '/' -f errata/raw.mk.awk $f >> %o; done; \ for f in %; do \ awk -F '/' -f errata/bin.mk.awk $f >> %o; done; \ awk -F '/' -f errata/pkg.mk.awk $(PKG_SED_FILE) >> %o; \ |> Makefile # Generate the makefile for creating signed package tarballs AWK_RUNTIME_PATH = awk -v RS=' ' -F '/' \ '/runtime/ {print " "}' : $(DEPOT_DIR)/ |> ^ generate local index^ \ echo '' > %o; \ echo % | $(AWK_RUNTIME_PATH) | sort >> %o; \ echo '' >> %o |> $(DEPOT_DIR)/index/@(SCULPT_VERSION) # Generate the depot index file : index.dhall | $(DEPOT_DIR)/index/ |> \ !dhall text < %f | xmllint --format - | xz > %o \ |> public/@(PUBLIC_USER)/index/@(SCULPT_VERSION).xz