aboutsummaryrefslogblamecommitdiff
path: root/release/Makefile.mirrors
blob: 8856389979d1aa0389b1ac8c3ad7709450ab469a (plain) (tree)
1
2
3
4
5
6
7
8
9
10
11






                                                                   



                                                     



                              
                          
                                               
                         
                                        
      
 
                                                                                                              
                                                                                       
                         
       

      
          
                                                                                                           

                                           
                                           
                                    
      
                                                          





                                          
                                         
                                                                                                                    
                                                                                                             

                         
                           


                   




                                                                             




                                                                             




                                                                              
                                        
                                     



                                                                              


                        


                                              
                                         
                                            

                                           







                                                                                                                          

                                                  

                                          
                                                    

                                                                  

                                             
                                                                                                          

                                                     

                                             
                                                       

                                                                     

                                             
                                                                                                             

                      
                                            

                                           
                                                            
                                                                             

                                                                                           


                                                                                                                                   
                      
                                                            
                                                                

                                                                              
                                             
                       
                                                                                                                      




                                           




                                                                                                           

                                                  





                                                                                           

                                                     




                                                                                              

                      
                                            

                                           






                                                                                                                    
                      
                                                            
                                                 




                                                                                                       



                             
                           
                                                                           
                                                

                                                


                                                            
      

                







                                         









                                                                                        
        




                                                      







                                                                                              
            
           


         















                                                                                  



                                                                        
        




                                                      

                                                                              
            
           


         




                                                           
 




















                                                                                              
























                                                                                  








                                                           















































                                                                                               
                                                
 
#
# This Makefile helps create the directory structure on ftp-master,
# making staging builds a bit more sane.
#
# You probably do not want to use this.  Really.
# You have been warned.
#
# Seriously.
#
# Don't use this unless you know why you're using it.
#
#

.include "${.CURDIR}/Makefile"

RELEASEDIR?=		/R
FTPDIR?=		${RELEASEDIR}/ftp-stage
.if exists(${RELEASEDIR})
STAGE_TARGETS?=		iso-images-stage
.endif

.if (defined(EMBEDDED_TARGET) && !empty(EMBEDDED_TARGET)) || (defined(EMBEDDEDBUILD) && !empty(EMBEDDEDBUILD))
. if ${TARGET:Marm*} != "" || ${EMBEDDED_TARGET:Marm*} != "" || ${TARGET:Mriscv*} != ""
EMBEDDED=		1
. endif
.endif

# snapshot
.if ${BRANCH} == "STABLE" || ${BRANCH} == "CURRENT" || ${BRANCH} == "PRERELEASE" || ${BRANCH:MALPHA*} != ""
SNAPSHOT=		1
TLD?=			${FTPDIR}/snapshots
.if !defined(BUILDDATE) || empty(BUILDDATE)
BUILDDATE!=		date +%Y%m%d
.endif
_SNAP_SUFFIX:=		${BUILDDATE}-${GITREV}-${GITCOUNT}
.else
# release
SNAPSHOT=
TLD?=			${FTPDIR}/releases
.endif

.if defined(EMBEDDED) && !empty(EMBEDDED)
. if ${TARGET:Marm*} != "" && (${TARGET_ARCH:Marm*} != "" || ${TARGET_ARCH} == "aarch64") || ${TARGET:Mriscv*} != ""
.  if ${BRANCH} == "STABLE" || ${BRANCH} == "CURRENT" || ${BRANCH} == "PRERELEASE" || ${BRANCH:MALPHA*} != ""
SNAPSHOT=		1
.  endif
IMAGES:=		img
. endif # arm/armv6
.endif # embedded

.if defined(WITH_VMIMAGES) && !empty(WITH_VMIMAGES)
STAGE_TARGETS+=		vm-images-stage
VM_DIR=			${TLD}/VM-IMAGES/${REVISION}-${BRANCH}/${TARGET_ARCH}
.endif

.if defined(WITH_CLOUDWARE) && !empty(WITH_CLOUDWARE)
STAGE_TARGETS+=		ci-images-stage
CI_DIR=			${TLD}/CI-IMAGES/${REVISION}-${BRANCH}/${TARGET_ARCH}
.endif

.if defined(WITH_OCIIMAGES) && !empty(WITH_OCIIMAGES)
STAGE_TARGETS+=		oci-images-stage
OCI_DIR=		${TLD}/OCI-IMAGES/${REVISION}-${BRANCH}/${TARGET_ARCH}
.endif

CLEANFILES+=		${STAGE_TARGETS}
CHECKSUM_FILES?=	SHA512 SHA256
SNAP_SUFFIX!=		echo ${_SNAP_SUFFIX:S,^-,,1} | tr -d ' '
ISO_DIR=		${TLD}/${TARGET}/${TARGET_ARCH}/ISO-IMAGES/${REVISION}
FTP_DIR=		${TLD}/${TARGET}/${TARGET_ARCH}/${REVISION}-${BRANCH}

remove-old-bits:
	rm -rf ${FTPDIR}

iso-images-stage:
	mkdir -p ${ISO_DIR}
	mkdir -p ${TLD}/ISO-IMAGES/${REVISION}
.if defined(SNAPSHOT) && !empty(SNAPSHOT)
	cd ${RELEASEDIR} && rm -f CHECKSUM.*
. for IMAGE in ${IMAGES}
.  if defined(EMBEDDED) && !empty(EMBEDDED)
	cd ${RELEASEDIR} && \
		mv ${OSRELEASE}-${BOARDNAME}.${IMAGE}.xz \
		${OSRELEASE}-${BOARDNAME}-${SNAP_SUFFIX}.${IMAGE}.xz
	cp -p ${RELEASEDIR}/${OSRELEASE}-${BOARDNAME}-${SNAP_SUFFIX}.${IMAGE}.xz \
		${ISO_DIR}/${OSRELEASE}-${BOARDNAME}-${SNAP_SUFFIX}.${IMAGE}.xz
	cd ${TLD}/ISO-IMAGES/${REVISION} && \
		ln -s \
		../../${TARGET}/${TARGET_ARCH}/ISO-IMAGES/${REVISION}/${OSRELEASE}-${BOARDNAME}-${SNAP_SUFFIX}.${IMAGE}.xz
.  endif # not embedded
.   if exists(${RELEASEDIR}/${OSRELEASE}-${IMAGE})
	cd ${RELEASEDIR} && \
		mv ${OSRELEASE}-${IMAGE} \
		${OSRELEASE}-${SNAP_SUFFIX}-${IMAGE}
	cp -p ${RELEASEDIR}/${OSRELEASE}-${SNAP_SUFFIX}-${IMAGE} \
		${ISO_DIR}/${OSRELEASE}-${SNAP_SUFFIX}-${IMAGE}
	cd ${TLD}/ISO-IMAGES/${REVISION} && \
		ln -s \
		../../${TARGET}/${TARGET_ARCH}/ISO-IMAGES/${REVISION}/${OSRELEASE}-${SNAP_SUFFIX}-${IMAGE}
.   endif
.   if exists(${RELEASEDIR}/${OSRELEASE}-${IMAGE}.xz)
	cd ${RELEASEDIR} && \
		mv ${OSRELEASE}-${IMAGE}.xz \
		${OSRELEASE}-${SNAP_SUFFIX}-${IMAGE}.xz
	cp -p ${RELEASEDIR}/${OSRELEASE}-${SNAP_SUFFIX}-${IMAGE}.xz \
		${ISO_DIR}/${OSRELEASE}-${SNAP_SUFFIX}-${IMAGE}.xz
	cd ${TLD}/ISO-IMAGES/${REVISION} && \
		ln -s \
		../../${TARGET}/${TARGET_ARCH}/ISO-IMAGES/${REVISION}/${OSRELEASE}-${SNAP_SUFFIX}-${IMAGE}.xz
.   endif
. endfor # images loop
	cd ${RELEASEDIR} && rm -f CHECKSUM.*
. for CHECKSUM in ${CHECKSUM_FILES}
.  if defined(EMBEDDED) && !empty(EMBEDDED)
	cd ${RELEASEDIR} && ${CHECKSUM:tl} ${OSRELEASE}* > \
		CHECKSUM.${CHECKSUM}-${OSRELEASE}-${BOARDNAME}-${SNAP_SUFFIX}
	cp -p ${RELEASEDIR}/CHECKSUM.${CHECKSUM}-${OSRELEASE}-${BOARDNAME}-${SNAP_SUFFIX} \
		${ISO_DIR}/CHECKSUM.${CHECKSUM}-${OSRELEASE}-${BOARDNAME}-${SNAP_SUFFIX}
	cd ${TLD}/ISO-IMAGES/${REVISION} && \
		ln -s \
		../../${TARGET}/${TARGET_ARCH}/ISO-IMAGES/${REVISION}/CHECKSUM.${CHECKSUM}-${OSRELEASE}-${BOARDNAME}-${SNAP_SUFFIX}
.  else # not embedded
	cd ${RELEASEDIR} && ${CHECKSUM:tl} ${OSRELEASE}* > \
		CHECKSUM.${CHECKSUM}-${OSRELEASE}-${SNAP_SUFFIX}
	cp -p ${RELEASEDIR}/CHECKSUM.${CHECKSUM}-${OSRELEASE}-${SNAP_SUFFIX} \
		${ISO_DIR}/CHECKSUM.${CHECKSUM}-${OSRELEASE}-${SNAP_SUFFIX}
	cd ${TLD}/ISO-IMAGES/${REVISION} && \
		ln -s \
		../../${TARGET}/${TARGET_ARCH}/ISO-IMAGES/${REVISION}/CHECKSUM.${CHECKSUM}-${OSRELEASE}-${SNAP_SUFFIX}
.  endif #
. endfor # checksum files
.else # not snapshot
. for IMAGE in ${IMAGES}
.  if defined(EMBEDDED) && !empty(EMBEDDED)
	cp -p ${RELEASEDIR}/${OSRELEASE}-${BOARDNAME}.${IMAGE}.xz \
		${ISO_DIR}/${OSRELEASE}-${BOARDNAME}.${IMAGE}.xz
	cd ${TLD}/ISO-IMAGES/${REVISION} && \
		ln -s \
		../../${TARGET}/${TARGET_ARCH}/ISO-IMAGES/${REVISION}/${OSRELEASE}-${BOARDNAME}.${IMAGE}.xz
.  endif # not embedded
.   if exists(${RELEASEDIR}/${OSRELEASE}-${IMAGE})
	cd ${RELEASEDIR} && \
	cp -p ${RELEASEDIR}/${OSRELEASE}-${IMAGE} \
		${ISO_DIR}/${OSRELEASE}-${IMAGE}
	cd ${TLD}/ISO-IMAGES/${REVISION} && \
		ln -s \
		../../${TARGET}/${TARGET_ARCH}/ISO-IMAGES/${REVISION}/${OSRELEASE}-${IMAGE}
.   endif
.   if exists(${RELEASEDIR}/${OSRELEASE}-${IMAGE}.xz)
	cp -p ${RELEASEDIR}/${OSRELEASE}-${IMAGE}.xz \
		${ISO_DIR}/${OSRELEASE}-${IMAGE}.xz
	cd ${TLD}/ISO-IMAGES/${REVISION} && \
		ln -s \
		../../${TARGET}/${TARGET_ARCH}/ISO-IMAGES/${REVISION}/${OSRELEASE}-${IMAGE}.xz
.   endif
. endfor # images loop
	cd ${RELEASEDIR} && rm -f CHECKSUM.*
. for CHECKSUM in ${CHECKSUM_FILES}
.  if defined(EMBEDDED) && !empty(EMBEDDED)
	cd ${RELEASEDIR} && ${CHECKSUM:tl} ${OSRELEASE}* > \
		CHECKSUM.${CHECKSUM}-${OSRELEASE}-${BOARDNAME}
	cp -p ${RELEASEDIR}/CHECKSUM.${CHECKSUM}-${OSRELEASE}-${BOARDNAME} \
		${ISO_DIR}/CHECKSUM.${CHECKSUM}-${OSRELEASE}-${BOARDNAME}
	cd ${TLD}/ISO-IMAGES/${REVISION} && \
		ln -s \
		../../${TARGET}/${TARGET_ARCH}/ISO-IMAGES/${REVISION}/CHECKSUM.${CHECKSUM}-${OSRELEASE}-${BOARDNAME}
.  else # not embedded
	cd ${RELEASEDIR} && ${CHECKSUM:tl} ${OSRELEASE}* > \
		CHECKSUM.${CHECKSUM}-${OSRELEASE}
	cp -p ${RELEASEDIR}/CHECKSUM.${CHECKSUM}-${OSRELEASE} \
		${ISO_DIR}/CHECKSUM.${CHECKSUM}-${OSRELEASE}
	cd ${TLD}/ISO-IMAGES/${REVISION} && \
		ln -s \
		../../${TARGET}/${TARGET_ARCH}/ISO-IMAGES/${REVISION}/CHECKSUM.${CHECKSUM}-${OSRELEASE}
.  endif
. endfor # checksum files
.endif # release
.if exists(${RELEASEDIR}/ftp)
	mkdir -p ${FTP_DIR}
	cp -p ${RELEASEDIR}/ftp/*.txz ${RELEASEDIR}/ftp/MANIFEST ${FTP_DIR}
	echo ${BUILDDATE} > ${FTP_DIR}/BUILDDATE
	echo ${GITBRANCH} > ${FTP_DIR}/GITBRANCH
	echo ${GITREV} > ${FTP_DIR}/REVISION
	cd ${TLD}/${TARGET} && \
		ln -s ${TARGET_ARCH}/${REVISION}-${BRANCH} \
			${REVISION}-${BRANCH}
.endif

vm-images-stage:
	mkdir -p ${VM_DIR}
.if defined(SNAPSHOT) && !empty(SNAPSHOT)
. if exists(${VM_DIR}/Latest)
	rm -rf ${VM_DIR}/Latest
. endif
	mkdir -p ${VM_DIR}/Latest
	mkdir -p ${VM_DIR}/${BUILDDATE}
. for VMFORMAT in ${VMFORMATS}
.  for FS in ${VMFSLIST}
	cd ${RELEASEDIR}/vmimages && \
		mv ${OSRELEASE}-${FS}.${VMFORMAT}.xz \
		${OSRELEASE}-${FS}-${SNAP_SUFFIX}.${VMFORMAT}.xz
	cp -p ${RELEASEDIR}/vmimages/${OSRELEASE}-${FS}-${SNAP_SUFFIX}.${VMFORMAT}.xz \
		${VM_DIR}/${BUILDDATE}/${OSRELEASE}-${FS}-${SNAP_SUFFIX}.${VMFORMAT}.xz
	cd ${VM_DIR}/Latest && \
		ln -s ../${BUILDDATE}/${OSRELEASE}-${FS}-${SNAP_SUFFIX}.${VMFORMAT}.xz \
		${OSRELEASE}-${FS}.${VMFORMAT}.xz
.  endfor
. endfor
. if defined(WITH_CLOUDWARE) && !empty(WITH_CLOUDWARE)
.  for CW in ${CLOUDWARE}
.   if ${CW} == BASIC-CLOUDINIT
.    for VMFORMAT in ${${CW}_FORMAT}
.     for FS in ${${CW}_FSLIST}
	cd ${RELEASEDIR}/vmimages && \
		mv ${OSRELEASE}-${CW}.${FS}.${VMFORMAT}.xz \
		${OSRELEASE}-${CW}-${SNAP_SUFFIX}.${FS}.${VMFORMAT}.xz
	cp -p ${RELEASEDIR}/vmimages/${OSRELEASE}-${CW}-${SNAP_SUFFIX}.${FS}.${VMFORMAT}.xz \
		${VM_DIR}/${BUILDDATE}/${OSRELEASE}-${CW}-${SNAP_SUFFIX}.${FS}.${VMFORMAT}.xz
	cd ${VM_DIR}/Latest && \
		ln -s ../${BUILDDATE}/${OSRELEASE}-${CW}-${SNAP_SUFFIX}.${FS}.${VMFORMAT}.xz \
		${OSRELEASE}-${CW}.${FS}.${VMFORMAT}.xz
.     endfor
.    endfor
.   endif
.  endfor
. endif
	cd ${RELEASEDIR}/vmimages && rm -f CHECKSUM.*
. for CHECKSUM in ${CHECKSUM_FILES}
	cd ${RELEASEDIR}/vmimages && \
		${CHECKSUM:tl} ${OSRELEASE}* > CHECKSUM.${CHECKSUM}-${SNAP_SUFFIX}
	cp -p ${RELEASEDIR}/vmimages/CHECKSUM.${CHECKSUM}-${SNAP_SUFFIX} \
		${VM_DIR}/${BUILDDATE}/CHECKSUM.${CHECKSUM}-${SNAP_SUFFIX}
	cd ${VM_DIR}/Latest && \
		ln -s ../${BUILDDATE}/CHECKSUM.${CHECKSUM}-${SNAP_SUFFIX} \
		CHECKSUM.${CHECKSUM}
. endfor
.else # not snapshot
. if exists(${VM_DIR}/Latest)
	rm -rf ${VM_DIR}/Latest
. endif
	mkdir -p ${VM_DIR}/Latest
. for VMFORMAT in ${VMFORMATS}
.  for FS in ${VMFSLIST}
	cp -p ${RELEASEDIR}/vmimages/${OSRELEASE}-${FS}.${VMFORMAT}.xz \
		${VM_DIR}/Latest/${OSRELEASE}-${FS}.${VMFORMAT}.xz
.  endfor
. endfor
. if defined(WITH_CLOUDWARE) && !empty(WITH_CLOUDWARE)
.  for CW in ${CLOUDWARE}
.   if ${CW} == BASIC-CLOUDINIT
.    for VMFORMAT in ${${CW}_FORMAT}
.     for FS in ${${CW}_FSLIST}
	cp -p ${RELEASEDIR}/vmimages/${OSRELEASE}-${CW}.${FS}.${VMFORMAT}.xz \
		${VM_DIR}/Latest/${OSRELEASE}-${CW}.${FS}.${VMFORMAT}.xz
.     endfor
.    endfor
.   endif
.  endfor
. endif
. for CHECKSUM in ${CHECKSUM_FILES}
	cp -p ${RELEASEDIR}/vmimages/CHECKSUM.${CHECKSUM} \
		${VM_DIR}/Latest/CHECKSUM.${CHECKSUM}
. endfor
.endif

ci-images-stage:
	mkdir -p ${CI_DIR}
.if defined(SNAPSHOT) && !empty(SNAPSHOT)
. if exists(${CI_DIR}/Latest)
	rm -rf ${CI_DIR}/Latest
. endif
	mkdir -p ${CI_DIR}/Latest
	mkdir -p ${CI_DIR}/${BUILDDATE}
. for CW in ${CLOUDWARE}
.  if ${CW} == BASIC-CI
.   for VMFORMAT in ${${CW}_FORMAT}
.    for FS in ${${CW}_FSLIST}
	cd ${RELEASEDIR}/ciimages && \
		mv ${OSRELEASE}-${CW}-${FS}.${VMFORMAT}.xz \
		${OSRELEASE}-${CW}-${SNAP_SUFFIX}.${FS}.${VMFORMAT}.xz
	cp -p ${RELEASEDIR}/ciimages/${OSRELEASE}-${CW}-${SNAP_SUFFIX}.${FS}.${VMFORMAT}.xz \
		${CI_DIR}/${BUILDDATE}/${OSRELEASE}-${CW}-${SNAP_SUFFIX}.${FS}.${VMFORMAT}.xz
	cd ${CI_DIR}/Latest && \
		ln -s ../${BUILDDATE}/${OSRELEASE}-${CW}-${SNAP_SUFFIX}.${FS}.${VMFORMAT}.xz \
		${OSRELEASE}-${CW}.${FS}.${VMFORMAT}.xz
.    endfor
.   endfor
.  endif
. endfor
	cd ${RELEASEDIR}/ciimages && rm -f CHECKSUM.*
. for CHECKSUM in ${CHECKSUM_FILES}
	cd ${RELEASEDIR}/ciimages && \
		${CHECKSUM:tl} ${OSRELEASE}* > CHECKSUM.${CHECKSUM}-${SNAP_SUFFIX}
	cp -p ${RELEASEDIR}/ciimages/CHECKSUM.${CHECKSUM}-${SNAP_SUFFIX} \
		${CI_DIR}/${BUILDDATE}/CHECKSUM.${CHECKSUM}-${SNAP_SUFFIX}
	cd ${CI_DIR}/Latest && \
		ln -s ../${BUILDDATE}/CHECKSUM.${CHECKSUM}-${SNAP_SUFFIX} \
		CHECKSUM.${CHECKSUM}
. endfor
.else # not snapshot
. if exists(${CI_DIR}/Latest)
	rm -rf ${CI_DIR}/Latest
. endif
	mkdir -p ${CI_DIR}/Latest
. for CW in ${CLOUDWARE}
.  if ${CW} == BASIC-CI
.   for VMFORMAT in ${${CW}_FORMAT}
.    for FS in ${${CW}_FSLIST}
	cp -p ${RELEASEDIR}/ciimages/${OSRELEASE}-${CW}-${FS}.${VMFORMAT}.xz \
		${CI_DIR}/Latest/${OSRELEASE}-${CW}.${FS}.${VMFORMAT}.xz
.    endfor
.   endfor
.  endif
. endfor
. for CHECKSUM in ${CHECKSUM_FILES}
	cp -p ${RELEASEDIR}/ciimages/CHECKSUM.${CHECKSUM} \
		${CI_DIR}/Latest/CHECKSUM.${CHECKSUM}
. endfor
.endif

oci-images-stage:
	mkdir -p ${OCI_DIR}
.if defined(SNAPSHOT) && !empty(SNAPSHOT)
. if exists(${OCI_DIR}/Latest)
	rm -rf ${OCI_DIR}/Latest
. endif
	mkdir -p ${OCI_DIR}/Latest
	mkdir -p ${OCI_DIR}/${BUILDDATE}
. for _IMG in ${OCI_IMAGES}
	cd ${RELEASEDIR}/ociimages && \
		mv container-image-${_IMG}.txz \
		${OSRELEASE}-container-image-${SNAP_SUFFIX}-${_IMG}.txz
	cp ${RELEASEDIR}/ociimages/${OSRELEASE}-container-image-${SNAP_SUFFIX}-${_IMG}.txz \
		${OCI_DIR}/${BUILDDATE}/${OSRELEASE}-container-image-${SNAP_SUFFIX}-${_IMG}.txz
	cd ${OCI_DIR}/Latest && \
		ln -s ../${BUILDDATE}/${OSRELEASE}-container-image-${SNAP_SUFFIX}-${_IMG}.txz \
		${OSRELEASE}-container-image-${_IMG}.txz
. endfor
	cd ${RELEASEDIR}/ociimages && rm -f CHECKSUM.*
. for CHECKSUM in ${CHECKSUM_FILES}
	cd ${RELEASEDIR}/ociimages && \
		${CHECKSUM:tl} ${OSRELEASE}* > CHECKSUM.${CHECKSUM}-${SNAP_SUFFIX}
	cp -p ${RELEASEDIR}/ociimages/CHECKSUM.${CHECKSUM}-${SNAP_SUFFIX} \
		${OCI_DIR}/${BUILDDATE}/CHECKSUM.${CHECKSUM}-${SNAP_SUFFIX}
	cd ${OCI_DIR}/Latest && \
		ln -s ../${BUILDDATE}/CHECKSUM.${CHECKSUM}-${SNAP_SUFFIX} \
		CHECKSUM.${CHECKSUM}
. endfor
.else # not snapshot
. if exists(${OCI_DIR}/Latest)
	rm -rf ${OCI_DIR}/Latest
. endif
	mkdir -p ${OCI_DIR}/Latest
. for _IMG in ${OCI_IMAGES}
	cd ${RELEASEDIR}/ociimages && \
		mv container-image-${_IMG}.txz \
		${OSRELEASE}-container-image-${_IMG}.txz
	cp ${RELEASEDIR}/ociimages/${OSRELEASE}-container-image-${_IMG}.txz \
		${OCI_DIR}/Latest/${OSRELEASE}-container-image-${_IMG}.txz
. endfor
. for CHECKSUM in ${CHECKSUM_FILES}
	cd ${RELEASEDIR}/ociimages && \
		${CHECKSUM:tl} ${OSRELEASE}* > CHECKSUM.${CHECKSUM}-${SNAP_SUFFIX}
	cp -p ${RELEASEDIR}/ociimages/CHECKSUM.${CHECKSUM}-${SNAP_SUFFIX} \
		${OCI_DIR}/Latest/CHECKSUM.${CHECKSUM}
. endfor
.endif

ftp-stage:	remove-old-bits ${STAGE_TARGETS}