-RELEASE=4.0
+include /usr/share/dpkg/default.mk
-# source from http://www.corosync.org
+PACKAGE=corosync
-CSVERSION=2.3.4
-CSRELEASE=1
-CSDIR=corosync-${CSVERSION}
-CSSRC=corosync-${CSVERSION}.tar.gz
+CSVERSION=$(DEB_VERSION_UPSTREAM)
-ARCH:=$(shell dpkg-architecture -qDEB_BUILD_ARCH)
-GITVERSION:=$(shell cat .git/refs/heads/master)
+BUILDDIR=$(PACKAGE)-$(CSVERSION)
+ORIG_SRC_TAR=$(PACKAGE)_$(DEB_VERSION_UPSTREAM).orig.tar.gz
+CSSRC=upstream
-DEBS= \
- corosync-pve_${CSVERSION}-${CSRELEASE}_${ARCH}.deb \
- libcorosync4-pve_${CSVERSION}-${CSRELEASE}_${ARCH}.deb \
- libcorosync-pve-dev_${CSVERSION}-${CSRELEASE}_${ARCH}.deb
+GITVERSION:=$(shell git rev-parse HEAD)
-all: ${DEBS}
- echo ${DEBS}
+DSC=$(PACKAGE)_$(DEB_VERSION).dsc
+MAIN_DEB=corosync_$(DEB_VERSION)_$(DEB_BUILD_ARCH).deb \
-${DEBS}: ${CSSRC}
- echo ${DEBS}
- rm -rf ${CSDIR}
- tar xf ${CSSRC}
- cp -a debian ${CSDIR}/debian
- echo "git clone git://git.proxmox.com/git/corosync-pve.git\\ngit checkout ${GITVERSION}" > ${CSDIR}/debian/SOURCE
+OTHER_DEBS=\
+corosync-notifyd_$(DEB_VERSION)_$(DEB_BUILD_ARCH).deb \
+corosync-doc_$(DEB_VERSION)_all.deb \
+libcfg7_$(DEB_VERSION)_$(DEB_BUILD_ARCH).deb \
+libcmap4_$(DEB_VERSION)_$(DEB_BUILD_ARCH).deb \
+libcorosync-common4_$(DEB_VERSION)_$(DEB_BUILD_ARCH).deb \
+libcpg4_$(DEB_VERSION)_$(DEB_BUILD_ARCH).deb \
+libquorum5_$(DEB_VERSION)_$(DEB_BUILD_ARCH).deb \
+libsam4_$(DEB_VERSION)_$(DEB_BUILD_ARCH).deb \
+libvotequorum8_$(DEB_VERSION)_$(DEB_BUILD_ARCH).deb \
+libcfg-dev_$(DEB_VERSION)_$(DEB_BUILD_ARCH).deb \
+libcmap-dev_$(DEB_VERSION)_$(DEB_BUILD_ARCH).deb \
+libcorosync-common-dev_$(DEB_VERSION)_$(DEB_BUILD_ARCH).deb \
+libcpg-dev_$(DEB_VERSION)_$(DEB_BUILD_ARCH).deb \
+libquorum-dev_$(DEB_VERSION)_$(DEB_BUILD_ARCH).deb \
+libsam-dev_$(DEB_VERSION)_$(DEB_BUILD_ARCH).deb \
+libvotequorum-dev_$(DEB_VERSION)_$(DEB_BUILD_ARCH).deb \
- cd ${CSDIR}; dpkg-buildpackage -rfakeroot -b -us -uc
+DBG_DEBS=\
+corosync-dbgsym_$(DEB_VERSION)_$(DEB_BUILD_ARCH).deb \
+corosync-notifyd-dbgsym_$(DEB_VERSION)_$(DEB_BUILD_ARCH).deb \
+libcfg7-dbgsym_$(DEB_VERSION)_$(DEB_BUILD_ARCH).deb \
+libcmap4-dbgsym_$(DEB_VERSION)_$(DEB_BUILD_ARCH).deb \
+libcorosync-common4-dbgsym_$(DEB_VERSION)_$(DEB_BUILD_ARCH).deb \
+libcpg4-dbgsym_$(DEB_VERSION)_$(DEB_BUILD_ARCH).deb \
+libquorum5-dbgsym_$(DEB_VERSION)_$(DEB_BUILD_ARCH).deb \
+libsam4-dbgsym_$(DEB_VERSION)_$(DEB_BUILD_ARCH).deb \
+libvotequorum8-dbgsym_$(DEB_VERSION)_$(DEB_BUILD_ARCH).deb \
-.PHONY: download
-download:
- rm -f ${CSSRC}
- wget http://build.clusterlabs.org/corosync/releases/${CSSRC}
+DEBS=$(MAIN_DEB) $(OTHER_DEBS) $(DBG_DEBS)
-.PHONY: upload
-upload: ${DEBS}
- umount /pve/${RELEASE}; mount /pve/${RELEASE} -o rw
- mkdir -p /pve/${RELEASE}/extra
- rm -f /pve/${RELEASE}/extra/corosync*.deb
- rm -f /pve/${RELEASE}/extra/libcorosync*.deb
- rm -f /pve/${RELEASE}/extra/Packages*
- cp ${DEBS} /pve/${RELEASE}/extra
- cd /pve/${RELEASE}/extra; dpkg-scanpackages . /dev/null > Packages; gzip -9c Packages > Packages.gz
- umount /pve/${RELEASE}; mount /pve/${RELEASE} -o ro
+all: $(DEBS)
+ echo $(DEBS)
-distclean: clean
+$(BUILDDIR): submodule debian/changelog
+ rm -rf $@ $@.tmp
+ cp -a $(CSSRC) $@.tmp
+ cp -a debian $@.tmp
+ mv $@.tmp $@
+
+.PHONY: deb
+deb: $(DEBS)
+$(OTHER_DEBS) $(DBG_DEBS): $(MAIN_DEB)
+$(MAIN_DEB): $(BUILDDIR)
+ cd $(BUILDDIR); dpkg-buildpackage -b -us -uc
+
+$(ORIG_SRC_TAR): $(BUILDDIR)
+ tar czf $(ORIG_SRC_TAR) --exclude="$(BUILDDIR)/debian" $(BUILDDIR)
+
+.PHONY: dsc
+dsc: $(DSC)
+$(DSC): $(ORIG_SRC_TAR) $(BUILDDIR)
+ cd $(BUILDDIR); dpkg-buildpackage -S -us -uc -d
+ lintian $(DSC)
+
+sbuild: $(DSC)
+ sbuild $(DSC)
+
+.PHONY: submodule
+submodule:
+ test -f "$(CSSRC)/INSTALL" || git submodule update --init $(CSSRC)
+
+.PHONY: upload
+upload: UPLOAD_DIST ?= $(DEB_DISTRIBUTION)
+upload: $(DEBS)
+ tar cf - $(DEBS) | ssh -X repoman@repo.proxmox.com -- upload --product pve --dist $(UPLOAD_DIST) --arch $(DEB_BUILD_ARCH)
.PHONY: clean
+distclean: clean
clean:
- rm -rf *_${ARCH}.deb *.changes *.dsc ${CSDIR} corosync_${CSVERSION}-${CSRELEASE}.tar.gz
+ rm -rf *.deb *.changes *.dsc *.buildinfo *.build $(PACKAGE)-[0-9]*/ *.tar.?z
.PHONY: dinstall
-dinstall: ${DEBS}
- dpkg -i ${DEBS}
+dinstall: $(DEBS)
+ dpkg -i $(DEBS)