-RELEASE=4.1
-
# source form https://github.com/zfsonlinux/
-ZFSVER=0.6.5.7
-ZFSPKGREL=pve10~bpo80
-SPLPKGREL=pve6~bpo80
-ZFSPKGVER=${ZFSVER}-${ZFSPKGREL}
-SPLPKGVER=${ZFSVER}-${SPLPKGREL}
+ZFSPKG=debian
+ZFSVER != dpkg-parsechangelog -l ${ZFSPKG}/changelog -Sversion | cut -d- -f1
+ZFSPKGVER != dpkg-parsechangelog -l ${ZFSPKG}/changelog -Sversion
+ZFSDIR=zfs-linux_${ZFSVER}
+ZFSSRC=upstream
+
+ZFS_DEB1= libnvpair3linux_${ZFSPKGVER}_amd64.deb
-SPLDIR=pkg-spl
-SPLSRC=pkg-spl.tar.gz
-ZFSDIR=pkg-zfs
-ZFSSRC=pkg-zfs.tar.gz
+ZFS_DEB_BINARY = \
+libpam-zfs_${ZFSPKGVER}_amd64.deb \
+libuutil3linux_${ZFSPKGVER}_amd64.deb \
+libzfs4linux_${ZFSPKGVER}_amd64.deb \
+libzfsbootenv1linux_${ZFSPKGVER}_amd64.deb \
+libzpool5linux_${ZFSPKGVER}_amd64.deb \
+zfs-test_${ZFSPKGVER}_amd64.deb \
+zfsutils-linux_${ZFSPKGVER}_amd64.deb \
+zfs-zed_${ZFSPKGVER}_amd64.deb
-SPL_DEBS= \
-spl_${SPLPKGVER}_amd64.deb
+ZFS_DBG_DEBS = $(patsubst %_${ZFSPKGVER}_amd64.deb, %-dbgsym_${ZFSPKGVER}_amd64.deb, ${ZFS_DEB1} ${ZFS_DEB_BINARY})
-ZFS_DEBS= \
-libnvpair1linux_${ZFSPKGVER}_amd64.deb \
-libuutil1linux_${ZFSPKGVER}_amd64.deb \
-libzfs2linux_${ZFSPKGVER}_amd64.deb \
+ZFS_DEB2= ${ZFS_DEB_BINARY} \
libzfslinux-dev_${ZFSPKGVER}_amd64.deb \
-libzpool2linux_${ZFSPKGVER}_amd64.deb \
-zfs-dbg_${ZFSPKGVER}_amd64.deb \
-zfs-zed_${ZFSPKGVER}_amd64.deb \
-zfs-initramfs_${ZFSPKGVER}_all.deb \
-zfsutils-linux_${ZFSPKGVER}_amd64.deb
+python3-pyzfs_${ZFSPKGVER}_amd64.deb \
+pyzfs-doc_${ZFSPKGVER}_all.deb \
+spl_${ZFSPKGVER}_all.deb \
+zfs-initramfs_${ZFSPKGVER}_all.deb
+DEBS= ${ZFS_DEB1} ${ZFS_DEB2} ${ZFS_DBG_DEBS}
-DEBS=${SPL_DEBS} ${ZFS_DEBS}
+ZFS_DSC = zfs-linux_${ZFSPKGVER}.dsc
-all: ${DEBS}
+all: deb
+.PHONY: deb
+deb: ${DEBS}
+.PHONY: dsc
+dsc: ${ZFS_DSC}
+
+# called from pve-kernel's Makefile to get patched sources
+.PHONY: kernel
+kernel: dsc
+ dpkg-source -x ${ZFS_DSC} ../pkg-zfs
+ ${MAKE} -C ../pkg-zfs -f debian/rules adapt_meta_file
.PHONY: dinstall
dinstall: ${DEBS}
dpkg -i ${DEBS}
-.PHONY: spl
-spl ${SPL_DEBS}: ${SPLSRC}
- rm -rf ${SPLDIR}
- tar xf ${SPLSRC}
- mv ${SPLDIR}/debian/changelog ${SPLDIR}/debian/changelog.org
- cat spl-changelog.Debian ${SPLDIR}/debian/changelog.org > ${SPLDIR}/debian/changelog
- cd ${SPLDIR}; ln -s ../spl-patches patches
- cd ${SPLDIR}; quilt push -a
- cd ${SPLDIR}; rm -rf .pc ./patches
- cd ${SPLDIR}; dpkg-buildpackage -b -uc -us
+.PHONY: submodule
+submodule:
+ test -f "${ZFSSRC}/README.md" || git submodule update --init
+${ZFSSRC}/README.md: submodule
.PHONY: zfs
-zfs ${ZFS_DEBS}: ${ZFSSRC}
- rm -rf ${ZFSDIR}
- tar xf ${ZFSSRC}
- mv ${ZFSDIR}/debian/changelog ${ZFSDIR}/debian/changelog.org
- cat zfs-changelog.Debian ${ZFSDIR}/debian/changelog.org > ${ZFSDIR}/debian/changelog
- cd ${ZFSDIR}; ln -s ../zfs-patches patches
- cd ${ZFSDIR}; quilt push -a
- cd ${ZFSDIR}; rm -rf .pc ./patches
- cd ${ZFSDIR}; dpkg-buildpackage -b -uc -us
-
-.PHONY: download
-download:
- rm -rf pkg-spl pkg-zfs ${SPLSRC} ${ZFSSRC}
- # clone pkg-zfsonlinux/spl and checkout 0.6.5.8-2
- git clone -b debian/0.6.5.8-2 git://anonscm.debian.org/pkg-zfsonlinux/spl.git pkg-spl
- # clone pkg-zfsonlinux/zfs and checkout 0.6.5.8-1
- git clone -b debian/0.6.5.8-1 git://anonscm.debian.org/pkg-zfsonlinux/zfs.git pkg-zfs
- tar czf ${SPLSRC} pkg-spl
- tar czf ${ZFSSRC} pkg-zfs
+zfs: ${DEBS}
+${ZFS_DEB2}: ${ZFS_DEB1}
+${ZFS_DEB1}: ${ZFSDIR}
+ cd ${ZFSDIR}; dpkg-buildpackage -b -uc -us
+ lintian ${DEBS}
+
+${ZFS_DSC}: ${ZFSDIR}
+ tar czf zfs-linux_${ZFSVER}.orig.tar.gz ${ZFSDIR}
+ cd ${ZFSDIR}; dpkg-buildpackage -S -uc -us -d
+ lintian $@
+
+${ZFSDIR}: ${ZFSSRC}/README.md ${ZFSSRC} ${ZFSPKG}
+ rm -rf ${ZFSDIR} ${ZFSDIR}.tmp
+ cp -a ${ZFSSRC} ${ZFSDIR}.tmp
+ cp -a ${ZFSPKG} ${ZFSDIR}.tmp/debian
+ mv ${ZFSDIR}.tmp ${ZFSDIR}
+
.PHONY: clean
clean:
- rm -rf *~ *.deb *.changes ${ZFSDIR} ${SPLDIR}
+ rm -rf *~ *.deb *.changes *.buildinfo *.dsc *.orig.tar.* *.debian.tar.* ${ZFSDIR}
.PHONY: distclean
distclean: clean
-
.PHONY: upload
upload: ${DEBS}
- tar -cf - ${DEBS} | ssh repoman@repo.proxmox.com upload
+ tar -cf - ${DEBS} | ssh repoman@repo.proxmox.com -- upload --product pve,pmg,pbs --dist bullseye --arch amd64